15 #include "../config/config.hpp"
17 #ifdef MFEM_USE_SUPERLU
19 #include "operator.hpp"
27 namespace superlu_internal
29 unsigned int sqrti(
const unsigned int &
a);
35 #ifdef MFEM_USE_SUPERLU5
55 int num_loc_rows,
int first_loc_row,
56 int glob_nrows,
int glob_ncols,
57 int *I,
int *J,
double *data);
68 " matrix vector products are not supported.");
71 MPI_Comm
GetComm()
const {
return comm_; }
166 #endif // MFEM_USE_MPI
167 #endif // MFEM_USE_SUPERLU
168 #endif // MFEM_SUPERLU
void * InternalData() const
void trans(const Vector &u, Vector &x)
void Mult(const Vector &x, Vector &y) const
Operator application: y=A(x).
bool LUStructInitialized_
void * ScalePermstructPtr_
void SetRowPermutation(superlu::RowPerm row_perm, Array< int > *perm=NULL)
void SetSymmetricPattern(bool sym)
void SetOperator(const Operator &op)
Set/update the solver for the given operator.
HYPRE_BigInt GetGlobalNumColumns() const
void SetIterativeRefine(superlu::IterRefine iter_ref)
void SetColumnPermutation(superlu::ColPerm col_perm)
void mfem_error(const char *msg)
Function called when an error is encountered. Used by the macros MFEM_ABORT, MFEM_ASSERT, MFEM_VERIFY.
void SetNumLookAheads(int num_lookaheads)
void SetPrintStatistics(bool print_stat)
A class to initialize the size of a Tensor.
void SetLookAheadElimTree(bool etree)
unsigned int sqrti(const unsigned int &a)
void SetReplaceTinyPivot(bool rtp)
void SetTranspose(superlu::Trans trans)
const SuperLURowLocMatrix * APtr_
bool firstSolveWithThisA_
void SetParSymbFact(bool par)
void Mult(const Vector &x, Vector &y) const
Operator application: y=A(x).
SuperLURowLocMatrix(MPI_Comm comm, int num_loc_rows, int first_loc_row, int glob_nrows, int glob_ncols, int *I, int *J, double *data)
Wrapper for hypre's ParCSR matrix class.
SuperLUSolver(MPI_Comm comm)
void SetEquilibriate(bool equil)