3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
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 * See the file COPYING for full copying permissions. *
5 * *
6 * This program is free software: you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation, either version 3 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
18 *****************************************************************************/
24
25#ifndef DUMUX_DISCRETIZTAION_PQ1BUBBLE_HH
26#define DUMUX_DISCRETIZTAION_PQ1BUBBLE_HH
27
28#include <type_traits>
29
30#include <dune/common/fvector.hh>
31#include <dune/geometry/multilineargeometry.hh>
32
36
38
41
48
50
51namespace Dumux::Properties {
52
54// Create new type tags
55namespace TTag {
56struct PQ1BubbleModel { using InheritsFrom = std::tuple<FiniteVolumeModel>; };
57} // end namespace TTag
58
60template<class TypeTag>
61struct GridGeometry<TypeTag, TTag::PQ1BubbleModel>
62{
63private:
64 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridGeometryCache>();
67public:
69};
70
72template<class TypeTag>
83
85template<class TypeTag>
86struct FluxVariablesCache<TypeTag, TTag::PQ1BubbleModel>
87{
88private:
91public:
93};
94
96template<class TypeTag>
97struct GridFluxVariablesCache<TypeTag, TTag::PQ1BubbleModel>
98{
99private:
100 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridFluxVariablesCache>();
102
104 using FluxVariablesCache = GetPropTypeOr<TypeTag,
106 >;
107public:
109};
110
112template<class TypeTag>
113struct ElementBoundaryTypes<TypeTag, TTag::PQ1BubbleModel>
114{
115private:
117 using BoundaryTypes = typename ProblemTraits<Problem>::BoundaryTypes;
118public:
120};
121
123template<class TypeTag>
124struct BaseLocalResidual<TypeTag, TTag::PQ1BubbleModel>
126
127} // namespace Dumux::Properties
128
129namespace Dumux::Detail {
130
131template<class Problem>
133{
134private:
135 using GG = std::decay_t<decltype(std::declval<Problem>().gridGeometry())>;
136 using Element = typename GG::GridView::template Codim<0>::Entity;
137 using SubControlVolume = typename GG::SubControlVolume;
138public:
139 using GridGeometry = GG;
140 // BoundaryTypes is whatever the problem returns from boundaryTypes(element, scv)
141 using BoundaryTypes = std::decay_t<decltype(std::declval<Problem>().boundaryTypes(std::declval<Element>(), std::declval<SubControlVolume>()))>;
142};
143
144} // end namespace Dumux::Detail
145
146#endif
Calculates the element-wise residual for control-volume finite element schemes.
Boundary flag to store e.g. in sub control volume faces.
Declares properties required for finite-volume models models.
The available discretization methods in Dumux.
Classes related to flux variables caching.
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:188
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition propertysystem.hh:180
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:184
Distance implementation details.
Definition cvfelocalresidual.hh:37
Definition pq1bubblelocalassembler.hh:45
Definition common/properties.hh:37
Type tag for numeric models.
Definition grid.hh:36
Definition method.hh:32
The element-wise residual for control-volume finite element schemes.
Definition cvfelocalresidual.hh:72
The type of the base class of the local residual (specific to a discretization scheme).
Definition common/properties.hh:63
Stores the boundary types on an element.
Definition common/properties.hh:97
Definition common/properties.hh:100
The type for a global container for the volume variables.
Definition common/properties.hh:107
Stores data associated with flux vars.
Definition common/properties.hh:113
The global vector of flux variable containers.
Definition common/properties.hh:117
Definition common/typetraits/problem.hh:35
typename Detail::template ProblemTraits< Problem, typename GridGeometry::DiscretizationMethod >::BoundaryTypes BoundaryTypes
Definition common/typetraits/problem.hh:46
This class stores an array of BoundaryTypes objects.
Definition cvfe/elementboundarytypes.hh:40
Flux variables cache class for control-volume finite element schemes. For control-volume finite eleme...
Definition discretization/cvfe/fluxvariablescache.hh:39
Flux variable caches on a gridview.
Definition discretization/cvfe/gridfluxvariablescache.hh:58
Definition cvfe/gridvolumevariables.hh:41
Base class for the grid volume variables.
Definition cvfe/gridvolumevariables.hh:54
Definition pq1bubble.hh:56
std::tuple< FiniteVolumeModel > InheritsFrom
Definition pq1bubble.hh:56
PQ1BubbleFVGridGeometry< Scalar, GridView, enableCache > type
Definition pq1bubble.hh:68
CVFEGridVolumeVariables< Traits, enableCache > type
Definition pq1bubble.hh:81
CVFEFluxVariablesCache< Scalar, GridGeometry > type
Definition pq1bubble.hh:92
CVFEGridFluxVariablesCache< Problem, FluxVariablesCache, enableCache > type
Definition pq1bubble.hh:108
CVFEElementBoundaryTypes< BoundaryTypes > type
Definition pq1bubble.hh:119
CVFELocalResidual< TypeTag > type
Definition pq1bubble.hh:125
std::decay_t< decltype(std::declval< Problem >().boundaryTypes(std::declval< Element >(), std::declval< SubControlVolume >()))> BoundaryTypes
Definition pq1bubble.hh:141
Base class for the finite volume geometry vector for pq1bubble schemes This builds up the sub control...
Definition discretization/pq1bubble/fvgridgeometry.hh:98
An empty flux variables cache.
Definition fluxvariablescaching.hh:47
Declares all properties used in Dumux.
Type traits for problem classes.
Boundary types gathered on an element.
The local element solution class for the pq1bubble method.
Flux variables cache class for control-volume finite element schemes.
Base class for the finite volume geometry vector for the pq1bubble method This builds up the sub cont...
Global flux variable cache.
The grid volume variables class for box models.