21 #ifndef OPM_SIMULATORFULLYIMPLICITBLACKOILPOLYMER_HEADER_INCLUDED 22 #define OPM_SIMULATORFULLYIMPLICITBLACKOILPOLYMER_HEADER_INCLUDED 24 #include <opm/autodiff/SimulatorBase.hpp> 25 #include <opm/autodiff/SimulatorFullyImplicitBlackoilOutput.hpp> 26 #include <opm/polymer/fullyimplicit/BlackoilPolymerModel.hpp> 27 #include <opm/polymer/fullyimplicit/WellStateFullyImplicitBlackoilPolymer.hpp> 28 #include <opm/polymer/PolymerBlackoilState.hpp> 29 #include <opm/polymer/PolymerInflow.hpp> 31 #include <opm/core/utility/parameters/ParameterGroup.hpp> 32 #include <opm/common/ErrorMacros.hpp> 34 #include <opm/autodiff/GeoProps.hpp> 35 #include <opm/autodiff/BlackoilPropsAdFromDeck.hpp> 37 #include <opm/autodiff/NonlinearSolver.hpp> 39 #include <opm/core/grid.h> 40 #include <opm/core/wells.h> 41 #include <opm/core/well_controls.h> 42 #include <opm/core/pressure/flow_bc.h> 44 #include <opm/core/simulator/SimulatorReport.hpp> 45 #include <opm/simulators/timestepping/SimulatorTimer.hpp> 47 #include <opm/core/utility/StopWatch.hpp> 48 #include <opm/core/utility/miscUtilities.hpp> 49 #include <opm/core/utility/miscUtilitiesBlackoil.hpp> 51 #include <opm/core/props/rock/RockCompressibility.hpp> 54 #include <opm/core/transport/reorder/TransportSolverCompressibleTwophaseReorder.hpp> 56 #include <opm/parser/eclipse/EclipseState/Schedule/Schedule.hpp> 57 #include <opm/parser/eclipse/EclipseState/Schedule/ScheduleEnums.hpp> 58 #include <opm/parser/eclipse/EclipseState/Schedule/Well.hpp> 59 #include <opm/parser/eclipse/EclipseState/Schedule/WellProductionProperties.hpp> 60 #include <opm/parser/eclipse/Deck/Deck.hpp> 62 #include <boost/filesystem.hpp> 63 #include <boost/lexical_cast.hpp> 74 #include <unordered_map> 80 template <
class Gr
idT>
99 template <
class Gr
idT>
101 :
public SimulatorBase<SimulatorFullyImplicitBlackoilPolymer<GridT> >
107 typedef typename Traits::Solver Solver;
108 typedef typename Traits::WellModel WellModel;
116 const RockCompressibility* rock_comp_props,
118 const double* gravity,
124 std::shared_ptr<EclipseState> eclipse_state,
126 std::shared_ptr< Deck > deck,
127 const std::vector<double>& threshold_pressures_by_face);
129 std::unique_ptr<Solver> createSolver(
const WellModel& well_model);
133 WellsManager& wells_manager,
134 typename BaseType::WellState& well_state,
145 std::shared_ptr< Deck > deck_;
147 std::vector<double> wells_rep_radius_;
148 std::vector<double> wells_perf_length_;
149 std::vector<double> wells_bore_diameter_;
154 setupCompressedToCartesian(
const int* global_cell,
int number_of_cells, std::map<int,int>& cartesian_to_compressed);
160 computeRepRadiusPerfLength(
const EclipseState& eclipseState,
161 const size_t timeStep,
163 std::vector<double>& wells_rep_radius,
164 std::vector<double>& wells_perf_length,
165 std::vector<double>& wells_bore_diameter);
171 #include "SimulatorFullyImplicitBlackoilPolymer_impl.hpp" 173 #endif // OPM_SIMULATORFULLYIMPLICITBLACKOILPOLYMER_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: PolymerPropsAd.hpp:32
Definition: WellStateFullyImplicitBlackoilPolymer.hpp:28
Class collecting all necessary components for a two-phase simulation.
Definition: SimulatorBase.hpp:85
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 for handling the standard well model.
Definition: StandardWells.hpp:51
Simulator state for a compressible two-phase simulator with polymer.
Definition: PolymerBlackoilState.hpp:33
A model implementation for three-phase black oil with polymer.
Definition: BlackoilPolymerModel.hpp:45
Class collecting all necessary components for a blackoil simulation with polymer injection.
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:81
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: SimulatorBase.hpp:81
Definition: SimulatorTimer.hpp:34