makeTurbulenceModel.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 2013-2015 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 makeBaseTurbulenceModel(Alpha, Rho, baseModel, BaseModel, Transport) \
27  \
28  namespace Foam \
29  { \
30  typedef TurbulenceModel \
31  < \
32  Alpha, \
33  Rho, \
34  baseModel, \
35  Transport \
36  > Transport##baseModel; \
37  \
38  defineTemplateRunTimeSelectionTable \
39  ( \
40  Transport##baseModel, \
41  dictionary \
42  ); \
43  \
44  typedef BaseModel<Transport> Transport##BaseModel; \
45  \
46  \
47  typedef laminar<Transport##BaseModel> Laminar##Transport##BaseModel; \
48  \
49  defineNamedTemplateTypeNameAndDebug(Laminar##Transport##BaseModel, 0); \
50  \
51  addToRunTimeSelectionTable \
52  ( \
53  Transport##baseModel, \
54  Laminar##Transport##BaseModel, \
55  dictionary \
56  ); \
57  \
58  \
59  typedef RASModel<Transport##BaseModel> RAS##Transport##BaseModel; \
60  \
61  defineNamedTemplateTypeNameAndDebug(RAS##Transport##BaseModel, 0); \
62  \
63  defineTemplateRunTimeSelectionTable \
64  (RAS##Transport##BaseModel, dictionary); \
65  \
66  addToRunTimeSelectionTable \
67  ( \
68  Transport##baseModel, \
69  RAS##Transport##BaseModel, \
70  dictionary \
71  ); \
72  \
73  \
74  typedef LESModel<Transport##BaseModel> LES##Transport##BaseModel; \
75  \
76  defineNamedTemplateTypeNameAndDebug(LES##Transport##BaseModel, 0); \
77  \
78  defineTemplateRunTimeSelectionTable \
79  (LES##Transport##BaseModel, dictionary); \
80  \
81  addToRunTimeSelectionTable \
82  ( \
83  Transport##baseModel, \
84  LES##Transport##BaseModel, \
85  dictionary \
86  ); \
87  }
88 
89 
90 #define makeTemplatedTurbulenceModel(BaseModel, SType, Type) \
91  defineNamedTemplateTypeNameAndDebug \
92  (Foam::SType##Models::Type<Foam::BaseModel>, 0); \
93  \
94  namespace Foam \
95  { \
96  namespace SType##Models \
97  { \
98  typedef Type<BaseModel> Type##SType##BaseModel; \
99  \
100  addToRunTimeSelectionTable \
101  ( \
102  SType##BaseModel, \
103  Type##SType##BaseModel, \
104  dictionary \
105  ); \
106  } \
107  }
108 
109 
110 #define makeTurbulenceModel(BaseModel, SType, Type) \
111  namespace Foam \
112  { \
113  namespace SType##Models \
114  { \
115  defineTypeNameAndDebug(Type, 0); \
116  \
117  addToRunTimeSelectionTable \
118  ( \
119  SType##BaseModel, \
120  Type, \
121  dictionary \
122  ); \
123  } \
124  }
125 
126 
127 // ************************************************************************* //