Class collecting all necessary components for a two-phase simulation. More...
#include <SimulatorPolymer.hpp>
Classes | |
class | Impl |
Public Member Functions | |
SimulatorPolymer (const ParameterGroup ¶m, const UnstructuredGrid &grid, const IncompPropertiesInterface &props, const PolymerProperties &poly_props, const RockCompressibility *rock_comp_props, WellsManager &wells_manager, const PolymerInflowInterface &polymer_inflow, 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, PolymerState &state, WellState &well_state) |
Run the simulation. More... | |
const SimulatorReport & | failureReport () const |
return the statistics if the nonlinearIteration() method failed. More... | |
Class collecting all necessary components for a two-phase simulation.
Opm::SimulatorPolymer::SimulatorPolymer | ( | const ParameterGroup & | param, |
const UnstructuredGrid & | grid, | ||
const IncompPropertiesInterface & | props, | ||
const PolymerProperties & | poly_props, | ||
const RockCompressibility * | rock_comp_props, | ||
WellsManager & | wells_manager, | ||
const PolymerInflowInterface & | polymer_inflow, | ||
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] | poly_props | polymer properties |
[in] | rock_comp_props | if non-null, rock compressibility properties |
[in] | wells_manager | well manager, may manage no (null) wells |
[in] | polymer_inflow | polymer inflow controls |
[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 |
|
inline |
return the statistics if the nonlinearIteration() method failed.
NOTE: for the flow_legacy simulator family this method is a stub, i.e. the failure report object will not contain any meaningful data.
SimulatorReport Opm::SimulatorPolymer::run | ( | SimulatorTimer & | timer, |
PolymerState & | 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, polymer concentration, saturations. |
[in,out] | well_state | state of wells: bhp, perforation rates |