22#ifndef OPM_AQUIFERINTERFACE_HEADER_INCLUDED
23#define OPM_AQUIFERINTERFACE_HEADER_INCLUDED
28#include <opm/output/data/Aquifer.hpp>
33template <
typename TypeTag>
44 const Simulator& simulator)
46 , simulator_(simulator)
53 virtual void initFromRestart(
const data::Aquifers&
aquiferSoln) = 0;
55 virtual void initialSolutionApplied() = 0;
57 virtual void beginTimeStep() = 0;
58 virtual void endTimeStep() = 0;
60 virtual data::AquiferData aquiferData()
const = 0;
62 virtual void computeFaceAreaFraction(
const std::vector<Scalar>&
total_face_area) = 0;
63 virtual Scalar totalFaceArea()
const = 0;
65 template <
class Context>
66 void addToSource(RateVector& rates,
75 virtual void addToSource(RateVector& rates,
79 int aquiferID()
const {
return this->aquiferID_; }
82 bool co2store_or_h2store_()
const
84 const auto&
rspec = simulator_.vanguard().eclState().runspec();
85 return rspec.co2Storage() ||
rspec.h2Storage();
91 if (co2store_or_h2store_() && FluidSystem::phaseIsActive(FluidSystem::oilPhaseIdx))
92 return FluidSystem::oilPhaseIdx;
94 return FluidSystem::waterPhaseIdx;
97 const int aquiferID_{};
98 const Simulator& simulator_;
Definition AquiferInterface.hpp:35
Declare the properties used by the infrastructure code of the finite volume discretizations.
Defines the common properties required by the porous medium multi-phase models.
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition blackoilboundaryratevector.hh:37
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:242
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:235