12 #ifndef MFEM_STRUMPACK
13 #define MFEM_STRUMPACK
15 #include "../config/config.hpp"
17 #ifdef MFEM_USE_STRUMPACK
19 #include "operator.hpp"
24 #include "StrumpackSparseSolverMPIDist.hpp"
37 int num_loc_rows,
int first_loc_row,
38 int glob_nrows,
int glob_ncols,
39 int *I,
int *J,
double *data);
49 mfem_error(
"STRUMPACKRowLocMatrix::Mult(...)\n"
50 " matrix vector products are not supported.");
53 MPI_Comm
GetComm()
const {
return comm_; }
55 strumpack::CSRMatrixMPI<double,int>*
getA()
const {
return A_; }
59 strumpack::CSRMatrixMPI<double,int>* A_;
139 #if STRUMPACK_VERSION_MAJOR >= 3
150 void Init(
int argc,
char* argv[] );
162 strumpack::StrumpackSparseSolverMPIDist<double,int> *
solver_;
168 #endif // MFEM_USE_MPI
169 #endif // MFEM_USE_STRUMPACK
170 #endif // MFEM_STRUMPACK
const STRUMPACKRowLocMatrix * APtr_
STRUMPACKSolver(int argc, char *argv[], MPI_Comm comm)
strumpack::StrumpackSparseSolverMPIDist< double, int > * solver_
void SetFromCommandLine()
strumpack::CSRMatrixMPI< double, int > * getA() const
void SetPrintFactorStatistics(bool print_stat)
STRUMPACKRowLocMatrix(MPI_Comm comm, int num_loc_rows, int first_loc_row, int glob_nrows, int glob_ncols, int *I, int *J, double *data)
void mfem_error(const char *msg)
Function called when an error is encountered. Used by the macros MFEM_ABORT, MFEM_ASSERT, MFEM_VERIFY.
void SetPrintSolveStatistics(bool print_stat)
void SetReorderingStrategy(strumpack::ReorderingStrategy method)
void SetRelTol(double rtol)
A class to initialize the size of a Tensor.
void Mult(const Vector &x, Vector &y) const
Operator application: y=A(x).
void SetKrylovSolver(strumpack::KrylovSolver method)
void SetAbsTol(double atol)
void SetOperator(const Operator &op)
Set/update the solver for the given operator.
void Mult(const Vector &x, Vector &y) const
Operator application: y=A(x).
Wrapper for hypre's ParCSR matrix class.
void EnableParallelMatching()