3.4
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
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 *****************************************************************************/
25
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>
76
78template<class TypeTag>
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
@ cctpfa
Definition method.hh:38
Definition adapt.hh:29
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:154
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property
Definition propertysystem.hh:150
Definition gridcapabilities.hh:60
Definition common/properties.hh:37
Type tag for numeric models.
Definition grid.hh:36
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
std::tuple< FiniteVolumeModel > InheritsFrom
Definition cctpfa.hh:51
CCTpfaFVGridGeometry< GridView, enableCache > type
Definition cctpfa.hh:62
CCTpfaGridVolumeVariables< Problem, VolumeVariables, enableCache > type
Definition cctpfa.hh:74
CCTpfaGridFluxVariablesCache< Problem, FluxVariablesCache, FluxVariablesCacheFiller, enableCache > type
Definition cctpfa.hh:87
CCElementBoundaryTypes type
Definition cctpfa.hh:92
CCLocalResidual< TypeTag > type
Definition cctpfa.hh:96
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.