28#ifndef EWOMS_IMMISCIBLE_INTENSIVE_QUANTITIES_HH
29#define EWOMS_IMMISCIBLE_INTENSIVE_QUANTITIES_HH
35#include <opm/material/fluidstates/ImmiscibleFluidState.hpp>
36#include <opm/material/common/Valgrind.hpp>
38#include <dune/common/fvector.hh>
39#include <dune/common/fmatrix.hh>
49template <
class TypeTag>
51 :
public GetPropType<TypeTag, Properties::DiscIntensiveQuantities>
53 ,
public GetPropType<TypeTag, Properties::FluxModule>::FluxIntensiveQuantities
67 enum { pressure0Idx = Indices::pressure0Idx };
68 enum { saturation0Idx = Indices::saturation0Idx };
70 enum { dimWorld = GridView::dimensionworld };
73 using DimMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>;
74 using PhaseVector = Dune::FieldVector<Scalar, numPhases>;
75 using EvalPhaseVector = Dune::FieldVector<Evaluation, numPhases>;
77 using FluxIntensiveQuantities =
typename FluxModule::FluxIntensiveQuantities;
99 const auto& problem =
elemCtx.problem();
103 Opm::Valgrind::CheckDefined(priVars);
111 fluidState_.setSaturation(numPhases - 1, 1 -
sumSat);
115 Opm::Valgrind::CheckDefined(
pC);
118 MaterialLaw::relativePermeabilities(relativePermeability_,
materialParams, fluidState_);
119 Opm::Valgrind::CheckDefined(relativePermeability_);
121 const Evaluation&
p0 = priVars.makeEvaluation(pressure0Idx,
timeIdx);
135 fluidState_.setDensity(
phaseIdx, rho);
157 {
return fluidState_; }
163 {
return intrinsicPerm_; }
172 {
return relativePermeability_[
phaseIdx]; }
187 {
return porosity_; }
190 FluidState fluidState_;
191 Evaluation porosity_;
192 DimMatrix intrinsicPerm_;
193 Evaluation relativePermeability_[numPhases];
194 Evaluation mobility_[numPhases];
Provides the volumetric quantities required for the energy equation.
Definition energymodule.hh:532
Contains the quantities which are are constant within a finite volume for the immiscible multi-phase ...
Definition immiscibleintensivequantities.hh:54
const Evaluation & relativePermeability(unsigned phaseIdx) const
Returns the relative permeability of a given phase within the control volume.
Definition immiscibleintensivequantities.hh:171
void update(const ElementContext &elemCtx, unsigned dofIdx, unsigned timeIdx)
Definition immiscibleintensivequantities.hh:93
const FluidState & fluidState() const
Returns the phase state for the control-volume.
Definition immiscibleintensivequantities.hh:156
const Evaluation & mobility(unsigned phaseIdx) const
Returns the effective mobility of a given phase within the control volume.
Definition immiscibleintensivequantities.hh:180
const Evaluation & porosity() const
Returns the average porosity within the control volume.
Definition immiscibleintensivequantities.hh:186
const DimMatrix & intrinsicPermeability() const
Returns the intrinsic permeability tensor a degree of freedom.
Definition immiscibleintensivequantities.hh:162
Contains the classes required to consider energy as a conservation quantity in a multi-phase module.
Defines the properties required for the immiscible multi-phase model.
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