3.3.0
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
freeflow/rans/zeroeq/model.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 *****************************************************************************/
35#ifndef DUMUX_ZEROEQ_MODEL_HH
36#define DUMUX_ZEROEQ_MODEL_HH
37
42
43#include "problem.hh"
44#include "volumevariables.hh"
45
46namespace Dumux::Properties {
47
49// default property values for the isothermal RANS 0-Eq. model
51
52// Create new type tags
53namespace TTag {
55struct ZeroEq { using InheritsFrom = std::tuple<RANS>; };
56} // end namespace TTag
57
64template<int dimension>
66{
68 static constexpr int dim() { return dimension; }
69
71 static constexpr auto turbulenceModel()
72 { return TurbulenceModel::zeroeq; }
73};
74
75template<class TypeTag>
76struct ModelTraits<TypeTag, TTag::ZeroEq>
77{
78private:
80 static constexpr int dim = GridView::dimension;
81public:
83};
84
86template<class TypeTag>
87struct VolumeVariables<TypeTag, TTag::ZeroEq>
88{
89private:
94
95 static_assert(FSY::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid system");
96 static_assert(FST::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid state");
97 static_assert(!FSY::isMiscible(), "The Navier-Stokes model only works with immiscible fluid systems.");
98
101public:
103};
104
106// default property values for the non-isothermal RANS 0-Eq. model
108
109// Create new type tags
110namespace TTag {
112struct ZeroEqNI { using InheritsFrom = std::tuple<RANSNI>; };
113} // end namespace TTag
114
116template<class TypeTag>
117struct ModelTraits<TypeTag, TTag::ZeroEqNI>
118{
119private:
121 static constexpr int dim = GridView::dimension;
123public:
125};
126
128template<class TypeTag>
129struct VolumeVariables<TypeTag, TTag::ZeroEqNI>
130{
131private:
136
137 static_assert(FSY::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid system");
138 static_assert(FST::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid state");
139 static_assert(!FSY::isMiscible(), "The Navier-Stokes model only works with immiscible fluid systems.");
140
143public:
145};
146
147} // end namespace Dumux::Properties
148
149#endif
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:37
Traits class encapsulating model specifications.
Definition: common/properties.hh:53
The secondary variables within a sub-control volume.
Definition: common/properties.hh:106
Traits class for the volume variables of the Navier-Stokes model.
Definition: freeflow/navierstokes/model.hh:125
Volume variables for the single-phase Navier-Stokes model.
Definition: freeflow/navierstokes/volumevariables.hh:38
Specifies a number properties of non-isothermal free-flow flow models based on the specifics of a giv...
Definition: freeflow/nonisothermal/model.hh:59
Traits for the Reynolds-averaged Navier-Stokes model.
Definition: freeflow/rans/model.hh:73
The type tag for the single-phase, isothermal Reynolds-Averaged Navier-Stokes 0-Eq....
Definition: freeflow/rans/zeroeq/model.hh:55
std::tuple< RANS > InheritsFrom
Definition: freeflow/rans/zeroeq/model.hh:55
Traits for the ZeroEq model.
Definition: freeflow/rans/zeroeq/model.hh:66
static constexpr int dim()
The dimension of the model.
Definition: freeflow/rans/zeroeq/model.hh:68
static constexpr auto turbulenceModel()
return the type of turbulence model used
Definition: freeflow/rans/zeroeq/model.hh:71
The type tag for the single-phase, non-isothermal Reynolds-Averaged Navier-Stokes model.
Definition: freeflow/rans/zeroeq/model.hh:112
std::tuple< RANSNI > InheritsFrom
Definition: freeflow/rans/zeroeq/model.hh:112
Volume variables for the single-phase 0-Eq. model.
Definition: freeflow/rans/zeroeq/volumevariables.hh:41
Declares all properties used in Dumux.
Defines a type tag and some properties for free flow models.
A single-phase, isothermal Reynolds-Averaged Navier-Stokes model.
Base class for all porous media problems.
Base class for the model specific class which provides access to all volume averaged quantities.