64 template <
typename T,
typename U>
76 operator std::map<T, U>() {
86 std::transform(str.begin(), str.end(), str.begin(), ::toupper);
96 std::transform(upp_str.begin(), upp_str.end(), upp_str.begin(), ::toupper);
134 const su2double
EPS = 1.0E-16;
138 const su2double
TWO3 = 2.0 / 3.0;
197 DISC_ADJ_NAVIER_STOKES = 37
212 (
"DISC_ADJ_EULER", DISC_ADJ_EULER)
213 (
"DISC_ADJ_RANS", DISC_ADJ_RANS)
214 (
"DISC_ADJ_NAVIERSTOKES", DISC_ADJ_EULER)
396 (
"DISCRETE_ADJOINT", DISCRETE_ADJOINT);
422 (
"STANDARD_AIR", STANDARD_AIR)
439 (
"TD_CONDITIONS", TD_CONDITIONS);
453 (
"DENSITY_FS", DENSITY_FS);
465 (
"SUTHERLAND", SUTHERLAND);
477 (
"CONSTANT_PRANDTL", CONSTANT_PRANDTL);
560 (
"LAX-FRIEDRICH",
LAX);
1207 BSPLINE_UNIFORM = 0,
1211 (
"BSPLINE_UNIFORM", BSPLINE_UNIFORM)
1267 (
"CARTESIAN", CARTESIAN)
1268 (
"CYLINDRICAL", CYLINDRICAL)
1269 (
"SPHERICAL", SPHERICAL);
1390 (
"NONE", NO_DERIVATIVE)
1395 (
"DENSITY", D_DENSITY)
1396 (
"TURB2LAM", D_TURB2LAM)
1397 (
"SIDESLIP", D_SIDESLIP)
1398 (
"VISCOSITY", D_VISCOSITY)
1399 (
"REYNOLDS", D_REYNOLDS)
1400 (
"DESIGN_VARIABLES", D_DESIGN);
1421 virtual string SetValue(vector<string>) = 0;
1422 virtual void SetDefault() = 0;
1424 string optionCheckMultipleValues(vector<string> & option_value,
string type_id,
string option_name) {
1425 if (option_value.size() != 1) {
1427 newString.append(option_name);
1428 newString.append(
": multiple values for type ");
1429 newString.append(type_id);
1435 string badValue(vector<string> & option_value,
string type_id,
string option_name) {
1437 newString.append(option_name);
1438 newString.append(
": improper option value for type ");
1439 newString.append(type_id);
1444 inline COptionBase::~COptionBase() {}
1447 template <
class Tenum>
1450 map<string, Tenum> m;
1451 unsigned short & field;
1456 COptionEnum(
string option_field_name,
const map<string, Tenum> m,
unsigned short & option_field, Tenum default_value) : field(option_field) {
1458 this->def = default_value;
1459 this->name = option_field_name;
1463 string SetValue(vector<string> option_value) {
1465 string out = optionCheckMultipleValues(option_value,
"enum", this->name);
1466 if (out.compare(
"") != 0) {
1471 if (this->m.find(option_value[0]) == m.end()) {
1473 str.append(this->name);
1474 str.append(
": invalid option value ");
1475 str.append(option_value[0]);
1476 str.append(
". Check current SU2 options in config_template.cfg.");
1480 Tenum val = this->m[option_value[0]];
1486 this->field = this->def;
1496 COptionDouble(
string option_field_name, su2double & option_field, su2double default_value) : field(option_field) {
1497 this->def = default_value;
1498 this->name = option_field_name;
1502 string SetValue(vector<string> option_value) {
1504 string out = optionCheckMultipleValues(option_value,
"su2double", this->name);
1505 if (out.compare(
"") != 0) {
1508 istringstream is(option_value[0]);
1514 return badValue(option_value,
"su2double", this->name);
1517 this->field = this->def;
1527 COptionString(
string option_field_name,
string & option_field,
string default_value) : field(option_field) {
1528 this->def = default_value;
1529 this->name = option_field_name;
1533 string SetValue(vector<string> option_value) {
1535 string out = optionCheckMultipleValues(option_value,
"su2double", this->name);
1536 if (out.compare(
"") != 0) {
1539 this->field.assign(option_value[0]);
1543 this->field = this->def;
1553 COptionInt(
string option_field_name,
int & option_field,
int default_value) : field(option_field) {
1554 this->def = default_value;
1555 this->name = option_field_name;
1559 string SetValue(vector<string> option_value) {
1560 string out = optionCheckMultipleValues(option_value,
"int", this->name);
1561 if (out.compare(
"") != 0) {
1564 istringstream is(option_value[0]);
1570 return badValue(option_value,
"int", this->name);
1573 this->field = this->def;
1578 unsigned long & field;
1583 COptionULong(
string option_field_name,
unsigned long & option_field,
unsigned long default_value) : field(option_field) {
1584 this->def = default_value;
1585 this->name = option_field_name;
1589 string SetValue(vector<string> option_value) {
1590 string out = optionCheckMultipleValues(option_value,
"unsigned long", this->name);
1591 if (out.compare(
"") != 0) {
1594 istringstream is(option_value[0]);
1600 return badValue(option_value,
"unsigned long", this->name);
1603 this->field = this->def;
1608 unsigned short & field;
1613 COptionUShort(
string option_field_name,
unsigned short & option_field,
unsigned short default_value) : field(option_field) {
1614 this->def = default_value;
1615 this->name = option_field_name;
1619 string SetValue(vector<string> option_value) {
1620 string out = optionCheckMultipleValues(option_value,
"unsigned short", this->name);
1621 if (out.compare(
"") != 0) {
1624 istringstream is(option_value[0]);
1630 return badValue(option_value,
"unsigned short", this->name);
1633 this->field = this->def;
1643 COptionLong(
string option_field_name,
long & option_field,
long default_value) : field(option_field) {
1644 this->def = default_value;
1645 this->name = option_field_name;
1649 string SetValue(vector<string> option_value) {
1650 string out = optionCheckMultipleValues(option_value,
"long", this->name);
1651 if (out.compare(
"") != 0) {
1654 istringstream is(option_value[0]);
1660 return badValue(option_value,
"long", this->name);
1663 this->field = this->def;
1674 COptionBool(
string option_field_name,
bool & option_field,
bool default_value) : field(option_field) {
1675 this->def = default_value;
1676 this->name = option_field_name;
1680 string SetValue(vector<string> option_value) {
1682 string out = optionCheckMultipleValues(option_value,
"bool", this->name);
1683 if (out.compare(
"") != 0) {
1686 if (option_value[0].compare(
"YES") == 0) {
1690 if (option_value[0].compare(
"NO") == 0) {
1691 this->field =
false;
1694 return badValue(option_value,
"bool", this->name);
1697 this->field = this->def;
1701 template <
class Tenum>
1704 map<string, Tenum> m;
1705 unsigned short * & field;
1707 unsigned short & size;
1710 COptionEnumList(
string option_field_name,
const map<string, Tenum> m,
unsigned short * & option_field,
unsigned short & list_size) : field(option_field) , size(list_size) {
1712 this->name = option_field_name;
1716 string SetValue(vector<string> option_value) {
1717 if (option_value.size() == 1 && option_value[0].compare(
"NONE") == 0) {
1722 this->size = option_value.size();
1723 unsigned short * enums =
new unsigned short[size];
1724 for (
int i = 0; i < this->size; i++) {
1726 if (this->m.find(option_value[i]) == m.end()) {
1728 str.append(this->name);
1729 str.append(
": invalid option value ");
1730 str.append(option_value[i]);
1731 str.append(
". Check current SU2 options in config_template.cfg.");
1735 enums[i] = this->m[option_value[i]];
1737 this->field = enums;
1748 su2double * & field;
1753 su2double * default_value;
1756 COptionDoubleArray(
string option_field_name,
const int list_size, su2double * & option_field, su2double * default_value) : field(option_field), size(list_size) {
1757 this->name = option_field_name;
1758 this->default_value = default_value;
1764 if(def != NULL)
delete [] def;
1765 if(vals != NULL)
delete [] vals;
1767 string SetValue(vector<string> option_value) {
1769 if (option_value.size() != (
unsigned long)this->size) {
1771 newstring.append(this->name);
1772 newstring.append(
": wrong number of arguments: ");
1775 newstring.append(ss.str());
1776 newstring.append(
" expected, ");
1778 ss2 << option_value.size();
1779 newstring.append(ss2.str());
1780 newstring.append(
" found");
1783 vals =
new su2double[this->size];
1784 for (
int i = 0; i < this->size; i++) {
1785 istringstream is(option_value[i]);
1789 return badValue(option_value,
"su2double array", this->name);
1798 def =
new su2double [size];
1799 for (
int i = 0; i < size; i++) {
1800 def[i] = default_value[i];
1807 su2double * & field;
1809 unsigned short & size;
1812 COptionDoubleList(
string option_field_name,
unsigned short & list_size, su2double * & option_field) : field(option_field), size(list_size) {
1813 this->name = option_field_name;
1817 string SetValue(vector<string> option_value) {
1819 unsigned short option_size = option_value.size();
1820 if (option_size == 1 && option_value[0].compare(
"NONE") == 0) {
1826 this->size = option_size;
1829 su2double * vals =
new su2double[option_size];
1830 for (
unsigned long i = 0; i < option_size; i++) {
1831 istringstream is(option_value[i]);
1835 return badValue(option_value,
"su2double list", this->name);
1851 unsigned short & size;
1854 COptionShortList(
string option_field_name,
unsigned short & list_size,
short * & option_field) : field(option_field), size(list_size) {
1855 this->name = option_field_name;
1859 string SetValue(vector<string> option_value) {
1861 unsigned short option_size = option_value.size();
1862 if (option_size == 1 && option_value[0].compare(
"NONE") == 0) {
1867 this->size = option_size;
1870 short * vals =
new short[option_size];
1871 for (
unsigned long i = 0; i < option_size; i++) {
1872 istringstream is(option_value[i]);
1876 return badValue(option_value,
"short", this->name);
1890 unsigned short * & field;
1892 unsigned short & size;
1895 COptionUShortList(
string option_field_name,
unsigned short & list_size,
unsigned short * & option_field) : field(option_field), size(list_size) {
1896 this->name = option_field_name;
1900 string SetValue(vector<string> option_value) {
1902 unsigned short option_size = option_value.size();
1903 if (option_size == 1 && option_value[0].compare(
"NONE") == 0) {
1908 this->size = option_size;
1911 unsigned short * vals =
new unsigned short[option_size];
1912 for (
unsigned long i = 0; i < option_size; i++) {
1913 istringstream is(option_value[i]);
1917 return badValue(option_value,
"unsigned short", this->name);
1933 unsigned short & size;
1936 COptionStringList(
string option_field_name,
unsigned short & list_size,
string * & option_field) : field(option_field), size(list_size) {
1937 this->name = option_field_name;
1941 string SetValue(vector<string> option_value) {
1943 unsigned short option_size = option_value.size();
1944 if (option_size == 1 && option_value[0].compare(
"NONE") == 0) {
1948 this->size = option_size;
1951 string * vals =
new string[option_size];
1952 for (
unsigned long i = 0; i < option_size; i++) {
1953 vals[i].assign(option_value[i]);
1966 unsigned short & space;
1967 unsigned short & centered;
1968 unsigned short & upwind;
1971 COptionConvect(
string option_field_name,
unsigned short & space_field,
unsigned short & centered_field,
unsigned short & upwind_field) : space(space_field), centered(centered_field), upwind(upwind_field) {
1972 this->name = option_field_name;
1976 string SetValue(vector<string> option_value) {
1978 string out = optionCheckMultipleValues(option_value,
"unsigned short", this->name);
1979 if (out.compare(
"") != 0) {
1983 if (Centered_Map.count(option_value[0])) {
1984 this->space = Space_Map.find(
"SPACE_CENTERED")->second;
1985 this->centered = Centered_Map.find(option_value[0])->second;
1989 if (Upwind_Map.count(option_value[0])) {
1990 this->space = Space_Map.find(
"SPACE_UPWIND")->second;
1991 this->upwind = Upwind_Map.find(option_value[0])->second;
1999 return badValue(option_value,
"convect", this->name);
2012 bool & cont_adjoint;
2013 bool cont_adjoint_def;
2014 bool & disc_adjoint;
2015 bool disc_adjoint_def;
2020 COptionMathProblem(
string option_field_name,
bool & cont_adjoint_field,
bool cont_adjoint_default,
bool & disc_adjoint_field,
bool disc_adjoint_default,
bool & restart_field,
bool restart_default) : cont_adjoint(cont_adjoint_field), disc_adjoint(disc_adjoint_field), restart(restart_field) {
2021 this->name = option_field_name;
2022 this->cont_adjoint_def = cont_adjoint_default;
2023 this->disc_adjoint_def = disc_adjoint_default;
2024 this->restart_def = restart_default;
2028 string SetValue(vector<string> option_value) {
2029 string out = optionCheckMultipleValues(option_value,
"unsigned short", this->name);
2030 if (out.compare(
"") != 0) {
2033 if (option_value[0] ==
"ADJOINT") {
2034 return badValue(option_value,
"math problem (try CONTINUOUS_ADJOINT)", this->name);
2036 if (Math_Problem_Map.find(option_value[0]) == Math_Problem_Map.end()) {
2037 return badValue(option_value,
"math problem", this->name);
2039 if (option_value[0] ==
"DIRECT") {
2040 this->cont_adjoint =
false;
2041 this->disc_adjoint =
false;
2042 this->restart =
false;
2045 if (option_value[0] ==
"CONTINUOUS_ADJOINT") {
2046 this->cont_adjoint=
true;
2047 this->disc_adjoint =
false;
2048 this->restart=
true;
2051 if (option_value[0] ==
"DISCRETE_ADJOINT") {
2052 this->disc_adjoint =
true;
2053 this->cont_adjoint=
false;
2054 this->restart =
true;
2057 return "option in math problem map not considered in constructor";
2061 this->cont_adjoint = this->cont_adjoint_def;
2062 this->disc_adjoint = this->disc_adjoint_def;
2063 this->restart = this->restart_def;
2070 unsigned short & nDV;
2071 su2double ** & paramDV;
2073 unsigned short* & design_variable;
2076 COptionDVParam(
string option_field_name,
unsigned short & nDV_field, su2double** & paramDV_field,
string* & FFDTag_field,
unsigned short * & design_variable_field) : nDV(nDV_field), paramDV(paramDV_field), FFDTag(FFDTag_field), design_variable(design_variable_field) {
2077 this->name = option_field_name;
2082 string SetValue(vector<string> option_value) {
2083 if ((option_value.size() == 1) && (option_value[0].compare(
"NONE") == 0)) {
2089 if (option_value[0].compare(
";") == 0) {
2091 newstring.append(this->name);
2092 newstring.append(
": may not have beginning semicolon");
2095 if (option_value[option_value.size()-1].compare(
";") == 0) {
2097 newstring.append(this->name);
2098 newstring.append(
": may not have ending semicolon");
2107 for (
unsigned int i = 0; i < static_cast<unsigned int>(option_value.size()); i++) {
2108 if (option_value[i].compare(
";") == 0) {
2117 if ( (this->nDV > 0) && (this->design_variable == NULL) ) {
2119 newstring.append(this->name);
2120 newstring.append(
": Design_Variable array has not been allocated. Check that DV_KIND appears before DV_PARAM in configuration file.");
2124 this->paramDV =
new su2double*[this->nDV];
2125 for (
unsigned short iDV = 0; iDV < this->nDV; iDV++) {
2129 this->FFDTag =
new string[this->nDV];
2131 unsigned short nParamDV = 0;
2134 for (
unsigned short iDV = 0; iDV < this->nDV; iDV++) {
2135 switch (this->design_variable[iDV]) {
2144 case CST: nParamDV = 3;
break;
2146 case SCALE: nParamDV = 0;
break;
2148 case ROTATION: nParamDV = 6;
break;
2151 case AIRFOIL: nParamDV = 2;
break;
2154 case FFD_GULL: nParamDV = 2;
break;
2162 case CUSTOM: nParamDV = 1;
break;
2165 newstring.append(this->name);
2166 newstring.append(
": undefined design variable type found in configuration file.");
2171 for (
unsigned short iParamDV = 0; iParamDV < nParamDV; iParamDV++) {
2173 ss << option_value[i] <<
" ";
2175 if ((iParamDV == 0) &&
2185 (this->design_variable[iDV] ==
FFD_GULL) ||
2186 (this->design_variable[iDV] ==
FFD_TWIST) ||
2189 (this->design_variable[iDV] ==
FFD_CAMBER) ||
2191 ss >> this->FFDTag[iDV];
2192 this->paramDV[iDV][iParamDV] = 0;
2195 ss >> this->paramDV[iDV][iParamDV];
2199 if (iDV < (this->nDV-1)) {
2200 if (option_value[i].compare(
";") != 0) {
2202 newstring.append(this->name);
2203 newstring.append(
": a design variable in the configuration file has the wrong number of parameters");
2216 this->paramDV = NULL;
2217 this->FFDTag = NULL;
2224 unsigned short* & nDV_Value;
2225 su2double ** & valueDV;
2226 unsigned short & nDV;
2227 su2double ** & paramDV;
2228 unsigned short* & design_variable;
2231 COptionDVValue(
string option_field_name,
unsigned short* & nDVValue_field, su2double** & valueDV_field,
unsigned short & nDV_field, su2double** & paramDV_field,
unsigned short * & design_variable_field) : nDV_Value(nDVValue_field), valueDV(valueDV_field), nDV(nDV_field), paramDV(paramDV_field), design_variable(design_variable_field) {
2232 this->name = option_field_name;
2237 string SetValue(vector<string> option_value) {
2238 if ((option_value.size() == 1) && (option_value[0].compare(
"NONE") == 0)) {
2239 this->nDV_Value = NULL;
2243 if ( (this->nDV > 0) && (this->design_variable == NULL) ) {
2245 newstring.append(this->name);
2246 newstring.append(
": Design_Variable array has not been allocated. Check that DV_KIND appears before DV_VALUE in configuration file.");
2249 if ( (this->nDV > 0) && (this->paramDV == NULL) ) {
2251 newstring.append(this->name);
2252 newstring.append(
": Design_Parameter array has not been allocated. Check that DV_PARAM appears before DV_VALUE in configuration file.");
2256 this->valueDV =
new su2double*[this->nDV];
2257 this->nDV_Value =
new unsigned short[this->nDV];
2259 for (
unsigned short iDV = 0; iDV < this->nDV; iDV++) {
2260 this->valueDV[iDV] =
new su2double[3];
2263 unsigned short nValueDV = 0;
2264 unsigned short totalnValueDV = 0;
2267 for (
unsigned short iDV = 0; iDV < this->nDV; iDV++) {
2268 switch (this->design_variable[iDV]) {
2270 if((this->paramDV[iDV][4] == 0) &&
2271 (this->paramDV[iDV][5] == 0) &&
2272 (this->paramDV[iDV][6] == 0)) {
2279 if((this->paramDV[iDV][3] == 0) &&
2280 (this->paramDV[iDV][4] == 0)) {
2290 this->nDV_Value[iDV] = nValueDV;
2292 totalnValueDV += nValueDV;
2294 for (
unsigned short iValueDV = 0; iValueDV < nValueDV; iValueDV++) {
2296 ss << option_value[i] <<
" ";
2298 ss >> this->valueDV[iDV][iValueDV];
2304 if (i != totalnValueDV) {
2306 newstring.append(this->name);
2307 newstring.append(
": a design variable in the configuration file has the wrong number of values");
2316 this->nDV_Value = 0;
2317 this->valueDV = NULL;
2324 unsigned short & nFFD;
2325 su2double ** & CoordFFD;
2329 COptionFFDDef(
string option_field_name,
unsigned short & nFFD_field, su2double** & coordFFD_field,
string* & FFDTag_field) : nFFD(nFFD_field), CoordFFD(coordFFD_field), FFDTag(FFDTag_field) {
2330 this->name = option_field_name;
2335 string SetValue(vector<string> option_value) {
2336 if ((option_value.size() == 1) && (option_value[0].compare(
"NONE") == 0)) {
2342 if (option_value[0].compare(
";") == 0) {
2344 newstring.append(this->name);
2345 newstring.append(
": may not have beginning semicolon");
2348 if (option_value[option_value.size()-1].compare(
";") == 0) {
2350 newstring.append(this->name);
2351 newstring.append(
": may not have ending semicolon");
2359 for (
unsigned int i = 0; i < static_cast<unsigned int>(option_value.size()); i++) {
2360 if (option_value[i].compare(
";") == 0) {
2368 this->CoordFFD =
new su2double*[this->nFFD];
2369 for (
unsigned short iFFD = 0; iFFD < this->nFFD; iFFD++) {
2370 this->CoordFFD[iFFD] =
new su2double[25];
2373 this->FFDTag =
new string[this->nFFD];
2375 unsigned short nCoordFFD = 0;
2379 for (
unsigned short iFFD = 0; iFFD < this->nFFD; iFFD++) {
2383 for (
unsigned short iCoordFFD = 0; iCoordFFD < nCoordFFD; iCoordFFD++) {
2385 ss << option_value[i] <<
" ";
2387 if (iCoordFFD == 0) ss >> this->FFDTag[iFFD];
2388 else ss >> this->CoordFFD[iFFD][iCoordFFD-1];
2393 if (iFFD < (this->nFFD-1)) {
2394 if (option_value[i].compare(
";") != 0) {
2396 newstring.append(this->name);
2397 newstring.append(
": a FFD box in the configuration file has the wrong number of parameters");
2411 this->CoordFFD = NULL;
2412 this->FFDTag = NULL;
2419 unsigned short & nFFD;
2420 unsigned short ** & DegreeFFD;
2423 COptionFFDDegree(
string option_field_name,
unsigned short & nFFD_field,
unsigned short** & degreeFFD_field) : nFFD(nFFD_field), DegreeFFD(degreeFFD_field) {
2424 this->name = option_field_name;
2429 string SetValue(vector<string> option_value) {
2430 if ((option_value.size() == 1) && (option_value[0].compare(
"NONE") == 0)) {
2436 if (option_value[0].compare(
";") == 0) {
2438 newstring.append(this->name);
2439 newstring.append(
": may not have beginning semicolon");
2442 if (option_value[option_value.size()-1].compare(
";") == 0) {
2444 newstring.append(this->name);
2445 newstring.append(
": may not have ending semicolon");
2453 for (
unsigned int i = 0; i < static_cast<unsigned int>(option_value.size()); i++) {
2454 if (option_value[i].compare(
";") == 0) {
2462 this->DegreeFFD =
new unsigned short*[this->nFFD];
2463 for (
unsigned short iFFD = 0; iFFD < this->nFFD; iFFD++) {
2464 this->DegreeFFD[iFFD] =
new unsigned short[3];
2467 unsigned short nDegreeFFD = 0;
2471 for (
unsigned short iFFD = 0; iFFD < this->nFFD; iFFD++) {
2475 for (
unsigned short iDegreeFFD = 0; iDegreeFFD < nDegreeFFD; iDegreeFFD++) {
2476 ss << option_value[i] <<
" ";
2477 ss >> this->DegreeFFD[iFFD][iDegreeFFD];
2481 if (iFFD < (this->nFFD-1)) {
2482 if (option_value[i].compare(
";") != 0) {
2484 newstring.append(this->name);
2485 newstring.append(
": a FFD degree in the configuration file has the wrong number of parameters");
2499 this->DegreeFFD = NULL;
2507 unsigned short & size;
2513 COptionStringDoubleList(
string option_field_name,
unsigned short & list_size,
string * & string_field, su2double* & double_field) : size(list_size), s_f(string_field), d_f(double_field) {
2514 this->name = option_field_name;
2518 string SetValue(vector<string> option_value) {
2520 unsigned short totalVals = option_value.size();
2521 if ((totalVals % 2) != 0) {
2522 if ((totalVals == 1) && (option_value[0].compare(
"NONE") == 0)) {
2528 newstring.append(this->name);
2529 newstring.append(
": must have an even number of entries");
2532 unsigned short nVals = totalVals / 2;
2534 this->s_f =
new string[nVals];
2535 this->d_f =
new su2double[nVals];
2537 for (
unsigned long i = 0; i < nVals; i++) {
2538 this->s_f[i].assign(option_value[2*i]);
2539 istringstream is(option_value[2*i + 1]);
2542 return badValue(option_value,
"string su2double", this->name);
2557 unsigned short & size;
2559 su2double * & ttotal;
2560 su2double * & ptotal;
2561 su2double ** & flowdir;
2564 COptionInlet(
string option_field_name,
unsigned short & nMarker_Inlet,
string* & Marker_Inlet, su2double* & Ttotal, su2double* & Ptotal, su2double** & FlowDir) : size(nMarker_Inlet), marker(Marker_Inlet), ttotal(Ttotal), ptotal(Ptotal), flowdir(FlowDir) {
2565 this->name = option_field_name;
2569 string SetValue(vector<string> option_value) {
2571 unsigned short totalVals = option_value.size();
2572 if ((totalVals == 1) && (option_value[0].compare(
"NONE") == 0)) {
2574 this->marker = NULL;
2575 this->ttotal = NULL;
2576 this->ptotal = NULL;
2577 this->flowdir = NULL;
2581 if (totalVals % 6 != 0) {
2583 newstring.append(this->name);
2584 newstring.append(
": must have a number of entries divisible by 6");
2586 this->marker = NULL;
2587 this->ttotal = NULL;
2588 this->ptotal = NULL;
2589 this->flowdir = NULL;
2593 unsigned short nVals = totalVals / 6;
2595 this->marker =
new string[nVals];
2596 this->ttotal =
new su2double[nVals];
2597 this->ptotal =
new su2double[nVals];
2598 this->flowdir =
new su2double*[nVals];
2599 for (
unsigned long i = 0; i < nVals; i++) {
2600 this->flowdir[i] =
new su2double[3];
2603 for (
unsigned long i = 0; i < nVals; i++) {
2604 this->marker[i].assign(option_value[6*i]);
2605 istringstream ss_1st(option_value[6*i + 1]);
2606 if (!(ss_1st >> this->ttotal[i])) {
2607 return badValue(option_value,
"inlet", this->name);
2609 istringstream ss_2nd(option_value[6*i + 2]);
2610 if (!(ss_2nd >> this->ptotal[i])) {
2611 return badValue(option_value,
"inlet", this->name);
2613 istringstream ss_3rd(option_value[6*i + 3]);
2614 if (!(ss_3rd >> this->flowdir[i][0])) {
2615 return badValue(option_value,
"inlet", this->name);
2617 istringstream ss_4th(option_value[6*i + 4]);
2618 if (!(ss_4th >> this->flowdir[i][1])) {
2619 return badValue(option_value,
"inlet", this->name);
2621 istringstream ss_5th(option_value[6*i + 5]);
2622 if (!(ss_5th >> this->flowdir[i][2])) {
2623 return badValue(option_value,
"inlet", this->name);
2631 this->marker = NULL;
2632 this->ttotal = NULL;
2633 this->ptotal = NULL;
2634 this->flowdir = NULL;
2639 template <
class Tenum>
2643 map<string, Tenum> m;
2645 unsigned short & size;
2647 unsigned short* & field;
2650 su2double ** & flowdir;
2653 COptionRiemann(
string option_field_name,
unsigned short & nMarker_Riemann,
string* & Marker_Riemann,
unsigned short* & option_field,
const map<string, Tenum> m, su2double* & var1, su2double* & var2, su2double** & FlowDir) : size(nMarker_Riemann),
2654 marker(Marker_Riemann), field(option_field), var1(var1), var2(var2), flowdir(FlowDir) {
2655 this->name = option_field_name;
2660 string SetValue(vector<string> option_value) {
2662 unsigned short totalVals = option_value.size();
2663 if ((totalVals == 1) && (option_value[0].compare(
"NONE") == 0)) {
2665 this->marker = NULL;
2669 this->flowdir = NULL;
2673 if (totalVals % 7 != 0) {
2675 newstring.append(this->name);
2676 newstring.append(
": must have a number of entries divisible by 7");
2678 this->marker = NULL;
2681 this->flowdir = NULL;
2686 unsigned short nVals = totalVals / 7;
2688 this->marker =
new string[nVals];
2689 this->var1 =
new su2double[nVals];
2690 this->var2 =
new su2double[nVals];
2691 this->flowdir =
new su2double*[nVals];
2692 this->field =
new unsigned short[nVals];
2694 for (
unsigned long i = 0; i < nVals; i++) {
2695 this->flowdir[i] =
new su2double[3];
2698 for (
unsigned long i = 0; i < nVals; i++) {
2699 this->marker[i].assign(option_value[7*i]);
2701 if (this->m.find(option_value[7*i + 1]) == m.end()) {
2703 str.append(this->name);
2704 str.append(
": invalid option value ");
2705 str.append(option_value[0]);
2706 str.append(
". Check current SU2 options in config_template.cfg.");
2709 Tenum val = this->m[option_value[7*i + 1]];
2710 this->field[i] = val;
2712 istringstream ss_1st(option_value[7*i + 2]);
2713 if (!(ss_1st >> this->var1[i])) {
2714 return badValue(option_value,
"Riemann", this->name);
2716 istringstream ss_2nd(option_value[7*i + 3]);
2717 if (!(ss_2nd >> this->var2[i])) {
2718 return badValue(option_value,
"Riemann", this->name);
2720 istringstream ss_3rd(option_value[7*i + 4]);
2721 if (!(ss_3rd >> this->flowdir[i][0])) {
2722 return badValue(option_value,
"Riemann", this->name);
2724 istringstream ss_4th(option_value[7*i + 5]);
2725 if (!(ss_4th >> this->flowdir[i][1])) {
2726 return badValue(option_value,
"Riemann", this->name);
2728 istringstream ss_5th(option_value[7*i + 6]);
2729 if (!(ss_5th >> this->flowdir[i][2])) {
2730 return badValue(option_value,
"Riemann", this->name);
2738 this->marker = NULL;
2741 this->flowdir = NULL;
2746 template <
class Tenum>
2750 COptionNRBC(
string option_field_name,
unsigned short & nMarker_NRBC,
string* & Marker_NRBC,
unsigned short* & option_field,
2751 const map<string, Tenum> m, su2double* & var1, su2double* & var2, su2double** & FlowDir):
COptionRiemann<Tenum>(option_field_name, nMarker_NRBC, Marker_NRBC, option_field,
2752 m, var1, var2,FlowDir) {}
2870 unsigned short & size;
2872 su2double * & ttotal;
2873 su2double * & ptotal;
2876 COptionExhaust(
string option_field_name,
unsigned short & nMarker_Exhaust,
string* & Marker_Exhaust, su2double* & Ttotal, su2double* & Ptotal) : size(nMarker_Exhaust), marker(Marker_Exhaust), ttotal(Ttotal), ptotal(Ptotal) {
2877 this->name = option_field_name;
2882 string SetValue(vector<string> option_value) {
2884 unsigned short totalVals = option_value.size();
2885 if ((totalVals == 1) && (option_value[0].compare(
"NONE") == 0)) {
2887 this->marker = NULL;
2888 this->ttotal = NULL;
2889 this->ptotal = NULL;
2893 if (totalVals % 3 != 0) {
2895 newstring.append(this->name);
2896 newstring.append(
": must have a number of entries divisible by 3");
2898 this->marker = NULL;
2899 this->ttotal = NULL;
2900 this->ptotal = NULL;
2904 unsigned short nVals = totalVals / 3;
2906 this->marker =
new string[nVals];
2907 this->ttotal =
new su2double[nVals];
2908 this->ptotal =
new su2double[nVals];
2910 for (
unsigned long i = 0; i < nVals; i++) {
2911 this->marker[i].assign(option_value[3*i]);
2912 istringstream ss_1st(option_value[3*i + 1]);
2913 if (!(ss_1st >> this->ttotal[i]))
2914 return badValue(option_value,
"exhaust fixed", this->name);
2915 istringstream ss_2nd(option_value[3*i + 2]);
2916 if (!(ss_2nd >> this->ptotal[i]))
2917 return badValue(option_value,
"exhaust fixed", this->name);
2924 this->marker = NULL;
2925 this->ttotal = NULL;
2926 this->ptotal = NULL;
2934 unsigned short & size;
2935 string * & marker_bound;
2936 string * & marker_donor;
2937 su2double ** & rot_center;
2938 su2double ** & rot_angles;
2939 su2double ** & translation;
2942 COptionPeriodic(
const string option_field_name,
unsigned short & nMarker_PerBound,
2943 string* & Marker_PerBound,
string* & Marker_PerDonor,
2944 su2double** & RotCenter, su2double** & RotAngles, su2double** & Translation) : size(nMarker_PerBound), marker_bound(Marker_PerBound), marker_donor(Marker_PerDonor), rot_center(RotCenter), rot_angles(RotAngles), translation(Translation) {
2945 this->name = option_field_name;
2949 string SetValue(vector<string> option_value) {
2951 const int mod_num = 11;
2953 unsigned short totalVals = option_value.size();
2954 if ((totalVals == 1) && (option_value[0].compare(
"NONE") == 0)) {
2956 this->marker_bound = NULL;
2957 this->marker_donor = NULL;
2958 this->rot_center = NULL;
2959 this->rot_angles = NULL;
2960 this->translation = NULL;
2964 if (totalVals % mod_num != 0) {
2966 newstring.append(this->name);
2967 newstring.append(
": must have a number of entries divisible by 11");
2969 this->marker_bound = NULL;
2970 this->marker_donor = NULL;
2971 this->rot_center = NULL;
2972 this->rot_angles = NULL;
2973 this->translation = NULL;
2977 unsigned short nVals = 2 * (totalVals / mod_num);
2979 this->marker_bound =
new string[nVals];
2980 this->marker_donor =
new string[nVals];
2981 this->rot_center =
new su2double*[nVals];
2982 this->rot_angles =
new su2double*[nVals];
2983 this->translation =
new su2double*[nVals];
2984 for (
unsigned long i = 0; i < nVals; i++) {
2985 this->rot_center[i] =
new su2double[3];
2986 this->rot_angles[i] =
new su2double[3];
2987 this->translation[i] =
new su2double[3];
2992 for (
unsigned long i = 0; i < (nVals/2); i++) {
2993 this->marker_bound[i].assign(option_value[mod_num*i]);
2994 this->marker_donor[i].assign(option_value[mod_num*i+1]);
2995 istringstream ss_1st(option_value[mod_num*i + 2]);
2996 if (!(ss_1st >> this->rot_center[i][0])) {
2997 return badValue(option_value,
"periodic", this->name);
2999 istringstream ss_2nd(option_value[mod_num*i + 3]);
3000 if (!(ss_2nd >> this->rot_center[i][1])) {
3001 return badValue(option_value,
"periodic", this->name);
3003 istringstream ss_3rd(option_value[mod_num*i + 4]);
3004 if (!(ss_3rd >> this->rot_center[i][2])) {
3005 return badValue(option_value,
"periodic", this->name);
3007 istringstream ss_4th(option_value[mod_num*i + 5]);
3008 if (!(ss_4th >> this->rot_angles[i][0])) {
3009 return badValue(option_value,
"periodic", this->name);
3011 istringstream ss_5th(option_value[mod_num*i + 6]);
3012 if (!(ss_5th >> this->rot_angles[i][1])) {
3013 return badValue(option_value,
"periodic", this->name);
3015 istringstream ss_6th(option_value[mod_num*i + 7]);
3016 if (!(ss_6th >> this->rot_angles[i][2])) {
3017 return badValue(option_value,
"periodic", this->name);
3019 istringstream ss_7th(option_value[mod_num*i + 8]);
3020 if (!(ss_7th >> this->translation[i][0])) {
3021 return badValue(option_value,
"periodic", this->name);
3023 istringstream ss_8th(option_value[mod_num*i + 9]);
3024 if (!(ss_8th >> this->translation[i][1])) {
3025 return badValue(option_value,
"periodic", this->name);
3027 istringstream ss_9th(option_value[mod_num*i + 10]);
3028 if (!(ss_9th >> this->translation[i][2])) {
3029 return badValue(option_value,
"periodic", this->name);
3031 this->rot_angles[i][0] *= deg2rad;
3032 this->rot_angles[i][1] *= deg2rad;
3033 this->rot_angles[i][2] *= deg2rad;
3036 for (
unsigned long i = (nVals/2); i < nVals; i++) {
3037 this->marker_bound[i].assign(option_value[mod_num*(i-nVals/2)+1]);
3038 this->marker_donor[i].assign(option_value[mod_num*(i-nVals/2)]);
3039 istringstream ss_1st(option_value[mod_num*(i-nVals/2) + 2]);
3040 if (!(ss_1st >> this->rot_center[i][0])) {
3041 return badValue(option_value,
"periodic", this->name);
3043 istringstream ss_2nd(option_value[mod_num*(i-nVals/2) + 3]);
3044 if (!(ss_2nd >> this->rot_center[i][1])) {
3045 return badValue(option_value,
"periodic", this->name);
3047 istringstream ss_3rd(option_value[mod_num*(i-nVals/2) + 4]);
3048 if (!(ss_3rd >> this->rot_center[i][2])) {
3049 return badValue(option_value,
"periodic", this->name);
3051 istringstream ss_4th(option_value[mod_num*(i-nVals/2) + 5]);
3052 if (!(ss_4th >> this->rot_angles[i][0])) {
3053 return badValue(option_value,
"periodic", this->name);
3055 istringstream ss_5th(option_value[mod_num*(i-nVals/2) + 6]);
3056 if (!(ss_5th >> this->rot_angles[i][1])) {
3057 return badValue(option_value,
"periodic", this->name);
3059 istringstream ss_6th(option_value[mod_num*(i-nVals/2) + 7]);
3060 if (!(ss_6th >> this->rot_angles[i][2])) {
3061 return badValue(option_value,
"periodic", this->name);
3063 istringstream ss_7th(option_value[mod_num*(i-nVals/2) + 8]);
3064 if (!(ss_7th >> this->translation[i][0])) {
3065 return badValue(option_value,
"periodic", this->name);
3067 istringstream ss_8th(option_value[mod_num*(i-nVals/2) + 9]);
3068 if (!(ss_8th >> this->translation[i][1])) {
3069 return badValue(option_value,
"periodic", this->name);
3071 istringstream ss_9th(option_value[mod_num*(i-nVals/2) + 10]);
3072 if (!(ss_9th >> this->translation[i][2])) {
3073 return badValue(option_value,
"periodic", this->name);
3077 this->rot_center[i][0] *= 1.0;
3078 this->rot_center[i][1] *= 1.0;
3079 this->rot_center[i][2] *= 1.0;
3080 this->rot_angles[i][0] *= -deg2rad;
3081 this->rot_angles[i][1] *= -deg2rad;
3082 this->rot_angles[i][2] *= -deg2rad;
3083 this->translation[i][0] *= -1.0;
3084 this->translation[i][1] *= -1.0;
3085 this->translation[i][2] *= -1.0;
3093 this->marker_bound = NULL;
3094 this->marker_donor = NULL;
3095 this->rot_center = NULL;
3096 this->rot_angles = NULL;
3097 this->translation = NULL;
3104 unsigned short & size;
3105 string * & marker_bound;
3106 string * & marker_donor;
3109 COptionMixingPlane(
const string option_field_name,
unsigned short & nMarker_MixBound,
3110 string* & Marker_MixBound,
string* & Marker_MixDonor) : size(nMarker_MixBound), marker_bound(Marker_MixBound), marker_donor(Marker_MixDonor) {
3111 this->name = option_field_name;
3115 string SetValue(vector<string> option_value) {
3117 const int mod_num = 2;
3119 unsigned long totalVals = option_value.size();
3120 if ((totalVals == 1) && (option_value[0].compare(
"NONE") == 0)) {
3122 this->marker_bound = NULL;
3123 this->marker_donor = NULL;
3127 if (totalVals % mod_num != 0) {
3129 newstring.append(this->name);
3130 newstring.append(
": must have a number of entries divisible by 11");
3132 this->marker_bound = NULL;
3133 this->marker_donor = NULL;
3137 unsigned long nVals = 2 * (totalVals / mod_num);
3139 this->marker_bound =
new string[nVals];
3140 this->marker_donor =
new string[nVals];
3143 for (
unsigned short i = 0; i < (nVals/2); i++) {
3144 this->marker_bound[i].assign(option_value[mod_num*i]);
3145 this->marker_donor[i].assign(option_value[mod_num*i+1]);
3148 for (
unsigned long i = (nVals/2); i < nVals; i++) {
3149 this->marker_bound[i].assign(option_value[mod_num*(i-nVals/2)+1]);
3150 this->marker_donor[i].assign(option_value[mod_num*(i-nVals/2)]);
3160 this->marker_bound = NULL;
3161 this->marker_donor = NULL;
3165 template <
class Tenum>
3168 unsigned short & size;
3169 string * & marker_turboIn;
3170 string * & marker_turboOut;
3171 map<string, Tenum> m;
3172 unsigned short* & field;
3176 string* & Marker_TurboBoundIn,
string* & Marker_TurboBoundOut,
unsigned short* & option_field,
const map<string, Tenum> m) : size(nMarker_TurboPerf), marker_turboIn(Marker_TurboBoundIn), marker_turboOut(Marker_TurboBoundOut), field(option_field) {
3177 this->name = option_field_name;
3182 string SetValue(vector<string> option_value) {
3184 const int mod_num = 3;
3186 unsigned long totalVals = option_value.size();
3187 if ((totalVals == 1) && (option_value[0].compare(
"NONE") == 0)) {
3189 this->marker_turboIn= NULL;
3190 this->marker_turboOut = NULL;
3195 if (totalVals % mod_num != 0) {
3197 newstring.append(this->name);
3198 newstring.append(
": must have a number of entries divisible by 11");
3200 this->marker_turboIn= NULL;
3201 this->marker_turboOut = NULL;;
3206 unsigned long nVals = totalVals / mod_num;
3208 this->marker_turboIn =
new string[nVals];
3209 this->marker_turboOut =
new string[nVals];
3210 this->field =
new unsigned short[nVals];
3211 for (
unsigned long i = 0; i < nVals; i++)
3212 if (this->m.find(option_value[mod_num*i + 2]) == m.end()) {
3214 str.append(this->name);
3215 str.append(
": invalid option value ");
3216 str.append(option_value[0]);
3217 str.append(
". Check current SU2 options in config_template.cfg.");
3220 for (
unsigned long i = 0; i < nVals; i++) {
3221 this->marker_turboIn[i].assign(option_value[mod_num*i]);
3222 this->marker_turboOut[i].assign(option_value[mod_num*i+1]);
3223 Tenum val = this->m[option_value[mod_num*i + 2]];
3224 this->field[i] = val;
3233 this->marker_turboIn= NULL;
3234 this->marker_turboOut = NULL;
3261 unsigned short & inlet_size;
3262 unsigned short & outlet_size;
3263 string * & marker_inlet;
3264 string * & marker_outlet;
3265 su2double ** & press_jump;
3266 su2double ** & temp_jump;
3267 su2double ** & omega;
3271 unsigned short & nMarker_ActDiskInlet,
unsigned short & nMarker_ActDiskOutlet,
string * & Marker_ActDiskInlet,
string * & Marker_ActDiskOutlet,
3272 su2double ** & ActDisk_PressJump, su2double ** & ActDisk_TempJump, su2double ** & ActDisk_Omega) :
3273 inlet_size(nMarker_ActDiskInlet), outlet_size(nMarker_ActDiskOutlet), marker_inlet(Marker_ActDiskInlet), marker_outlet(Marker_ActDiskOutlet),
3274 press_jump(ActDisk_PressJump), temp_jump(ActDisk_TempJump), omega(ActDisk_Omega) {
3279 string SetValue(vector<string> option_value) {
3280 const int mod_num = 8;
3281 unsigned short totalVals = option_value.size();
3282 if ((totalVals == 1) && (option_value[0].compare(
"NONE") == 0)) {
3287 if (totalVals % mod_num != 0) {
3289 newstring.append(this->name);
3290 newstring.append(
": must have a number of entries divisible by 8");
3295 unsigned short nVals = totalVals / mod_num;
3296 this->inlet_size = nVals;
3297 this->outlet_size = nVals;
3298 this->marker_inlet =
new string[this->inlet_size];
3299 this->marker_outlet =
new string[this->outlet_size];
3301 this->press_jump =
new su2double*[this->inlet_size];
3302 this->temp_jump =
new su2double*[this->inlet_size];
3303 this->omega =
new su2double*[this->inlet_size];
3304 for (
int i = 0; i < this->inlet_size; i++) {
3305 this->press_jump[i] =
new su2double[2];
3306 this->temp_jump[i] =
new su2double[2];
3307 this->omega[i] =
new su2double[2];
3310 string tname =
"actuator disk";
3312 for (
int i = 0; i < this->inlet_size; i++) {
3313 this->marker_inlet[i].assign(option_value[mod_num*i]);
3314 this->marker_outlet[i].assign(option_value[mod_num*i+1]);
3315 istringstream ss_1st(option_value[mod_num*i + 2]);
3316 if (!(ss_1st >> this->press_jump[i][0])) {
3317 return badValue(option_value, tname, this->name);
3319 istringstream ss_2nd(option_value[mod_num*i + 3]);
3320 if (!(ss_2nd >> this->temp_jump[i][0])) {
3321 return badValue(option_value, tname, this->name);
3323 istringstream ss_3rd(option_value[mod_num*i + 4]);
3324 if (!(ss_3rd >> this->omega[i][0])) {
3325 return badValue(option_value, tname, this->name);
3327 istringstream ss_4th(option_value[mod_num*i + 5]);
3328 if (!(ss_4th >> this->press_jump[i][1])) {
3329 return badValue(option_value, tname, this->name);
3331 istringstream ss_5th(option_value[mod_num*i + 6]);
3332 if (!(ss_5th >> this->temp_jump[i][1])) {
3333 return badValue(option_value, tname, this->name);
3335 istringstream ss_6th(option_value[mod_num*i + 7]);
3336 if (!(ss_6th >> this->omega[i][1])) {
3337 return badValue(option_value, tname, this->name);
3343 this->inlet_size = 0;
3344 this->outlet_size = 0;
3345 this->marker_inlet = NULL;
3346 this->marker_outlet = NULL;
3347 this->press_jump = NULL;
3348 this->temp_jump = NULL;
Definition: option_structure.hpp:1747
User specifies density and velocity (mass flow).
Definition: option_structure.hpp:867
Surface movement as design variable.
Definition: option_structure.hpp:1143
ILU(0) preconditioner.
Definition: option_structure.hpp:1291
ENUM_TRANSFER_METHOD
types of transfer methods
Definition: option_structure.hpp:689
ENUM_SENS_SMOOTHING
types of sensitivity smoothing
Definition: option_structure.hpp:1274
Direct problem.
Definition: option_structure.hpp:389
const int VISC_TERM
Position of the viscous terms in the numerics container array.
Definition: option_structure.hpp:365
ENUM_ADAPT
types of grid adaptation/refinement
Definition: option_structure.hpp:1026
const unsigned short N_POINTS_LINE
General output & CGNS defines.
Definition: option_structure.hpp:148
Geometrical analysis and gradient using finite differences.
Definition: option_structure.hpp:725
Flexible Generalized Minimal Residual method with restart.
Definition: option_structure.hpp:1224
Second order.
Definition: option_structure.hpp:598
const int HEAT_SOL
Position of the heat equation in the solution solver array.
Definition: option_structure.hpp:359
An extreme operating gust.
Definition: option_structure.hpp:525
Explicit Euler time integration definition.
Definition: option_structure.hpp:654
Maximum thickness in section 3.
Definition: option_structure.hpp:948
Hicks-Henne bump function for airfoil deformation.
Definition: option_structure.hpp:1160
Running the SU2_DEF software.
Definition: option_structure.hpp:105
Non-dimensional simulation.
Definition: option_structure.hpp:314
Definition of no solver.
Definition: option_structure.hpp:239
const unsigned int MAX_ZONES
Maximum number of zones.
Definition: option_structure.hpp:121
ENUM_DYNAMIC
types of schemes for dynamic structural computations
Definition: option_structure.hpp:1405
Parabolic airfoil definition as design variables.
Definition: option_structure.hpp:1161
Dipoisson boundary definition.
Definition: option_structure.hpp:743
ENUM_REGIME
different regime modes
Definition: option_structure.hpp:300
Definition: option_structure.hpp:2505
ENUM_FREESTREAM_OPTION
types of initialization option
Definition: option_structure.hpp:445
Tecplot binary format for the solution output.
Definition: option_structure.hpp:1074
ENUM_INTERPOLATOR
types of interpolators
Definition: option_structure.hpp:285
Surface rotation as design variable.
Definition: option_structure.hpp:1145
Steger-Warming method.
Definition: option_structure.hpp:573
ENUM_MAT_COMPRESS
Material compressibility.
Definition: option_structure.hpp:272
Definition of a FSI solver.
Definition: option_structure.hpp:189
Fluid structure defromation.
Definition: option_structure.hpp:486
High level of verbosity.
Definition: option_structure.hpp:171
Free form deformation for 3D design (change a control point).
Definition: option_structure.hpp:1149
Arbitrary grid motion specified by external files at each time step.
Definition: option_structure.hpp:487
const int FEA_TERM
Position of the finite element analysis terms in the numerics container array.
Definition: option_structure.hpp:371
Domain interface boundary definition.
Definition: option_structure.hpp:745
Equivalent area objective function definition.
Definition: option_structure.hpp:936
ENUM_FLOW_GRADIENT
types of schemes to compute the flow gradient
Definition: option_structure.hpp:704
Definition: option_structure.hpp:1415
VTK nomenclature for defining a vertex element.
Definition: option_structure.hpp:911
RANS equations for the FSI problem.
Definition: option_structure.hpp:227
Definition of compressible solver.
Definition: option_structure.hpp:301
ENUM_TIME_INT
type of time integration schemes
Definition: option_structure.hpp:652
VTK nomenclature for defining a tetrahedron element.
Definition: option_structure.hpp:915
Free form deformation for 3D design (change the twist angle of a section).
Definition: option_structure.hpp:1151
ENUM_OUTPUT
type of solution output file formats
Definition: option_structure.hpp:1072
Definition of a FEM solver.
Definition: option_structure.hpp:190
Running the SU2_MSH software.
Definition: option_structure.hpp:107
One-physics case, the code is solving the poissonal potential equation.
Definition: option_structure.hpp:339
ENUM_FSI_FLUID_PROBLEM
types of fluid solvers
Definition: option_structure.hpp:223
Surface rotation as design variable.
Definition: option_structure.hpp:1144
ENUM_FFD_CONTINUITY
types surface continuity at the intersection with the FFD
Definition: option_structure.hpp:1246
ACTDISK_TYPE
types actuator disk boundary treatments
Definition: option_structure.hpp:891
Update geometry structure (grid moving, adaptation, etc.).
Definition: option_structure.hpp:717
Pressure objective function definition (inverse design).
Definition: option_structure.hpp:929
Definition: option_structure.hpp:1637
FieldView binary format for the solution output.
Definition: option_structure.hpp:1076
VERB_LEVEL
Verbosity level.
Definition: option_structure.hpp:168
One-physics case, the code is solving the adjoint turbulence model.
Definition: option_structure.hpp:342
ENUM_TRANS_MODEL
types of transition models
Definition: option_structure.hpp:639
const unsigned int MAX_FE_KINDS
Maximum number of Finite Elements.
Definition: option_structure.hpp:122
Temperature.
Definition: option_structure.hpp:1124
Definition of the continuous adjoint Reynolds-averaged Navier-Stokes' (RANS) solver.
Definition: option_structure.hpp:193
User specifies the BC thrust.
Definition: option_structure.hpp:893
const int EL_TETRA
Elements of four nodes (3D).
Definition: option_structure.hpp:381
void SetValue(su2double &data, const double &val)
Set the (primitive) value of the datatype (needs to be implemented for each new type).
Definition: codi_forward_structure.inl:36
User specifies fan face mach number.
Definition: option_structure.hpp:879
A gust made from vortices.
Definition: option_structure.hpp:524
const int TURB_SOL
Position of the turbulence model solution in the solver container array.
Definition: option_structure.hpp:353
Boundary Load definition.
Definition: option_structure.hpp:762
CGNS format for the solution output.
Definition: option_structure.hpp:1078
User specifies total pressure, total temperature and Velocity components.
Definition: option_structure.hpp:805
Residual criteria to establish the convergence of the code.
Definition: option_structure.hpp:1354
Eddy viscosity.
Definition: option_structure.hpp:1126
ANSWER
Boolean answers.
Definition: option_structure.hpp:159
Definition of incompressible material.
Definition: option_structure.hpp:274
Definition: option_structure.hpp:2747
Continuous adjoint problem.
Definition: option_structure.hpp:390
Simulation in a rotating frame.
Definition: option_structure.hpp:491
Support for implementing another implicit method.
Definition: option_structure.hpp:668
Do a gradient based grid adaptation of the flow and adjoint grid.
Definition: option_structure.hpp:1033
const int FLOW_SOL
Position of the mean flow solution in the solver container array.
Definition: option_structure.hpp:350
Free form deformation for 3D design (camber change).
Definition: option_structure.hpp:1150
const unsigned int MAX_NUMBER_PERIODIC
Maximum number of periodic boundary conditions.
Definition: option_structure.hpp:116
const unsigned short N_POINTS_TRIANGLE
General output & CGNS defines.
Definition: option_structure.hpp:149
Static pressure.
Definition: option_structure.hpp:1122
Maximum thickness in section 5.
Definition: option_structure.hpp:950
const int EL_HEXA
Elements of eight nodes (3D).
Definition: option_structure.hpp:382
One-physics case, the code is solving the flow equations(Euler and Navier-Stokes).
Definition: option_structure.hpp:337
Definition of the Navier-Stokes' solver.
Definition: option_structure.hpp:184
_______.
Definition: option_structure.hpp:520
Boundary Neumann definition.
Definition: option_structure.hpp:747
One-physics case, the code is solving the adjoint potential flow equation.
Definition: option_structure.hpp:340
Preconditionated conjugate gradient method for grid deformation.
Definition: option_structure.hpp:1221
Definition of linear elastic material.
Definition: option_structure.hpp:250
Angle of attack for airfoils.
Definition: option_structure.hpp:1169
Definition of linear elastic material.
Definition: option_structure.hpp:262
Boundary outlet flow definition.
Definition: option_structure.hpp:739
Gather data on one processor and scatter it into the one that needs it.
Definition: option_structure.hpp:691
No slip isothermal wall boundary condition.
Definition: option_structure.hpp:756
Free form deformation for 3D design (rotation around a line).
Definition: option_structure.hpp:1154
Definition: option_structure.hpp:1166
ENUM_RESIDUAL
types of residual criteria equations
Definition: option_structure.hpp:999
Paraview format for the solution output.
Definition: option_structure.hpp:1079
BCGSTAB - Biconjugate Gradient Stabilized Method (main solver).
Definition: option_structure.hpp:1223
ENUM_CONDUCTIVITYMODEL
types of thermal conductivity model
Definition: option_structure.hpp:470
No smoothing.
Definition: option_structure.hpp:1275
Tecplot format for the solution output.
Definition: option_structure.hpp:1073
Simulation with moving walls (translation/rotation).
Definition: option_structure.hpp:490
ENUM_MEASUREMENTS
different system of measurements
Definition: option_structure.hpp:325
GEO_TYPE
types of geometric entities based on VTK nomenclature
Definition: option_structure.hpp:910
User input.
Definition: option_structure.hpp:1250
ENUM_TURB_MODEL
types of turbulent models
Definition: option_structure.hpp:624
AUSMPW+ numerical method.
Definition: option_structure.hpp:576
Boundary Load definition.
Definition: option_structure.hpp:750
Airfoil definition as design variables.
Definition: option_structure.hpp:1163
const su2double TWO3
Two divided by three.
Definition: option_structure.hpp:138
Simulation in a steadily translating frame.
Definition: option_structure.hpp:494
Kind of Turbulence model (Menter SST).
Definition: option_structure.hpp:628
Boundary supersonic inlet definition.
Definition: option_structure.hpp:752
Scalar upwind numerical method.
Definition: option_structure.hpp:570
const int CONV_BOUND_TERM
Position of the convective boundary terms in the numerics container array.
Definition: option_structure.hpp:368
Jacobi preconditioner.
Definition: option_structure.hpp:1288
VTK nomenclature for defining a line element.
Definition: option_structure.hpp:912
Electrode boundary definition.
Definition: option_structure.hpp:742
Definition of Neo-Hookean material.
Definition: option_structure.hpp:251
Flexible Generalized Minimal Residual method.
Definition: option_structure.hpp:1222
Drag objective function definition.
Definition: option_structure.hpp:925
Roe-Turkel's upwind numerical method.
Definition: option_structure.hpp:575
const int SINGLE_NODE
There is only a node in the MPI parallelization.
Definition: option_structure.hpp:144
Maximum thickness in section 1.
Definition: option_structure.hpp:946
_____.
Definition: option_structure.hpp:416
Kind of Turbulent model (Spalart-Allmaras).
Definition: option_structure.hpp:626
ILU smoother.
Definition: option_structure.hpp:1227
No verbosity.
Definition: option_structure.hpp:169
Y-component of velocity.
Definition: option_structure.hpp:1120
Free form deformation for 3D design (control surface).
Definition: option_structure.hpp:1159
No turbulence model.
Definition: option_structure.hpp:625
Definition of the poisson potential solver.
Definition: option_structure.hpp:186
Derivative with respect to the freestream temperature.
Definition: option_structure.hpp:1381
Simulation on a static mesh with a gust.
Definition: option_structure.hpp:495
Definition: option_structure.hpp:2222
ENUM_2DFORM
different regime modes
Definition: option_structure.hpp:774
No centered scheme is used.
Definition: option_structure.hpp:551
Definition: option_structure.hpp:1547
Definition: option_structure.hpp:2640
Full Newton-Rapshon method.
Definition: option_structure.hpp:679
ENUM_VISCOSITYMODEL
types of viscosity model
Definition: option_structure.hpp:458
Sobolev gradient smoothing.
Definition: option_structure.hpp:1276
No derivative continuity.
Definition: option_structure.hpp:1247
const su2double TURB_EPS
Turbulent Error scale.
Definition: option_structure.hpp:135
Free form deformation for 3D design (thickness change).
Definition: option_structure.hpp:1157
ENUM_LIMITER
types of slope limiters
Definition: option_structure.hpp:609
Definition: option_structure.hpp:1702
Use the analytical definition of the NACA0012 for doing the grid adaptation.
Definition: option_structure.hpp:1304
User specifies static pressure, static temperature, and Mach components.
Definition: option_structure.hpp:806
Derivative with respect to the freestream pressure.
Definition: option_structure.hpp:1380
Headers of the mpi interface for generalized datatypes. The subroutines and functions are in the mpi_...
Boundary Euler wall definition.
Definition: option_structure.hpp:746
Clamped Boundary definition.
Definition: option_structure.hpp:761
NS equations for the FSI problem.
Definition: option_structure.hpp:226
User specifies the variables jump.
Definition: option_structure.hpp:892
Surfacebump function for flat surfaces deformation.
Definition: option_structure.hpp:1165
const int WAVE_SOL
Position of the wave equation in the solution solver array.
Definition: option_structure.hpp:358
Gradients computation using Weighted Least Squares.
Definition: option_structure.hpp:706
Pitching moment objective function definition.
Definition: option_structure.hpp:933
ENUM_UNSTEADY
types of schemes for unsteady computations
Definition: option_structure.hpp:1332
Add the periodic halo cells.
Definition: option_structure.hpp:1039
Definition: option_structure.hpp:1930
Simulation with aeroelastic motion.
Definition: option_structure.hpp:489
Definition: option_structure.hpp:1490
_____.
Definition: option_structure.hpp:471
User specifies static pressure, static temperature, and Mach components.
Definition: option_structure.hpp:807
Definition: option_structure.hpp:3240
Riemann Boundary definition.
Definition: option_structure.hpp:755
const int SOURCE_SECOND_TERM
Position of the second source term in the numerics container array.
Definition: option_structure.hpp:367
SU2_COMPONENT
different software components of SU2
Definition: option_structure.hpp:103
Lift objective function definition.
Definition: option_structure.hpp:926
BC_TYPE
types of boundary conditions
Definition: option_structure.hpp:734
ENUM_MATH_PROBLEM
types of mathematical problem to solve
Definition: option_structure.hpp:388
Jameson-Smith-Turkel centered numerical method.
Definition: option_structure.hpp:552
Use the analytical definition of the NACA4412 for doing the grid adaptation.
Definition: option_structure.hpp:1305
Use a dual time stepping strategy for unsteady computations (2nd order).
Definition: option_structure.hpp:1336
const unsigned int MAX_PARAMETERS
Maximum number of parameters for a design variable definition.
Definition: option_structure.hpp:115
Definition: option_structure.hpp:2068
Angle of attack sensitivity.
Definition: option_structure.hpp:1014
MIXINGPROCESS_TYPE
types of mixing process for averaging quantities at the boundaries.
Definition: option_structure.hpp:837
Lax-Friedrich centered numerical method.
Definition: option_structure.hpp:553
Linelet smoother.
Definition: option_structure.hpp:1228
User specifies the Net thrust.
Definition: option_structure.hpp:894
Definition: option_structure.hpp:3102
Domain interface definition.
Definition: option_structure.hpp:766
Slope limiter using Barth-Jespersen method.
Definition: option_structure.hpp:611
creates a map from a list by overloading operator()
Definition: option_structure.hpp:65
ENUM_GUST_TYPE
type of wind gusts
Definition: option_structure.hpp:519
LU SGS preconditioner.
Definition: option_structure.hpp:1289
Do a complete grid refinement of all the computational grids.
Definition: option_structure.hpp:1028
Arbitrary grid motion specified by external files at each time step with rigid rotation.
Definition: option_structure.hpp:488
ENGINE_INFLOW_TYPE
types engine inflow boundary treatments
Definition: option_structure.hpp:878
Modified Newton-Raphson method.
Definition: option_structure.hpp:680
FieldView format for the solution output.
Definition: option_structure.hpp:1075
an area average is computed at the boundary of interest.
Definition: option_structure.hpp:839
Sine-waveBoundary Load definition.
Definition: option_structure.hpp:763
Do a grid smoothing of the geometry.
Definition: option_structure.hpp:1037
Boundary send-receive definition.
Definition: option_structure.hpp:767
const unsigned int MESH_0
Definition of the finest grid level.
Definition: option_structure.hpp:127
User does not specify anything information are retrieved from the other domain.
Definition: option_structure.hpp:808
Free form deformation for 3D design (thickness change).
Definition: option_structure.hpp:1152
Definition: option_structure.hpp:1848
GEOMETRY_MODE
types of action to perform when doing the geometry evaluation
Definition: option_structure.hpp:723
Definition: option_structure.hpp:2868
Non-dimensional simulation.
Definition: option_structure.hpp:313
Slope limiter using Venkatakrisnan method.
Definition: option_structure.hpp:610
Do a complete grid refinement of the flow grid.
Definition: option_structure.hpp:1029
Use the analytical definition of a cylinder for doing the grid adaptation.
Definition: option_structure.hpp:1306
Definition of plane stress solver.
Definition: option_structure.hpp:775
Definition: option_structure.hpp:1889
Dimensional simulation.
Definition: option_structure.hpp:311
No upwind scheme is used.
Definition: option_structure.hpp:568
Top-hat function shaped gust.
Definition: option_structure.hpp:521
One-physics case, the code is solving the adjoint equations is being solved (Euler and Navier-Stokes)...
Definition: option_structure.hpp:341
Apply a computable error grid adaptation.
Definition: option_structure.hpp:1034
const unsigned int MESH_1
Definition of the finest grid level.
Definition: option_structure.hpp:128
Turbomachinery blade performances.
Definition: option_structure.hpp:852
Y-direction force objective function definition.
Definition: option_structure.hpp:939
ENUM_LINEAR_SOLVER
types of solvers for solving linear systems
Definition: option_structure.hpp:1217
VTK nomenclature for defining a hexahedron element.
Definition: option_structure.hpp:916
Do a gradient based grid adaptation of the flow grid.
Definition: option_structure.hpp:1031
No transition model.
Definition: option_structure.hpp:640
Second order with limiter.
Definition: option_structure.hpp:599
Impose a stiffness for each element that is inversely proportional to cell volume.
Definition: option_structure.hpp:1365
const unsigned int MAX_STRING_SIZE
Maximum number of domains.
Definition: option_structure.hpp:117
Definition of incompressible solver.
Definition: option_structure.hpp:302
Turbomachinery blade stage performances.
Definition: option_structure.hpp:853
Boundary symmetry plane definition.
Definition: option_structure.hpp:737
const unsigned short N_POINTS_TETRAHEDRON
General output & CGNS defines.
Definition: option_structure.hpp:151
One-physics case, the code is solving the heat equation.
Definition: option_structure.hpp:346
User does not specify anything information are retrieved from the other domain.
Definition: option_structure.hpp:809
const su2double ONE2
One divided by two.
Definition: option_structure.hpp:137
Y axis orientation.
Definition: option_structure.hpp:1321
Isoparametric interpolation.
Definition: option_structure.hpp:287
const su2double PI_NUMBER
Pi number.
Definition: option_structure.hpp:141
User specifies static pressure.
Definition: option_structure.hpp:804
Rotor Figure of Merit objective function definition.
Definition: option_structure.hpp:943
const unsigned short N_ELEM_TYPES
General output & CGNS defines.
Definition: option_structure.hpp:147
No surface deformation.
Definition: option_structure.hpp:1146
const int SOURCE_FIRST_TERM
Position of the first source term in the numerics container array.
Definition: option_structure.hpp:366
_______.
Definition: option_structure.hpp:539
Boundary displacement definition.
Definition: option_structure.hpp:748
ENUM_INIT_OPTION
types of initialization option
Definition: option_structure.hpp:431
Definition of the wave solver.
Definition: option_structure.hpp:187
ENUM_SOLVER
different solver types for the CFD component
Definition: option_structure.hpp:181
Slope limiter using sharp edges.
Definition: option_structure.hpp:612
First order.
Definition: option_structure.hpp:597
One-physics case, the code is solving the FEA equation.
Definition: option_structure.hpp:345
VTK nomenclature for defining a quadrilateral element.
Definition: option_structure.hpp:914
const int CGNS_STRING_SIZE
Length of strings used in the CGNS format.
Definition: option_structure.hpp:1067
Nearest Neigbhor interpolation.
Definition: option_structure.hpp:286
Z-direction force objective function definition.
Definition: option_structure.hpp:940
Radial Distortion objective function definition.
Definition: option_structure.hpp:956
Definition of the Reynolds-averaged Navier-Stokes' (RANS) solver.
Definition: option_structure.hpp:185
Periodic boundary definition.
Definition: option_structure.hpp:740
GEOMETRY_ACTION
types of action to take on a geometry structure
Definition: option_structure.hpp:715
const unsigned int MAX_TERMS
Maximum number of terms in the numerical equations (dimension of solver container array)...
Definition: option_structure.hpp:120
const unsigned short N_POINTS_HEXAHEDRON
General output & CGNS defines.
Definition: option_structure.hpp:152
Actuator disk outlet boundary definition.
Definition: option_structure.hpp:760
Definition: option_structure.hpp:2322
Definition: option_structure.hpp:1668
Simulation with moving HTP (rotation).
Definition: option_structure.hpp:496
ACDC computes the right thrust.
Definition: option_structure.hpp:895
Impose a constant stiffness for each element (steel).
Definition: option_structure.hpp:1364
Newton method for point inversion algorithm (Free-Form).
Definition: option_structure.hpp:1219
Heat flux objective function definition (inverse design).
Definition: option_structure.hpp:930
Torque objective function definition.
Definition: option_structure.hpp:942
Angle of attack for FFD problem.
Definition: option_structure.hpp:1170
ENUM_GRIDMOVEMENT
types of unsteady mesh motion
Definition: option_structure.hpp:482
Mach number.
Definition: option_structure.hpp:1123
Free form deformation for 3D design (camber change).
Definition: option_structure.hpp:1158
Derivative with respect to the angle of attack.
Definition: option_structure.hpp:1379
No Deformation.
Definition: option_structure.hpp:1168
Linear Elasticity.
Definition: option_structure.hpp:492
Thrust objective function definition.
Definition: option_structure.hpp:941
Side force objective function definition.
Definition: option_structure.hpp:927
Consistent & Conservative interpolation (S.A. Brown 1997). Utilizes Isoparametric interpolation...
Definition: option_structure.hpp:288
Support for implementing an explicit method.
Definition: option_structure.hpp:666
Allocate geometry structure.
Definition: option_structure.hpp:716
No analytic definition of the geometry.
Definition: option_structure.hpp:1303
ENUM_KIND_NONDIM
different non-dimensional modes
Definition: option_structure.hpp:310
All processors gather data (this will be useful for operations over a group of data - averaging) ...
Definition: option_structure.hpp:692
Definition: option_structure.hpp:1964
ENUM_SPACE
types of spatial discretizations
Definition: option_structure.hpp:401
Objective function defined via chain rule on primitive variable gradients.
Definition: option_structure.hpp:954
Gather data on one processor and broadcast it into all of them, relating to global nodes...
Definition: option_structure.hpp:690
User specifies density and velocity, and flow direction.
Definition: option_structure.hpp:803
const unsigned int OVERHEAD
Overhead space above nMarker when allocating space for boundary elems (MPI + periodic).
Definition: option_structure.hpp:125
ENUM_INPUT
types of input file formats
Definition: option_structure.hpp:1059
ENUM_CONVERGE_CRIT
types of criteria to determine when the solution is converged
Definition: option_structure.hpp:1352
Medium level of verbosity.
Definition: option_structure.hpp:170
const su2double STANDART_GRAVITY
Acceleration due to gravity at surface of earth.
Definition: option_structure.hpp:132
const int FEA_SOL
Position of the FEA equation in the solution solver array.
Definition: option_structure.hpp:360
an algebraic average is computed at the boundary of interest.
Definition: option_structure.hpp:838
Non-dimensional simulation.
Definition: option_structure.hpp:312
NRBC Boundary definition.
Definition: option_structure.hpp:764
X-direction force objective function definition.
Definition: option_structure.hpp:938
RhoE equation residual criteria equation.
Definition: option_structure.hpp:1001
Free form deformation for 2D design (change a control point).
Definition: option_structure.hpp:1155
Simulation with dynamically deforming meshes (plunging/pitching/rotation).
Definition: option_structure.hpp:484
Boolean definition of yes.
Definition: option_structure.hpp:162
Definition: option_structure.hpp:1167
Boundary nacelle exhaust.
Definition: option_structure.hpp:754
The four digits NACA airfoil family as design variables.
Definition: option_structure.hpp:1162
an mixed-out average is computed at the boundary of interest.
Definition: option_structure.hpp:840
Static Pressure objective function definition.
Definition: option_structure.hpp:952
Impose a stiffness for each element that is proportional to the distance from the deforming surface...
Definition: option_structure.hpp:1366
Boundary Load definition.
Definition: option_structure.hpp:749
Efficiency objective function definition.
Definition: option_structure.hpp:928
ENUM_GUST_DIR
type of wind direction
Definition: option_structure.hpp:538
Upwind convective numerical method.
Definition: option_structure.hpp:404
Definition: option_structure.hpp:2555
const unsigned int EXIT_DIVERGENCE
Exit code (divergence).
Definition: option_structure.hpp:112
const int CONV_TERM
Position of the convective terms in the numerics container array.
Definition: option_structure.hpp:364
Maximum thickness in section 4.
Definition: option_structure.hpp:949
const int ADJFLOW_SOL
Position of the continuous adjoint flow solution in the solver container array.
Definition: option_structure.hpp:351
Pressure boundary condition.
Definition: option_structure.hpp:758
const unsigned int BUFSIZE
MPI buffer.
Definition: option_structure.hpp:114
ENUM_FFD_BLENDING
types of FFD Blending function
Definition: option_structure.hpp:1206
Definition: option_structure.hpp:1577
Sine shaped gust.
Definition: option_structure.hpp:522
Definition: option_structure.hpp:1607
Boundary Euler wall definition.
Definition: option_structure.hpp:735
Slope limiter using wall distance.
Definition: option_structure.hpp:613
Jump given by a difference in values.
Definition: option_structure.hpp:1094
const int TEMPLATE_SOL
Position of the template solution.
Definition: option_structure.hpp:362
Definition: option_structure.hpp:3259
TURBO_PERFORMANCE_TYPE
types of Turbomachinery performance indicators.
Definition: option_structure.hpp:851
void StringToUpperCase(string &str)
utility function for converting strings to uppercase
Definition: option_structure.hpp:85
Rolling moment objective function definition.
Definition: option_structure.hpp:934
One-physics case, the code is solving the turbulence model.
Definition: option_structure.hpp:347
Running the SU2_GEO software.
Definition: option_structure.hpp:108
ENUM_AXIS_ORIENTATION
types of axis orientation
Definition: option_structure.hpp:1319
Density.
Definition: option_structure.hpp:1118
custom boundary definition.
Definition: option_structure.hpp:744
Explicit Runge-Kutta time integration definition.
Definition: option_structure.hpp:653
const unsigned int ZONE_0
Definition of the first grid domain.
Definition: option_structure.hpp:129
const int ADJTURB_SOL
Position of the continuous adjoint turbulence solution in the solver container array.
Definition: option_structure.hpp:354
Simulation on a static mesh.
Definition: option_structure.hpp:483
const unsigned int MAX_SOLS
Maximum number of solutions at the same time (dimension of solution container array).
Definition: option_structure.hpp:119
ENUM_AITKEN
different regime modes
Definition: option_structure.hpp:786
INLET_TYPE
types inlet boundary treatments
Definition: option_structure.hpp:865
1-cosine shaped gust
Definition: option_structure.hpp:523
Definition: option_structure.hpp:2010
Roe's upwind numerical method.
Definition: option_structure.hpp:569
Line implicit preconditioner.
Definition: option_structure.hpp:1290
ENUM_DEFORM_STIFFNESS
types of element stiffnesses imposed for FEA mesh deformation
Definition: option_structure.hpp:1363
const int EL_QUAD
Elements of four nodes (2D).
Definition: option_structure.hpp:379
Definition of Neo-Hookean material.
Definition: option_structure.hpp:263
Geometrical analysis.
Definition: option_structure.hpp:724
ENUM_TIME_INT_FEA
type of time integration schemes
Definition: option_structure.hpp:665
MG_CYCLE
type of multigrid cycle
Definition: option_structure.hpp:1104
Second derivative continuity.
Definition: option_structure.hpp:1249
ENUM_GEO_ANALYTIC
types of analytic definitions for various geometries
Definition: option_structure.hpp:1302
Simulation with rigid mesh motion (plunging/pitching/rotation).
Definition: option_structure.hpp:485
Use a rotational source term.
Definition: option_structure.hpp:1337
Definition of compressible solver.
Definition: option_structure.hpp:326
No convective scheme is used.
Definition: option_structure.hpp:402
V cycle.
Definition: option_structure.hpp:1105
ENUM_UPWIND
types of upwind spatial discretizations
Definition: option_structure.hpp:567
RIEMANN_TYPE
types Riemann boundary treatments
Definition: option_structure.hpp:801
ENUM_FLUIDMODEL
types of fluid model
Definition: option_structure.hpp:414
User specifies Static pressure.
Definition: option_structure.hpp:881
Definition: option_structure.hpp:1806
Maximum thickness.
Definition: option_structure.hpp:944
Simulation with rotation and aeroelastic motion.
Definition: option_structure.hpp:493
Rho equation residual criteria equation.
Definition: option_structure.hpp:1000
Near-Field boundary definition.
Definition: option_structure.hpp:741
One-physics case, the code is solving the wave equation.
Definition: option_structure.hpp:343
const unsigned short N_POINTS_PYRAMID
General output & CGNS defines.
Definition: option_structure.hpp:153
X-component of velocity.
Definition: option_structure.hpp:1119
ENUM_LINEAR_SOLVER_PREC
types of preconditioners for the linear solver
Definition: option_structure.hpp:1287
Definition: __init__.py:1
User specifies the Net thrust.
Definition: option_structure.hpp:897
Boundary far-field definition.
Definition: option_structure.hpp:736
Definition of the continuous adjoint Navier-Stokes' solver.
Definition: option_structure.hpp:192
const int SINGLE_ZONE
There is only a zone.
Definition: option_structure.hpp:145
Original transfer method, maintained to check .
Definition: option_structure.hpp:693
const unsigned int NO_RK_ITER
No Runge-Kutta iteration.
Definition: option_structure.hpp:123
One-physics case, the code is solving the turbulence model.
Definition: option_structure.hpp:338
Geometrical sensitivity.
Definition: option_structure.hpp:1012
Space centered convective numerical method.
Definition: option_structure.hpp:403
Actuator disk inlet boundary definition.
Definition: option_structure.hpp:759
_____.
Definition: option_structure.hpp:432
Use a time stepping strategy for unsteady computations.
Definition: option_structure.hpp:1334
Nonlinear elasticity equations for the FSI problem.
Definition: option_structure.hpp:240
ENUM_STRUCT_SOLVER
Material geometric conditions.
Definition: option_structure.hpp:249
User specifies total pressure, total temperature, and flow direction.
Definition: option_structure.hpp:866
Running the SU2_SOL software.
Definition: option_structure.hpp:109
VTK nomenclature for defining a pyramid element.
Definition: option_structure.hpp:918
Aero Drag objective function definition.
Definition: option_structure.hpp:955
CST method with Kulfan parameters for airfoil deformation.
Definition: option_structure.hpp:1164
Quasi Newton method for point inversion algorithm (Free-Form).
Definition: option_structure.hpp:1220
No slip constant heat flux wall boundary condition.
Definition: option_structure.hpp:757
Apply a remaining error grid adaptation.
Definition: option_structure.hpp:1035
Definition of the continuous adjoint Euler's solver.
Definition: option_structure.hpp:191
User specifies an input file.
Definition: option_structure.hpp:868
Cauchy criteria to establish the convergence of the code.
Definition: option_structure.hpp:1353
Kind of transition model (LM for Spalart-Allmaras).
Definition: option_structure.hpp:641
Use a harmonic balance source term.
Definition: option_structure.hpp:1338
Use the analytical definition of a biparabolic airfoil for doing the grid adaptation.
Definition: option_structure.hpp:1307
Boolean definition of no.
Definition: option_structure.hpp:161
CGNS input format for the computational grid.
Definition: option_structure.hpp:1061
No relaxation in the strongly coupled approach.
Definition: option_structure.hpp:787
X axis orientation.
Definition: option_structure.hpp:1320
Boundary inlet flow definition.
Definition: option_structure.hpp:738
ACDC computes the right thrust.
Definition: option_structure.hpp:896
HLLC numerical method.
Definition: option_structure.hpp:572
ENUM_CENTERED
types of centered spatial discretizations
Definition: option_structure.hpp:550
Kinetic Energy preserving Jameson-Smith-Turkel centered numerical method.
Definition: option_structure.hpp:554
Use a time stepping strategy for dynamic computations.
Definition: option_structure.hpp:1407
ENUM_MATERIAL_MODEL
Material model.
Definition: option_structure.hpp:261
A steady computation.
Definition: option_structure.hpp:1333
Convective upwind and split pressure numerical method.
Definition: option_structure.hpp:577
Free form deformation for 3D design (change the dihedral angle).
Definition: option_structure.hpp:1153
ENUM_FSI_STRUC_PROBLEM
types of structural solvers
Definition: option_structure.hpp:238
NearField Pressure objective function definition.
Definition: option_structure.hpp:937
Free form deformation for 3D design (change a control point).
Definition: option_structure.hpp:1147
LU_SGS smoother.
Definition: option_structure.hpp:1225
ENUM_SENS
types of sensitivities to compute
Definition: option_structure.hpp:1011
User specifies Static pressure.
Definition: option_structure.hpp:880
Mass Flow Rate objective function definition.
Definition: option_structure.hpp:953
const su2double FOUR3
Four divided by three.
Definition: option_structure.hpp:139
ENUM_FFD_COORD_SYSTEM
types of coordinates systems for the FFD
Definition: option_structure.hpp:1261
Kind of Turbulent model (Spalart-Allmaras).
Definition: option_structure.hpp:627
const unsigned int ZONE_1
Definition of the first grid domain.
Definition: option_structure.hpp:130
JUMP_DEFINITION
type of jump definition
Definition: option_structure.hpp:1093
Boundary supersonic inlet definition.
Definition: option_structure.hpp:751
Full Approximation Storage Multigrid system of equations.
Definition: option_structure.hpp:344
Maximum thickness in section 2.
Definition: option_structure.hpp:947
ENUM_SPATIAL_ORDER
Spatial numerical order integration.
Definition: option_structure.hpp:596
const int VISC_BOUND_TERM
Position of the viscous boundary terms in the numerics container array.
Definition: option_structure.hpp:369
Turbomachinery turbine performances.
Definition: option_structure.hpp:854
Template for new numerical method .
Definition: option_structure.hpp:578
Definition of the Euler's solver.
Definition: option_structure.hpp:183
Definition of plane strain solver.
Definition: option_structure.hpp:776
Do a gradient based grid adaptation of the adjoint grid.
Definition: option_structure.hpp:1032
Minimum thickness.
Definition: option_structure.hpp:945
Laminar viscosity.
Definition: option_structure.hpp:1125
No grid adaptation.
Definition: option_structure.hpp:1027
Internal Boundary definition.
Definition: option_structure.hpp:765
const unsigned short N_POINTS_QUADRILATERAL
General output & CGNS defines.
Definition: option_structure.hpp:150
Definition of no solver.
Definition: option_structure.hpp:224
Use a dual time stepping strategy for unsteady computations (1st order).
Definition: option_structure.hpp:1335
User specifies total pressure, total temperature, and flow direction.
Definition: option_structure.hpp:802
ENUM_OBJECTIVE
types of objective functions
Definition: option_structure.hpp:924
const int MASTER_NODE
Master node for MPI parallelization.
Definition: option_structure.hpp:143
Steepest descent method for point inversion algoritm (Free-Form).
Definition: option_structure.hpp:1218
Modified Steger-Warming method.
Definition: option_structure.hpp:574
Total Pressure objective function definition.
Definition: option_structure.hpp:951
VTK nomenclature for defining a triangle element.
Definition: option_structure.hpp:913
Derivative with respect to the mach number.
Definition: option_structure.hpp:1378
Do a grid refinement on the wake.
Definition: option_structure.hpp:1036
Comma-separated values format for the solution output.
Definition: option_structure.hpp:1077
A static structural computation.
Definition: option_structure.hpp:1406
Definition of template solver.
Definition: option_structure.hpp:194
Bi-grid technique smoothing.
Definition: option_structure.hpp:1277
_______.
Definition: option_structure.hpp:540
const int TRANS_SOL
Position of the transition model solution in the solver container array.
Definition: option_structure.hpp:356
Gradients computation using Green Gauss theorem.
Definition: option_structure.hpp:705
_____.
Definition: option_structure.hpp:446
Mach number sensitivity.
Definition: option_structure.hpp:1013
RUNTIME_TYPE
different types of systems
Definition: option_structure.hpp:336
Implicit Euler time integration definition.
Definition: option_structure.hpp:655
ENUM_DIRECTDIFF_VAR
The direct differentation variables.
Definition: option_structure.hpp:1376
FullMG cycle.
Definition: option_structure.hpp:1107
Euler equations for the FSI problem.
Definition: option_structure.hpp:225
const su2double EPS
Error scale.
Definition: option_structure.hpp:134
Relaxation with a fixed parameter.
Definition: option_structure.hpp:788
const unsigned short N_POINTS_PRISM
General output & CGNS defines.
Definition: option_structure.hpp:154
Definition: option_structure.hpp:1521
Implicit Newmark integration definition.
Definition: option_structure.hpp:667
Free form deformation for 3D design (change a control point).
Definition: option_structure.hpp:1148
Definition: option_structure.hpp:1448
Circumferential Distortion objective function definition.
Definition: option_structure.hpp:957
ENUM_SPACE_ITE_FEA
type of time integration schemes
Definition: option_structure.hpp:678
const int EL_TRIA
types of finite elements (in 2D or 3D)
Definition: option_structure.hpp:378
Jump given by a ratio.
Definition: option_structure.hpp:1095
ENUM_PARAM
types of design parameterizations
Definition: option_structure.hpp:1142
Do a complete grid refinement of the adjoint grid.
Definition: option_structure.hpp:1030
VTK nomenclature for defining a prism element.
Definition: option_structure.hpp:917
Definition: option_structure.hpp:2417
Free form deformation for 3D design (camber change).
Definition: option_structure.hpp:1156
Yawing objective function definition.
Definition: option_structure.hpp:935
_____.
Definition: option_structure.hpp:459
Definition: option_structure.hpp:2932
Definition of the heat solver.
Definition: option_structure.hpp:188
const int POISSON_SOL
Position of the electronic potential solution in the solver container array.
Definition: option_structure.hpp:357
Angle of Sideslip sensitivity.
Definition: option_structure.hpp:1015
Definition of incompressible solver.
Definition: option_structure.hpp:327
Do a grid smoothing.
Definition: option_structure.hpp:1038
Running the SU2_DOT software.
Definition: option_structure.hpp:106
Maximum heat flux.
Definition: option_structure.hpp:932
Total heat flux.
Definition: option_structure.hpp:931
AUSM numerical method.
Definition: option_structure.hpp:571
Boundary nacelle inflow.
Definition: option_structure.hpp:753
W cycle.
Definition: option_structure.hpp:1106
Kind of transition model (BAS-CAKMAKCIOGLU (BC) for Spalart-Allmaras).
Definition: option_structure.hpp:642
Relaxation using Aitken's dynamic parameter.
Definition: option_structure.hpp:789
Z-component of velocity.
Definition: option_structure.hpp:1121
First derivative continuity.
Definition: option_structure.hpp:1248
Definition of no solver.
Definition: option_structure.hpp:182
const unsigned int MAX_NUMBER_FFD
Maximum number of FFDBoxes for the FFD.
Definition: option_structure.hpp:118
Z axis orientation.
Definition: option_structure.hpp:1322
Jacobi smoother.
Definition: option_structure.hpp:1226
ENUM_OUTPUT_VARS
type of solution output variables
Definition: option_structure.hpp:1117
SU2 input format.
Definition: option_structure.hpp:1060
Definition of compressible material.
Definition: option_structure.hpp:273