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