A model implementation for the transport equation in three-phase black oil. More...
#include <BlackoilTransportModel.hpp>
Public Types | |
typedef BlackoilModelBase < Grid, WellModel, BlackoilTransportModel< Grid, WellModel > > | Base |
typedef Base::ReservoirState | ReservoirState |
typedef Base::WellState | WellState |
typedef Base::SolutionState | SolutionState |
typedef Base::V | V |
Public Member Functions | |
BlackoilTransportModel (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. | |
void | prepareStep (const SimulatorTimerInterface &timer, const ReservoirState &reservoir_state, const WellState &well_state) |
SimulatorReport | assemble (const ReservoirState &reservoir_state, WellState &well_state, const bool initial_assembly) |
V | solveJacobianSystem () const |
Solve the Jacobian system Jx = r where J is the Jacobian and r is the residual. | |
Public Attributes | |
friend | Base |
Protected Member Functions | |
SolutionState | variableState (const ReservoirState &x, const WellState &xw) const |
void | assembleMassBalanceEq (const SolutionState &state) |
Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic > | multiPhaseUpwind (const std::vector< ADB > &head_diff, const V &transmissibility) |
void | computeWellFlux (const SolutionState &state, const std::vector< ADB > &mob_perfcells, const std::vector< ADB > &b_perfcells, V &, std::vector< ADB > &cq_s) const |
bool | getConvergence (const SimulatorTimerInterface &timer, const int iteration) |
Compute convergence based on total mass balance (tol_mb) and maximum residual mass balance (tol_cnv). | |
Protected Attributes | |
V | total_flux_ |
V | total_wellperf_flux_ |
DataBlock | comp_wellperf_flux_ |
Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic > | upwind_flags_ |
A model implementation for the transport equation in three-phase black oil.
Opm::BlackoilTransportModel< Grid, WellModel >::BlackoilTransportModel | ( | 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::BlackoilTransportModel< 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, BlackoilTransportModel< Grid, WellModel > >.
V Opm::BlackoilTransportModel< Grid, WellModel >::solveJacobianSystem | ( | ) | const [inline] |
Solve the Jacobian system Jx = r where J is the Jacobian and r is the residual.
Reimplemented from Opm::BlackoilModelBase< Grid, WellModel, BlackoilTransportModel< Grid, WellModel > >.