23 #ifndef OPM_BLACKOILAQUIFERMODEL_HEADER_INCLUDED 24 #define OPM_BLACKOILAQUIFERMODEL_HEADER_INCLUDED 26 #include <opm/input/eclipse/EclipseState/Aquifer/Aquancon.hpp> 27 #include <opm/input/eclipse/EclipseState/Aquifer/AquiferCT.hpp> 28 #include <opm/input/eclipse/EclipseState/Aquifer/Aquifetp.hpp> 30 #include <opm/output/data/Aquifer.hpp> 32 #include <opm/simulators/aquifers/AquiferCarterTracy.hpp> 33 #include <opm/simulators/aquifers/AquiferFetkovich.hpp> 34 #include <opm/simulators/aquifers/AquiferNumerical.hpp> 35 #include <opm/simulators/aquifers/SupportsFaceTag.hpp> 39 #include <opm/material/densead/Math.hpp> 42 #include <type_traits> 43 #include <string_view> 48 template <
typename TypeTag>
58 void initialSolutionApplied();
59 void initFromRestart(
const data::Aquifers& aquiferSoln);
63 void beginIteration();
65 template <
class Context>
66 void addToSource(RateVector& rates,
const Context& context,
unsigned spaceIdx,
unsigned timeIdx)
const;
67 void addToSource(RateVector& rates,
unsigned globalSpaceIdx,
unsigned timeIdx)
const;
72 data::Aquifers aquiferData()
const;
74 template <
class Restarter>
75 void serialize(Restarter& res);
77 template <
class Restarter>
78 void deserialize(Restarter& res);
80 template<
class Serializer>
81 void serializeOp(Serializer& serializer);
88 Simulator& simulator_;
91 std::vector<std::unique_ptr<AquiferInterface<TypeTag>>> aquifers;
98 void createDynamicAquifers(
const int episode_index);
100 void initializeStaticAquifers();
101 void initializeRestartDynamicAquifers();
103 bool needRestartDynamicAquifers()
const;
105 template <
typename AquiferType,
typename AquiferData>
106 std::unique_ptr<AquiferType>
107 createAnalyticAquiferPointer(
const AquiferData& aqData,
109 std::string_view aqType)
const;
111 void computeConnectionAreaFraction()
const;
116 #include "BlackoilAquiferModel_impl.hpp" typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(...))
Definition: propertysystem.hh:233
Class for handling the blackoil aquifer model.
Definition: BlackoilAquiferModel.hpp:49
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: blackoilbioeffectsmodules.hh:45
The base class which specifies the API of aquifer models.