19 #ifndef GEOSX_LINEARALGEBRA_INTERFACES_SUITESPARSE_HPP_ 20 #define GEOSX_LINEARALGEBRA_INTERFACES_SUITESPARSE_HPP_ 42 return LvArray::integerConversion< SSInt >( index );
142 void setComm( MPI_Comm
const comm );
248 real64 m_Info[UMFPACK_INFO];
251 real64 m_Control[UMFPACK_CONTROL];
272 int m_subCommWorkingRank;
284 real64 const m_precisionTolerance = 100.0 * std::numeric_limits< real64 >::epsilon();
void setWorkingRank(int const workingRank)
Sets the working rank.
void resize(SSInt const numRows, SSInt const numCols, SSInt const nonZeros)
Allocate the internal data storage arrays.
real64 precisionTolerance() const
Returns the precision tolarance used in SuiteSparse class.
long long int globalIndex
Global index type (for indexing objects across MPI partitions).
constexpr void transpose(DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, SRC_MATRIX const &LVARRAY_RESTRICT_REF srcMatrix)
Store the transpose of the NxM matrix srcMatrix in dstMatrix.
SSInt toSuiteSparse_Int(globalIndex const index)
Convert GEOSX globalIndex value to SuiteSparse int.
void setSubComm(MPI_Comm const subComm)
Sets the subcommunicator.
real64 solveTime() const
Provides the solve time.
SuiteSparse()
Constructor.
Set of parameters for a linear solver or preconditioner.
arrayView1d< real64 > values()
Returns the array with the matrix values.
This class serves to provide a "view" of a multidimensional array.
void create(LinearSolverParameters const ¶ms)
Creates the SuiteSparse data structure.
double real64
64-bit floating point type.
real64 condEst() const
Estimates the condition number of the matrix.
This class provides an interface for UMFPACK direct solver from SuiteSparse linear algebra package...
SSInt numRows() const
Returns the number of rows.
arrayView1d< SSInt > colIndices()
Returns the array with the column indices.
int solveWorkingRank(real64 *b, real64 *x, bool transpose=false)
Solves a linear system with SuiteSparse (matrix has already been factorized)
int workingRank() const
Returns the working rank.
int subCommWorkingRank() const
Returns the working rank in the sub-communicator.
std::int32_t integer
Signed integer type.
MPI_Comm getComm() const
Returns the communicator.
int setup()
Factorizes a linear system with SuiteSparse.
void setComm(MPI_Comm const comm)
Sets the communicator.
void setSubCommWorkingRank(int const subCommWorkingRank)
Sets the working rank in the sub-communicator.
SSInt numCols() const
Returns the number of columns.
arrayView1d< SSInt > rowPtr()
Returns the array with the row pointers.
real64 setupTime() const
Provides the setup time.
~SuiteSparse()
Destructor.
void syncTimes()
Sycronizes times across ranks.
real64 relativeTolerance() const
Estimates the relative tolerance for the matrix.
This class provides a fixed dimensional resizeable array interface in addition to an interface simila...
SSInt nonZeros() const
Returns the number of non zeros.
MPI_Comm getSubComm() const
Returns the subcommunicator.
void destroy()
Deallocates a SuiteSparse data structure.