Go to the documentation of this file.
33 #ifndef STRUMPACK_SPARSE_SOLVER_HPP
34 #define STRUMPACK_SPARSE_SOLVER_HPP
49 template<
typename scalar_t,
typename integer_t>
class MatrixReordering;
50 template<
typename scalar_t,
typename integer_t>
class EliminationTree;
73 template<
typename scalar_t,
typename integer_t=
int>
98 (
int argc,
char* argv[],
bool verbose=
true,
bool root=
true);
149 const integer_t* row_ptr,
const integer_t* col_ind,
150 const scalar_t* values,
bool symmetric_pattern=
false);
182 const integer_t* row_ptr,
183 const integer_t* col_ind,
184 const scalar_t* values,
185 bool symmetric_pattern=
false);
208 void setup_tree()
override;
209 void setup_reordering()
override;
210 int compute_reordering(
const int* p,
int base,
211 int nx,
int ny,
int nz,
212 int components,
int width)
override;
213 void separator_reordering()
override;
215 SpMat_t* matrix()
override {
return mat_.get(); }
216 Reord_t* reordering()
override {
return nd_.get(); }
217 Tree_t* tree()
override {
return tree_.get(); }
218 const SpMat_t* matrix()
const override {
return mat_.get(); }
219 const Reord_t* reordering()
const override {
return nd_.get(); }
220 const Tree_t* tree()
const override {
return tree_.get(); }
222 void permute_matrix_values();
225 (
const scalar_t* b, scalar_t* x,
bool use_initial_guess=
false)
override;
229 std::unique_ptr<CSRMatrix<scalar_t,integer_t>> mat_;
230 std::unique_ptr<MatrixReordering<scalar_t,integer_t>> nd_;
231 std::unique_ptr<EliminationTree<scalar_t,integer_t>> tree_;
234 using SPBase_t::opts_;
235 using SPBase_t::is_root_;
236 using SPBase_t::matching_;
237 using SPBase_t::equil_;
238 using SPBase_t::factored_;
239 using SPBase_t::reordered_;
240 using SPBase_t::Krylov_its_;
245 #endif // STRUMPACK_SPARSE_SOLVER_HPP
StrumpackSparseSolver is the main sequential or multithreaded sparse solver class.
Definition: StrumpackSparseSolver.hpp:74
StrumpackSparseSolver(int argc, char *argv[], bool verbose=true, bool root=true)
Class for storing a compressed sparse row matrix (single node).
Definition: CSRMatrix.hpp:53
void update_matrix_values(integer_t N, const integer_t *row_ptr, const integer_t *col_ind, const scalar_t *values, bool symmetric_pattern=false)
Definition: StrumpackOptions.hpp:42
Like DenseMatrix, this class represents a matrix, stored in column major format, to allow direct use ...
Definition: DenseMatrix.hpp:990
Contains the definition of the base (abstract/pure virtual) sparse solver class.
ReturnCode
Enumeration for the possible return codes.
Definition: StrumpackParameters.hpp:60
void set_matrix(const CSRMatrix< scalar_t, integer_t > &A)
void set_csr_matrix(integer_t N, const integer_t *row_ptr, const integer_t *col_ind, const scalar_t *values, bool symmetric_pattern=false)
Abstract base class for compressed sparse matrix storage.
Definition: CompressedSparseMatrix.hpp:163
Definition: StrumpackSparseSolverBase.hpp:53
Definition: StrumpackSparseSolverBase.hpp:52
StrumpackSparseSolver is the main sequential or multithreaded sparse solver class.
Definition: StrumpackSparseSolverBase.hpp:77