makeTurbulenceModel.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 \*---------------------------------------------------------------------------*/
25 
26 #define makeTurbulenceModelTypes(Alpha, Rho, baseModel, BaseModel, Transport) \
27  \
28  namespace Foam \
29  { \
30  typedef BaseModel<Transport> Transport##BaseModel; \
31  typedef laminarModel<Transport##BaseModel> \
32  laminar##Transport##BaseModel; \
33  typedef RASModel<Transport##BaseModel> RAS##Transport##BaseModel; \
34  typedef LESModel<Transport##BaseModel> LES##Transport##BaseModel; \
35  }
36 
37 
38 #define makeBaseTurbulenceModel(Alpha, Rho, baseModel, BaseModel, Transport) \
39  \
40  namespace Foam \
41  { \
42  typedef TurbulenceModel \
43  < \
44  Alpha, \
45  Rho, \
46  baseModel, \
47  Transport \
48  > Transport##baseModel; \
49  \
50  defineTemplateRunTimeSelectionTable \
51  ( \
52  Transport##baseModel, \
53  dictionary \
54  ); \
55  \
56  \
57  defineNamedTemplateTypeNameAndDebug(laminar##Transport##BaseModel, 0); \
58  \
59  defineTemplateRunTimeSelectionTable \
60  (laminar##Transport##BaseModel, dictionary); \
61  \
62  addToRunTimeSelectionTable \
63  ( \
64  Transport##baseModel, \
65  laminar##Transport##BaseModel, \
66  dictionary \
67  ); \
68  \
69  \
70  defineNamedTemplateTypeNameAndDebug(RAS##Transport##BaseModel, 0); \
71  \
72  defineTemplateRunTimeSelectionTable \
73  (RAS##Transport##BaseModel, dictionary); \
74  \
75  addToRunTimeSelectionTable \
76  ( \
77  Transport##baseModel, \
78  RAS##Transport##BaseModel, \
79  dictionary \
80  ); \
81  \
82  \
83  defineNamedTemplateTypeNameAndDebug(LES##Transport##BaseModel, 0); \
84  \
85  defineTemplateRunTimeSelectionTable \
86  (LES##Transport##BaseModel, dictionary); \
87  \
88  addToRunTimeSelectionTable \
89  ( \
90  Transport##baseModel, \
91  LES##Transport##BaseModel, \
92  dictionary \
93  ); \
94  }
95 
96 
97 #define makeTemplatedTurbulenceModel(BaseModel, SType, Type) \
98  defineNamedTemplateTypeNameAndDebug \
99  (Foam::SType##Models::Type<Foam::BaseModel>, 0); \
100  \
101  namespace Foam \
102  { \
103  namespace SType##Models \
104  { \
105  typedef Type<BaseModel> Type##SType##BaseModel; \
106  \
107  addToRunTimeSelectionTable \
108  ( \
109  SType##BaseModel, \
110  Type##SType##BaseModel, \
111  dictionary \
112  ); \
113  } \
114  }
115 
116 
117 #define makeTurbulenceModel(BaseModel, SType, Type) \
118  namespace Foam \
119  { \
120  namespace SType##Models \
121  { \
122  defineTypeNameAndDebug(Type, 0); \
123  \
124  addToRunTimeSelectionTable \
125  ( \
126  SType##BaseModel, \
127  Type, \
128  dictionary \
129  ); \
130  } \
131  }
132 
133 
134 // ************************************************************************* //