A model implementation for the pressure equation in three-phase black oil. More...
#include <BlackoilPressureModel.hpp>
Public Types | |
typedef BlackoilModelBase < Grid, WellModel, BlackoilPressureModel< Grid, WellModel > > | Base |
typedef Base::ReservoirState | ReservoirState |
typedef Base::WellState | WellState |
typedef Base::SolutionState | SolutionState |
typedef Base::V | V |
Public Member Functions | |
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. | |
Public Attributes | |
friend | Base |
Protected Member Functions | |
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) |
Compute convergence based on total mass balance (tol_mb) and maximum residual mass balance (tol_cnv). | |
Protected Attributes | |
SolutionState | state0_ |
double | max_dp_rel_ = std::numeric_limits<double>::infinity() |
ADB | scaling_ [3] = { ADB::null(), ADB::null(), ADB::null() } |
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.
Opm::BlackoilPressureModel< Grid, WellModel >::BlackoilPressureModel | ( | const typename Base::ModelParameters & | param, | |
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 | |||
) | [inline] |
Construct the model.
It will retain references to the arguments of this functions, and they are expected to remain in scope for the lifetime of the solver.
[in] | param | parameters |
[in] | grid | grid data structure |
[in] | fluid | fluid properties |
[in] | geo | rock properties |
[in] | rock_comp_props | if non-null, rock compressibility properties |
[in] | wells_arg | well structure |
[in] | linsolver | linear solver |
[in] | eclState | eclipse state |
[in] | has_disgas | turn on dissolved gas |
[in] | has_vapoil | turn on vaporized oil feature |
[in] | terminal_output | request output to cout/cerr |
bool Opm::BlackoilPressureModel< Grid, WellModel >::getConvergence | ( | const SimulatorTimerInterface & | timer, | |
const int | iteration | |||
) | [inline, protected] |
Compute convergence based on total mass balance (tol_mb) and maximum residual mass balance (tol_cnv).
[in] | timer | simulation timer |
[in] | iteration | current iteration number |
Reimplemented from Opm::BlackoilModelBase< Grid, WellModel, BlackoilPressureModel< Grid, WellModel > >.