My Project
|
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 ¶m, std::unique_ptr< PhysicalModel > model) | |
Construct solver for a given model. More... | |
SimulatorReportSingle | step (const SimulatorTimerInterface &timer) |
const SimulatorReportSingle & | failureReport () 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 PhysicalModel & | model () const |
Reference to physical model. | |
PhysicalModel & | model () |
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. More... | |
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 ¶m) |
Set parameters to override those given at construction time. | |
A nonlinear solver class suitable for general fully-implicit models, as well as pressure, transport and sequential models.
|
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.
[in] | param | parameters controlling nonlinear process |
[in,out] | model | physical simulation model. |
|
inline |
Apply a stabilization to dx, depending on dxOld and relaxation parameters.
Implemention for Dune block vectors.