GEOSX
|
Wrapper class for hypre's ParCSRMatrix. More...
#include <HypreMatrix.hpp>
Public Types | |
using | Vector = HypreVector |
Compatible vector type. | |
Public Types inherited from geosx::LinearOperator< HypreVector > | |
using | Vector = HypreVector |
Alias for template parameter. | |
Public Member Functions | |
HYPRE_ParCSRMatrix const & | unwrapped () const |
Returns a pointer to implementation. More... | |
HYPRE_IJMatrix const & | unwrappedIJ () const |
Returns a pointer to implementation. More... | |
Constructor/Destructor Methods | |
HypreMatrix () | |
Empty matrix constructor. More... | |
HypreMatrix (HypreMatrix const &src) | |
Copy constructor. More... | |
~HypreMatrix () override | |
Virtual destructor. | |
MatrixBase interface | |
virtual void | createWithLocalSize (localIndex const localRows, localIndex const localCols, localIndex const maxEntriesPerRow, MPI_Comm const &comm) override |
Create a rectangular matrix from number of rows/columns. More... | |
virtual void | createWithGlobalSize (globalIndex const globalRows, globalIndex const globalCols, localIndex const maxEntriesPerRow, MPI_Comm const &comm) override |
Create a rectangular matrix from number of rows/columns. More... | |
virtual void | open () override |
Open matrix for adding new entries. More... | |
virtual void | close () override |
Assemble and compress the matrix. More... | |
virtual bool | created () const override |
Query matrix creation status. More... | |
virtual void | reset () override |
Reset the matrix to default state. | |
virtual void | set (real64 const value) override |
Set all non-zero elements to a value. More... | |
virtual void | zero () override |
Set all elements to zero. | |
virtual void | add (globalIndex const rowIndex, globalIndex const colIndex, real64 const value) override |
Add to one element. More... | |
virtual void | set (globalIndex const rowIndex, globalIndex const colIndex, real64 const value) override |
Set one element. More... | |
virtual void | insert (globalIndex const rowIndex, globalIndex const colIndex, real64 const value) override |
Insert one element. More... | |
virtual void | add (globalIndex const rowIndex, globalIndex const *colIndices, real64 const *values, localIndex const size) override |
Add elements to one row using c-style arrays. More... | |
virtual void | set (globalIndex const rowIndex, globalIndex const *colIndices, real64 const *values, localIndex const size) override |
Set elements to one row using c-style arrays. More... | |
virtual void | insert (globalIndex const rowIndex, globalIndex const *colIndices, real64 const *values, localIndex const size) override |
Insert elements to one row using c-style arrays. More... | |
virtual void | add (globalIndex const rowIndex, arraySlice1d< globalIndex const > const &colIndices, arraySlice1d< real64 const > const &values) override |
Add elements to one row using array1d. More... | |
virtual void | set (globalIndex const rowIndex, arraySlice1d< globalIndex const > const &colIndices, arraySlice1d< real64 const > const &values) override |
Set elements of one row using array1d. More... | |
virtual void | insert (globalIndex const rowIndex, arraySlice1d< globalIndex const > const &colIndices, arraySlice1d< real64 const > const &values) override |
Insert elements of one row using array1d. More... | |
virtual void | add (arraySlice1d< globalIndex const > const &rowIndices, arraySlice1d< globalIndex const > const &colIndices, arraySlice2d< real64 const, MatrixLayout::ROW_MAJOR > const &values) override |
Add a dense block of values. More... | |
virtual void | set (arraySlice1d< globalIndex const > const &rowIndices, arraySlice1d< globalIndex const > const &colIndices, arraySlice2d< real64 const, MatrixLayout::ROW_MAJOR > const &values) override |
Set a dense block of values. More... | |
virtual void | insert (arraySlice1d< globalIndex const > const &rowIndices, arraySlice1d< globalIndex const > const &colIndices, arraySlice2d< real64 const, MatrixLayout::ROW_MAJOR > const &values) override |
Insert a dense block of values. More... | |
virtual void | add (arraySlice1d< globalIndex const > const &rowIndices, arraySlice1d< globalIndex const > const &colIndices, arraySlice2d< real64 const, MatrixLayout::COL_MAJOR > const &values) override |
Add a dense block of values. More... | |
virtual void | set (arraySlice1d< globalIndex const > const &rowIndices, arraySlice1d< globalIndex const > const &colIndices, arraySlice2d< real64 const, MatrixLayout::COL_MAJOR > const &values) override |
Set a dense block of values. More... | |
virtual void | insert (arraySlice1d< globalIndex const > const &rowIndices, arraySlice1d< globalIndex const > const &colIndices, arraySlice2d< real64 const, MatrixLayout::COL_MAJOR > const &values) override |
Insert a dense block of values. More... | |
virtual void | add (globalIndex const *rowIndices, globalIndex const *colIndices, real64 const *values, localIndex const numRows, localIndex const numCols) override |
Add a dense block of values. More... | |
virtual void | set (globalIndex const *rowIndices, globalIndex const *colIndices, real64 const *values, localIndex const numRows, localIndex const numCols) override |
Set a dense block of values. More... | |
virtual void | insert (globalIndex const *rowIndices, globalIndex const *colIndices, real64 const *values, localIndex const numRows, localIndex const numCols) override |
Insert dense matrix. More... | |
virtual void | apply (HypreVector const &src, HypreVector &dst) const override |
Apply operator to a vector. More... | |
virtual void | applyTranspose (Vector const &src, Vector &dst) const override |
Apply transpose of the matrix to a vector. More... | |
virtual void | multiply (HypreMatrix const &src, HypreMatrix &dst) const override |
Matrix/Matrix multiplication. More... | |
virtual void | leftMultiplyTranspose (HypreMatrix const &src, HypreMatrix &dst) const override |
Matrix/Matrix transpose multiplication. More... | |
virtual void | rightMultiplyTranspose (HypreMatrix const &src, HypreMatrix &dst) const override |
Matrix/Matrix transpose multiplication. More... | |
virtual void | multiplyRAP (HypreMatrix const &R, HypreMatrix const &P, HypreMatrix &dst) const override |
Compute the triple product dst = R * this * P More... | |
virtual void | multiplyPtAP (HypreMatrix const &P, HypreMatrix &dst) const override |
Compute the triple product dst = P^T * this * P More... | |
virtual void | gemv (real64 const alpha, HypreVector const &x, real64 const beta, HypreVector &y, bool useTranspose=false) const override |
Compute gemv y = alpha*A*x + beta*y . More... | |
virtual void | scale (real64 const scalingFactor) override |
Multiply all elements by scalingFactor. More... | |
virtual void | leftScale (HypreVector const &vec) override |
Pre-multiplies (left) with diagonal matrix consisting of the values in vec. More... | |
virtual void | rightScale (HypreVector const &vec) override |
Post-multiplies (right) with diagonal matrix consisting of the values in vec. More... | |
virtual void | leftRightScale (HypreVector const &vecLeft, HypreVector const &vecRight) override |
Post-multiplies (right) with diagonal matrix consisting of the values in vecRight and pre-multiplies (left) with diagonal matrix consisting of the values in vec. More... | |
virtual void | transpose (HypreMatrix &dst) const override |
Matrix transposition. More... | |
virtual real64 | clearRow (globalIndex const row, bool const keepDiag=false, real64 const diagValue=0.0) override |
Clear a row, and optionally set diagonal element to diagValue . More... | |
virtual void | addEntries (HypreMatrix const &src, real64 const scale=1.0, bool const samePattern=true) override |
Add entries of another matrix to this. More... | |
virtual void | addDiagonal (HypreVector const &src) override |
Add entries of a vector to the diagonal of this matrix. More... | |
virtual localIndex | maxRowLength () const override |
Returns the number of nonzero entries in the longest row of the matrix. More... | |
virtual localIndex | localRowLength (localIndex localRowIndex) const override |
Get row length via local row index. More... | |
virtual localIndex | globalRowLength (globalIndex globalRowIndex) const override |
Get row length via global row index. More... | |
virtual void | getRowCopy (globalIndex globalRow, arraySlice1d< globalIndex > const &colIndices, arraySlice1d< real64 > const &values) const override |
Returns a copy of the data in row globalRow . More... | |
virtual real64 | getDiagValue (globalIndex globalRow) const override |
get diagonal element value on a given row More... | |
virtual void | extractDiagonal (HypreVector &dst) const override |
Extract diagonal values into a vector. More... | |
virtual globalIndex | numGlobalRows () const override |
Returns the number of global rows. More... | |
virtual globalIndex | numGlobalCols () const override |
Returns the number of global columns. More... | |
virtual localIndex | numLocalRows () const override |
Return the local number of columns on each processor. More... | |
virtual localIndex | numLocalCols () const override |
Return the local number of columns on each processor. More... | |
virtual globalIndex | ilower () const override |
Returns the index of the first global row owned by that processor. More... | |
virtual globalIndex | iupper () const override |
Returns index one past the last global row owned by that processor. More... | |
virtual globalIndex | jlower () const override |
Returns the index of the first global col owned by that processor. More... | |
virtual globalIndex | jupper () const override |
Returns index one past the last global col owned by that processor. More... | |
virtual localIndex | numLocalNonzeros () const override |
Returns the number of nonzeros in the local portion of the matrix. More... | |
virtual globalIndex | numGlobalNonzeros () const override |
Returns the total number of nonzeros in the matrix. More... | |
virtual real64 | normInf () const override |
Returns the infinity norm of the matrix. More... | |
virtual real64 | norm1 () const override |
Returns the one norm of the matrix. More... | |
virtual real64 | normFrobenius () const override |
Returns the Frobenius norm of the matrix. More... | |
virtual localIndex | getLocalRowID (globalIndex const index) const override |
Map a global row index to local row index. More... | |
virtual globalIndex | getGlobalRowID (localIndex const index) const override |
Map a local row index to global row index. More... | |
virtual MPI_Comm | getComm () const override |
Get the MPI communicator the matrix was created with. More... | |
virtual void | print (std::ostream &os=std::cout) const override |
Print the matrix in Trilinos format to a stream. More... | |
virtual void | write (string const &filename, LAIOutputFormat const format=LAIOutputFormat::MATRIX_MARKET) const override |
Write the matrix to filename in a matlab-compatible format. More... | |
Public Member Functions inherited from geosx::LinearOperator< HypreVector > | |
LinearOperator ()=default | |
Constructor. | |
virtual | ~LinearOperator ()=default |
Destructor. | |
Wrapper class for hypre's ParCSRMatrix.
This class creates and provides basic support for the HYPRE_ParCSRMatrix object type used in Hypre using the linear-algebraic system interface (IJ interface).
Definition at line 58 of file HypreMatrix.hpp.
geosx::HypreMatrix::HypreMatrix | ( | ) |
Empty matrix constructor.
Create an empty (distributed) matrix.
geosx::HypreMatrix::HypreMatrix | ( | HypreMatrix const & | src | ) |
Copy constructor.
[in] | src | the matrix to be copied |
|
overridevirtual |
Add to one element.
rowIndex | Global row index |
colIndex | Global column index |
value | Value to add to prescribed location |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Add elements to one row using c-style arrays.
rowIndex | Global row index |
colIndices | Global column indices |
values | Values to add to prescribed locations |
size | Number of elements |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Add elements to one row using array1d.
rowIndex | Global row index |
colIndices | Global column indices |
values | Values to add to prescribed locations |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Add a dense block of values.
rowIndices | Global row indices |
colIndices | Global col indices |
values | Dense local matrix of values |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Add a dense block of values.
rowIndices | Global row indices |
colIndices | Global col indices |
values | Dense local matrix of values |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Add a dense block of values.
rowIndices | Global row indices |
colIndices | Global col indices |
values | Dense local matrix of values |
numRows | Number of row indices |
numCols | Number of column indices |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Add entries of a vector to the diagonal of this matrix.
src | the source vector |
this
must be square and have a (possibly zero) diagonal entry in every row. this
and src
must have the same parallel row distribution. Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Add entries of another matrix to this.
src | the source matrix |
scale | factor to scale entries of src by |
samePattern | whether to keep the original pattern or to extend it |
this
must be a superset of sparsity of src
. this
and src
must have the same parallel row distribution. Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Apply operator to a vector.
src | Input vector (x). |
dst | Output vector (b). |
src
and dst
cannot alias the same vector (some implementations may allow this). Implements geosx::LinearOperator< HypreVector >.
|
overridevirtual |
Apply transpose of the matrix to a vector.
src | Input vector (x). |
dst | Output vector (b). |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Clear a row, and optionally set diagonal element to diagValue
.
row | globalIndex of the row to be cleared. |
diagValue | (Optional) set diagonal element to desired value. |
keepDiag | if true , diagValue is ignored and original diagonal is preserved |
diagValue
and keepDiag
are ignored if the matrix is not square Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Assemble and compress the matrix.
Compresses the matrix to CSR format with contiguous memory on each processor. Prevents from adding new entries in the sparsity pattern but allows for modification of existing entries.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Query matrix creation status.
true
if matrix has been created Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Create a rectangular matrix from number of rows/columns.
comm | MPI communicator. |
globalRows | Global number of rows. |
globalCols | Global number of columns. |
maxEntriesPerRow | Maximum number of entries per row (hint). |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Create a rectangular matrix from number of rows/columns.
comm | MPI communicator. |
localRows | Local number of rows. |
localCols | Local number of columns. |
maxEntriesPerRow | Maximum number of entries per row (hint). |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Extract diagonal values into a vector.
dst | the target vector, must have the same row partitioning as this |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Compute gemv y = alpha*A*x + beta*y
.
alpha | Scalar factor for added matvec product. |
x | Input vector. |
beta | Scalar factor for right hand side. |
y | Output vector. |
useTranspose | Boolean, set to true to use A^T . |
x
and y
cannot alias the same vector. Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Get the MPI communicator the matrix was created with.
create
...()Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
get diagonal element value on a given row
globalRow | global row index |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Map a local row index to global row index.
index | the local row index (between 0 and number of local rows) |
index
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Map a global row index to local row index.
index | the global row index |
index
, or -1 if not a local row Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Returns a copy of the data in row globalRow
.
[in] | globalRow | the index of global row to extract |
[out] | colIndices | the output array of global column indices (must have a large enough size) |
[out] | values | the output array of values (must have a large enough size) |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Get row length via global row index.
[in] | globalRowIndex | the global row index |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Returns the index of the first global row owned by that processor.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Insert one element.
rowIndex | Global row index |
colIndex | Global column index |
value | Value to insert at prescribed location |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Insert elements to one row using c-style arrays.
rowIndex | Global row index |
colIndices | Global column indices |
values | Values to add to prescribed locations |
size | Number of elements |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Insert elements of one row using array1d.
rowIndex | Global row index |
colIndices | Global column indices |
values | Values to add to prescribed locations |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Insert a dense block of values.
rowIndices | Global row indices |
colIndices | Global col indices |
values | Dense local matrix of values |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Insert a dense block of values.
rowIndices | Global row indices |
colIndices | Global col indices |
values | Dense local matrix of values |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Insert dense matrix.
rowIndices | Global row indices |
colIndices | Global col indices |
values | Dense local matrix of values |
numRows | Number of row indices |
numCols | Number of column indices |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Returns index one past the last global row owned by that processor.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Returns the index of the first global col owned by that processor.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Returns index one past the last global col owned by that processor.
jlower()
about the meaning of "owned" columns. Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Matrix/Matrix transpose multiplication.
Compute this^T * B = C
.
src | Input matrix (B). |
dst | Output matrix (C). |
Note that the output matrix C should have the same row-map as this. If close() has already been called on C, then C's sparsity pattern must already contain the nonzero entries produced by the product this*B.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Post-multiplies (right) with diagonal matrix consisting of the values in vecRight and pre-multiplies (left) with diagonal matrix consisting of the values in vec.
vecLeft | vec to pre-multiply with. |
vecRight | vec to post-multiply with. |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Pre-multiplies (left) with diagonal matrix consisting of the values in vec.
vec | Vector to pre-multiply with. |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Get row length via local row index.
[in] | localRowIndex | the local row index |
TODO: Breaks the goal of hiding local row indexing from user. Revise use cases to use ilower() and iupper().
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Returns the number of nonzero entries in the longest row of the matrix.
Collective.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Matrix/Matrix multiplication.
Compute this * B = C
.
src | Input matrix (B). |
dst | Output matrix (C). |
Note that the output matrix C should have the same row-map as this. If close() has already been called on C, then C's sparsity pattern must already contain the nonzero entries produced by the product this*B.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Compute the triple product dst = P^T * this * P
P | the "prolongation" matrix |
dst | the resulting product matrix (will be re-created as needed) |
Reimplemented from geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Compute the triple product dst = R * this * P
R | the "restriction" matrix |
P | the "prolongation" matrix |
dst | the resulting product matrix (will be re-created as needed) |
Reimplemented from geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Returns the one norm of the matrix.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Returns the Frobenius norm of the matrix.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Returns the infinity norm of the matrix.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Returns the number of global columns.
Implements geosx::LinearOperator< HypreVector >.
|
overridevirtual |
Returns the total number of nonzeros in the matrix.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Returns the number of global rows.
Implements geosx::LinearOperator< HypreVector >.
|
overridevirtual |
Return the local number of columns on each processor.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Returns the number of nonzeros in the local portion of the matrix.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Return the local number of columns on each processor.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Open matrix for adding new entries.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Print the matrix in Trilinos format to a stream.
os | the output stream |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Matrix/Matrix transpose multiplication.
Compute B * this^T = C
.
src | Input matrix (B). |
dst | Output matrix (C). |
Note that the output matrix C should have the same row-map as this. If close() has already been called on C, then C's sparsity pattern must already contain the nonzero entries produced by the product this*B.
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Post-multiplies (right) with diagonal matrix consisting of the values in vec.
vec | Vector to post-multiply with. |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Multiply all elements by scalingFactor.
scalingFactor | Scaling factor. |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Set all non-zero elements to a value.
value | the value to set all elements to |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Set one element.
rowIndex | Global row index |
colIndex | Global column index |
value | Value to set at prescribed location |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Set elements to one row using c-style arrays.
rowIndex | Global row index |
colIndices | Global column indices |
values | Values to add to prescribed locations |
size | Number of elements |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Set elements of one row using array1d.
rowIndex | Global row index |
colIndices | Global column indices |
values | Values to add to prescribed locations |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Set a dense block of values.
rowIndices | Global row indices |
colIndices | Global col indices |
values | Dense local matrix of values |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Set a dense block of values.
rowIndices | Global row indices |
colIndices | Global col indices |
values | Dense local matrix of values |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Set a dense block of values.
rowIndices | Global row indices |
colIndices | Global col indices |
values | Dense local matrix of values |
numRows | Number of row indices |
numCols | Number of column indices |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
|
overridevirtual |
Matrix transposition.
Compute B = this^T
.
dst | Output matrix (B). |
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.
HYPRE_ParCSRMatrix const& geosx::HypreMatrix::unwrapped | ( | ) | const |
Returns a pointer to implementation.
HYPRE_IJMatrix const& geosx::HypreMatrix::unwrappedIJ | ( | ) | const |
Returns a pointer to implementation.
|
overridevirtual |
Write the matrix to filename in a matlab-compatible format.
filename | name of the output file |
format | output format |
Within octave / matlab:
load filename M = spconvert(filename_root)
Implements geosx::MatrixBase< HypreMatrix, HypreVector >.