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.
- pycphy/__init__.py +11 -0
- pycphy/cli.py +145 -0
- pycphy/config_manager.py +373 -0
- pycphy/foamCaseDeveloper/__init__.py +60 -41
- pycphy/foamCaseDeveloper/config/__init__.py +69 -26
- pycphy/foamCaseDeveloper/config/cad_mesh_config.py +62 -0
- pycphy/foamCaseDeveloper/config/config_hfdibdem.py +193 -0
- pycphy/foamCaseDeveloper/config/constant/__init__.py +23 -0
- pycphy/foamCaseDeveloper/config/constant/dynamic_mesh_config.py +208 -0
- pycphy/foamCaseDeveloper/config/constant/gravity_field_config.py +379 -0
- pycphy/foamCaseDeveloper/config/constant/transport_properties_config.py +225 -0
- pycphy/foamCaseDeveloper/config/constant/turbulence_config.py +617 -0
- pycphy/foamCaseDeveloper/config/csv_boundary_reader.py +219 -0
- pycphy/foamCaseDeveloper/config/system/__init__.py +31 -0
- pycphy/foamCaseDeveloper/config/system/block_mesh_config.py +184 -0
- pycphy/foamCaseDeveloper/config/{control_config.py → system/control_config.py} +113 -1
- pycphy/foamCaseDeveloper/config/system/decompose_par_config.py +525 -0
- pycphy/foamCaseDeveloper/config/system/fv_options_config.py +575 -0
- pycphy/foamCaseDeveloper/config/system/fv_schemes_config.py +363 -0
- pycphy/foamCaseDeveloper/config/system/set_fields_config.py +640 -0
- pycphy/foamCaseDeveloper/config/system/snappy_hex_mesh_config.py +241 -0
- pycphy/foamCaseDeveloper/config/zero/U_config.py +135 -0
- pycphy/foamCaseDeveloper/config/zero/__init__.py +22 -0
- pycphy/foamCaseDeveloper/config/zero/f_config.py +140 -0
- pycphy/foamCaseDeveloper/config/zero/lambda_config.py +157 -0
- pycphy/foamCaseDeveloper/config/zero/p_config.py +97 -0
- pycphy/foamCaseDeveloper/core/__init__.py +30 -18
- pycphy/foamCaseDeveloper/core/block_mesh_developer.py +1 -1
- pycphy/foamCaseDeveloper/core/cad_block_mesh_developer.py +463 -0
- pycphy/foamCaseDeveloper/core/case_builder.py +1217 -0
- pycphy/foamCaseDeveloper/core/foam_case_manager.py +370 -111
- pycphy/foamCaseDeveloper/develop_case.py +640 -0
- pycphy/foamCaseDeveloper/main.py +260 -260
- pycphy/foamCaseDeveloper/utils/myAutoCAD.py +418 -0
- pycphy/foamCaseDeveloper/writers/__init__.py +37 -4
- pycphy/foamCaseDeveloper/writers/constant/__init__.py +25 -0
- pycphy/foamCaseDeveloper/writers/constant/dynamic_mesh_dict_writer.py +75 -0
- pycphy/foamCaseDeveloper/writers/constant/gravity_field_writer.py +88 -0
- pycphy/foamCaseDeveloper/writers/constant/hfdibdem_dict_writer.py +81 -0
- pycphy/foamCaseDeveloper/writers/constant/transport_properties_writer.py +202 -0
- pycphy/foamCaseDeveloper/writers/{turbulence_properties_writer.py → constant/turbulence_properties_writer.py} +49 -1
- pycphy/foamCaseDeveloper/writers/system/__init__.py +31 -0
- pycphy/foamCaseDeveloper/writers/{block_mesh_writer.py → system/block_mesh_writer.py} +1 -1
- pycphy/foamCaseDeveloper/writers/{control_dict_writer.py → system/control_dict_writer.py} +37 -1
- pycphy/foamCaseDeveloper/writers/system/decompose_par_writer.py +228 -0
- pycphy/foamCaseDeveloper/writers/system/fv_options_writer.py +188 -0
- pycphy/foamCaseDeveloper/writers/system/fv_schemes_writer.py +155 -0
- pycphy/foamCaseDeveloper/writers/system/set_fields_writer.py +191 -0
- pycphy/foamCaseDeveloper/writers/system/snappy_hex_mesh_writer.py +123 -0
- pycphy/foamCaseDeveloper/writers/zero/__init__.py +24 -0
- pycphy/foamCaseDeveloper/writers/zero/f_field_writer.py +89 -0
- pycphy/foamCaseDeveloper/writers/zero/lambda_field_writer.py +84 -0
- pycphy/foamCaseDeveloper/writers/zero/p_field_writer.py +89 -0
- pycphy/foamCaseDeveloper/writers/zero/u_field_writer.py +96 -0
- pycphy/foamCaseDeveloper/writers/zero/zero_field_factory.py +388 -0
- {pycphy-0.1.0.dist-info → pycphy-0.2.0.dist-info}/METADATA +154 -6
- pycphy-0.2.0.dist-info/RECORD +63 -0
- pycphy-0.2.0.dist-info/entry_points.txt +3 -0
- pycphy/foamCaseDeveloper/config/block_mesh_config.py +0 -90
- pycphy/foamCaseDeveloper/config/turbulence_config.py +0 -187
- pycphy/foamCaseDeveloper/core/control_dict_writer.py +0 -55
- pycphy/foamCaseDeveloper/core/turbulence_properties_writer.py +0 -68
- pycphy-0.1.0.dist-info/RECORD +0 -24
- pycphy-0.1.0.dist-info/entry_points.txt +0 -2
- {pycphy-0.1.0.dist-info → pycphy-0.2.0.dist-info}/WHEEL +0 -0
- {pycphy-0.1.0.dist-info → pycphy-0.2.0.dist-info}/licenses/LICENSE +0 -0
- {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
|