/
all_options.go
633 lines (630 loc) · 21.2 KB
/
all_options.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
package config
import "github.com/btracey/su2tools/config/common"
// This file is autogenerated using github.com/btracey/su2tools/config_writer/parser/write_options_structs.go based on the output from parse_config.py
// Options is a struct containing all of the possible options in SU^2
type Options struct {
// Adjoint type
RegimeType common.Enum
// Write extra output
ExtraOutput bool
// Physical governing equations
PhysicalProblem common.Enum
// Mathematical problem
MathProblem common.Enum
// Specify turbulence model
KindTurbModel common.Enum
// Specify transition model
KindTransModel common.Enum
// Axisymmetric simulation
Axisymmetric bool
// Add the gravity force
GravityForce bool
// Perform a low fidelity simulation
LowFidelitySimulation bool
// Restart solution from native solution file
RestartSol bool
// Write a tecplot file for each partition
VisualizePart bool
// Marker(s) of the surface in the surface flow solution file
MarkerPlotting string
// Marker(s) of the surface where evaluate the non-dimensional coefficients
MarkerMonitoring string
// Marker(s) of the surface where objective function (design problem) will be evaluated
MarkerDesigning string
// Euler wall boundary marker(s)
MarkerEuler string
// Far-field boundary marker(s)
MarkerFar string
// Symmetry boundary condition
MarkerSym string
// Symmetry boundary condition
MarkerPressure string
// Near-Field boundary condition
MarkerNearfield string
// Zone interface boundary marker(s)
MarkerInterface string
// Dirichlet boundary marker(s)
MarkerDirichlet string
// Neumann boundary marker(s)
MarkerNeumann string
// poisson dirichlet boundary marker(s)
ElecDirichlet string
// poisson neumann boundary marker(s)
ElecNeumann string
// Custom boundary marker(s)
MarkerCustom string
// No description
MarkerPeriodic string
// Inlet boundary type
InletType common.Enum
// No description
MarkerInlet string
// No description
MarkerSupersonicInlet string
// No description
MarkerOutlet string
// No description
MarkerIsothermal string
// No description
MarkerHeatflux string
// No description
MarkerNacelleInflow string
// Engine subsonic intake region
SubsonicNacelleInflow bool
// No description
MarkerNacelleExhaust string
// Displacement boundary marker(s)
MarkerNormalDispl string
// Load boundary marker(s)
MarkerNormalLoad string
// Flow load boundary marker(s)
MarkerFlowload string
// Damping factor for engine inlet condition
DampNacelleInflow float64
// Kind of grid adaptation
KindAdapt common.Enum
// Percentage of new elements (% of the original number of elements)
NewElems float64
// Scale factor for the dual volume
DualvolPower float64
// Use analytical definition for surfaces
AnalyticalSurfdef common.Enum
// Before each computation, implicitly smooth the nodal coordinates
SmoothGeometry bool
// Adapt the boundary elements
AdaptBoundary bool
// Divide rectangles into triangles
DivideElements bool
// Unsteady simulation
UnsteadySimulation common.Enum
// Unsteady farfield boundaries
UnsteadyFarfield bool
// Courant-Friedrichs-Lewy condition of the finest grid
CflNumber float64
// No description
CflRamp []float64
// Reduction factor of the CFL coefficient in the adjoint problem
AdjCflReduction float64
// Reduction factor of the CFL coefficient in the level set problem
TurbCflReduction float64
// Reduction factor of the CFL coefficient in the turbulent adjoint problem
AdjturbCflReduction float64
// Number of total iterations
ExtIter float64
// Runge-Kutta alpha coefficients
RkAlphaCoeff string
// Time Step for dual time stepping simulations (s)
UnstTimestep float64
// Total Physical Time for dual time stepping simulations (s)
UnstTime float64
// Unsteady Courant-Friedrichs-Lewy number of the finest grid
UnstCflNumber float64
// Number of internal iterations (dual time method)
UnstIntIter float64
// Integer number of periodic time instances for Time Spectral
TimeInstances float64
// Iteration number to begin unsteady restarts (dual time method)
UnstRestartIter float64
// Starting direct solver iteration for the unsteady adjoint
UnstAdjointIter float64
// Time discretization
TimeDiscreFlow common.Enum
// Time discretization
TimeDiscreTne2 common.Enum
// Time discretization
TimeDiscreAdjtne2 common.Enum
// Time discretization
TimeDiscreAdjlevelset common.Enum
// Time discretization
TimeDiscreAdj common.Enum
// Time discretization
TimeDiscreLin common.Enum
// Time discretization
TimeDiscreTurb common.Enum
// Time discretization
TimeDiscreAdjturb common.Enum
// Time discretization
TimeDiscreWave common.Enum
// Time discretization
TimeDiscreFea common.Enum
// Time discretization
TimeDiscreHeat common.Enum
// Time discretization
TimeDiscrePoisson common.Enum
// Linear solver for the implicit, mesh deformation, or discrete adjoint systems
LinearSolver common.Enum
// Preconditioner for the Krylov linear solvers
LinearSolverPrec common.Enum
// Minimum error threshold for the linear solver for the implicit formulation
LinearSolverError float64
// Maximum number of iterations of the linear solver for the implicit formulation
LinearSolverIter float64
// Relaxation of the linear solver for the implicit formulation
LinearSolverRelax float64
// Roe-Turkel preconditioning for low Mach number flows
RoeTurkelPrec bool
// Time Step for dual time stepping simulations (s)
MinRoeTurkelPrec float64
// Time Step for dual time stepping simulations (s)
MaxRoeTurkelPrec float64
// Linear solver for the turbulent adjoint systems
AdjturbLinSolver common.Enum
// Preconditioner for the turbulent adjoint Krylov linear solvers
AdjturbLinPrec common.Enum
// Minimum error threshold for the turbulent adjoint linear solver for the implicit formulation
AdjturbLinError float64
// Maximum number of iterations of the turbulent adjoint linear solver for the implicit formulation
AdjturbLinIter float64
// Mesh motion for unsteady simulations
GridMovement bool
// Type of mesh motion
GridMovementKind []string
// Marker(s) of moving surfaces (MOVING_WALL or DEFORMING grid motion).
MarkerMoving string
// Mach number (non-dimensional, based on the mesh velocity and freestream vals.)
MachMotion float64
// Coordinates of the rigid motion origin
MotionOriginX string
// Coordinates of the rigid motion origin
MotionOriginY string
// Coordinates of the rigid motion origin
MotionOriginZ string
// Translational velocity vector (m/s) in the x, y, & z directions (RIGID_MOTION only)
TranslationRateX string
// Translational velocity vector (m/s) in the x, y, & z directions (RIGID_MOTION only)
TranslationRateY string
// Translational velocity vector (m/s) in the x, y, & z directions (RIGID_MOTION only)
TranslationRateZ string
// Angular velocity vector (rad/s) about x, y, & z axes (RIGID_MOTION only)
RotationRateX string
// Angular velocity vector (rad/s) about x, y, & z axes (RIGID_MOTION only)
RotationRateY string
// Angular velocity vector (rad/s) about x, y, & z axes (RIGID_MOTION only)
RotationRateZ string
// Pitching angular freq. (rad/s) about x, y, & z axes (RIGID_MOTION only)
PitchingOmegaX string
// Pitching angular freq. (rad/s) about x, y, & z axes (RIGID_MOTION only)
PitchingOmegaY string
// Pitching angular freq. (rad/s) about x, y, & z axes (RIGID_MOTION only)
PitchingOmegaZ string
// Pitching amplitude (degrees) about x, y, & z axes (RIGID_MOTION only)
PitchingAmplX string
// Pitching amplitude (degrees) about x, y, & z axes (RIGID_MOTION only)
PitchingAmplY string
// Pitching amplitude (degrees) about x, y, & z axes (RIGID_MOTION only)
PitchingAmplZ string
// Pitching phase offset (degrees) about x, y, & z axes (RIGID_MOTION only)
PitchingPhaseX string
// Pitching phase offset (degrees) about x, y, & z axes (RIGID_MOTION only)
PitchingPhaseY string
// Pitching phase offset (degrees) about x, y, & z axes (RIGID_MOTION only)
PitchingPhaseZ string
// Plunging angular freq. (rad/s) in x, y, & z directions (RIGID_MOTION only)
PlungingOmegaX string
// Plunging angular freq. (rad/s) in x, y, & z directions (RIGID_MOTION only)
PlungingOmegaY string
// Plunging angular freq. (rad/s) in x, y, & z directions (RIGID_MOTION only)
PlungingOmegaZ string
// Plunging amplitude (m) in x, y, & z directions (RIGID_MOTION only)
PlungingAmplX string
// Plunging amplitude (m) in x, y, & z directions (RIGID_MOTION only)
PlungingAmplY string
// Plunging amplitude (m) in x, y, & z directions (RIGID_MOTION only)
PlungingAmplZ string
// Value to move motion origins (1 or 0)
MoveMotionOrigin string
//
MotionFilename string
// Uncoupled Aeroelastic Frequency Plunge.
FreqPlungeAeroelastic float64
// Uncoupled Aeroelastic Frequency Pitch.
FreqPitchAeroelastic float64
// Apply a wind gust
WindGust bool
// Type of gust
GustType common.Enum
// Gust wavelenght (meters)
GustWavelength float64
// Number of gust periods
GustPeriods float64
// Gust amplitude (m/s)
GustAmpl float64
// Time at which to begin the gust (sec)
GustBeginTime float64
// Location at which the gust begins (meters)
GustBeginLoc float64
// Direction of the gust X or Y dir
GustDir common.Enum
// Convergence criteria
ConvCriteria common.Enum
// Residual reduction (order of magnitude with respect to the initial value)
ResidualReduction float64
// Min value of the residual (log10 of the residual)
ResidualMinval float64
// Iteration number to begin convergence monitoring
StartconvIter float64
// Number of elements to apply the criteria
CauchyElems float64
// Epsilon to control the series convergence
CauchyEps float64
// Flow functional for the Cauchy criteria
CauchyFuncFlow common.Enum
// Adjoint functional for the Cauchy criteria
CauchyFuncAdj common.Enum
// Linearized functional for the Cauchy criteria
CauchyFuncLin common.Enum
// Epsilon for a full multigrid method evaluation
FullmgCauchyEps float64
// Full multi-grid
Fullmg bool
// Start up iterations using the fine grid only
StartUpIter float64
// Multi-grid Levels
Mglevel float64
// Multi-grid Cycle (0 = V cycle, 1 = W Cycle)
Mgcycle float64
// Multi-grid pre-smoothing level
MgPreSmooth string
// Multi-grid post-smoothing level
MgPostSmooth string
// Jacobi implicit smoothing of the correction
MgCorrectionSmooth string
// Damping factor for the residual restriction
MgDampRestriction float64
// Damping factor for the correction prolongation
MgDampProlongation float64
// CFL reduction factor on the coarse levels
MgCflReduction float64
// Maximum number of children in the agglomeration stage
MaxChildren float64
// Maximum length of an agglomerated element (relative to the domain)
MaxDimension float64
// Numerical method for spatial gradients
NumMethodGrad common.Enum
// Coefficient for the limiter
LimiterCoeff float64
// Coefficient for detecting the limit of the sharp edges
SharpEdgesCoeff float64
// No description
ConvNumMethodFlow common.Enum
// Viscous numerical method
ViscNumMethodFlow common.Enum
// Source term numerical method
SourNumMethodFlow common.Enum
// Slope limiter
SlopeLimiterFlow common.Enum
// 1st, 2nd and 4th order artificial dissipation coefficients
AdCoeffFlow []float64
// No description
ConvNumMethodAdj common.Enum
// Viscous numerical method
ViscNumMethodAdj common.Enum
// Source term numerical method
SourNumMethodAdj common.Enum
// Slope limiter
SlopeLimiterAdjflow common.Enum
// 1st, 2nd and 4th order artificial dissipation coefficients
AdCoeffAdj []float64
// Slope limiter
SlopeLimiterTurb common.Enum
// Convective numerical method
ConvNumMethodTurb common.Enum
// Viscous numerical method
ViscNumMethodTurb common.Enum
// Source term numerical method
SourNumMethodTurb common.Enum
// Slope limiter
SlopeLimiterAdjturb common.Enum
// Convective numerical method
ConvNumMethodAdjturb common.Enum
// Viscous numerical method
ViscNumMethodAdjturb common.Enum
// Source term numerical method
SourNumMethodAdjturb common.Enum
// Convective numerical method
ConvNumMethodLin common.Enum
// Viscous numerical method
ViscNumMethodLin common.Enum
// Source term numerical method
SourNumMethodLin common.Enum
// 1st, 2nd and 4th order artificial dissipation coefficients
AdCoeffLin []float64
// Slope limiter
SlopeLimiterAdjlevelset common.Enum
// Convective numerical method
ConvNumMethodAdjlevelset common.Enum
// Viscous numerical method
ViscNumMethodAdjlevelset common.Enum
// Source term numerical method
SourNumMethodAdjlevelset common.Enum
// Convective numerical method
ConvNumMethodTne2 common.Enum
// Viscous numerical method
ViscNumMethodTne2 common.Enum
// Source term numerical method
SourNumMethodTne2 common.Enum
// Slope limiter
SlopeLimiterTne2 common.Enum
// 1st, 2nd and 4th order artificial dissipation coefficients
AdCoeffTne2 []float64
// Convective numerical method
ConvNumMethodAdjtne2 common.Enum
// Viscous numerical method
ViscNumMethodAdjtne2 common.Enum
// Source term numerical method
SourNumMethodAdjtne2 common.Enum
// Slope limiter
SlopeLimiterAdjtne2 common.Enum
// 1st, 2nd and 4th order artificial dissipation coefficients
AdCoeffAdjtne2 []float64
// Viscous numerical method
ViscNumMethodWave common.Enum
// Source term numerical method
SourNumMethodWave common.Enum
// Viscous numerical method
ViscNumMethodPoisson common.Enum
// Source term numerical method
SourNumMethodPoisson common.Enum
// Viscous numerical method
ViscNumMethodFea common.Enum
// Source term numerical method
SourNumMethodFea common.Enum
// Viscous numerical method
ViscNumMethodHeat common.Enum
// Source term numerical method
SourNumMethodHeat common.Enum
// Source term numerical method
SourNumMethodTemplate common.Enum
// Limit value for the adjoint variable
AdjLimit float64
// Adjoint problem boundary condition
AdjObjfunc common.Enum
// No description
GeoSectionLimit []float64
// Mode of the GDC code (analysis, or gradient)
GeoMode common.Enum
// Drag weight in sonic boom Objective Function (from 0.0 to 1.0)
DragInSonicboom float64
// Sensitivity smoothing
SensSmoothing common.Enum
// Continuous governing equation set
ContinuousEqns common.Enum
// Discrete governing equation set
DiscreteEqns common.Enum
// Adjoint frozen viscosity
FrozenVisc bool
//
CteViscousDrag float64
// Remove sharp edges from the sensitivity evaluation
SensRemoveSharp bool
// I/O
OutputFormat common.Enum
// Mesh input file format
MeshFormat common.Enum
// Convert a CGNS mesh to SU2 format
CgnsToSu2 bool
// Mesh input file
MeshFilename string
// Mesh output file
MeshOutFilename string
// Output file convergence history (w/o extension)
ConvFilename string
// Restart flow input file
SolutionFlowFilename string
// Restart flow input file
FarfieldFilename string
// Restart linear flow input file
SolutionLinFilename string
// Restart adjoint input file
SolutionAdjFilename string
// Output file restart flow
RestartFlowFilename string
// Output file linear flow
RestartLinFilename string
// Output file restart adjoint
RestartAdjFilename string
// Output file restart wave
RestartWaveFilename string
// Output file flow (w/o extension) variables
VolumeFlowFilename string
// Output file structure (w/o extension) variables
VolumeStructureFilename string
// Output file structure (w/o extension) variables
SurfaceStructureFilename string
// Output file structure (w/o extension) variables
SurfaceWaveFilename string
// Output file structure (w/o extension) variables
SurfaceHeatFilename string
// Output file wave (w/o extension) variables
VolumeWaveFilename string
// Output file wave (w/o extension) variables
VolumeHeatFilename string
// Output file adj. wave (w/o extension) variables
VolumeAdjwaveFilename string
// Output file adjoint (w/o extension) variables
VolumeAdjFilename string
// Output file linear (w/o extension) variables
VolumeLinFilename string
// Output objective function gradient
GradObjfuncFilename string
// Output objective function
ValueObjfuncFilename string
// Output file surface flow coefficient (w/o extension)
SurfaceFlowFilename string
// Output file surface adjoint coefficient (w/o extension)
SurfaceAdjFilename string
// Output file surface linear coefficient (w/o extension)
SurfaceLinFilename string
// Writing solution file frequency
WrtSolFreq float64
// Writing solution file frequency
WrtSolFreqDualtime float64
// Writing convergence history frequency
WrtConFreq float64
// Writing convergence history frequency for the dual time
WrtConFreqDualtime float64
// Write a volume solution file
WrtVolSol bool
// Write a surface solution file
WrtSrfSol bool
// Write a surface CSV solution file
WrtCsvSol bool
// Write a restart solution file
WrtRestart bool
// Output residual info to solution/restart file
WrtResiduals bool
// Output the rind layers in the solution files
WrtHalo bool
// Output sectional forces for specified markers.
WrtSectionalForces bool
// Evaluate equivalent area on the Near-Field
EquivArea bool
// Integration limits of the equivalent area ( xmin, xmax, Dist_NearField )
EaIntLimit []float64
// Specific gas constant (287.87 J/kg*K (air), only for compressible flows)
GasConstant float64
// Ratio of specific heats (1.4 (air), only for compressible flows)
GammaValue float64
// Reynolds number (non-dimensional, based on the free-stream values)
ReynoldsNumber float64
// Reynolds length (1 m by default)
ReynoldsLength float64
// Laminar Prandtl number (0.72 (air), only for compressible flows)
PrandtlLam float64
// Turbulent Prandtl number (0.9 (air), only for compressible flows)
PrandtlTurb float64
// Value of the Bulk Modulus
BulkModulus float64
// Artifical compressibility factor
ArtcompFactor float64
// Mach number (non-dimensional, based on the free-stream values)
MachNumber float64
// No description
MixtureMolarMass float64
// Free-stream pressure (101325.0 N/m^2 by default)
FreestreamPressure float64
// Free-stream density (1.2886 Kg/m^3 (air), 998.2 Kg/m^3 (water))
FreestreamDensity float64
// Free-stream temperature (273.15 K by default)
FreestreamTemperature float64
// Free-stream vibrational-electronic temperature (273.15 K by default)
FreestreamTemperatureVe float64
// Free-stream velocity (m/s)
FreestreamVelocity []float64
// Free-stream viscosity (1.853E-5 Ns/m^2 (air), 0.798E-3 Ns/m^2 (water))
FreestreamViscosity float64
//
FreestreamIntermittency float64
//
FreestreamTurbulenceintensity float64
//
FreestreamNuFactor float64
//
FreestreamTurb2lamviscratio float64
// Side-slip angle (degrees, only for compressible flows)
SideslipAngle float64
// Angle of attack (degrees, only for compressible flows)
Aoa float64
// X Reference origin for moment computation
RefOriginMomentX string
// Y Reference origin for moment computation
RefOriginMomentY string
// Z Reference origin for moment computation
RefOriginMomentZ string
// Reference area for force coefficients (0 implies automatic calculation)
RefArea float64
// Reference length for pitching, rolling, and yawing non-dimensional moment
RefLengthMoment float64
// Reference element length for computing the slope limiter epsilon
RefElemLength float64
// Reference coefficient for detecting sharp edges
RefSharpEdges float64
// Reference pressure (1.0 N/m^2 by default, only for compressible flows)
RefPressure float64
// Reference temperature (1.0 K by default, only for compressible flows)
RefTemperature float64
// Reference density (1.0 Kg/m^3 by default, only for compressible flows)
RefDensity float64
// Reference velocity (incompressible only)
RefVelocity float64
// Reference viscosity (incompressible only)
RefViscosity float64
// Factor for converting the grid to meters
ConvertToMeter float64
// Write a new mesh converted to meters
WriteConvertedMesh bool
// Specify chemical model for multi-species simulations
GasModel common.Enum
//
GasComposition string
// Ratio of density for two phase problems
RatioDensity float64
// Ratio of viscosity for two phase problems
RatioViscosity float64
// Location of the freesurface (y or z coordinate)
FreesurfaceZero float64
// Free surface depth surface (x or y coordinate)
FreesurfaceDepth float64
// Thickness of the interface in a free surface problem
FreesurfaceThickness float64
// Free surface damping coefficient
FreesurfaceDampingCoeff float64
// Free surface damping length (times the baseline wave)
FreesurfaceDampingLength float64
// Location of the free surface outlet surface (x or y coordinate)
FreesurfaceOutlet float64
// Kind of deformation
DvKind []string
// Marker of the surface to which we are going apply the shape deformation
DvMarker string
// New value of the shape deformation
DvValue string
// No description
DvParam string
// Hold the grid fixed in a region
HoldGridFixed bool
// Coordinates of the box where the grid will be deformed (Xmin, Ymin, Zmin, Xmax, Ymax, Zmax)
HoldGridFixedCoord []float64
// Visualize the deformation
VisualizeDeformation bool
// Number of iterations for FEA mesh deformation (surface deformation increments)
GridDeformIter float64
// No description
CyclicPitch float64
// No description
CollectivePitch float64
// Modulus of elasticity
ElasticityModulus float64
// Poisson ratio
PoissonRatio float64
// Material density
MaterialDensity float64
// Constant wave speed
WaveSpeed float64
// Thermal diffusivity constant
ThermalDiffusivity float64
// Location of the turb model itself
MlTurbModelFile string
// blah
MlTurbModelFeatureset string
}