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
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