24#ifndef DUMUX_POROUSMEDIUM_FLUXVARIABLESCACHE_HH
25#define DUMUX_POROUSMEDIUM_FLUXVARIABLESCACHE_HH
35template<
class TypeTag,
class DiscretizationMethod>
52template<
class TypeTag>
57template<
class TypeTag>
59:
public BoxFluxVariablesCache<GetPropType<TypeTag, Properties::Scalar>, GetPropType<TypeTag, Properties::GridGeometry>>
79template<
class TypeTag>
81:
public AdvectionCacheChooser<TypeTag, GetPropType<TypeTag, Properties::ModelTraits>::enableAdvection()>
82,
public DiffusionCacheChooser<TypeTag, GetPropType<TypeTag, Properties::ModelTraits>::enableMolecularDiffusion()>
83,
public EnergyCacheChooser<TypeTag, GetPropType<TypeTag, Properties::ModelTraits>::enableEnergyBalance()>
92template<
class TypeTag>
94:
public AdvectionCacheChooser<TypeTag, GetPropType<TypeTag, Properties::ModelTraits>::enableAdvection()>
95,
public DiffusionCacheChooser<TypeTag, GetPropType<TypeTag, Properties::ModelTraits>::enableMolecularDiffusion()>
96,
public EnergyCacheChooser<TypeTag, GetPropType<TypeTag, Properties::ModelTraits>::enableEnergyBalance()>
101 static constexpr bool considerSecondary = MpfaHelper::considerSecondaryIVs();
111 template<
bool doSecondary = cons
iderSecondary, std::enable_if_t<!doSecondary,
int> = 0>
116 template<
bool doSecondary = cons
iderSecondary, std::enable_if_t<doSecondary,
int> = 0>
139 bool isUpdated_ =
false;
140 bool usesSecondaryIv_ =
false;
142 GridIndexType ivIndexInContainer_;
143 unsigned int ivLocalFaceIdx_;
144 unsigned int idxInOutsideFaces_;
The available discretization methods in Dumux.
Classes related to flux variables caching.
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:150
Flux variables cache class for the box scheme. For the box scheme, this class does not contain any ph...
Definition: discretization/box/fluxvariablescache.hh:39
Empty caches to use in a constitutive flux law/process, e.g. Darcy's law.
Definition: fluxvariablescaching.hh:66
Definition: fluxvariablescaching.hh:67
Definition: fluxvariablescaching.hh:68
Definition: porousmediumflow/fluxvariablescache.hh:36
GetPropType< TypeTag, Properties::Scalar > Scalar
export type used for scalar values
Definition: porousmediumflow/fluxvariablescache.hh:63
Definition: porousmediumflow/fluxvariablescache.hh:70
Definition: porousmediumflow/fluxvariablescache.hh:72
Definition: porousmediumflow/fluxvariablescache.hh:74
GetPropType< TypeTag, Properties::Scalar > Scalar
export type used for scalar values
Definition: porousmediumflow/fluxvariablescache.hh:87
bool usesSecondaryIv() const
Definition: porousmediumflow/fluxvariablescache.hh:117
void setIvLocalFaceIndex(unsigned int idx)
Sets the iv-local face index.
Definition: porousmediumflow/fluxvariablescache.hh:133
unsigned int ivLocalFaceIndex() const
Returns interaction volume-local face index.
Definition: porousmediumflow/fluxvariablescache.hh:122
constexpr bool usesSecondaryIv() const
Definition: porousmediumflow/fluxvariablescache.hh:112
void setUpdateStatus(bool status)
Sets the update status. When set to true, consecutive updates will be skipped.
Definition: porousmediumflow/fluxvariablescache.hh:127
unsigned int indexInOutsideFaces() const
Returns index of the face among "outside" faces of iv-local "positive" face.
Definition: porousmediumflow/fluxvariablescache.hh:124
GridIndexType ivIndexInContainer() const
Returns the index of the iv (this scvf is embedded in) in its container.
Definition: porousmediumflow/fluxvariablescache.hh:120
void setSecondaryIvUsage(bool status)
Sets if this cache is associated with a secondary iv.
Definition: porousmediumflow/fluxvariablescache.hh:129
void setIndexInOutsideFaces(unsigned int idx)
Sets the index of the face among the "positive" face's outside scvfs.
Definition: porousmediumflow/fluxvariablescache.hh:135
void setIvIndexInContainer(GridIndexType ivIndex)
Sets the index of the iv (this scvf is embedded in) in its container.
Definition: porousmediumflow/fluxvariablescache.hh:131
bool isUpdated() const
Returns whether or not this cache has been updated.
Definition: porousmediumflow/fluxvariablescache.hh:107
GetPropType< TypeTag, Properties::Scalar > Scalar
export type used for scalar values
Definition: porousmediumflow/fluxvariablescache.hh:104
Declares all properties used in Dumux.
Flux variables cache class for the box scheme.