My Project
|
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>
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< WellModelOpType > | well_operator_ |
std::unique_ptr< AbstractOperatorType > | linear_operator_ |
std::unique_ptr< SolverType > | solver_ |
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_ |
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.