12#ifndef DUMUX_POROUSMEDIUM_FLUXVARIABLESCACHE_HH
13#define DUMUX_POROUSMEDIUM_FLUXVARIABLESCACHE_HH
23template<
class TypeTag,
class DiscretizationMethod>
40template<
class TypeTag>
45template<
class TypeTag,
class DM>
47:
public CVFEFluxVariablesCache<GetPropType<TypeTag, Properties::Scalar>, GetPropType<TypeTag, Properties::GridGeometry>>
67template<
class TypeTag>
69:
public AdvectionCacheChooser<TypeTag, GetPropType<TypeTag, Properties::ModelTraits>::enableAdvection()>
70,
public DiffusionCacheChooser<TypeTag, GetPropType<TypeTag, Properties::ModelTraits>::enableMolecularDiffusion()>
71,
public EnergyCacheChooser<TypeTag, GetPropType<TypeTag, Properties::ModelTraits>::enableEnergyBalance()>
80template<
class TypeTag>
82:
public AdvectionCacheChooser<TypeTag, GetPropType<TypeTag, Properties::ModelTraits>::enableAdvection()>
83,
public DiffusionCacheChooser<TypeTag, GetPropType<TypeTag, Properties::ModelTraits>::enableMolecularDiffusion()>
84,
public EnergyCacheChooser<TypeTag, GetPropType<TypeTag, Properties::ModelTraits>::enableEnergyBalance()>
89 static constexpr bool considerSecondary = MpfaHelper::considerSecondaryIVs();
99 template<
bool doSecondary = cons
iderSecondary, std::enable_if_t<!doSecondary,
int> = 0>
104 template<
bool doSecondary = cons
iderSecondary, std::enable_if_t<doSecondary,
int> = 0>
127 bool isUpdated_ =
false;
128 bool usesSecondaryIv_ =
false;
130 GridIndexType ivIndexInContainer_;
131 unsigned int ivLocalFaceIdx_;
132 unsigned int idxInOutsideFaces_;
Definition: porousmediumflow/fluxvariablescache.hh:58
Flux variables cache class for control-volume finite element schemes. For control-volume finite eleme...
Definition: discretization/cvfe/fluxvariablescache.hh:27
Definition: porousmediumflow/fluxvariablescache.hh:60
Definition: porousmediumflow/fluxvariablescache.hh:62
GetPropType< TypeTag, Properties::Scalar > Scalar
export type used for scalar values
Definition: porousmediumflow/fluxvariablescache.hh:51
bool usesSecondaryIv() const
Definition: porousmediumflow/fluxvariablescache.hh:105
void setIvLocalFaceIndex(unsigned int idx)
Sets the iv-local face index.
Definition: porousmediumflow/fluxvariablescache.hh:121
unsigned int ivLocalFaceIndex() const
Returns interaction volume-local face index.
Definition: porousmediumflow/fluxvariablescache.hh:110
constexpr bool usesSecondaryIv() const
Definition: porousmediumflow/fluxvariablescache.hh:100
void setUpdateStatus(bool status)
Sets the update status. When set to true, consecutive updates will be skipped.
Definition: porousmediumflow/fluxvariablescache.hh:115
unsigned int indexInOutsideFaces() const
Returns index of the face among "outside" faces of iv-local "positive" face.
Definition: porousmediumflow/fluxvariablescache.hh:112
GridIndexType ivIndexInContainer() const
Returns the index of the iv (this scvf is embedded in) in its container.
Definition: porousmediumflow/fluxvariablescache.hh:108
void setSecondaryIvUsage(bool status)
Sets if this cache is associated with a secondary iv.
Definition: porousmediumflow/fluxvariablescache.hh:117
void setIndexInOutsideFaces(unsigned int idx)
Sets the index of the face among the "positive" face's outside scvfs.
Definition: porousmediumflow/fluxvariablescache.hh:123
void setIvIndexInContainer(GridIndexType ivIndex)
Sets the index of the iv (this scvf is embedded in) in its container.
Definition: porousmediumflow/fluxvariablescache.hh:119
bool isUpdated() const
Returns whether or not this cache has been updated.
Definition: porousmediumflow/fluxvariablescache.hh:95
GetPropType< TypeTag, Properties::Scalar > Scalar
export type used for scalar values
Definition: porousmediumflow/fluxvariablescache.hh:92
GetPropType< TypeTag, Properties::Scalar > Scalar
export type used for scalar values
Definition: porousmediumflow/fluxvariablescache.hh:75
Definition: porousmediumflow/fluxvariablescache.hh:24
Defines all properties used in Dumux.
Flux variables cache class for control-volume finite element schemes.
Classes related to flux variables caching.
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:296
The available discretization methods in Dumux.
Empty caches to use in a constitutive flux law/process, e.g. Darcy's law.
Definition: fluxvariablescaching.hh:54
Definition: fluxvariablescaching.hh:55
Definition: fluxvariablescaching.hh:56