13#ifndef DUMUX_DISCRETIZATION_PQ1BUBBLE_HH
14#define DUMUX_DISCRETIZATION_PQ1BUBBLE_HH
21#include <dumux/common/concepts/variables_.hh>
23#include <dumux/common/typetraits/boundary_.hh>
26#include <dumux/assembly/cvfelocalresidual_.hh>
60template<
class TypeTag>
61struct GridGeometry<TypeTag,
TTag::PQ1BubbleModel>
72template<
class TypeTag>
73struct GridGeometry<TypeTag,
TTag::PQ1BubbleHybridModel>
82 static constexpr std::size_t numCubeBubbles = 2;
89template<
class TypeTag>
90struct GridGeometry<TypeTag,
TTag::PQ1BubbleFEModel>
100template<
class TypeTag>
101struct GridVariables<TypeTag,
TTag::PQ1BubbleFEModel>
105template<
class TypeTag>
106struct EnableGridVolumeVariablesCache<TypeTag,
TTag::PQ1BubbleFEModel> {
static constexpr bool value =
false; };
109template<
class TypeTag>
110struct SolutionVector<TypeTag,
TTag::PQ1BubbleFEModel> {
using type = Dune::BlockVector<GetPropType<TypeTag, Properties::PrimaryVariables>>; };
113template<
class TypeTag>
114struct JacobianMatrix<TypeTag,
TTag::PQ1BubbleFEModel>
119 using MatrixBlock =
typename Dune::FieldMatrix<PrimaryVariable, numEq, numEq>;
125template<
class TypeTag>
126struct GridVolumeVariables<TypeTag,
TTag::PQ1BubbleFVBase>
138template<
class TypeTag>
139struct GridVariables<TypeTag,
TTag::PQ1BubbleFVBase>
143template<
class TypeTag>
144struct FluxVariablesCache<TypeTag,
TTag::PQ1BubbleModel>
154template<
class TypeTag>
155struct GridFluxVariablesCache<TypeTag,
TTag::PQ1BubbleModel>
170template<
class TypeTag>
171struct GridVariables<TypeTag,
TTag::PQ1BubbleHybridModel>
175template<
class TypeTag>
176struct EnableGridGeometryCache<TypeTag,
TTag::PQ1BubbleHybridModel> {
static constexpr bool value =
false; };
179template<
class TypeTag>
180struct EnableGridVolumeVariablesCache<TypeTag,
TTag::PQ1BubbleHybridModel> {
static constexpr bool value =
false; };
183template<
class TypeTag>
184struct SolutionVector<TypeTag,
TTag::PQ1BubbleHybridModel> {
using type = Dune::BlockVector<GetPropType<TypeTag, Properties::PrimaryVariables>>; };
187template<
class TypeTag>
188struct JacobianMatrix<TypeTag,
TTag::PQ1BubbleHybridModel>
193 using MatrixBlock =
typename Dune::FieldMatrix<PrimaryVariable, numEq, numEq>;
199template<
class TypeTag>
200struct ElementBoundaryTypes<TypeTag,
TTag::PQ1BubbleBase>
209 using type = std::conditional_t<
210 Dumux::Detail::hasProblemBoundaryTypesForFaceFunction<Problem, typename GG::LocalView>(),
220template<
class Problem>
228 using BoundaryTypes = Detail::BoundaryTypes<Problem, typename GG::LocalView>::type;
231template<
class TypeTag>
240template<PQ1BubbleFVModel TypeTag>
245 static constexpr bool usesGeneralGridVariables =
246 Dumux::Concept::GridVariables<GV> && !Dumux::Concept::FVGridVariables<GV>;
248 using type = std::conditional_t<usesGeneralGridVariables,
249 Dumux::Experimental::CVFELocalResidual<TypeTag>,
256template<PQ1BubbleHybr
idModel TypeTag>
258{
using type = Dumux::Experimental::CVFELocalResidual<TypeTag>; };
263template<PQ1BubbleFEModel TypeTag>
The element-wise residual for grid-based discretization schemes.
Boundary flag to store e.g. in sub control volume faces.
This class stores an array of BoundaryTypes objects.
Definition cvfe/elementboundarytypes.hh:29
Flux variables cache class for control-volume finite element schemes. For control-volume finite eleme...
Definition discretization/cvfe/fluxvariablescache.hh:34
Base class for the grid volume variables.
Definition cvfe/gridvolumevariables.hh:44
The element-wise residual for control-volume finite element schemes.
Definition cvfelocalresidual.hh:60
This class stores an array of BoundaryTypes objects. This class is not dependent on the used discreti...
Definition elementboundarytypes.hh:30
The element-wise residual for grid-based discretization schemes.
Definition assembly/localresidual.hh:39
Base class for the finite volume geometry vector for pq1bubble schemes This builds up the sub control...
Definition discretization/pq1bubble/fvgridgeometry.hh:147
Defines all properties used in Dumux.
Type traits for problem classes.
Definition pq1bubble.hh:261
Definition pq1bubble.hh:238
Definition pq1bubble.hh:254
Definition pq1bubble.hh:232
Boundary types gathered on an element.
The local element solution class for control-volume finite element methods.
The grid volume variables class for control-volume finite element methods.
Calculates the element-wise residual for control-volume finite element schemes.
Grid variables with the variables cache selected depending on the element discretization.
The default local operator than can be specialized for each discretization scheme.
Flux variables cache class for control-volume finite element schemes.
Global flux variable cache.
Base class for the finite volume geometry vector for the pq1bubble method This builds up the sub cont...
Boundary types gathered on an element.
The element variables class.
Classes related to flux variables caching.
Declares properties required for finite-volume models models.
CVFEGridFluxVariablesCacheImpl< Problem, FluxVariablesCache, cachingEnabled, Traits, Detail::ScvfQuadratureRuleOrDefault_t< typename Traits::FluxVariablesCache > > CVFEGridFluxVariablesCache
Flux variable caches on a gridview.
Definition discretization/cvfe/gridfluxvariablescache.hh:59
typename CVFEGridVariables< TypeTag >::type CVFEGridVariables_t
The grid variables of a control-volume finite element type tag: Experimental::DefaultGridVariables if...
Definition defaultgridvariables.hh:137
GridVariables< GetPropType< TypeTag, Properties::GridGeometry >, DefaultGridVariablesCache< GetPropType< TypeTag, Properties::GridGeometry >, GetPropType< TypeTag, Properties::Problem >, Variables, getPropValue< TypeTag, Properties::EnableGridVolumeVariablesCache >() > > DefaultGridVariables
The grid variables of a model whose variables are defined per local degree of freedom.
Definition defaultgridvariables.hh:82
CVFE::DefaultQuadratureTraits< GridView, ScvRule, ScvfRule, ElementRule, IntersectionRule, BoundaryFaceRule > PQ1BubbleQuadratureTraits
Quadrature rule traits for PQ1Bubble discretization.
Definition discretization/pq1bubble/fvgridgeometry.hh:102
FEGridDiscretization< GV, Traits > PQ1BubbleFEGridDiscretization
Finite element grid discretization for the PQ1Bubble method.
Definition pq1bubble/fegriddiscretization.hh:74
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:310
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
constexpr bool inheritsFrom()
Return true if the given type tag inherits from the given parent type tag.
Definition propertysystem.hh:262
The available discretization methods in Dumux.
Definition discretization/pq1bubble/geometryhelper.hh:54
Definition cvfelocalresidual.hh:25
typename ProblemGridGeometryHelper< Problem >::type ProblemGridGeometry
Definition common/typetraits/problem.hh:40
CVFE< CVFEMethods::PQ1Bubble > PQ1Bubble
Definition method.hh:126
Type tag for numeric models.
Definition grid.hh:24
The energy balance equation for a porous solid.
Definition common/properties.hh:26
Finite element grid discretization for the PQ1Bubble method.
Definition cvfe/gridvolumevariables.hh:31
CCLocalResidual< TypeTag > type
Definition ccmpfa.hh:185
Definition defaultlocaloperator.hh:19
GG GridGeometry
Definition pq1bubble.hh:226
Detail::BoundaryTypes< Problem, typename GG::LocalView >::type BoundaryTypes
Definition pq1bubble.hh:228
Definition common/typetraits/problem.hh:23
An empty flux variables cache.
Definition fluxvariablescaching.hh:35
The default traits for the hybrid pq1bubble finite volume grid geometry Defines the scv and scvf type...
Definition discretization/pq1bubble/fvgridgeometry.hh:133
Detail::ProblemGridGeometry< Problem > GridGeometry
Definition common/typetraits/problem.hh:50
typename Detail::template ProblemTraits< Problem, typename GridGeometry::DiscretizationMethod >::BoundaryTypes BoundaryTypes
Definition common/typetraits/problem.hh:52
std::conditional_t< Dumux::Detail::hasProblemBoundaryTypesForFaceFunction< Problem, typename GG::LocalView >(), Dumux::ElementIntersectionBoundaryTypes< BoundaryTypes >, Dumux::CVFEElementBoundaryTypes< BoundaryTypes > > type
Definition pq1bubble.hh:209
static constexpr bool value
Definition pq1bubble.hh:176
static constexpr bool value
Definition pq1bubble.hh:106
static constexpr bool value
Definition pq1bubble.hh:180
CVFEFluxVariablesCache< Scalar, GridGeometry > type
Definition pq1bubble.hh:150
CVFEGridFluxVariablesCache< Problem, FluxVariablesCache, enableCache > type
Definition pq1bubble.hh:166
Dumux::Experimental::PQ1BubbleFEGridDiscretization< Scalar, GridView, enableCache > type
Definition pq1bubble.hh:97
PQ1BubbleFVGridGeometry< Scalar, GridView, enableCache, Traits > type
Definition pq1bubble.hh:85
PQ1BubbleFVGridGeometry< Scalar, GridView, enableCache > type
Definition pq1bubble.hh:68
Dumux::Experimental::DefaultGridVariables< TypeTag > type
Definition pq1bubble.hh:102
Dumux::Detail::CVFEGridVariables_t< TypeTag > type
Definition pq1bubble.hh:140
Dumux::Experimental::DefaultGridVariables< TypeTag > type
Definition pq1bubble.hh:172
CVFEGridVolumeVariables< Traits, enableCache > type
Definition pq1bubble.hh:134
typename Dune::BCRSMatrix< MatrixBlock > type
Definition pq1bubble.hh:121
typename Dune::BCRSMatrix< MatrixBlock > type
Definition pq1bubble.hh:195
Dune::BlockVector< GetPropType< TypeTag, Properties::PrimaryVariables > > type
Definition pq1bubble.hh:110
Dune::BlockVector< GetPropType< TypeTag, Properties::PrimaryVariables > > type
Definition pq1bubble.hh:184
Definition pq1bubble.hh:52
std::tuple< GridProperties > InheritsFrom
Definition pq1bubble.hh:52
Definition pq1bubble.hh:56
std::tuple< PQ1BubbleBase > InheritsFrom
Definition pq1bubble.hh:56
Definition pq1bubble.hh:53
std::tuple< FiniteVolumeModel, PQ1BubbleBase > InheritsFrom
Definition pq1bubble.hh:53
Definition pq1bubble.hh:55
std::tuple< PQ1BubbleBase > InheritsFrom
Definition pq1bubble.hh:55
Definition pq1bubble.hh:54
std::tuple< PQ1BubbleFVBase > InheritsFrom
Definition pq1bubble.hh:54