|
using | ModelParameters = BlackoilModelParametersEbos< TypeTag > |
|
using | Simulator = GetPropType< TypeTag, Properties::Simulator > |
|
using | Grid = GetPropType< TypeTag, Properties::Grid > |
|
using | ElementContext = GetPropType< TypeTag, Properties::ElementContext > |
|
using | IntensiveQuantities = GetPropType< TypeTag, Properties::IntensiveQuantities > |
|
using | SparseMatrixAdapter = GetPropType< TypeTag, Properties::SparseMatrixAdapter > |
|
using | SolutionVector = GetPropType< TypeTag, Properties::SolutionVector > |
|
using | PrimaryVariables = GetPropType< TypeTag, Properties::PrimaryVariables > |
|
using | FluidSystem = GetPropType< TypeTag, Properties::FluidSystem > |
|
using | Indices = GetPropType< TypeTag, Properties::Indices > |
|
using | MaterialLaw = GetPropType< TypeTag, Properties::MaterialLaw > |
|
using | MaterialLawParams = GetPropType< TypeTag, Properties::MaterialLawParams > |
|
using | Scalar = GetPropType< TypeTag, Properties::Scalar > |
|
using | VectorBlockType = Dune::FieldVector< Scalar, numEq > |
|
using | MatrixBlockType = typename SparseMatrixAdapter::MatrixBlock |
|
using | Mat = typename SparseMatrixAdapter::IstlMatrix |
|
using | BVector = Dune::BlockVector< VectorBlockType > |
|
using | ComponentName = ::Opm::ComponentName< FluidSystem, Indices > |
|
|
| BlackoilModelEbos (Simulator &ebosSimulator, const ModelParameters ¶m, BlackoilWellModel< TypeTag > &well_model, const bool terminal_output) |
| Construct the model.
|
|
bool | isParallel () const |
|
const EclipseState & | eclState () const |
|
SimulatorReportSingle | prepareStep (const SimulatorTimerInterface &timer) |
| Called once before each time step.
|
|
void | initialLinearization (SimulatorReportSingle &report, const int iteration, const int minIter, const SimulatorTimerInterface &timer) |
|
template<class NonlinearSolverType > |
SimulatorReportSingle | nonlinearIteration (const int iteration, const SimulatorTimerInterface &timer, NonlinearSolverType &nonlinear_solver) |
| Called once per nonlinear iteration.
|
|
template<class NonlinearSolverType > |
SimulatorReportSingle | nonlinearIterationNewton (const int iteration, const SimulatorTimerInterface &timer, NonlinearSolverType &nonlinear_solver) |
|
SimulatorReportSingle | afterStep (const SimulatorTimerInterface &) |
| Called once after each time step.
|
|
SimulatorReportSingle | assembleReservoir (const SimulatorTimerInterface &, const int iterationIdx) |
| Assemble the residual and Jacobian of the nonlinear system.
|
|
double | relativeChange () const |
|
int | linearIterationsLastSolve () const |
| Number of linear iterations used in last call to solveJacobianSystem().
|
|
double & | linearSolveSetupTime () |
|
void | solveJacobianSystem (BVector &x) |
| Solve the Jacobian system Jx = r where J is the Jacobian and r is the residual.
|
|
void | updateSolution (const BVector &dx) |
| Apply an update to the primary variables.
|
|
bool | terminalOutputEnabled () const |
| Return true if output to cout is wanted.
|
|
std::tuple< double, double > | convergenceReduction (Parallel::Communication comm, const double pvSumLocal, const double numAquiferPvSumLocal, std::vector< Scalar > &R_sum, std::vector< Scalar > &maxCoeff, std::vector< Scalar > &B_avg) |
|
std::pair< double, double > | localConvergenceData (std::vector< Scalar > &R_sum, std::vector< Scalar > &maxCoeff, std::vector< Scalar > &B_avg, std::vector< int > &maxCoeffCell) |
| Get reservoir quantities on this process needed for convergence calculations.
|
|
double | computeCnvErrorPv (const std::vector< Scalar > &B_avg, double dt) |
| Compute the total pore volume of cells violating CNV that are not part of a numerical aquifer.
|
|
void | updateTUNING (const Tuning &tuning) |
|
ConvergenceReport | getReservoirConvergence (const double reportTime, const double dt, const int iteration, std::vector< Scalar > &B_avg, std::vector< Scalar > &residual_norms) |
|
ConvergenceReport | getConvergence (const SimulatorTimerInterface &timer, const int iteration, std::vector< double > &residual_norms) |
| Compute convergence based on total mass balance (tol_mb) and maximum residual mass balance (tol_cnv).
|
|
int | numPhases () const |
| The number of active fluid phases in the model.
|
|
template<class T > |
std::vector< std::vector< double > > | computeFluidInPlace (const T &, const std::vector< int > &fipnum) const |
| Wrapper required due to not following generic API.
|
|
std::vector< std::vector< double > > | computeFluidInPlace (const std::vector< int > &) const |
| Should not be called.
|
|
const Simulator & | ebosSimulator () const |
|
Simulator & | ebosSimulator () |
|
const SimulatorReportSingle & | failureReport () const |
| return the statistics if the nonlinearIteration() method failed
|
|
SimulatorReportSingle | localAccumulatedReports () const |
| return the statistics if the nonlinearIteration() method failed
|
|
const std::vector< StepReport > & | stepReports () const |
|
BlackoilWellModel< TypeTag > & | wellModel () |
| return the StandardWells object
|
|
const BlackoilWellModel< TypeTag > & | wellModel () const |
|
void | beginReportStep () |
|
void | endReportStep () |
|
template<class FluidState , class Residual > |
void | getMaxCoeff (const unsigned cell_idx, const IntensiveQuantities &intQuants, const FluidState &fs, const Residual &ebosResid, const Scalar pvValue, std::vector< Scalar > &B_avg, std::vector< Scalar > &R_sum, std::vector< Scalar > &maxCoeff, std::vector< int > &maxCoeffCell) |
|
const ModelParameters & | param () const |
| Returns const reference to model parameters.
|
|
const ComponentName & | compNames () const |
| Returns const reference to component names.
|
|
template<
class TypeTag>
class Opm::BlackoilModelEbos< TypeTag >
A model implementation for three-phase black oil.
The simulator is capable of handling three-phase problems where gas can be dissolved in oil and vice versa. It uses an industry-standard TPFA discretization with per-phase upwind weighting of mobilities.