Concrete class encapsulating some Petsc linear solvers.
More...
#include <LinearSolverPetsc.hpp>
|
| LinearSolverPetsc () |
|
| LinearSolverPetsc (const ParameterGroup ¶m) |
|
virtual | ~LinearSolverPetsc () |
| Destructor. More...
|
|
virtual LinearSolverReport | solve (const int size, const int nonzeros, const int *ia, const int *ja, const double *sa, const double *rhs, double *solution, const boost::any &) const |
|
virtual void | setTolerance (const double tol) |
|
virtual double | getTolerance () const |
|
LinearSolverReport | solve (const CSRMatrix *A, const double *rhs, double *solution) const |
|
virtual LinearSolverReport | solve (const int size, const int nonzeros, const int *ia, const int *ja, const double *sa, const double *rhs, double *solution, const boost::any &add=boost::any()) const=0 |
|
Concrete class encapsulating some Petsc linear solvers.
◆ LinearSolverPetsc() [1/2]
Opm::LinearSolverPetsc::LinearSolverPetsc |
( |
| ) |
|
Default constructor. Declared, but not implemented. Petsc can only be created through the ParameterGroup constructor, everything else is an error. This way the error is caught compile time and not rune time, which is nice as it is a static error.
◆ LinearSolverPetsc() [2/2]
Opm::LinearSolverPetsc::LinearSolverPetsc |
( |
const ParameterGroup & |
param | ) |
|
Construct from parameters Accepted parameters are, with defaults, listed in the default constructor.
◆ ~LinearSolverPetsc()
virtual Opm::LinearSolverPetsc::~LinearSolverPetsc |
( |
| ) |
|
|
virtual |
◆ getTolerance()
virtual double Opm::LinearSolverPetsc::getTolerance |
( |
| ) |
const |
|
virtual |
◆ setTolerance()
virtual void Opm::LinearSolverPetsc::setTolerance |
( |
const double |
tol | ) |
|
|
virtual |
◆ solve() [1/3]
Solve a linear system, with a matrix given in compressed sparse row format. - Parameters
-
[in] | A | matrix in CSR format |
[in] | rhs | array of length A->m containing the right hand side |
[in,out] | solution | array of length A->m to which the solution will be written, may also be used as initial guess by iterative solvers. Note: this method is a convenience method that calls the virtual solve() method. |
◆ solve() [2/3]
virtual LinearSolverReport Opm::LinearSolverPetsc::solve |
( |
const int |
size, |
|
|
const int |
nonzeros, |
|
|
const int * |
ia, |
|
|
const int * |
ja, |
|
|
const double * |
sa, |
|
|
const double * |
rhs, |
|
|
double * |
solution, |
|
|
const boost::any & |
|
|
) |
| const |
|
virtual |
Solve a linear system, with a matrix given in compressed sparse row format. - Parameters
-
[in] | size | # of rows in matrix |
[in] | nonzeros | # of nonzeros elements in matrix |
[in] | ia | array of length (size + 1) containing start and end indices for each row |
[in] | ja | array of length nonzeros containing column numbers for the nonzero elements |
[in] | sa | array of length nonzeros containing the values of the nonzero elements |
[in] | rhs | array of length size containing the right hand side |
[in,out] | solution | array of length size to which the solution will be written, may also be used as initial guess by iterative solvers. |
Implements Opm::LinearSolverInterface.
◆ solve() [3/3]
virtual LinearSolverReport Opm::LinearSolverInterface::solve |
( |
const int |
size, |
|
|
const int |
nonzeros, |
|
|
const int * |
ia, |
|
|
const int * |
ja, |
|
|
const double * |
sa, |
|
|
const double * |
rhs, |
|
|
double * |
solution, |
|
|
const boost::any & |
add = boost::any() |
|
) |
| const |
|
virtual |
Solve a linear system, with a matrix given in compressed sparse row format. - Parameters
-
[in] | size | # of rows in matrix |
[in] | nonzeros | # of nonzeros elements in matrix |
[in] | ia | array of length (size + 1) containing start and end indices for each row |
[in] | ja | array of length nonzeros containing column numbers for the nonzero elements |
[in] | sa | array of length nonzeros containing the values of the nonzero elements |
[in] | rhs | array of length size containing the right hand side |
[in,out] | solution | array of length size to which the solution will be written, may also be used as initial guess by iterative solvers. |
Implements Opm::LinearSolverInterface.
The documentation for this class was generated from the following file:
|