opm-simulators
Loading...
Searching...
No Matches
Opm::ISTLSolverRuntimeOptionProxy< TypeTag > Class Template Reference

ISTLSolverRuntimeOptionProxy selects the appropriate ISTLSolver runtime based on CLI options. More...

#include <ISTLSolverRuntimeOptionProxy.hpp>

Inheritance diagram for Opm::ISTLSolverRuntimeOptionProxy< TypeTag >:
Opm::AbstractISTLSolver< GetPropType< TypeTag, Properties::SparseMatrixAdapter >, GetPropType< TypeTag, Properties::GlobalEqVector > >

Public Types

using SparseMatrixAdapter = GetPropType<TypeTag, Properties::SparseMatrixAdapter>
using Vector = GetPropType<TypeTag, Properties::GlobalEqVector>
using Simulator = GetPropType<TypeTag, Properties::Simulator>
using Matrix = typename SparseMatrixAdapter::IstlMatrix
using CommunicationType = Dune::Communication<int>
Public Types inherited from Opm::AbstractISTLSolver< GetPropType< TypeTag, Properties::SparseMatrixAdapter >, GetPropType< TypeTag, Properties::GlobalEqVector > >
using CommunicationType
using Matrix

Public Member Functions

 ISTLSolverRuntimeOptionProxy (const Simulator &simulator, const FlowLinearSolverParameters &parameters, bool forceSerial=false)
 Construct a system solver.
 ISTLSolverRuntimeOptionProxy (const Simulator &simulator)
 Construct a system solver.
void eraseMatrix () override
 Signals that the memory for the matrix internally in the solver could be erased.
void setActiveSolver (int num) override
 Set the active solver by its index.
int numAvailableSolvers () const override
 Get the number of available solvers.
void prepare (const SparseMatrixAdapter &M, Vector &b) override
void prepare (const Matrix &M, Vector &b) override
void setResidual (Vector &b) override
void getResidual (Vector &b) const override
void setMatrix (const SparseMatrixAdapter &M) override
bool solve (Vector &x) override
int iterations () const override
 Get the number of iterations used in the last solve.
const CommunicationType * comm () const override
 Get the communication object used by the solver.
int getSolveCount () const override
 Get the count of how many times the solver has been called.
Public Member Functions inherited from Opm::AbstractISTLSolver< GetPropType< TypeTag, Properties::SparseMatrixAdapter >, GetPropType< TypeTag, Properties::GlobalEqVector > >
virtual void prepare (const Matrix &M, GetPropType< TypeTag, Properties::GlobalEqVector > &b)=0
 Prepare the solver with the given matrix and right-hand side vector.
virtual void setResidual (GetPropType< TypeTag, Properties::GlobalEqVector > &b)=0
 Set the residual vector.
virtual void getResidual (GetPropType< TypeTag, Properties::GlobalEqVector > &b) const=0
 Get the residual vector.
virtual void setMatrix (const SparseMatrixAdapter &M)=0
 Set the matrix for the solver.
virtual bool solve (GetPropType< TypeTag, Properties::GlobalEqVector > &x)=0
 Solve the system of equations Ax = b.

Static Public Member Functions

static void registerParameters ()

Additional Inherited Members

Static Protected Member Functions inherited from Opm::AbstractISTLSolver< GetPropType< TypeTag, Properties::SparseMatrixAdapter >, GetPropType< TypeTag, Properties::GlobalEqVector > >
static bool checkConvergence (const Dune::InverseOperatorResult &result, const FlowLinearSolverParameters &parameters)
 Check the convergence of the linear solver.

Detailed Description

template<class TypeTag>
class Opm::ISTLSolverRuntimeOptionProxy< TypeTag >

ISTLSolverRuntimeOptionProxy selects the appropriate ISTLSolver runtime based on CLI options.

Constructor & Destructor Documentation

◆ ISTLSolverRuntimeOptionProxy() [1/2]

template<class TypeTag>
Opm::ISTLSolverRuntimeOptionProxy< TypeTag >::ISTLSolverRuntimeOptionProxy ( const Simulator & simulator,
const FlowLinearSolverParameters & parameters,
bool forceSerial = false )
inline

Construct a system solver.

Parameters
[in]simulatorThe opm-models simulator object
[in]parametersExplicit parameters for solver setup, do not read them from command line parameters.
[in]forceSerialIf true, will set up a serial linear solver only, local to the current rank, instead of creating a parallel (MPI distributed) linear solver.

◆ ISTLSolverRuntimeOptionProxy() [2/2]

template<class TypeTag>
Opm::ISTLSolverRuntimeOptionProxy< TypeTag >::ISTLSolverRuntimeOptionProxy ( const Simulator & simulator)
inlineexplicit

Construct a system solver.

Parameters
[in]simulatorThe opm-models simulator object

Member Function Documentation

◆ comm()

template<class TypeTag>
const CommunicationType * Opm::ISTLSolverRuntimeOptionProxy< TypeTag >::comm ( ) const
inlineoverridevirtual

Get the communication object used by the solver.

This method returns a pointer to the communication object used by the solver.

Returns
A pointer to the communication object.

Implements Opm::AbstractISTLSolver< GetPropType< TypeTag, Properties::SparseMatrixAdapter >, GetPropType< TypeTag, Properties::GlobalEqVector > >.

◆ eraseMatrix()

template<class TypeTag>
void Opm::ISTLSolverRuntimeOptionProxy< TypeTag >::eraseMatrix ( )
inlineoverridevirtual

Signals that the memory for the matrix internally in the solver could be erased.

Note
This call could be ignored by the solver, but it is a hint that the solver does not need the matrix anymore.

Implements Opm::AbstractISTLSolver< GetPropType< TypeTag, Properties::SparseMatrixAdapter >, GetPropType< TypeTag, Properties::GlobalEqVector > >.

◆ getSolveCount()

template<class TypeTag>
int Opm::ISTLSolverRuntimeOptionProxy< TypeTag >::getSolveCount ( ) const
inlineoverridevirtual

Get the count of how many times the solver has been called.

This method returns the number of times the solve() method has been called.

Returns
The count of solve calls.

Implements Opm::AbstractISTLSolver< GetPropType< TypeTag, Properties::SparseMatrixAdapter >, GetPropType< TypeTag, Properties::GlobalEqVector > >.

◆ iterations()

template<class TypeTag>
int Opm::ISTLSolverRuntimeOptionProxy< TypeTag >::iterations ( ) const
inlineoverridevirtual

Get the number of iterations used in the last solve.

This method returns the number of iterations that the solver performed during the last call to solve().

Returns
The number of iterations.
Note
This value is only valid after a call to solve().

Implements Opm::AbstractISTLSolver< GetPropType< TypeTag, Properties::SparseMatrixAdapter >, GetPropType< TypeTag, Properties::GlobalEqVector > >.

◆ numAvailableSolvers()

template<class TypeTag>
int Opm::ISTLSolverRuntimeOptionProxy< TypeTag >::numAvailableSolvers ( ) const
inlineoverridevirtual

Get the number of available solvers.

Returns
The number of solvers that can be used.

Implements Opm::AbstractISTLSolver< GetPropType< TypeTag, Properties::SparseMatrixAdapter >, GetPropType< TypeTag, Properties::GlobalEqVector > >.

◆ setActiveSolver()

template<class TypeTag>
void Opm::ISTLSolverRuntimeOptionProxy< TypeTag >::setActiveSolver ( int num)
inlineoverridevirtual

Set the active solver by its index.

Parameters
numThe index of the solver to set as active.
Note
The index corresponds to the order in which solvers are registered.

Implements Opm::AbstractISTLSolver< GetPropType< TypeTag, Properties::SparseMatrixAdapter >, GetPropType< TypeTag, Properties::GlobalEqVector > >.


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