version 3.10.0
Loading...
Searching...
No Matches
pq1bubble.hh
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3//
4// SPDX-FileCopyrightText: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
12
13#ifndef DUMUX_DISCRETIZTAION_PQ1BUBBLE_HH
14#define DUMUX_DISCRETIZTAION_PQ1BUBBLE_HH
15
16#include <concepts>
17#include <type_traits>
18
19#include <dune/common/fvector.hh>
20#include <dune/geometry/multilineargeometry.hh>
21
25
27
32
39
41
42namespace Dumux::Properties {
43
45// Create new type tags
46namespace TTag {
47struct PQ1BubbleModel { using InheritsFrom = std::tuple<FiniteVolumeModel>; };
48} // end namespace TTag
49
51template<class TypeTag>
52struct GridGeometry<TypeTag, TTag::PQ1BubbleModel>
53{
54private:
55 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridGeometryCache>();
58public:
60};
61
63template<class TypeTag>
64struct GridVolumeVariables<TypeTag, TTag::PQ1BubbleModel>
65{
66private:
71public:
73};
74
76template<class TypeTag>
77struct FluxVariablesCache<TypeTag, TTag::PQ1BubbleModel>
78{
79private:
82public:
84};
85
87template<class TypeTag>
88struct GridFluxVariablesCache<TypeTag, TTag::PQ1BubbleModel>
89{
90private:
91 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridFluxVariablesCache>();
93
95 using FluxVariablesCache = GetPropTypeOr<TypeTag,
96 Properties::FluxVariablesCache, FluxVariablesCaching::EmptyCache<Scalar>
97 >;
98public:
100};
101
103template<class TypeTag>
104struct ElementBoundaryTypes<TypeTag, TTag::PQ1BubbleModel>
105{
106private:
108 using BoundaryTypes = typename ProblemTraits<Problem>::BoundaryTypes;
109public:
111};
112
113} // namespace Dumux::Properties
114
115namespace Dumux::Detail {
116
117template<class Problem>
119{
120private:
121 using GG = std::decay_t<decltype(std::declval<Problem>().gridGeometry())>;
122 using Element = typename GG::GridView::template Codim<0>::Entity;
123 using SubControlVolume = typename GG::SubControlVolume;
124public:
125 using GridGeometry = GG;
126 // BoundaryTypes is whatever the problem returns from boundaryTypes(element, scv)
127 using BoundaryTypes = std::decay_t<decltype(std::declval<Problem>().boundaryTypes(std::declval<Element>(), std::declval<SubControlVolume>()))>;
128};
129
130template<class GridView>
132{
133 static constexpr int dim = GridView::dimension;
134 // Dofs are located at the vertices and element
135 static constexpr int numCubeElementDofs = (1<<dim) + 1;
136};
137
138template<class TypeTag>
139concept PQ1BubbleModel = std::is_same_v<
142>;
143
144template<PQ1BubbleModel TypeTag>
146{
148};
149
150} // end namespace Dumux::Detail
151
152#endif
Boundary flag to store e.g. in sub control volume faces.
This class stores an array of BoundaryTypes objects.
Definition cvfe/elementboundarytypes.hh:28
Flux variables cache class for control-volume finite element schemes. For control-volume finite eleme...
Definition discretization/cvfe/fluxvariablescache.hh:27
Flux variable caches on a gridview.
Definition discretization/cvfe/gridfluxvariablescache.hh:46
Base class for the grid volume variables.
Definition cvfe/gridvolumevariables.hh:42
The element-wise residual for control-volume finite element schemes.
Definition cvfelocalresidual.hh:60
Base class for the finite volume geometry vector for pq1bubble schemes This builds up the sub control...
Definition discretization/pq1bubble/fvgridgeometry.hh:97
Defines all properties used in Dumux.
Type traits for problem classes.
Definition pq1bubble.hh:139
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.
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...
Classes related to flux variables caching.
Declares properties required for finite-volume models models.
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
Element-specific traits of grid geometries / discretization schemes.
The available discretization methods in Dumux.
Definition discretization/pq1bubble/geometryhelper.hh:44
Distance implementation details.
Definition cvfelocalresidual.hh:25
Definition method.hh:20
CVFE< CVFEMethods::PQ1Bubble > PQ1Bubble
Definition method.hh:108
Type tag for numeric models.
Definition grid.hh:24
The energy balance equation for a porous solid.
Definition common/properties.hh:26
Definition cvfe/gridvolumevariables.hh:29
CVFELocalResidual< TypeTag > type
Definition box.hh:147
Definition defaultlocaloperator.hh:19
static constexpr int numCubeElementDofs
Definition pq1bubble.hh:135
Definition localdoftraits.hh:18
std::decay_t< decltype(std::declval< Problem >().boundaryTypes(std::declval< Element >(), std::declval< SubControlVolume >()))> BoundaryTypes
Definition pq1bubble.hh:127
Definition common/typetraits/problem.hh:23
An empty flux variables cache.
Definition fluxvariablescaching.hh:35
typename Detail::template ProblemTraits< Problem, typename GridGeometry::DiscretizationMethod >::BoundaryTypes BoundaryTypes
Definition common/typetraits/problem.hh:34
CVFEElementBoundaryTypes< BoundaryTypes > type
Definition pq1bubble.hh:110
CVFEFluxVariablesCache< Scalar, GridGeometry > type
Definition pq1bubble.hh:83
CVFEGridFluxVariablesCache< Problem, FluxVariablesCache, enableCache > type
Definition pq1bubble.hh:99
PQ1BubbleFVGridGeometry< Scalar, GridView, enableCache > type
Definition pq1bubble.hh:59
CVFEGridVolumeVariables< Traits, enableCache > type
Definition pq1bubble.hh:72
Definition pq1bubble.hh:47
std::tuple< FiniteVolumeModel > InheritsFrom
Definition pq1bubble.hh:47