13#ifndef DUMUX_DISCRETIZATION_CC_MPFA_HH
14#define DUMUX_DISCRETIZATION_CC_MPFA_HH
19#include <dune/common/reservedvector.hh>
56template<
class TypeTag>
57struct DualGridNodalIndexSet<TypeTag, TTag::CCMpfaModel>
68template<
class TypeTag>
69struct PrimaryInteractionVolume<TypeTag, TTag::CCMpfaModel>
82template<
class TypeTag>
83struct SecondaryInteractionVolume<TypeTag, TTag::CCMpfaModel>
96template<
class TypeTag>
97struct GridGeometry<TypeTag, TTag::CCMpfaModel>
110template<
class TypeTag>
111struct GridVolumeVariables<TypeTag, TTag::CCMpfaModel>
114 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridVolumeVariablesCache>();
122template<
class TypeTag>
123struct GridFluxVariablesCache<TypeTag, TTag::CCMpfaModel>
126 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridFluxVariablesCache>();
141 using PrimaryMatVecTraits =
typename PrimaryInteractionVolume::Traits::MatVecTraits;
142 using SecondaryMatVecTraits =
typename SecondaryInteractionVolume::Traits::MatVecTraits;
148 FluxVariablesCache, FluxVariablesCacheFiller,
149 PrimaryInteractionVolume, SecondaryInteractionVolume,
156template<
class TypeTag>
163template<
class Problem>
167 using GG = std::decay_t<decltype(std::declval<Problem>().gridGeometry())>;
168 using Element =
typename GG::GridView::template Codim<0>::Entity;
169 using SubControlVolumeFace =
typename GG::SubControlVolumeFace;
173 using BoundaryTypes = std::decay_t<decltype(std::declval<Problem>().boundaryTypes(std::declval<Element>(), std::declval<SubControlVolumeFace>()))>;
176template<
class TypeTag>
178 typename GetPropType<TypeTag, Properties::GridGeometry>::DiscretizationMethod,
179 DiscretizationMethods::CCMpfa
182template<CCMpfaModel TypeTag>
Calculates the element-wise residual for cell-centered discretization schemes.
Boundary types gathered on an element.
The local element solution class for cell-centered methods.
Traits class to be used in conjunction with the CCMpfaFVGridGeometry.
The grid volume variables class for cell centered mpfa models.
Boundary types gathered on an element.
Definition: cellcentered/elementboundarytypes.hh:26
Calculates the element-wise residual for the cell-centered discretization schemes.
Definition: cclocalresidual.hh:31
Nodal index set for mpfa schemes, constructed around grid vertices.
Definition: dualgridindexset.hh:58
The finite volume geometry (scvs and scvfs) for cell-centered mpfa models on a grid view This builds ...
Definition: discretization/cellcentered/mpfa/fvgridgeometry.hh:40
Flux variable caches on a gridview.
Definition: discretization/cellcentered/mpfa/gridfluxvariablescache.hh:73
Base class for the grid volume variables.
Definition: cellcentered/mpfa/gridvolumevariables.hh:48
Forward declaration of the o-method's interaction volume.
Definition: discretization/cellcentered/mpfa/omethod/interactionvolume.hh:103
The element-wise residual for control-volume finite element schemes.
Definition: cvfelocalresidual.hh:60
Class for the interaction volume data handle.
Definition: interactionvolumedatahandle.hh:226
Defines all properties used in Dumux.
Type traits for problem classes.
Definition: ccmpfa.hh:177
The default local operator than can be specialized for each discretization scheme.
Defines the default element and vertex mapper types.
The finite volume geometry (scvs and scvfs) for cell-centered mpfa models on a grid view This builds ...
Flux variable caches on a gridview.
Class for the interaction volume of the mpfa-o scheme.
Class for the index sets of the dual grid in mpfa schemes.
Classes related to flux variables caching.
Declares properties required for finite-volume models models.
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:296
typename GetPropOr< TypeTag, Property, T >::type GetPropTypeOr
get the type alias defined in the property or the type T if the property is undefined
Definition: propertysystem.hh:303
Data handle class for interaction volumes of mpfa methods. This class is passed to interaction volume...
The available discretization methods in Dumux.
The available mpfa schemes in Dumux.
typename Detail::DiscretizationDefaultLocalOperator< TypeTag >::type DiscretizationDefaultLocalOperator
Definition: defaultlocaloperator.hh:27
Data handle physics traits.
Definition: discretization/cellcentered/mpfa/gridfluxvariablescache.hh:45
Traits class to be used for the CCMpfaFVGridGeometry.
Definition: cellcentered/mpfa/fvgridgeometrytraits.hh:38
The default interaction volume traits class for the mpfa-o method. This uses dynamic types types for ...
Definition: discretization/cellcentered/mpfa/omethod/interactionvolume.hh:48
GG GridGeometry
Definition: ccmpfa.hh:171
std::decay_t< decltype(std::declval< Problem >().boundaryTypes(std::declval< Element >(), std::declval< SubControlVolumeFace >()))> BoundaryTypes
Definition: ccmpfa.hh:173
Definition: common/typetraits/problem.hh:23
The empty filler class corresponding to EmptyCache.
Definition: fluxvariablescaching.hh:20
An empty flux variables cache.
Definition: fluxvariablescaching.hh:35
Data handle physics traits.
Definition: discretization/cellcentered/mpfa/gridfluxvariablescache.hh:27
Default traits to be used in conjunction with the dual grid nodal index set.
Definition: dualgridindexset.hh:33
std::tuple< FiniteVolumeModel > InheritsFrom
Definition: ccmpfa.hh:52