All Classes Namespaces Files Functions Variables Typedefs Enumerator Pages
Opm::NewtonIterationBlackoilCPR Class Reference

This class solves the fully implicit black-oil system by applying a Constrained Pressure Residual preconditioning strategy. More...

#include <NewtonIterationBlackoilCPR.hpp>

Inheritance diagram for Opm::NewtonIterationBlackoilCPR:
Opm::NewtonIterationBlackoilInterface

Public Member Functions

 NewtonIterationBlackoilCPR (const ParameterGroup &param, const boost::any &parallelInformation=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

- Public Types inherited from Opm::NewtonIterationBlackoilInterface
typedef
LinearisedBlackoilResidual::ADB::V 
SolutionVector
 Return type for linearSolve(). A simple, non-ad vector type.
 

Detailed Description

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).

Constructor & Destructor Documentation

Opm::NewtonIterationBlackoilCPR::NewtonIterationBlackoilCPR ( const ParameterGroup &  param,
const boost::any &  parallelInformation = boost::any() 
)

Construct a system solver.

Parameters
[in]paramparameters 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]parallelInformationIn the case of a parallel run with dune-istl the information about the parallelization.

Member Function Documentation

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.

Parameters
[in]residualresidual object containing A and b.
Returns
the solution x

Implements Opm::NewtonIterationBlackoilInterface.

virtual int Opm::NewtonIterationBlackoilCPR::iterations ( ) const
inlinevirtual

Returns
number of linear iterations used during last call of computeNewtonIncrement

Implements Opm::NewtonIterationBlackoilInterface.

const boost::any & Opm::NewtonIterationBlackoilCPR::parallelInformation ( ) const
virtual

Get the information about the parallelization of the grid.

Implements Opm::NewtonIterationBlackoilInterface.


The documentation for this class was generated from the following files: