My Project
Loading...
Searching...
No Matches
Opm::ISTLSolverEbosBda< TypeTag > Class Template Reference

This class solves the fully implicit black-oil system by solving the reduced system (after eliminating well variables) as a block-structured matrix (one block for all cell variables) for a fixed number of cell variables np . More...

#include <ISTLSolverEbosBda.hpp>

Inheritance diagram for Opm::ISTLSolverEbosBda< TypeTag >:
Opm::ISTLSolverEbos< TypeTag >

Public Types

using AssembledLinearOperatorType = Dune::AssembledLinearOperator< Matrix, Vector, Vector >
 
- Public Types inherited from Opm::ISTLSolverEbos< TypeTag >
using AssembledLinearOperatorType = Dune::AssembledLinearOperator< Matrix, Vector, Vector >
 

Public Member Functions

 ISTLSolverEbosBda (const Simulator &simulator, const FlowLinearSolverParameters &parameters)
 Construct a system solver.
 
 ISTLSolverEbosBda (const Simulator &simulator)
 Construct a system solver.
 
void initializeBda ()
 
void prepare (const Matrix &M, Vector &b)
 
void setResidual (Vector &)
 
void getResidual (Vector &b) const
 
void setMatrix (const SparseMatrixAdapter &)
 
bool solve (Vector &x)
 
- Public Member Functions inherited from Opm::ISTLSolverEbos< TypeTag >
 ISTLSolverEbos (const Simulator &simulator, const FlowLinearSolverParameters &parameters, bool forceSerial=false)
 Construct a system solver.
 
 ISTLSolverEbos (const Simulator &simulator)
 Construct a system solver.
 
void initialize ()
 
void eraseMatrix ()
 
void setActiveSolver (const int num)
 
int numAvailableSolvers ()
 
void prepare (const SparseMatrixAdapter &M, Vector &b)
 
void prepare (const Matrix &M, Vector &b)
 
void setResidual (Vector &)
 
void getResidual (Vector &b) const
 
void setMatrix (const SparseMatrixAdapter &)
 
int getSolveCount () const
 
void resetSolveCount ()
 
bool solve (Vector &x)
 
int iterations () 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.
 
const std::any & parallelInformation () const
 
const CommunicationType * comm () const
 

Protected Types

using ParentType = ISTLSolverEbos< TypeTag >
 
using GridView = GetPropType< TypeTag, Properties::GridView >
 
using Scalar = GetPropType< TypeTag, Properties::Scalar >
 
using SparseMatrixAdapter = GetPropType< TypeTag, Properties::SparseMatrixAdapter >
 
using Vector = GetPropType< TypeTag, Properties::GlobalEqVector >
 
using Indices = GetPropType< TypeTag, Properties::Indices >
 
using WellModel = GetPropType< TypeTag, Properties::EclWellModel >
 
using Simulator = GetPropType< TypeTag, Properties::Simulator >
 
using Matrix = typename SparseMatrixAdapter::IstlMatrix
 
using ThreadManager = GetPropType< TypeTag, Properties::ThreadManager >
 
using ElementContext = GetPropType< TypeTag, Properties::ElementContext >
 
using AbstractSolverType = Dune::InverseOperator< Vector, Vector >
 
using AbstractOperatorType = Dune::AssembledLinearOperator< Matrix, Vector, Vector >
 
using AbstractPreconditionerType = Dune::PreconditionerWithUpdate< Vector, Vector >
 
using WellModelOperator = WellModelAsLinearOperator< WellModel, Vector, Vector >
 
using ElementMapper = GetPropType< TypeTag, Properties::ElementMapper >
 
using CommunicationType = Dune::CollectiveCommunication< int >
 
- Protected Types inherited from Opm::ISTLSolverEbos< TypeTag >
using GridView = GetPropType< TypeTag, Properties::GridView >
 
using Scalar = GetPropType< TypeTag, Properties::Scalar >
 
using SparseMatrixAdapter = GetPropType< TypeTag, Properties::SparseMatrixAdapter >
 
using Vector = GetPropType< TypeTag, Properties::GlobalEqVector >
 
using Indices = GetPropType< TypeTag, Properties::Indices >
 
using WellModel = GetPropType< TypeTag, Properties::EclWellModel >
 
using Simulator = GetPropType< TypeTag, Properties::Simulator >
 
using Matrix = typename SparseMatrixAdapter::IstlMatrix
 
using ThreadManager = GetPropType< TypeTag, Properties::ThreadManager >
 
using ElementContext = GetPropType< TypeTag, Properties::ElementContext >
 
using AbstractSolverType = Dune::InverseOperator< Vector, Vector >
 
using AbstractOperatorType = Dune::AssembledLinearOperator< Matrix, Vector, Vector >
 
using AbstractPreconditionerType = Dune::PreconditionerWithUpdate< Vector, Vector >
 
using WellModelOperator = WellModelAsLinearOperator< WellModel, Vector, Vector >
 
using ElementMapper = GetPropType< TypeTag, Properties::ElementMapper >
 
using CommunicationType = Dune::CollectiveCommunication< int >
 

Protected Attributes

std::unique_ptr< detail::BdaSolverInfo< Matrix, Vector > > bdaBridge_
 
- Protected Attributes inherited from Opm::ISTLSolverEbos< TypeTag >
const Simulator & simulator_
 
int iterations_
 
int solveCount_
 
bool converged_
 
std::any parallelInformation_
 
Matrix * matrix_
 
Vector * rhs_
 
int activeSolverNum_ = 0
 
std::vector< detail::FlexibleSolverInfo< Matrix, Vector, CommunicationType > > flexibleSolver_
 
std::vector< intoverlapRows_
 
std::vector< intinteriorRows_
 
bool useWellConn_
 
std::vector< FlowLinearSolverParametersparameters_
 
bool forceSerial_ = false
 
std::vector< PropertyTreeprm_
 
std::shared_ptr< CommunicationType > comm_
 

Static Protected Attributes

static constexpr std::size_t pressureIndex = GetPropType<TypeTag, Properties::Indices>::pressureSwitchIdx
 
- Static Protected Attributes inherited from Opm::ISTLSolverEbos< TypeTag >
static constexpr std::size_t pressureIndex = GetPropType<TypeTag, Properties::Indices>::pressureSwitchIdx
 

Additional Inherited Members

- Static Public Member Functions inherited from Opm::ISTLSolverEbos< TypeTag >
static void registerParameters ()
 
- Protected Member Functions inherited from Opm::ISTLSolverEbos< TypeTag >
void checkConvergence (const Dune::InverseOperatorResult &result) const
 
bool isParallel () const
 
void prepareFlexibleSolver ()
 
bool shouldCreateSolver () const
 Return true if we should (re)create the whole solver, instead of just calling update() on the preconditioner.
 
Vector getTrueImpesWeights (int pressureVarIndex) const
 
Matrix & getMatrix ()
 
const Matrix & getMatrix () const
 

Detailed Description

template<class TypeTag>
class Opm::ISTLSolverEbosBda< TypeTag >

This class solves the fully implicit black-oil system by solving the reduced system (after eliminating well variables) as a block-structured matrix (one block for all cell variables) for a fixed number of cell variables np .

Constructor & Destructor Documentation

◆ ISTLSolverEbosBda() [1/2]

template<class TypeTag >
Opm::ISTLSolverEbosBda< TypeTag >::ISTLSolverEbosBda ( const Simulator simulator,
const FlowLinearSolverParameters parameters 
)
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.

◆ ISTLSolverEbosBda() [2/2]

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

Construct a system solver.

Parameters
[in]simulatorThe opm-models simulator object

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