19 #ifndef GEOSX_LINEARALGEBRA_INTERFACES_SUPERLU_DIST_HPP_ 20 #define GEOSX_LINEARALGEBRA_INTERFACES_SUPERLU_DIST_HPP_ 25 #include <superlu_ddefs.h> 37 return LvArray::integerConversion< int_t >( index );
47 return reinterpret_cast< int_t *
>( index );
151 void setComm( MPI_Comm
const comm );
217 int_t m_numGlobalRows;
220 int_t m_numGlobalCols;
223 int_t m_numLocalRows;
226 int_t m_numLocalNonzeros;
232 int_t * m_colIndices;
241 dScalePermstruct_t m_ScalePermstruct;
244 dLUstruct_t m_LUstruct;
247 SuperLUStat_t m_stat;
253 dSOLVEstruct_t m_SOLVEstruct;
256 superlu_dist_options_t m_options;
274 real64 const m_precisionTolerance = 100.0 * std::numeric_limits< real64 >::epsilon();
void setNumGlobalRows(int_t const numGlobalRows)
Sets the global number of rows.
void setNumLocalRows(int_t const numLocalRows)
Sets the local number of rows.
long long int globalIndex
Global index type (for indexing objects across MPI partitions).
void destroy()
Deallocates a SuperLU_Dist data structure.
real64 precisionTolerance() const
Returns the precision tolerance used in SuperLU_Dist class.
real64 setupTime() const
Provides the setup time.
int_t * colIndices()
Returns the array with the column indices.
Set of parameters for a linear solver or preconditioner.
void createSuperMatrix(globalIndex const ilower)
Create the matrix in SuperLU_Dist format (SuperMatrix)
real64 relativeTolerance()
Estimates the relative tolerance for the matrix.
double real64
64-bit floating point type.
void resize(localIndex const numLocalRows, localIndex const numLocalNonzeros)
Allocate the internal memory.
int_t numGlobalRows() const
Returns the global number of rows.
int_t * rowPtr()
Returns the array with the row pointers.
LinearSolverParameters getParameters() const
Returns the parameters used to initialize this object.
int_t numLocalRows() const
Returns the local number of rows.
void setNumGlobalCols(int_t const numGlobalCols)
Sets the global number of columns.
SuperLU_Dist()
Constructor.
void create(LinearSolverParameters const ¶ms)
Creates the SuperLU_Dist data structure.
real64 * values()
Returns the array with the values.
int_t toSuperLU_intT(globalIndex const index)
Convert GEOSX globalIndex value to SuperLU_Dist int_t.
void setComm(MPI_Comm const comm)
Sets the communicator.
real64 condEst()
Estimates the condition number of the matrix.
std::ptrdiff_t localIndex
Local index type (for indexing objects within an MPI partition).
int setup()
Factorizes a linear system with SuperLU_Dist.
int_t numGlobalCols() const
Returns the global number of columns.
~SuperLU_Dist()
Destructor.
real64 solveTime() const
Provides the solve time.
MPI_Comm getComm() const
Returns the communicator.
int solve(real64 const *b, real64 *x)
Solves a linear system with SuperLU_Dist (matrix has already been factorized)