Class collecting all necessary components for a two-phase simulation. More...
#include <SimulatorIncompTwophase.hpp>
Classes | |
struct | Impl |
Public Member Functions | |
SimulatorIncompTwophase (const ParameterGroup ¶m, const UnstructuredGrid &grid, const IncompPropertiesInterface &props, const RockCompressibility *rock_comp_props, WellsManager &wells_manager, const std::vector< double > &src, const FlowBoundaryConditions *bcs, LinearSolverInterface &linsolver, const double *gravity) | |
Initialise from parameters and objects to observe. | |
SimulatorReport | run (SimulatorTimer &timer, TwophaseState &state, WellState &well_state) |
Run the simulation. | |
Event & | timestep_completed () |
void | sync () |
Notify the simulator that a callback has an interest in reading for reporting purposes the contents of the state argument that was passed to the run() method. |
Class collecting all necessary components for a two-phase simulation.
Opm::SimulatorIncompTwophase::SimulatorIncompTwophase | ( | const ParameterGroup & | param, | |
const UnstructuredGrid & | grid, | |||
const IncompPropertiesInterface & | props, | |||
const RockCompressibility * | rock_comp_props, | |||
WellsManager & | wells_manager, | |||
const std::vector< double > & | src, | |||
const FlowBoundaryConditions * | bcs, | |||
LinearSolverInterface & | linsolver, | |||
const double * | gravity | |||
) |
Initialise from parameters and objects to observe.
[in] | param | parameters, this class accepts the following: parameter (default) effect ----------------------------------------------------------- output (true) write output to files? output_dir ("output") output directoty output_interval (1) output every nth step nl_pressure_residual_tolerance (0.0) pressure solver residual tolerance (in Pascal) nl_pressure_change_tolerance (1.0) pressure solver change tolerance (in Pascal) nl_pressure_maxiter (10) max nonlinear iterations in pressure nl_maxiter (30) max nonlinear iterations in transport nl_tolerance (1e-9) transport solver absolute residual tolerance num_transport_substeps (1) number of transport steps per pressure step use_segregation_split (false) solve for gravity segregation (if false, segregation is ignored). |
[in] | grid | grid data structure |
[in] | props | fluid and rock properties |
[in] | rock_comp_props | if non-null, rock compressibility properties |
[in] | well_manager | well manager, may manage no (null) wells |
[in] | src | source terms |
[in] | bcs | boundary conditions, treat as all noflow if null |
[in] | linsolver | linear solver |
[in] | gravity | if non-null, gravity vector |
SimulatorReport Opm::SimulatorIncompTwophase::run | ( | SimulatorTimer & | timer, | |
TwophaseState & | state, | |||
WellState & | well_state | |||
) |
Run the simulation.
This will run succesive timesteps until timer.done() is true. It will modify the reservoir and well states.
[in,out] | timer | governs the requested reporting timesteps |
[in,out] | state | state of reservoir: pressure, fluxes |
[in,out] | well_state | state of wells: bhp, perforation rates |
void Opm::SimulatorIncompTwophase::sync | ( | ) |
Notify the simulator that a callback has an interest in reading for reporting purposes the contents of the state argument that was passed to the run() method.
The simulator will then flush any internal state which is currently not reflected in it.