Opm::Simulator Struct Referenceabstract

#include <simulator.hpp>

Inheritance diagram for Opm::Simulator:
Inheritance graph

Public Member Functions

virtual void init (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)=0
 
virtual ~Simulator ()
 
virtual SimulatorReport run (SimulatorTimer &timer, TwophaseState &state, WellState &well_state)=0
 
virtual Event & timestep_completed ()=0
 
virtual void sync ()=0
 

Detailed Description

Interface to which the underlaying two-phase simulator must adhere.

Notice that it must support delayed construction through the init method which implicates that implementations of this will probably be some kind of smart pointer wrapper.

Constructor & Destructor Documentation

virtual Opm::Simulator::~Simulator ( )
inlinevirtual

Clean up resources added in the wrapper.

Member Function Documentation

virtual void Opm::Simulator::init ( 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 
)
pure virtual

Initialise from parameters and objects to observe.

Parameters
paramParameters for the underlaying simulator class
gridFine-scale grid data structure
propsFluid and rock properties
rock_comp_propsIf non-null, rock compressibility properties
well_managerWell manager, may manage no (null) wells
srcSource terms
bcsBoundary conditions, treat as all noflow if null
linsolverLinear solver
gravityIf non-null, gravity vector

Implemented in Opm::SimulatorAdapter< T >.

virtual SimulatorReport Opm::Simulator::run ( SimulatorTimer &  timer,
TwophaseState &  state,
WellState &  well_state 
)
pure virtual

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

Implemented in Opm::SimulatorAdapter< T >.

virtual void Opm::Simulator::sync ( )
pure virtual

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.

See also
Opm::SimulatorIncompTwophase::sync

Implemented in Opm::SimulatorAdapter< T >.

virtual Event& Opm::Simulator::timestep_completed ( )
pure virtual

Event that is signaled every time the simulator has completed a timestep.

Returns
Reference to the event object where callbacks can be registered.
See also
Opm::SimulatorIncompTwophase::timestep_completed

Implemented in Opm::SimulatorAdapter< T >.


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