My Project
Loading...
Searching...
No Matches
Opm::SimulatorFullyImplicitBlackoilEbos< TypeTag > Class Template Reference

a simulator for the blackoil model More...

#include <SimulatorFullyImplicitBlackoilEbos.hpp>

Public Types

using Simulator = GetPropType< TypeTag, Properties::Simulator >
 
using Grid = GetPropType< TypeTag, Properties::Grid >
 
using FluidSystem = GetPropType< TypeTag, Properties::FluidSystem >
 
using ElementContext = GetPropType< TypeTag, Properties::ElementContext >
 
using BlackoilIndices = GetPropType< TypeTag, Properties::Indices >
 
using PrimaryVariables = GetPropType< TypeTag, Properties::PrimaryVariables >
 
using MaterialLaw = GetPropType< TypeTag, Properties::MaterialLaw >
 
using SolutionVector = GetPropType< TypeTag, Properties::SolutionVector >
 
using MaterialLawParams = GetPropType< TypeTag, Properties::MaterialLawParams >
 
using AquiferModel = GetPropType< TypeTag, Properties::EclAquiferModel >
 
typedef AdaptiveTimeSteppingEbos< TypeTag > TimeStepper
 
typedef BlackOilPolymerModule< TypeTag > PolymerModule
 
typedef BlackOilMICPModule< TypeTag > MICPModule
 
typedef BlackoilModelEbos< TypeTag > Model
 
typedef NonlinearSolverEbos< TypeTag, ModelSolver
 
typedef Model::ModelParameters ModelParameters
 
typedef Solver::SolverParameters SolverParameters
 
typedef BlackoilWellModel< TypeTag > WellModel
 

Public Member Functions

 SimulatorFullyImplicitBlackoilEbos (Simulator &ebosSimulator)
 Initialise from parameters and objects to observe.
 
SimulatorReport run (SimulatorTimer &timer)
 Run the simulation.
 
void init (SimulatorTimer &timer)
 
bool runStep (SimulatorTimer &timer)
 
SimulatorReport finalize ()
 
const Gridgrid () const
 
template<class Serializer >
void serializeOp (Serializer &serializer)
 

Static Public Member Functions

static void registerParameters ()
 

Protected Member Functions

std::unique_ptr< SolvercreateSolver (WellModel &wellModel)
 
const EclipseState & eclState () const
 
const Scheduleschedule () const
 
bool isRestart () const
 
WellModelwellModel_ ()
 
const WellModelwellModel_ () const
 
void startConvergenceOutputThread (std::string_view convOutputOptions, std::string_view optionName)
 
void writeConvergenceOutput (std::vector< StepReport > &&reports)
 
void endConvergenceOutputThread ()
 
void handleSave (SimulatorTimer &timer)
 Serialization of simulator data to .OPMRST files at end of report steps.
 
void loadTimerInfo (SimulatorTimer &timer)
 Load timer info from serialized state.
 
void loadSimulatorState ()
 Load simulator state from serialized state.
 

Protected Attributes

Simulator & ebosSimulator_
 
std::unique_ptr< WellConnectionAuxiliaryModule< TypeTag > > wellAuxMod_
 
ModelParameters modelParam_
 
SolverParameters solverParam_
 
PhaseUsage phaseUsage_
 
bool terminalOutput_
 
SimulatorReport report_
 
std::unique_ptr< time::StopWatch > solverTimer_
 
std::unique_ptr< time::StopWatch > totalTimer_
 
std::unique_ptr< TimeStepperadaptiveTimeStepping_
 
std::optional< ConvergenceReportQueueconvergenceOutputQueue_ {}
 
std::optional< ConvergenceOutputThreadconvergenceOutputObject_ {}
 
std::optional< std::thread > convergenceOutputThread_ {}
 
int saveStride_ = -1
 Stride to save serialized state at.
 
int saveStep_ = -1
 Specific step to save serialized state at.
 
int loadStep_ = -1
 Step to load serialized state from.
 
std::string saveFile_
 File to load/save serialized state from/to.
 

Detailed Description

template<class TypeTag>
class Opm::SimulatorFullyImplicitBlackoilEbos< TypeTag >

a simulator for the blackoil model

Constructor & Destructor Documentation

◆ SimulatorFullyImplicitBlackoilEbos()

template<class TypeTag >
Opm::SimulatorFullyImplicitBlackoilEbos< TypeTag >::SimulatorFullyImplicitBlackoilEbos ( Simulator &  ebosSimulator)
inline

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]propsfluid and rock properties
[in]linsolverlinear solver
[in]eclipse_statethe object which represents an internalized ECL deck
[in]output_writer
[in]threshold_pressures_by_faceif nonempty, threshold pressures that inhibit flow

Member Function Documentation

◆ run()

template<class TypeTag >
SimulatorReport Opm::SimulatorFullyImplicitBlackoilEbos< TypeTag >::run ( SimulatorTimer timer)
inline

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
Returns
simulation report, with timing data

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