3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
box.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#ifndef DUMUX_DISCRETIZTAION_BOX_HH
26#define DUMUX_DISCRETIZTAION_BOX_HH
27
28#include <dune/common/fvector.hh>
29#include <dune/geometry/multilineargeometry.hh>
30
33
35
38
44
45namespace Dumux {
46namespace Properties {
47
49// Create new type tags
50namespace TTag {
51struct BoxModel { using InheritsFrom = std::tuple<FiniteVolumeModel>; };
52} // end namespace TTag
53
54// Dumux 3.1 changes the property `FVGridGeometry` to `GridGeometry`.
55// For ensuring backward compatibility on the user side, it is necessary to
56// stick to the old name for the specializations, see the discussion in MR 1647.
57// Use diagnostic pragmas to prevent the emission of a warning message.
58// TODO after 3.1: Rename to GridGeometry, remove the pragmas and this comment.
59#pragma GCC diagnostic push
60#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
62template<class TypeTag>
63struct FVGridGeometry<TypeTag, TTag::BoxModel>
64{
65private:
66 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridGeometryCache>();
69public:
71};
72#pragma GCC diagnostic pop
73
75template<class TypeTag>
76struct GridVolumeVariables<TypeTag, TTag::BoxModel>
77{
78private:
79 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridVolumeVariablesCache>();
82public:
84};
85
87template<class TypeTag>
88struct GridFluxVariablesCache<TypeTag, TTag::BoxModel>
89{
90private:
91 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridFluxVariablesCache>();
94public:
96};
97
99template<class TypeTag>
101
103template<class TypeTag>
104struct BaseLocalResidual<TypeTag, TTag::BoxModel> { using type = BoxLocalResidual<TypeTag>; };
105
106} // namespace Properties
107} // namespace Dumux
108
109#endif
Calculates the element-wise residual for the box scheme.
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.
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 element-wise residual for the box scheme.
Definition: boxlocalresidual.hh:45
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
The type for a global container for the volume variables.
Definition: common/properties.hh:176
The global vector of flux variable containers.
Definition: common/properties.hh:186
std::tuple< FiniteVolumeModel > InheritsFrom
Definition: box.hh:51
This class stores an array of BoundaryTypes objects.
Definition: discretization/box/elementboundarytypes.hh:38
Base class for the finite volume geometry vector for box schemes This builds up the sub control volum...
Definition: discretization/box/fvgridgeometry.hh:73
Flux variable caches on a gridview.
Definition: box/gridfluxvariablescache.hh:56
Base class for the grid volume variables.
Definition: box/gridvolumevariables.hh:54
Declares all properties used in Dumux.
Boundary types gathered on an element.
The local element solution class for the box method.
Base class for the finite volume geometry vector for box models This builds up the sub control volume...
Global flux variable cache.
The grid volume variables class for box models.