20 #ifndef OPM_SIMULATORFULLYIMPLICITBLACKOILSOLVENT_HEADER_INCLUDED 21 #define OPM_SIMULATORFULLYIMPLICITBLACKOILSOLVENT_HEADER_INCLUDED 23 #include <opm/autodiff/SimulatorBase.hpp> 24 #include <opm/autodiff/SimulatorFullyImplicitBlackoilOutput.hpp> 25 #include <opm/autodiff/BlackoilSolventModel.hpp> 27 #include <opm/core/utility/parameters/ParameterGroup.hpp> 28 #include <opm/common/ErrorMacros.hpp> 30 #include <opm/autodiff/GeoProps.hpp> 31 #include <opm/autodiff/BlackoilPropsAdFromDeck.hpp> 32 #include <opm/autodiff/SolventPropsAdFromDeck.hpp> 34 #include <opm/autodiff/NonlinearSolver.hpp> 35 #include <opm/autodiff/WellStateFullyImplicitBlackoilSolvent.hpp> 37 #include <opm/core/grid.h> 38 #include <opm/core/wells.h> 39 #include <opm/core/well_controls.h> 40 #include <opm/core/pressure/flow_bc.h> 42 #include <opm/core/simulator/SimulatorReport.hpp> 43 #include <opm/simulators/timestepping/SimulatorTimer.hpp> 45 #include <opm/core/utility/StopWatch.hpp> 46 #include <opm/core/utility/miscUtilities.hpp> 47 #include <opm/core/utility/miscUtilitiesBlackoil.hpp> 49 #include <opm/core/props/rock/RockCompressibility.hpp> 54 #include <opm/parser/eclipse/EclipseState/Schedule/Schedule.hpp> 55 #include <opm/parser/eclipse/EclipseState/Schedule/ScheduleEnums.hpp> 56 #include <opm/parser/eclipse/EclipseState/Schedule/Well.hpp> 57 #include <opm/parser/eclipse/EclipseState/Schedule/WellProductionProperties.hpp> 58 #include <opm/parser/eclipse/Deck/Deck.hpp> 60 #include <boost/filesystem.hpp> 61 #include <boost/lexical_cast.hpp> 72 #include <unordered_map> 78 template <
class Gr
idT>
87 typedef BlackoilState ReservoirState;
98 template <
class Gr
idT>
100 :
public SimulatorBase<SimulatorFullyImplicitBlackoilSolvent<GridT> >
106 typedef typename Traits::Solver Solver;
107 typedef typename Traits::WellModel WellModel;
115 const RockCompressibility* rock_comp_props,
117 const double* gravity,
120 std::shared_ptr<EclipseState> eclipse_state,
122 std::shared_ptr< Deck > deck,
123 const std::vector<double>& threshold_pressures_by_face,
126 std::unique_ptr<Solver> createSolver(
const WellModel& well_model);
129 WellsManager& wells_manager,
130 typename BaseType::WellState& well_state,
135 std::shared_ptr< Deck > deck_;
143 #include "SimulatorFullyImplicitBlackoilSolvent_impl.hpp" 145 #endif // OPM_SIMULATORFULLYIMPLICITBLACKOILSOLVENT_HEADER_INCLUDED A nonlinear solver class suitable for general fully-implicit models, as well as pressure, transport and sequential models.
Definition: NonlinearSolver.hpp:37
Definition: WellStateFullyImplicitBlackoilSolvent.hpp:28
Class collecting all necessary components for a two-phase simulation.
Definition: SimulatorBase.hpp:85
Class for handling the standard well model for solvent model.
Definition: StandardWellsSolvent.hpp:32
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: AdditionalObjectDeleter.hpp:22
Facility for converting component rates at surface conditions to phase (voidage) rates at reservoir c...
Class collecting all necessary components for a blackoil simulation with polymer injection.
Definition: SimulatorFullyImplicitBlackoilSolvent.hpp:79
Class containing static geological properties that are derived from grid and petrophysical properties...
Definition: GeoProps.hpp:59
Wrapper class for VTK, Matlab, and ECL output.
Definition: SimulatorFullyImplicitBlackoilOutput.hpp:206
Interface class for (linear) solvers for the fully implicit black-oil system.
Definition: NewtonIterationBlackoilInterface.hpp:31
This class implements the AD-adapted fluid interface for three-phase black-oil.
Definition: BlackoilPropsAdFromDeck.hpp:61
Definition: SolventPropsAdFromDeck.hpp:37
Definition: SimulatorBase.hpp:81
Definition: SimulatorTimer.hpp:34
A model implementation for three-phase black oil with one extra component.
Definition: BlackoilSolventModel.hpp:38