My Project
Loading...
Searching...
No Matches
Opm::NonlinearSolverEbos< TypeTag, PhysicalModel > Class Template Reference

A nonlinear solver class suitable for general fully-implicit models, as well as pressure, transport and sequential models. More...

#include <NonlinearSolverEbos.hpp>

Classes

struct  SolverParameters
 

Public Member Functions

 NonlinearSolverEbos (const SolverParameters &param, std::unique_ptr< PhysicalModel > model)
 Construct solver for a given model.
 
SimulatorReportSingle step (const SimulatorTimerInterface &timer)
 
const SimulatorReportSinglefailureReport () const
 return the statistics if the step() method failed
 
int linearizations () const
 Number of linearizations used in all calls to step().
 
int nonlinearIterations () const
 Number of full nonlinear solver iterations used in all calls to step().
 
int linearIterations () const
 Number of linear solver iterations used in all calls to step().
 
int wellIterations () const
 Number of well iterations used in all calls to step().
 
int nonlinearIterationsLastStep () const
 Number of nonlinear solver iterations used in the last call to step().
 
int linearIterationsLastStep () const
 Number of linear solver iterations used in the last call to step().
 
int wellIterationsLastStep () const
 Number of well iterations used in all calls to step().
 
std::vector< std::vector< double > > computeFluidInPlace (const std::vector< int > &fipnum) const
 
const PhysicalModelmodel () const
 Reference to physical model.
 
PhysicalModelmodel ()
 Mutable reference to physical model.
 
void detectOscillations (const std::vector< std::vector< double > > &residualHistory, const int it, bool &oscillate, bool &stagnate) const
 Detect oscillation or stagnation in a given residual history.
 
template<class BVector >
void stabilizeNonlinearUpdate (BVector &dx, BVector &dxOld, const double omega) const
 Apply a stabilization to dx, depending on dxOld and relaxation parameters.
 
double relaxMax () const
 The greatest relaxation factor (i.e. smallest factor) allowed.
 
double relaxIncrement () const
 The step-change size for the relaxation factor.
 
NonlinearRelaxType relaxType () const
 The relaxation type (Dampen or SOR).
 
double relaxRelTol () const
 The relaxation relative tolerance.
 
int maxIter () const
 The maximum number of nonlinear iterations allowed.
 
int minIter () const
 The minimum number of nonlinear iterations allowed.
 
void setParameters (const SolverParameters &param)
 Set parameters to override those given at construction time.
 

Detailed Description

template<class TypeTag, class PhysicalModel>
class Opm::NonlinearSolverEbos< TypeTag, PhysicalModel >

A nonlinear solver class suitable for general fully-implicit models, as well as pressure, transport and sequential models.

Constructor & Destructor Documentation

◆ NonlinearSolverEbos()

template<class TypeTag , class PhysicalModel >
Opm::NonlinearSolverEbos< TypeTag, PhysicalModel >::NonlinearSolverEbos ( const SolverParameters param,
std::unique_ptr< PhysicalModel model 
)
inline

Construct solver for a given model.

The model is a std::unique_ptr because the object to which model points to is not allowed to be deleted as long as the NonlinearSolver object exists.

Parameters
[in]paramparameters controlling nonlinear process
[in,out]modelphysical simulation model.

Member Function Documentation

◆ stabilizeNonlinearUpdate()

template<class TypeTag , class PhysicalModel >
template<class BVector >
void Opm::NonlinearSolverEbos< TypeTag, PhysicalModel >::stabilizeNonlinearUpdate ( BVector &  dx,
BVector &  dxOld,
const double  omega 
) const
inline

Apply a stabilization to dx, depending on dxOld and relaxation parameters.

Implemention for Dune block vectors.


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