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/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/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>
82 class SimulatorFullyImplicitBlackoilPolymer;
92 typedef NonlinearSolver<Model>
Solver;
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;
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);
Definition: BlackoilPolymerModel.hpp:44
Definition: PolymerBlackoilState.hpp:34
Definition: PolymerPropsAd.hpp:33
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:100
std::unique_ptr< Solver > createSolver(const Wells *wells)
Definition: SimulatorFullyImplicitBlackoilPolymer_impl.hpp:65
SimulatorFullyImplicitBlackoilPolymer(const parameter::ParameterGroup ¶m, const GridT &grid, 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
void handleAdditionalWellInflow(SimulatorTimer &timer, WellsManager &wells_manager, typename BaseType::WellState &well_state, const Wells *wells)
Definition: SimulatorFullyImplicitBlackoilPolymer_impl.hpp:102
Definition: WellStateFullyImplicitBlackoilPolymer.hpp:29
Definition: CompressibleTpfaPolymer.hpp:33
GridT Grid
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:90
NonlinearSolver< Model > Solver
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:92
WellStateFullyImplicitBlackoilPolymer WellState
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:87
BlackoilPolymerModel< Grid > Model
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:91
PolymerBlackoilState ReservoirState
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:88
BlackoilOutputWriter OutputWriter
Definition: SimulatorFullyImplicitBlackoilPolymer.hpp:89