141 MPI_Comm mpi_comm = MPI_COMM_NULL;
149 bool reorder_reuse =
false;
152 cudssMatrixType_t mat_type = CUDSS_MTYPE_GENERAL;
157 mutable int nrhs = 0;
161 void *csr_offsets_d = NULL;
162 void *csr_columns_d = NULL;
163 void *csr_values_d = NULL;
166 cudssMatrixViewType_t mview = CUDSS_MVIEW_FULL;
169 std::unique_ptr<cudssMatrix_t> Ac;
170 mutable cudssMatrix_t xc, yc;
174 cudssHandle_t handle;
177 mutable cudssConfig_t solverConfig;
179 mutable cudssData_t solverData;
183 void SetNumRHS(
int nrhs_)
const;
214 void SetMatrixCuDSS(
int* csr_offsets,
int* csr_columns,
real_t* csr_values);
cuDSS: A high-performance CUDA Library for Direct Sparse Solvers
void Mult(const Vector &x, Vector &y) const override
Solve .
void SetOperator(const Operator &op) override
Set/update the solver for the given operator.
MatType
Specify the type of matrix we are applying the solver to.
@ NONSYMMETRIC
CUDSS_MTYPE_GENERAL: General matrix [default].
@ SYMMETRIC_INDEFINITE
CUDSS_MTYPE_SYMMETRIC: Real symmetric matrix.
@ SYMMETRIC_POSITIVE_DEFINITE
CUDSS_MTYPE_SPD: Symmetric positive-definite matrix.
void SetReorderingReuse(bool reuse)
Set the flag controlling reuse of the symbolic factorization for multiple operators.
CuDSSSolver & operator=(CuDSSSolver &&)=delete
MatViewType
Specify the view type of matrix we are applying the solver to.
@ UPPER
CUDSS_MVIEW_UPPER: Upper-triangular matrix (including the diagonal).
@ FULL
CUDSS_MVIEW_FULL: Full matrix [default].
@ LOWER
CUDSS_MVIEW_LOWER: Lower-triangular matrix (including the diagonal).
CuDSSSolver()
Constructor.
void SetMatrixViewType(MatViewType mvtype)
Set the matrix view type.
CuDSSSolver(CuDSSSolver &&)=delete
void SetMatrixSymType(MatType mtype_)
Set the matrix type.
void ArrayMult(const Array< const Vector * > &X, Array< Vector * > &Y) const override
Solve .
Wrapper for hypre's ParCSR matrix class.