Documentation 6b54b78464
Loading...
Searching...
No Matches
option_structure.hpp
Go to the documentation of this file.
1/*!
2 * \file option_structure.hpp
3 * \brief Defines classes for referencing options for easy input in CConfig
4 * \author J. Hicken, B. Tracey
5 * \version 8.5.0 "Harrier"
6 *
7 * SU2 Project Website: https://su2code.github.io
8 *
9 * The SU2 Project is maintained by the SU2 Foundation
10 * (http://su2foundation.org)
11 *
12 * Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)
13 *
14 * SU2 is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU Lesser General Public
16 * License as published by the Free Software Foundation; either
17 * version 2.1 of the License, or (at your option) any later version.
18 *
19 * SU2 is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * Lesser General Public License for more details.
23 *
24 * You should have received a copy of the GNU Lesser General Public
25 * License along with SU2. If not, see <http://www.gnu.org/licenses/>.
26 */
27
28#pragma once
29
31
32#include <iostream>
33#include <sstream>
34#include <string>
35#include <vector>
36#include <array>
37#include <map>
38#include <cstdlib>
39#include <algorithm>
40#include <cassert>
41
42/*!
43 * \class CEmptyMap
44 * \brief We use this dummy class instead of std::map when
45 * we only need the enum definition and not the string to
46 * enum maps, this makes compilation much faster.
47 */
48template <typename T, typename U>
49struct CEmptyMap {
50 CEmptyMap(std::initializer_list<std::pair<const T, U> >) {}
51};
52
53#ifdef ENABLE_MAPS
54template<class T, class U>
55using MapType = std::map<T,U>;
56#define MakePair(a,b) {a,b},
57#else
58template<class T, class U>
60#define MakePair(a,b)
61#endif
62
63/*!
64 * \brief Different software components of SU2
65 */
66enum class SU2_COMPONENT {
67 SU2_CFD, /*!< \brief Running the SU2_CFD software. */
68 SU2_DEF, /*!< \brief Running the SU2_DEF software. */
69 SU2_DOT, /*!< \brief Running the SU2_DOT software. */
70 SU2_GEO, /*!< \brief Running the SU2_GEO software. */
71 SU2_SOL /*!< \brief Running the SU2_SOL software. */
72};
73
74const unsigned int EXIT_DIVERGENCE = 2; /*!< \brief Exit code (divergence). */
75
76const unsigned int MAX_PARAMETERS = 10; /*!< \brief Maximum number of parameters for a design variable definition. */
77const unsigned int MAX_NUMBER_PERIODIC = 10; /*!< \brief Maximum number of periodic boundary conditions. */
78const unsigned int MAX_STRING_SIZE = 400; /*!< \brief Maximum size of a generic string. */
79const unsigned int MAX_NUMBER_FFD = 15; /*!< \brief Maximum number of FFDBoxes for the FFD. */
80enum: unsigned int{MAX_SOLS = 14}; /*!< \brief Maximum number of solutions at the same time (dimension of solution container array). */
81const unsigned int MAX_TERMS = 7; /*!< \brief Maximum number of terms in the numerical equations (dimension of solver container array). */
82const unsigned int MAX_ZONES = 3; /*!< \brief Maximum number of zones. */
83const unsigned int MAX_FE_KINDS = 7; /*!< \brief Maximum number of Finite Elements. */
84const unsigned int NO_RK_ITER = 0; /*!< \brief No Runge-Kutta iteration. */
85
86const unsigned int OVERHEAD = 4; /*!< \brief Overhead space above nMarker when allocating space for boundary elems (MPI + periodic). */
87
88const unsigned int MESH_0 = 0; /*!< \brief Definition of the finest grid level. */
89const unsigned int MESH_1 = 1; /*!< \brief Definition of the finest grid level. */
90const unsigned int ZONE_0 = 0; /*!< \brief Definition of the first grid domain. */
91const unsigned int ZONE_1 = 1; /*!< \brief Definition of the second grid domain. */
92const unsigned int INST_0 = 0; /*!< \brief Definition of the first instance per grid level. */
93
94constexpr passivedouble STANDARD_GRAVITY = 9.80665; /*!< \brief Acceleration due to gravity at surface of earth. */
95constexpr passivedouble UNIVERSAL_GAS_CONSTANT = 8.3144598; /*!< \brief Universal gas constant in J/(mol*K) */
96constexpr passivedouble BOLTZMANN_CONSTANT = 1.3806503E-23; /*!< \brief Boltzmann's constant [J K^-1] */
97constexpr passivedouble AVOGAD_CONSTANT = 6.0221415E26; /*!< \brief Avogadro's constant, number of particles in one kmole. */
98constexpr passivedouble FUND_ELEC_CHARGE_CGS = 4.8032047E-10; /*!< \brief Fundamental electric charge in CGS units, cm^(3/2) g^(1/2) s^(-1). */
99constexpr passivedouble STD_REF_TEMP = 298.15; /*!< \brief Standard reference temperature for enthalpy in Kelvin. */
100constexpr passivedouble EPS = 1.0E-16; /*!< \brief Error scale. */
101constexpr passivedouble TURB_EPS = 1.0E-16; /*!< \brief Turbulent Error scale. */
102
103constexpr passivedouble ONE2 = 0.5; /*!< \brief One divided by two. */
104constexpr passivedouble ONE3 = 1.0 / 3.0; /*!< \brief One divided by three. */
105constexpr passivedouble TWO3 = 2.0 / 3.0; /*!< \brief Two divided by three. */
106constexpr passivedouble FOUR3 = 4.0 / 3.0; /*!< \brief Four divided by three. */
107
108constexpr passivedouble PI_NUMBER = 3.14159265358979323846; /*!< \brief Pi number (not using M_PI to avoid Windows issues). */
109
110constexpr passivedouble STEFAN_BOLTZMANN = 5.670367E-08; /*!< \brief Stefan-Boltzmann constant in W/(m^2*K^4). */
111
112const int MASTER_NODE = 0; /*!< \brief Master node for MPI parallelization. */
113const int SINGLE_NODE = 1; /*!< \brief There is only a node in the MPI parallelization. */
114const int SINGLE_ZONE = 1; /*!< \brief There is only a zone. */
115
116enum class COMM_TYPE {
117 UNSIGNED_LONG, /*!< \brief Communication type for unsigned long. */
118 LONG, /*!< \brief Communication type for long. */
119 UNSIGNED_SHORT, /*!< \brief Communication type for unsigned short. */
120 FLOAT, /*!< \brief Communication type for su2mixedfloat. */
121 DOUBLE, /*!< \brief Communication type for double. */
122 PASSIVE_DOUBLE, /*!< \brief Communication type for passivedouble. */
123 CHAR, /*!< \brief Communication type for char. */
124 SHORT, /*!< \brief Communication type for short. */
125 INT, /*!< \brief Communication type for int. */
126};
127
128/*!
129 * \brief Types of geometric entities based on VTK nomenclature
130 */
132 VERTEX = 1, /*!< \brief VTK nomenclature for defining a vertex element. */
133 LINE = 3, /*!< \brief VTK nomenclature for defining a line element. */
134 TRIANGLE = 5, /*!< \brief VTK nomenclature for defining a triangle element. */
135 QUADRILATERAL = 9, /*!< \brief VTK nomenclature for defining a quadrilateral element. */
136 TETRAHEDRON = 10, /*!< \brief VTK nomenclature for defining a tetrahedron element. */
137 HEXAHEDRON = 12, /*!< \brief VTK nomenclature for defining a hexahedron element. */
138 PRISM = 13, /*!< \brief VTK nomenclature for defining a prism element. */
139 PYRAMID = 14 /*!< \brief VTK nomenclature for defining a pyramid element. */
141constexpr unsigned short N_ELEM_TYPES = 7; /*!< \brief General output & CGNS defines. */
142
143constexpr unsigned short N_POINTS_LINE = 2; /*!< \brief General output & CGNS defines. */
144constexpr unsigned short N_POINTS_TRIANGLE = 3; /*!< \brief General output & CGNS defines. */
145constexpr unsigned short N_POINTS_QUADRILATERAL = 4; /*!< \brief General output & CGNS defines. */
146constexpr unsigned short N_POINTS_TETRAHEDRON = 4; /*!< \brief General output & CGNS defines. */
147constexpr unsigned short N_POINTS_HEXAHEDRON = 8; /*!< \brief General output & CGNS defines. */
148constexpr unsigned short N_POINTS_PYRAMID = 5; /*!< \brief General output & CGNS defines. */
149constexpr unsigned short N_POINTS_PRISM = 6; /*!< \brief General output & CGNS defines. */
150constexpr unsigned short N_POINTS_MAXIMUM = 8; /*!< \brief Max. out of the above, used for static arrays, keep it up to date. */
151
152constexpr unsigned short N_FACES_LINE = 1; /*!< \brief General output & CGNS defines. */
153constexpr unsigned short N_FACES_TRIANGLE = 3; /*!< \brief General output & CGNS defines. */
154constexpr unsigned short N_FACES_QUADRILATERAL = 4; /*!< \brief General output & CGNS defines. */
155constexpr unsigned short N_FACES_TETRAHEDRON = 4; /*!< \brief General output & CGNS defines. */
156constexpr unsigned short N_FACES_PYRAMID = 5; /*!< \brief General output & CGNS defines. */
157constexpr unsigned short N_FACES_PRISM = 5; /*!< \brief General output & CGNS defines. */
158constexpr unsigned short N_FACES_HEXAHEDRON = 6; /*!< \brief General output & CGNS defines. */
159constexpr unsigned short N_FACES_MAXIMUM = 6; /*!< \brief Max. out of the above, used for static arrays, keep it up to date. */
160
161/*!
162 * \brief Get the number of faces of the element.
163 * \param[in] elementType - element type
164 * \return number of faces
165 */
166inline unsigned short nFacesOfElementType(unsigned short elementType) {
167 switch (elementType) {
168 case LINE: return N_FACES_LINE;
169 case TRIANGLE: return N_FACES_TRIANGLE;
171 case TETRAHEDRON: return N_FACES_TETRAHEDRON;
172 case HEXAHEDRON: return N_FACES_HEXAHEDRON;
173 case PYRAMID: return N_FACES_PYRAMID;
174 case PRISM: return N_FACES_PRISM;
175 default: assert(false && "Invalid element type."); return 0;
176 }
177}
178
179/*!
180 * \brief Get the number of points of the element.
181 * \param[in] elementType - element type
182 * \return number of points
183 */
184inline unsigned short nPointsOfElementType(unsigned short elementType) {
185 switch (elementType) {
186 case LINE: return N_POINTS_LINE;
187 case TRIANGLE: return N_POINTS_TRIANGLE;
190 case HEXAHEDRON: return N_POINTS_HEXAHEDRON;
191 case PYRAMID: return N_POINTS_PYRAMID;
192 case PRISM: return N_POINTS_PRISM;
193 default: assert(false && "Invalid element type."); return 0;
194 }
195}
196
197const int CGNS_STRING_SIZE = 33; /*!< \brief Length of strings used in the CGNS format. */
198
199/*--- Layout of the header of the native SU2 binary solution/restart format, shared by
200 CSU2BinaryFileWriter and the routines that read those files so they cannot drift
201 apart. The header is SU2_RESTART_HEADER_SIZE ints: a magic number, the number of
202 variables, the number of points, the size in bytes of the floating point data that
203 follows, and one spare.
204
205 The 4th and 5th ints used to be the number of ints and of doubles of a metadata
206 trailer (1 and 5, later 1 and 8) that the writer appended after the data. That
207 trailer is no longer written (metadata goes to a separate ASCII file) and both
208 ints have been 0 since, but old files in circulation still have 1 and 5 or 8
209 there, which is why 1 is accepted below as meaning double precision. ---*/
210const int SU2_RESTART_MAGIC_NUMBER = 535532; /*!< \brief Hex representation of "SU2". */
211const int SU2_RESTART_HEADER_SIZE = 5; /*!< \brief Number of ints in the header. */
212const int SU2_RESTART_PRECISION_IDX = 3; /*!< \brief Position of the precision field. */
213const int SU2_RESTART_METADATA_IDX = 4; /*!< \brief Position of the legacy metadata count. */
214const int SU2_RESTART_MAX_METADATA = 8; /*!< \brief Most metadata doubles a trailer ever had. */
215
216/*!
217 * \brief Size in bytes of the floating point data of a native SU2 binary solution file.
218 * \param[in] precisionField - The SU2_RESTART_PRECISION_IDX entry of the file header.
219 * \return 8 for double precision, 4 for single precision.
220 * \note Files written before the field had this meaning have a 0 or a 1 there (see above)
221 * and were always double precision.
222 */
223inline int GetSU2BinaryScalarSize(int precisionField) {
224 if (precisionField == 0 || precisionField == 1) return static_cast<int>(sizeof(double));
225 if (precisionField != static_cast<int>(sizeof(double)) && precisionField != static_cast<int>(sizeof(float))) {
226 SU2_MPI::Error("Invalid floating point precision in the header of a binary SU2 solution file.", CURRENT_FUNCTION);
227 }
228 return precisionField;
229}
230
231/*!
232 * \brief Number of metadata scalars in the trailer of a native SU2 binary solution file.
233 * \param[in] precisionField - The SU2_RESTART_PRECISION_IDX entry of the file header.
234 * \param[in] metadataField - The SU2_RESTART_METADATA_IDX entry of the file header.
235 * \return Number of scalars of the trailer, preceded by one int (the iteration number),
236 * or 0 for the files that do not have one.
237 * \note Only files that still use the two ints as trailer counts have a trailer, and in
238 * those the precision field is the number of trailer ints, which was always 1 (see above).
239 */
240inline int GetSU2BinaryMetadataSize(int precisionField, int metadataField) {
241 if (precisionField != 1) return 0;
242 return std::min(metadataField, SU2_RESTART_MAX_METADATA);
243}
244
245/*!
246 * \brief Convert floating point data read from a native SU2 binary solution file, which
247 * may have been written by a build of different precision, to the precision of this build.
248 * \param[in] buffer - Raw data as read from the file, of size count*scalarSize bytes.
249 * \param[in] scalarSize - Size in bytes of the scalars in the file, see GetSU2BinaryScalarSize.
250 * \param[in] count - Number of scalars.
251 * \param[out] data - Converted data, must not overlap with buffer.
252 */
253inline void SU2BinaryDataToPassive(const void* buffer, int scalarSize, unsigned long count, passivedouble* data) {
254 if (scalarSize == static_cast<int>(sizeof(float))) {
255 const auto* src = static_cast<const float*>(buffer);
256 for (unsigned long i = 0; i < count; ++i) data[i] = src[i];
257 } else {
258 const auto* src = static_cast<const double*>(buffer);
259 for (unsigned long i = 0; i < count; ++i) data[i] = src[i];
260 }
261}
262
263const int SU2_BINARY_STRING_SIZE = 65; /*!< \brief Length of strings (e.g. marker names) used in the native
264 SU2 binary mesh format. Shared by CSU2BinaryMeshReaderBase
265 and CSU2MeshBinaryFileWriter so they cannot drift apart. */
266const int SU2_CONN_SIZE = 10; /*!< \brief Size of the connectivity array that is allocated for each element
267 that we read from a mesh file in the format [[globalID vtkType n0 n1 n2 n3 n4 n5 n6 n7 n8]. */
268const int SU2_CONN_SKIP = 2; /*!< \brief Offset to skip the globalID and VTK type at the start of the element connectivity list for each CGNS element. */
269
270constexpr passivedouble COLORING_EFF_THRESH = 0.875; /*!< \brief Below this value fallback strategies are used instead. */
271
272/*--- All temperature polynomial fits for the fluid models currently
273 assume a quartic form (5 coefficients). For example,
274 Cp(T) = b0 + b1*T + b2*T^2 + b3*T^3 + b4*T^4. By default, all coeffs
275 are set to zero and will be properly non-dim. in the solver. ---*/
276constexpr int N_POLY_COEFFS = 5; /*!< \brief Number of coefficients in temperature polynomial fits for fluid models. */
277
278/*!
279 * \brief Boolean answers
280 */
281enum ANSWER {
282 NONE = 0,
283 NO = 0, /*!< \brief Boolean definition of no. */
284 YES = 1 /*!< \brief Boolean definition of yes. */
286
287/*!
288 * \brief Average method for marker analyze
289 */
291 AVERAGE_AREA = 1, /*!< \brief Area-weighted average. */
292 AVERAGE_MASSFLUX = 2 /*!< \brief Mass-flux weighted average. */
294static const MapType<std::string, AVERAGE_TYPE> Average_Map = {
295 MakePair("AREA", AVERAGE_AREA)
296 MakePair("MASSFLUX", AVERAGE_MASSFLUX)
297};
298
299/*!
300 * \brief different solver types for the CFD component
301 */
302enum class MAIN_SOLVER {
303 NONE, /*!< \brief Definition of no solver. */
304 EULER, /*!< \brief Definition of the Euler's solver. */
305 NAVIER_STOKES, /*!< \brief Definition of the Navier-Stokes' solver. */
306 RANS, /*!< \brief Definition of the Reynolds-averaged Navier-Stokes' (RANS) solver. */
307 INC_EULER, /*!< \brief Definition of the incompressible Euler's solver. */
308 INC_NAVIER_STOKES, /*!< \brief Definition of the incompressible Navier-Stokes' solver. */
309 INC_RANS, /*!< \brief Definition of the incompressible Reynolds-averaged Navier-Stokes' (RANS) solver. */
310 HEAT_EQUATION, /*!< \brief Definition of the finite volume heat solver. */
311 FEM_ELASTICITY, /*!< \brief Definition of a FEM solver. */
312 ADJ_EULER, /*!< \brief Definition of the continuous adjoint Euler's solver. */
313 ADJ_NAVIER_STOKES, /*!< \brief Definition of the continuous adjoint Navier-Stokes' solver. */
314 ADJ_RANS, /*!< \brief Definition of the continuous adjoint Reynolds-averaged Navier-Stokes' (RANS) solver. */
315 TEMPLATE_SOLVER, /*!< \brief Definition of template solver. */
316 DISC_ADJ_EULER, /*!< \brief Definition of the discrete adjoint Euler solver. */
317 DISC_ADJ_RANS, /*!< \brief Definition of the discrete adjoint Reynolds-averaged Navier-Stokes' (RANS) solver. */
318 DISC_ADJ_NAVIER_STOKES, /*!< \brief Definition of the discrete adjoint Navier-Stokes' solver. */
319 DISC_ADJ_INC_EULER, /*!< \brief Definition of the discrete adjoint incompressible Euler solver. */
320 DISC_ADJ_INC_RANS, /*!< \brief Definition of the discrete adjoint incompressible Reynolds-averaged Navier-Stokes' (RANS) solver. */
321 DISC_ADJ_INC_NAVIER_STOKES, /*!< \brief Definition of the discrete adjoint incompressible Navier-Stokes'. */
322 DISC_ADJ_HEAT, /*!< \brief Definition of the discrete adjoint heat solver. */
323 DISC_ADJ_FEM_EULER, /*!< \brief Definition of the discrete adjoint FEM Euler solver. */
324 DISC_ADJ_FEM_RANS, /*!< \brief Definition of the discrete adjoint FEM Reynolds-averaged Navier-Stokes' (RANS) solver. */
325 DISC_ADJ_FEM_NS, /*!< \brief Definition of the discrete adjoint FEM Navier-Stokes' solver. */
326 DISC_ADJ_FEM, /*!< \brief Definition of the discrete adjoint FEM solver. */
327 FEM_EULER, /*!< \brief Definition of the finite element Euler's solver. */
328 FEM_NAVIER_STOKES, /*!< \brief Definition of the finite element Navier-Stokes' solver. */
329 FEM_RANS, /*!< \brief Definition of the finite element Reynolds-averaged Navier-Stokes' (RANS) solver. */
330 FEM_LES, /*!< \brief Definition of the finite element Large Eddy Simulation Navier-Stokes' (LES) solver. */
332 POISSON_EQUATION, /*!< \brief Definition of the Poisson equation solver. */
333 NEMO_EULER, /*!< \brief Definition of the NEMO Euler solver. */
334 NEMO_NAVIER_STOKES, /*!< \brief Definition of the NEMO NS solver. */
335};
336static const MapType<std::string, MAIN_SOLVER> Solver_Map = {
339 MakePair("NAVIER_STOKES", MAIN_SOLVER::NAVIER_STOKES)
341 MakePair("INC_EULER", MAIN_SOLVER::INC_EULER)
342 MakePair("INC_NAVIER_STOKES", MAIN_SOLVER::INC_NAVIER_STOKES)
344 MakePair("FEM_EULER", MAIN_SOLVER::FEM_EULER)
345 MakePair("FEM_NAVIER_STOKES", MAIN_SOLVER::FEM_NAVIER_STOKES)
349 MakePair("NEMO_NAVIER_STOKES",MAIN_SOLVER::NEMO_NAVIER_STOKES)
350 MakePair("HEAT_EQUATION", MAIN_SOLVER::HEAT_EQUATION)
352 MakePair("TEMPLATE_SOLVER", MAIN_SOLVER::TEMPLATE_SOLVER)
353 MakePair("MULTIPHYSICS", MAIN_SOLVER::MULTIPHYSICS)
354};
355
356/*!
357 * \brief Different solver types for multizone problems
358 */
359enum class ENUM_MULTIZONE {
360 MZ_BLOCK_GAUSS_SEIDEL, /*!< \brief Definition of a Block-Gauss-Seidel multizone solver. */
361 MZ_BLOCK_JACOBI, /*!< \brief Definition of a Block-Jacobi solver. */
362};
363static const MapType<std::string, ENUM_MULTIZONE> Multizone_Map = {
366};
367
368/*!
369 * \brief Material geometric conditions
370 */
372 SMALL, /*!< \brief Definition of linear elastic material. */
373 LARGE, /*!< \brief Definition of Neo-Hookean material. */
374};
375static const MapType<std::string, STRUCT_DEFORMATION> Struct_Map = {
376 MakePair("SMALL_DEFORMATIONS", STRUCT_DEFORMATION::SMALL)
377 MakePair("LARGE_DEFORMATIONS", STRUCT_DEFORMATION::LARGE)
378};
379
380/*!
381 * \brief Material model
382 */
383enum class STRUCT_MODEL {
384 LINEAR_ELASTIC, /*!< \brief Definition of linear elastic material. */
385 NEO_HOOKEAN, /*!< \brief Definition of Neo-Hookean material. */
386 KNOWLES, /*!< \brief Definition of Knowles stored-energy potential */
387 IDEAL_DE, /*!< \brief Definition of ideal Dielectric Elastomer */
388};
389static const MapType<std::string, STRUCT_MODEL> Material_Map = {
390 MakePair("LINEAR_ELASTIC", STRUCT_MODEL::LINEAR_ELASTIC)
391 MakePair("NEO_HOOKEAN", STRUCT_MODEL::NEO_HOOKEAN)
394};
395
396/*!
397 * \brief Material compressibility
398 */
399enum class STRUCT_COMPRESS {
400 COMPRESSIBLE, /*!< \brief Definition of compressible material. */
401 NEARLY_INCOMP, /*!< \brief Definition of nearly incompressible material. */
402};
403static const MapType<std::string, STRUCT_COMPRESS> MatComp_Map = {
405 MakePair("NEARLY_INCOMPRESSIBLE", STRUCT_COMPRESS::NEARLY_INCOMP)
406};
407
408/*!
409 * \brief Type of incompressible solver
410 */
411enum class INCOMP_SYSTEM {
412 DENSITY_BASED, /*!< \brief Density-based. */
413 PRESSURE_BASED, /*!< \brief Pressure-based. */
414};
415static const MapType<std::string, INCOMP_SYSTEM> Incomp_Map = {
416 MakePair("DENSITY_BASED", INCOMP_SYSTEM::DENSITY_BASED)
417 MakePair("PRESSURE_BASED", INCOMP_SYSTEM::PRESSURE_BASED)
418};
419
420/*!
421 * \brief Type of iteration
422 */
423enum class PBITER {
424 SIMPLE, /*!< \brief SIMPLE algorithm. */
425 SIMPLEC, /*!< \brief SIMPLEC algorithm. */
426};
427
428static const MapType<std::string, PBITER> PBIter_Map = {
429 MakePair("SIMPLE", PBITER::SIMPLE)
430 MakePair("SIMPLEC", PBITER::SIMPLEC)
431};
432
433/*!
434 * \brief Types of interpolators
435 */
437 NEAREST_NEIGHBOR, /*!< \brief Nearest Neigbhor interpolation */
438 ISOPARAMETRIC, /*!< \brief Isoparametric interpolation, use CONSERVATIVE_INTERPOLATION=YES for conservative interpolation (S.A. Brown 1997).*/
439 WEIGHTED_AVERAGE, /*!< \brief Sliding Mesh Approach E. Rinaldi 2015 */
440 RADIAL_BASIS_FUNCTION, /*!< \brief Radial basis function interpolation. */
441};
442static const MapType<std::string, INTERFACE_INTERPOLATOR> Interpolator_Map = {
447};
448
449/*!
450 * \brief Types of radial basis functions
451 */
452enum class RADIAL_BASIS {
453 WENDLAND_C2, /*!< \brief Wendland C2 radial basis function. */
454 INV_MULTI_QUADRIC, /*!< \brief Inversed multi quartic biharmonic spline. */
455 GAUSSIAN, /*!< \brief Gaussian basis function. */
456 THIN_PLATE_SPLINE, /*!< \brief Thin plate spline. */
457 MULTI_QUADRIC, /*!< \brief Multi quartic biharmonic spline. */
458};
459static const MapType<std::string, RADIAL_BASIS> RadialBasisFunction_Map = {
460 MakePair("WENDLAND_C2", RADIAL_BASIS::WENDLAND_C2)
461 MakePair("INV_MULTI_QUADRIC", RADIAL_BASIS::INV_MULTI_QUADRIC)
463 MakePair("THIN_PLATE_SPLINE", RADIAL_BASIS::THIN_PLATE_SPLINE)
464 MakePair("MULTI_QUADRIC", RADIAL_BASIS::MULTI_QUADRIC)
465};
466
467/*!
468 * \brief type of radial spanwise interpolation function for the inlet face
469 */
471 NONE,
472 LINEAR_1D,
473 AKIMA_1D,
474 CUBIC_1D,
475};
476static const MapType<std::string, INLET_SPANWISE_INTERP> Inlet_SpanwiseInterpolation_Map = {
481};
482
483/*!
484 * \brief type of radial spanwise interpolation data type for the inlet face
485 */
487 VR_VTHETA,
488 ALPHA_PHI,
489};
490static const MapType<std::string, INLET_INTERP_TYPE> Inlet_SpanwiseInterpolationType_Map = {
493};
494
495/*!
496 * \brief types of (coupling) transfers between distinct physical zones
497 */
499 ZONES_ARE_EQUAL = 0, /*!< \brief Zones are equal - no transfer. */
500 NO_COMMON_INTERFACE = 1, /*!< \brief No common interface between the zones (geometrical). */
501 NO_TRANSFER = 2, /*!< \brief Zones may share a boundary, but still no coupling desired. */
502 FLOW_TRACTION = 10, /*!< \brief Flow traction coupling (between fluids and solids). */
503 BOUNDARY_DISPLACEMENTS = 21, /*!< \brief Boundary displacements (between fluids and solids) */
504 SLIDING_INTERFACE = 13, /*!< \brief Sliding interface (between fluids). */
505 CONSERVATIVE_VARIABLES = 14, /*!< \brief General coupling that simply transfers the conservative variables (between same solvers). */
506 MIXING_PLANE = 15, /*!< \brief Mixing plane between fluids. */
507 CONJUGATE_HEAT_FS = 16, /*!< \brief Conjugate heat transfer (between compressible fluids and solids). */
508 CONJUGATE_HEAT_WEAKLY_FS = 17, /*!< \brief Conjugate heat transfer (between incompressible fluids and solids). */
509 CONJUGATE_HEAT_SF = 18, /*!< \brief Conjugate heat transfer (between solids and compressible fluids). */
510 CONJUGATE_HEAT_WEAKLY_SF = 19, /*!< \brief Conjugate heat transfer (between solids and incompressible fluids). */
511 CONJUGATE_HEAT_SS = 20, /*!< \brief Conjugate heat transfer (between two solids). */
512};
513
514/*!
515 * \brief different regime modes
516 */
517enum class ENUM_REGIME {
518 COMPRESSIBLE = 0, /*!< \brief Definition of compressible solver. */
519 INCOMPRESSIBLE = 1, /*!< \brief Definition of incompressible solver. */
520 NO_FLOW = 2
521};
522
523/*!
524 * \brief different non-dimensional modes
525 */
527 DIMENSIONAL = 0, /*!< \brief Dimensional simulation (compressible or incompressible). */
528 FREESTREAM_PRESS_EQ_ONE = 1, /*!< \brief Non-dimensional compressible simulation with freestream pressure equal to 1.0. */
529 FREESTREAM_VEL_EQ_MACH = 2, /*!< \brief Non-dimensional compressible simulation with freestream velocity equal to Mach number. */
530 FREESTREAM_VEL_EQ_ONE = 3, /*!< \brief Non-dimensional compressible simulation with freestream pressure equal to 1.0. */
531 INITIAL_VALUES = 4, /*!< \brief Non-dimensional incompressible simulation based on intial values for external flow. */
532 REFERENCE_VALUES = 5 /*!< \brief Non-dimensional incompressible simulation based on custom reference values. */
534static const MapType<std::string, ENUM_KIND_NONDIM> NonDim_Map = {
535 MakePair("DIMENSIONAL", DIMENSIONAL)
536 MakePair("FREESTREAM_PRESS_EQ_ONE", FREESTREAM_PRESS_EQ_ONE)
537 MakePair("FREESTREAM_VEL_EQ_MACH", FREESTREAM_VEL_EQ_MACH)
538 MakePair("FREESTREAM_VEL_EQ_ONE", FREESTREAM_VEL_EQ_ONE)
539 MakePair("INITIAL_VALUES", INITIAL_VALUES)
540 MakePair("REFERENCE_VALUES", REFERENCE_VALUES)
541};
542
543/*!
544 * \brief different system of measurements
545 */
547 SI = 0, /*!< \brief Definition of compressible solver. */
548 US = 1 /*!< \brief Definition of incompressible solver. */
550static const MapType<std::string, ENUM_MEASUREMENTS> Measurements_Map = {
551 MakePair("SI", SI)
552 MakePair("US", US)
553};
554
555/*!
556 * \brief different types of systems
557 */
559 RUNTIME_FLOW_SYS = 2, /*!< \brief One-physics case, the code is solving the flow equations(Euler and Navier-Stokes). */
560 RUNTIME_TURB_SYS = 3, /*!< \brief One-physics case, the code is solving the turbulence model. */
561 RUNTIME_ADJFLOW_SYS = 6, /*!< \brief One-physics case, the code is solving the adjoint equations is being solved (Euler and Navier-Stokes). */
562 RUNTIME_ADJTURB_SYS = 7, /*!< \brief One-physics case, the code is solving the adjoint turbulence model. */
563 RUNTIME_MULTIGRID_SYS = 14, /*!< \brief Full Approximation Storage Multigrid system of equations. */
564 RUNTIME_FEA_SYS = 20, /*!< \brief One-physics case, the code is solving the FEA equation. */
565 RUNTIME_ADJFEA_SYS = 30, /*!< \brief One-physics case, the code is solving the adjoint FEA equation. */
566 RUNTIME_HEAT_SYS = 21, /*!< \brief One-physics case, the code is solving the heat equation. */
567 RUNTIME_ADJHEAT_SYS = 31, /*!< \brief One-physics case, the code is solving the adjoint heat equation. */
568 RUNTIME_TRANS_SYS = 22, /*!< \brief One-physics case, the code is solving the transition model. */
569 RUNTIME_RADIATION_SYS = 23, /*!< \brief One-physics case, the code is solving the radiation model. */
570 RUNTIME_ADJRAD_SYS = 24, /*!< \brief One-physics case, the code is solving the adjoint radiation model. */
571 RUNTIME_SPECIES_SYS = 25, /*!< \brief One-physics case, the code is solving the species model. */
572 RUNTIME_ADJSPECIES_SYS = 26,/*!< \brief One-physics case, the code is solving the adjoint species model. */
573 RUNTIME_POISSON_SYS = 27, /*!< \brief One-physics case, the code is solving the poisson equation. */
574};
575
576 enum SOLVER_TYPE : const int {
577 FLOW_SOL=0, /*!< \brief Position of the mean flow solution in the solver container array. */
578 ADJFLOW_SOL=1, /*!< \brief Position of the continuous adjoint flow solution in the solver container array. */
579 TURB_SOL=2, /*!< \brief Position of the turbulence model solution in the solver container array. */
580 ADJTURB_SOL=3, /*!< \brief Position of the continuous adjoint turbulence solution in the solver container array. */
581 TRANS_SOL=4, /*!< \brief Position of the transition model solution in the solver container array. */
582 HEAT_SOL=5, /*!< \brief Position of the heat equation in the solution solver array. */
583 ADJHEAT_SOL=6, /*!< \brief Position of the adjoint heat equation in the solution solver array. */
584 RAD_SOL=7, /*!< \brief Position of the radiation equation in the solution solver array. */
585 ADJRAD_SOL=8, /*!< \brief Position of the continuous adjoint turbulence solution in the solver container array. */
586 MESH_SOL=9, /*!< \brief Position of the mesh solver. */
587 ADJMESH_SOL=10, /*!< \brief Position of the adjoint of the mesh solver. */
588 SPECIES_SOL=11, /*!< \brief Position of the species solver. */
589 ADJSPECIES_SOL=12, /*!< \brief Position of the adjoint of the species solver. */
590 FEA_SOL=0, /*!< \brief Position of the Finite Element flow solution in the solver container array. */
591 ADJFEA_SOL=1, /*!< \brief Position of the continuous adjoint Finite Element flow solution in the solver container array. */
592 POISSON_SOL=13, /*!< \brief Position of the poisson solution in the solver container array */
593 TEMPLATE_SOL=0, /*!< \brief Position of the template solution. */
594 };
595
596const int CONV_TERM = 0; /*!< \brief Position of the convective terms in the numerics container array. */
597const int VISC_TERM = 1; /*!< \brief Position of the viscous terms in the numerics container array. */
598const int SOURCE_FIRST_TERM = 2; /*!< \brief Position of the first source term in the numerics container array. */
599const int SOURCE_SECOND_TERM = 3; /*!< \brief Position of the second source term in the numerics container array. */
600const int CONV_BOUND_TERM = 4; /*!< \brief Position of the convective boundary terms in the numerics container array. */
601const int VISC_BOUND_TERM = 5; /*!< \brief Position of the viscous boundary terms in the numerics container array. */
602const int GRAD_TERM = 6; /*!< \brief Position of the gradient smoothing terms in the numerics container array. */
603
604const int FEA_TERM = 0; /*!< \brief Position of the finite element analysis terms in the numerics container array. */
605const int DE_TERM = 1; /*!< \brief Position of the dielectric terms in the numerics container array. */
606
607const int MAT_NHCOMP = 2; /*!< \brief Position of the Neo-Hookean compressible material model. */
608const int MAT_IDEALDE = 3; /*!< \brief Position of the Ideal-DE material model. */
609const int MAT_KNOWLES = 4; /*!< \brief Position of the Knowles material model. */
610
611/*!
612 * \brief Types of finite elements (in 1D or 2D or 3D)
613 */
614const int EL_LINE = 6; /*!< \brief Elements of two nodes, with second order gauss quadrature (1D). */
615
616const int EL_TRIA = 0; /*!< \brief Elements of three nodes (2D). */
617const int EL_QUAD = 1; /*!< \brief Elements of four nodes (2D). */
618const int EL_TRIA2 = 2; /*!< \brief Elements of three nodes (2D), with second order gauss quadrature. */
619
620const int EL_TETRA = 0; /*!< \brief Elements of four nodes (3D). */
621const int EL_HEXA = 1; /*!< \brief Elements of eight nodes (3D). */
622const int EL_PYRAM = 2; /*!< \brief Elements of five nodes (3D). */
623const int EL_PRISM = 3; /*!< \brief Elements of six nodes (3D). */
624const int EL_TETRA2 = 4; /*!< \brief Elements of four nodes, with second order gauss quadrature (3D). */
625const int EL_PYRAM2 = 5; /*!< \brief Elements of five nodes, with third order gauss quadrature (3D). */
626
627/*!
628 * \brief Types of spatial discretizations
629 */
631 NO_CONVECTIVE = 0, /*!< \brief No convective scheme is used. */
632 SPACE_CENTERED = 1, /*!< \brief Space centered convective numerical method. */
633 SPACE_UPWIND = 2, /*!< \brief Upwind convective numerical method. */
634 FINITE_ELEMENT = 3 /*!< \brief Finite element convective numerical method. */
636
637/*!
638 * \brief Types of fluid model
639 */
641 STANDARD_AIR = 0, /*!< \brief Standard air gas model. */
642 IDEAL_GAS = 1, /*!< \brief Ideal gas model. */
643 VW_GAS = 2, /*!< \brief Van Der Waals gas model. */
644 PR_GAS = 3, /*!< \brief Perfect Real gas model. */
645 CONSTANT_DENSITY = 4, /*!< \brief Constant density gas model. */
646 INC_IDEAL_GAS = 5, /*!< \brief Incompressible ideal gas model. */
647 INC_IDEAL_GAS_POLY = 6, /*!< \brief Inc. ideal gas, polynomial gas model. */
648 MUTATIONPP = 7, /*!< \brief Mutation++ gas model for nonequilibrium flow. */
649 SU2_NONEQ = 8, /*!< \brief User defined gas model for nonequilibrium flow. */
650 FLUID_MIXTURE = 9, /*!< \brief Species mixture model. */
651 COOLPROP = 10, /*!< \brief Thermodynamics library. */
652 FLUID_FLAMELET = 11, /*!< \brief lookup table (LUT) method for premixed flamelets. */
653 DATADRIVEN_FLUID = 12, /*!< \brief multi-layer perceptron driven fluid model. */
654};
655static const MapType<std::string, ENUM_FLUIDMODEL> FluidModel_Map = {
656 MakePair("STANDARD_AIR", STANDARD_AIR)
657 MakePair("IDEAL_GAS", IDEAL_GAS)
658 MakePair("VW_GAS", VW_GAS)
659 MakePair("PR_GAS", PR_GAS)
660 MakePair("CONSTANT_DENSITY", CONSTANT_DENSITY)
661 MakePair("INC_IDEAL_GAS", INC_IDEAL_GAS)
662 MakePair("INC_IDEAL_GAS_POLY", INC_IDEAL_GAS_POLY)
663 MakePair("MUTATIONPP", MUTATIONPP)
664 MakePair("SU2_NONEQ", SU2_NONEQ)
665 MakePair("FLUID_MIXTURE", FLUID_MIXTURE)
666 MakePair("COOLPROP", COOLPROP)
667 MakePair("DATADRIVEN_FLUID", DATADRIVEN_FLUID)
668 MakePair("FLUID_FLAMELET", FLUID_FLAMELET)
669};
670
671/*!
672 * \brief types of gas models
673 */
685static const MapType<std::string, ENUM_GASMODEL> GasModel_Map = {
686MakePair("NONE", NO_MODEL)
687MakePair("ARGON", ARGON)
688MakePair("AIR-7", AIR7)
689MakePair("AIR-21", AIR21)
690MakePair("O2", O2)
691MakePair("N2", N2)
692MakePair("AIR-5", AIR5)
693MakePair("ARGON-SID",ARGON_SID)
694MakePair("ONESPECIES", ONESPECIES)
695};
696
697/*!
698* \brief Types of interpolation methods for data-driven fluid models.
699*/
701 LUT = 0,
702 MLP = 1
703};
704
705static const MapType<std::string, ENUM_DATADRIVEN_METHOD> DataDrivenMethod_Map = {
708};
709
710/*!
711 * \brief types of coefficient transport model
712 */
713enum class TRANSCOEFFMODEL {
715 WILKE,
716 GUPTAYOS,
718};
719static const MapType<std::string, TRANSCOEFFMODEL> TransCoeffModel_Map = {
724};
725
726/*!
727 * \brief Types of density models
728 */
730 CONSTANT, /*!< \brief Constant density. */
731 BOUSSINESQ, /*!< \brief Boussinesq density model. */
732 VARIABLE, /*!< \brief Variable density model. */
733 FLAMELET, /*!< \brief Density according to flamelet manifold. */
734};
735static const MapType<std::string, INC_DENSITYMODEL> DensityModel_Map = {
740};
741
742/*!
743 * \brief Types of initialization option
744 */
746 REYNOLDS = 0, /*!< \brief Reynold's number initalization. */
747 TD_CONDITIONS = 1 /*!< \brief Total conditions initalization. */
749static const MapType<std::string, ENUM_INIT_OPTION> InitOption_Map = {
750 MakePair("REYNOLDS", REYNOLDS)
751 MakePair("TD_CONDITIONS", TD_CONDITIONS)
752};
753
754/*!
755 * \brief Types of initialization of the incompressible solver.
756 */
757enum class INIT_OPTION_INC {
758 DENSITY_INIT, /*!< \brief Initialization with the initial density. */
759 OPERATING_PRESSURE, /*!< \brief Initialization with the operating (thermodynamic) pressure. */
760};
761static const MapType<std::string, INIT_OPTION_INC> InitOptionInc_Map = {
763 MakePair("OPERATING_PRESSURE", INIT_OPTION_INC::OPERATING_PRESSURE)
764};
765
766/*!
767 * \brief Types of freestream specification
768 */
770 TEMPERATURE_FS, /*!< \brief Temperature initialization. */
771 DENSITY_FS, /*!< \brief Density initalization. */
772};
773static const MapType<std::string, FREESTREAM_OPTION> FreeStreamOption_Map = {
776};
777
778/*!
779 * \brief Types of viscosity model
780 */
781enum class VISCOSITYMODEL {
782 CONSTANT, /*!< \brief Constant viscosity. */
783 SUTHERLAND, /*!< \brief Sutherlands Law viscosity. */
784 POLYNOMIAL, /*!< \brief Polynomial viscosity. */
785 FLAMELET, /*!< \brief LUT method for flamelets */
786 COOLPROP, /*!< \brief CoolProp viscosity. */
787};
788static const MapType<std::string, VISCOSITYMODEL> ViscosityModel_Map = {
789 MakePair("CONSTANT_VISCOSITY", VISCOSITYMODEL::CONSTANT)
791 MakePair("POLYNOMIAL_VISCOSITY", VISCOSITYMODEL::POLYNOMIAL)
794};
795
796/*!
797 * \brief Types of Mixing viscosity model
798 */
800 WILKE, /*!< \brief Wilke mixing viscosity model. */
801 DAVIDSON, /*!< \brief Davidson mixing viscosity model. */
802};
803static const MapType<std::string, MIXINGVISCOSITYMODEL> MixingViscosityModel_Map = {
806};
807
808/*!
809 * \brief Types of thermal conductivity model
810 */
812 CONSTANT, /*!< \brief Constant thermal conductivity. */
813 CONSTANT_PRANDTL, /*!< \brief Constant Prandtl number. */
814 POLYNOMIAL, /*!< \brief Polynomial thermal conductivity. */
815 FLAMELET, /*!< \brief LUT method for flamelets */
816 COOLPROP, /*!< \brief COOLPROP thermal conductivity. */
817};
818static const MapType<std::string, CONDUCTIVITYMODEL> ConductivityModel_Map = {
819 MakePair("CONSTANT_CONDUCTIVITY", CONDUCTIVITYMODEL::CONSTANT)
821 MakePair("POLYNOMIAL_CONDUCTIVITY", CONDUCTIVITYMODEL::POLYNOMIAL)
824};
825
826/*!
827 * \brief Types of turbulent thermal conductivity model
828 */
830 NONE, /*!< \brief No turbulent contribution to the effective thermal conductivity for RANS. */
831 CONSTANT_PRANDTL, /*!< \brief Include contribution to effective conductivity using constant turbulent Prandtl number for RANS. */
832};
833static const MapType<std::string, CONDUCTIVITYMODEL_TURB> TurbConductivityModel_Map = {
835 MakePair("CONSTANT_PRANDTL_TURB", CONDUCTIVITYMODEL_TURB::CONSTANT_PRANDTL)
836};
837
838/*!
839 * \brief types of mass diffusivity models
840 */
842 CONSTANT_DIFFUSIVITY, /*!< \brief Constant mass diffusivity for scalar transport. */
843 CONSTANT_SCHMIDT, /*!< \brief Constant Schmidt number for mass diffusion in scalar transport. */
844 UNITY_LEWIS, /*!< \brief Unity Lewis model for mass diffusion in scalar transport. */
845 CONSTANT_LEWIS, /*!< \brief Different Lewis number model for mass diffusion in scalar transport. */
846 FLAMELET, /*!< \brief flamelet model for tabulated chemistry, diffusivity from lookup table */
847};
848
849static const MapType<std::string, DIFFUSIVITYMODEL> Diffusivity_Model_Map = {
850 MakePair("CONSTANT_DIFFUSIVITY", DIFFUSIVITYMODEL::CONSTANT_DIFFUSIVITY)
855};
856
857/*!
858 * \brief Types of unsteady mesh motion
859 */
861 NO_MOVEMENT = 0, /*!< \brief Simulation on a static mesh. */
862 RIGID_MOTION = 2, /*!< \brief Simulation with rigid mesh motion (plunging/pitching/rotation). */
863 ROTATING_FRAME = 8, /*!< \brief Simulation in a rotating frame. */
864 STEADY_TRANSLATION = 11, /*!< \brief Simulation in a steadily translating frame. */
865 GUST = 12, /*!< \brief Simulation on a static mesh with a gust. */
866};
867static const MapType<std::string, ENUM_GRIDMOVEMENT> GridMovement_Map = {
868 MakePair("NONE", NO_MOVEMENT)
869 MakePair("RIGID_MOTION", RIGID_MOTION)
870 MakePair("ROTATING_FRAME", ROTATING_FRAME)
871 MakePair("STEADY_TRANSLATION", STEADY_TRANSLATION)
872 MakePair("GUST", GUST)
873};
874
876 DEFORMING = 1, /*!< \brief Simulation with deformation. */
877 MOVING_WALL = 2, /*!< \brief Simulation with moving wall. */
878 AEROELASTIC = 3, /*!< \brief Simulation with aeroelastic motion. */
879 AEROELASTIC_RIGID_MOTION = 4, /*!< \brief Simulation with rotation and aeroelastic motion. */
880 EXTERNAL = 6, /*!< \brief Simulation with external motion. */
881 EXTERNAL_ROTATION = 7, /*!< \brief Simulation with external rotation motion. */
882};
883static const MapType<std::string, ENUM_SURFACEMOVEMENT> SurfaceMovement_Map = {
884 MakePair("DEFORMING", DEFORMING)
885 MakePair("MOVING_WALL", MOVING_WALL)
886 MakePair("AEROELASTIC_RIGID_MOTION", AEROELASTIC_RIGID_MOTION)
887 MakePair("AEROELASTIC", AEROELASTIC)
888 MakePair("EXTERNAL", EXTERNAL)
889 MakePair("EXTERNAL_ROTATION", EXTERNAL_ROTATION)
890};
891
892/*!
893 * \brief Type of wind gusts
894 */
896 NO_GUST = 0, /*!< \brief No gust. */
897 TOP_HAT = 1, /*!< \brief Top-hat function shaped gust */
898 SINE = 2, /*!< \brief Sine shaped gust */
899 ONE_M_COSINE = 3, /*!< \brief 1-cosine shaped gust */
900 VORTEX = 4, /*!< \brief A gust made from vortices */
901 EOG = 5 /*!< \brief An extreme operating gust */
903static const MapType<std::string, ENUM_GUST_TYPE> Gust_Type_Map = {
904 MakePair("NONE", NO_GUST)
905 MakePair("TOP_HAT", TOP_HAT)
906 MakePair("SINE", SINE)
907 MakePair("ONE_M_COSINE", ONE_M_COSINE)
908 MakePair("VORTEX", VORTEX)
909 MakePair("EOG", EOG)
910};
911
912/*!
913 * \brief Type of wind direction
914 */
916 X_DIR = 0, /*!< \brief Gust direction-X. */
917 Y_DIR = 1, /*!< \brief Gust direction-Y. */
918 Z_DIR = 2 /*!< \brief Gust direction-Z. */
920static const MapType<std::string, ENUM_GUST_DIR> Gust_Dir_Map = {
921 MakePair("X_DIR", X_DIR)
922 MakePair("Y_DIR", Y_DIR)
923 MakePair("Z_DIR", Z_DIR)
924};
925
926// If you add to ENUM_CENTERED, you must also add the option to ENUM_CONVECTIVE
927/*!
928 * \brief Types of centered spatial discretizations
929 */
930enum class CENTERED {
931 NONE, /*!< \brief No centered scheme is used. */
932 JST, /*!< \brief Jameson-Smith-Turkel centered numerical method. */
933 LAX, /*!< \brief Lax-Friedrich centered numerical method. */
934 JST_MAT, /*!< \brief JST with matrix dissipation. */
935 JST_KE, /*!< \brief Kinetic Energy preserving Jameson-Smith-Turkel centered numerical method. */
936 LD2, /*!< \brief Low-Dissipation Low-Dispersion (LD2) centered scheme. */
937 CDS /*!< \brief Central Difference Scheme used for pressure based solver. */
938};
939static const MapType<std::string, CENTERED> Centered_Map = {
940 MakePair("NONE", CENTERED::NONE)
941 MakePair("JST", CENTERED::JST)
942 MakePair("JST_KE", CENTERED::JST_KE)
943 MakePair("JST_MAT", CENTERED::JST_MAT)
944 MakePair("LAX-FRIEDRICH", CENTERED::LAX)
945 MakePair("LD2", CENTERED::LD2)
946 MakePair("CDS", CENTERED::CDS)
947};
948
949
950// If you add to UPWIND, you must also add the option to ENUM_CONVECTIVE
951/*!
952 * \brief Types of upwind spatial discretizations
953 */
954enum class UPWIND {
955 NONE, /*!< \brief No upwind scheme is used. */
956 ROE, /*!< \brief Roe's upwind numerical method. */
957 SCALAR_UPWIND, /*!< \brief Scalar upwind numerical method. */
958 AUSM, /*!< \brief AUSM numerical method. */
959 HLLC, /*!< \brief HLLC numerical method. */
960 SW, /*!< \brief Steger-Warming method. */
961 MSW, /*!< \brief Modified Steger-Warming method. */
962 TURKEL, /*!< \brief Roe-Turkel's upwind numerical method. */
963 SLAU, /*!< \brief Simple Low-Dissipation AUSM numerical method. */
964 CONVECTIVE_TEMPLATE, /*!< \brief Template for new numerical method . */
965 L2ROE, /*!< \brief L2ROE numerical method . */
966 LMROE, /*!< \brief Rieper's Low Mach ROE numerical method . */
967 SLAU2, /*!< \brief Simple Low-Dissipation AUSM 2 numerical method. */
968 FDS, /*!< \brief Flux difference splitting upwind method (incompressible flows). */
969 LAX_FRIEDRICH, /*!< \brief Lax-Friedrich numerical method. */
970 AUSMPLUSUP, /*!< \brief AUSM+ -up numerical method (All Speed) */
971 AUSMPLUSUP2, /*!< \brief AUSM+ -up2 numerical method (All Speed) */
972 AUSMPLUSM, /*!< \breif AUSM+M numerical method. (NEMO Only)*/
973 BOUNDED_SCALAR, /*!< \brief Scalar advection numerical method. */
974 UDS /*!< \brief Upwind Difference Scheme used for pressure based solver. */
975};
976static const MapType<std::string, UPWIND> Upwind_Map = {
977 MakePair("NONE", UPWIND::NONE)
978 MakePair("ROE", UPWIND::ROE)
979 MakePair("TURKEL_PREC", UPWIND::TURKEL)
980 MakePair("AUSM", UPWIND::AUSM)
981 MakePair("AUSMPLUSUP", UPWIND::AUSMPLUSUP)
982 MakePair("AUSMPLUSUP2", UPWIND::AUSMPLUSUP2)
983 MakePair("AUSMPLUSM", UPWIND::AUSMPLUSM)
984 MakePair("SLAU", UPWIND::SLAU)
985 MakePair("HLLC", UPWIND::HLLC)
986 MakePair("SW", UPWIND::SW)
987 MakePair("MSW", UPWIND::MSW)
988 MakePair("SCALAR_UPWIND", UPWIND::SCALAR_UPWIND)
989 MakePair("BOUNDED_SCALAR", UPWIND::BOUNDED_SCALAR)
990 MakePair("CONVECTIVE_TEMPLATE", UPWIND::CONVECTIVE_TEMPLATE)
991 MakePair("L2ROE", UPWIND::L2ROE)
992 MakePair("LMROE", UPWIND::LMROE)
993 MakePair("SLAU2", UPWIND::SLAU2)
994 MakePair("FDS", UPWIND::FDS)
995 MakePair("LAX-FRIEDRICH", UPWIND::LAX_FRIEDRICH)
996 MakePair("UDS", UPWIND::UDS)
997};
998
999/*!
1000 * \brief Types of FEM spatial discretizations
1001 */
1003 NO_FEM = 0, /*!< \brief No finite element scheme is used. */
1004 DG = 1 /*!< \brief Discontinuous Galerkin numerical method. */
1006static const MapType<std::string, ENUM_FEM> FEM_Map = {
1007 MakePair("NONE", NO_FEM)
1008 MakePair("DG", DG)
1009};
1010
1011/*!
1012 * \brief Types of shock capturing method in Discontinuous Galerkin numerical method.
1013 */
1015 NONE, /*!< \brief Shock capturing is not used. */
1016 PERSSON /*!< \brief Per-Olof Persson's sub-cell shock capturing method. */
1017};
1018static const MapType<std::string, FEM_SHOCK_CAPTURING_DG> ShockCapturingDG_Map = {
1021};
1022
1023/*!
1024 * \brief Types of matrix coloring to compute a sparse Jacobian matrix.
1025 */
1027 GREEDY_COLORING = 0, /*!< \brief Greedy type of algorithm for the coloring. */
1028 NATURAL_COLORING = 1 /*!< \brief One color for every DOF, very slow. Only to be used for debugging. */
1030static const MapType<std::string, ENUM_MATRIX_COLORING> MatrixColoring_Map = {
1031 MakePair("GREEDY_COLORING", GREEDY_COLORING)
1032 MakePair("NATURAL_COLORING", NATURAL_COLORING)
1033};
1034
1035/*!
1036 * \brief Types of slope limiters
1037 */
1038enum class LIMITER {
1039 NONE , /*!< \brief No limiter. */
1040 VENKATAKRISHNAN , /*!< \brief Slope limiter using Venkatakrisnan method (stencil formulation). */
1041 NISHIKAWA_R3 , /*!< \brief Slope limiter using Nishikawa's R3 method (stencil formulation). */
1042 NISHIKAWA_R4 , /*!< \brief Slope limiter using Nishikawa's R4 method (stencil formulation). */
1043 NISHIKAWA_R5 , /*!< \brief Slope limiter using Nishikawa's R5 method (stencil formulation). */
1044 VENKATAKRISHNAN_WANG , /*!< \brief Slope limiter using Venkatakrisnan method, eps based on solution (stencil formulation). */
1045 BARTH_JESPERSEN , /*!< \brief Slope limiter using Barth-Jespersen method (stencil formulation). */
1046 VAN_ALBADA_EDGE , /*!< \brief Slope limiter using Van Albada method (edge formulation). */
1047 SHARP_EDGES , /*!< \brief Slope limiter using sharp edges. */
1048 WALL_DISTANCE /*!< \brief Slope limiter using wall distance. */
1049};
1050static const MapType<std::string, LIMITER> Limiter_Map = {
1051 MakePair("NONE", LIMITER::NONE)
1052 MakePair("VENKATAKRISHNAN", LIMITER::VENKATAKRISHNAN)
1053 MakePair("NISHIKAWA_R3", LIMITER::NISHIKAWA_R3)
1054 MakePair("NISHIKAWA_R4", LIMITER::NISHIKAWA_R4)
1055 MakePair("NISHIKAWA_R5", LIMITER::NISHIKAWA_R5)
1056 MakePair("VENKATAKRISHNAN_WANG", LIMITER::VENKATAKRISHNAN_WANG)
1057 MakePair("BARTH_JESPERSEN", LIMITER::BARTH_JESPERSEN)
1058 MakePair("VAN_ALBADA_EDGE", LIMITER::VAN_ALBADA_EDGE)
1059 MakePair("SHARP_EDGES", LIMITER::SHARP_EDGES)
1060 MakePair("WALL_DISTANCE", LIMITER::WALL_DISTANCE)
1061};
1062
1063/*!
1064 * \brief Types of turbulent models
1065 */
1066enum class TURB_MODEL {
1067 NONE, /*!< \brief No turbulence model. */
1068 SA, /*!< \brief Kind of Turbulent model (Spalart-Allmaras). */
1069 SST, /*!< \brief Kind of Turbulence model (Menter SST). */
1070};
1071static const MapType<std::string, TURB_MODEL> Turb_Model_Map = {
1072 MakePair("NONE", TURB_MODEL::NONE)
1075};
1076
1077/*!
1078 * \brief Families of turbulence models
1079 */
1080enum class TURB_FAMILY {
1081 NONE, /*!< \brief No turbulence model. */
1082 SA, /*!< \brief Spalart-Allmaras variants. */
1083 KW, /*!< \brief k-w models. */
1084};
1085/*!
1086 * \brief Associate turb models with their family
1087 */
1089 switch (model) {
1090 case TURB_MODEL::NONE:
1091 return TURB_FAMILY::NONE;
1092 case TURB_MODEL::SA:
1093 return TURB_FAMILY::SA;
1094 case TURB_MODEL::SST:
1095 return TURB_FAMILY::KW;
1096 }
1097 return TURB_FAMILY::NONE;
1098}
1099
1100/*!
1101 * \brief SST Options
1102 */
1103enum class SST_OPTIONS {
1104 NONE, /*!< \brief No SST Turb model. */
1105 V1994, /*!< \brief 1994 Menter k-w SST model. */
1106 V2003, /*!< \brief 2003 Menter k-w SST model. */
1107 V1994m, /*!< \brief 1994m Menter k-w SST model. */
1108 V2003m, /*!< \brief 2003m Menter k-w SST model. */
1109 SUST, /*!< \brief Menter k-w SST model with sustaining terms. */
1110 V, /*!< \brief Menter k-w SST model with vorticity production terms. */
1111 KL, /*!< \brief Menter k-w SST model with Kato-Launder production terms. */
1112 UQ, /*!< \brief Menter k-w SST model with uncertainty quantification modifications. */
1113 COMP_Wilcox, /*!< \brief Menter k-w SST model with Compressibility correction of Wilcox. */
1114 COMP_Sarkar, /*!< \brief Menter k-w SST model with Compressibility correction of Sarkar. */
1115 DLL, /*!< \brief Menter k-w SST model with dimensionless lower limit clipping of turbulence variables. */
1116};
1117static const MapType<std::string, SST_OPTIONS> SST_Options_Map = {
1119 MakePair("V1994m", SST_OPTIONS::V1994m)
1120 MakePair("V2003m", SST_OPTIONS::V2003m)
1121 /// TODO: For now we do not support "unmodified" versions of SST.
1122 //MakePair("V1994", SST_OPTIONS::V1994)
1123 //MakePair("V2003", SST_OPTIONS::V2003)
1124 MakePair("SUSTAINING", SST_OPTIONS::SUST)
1125 MakePair("VORTICITY", SST_OPTIONS::V)
1126 MakePair("KATO-LAUNDER", SST_OPTIONS::KL)
1128 MakePair("COMPRESSIBILITY-WILCOX", SST_OPTIONS::COMP_Wilcox)
1129 MakePair("COMPRESSIBILITY-SARKAR", SST_OPTIONS::COMP_Sarkar)
1130 MakePair("DIMENSIONLESS_LIMIT", SST_OPTIONS::DLL)
1131};
1132
1133/*!
1134 * \brief Structure containing parsed SST options.
1135 */
1137 SST_OPTIONS version = SST_OPTIONS::V1994; /*!< \brief Enum SST base model. */
1138 SST_OPTIONS production = SST_OPTIONS::NONE; /*!< \brief Enum for production corrections/modifiers for SST model. */
1139 bool sust = false; /*!< \brief Bool for SST model with sustaining terms. */
1140 bool uq = false; /*!< \brief Bool for using uncertainty quantification. */
1141 bool modified = false; /*!< \brief Bool for modified (m) SST model. */
1142 bool compWilcox = false; /*!< \brief Bool for compressibility correction of Wilcox. */
1143 bool compSarkar = false; /*!< \brief Bool for compressibility correction of Sarkar. */
1144 bool dll = false; /*!< \brief Bool dimensionless lower limit. */
1145};
1146
1147/*!
1148 * \brief Function to parse SST options.
1149 * \param[in] SST_Options - Selected SST option from config.
1150 * \param[in] nSST_Options - Number of options selected.
1151 * \param[in] rank - MPI rank.
1152 * \return Struct with SST options.
1153 */
1154inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigned short nSST_Options, int rank) {
1155 SST_ParsedOptions SSTParsedOptions;
1156
1157 auto IsPresent = [&](SST_OPTIONS option) {
1158 const auto sst_options_end = SST_Options + nSST_Options;
1159 return std::find(SST_Options, sst_options_end, option) != sst_options_end;
1160 };
1161
1162 const bool found_1994 = IsPresent(SST_OPTIONS::V1994);
1163 const bool found_2003 = IsPresent(SST_OPTIONS::V2003);
1164 const bool found_1994m = IsPresent(SST_OPTIONS::V1994m);
1165 const bool found_2003m = IsPresent(SST_OPTIONS::V2003m);
1166
1167 const bool default_version = !found_1994 && !found_1994m && !found_2003 && !found_2003m;
1168
1169 const bool sst_1994 = found_1994 || found_1994m;
1170 /*--- Default version since v8. ---*/
1171 const bool sst_2003 = found_2003 || found_2003m || default_version;
1172
1173 /*--- When V2003m or V1994m is selected, we automatically select sst_m. ---*/
1174 const bool sst_m = found_1994m || found_2003m || default_version;
1175
1176 const bool sst_sust = IsPresent(SST_OPTIONS::SUST);
1177 const bool sst_v = IsPresent(SST_OPTIONS::V);
1178 const bool sst_kl = IsPresent(SST_OPTIONS::KL);
1179 const bool sst_uq = IsPresent(SST_OPTIONS::UQ);
1180 const bool sst_compWilcox = IsPresent(SST_OPTIONS::COMP_Wilcox);
1181 const bool sst_compSarkar = IsPresent(SST_OPTIONS::COMP_Sarkar);
1182 const bool sst_dll = IsPresent(SST_OPTIONS::DLL);
1183
1184 if (sst_1994 && sst_2003) {
1185 SU2_MPI::Error("Two versions (1994 and 2003) selected for SST_OPTIONS. Please choose only one.", CURRENT_FUNCTION);
1186 } else if (sst_2003) {
1187 SSTParsedOptions.version = SST_OPTIONS::V2003;
1188 } else {
1189 SSTParsedOptions.version = SST_OPTIONS::V1994;
1190 }
1191
1192 // Parse production modifications
1193 if ((int(sst_v) + int(sst_kl) + int(sst_uq)) > 1) {
1194 SU2_MPI::Error("Please select only one SST production term modifier (VORTICITY, KATO-LAUNDER, or UQ).", CURRENT_FUNCTION);
1195 } else if (sst_v) {
1196 SSTParsedOptions.production = SST_OPTIONS::V;
1197 } else if (sst_kl) {
1198 SSTParsedOptions.production = SST_OPTIONS::KL;
1199 } else if (sst_uq) {
1200 SSTParsedOptions.production = SST_OPTIONS::UQ;
1201 }
1202
1203 // Parse compressibility options
1204 if (sst_compWilcox && sst_compSarkar) {
1205 SU2_MPI::Error("Please select only one compressibility correction (COMPRESSIBILITY-WILCOX or COMPRESSIBILITY-SARKAR).", CURRENT_FUNCTION);
1206 } else if (sst_compWilcox) {
1207 SSTParsedOptions.production = SST_OPTIONS::COMP_Wilcox;
1208 } else if (sst_compSarkar) {
1209 SSTParsedOptions.production = SST_OPTIONS::COMP_Sarkar;
1210 }
1211
1212 SSTParsedOptions.sust = sst_sust;
1213 SSTParsedOptions.modified = sst_m;
1214 SSTParsedOptions.uq = sst_uq;
1215 SSTParsedOptions.compWilcox = sst_compWilcox;
1216 SSTParsedOptions.compSarkar = sst_compSarkar;
1217 SSTParsedOptions.dll = sst_dll;
1218
1219 return SSTParsedOptions;
1220}
1221
1222/*!
1223 * \brief Structure containing multigrid options.
1224 */
1226 su2double MG_Smooth_Res_Threshold{0.0}; /*!< \brief RMS reduction threshold for MG smoothing early exit. */
1227 su2double MG_Smooth_Coeff{0.0}; /*!< \brief Jacobi smoother coefficient for coarse-grid correction. */
1228 unsigned long MG_Min_MeshSize{0}; /*!< \brief Minimum CVs on coarsest MG level, over all ranks. */
1229 std::vector<unsigned short> MG_PreSmooth; /*!< \brief Multigrid pre-smoothing iterations per level. */
1230 std::vector<unsigned short> MG_PostSmooth; /*!< \brief Multigrid post-smoothing iterations per level. */
1231 std::vector<unsigned short> MG_CorrecSmooth; /*!< \brief Multigrid Jacobi correction-smoothing per level. */
1232 std::vector<su2double> MG_CflScaling; /*!< \brief Per-level CFL scaling factors relative to the previous (finer) level. Entry [i] scales level i+1 from level i. Size = nMGLevels. */
1233 bool MG_Smooth_EarlyExit{false}; /*!< \brief Enable early exit for MG smoothing iterations. */
1234 bool MG_Smooth_Output{false}; /*!< \brief Output compact per-cycle smoothing summary. */
1235 su2double MG_Smooth_StagnationTol{0.0}; /*!< \brief Stagnation early exit: stop if current_rms >= prev_rms * tol. 0 = disabled. */
1236 bool MG_Implicit_Lines{false}; /*!< \brief Enable implicit-lines agglomeration from walls. */
1237 unsigned long MG_Startup_Iter{100}; /*!< \brief Iterations per mesh during FMG startup, and the length of each level's CFL ramp. 0 = no iteration budget. */
1238 su2double MG_Startup_Convergence{-2.0}; /*!< \brief FMG: orders of magnitude (log10) that CONV_FIELD must drop on the
1239 active level before promoting to the next finer one. Negative is a
1240 drop, as for CONV_RESIDUAL_MINVAL. */
1241 su2double MG_Startup_Stagnation{0.99}; /*!< \brief FMG: promote when the residual ratio between successive iterations exceeds this. 0 = disabled. */
1242 unsigned long MG_Startup_Stagnation_Iter{5}; /*!< \brief FMG: consecutive stalled iterations required before promoting. 0 = disabled. */
1243};
1244
1245/*!
1246 * \brief SST rough-wall boundary conditions Options
1247 */
1248enum class ROUGHSST_MODEL {
1249 WILCOX1998, /*!< \brief Wilcox 1998 boundary conditions for rough walls. */
1250 WILCOX2006, /*!< \brief Wilcox 2006 boundary conditions for rough walls / default version if roughness is applied. */
1251 LIMITER_KNOPP, /*!< \brief Knopp eddy viscosity limiter. */
1252 LIMITER_AUPOIX, /*!< \brief Aupoix eddy viscosity limiter. */
1253};
1254static const MapType<std::string, ROUGHSST_MODEL> RoughSST_Model_Map = {
1257 MakePair("LIMITER_KNOPP", ROUGHSST_MODEL::LIMITER_KNOPP)
1258 MakePair("LIMITER_AUPOIX", ROUGHSST_MODEL::LIMITER_AUPOIX)
1259};
1260
1261/*!
1262 * \brief SA Options
1263 */
1264enum class SA_OPTIONS {
1265 NONE, /*!< \brief No option / default. */
1266 NEG, /*!< \brief Negative SA. */
1267 EDW, /*!< \brief Edwards version. */
1268 FT2, /*!< \brief Use FT2 term. */
1269 QCR2000, /*!< \brief Quadratic constitutive relation. */
1270 COMP, /*!< \brief Compressibility correction. */
1271 ROT, /*!< \brief Rotation correction. */
1272 BC, /*!< \brief Bas-Cakmakcioclu transition. */
1273 EXP, /*!< \brief Allow experimental combinations of options (according to TMR). */
1274};
1275static const MapType<std::string, SA_OPTIONS> SA_Options_Map = {
1276 MakePair("NONE", SA_OPTIONS::NONE)
1277 MakePair("NEGATIVE", SA_OPTIONS::NEG)
1278 MakePair("EDWARDS", SA_OPTIONS::EDW)
1279 MakePair("WITHFT2", SA_OPTIONS::FT2)
1280 MakePair("QCR2000", SA_OPTIONS::QCR2000)
1281 MakePair("COMPRESSIBILITY", SA_OPTIONS::COMP)
1282 MakePair("ROTATION", SA_OPTIONS::ROT)
1283 MakePair("BCM", SA_OPTIONS::BC)
1284 MakePair("EXPERIMENTAL", SA_OPTIONS::EXP)
1285};
1286
1287/*!
1288 * \brief Structure containing parsed SA options.
1289 */
1291 SA_OPTIONS version = SA_OPTIONS::NONE; /*!< \brief SA base model. */
1292 bool ft2 = false; /*!< \brief Use ft2 term. */
1293 bool qcr2000 = false; /*!< \brief Use QCR-2000. */
1294 bool comp = false; /*!< \brief Use compressibility correction. */
1295 bool rot = false; /*!< \brief Use rotation correction. */
1296 bool bc = false; /*!< \brief BC transition. */
1297};
1298
1299/*!
1300 * \brief Function to parse SA options.
1301 * \param[in] SA_Options - Selected SA option from config.
1302 * \param[in] nSA_Options - Number of options selected.
1303 * \param[in] rank - MPI rank.
1304 * \return Struct with SA options.
1305 */
1306inline SA_ParsedOptions ParseSAOptions(const SA_OPTIONS *SA_Options, unsigned short nSA_Options, int rank) {
1307 SA_ParsedOptions SAParsedOptions;
1308
1309 auto IsPresent = [&](SA_OPTIONS option) {
1310 const auto sa_options_end = SA_Options + nSA_Options;
1311 return std::find(SA_Options, sa_options_end, option) != sa_options_end;
1312 };
1313
1314 const bool found_neg = IsPresent(SA_OPTIONS::NEG);
1315 const bool found_edw = IsPresent(SA_OPTIONS::EDW);
1316 const bool found_bsl = !found_neg && !found_edw;
1317
1318 if (found_neg && found_edw) {
1319 SU2_MPI::Error("Two versions (Negative and Edwards) selected for SA_OPTIONS. Please choose only one.", CURRENT_FUNCTION);
1320 }
1321
1322 if (found_bsl) {
1323 SAParsedOptions.version = SA_OPTIONS::NONE;
1324 } else if (found_neg) {
1325 SAParsedOptions.version = SA_OPTIONS::NEG;
1326 } else {
1327 SAParsedOptions.version = SA_OPTIONS::EDW;
1328 }
1329 SAParsedOptions.ft2 = IsPresent(SA_OPTIONS::FT2);
1330 SAParsedOptions.qcr2000 = IsPresent(SA_OPTIONS::QCR2000);
1331 SAParsedOptions.comp = IsPresent(SA_OPTIONS::COMP);
1332 SAParsedOptions.rot = IsPresent(SA_OPTIONS::ROT);
1333 SAParsedOptions.bc = IsPresent(SA_OPTIONS::BC);
1334
1335 /*--- Validate user settings when not in experimental mode. ---*/
1336 if (!IsPresent(SA_OPTIONS::EXP)) {
1337 const bool any_but_bc = SAParsedOptions.ft2 || SAParsedOptions.qcr2000 || SAParsedOptions.comp || SAParsedOptions.rot;
1338
1339 switch (SAParsedOptions.version) {
1340 case SA_OPTIONS::NEG:
1341 if (!SAParsedOptions.ft2 || SAParsedOptions.bc)
1342 SU2_MPI::Error("A non-standard version of SA-neg was requested (see https://turbmodels.larc.nasa.gov/spalart.html).\n"
1343 "If you want to continue, add EXPERIMENTAL to SA_OPTIONS.", CURRENT_FUNCTION);
1344 break;
1345 case SA_OPTIONS::EDW:
1346 if (any_but_bc || SAParsedOptions.bc)
1347 SU2_MPI::Error("A non-standard version of SA-noft2-Edwards was requested (see https://turbmodels.larc.nasa.gov/spalart.html).\n"
1348 "If you want to continue, add EXPERIMENTAL to SA_OPTIONS.", CURRENT_FUNCTION);
1349 break;
1350 default:
1351 if (SAParsedOptions.bc && any_but_bc)
1352 SU2_MPI::Error("A non-standard version of SA-BCM was requested (see https://turbmodels.larc.nasa.gov/spalart.html).\n"
1353 "If you want to continue, add EXPERIMENTAL to SA_OPTIONS.", CURRENT_FUNCTION);
1354 break;
1355 }
1356 }
1357 return SAParsedOptions;
1358}
1359
1360/*!
1361 * \brief Types of transition models
1362 */
1364 NONE, /*!< \brief No transition model. */
1365 LM, /*!< \brief Kind of transition model (Langtry-Menter (LM) for SST and Spalart-Allmaras). */
1366};
1367static const MapType<std::string, TURB_TRANS_MODEL> Trans_Model_Map = {
1370};
1371
1372/*!
1373 * \brief LM Options
1374 */
1375enum class LM_OPTIONS {
1376 NONE, /*!< \brief No option / default. */
1377 LM2015, /*!< \brief Cross-flow corrections. */
1378 MALAN, /*!< \brief Kind of transition correlation model (Malan). */
1379 SULUKSNA, /*!< \brief Kind of transition correlation model (Suluksna). */
1380 KRAUSE, /*!< \brief Kind of transition correlation model (Krause). */
1381 KRAUSE_HYPER, /*!< \brief Kind of transition correlation model (Krause hypersonic). */
1382 MEDIDA_BAEDER,/*!< \brief Kind of transition correlation model (Medida-Baeder). */
1383 MEDIDA, /*!< \brief Kind of transition correlation model (Medida). */
1384 MENTER_LANGTRY, /*!< \brief Kind of transition correlation model (Menter-Langtry). */
1385 DEFAULT /*!< \brief Kind of transition correlation model (Menter-Langtry if SST, MALAN if SA). */
1386};
1387
1388static const MapType<std::string, LM_OPTIONS> LM_Options_Map = {
1389 MakePair("NONE", LM_OPTIONS::NONE)
1390 MakePair("LM2015", LM_OPTIONS::LM2015)
1391 MakePair("MALAN", LM_OPTIONS::MALAN)
1392 MakePair("SULUKSNA", LM_OPTIONS::SULUKSNA)
1393 MakePair("KRAUSE", LM_OPTIONS::KRAUSE)
1394 MakePair("KRAUSE_HYPER", LM_OPTIONS::KRAUSE_HYPER)
1395 MakePair("MEDIDA_BAEDER", LM_OPTIONS::MEDIDA_BAEDER)
1396 MakePair("MENTER_LANGTRY", LM_OPTIONS::MENTER_LANGTRY)
1397 MakePair("DEFAULT", LM_OPTIONS::DEFAULT)
1398};
1399
1400/*!
1401 * \brief Types of transition correlations
1402 */
1404 MALAN, /*!< \brief Kind of transition correlation model (Malan). */
1405 SULUKSNA, /*!< \brief Kind of transition correlation model (Suluksna). */
1406 KRAUSE, /*!< \brief Kind of transition correlation model (Krause). */
1407 KRAUSE_HYPER, /*!< \brief Kind of transition correlation model (Krause hypersonic). */
1408 MEDIDA_BAEDER,/*!< \brief Kind of transition correlation model (Medida-Baeder). */
1409 MEDIDA, /*!< \brief Kind of transition correlation model (Medida). */
1410 MENTER_LANGTRY, /*!< \brief Kind of transition correlation model (Menter-Langtry). */
1411 DEFAULT /*!< \brief Kind of transition correlation model (Menter-Langtry if SST, MALAN if SA). */
1412};
1413
1414/*!
1415 * \brief Structure containing parsed LM options.
1416 */
1418 LM_OPTIONS version = LM_OPTIONS::NONE; /*!< \brief LM base model. */
1419 bool LM2015 = false; /*!< \brief Use cross-flow corrections. */
1421};
1422
1423/*!
1424 * \brief Function to parse LM options.
1425 * \param[in] LM_Options - Selected LM option from config.
1426 * \param[in] nLM_Options - Number of options selected.
1427 * \param[in] rank - MPI rank.
1428 * \return Struct with SA options.
1429 */
1430inline LM_ParsedOptions ParseLMOptions(const LM_OPTIONS *LM_Options, unsigned short nLM_Options, int rank, TURB_MODEL Kind_Turb_Model) {
1431 LM_ParsedOptions LMParsedOptions;
1432
1433 auto IsPresent = [&](LM_OPTIONS option) {
1434 const auto lm_options_end = LM_Options + nLM_Options;
1435 return std::find(LM_Options, lm_options_end, option) != lm_options_end;
1436 };
1437
1438 LMParsedOptions.LM2015 = IsPresent(LM_OPTIONS::LM2015);
1439
1440 int NFoundCorrelations = 0;
1441 if (IsPresent(LM_OPTIONS::MALAN)) {
1443 NFoundCorrelations++;
1444 }
1445 if (IsPresent(LM_OPTIONS::SULUKSNA)) {
1447 NFoundCorrelations++;
1448 }
1449 if (IsPresent(LM_OPTIONS::KRAUSE)) {
1451 NFoundCorrelations++;
1452 }
1453 if (IsPresent(LM_OPTIONS::KRAUSE_HYPER)) {
1455 NFoundCorrelations++;
1456 }
1457 if (IsPresent(LM_OPTIONS::MEDIDA_BAEDER)) {
1459 NFoundCorrelations++;
1460 }
1461 if (IsPresent(LM_OPTIONS::MEDIDA)) {
1463 NFoundCorrelations++;
1464 }
1465 if (IsPresent(LM_OPTIONS::MENTER_LANGTRY)) {
1467 NFoundCorrelations++;
1468 }
1469
1470 if (NFoundCorrelations > 1) {
1471 SU2_MPI::Error("Two correlations selected for LM_OPTIONS. Please choose only one.", CURRENT_FUNCTION);
1472 }
1473
1474 if (LMParsedOptions.Correlation == TURB_TRANS_CORRELATION::DEFAULT){
1475 if (Kind_Turb_Model == TURB_MODEL::SST) {
1477 } else if (Kind_Turb_Model == TURB_MODEL::SA) {
1479 }
1480 }
1481
1482 return LMParsedOptions;
1483}
1484
1485/*!
1486 * \brief Structure containing parsed options for data-driven fluid model.
1487 */
1489 su2double Newton_relaxation = 1.0; /*!< \brief Relaxation factor for Newton solvers in data-driven fluid models. */
1490 bool use_PINN = false; /*!< \brief Use physics-informed method for data-driven fluid modeling. */
1491 ENUM_DATADRIVEN_METHOD interp_algorithm_type = ENUM_DATADRIVEN_METHOD::MLP; /*!< \brief Interpolation algorithm used for data-driven fluid model. */
1492 unsigned short n_filenames = 1; /*!< \brief Number of datasets. */
1493 std::string *datadriven_filenames; /*!< \brief Dataset information for data-driven fluid models. */
1494};
1495
1496
1497/*!
1498 * \brief types of species transport models
1499 */
1500enum class SPECIES_MODEL {
1501 NONE, /*!< \brief No scalar transport model. */
1502 SPECIES_TRANSPORT, /*!< \brief species transport model. */
1503 FLAMELET, /*!< \brief flamelet model. */
1504};
1505static const MapType<std::string, SPECIES_MODEL> Species_Model_Map = {
1507 MakePair("SPECIES_TRANSPORT", SPECIES_MODEL::SPECIES_TRANSPORT)
1509};
1510
1511/*!
1512 * \brief Progress variable and enthalpy are the first and second entries in the lookup table.
1513 * \note The order matters.
1514 */
1520
1521/*!
1522 * \brief the source terms for the flamelet method. At the moment only progress variable
1523 */
1527
1528/*!
1529 * \brief Look-up operations for the flamelet scalar solver.
1530 */
1532 THERMO, /*!< \brief Thermochemical properties (temperature, density, diffusivity, etc.). */
1533 PREFDIF, /*!< \brief Preferential diffusion scalars. */
1534 SOURCES, /*!< \brief Scalar source terms (controlling variables, passive species).*/
1535 LOOKUP, /*!< \brief Passive look-up variables specified in config. */
1536};
1537
1538/*!
1539 * \brief The preferential diffusion scalar indices for the preferential diffusion model.
1540 */
1542 I_BETA_PROGVAR, /*!< \brief Preferential diffusion scalar for the progress variable. */
1543 I_BETA_ENTH_THERMAL, /*!< \brief Preferential diffusion scalar for temperature. */
1544 I_BETA_ENTH, /*!< \brief Preferential diffusion scalar for total enthalpy. */
1545 I_BETA_MIXFRAC, /*!< \brief Preferential diffusion scalar for mixture fraction. */
1546 N_BETA_TERMS, /*!< \brief Total number of preferential diffusion scalars. */
1547};
1548
1549/*!
1550 * \brief Flame initialization options for the flamelet solver.
1551 */
1553 FLAME_FRONT, /*!< \brief Straight flame front. */
1554 SPARK, /*!< \brief Species reaction rate in a set location. */
1555 NONE, /*!< \brief No ignition, cold flow only. */
1556};
1557
1558static const MapType<std::string, FLAMELET_INIT_TYPE> Flamelet_Init_Map = {
1562};
1563
1564/*!
1565 * \brief Selects the source of wall/inlet enthalpy boundary conditions for the flamelet solver.
1566 * SPECIES_MARKERS (default): inlet H is taken directly from MARKER_INLET_SPECIES; wall enthalpy BC
1567 * is obtained from MARKER_WALL_SPECIES.
1568 * FLOW_MARKERS: inlet H is derived from the MARKER_INLET temperature via a Newton iteration on the
1569 * LUT (reverse lookup using Z,T) from MARKER_ISOTHERMAL or MARKER_HEATFLUX.
1570 */
1572 FLOW_MARKERS, /*!< \brief Derive inlet H from MARKER_INLET T (LUT Newton); walls from MARKER_ISOTHERMAL/MARKER_HEATFLUX. */
1573 SPECIES_MARKERS, /*!< \brief Take inlet H directly from MARKER_INLET_SPECIES; walls from MARKER_WALL_SPECIES (default). */
1574};
1575
1576static const MapType<std::string, FLAMELET_ENTHALPY_BC> Flamelet_Enthalpy_BC_Map = {
1579};
1580
1581/*!
1582 * \brief Structure containing parsed options for flamelet fluid model.
1583 */
1585 ///TODO: Add python wrapper initialization option
1586 FLAMELET_INIT_TYPE ignition_method = FLAMELET_INIT_TYPE::NONE; /*!< \brief Method for solution ignition for flamelet problems. */
1587 FLAMELET_ENTHALPY_BC enthalpy_bc = FLAMELET_ENTHALPY_BC::SPECIES_MARKERS; /*!< \brief Source of enthalpy BCs: species markers (default, backward-compatible) or flow markers. */
1588 unsigned short n_scalars = 0; /*!< \brief Number of transported scalars for flamelet LUT approach. */
1589 unsigned short n_lookups = 0; /*!< \brief Number of lookup variables, for visualization only. */
1590 unsigned short n_table_sources = 0; /*!< \brief Number of transported scalar source terms for LUT. */
1591 unsigned short n_user_scalars = 0; /*!< \brief Number of user defined (auxiliary) scalar transport equations. */
1592 unsigned short n_user_sources = 0; /*!< \brief Number of source terms for user defined (auxiliary) scalar transport equations. */
1593 unsigned short n_control_vars = 0; /*!< \brief Number of controlling variables (independent variables) for the LUT. */
1594
1595 std::string *controlling_variable_names; /*!< \brief Names of the independent, transported scalars. */
1596 std::string* cv_source_names; /*!< \brief Names of the source terms of the independent, transported scalars. */
1597 std::string* lookup_names; /*!< \brief Names of the passive look-up terms. */
1598 std::string* user_scalar_names; /*!< \brief Names of the passive transported scalars. */
1599 std::string* user_source_names; /*!< \brief Names of the source terms of the passive transported scalars. */
1600
1601 std::array<su2double,8> flame_init{{0,0,0, /* flame offset (x,y,z) */
1602 1,0,0, /* flame normal (nx, ny, nz) */
1603 5e-3,1}}; /*!< \brief Flame front initialization parameters. */
1604 std::array<su2double,6> spark_init{{0,0,0,0,0,0}}; /*!< \brief Spark ignition initialization parameters. */
1605 su2double* spark_reaction_rates; /*!< \brief Source terms for flamelet spark ignition option. */
1606 unsigned short nspark; /*!< \brief Number of source terms for spark initialization. */
1607 bool preferential_diffusion = false; /*!< \brief Preferential diffusion physics for flamelet solver.*/
1608 bool thickenedflame_correction{true}; /*!< \brief Thickened flame correction. */
1609 su2double Flame_T_ignition = 5000; /*!< \brief Ignition temperature for the flame, used for initialization. */
1610
1611};
1612
1613/*!
1614 * \brief Types of subgrid scale models
1615 */
1616enum class TURB_SGS_MODEL {
1617 NONE , /*!< \brief No subgrid scale model. */
1618 IMPLICIT_LES, /*!< \brief Implicit LES, i.e. no explicit SGS model. */
1619 SMAGORINSKY , /*!< \brief Smagorinsky SGS model. */
1620 WALE , /*!< \brief Wall-Adapting Local Eddy-viscosity SGS model. */
1621 VREMAN /*!< \brief Vreman SGS model. */
1622};
1623static const MapType<std::string, TURB_SGS_MODEL> SGS_Model_Map = {
1625 MakePair("IMPLICIT_LES", TURB_SGS_MODEL::IMPLICIT_LES)
1629};
1630
1631/*!
1632 * \brief Types of window (weight) functions for cost functional
1633 */
1635 SQUARE, /*!< \brief No weight function (order 1)*/
1636 HANN, /*!< \brief Hann-type weight function (order 3) */
1637 HANN_SQUARE, /*!< \brief Hann-squared type weight function (order 5)*/
1638 BUMP, /*!< \brief bump type weight function (exponential order of convergence) */
1639};
1640static const MapType<std::string, WINDOW_FUNCTION> Window_Map = {
1645};
1646
1647/*!
1648 * \brief Types of hybrid RANS/LES models
1649 */
1651 NO_HYBRIDRANSLES = 0, /*!< \brief No turbulence model. */
1652 SA_DES = 1, /*!< \brief Kind of Hybrid RANS/LES (SA - Detached Eddy Simulation (DES)). */
1653 SA_DDES = 2, /*!< \brief Kind of Hybrid RANS/LES (SA - Delayed DES (DDES) with Delta_max SGS ). */
1654 SA_ZDES = 3, /*!< \brief Kind of Hybrid RANS/LES (SA - Delayed DES (DDES) with Vorticity based SGS like Zonal DES). */
1655 SA_EDDES = 4 /*!< \brief Kind of Hybrid RANS/LES (SA - Delayed DES (DDES) with Shear Layer Adapted SGS: Enhanced DDES). */
1657static const MapType<std::string, ENUM_HYBRIDRANSLES> HybridRANSLES_Map = {
1658 MakePair("NONE", NO_HYBRIDRANSLES)
1659 MakePair("SA_DES", SA_DES)
1660 MakePair("SA_DDES", SA_DDES)
1661 MakePair("SA_ZDES", SA_ZDES)
1662 MakePair("SA_EDDES", SA_EDDES)
1663};
1664
1665/*!
1666 * \brief Types of Roe Low Dissipation Schemes
1667 */
1669 NO_ROELOWDISS = 0, /*!< \brief No Roe Low Dissipation model. */
1670 FD = 1, /*!< \brief Numerical Blending based on DDES's F_d function */
1671 NTS = 2, /*!< \brief Numerical Blending of Travin and Shur. */
1672 NTS_DUCROS = 3, /*!< \brief Numerical Blending of Travin and Shur + Ducros' Shock Sensor. */
1673 FD_DUCROS = 4 /*!< \brief Numerical Blending based on DDES's F_d function + Ducros' Shock Sensor */
1675static const MapType<std::string, ENUM_ROELOWDISS> RoeLowDiss_Map = {
1676 MakePair("NONE", NO_ROELOWDISS)
1677 MakePair("FD", FD)
1678 MakePair("NTS", NTS)
1679 MakePair("NTS_DUCROS", NTS_DUCROS)
1680 MakePair("FD_DUCROS", FD_DUCROS)
1681};
1682
1683/*!
1684 * \brief Types of wall functions.
1685 */
1686enum class WALL_FUNCTIONS {
1687 NONE , /*!< \brief No wall function treatment, integration to the wall. Default behavior. */
1688 STANDARD_FUNCTION , /*!< \brief Standard wall function. */
1689 ADAPTIVE_FUNCTION , /*!< \brief Adaptive wall function. Formulation depends on y+. */
1690 SCALABLE_FUNCTION , /*!< \brief Scalable wall function. */
1691 EQUILIBRIUM_MODEL , /*!< \brief Equilibrium wall model for LES. */
1692 NONEQUILIBRIUM_MODEL , /*!< \brief Non-equilibrium wall model for LES. */
1693 LOGARITHMIC_MODEL /*!< \brief Logarithmic law-of-the-wall model for LES. */
1694};
1695static const MapType<std::string, WALL_FUNCTIONS> Wall_Functions_Map = {
1696 MakePair("NO_WALL_FUNCTION", WALL_FUNCTIONS::NONE)
1697 MakePair("STANDARD_WALL_FUNCTION", WALL_FUNCTIONS::STANDARD_FUNCTION)
1698 MakePair("ADAPTIVE_WALL_FUNCTION", WALL_FUNCTIONS::ADAPTIVE_FUNCTION)
1699 MakePair("SCALABLE_WALL_FUNCTION", WALL_FUNCTIONS::SCALABLE_FUNCTION)
1700 MakePair("EQUILIBRIUM_WALL_MODEL", WALL_FUNCTIONS::EQUILIBRIUM_MODEL)
1701 MakePair("NONEQUILIBRIUM_WALL_MODEL", WALL_FUNCTIONS::NONEQUILIBRIUM_MODEL)
1702 MakePair("LOGARITHMIC_WALL_MODEL", WALL_FUNCTIONS::LOGARITHMIC_MODEL)
1703};
1704
1705/*!
1706 * \brief Type of time integration schemes
1707 */
1709 RUNGE_KUTTA_EXPLICIT = 1, /*!< \brief Explicit Runge-Kutta time integration definition. */
1710 EULER_EXPLICIT = 2, /*!< \brief Explicit Euler time integration definition. */
1711 EULER_IMPLICIT = 3, /*!< \brief Implicit Euler time integration definition. */
1712 CLASSICAL_RK4_EXPLICIT = 4, /*!< \brief Classical RK4 time integration definition. */
1713 ADER_DG = 5 /*!< \brief ADER-DG time integration definition. */
1715static const MapType<std::string, ENUM_TIME_INT> Time_Int_Map = {
1716 MakePair("RUNGE-KUTTA_EXPLICIT", RUNGE_KUTTA_EXPLICIT)
1717 MakePair("EULER_EXPLICIT", EULER_EXPLICIT)
1718 MakePair("EULER_IMPLICIT", EULER_IMPLICIT)
1719 MakePair("CLASSICAL_RK4_EXPLICIT", CLASSICAL_RK4_EXPLICIT)
1720 MakePair("ADER_DG", ADER_DG)
1721};
1722
1723/*!
1724 * \brief Type of predictor for the ADER-DG time integration scheme.
1725 */
1727 ADER_ALIASED_PREDICTOR = 1, /*!< \brief Aliased predictor, easiest to do. */
1728 ADER_NON_ALIASED_PREDICTOR = 2 /*!< \brief Non-aliased predictor. Consistent, but more difficult. */
1730static const MapType<std::string, ENUM_ADER_PREDICTOR> Ader_Predictor_Map = {
1731 MakePair("ADER_ALIASED_PREDICTOR", ADER_ALIASED_PREDICTOR)
1732 MakePair("ADER_NON_ALIASED_PREDICTOR", ADER_NON_ALIASED_PREDICTOR)
1733};
1734
1735/*!
1736 * \brief Type of heat timestep calculation
1737 */
1739 MINIMUM = 1, /*!< \brief Local time stepping based on minimum lambda.*/
1740 CONVECTIVE = 2, /*!< \brief Local time stepping based on convective spectral radius.*/
1741 VISCOUS = 3, /*!< \brief Local time stepping based on viscous spectral radius.*/
1742 BYFLOW = 4, /*!< \brief Unsing the mean solvers time step. */
1743};
1744static const MapType<std::string, ENUM_HEAT_TIMESTEP> Heat_TimeStep_Map = {
1745 MakePair("LOCAL", MINIMUM)
1746 MakePair("CONVECTIVE", CONVECTIVE)
1747 MakePair("VISCOUS", VISCOUS)
1748 MakePair("BYFLOW", BYFLOW)
1749};
1750
1751/*!
1752 * \brief Type of time integration schemes
1753 */
1755 NEWMARK_IMPLICIT, /*!< \brief Implicit Newmark integration definition. */
1756 GENERALIZED_ALPHA, /*!< \brief Support for implementing another implicit method. */
1757};
1758static const MapType<std::string, STRUCT_TIME_INT> Time_Int_Map_FEA = {
1759 MakePair("NEWMARK_IMPLICIT", STRUCT_TIME_INT::NEWMARK_IMPLICIT)
1760 // MakePair("GENERALIZED_ALPHA", STRUCT_TIME_INT::GENERALIZED_ALPHA) Not fully implemented.
1761};
1762
1763/*!
1764 * \brief Type of time integration schemes
1765 */
1767 NEWTON, /*!< \brief Full Newton-Rapshon method. */
1768 MOD_NEWTON, /*!< \brief Modified Newton-Raphson method. */
1769};
1770static const MapType<std::string, STRUCT_SPACE_ITE> Space_Ite_Map_FEA = {
1771 MakePair("NEWTON_RAPHSON", STRUCT_SPACE_ITE::NEWTON)
1772 MakePair("MODIFIED_NEWTON_RAPHSON", STRUCT_SPACE_ITE::MOD_NEWTON)
1773};
1774
1775/*!
1776 * \brief Types of schemes to compute the flow gradient
1777 */
1779 NO_GRADIENT = 0, /*!< \brief No gradient method. Only possible for reconstruction gradient, in which case, the option chosen for NUM_METHOD_GRAD is used. */
1780 GREEN_GAUSS = 1, /*!< \brief Gradient computation using Green-Gauss theorem. */
1781 LEAST_SQUARES = 2, /*!< \brief Gradient computation using unweighted least squares. */
1782 WEIGHTED_LEAST_SQUARES = 3 /*!< \brief Gradients computation using inverse-distance weighted least squares. */
1784static const MapType<std::string, ENUM_FLOW_GRADIENT> Gradient_Map = {
1785 MakePair("NONE", NO_GRADIENT)
1786 MakePair("GREEN_GAUSS", GREEN_GAUSS)
1787 MakePair("LEAST_SQUARES", LEAST_SQUARES)
1788 MakePair("WEIGHTED_LEAST_SQUARES", WEIGHTED_LEAST_SQUARES)
1789};
1790
1791/*!
1792 * \brief Types of action to take on a geometry structure
1793 */
1795 ALLOCATE = 0, /*!< \brief Allocate geometry structure. */
1796 UPDATE = 1 /*!< \brief Update geometry structure (grid moving, adaptation, etc.). */
1798
1799/*!
1800 * \brief Types of action to perform when doing the geometry evaluation
1801 */
1803 FUNCTION = 0, /*!< \brief Geometrical analysis. */
1804 GRADIENT = 1 /*!< \brief Geometrical analysis and gradient using finite differences. */
1806static const MapType<std::string, GEOMETRY_MODE> GeometryMode_Map = {
1807 MakePair("FUNCTION", FUNCTION)
1808 MakePair("GRADIENT", GRADIENT)
1809};
1810
1811/*!
1812 * \brief Types of boundary conditions
1813 */
1815 EULER_WALL = 1, /*!< \brief Boundary Euler wall definition. */
1816 FAR_FIELD = 2, /*!< \brief Boundary far-field definition. */
1817 SYMMETRY_PLANE = 3, /*!< \brief Boundary symmetry plane definition. */
1818 INLET_FLOW = 4, /*!< \brief Boundary inlet flow definition. */
1819 OUTLET_FLOW = 5, /*!< \brief Boundary outlet flow definition. */
1820 PERIODIC_BOUNDARY = 6, /*!< \brief Periodic boundary definition. */
1821 NEARFIELD_BOUNDARY = 7, /*!< \brief Near-Field boundary definition. */
1822 CUSTOM_BOUNDARY = 10, /*!< \brief custom boundary definition. */
1823 DISPLACEMENT_BOUNDARY = 14, /*!< \brief Boundary displacement definition. */
1824 LOAD_BOUNDARY = 15, /*!< \brief Boundary Load definition. */
1825 FLOWLOAD_BOUNDARY = 16, /*!< \brief Boundary Load definition. */
1826 SUPERSONIC_INLET = 19, /*!< \brief Boundary supersonic inlet definition. */
1827 SUPERSONIC_OUTLET = 20, /*!< \brief Boundary supersonic inlet definition. */
1828 ENGINE_INFLOW = 21, /*!< \brief Boundary nacelle inflow. */
1829 ENGINE_EXHAUST = 22, /*!< \brief Boundary nacelle exhaust. */
1830 RIEMANN_BOUNDARY= 24, /*!< \brief Riemann Boundary definition. */
1831 ISOTHERMAL = 25, /*!< \brief No slip isothermal wall boundary condition. */
1832 HEAT_FLUX = 26, /*!< \brief No slip constant heat flux wall boundary condition. */
1833 HEAT_TRANSFER = 27, /*!< \brief No slip heat transfer boundary condition. */
1834 ACTDISK_INLET = 32, /*!< \brief Actuator disk inlet boundary definition. */
1835 ACTDISK_OUTLET = 33, /*!< \brief Actuator disk outlet boundary definition. */
1836 CLAMPED_BOUNDARY = 34, /*!< \brief Clamped Boundary definition. */
1837 LOAD_DIR_BOUNDARY = 35, /*!< \brief Boundary Load definition. */
1838 LOAD_SINE_BOUNDARY = 36, /*!< \brief Sine-waveBoundary Load definition. */
1839 GILES_BOUNDARY= 37, /*!< \brief Giles Boundary definition. */
1840 INTERNAL_BOUNDARY= 38, /*!< \brief Internal Boundary definition. */
1841 FLUID_INTERFACE = 39, /*!< \brief Domain interface definition. */
1842 DISP_DIR_BOUNDARY = 40, /*!< \brief Boundary displacement definition. */
1843 DAMPER_BOUNDARY = 41, /*!< \brief Damper. */
1844 MIXING_PLANE_INTERFACE = 42, /*< \breif Mxing plane */
1845 CHT_WALL_INTERFACE = 50, /*!< \brief Domain interface definition. */
1846 SMOLUCHOWSKI_MAXWELL = 55, /*!< \brief Smoluchoski/Maxwell wall boundary condition. */
1847 SEND_RECEIVE = 99, /*!< \brief Boundary send-receive definition. */
1848};
1849
1850/*!
1851 * \brief 2D Formulation for structural problems
1852 */
1853enum class STRUCT_2DFORM {
1854 PLANE_STRESS, /*!< \brief Definition of plane stress solver. */
1855 PLANE_STRAIN /*!< \brief Definition of plane strain solver. */
1856};
1857static const MapType<std::string, STRUCT_2DFORM> ElasForm_2D = {
1858 MakePair("PLANE_STRESS", STRUCT_2DFORM::PLANE_STRESS)
1859 MakePair("PLANE_STRAIN", STRUCT_2DFORM::PLANE_STRAIN)
1860};
1861
1862/*!
1863 * \brief Kinds of relaxation for multizone problems
1864 */
1865enum class BGS_RELAXATION {
1866 NONE, /*!< \brief No relaxation in the strongly coupled approach. */
1867 FIXED, /*!< \brief Relaxation with a fixed parameter. */
1868 AITKEN, /*!< \brief Relaxation using Aitken's dynamic parameter. */
1869};
1870static const MapType<std::string, BGS_RELAXATION> AitkenForm_Map = {
1872 MakePair("FIXED_PARAMETER", BGS_RELAXATION::FIXED)
1873 MakePair("AITKEN_DYNAMIC", BGS_RELAXATION::AITKEN)
1874};
1875
1876/*!
1877 * \brief Types of dynamic transfer methods
1878 */
1880 INSTANTANEOUS = 1, /*!< \brief No ramp, load is transfer instantaneously. */
1881 POL_ORDER_1 = 2, /*!< \brief The load is transferred using a ramp. */
1882 POL_ORDER_3 = 3, /*!< \brief The load is transferred using an order 3 polynomial function */
1883 POL_ORDER_5 = 4, /*!< \brief The load is transferred using an order 5 polynomial function */
1884 SIGMOID_10 = 5, /*!< \brief The load is transferred using a sigmoid with parameter 10 */
1885 SIGMOID_20 = 6 /*!< \brief The load is transferred using a sigmoid with parameter 20 */
1887static const MapType<std::string, ENUM_DYN_TRANSFER_METHOD> Dyn_Transfer_Method_Map = {
1888 MakePair("INSTANTANEOUS", INSTANTANEOUS)
1889 MakePair("RAMP", POL_ORDER_1)
1890 MakePair("CUBIC", POL_ORDER_3)
1891 MakePair("QUINTIC", POL_ORDER_5)
1892 MakePair("SIGMOID_10", SIGMOID_10)
1893 MakePair("SIGMOID_20", SIGMOID_20)
1894};
1895
1896/*!
1897 * \brief Kinds of Design Variables for FEA problems
1898 */
1900 NODV_FEA = 0, /*!< \brief No design variable for FEA problems. */
1901 YOUNG_MODULUS = 1, /*!< \brief Young modulus (E) as design variable. */
1902 POISSON_RATIO = 2, /*!< \brief Poisson ratio (Nu) as design variable. */
1903 DENSITY_VAL = 3, /*!< \brief Density (Rho) as design variable. */
1904 DEAD_WEIGHT = 4, /*!< \brief Dead Weight (Rho_DL) as design variable. */
1905 ELECTRIC_FIELD = 5 /*!< \brief Electric field (E) as design variable. */
1907static const MapType<std::string, ENUM_DVFEA> DVFEA_Map = {
1908 MakePair("NONE", NODV_FEA)
1909 MakePair("YOUNG_MODULUS", YOUNG_MODULUS)
1910 MakePair("POISSON_RATIO", POISSON_RATIO)
1911 MakePair("DENSITY", DENSITY_VAL)
1912 MakePair("DEAD_WEIGHT", DEAD_WEIGHT)
1913 MakePair("ELECTRIC_FIELD", ELECTRIC_FIELD)
1914};
1915
1916/*!
1917 * \brief Kinds of radiation models
1918 */
1920 NONE, /*!< \brief No radiation model */
1921 P1, /*!< \brief P1 Radiation model. */
1922};
1923static const MapType<std::string, RADIATION_MODEL> Radiation_Map = {
1926};
1927
1928/*!
1929 * \brief Kinds of P1 initialization
1930 */
1931enum class P1_INIT {
1932 ZERO, /*!< \brief Initialize the P1 model from zero values */
1933 TEMPERATURE, /*!< \brief Initialize the P1 model from blackbody energy computed from the initial temperature. */
1934};
1935static const MapType<std::string, P1_INIT> P1_Init_Map = {
1936 MakePair("ZERO", P1_INIT::ZERO)
1937 MakePair("TEMPERATURE_INIT", P1_INIT::TEMPERATURE)
1938};
1939
1940/*!
1941 * \brief Kinds of coupling methods at CHT interfaces.
1942 * The first (temperature) part determines the BC method on the fluid side, the second (heatflux) part determines
1943 * the BC method on the solid side of the CHT interface.
1944 */
1951static const MapType<std::string, CHT_COUPLING> CHT_Coupling_Map = {
1952 MakePair("DIRECT_TEMPERATURE_NEUMANN_HEATFLUX", CHT_COUPLING::DIRECT_TEMPERATURE_NEUMANN_HEATFLUX)
1953 MakePair("AVERAGED_TEMPERATURE_NEUMANN_HEATFLUX", CHT_COUPLING::AVERAGED_TEMPERATURE_NEUMANN_HEATFLUX)
1954 MakePair("DIRECT_TEMPERATURE_ROBIN_HEATFLUX", CHT_COUPLING::DIRECT_TEMPERATURE_ROBIN_HEATFLUX)
1955 MakePair("AVERAGED_TEMPERATURE_ROBIN_HEATFLUX", CHT_COUPLING::AVERAGED_TEMPERATURE_ROBIN_HEATFLUX)
1956};
1957
1958/*!
1959 * \brief Types Riemann boundary treatments
1960 */
1962 TOTAL_CONDITIONS_PT = 1, /*!< \brief User specifies total pressure, total temperature, and flow direction. */
1963 DENSITY_VELOCITY = 2, /*!< \brief User specifies density and velocity, and flow direction. */
1964 STATIC_PRESSURE = 3, /*!< \brief User specifies static pressure. */
1965 TOTAL_SUPERSONIC_INFLOW = 4, /*!< \brief User specifies total pressure, total temperature and Velocity components. */
1966 STATIC_SUPERSONIC_INFLOW_PT = 5, /*!< \brief User specifies static pressure, static temperature, and Mach components. */
1967 STATIC_SUPERSONIC_INFLOW_PD = 6, /*!< \brief User specifies static pressure, static temperature, and Mach components. */
1968 MIXING_IN = 7, /*!< \brief User does not specify anything; information is retrieved from the other domain */
1969 MIXING_OUT = 8, /*!< \brief User does not specify anything; information is retrieved from the other domain */
1976 MASS_FLOW_OUTLET = 15
1978static const MapType<std::string, RIEMANN_TYPE> Riemann_Map = {
1979 MakePair("TOTAL_CONDITIONS_PT", TOTAL_CONDITIONS_PT)
1980 MakePair("DENSITY_VELOCITY", DENSITY_VELOCITY)
1981 MakePair("STATIC_PRESSURE", STATIC_PRESSURE)
1982 MakePair("TOTAL_SUPERSONIC_INFLOW", TOTAL_SUPERSONIC_INFLOW)
1983 MakePair("STATIC_SUPERSONIC_INFLOW_PT", STATIC_SUPERSONIC_INFLOW_PT)
1984 MakePair("STATIC_SUPERSONIC_INFLOW_PD", STATIC_SUPERSONIC_INFLOW_PD)
1985 MakePair("MIXING_IN", MIXING_IN)
1986 MakePair("MIXING_OUT", MIXING_OUT)
1987 MakePair("MIXING_IN_1D", MIXING_IN_1D)
1988 MakePair("MIXING_OUT_1D", MIXING_OUT_1D)
1989 MakePair("SUPERSONIC_OUTFLOW", SUPERSONIC_OUTFLOW)
1990 MakePair("RADIAL_EQUILIBRIUM", RADIAL_EQUILIBRIUM)
1991 MakePair("TOTAL_CONDITIONS_PT_1D", TOTAL_CONDITIONS_PT_1D)
1992 MakePair("STATIC_PRESSURE_1D", STATIC_PRESSURE_1D)
1993 MakePair("MASS_FLOW_OUTLET", MASS_FLOW_OUTLET)
1994};
1995
1996static const MapType<std::string, RIEMANN_TYPE> Giles_Map = {
1997 MakePair("TOTAL_CONDITIONS_PT", TOTAL_CONDITIONS_PT)
1998 MakePair("DENSITY_VELOCITY", DENSITY_VELOCITY)
1999 MakePair("STATIC_PRESSURE", STATIC_PRESSURE)
2000 MakePair("TOTAL_SUPERSONIC_INFLOW", TOTAL_SUPERSONIC_INFLOW)
2001 MakePair("STATIC_SUPERSONIC_INFLOW_PT", STATIC_SUPERSONIC_INFLOW_PT)
2002 MakePair("STATIC_SUPERSONIC_INFLOW_PD", STATIC_SUPERSONIC_INFLOW_PD)
2003 MakePair("MIXING_IN", MIXING_IN)
2004 MakePair("MIXING_OUT", MIXING_OUT)
2005 MakePair("MIXING_IN_1D", MIXING_IN_1D)
2006 MakePair("MIXING_OUT_1D", MIXING_OUT_1D)
2007 MakePair("SUPERSONIC_OUTFLOW", SUPERSONIC_OUTFLOW)
2008 MakePair("RADIAL_EQUILIBRIUM", RADIAL_EQUILIBRIUM)
2009 MakePair("TOTAL_CONDITIONS_PT_1D", TOTAL_CONDITIONS_PT_1D)
2010 MakePair("STATIC_PRESSURE_1D", STATIC_PRESSURE_1D)
2011 MakePair("MASS_FLOW_OUTLET", MASS_FLOW_OUTLET)
2012};
2013
2014/*!
2015 * \brief Types of wall species boundary conditions.
2016 */
2018 FLUX, /*!< \brief Neumann flux boundary condition for wall species. */
2019 VALUE /*!< \brief Dirichlet value boundary condition for wall species. */
2020};
2021static const MapType<std::string, WALL_SPECIES_TYPE> Wall_Map = {
2024};
2025
2026/*!
2027 * \brief Types of mixing process for averaging quantities at the boundaries.
2028 */
2030 ALGEBRAIC = 1, /*!< \brief an algebraic average is computed at the boundary of interest. */
2031 AREA = 2, /*!< \brief an area average is computed at the boundary of interest. */
2032 MIXEDOUT = 3, /*!< \brief an mixed-out average is computed at the boundary of interest. */
2033 MASSFLUX = 4 /*!< \brief a mass flow average is computed at the boundary of interest. */
2035static const MapType<std::string, AVERAGEPROCESS_TYPE> AverageProcess_Map = {
2036 MakePair("ALGEBRAIC", ALGEBRAIC)
2037 MakePair("AREA", AREA)
2038 MakePair("MIXEDOUT", MIXEDOUT)
2039 MakePair("MASSFLUX", MASSFLUX)
2040};
2041
2042/*!
2043 * \brief Types of mixing process for averaging quantities at the boundaries.
2044 */
2046 MATCHING = 1, /*!< \brief an algebraic average is computed at the boundary of interest. */
2047 NEAREST_SPAN = 2, /*!< \brief an area average is computed at the boundary of interest. */
2048 LINEAR_INTERPOLATION = 3 /*!< \brief an mixed-out average is computed at the boundary of interest. */
2050static const MapType<std::string, MIXINGPLANE_INTERFACE_TYPE> MixingPlaneInterface_Map = {
2051 MakePair("MATCHING", MATCHING)
2052 MakePair("NEAREST_SPAN", NEAREST_SPAN)
2053 MakePair("LINEAR_INTERPOLATION", LINEAR_INTERPOLATION)
2054};
2055
2056/*!
2057 * \brief this option allow to compute the span-wise section in different ways.
2058 */
2060 AUTOMATIC = 1, /*!< \brief number of span-wise section are computed automatically */
2061 EQUISPACED = 2 /*!< \brief number of span-wise section are specified from the user */
2063static const MapType<std::string, SPANWISE_TYPE> SpanWise_Map = {
2064 MakePair("AUTOMATIC", AUTOMATIC)
2065 MakePair("EQUISPACED", EQUISPACED)
2066};
2067
2068/*!
2069 * \brief Types of mixing process for averaging quantities at the boundaries.
2070 */
2072 AXIAL, /*!< \brief axial turbomachinery. */
2073 CENTRIFUGAL, /*!< \brief centrifugal turbomachinery. */
2074 CENTRIPETAL, /*!< \brief centripetal turbomachinery. */
2075 CENTRIPETAL_AXIAL, /*!< \brief mixed flow turbine. */
2076 AXIAL_CENTRIFUGAL /*!< \brief mixed flow turbine. */
2077};
2078static const MapType<std::string, TURBOMACHINERY_TYPE> TurboMachinery_Map = {
2084};
2085
2086/*!
2087 * \brief Types of Turbomachinery performance Type.
2088 */
2090 TURBINE, /*!< \brief Turbine Performance. */
2091 COMPRESSOR, /*!< \brief Compressor Performance. */
2092 PROPELLOR /*!< \brief Propellor Performance. */
2093};
2094static const MapType<std::string, TURBO_PERF_KIND> TurboPerfKind_Map = {
2098};
2099
2100/*!
2101 * \brief Types of Turbomachinery interfaces.
2102 */
2107static const MapType<std::string, TURBO_INTERFACE_KIND> TurboInterfaceKind_Map = {
2110};
2111
2112/*!
2113 * \brief Types of Turbomachinery performance flag.
2114 */
2116 INFLOW = 1, /*!< \brief flag for inflow marker for compute turboperformance. */
2117 OUTFLOW = 2 /*!< \brief flag for outflow marker for compute turboperformance. */
2119
2120enum class RAMP_TYPE{
2121 GRID, /*!< \brief flag for rotational/translational ramps */
2122 BOUNDARY, /*!< \brief flag for pressure/mass flow ramps*/
2123 MUSCL /*!< \brief flag for MUSCL ramps */
2124};
2125
2127 ITERATION, /*!< \brief flag for linear iteration-based ramp */
2128 SMOOTH_FUNCTION /*!< \brief flag for smooth cosine ramp */
2129};
2130
2131static const MapType<std::string, MUSCL_RAMP_TYPE> MUSCLRamp_Map = {
2133 MakePair("SMOOTH_FUNCTION", MUSCL_RAMP_TYPE::SMOOTH_FUNCTION)
2134};
2135
2136/*!
2137 * \brief Coefficients of the ramp specified in the config, ordered by index in the config
2138 */
2140 INITIAL_VALUE = 0, /*!< \brief intial value of the ramp */
2141 UPDATE_FREQ = 1, /*<! \brief update frequency of the ramp */
2142 FINAL_ITER = 2 /*<! \brief final iteration of the ramp */
2144
2145/*!
2146 * \brief Types inlet boundary treatments
2147 */
2148enum class INLET_TYPE {
2149 TOTAL_CONDITIONS, /*!< \brief User specifies total pressure, total temperature, and flow direction. */
2150 MASS_FLOW, /*!< \brief User specifies density and velocity (mass flow). */
2151 INPUT_FILE, /*!< \brief User specifies an input file. */
2152 VELOCITY_INLET, /*!< \brief Velocity inlet for an incompressible flow. */
2153 PRESSURE_INLET, /*!< \brief Total pressure inlet for an incompressible flow. */
2154};
2155static const MapType<std::string, INLET_TYPE> Inlet_Map = {
2156 MakePair("TOTAL_CONDITIONS", INLET_TYPE::TOTAL_CONDITIONS)
2157 MakePair("MASS_FLOW", INLET_TYPE::MASS_FLOW)
2158 MakePair("INPUT_FILE", INLET_TYPE::INPUT_FILE)
2159 MakePair("VELOCITY_INLET", INLET_TYPE::VELOCITY_INLET)
2160 MakePair("PRESSURE_INLET", INLET_TYPE::PRESSURE_INLET)
2161};
2162
2163/*!
2164 * \brief Types outlet boundary treatments
2165 */
2167 PRESSURE_OUTLET, /*!< \brief Gauge pressure outlet for incompressible flow */
2168 MASS_FLOW_OUTLET, /*!< \brief Mass flow outlet for incompressible flow. */
2169};
2170static const MapType<std::string, INC_OUTLET_TYPE> Inc_Outlet_Map = {
2171 MakePair("PRESSURE_OUTLET", INC_OUTLET_TYPE::PRESSURE_OUTLET)
2172 MakePair("MASS_FLOW_OUTLET", INC_OUTLET_TYPE::MASS_FLOW_OUTLET)
2173};
2174
2175/*!
2176 * \brief Types engine inflow boundary treatments
2177 */
2179 FAN_FACE_MACH = 1, /*!< \brief User specifies fan face mach number. */
2180 FAN_FACE_MDOT = 2, /*!< \brief User specifies Static pressure. */
2181 FAN_FACE_PRESSURE = 3 /*!< \brief User specifies Static pressure. */
2183static const MapType<std::string, ENGINE_INFLOW_TYPE> Engine_Inflow_Map = {
2184 MakePair("FAN_FACE_MACH", FAN_FACE_MACH)
2185 MakePair("FAN_FACE_MDOT", FAN_FACE_MDOT)
2186 MakePair("FAN_FACE_PRESSURE", FAN_FACE_PRESSURE)
2187};
2188
2189/*!
2190 * \brief Types actuator disk boundary treatments
2191 */
2193 VARIABLES_JUMP = 1, /*!< \brief User specifies the variables jump. */
2194 BC_THRUST = 2, /*!< \brief User specifies the BC thrust. */
2195 NET_THRUST = 3, /*!< \brief User specifies the Net thrust. */
2196 DRAG_MINUS_THRUST = 4, /*!< \brief User specifies the D-T. */
2197 MASSFLOW = 5, /*!< \brief User specifies the massflow. */
2198 POWER = 6, /*!< \brief User specifies the power. */
2199 VARIABLE_LOAD = 7, /*!< \brief User specifies the load distribution. */
2200 BLADE_ELEMENT = 8 /*!< \brief User specifies to use Blade element method. */
2202static const MapType<std::string, ACTDISK_TYPE> ActDisk_Map = {
2203 MakePair("VARIABLES_JUMP", VARIABLES_JUMP)
2204 MakePair("BC_THRUST", BC_THRUST)
2205 MakePair("NET_THRUST", NET_THRUST)
2206 MakePair("DRAG_MINUS_THRUST", DRAG_MINUS_THRUST)
2207 MakePair("MASSFLOW", MASSFLOW)
2208 MakePair("POWER", POWER)
2209 MakePair("VARIABLE_LOAD", VARIABLE_LOAD)
2210 MakePair("BLADE_ELEMENT", BLADE_ELEMENT)
2211};
2212
2213/*!
2214 * \brief types of wall boundary condition - smooth or rough
2215 */
2216enum class WALL_TYPE {
2217 SMOOTH, /*!< \brief Smooth wall */
2218 ROUGH, /*!< \brief Rough wall */
2219};
2220
2221/*!
2222 * \brief Types of objective functions
2223 */
2225 DRAG_COEFFICIENT = 1, /*!< \brief Drag objective function definition. */
2226 LIFT_COEFFICIENT = 2, /*!< \brief Lift objective function definition. */
2227 SIDEFORCE_COEFFICIENT = 3, /*!< \brief Side force objective function definition. */
2228 EFFICIENCY = 4, /*!< \brief Efficiency objective function definition. */
2229 INVERSE_DESIGN_PRESSURE = 5, /*!< \brief Pressure objective function definition (inverse design). */
2230 INVERSE_DESIGN_HEATFLUX = 6, /*!< \brief Heat flux objective function definition (inverse design). */
2231 TOTAL_HEATFLUX = 7, /*!< \brief Total heat flux. */
2232 MAXIMUM_HEATFLUX = 8, /*!< \brief Maximum heat flux. */
2233 AVG_TEMPERATURE = 70, /*!< \brief Total averaged temperature. */
2234 MOMENT_X_COEFFICIENT = 9, /*!< \brief Pitching moment objective function definition. */
2235 MOMENT_Y_COEFFICIENT = 10, /*!< \brief Rolling moment objective function definition. */
2236 MOMENT_Z_COEFFICIENT = 11, /*!< \brief Yawing objective function definition. */
2237 EQUIVALENT_AREA = 12, /*!< \brief Equivalent area objective function definition. */
2238 NEARFIELD_PRESSURE = 13, /*!< \brief NearField Pressure objective function definition. */
2239 FORCE_X_COEFFICIENT = 14, /*!< \brief X-direction force objective function definition. */
2240 FORCE_Y_COEFFICIENT = 15, /*!< \brief Y-direction force objective function definition. */
2241 FORCE_Z_COEFFICIENT = 16, /*!< \brief Z-direction force objective function definition. */
2242 THRUST_COEFFICIENT = 17, /*!< \brief Thrust objective function definition. */
2243 TORQUE_COEFFICIENT = 18, /*!< \brief Torque objective function definition. */
2244 FIGURE_OF_MERIT = 19, /*!< \brief Rotor Figure of Merit objective function definition. */
2245 BUFFET_SENSOR = 20, /*!< \brief Sensor for detecting separation. */
2246 SURFACE_TOTAL_PRESSURE = 28, /*!< \brief Total Pressure objective function definition. */
2247 SURFACE_STATIC_PRESSURE = 29, /*!< \brief Static Pressure objective function definition. */
2248 SURFACE_STATIC_TEMPERATURE = 57, /*!< \brief Static Temperature objective function definition. */
2249 SURFACE_MASSFLOW = 30, /*!< \brief Mass Flow Rate objective function definition. */
2250 SURFACE_MACH = 51, /*!< \brief Mach number objective function definition. */
2251 SURFACE_UNIFORMITY = 52, /*!< \brief Flow uniformity objective function definition. */
2252 SURFACE_SECONDARY = 53, /*!< \brief Secondary flow strength objective function definition. */
2253 SURFACE_MOM_DISTORTION = 54, /*!< \brief Momentum distortion objective function definition. */
2254 SURFACE_SECOND_OVER_UNIFORM = 55, /*!< \brief Secondary over uniformity (relative secondary strength) objective function definition. */
2255 SURFACE_PRESSURE_DROP = 56, /*!< \brief Pressure drop objective function definition. */
2256 SURFACE_SPECIES_0 = 58, /*!< \brief Surface Avg. Species_0 objective function definition. */
2257 SURFACE_SPECIES_VARIANCE = 59,/*!< \brief Species Variance objective function definition. */
2258 CUSTOM_OBJFUNC = 31, /*!< \brief Custom objective function definition. */
2259 REFERENCE_GEOMETRY = 60, /*!< \brief Norm of displacements with respect to target geometry. */
2260 REFERENCE_NODE = 61, /*!< \brief Objective function defined as the difference of a particular node respect to a reference position. */
2261 VOLUME_FRACTION = 62, /*!< \brief Volume average physical density, for material-based topology optimization applications. */
2262 TOPOL_DISCRETENESS = 63, /*!< \brief Measure of the discreteness of the current topology. */
2263 TOPOL_COMPLIANCE = 64, /*!< \brief Measure of the discreteness of the current topology. */
2264 STRESS_PENALTY = 65, /*!< \brief Penalty function of VM stresses above a maximum value. */
2265 ENTROPY_GENERATION = 80, /*!< \brief Entropy generation turbomachinery objective function. */
2266 TOTAL_PRESSURE_LOSS = 81, /*!< \brief Total pressure loss turbomachinery objective function. */
2267 KINETIC_ENERGY_LOSS = 82 /*!< \breif Kinetic energy loss coefficient turbomachinery objective function. */
2269static const MapType<std::string, ENUM_OBJECTIVE> Objective_Map = {
2270 MakePair("DRAG", DRAG_COEFFICIENT)
2271 MakePair("LIFT", LIFT_COEFFICIENT)
2272 MakePair("SIDEFORCE", SIDEFORCE_COEFFICIENT)
2273 MakePair("EFFICIENCY", EFFICIENCY)
2274 MakePair("INVERSE_DESIGN_PRESSURE", INVERSE_DESIGN_PRESSURE)
2275 MakePair("INVERSE_DESIGN_HEATFLUX", INVERSE_DESIGN_HEATFLUX)
2276 MakePair("MOMENT_X", MOMENT_X_COEFFICIENT)
2277 MakePair("MOMENT_Y", MOMENT_Y_COEFFICIENT)
2278 MakePair("MOMENT_Z", MOMENT_Z_COEFFICIENT)
2279 MakePair("EQUIVALENT_AREA", EQUIVALENT_AREA)
2280 MakePair("NEARFIELD_PRESSURE", NEARFIELD_PRESSURE)
2281 MakePair("FORCE_X", FORCE_X_COEFFICIENT)
2282 MakePair("FORCE_Y", FORCE_Y_COEFFICIENT)
2283 MakePair("FORCE_Z", FORCE_Z_COEFFICIENT)
2284 MakePair("THRUST", THRUST_COEFFICIENT)
2285 MakePair("TORQUE", TORQUE_COEFFICIENT)
2286 MakePair("TOTAL_HEATFLUX", TOTAL_HEATFLUX)
2287 MakePair("MAXIMUM_HEATFLUX", MAXIMUM_HEATFLUX)
2288 MakePair("AVG_TEMPERATURE", AVG_TEMPERATURE)
2289 MakePair("FIGURE_OF_MERIT", FIGURE_OF_MERIT)
2290 MakePair("BUFFET", BUFFET_SENSOR)
2291 MakePair("SURFACE_TOTAL_PRESSURE", SURFACE_TOTAL_PRESSURE)
2292 MakePair("SURFACE_STATIC_PRESSURE", SURFACE_STATIC_PRESSURE)
2293 MakePair("SURFACE_STATIC_TEMPERATURE", SURFACE_STATIC_TEMPERATURE)
2294 MakePair("SURFACE_MASSFLOW", SURFACE_MASSFLOW)
2295 MakePair("SURFACE_MACH", SURFACE_MACH)
2296 MakePair("SURFACE_UNIFORMITY", SURFACE_UNIFORMITY)
2297 MakePair("SURFACE_SECONDARY", SURFACE_SECONDARY)
2298 MakePair("SURFACE_MOM_DISTORTION", SURFACE_MOM_DISTORTION)
2299 MakePair("SURFACE_SECOND_OVER_UNIFORM", SURFACE_SECOND_OVER_UNIFORM)
2300 MakePair("SURFACE_PRESSURE_DROP", SURFACE_PRESSURE_DROP)
2301 MakePair("SURFACE_SPECIES_0", SURFACE_SPECIES_0)
2302 MakePair("SURFACE_SPECIES_VARIANCE", SURFACE_SPECIES_VARIANCE)
2303 MakePair("CUSTOM_OBJFUNC", CUSTOM_OBJFUNC)
2304 MakePair("REFERENCE_GEOMETRY", REFERENCE_GEOMETRY)
2305 MakePair("REFERENCE_NODE", REFERENCE_NODE)
2306 MakePair("VOLUME_FRACTION", VOLUME_FRACTION)
2307 MakePair("TOPOL_DISCRETENESS", TOPOL_DISCRETENESS)
2308 MakePair("TOPOL_COMPLIANCE", TOPOL_COMPLIANCE)
2309 MakePair("STRESS_PENALTY", STRESS_PENALTY)
2310 MakePair("ENTROPY_GENERATION", ENTROPY_GENERATION)
2311 MakePair("TOTAL_PRESSURE_LOSS", TOTAL_PRESSURE_LOSS)
2312 MakePair("KINETIC_ENERGY_LOSS", KINETIC_ENERGY_LOSS)
2313};
2314
2315/*!
2316 * \brief Types of grid file formats
2317 */
2319 SU2 = 1, /*!< \brief SU2 ascii format. */
2320 SU2_BIN = 2, /*!< \brief SU2 binary format. */
2321 CGNS_GRID = 3, /*!< \brief CGNS format for the computational grid. */
2322 RECTANGLE = 4, /*!< \brief 2D rectangular mesh with N x M points of size Lx x Ly. */
2323 BOX = 5 /*!< \brief 3D box mesh with N x M x L points of size Lx x Ly x Lz. */
2325static const MapType<std::string, ENUM_GRID> Input_Map = {
2326 MakePair("SU2", ENUM_GRID::SU2)
2329 MakePair("RECTANGLE", ENUM_GRID::RECTANGLE)
2330 MakePair("BOX", ENUM_GRID::BOX)
2331};
2332static const MapType<std::string, ENUM_GRID> OutputMesh_Map = {
2333 MakePair("SU2", ENUM_GRID::SU2)
2335};
2336
2337/*!
2338 * \brief Type of solution output file formats
2339 */
2340enum class OUTPUT_TYPE {
2341 TECPLOT_ASCII, /*!< \brief Tecplot format for the solution output. */
2342 TECPLOT_BINARY, /*!< \brief Tecplot binary format for the solution output. */
2343 SURFACE_TECPLOT_ASCII, /*!< \brief Tecplot format for the solution output. */
2344 SURFACE_TECPLOT_BINARY, /*!< \brief Tecplot binary format for the solution output. */
2345 CSV, /*!< \brief Comma-separated values format for the solution output. */
2346 SURFACE_CSV, /*!< \brief Comma-separated values format for the solution output. */
2347 PARAVIEW_ASCII, /*!< \brief Paraview ASCII format for the solution output. */
2348 PARAVIEW_LEGACY_BINARY, /*!< \brief Paraview binary format for the solution output. */
2349 SURFACE_PARAVIEW_ASCII, /*!< \brief Paraview ASCII format for the solution output. */
2350 SURFACE_PARAVIEW_LEGACY_BINARY, /*!< \brief Paraview binary format for the solution output. */
2351 MESH, /*!< \brief SU2 ASCII mesh format. */
2352 MESH_BINARY, /*!< \brief SU2 binary mesh format. */
2353 RESTART_BINARY, /*!< \brief SU2 binary restart format. */
2354 RESTART_ASCII, /*!< \brief SU2 ASCII restart format. */
2355 PARAVIEW_XML, /*!< \brief Paraview XML with binary data format */
2356 SURFACE_PARAVIEW_XML, /*!< \brief Surface Paraview XML with binary data format */
2357 PARAVIEW_MULTIBLOCK, /*!< \brief Paraview XML Multiblock */
2358 CGNS, /*!< \brief CGNS format. */
2359 SURFACE_CGNS, /*!< \brief CGNS format. */
2360 STL_ASCII, /*!< \brief STL ASCII format for surface solution output. */
2361 STL_BINARY, /*!< \brief STL binary format for surface solution output. Not implemented yet. */
2362};
2363static const MapType<std::string, OUTPUT_TYPE> Output_Map = {
2364 MakePair("TECPLOT_ASCII", OUTPUT_TYPE::TECPLOT_ASCII)
2366 MakePair("SURFACE_TECPLOT_ASCII", OUTPUT_TYPE::SURFACE_TECPLOT_ASCII)
2369 MakePair("SURFACE_CSV", OUTPUT_TYPE::SURFACE_CSV)
2370 MakePair("PARAVIEW_ASCII", OUTPUT_TYPE::PARAVIEW_ASCII)
2372 MakePair("SURFACE_PARAVIEW_ASCII", OUTPUT_TYPE::SURFACE_PARAVIEW_ASCII)
2373 MakePair("SURFACE_PARAVIEW_LEGACY", OUTPUT_TYPE::SURFACE_PARAVIEW_LEGACY_BINARY)
2375 MakePair("SURFACE_PARAVIEW", OUTPUT_TYPE::SURFACE_PARAVIEW_XML)
2376 MakePair("PARAVIEW_MULTIBLOCK", OUTPUT_TYPE::PARAVIEW_MULTIBLOCK)
2378 MakePair("MESH_BINARY", OUTPUT_TYPE::MESH_BINARY)
2379 MakePair("RESTART_ASCII", OUTPUT_TYPE::RESTART_ASCII)
2382 MakePair("SURFACE_CGNS", OUTPUT_TYPE::SURFACE_CGNS)
2383 MakePair("STL_ASCII", OUTPUT_TYPE::STL_ASCII)
2384 MakePair("STL_BINARY", OUTPUT_TYPE::STL_BINARY)
2385};
2386
2387/*!
2388 * \brief Return true if format is one of the Paraview options.
2389 */
2390inline bool isParaview(OUTPUT_TYPE format) {
2391 switch(format) {
2399 return true;
2400 default:
2401 return false;
2402 }
2403}
2404
2405/*!
2406 * \brief Return true if format is one of the Tecplot options.
2407 */
2408inline bool isTecplot(OUTPUT_TYPE format) {
2409 switch(format) {
2414 return true;
2415 default:
2416 return false;
2417 }
2418}
2419
2420/*!
2421 * \brief Type of solution output file formats
2422 */
2423enum class TAB_OUTPUT {
2424 TAB_CSV, /*!< \brief Comma-separated values format for the solution output. */
2425 TAB_TECPLOT /*!< \brief Tecplot format for the solution output. */
2426};
2427static const MapType<std::string, TAB_OUTPUT> TabOutput_Map = {
2430};
2431
2432/*!
2433 * \brief Floating-point type of the fields of the volume and surface files (CGNS and Paraview XML).
2434 */
2436 SINGLE, /*!< \brief Single precision (float). */
2437 DOUBLE /*!< \brief Double precision (double). */
2438};
2439static const MapType<std::string, VOLUME_OUTPUT_PRECISION> VolumeOutputPrecision_Map = {
2442};
2443
2444/*!
2445 * \brief Type of volume sensitivity file formats (inout to SU2_DOT)
2446 */
2448 SU2_NATIVE = 1, /*!< \brief SU2 native binary format for the volume sensitivity input. */
2449 UNORDERED_ASCII = 2 /*!< \brief Unordered ASCII list (x,y,z,dJ/dx,dJ/dy/dJ/dz) format for the volume sensitivity input. */
2451static const MapType<std::string, ENUM_SENSITIVITY> Sensitivity_Map = {
2452 MakePair("SU2_NATIVE", SU2_NATIVE)
2453 MakePair("UNORDERED_ASCII", UNORDERED_ASCII)
2454};
2455
2456/*!
2457 * \brief Type of jump definition
2458 */
2460 DIFFERENCE = 1, /*!< \brief Jump given by a difference in values. */
2461 RATIO = 2 /*!< \brief Jump given by a ratio. */
2463static const MapType<std::string, JUMP_DEFINITION> Jump_Map = {
2464 MakePair("DIFFERENCE", DIFFERENCE)
2465 MakePair("RATIO", RATIO)
2466};
2467
2468/*!
2469 * \brief Type of multigrid cycle
2470 */
2471enum class MG_CYCLE {
2472 V, /*!< \brief V-cycle multigrid solver. */
2473 W, /*!< \brief W-cycle multigrid solver. */
2474 FULL, /*!< \brief Full multigrid (FMG) solver. */
2475};
2476
2477static const MapType<std::string, MG_CYCLE> MG_Cycle_Map = {
2478 MakePair("V_CYCLE", MG_CYCLE::V)
2479 MakePair("W_CYCLE", MG_CYCLE::W)
2480 MakePair("FULLMG_CYCLE", MG_CYCLE::FULL)
2481};
2482/*!
2483 * \brief Types of design parameterizations
2484 */
2486 NO_DEFORMATION = 0, /*!< \brief No deformation. */
2487 TRANSLATION = 1, /*!< \brief Surface movement as design variable. */
2488 ROTATION = 2, /*!< \brief Surface rotation as design variable. */
2489 SCALE = 3, /*!< \brief Surface rotation as design variable. */
2490 FFD_SETTING = 10, /*!< \brief No surface deformation. */
2491 FFD_CONTROL_POINT = 11, /*!< \brief Free form deformation for 3D design (change a control point). */
2492 FFD_NACELLE = 12, /*!< \brief Free form deformation for 3D design (change a control point). */
2493 FFD_GULL = 13, /*!< \brief Free form deformation for 3D design (change a control point). */
2494 FFD_CAMBER = 14, /*!< \brief Free form deformation for 3D design (camber change). */
2495 FFD_TWIST = 15, /*!< \brief Free form deformation for 3D design (change the twist angle of a section). */
2496 FFD_THICKNESS = 16, /*!< \brief Free form deformation for 3D design (thickness change). */
2497 FFD_ROTATION = 18, /*!< \brief Free form deformation for 3D design (rotation around a line). */
2498 FFD_CONTROL_POINT_2D = 19, /*!< \brief Free form deformation for 2D design (change a control point). */
2499 FFD_CAMBER_2D = 20, /*!< \brief Free form deformation for 3D design (camber change). */
2500 FFD_THICKNESS_2D = 21, /*!< \brief Free form deformation for 3D design (thickness change). */
2501 FFD_CONTROL_SURFACE = 23, /*!< \brief Free form deformation for 3D design (control surface). */
2502 FFD_ANGLE_OF_ATTACK = 24, /*!< \brief Angle of attack for FFD problem. */
2503 HICKS_HENNE = 30, /*!< \brief Hicks-Henne bump function for airfoil deformation. */
2504 PARABOLIC = 31, /*!< \brief Parabolic airfoil definition as design variables. */
2505 NACA_4DIGITS = 32, /*!< \brief The four digits NACA airfoil family as design variables. */
2506 AIRFOIL = 33, /*!< \brief Airfoil definition as design variables. */
2507 CST = 34, /*!< \brief CST method with Kulfan parameters for airfoil deformation. */
2508 SURFACE_BUMP = 35, /*!< \brief Surfacebump function for flat surfaces deformation. */
2509 SURFACE_FILE = 36, /*!< \brief Nodal coordinates for surface set using a file (external parameterization). */
2510 HICKS_HENNE_CAMBER = 37, /*!< \brief Hicks-Henne bump function for camber line deformation. */
2511 DV_EFIELD = 40, /*!< \brief Electric field in deformable membranes. */
2516 TRANSLATE_GRID = 50, /*!< \brief Translate the volume grid. */
2517 ROTATE_GRID = 51, /*!< \brief Rotate the volume grid */
2518 SCALE_GRID = 52, /*!< \brief Scale the volume grid. */
2519 ANGLE_OF_ATTACK = 101 /*!< \brief Angle of attack for airfoils. */
2521static const MapType<std::string, ENUM_PARAM> Param_Map = {
2522 MakePair("FFD_SETTING", FFD_SETTING)
2523 MakePair("FFD_CONTROL_POINT_2D", FFD_CONTROL_POINT_2D)
2524 MakePair("FFD_ANGLE_OF_ATTACK", FFD_ANGLE_OF_ATTACK)
2525 MakePair("FFD_CAMBER_2D", FFD_CAMBER_2D)
2526 MakePair("FFD_THICKNESS_2D", FFD_THICKNESS_2D)
2527 MakePair("HICKS_HENNE", HICKS_HENNE)
2528 MakePair("HICKS_HENNE_CAMBER", HICKS_HENNE_CAMBER)
2529 MakePair("SURFACE_BUMP", SURFACE_BUMP)
2530 MakePair("ANGLE_OF_ATTACK", ANGLE_OF_ATTACK)
2531 MakePair("NACA_4DIGITS", NACA_4DIGITS)
2532 MakePair("TRANSLATION", TRANSLATION)
2533 MakePair("ROTATION", ROTATION)
2534 MakePair("SCALE", SCALE)
2535 MakePair("FFD_CONTROL_POINT", FFD_CONTROL_POINT)
2536 MakePair("FFD_ROTATION", FFD_ROTATION)
2537 MakePair("FFD_CONTROL_SURFACE", FFD_CONTROL_SURFACE)
2538 MakePair("FFD_NACELLE", FFD_NACELLE)
2539 MakePair("FFD_GULL", FFD_GULL)
2540 MakePair("FFD_TWIST", FFD_TWIST)
2541 MakePair("FFD_CAMBER", FFD_CAMBER)
2542 MakePair("FFD_THICKNESS", FFD_THICKNESS)
2543 MakePair("PARABOLIC", PARABOLIC)
2544 MakePair("AIRFOIL", AIRFOIL)
2545 MakePair("SURFACE_FILE", SURFACE_FILE)
2546 MakePair("NO_DEFORMATION", NO_DEFORMATION)
2547 MakePair("CST", CST)
2548 MakePair("ELECTRIC_FIELD", DV_EFIELD)
2549 MakePair("YOUNG_MODULUS", DV_YOUNG)
2550 MakePair("POISSON_RATIO", DV_POISSON)
2551 MakePair("STRUCTURAL_DENSITY", DV_RHO)
2552 MakePair("DEAD_WEIGHT", DV_RHO_DL)
2553 MakePair("TRANSLATE_GRID", TRANSLATE_GRID)
2554 MakePair("ROTATE_GRID", ROTATE_GRID)
2555 MakePair("SCALE_GRID", SCALE_GRID)
2556};
2557
2558/*!
2559 * \brief Types of FFD Blending function
2560 */
2562 BSPLINE_UNIFORM = 0, /*!< \brief BSpline blending */
2563 BEZIER = 1, /*!< \brief Bezier blending */
2564};
2565static const MapType<std::string, ENUM_FFD_BLENDING> Blending_Map = {
2566 MakePair("BSPLINE_UNIFORM", BSPLINE_UNIFORM)
2567 MakePair("BEZIER", BEZIER)
2568};
2569
2570/*!
2571 * \brief Types of solvers for solving linear systems
2572 */
2574 CONJUGATE_GRADIENT, /*!< \brief Preconditionated conjugate gradient method for grid deformation. */
2575 BCGSTAB, /*!< \brief BCGSTAB - Biconjugate Gradient Stabilized Method (main solver). */
2576 FGMRES, /*!< \brief Flexible Generalized Minimal Residual method. */
2577 RESTARTED_FGMRES, /*!< \brief Flexible Generalized Minimal Residual method with restart. */
2578 FGCRODR, /*!< \brief Flexible Generalized Conjugate Residual Method with Inner Orthogonalization and Deflated Restarting. */
2579 SMOOTHER, /*!< \brief Iterative smoother. */
2580 PASTIX_LDLT, /*!< \brief PaStiX LDLT (complete) factorization. */
2581 PASTIX_LU, /*!< \brief PaStiX LU (complete) factorization. */
2582};
2583static const MapType<std::string, ENUM_LINEAR_SOLVER> Linear_Solver_Map = {
2584 MakePair("CONJUGATE_GRADIENT", CONJUGATE_GRADIENT)
2585 MakePair("BCGSTAB", BCGSTAB)
2586 MakePair("FGMRES", FGMRES)
2587 MakePair("RESTARTED_FGMRES", RESTARTED_FGMRES)
2588 MakePair("FGCRODR", FGCRODR)
2589 MakePair("SMOOTHER", SMOOTHER)
2590 MakePair("PASTIX_LDLT", PASTIX_LDLT)
2591 MakePair("PASTIX_LU", PASTIX_LU)
2592};
2593
2594/*!
2595 * \brief Inner solver for nested linear solver, only compatible with "flexible" linear solvers.
2596 */
2598 NONE, /*!< \brief Do not use a nested linear solver. */
2599 BCGSTAB, /*!< \brief Use BCGSTAB as the preconditioning linear solver. */
2600 SMOOTHER, /*!< \brief Iterative smoother. */
2601};
2602static const MapType<std::string, LINEAR_SOLVER_INNER> Inner_Linear_Solver_Map = {
2606};
2607
2608
2609/*!
2610 * \brief Types surface continuity at the intersection with the FFD
2611 */
2613 DERIVATIVE_NONE = 0, /*!< \brief No derivative continuity. */
2614 DERIVATIVE_1ST = 1, /*!< \brief First derivative continuity. */
2615 DERIVATIVE_2ND = 2, /*!< \brief Second derivative continuity. */
2616 USER_INPUT = 3 /*!< \brief User input. */
2618static const MapType<std::string, ENUM_FFD_CONTINUITY> Continuity_Map = {
2619 MakePair("NO_DERIVATIVE", DERIVATIVE_NONE)
2620 MakePair("1ST_DERIVATIVE", DERIVATIVE_1ST)
2621 MakePair("2ND_DERIVATIVE", DERIVATIVE_2ND)
2622 MakePair("USER_INPUT", USER_INPUT)
2623};
2624
2625/*!
2626 * \brief Types of coordinates systems for the FFD
2627 */
2629 CARTESIAN = 0, /*!< \brief Cartesian coordinate system. */
2630 CYLINDRICAL = 1, /*!< \brief Cylindrical coordinate system. */
2631 SPHERICAL = 2, /*!< \brief Spherical coordinate system. */
2632 POLAR = 3 /*!< \brief Polar coordinate system. */
2634static const MapType<std::string, ENUM_FFD_COORD_SYSTEM> CoordSystem_Map = {
2635 MakePair("CARTESIAN", CARTESIAN)
2636 MakePair("CYLINDRICAL", CYLINDRICAL)
2637 MakePair("SPHERICAL", SPHERICAL)
2638 MakePair("POLAR", POLAR)
2639};
2640
2641/*!
2642 * \brief Types of sensitivity smoothing
2643 */
2645 NO_SMOOTH = 0, /*!< \brief No smoothing. */
2646 SOBOLEV = 1, /*!< \brief Sobolev gradient smoothing. */
2647 BIGRID = 2 /*!< \brief Bi-grid technique smoothing. */
2649static const MapType<std::string, ENUM_SENS_SMOOTHING> Sens_Smoothing_Map = {
2650 MakePair("NONE", NO_SMOOTH)
2651 MakePair("SOBOLEV", SOBOLEV)
2652 MakePair("BIGRID", BIGRID)
2653};
2654
2655/*!
2656 * \brief Types of preconditioners for the linear solver
2657 */
2659 IDENTITY, /*!< \brief No preconditioner. */
2660 JACOBI, /*!< \brief Jacobi preconditioner. */
2661 LU_SGS, /*!< \brief LU SGS preconditioner. */
2662 LINELET, /*!< \brief Line implicit preconditioner. */
2663 ILU, /*!< \brief ILU(k) preconditioner. */
2664 Q_LU_SGS, /*!< \brief LU-SGS with quantized (int8) off-diagonal storage; L/U are never allocated as ScalarType. */
2665 Q_JACOBI, /*!< \brief Jacobi with quantized (int8) off-diagonal storage; same matvec quantization as Q_LU_SGS,
2666 the diagonal inverse is still computed and applied at full precision. */
2667 Q_IDENTITY, /*!< \brief No preconditioner, but the matrix-vector product still uses quantized (int8)
2668 off-diagonal storage, same matvec quantization as Q_LU_SGS/Q_JACOBI. */
2669 PASTIX_ILU=10, /*!< \brief PaStiX ILU(k) preconditioner. */
2670 PASTIX_LU_P, /*!< \brief PaStiX LU as preconditioner. */
2671 PASTIX_LDLT_P, /*!< \brief PaStiX LDLT as preconditioner. */
2672};
2673static const MapType<std::string, ENUM_LINEAR_SOLVER_PREC> Linear_Solver_Prec_Map = {
2674 MakePair("NONE", IDENTITY)
2675 MakePair("IDENTITY", IDENTITY)
2676 MakePair("JACOBI", JACOBI)
2677 MakePair("LU_SGS", LU_SGS)
2678 MakePair("LINELET", LINELET)
2679 MakePair("ILU", ILU)
2680 MakePair("Q_LU_SGS", Q_LU_SGS)
2681 MakePair("Q_JACOBI", Q_JACOBI)
2682 MakePair("Q_IDENTITY", Q_IDENTITY)
2683 MakePair("PASTIX_ILU", PASTIX_ILU)
2684 MakePair("PASTIX_LU", PASTIX_LU_P)
2685 MakePair("PASTIX_LDLT", PASTIX_LDLT_P)
2686};
2687
2688/*!
2689 * \brief Types of analytic definitions for various geometries
2690 */
2692 NO_GEO_ANALYTIC = 0, /*!< \brief No analytic definition of the geometry. */
2693 NACA0012_AIRFOIL = 1, /*!< \brief Use the analytical definition of the NACA0012 for doing the grid adaptation. */
2694 NACA4412_AIRFOIL = 2, /*!< \brief Use the analytical definition of the NACA4412 for doing the grid adaptation. */
2695 CYLINDER = 3, /*!< \brief Use the analytical definition of a cylinder for doing the grid adaptation. */
2696 BIPARABOLIC = 4 /*!< \brief Use the analytical definition of a biparabolic airfoil for doing the grid adaptation. */
2698static const MapType<std::string, ENUM_GEO_ANALYTIC> Geo_Analytic_Map = {
2699 MakePair("NONE", NO_GEO_ANALYTIC)
2700 MakePair("NACA0012_AIRFOIL", NACA0012_AIRFOIL)
2701 MakePair("NACA4412_AIRFOIL", NACA4412_AIRFOIL)
2702 MakePair("CYLINDER", CYLINDER)
2703 MakePair("BIPARABOLIC", BIPARABOLIC)
2704};
2705
2706/*!
2707 * \brief Types of axis orientation
2708 */
2710 TWOD_AIRFOIL = 0, /*!< \brief Airfoil analysis. */
2711 WING = 1, /*!< \brief Wing analysis. */
2712 FUSELAGE = 2, /*!< \brief Fuselage analysis. */
2713 NACELLE = 3 /*!< \brief Nacelle analysis. */
2715static const MapType<std::string, ENUM_GEO_DESCRIPTION> Geo_Description_Map = {
2716 MakePair("AIRFOIL", TWOD_AIRFOIL)
2717 MakePair("WING", WING)
2718 MakePair("FUSELAGE", FUSELAGE)
2719 MakePair("NACELLE", NACELLE)
2720};
2721
2722/*!
2723 * \brief Types of schemes for unsteady computations
2724 */
2725enum class TIME_MARCHING {
2726 STEADY, /*!< \brief A steady computation. */
2727 TIME_STEPPING, /*!< \brief Use a time stepping strategy for unsteady computations. */
2728 DT_STEPPING_1ST, /*!< \brief Use a dual time stepping strategy for unsteady computations (1st order). */
2729 DT_STEPPING_2ND, /*!< \brief Use a dual time stepping strategy for unsteady computations (2nd order). */
2730 ROTATIONAL_FRAME, /*!< \brief Use a rotational source term. */
2731 HARMONIC_BALANCE, /*!< \brief Use a harmonic balance source term. */
2732};
2733static const MapType<std::string, TIME_MARCHING> TimeMarching_Map = {
2735 MakePair("TIME_STEPPING", TIME_MARCHING::TIME_STEPPING)
2736 MakePair("DUAL_TIME_STEPPING-1ST_ORDER", TIME_MARCHING::DT_STEPPING_1ST)
2737 MakePair("DUAL_TIME_STEPPING-2ND_ORDER", TIME_MARCHING::DT_STEPPING_2ND)
2738 MakePair("HARMONIC_BALANCE", TIME_MARCHING::HARMONIC_BALANCE)
2739 MakePair("ROTATIONAL_FRAME", TIME_MARCHING::ROTATIONAL_FRAME)
2740};
2741
2742/*!
2743 * \brief Types of element stiffnesses imposed for FEA mesh deformation
2744 */
2746 CONSTANT_STIFFNESS = 0, /*!< \brief Impose a constant stiffness for each element (steel). */
2747 INVERSE_VOLUME = 1, /*!< \brief Impose a stiffness for each element that is inversely proportional to cell volume. */
2748 SOLID_WALL_DISTANCE = 2 /*!< \brief Impose a stiffness for each element that is proportional to the distance from the solid surface. */
2750static const MapType<std::string, ENUM_DEFORM_STIFFNESS> Deform_Stiffness_Map = {
2751 MakePair("CONSTANT_STIFFNESS", CONSTANT_STIFFNESS)
2752 MakePair("INVERSE_VOLUME", INVERSE_VOLUME)
2753 MakePair("WALL_DISTANCE", SOLID_WALL_DISTANCE)
2754};
2755
2756/*!
2757 * \brief The direct differentation variables.
2758 */
2761 D_MACH = 1, /*!< \brief Derivative w.r.t. the Mach number */
2762 D_AOA = 2, /*!< \brief Derivative w.r.t. the angle of attack */
2763 D_PRESSURE = 3, /*!< \brief Derivative w.r.t. the freestream pressure */
2764 D_TEMPERATURE = 4, /*!< \brief Derivative w.r.t. the freestream temperature */
2765 D_DENSITY = 5, /*!< \brief Derivative w.r.t. the freestream density */
2766 D_TURB2LAM = 6, /*!< \brief Derivative w.r.t. the turb2lam */
2767 D_SIDESLIP = 7, /*!< \brief Derivative w.r.t. the sideslip angle */
2768 D_VISCOSITY = 8, /*!< \brief Derivative w.r.t. the viscosity */
2769 D_REYNOLDS = 9, /*!< \brief Derivative w.r.t. the reynolds number */
2770 D_DESIGN = 10, /*!< \brief Derivative w.r.t. the design?? */
2771 D_YOUNG = 11, /*!< \brief Derivative w.r.t. the Young's modulus */
2772 D_POISSON = 12, /*!< \brief Derivative w.r.t. the Poisson's ratio */
2773 D_RHO = 13, /*!< \brief Derivative w.r.t. the solid density (inertial) */
2774 D_RHO_DL = 14, /*!< \brief Derivative w.r.t. the density for dead loads */
2775 D_EFIELD = 15 /*!< \brief Derivative w.r.t. the electric field */
2777static const MapType<std::string, ENUM_DIRECTDIFF_VAR> DirectDiff_Var_Map = {
2778 MakePair("NONE", NO_DERIVATIVE)
2779 MakePair("MACH", D_MACH)
2780 MakePair("AOA", D_AOA)
2781 MakePair("PRESSURE", D_PRESSURE)
2782 MakePair("TEMPERATURE", D_TEMPERATURE)
2783 MakePair("DENSITY", D_DENSITY)
2784 MakePair("TURB2LAM", D_TURB2LAM)
2785 MakePair("SIDESLIP", D_SIDESLIP)
2786 MakePair("VISCOSITY", D_VISCOSITY)
2787 MakePair("REYNOLDS", D_REYNOLDS)
2788 MakePair("DESIGN_VARIABLES", D_DESIGN)
2789 MakePair("YOUNG_MODULUS", D_YOUNG)
2790 MakePair("POISSON_RATIO", D_POISSON)
2791 MakePair("STRUCTURAL_DENSITY", D_RHO)
2792 MakePair("STRUCTURAL_DEAD_LOAD", D_RHO_DL)
2793 MakePair("ELECTRIC_FIELD", D_EFIELD)
2794};
2795
2796/*!
2797 * \brief Types of tapes that can be checked in a tape debug run.
2798 */
2800 OBJECTIVE_FUNCTION, /*!< \brief Tape that only includes dependencies and objective function calculation. */
2801 FULL_SOLVER /*!< \brief Tape that includes dependencies and all solvers. */
2802};
2803static const MapType<std::string, CHECK_TAPE_TYPE> CheckTapeType_Map = {
2804 MakePair("OBJECTIVE_FUNCTION_TAPE", CHECK_TAPE_TYPE::OBJECTIVE_FUNCTION)
2805 MakePair("FULL_SOLVER_TAPE", CHECK_TAPE_TYPE::FULL_SOLVER)
2806};
2807
2808/*!
2809 * \brief Types of variables that can be checked for in a tape debug run.
2810 */
2812 SOLVER_VARIABLES, /*!< \brief A (debug) tag will be assigned to solver/conservative variables. */
2813 MESH_COORDINATES /*!< \brief A (debug) tag will be assigned to solver/conservative variables and mesh coordinates. */
2814};
2815static const MapType<std::string, CHECK_TAPE_VARIABLES> CheckTapeVariables_Map = {
2818};
2819
2827
2828/*!
2829 * \brief Types of input file formats
2830 */
2832 SU2_REF = 1, /*!< \brief SU2 input format (from a restart). */
2833 CUSTOM_REF = 2 /*!< \brief CGNS input format for the computational grid. */
2835static const MapType<std::string, ENUM_INPUT_REF> Input_Ref_Map = {
2836 MakePair("SU2", SU2_REF)
2837 MakePair("CUSTOM", CUSTOM_REF)
2838};
2839
2840/*!
2841 * \brief Vertex-based quantities exchanged during periodic marker communications.
2842 */
2844 PERIODIC_NONE , /*!< \brief No periodic communication required. */
2845 PERIODIC_VOLUME , /*!< \brief Volume communication for summing total CV (periodic only). */
2846 PERIODIC_NEIGHBORS , /*!< \brief Communication of the number of neighbors for centered schemes (periodic only). */
2847 PERIODIC_RESIDUAL , /*!< \brief Residual and Jacobian communication (periodic only). */
2848 PERIODIC_LAPLACIAN , /*!< \brief Undivided Laplacian communication for JST (periodic only). */
2849 PERIODIC_MAX_EIG , /*!< \brief Maximum eigenvalue communication (periodic only). */
2850 PERIODIC_SENSOR , /*!< \brief Dissipation sensor communication (periodic only). */
2851 PERIODIC_SOL_GG , /*!< \brief Solution gradient communication for Green-Gauss (periodic only). */
2852 PERIODIC_PRIM_GG , /*!< \brief Primitive gradient communication for Green-Gauss (periodic only). */
2853 PERIODIC_SOL_LS , /*!< \brief Solution gradient communication for weighted Least Squares (periodic only). */
2854 PERIODIC_PRIM_LS , /*!< \brief Primitive gradient communication for weighted Least Squares (periodic only). */
2855 PERIODIC_SOL_ULS , /*!< \brief Solution gradient communication for unwieghted Least Squares (periodic only). */
2856 PERIODIC_PRIM_ULS , /*!< \brief Primitive gradient communication for unweighted Least Squares (periodic only). */
2857 PERIODIC_SOL_GG_R , /*!< \brief Same but reconstruction. */
2858 PERIODIC_PRIM_GG_R , /*!< \brief Same but reconstruction. */
2859 PERIODIC_SOL_LS_R , /*!< \brief Same but reconstruction. */
2860 PERIODIC_PRIM_LS_R , /*!< \brief Same but reconstruction. */
2861 PERIODIC_SOL_ULS_R , /*!< \brief Same but reconstruction. */
2862 PERIODIC_PRIM_ULS_R , /*!< \brief Same but reconstruction. */
2863 PERIODIC_LIM_SOL_1 , /*!< \brief Solution limiter communication phase 1 of 2 (periodic only). */
2864 PERIODIC_LIM_SOL_2 , /*!< \brief Solution limiter communication phase 2 of 2 (periodic only). */
2865 PERIODIC_LIM_PRIM_1 , /*!< \brief Primitive limiter communication phase 1 of 2 (periodic only). */
2866 PERIODIC_LIM_PRIM_2 , /*!< \brief Primitive limiter communication phase 2 of 2 (periodic only). */
2867 PERIODIC_IMPLICIT , /*!< \brief Implicit update communication to ensure consistency across periodic boundaries. */
2868};
2869
2870/*!
2871 * \brief Vertex-based quantities exchanged in MPI point-to-point communications.
2872 */
2873enum class MPI_QUANTITIES {
2874 SOLUTION , /*!< \brief Conservative solution communication. */
2875 SOLUTION_OLD , /*!< \brief Conservative solution old communication. */
2876 SOLUTION_GRADIENT , /*!< \brief Conservative solution gradient communication. */
2877 SOLUTION_GRAD_REC , /*!< \brief Conservative solution reconstruction gradient communication. */
2878 SOLUTION_LIMITER , /*!< \brief Conservative solution limiter communication. */
2879 SOLUTION_GEOMETRY , /*!< \brief Geometry solution communication. */
2880 PRIMITIVE_GRADIENT , /*!< \brief Primitive gradient communication. */
2881 PRIMITIVE_GRAD_REC , /*!< \brief Primitive reconstruction gradient communication. */
2882 PRIMITIVE_LIMITER , /*!< \brief Primitive limiter communication. */
2883 UNDIVIDED_LAPLACIAN , /*!< \brief Undivided Laplacian communication. */
2884 MAX_EIGENVALUE , /*!< \brief Maximum eigenvalue communication. */
2885 SENSOR , /*!< \brief Dissipation sensor communication. */
2886 AUXVAR_GRADIENT , /*!< \brief Auxiliary variable gradient communication. */
2887 COORDINATES , /*!< \brief Vertex coordinates communication. */
2888 COORDINATES_OLD , /*!< \brief Old vertex coordinates communication. */
2889 MAX_LENGTH , /*!< \brief Maximum length communication. */
2890 GRID_VELOCITY , /*!< \brief Grid velocity communication. */
2891 SOLUTION_EDDY , /*!< \brief Turbulent solution plus eddy viscosity communication. */
2892 STOCH_SOURCE_LANG , /*!< \brief Stochastic source term for Langevin equations communication. */
2893 DES_LENGTHSCALE , /*!< \brief DES length scale communication. */
2894 SOLUTION_MATRIX , /*!< \brief Matrix solution communication. */
2895 SOLUTION_MATRIXTRANS , /*!< \brief Matrix transposed solution communication. */
2896 NEIGHBORS , /*!< \brief Neighbor point count communication (for JST). */
2897 SOLUTION_FEA , /*!< \brief FEA solution communication. */
2898 MESH_DISPLACEMENTS , /*!< \brief Mesh displacements at the interface. */
2899 SOLUTION_TIME_N , /*!< \brief Solution at time n. */
2900 SOLUTION_TIME_N1 , /*!< \brief Solution at time n-1. */
2901 MOM_COEFF , /*!< \brief Momentum coefficient for the Rhie-Chow scheme. */
2902 MOM_CORRECTION , /*!< \brief Momentum correction for the pressure-based poisson solver (used when computing HbyA). */
2903 HBYA_CORRECTION , /*!< \brief HbyA correction for the pressure-based poisson solver. */
2904};
2905
2906/*!
2907 * \brief MPI communication level
2908 */
2910 COMM_NONE = 0, /*!< \brief Disable all MPI comms. Purely for testing, as results are incorrect. */
2911 COMM_MINIMAL = 1, /*!< \brief Perform only the minimal set of MPI communications for correctness. Disables many console and output comms. */
2912 COMM_FULL = 2 /*!< \brief Perform all MPI communications. */
2914static const MapType<std::string, COMM_LEVEL> Comm_Map = {
2915 MakePair("NONE", COMM_NONE)
2916 MakePair("MINIMAL", COMM_MINIMAL)
2917 MakePair("FULL", COMM_FULL)
2918};
2919
2920/*!
2921 * \brief Types of filter kernels, initially intended for structural topology optimization applications
2922 */
2924 CONSTANT_WEIGHT, /*!< \brief Uniform weight. */
2925 CONICAL_WEIGHT, /*!< \brief Linear decay with distance from center point [Bruns and Tortorelli, 2001]. */
2926 GAUSSIAN_WEIGHT, /*!< \brief Bell shape around center point [Bruns and Tortorelli, 2003]. */
2927 DILATE_MORPH, /*!< \brief Continuous version of the dilate morphology operator [Sigmund 2007]. */
2928 ERODE_MORPH, /*!< \brief Continuous version of the erode morphology operator [Sigmund 2007].*/
2929};
2930static const MapType<std::string, ENUM_FILTER_KERNEL> Filter_Kernel_Map = {
2936};
2937
2938/*!
2939 * \brief Types of projection function, initially intended for structural topology optimization applications
2940 */
2942 NONE, /*!< \brief No projection. */
2943 HEAVISIDE_UP, /*!< \brief Project values towards 1. */
2944 HEAVISIDE_DOWN, /*!< \brief Project values towards 0. */
2945};
2946static const MapType<std::string, ENUM_PROJECTION_FUNCTION> Projection_Function_Map = {
2950};
2951
2952/*!
2953 * \brief the different validation solution
2954 */
2956 NONE, /*!< \brief No verification solution, standard solver mode. */
2957 INVISCID_VORTEX, /*!< \brief Inviscid vortex. Exact solution of the unsteady Euler equations. */
2958 RINGLEB, /*!< \brief Ringleb flow. Exact solution of the steady Euler equations. */
2959 NS_UNIT_QUAD, /*!< \brief Exact solution of the laminar Navier Stokes equations without heat conduction. */
2960 TAYLOR_GREEN_VORTEX, /*!< \brief Taylor Green Vortex. */
2961 INC_TAYLOR_GREEN_VORTEX, /*!< \brief Incompressible Taylor Green Vortex (2D). */
2962 MMS_NS_UNIT_QUAD, /*!< \brief Manufactured solution of the laminar Navier Stokes equations on a unit quad. */
2963 MMS_NS_UNIT_QUAD_WALL_BC, /*!< \brief Manufactured solution of the laminar Navier Stokes equations on a unit quad with wall BC's. */
2964 MMS_NS_TWO_HALF_CIRCLES, /*!< \brief Manufactured solution of the laminar Navier Stokes equations between two half circles. */
2965 MMS_NS_TWO_HALF_SPHERES, /*!< \brief Manufactured solution of the laminar Navier Stokes equations between two half spheres. */
2966 MMS_INC_EULER, /*!< \brief Manufactured solution of the incompressible Euler equations. */
2967 MMS_INC_NS, /*!< \brief Manufactured solution of the laminar incompressible Navier Stokes equations. */
2968 USER_DEFINED_SOLUTION, /*!< \brief User defined solution. */
2969};
2970static const MapType<std::string, VERIFICATION_SOLUTION> Verification_Solution_Map = {
2971 MakePair("NO_VERIFICATION_SOLUTION", VERIFICATION_SOLUTION::NONE)
2984};
2985
2986/*!
2987 * \brief Types of streamwise periodicity.
2988 */
2990 NONE, /*!< \brief No streamwise periodic flow. */
2991 PRESSURE_DROP, /*!< \brief Prescribed pressure drop. */
2992 MASSFLOW, /*!< \brief Prescribed massflow. */
2993};
2994static const MapType<std::string, ENUM_STREAMWISE_PERIODIC> Streamwise_Periodic_Map = {
2998};
2999
3000/*!
3001 * \brief Container to hold Variables for streamwise Periodic flow as they are often used together in places.
3002 */
3004 su2double Streamwise_Periodic_PressureDrop; /*!< \brief Value of prescribed pressure drop [Pa] which results in an artificial body force vector. */
3005 su2double Streamwise_Periodic_MassFlow; /*!< \brief Value of current massflow [kg/s] which results in a delta p and therefore an artificial body force vector. */
3006 su2double Streamwise_Periodic_IntegratedHeatFlow; /*!< \brief Value of of the net sum of heatflow [W] into the domain. */
3007 su2double Streamwise_Periodic_InletTemperature; /*!< \brief Area avg static Temp [K] at the periodic inlet. Used for adaptive outlet heatsink. */
3008 su2double Streamwise_Periodic_BoundaryArea; /*!< \brief Global Surface area of the streamwise periodic interface. */
3009 su2double Streamwise_Periodic_AvgDensity; /*!< \brief Area avg density on the periodic interface. */
3010};
3011
3012/*!
3013 * \brief Type of POD basis generation (for use with libROM)
3014 */
3015enum class POD_KIND {
3016 STATIC, /*!< \brief Use static SVD for POD basis generation. */
3017 INCREMENTAL, /*!< \brief Use incremental SVD for POD basis generation. */
3018};
3019static const MapType<std::string, POD_KIND> POD_Map = {
3020 MakePair("STATIC_POD", POD_KIND::STATIC)
3021 MakePair("INCREMENTAL_POD", POD_KIND::INCREMENTAL)
3022};
3023
3024/*!
3025 * \brief Type of operation for the linear system solver, changes the source of solver options.
3026 */
3028 STANDARD, /*!< \brief Operate in standard mode. */
3029 MESH_DEFORM, /*!< \brief Operate in mesh deformation mode. */
3030 GRADIENT_MODE, /*!< \brief Operate in gradient smoothing mode. */
3031 POISSON, /*!< \brief Operate in poisson solver mode. */
3032};
3033
3034/*!
3035 * \brief mode of operation for the sobolev smoothing solver.
3036 */
3038 NONE, /*!< \brief Default option if none is choosen. */
3039 PARAM_LEVEL_COMPLETE, /*!< \brief Operate on parameter level. */
3040 MESH_LEVEL, /*!< \brief Operate on mesh level. */
3041 ONLY_GRAD, /*!< \brief Flag to only compute the original gradient. */
3042};
3043static const MapType<std::string, ENUM_SOBOLEV_MODUS> Sobolev_Modus_Map = {
3045 MakePair("PARAM_LEVEL_COMPLETE", ENUM_SOBOLEV_MODUS::PARAM_LEVEL_COMPLETE)
3047 MakePair("ONLY_GRADIENT", ENUM_SOBOLEV_MODUS::ONLY_GRAD)
3048};
3049
3050/*!
3051 * \brief Type of mesh deformation
3052 */
3053enum class DEFORM_KIND {
3054 ELASTIC, /*!< \brief Linear elasticity method. */
3055 RBF /*!< \brief Radial basis function interpolation. */
3056};
3057static const MapType<std::string, DEFORM_KIND> Deform_Kind_Map = {
3058 MakePair("ELASTIC", DEFORM_KIND::ELASTIC)
3060};
3061
3062
3063#undef MakePair
3064/* END_CONFIG_ENUMS */
3065
3067private:
3068 std::vector<std::string> value;
3069public:
3070 virtual ~COptionBase() = default;
3071
3072 const std::vector<std::string>& GetValue() const {return value;}
3073
3074 virtual std::string SetValue(const std::vector<std::string>& val) {
3075 value = val;
3076 return "";
3077 }
3078 virtual void SetDefault() = 0;
3079
3080 std::string optionCheckMultipleValues(const std::vector<std::string>& option_value,
3081 std::string type_id, const std::string& option_name) {
3082 if (option_value.size() != 1) {
3083 std::string newString(option_name);
3084 newString.append(": multiple values for type ");
3085 newString.append(type_id);
3086 return newString;
3087 }
3088 return "";
3089 }
3090
3091 std::string badValue(std::string type_id, const std::string& option_name) {
3092 std::string newString(option_name);
3093 newString.append(": improper option value for type ");
3094 newString.append(type_id);
3095 return newString;
3096 }
3097};
3098
3099#ifdef ENABLE_MAPS
3100#include "option_structure.inl"
3101#endif
static void Error(const std::string &ErrorMsg, const std::string &FunctionName)
Definition mpi_structure.cpp:131
Definition option_structure.hpp:3066
virtual void SetDefault()=0
std::string badValue(std::string type_id, const std::string &option_name)
Definition option_structure.hpp:3091
std::string optionCheckMultipleValues(const std::vector< std::string > &option_value, std::string type_id, const std::string &option_name)
Definition option_structure.hpp:3080
const std::vector< std::string > & GetValue() const
Definition option_structure.hpp:3072
virtual ~COptionBase()=default
virtual std::string SetValue(const std::vector< std::string > &val)
Definition option_structure.hpp:3074
double passivedouble
Definition code_config.hpp:129
passivedouble su2double
Definition code_config.hpp:181
Headers of the mpi interface for generalized datatypes. The subroutines and functions are in the mpi_...
#define CURRENT_FUNCTION
Definition mpi_structure.hpp:59
const int MASTER_NODE
Master node for MPI parallelization.
Definition option_structure.hpp:112
WALL_SPECIES_TYPE
Types of wall species boundary conditions.
Definition option_structure.hpp:2017
@ FLUX
Neumann flux boundary condition for wall species.
@ VALUE
Dirichlet value boundary condition for wall species.
ENUM_GUST_TYPE
Type of wind gusts.
Definition option_structure.hpp:895
@ EOG
An extreme operating gust.
Definition option_structure.hpp:901
@ ONE_M_COSINE
1-cosine shaped gust
Definition option_structure.hpp:899
@ VORTEX
A gust made from vortices.
Definition option_structure.hpp:900
@ NO_GUST
No gust.
Definition option_structure.hpp:896
@ SINE
Sine shaped gust.
Definition option_structure.hpp:898
@ TOP_HAT
Top-hat function shaped gust
Definition option_structure.hpp:897
#define MakePair(a, b)
Definition option_structure.hpp:60
ENUM_GRID
Types of grid file formats.
Definition option_structure.hpp:2318
@ BOX
3D box mesh with N x M x L points of size Lx x Ly x Lz.
Definition option_structure.hpp:2323
@ SU2_BIN
SU2 binary format.
Definition option_structure.hpp:2320
@ SU2
SU2 ascii format.
Definition option_structure.hpp:2319
@ RECTANGLE
2D rectangular mesh with N x M points of size Lx x Ly.
Definition option_structure.hpp:2322
@ CGNS_GRID
CGNS format for the computational grid.
Definition option_structure.hpp:2321
WALL_FUNCTIONS
Types of wall functions.
Definition option_structure.hpp:1686
@ NONEQUILIBRIUM_MODEL
Non-equilibrium wall model for LES.
@ SCALABLE_FUNCTION
Scalable wall function.
@ LOGARITHMIC_MODEL
Logarithmic law-of-the-wall model for LES.
@ STANDARD_FUNCTION
Standard wall function.
@ EQUILIBRIUM_MODEL
Equilibrium wall model for LES.
@ NONE
No wall function treatment, integration to the wall. Default behavior.
@ ADAPTIVE_FUNCTION
Adaptive wall function. Formulation depends on y+.
WALL_TYPE
types of wall boundary condition - smooth or rough
Definition option_structure.hpp:2216
@ SMOOTH
Smooth wall.
@ ROUGH
Rough wall.
const int EL_QUAD
Elements of four nodes (2D).
Definition option_structure.hpp:617
TURB_FAMILY
Families of turbulence models.
Definition option_structure.hpp:1080
@ SA
Spalart-Allmaras variants.
@ NONE
No turbulence model.
@ KW
k-w models.
MUSCL_RAMP_TYPE
Definition option_structure.hpp:2126
@ SMOOTH_FUNCTION
flag for smooth cosine ramp
@ ITERATION
flag for linear iteration-based ramp
ENUM_HYBRIDRANSLES
Types of hybrid RANS/LES models.
Definition option_structure.hpp:1650
@ SA_EDDES
Kind of Hybrid RANS/LES (SA - Delayed DES (DDES) with Shear Layer Adapted SGS: Enhanced DDES).
Definition option_structure.hpp:1655
@ NO_HYBRIDRANSLES
No turbulence model.
Definition option_structure.hpp:1651
@ SA_DES
Kind of Hybrid RANS/LES (SA - Detached Eddy Simulation (DES)).
Definition option_structure.hpp:1652
@ SA_ZDES
Kind of Hybrid RANS/LES (SA - Delayed DES (DDES) with Vorticity based SGS like Zonal DES).
Definition option_structure.hpp:1654
@ SA_DDES
Kind of Hybrid RANS/LES (SA - Delayed DES (DDES) with Delta_max SGS ).
Definition option_structure.hpp:1653
constexpr unsigned short N_FACES_LINE
General output & CGNS defines.
Definition option_structure.hpp:152
TURB_SGS_MODEL
Types of subgrid scale models.
Definition option_structure.hpp:1616
@ VREMAN
Vreman SGS model.
@ SMAGORINSKY
Smagorinsky SGS model.
@ WALE
Wall-Adapting Local Eddy-viscosity SGS model.
@ NONE
No subgrid scale model.
@ IMPLICIT_LES
Implicit LES, i.e. no explicit SGS model.
const int FEA_TERM
Position of the finite element analysis terms in the numerics container array.
Definition option_structure.hpp:604
ANSWER
Boolean answers.
Definition option_structure.hpp:281
@ NO
Boolean definition of no.
Definition option_structure.hpp:283
@ YES
Boolean definition of yes.
Definition option_structure.hpp:284
@ NONE
Definition option_structure.hpp:282
const int SU2_RESTART_MAX_METADATA
Most metadata doubles a trailer ever had.
Definition option_structure.hpp:214
ENUM_SENSITIVITY
Type of volume sensitivity file formats (inout to SU2_DOT)
Definition option_structure.hpp:2447
@ UNORDERED_ASCII
Unordered ASCII list (x,y,z,dJ/dx,dJ/dy/dJ/dz) format for the volume sensitivity input.
Definition option_structure.hpp:2449
@ SU2_NATIVE
SU2 native binary format for the volume sensitivity input.
Definition option_structure.hpp:2448
int GetSU2BinaryMetadataSize(int precisionField, int metadataField)
Number of metadata scalars in the trailer of a native SU2 binary solution file.
Definition option_structure.hpp:240
FLAMELET_LOOKUP_OPS
Look-up operations for the flamelet scalar solver.
Definition option_structure.hpp:1531
@ LOOKUP
Passive look-up variables specified in config.
Definition option_structure.hpp:1535
@ SOURCES
Scalar source terms (controlling variables, passive species).
Definition option_structure.hpp:1534
@ THERMO
Thermochemical properties (temperature, density, diffusivity, etc.).
Definition option_structure.hpp:1532
@ PREFDIF
Preferential diffusion scalars.
Definition option_structure.hpp:1533
SU2_COMPONENT
Different software components of SU2.
Definition option_structure.hpp:66
@ SU2_DEF
Running the SU2_DEF software.
@ SU2_SOL
Running the SU2_SOL software.
@ SU2_DOT
Running the SU2_DOT software.
@ SU2_GEO
Running the SU2_GEO software.
@ SU2_CFD
Running the SU2_CFD software.
FREESTREAM_OPTION
Types of freestream specification.
Definition option_structure.hpp:769
@ DENSITY_FS
Density initalization.
@ TEMPERATURE_FS
Temperature initialization.
constexpr passivedouble TURB_EPS
Turbulent Error scale.
Definition option_structure.hpp:101
ENUM_DYN_TRANSFER_METHOD
Types of dynamic transfer methods.
Definition option_structure.hpp:1879
@ SIGMOID_10
The load is transferred using a sigmoid with parameter 10.
Definition option_structure.hpp:1884
@ POL_ORDER_1
The load is transferred using a ramp.
Definition option_structure.hpp:1881
@ INSTANTANEOUS
No ramp, load is transfer instantaneously.
Definition option_structure.hpp:1880
@ POL_ORDER_3
The load is transferred using an order 3 polynomial function.
Definition option_structure.hpp:1882
@ SIGMOID_20
The load is transferred using a sigmoid with parameter 20.
Definition option_structure.hpp:1885
@ POL_ORDER_5
The load is transferred using an order 5 polynomial function.
Definition option_structure.hpp:1883
ENUM_FFD_BLENDING
Types of FFD Blending function.
Definition option_structure.hpp:2561
@ BSPLINE_UNIFORM
BSpline blending.
Definition option_structure.hpp:2562
@ BEZIER
Bezier blending.
Definition option_structure.hpp:2563
ENUM_DIRECTDIFF_VAR
The direct differentation variables.
Definition option_structure.hpp:2759
@ D_AOA
Derivative w.r.t. the angle of attack.
Definition option_structure.hpp:2762
@ D_EFIELD
Derivative w.r.t. the electric field.
Definition option_structure.hpp:2775
@ D_TEMPERATURE
Derivative w.r.t. the freestream temperature.
Definition option_structure.hpp:2764
@ D_PRESSURE
Derivative w.r.t. the freestream pressure.
Definition option_structure.hpp:2763
@ D_DESIGN
Derivative w.r.t. the design??
Definition option_structure.hpp:2770
@ D_REYNOLDS
Derivative w.r.t. the reynolds number.
Definition option_structure.hpp:2769
@ D_POISSON
Derivative w.r.t. the Poisson's ratio.
Definition option_structure.hpp:2772
@ D_DENSITY
Derivative w.r.t. the freestream density.
Definition option_structure.hpp:2765
@ D_VISCOSITY
Derivative w.r.t. the viscosity.
Definition option_structure.hpp:2768
@ D_RHO_DL
Derivative w.r.t. the density for dead loads.
Definition option_structure.hpp:2774
@ D_MACH
Derivative w.r.t. the Mach number.
Definition option_structure.hpp:2761
@ D_TURB2LAM
Derivative w.r.t. the turb2lam.
Definition option_structure.hpp:2766
@ NO_DERIVATIVE
Definition option_structure.hpp:2760
@ D_YOUNG
Derivative w.r.t. the Young's modulus.
Definition option_structure.hpp:2771
@ D_SIDESLIP
Derivative w.r.t. the sideslip angle.
Definition option_structure.hpp:2767
@ D_RHO
Derivative w.r.t. the solid density (inertial)
Definition option_structure.hpp:2773
ENUM_LINEAR_SOLVER
Types of solvers for solving linear systems.
Definition option_structure.hpp:2573
@ FGMRES
Flexible Generalized Minimal Residual method.
Definition option_structure.hpp:2576
@ BCGSTAB
BCGSTAB - Biconjugate Gradient Stabilized Method (main solver).
Definition option_structure.hpp:2575
@ FGCRODR
Flexible Generalized Conjugate Residual Method with Inner Orthogonalization and Deflated Restarting.
Definition option_structure.hpp:2578
@ CONJUGATE_GRADIENT
Preconditionated conjugate gradient method for grid deformation.
Definition option_structure.hpp:2574
@ PASTIX_LU
PaStiX LU (complete) factorization.
Definition option_structure.hpp:2581
@ RESTARTED_FGMRES
Flexible Generalized Minimal Residual method with restart.
Definition option_structure.hpp:2577
@ SMOOTHER
Iterative smoother.
Definition option_structure.hpp:2579
@ PASTIX_LDLT
PaStiX LDLT (complete) factorization.
Definition option_structure.hpp:2580
DIFFUSIVITYMODEL
types of mass diffusivity models
Definition option_structure.hpp:841
@ FLAMELET
flamelet model for tabulated chemistry, diffusivity from lookup table
@ CONSTANT_SCHMIDT
Constant Schmidt number for mass diffusion in scalar transport.
@ CONSTANT_LEWIS
Different Lewis number model for mass diffusion in scalar transport.
@ CONSTANT_DIFFUSIVITY
Constant mass diffusivity for scalar transport.
@ UNITY_LEWIS
Unity Lewis model for mass diffusion in scalar transport.
const int SU2_RESTART_HEADER_SIZE
Number of ints in the header.
Definition option_structure.hpp:211
ENUM_TIME_INT
Type of time integration schemes.
Definition option_structure.hpp:1708
@ EULER_IMPLICIT
Implicit Euler time integration definition.
Definition option_structure.hpp:1711
@ CLASSICAL_RK4_EXPLICIT
Classical RK4 time integration definition.
Definition option_structure.hpp:1712
@ ADER_DG
ADER-DG time integration definition.
Definition option_structure.hpp:1713
@ RUNGE_KUTTA_EXPLICIT
Explicit Runge-Kutta time integration definition.
Definition option_structure.hpp:1709
@ EULER_EXPLICIT
Explicit Euler time integration definition.
Definition option_structure.hpp:1710
constexpr unsigned short N_POINTS_LINE
General output & CGNS defines.
Definition option_structure.hpp:143
void SU2BinaryDataToPassive(const void *buffer, int scalarSize, unsigned long count, passivedouble *data)
Convert floating point data read from a native SU2 binary solution file, which may have been written ...
Definition option_structure.hpp:253
ENUM_GASMODEL
types of gas models
Definition option_structure.hpp:674
@ N2
Definition option_structure.hpp:680
@ AIR21
Definition option_structure.hpp:678
@ AIR7
Definition option_structure.hpp:677
@ ARGON
Definition option_structure.hpp:676
@ ARGON_SID
Definition option_structure.hpp:682
@ ONESPECIES
Definition option_structure.hpp:683
@ O2
Definition option_structure.hpp:679
@ NO_MODEL
Definition option_structure.hpp:675
@ AIR5
Definition option_structure.hpp:681
const int SOURCE_SECOND_TERM
Position of the second source term in the numerics container array.
Definition option_structure.hpp:599
RAMP_COEFF
Coefficients of the ramp specified in the config, ordered by index in the config.
Definition option_structure.hpp:2139
@ UPDATE_FREQ
Definition option_structure.hpp:2141
@ FINAL_ITER
Definition option_structure.hpp:2142
@ INITIAL_VALUE
intial value of the ramp
Definition option_structure.hpp:2140
TRANSCOEFFMODEL
types of coefficient transport model
Definition option_structure.hpp:713
TURBO_PERF_KIND
Types of Turbomachinery performance Type.
Definition option_structure.hpp:2089
@ PROPELLOR
Propellor Performance.
@ TURBINE
Turbine Performance.
@ COMPRESSOR
Compressor Performance.
constexpr unsigned short N_POINTS_HEXAHEDRON
General output & CGNS defines.
Definition option_structure.hpp:147
constexpr unsigned short N_POINTS_PRISM
General output & CGNS defines.
Definition option_structure.hpp:149
ENUM_ADER_PREDICTOR
Type of predictor for the ADER-DG time integration scheme.
Definition option_structure.hpp:1726
@ ADER_ALIASED_PREDICTOR
Aliased predictor, easiest to do.
Definition option_structure.hpp:1727
@ ADER_NON_ALIASED_PREDICTOR
Non-aliased predictor. Consistent, but more difficult.
Definition option_structure.hpp:1728
CHECK_TAPE_VARIABLES
Types of variables that can be checked for in a tape debug run.
Definition option_structure.hpp:2811
@ SOLVER_VARIABLES
A (debug) tag will be assigned to solver/conservative variables.
@ MESH_COORDINATES
A (debug) tag will be assigned to solver/conservative variables and mesh coordinates.
STRUCT_SPACE_ITE
Type of time integration schemes.
Definition option_structure.hpp:1766
@ NEWTON
Full Newton-Rapshon method.
@ MOD_NEWTON
Modified Newton-Raphson method.
constexpr passivedouble STANDARD_GRAVITY
Acceleration due to gravity at surface of earth.
Definition option_structure.hpp:94
ENUM_SPACE
Types of spatial discretizations.
Definition option_structure.hpp:630
@ SPACE_UPWIND
Upwind convective numerical method.
Definition option_structure.hpp:633
@ NO_CONVECTIVE
No convective scheme is used.
Definition option_structure.hpp:631
@ FINITE_ELEMENT
Finite element convective numerical method.
Definition option_structure.hpp:634
@ SPACE_CENTERED
Space centered convective numerical method.
Definition option_structure.hpp:632
SA_ParsedOptions ParseSAOptions(const SA_OPTIONS *SA_Options, unsigned short nSA_Options, int rank)
Function to parse SA options.
Definition option_structure.hpp:1306
const unsigned int INST_0
Definition of the first instance per grid level.
Definition option_structure.hpp:92
SA_OPTIONS
SA Options.
Definition option_structure.hpp:1264
@ QCR2000
Quadratic constitutive relation.
@ NEG
Negative SA.
@ COMP
Compressibility correction.
@ EXP
Allow experimental combinations of options (according to TMR).
@ NONE
No option / default.
@ FT2
Use FT2 term.
@ EDW
Edwards version.
@ ROT
Rotation correction.
@ BC
Bas-Cakmakcioclu transition.
ENUM_DEFORM_STIFFNESS
Types of element stiffnesses imposed for FEA mesh deformation.
Definition option_structure.hpp:2745
@ INVERSE_VOLUME
Impose a stiffness for each element that is inversely proportional to cell volume.
Definition option_structure.hpp:2747
@ CONSTANT_STIFFNESS
Impose a constant stiffness for each element (steel).
Definition option_structure.hpp:2746
@ SOLID_WALL_DISTANCE
Impose a stiffness for each element that is proportional to the distance from the solid surface.
Definition option_structure.hpp:2748
const int SU2_RESTART_METADATA_IDX
Position of the legacy metadata count.
Definition option_structure.hpp:213
UPWIND
Types of upwind spatial discretizations.
Definition option_structure.hpp:954
@ HLLC
HLLC numerical method.
@ ROE
Roe's upwind numerical method.
@ FDS
Flux difference splitting upwind method (incompressible flows).
@ SLAU
Simple Low-Dissipation AUSM numerical method.
@ AUSMPLUSUP2
AUSM+ -up2 numerical method (All Speed)
@ AUSM
AUSM numerical method.
@ LMROE
Rieper's Low Mach ROE numerical method .
@ MSW
Modified Steger-Warming method.
@ SW
Steger-Warming method.
@ CONVECTIVE_TEMPLATE
Template for new numerical method .
@ BOUNDED_SCALAR
Scalar advection numerical method.
@ SCALAR_UPWIND
Scalar upwind numerical method.
@ TURKEL
Roe-Turkel's upwind numerical method.
@ LAX_FRIEDRICH
Lax-Friedrich numerical method.
@ SLAU2
Simple Low-Dissipation AUSM 2 numerical method.
@ NONE
No upwind scheme is used.
@ L2ROE
L2ROE numerical method .
@ AUSMPLUSUP
AUSM+ -up numerical method (All Speed)
@ UDS
Upwind Difference Scheme used for pressure based solver.
constexpr unsigned short N_FACES_TRIANGLE
General output & CGNS defines.
Definition option_structure.hpp:153
BGS_RELAXATION
Kinds of relaxation for multizone problems.
Definition option_structure.hpp:1865
@ AITKEN
Relaxation using Aitken's dynamic parameter.
@ NONE
No relaxation in the strongly coupled approach.
@ FIXED
Relaxation with a fixed parameter.
@ MAX_SOLS
Definition option_structure.hpp:80
ENUM_GUST_DIR
Type of wind direction.
Definition option_structure.hpp:915
@ X_DIR
Gust direction-X.
Definition option_structure.hpp:916
@ Z_DIR
Gust direction-Z.
Definition option_structure.hpp:918
@ Y_DIR
Gust direction-Y.
Definition option_structure.hpp:917
ENUM_REGIME
different regime modes
Definition option_structure.hpp:517
@ INCOMPRESSIBLE
Definition of incompressible solver.
ACTDISK_TYPE
Types actuator disk boundary treatments.
Definition option_structure.hpp:2192
@ VARIABLES_JUMP
User specifies the variables jump.
Definition option_structure.hpp:2193
@ BLADE_ELEMENT
User specifies to use Blade element method.
Definition option_structure.hpp:2200
@ POWER
User specifies the power.
Definition option_structure.hpp:2198
@ VARIABLE_LOAD
User specifies the load distribution.
Definition option_structure.hpp:2199
@ BC_THRUST
User specifies the BC thrust.
Definition option_structure.hpp:2194
@ DRAG_MINUS_THRUST
User specifies the D-T.
Definition option_structure.hpp:2196
@ NET_THRUST
User specifies the Net thrust.
Definition option_structure.hpp:2195
@ MASSFLOW
User specifies the massflow.
Definition option_structure.hpp:2197
ENUM_GEO_DESCRIPTION
Types of axis orientation.
Definition option_structure.hpp:2709
@ TWOD_AIRFOIL
Airfoil analysis.
Definition option_structure.hpp:2710
@ NACELLE
Nacelle analysis.
Definition option_structure.hpp:2713
@ WING
Wing analysis.
Definition option_structure.hpp:2711
@ FUSELAGE
Fuselage analysis.
Definition option_structure.hpp:2712
TURB_MODEL
Types of turbulent models.
Definition option_structure.hpp:1066
@ SST
Kind of Turbulence model (Menter SST).
@ SA
Kind of Turbulent model (Spalart-Allmaras).
@ NONE
No turbulence model.
const unsigned int MESH_0
Definition of the finest grid level.
Definition option_structure.hpp:88
STRUCT_COMPRESS
Material compressibility.
Definition option_structure.hpp:399
@ NEARLY_INCOMP
Definition of nearly incompressible material.
@ COMPRESSIBLE
Definition of compressible material.
MAIN_SOLVER
different solver types for the CFD component
Definition option_structure.hpp:302
@ FEM_LES
Definition of the finite element Large Eddy Simulation Navier-Stokes' (LES) solver.
@ DISC_ADJ_FEM_NS
Definition of the discrete adjoint FEM Navier-Stokes' solver.
@ DISC_ADJ_RANS
Definition of the discrete adjoint Reynolds-averaged Navier-Stokes' (RANS) solver.
@ NAVIER_STOKES
Definition of the Navier-Stokes' solver.
@ DISC_ADJ_FEM
Definition of the discrete adjoint FEM solver.
@ DISC_ADJ_FEM_RANS
Definition of the discrete adjoint FEM Reynolds-averaged Navier-Stokes' (RANS) solver.
@ NEMO_NAVIER_STOKES
Definition of the NEMO NS solver.
@ DISC_ADJ_INC_RANS
Definition of the discrete adjoint incompressible Reynolds-averaged Navier-Stokes' (RANS) solver.
@ RANS
Definition of the Reynolds-averaged Navier-Stokes' (RANS) solver.
@ EULER
Definition of the Euler's solver.
@ DISC_ADJ_EULER
Definition of the discrete adjoint Euler solver.
@ DISC_ADJ_INC_EULER
Definition of the discrete adjoint incompressible Euler solver.
@ ADJ_NAVIER_STOKES
Definition of the continuous adjoint Navier-Stokes' solver.
@ INC_EULER
Definition of the incompressible Euler's solver.
@ INC_RANS
Definition of the incompressible Reynolds-averaged Navier-Stokes' (RANS) solver.
@ DISC_ADJ_INC_NAVIER_STOKES
Definition of the discrete adjoint incompressible Navier-Stokes'.
@ DISC_ADJ_FEM_EULER
Definition of the discrete adjoint FEM Euler solver.
@ NONE
Definition of no solver.
@ DISC_ADJ_HEAT
Definition of the discrete adjoint heat solver.
@ TEMPLATE_SOLVER
Definition of template solver.
@ INC_NAVIER_STOKES
Definition of the incompressible Navier-Stokes' solver.
@ FEM_EULER
Definition of the finite element Euler's solver.
@ FEM_RANS
Definition of the finite element Reynolds-averaged Navier-Stokes' (RANS) solver.
@ HEAT_EQUATION
Definition of the finite volume heat solver.
@ FEM_ELASTICITY
Definition of a FEM solver.
@ ADJ_EULER
Definition of the continuous adjoint Euler's solver.
@ FEM_NAVIER_STOKES
Definition of the finite element Navier-Stokes' solver.
@ POISSON_EQUATION
Definition of the Poisson equation solver.
@ DISC_ADJ_NAVIER_STOKES
Definition of the discrete adjoint Navier-Stokes' solver.
@ ADJ_RANS
Definition of the continuous adjoint Reynolds-averaged Navier-Stokes' (RANS) solver.
@ NEMO_EULER
Definition of the NEMO Euler solver.
ENUM_OBJECTIVE
Types of objective functions.
Definition option_structure.hpp:2224
@ TOTAL_HEATFLUX
Total heat flux.
Definition option_structure.hpp:2231
@ VOLUME_FRACTION
Volume average physical density, for material-based topology optimization applications.
Definition option_structure.hpp:2261
@ FORCE_Y_COEFFICIENT
Y-direction force objective function definition.
Definition option_structure.hpp:2240
@ SURFACE_SPECIES_VARIANCE
Species Variance objective function definition.
Definition option_structure.hpp:2257
@ SURFACE_MASSFLOW
Mass Flow Rate objective function definition.
Definition option_structure.hpp:2249
@ TORQUE_COEFFICIENT
Torque objective function definition.
Definition option_structure.hpp:2243
@ SURFACE_MACH
Mach number objective function definition.
Definition option_structure.hpp:2250
@ MAXIMUM_HEATFLUX
Maximum heat flux.
Definition option_structure.hpp:2232
@ THRUST_COEFFICIENT
Thrust objective function definition.
Definition option_structure.hpp:2242
@ SURFACE_MOM_DISTORTION
Momentum distortion objective function definition.
Definition option_structure.hpp:2253
@ SURFACE_SECOND_OVER_UNIFORM
Secondary over uniformity (relative secondary strength) objective function definition.
Definition option_structure.hpp:2254
@ ENTROPY_GENERATION
Entropy generation turbomachinery objective function.
Definition option_structure.hpp:2265
@ SURFACE_PRESSURE_DROP
Pressure drop objective function definition.
Definition option_structure.hpp:2255
@ BUFFET_SENSOR
Sensor for detecting separation.
Definition option_structure.hpp:2245
@ MOMENT_X_COEFFICIENT
Pitching moment objective function definition.
Definition option_structure.hpp:2234
@ AVG_TEMPERATURE
Total averaged temperature.
Definition option_structure.hpp:2233
@ SIDEFORCE_COEFFICIENT
Side force objective function definition.
Definition option_structure.hpp:2227
@ TOTAL_PRESSURE_LOSS
Total pressure loss turbomachinery objective function.
Definition option_structure.hpp:2266
@ LIFT_COEFFICIENT
Lift objective function definition.
Definition option_structure.hpp:2226
@ INVERSE_DESIGN_HEATFLUX
Heat flux objective function definition (inverse design).
Definition option_structure.hpp:2230
@ SURFACE_SECONDARY
Secondary flow strength objective function definition.
Definition option_structure.hpp:2252
@ SURFACE_SPECIES_0
Surface Avg. Species_0 objective function definition.
Definition option_structure.hpp:2256
@ INVERSE_DESIGN_PRESSURE
Pressure objective function definition (inverse design).
Definition option_structure.hpp:2229
@ EFFICIENCY
Efficiency objective function definition.
Definition option_structure.hpp:2228
@ FORCE_Z_COEFFICIENT
Z-direction force objective function definition.
Definition option_structure.hpp:2241
@ DRAG_COEFFICIENT
Drag objective function definition.
Definition option_structure.hpp:2225
@ TOPOL_DISCRETENESS
Measure of the discreteness of the current topology.
Definition option_structure.hpp:2262
@ NEARFIELD_PRESSURE
NearField Pressure objective function definition.
Definition option_structure.hpp:2238
@ SURFACE_TOTAL_PRESSURE
Total Pressure objective function definition.
Definition option_structure.hpp:2246
@ STRESS_PENALTY
Penalty function of VM stresses above a maximum value.
Definition option_structure.hpp:2264
@ MOMENT_Y_COEFFICIENT
Rolling moment objective function definition.
Definition option_structure.hpp:2235
@ FORCE_X_COEFFICIENT
X-direction force objective function definition.
Definition option_structure.hpp:2239
@ SURFACE_STATIC_TEMPERATURE
Static Temperature objective function definition.
Definition option_structure.hpp:2248
@ REFERENCE_GEOMETRY
Norm of displacements with respect to target geometry.
Definition option_structure.hpp:2259
@ KINETIC_ENERGY_LOSS
Definition option_structure.hpp:2267
@ TOPOL_COMPLIANCE
Measure of the discreteness of the current topology.
Definition option_structure.hpp:2263
@ CUSTOM_OBJFUNC
Custom objective function definition.
Definition option_structure.hpp:2258
@ EQUIVALENT_AREA
Equivalent area objective function definition.
Definition option_structure.hpp:2237
@ REFERENCE_NODE
Objective function defined as the difference of a particular node respect to a reference position.
Definition option_structure.hpp:2260
@ FIGURE_OF_MERIT
Rotor Figure of Merit objective function definition.
Definition option_structure.hpp:2244
@ SURFACE_STATIC_PRESSURE
Static Pressure objective function definition.
Definition option_structure.hpp:2247
@ SURFACE_UNIFORMITY
Flow uniformity objective function definition.
Definition option_structure.hpp:2251
@ MOMENT_Z_COEFFICIENT
Yawing objective function definition.
Definition option_structure.hpp:2236
FLAMELET_INIT_TYPE
Flame initialization options for the flamelet solver.
Definition option_structure.hpp:1552
@ SPARK
Species reaction rate in a set location.
@ FLAME_FRONT
Straight flame front.
@ NONE
No ignition, cold flow only.
const int MAT_NHCOMP
Position of the Neo-Hookean compressible material model.
Definition option_structure.hpp:607
TAB_OUTPUT
Type of solution output file formats.
Definition option_structure.hpp:2423
@ TAB_TECPLOT
Tecplot format for the solution output.
@ TAB_CSV
Comma-separated values format for the solution output.
ENUM_DATADRIVEN_METHOD
Types of interpolation methods for data-driven fluid models.
Definition option_structure.hpp:700
INC_OUTLET_TYPE
Types outlet boundary treatments.
Definition option_structure.hpp:2166
@ MASS_FLOW_OUTLET
Mass flow outlet for incompressible flow.
@ PRESSURE_OUTLET
Gauge pressure outlet for incompressible flow.
VISCOSITYMODEL
Types of viscosity model.
Definition option_structure.hpp:781
@ FLAMELET
LUT method for flamelets.
@ SUTHERLAND
Sutherlands Law viscosity.
@ CONSTANT
Constant viscosity.
@ COOLPROP
CoolProp viscosity.
@ POLYNOMIAL
Polynomial viscosity.
ENUM_INPUT_REF
Types of input file formats.
Definition option_structure.hpp:2831
@ CUSTOM_REF
CGNS input format for the computational grid.
Definition option_structure.hpp:2833
@ SU2_REF
SU2 input format (from a restart).
Definition option_structure.hpp:2832
INLET_INTERP_TYPE
type of radial spanwise interpolation data type for the inlet face
Definition option_structure.hpp:486
const unsigned int MAX_NUMBER_FFD
Maximum number of FFDBoxes for the FFD.
Definition option_structure.hpp:79
ENUM_PARAM
Types of design parameterizations.
Definition option_structure.hpp:2485
@ ROTATE_GRID
Rotate the volume grid.
Definition option_structure.hpp:2517
@ TRANSLATE_GRID
Translate the volume grid.
Definition option_structure.hpp:2516
@ FFD_TWIST
Free form deformation for 3D design (change the twist angle of a section).
Definition option_structure.hpp:2495
@ NO_DEFORMATION
No deformation.
Definition option_structure.hpp:2486
@ FFD_THICKNESS_2D
Free form deformation for 3D design (thickness change).
Definition option_structure.hpp:2500
@ DV_YOUNG
Definition option_structure.hpp:2512
@ FFD_ANGLE_OF_ATTACK
Angle of attack for FFD problem.
Definition option_structure.hpp:2502
@ FFD_ROTATION
Free form deformation for 3D design (rotation around a line).
Definition option_structure.hpp:2497
@ HICKS_HENNE_CAMBER
Hicks-Henne bump function for camber line deformation.
Definition option_structure.hpp:2510
@ FFD_NACELLE
Free form deformation for 3D design (change a control point).
Definition option_structure.hpp:2492
@ FFD_CAMBER_2D
Free form deformation for 3D design (camber change).
Definition option_structure.hpp:2499
@ SCALE
Surface rotation as design variable.
Definition option_structure.hpp:2489
@ HICKS_HENNE
Hicks-Henne bump function for airfoil deformation.
Definition option_structure.hpp:2503
@ PARABOLIC
Parabolic airfoil definition as design variables.
Definition option_structure.hpp:2504
@ DV_RHO
Definition option_structure.hpp:2514
@ SURFACE_FILE
Nodal coordinates for surface set using a file (external parameterization).
Definition option_structure.hpp:2509
@ ROTATION
Surface rotation as design variable.
Definition option_structure.hpp:2488
@ NACA_4DIGITS
The four digits NACA airfoil family as design variables.
Definition option_structure.hpp:2505
@ ANGLE_OF_ATTACK
Angle of attack for airfoils.
Definition option_structure.hpp:2519
@ FFD_GULL
Free form deformation for 3D design (change a control point).
Definition option_structure.hpp:2493
@ FFD_CAMBER
Free form deformation for 3D design (camber change).
Definition option_structure.hpp:2494
@ DV_RHO_DL
Definition option_structure.hpp:2515
@ DV_EFIELD
Electric field in deformable membranes.
Definition option_structure.hpp:2511
@ FFD_SETTING
No surface deformation.
Definition option_structure.hpp:2490
@ FFD_THICKNESS
Free form deformation for 3D design (thickness change).
Definition option_structure.hpp:2496
@ DV_POISSON
Definition option_structure.hpp:2513
@ FFD_CONTROL_SURFACE
Free form deformation for 3D design (control surface).
Definition option_structure.hpp:2501
@ SURFACE_BUMP
Surfacebump function for flat surfaces deformation.
Definition option_structure.hpp:2508
@ AIRFOIL
Airfoil definition as design variables.
Definition option_structure.hpp:2506
@ SCALE_GRID
Scale the volume grid.
Definition option_structure.hpp:2518
@ CST
CST method with Kulfan parameters for airfoil deformation.
Definition option_structure.hpp:2507
@ FFD_CONTROL_POINT
Free form deformation for 3D design (change a control point).
Definition option_structure.hpp:2491
@ TRANSLATION
Surface movement as design variable.
Definition option_structure.hpp:2487
@ FFD_CONTROL_POINT_2D
Free form deformation for 2D design (change a control point).
Definition option_structure.hpp:2498
GEO_TYPE
Types of geometric entities based on VTK nomenclature.
Definition option_structure.hpp:131
@ VERTEX
VTK nomenclature for defining a vertex element.
Definition option_structure.hpp:132
@ TRIANGLE
VTK nomenclature for defining a triangle element.
Definition option_structure.hpp:134
@ PYRAMID
VTK nomenclature for defining a pyramid element.
Definition option_structure.hpp:139
@ PRISM
VTK nomenclature for defining a prism element.
Definition option_structure.hpp:138
@ QUADRILATERAL
VTK nomenclature for defining a quadrilateral element.
Definition option_structure.hpp:135
@ HEXAHEDRON
VTK nomenclature for defining a hexahedron element.
Definition option_structure.hpp:137
@ LINE
VTK nomenclature for defining a line element.
Definition option_structure.hpp:133
@ TETRAHEDRON
VTK nomenclature for defining a tetrahedron element.
Definition option_structure.hpp:136
constexpr passivedouble STEFAN_BOLTZMANN
Stefan-Boltzmann constant in W/(m^2*K^4).
Definition option_structure.hpp:110
constexpr unsigned short N_POINTS_PYRAMID
General output & CGNS defines.
Definition option_structure.hpp:148
SST_OPTIONS
SST Options.
Definition option_structure.hpp:1103
@ COMP_Wilcox
Menter k-w SST model with Compressibility correction of Wilcox.
@ V
Menter k-w SST model with vorticity production terms.
@ DLL
Menter k-w SST model with dimensionless lower limit clipping of turbulence variables.
@ V1994m
1994m Menter k-w SST model.
@ KL
Menter k-w SST model with Kato-Launder production terms.
@ SUST
Menter k-w SST model with sustaining terms.
@ V1994
1994 Menter k-w SST model.
@ UQ
Menter k-w SST model with uncertainty quantification modifications.
@ COMP_Sarkar
Menter k-w SST model with Compressibility correction of Sarkar.
@ NONE
No SST Turb model.
@ V2003
2003 Menter k-w SST model.
@ V2003m
2003m Menter k-w SST model.
ENUM_GRIDMOVEMENT
Types of unsteady mesh motion.
Definition option_structure.hpp:860
@ STEADY_TRANSLATION
Simulation in a steadily translating frame.
Definition option_structure.hpp:864
@ NO_MOVEMENT
Simulation on a static mesh.
Definition option_structure.hpp:861
@ RIGID_MOTION
Simulation with rigid mesh motion (plunging/pitching/rotation).
Definition option_structure.hpp:862
@ ROTATING_FRAME
Simulation in a rotating frame.
Definition option_structure.hpp:863
@ GUST
Simulation on a static mesh with a gust.
Definition option_structure.hpp:865
CHT_COUPLING
Kinds of coupling methods at CHT interfaces. The first (temperature) part determines the BC method on...
Definition option_structure.hpp:1945
@ AVERAGED_TEMPERATURE_ROBIN_HEATFLUX
Definition option_structure.hpp:1949
@ AVERAGED_TEMPERATURE_NEUMANN_HEATFLUX
Definition option_structure.hpp:1947
@ DIRECT_TEMPERATURE_NEUMANN_HEATFLUX
Definition option_structure.hpp:1946
@ DIRECT_TEMPERATURE_ROBIN_HEATFLUX
Definition option_structure.hpp:1948
INIT_OPTION_INC
Types of initialization of the incompressible solver.
Definition option_structure.hpp:757
@ OPERATING_PRESSURE
Initialization with the operating (thermodynamic) pressure.
@ DENSITY_INIT
Initialization with the initial density.
ENUM_STREAMWISE_PERIODIC
Types of streamwise periodicity.
Definition option_structure.hpp:2989
@ PRESSURE_DROP
Prescribed pressure drop.
@ MASSFLOW
Prescribed massflow.
@ NONE
No streamwise periodic flow.
RIEMANN_TYPE
Types Riemann boundary treatments.
Definition option_structure.hpp:1961
@ RADIAL_EQUILIBRIUM
Definition option_structure.hpp:1971
@ STATIC_SUPERSONIC_INFLOW_PD
User specifies static pressure, static temperature, and Mach components.
Definition option_structure.hpp:1967
@ MASS_FLOW_OUTLET
Definition option_structure.hpp:1976
@ TOTAL_CONDITIONS_PT
User specifies total pressure, total temperature, and flow direction.
Definition option_structure.hpp:1962
@ MIXING_OUT
User does not specify anything; information is retrieved from the other domain.
Definition option_structure.hpp:1969
@ TOTAL_SUPERSONIC_INFLOW
User specifies total pressure, total temperature and Velocity components.
Definition option_structure.hpp:1965
@ MIXING_IN_1D
Definition option_structure.hpp:1974
@ DENSITY_VELOCITY
User specifies density and velocity, and flow direction.
Definition option_structure.hpp:1963
@ MIXING_OUT_1D
Definition option_structure.hpp:1975
@ MIXING_IN
User does not specify anything; information is retrieved from the other domain.
Definition option_structure.hpp:1968
@ STATIC_PRESSURE_1D
Definition option_structure.hpp:1973
@ SUPERSONIC_OUTFLOW
Definition option_structure.hpp:1970
@ STATIC_PRESSURE
User specifies static pressure.
Definition option_structure.hpp:1964
@ TOTAL_CONDITIONS_PT_1D
Definition option_structure.hpp:1972
@ STATIC_SUPERSONIC_INFLOW_PT
User specifies static pressure, static temperature, and Mach components.
Definition option_structure.hpp:1966
unsigned short nPointsOfElementType(unsigned short elementType)
Get the number of points of the element.
Definition option_structure.hpp:184
GEOMETRY_MODE
Types of action to perform when doing the geometry evaluation.
Definition option_structure.hpp:1802
@ FUNCTION
Geometrical analysis.
Definition option_structure.hpp:1803
@ GRADIENT
Geometrical analysis and gradient using finite differences.
Definition option_structure.hpp:1804
constexpr passivedouble STD_REF_TEMP
Standard reference temperature for enthalpy in Kelvin.
Definition option_structure.hpp:99
ENUM_MATRIX_COLORING
Types of matrix coloring to compute a sparse Jacobian matrix.
Definition option_structure.hpp:1026
@ GREEDY_COLORING
Greedy type of algorithm for the coloring.
Definition option_structure.hpp:1027
@ NATURAL_COLORING
One color for every DOF, very slow. Only to be used for debugging.
Definition option_structure.hpp:1028
TURBOMACHINERY_TYPE
Types of mixing process for averaging quantities at the boundaries.
Definition option_structure.hpp:2071
@ CENTRIPETAL
centripetal turbomachinery.
@ AXIAL
axial turbomachinery.
@ AXIAL_CENTRIFUGAL
mixed flow turbine.
@ CENTRIFUGAL
centrifugal turbomachinery.
@ CENTRIPETAL_AXIAL
mixed flow turbine.
ENUM_FFD_CONTINUITY
Types surface continuity at the intersection with the FFD.
Definition option_structure.hpp:2612
@ USER_INPUT
User input.
Definition option_structure.hpp:2616
@ DERIVATIVE_1ST
First derivative continuity.
Definition option_structure.hpp:2614
@ DERIVATIVE_2ND
Second derivative continuity.
Definition option_structure.hpp:2615
@ DERIVATIVE_NONE
No derivative continuity.
Definition option_structure.hpp:2613
FLAMELET_ENTHALPY_BC
Selects the source of wall/inlet enthalpy boundary conditions for the flamelet solver....
Definition option_structure.hpp:1571
@ SPECIES_MARKERS
Take inlet H directly from MARKER_INLET_SPECIES; walls from MARKER_WALL_SPECIES (default).
@ FLOW_MARKERS
Derive inlet H from MARKER_INLET T (LUT Newton); walls from MARKER_ISOTHERMAL/MARKER_HEATFLUX.
LIMITER
Types of slope limiters.
Definition option_structure.hpp:1038
@ VENKATAKRISHNAN
Slope limiter using Venkatakrisnan method (stencil formulation).
@ NISHIKAWA_R3
Slope limiter using Nishikawa's R3 method (stencil formulation).
@ NISHIKAWA_R4
Slope limiter using Nishikawa's R4 method (stencil formulation).
@ SHARP_EDGES
Slope limiter using sharp edges.
@ NISHIKAWA_R5
Slope limiter using Nishikawa's R5 method (stencil formulation).
@ VENKATAKRISHNAN_WANG
Slope limiter using Venkatakrisnan method, eps based on solution (stencil formulation).
@ VAN_ALBADA_EDGE
Slope limiter using Van Albada method (edge formulation).
@ WALL_DISTANCE
Slope limiter using wall distance.
@ NONE
No limiter.
@ BARTH_JESPERSEN
Slope limiter using Barth-Jespersen method (stencil formulation).
constexpr passivedouble PI_NUMBER
Pi number (not using M_PI to avoid Windows issues).
Definition option_structure.hpp:108
MG_CYCLE
Type of multigrid cycle.
Definition option_structure.hpp:2471
@ V
V-cycle multigrid solver.
@ W
W-cycle multigrid solver.
@ FULL
Full multigrid (FMG) solver.
MIXINGVISCOSITYMODEL
Types of Mixing viscosity model.
Definition option_structure.hpp:799
@ DAVIDSON
Davidson mixing viscosity model.
@ WILKE
Wilke mixing viscosity model.
const int SU2_CONN_SIZE
Size of the connectivity array that is allocated for each element that we read from a mesh file in th...
Definition option_structure.hpp:266
const int SOURCE_FIRST_TERM
Position of the first source term in the numerics container array.
Definition option_structure.hpp:598
INC_DENSITYMODEL
Types of density models.
Definition option_structure.hpp:729
@ FLAMELET
Density according to flamelet manifold.
@ CONSTANT
Constant density.
@ BOUSSINESQ
Boussinesq density model.
@ VARIABLE
Variable density model.
const int EL_TRIA
Elements of three nodes (2D).
Definition option_structure.hpp:616
FEM_SHOCK_CAPTURING_DG
Types of shock capturing method in Discontinuous Galerkin numerical method.
Definition option_structure.hpp:1014
@ NONE
Shock capturing is not used.
@ PERSSON
Per-Olof Persson's sub-cell shock capturing method.
constexpr int N_POLY_COEFFS
Number of coefficients in temperature polynomial fits for fluid models.
Definition option_structure.hpp:276
constexpr unsigned short N_FACES_PRISM
General output & CGNS defines.
Definition option_structure.hpp:157
TURBO_INTERFACE_KIND
Types of Turbomachinery interfaces.
Definition option_structure.hpp:2103
constexpr passivedouble COLORING_EFF_THRESH
Below this value fallback strategies are used instead.
Definition option_structure.hpp:270
constexpr unsigned short N_POINTS_QUADRILATERAL
General output & CGNS defines.
Definition option_structure.hpp:145
TIME_MARCHING
Types of schemes for unsteady computations.
Definition option_structure.hpp:2725
@ DT_STEPPING_1ST
Use a dual time stepping strategy for unsteady computations (1st order).
@ DT_STEPPING_2ND
Use a dual time stepping strategy for unsteady computations (2nd order).
@ ROTATIONAL_FRAME
Use a rotational source term.
@ HARMONIC_BALANCE
Use a harmonic balance source term.
@ STEADY
A steady computation.
@ TIME_STEPPING
Use a time stepping strategy for unsteady computations.
const unsigned int EXIT_DIVERGENCE
Exit code (divergence).
Definition option_structure.hpp:74
PBITER
Type of iteration.
Definition option_structure.hpp:423
@ SIMPLEC
SIMPLEC algorithm.
@ SIMPLE
SIMPLE algorithm.
RUNTIME_TYPE
different types of systems
Definition option_structure.hpp:558
@ RUNTIME_ADJFLOW_SYS
One-physics case, the code is solving the adjoint equations is being solved (Euler and Navier-Stokes)...
Definition option_structure.hpp:561
@ RUNTIME_FLOW_SYS
One-physics case, the code is solving the flow equations(Euler and Navier-Stokes).
Definition option_structure.hpp:559
@ RUNTIME_POISSON_SYS
One-physics case, the code is solving the poisson equation.
Definition option_structure.hpp:573
@ RUNTIME_FEA_SYS
One-physics case, the code is solving the FEA equation.
Definition option_structure.hpp:564
@ RUNTIME_ADJRAD_SYS
One-physics case, the code is solving the adjoint radiation model.
Definition option_structure.hpp:570
@ RUNTIME_HEAT_SYS
One-physics case, the code is solving the heat equation.
Definition option_structure.hpp:566
@ RUNTIME_TRANS_SYS
One-physics case, the code is solving the transition model.
Definition option_structure.hpp:568
@ RUNTIME_ADJSPECIES_SYS
One-physics case, the code is solving the adjoint species model.
Definition option_structure.hpp:572
@ RUNTIME_MULTIGRID_SYS
Full Approximation Storage Multigrid system of equations.
Definition option_structure.hpp:563
@ RUNTIME_TURB_SYS
One-physics case, the code is solving the turbulence model.
Definition option_structure.hpp:560
@ RUNTIME_RADIATION_SYS
One-physics case, the code is solving the radiation model.
Definition option_structure.hpp:569
@ RUNTIME_ADJHEAT_SYS
One-physics case, the code is solving the adjoint heat equation.
Definition option_structure.hpp:567
@ RUNTIME_SPECIES_SYS
One-physics case, the code is solving the species model.
Definition option_structure.hpp:571
@ RUNTIME_ADJTURB_SYS
One-physics case, the code is solving the adjoint turbulence model.
Definition option_structure.hpp:562
@ RUNTIME_ADJFEA_SYS
One-physics case, the code is solving the adjoint FEA equation.
Definition option_structure.hpp:565
constexpr unsigned short N_FACES_PYRAMID
General output & CGNS defines.
Definition option_structure.hpp:156
ENUM_ROELOWDISS
Types of Roe Low Dissipation Schemes.
Definition option_structure.hpp:1668
@ NTS
Numerical Blending of Travin and Shur.
Definition option_structure.hpp:1671
@ NO_ROELOWDISS
No Roe Low Dissipation model.
Definition option_structure.hpp:1669
@ NTS_DUCROS
Numerical Blending of Travin and Shur + Ducros' Shock Sensor.
Definition option_structure.hpp:1672
@ FD_DUCROS
Numerical Blending based on DDES's F_d function + Ducros' Shock Sensor.
Definition option_structure.hpp:1673
@ FD
Numerical Blending based on DDES's F_d function.
Definition option_structure.hpp:1670
bool isTecplot(OUTPUT_TYPE format)
Return true if format is one of the Tecplot options.
Definition option_structure.hpp:2408
const int EL_TRIA2
Elements of three nodes (2D), with second order gauss quadrature.
Definition option_structure.hpp:618
const int EL_TETRA2
Elements of four nodes, with second order gauss quadrature (3D).
Definition option_structure.hpp:624
ENUM_HEAT_TIMESTEP
Type of heat timestep calculation.
Definition option_structure.hpp:1738
@ MINIMUM
Local time stepping based on minimum lambda.
Definition option_structure.hpp:1739
@ CONVECTIVE
Local time stepping based on convective spectral radius.
Definition option_structure.hpp:1740
@ BYFLOW
Unsing the mean solvers time step.
Definition option_structure.hpp:1742
@ VISCOUS
Local time stepping based on viscous spectral radius.
Definition option_structure.hpp:1741
constexpr passivedouble BOLTZMANN_CONSTANT
Boltzmann's constant [J K^-1].
Definition option_structure.hpp:96
const int SU2_RESTART_PRECISION_IDX
Position of the precision field.
Definition option_structure.hpp:212
ENUM_FFD_COORD_SYSTEM
Types of coordinates systems for the FFD.
Definition option_structure.hpp:2628
@ CYLINDRICAL
Cylindrical coordinate system.
Definition option_structure.hpp:2630
@ POLAR
Polar coordinate system.
Definition option_structure.hpp:2632
@ CARTESIAN
Cartesian coordinate system.
Definition option_structure.hpp:2629
@ SPHERICAL
Spherical coordinate system.
Definition option_structure.hpp:2631
FLAMELET_PREF_DIFF_SCALARS
The preferential diffusion scalar indices for the preferential diffusion model.
Definition option_structure.hpp:1541
@ I_BETA_ENTH_THERMAL
Preferential diffusion scalar for temperature.
Definition option_structure.hpp:1543
@ I_BETA_MIXFRAC
Preferential diffusion scalar for mixture fraction.
Definition option_structure.hpp:1545
@ I_BETA_ENTH
Preferential diffusion scalar for total enthalpy.
Definition option_structure.hpp:1544
@ N_BETA_TERMS
Total number of preferential diffusion scalars.
Definition option_structure.hpp:1546
@ I_BETA_PROGVAR
Preferential diffusion scalar for the progress variable.
Definition option_structure.hpp:1542
const unsigned int ZONE_1
Definition of the second grid domain.
Definition option_structure.hpp:91
AVERAGE_TYPE
Average method for marker analyze.
Definition option_structure.hpp:290
@ AVERAGE_MASSFLUX
Mass-flux weighted average.
Definition option_structure.hpp:292
@ AVERAGE_AREA
Area-weighted average.
Definition option_structure.hpp:291
INTERFACE_INTERPOLATOR
Types of interpolators.
Definition option_structure.hpp:436
@ WEIGHTED_AVERAGE
Sliding Mesh Approach E. Rinaldi 2015.
@ ISOPARAMETRIC
Isoparametric interpolation, use CONSERVATIVE_INTERPOLATION=YES for conservative interpolation (S....
@ NEAREST_NEIGHBOR
Nearest Neigbhor interpolation.
@ RADIAL_BASIS_FUNCTION
Radial basis function interpolation.
const int EL_LINE
Types of finite elements (in 1D or 2D or 3D)
Definition option_structure.hpp:614
const unsigned int MAX_ZONES
Maximum number of zones.
Definition option_structure.hpp:82
CONDUCTIVITYMODEL
Types of thermal conductivity model.
Definition option_structure.hpp:811
@ FLAMELET
LUT method for flamelets.
@ CONSTANT_PRANDTL
Constant Prandtl number.
@ CONSTANT
Constant thermal conductivity.
@ COOLPROP
COOLPROP thermal conductivity.
@ POLYNOMIAL
Polynomial thermal conductivity.
const int VISC_TERM
Position of the viscous terms in the numerics container array.
Definition option_structure.hpp:597
RADIAL_BASIS
Types of radial basis functions.
Definition option_structure.hpp:452
@ GAUSSIAN
Gaussian basis function.
@ THIN_PLATE_SPLINE
Thin plate spline.
@ WENDLAND_C2
Wendland C2 radial basis function.
@ MULTI_QUADRIC
Multi quartic biharmonic spline.
@ INV_MULTI_QUADRIC
Inversed multi quartic biharmonic spline.
CHECK_TAPE_TYPE
Types of tapes that can be checked in a tape debug run.
Definition option_structure.hpp:2799
@ OBJECTIVE_FUNCTION
Tape that only includes dependencies and objective function calculation.
@ FULL_SOLVER
Tape that includes dependencies and all solvers.
ENUM_DVFEA
Kinds of Design Variables for FEA problems.
Definition option_structure.hpp:1899
@ NODV_FEA
No design variable for FEA problems.
Definition option_structure.hpp:1900
@ POISSON_RATIO
Poisson ratio (Nu) as design variable.
Definition option_structure.hpp:1902
@ DENSITY_VAL
Density (Rho) as design variable.
Definition option_structure.hpp:1903
@ DEAD_WEIGHT
Dead Weight (Rho_DL) as design variable.
Definition option_structure.hpp:1904
@ ELECTRIC_FIELD
Electric field (E) as design variable.
Definition option_structure.hpp:1905
@ YOUNG_MODULUS
Young modulus (E) as design variable.
Definition option_structure.hpp:1901
STRUCT_MODEL
Material model.
Definition option_structure.hpp:383
@ IDEAL_DE
Definition of ideal Dielectric Elastomer.
@ NEO_HOOKEAN
Definition of Neo-Hookean material.
@ KNOWLES
Definition of Knowles stored-energy potential.
@ LINEAR_ELASTIC
Definition of linear elastic material.
int GetSU2BinaryScalarSize(int precisionField)
Size in bytes of the floating point data of a native SU2 binary solution file.
Definition option_structure.hpp:223
constexpr passivedouble EPS
Error scale.
Definition option_structure.hpp:100
constexpr unsigned short N_FACES_TETRAHEDRON
General output & CGNS defines.
Definition option_structure.hpp:155
FLAMELET_SCALAR_SOURCES
the source terms for the flamelet method. At the moment only progress variable
Definition option_structure.hpp:1524
@ I_SRC_TOT_PROGVAR
Definition option_structure.hpp:1525
const int EL_PYRAM2
Elements of five nodes, with third order gauss quadrature (3D).
Definition option_structure.hpp:625
COMM_LEVEL
MPI communication level.
Definition option_structure.hpp:2909
@ COMM_NONE
Disable all MPI comms. Purely for testing, as results are incorrect.
Definition option_structure.hpp:2910
@ COMM_FULL
Perform all MPI communications.
Definition option_structure.hpp:2912
@ COMM_MINIMAL
Perform only the minimal set of MPI communications for correctness. Disables many console and output ...
Definition option_structure.hpp:2911
VERIFICATION_SOLUTION
the different validation solution
Definition option_structure.hpp:2955
@ MMS_INC_NS
Manufactured solution of the laminar incompressible Navier Stokes equations.
@ MMS_NS_TWO_HALF_SPHERES
Manufactured solution of the laminar Navier Stokes equations between two half spheres.
@ MMS_INC_EULER
Manufactured solution of the incompressible Euler equations.
@ MMS_NS_UNIT_QUAD_WALL_BC
Manufactured solution of the laminar Navier Stokes equations on a unit quad with wall BC's.
@ MMS_NS_TWO_HALF_CIRCLES
Manufactured solution of the laminar Navier Stokes equations between two half circles.
@ MMS_NS_UNIT_QUAD
Manufactured solution of the laminar Navier Stokes equations on a unit quad.
@ INC_TAYLOR_GREEN_VORTEX
Incompressible Taylor Green Vortex (2D).
@ RINGLEB
Ringleb flow. Exact solution of the steady Euler equations.
@ NS_UNIT_QUAD
Exact solution of the laminar Navier Stokes equations without heat conduction.
@ INVISCID_VORTEX
Inviscid vortex. Exact solution of the unsteady Euler equations.
@ USER_DEFINED_SOLUTION
User defined solution.
@ NONE
No verification solution, standard solver mode.
@ TAYLOR_GREEN_VORTEX
Taylor Green Vortex.
OUTPUT_TYPE
Type of solution output file formats.
Definition option_structure.hpp:2340
@ PARAVIEW_ASCII
Paraview ASCII format for the solution output.
@ RESTART_BINARY
SU2 binary restart format.
@ SURFACE_PARAVIEW_LEGACY_BINARY
Paraview binary format for the solution output.
@ CGNS
CGNS format.
@ PARAVIEW_XML
Paraview XML with binary data format.
@ TECPLOT_BINARY
Tecplot binary format for the solution output.
@ MESH
SU2 ASCII mesh format.
@ MESH_BINARY
SU2 binary mesh format.
@ SURFACE_CGNS
CGNS format.
@ SURFACE_PARAVIEW_ASCII
Paraview ASCII format for the solution output.
@ STL_BINARY
STL binary format for surface solution output. Not implemented yet.
@ PARAVIEW_LEGACY_BINARY
Paraview binary format for the solution output.
@ SURFACE_CSV
Comma-separated values format for the solution output.
@ SURFACE_TECPLOT_BINARY
Tecplot binary format for the solution output.
@ STL_ASCII
STL ASCII format for surface solution output.
@ CSV
Comma-separated values format for the solution output.
@ TECPLOT_ASCII
Tecplot format for the solution output.
@ SURFACE_TECPLOT_ASCII
Tecplot format for the solution output.
@ SURFACE_PARAVIEW_XML
Surface Paraview XML with binary data format.
@ RESTART_ASCII
SU2 ASCII restart format.
@ PARAVIEW_MULTIBLOCK
Paraview XML Multiblock.
FLAMELET_SCALAR_VARIABLES
Progress variable and enthalpy are the first and second entries in the lookup table.
Definition option_structure.hpp:1515
@ I_MIXFRAC
Definition option_structure.hpp:1518
@ I_PROGVAR
Definition option_structure.hpp:1516
@ I_ENTH
Definition option_structure.hpp:1517
STRUCT_TIME_INT
Type of time integration schemes.
Definition option_structure.hpp:1754
@ GENERALIZED_ALPHA
Support for implementing another implicit method.
@ NEWMARK_IMPLICIT
Implicit Newmark integration definition.
STRUCT_2DFORM
2D Formulation for structural problems
Definition option_structure.hpp:1853
@ PLANE_STRESS
Definition of plane stress solver.
@ PLANE_STRAIN
Definition of plane strain solver.
constexpr unsigned short N_FACES_MAXIMUM
Max. out of the above, used for static arrays, keep it up to date.
Definition option_structure.hpp:159
const int SINGLE_ZONE
There is only a zone.
Definition option_structure.hpp:114
SOLVER_TYPE
Definition option_structure.hpp:576
@ SPECIES_SOL
Position of the species solver.
Definition option_structure.hpp:588
@ TRANS_SOL
Position of the transition model solution in the solver container array.
Definition option_structure.hpp:581
@ MESH_SOL
Position of the mesh solver.
Definition option_structure.hpp:586
@ TEMPLATE_SOL
Position of the template solution.
Definition option_structure.hpp:593
@ ADJFEA_SOL
Position of the continuous adjoint Finite Element flow solution in the solver container array.
Definition option_structure.hpp:591
@ HEAT_SOL
Position of the heat equation in the solution solver array.
Definition option_structure.hpp:582
@ ADJSPECIES_SOL
Position of the adjoint of the species solver.
Definition option_structure.hpp:589
@ ADJHEAT_SOL
Position of the adjoint heat equation in the solution solver array.
Definition option_structure.hpp:583
@ POISSON_SOL
Position of the poisson solution in the solver container array.
Definition option_structure.hpp:592
@ ADJFLOW_SOL
Position of the continuous adjoint flow solution in the solver container array.
Definition option_structure.hpp:578
@ FLOW_SOL
Position of the mean flow solution in the solver container array.
Definition option_structure.hpp:577
@ TURB_SOL
Position of the turbulence model solution in the solver container array.
Definition option_structure.hpp:579
@ FEA_SOL
Position of the Finite Element flow solution in the solver container array.
Definition option_structure.hpp:590
@ ADJMESH_SOL
Position of the adjoint of the mesh solver.
Definition option_structure.hpp:587
@ ADJRAD_SOL
Position of the continuous adjoint turbulence solution in the solver container array.
Definition option_structure.hpp:585
@ ADJTURB_SOL
Position of the continuous adjoint turbulence solution in the solver container array.
Definition option_structure.hpp:580
@ RAD_SOL
Position of the radiation equation in the solution solver array.
Definition option_structure.hpp:584
constexpr passivedouble UNIVERSAL_GAS_CONSTANT
Universal gas constant in J/(mol*K)
Definition option_structure.hpp:95
const unsigned int OVERHEAD
Overhead space above nMarker when allocating space for boundary elems (MPI + periodic).
Definition option_structure.hpp:86
COMM_TYPE
Definition option_structure.hpp:116
@ CHAR
Communication type for char.
@ UNSIGNED_LONG
Communication type for unsigned long.
@ INT
Communication type for int.
@ UNSIGNED_SHORT
Communication type for unsigned short.
@ SHORT
Communication type for short.
@ PASSIVE_DOUBLE
Communication type for passivedouble.
@ LONG
Communication type for long.
@ FLOAT
Communication type for su2mixedfloat.
@ DOUBLE
Communication type for double.
constexpr passivedouble AVOGAD_CONSTANT
Avogadro's constant, number of particles in one kmole.
Definition option_structure.hpp:97
const int SINGLE_NODE
There is only a node in the MPI parallelization.
Definition option_structure.hpp:113
constexpr unsigned short N_POINTS_TRIANGLE
General output & CGNS defines.
Definition option_structure.hpp:144
const int CGNS_STRING_SIZE
Length of strings used in the CGNS format.
Definition option_structure.hpp:197
constexpr passivedouble FOUR3
Four divided by three.
Definition option_structure.hpp:106
ENUM_SURFACEMOVEMENT
Definition option_structure.hpp:875
@ DEFORMING
Simulation with deformation.
Definition option_structure.hpp:876
@ MOVING_WALL
Simulation with moving wall.
Definition option_structure.hpp:877
@ EXTERNAL
Simulation with external motion.
Definition option_structure.hpp:880
@ EXTERNAL_ROTATION
Simulation with external rotation motion.
Definition option_structure.hpp:881
@ AEROELASTIC
Simulation with aeroelastic motion.
Definition option_structure.hpp:878
@ AEROELASTIC_RIGID_MOTION
Simulation with rotation and aeroelastic motion.
Definition option_structure.hpp:879
const int DE_TERM
Position of the dielectric terms in the numerics container array.
Definition option_structure.hpp:605
ENUM_GEO_ANALYTIC
Types of analytic definitions for various geometries.
Definition option_structure.hpp:2691
@ BIPARABOLIC
Use the analytical definition of a biparabolic airfoil for doing the grid adaptation.
Definition option_structure.hpp:2696
@ NO_GEO_ANALYTIC
No analytic definition of the geometry.
Definition option_structure.hpp:2692
@ CYLINDER
Use the analytical definition of a cylinder for doing the grid adaptation.
Definition option_structure.hpp:2695
@ NACA0012_AIRFOIL
Use the analytical definition of the NACA0012 for doing the grid adaptation.
Definition option_structure.hpp:2693
@ NACA4412_AIRFOIL
Use the analytical definition of the NACA4412 for doing the grid adaptation.
Definition option_structure.hpp:2694
MIXINGPLANE_INTERFACE_TYPE
Types of mixing process for averaging quantities at the boundaries.
Definition option_structure.hpp:2045
@ LINEAR_INTERPOLATION
an mixed-out average is computed at the boundary of interest.
Definition option_structure.hpp:2048
@ MATCHING
an algebraic average is computed at the boundary of interest.
Definition option_structure.hpp:2046
@ NEAREST_SPAN
an area average is computed at the boundary of interest.
Definition option_structure.hpp:2047
const int SU2_CONN_SKIP
Offset to skip the globalID and VTK type at the start of the element connectivity list for each CGNS ...
Definition option_structure.hpp:268
constexpr passivedouble FUND_ELEC_CHARGE_CGS
Fundamental electric charge in CGS units, cm^(3/2) g^(1/2) s^(-1).
Definition option_structure.hpp:98
LINEAR_SOLVER_INNER
Inner solver for nested linear solver, only compatible with "flexible" linear solvers.
Definition option_structure.hpp:2597
@ BCGSTAB
Use BCGSTAB as the preconditioning linear solver.
@ SMOOTHER
Iterative smoother.
@ NONE
Do not use a nested linear solver.
CONDUCTIVITYMODEL_TURB
Types of turbulent thermal conductivity model.
Definition option_structure.hpp:829
@ CONSTANT_PRANDTL
Include contribution to effective conductivity using constant turbulent Prandtl number for RANS.
@ NONE
No turbulent contribution to the effective thermal conductivity for RANS.
const unsigned int MAX_TERMS
Maximum number of terms in the numerical equations (dimension of solver container array).
Definition option_structure.hpp:81
const unsigned int MESH_1
Definition of the finest grid level.
Definition option_structure.hpp:89
JUMP_DEFINITION
Type of jump definition.
Definition option_structure.hpp:2459
@ RATIO
Jump given by a ratio.
Definition option_structure.hpp:2461
@ DIFFERENCE
Jump given by a difference in values.
Definition option_structure.hpp:2460
STRUCT_DEFORMATION
Material geometric conditions.
Definition option_structure.hpp:371
@ LARGE
Definition of Neo-Hookean material.
@ SMALL
Definition of linear elastic material.
BC_TYPE
Types of boundary conditions.
Definition option_structure.hpp:1814
@ ENGINE_EXHAUST
Boundary nacelle exhaust.
Definition option_structure.hpp:1829
@ GILES_BOUNDARY
Giles Boundary definition.
Definition option_structure.hpp:1839
@ CUSTOM_BOUNDARY
custom boundary definition.
Definition option_structure.hpp:1822
@ INTERNAL_BOUNDARY
Internal Boundary definition.
Definition option_structure.hpp:1840
@ FAR_FIELD
Boundary far-field definition.
Definition option_structure.hpp:1816
@ EULER_WALL
Boundary Euler wall definition.
Definition option_structure.hpp:1815
@ ISOTHERMAL
No slip isothermal wall boundary condition.
Definition option_structure.hpp:1831
@ SMOLUCHOWSKI_MAXWELL
Smoluchoski/Maxwell wall boundary condition.
Definition option_structure.hpp:1846
@ CLAMPED_BOUNDARY
Clamped Boundary definition.
Definition option_structure.hpp:1836
@ SEND_RECEIVE
Boundary send-receive definition.
Definition option_structure.hpp:1847
@ INLET_FLOW
Boundary inlet flow definition.
Definition option_structure.hpp:1818
@ HEAT_TRANSFER
No slip heat transfer boundary condition.
Definition option_structure.hpp:1833
@ LOAD_SINE_BOUNDARY
Sine-waveBoundary Load definition.
Definition option_structure.hpp:1838
@ RIEMANN_BOUNDARY
Riemann Boundary definition.
Definition option_structure.hpp:1830
@ DISP_DIR_BOUNDARY
Boundary displacement definition.
Definition option_structure.hpp:1842
@ ACTDISK_OUTLET
Actuator disk outlet boundary definition.
Definition option_structure.hpp:1835
@ OUTLET_FLOW
Boundary outlet flow definition.
Definition option_structure.hpp:1819
@ SYMMETRY_PLANE
Boundary symmetry plane definition.
Definition option_structure.hpp:1817
@ SUPERSONIC_INLET
Boundary supersonic inlet definition.
Definition option_structure.hpp:1826
@ ENGINE_INFLOW
Boundary nacelle inflow.
Definition option_structure.hpp:1828
@ HEAT_FLUX
No slip constant heat flux wall boundary condition.
Definition option_structure.hpp:1832
@ MIXING_PLANE_INTERFACE
Definition option_structure.hpp:1844
@ DAMPER_BOUNDARY
Damper.
Definition option_structure.hpp:1843
@ DISPLACEMENT_BOUNDARY
Boundary displacement definition.
Definition option_structure.hpp:1823
@ SUPERSONIC_OUTLET
Boundary supersonic inlet definition.
Definition option_structure.hpp:1827
@ FLUID_INTERFACE
Domain interface definition.
Definition option_structure.hpp:1841
@ NEARFIELD_BOUNDARY
Near-Field boundary definition.
Definition option_structure.hpp:1821
@ FLOWLOAD_BOUNDARY
Boundary Load definition.
Definition option_structure.hpp:1825
@ CHT_WALL_INTERFACE
Domain interface definition.
Definition option_structure.hpp:1845
@ LOAD_BOUNDARY
Boundary Load definition.
Definition option_structure.hpp:1824
@ ACTDISK_INLET
Actuator disk inlet boundary definition.
Definition option_structure.hpp:1834
@ LOAD_DIR_BOUNDARY
Boundary Load definition.
Definition option_structure.hpp:1837
@ PERIODIC_BOUNDARY
Periodic boundary definition.
Definition option_structure.hpp:1820
AVERAGEPROCESS_TYPE
Types of mixing process for averaging quantities at the boundaries.
Definition option_structure.hpp:2029
@ MASSFLUX
a mass flow average is computed at the boundary of interest.
Definition option_structure.hpp:2033
@ AREA
an area average is computed at the boundary of interest.
Definition option_structure.hpp:2031
@ MIXEDOUT
an mixed-out average is computed at the boundary of interest.
Definition option_structure.hpp:2032
@ ALGEBRAIC
an algebraic average is computed at the boundary of interest.
Definition option_structure.hpp:2030
const unsigned int MAX_FE_KINDS
Maximum number of Finite Elements.
Definition option_structure.hpp:83
WINDOW_FUNCTION
Types of window (weight) functions for cost functional.
Definition option_structure.hpp:1634
@ SQUARE
No weight function (order 1)
@ BUMP
bump type weight function (exponential order of convergence)
@ HANN_SQUARE
Hann-squared type weight function (order 5)
@ HANN
Hann-type weight function (order 3)
constexpr passivedouble TWO3
Two divided by three.
Definition option_structure.hpp:105
ENUM_LINEAR_SOLVER_PREC
Types of preconditioners for the linear solver.
Definition option_structure.hpp:2658
@ JACOBI
Jacobi preconditioner.
Definition option_structure.hpp:2660
@ LINELET
Line implicit preconditioner.
Definition option_structure.hpp:2662
@ ILU
ILU(k) preconditioner.
Definition option_structure.hpp:2663
@ Q_IDENTITY
No preconditioner, but the matrix-vector product still uses quantized (int8) off-diagonal storage,...
Definition option_structure.hpp:2667
@ PASTIX_ILU
PaStiX ILU(k) preconditioner.
Definition option_structure.hpp:2669
@ Q_JACOBI
Jacobi with quantized (int8) off-diagonal storage; same matvec quantization as Q_LU_SGS,...
Definition option_structure.hpp:2665
@ PASTIX_LDLT_P
PaStiX LDLT as preconditioner.
Definition option_structure.hpp:2671
@ PASTIX_LU_P
PaStiX LU as preconditioner.
Definition option_structure.hpp:2670
@ Q_LU_SGS
LU-SGS with quantized (int8) off-diagonal storage; L/U are never allocated as ScalarType.
Definition option_structure.hpp:2664
@ IDENTITY
No preconditioner.
Definition option_structure.hpp:2659
@ LU_SGS
LU SGS preconditioner.
Definition option_structure.hpp:2661
constexpr passivedouble ONE3
One divided by three.
Definition option_structure.hpp:104
const unsigned int ZONE_0
Definition of the first grid domain.
Definition option_structure.hpp:90
const int EL_HEXA
Elements of eight nodes (3D).
Definition option_structure.hpp:621
INLET_TYPE
Types inlet boundary treatments.
Definition option_structure.hpp:2148
@ TOTAL_CONDITIONS
User specifies total pressure, total temperature, and flow direction.
@ MASS_FLOW
User specifies density and velocity (mass flow).
@ INPUT_FILE
User specifies an input file.
@ VELOCITY_INLET
Velocity inlet for an incompressible flow.
@ PRESSURE_INLET
Total pressure inlet for an incompressible flow.
const int GRAD_TERM
Position of the gradient smoothing terms in the numerics container array.
Definition option_structure.hpp:602
RADIATION_MODEL
Kinds of radiation models.
Definition option_structure.hpp:1919
@ P1
P1 Radiation model.
@ NONE
No radiation model.
ENUM_KIND_NONDIM
different non-dimensional modes
Definition option_structure.hpp:526
@ FREESTREAM_PRESS_EQ_ONE
Non-dimensional compressible simulation with freestream pressure equal to 1.0.
Definition option_structure.hpp:528
@ DIMENSIONAL
Dimensional simulation (compressible or incompressible).
Definition option_structure.hpp:527
@ FREESTREAM_VEL_EQ_MACH
Non-dimensional compressible simulation with freestream velocity equal to Mach number.
Definition option_structure.hpp:529
@ INITIAL_VALUES
Non-dimensional incompressible simulation based on intial values for external flow.
Definition option_structure.hpp:531
@ REFERENCE_VALUES
Non-dimensional incompressible simulation based on custom reference values.
Definition option_structure.hpp:532
@ FREESTREAM_VEL_EQ_ONE
Non-dimensional compressible simulation with freestream pressure equal to 1.0.
Definition option_structure.hpp:530
SPANWISE_TYPE
this option allow to compute the span-wise section in different ways.
Definition option_structure.hpp:2059
@ AUTOMATIC
number of span-wise section are computed automatically
Definition option_structure.hpp:2060
@ EQUISPACED
number of span-wise section are specified from the user
Definition option_structure.hpp:2061
const unsigned int MAX_STRING_SIZE
Maximum size of a generic string.
Definition option_structure.hpp:78
ENUM_TRANSFER
types of (coupling) transfers between distinct physical zones
Definition option_structure.hpp:498
@ CONJUGATE_HEAT_SS
Conjugate heat transfer (between two solids).
Definition option_structure.hpp:511
@ SLIDING_INTERFACE
Sliding interface (between fluids).
Definition option_structure.hpp:504
@ MIXING_PLANE
Mixing plane between fluids.
Definition option_structure.hpp:506
@ CONJUGATE_HEAT_SF
Conjugate heat transfer (between solids and compressible fluids).
Definition option_structure.hpp:509
@ BOUNDARY_DISPLACEMENTS
Boundary displacements (between fluids and solids)
Definition option_structure.hpp:503
@ FLOW_TRACTION
Flow traction coupling (between fluids and solids).
Definition option_structure.hpp:502
@ CONJUGATE_HEAT_WEAKLY_FS
Conjugate heat transfer (between incompressible fluids and solids).
Definition option_structure.hpp:508
@ NO_COMMON_INTERFACE
No common interface between the zones (geometrical).
Definition option_structure.hpp:500
@ CONSERVATIVE_VARIABLES
General coupling that simply transfers the conservative variables (between same solvers).
Definition option_structure.hpp:505
@ CONJUGATE_HEAT_WEAKLY_SF
Conjugate heat transfer (between solids and incompressible fluids).
Definition option_structure.hpp:510
@ NO_TRANSFER
Zones may share a boundary, but still no coupling desired.
Definition option_structure.hpp:501
@ ZONES_ARE_EQUAL
Zones are equal - no transfer.
Definition option_structure.hpp:499
@ CONJUGATE_HEAT_FS
Conjugate heat transfer (between compressible fluids and solids).
Definition option_structure.hpp:507
TURBO_MARKER_TYPE
Types of Turbomachinery performance flag.
Definition option_structure.hpp:2115
@ INFLOW
flag for inflow marker for compute turboperformance.
Definition option_structure.hpp:2116
@ OUTFLOW
flag for outflow marker for compute turboperformance.
Definition option_structure.hpp:2117
SPECIES_MODEL
types of species transport models
Definition option_structure.hpp:1500
@ FLAMELET
flamelet model.
@ SPECIES_TRANSPORT
species transport model.
@ NONE
No scalar transport model.
const int EL_PRISM
Elements of six nodes (3D).
Definition option_structure.hpp:623
constexpr unsigned short N_ELEM_TYPES
General output & CGNS defines.
Definition option_structure.hpp:141
constexpr unsigned short N_POINTS_TETRAHEDRON
General output & CGNS defines.
Definition option_structure.hpp:146
ENUM_FLUIDMODEL
Types of fluid model.
Definition option_structure.hpp:640
@ IDEAL_GAS
Ideal gas model.
Definition option_structure.hpp:642
@ CONSTANT_DENSITY
Constant density gas model.
Definition option_structure.hpp:645
@ STANDARD_AIR
Standard air gas model.
Definition option_structure.hpp:641
@ COOLPROP
Thermodynamics library.
Definition option_structure.hpp:651
@ MUTATIONPP
Mutation++ gas model for nonequilibrium flow.
Definition option_structure.hpp:648
@ INC_IDEAL_GAS
Incompressible ideal gas model.
Definition option_structure.hpp:646
@ DATADRIVEN_FLUID
multi-layer perceptron driven fluid model.
Definition option_structure.hpp:653
@ FLUID_MIXTURE
Species mixture model.
Definition option_structure.hpp:650
@ SU2_NONEQ
User defined gas model for nonequilibrium flow.
Definition option_structure.hpp:649
@ VW_GAS
Van Der Waals gas model.
Definition option_structure.hpp:643
@ FLUID_FLAMELET
lookup table (LUT) method for premixed flamelets.
Definition option_structure.hpp:652
@ INC_IDEAL_GAS_POLY
Inc. ideal gas, polynomial gas model.
Definition option_structure.hpp:647
@ PR_GAS
Perfect Real gas model.
Definition option_structure.hpp:644
const unsigned int NO_RK_ITER
No Runge-Kutta iteration.
Definition option_structure.hpp:84
DEFORM_KIND
Type of mesh deformation.
Definition option_structure.hpp:3053
@ ELASTIC
Linear elasticity method.
@ RBF
Radial basis function interpolation.
ENGINE_INFLOW_TYPE
Types engine inflow boundary treatments.
Definition option_structure.hpp:2178
@ FAN_FACE_PRESSURE
User specifies Static pressure.
Definition option_structure.hpp:2181
@ FAN_FACE_MACH
User specifies fan face mach number.
Definition option_structure.hpp:2179
@ FAN_FACE_MDOT
User specifies Static pressure.
Definition option_structure.hpp:2180
constexpr passivedouble ONE2
One divided by two.
Definition option_structure.hpp:103
TURB_TRANS_CORRELATION
Types of transition correlations.
Definition option_structure.hpp:1403
@ MEDIDA_BAEDER
Kind of transition correlation model (Medida-Baeder).
@ KRAUSE
Kind of transition correlation model (Krause).
@ MENTER_LANGTRY
Kind of transition correlation model (Menter-Langtry).
@ KRAUSE_HYPER
Kind of transition correlation model (Krause hypersonic).
@ DEFAULT
Kind of transition correlation model (Menter-Langtry if SST, MALAN if SA).
@ MALAN
Kind of transition correlation model (Malan).
@ SULUKSNA
Kind of transition correlation model (Suluksna).
@ MEDIDA
Kind of transition correlation model (Medida).
PERIODIC_QUANTITIES
Vertex-based quantities exchanged during periodic marker communications.
Definition option_structure.hpp:2843
@ PERIODIC_PRIM_LS
Primitive gradient communication for weighted Least Squares (periodic only).
Definition option_structure.hpp:2854
@ PERIODIC_PRIM_ULS_R
Same but reconstruction.
Definition option_structure.hpp:2862
@ PERIODIC_SENSOR
Dissipation sensor communication (periodic only).
Definition option_structure.hpp:2850
@ PERIODIC_LIM_SOL_2
Solution limiter communication phase 2 of 2 (periodic only).
Definition option_structure.hpp:2864
@ PERIODIC_NONE
No periodic communication required.
Definition option_structure.hpp:2844
@ PERIODIC_MAX_EIG
Maximum eigenvalue communication (periodic only).
Definition option_structure.hpp:2849
@ PERIODIC_IMPLICIT
Implicit update communication to ensure consistency across periodic boundaries.
Definition option_structure.hpp:2867
@ PERIODIC_PRIM_GG
Primitive gradient communication for Green-Gauss (periodic only).
Definition option_structure.hpp:2852
@ PERIODIC_PRIM_ULS
Primitive gradient communication for unweighted Least Squares (periodic only).
Definition option_structure.hpp:2856
@ PERIODIC_NEIGHBORS
Communication of the number of neighbors for centered schemes (periodic only).
Definition option_structure.hpp:2846
@ PERIODIC_SOL_LS
Solution gradient communication for weighted Least Squares (periodic only).
Definition option_structure.hpp:2853
@ PERIODIC_PRIM_GG_R
Same but reconstruction.
Definition option_structure.hpp:2858
@ PERIODIC_SOL_ULS
Solution gradient communication for unwieghted Least Squares (periodic only).
Definition option_structure.hpp:2855
@ PERIODIC_SOL_ULS_R
Same but reconstruction.
Definition option_structure.hpp:2861
@ PERIODIC_RESIDUAL
Residual and Jacobian communication (periodic only).
Definition option_structure.hpp:2847
@ PERIODIC_LIM_SOL_1
Solution limiter communication phase 1 of 2 (periodic only).
Definition option_structure.hpp:2863
@ PERIODIC_LIM_PRIM_2
Primitive limiter communication phase 2 of 2 (periodic only).
Definition option_structure.hpp:2866
@ PERIODIC_LAPLACIAN
Undivided Laplacian communication for JST (periodic only).
Definition option_structure.hpp:2848
@ PERIODIC_SOL_GG
Solution gradient communication for Green-Gauss (periodic only).
Definition option_structure.hpp:2851
@ PERIODIC_LIM_PRIM_1
Primitive limiter communication phase 1 of 2 (periodic only).
Definition option_structure.hpp:2865
@ PERIODIC_SOL_GG_R
Same but reconstruction.
Definition option_structure.hpp:2857
@ PERIODIC_SOL_LS_R
Same but reconstruction.
Definition option_structure.hpp:2859
@ PERIODIC_VOLUME
Volume communication for summing total CV (periodic only).
Definition option_structure.hpp:2845
@ PERIODIC_PRIM_LS_R
Same but reconstruction.
Definition option_structure.hpp:2860
const int CONV_BOUND_TERM
Position of the convective boundary terms in the numerics container array.
Definition option_structure.hpp:600
const int EL_TETRA
Elements of four nodes (3D).
Definition option_structure.hpp:620
ENUM_INIT_OPTION
Types of initialization option.
Definition option_structure.hpp:745
@ TD_CONDITIONS
Total conditions initalization.
Definition option_structure.hpp:747
@ REYNOLDS
Reynold's number initalization.
Definition option_structure.hpp:746
TURB_TRANS_MODEL
Types of transition models.
Definition option_structure.hpp:1363
@ NONE
No transition model.
@ LM
Kind of transition model (Langtry-Menter (LM) for SST and Spalart-Allmaras).
P1_INIT
Kinds of P1 initialization.
Definition option_structure.hpp:1931
@ ZERO
Initialize the P1 model from zero values.
@ TEMPERATURE
Initialize the P1 model from blackbody energy computed from the initial temperature.
ENUM_PROJECTION_FUNCTION
Types of projection function, initially intended for structural topology optimization applications.
Definition option_structure.hpp:2941
@ HEAVISIDE_DOWN
Project values towards 0.
@ HEAVISIDE_UP
Project values towards 1.
@ NONE
No projection.
const unsigned int MAX_NUMBER_PERIODIC
Maximum number of periodic boundary conditions.
Definition option_structure.hpp:77
VOLUME_OUTPUT_PRECISION
Floating-point type of the fields of the volume and surface files (CGNS and Paraview XML).
Definition option_structure.hpp:2435
@ SINGLE
Single precision (float).
@ DOUBLE
Double precision (double).
TURB_FAMILY TurbModelFamily(TURB_MODEL model)
Associate turb models with their family.
Definition option_structure.hpp:1088
POD_KIND
Type of POD basis generation (for use with libROM)
Definition option_structure.hpp:3015
@ INCREMENTAL
Use incremental SVD for POD basis generation.
@ STATIC
Use static SVD for POD basis generation.
const int MAT_IDEALDE
Position of the Ideal-DE material model.
Definition option_structure.hpp:608
const int MAT_KNOWLES
Position of the Knowles material model.
Definition option_structure.hpp:609
INCOMP_SYSTEM
Type of incompressible solver.
Definition option_structure.hpp:411
@ DENSITY_BASED
Density-based.
@ PRESSURE_BASED
Pressure-based.
ROUGHSST_MODEL
SST rough-wall boundary conditions Options.
Definition option_structure.hpp:1248
@ LIMITER_AUPOIX
Aupoix eddy viscosity limiter.
@ LIMITER_KNOPP
Knopp eddy viscosity limiter.
@ WILCOX2006
Wilcox 2006 boundary conditions for rough walls / default version if roughness is applied.
@ WILCOX1998
Wilcox 1998 boundary conditions for rough walls.
CENTERED
Types of centered spatial discretizations.
Definition option_structure.hpp:930
@ LAX
Lax-Friedrich centered numerical method.
@ JST_KE
Kinetic Energy preserving Jameson-Smith-Turkel centered numerical method.
@ LD2
Low-Dissipation Low-Dispersion (LD2) centered scheme.
@ CDS
Central Difference Scheme used for pressure based solver.
@ NONE
No centered scheme is used.
@ JST_MAT
JST with matrix dissipation.
@ JST
Jameson-Smith-Turkel centered numerical method.
const int CONV_TERM
Position of the convective terms in the numerics container array.
Definition option_structure.hpp:596
ENUM_FEM
Types of FEM spatial discretizations.
Definition option_structure.hpp:1002
@ NO_FEM
No finite element scheme is used.
Definition option_structure.hpp:1003
@ DG
Discontinuous Galerkin numerical method.
Definition option_structure.hpp:1004
constexpr unsigned short N_FACES_QUADRILATERAL
General output & CGNS defines.
Definition option_structure.hpp:154
MPI_QUANTITIES
Vertex-based quantities exchanged in MPI point-to-point communications.
Definition option_structure.hpp:2873
@ DES_LENGTHSCALE
DES length scale communication.
@ NEIGHBORS
Neighbor point count communication (for JST).
@ STOCH_SOURCE_LANG
Stochastic source term for Langevin equations communication.
@ COORDINATES
Vertex coordinates communication.
@ SOLUTION_GRADIENT
Conservative solution gradient communication.
@ MOM_CORRECTION
Momentum correction for the pressure-based poisson solver (used when computing HbyA).
@ SOLUTION_OLD
Conservative solution old communication.
@ SOLUTION_GRAD_REC
Conservative solution reconstruction gradient communication.
@ MOM_COEFF
Momentum coefficient for the Rhie-Chow scheme.
@ MESH_DISPLACEMENTS
Mesh displacements at the interface.
@ SOLUTION_TIME_N
Solution at time n.
@ COORDINATES_OLD
Old vertex coordinates communication.
@ MAX_LENGTH
Maximum length communication.
@ PRIMITIVE_GRAD_REC
Primitive reconstruction gradient communication.
@ MAX_EIGENVALUE
Maximum eigenvalue communication.
@ SOLUTION_GEOMETRY
Geometry solution communication.
@ SENSOR
Dissipation sensor communication.
@ PRIMITIVE_LIMITER
Primitive limiter communication.
@ HBYA_CORRECTION
HbyA correction for the pressure-based poisson solver.
@ SOLUTION_EDDY
Turbulent solution plus eddy viscosity communication.
@ SOLUTION_FEA
FEA solution communication.
@ GRID_VELOCITY
Grid velocity communication.
@ SOLUTION_TIME_N1
Solution at time n-1.
@ AUXVAR_GRADIENT
Auxiliary variable gradient communication.
@ PRIMITIVE_GRADIENT
Primitive gradient communication.
@ UNDIVIDED_LAPLACIAN
Undivided Laplacian communication.
@ SOLUTION
Conservative solution communication.
@ SOLUTION_MATRIXTRANS
Matrix transposed solution communication.
@ SOLUTION_LIMITER
Conservative solution limiter communication.
@ SOLUTION_MATRIX
Matrix solution communication.
constexpr unsigned short N_POINTS_MAXIMUM
Max. out of the above, used for static arrays, keep it up to date.
Definition option_structure.hpp:150
LM_ParsedOptions ParseLMOptions(const LM_OPTIONS *LM_Options, unsigned short nLM_Options, int rank, TURB_MODEL Kind_Turb_Model)
Function to parse LM options.
Definition option_structure.hpp:1430
INLET_SPANWISE_INTERP
type of radial spanwise interpolation function for the inlet face
Definition option_structure.hpp:470
constexpr unsigned short N_FACES_HEXAHEDRON
General output & CGNS defines.
Definition option_structure.hpp:158
bool isParaview(OUTPUT_TYPE format)
Return true if format is one of the Paraview options.
Definition option_structure.hpp:2390
unsigned short nFacesOfElementType(unsigned short elementType)
Get the number of faces of the element.
Definition option_structure.hpp:166
const int EL_PYRAM
Elements of five nodes (3D).
Definition option_structure.hpp:622
ENUM_FILTER_KERNEL
Types of filter kernels, initially intended for structural topology optimization applications.
Definition option_structure.hpp:2923
@ GAUSSIAN_WEIGHT
Bell shape around center point [Bruns and Tortorelli, 2003].
@ DILATE_MORPH
Continuous version of the dilate morphology operator [Sigmund 2007].
@ ERODE_MORPH
Continuous version of the erode morphology operator [Sigmund 2007].
@ CONSTANT_WEIGHT
Uniform weight.
@ CONICAL_WEIGHT
Linear decay with distance from center point [Bruns and Tortorelli, 2001].
const int SU2_BINARY_STRING_SIZE
Length of strings (e.g. marker names) used in the native SU2 binary mesh format. Shared by CSU2Binary...
Definition option_structure.hpp:263
ENUM_SENS_SMOOTHING
Types of sensitivity smoothing.
Definition option_structure.hpp:2644
@ BIGRID
Bi-grid technique smoothing.
Definition option_structure.hpp:2647
@ SOBOLEV
Sobolev gradient smoothing.
Definition option_structure.hpp:2646
@ NO_SMOOTH
No smoothing.
Definition option_structure.hpp:2645
SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigned short nSST_Options, int rank)
Function to parse SST options.
Definition option_structure.hpp:1154
const unsigned int MAX_PARAMETERS
Maximum number of parameters for a design variable definition.
Definition option_structure.hpp:76
ENUM_FLOW_GRADIENT
Types of schemes to compute the flow gradient.
Definition option_structure.hpp:1778
@ WEIGHTED_LEAST_SQUARES
Gradients computation using inverse-distance weighted least squares.
Definition option_structure.hpp:1782
@ NO_GRADIENT
No gradient method. Only possible for reconstruction gradient, in which case, the option chosen for N...
Definition option_structure.hpp:1779
@ LEAST_SQUARES
Gradient computation using unweighted least squares.
Definition option_structure.hpp:1781
@ GREEN_GAUSS
Gradient computation using Green-Gauss theorem.
Definition option_structure.hpp:1780
RAMP_TYPE
Definition option_structure.hpp:2120
@ MUSCL
flag for MUSCL ramps
@ BOUNDARY
flag for pressure/mass flow ramps
@ GRID
flag for rotational/translational ramps
ENUM_MEASUREMENTS
different system of measurements
Definition option_structure.hpp:546
@ US
Definition of incompressible solver.
Definition option_structure.hpp:548
@ SI
Definition of compressible solver.
Definition option_structure.hpp:547
const int VISC_BOUND_TERM
Position of the viscous boundary terms in the numerics container array.
Definition option_structure.hpp:601
const int SU2_RESTART_MAGIC_NUMBER
Hex representation of "SU2".
Definition option_structure.hpp:210
ENUM_SOBOLEV_MODUS
mode of operation for the sobolev smoothing solver.
Definition option_structure.hpp:3037
@ PARAM_LEVEL_COMPLETE
Operate on parameter level.
@ ONLY_GRAD
Flag to only compute the original gradient.
@ NONE
Default option if none is choosen.
@ MESH_LEVEL
Operate on mesh level.
ENUM_MULTIZONE
Different solver types for multizone problems.
Definition option_structure.hpp:359
@ MZ_BLOCK_JACOBI
Definition of a Block-Jacobi solver.
@ MZ_BLOCK_GAUSS_SEIDEL
Definition of a Block-Gauss-Seidel multizone solver.
RECORDING
Definition option_structure.hpp:2820
@ SOLUTION_AND_MESH
@ SOLUTION_VARIABLES
GEOMETRY_ACTION
Types of action to take on a geometry structure.
Definition option_structure.hpp:1794
@ ALLOCATE
Allocate geometry structure.
Definition option_structure.hpp:1795
@ UPDATE
Update geometry structure (grid moving, adaptation, etc.).
Definition option_structure.hpp:1796
LM_OPTIONS
LM Options.
Definition option_structure.hpp:1375
@ MEDIDA_BAEDER
Kind of transition correlation model (Medida-Baeder).
@ KRAUSE
Kind of transition correlation model (Krause).
@ MENTER_LANGTRY
Kind of transition correlation model (Menter-Langtry).
@ KRAUSE_HYPER
Kind of transition correlation model (Krause hypersonic).
@ DEFAULT
Kind of transition correlation model (Menter-Langtry if SST, MALAN if SA).
@ NONE
No option / default.
@ LM2015
Cross-flow corrections.
@ MALAN
Kind of transition correlation model (Malan).
@ SULUKSNA
Kind of transition correlation model (Suluksna).
@ MEDIDA
Kind of transition correlation model (Medida).
LINEAR_SOLVER_MODE
Type of operation for the linear system solver, changes the source of solver options.
Definition option_structure.hpp:3027
@ POISSON
Operate in poisson solver mode.
@ STANDARD
Operate in standard mode.
@ GRADIENT_MODE
Operate in gradient smoothing mode.
Template derived classes from COption, defined here as we only include them where needed to reduce co...
We use this dummy class instead of std::map when we only need the enum definition and not the string ...
Definition option_structure.hpp:49
CEmptyMap(std::initializer_list< std::pair< const T, U > >)
Definition option_structure.hpp:50
Structure containing multigrid options.
Definition option_structure.hpp:1225
bool MG_Smooth_EarlyExit
Enable early exit for MG smoothing iterations.
Definition option_structure.hpp:1233
std::vector< unsigned short > MG_CorrecSmooth
Multigrid Jacobi correction-smoothing per level.
Definition option_structure.hpp:1231
std::vector< su2double > MG_CflScaling
Per-level CFL scaling factors relative to the previous (finer) level. Entry [i] scales level i+1 from...
Definition option_structure.hpp:1232
su2double MG_Startup_Convergence
FMG: orders of magnitude (log10) that CONV_FIELD must drop on the active level before promoting to th...
Definition option_structure.hpp:1238
bool MG_Smooth_Output
Output compact per-cycle smoothing summary.
Definition option_structure.hpp:1234
su2double MG_Startup_Stagnation
FMG: promote when the residual ratio between successive iterations exceeds this. 0 = disabled.
Definition option_structure.hpp:1241
unsigned long MG_Min_MeshSize
Minimum CVs on coarsest MG level, over all ranks.
Definition option_structure.hpp:1228
unsigned long MG_Startup_Stagnation_Iter
FMG: consecutive stalled iterations required before promoting. 0 = disabled.
Definition option_structure.hpp:1242
unsigned long MG_Startup_Iter
Iterations per mesh during FMG startup, and the length of each level's CFL ramp. 0 = no iteration bud...
Definition option_structure.hpp:1237
std::vector< unsigned short > MG_PostSmooth
Multigrid post-smoothing iterations per level.
Definition option_structure.hpp:1230
su2double MG_Smooth_Coeff
Jacobi smoother coefficient for coarse-grid correction.
Definition option_structure.hpp:1227
su2double MG_Smooth_StagnationTol
Stagnation early exit: stop if current_rms >= prev_rms * tol. 0 = disabled.
Definition option_structure.hpp:1235
su2double MG_Smooth_Res_Threshold
RMS reduction threshold for MG smoothing early exit.
Definition option_structure.hpp:1226
bool MG_Implicit_Lines
Enable implicit-lines agglomeration from walls.
Definition option_structure.hpp:1236
std::vector< unsigned short > MG_PreSmooth
Multigrid pre-smoothing iterations per level.
Definition option_structure.hpp:1229
Structure containing parsed options for data-driven fluid model.
Definition option_structure.hpp:1488
unsigned short n_filenames
Number of datasets.
Definition option_structure.hpp:1492
ENUM_DATADRIVEN_METHOD interp_algorithm_type
Interpolation algorithm used for data-driven fluid model.
Definition option_structure.hpp:1491
su2double Newton_relaxation
Relaxation factor for Newton solvers in data-driven fluid models.
Definition option_structure.hpp:1489
std::string * datadriven_filenames
Dataset information for data-driven fluid models.
Definition option_structure.hpp:1493
bool use_PINN
Use physics-informed method for data-driven fluid modeling.
Definition option_structure.hpp:1490
Structure containing parsed options for flamelet fluid model.
Definition option_structure.hpp:1584
unsigned short n_lookups
Number of lookup variables, for visualization only.
Definition option_structure.hpp:1589
FLAMELET_ENTHALPY_BC enthalpy_bc
Source of enthalpy BCs: species markers (default, backward-compatible) or flow markers.
Definition option_structure.hpp:1587
std::string * user_source_names
Names of the source terms of the passive transported scalars.
Definition option_structure.hpp:1599
unsigned short n_user_sources
Number of source terms for user defined (auxiliary) scalar transport equations.
Definition option_structure.hpp:1592
unsigned short nspark
Number of source terms for spark initialization.
Definition option_structure.hpp:1606
std::string * controlling_variable_names
Names of the independent, transported scalars.
Definition option_structure.hpp:1595
su2double Flame_T_ignition
Ignition temperature for the flame, used for initialization.
Definition option_structure.hpp:1609
FLAMELET_INIT_TYPE ignition_method
TODO: Add python wrapper initialization option.
Definition option_structure.hpp:1586
std::array< su2double, 6 > spark_init
Spark ignition initialization parameters.
Definition option_structure.hpp:1604
std::string * cv_source_names
Names of the source terms of the independent, transported scalars.
Definition option_structure.hpp:1596
unsigned short n_user_scalars
Number of user defined (auxiliary) scalar transport equations.
Definition option_structure.hpp:1591
unsigned short n_table_sources
Number of transported scalar source terms for LUT.
Definition option_structure.hpp:1590
bool preferential_diffusion
Preferential diffusion physics for flamelet solver.
Definition option_structure.hpp:1607
std::array< su2double, 8 > flame_init
Flame front initialization parameters.
Definition option_structure.hpp:1601
std::string * lookup_names
Names of the passive look-up terms.
Definition option_structure.hpp:1597
unsigned short n_scalars
Number of transported scalars for flamelet LUT approach.
Definition option_structure.hpp:1588
unsigned short n_control_vars
Number of controlling variables (independent variables) for the LUT.
Definition option_structure.hpp:1593
bool thickenedflame_correction
Thickened flame correction.
Definition option_structure.hpp:1608
su2double * spark_reaction_rates
Source terms for flamelet spark ignition option.
Definition option_structure.hpp:1605
std::string * user_scalar_names
Names of the passive transported scalars.
Definition option_structure.hpp:1598
Structure containing parsed LM options.
Definition option_structure.hpp:1417
LM_OPTIONS version
LM base model.
Definition option_structure.hpp:1418
bool LM2015
Use cross-flow corrections.
Definition option_structure.hpp:1419
TURB_TRANS_CORRELATION Correlation
Definition option_structure.hpp:1420
Structure containing parsed SA options.
Definition option_structure.hpp:1290
bool bc
BC transition.
Definition option_structure.hpp:1296
SA_OPTIONS version
SA base model.
Definition option_structure.hpp:1291
bool ft2
Use ft2 term.
Definition option_structure.hpp:1292
bool comp
Use compressibility correction.
Definition option_structure.hpp:1294
bool rot
Use rotation correction.
Definition option_structure.hpp:1295
bool qcr2000
Use QCR-2000.
Definition option_structure.hpp:1293
Structure containing parsed SST options.
Definition option_structure.hpp:1136
SST_OPTIONS production
Enum for production corrections/modifiers for SST model.
Definition option_structure.hpp:1138
bool dll
Bool dimensionless lower limit.
Definition option_structure.hpp:1144
SST_OPTIONS version
Enum SST base model.
Definition option_structure.hpp:1137
bool modified
Bool for modified (m) SST model.
Definition option_structure.hpp:1141
bool uq
Bool for using uncertainty quantification.
Definition option_structure.hpp:1140
bool compSarkar
Bool for compressibility correction of Sarkar.
Definition option_structure.hpp:1143
bool sust
Bool for SST model with sustaining terms.
Definition option_structure.hpp:1139
bool compWilcox
Bool for compressibility correction of Wilcox.
Definition option_structure.hpp:1142
Container to hold Variables for streamwise Periodic flow as they are often used together in places.
Definition option_structure.hpp:3003
su2double Streamwise_Periodic_PressureDrop
Value of prescribed pressure drop [Pa] which results in an artificial body force vector.
Definition option_structure.hpp:3004
su2double Streamwise_Periodic_BoundaryArea
Global Surface area of the streamwise periodic interface.
Definition option_structure.hpp:3008
su2double Streamwise_Periodic_InletTemperature
Area avg static Temp [K] at the periodic inlet. Used for adaptive outlet heatsink.
Definition option_structure.hpp:3007
su2double Streamwise_Periodic_IntegratedHeatFlow
Value of of the net sum of heatflow [W] into the domain.
Definition option_structure.hpp:3006
su2double Streamwise_Periodic_MassFlow
Value of current massflow [kg/s] which results in a delta p and therefore an artificial body force ve...
Definition option_structure.hpp:3005
su2double Streamwise_Periodic_AvgDensity
Area avg density on the periodic interface.
Definition option_structure.hpp:3009