|
Public Types |
Public Member Functions |
Static Public Member Functions |
Protected Member Functions |
Protected Attributes |
List of all members
Opm::SimulatorFullyImplicitBlackoil< TypeTag > Class Template Reference Top-level driver for a fully implicit black-oil simulation. More...
Inheritance diagram for Opm::SimulatorFullyImplicitBlackoil< TypeTag >:
![]()
Detailed Descriptiontemplate<class TypeTag> class Opm::SimulatorFullyImplicitBlackoil< TypeTag > Top-level driver for a fully implicit black-oil simulation. Owns the per-report-step loop: run repeatedly invokes runStep until Beyond the report-step loop, this class owns:
The class is instantiated once per simulation process. Static configuration is registered via registerParameters during program startup. Member Typedef Documentation◆ AquiferModel
template<class TypeTag >
◆ BioeffectsModule
template<class TypeTag >
◆ BlackoilIndices
template<class TypeTag >
◆ ElementContext
template<class TypeTag >
◆ FluidSystem
template<class TypeTag >
◆ Grid
template<class TypeTag >
◆ MaterialLaw
template<class TypeTag >
◆ MaterialLawParams
template<class TypeTag >
◆ Model
template<class TypeTag >
◆ ModelParameters
template<class TypeTag >
◆ PolymerModule
template<class TypeTag >
◆ PrimaryVariables
template<class TypeTag >
◆ Scalar
template<class TypeTag >
◆ Simulator
template<class TypeTag >
◆ SolutionVector
template<class TypeTag >
◆ Solver
template<class TypeTag >
◆ SolverParameters
template<class TypeTag >
◆ TimeStepper
template<class TypeTag >
◆ WellModel
template<class TypeTag >
Constructor & Destructor Documentation◆ SimulatorFullyImplicitBlackoil()
template<class TypeTag >
Construct from the surrounding eWoms Initialises the OPMRST serializer from the SaveStep / LoadStep / SaveFile / LoadFile parameters and, on rank 0 with terminal output enabled, starts the background convergence-output thread that writes INFOSTEP / INFOITER files.
References Opm::SimulatorFullyImplicitBlackoil< TypeTag >::convergence_output_, Opm::SimulatorFullyImplicitBlackoil< TypeTag >::grid(), Opm::SimulatorFullyImplicitBlackoil< TypeTag >::simulator_, and Opm::SimulatorFullyImplicitBlackoil< TypeTag >::terminalOutput_. ◆ ~SimulatorFullyImplicitBlackoil()
template<class TypeTag >
Ends the convergence-output thread cleanly on all ranks. Member Function Documentation◆ createSolver()
template<class TypeTag >
Build the Solver used during the current report step. Wraps a freshly constructed Model in a Solver. Side effect: if ◆ eclState()
template<class TypeTag >
◆ finalize()
template<class TypeTag >
Stop the timers and emit the final OPMRST output. Called by run after the report-step loop finishes. Stops the total wall-clock timer and marks the report as converged.
References Opm::SimulatorReportSingle::output_write_time, and Opm::SimulatorReport::success. ◆ getCellMapping()
template<class TypeTag >
Local-to-global cell index mapping. Implements Opm::SerializableSim. References Opm::SimulatorFullyImplicitBlackoil< TypeTag >::simulator_. ◆ getHeader()
template<class TypeTag >
Return the OPMRST header tuple: product name, module version, compile timestamp, deck case name, and parameter dump. Implements Opm::SerializableSim. References Opm::compileTimestamp(), Opm::moduleVersion(), and Opm::Parameters::printValues(). ◆ grid()
template<class TypeTag >
◆ init()
template<class TypeTag >
One-shot setup performed before the first runStep. Constructs the wall-clock timers and the AdaptiveTimeStepping instance (if adaptive stepping is enabled). For restart runs, the suggested next step is seeded from
References Opm::SimulatorTimer::currentStepNum(). ◆ isRestart()
template<class TypeTag >
◆ loadState()
template<class TypeTag >
Load this simulator's data block from an OPMRST file via HDF5. Implements Opm::SerializableSim. ◆ model()
template<class TypeTag >
◆ registerParameters()
template<class TypeTag >
Register all parameters consumed by this class and its major collaborators. Forwards to ModelParameters::registerParameters, SolverParameters::registerParameters, AdaptiveTimeStepping::registerParameters, Opm::detail::registerSimulatorParameters, and the TPSA Newton-method / linear-solver parameter sets. Called once during program startup. References Opm::TpsaNewtonMethodParams< Scalar >::registerParameters(), Opm::TpsaLinearSolverParameters::registerParameters(), and Opm::detail::registerSimulatorParameters(). ◆ run()
template<class TypeTag >
Run the entire simulation to completion. Loops over report steps, calling runStep on each one. Stops early if the schedule triggers an EXIT keyword.
References Opm::SimulatorTimer::currentStepNum(), and Opm::SimulatorTimer::done(). ◆ runStep()
template<class TypeTag >
Advance the simulation by one report step. Called by run once per report step. Performs:
References Opm::SimulatorTimer::currentStepLength(), Opm::SimulatorTimer::currentStepNum(), Opm::SimulatorTimer::initialStep(), Opm::details::outputReportStep(), Opm::SimulatorTimer::report(), Opm::SimulatorTimer::simulationTimeElapsed(), and Opm::to_string(). ◆ saveState()
template<class TypeTag >
Save this simulator's data block to an OPMRST file via HDF5. Implements Opm::SerializableSim. ◆ schedule()
template<class TypeTag >
◆ serializeOp()
template<class TypeTag >
template<class Serializer >
Serialize the parts of this class needed for OPMRST round-tripping (the surrounding simulator state, the report, and the adaptive time stepper). ◆ updateTUNING()
template<class TypeTag >
Apply a TUNING keyword to the cached model parameters. Overwrites convergence tolerances (TRGCNV / XXXCNV / TRGMBE / XXXMBE) and Newton iteration limits (NEWTMX / NEWTMN) on the ModelParameters copy held by this class. Items that are recognised by the parser but not honoured by this simulator are logged at warning level on rank 0.
References Opm::detail::logTuning(). ◆ updateTUNINGDP()
template<class TypeTag >
Apply a TUNINGDP keyword to the cached model parameters. Overwrites the maximum allowed pressure (TRGDDP), saturation (TRGDDS), and dissolved-gas / vaporised-oil ratio (TRGDDRS, TRGDDRV) changes per Newton iteration. TRGLCV / XXXLCV are accepted by the parser but logged as unsupported on rank 0. ◆ wellModel_() [1/2]
template<class TypeTag >
◆ wellModel_() [2/2]
template<class TypeTag >
Member Data Documentation◆ adaptiveTimeStepping_
template<class TypeTag >
Set iff adaptive time stepping is enabled. ◆ convergence_output_
template<class TypeTag >
Background thread for INFOSTEP / INFOITER files. Referenced by Opm::SimulatorFullyImplicitBlackoil< TypeTag >::SimulatorFullyImplicitBlackoil(). ◆ modelParam_
template<class TypeTag >
Cached model parameters; mutated by TUNING / TUNINGDP application. ◆ report_
template<class TypeTag >
Aggregated report across the entire simulation. ◆ serializer_
template<class TypeTag >
OPMRST save / load. ◆ simulator_
template<class TypeTag >
Surrounding eWoms simulator; observed, not owned. Referenced by Opm::SimulatorFullyImplicitBlackoil< TypeTag >::eclState(), Opm::SimulatorFullyImplicitBlackoil< TypeTag >::getCellMapping(), Opm::SimulatorFullyImplicitBlackoil< TypeTag >::grid(), Opm::SimulatorFullyImplicitBlackoil< TypeTag >::schedule(), Opm::SimulatorFullyImplicitBlackoil< TypeTag >::SimulatorFullyImplicitBlackoil(), and Opm::SimulatorFullyImplicitBlackoil< TypeTag >::wellModel_(). ◆ solver_
template<class TypeTag >
Built lazily on the first runStep call; reused thereafter. Referenced by Opm::SimulatorFullyImplicitBlackoil< TypeTag >::model(). ◆ solverParam_
template<class TypeTag >
Cached nonlinear-solver parameters. ◆ solverTimer_
template<class TypeTag >
Wall-clock for the current report step's solve. ◆ terminalOutput_
template<class TypeTag >
Emit high-level progress to std::cout (rank 0 only). Referenced by Opm::SimulatorFullyImplicitBlackoil< TypeTag >::SimulatorFullyImplicitBlackoil(). ◆ totalTimer_
template<class TypeTag >
Wall-clock for the entire simulation. The documentation for this class was generated from the following files: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||