Opm::VertEqWrapper< SimulatorType > Struct Template Reference

#include <wrapper.hpp>

Inheritance diagram for Opm::VertEqWrapper< SimulatorType >:
Inheritance graph

Public Member Functions

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

Detailed Description

template<typename SimulatorType>
struct Opm::VertEqWrapper< SimulatorType >

Wrap a certain type of simulator to use for in an vertically upscaled model.

This is its own class just because you cannot in C++ call a templated constructor without the template as any of the parameters. (The template constructor sets up the adapter class). By using an adapter, we don't have to instantiate the wrapper for every simulator class.

Template Parameters
SimulatorTypeType of the underlaying simulator to use for 2D simulations, e.g. SimulatorIncompTwophase.

Constructor & Destructor Documentation

template<typename SimulatorType >
Opm::VertEqWrapper< SimulatorType >::VertEqWrapper ( 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 
)
inline

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

Member Function Documentation

virtual SimulatorReport Opm::VertEqWrapperBase::run ( SimulatorTimer &  timer,
TwophaseState &  state,
WellState &  well_state 
)
virtualinherited

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::VertEqWrapperBase::sync ( )
inherited

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
Event& Opm::VertEqWrapperBase::timestep_completed ( )
inherited

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

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