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 #include <opm/grid/polyhedralgrid.hh>
42 #include <dune/alugrid/grid.hh>
45 #include <opm/material/densead/Math.hpp>
48 #include <type_traits>
55 :
public std::bool_constant<false>
61 :
public std::bool_constant<true>
67 :
public std::bool_constant<true>
72 class SupportsFaceTag<Dune::ALUGrid<3, 3, Dune::cube, Dune::nonconforming>>
73 :
public std::bool_constant<true>
79 template <
typename TypeTag>
82 using Simulator = GetPropType<TypeTag, Properties::Simulator>;
83 using RateVector = GetPropType<TypeTag, Properties::RateVector>;
89 void initialSolutionApplied();
90 void initFromRestart(
const data::Aquifers& aquiferSoln);
94 void beginIteration();
96 template <
class Context>
97 void addToSource(RateVector& rates,
const Context& context,
unsigned spaceIdx,
unsigned timeIdx)
const;
102 data::Aquifers aquiferData()
const;
104 template <
class Restarter>
105 void serialize(Restarter& res);
107 template <
class Restarter>
108 void deserialize(Restarter& res);
112 using ElementContext = GetPropType<TypeTag, Properties::ElementContext>;
113 using Scalar = GetPropType<TypeTag, Properties::Scalar>;
118 Simulator& simulator_;
122 mutable std::vector<AquiferCarterTracy_object> aquifers_CarterTracy;
123 mutable std::vector<AquiferFetkovich_object> aquifers_Fetkovich;
124 std::vector<AquiferNumerical<TypeTag>> aquifers_numerical;
129 bool aquiferActive()
const;
130 bool aquiferCarterTracyActive()
const;
131 bool aquiferFetkovichActive()
const;
132 bool aquiferNumericalActive()
const;
138 #include "BlackoilAquiferModel_impl.hpp"
Definition: AquiferCarterTracy.hpp:38
Definition: AquiferFetkovich.hpp:37
Class for handling the blackoil well model.
Definition: BlackoilAquiferModel.hpp:81
Definition: BlackoilAquiferModel.hpp:56
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: BlackoilPhases.hpp:27