3.1-git
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 {
47namespace Properties {
48
50// default property values for the isothermal RANS 0-Eq. model
52
53// Create new type tags
54namespace TTag {
56struct ZeroEq { using InheritsFrom = std::tuple<RANS>; };
57} // end namespace TTag
58
65template<int dimension>
67{
69 static constexpr int dim() { return dimension; }
70
72 static constexpr auto turbulenceModel()
73 { return TurbulenceModel::zeroeq; }
74};
75
76template<class TypeTag>
77struct ModelTraits<TypeTag, TTag::ZeroEq>
78{
79private:
81 static constexpr int dim = GridView::dimension;
82public:
84};
85
87template<class TypeTag>
88struct VolumeVariables<TypeTag, TTag::ZeroEq>
89{
90private:
95
96 static_assert(FSY::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid system");
97 static_assert(FST::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid state");
98 static_assert(!FSY::isMiscible(), "The Navier-Stokes model only works with immiscible fluid systems.");
99
102public:
104};
105
107// default property values for the non-isothermal RANS 0-Eq. model
109
110// Create new type tags
111namespace TTag {
113struct ZeroEqNI { using InheritsFrom = std::tuple<RANSNI>; };
114} // end namespace TTag
115
117template<class TypeTag>
118struct ModelTraits<TypeTag, TTag::ZeroEqNI>
119{
120private:
122 static constexpr int dim = GridView::dimension;
124public:
126};
127
129template<class TypeTag>
130struct VolumeVariables<TypeTag, TTag::ZeroEqNI>
131{
132private:
137
138 static_assert(FSY::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid system");
139 static_assert(FST::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid state");
140 static_assert(!FSY::isMiscible(), "The Navier-Stokes model only works with immiscible fluid systems.");
141
144public:
146};
147
148// \}
149}
150
151} // end namespace
152
153#endif // DUMUX_ZEROEQ_MODEL_HH
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
Traits class encapsulating model specifications.
Definition: common/properties.hh:65
The secondary variables within a sub-control volume.
Definition: common/properties.hh:174
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:56
std::tuple< RANS > InheritsFrom
Definition: freeflow/rans/zeroeq/model.hh:56
Traits for the ZeroEq model.
Definition: freeflow/rans/zeroeq/model.hh:67
static constexpr int dim()
The dimension of the model.
Definition: freeflow/rans/zeroeq/model.hh:69
static constexpr auto turbulenceModel()
return the type of turbulence model used
Definition: freeflow/rans/zeroeq/model.hh:72
The type tag for the single-phase, non-isothermal Reynolds-Averaged Navier-Stokes model.
Definition: freeflow/rans/zeroeq/model.hh:113
std::tuple< RANSNI > InheritsFrom
Definition: freeflow/rans/zeroeq/model.hh:113
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 the model specific class which provides access to all volume averaged quantities.
Definition of a problem for the MaxwellStefan problem: A rotating velocity field mixes a MaxwellStefa...