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. | |
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. | |
virtual int | iterations () const |
virtual const boost::any & | parallelInformation () const |
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. |
NewtonIterationBlackoilCPR::SolutionVector Opm::NewtonIterationBlackoilCPR::computeNewtonIncrement | ( | const LinearisedBlackoilResidual & | residual | ) | const [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.
virtual int Opm::NewtonIterationBlackoilCPR::iterations | ( | ) | const [inline, virtual] |
Implements Opm::NewtonIterationBlackoilInterface.
const boost::any & Opm::NewtonIterationBlackoilCPR::parallelInformation | ( | ) | const [virtual] |
Get the information about the parallelization of the grid.
Implements Opm::NewtonIterationBlackoilInterface.