makeMomentumTransportModel.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-2021 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 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
27 
28 #define makeMomentumTransportModelTypes( \
29  Alpha, Rho, baseModel, BaseModel, Transport) \
30  \
31  namespace Foam \
32  { \
33  typedef BaseModel<Transport> Transport##BaseModel; \
34  typedef laminarModel<Transport##BaseModel> \
35  laminar##Transport##BaseModel; \
36  typedef RASModel<Transport##BaseModel> RAS##Transport##BaseModel; \
37  typedef LESModel<Transport##BaseModel> LES##Transport##BaseModel; \
38  }
39 
40 
41 #define makeBaseMomentumTransportModel( \
42  Alpha, Rho, baseModel, BaseModel, Transport) \
43  \
44  namespace Foam \
45  { \
46  typedef MomentumTransportModel \
47  < \
48  Alpha, \
49  Rho, \
50  baseModel, \
51  Transport \
52  > Transport##baseModel; \
53  \
54  defineTemplateRunTimeSelectionTable \
55  ( \
56  Transport##baseModel, \
57  dictionary \
58  ); \
59  \
60  \
61  defineNamedTemplateTypeNameAndDebug(laminar##Transport##BaseModel, 0); \
62  \
63  defineTemplateRunTimeSelectionTable \
64  (laminar##Transport##BaseModel, dictionary); \
65  \
66  addToRunTimeSelectionTable \
67  ( \
68  Transport##baseModel, \
69  laminar##Transport##BaseModel, \
70  dictionary \
71  ); \
72  \
73  \
74  defineNamedTemplateTypeNameAndDebug(RAS##Transport##BaseModel, 0); \
75  \
76  defineTemplateRunTimeSelectionTable \
77  (RAS##Transport##BaseModel, dictionary); \
78  \
79  addToRunTimeSelectionTable \
80  ( \
81  Transport##baseModel, \
82  RAS##Transport##BaseModel, \
83  dictionary \
84  ); \
85  \
86  \
87  defineNamedTemplateTypeNameAndDebug(LES##Transport##BaseModel, 0); \
88  \
89  defineTemplateRunTimeSelectionTable \
90  (LES##Transport##BaseModel, dictionary); \
91  \
92  addToRunTimeSelectionTable \
93  ( \
94  Transport##baseModel, \
95  LES##Transport##BaseModel, \
96  dictionary \
97  ); \
98  }
99 
100 
101 #define makeTemplatedLaminarModel(BaseModel, SType, Type) \
102  typedef Foam::SType##Models::Type<Foam::BaseModel> \
103  Type##SType##BaseModel; \
104  defineNamedTemplateTypeNameAndDebug(Type##SType##BaseModel, 0); \
105  \
106  namespace Foam \
107  { \
108  namespace SType##Models \
109  { \
110  typedef Type<BaseModel> Type##SType##BaseModel; \
111  \
112  addToRunTimeSelectionTable \
113  ( \
114  SType##BaseModel, \
115  Type##SType##BaseModel, \
116  dictionary \
117  ); \
118  } \
119  }
120 
121 
122 #define makeTemplatedMomentumTransportModel(BaseModel, SType, Type) \
123  defineNamedTemplateTypeNameAndDebug \
124  (Foam::SType##Models::Type<Foam::BaseModel>, 0); \
125  \
126  namespace Foam \
127  { \
128  namespace SType##Models \
129  { \
130  typedef Type<BaseModel> Type##SType##BaseModel; \
131  \
132  addToRunTimeSelectionTable \
133  ( \
134  SType##BaseModel, \
135  Type##SType##BaseModel, \
136  dictionary \
137  ); \
138  } \
139  }
140 
141 
142 #define makeMomentumTransportModel(BaseModel, SType, Type) \
143  namespace Foam \
144  { \
145  namespace SType##Models \
146  { \
147  defineTypeNameAndDebug(Type, 0); \
148  \
149  addToRunTimeSelectionTable \
150  ( \
151  SType##BaseModel, \
152  Type, \
153  dictionary \
154  ); \
155  } \
156  }
157 
158 
159 // ************************************************************************* //