3.4
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
cctpfa.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 *****************************************************************************/
26#ifndef DUMUX_DISCRETIZATION_CC_TPFA_HH
27#define DUMUX_DISCRETIZATION_CC_TPFA_HH
28
32
34
37
44
45namespace Dumux {
46namespace Properties {
47
49// Create new type tags
50namespace TTag {
51struct CCTpfaModel { using InheritsFrom = std::tuple<FiniteVolumeModel>; };
52} // end namespace TTag
53
55template<class TypeTag>
56struct GridGeometry<TypeTag, TTag::CCTpfaModel>
57{
58private:
59 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridGeometryCache>();
61public:
63};
64
66template<class TypeTag>
67struct GridVolumeVariables<TypeTag, TTag::CCTpfaModel>
68{
69private:
70 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridVolumeVariablesCache>();
73public:
75};
76
78template<class TypeTag>
79struct GridFluxVariablesCache<TypeTag, TTag::CCTpfaModel>
80{
81private:
82 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridFluxVariablesCache>();
86public:
88};
89
91template<class TypeTag>
92struct ElementBoundaryTypes<TypeTag, TTag::CCTpfaModel> { using type = CCElementBoundaryTypes; };
93
95template<class TypeTag>
96struct BaseLocalResidual<TypeTag, TTag::CCTpfaModel> { using type = CCLocalResidual<TypeTag>; };
97} // namespace Properties
98
99namespace Detail {
100
101template<class Problem>
103{
104private:
105 using GG = std::decay_t<decltype(std::declval<Problem>().gridGeometry())>;
106 using Element = typename GG::GridView::template Codim<0>::Entity;
107 using SubControlVolumeFace = typename GG::SubControlVolumeFace;
108public:
109 using GridGeometry = GG;
110 // BoundaryTypes is whatever the problem returns from boundaryTypes(element, scvf)
111 using BoundaryTypes = std::decay_t<decltype(std::declval<Problem>().boundaryTypes(std::declval<Element>(), std::declval<SubControlVolumeFace>()))>;
112};
113
114} // end namespace Detail
115
116} // namespace Dumux
117
118#endif
Calculates the element-wise residual for cell-centered discretization schemes.
Declares properties required for finite-volume models models.
The available discretization methods in Dumux.
Boundary flag to store e.g. in sub control volume faces.
DiscretizationMethod
The available discretization methods in Dumux.
Definition: method.hh:37
Definition: adapt.hh:29
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:150
Calculates the element-wise residual for the cell-centered discretization schemes.
Definition: cclocalresidual.hh:43
The type of the base class of the local residual (specific to a discretization scheme)
Definition: common/properties.hh:65
Stores the boundary types on an element.
Definition: common/properties.hh:95
Definition: common/properties.hh:98
The type for a global container for the volume variables.
Definition: common/properties.hh:105
The global vector of flux variable containers.
Definition: common/properties.hh:115
Definition: common/typetraits/problem.hh:35
Definition: cctpfa.hh:51
std::tuple< FiniteVolumeModel > InheritsFrom
Definition: cctpfa.hh:51
std::decay_t< decltype(std::declval< Problem >().boundaryTypes(std::declval< Element >(), std::declval< SubControlVolumeFace >()))> BoundaryTypes
Definition: cctpfa.hh:111
Boundary types gathered on an element.
Definition: cellcentered/elementboundarytypes.hh:38
The finite volume geometry (scvs and scvfs) for cell-centered TPFA models on a grid view This builds ...
Definition: discretization/cellcentered/tpfa/fvgridgeometry.hh:80
Flux variable caches on a gridview.
Definition: discretization/cellcentered/tpfa/gridfluxvariablescache.hh:58
Base class for the grid volume variables.
Definition: cellcentered/tpfa/gridvolumevariables.hh:56
Boundary types gathered on an element.
The grid volume variables class for cell centered tpfa models.
Declares all properties used in Dumux.
Type traits for problem classes.
Flux variable caches on a gridview.
The finite volume geometry (scvs and scvfs) for cell-centered TPFA models on a grid view This builds ...
Sub control volumes for cell-centered discretization schemes.
The sub control volume face.