Opm::SimulatorIncompTwophase Class Reference

Class collecting all necessary components for a two-phase simulation. More...

#include <SimulatorIncompTwophase.hpp>

Public Member Functions

 SimulatorIncompTwophase (const parameter::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)
 
SimulatorReport run (SimulatorTimer &timer, TwophaseState &state, WellState &well_state)
 
Eventtimestep_completed ()
 
void sync ()
 

Detailed Description

Class collecting all necessary components for a two-phase simulation.

Constructor & Destructor Documentation

Opm::SimulatorIncompTwophase::SimulatorIncompTwophase ( const parameter::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.

Parameters
[in]paramparameters, 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).

Parameters
[in]gridgrid data structure
[in]propsfluid and rock properties
[in]rock_comp_propsif non-null, rock compressibility properties
[in]well_managerwell manager, may manage no (null) wells
[in]srcsource terms
[in]bcsboundary conditions, treat as all noflow if null
[in]linsolverlinear solver
[in]gravityif non-null, gravity vector

Member Function Documentation

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.

Parameters
[in,out]timergoverns the requested reporting timesteps
[in,out]statestate of reservoir: pressure, fluxes
[in,out]well_statestate of wells: bhp, perforation rates
Returns
simulation report, with timing data
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.

Note
This should only be called from within a notification which has been setup with timestep_completed(). Avoid calling this method outside of run().
See also
Opm::SimulatorIncompTwophase::run, Opm::SimulatorIncompTwophase::timestep_completed
Event& Opm::SimulatorIncompTwophase::timestep_completed ( )

The documentation for this class was generated from the following file: