3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
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 *****************************************************************************/
27
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>
124
125
127template<class TypeTag>
132
134template<class TypeTag>
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 the default element and vertex mapper types.
defines intersection mappers.
Defines a type tag and some properties for models using the staggered scheme. This scheme features de...
The face variables class for free flow staggered grid models. Contains all relevant velocities for th...
make the local view function available whenever we use the grid geometry
Definition adapt.hh:29
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:153
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
Definition common/properties.hh:47
Type tag for numeric models.
Definition grid.hh:35
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
static constexpr int value
Definition discretization/staggered/freeflow/properties.hh:59
static constexpr int value
Definition discretization/staggered/freeflow/properties.hh:76
StaggeredFVGridGeometry< GridView, enableCache, Traits > type
Definition discretization/staggered/freeflow/properties.hh:96
StaggeredFaceVariables< FacePrimaryVariables, GridView::dimension, upwindSchemeOrder > type
Definition discretization/staggered/freeflow/properties.hh:109
StaggeredGridVolumeVariables< Traits, enableCache > type
Definition discretization/staggered/freeflow/properties.hh:122
StaggeredFreeFlowBoundaryTypes< GetPropType< TypeTag, Properties::ModelTraits >::numEq()> type
Definition discretization/staggered/freeflow/properties.hh:130
StaggeredFreeFlowVelocityOutput< GetPropType< TypeTag, Properties::GridVariables >, GetPropType< TypeTag, Properties::SolutionVector > > type
Definition discretization/staggered/freeflow/properties.hh:137
static constexpr int value
Definition discretization/staggered/freeflow/properties.hh:145
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
Class to specify the type of a boundary for the staggered Navier-Stokes model.
Declares all properties used in Dumux.
Defines a type tag and some properties for free flow models.
Base class for the finite volume geometry vector for staggered models This builds up the sub control ...
Grid volume variables class for staggered models.
Default traits for the finite volume grid geometry.
Velocity output for staggered free-flow models.