This class solves the fully implicit black-oil system by solving the reduced system (after eliminating well variables) as a block-structured matrix (one block for all cell variables) for a fixed number of cell variables np .
More...
|
| ISTLSolver (const NewtonIterationBlackoilInterleavedParameters ¶m, const boost::any ¶llelInformation_arg=boost::any()) |
| Construct a system solver. More...
|
|
| ISTLSolver (const ParameterGroup ¶m, const boost::any ¶llelInformation_arg=boost::any()) |
| Construct a system solver. More...
|
|
SolutionVector | computeNewtonIncrement (const LinearisedBlackoilResidual &) const |
| Solve the linear system Ax = b, with A being the combined derivative matrix of the residual and b being the residual itself. More...
|
|
int | iterations () const |
| Solve the system of linear equations Ax = b, with A being the combined derivative matrix of the residual and b being the residual itself. More...
|
|
const boost::any & | parallelInformation () const |
| Get the information about the parallelization of the grid. More...
|
|
template<int category = Dune::SolverCategory::sequential, class LinearOperator , class POrComm > |
void | constructPreconditionerAndSolve (LinearOperator &linearOperator, Vector &x, Vector &istlb, const POrComm ¶llelInformation_arg, Dune::InverseOperatorResult &result) const |
| construct the CPR preconditioner and the solver. More...
|
|
template<class Operator > |
std::unique_ptr
< SeqPreconditioner > | constructPrecond (Operator &opA, const Dune::Amg::SequentialInformation &) const |
|
template<class LinearOperator , class MatrixOperator , class POrComm , class AMG > |
void | constructAMGPrecond (LinearOperator &, const POrComm &comm, std::unique_ptr< AMG > &amg, std::unique_ptr< MatrixOperator > &opA, const double relax) const |
|
template<class MatrixOperator , class POrComm , class AMG > |
void | constructAMGPrecond (MatrixOperator &opA, const POrComm &comm, std::unique_ptr< AMG > &amg, std::unique_ptr< MatrixOperator > &, const double relax) const |
|
template<class Operator , class ScalarProd , class Precond > |
void | solve (Operator &opA, Vector &x, Vector &istlb, ScalarProd &sp, Precond &precond, Dune::InverseOperatorResult &result) const |
| Solve the system using the given preconditioner and scalar product.
|
|
void | solve (Matrix &A, Vector &x, Vector &b) const |
| Solve the linear system Ax = b, with A being the combined derivative matrix of the residual and b being the residual itself. More...
|
|
template<class Operator , class Comm > |
void | solve (Operator &opA, Vector &x, Vector &b, Comm &comm) const |
| Solve the linear system Ax = b, with A being the combined derivative matrix of the residual and b being the residual itself. More...
|
|
template<class Operator > |
void | solve (Operator &opA, Vector &x, Vector &b) const |
| Solve the linear system Ax = b, with A being the combined derivative matrix of the residual and b being the residual itself. More...
|
|
void | checkConvergence (const Dune::InverseOperatorResult &result) const |
|
template<class MatrixBlockType, class VectorBlockType, int pressureIndex = 0>
class Opm::ISTLSolver< MatrixBlockType, VectorBlockType, pressureIndex >
This class solves the fully implicit black-oil system by solving the reduced system (after eliminating well variables) as a block-structured matrix (one block for all cell variables) for a fixed number of cell variables np .
- Template Parameters
-
MatrixBlockType | The type of the matrix block used. |
VectorBlockType | The type of the vector block used. |
pressureIndex | The index of the pressure component in the vector vector block. It is used to guide the AMG coarsening. Default is zero. |