21 #ifndef OPM_SIMULATORFULLYIMPLICITBLACKOILPOLYMER_HEADER_INCLUDED
22 #define OPM_SIMULATORFULLYIMPLICITBLACKOILPOLYMER_HEADER_INCLUDED
24 #include <opm/autodiff/SimulatorBase.hpp>
25 #include <opm/autodiff/SimulatorFullyImplicitBlackoilOutput.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/BlackoilPropsAdInterface.hpp>
36 #include <opm/autodiff/RateConverter.hpp>
37 #include <opm/autodiff/NewtonSolver.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/core/simulator/SimulatorTimer.hpp>
47 #include <opm/core/utility/StopWatch.hpp>
48 #include <opm/core/io/vtk/writeVtkData.hpp>
49 #include <opm/core/utility/miscUtilities.hpp>
50 #include <opm/core/utility/miscUtilitiesBlackoil.hpp>
52 #include <opm/core/props/rock/RockCompressibility.hpp>
55 #include <opm/core/transport/reorder/TransportSolverCompressibleTwophaseReorder.hpp>
57 #include <opm/parser/eclipse/EclipseState/Schedule/Schedule.hpp>
58 #include <opm/parser/eclipse/EclipseState/Schedule/ScheduleEnums.hpp>
59 #include <opm/parser/eclipse/EclipseState/Schedule/Well.hpp>
60 #include <opm/parser/eclipse/EclipseState/Schedule/WellProductionProperties.hpp>
61 #include <opm/parser/eclipse/Deck/Deck.hpp>
63 #include <boost/filesystem.hpp>
64 #include <boost/lexical_cast.hpp>
75 #include <unordered_map>
81 template <
class Gr
idT>
97 template <
class Gr
idT>
99 :
public SimulatorBase<SimulatorFullyImplicitBlackoilPolymer<GridT> >
102 typedef SimulatorBase<ThisType> BaseType;
104 typedef SimulatorTraits<ThisType> Traits;
105 typedef typename Traits::Solver Solver;
110 const DerivedGeology& geo,
111 BlackoilPropsAdInterface& props,
113 const RockCompressibility* rock_comp_props,
114 NewtonIterationBlackoilInterface& linsolver,
115 const double* gravity,
121 std::shared_ptr<EclipseState> eclipse_state,
122 BlackoilOutputWriter& output_writer,
123 Opm::DeckConstPtr& deck,
124 const std::vector<double>& threshold_pressures_by_face);
126 std::unique_ptr<Solver>
createSolver(
const Wells* wells);
130 WellsManager& wells_manager,
131 typename BaseType::WellState& well_state,
144 std::vector<double> wells_rep_radius_;
145 std::vector<double> wells_perf_length_;
146 std::vector<double> wells_bore_diameter_;
151 setupCompressedToCartesian(
const int* global_cell,
int number_of_cells, std::map<int,int>& cartesian_to_compressed);
157 computeRepRadiusPerfLength(
const Opm::EclipseStateConstPtr eclipseState,
158 const size_t timeStep,
160 std::vector<double>& wells_rep_radius,
161 std::vector<double>& wells_perf_length,
162 std::vector<double>& wells_bore_diameter);
170 #endif // OPM_SIMULATORFULLYIMPLICITBLACKOILPOLYMER_HEADER_INCLUDED
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:82
std::unique_ptr< Solver > createSolver(const Wells *wells)
Definition: SimulatorFullyImplicitBlackoilPolymer_impl.hpp:65
Definition: CompressibleTpfaPolymer.hpp:32
GridT Grid
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:90
void handleAdditionalWellInflow(SimulatorTimer &timer, WellsManager &wells_manager, typename BaseType::WellState &well_state, const Wells *wells)
Definition: SimulatorFullyImplicitBlackoilPolymer_impl.hpp:102
WellStateFullyImplicitBlackoilPolymer WellState
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:87
PolymerBlackoilState ReservoirState
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:88
SimulatorFullyImplicitBlackoilPolymer(const parameter::ParameterGroup ¶m, const GridT &grid, const DerivedGeology &geo, BlackoilPropsAdInterface &props, const PolymerPropsAd &polymer_props, const RockCompressibility *rock_comp_props, NewtonIterationBlackoilInterface &linsolver, const double *gravity, const bool disgas, const bool vapoil, const bool polymer, const bool plyshlog, const bool shrate, std::shared_ptr< EclipseState > eclipse_state, BlackoilOutputWriter &output_writer, Opm::DeckConstPtr &deck, const std::vector< double > &threshold_pressures_by_face)
Definition: SimulatorFullyImplicitBlackoilPolymer_impl.hpp:26
Definition: WellStateFullyImplicitBlackoilPolymer.hpp:28
Definition: PolymerBlackoilState.hpp:33
Definition: PolymerPropsAd.hpp:32
BlackoilPolymerModel< Grid > Model
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:91
Definition: BlackoilPolymerModel.hpp:43
NewtonSolver< Model > Solver
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:92
BlackoilOutputWriter OutputWriter
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:89