3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
freeflow/rans/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 *****************************************************************************/
36#ifndef DUMUX_RANS_MODEL_HH
37#define DUMUX_RANS_MODEL_HH
38
41
42#include "iofields.hh"
43
44namespace Dumux {
45
46// \{
48// properties for the single-phase Reynolds-Averaged Navier-Stokes model
50namespace Properties {
51
53// Type tags
55
56// Create new type tags
57namespace TTag {
59struct RANS { using InheritsFrom = std::tuple<NavierStokes>; };
60} // end namespace TTag
61
63// default property values for the isothermal single phase model
65
71template<int dimension>
73{
75 static constexpr bool usesTurbulenceModel() { return true; }
76};
77
79template<class TypeTag>
80struct ModelTraits<TypeTag, TTag::RANS>
81{
82private:
84 static constexpr int dim = GridView::dimension;
85public:
87};
88
90template<class TypeTag>
91struct IOFields<TypeTag, TTag::RANS> { using type = RANSIOFields; };
92
94// Property values for non-isothermal Reynolds-averaged Navier-Stokes model
96
97// Create new type tags
98namespace TTag {
100struct RANSNI { using InheritsFrom = std::tuple<RANS>; };
101} // end namespace TTag
102
104template<class TypeTag>
105struct ModelTraits<TypeTag, TTag::RANSNI>
106{
107private:
109 static constexpr int dim = GridView::dimension;
110
112public:
114};
115
117template<class TypeTag>
118struct IOFields<TypeTag, TTag::RANSNI> { using type = FreeflowNonIsothermalIOFields<RANSIOFields, true/*turbulenceModel*/>; };
119
121template<class TypeTag>
122struct HeatConductionType<TypeTag, TTag::RANSNI> { using type = FouriersLaw<TypeTag>; };
123
124// \}
125} // end namespace Properties
126} // end namespace Dumux
127
128#endif // DUMUX_RANS_MODEL_HH
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:66
A class helping models to define input and output fields.
Definition: common/properties.hh:76
The type for the calculation of the heat conduction fluxes.
Definition: common/properties.hh:160
forward declaration of the method-specific implementation
Definition: flux/fourierslaw.hh:37
Traits for the Navier-Stokes model.
Definition: freeflow/navierstokes/model.hh:77
Adds I/O fields specific to non-isothermal free-flow models.
Definition: freeflow/nonisothermal/iofields.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
Adds I/O fields for the Reynolds-Averaged Navier-Stokes model.
Definition: freeflow/rans/iofields.hh:36
The type tag for the single-phase, isothermal Reynolds-Averaged Navier-Stokes model.
Definition: freeflow/rans/model.hh:59
std::tuple< NavierStokes > InheritsFrom
Definition: freeflow/rans/model.hh:59
Traits for the Reynolds-averaged Navier-Stokes model.
Definition: freeflow/rans/model.hh:73
static constexpr bool usesTurbulenceModel()
The model does include a turbulence model.
Definition: freeflow/rans/model.hh:75
The type tag for the single-phase, isothermal Reynolds-Averaged Navier-Stokes model.
Definition: freeflow/rans/model.hh:100
std::tuple< RANS > InheritsFrom
Definition: freeflow/rans/model.hh:100
Declares all properties used in Dumux.
A single-phase, isothermal Navier-Stokes model.
Adds I/O fields specific to the tracer model.