|
| | BlackoilModel (Simulator &simulator, 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 int maxIter, 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.
|
|
Scalar | 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< Scalar, Scalar > | convergenceReduction (Parallel::Communication comm, const Scalar pvSumLocal, const Scalar numAquiferPvSumLocal, std::vector< Scalar > &R_sum, std::vector< Scalar > &maxCoeff, std::vector< Scalar > &B_avg) |
| std::pair< Scalar, Scalar > | 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.
|
|
std::pair< std::vector< double >, std::vector< int > > | characteriseCnvPvSplit (const std::vector< Scalar > &B_avg, const double dt) |
| | Compute pore-volume/cell count split among "converged", "relaxed converged", "unconverged" cells based on CNV point measures.
|
|
void | convergencePerCell (const std::vector< Scalar > &B_avg, const double dt, const double tol_cnv, const double tol_cnv_energy, const int iteration) |
| | Compute the number of Newtons required by each cell in order to satisfy the solution change convergence criteria at the last time step.
|
|
void | updateTUNING (const Tuning &tuning) |
|
ConvergenceReport | getReservoirConvergence (const double reportTime, const double dt, const int iteration, const int maxIter, std::vector< Scalar > &B_avg, std::vector< Scalar > &residual_norms) |
| ConvergenceReport | getConvergence (const SimulatorTimerInterface &timer, const int iteration, const int maxIter, std::vector< Scalar > &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< Scalar > > | computeFluidInPlace (const T &, const std::vector< int > &fipnum) const |
| | Wrapper required due to not following generic API.
|
|
std::vector< std::vector< Scalar > > | computeFluidInPlace (const std::vector< int > &) const |
| | Should not be called.
|
|
const Simulator & | simulator () const |
|
Simulator & | simulator () |
|
const SimulatorReportSingle & | failureReport () const |
| | return the statistics if the nonlinearIteration() method failed
|
|
const SimulatorReport & | localAccumulatedReports () const |
| | return the statistics of local solves accumulated for this rank
|
|
const std::vector< SimulatorReport > & | domainAccumulatedReports () const |
| | return the statistics of local solves accumulated for each domain on this rank
|
|
void | writeNonlinearIterationsPerCell (const std::filesystem::path &odir) const |
| | Write the number of nonlinear iterations per cell to a file in ResInsight compatible format.
|
|
const std::vector< StepReport > & | stepReports () const |
|
void | writePartitions (const std::filesystem::path &odir) 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 &modelResid, 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.
|
|
bool | hasNlddSolver () const |
| | Returns true if an NLDD solver exists.
|
|
|
static constexpr int | numEq = Indices::numEq |
|
static constexpr int | contiSolventEqIdx = Indices::contiSolventEqIdx |
|
static constexpr int | contiZfracEqIdx = Indices::contiZfracEqIdx |
|
static constexpr int | contiPolymerEqIdx = Indices::contiPolymerEqIdx |
|
static constexpr int | contiEnergyEqIdx = Indices::contiEnergyEqIdx |
|
static constexpr int | contiPolymerMWEqIdx = Indices::contiPolymerMWEqIdx |
|
static constexpr int | contiFoamEqIdx = Indices::contiFoamEqIdx |
|
static constexpr int | contiBrineEqIdx = Indices::contiBrineEqIdx |
|
static constexpr int | contiMicrobialEqIdx = Indices::contiMicrobialEqIdx |
|
static constexpr int | contiOxygenEqIdx = Indices::contiOxygenEqIdx |
|
static constexpr int | contiUreaEqIdx = Indices::contiUreaEqIdx |
|
static constexpr int | contiBiofilmEqIdx = Indices::contiBiofilmEqIdx |
|
static constexpr int | contiCalciteEqIdx = Indices::contiCalciteEqIdx |
|
static constexpr int | solventSaturationIdx = Indices::solventSaturationIdx |
|
static constexpr int | zFractionIdx = Indices::zFractionIdx |
|
static constexpr int | polymerConcentrationIdx = Indices::polymerConcentrationIdx |
|
static constexpr int | polymerMoleWeightIdx = Indices::polymerMoleWeightIdx |
|
static constexpr int | temperatureIdx = Indices::temperatureIdx |
|
static constexpr int | foamConcentrationIdx = Indices::foamConcentrationIdx |
|
static constexpr int | saltConcentrationIdx = Indices::saltConcentrationIdx |
|
static constexpr int | microbialConcentrationIdx = Indices::microbialConcentrationIdx |
|
static constexpr int | oxygenConcentrationIdx = Indices::oxygenConcentrationIdx |
|
static constexpr int | ureaConcentrationIdx = Indices::ureaConcentrationIdx |
|
static constexpr int | biofilmVolumeFractionIdx = Indices::biofilmVolumeFractionIdx |
|
static constexpr int | calciteVolumeFractionIdx = Indices::calciteVolumeFractionIdx |
template<class TypeTag>
class Opm::BlackoilModel< 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.