12 #ifndef MFEM_STRUMPACK
13 #define MFEM_STRUMPACK
15 #include "../config/config.hpp"
17 #ifdef MFEM_USE_STRUMPACK
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_;
141 void Init(
int argc,
char* argv[] );
153 strumpack::StrumpackSparseSolverMPIDist<double,int> *
solver_;
159 #endif // MFEM_USE_MPI
160 #endif // MFEM_USE_STRUMPACK
161 #endif // MFEM_STRUMPACK
const STRUMPACKRowLocMatrix * APtr_
void SetMC64Job(strumpack::MC64Job job)
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 SetPrintSolveStatistics(bool print_stat)
void SetReorderingStrategy(strumpack::ReorderingStrategy method)
void SetRelTol(double rtol)
void mfem_error(const char *msg)
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.