|
My Project
|
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, Model > | Solver |
| 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 Grid & | grid () const |
| template<class Serializer > | |
| void | serializeOp (Serializer &serializer) |
Static Public Member Functions | |
| static void | registerParameters () |
Protected Member Functions | |
| std::unique_ptr< Solver > | createSolver (WellModel &wellModel) |
| const EclipseState & | eclState () const |
| const Schedule & | schedule () const |
| bool | isRestart () const |
| WellModel & | wellModel_ () |
| const WellModel & | wellModel_ () 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< TimeStepper > | adaptiveTimeStepping_ |
| std::optional< ConvergenceReportQueue > | convergenceOutputQueue_ {} |
| std::optional< ConvergenceOutputThread > | convergenceOutputObject_ {} |
| 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. | |
a simulator for the blackoil model
|
inline |
Initialise from parameters and objects to observe.
| [in] | param | parameters, this class accepts the following: |
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] | props | fluid and rock properties |
| [in] | linsolver | linear solver |
| [in] | eclipse_state | the object which represents an internalized ECL deck |
| [in] | output_writer | |
| [in] | threshold_pressures_by_face | if nonempty, threshold pressures that inhibit flow |
|
inline |
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 |