24 #ifndef OPM_BLACKOILAQUIFERMODEL_HEADER_INCLUDED
25 #define OPM_BLACKOILAQUIFERMODEL_HEADER_INCLUDED
27 #include <ebos/eclbaseaquifermodel.hh>
29 #include <opm/input/eclipse/EclipseState/Aquifer/Aquancon.hpp>
30 #include <opm/input/eclipse/EclipseState/Aquifer/AquiferCT.hpp>
31 #include <opm/input/eclipse/EclipseState/Aquifer/Aquifetp.hpp>
33 #include <opm/output/data/Aquifer.hpp>
35 #include <opm/simulators/aquifers/AquiferCarterTracy.hpp>
36 #include <opm/simulators/aquifers/AquiferFetkovich.hpp>
37 #include <opm/simulators/aquifers/AquiferNumerical.hpp>
39 #include <opm/grid/CpGrid.hpp>
40 #ifdef USE_POLYHEDRALGRID
41 #include <opm/grid/polyhedralgrid.hh>
44 #include <dune/alugrid/grid.hh>
47 #include <opm/material/densead/Math.hpp>
50 #include <type_traits>
57 :
public std::bool_constant<false>
63 :
public std::bool_constant<true>
67 #ifdef USE_POLYHEDRALGRID
70 :
public std::bool_constant<true>
76 class SupportsFaceTag<Dune::ALUGrid<3, 3, Dune::cube, Dune::nonconforming>>
77 :
public std::bool_constant<true>
83 template <
typename TypeTag>
86 using Simulator = GetPropType<TypeTag, Properties::Simulator>;
87 using RateVector = GetPropType<TypeTag, Properties::RateVector>;
93 void initialSolutionApplied();
94 void initFromRestart(
const data::Aquifers& aquiferSoln);
98 void beginIteration();
100 template <
class Context>
101 void addToSource(RateVector& rates,
const Context& context,
unsigned spaceIdx,
unsigned timeIdx)
const;
102 void addToSource(RateVector& rates,
unsigned globalSpaceIdx,
unsigned timeIdx)
const;
107 data::Aquifers aquiferData()
const;
109 template <
class Restarter>
110 void serialize(Restarter& res);
112 template <
class Restarter>
113 void deserialize(Restarter& res);
117 using ElementContext = GetPropType<TypeTag, Properties::ElementContext>;
118 using Scalar = GetPropType<TypeTag, Properties::Scalar>;
120 Simulator& simulator_;
122 std::vector<std::unique_ptr<AquiferInterface<TypeTag>>> aquifers;
131 #include "BlackoilAquiferModel_impl.hpp"
Class for handling the blackoil well model.
Definition: BlackoilAquiferModel.hpp:85
Definition: BlackoilAquiferModel.hpp:58
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: BlackoilPhases.hpp:27