28#ifndef EWOMS_MULTI_PHASE_BASE_EXTENSIVE_QUANTITIES_HH
29#define EWOMS_MULTI_PHASE_BASE_EXTENSIVE_QUANTITIES_HH
37#include <opm/material/common/Valgrind.hpp>
39#include <dune/common/fvector.hh>
48template <
class TypeTag>
50 :
public GetPropType<TypeTag, Properties::DiscExtensiveQuantities>
51 ,
public GetPropType<TypeTag, Properties::FluxModule>::FluxExtensiveQuantities
61 using FluxExtensiveQuantities =
typename FluxModule::FluxExtensiveQuantities;
69 FluxModule::registerParameters();
91 Valgrind::SetUndefined(upstreamScvIdx_[
phaseIdx]);
92 Valgrind::SetUndefined(downstreamScvIdx_[
phaseIdx]);
96 upstreamScvIdx_[
phaseIdx] = FluxExtensiveQuantities::upstreamIndex_(
phaseIdx);
97 downstreamScvIdx_[
phaseIdx] = FluxExtensiveQuantities::downstreamIndex_(
phaseIdx);
114 template <
class Context,
class Flu
idState>
118 const FluidState& fluidState)
120 ParentType::updateBoundary(context,
bfIdx,
timeIdx, fluidState);
122 FluxExtensiveQuantities::calculateBoundaryGradients_(context.elementContext(),
126 FluxExtensiveQuantities::calculateBoundaryFluxes_(context.elementContext(),
139 {
return upstreamScvIdx_[
phaseIdx]; }
149 {
return downstreamScvIdx_[
phaseIdx]; }
170 short upstreamScvIdx_[numPhases];
171 short downstreamScvIdx_[numPhases];
This class calculates the pressure potential gradients and the filter velocities for multi-phase flow...
Definition multiphasebaseextensivequantities.hh:52
void updateBoundary(const Context &context, unsigned bfIdx, unsigned timeIdx, const FluidState &fluidState)
Update the extensive quantities for a given boundary face.
Definition multiphasebaseextensivequantities.hh:115
Scalar downstreamWeight(unsigned phaseIdx) const
Return the weight of the downstream control volume for a given phase as a function of the normal flux...
Definition multiphasebaseextensivequantities.hh:166
Scalar upstreamWeight(unsigned) const
Return the weight of the upstream control volume for a given phase as a function of the normal flux.
Definition multiphasebaseextensivequantities.hh:157
short upstreamIndex(unsigned phaseIdx) const
Return the local index of the upstream control volume for a given phase as a function of the normal f...
Definition multiphasebaseextensivequantities.hh:138
void update(const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
Update the extensive quantities for a given sub-control-volume-face.
Definition multiphasebaseextensivequantities.hh:80
short downstreamIndex(unsigned phaseIdx) const
Return the local index of the downstream control volume for a given phase as a function of the normal...
Definition multiphasebaseextensivequantities.hh:148
static void registerParameters()
Register all run-time parameters for the extensive quantities.
Definition multiphasebaseextensivequantities.hh:67
Provide the properties at a face which make sense indepentently of the conserved quantities.
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
This file provides the infrastructure to retrieve run-time parameters.
This method contains all callback classes for quantities that are required by some extensive quantiti...