This class solves the fully implicit black-oil system by applying a Constrained Pressure Residual preconditioning strategy. More...
#include <NewtonIterationBlackoilCPR.hpp>
Public Member Functions | |
NewtonIterationBlackoilCPR (const ParameterGroup ¶m, const boost::any ¶llelInformation=boost::any()) | |
Construct a system solver. More... | |
virtual SolutionVector | computeNewtonIncrement (const LinearisedBlackoilResidual &residual) 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... | |
virtual int | iterations () const |
virtual const boost::any & | parallelInformation () const |
Get the information about the parallelization of the grid. More... | |
Additional Inherited Members | |
![]() | |
typedef LinearisedBlackoilResidual::ADB::V | SolutionVector |
Return type for linearSolve(). A simple, non-ad vector type. | |
This class solves the fully implicit black-oil system by applying a Constrained Pressure Residual preconditioning strategy.
The approach is similar to the one described in "Preconditioning for Efficiently Applying Algebraic Multigrid in Fully Implicit Reservoir Simulations" by Gries et al (SPE 163608).
Opm::NewtonIterationBlackoilCPR::NewtonIterationBlackoilCPR | ( | const ParameterGroup & | param, |
const boost::any & | parallelInformation = boost::any() |
||
) |
Construct a system solver.
[in] | param | parameters controlling the behaviour of the preconditioning and choice of linear solvers. Parameters: cpr_relax (default 1.0) relaxation for the preconditioner cpr_ilu_n (default 0) use ILU(n) for preconditioning of the linear system cpr_use_amg (default false) if true, use AMG preconditioner for elliptic part cpr_use_bicgstab (default true) if true, use BiCGStab (else use CG) for elliptic part |
[in] | parallelInformation | In the case of a parallel run with dune-istl the information about the parallelization. |
|
virtual |
Solve the system of linear equations Ax = b, with A being the combined derivative matrix of the residual and b being the residual itself.
Solve the linear system Ax = b, with A being the combined derivative matrix of the residual and b being the residual itself.
[in] | residual | residual object containing A and b. |
Implements Opm::NewtonIterationBlackoilInterface.
|
inlinevirtual |
Implements Opm::NewtonIterationBlackoilInterface.
|
virtual |
Get the information about the parallelization of the grid.
Implements Opm::NewtonIterationBlackoilInterface.