All Classes Namespaces Files Functions Variables Typedefs Enumerator Pages
Opm::SimulatorIncompTwophase Class Reference

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

#include <SimulatorIncompTwophase.hpp>

Classes

struct  Impl
 

Public Member Functions

 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. More...
 
SimulatorReport run (SimulatorTimer &timer, TwophaseState &state, WellState &well_state)
 Run the simulation. More...
 
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. More...
 

Detailed Description

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

Constructor & Destructor Documentation

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.

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

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