A model implementation for three-phase black oil with support for multi-segment wells. More...
#include <BlackoilMultiSegmentModel.hpp>
Public Types | |
typedef BlackoilModelBase < Grid, MultisegmentWells, BlackoilMultiSegmentModel < Grid > > | Base |
typedef Base::ReservoirState | ReservoirState |
typedef Base::WellState | WellState |
typedef BlackoilMultiSegmentSolutionState | SolutionState |
Public Member Functions | |
BlackoilMultiSegmentModel (const typename Base::ModelParameters ¶m, const Grid &grid, const BlackoilPropsAdFromDeck &fluid, const DerivedGeology &geo, const RockCompressibility *rock_comp_props, const MultisegmentWells &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. | |
void | prepareStep (const SimulatorTimerInterface &timer, const ReservoirState &reservoir_state, const WellState &well_state) |
Called once before each time step. | |
SimulatorReport | assemble (const ReservoirState &reservoir_state, WellState &well_state, const bool initial_assembly) |
Assemble the residual and Jacobian of the nonlinear system. | |
Public Attributes | |
friend | Base |
Protected Member Functions | |
const std::vector < WellMultiSegmentConstPtr > & | wellsMultiSegment () const |
const MultisegmentWells::MultisegmentWellOps & | msWellOps () const |
SimulatorReport | solveWellEq (const std::vector< ADB > &mob_perfcells, const std::vector< ADB > &b_perfcells, const ReservoirState &reservoir_state, SolutionState &state, WellState &well_state) |
void | makeConstantState (SolutionState &state) const |
void | computeWellConnectionPressures (const SolutionState &state, const WellState &well_state) |
A model implementation for three-phase black oil with support for multi-segment wells.
It uses automatic differentiation via the class AutoDiffBlock to simplify assembly of the jacobian matrix.
Grid | UnstructuredGrid or CpGrid. | |
Implementation | Provides concrete state types. |
Opm::BlackoilMultiSegmentModel< Grid >::BlackoilMultiSegmentModel | ( | const typename Base::ModelParameters & | param, | |
const Grid & | grid, | |||
const BlackoilPropsAdFromDeck & | fluid, | |||
const DerivedGeology & | geo, | |||
const RockCompressibility * | rock_comp_props, | |||
const MultisegmentWells & | well_model, | |||
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 | well structure |
[in] | vfp_properties | Vertical flow performance tables |
[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 |
[in] | wells_multisegment | a vector of multisegment wells |
SimulatorReport Opm::BlackoilMultiSegmentModel< Grid >::assemble | ( | const ReservoirState & | reservoir_state, | |
WellState & | well_state, | |||
const bool | initial_assembly | |||
) | [inline] |
Assemble the residual and Jacobian of the nonlinear system.
[in] | reservoir_state | reservoir state variables |
[in,out] | well_state | well state variables |
[in] | initial_assembly | pass true if this is the first call to assemble() in this timestep |
void Opm::BlackoilMultiSegmentModel< Grid >::prepareStep | ( | const SimulatorTimerInterface & | timer, | |
const ReservoirState & | reservoir_state, | |||
const WellState & | well_state | |||
) | [inline] |
Called once before each time step.
[in] | timer | simulation timer |
[in,out] | reservoir_state | reservoir state variables |
[in,out] | well_state | well state variables |