3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
discretization/staggered/freeflow/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 *****************************************************************************/
28#ifndef DUMUX_STAGGERD_FREE_FLOW_PROPERTIES_HH
29#define DUMUX_STAGGERD_FREE_FLOW_PROPERTIES_HH
30
34
38
39#include "facevariables.hh"
40#include "boundarytypes.hh"
41#include "velocityoutput.hh"
44
45namespace Dumux {
46namespace Properties {
47
49// Create new type tags
50namespace TTag {
51struct StaggeredFreeFlowModel { using InheritsFrom = std::tuple<StaggeredModel>; };
52} // end namespace TTag
53
58template<class TypeTag>
59struct NumEqFace<TypeTag, TTag::StaggeredFreeFlowModel> { static constexpr int value = 1; };
60
67template<class TypeTag>
68struct NumEqCellCenter<TypeTag, TTag::StaggeredFreeFlowModel>
69{
70private:
73 static constexpr auto dim = GridView::dimension;
74 static constexpr auto numEq = ModelTraits::numEq();
75public:
76 static constexpr int value = numEq - dim;
77};
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::StaggeredFreeFlowModel>
89{
90private:
91 static constexpr auto upwindSchemeOrder = getPropValue<TypeTag, Properties::UpwindSchemeOrder>();
92 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridGeometryCache>();
95public:
97};
98#pragma GCC diagnostic pop
99
101template<class TypeTag>
102struct FaceVariables<TypeTag, TTag::StaggeredFreeFlowModel>
103{
104private:
107 static constexpr auto upwindSchemeOrder = getPropValue<TypeTag, Properties::UpwindSchemeOrder>();
108public:
110};
111
113template<class TypeTag>
114struct GridVolumeVariables<TypeTag, TTag::StaggeredFreeFlowModel>
115{
116private:
119 static constexpr auto enableCache = getPropValue<TypeTag, Properties::EnableGridVolumeVariablesCache>();
121public:
123};
124
125
127template<class TypeTag>
128struct BoundaryTypes<TypeTag, TTag::StaggeredFreeFlowModel>
129{
131};
132
134template<class TypeTag>
135struct VelocityOutput<TypeTag, TTag::StaggeredFreeFlowModel>
136{
139};
140
144template<class TypeTag>
145struct UpwindSchemeOrder<TypeTag, TTag::StaggeredFreeFlowModel> { static constexpr int value = 1; };
146
147} // namespace Properties
148} // namespace Dumux
149
150#endif
Defines a type tag and some properties for models using the staggered scheme. This scheme features de...
Defines the default element and vertex mapper types.
defines intersection mappers.
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
Stores the boundary types of a single degree of freedom.
Definition: common/properties.hh:86
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
specifies the velocity calculation module to be used
Definition: common/properties.hh:235
The number of equations for cell-centered dofs.
Definition: common/properties.hh:277
The number of equations for face dofs.
Definition: common/properties.hh:279
Class containing local face-related data.
Definition: common/properties.hh:297
Specifies the order of the upwinding scheme (1 == first order, 2 == second order(tvd methods))
Definition: common/properties.hh:305
Class to specify the type of a boundary for the staggered Navier-Stokes model.
Definition: discretization/staggered/freeflow/boundarytypes.hh:38
The face variables class for free flow staggered grid models. Contains all relevant velocities for th...
Definition: facevariables.hh:62
Default traits for the finite volume grid geometry.
Definition: staggered/freeflow/fvgridgeometrytraits.hh:45
Definition: staggered/freeflow/gridvolumevariables.hh:39
Grid volume variables class for staggered models.
Definition: staggered/freeflow/gridvolumevariables.hh:130
Definition: discretization/staggered/freeflow/properties.hh:51
std::tuple< StaggeredModel > InheritsFrom
Definition: discretization/staggered/freeflow/properties.hh:51
Velocity output for staggered free-flow models.
Definition: discretization/staggered/freeflow/velocityoutput.hh:38
Base class for the finite volume geometry vector for staggered models This builds up the sub control ...
Definition: discretization/staggered/fvgridgeometry.hh:176
Velocity output for porous media models.
Declares all properties used in Dumux.
Defines a type tag and some properties for free flow models.