3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
multidomain/facet/box/properties.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 *****************************************************************************/
29#ifndef DUMUX_FACETCOUPLING_BOX_PROPERTIES_HH
30#define DUMUX_FACETCOUPLING_BOX_PROPERTIES_HH
31
34
40
42
43namespace Dumux {
44
45namespace Properties {
46
49// Create new type tags
50namespace TTag {
51struct BoxFacetCouplingModel { using InheritsFrom = std::tuple<BoxModel>; };
52} // end namespace TTag
53
55template<class TypeTag>
56struct BaseLocalResidual<TypeTag, TTag::BoxFacetCouplingModel> { using type = BoxFacetCouplingLocalResidual<TypeTag>; };
57
59template<class TypeTag>
60struct AdvectionType<TypeTag, TTag::BoxFacetCouplingModel>
61{
64};
65
67template<class TypeTag>
68struct FluxVariables<TypeTag, TTag::BoxFacetCouplingModel>
69{
72};
73
75template<class TypeTag>
76struct ElementBoundaryTypes<TypeTag, TTag::BoxFacetCouplingModel>
78
79// Dumux 3.1 changes the property `FVGridGeometry` to `GridGeometry`.
80// For ensuring backward compatibility on the user side, it is necessary to
81// stick to the old name for the specializations, see the discussion in MR 1647.
82// Use diagnostic pragmas to prevent the emission of a warning message.
83// TODO after 3.1: Rename to GridGeometry, remove the pragmas and this comment.
84#pragma GCC diagnostic push
85#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
87template<class TypeTag>
88struct FVGridGeometry<TypeTag, TTag::BoxFacetCouplingModel>
89{
90private:
91 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridGeometryCache>();
94public:
96};
97#pragma GCC diagnostic pop
98
99} // namespace Properties
100} // namespace Dumux
101
102#endif
Defines a type tag and some properties for models using the box scheme.
make the local view function available whenever we use the grid geometry
Definition: adapt.hh:29
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition: propertysystem.hh:149
The type of the base class of the local residual (specific to a discretization scheme)
Definition: common/properties.hh:80
Stores the boundary types on an element.
Definition: common/properties.hh:112
The type of the global finite volume geometry.
Definition: common/properties.hh:125
Container storing the different types of flux variables.
Definition: common/properties.hh:180
The type for the calculation the advective fluxes.
Definition: common/properties.hh:208
Darcy's law for the box scheme scheme in the context of coupled models where coupling occurs across t...
Definition: multidomain/facet/box/darcyslaw.hh:51
This class stores an array of BoundaryTypes objects on an element for the box scheme with coupling oc...
Definition: multidomain/facet/box/elementboundarytypes.hh:43
Base class for the finite volume geometry vector for box schemes in the context of coupled models whe...
Definition: multidomain/facet/box/fvgridgeometry.hh:84
The element-wise residual for the box scheme.
Definition: multidomain/facet/box/localresidual.hh:43
Definition: multidomain/facet/box/properties.hh:51
std::tuple< BoxModel > InheritsFrom
Definition: multidomain/facet/box/properties.hh:51
The upwind scheme used for the advective fluxes. This is a modified scheme for models involving coupl...
Definition: multidomain/facet/box/upwindscheme.hh:41
The porous medium flux variables class that computes advective / convective, molecular diffusive and ...
Definition: porousmediumflow/fluxvariables.hh:53
Declares all properties used in Dumux.
Boundary types gathered on an element for the box scheme with coupling occurring across the element f...
Base class for the finite volume grid geometry for box models in the context of models considering co...
Modified upwind scheme for models using the box scheme with coupling across element facets.
Base class for the flux variables in porous medium models.
Calculates the element-wise residual for the box scheme with coupling to a lower-dimensional domain o...