22 #ifndef OPM_AQUIFERINTERFACE_HEADER_INCLUDED
23 #define OPM_AQUIFERINTERFACE_HEADER_INCLUDED
25 #include <opm/output/data/Aquifer.hpp>
30 template <
typename TypeTag>
34 using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
35 using RateVector = GetPropType<TypeTag, Properties::RateVector>;
36 using Simulator = GetPropType<TypeTag, Properties::Simulator>;
40 const Simulator& ebosSimulator)
42 , ebos_simulator_(ebosSimulator)
49 virtual void initFromRestart(
const data::Aquifers& aquiferSoln) = 0;
51 virtual void initialSolutionApplied() = 0;
53 virtual void beginTimeStep() = 0;
54 virtual void endTimeStep() = 0;
56 virtual data::AquiferData aquiferData()
const = 0;
58 template <
class Context>
59 void addToSource(RateVector& rates,
60 const Context& context,
61 const unsigned spaceIdx,
62 const unsigned timeIdx)
64 const unsigned cellIdx = context.globalSpaceIndex(spaceIdx, timeIdx);
65 addToSource(rates, cellIdx, timeIdx);
68 virtual void addToSource(RateVector& rates,
69 const unsigned cellIdx,
70 const unsigned timeIdx) = 0;
72 int aquiferID()
const {
return this->aquiferID_; }
75 bool co2store_()
const
77 return ebos_simulator_.vanguard().eclState().runspec().co2Storage();
83 return FluidSystem::oilPhaseIdx;
85 return FluidSystem::waterPhaseIdx;
88 const int aquiferID_{};
89 const Simulator& ebos_simulator_;
Definition: AquiferInterface.hpp:32
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: BlackoilPhases.hpp:27