My Project
Opm::ISTLSolverEbosFlexible< 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. More...

#include <ISTLSolverEbosFlexible.hpp>

Public Member Functions

 ISTLSolverEbosFlexible (const Simulator &simulator)
 
void eraseMatrix ()
 
void prepare (SparseMatrixAdapter &mat, VectorType &b)
 
bool solve (VectorType &x)
 
bool isParallel () const
 
int iterations () const
 
void setResidual (VectorType &)
 
void setMatrix (const SparseMatrixAdapter &)
 

Static Public Member Functions

static void registerParameters ()
 

Protected Member Functions

bool shouldCreateSolver () const
 
std::function< VectorType()> getWeightsCalculator (const MatrixType &mat, const VectorType &b) const
 
void makeOverlapRowsInvalid (MatrixType &matrix) const
 Zero out off-diagonal blocks on rows corresponding to overlap cells Diagonal blocks on ovelap rows are set to diag(1.0).
 
VectorType getTrueImpesWeights (const VectorType &b, const int pressureVarIndex) const
 
void writeMatrix ()
 

Protected Attributes

const Simulator & simulator_
 
MatrixType * matrix_
 
std::unique_ptr< WellModelOpTypewell_operator_
 
std::unique_ptr< AbstractOperatorType > linear_operator_
 
std::unique_ptr< SolverTypesolver_
 
FlowLinearSolverParameters parameters_
 
PropertyTree prm_
 
VectorType rhs_
 
Dune::InverseOperatorResult res_
 
std::any parallelInformation_
 
bool ownersFirst_
 
bool matrixAddWellContributions_
 
int interiorCellNum_
 
std::unique_ptr< Communication > comm_
 
std::vector< int > overlapRows_
 
std::vector< int > interiorRows_
 

Detailed Description

template<class TypeTag>
class Opm::ISTLSolverEbosFlexible< 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.

The solvers and preconditioners used are run-time configurable.


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