|
| BlackoilPressureModel (const typename Base::ModelParameters ¶m, const Grid &grid, const BlackoilPropsAdFromDeck &fluid, const DerivedGeology &geo, const RockCompressibility *rock_comp_props, const StandardWells &std_wells, const NewtonIterationBlackoilInterface &linsolver, std::shared_ptr< const EclipseState > eclState, const bool has_disgas, const bool has_vapoil, const bool terminal_output) |
| Construct the model. More...
|
|
void | prepareStep (const SimulatorTimerInterface &timer, const ReservoirState &reservoir_state, const WellState &well_state) |
| Called once per timestep.
|
|
V | solveJacobianSystem () const |
| Solve the Jacobian system Jx = r where J is the Jacobian and r is the residual. More...
|
|
| BlackoilModelBase (const ModelParameters ¶m, const Grid &grid, const BlackoilPropsAdFromDeck &fluid, const DerivedGeology &geo, const RockCompressibility *rock_comp_props, const WellModel &well_model, const NewtonIterationBlackoilInterface &linsolver, std::shared_ptr< const EclipseState > eclState, const bool has_disgas, const bool has_vapoil, const bool terminal_output) |
| Construct the model. More...
|
|
void | setThresholdPressures (const std::vector< double > &threshold_pressures_by_face) |
| Set threshold pressures that prevent or reduce flow. More...
|
|
void | prepareStep (const SimulatorTimerInterface &timer, const ReservoirState &reservoir_state, const WellState &well_state) |
| Called once before each time step. More...
|
|
SimulatorReport | nonlinearIteration (const int iteration, const SimulatorTimerInterface &timer, NonlinearSolverType &nonlinear_solver, ReservoirState &reservoir_state, WellState &well_state) |
| Called once per nonlinear iteration. More...
|
|
void | afterStep (const SimulatorTimerInterface &timer, ReservoirState &reservoir_state, WellState &well_state) |
| Called once after each time step. More...
|
|
SimulatorReport | assemble (const ReservoirState &reservoir_state, WellState &well_state, const bool initial_assembly) |
| Assemble the residual and Jacobian of the nonlinear system. More...
|
|
std::vector< double > | computeResidualNorms () const |
| Compute the residual norms of the mass balance for each phase, the well flux, and the well equation. More...
|
|
double | relativeChange (const SimulationDataContainer &previous, const SimulationDataContainer ¤t) const |
| compute the relative change between to simulation states
|
|
int | sizeNonLinear () const |
| The size (number of unknowns) of the nonlinear system of equations.
|
|
int | linearIterationsLastSolve () const |
| Number of linear iterations used in last call to solveJacobianSystem().
|
|
V | solveJacobianSystem () const |
| Solve the Jacobian system Jx = r where J is the Jacobian and r is the residual. More...
|
|
void | updateState (const V &dx, ReservoirState &reservoir_state, WellState &well_state) |
| Apply an update to the primary variables, chopped if appropriate. More...
|
|
bool | isParallel () const |
| Return true if this is a parallel run.
|
|
bool | terminalOutputEnabled () const |
| Return true if output to cout is wanted.
|
|
bool | getConvergence (const SimulatorTimerInterface &timer, const int iteration) |
| Compute convergence based on total mass balance (tol_mb) and maximum residual mass balance (tol_cnv). More...
|
|
int | numPhases () const |
| The number of active fluid phases in the model.
|
|
int | numMaterials () const |
| The number of active materials in the model. More...
|
|
const std::string & | materialName (int material_index) const |
| The name of an active material in the model. More...
|
|
void | updateEquationsScaling () |
| Update the scaling factors for mass balance equations.
|
|
WellModel & | wellModel () |
| return the WellModel object
|
|
const WellModel & | wellModel () const |
|
const SimulatorData & | getSimulatorData (const SimulationDataContainer &) const |
| Return reservoir simulation data (for output functionality)
|
|
FIPDataType | getFIPData () const |
| Return fluid-in-place data (for output functionality)
|
|
std::vector< std::vector< double > > | computeFluidInPlace (const ReservoirState &x, const std::vector< int > &fipnum) |
| Compute fluid in place. More...
|
|
void | computeWellVoidageRates (const ReservoirState &reservoir_state, const WellState &well_state, std::vector< double > &well_voidage_rates, std::vector< double > &voidage_conversion_coeffs) |
| Function to compute the resevoir voidage for the production wells. More...
|
|
void | applyVREPGroupControl (const ReservoirState &reservoir_state, WellState &well_state) |
|
const SimulatorReport & | failureReport () const |
| return the statistics if the nonlinearIteration() method failed. More...
|
|
|
SimulatorReport | assemble (const ReservoirState &reservoir_state, WellState &well_state, const bool initial_assembly) |
|
SolutionState | variableState (const ReservoirState &x, const WellState &xw) const |
|
void | computeAccum (const SolutionState &state, const int aix) |
|
void | assembleMassBalanceEq (const SolutionState &state) |
|
void | updateState (const V &dx, ReservoirState &reservoir_state, WellState &well_state) |
|
bool | getConvergence (const SimulatorTimerInterface &, const int iteration) |
|
BlackoilPressureModel< Grid, WellModel > & | asImpl () |
| Access the most-derived class used for static polymorphism (CRTP). More...
|
|
const BlackoilPressureModel< Grid, WellModel > & | asImpl () const |
| Access the most-derived class used for static polymorphism (CRTP). More...
|
|
const Wells & | wells () const |
| return the Well struct in the WellModel
|
|
bool | wellsActive () const |
| return true if wells are available in the reservoir
|
|
bool | localWellsActive () const |
| return true if wells are available on this process
|
|
void | makeConstantState (SolutionState &state) const |
|
SolutionState | variableState (const ReservoirState &x, const WellState &xw) const |
|
std::vector< V > | variableStateInitials (const ReservoirState &x, const WellState &xw) const |
|
void | variableReservoirStateInitials (const ReservoirState &x, std::vector< V > &vars0) const |
|
std::vector< int > | variableStateIndices () const |
|
SolutionState | variableStateExtractVars (const ReservoirState &x, const std::vector< int > &indices, std::vector< ADB > &vars) const |
|
void | computeAccum (const SolutionState &state, const int aix) |
|
void | assembleMassBalanceEq (const SolutionState &state) |
|
SimulatorReport | solveWellEq (const std::vector< ADB > &mob_perfcells, const std::vector< ADB > &b_perfcells, const ReservoirState &reservoir_state, SolutionState &state, WellState &well_state) |
|
void | addWellContributionToMassBalanceEq (const std::vector< ADB > &cq_s, const SolutionState &state, const WellState &xw) |
|
bool | getWellConvergence (const int iteration) |
|
bool | isVFPActive () const |
|
std::vector< ADB > | computePressures (const ADB &po, const ADB &sw, const ADB &so, const ADB &sg) const |
|
V | computeGasPressure (const V &po, const V &sw, const V &so, const V &sg) const |
|
std::vector< ADB > | computeRelPerm (const SolutionState &state) const |
|
void | computeMassFlux (const int actph, const V &transi, const ADB &kr, const ADB &mu, const ADB &rho, const ADB &p, const SolutionState &state) |
|
void | applyThresholdPressures (ADB &dp) |
|
ADB | fluidViscosity (const int phase, const ADB &p, const ADB &temp, const ADB &rs, const ADB &rv, const std::vector< PhasePresence > &cond) const |
|
ADB | fluidReciprocFVF (const int phase, const ADB &p, const ADB &temp, const ADB &rs, const ADB &rv, const std::vector< PhasePresence > &cond) const |
|
ADB | fluidDensity (const int phase, const ADB &b, const ADB &rs, const ADB &rv) const |
|
V | fluidRsSat (const V &p, const V &so, const std::vector< int > &cells) const |
|
ADB | fluidRsSat (const ADB &p, const ADB &so, const std::vector< int > &cells) const |
|
V | fluidRvSat (const V &p, const V &so, const std::vector< int > &cells) const |
|
ADB | fluidRvSat (const ADB &p, const ADB &so, const std::vector< int > &cells) const |
|
ADB | poroMult (const ADB &p) const |
|
ADB | transMult (const ADB &p) const |
|
const std::vector< PhasePresence > | phaseCondition () const |
|
void | classifyCondition (const ReservoirState &state) |
|
void | updatePrimalVariableFromState (const ReservoirState &state) |
| update the primal variable for Sg, Rv or Rs. More...
|
|
void | updatePhaseCondFromPrimalVariable (const ReservoirState &state) |
| Update the phaseCondition_ member based on the primalVariable_ member. More...
|
|
void | computeWellConnectionPressures (const SolutionState &state, const WellState &well_state) |
|
double | convergenceReduction (const Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic > &B, const Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic > &tempV, const Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic > &R, std::vector< double > &R_sum, std::vector< double > &maxCoeff, std::vector< double > &B_avg, std::vector< double > &maxNormWell, int nc) const |
| Compute the reduction within the convergence check. More...
|
|
void | setupGroupControl (const ReservoirState &reservoir_state, WellState &well_state) |
| Set up the group control related at the beginning of each time step.
|
|
double | dpMaxRel () const |
|
double | dbhpMaxRel () const |
|
double | dsMax () const |
|
double | drMaxRel () const |
|
double | maxResidualAllowed () const |
|
template<class Grid, class WellModel>
class Opm::BlackoilPressureModel< Grid, WellModel >
A model implementation for the pressure equation in three-phase black oil.
The model is based on the normal black oil model. It uses automatic differentiation via the class AutoDiffBlock to simplify assembly of the jacobian matrix.