pycphy 0.1.0__py3-none-any.whl → 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. pycphy/__init__.py +11 -0
  2. pycphy/cli.py +145 -0
  3. pycphy/config_manager.py +373 -0
  4. pycphy/foamCaseDeveloper/__init__.py +60 -41
  5. pycphy/foamCaseDeveloper/config/__init__.py +69 -26
  6. pycphy/foamCaseDeveloper/config/cad_mesh_config.py +62 -0
  7. pycphy/foamCaseDeveloper/config/config_hfdibdem.py +193 -0
  8. pycphy/foamCaseDeveloper/config/constant/__init__.py +23 -0
  9. pycphy/foamCaseDeveloper/config/constant/dynamic_mesh_config.py +208 -0
  10. pycphy/foamCaseDeveloper/config/constant/gravity_field_config.py +379 -0
  11. pycphy/foamCaseDeveloper/config/constant/transport_properties_config.py +225 -0
  12. pycphy/foamCaseDeveloper/config/constant/turbulence_config.py +617 -0
  13. pycphy/foamCaseDeveloper/config/csv_boundary_reader.py +219 -0
  14. pycphy/foamCaseDeveloper/config/system/__init__.py +31 -0
  15. pycphy/foamCaseDeveloper/config/system/block_mesh_config.py +184 -0
  16. pycphy/foamCaseDeveloper/config/{control_config.py → system/control_config.py} +113 -1
  17. pycphy/foamCaseDeveloper/config/system/decompose_par_config.py +525 -0
  18. pycphy/foamCaseDeveloper/config/system/fv_options_config.py +575 -0
  19. pycphy/foamCaseDeveloper/config/system/fv_schemes_config.py +363 -0
  20. pycphy/foamCaseDeveloper/config/system/set_fields_config.py +640 -0
  21. pycphy/foamCaseDeveloper/config/system/snappy_hex_mesh_config.py +241 -0
  22. pycphy/foamCaseDeveloper/config/zero/U_config.py +135 -0
  23. pycphy/foamCaseDeveloper/config/zero/__init__.py +22 -0
  24. pycphy/foamCaseDeveloper/config/zero/f_config.py +140 -0
  25. pycphy/foamCaseDeveloper/config/zero/lambda_config.py +157 -0
  26. pycphy/foamCaseDeveloper/config/zero/p_config.py +97 -0
  27. pycphy/foamCaseDeveloper/core/__init__.py +30 -18
  28. pycphy/foamCaseDeveloper/core/block_mesh_developer.py +1 -1
  29. pycphy/foamCaseDeveloper/core/cad_block_mesh_developer.py +463 -0
  30. pycphy/foamCaseDeveloper/core/case_builder.py +1217 -0
  31. pycphy/foamCaseDeveloper/core/foam_case_manager.py +370 -111
  32. pycphy/foamCaseDeveloper/develop_case.py +640 -0
  33. pycphy/foamCaseDeveloper/main.py +260 -260
  34. pycphy/foamCaseDeveloper/utils/myAutoCAD.py +418 -0
  35. pycphy/foamCaseDeveloper/writers/__init__.py +37 -4
  36. pycphy/foamCaseDeveloper/writers/constant/__init__.py +25 -0
  37. pycphy/foamCaseDeveloper/writers/constant/dynamic_mesh_dict_writer.py +75 -0
  38. pycphy/foamCaseDeveloper/writers/constant/gravity_field_writer.py +88 -0
  39. pycphy/foamCaseDeveloper/writers/constant/hfdibdem_dict_writer.py +81 -0
  40. pycphy/foamCaseDeveloper/writers/constant/transport_properties_writer.py +202 -0
  41. pycphy/foamCaseDeveloper/writers/{turbulence_properties_writer.py → constant/turbulence_properties_writer.py} +49 -1
  42. pycphy/foamCaseDeveloper/writers/system/__init__.py +31 -0
  43. pycphy/foamCaseDeveloper/writers/{block_mesh_writer.py → system/block_mesh_writer.py} +1 -1
  44. pycphy/foamCaseDeveloper/writers/{control_dict_writer.py → system/control_dict_writer.py} +37 -1
  45. pycphy/foamCaseDeveloper/writers/system/decompose_par_writer.py +228 -0
  46. pycphy/foamCaseDeveloper/writers/system/fv_options_writer.py +188 -0
  47. pycphy/foamCaseDeveloper/writers/system/fv_schemes_writer.py +155 -0
  48. pycphy/foamCaseDeveloper/writers/system/set_fields_writer.py +191 -0
  49. pycphy/foamCaseDeveloper/writers/system/snappy_hex_mesh_writer.py +123 -0
  50. pycphy/foamCaseDeveloper/writers/zero/__init__.py +24 -0
  51. pycphy/foamCaseDeveloper/writers/zero/f_field_writer.py +89 -0
  52. pycphy/foamCaseDeveloper/writers/zero/lambda_field_writer.py +84 -0
  53. pycphy/foamCaseDeveloper/writers/zero/p_field_writer.py +89 -0
  54. pycphy/foamCaseDeveloper/writers/zero/u_field_writer.py +96 -0
  55. pycphy/foamCaseDeveloper/writers/zero/zero_field_factory.py +388 -0
  56. {pycphy-0.1.0.dist-info → pycphy-0.2.0.dist-info}/METADATA +154 -6
  57. pycphy-0.2.0.dist-info/RECORD +63 -0
  58. pycphy-0.2.0.dist-info/entry_points.txt +3 -0
  59. pycphy/foamCaseDeveloper/config/block_mesh_config.py +0 -90
  60. pycphy/foamCaseDeveloper/config/turbulence_config.py +0 -187
  61. pycphy/foamCaseDeveloper/core/control_dict_writer.py +0 -55
  62. pycphy/foamCaseDeveloper/core/turbulence_properties_writer.py +0 -68
  63. pycphy-0.1.0.dist-info/RECORD +0 -24
  64. pycphy-0.1.0.dist-info/entry_points.txt +0 -2
  65. {pycphy-0.1.0.dist-info → pycphy-0.2.0.dist-info}/WHEEL +0 -0
  66. {pycphy-0.1.0.dist-info → pycphy-0.2.0.dist-info}/licenses/LICENSE +0 -0
  67. {pycphy-0.1.0.dist-info → pycphy-0.2.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,617 @@
1
+ # turbulence_config.py
2
+
3
+ # =============================================================================
4
+ # *** User Input for turbulenceProperties ***
5
+ # =============================================================================
6
+ #
7
+ # This file defines the turbulence model settings.
8
+ # 1. Set the SIMULATION_TYPE variable to 'RAS', 'LES', or 'laminar'.
9
+ # 2. Edit the corresponding properties dictionary below if needed.
10
+ #
11
+
12
+ # `SIMULATION_TYPE`: The type of turbulence simulation to perform.
13
+ # This determines which turbulence model will be used.
14
+ # Options:
15
+ # 'RAS': Reynolds-Averaged Simulation (steady or unsteady, computationally efficient)
16
+ # 'LES': Large Eddy Simulation (unsteady, more detailed but computationally expensive)
17
+ # 'laminar': Laminar flow (no turbulence model, for low Reynolds number flows)
18
+ SIMULATION_TYPE = "RAS"
19
+
20
+ # --- Reynolds-Averaged Simulation (RAS) Properties ---
21
+ # RAS models solve the Reynolds-averaged Navier-Stokes equations and model
22
+ # the effects of turbulence using statistical models. They are computationally
23
+ # less expensive and are suitable for many steady-state industrial flows.
24
+
25
+ RAS_PROPERTIES = {
26
+ # `RASModel`: Specifies the turbulence model to use.
27
+ # This determines how the Reynolds stresses are modeled.
28
+ # Available Options:
29
+ # 'kEpsilon': Standard k-epsilon model. Robust but less accurate for separated flows.
30
+ # Good for free shear flows, mixing layers, and jets.
31
+ # 'realizableKE': A variation of k-epsilon with better performance for rotating flows.
32
+ # Improved handling of adverse pressure gradients.
33
+ # 'kOmega': Standard k-omega model. Good for boundary layers and adverse pressure gradients.
34
+ # 'kOmegaSST': Menter's Shear Stress Transport model. Very popular, blends k-w
35
+ # near walls and k-e in the far-field. Excellent for aerodynamics
36
+ # and complex flows with separation.
37
+ # 'SpalartAllmaras': One-equation model. Good for aerospace applications.
38
+ # Particularly effective for attached flows.
39
+ # 'SpalartAllmarasDDES': Detached Eddy Simulation variant of Spalart-Allmaras.
40
+ # Hybrid RANS/LES model for unsteady flows.
41
+ # 'SpalartAllmarasIDDES': Improved Delayed Detached Eddy Simulation.
42
+ # Enhanced hybrid RANS/LES model.
43
+ # 'kOmegaSSTLM': k-omega SST with Langtry-Menter transition model.
44
+ # Includes laminar-turbulent transition effects.
45
+ # 'kOmegaSSTCC': k-omega SST with curvature correction.
46
+ # Better performance for flows with streamline curvature.
47
+ # 'kOmegaSSTSAS': k-omega SST with Scale Adaptive Simulation.
48
+ # Hybrid RANS/LES model for unsteady flows.
49
+ # 'RNGkEpsilon': Renormalization Group k-epsilon model.
50
+ # Improved version of standard k-epsilon.
51
+ # 'LienLeschzinerLowRe': Low Reynolds number k-epsilon model.
52
+ # Better near-wall behavior.
53
+ # 'LaunderSharmaKE': Launder-Sharma k-epsilon model.
54
+ # Low Reynolds number variant.
55
+ # 'LamBremhorstKE': Lam-Bremhorst k-epsilon model.
56
+ # Low Reynolds number variant.
57
+ # 'ChienKE': Chien k-epsilon model.
58
+ # Low Reynolds number variant.
59
+ "RASModel": "kOmegaSST",
60
+
61
+ # `turbulence`: A switch to turn the turbulence calculations on or off.
62
+ # This allows you to run laminar simulations with RAS setup.
63
+ # Options: 'on' (turbulence active), 'off' (laminar simulation)
64
+ "turbulence": "on",
65
+
66
+ # `printCoeffs`: Prints the model coefficients to the log file at the start.
67
+ # This is useful for debugging and verifying model settings.
68
+ # Options: 'on' (print coefficients), 'off' (don't print)
69
+ "printCoeffs": "on",
70
+
71
+ # Additional RAS model coefficients (advanced users only)
72
+ # These can be used to modify the default model coefficients if needed.
73
+ # Most users should not modify these unless they understand the model physics.
74
+
75
+ # `kEpsilonCoeffs`: Coefficients for k-epsilon models (if using kEpsilon or realizableKE)
76
+ # "kEpsilonCoeffs": {
77
+ # "Cmu": 0.09, # Turbulent viscosity coefficient
78
+ # "C1": 1.44, # Production coefficient
79
+ # "C2": 1.92, # Destruction coefficient
80
+ # "C3": -0.33, # Buoyancy coefficient
81
+ # "sigmap": 1.0, # Prandtl number for pressure
82
+ # "sigmak": 1.0, # Prandtl number for k
83
+ # "sigmaEps": 1.3 # Prandtl number for epsilon
84
+ # },
85
+
86
+ # `kOmegaSSTCoeffs`: Coefficients for k-omega SST model (if using kOmegaSST)
87
+ # "kOmegaSSTCoeffs": {
88
+ # "beta1": 0.075, # Beta coefficient for k equation
89
+ # "beta2": 0.0828, # Beta coefficient for omega equation
90
+ # "betaStar": 0.09, # Beta star coefficient
91
+ # "gamma1": 0.5532, # Gamma coefficient for k equation
92
+ # "gamma2": 0.4403, # Gamma coefficient for omega equation
93
+ # "alphaK1": 0.85, # Alpha coefficient for k equation
94
+ # "alphaK2": 1.0, # Alpha coefficient for k equation
95
+ # "alphaOmega1": 0.5, # Alpha coefficient for omega equation
96
+ # "alphaOmega2": 0.856, # Alpha coefficient for omega equation
97
+ # "Prt": 0.9 # Turbulent Prandtl number
98
+ # },
99
+
100
+ # `SpalartAllmarasCoeffs`: Coefficients for Spalart-Allmaras model
101
+ # "SpalartAllmarasCoeffs": {
102
+ # "Cb1": 0.1355, # Production coefficient
103
+ # "Cb2": 0.622, # Destruction coefficient
104
+ # "sigmaNut": 0.66667, # Turbulent viscosity coefficient
105
+ # "Cw1": 3.239, # Wall destruction coefficient
106
+ # "Cw2": 0.3, # Wall destruction coefficient
107
+ # "Cw3": 2.0, # Wall destruction coefficient
108
+ # "Cv1": 7.1, # Viscous destruction coefficient
109
+ # "Ct1": 1.0, # Transition coefficient
110
+ # "Ct2": 2.0, # Transition coefficient
111
+ # "Ct3": 1.2, # Transition coefficient
112
+ # "Ct4": 0.5 # Transition coefficient
113
+ # },
114
+
115
+ # `kOmegaCoeffs`: Coefficients for k-omega model
116
+ # "kOmegaCoeffs": {
117
+ # "beta": 0.075, # Beta coefficient
118
+ # "betaStar": 0.09, # Beta star coefficient
119
+ # "gamma": 0.52, # Gamma coefficient
120
+ # "alphaK": 0.5, # Alpha coefficient for k equation
121
+ # "alphaOmega": 0.5 # Alpha coefficient for omega equation
122
+ # },
123
+
124
+ # `RNGkEpsilonCoeffs`: Coefficients for RNG k-epsilon model
125
+ # "RNGkEpsilonCoeffs": {
126
+ # "Cmu": 0.0845, # Turbulent viscosity coefficient
127
+ # "C1": 1.42, # Production coefficient
128
+ # "C2": 1.68, # Destruction coefficient
129
+ # "C3": -0.33, # Buoyancy coefficient
130
+ # "sigmak": 0.7194, # Prandtl number for k
131
+ # "sigmaEps": 0.7194 # Prandtl number for epsilon
132
+ # }
133
+ }
134
+
135
+ # --- Large Eddy Simulation (LES) Properties ---
136
+ # LES resolves the large, energy-containing eddies directly and models the
137
+ # smaller ones using sub-grid scale (SGS) models. It is more computationally
138
+ # expensive than RAS but provides more detail on transient turbulent structures.
139
+
140
+ LES_PROPERTIES = {
141
+ # `LESModel`: Specifies the sub-grid scale (SGS) model for LES.
142
+ # This determines how the unresolved small-scale turbulence is modeled.
143
+ # Available Options:
144
+ # 'Smagorinsky': The classic SGS model. Simple and robust but can be
145
+ # overly dissipative near walls.
146
+ # 'kEqn': One-equation eddy-viscosity model. Solves an equation for
147
+ # sub-grid scale kinetic energy. More accurate than Smagorinsky.
148
+ # 'WALE': Wall-Adapting Local Eddy-viscosity model. Better near-wall
149
+ # behavior than Smagorinsky.
150
+ # 'dynamicKEqn': Dynamic version of kEqn model. Coefficients are
151
+ # computed dynamically, more accurate but computationally expensive.
152
+ # 'dynamicSmagorinsky': Dynamic Smagorinsky model. Coefficients computed dynamically.
153
+ # 'SmagorinskyLilly': Lilly's modification of Smagorinsky model.
154
+ # 'SpalartAllmarasDDES': Detached Eddy Simulation variant of Spalart-Allmaras.
155
+ # 'SpalartAllmarasIDDES': Improved Delayed Detached Eddy Simulation.
156
+ # 'kOmegaSSTSAS': k-omega SST with Scale Adaptive Simulation.
157
+ # 'kOmegaSSTDDES': k-omega SST with Detached Eddy Simulation.
158
+ # 'kOmegaSSTIDDES': k-omega SST with Improved Delayed Detached Eddy Simulation.
159
+ # 'oneEqEddy': One-equation eddy viscosity model.
160
+ # 'locDynOneEqEddy': Localized dynamic one-equation eddy viscosity model.
161
+ # 'DeardorffDiffStress': Deardorff differential stress model.
162
+ # 'dynOneEqEddy': Dynamic one-equation eddy viscosity model.
163
+ # 'mixedSmagorinsky': Mixed Smagorinsky model.
164
+ # 'scaleSimilarity': Scale similarity model.
165
+ # 'linearEddy': Linear eddy viscosity model.
166
+ # 'nonlinearEddy': Nonlinear eddy viscosity model.
167
+ # 'Vreman': Vreman SGS model.
168
+ # 'QR': QR SGS model.
169
+ "LESModel": "kEqn",
170
+
171
+ # `turbulence`: A switch to turn the turbulence calculations on or off.
172
+ # Options: 'on' (LES active), 'off' (laminar simulation)
173
+ "turbulence": "on",
174
+
175
+ # `printCoeffs`: Prints the model coefficients to the log file at the start.
176
+ # Options: 'on' (print coefficients), 'off' (don't print)
177
+ "printCoeffs": "on",
178
+
179
+ # `delta`: The model for the LES filter width.
180
+ # This determines how the characteristic length scale is calculated.
181
+ # Available Options:
182
+ # 'cubeRootVol': Based on the cell volume. (Most common and recommended)
183
+ # 'vanDriest': Wall-damping model. Reduces filter width near walls.
184
+ # 'smooth': Smoothing for the delta field. Helps with mesh sensitivity.
185
+ # 'maxDeltaxyz': Maximum of x, y, z cell dimensions.
186
+ # 'maxDeltaxy': Maximum of x, y cell dimensions.
187
+ # 'maxDeltaxz': Maximum of x, z cell dimensions.
188
+ # 'maxDeltayz': Maximum of y, z cell dimensions.
189
+ # 'minDeltaxyz': Minimum of x, y, z cell dimensions.
190
+ # 'minDeltaxy': Minimum of x, y cell dimensions.
191
+ # 'minDeltaxz': Minimum of x, z cell dimensions.
192
+ # 'minDeltayz': Minimum of y, z cell dimensions.
193
+ # 'meanDeltaxyz': Mean of x, y, z cell dimensions.
194
+ # 'meanDeltaxy': Mean of x, y cell dimensions.
195
+ # 'meanDeltaxz': Mean of x, z cell dimensions.
196
+ # 'meanDeltayz': Mean of y, z cell dimensions.
197
+ # 'harmonicMeanDeltaxyz': Harmonic mean of x, y, z cell dimensions.
198
+ # 'harmonicMeanDeltaxy': Harmonic mean of x, y cell dimensions.
199
+ # 'harmonicMeanDeltaxz': Harmonic mean of x, z cell dimensions.
200
+ # 'harmonicMeanDeltayz': Harmonic mean of y, z cell dimensions.
201
+ "delta": "smooth",
202
+
203
+ # Each delta model and some LES models have their own coefficient sub-dictionaries.
204
+ # The structure below is an example for the kEqn model with smooth delta.
205
+
206
+ # `cubeRootVolCoeffs`: Coefficients for cubeRootVol delta model
207
+ "cubeRootVolCoeffs": {
208
+ # `deltaCoeff`: Coefficient for the filter width calculation.
209
+ # Typical range: 0.5 to 2.0. Higher values = larger filter width.
210
+ "deltaCoeff": 1
211
+ },
212
+
213
+ # `smoothCoeffs`: Coefficients for smooth delta model
214
+ "smoothCoeffs": {
215
+ # `delta`: The base delta model to use for smoothing.
216
+ "delta": "cubeRootVol",
217
+
218
+ # `cubeRootVolCoeffs`: Coefficients for the base delta model
219
+ "cubeRootVolCoeffs": {
220
+ "deltaCoeff": 1
221
+ },
222
+
223
+ # `maxDeltaRatio`: Maximum ratio between adjacent delta values.
224
+ # This prevents large jumps in filter width between cells.
225
+ # Typical range: 1.1 to 1.5
226
+ "maxDeltaRatio": 1.1
227
+ },
228
+
229
+ # Additional LES model coefficients (advanced users only)
230
+ # `kEqnCoeffs`: Coefficients for kEqn LES model (if using kEqn)
231
+ # "kEqnCoeffs": {
232
+ # "Ck": 0.094, # Model coefficient
233
+ # "Ce": 1.048 # Dissipation coefficient
234
+ # },
235
+
236
+ # `SmagorinskyCoeffs`: Coefficients for Smagorinsky model (if using Smagorinsky)
237
+ # "SmagorinskyCoeffs": {
238
+ # "Ck": 0.094 # Smagorinsky constant
239
+ # },
240
+
241
+ # `WALECoeffs`: Coefficients for WALE model (if using WALE)
242
+ # "WALECoeffs": {
243
+ # "Cw": 0.325 # WALE constant
244
+ # },
245
+
246
+ # `dynamicKEqnCoeffs`: Coefficients for dynamic kEqn model
247
+ # "dynamicKEqnCoeffs": {
248
+ # "Ck": 0.094, # Model coefficient
249
+ # "Ce": 1.048, # Dissipation coefficient
250
+ # "alpha": 0.09 # Alpha coefficient
251
+ # },
252
+
253
+ # `dynamicSmagorinskyCoeffs`: Coefficients for dynamic Smagorinsky model
254
+ # "dynamicSmagorinskyCoeffs": {
255
+ # "Ck": 0.094, # Smagorinsky constant
256
+ # "alpha": 0.09 # Alpha coefficient
257
+ # },
258
+
259
+ # `oneEqEddyCoeffs`: Coefficients for one-equation eddy viscosity model
260
+ # "oneEqEddyCoeffs": {
261
+ # "Ck": 0.094, # Model coefficient
262
+ # "Ce": 1.048 # Dissipation coefficient
263
+ # },
264
+
265
+ # `VremanCoeffs`: Coefficients for Vreman model
266
+ # "VremanCoeffs": {
267
+ # "Ck": 0.094 # Model coefficient
268
+ # },
269
+
270
+ # `vanDriestCoeffs`: Coefficients for van Driest delta model
271
+ # "vanDriestCoeffs": {
272
+ # "delta": "cubeRootVol",
273
+ # "cubeRootVolCoeffs": {
274
+ # "deltaCoeff": 1
275
+ # },
276
+ # "Aplus": 25.0, # van Driest constant
277
+ # "Cdelta": 0.158 # Delta coefficient
278
+ # }
279
+
280
+ # Add other coefficient dictionaries as needed for your specific model.
281
+ }
282
+
283
+ # --- Laminar Simulation Properties ---
284
+ # For flows at low Reynolds numbers where turbulence is not present.
285
+ # The dictionary is typically empty as no turbulence modeling is required.
286
+
287
+ LAMINAR_PROPERTIES = {
288
+ # For laminar flows, no turbulence model coefficients are needed.
289
+ # This dictionary is kept for consistency but should remain empty.
290
+ # If you need to add any laminar-specific parameters in the future,
291
+ # they would go here.
292
+ }
293
+
294
+ # --- Additional Turbulence Settings ---
295
+
296
+ # `turbulenceOn`: Global switch for turbulence calculations.
297
+ # This can be used to quickly disable turbulence for testing.
298
+ # Options: True (turbulence active), False (laminar simulation)
299
+ turbulenceOn = True
300
+
301
+ # `turbulenceCorrected`: Enable turbulence corrections for better accuracy.
302
+ # This is useful for complex geometries and flow conditions.
303
+ # Options: True (enable corrections), False (disable corrections)
304
+ turbulenceCorrected = True
305
+
306
+ # `turbulenceDebug`: Enable debug output for turbulence calculations.
307
+ # This provides detailed information about turbulence model behavior.
308
+ # Options: True (debug on), False (debug off)
309
+ turbulenceDebug = False
310
+
311
+ # =============================================================================
312
+ # *** Predefined Turbulence Configurations ***
313
+ # =============================================================================
314
+ # Common turbulence configurations for different simulation types
315
+
316
+ PREDEFINED_TURBULENCE_CONFIGS = {
317
+ "aerospace_attached": {
318
+ "description": "Aerospace applications with attached flows",
319
+ "simulation_type": "RAS",
320
+ "ras_properties": {
321
+ "RASModel": "SpalartAllmaras",
322
+ "turbulence": "on",
323
+ "printCoeffs": "on",
324
+ },
325
+ "les_properties": {},
326
+ "laminar_properties": {},
327
+ },
328
+
329
+ "aerospace_separated": {
330
+ "description": "Aerospace applications with separated flows",
331
+ "simulation_type": "RAS",
332
+ "ras_properties": {
333
+ "RASModel": "kOmegaSST",
334
+ "turbulence": "on",
335
+ "printCoeffs": "on",
336
+ },
337
+ "les_properties": {},
338
+ "laminar_properties": {},
339
+ },
340
+
341
+ "automotive_external": {
342
+ "description": "Automotive external aerodynamics",
343
+ "simulation_type": "RAS",
344
+ "ras_properties": {
345
+ "RASModel": "kOmegaSST",
346
+ "turbulence": "on",
347
+ "printCoeffs": "on",
348
+ },
349
+ "les_properties": {},
350
+ "laminar_properties": {},
351
+ },
352
+
353
+ "automotive_internal": {
354
+ "description": "Automotive internal flows (engine, HVAC)",
355
+ "simulation_type": "RAS",
356
+ "ras_properties": {
357
+ "RASModel": "kEpsilon",
358
+ "turbulence": "on",
359
+ "printCoeffs": "on",
360
+ },
361
+ "les_properties": {},
362
+ "laminar_properties": {},
363
+ },
364
+
365
+ "industrial_mixing": {
366
+ "description": "Industrial mixing and chemical processes",
367
+ "simulation_type": "RAS",
368
+ "ras_properties": {
369
+ "RASModel": "realizableKE",
370
+ "turbulence": "on",
371
+ "printCoeffs": "on",
372
+ },
373
+ "les_properties": {},
374
+ "laminar_properties": {},
375
+ },
376
+
377
+ "heat_exchanger": {
378
+ "description": "Heat exchanger and thermal systems",
379
+ "simulation_type": "RAS",
380
+ "ras_properties": {
381
+ "RASModel": "kOmegaSST",
382
+ "turbulence": "on",
383
+ "printCoeffs": "on",
384
+ },
385
+ "les_properties": {},
386
+ "laminar_properties": {},
387
+ },
388
+
389
+ "marine_propeller": {
390
+ "description": "Marine propeller and ship hydrodynamics",
391
+ "simulation_type": "RAS",
392
+ "ras_properties": {
393
+ "RASModel": "kOmegaSST",
394
+ "turbulence": "on",
395
+ "printCoeffs": "on",
396
+ },
397
+ "les_properties": {},
398
+ "laminar_properties": {},
399
+ },
400
+
401
+ "wind_turbine": {
402
+ "description": "Wind turbine aerodynamics",
403
+ "simulation_type": "RAS",
404
+ "ras_properties": {
405
+ "RASModel": "kOmegaSST",
406
+ "turbulence": "on",
407
+ "printCoeffs": "on",
408
+ },
409
+ "les_properties": {},
410
+ "laminar_properties": {},
411
+ },
412
+
413
+ "pump_turbine": {
414
+ "description": "Pump and turbine internal flows",
415
+ "simulation_type": "RAS",
416
+ "ras_properties": {
417
+ "RASModel": "kOmegaSST",
418
+ "turbulence": "on",
419
+ "printCoeffs": "on",
420
+ },
421
+ "les_properties": {},
422
+ "laminar_properties": {},
423
+ },
424
+
425
+ "combustion_chamber": {
426
+ "description": "Combustion chamber and burner flows",
427
+ "simulation_type": "RAS",
428
+ "ras_properties": {
429
+ "RASModel": "realizableKE",
430
+ "turbulence": "on",
431
+ "printCoeffs": "on",
432
+ },
433
+ "les_properties": {},
434
+ "laminar_properties": {},
435
+ },
436
+
437
+ "environmental_wind": {
438
+ "description": "Environmental wind and atmospheric flows",
439
+ "simulation_type": "LES",
440
+ "ras_properties": {},
441
+ "les_properties": {
442
+ "LESModel": "kEqn",
443
+ "turbulence": "on",
444
+ "printCoeffs": "on",
445
+ "delta": "cubeRootVol",
446
+ "cubeRootVolCoeffs": {
447
+ "deltaCoeff": 1
448
+ },
449
+ },
450
+ "laminar_properties": {},
451
+ },
452
+
453
+ "urban_microclimate": {
454
+ "description": "Urban microclimate and building aerodynamics",
455
+ "simulation_type": "LES",
456
+ "ras_properties": {},
457
+ "les_properties": {
458
+ "LESModel": "WALE",
459
+ "turbulence": "on",
460
+ "printCoeffs": "on",
461
+ "delta": "smooth",
462
+ "smoothCoeffs": {
463
+ "delta": "cubeRootVol",
464
+ "cubeRootVolCoeffs": {
465
+ "deltaCoeff": 1
466
+ },
467
+ "maxDeltaRatio": 1.1
468
+ },
469
+ },
470
+ "laminar_properties": {},
471
+ },
472
+
473
+ "jet_mixing": {
474
+ "description": "Jet mixing and free shear flows",
475
+ "simulation_type": "LES",
476
+ "ras_properties": {},
477
+ "les_properties": {
478
+ "LESModel": "dynamicKEqn",
479
+ "turbulence": "on",
480
+ "printCoeffs": "on",
481
+ "delta": "cubeRootVol",
482
+ "cubeRootVolCoeffs": {
483
+ "deltaCoeff": 1
484
+ },
485
+ },
486
+ "laminar_properties": {},
487
+ },
488
+
489
+ "wake_flow": {
490
+ "description": "Wake flows behind obstacles",
491
+ "simulation_type": "LES",
492
+ "ras_properties": {},
493
+ "les_properties": {
494
+ "LESModel": "Smagorinsky",
495
+ "turbulence": "on",
496
+ "printCoeffs": "on",
497
+ "delta": "cubeRootVol",
498
+ "cubeRootVolCoeffs": {
499
+ "deltaCoeff": 1
500
+ },
501
+ },
502
+ "laminar_properties": {},
503
+ },
504
+
505
+ "transitional_flow": {
506
+ "description": "Laminar-turbulent transition flows",
507
+ "simulation_type": "RAS",
508
+ "ras_properties": {
509
+ "RASModel": "kOmegaSSTLM",
510
+ "turbulence": "on",
511
+ "printCoeffs": "on",
512
+ },
513
+ "les_properties": {},
514
+ "laminar_properties": {},
515
+ },
516
+
517
+ "curved_flow": {
518
+ "description": "Flows with significant streamline curvature",
519
+ "simulation_type": "RAS",
520
+ "ras_properties": {
521
+ "RASModel": "kOmegaSSTCC",
522
+ "turbulence": "on",
523
+ "printCoeffs": "on",
524
+ },
525
+ "les_properties": {},
526
+ "laminar_properties": {},
527
+ },
528
+
529
+ "unsteady_separated": {
530
+ "description": "Unsteady separated flows (hybrid RANS/LES)",
531
+ "simulation_type": "RAS",
532
+ "ras_properties": {
533
+ "RASModel": "kOmegaSSTSAS",
534
+ "turbulence": "on",
535
+ "printCoeffs": "on",
536
+ },
537
+ "les_properties": {},
538
+ "laminar_properties": {},
539
+ },
540
+
541
+ "detached_eddy": {
542
+ "description": "Detached Eddy Simulation for unsteady flows",
543
+ "simulation_type": "RAS",
544
+ "ras_properties": {
545
+ "RASModel": "SpalartAllmarasDDES",
546
+ "turbulence": "on",
547
+ "printCoeffs": "on",
548
+ },
549
+ "les_properties": {},
550
+ "laminar_properties": {},
551
+ },
552
+
553
+ "improved_detached_eddy": {
554
+ "description": "Improved Delayed Detached Eddy Simulation",
555
+ "simulation_type": "RAS",
556
+ "ras_properties": {
557
+ "RASModel": "SpalartAllmarasIDDES",
558
+ "turbulence": "on",
559
+ "printCoeffs": "on",
560
+ },
561
+ "les_properties": {},
562
+ "laminar_properties": {},
563
+ },
564
+
565
+ "low_reynolds": {
566
+ "description": "Low Reynolds number flows",
567
+ "simulation_type": "RAS",
568
+ "ras_properties": {
569
+ "RASModel": "LienLeschzinerLowRe",
570
+ "turbulence": "on",
571
+ "printCoeffs": "on",
572
+ },
573
+ "les_properties": {},
574
+ "laminar_properties": {},
575
+ },
576
+
577
+ "laminar_flow": {
578
+ "description": "Laminar flow simulation",
579
+ "simulation_type": "laminar",
580
+ "ras_properties": {},
581
+ "les_properties": {},
582
+ "laminar_properties": {},
583
+ },
584
+
585
+ "high_accuracy_les": {
586
+ "description": "High accuracy LES for research",
587
+ "simulation_type": "LES",
588
+ "ras_properties": {},
589
+ "les_properties": {
590
+ "LESModel": "dynamicKEqn",
591
+ "turbulence": "on",
592
+ "printCoeffs": "on",
593
+ "delta": "vanDriest",
594
+ "vanDriestCoeffs": {
595
+ "delta": "cubeRootVol",
596
+ "cubeRootVolCoeffs": {
597
+ "deltaCoeff": 1
598
+ },
599
+ "Aplus": 25.0,
600
+ "Cdelta": 0.158
601
+ },
602
+ },
603
+ "laminar_properties": {},
604
+ },
605
+ }
606
+
607
+ # =============================================================================
608
+ # *** Configuration Selection ***
609
+ # =============================================================================
610
+ # Select which predefined turbulence configuration to use (overrides manual settings above)
611
+
612
+ USE_PREDEFINED_TURBULENCE = None # Set to turbulence config name from PREDEFINED_TURBULENCE_CONFIGS or None for manual config
613
+
614
+ # Example usage:
615
+ # USE_PREDEFINED_TURBULENCE = "aerospace_attached" # Will use Spalart-Allmaras for aerospace
616
+ # USE_PREDEFINED_TURBULENCE = "automotive_external" # Will use k-omega SST for automotive
617
+ # USE_PREDEFINED_TURBULENCE = "environmental_wind" # Will use LES for environmental flows