diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index acb669e7819..c86823441cc 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -876,6 +876,7 @@ class CConfig { array MuPolyCoefficientsND{{0.0}}; /*!< \brief Definition of the non-dimensional temperature polynomial coefficients for viscosity. */ array KtPolyCoefficientsND{{0.0}}; /*!< \brief Definition of the non-dimensional temperature polynomial coefficients for thermal conductivity. */ su2double TurbIntensityAndViscRatioFreeStream[2]; /*!< \brief Freestream turbulent intensity and viscosity ratio for turbulence and transition models. */ + su2double Energy_FreeStream, /*!< \brief Free-stream total energy of the fluid. */ ModVel_FreeStream, /*!< \brief Magnitude of the free-stream velocity of the fluid. */ ModVel_FreeStreamND, /*!< \brief Non-dimensional magnitude of the free-stream velocity of the fluid. */ @@ -1178,6 +1179,8 @@ class CConfig { nHistoryOutput, nVolumeOutput; /*!< \brief Number of variables printed to the history file. */ bool Multizone_Residual; /*!< \brief Determines if memory should be allocated for the multizone residual. */ SST_ParsedOptions sstParsedOptions; /*!< \brief Additional parameters for the SST turbulence model. */ + su2double prodLimConst; + su2double LDomain; SA_ParsedOptions saParsedOptions; /*!< \brief Additional parameters for the SA turbulence model. */ LM_ParsedOptions lmParsedOptions; /*!< \brief Additional parameters for the LM transition model. */ su2double uq_delta_b; /*!< \brief Parameter used to perturb eigenvalues of Reynolds Stress Matrix */ @@ -9781,6 +9784,9 @@ class CConfig { */ SST_ParsedOptions GetSSTParsedOptions() const { return sstParsedOptions; } + su2double GetProdLimConst() const { return prodLimConst; } + su2double GetLDomain() const { return LDomain; } + /*! * \brief Get parsed SA option data structure. * \return SA option data structure. diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 2bc26897088..955d6ace667 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -983,33 +983,40 @@ inline TURB_FAMILY TurbModelFamily(TURB_MODEL model) { * \brief SST Options */ enum class SST_OPTIONS { - NONE, /*!< \brief No SST Turb model. */ - V1994, /*!< \brief 1994 Menter k-w SST model. */ - V2003, /*!< \brief 2003 Menter k-w SST model. */ - V1994m, /*!< \brief 1994m Menter k-w SST model. */ - V2003m, /*!< \brief 2003m Menter k-w SST model. */ - SUST, /*!< \brief Menter k-w SST model with sustaining terms. */ - V, /*!< \brief Menter k-w SST model with vorticity production terms. */ - KL, /*!< \brief Menter k-w SST model with Kato-Launder production terms. */ - UQ, /*!< \brief Menter k-w SST model with uncertainty quantification modifications. */ - COMP_Wilcox, /*!< \brief Menter k-w SST model with Compressibility correction of Wilcox. */ - COMP_Sarkar, /*!< \brief Menter k-w SST model with Compressibility correction of Sarkar. */ - DLL, /*!< \brief Menter k-w SST model with dimensionless lower limit clipping of turbulence variables. */ + NONE, /*!< \brief No SST Turb model. */ + V1994, /*!< \brief 1994 Menter k-w SST model. */ + V2003, /*!< \brief 2003 Menter k-w SST model. */ + V1994m, /*!< \brief 1994m Menter k-w SST model. */ + V2003m, /*!< \brief 2003m Menter k-w SST model. */ + SUST, /*!< \brief Menter k-w SST model with sustaining terms. */ + V, /*!< \brief Menter k-w SST model with vorticity production terms. */ + KL, /*!< \brief Menter k-w SST model with Kato-Launder production terms. */ + UQ, /*!< \brief Menter k-w SST model with uncertainty quantification modifications. */ + COMP_Wilcox, /*!< \brief Menter k-w SST model with Compressibility correction of Wilcox. */ + COMP_Sarkar, /*!< \brief Menter k-w SST model with Compressibility correction of Sarkar. */ + COMP_ShuzHoff, /*!< \brief Menter k-w SST model with Compressibility correction of Shuzen and Hoffmann. */ + DLL, /*!< \brief Menter k-w SST model with dimensionless lower limit clipping of turbulence variables. */ + FULLPROD, /*!< \brief Menter k-w SST model with full production term. */ + PRODLIM, /*!< \brief Menter k-w SST model with user-defined production limiter constant. */ + NEWBC, /*!< \brief Menter k-w SST model with new boundary conditions. */ }; static const MapType SST_Options_Map = { MakePair("NONE", SST_OPTIONS::NONE) MakePair("V1994m", SST_OPTIONS::V1994m) MakePair("V2003m", SST_OPTIONS::V2003m) - /// TODO: For now we do not support "unmodified" versions of SST. - //MakePair("V1994", SST_OPTIONS::V1994) - //MakePair("V2003", SST_OPTIONS::V2003) + MakePair("V1994", SST_OPTIONS::V1994) + MakePair("V2003", SST_OPTIONS::V2003) MakePair("SUSTAINING", SST_OPTIONS::SUST) MakePair("VORTICITY", SST_OPTIONS::V) MakePair("KATO-LAUNDER", SST_OPTIONS::KL) MakePair("UQ", SST_OPTIONS::UQ) MakePair("COMPRESSIBILITY-WILCOX", SST_OPTIONS::COMP_Wilcox) MakePair("COMPRESSIBILITY-SARKAR", SST_OPTIONS::COMP_Sarkar) + MakePair("COMPRESSIBILITY-SH", SST_OPTIONS::COMP_ShuzHoff) MakePair("DIMENSIONLESS_LIMIT", SST_OPTIONS::DLL) + MakePair("FULLPROD", SST_OPTIONS::FULLPROD) + MakePair("PRODLIM", SST_OPTIONS::PRODLIM) + MakePair("NEWBC", SST_OPTIONS::NEWBC) }; /*! @@ -1023,7 +1030,11 @@ struct SST_ParsedOptions { bool modified = false; /*!< \brief Bool for modified (m) SST model. */ bool compWilcox = false; /*!< \brief Bool for compressibility correction of Wilcox. */ bool compSarkar = false; /*!< \brief Bool for compressibility correction of Sarkar. */ + bool compSH = false; /*!< \brief Bool for compressibility correction of Shuzen and Hoffmann. */ bool dll = false; /*!< \brief Bool dimensionless lower limit. */ + bool fullProd = false; /*!< \brief Bool for full production term. */ + bool prodLim = false; /*!< \brief Bool for user-defined production limiter constant. */ + bool newBC = false; /*!< \brief Bool for new boundary conditions. */ }; /*! @@ -1041,6 +1052,10 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne return std::find(SST_Options, sst_options_end, option) != sst_options_end; }; + const bool found_fullProd = IsPresent(SST_OPTIONS::FULLPROD); + const bool found_prodLim = IsPresent(SST_OPTIONS::PRODLIM); + const bool found_newBC = IsPresent(SST_OPTIONS::NEWBC); + const bool found_1994 = IsPresent(SST_OPTIONS::V1994); const bool found_2003 = IsPresent(SST_OPTIONS::V2003); const bool found_1994m = IsPresent(SST_OPTIONS::V1994m); @@ -1061,6 +1076,7 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne const bool sst_uq = IsPresent(SST_OPTIONS::UQ); const bool sst_compWilcox = IsPresent(SST_OPTIONS::COMP_Wilcox); const bool sst_compSarkar = IsPresent(SST_OPTIONS::COMP_Sarkar); + const bool sst_compSH = IsPresent(SST_OPTIONS::COMP_ShuzHoff); const bool sst_dll = IsPresent(SST_OPTIONS::DLL); if (sst_1994 && sst_2003) { @@ -1083,12 +1099,14 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne } // Parse compressibility options - if (sst_compWilcox && sst_compSarkar) { + if (sst_compWilcox + sst_compSarkar + sst_compSH > 1) { SU2_MPI::Error("Please select only one compressibility correction (COMPRESSIBILITY-WILCOX or COMPRESSIBILITY-SARKAR).", CURRENT_FUNCTION); } else if (sst_compWilcox) { SSTParsedOptions.production = SST_OPTIONS::COMP_Wilcox; } else if (sst_compSarkar) { SSTParsedOptions.production = SST_OPTIONS::COMP_Sarkar; + } else if (sst_compSH) { + SSTParsedOptions.production = SST_OPTIONS::COMP_ShuzHoff; } SSTParsedOptions.sust = sst_sust; @@ -1096,8 +1114,12 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne SSTParsedOptions.uq = sst_uq; SSTParsedOptions.compWilcox = sst_compWilcox; SSTParsedOptions.compSarkar = sst_compSarkar; + SSTParsedOptions.compSH = sst_compSH; SSTParsedOptions.dll = sst_dll; + SSTParsedOptions.fullProd = found_fullProd; + SSTParsedOptions.prodLim = found_prodLim; + SSTParsedOptions.newBC = found_newBC; return SSTParsedOptions; } diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index a18129ed551..59e7c949f01 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1122,6 +1122,9 @@ void CConfig::SetConfig_Options() { /*!\brief SST_OPTIONS \n DESCRIPTION: Specify SA turbulence model options/corrections. \n Options: see \link SA_Options_Map \endlink \n DEFAULT: NONE \ingroup Config*/ addEnumListOption("SA_OPTIONS", nSA_Options, SA_Options, SA_Options_Map); + addDoubleOption("PROD_LIM_CONST", prodLimConst, 20.0); + addDoubleOption("L_DOMAIN", LDomain, 1.0); + /*!\brief KIND_TRANS_MODEL \n DESCRIPTION: Specify transition model OPTIONS: see \link Trans_Model_Map \endlink \n DEFAULT: NONE \ingroup Config*/ addEnumOption("KIND_TRANS_MODEL", Kind_Trans_Model, Trans_Model_Map, TURB_TRANS_MODEL::NONE); /*!\brief SST_OPTIONS \n DESCRIPTION: Specify LM transition model options/correlations. \n Options: see \link LM_Options_Map \endlink \n DEFAULT: NONE \ingroup Config*/ @@ -6307,6 +6310,9 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { else cout << "\nusing default hard coded lower limit clipping"; cout << "." << endl; + + if (sstParsedOptions.prodLim) cout << "Changing the value of the TKE production limiter constant to " << prodLimConst << endl; + break; } switch (Kind_Trans_Model) { diff --git a/SU2_CFD/include/numerics/CNumerics.hpp b/SU2_CFD/include/numerics/CNumerics.hpp index 2e45916edb1..09cf359c26a 100644 --- a/SU2_CFD/include/numerics/CNumerics.hpp +++ b/SU2_CFD/include/numerics/CNumerics.hpp @@ -190,6 +190,8 @@ class CNumerics { bool bounded_scalar = false; /*!< \brief Flag for bounded scalar problem */ + su2double ProdDistr[5]; + public: /*! * \brief Return type used in some "ComputeResidual" overloads to give a @@ -1605,6 +1607,8 @@ class CNumerics { * \return is_bounded_scalar : scalar solver uses bounded scalar convective transport */ inline bool GetBoundedScalar() const { return bounded_scalar;} + + inline su2double GetProdDest(int index) const {return ProdDistr[index];} }; /*! diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index 4e5f1cd51f3..11c54862f2b 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -657,6 +657,8 @@ class CSourcePieceWise_TurbSST final : public CNumerics { /*--- Ambient values for SST-SUST. ---*/ const su2double kAmb, omegaAmb; + su2double Pk, Dk, Pw, Dw; + su2double F1_i, F2_i, CDkw_i; su2double Residual[2]; su2double* Jacobian_i[2]; @@ -829,6 +831,8 @@ class CSourcePieceWise_TurbSST final : public CNumerics { su2double P_Base = 0; su2double zetaFMt = 0.0; const su2double Mt = sqrt(2.0 * ScalarVar_i[0]) / V_i[idx.SoundSpeed()]; + su2double PDTerm = 0.0; + const su2double alpha1 = 1.0; /*--- Apply production term modifications ---*/ switch (sstParsedOptions.production) { @@ -860,6 +864,25 @@ class CSourcePieceWise_TurbSST final : public CNumerics { } break; + case SST_OPTIONS::COMP_ShuzHoff:{ + + // su2double MeanReynoldsStress[3][3]; + // ComputeStressTensor(nDim, MeanReynoldsStress, PrimVar_Grad_i + idx.Velocity(), Eddy_Viscosity_i, + // Density_i, ScalarVar_i[0]); + + // for (size_t iDim = 0.0; iDim < nDim; iDim++){ + // for (size_t jDim = 0.0; jDim < nDim; jDim++){ + // PDTerm += MeanReynoldsStress[iDim][jDim] * PrimVar_Grad_i[idx.Velocity() + iDim][jDim]; + // } + // } + // PDTerm = (-alpha2*PDTerm + alpha3 * epsilon * Density_i)*Mt*Mt; + + zetaFMt = alpha1 * Mt*Mt * (1-F1_i); + + P_Base = StrainMag_i; + } + break; + default: /*--- Base production term for SST-1994 and SST-2003 ---*/ P_Base = StrainMag_i; @@ -870,15 +893,28 @@ class CSourcePieceWise_TurbSST final : public CNumerics { const su2double prod_limit = prod_lim_const * beta_star * Density_i * ScalarVar_i[1] * ScalarVar_i[0]; su2double P = Eddy_Viscosity_i * pow(P_Base, 2); + if (sstParsedOptions.fullProd) P -= Eddy_Viscosity_i * diverg*diverg * 2.0/3.0; + if (!sstParsedOptions.modified) P -= Density_i * ScalarVar_i[0] * diverg * 2.0/3.0; + + su2double PLim = 0.0; + if ( P > prod_limit ) PLim = 1.0; su2double pk = max(0.0, min(P, prod_limit)); - const auto& eddy_visc_var = sstParsedOptions.version == SST_OPTIONS::V1994 ? VorticityMag : StrainMag_i; + if (sstParsedOptions.production == SST_OPTIONS::COMP_ShuzHoff) { + const su2double alpha2 = 0.4; + const su2double alpha3 = 0.2; + const su2double epsilon = beta_star * ScalarVar_i[1] * ScalarVar_i[0]; + + PDTerm = (-alpha2*pk + alpha3*Density_i*epsilon)*Mt*Mt; + } + + const su2double eddy_visc_var = sstParsedOptions.version == SST_OPTIONS::V1994 ? VorticityMag : StrainMag_i; const su2double zeta = max(ScalarVar_i[1], eddy_visc_var * F2_i / a1); /*--- Production limiter only for V2003, recompute for V1994. ---*/ su2double pw; if (sstParsedOptions.version == SST_OPTIONS::V1994) { - pw = alfa_blended * Density_i * pow(P_Base, 2); + pw = alfa_blended * Density_i * P / Eddy_Viscosity_i; } else { pw = (alfa_blended * Density_i / Eddy_Viscosity_i) * pk; } @@ -901,10 +937,14 @@ class CSourcePieceWise_TurbSST final : public CNumerics { pk += Dilatation_Sarkar; } + if (sstParsedOptions.production == SST_OPTIONS::COMP_ShuzHoff) { + pk += (1-F1_i)*PDTerm; + } + /*--- Dissipation ---*/ su2double dk = beta_star * Density_i * ScalarVar_i[1] * ScalarVar_i[0] * (1.0 + zetaFMt); - su2double dw = beta_blended * Density_i * ScalarVar_i[1] * ScalarVar_i[1] * (1.0 - 0.09/beta_blended * zetaFMt); + su2double dw = beta_blended * Density_i * ScalarVar_i[1] * ScalarVar_i[1] * (1.0 - beta_star/beta_blended * zetaFMt); /*--- LM model coupling with production and dissipation term for k transport equation---*/ if (config->GetKind_Trans_Model() == TURB_TRANS_MODEL::LM) { @@ -913,18 +953,27 @@ class CSourcePieceWise_TurbSST final : public CNumerics { } /*--- Add the production terms to the residuals. ---*/ + Pk = pk; + Pw = pw; Residual[0] += pk * Volume; Residual[1] += pw * Volume; /*--- Add the dissipation terms to the residuals.---*/ + Dk = dk; + Dw = dw; Residual[0] -= dk * Volume; Residual[1] -= dw * Volume; - /*--- Cross diffusion ---*/ + ProdDistr[0] = Pk; + ProdDistr[1] = Dk; + ProdDistr[2] = Pw; + ProdDistr[3] = Dw; + ProdDistr[4] = PLim; - Residual[1] += (1.0 - F1_i) * CDkw_i * Volume; + /*--- Cross diffusion ---*/ + Residual[1] += (1.0 - F1_i) * (CDkw_i - PDTerm / Eddy_Viscosity_i) * Volume; /*--- Contribution due to 2D axisymmetric formulation ---*/ @@ -933,6 +982,7 @@ class CSourcePieceWise_TurbSST final : public CNumerics { /*--- Implicit part ---*/ Jacobian_i[0][0] = -beta_star * ScalarVar_i[1] * Volume * (1.0 + zetaFMt); + if (!sstParsedOptions.modified) Jacobian_i[0][0] -= diverg * Volume*2.0/3.0; Jacobian_i[0][1] = -beta_star * ScalarVar_i[0] * Volume * (1.0 + zetaFMt); Jacobian_i[1][0] = 0.0; Jacobian_i[1][1] = -2.0 * beta_blended * ScalarVar_i[1] * Volume * (1.0 - 0.09/beta_blended * zetaFMt); diff --git a/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp b/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp index 4e73ab5b752..4cd37bfc3b3 100644 --- a/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp +++ b/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp @@ -53,6 +53,8 @@ class CCenteredBase : public Base { const bool dynamicGrid; const su2double stretchParam = 0.3; + using Base::turbVars; + /*! * \brief Constructor, store some constants and forward args to base. */ @@ -96,6 +98,8 @@ class CCenteredBase : public Base { const bool implicit = (config.GetKind_TimeIntScheme() == EULER_IMPLICIT); const auto& solution = static_cast(solution_); + const bool tkeNeeded = config.GetKind_Turb_Model() == TURB_MODEL::SST; + const auto iPoint = geometry.edges->GetNode(iEdge,0); const auto jPoint = geometry.edges->GetNode(iEdge,1); @@ -119,6 +123,13 @@ class CCenteredBase : public Base { avgV.all(iVar) = 0.5 * (V.i.all(iVar) + V.j.all(iVar)); } + if (tkeNeeded) { + V.i.allTurb = gatherVariables<1>(iPoint, turbVars->GetSolution()); + V.j.allTurb = gatherVariables<1>(jPoint, turbVars->GetSolution()); + + avgV.allTurb(0) = 0.5*(V.i.allTurb(0)+V.j.allTurb(0)); + } + /*--- Compute conservative variables. ---*/ CPair > U; diff --git a/SU2_CFD/include/numerics_simd/flow/convection/common.hpp b/SU2_CFD/include/numerics_simd/flow/convection/common.hpp index b5d3c39e3f7..da49bb36bbc 100644 --- a/SU2_CFD/include/numerics_simd/flow/convection/common.hpp +++ b/SU2_CFD/include/numerics_simd/flow/convection/common.hpp @@ -113,7 +113,8 @@ FORCEINLINE CPair reconstructPrimitives(Int iEdge, Int iPoint, Int bool muscl, LIMITER limiterType, const CPair& V1st, const VectorDbl& vector_ij, - const VariableType& solution) { + const VariableType& solution, + const bool tkeNeeded) { static_assert(ReconVarType::nVar <= PrimVarType::nVar,""); const auto& gradients = solution.GetGradient_Reconstruction(); @@ -125,6 +126,11 @@ FORCEINLINE CPair reconstructPrimitives(Int iEdge, Int iPoint, Int V.i.all(iVar) = V1st.i.all(iVar); V.j.all(iVar) = V1st.j.all(iVar); } + // Only first order for turbulence + if (tkeNeeded) { + V.i.allTurb(0) = V1st.i.allTurb(0); + V.j.allTurb(0) = V1st.j.allTurb(0); + } if (muscl) { /*--- Recompute density and enthalpy instead of reconstructing. ---*/ diff --git a/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp b/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp index 204738b1ef9..98be310304c 100644 --- a/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp +++ b/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp @@ -63,6 +63,8 @@ class CRoeBase : public Base { const bool muscl; const LIMITER typeLimiter; + using Base::turbVars; + /*! * \brief Constructor, store some constants and forward args to base. */ @@ -98,6 +100,8 @@ class CRoeBase : public Base { const bool implicit = (config.GetKind_TimeIntScheme() == EULER_IMPLICIT); const auto& solution = static_cast(solution_); + const bool tkeNeeded = config.GetKind_Turb_Model() == TURB_MODEL::SST; + const auto iPoint = geometry.edges->GetNode(iEdge,0); const auto jPoint = geometry.edges->GetNode(iEdge,1); @@ -118,8 +122,13 @@ class CRoeBase : public Base { V1st.i.all = gatherVariables(iPoint, solution.GetPrimitive()); V1st.j.all = gatherVariables(jPoint, solution.GetPrimitive()); + if (tkeNeeded) { + V1st.i.allTurb = gatherVariables(iPoint, turbVars->GetSolution()); + V1st.j.allTurb = gatherVariables(jPoint, turbVars->GetSolution()); + } + auto V = reconstructPrimitives >( - iEdge, iPoint, jPoint, gamma, gasConst, muscl, typeLimiter, V1st, vector_ij, solution); + iEdge, iPoint, jPoint, gamma, gasConst, muscl, typeLimiter, V1st, vector_ij, solution, tkeNeeded); /*--- Compute conservative variables. ---*/ @@ -231,6 +240,8 @@ class CRoeScheme : public CRoeBase,Decorator> { using Base::kappa; const ENUM_ROELOWDISS typeDissip; + using Base::turbVars; + public: /*! * \brief Constructor, store some constants and forward to base. diff --git a/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp b/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp index 279a623c0c7..555ad0c1390 100644 --- a/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp +++ b/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp @@ -71,13 +71,13 @@ FORCEINLINE void correctGradient(const PrimitiveType& V, */ template FORCEINLINE MatrixDbl stressTensor(Double viscosity, - const MatrixDbl& grad) { + const MatrixDbl& grad, Double density=0.0, Double tke=0.0) { /*--- Hydrostatic term. ---*/ Double velDiv = 0.0; for (size_t iDim = 0; iDim < nDim; ++iDim) { velDiv += grad(iDim+1,iDim); } - Double pTerm = 2.0/3.0 * viscosity * velDiv; + Double pTerm = 2.0/3.0 * (viscosity * velDiv + density * tke); MatrixDbl tau; for (size_t iDim = 0; iDim < nDim; ++iDim) { diff --git a/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp b/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp index 73bfaac1537..90123fa4c62 100644 --- a/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp +++ b/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp @@ -50,6 +50,7 @@ class CNoViscousFlux : public CNumericsSIMD { protected: static constexpr size_t nDim = NDIM; static constexpr size_t nPrimVar = 0; + const CVariable* turbVars = nullptr; template CNoViscousFlux(Ts&...) {} @@ -140,6 +141,8 @@ class CCompressibleViscousFluxBase : public CNumericsSIMD { const auto& solution = static_cast(solution_); const auto& gradient = solution.GetGradient_Primitive(); + const bool tkeNeeded = (config.GetKind_Turb_Model() == TURB_MODEL::SST) && !(config.GetSSTParsedOptions().modified); + /*--- Compute distance and handle zero without "ifs" by making it large. ---*/ auto dist2_ij = squaredNorm(vector_ij); @@ -152,12 +155,15 @@ class CCompressibleViscousFluxBase : public CNumericsSIMD { if(correct) correctGradient(V, vector_ij, dist2_ij, avgGrad); /*--- Stress and heat flux tensors. ---*/ - - auto tau = stressTensor(avgV.laminarVisc() + (uq? Double(0.0) : avgV.eddyVisc()), avgGrad); + Double turb_ke = 0.0; + Double density = avgV.density(); + if (tkeNeeded) turb_ke = 0.5*(gatherVariables(iPoint, turbVars->GetSolution()) + + gatherVariables(jPoint, turbVars->GetSolution())); + auto tau = stressTensor(avgV.laminarVisc() + (uq? Double(0.0) : avgV.eddyVisc()), avgGrad, density, turb_ke); if(useSA_QCR) addQCR(avgGrad, tau); if(uq) { - Double turb_ke = 0.5*(gatherVariables(iPoint, turbVars->GetSolution()) + - gatherVariables(jPoint, turbVars->GetSolution())); + turb_ke = 0.5*(gatherVariables(iPoint, turbVars->GetSolution()) + + gatherVariables(jPoint, turbVars->GetSolution())); addPerturbedRSM(avgV, avgGrad, turb_ke, tau, uq_eigval_comp, uq_permute, uq_delta_b, uq_urlx); } @@ -263,6 +269,7 @@ class CCompressibleViscousFlux : public CCompressibleViscousFluxBase >; using Base::prandtlTurb; + using Base::turbVars; +; /*! * \brief Constructor, initialize constants and booleans. diff --git a/SU2_CFD/include/numerics_simd/flow/variables.hpp b/SU2_CFD/include/numerics_simd/flow/variables.hpp index 086adbf27dc..178edcd5017 100644 --- a/SU2_CFD/include/numerics_simd/flow/variables.hpp +++ b/SU2_CFD/include/numerics_simd/flow/variables.hpp @@ -50,12 +50,16 @@ struct CCompressiblePrimitives { FORCEINLINE const Double& velocity(size_t iDim) const { return all(iDim+1); } FORCEINLINE const Double* velocity() const { return &velocity(0); } + VectorDbl<1> allTurb; + FORCEINLINE const Double& tke() const { return allTurb(0); } + /*--- Un-reconstructed variables. ---*/ FORCEINLINE Double& speedSound() { return all(nDim+4); } FORCEINLINE Double& laminarVisc() { return all(nDim+5); } FORCEINLINE Double& eddyVisc() { return all(nDim+6); } FORCEINLINE Double& thermalCond() { return all(nDim+7); } FORCEINLINE Double& cp() { return all(nDim+8); } + FORCEINLINE Double& tke() { return all(nDim+9); } FORCEINLINE const Double& speedSound() const { return all(nDim+4); } FORCEINLINE const Double& laminarVisc() const { return all(nDim+5); } FORCEINLINE const Double& eddyVisc() const { return all(nDim+6); } @@ -70,17 +74,22 @@ template struct CCompressibleConservatives { static constexpr size_t nDim = nDim_; static constexpr size_t nVar = nDim+2; + static constexpr size_t nVarTurb = 1; VectorDbl all; + VectorDbl allTurb; FORCEINLINE Double& density() { return all(0); } FORCEINLINE Double& rhoEnergy() { return all(nDim+1); } FORCEINLINE Double& momentum(size_t iDim) { return all(iDim+1); } + FORCEINLINE Double& rhoTke() { return allTurb(0); } FORCEINLINE const Double& density() const { return all(0); } FORCEINLINE const Double& rhoEnergy() const { return all(nDim+1); } FORCEINLINE const Double& momentum(size_t iDim) const { return all(iDim+1); } + FORCEINLINE const Double& rhoTke() const { return allTurb(0); } FORCEINLINE Double energy() const { return rhoEnergy() / density(); } FORCEINLINE const Double* momentum() const { return &momentum(0); } + FORCEINLINE Double tke() const { return rhoTke() / density(); } }; /*! @@ -94,6 +103,7 @@ FORCEINLINE CCompressibleConservatives compressibleConservatives(const CCo U.momentum(iDim) = V.density() * V.velocity(iDim); } U.rhoEnergy() = V.density() * V.enthalpy() - V.pressure(); + U.rhoTke() = V.density() * V.tke(); return U; } @@ -105,6 +115,7 @@ struct CRoeVariables { Double density; VectorDbl velocity; Double enthalpy; + Double tke; Double speedSound; Double projVel; }; @@ -124,6 +135,7 @@ FORCEINLINE CRoeVariables roeAveragedVariables(Double gamma, roeAvg.velocity(iDim) = (R*V.j.velocity(iDim) + V.i.velocity(iDim)) * D; } roeAvg.enthalpy = (R*V.j.enthalpy() + V.i.enthalpy()) * D; + roeAvg.tke = (R*V.j.tke() + V.i.tke()) * D; roeAvg.speedSound = sqrt((gamma-1) * (roeAvg.enthalpy - 0.5*squaredNorm(roeAvg.velocity))); roeAvg.projVel = dot(roeAvg.velocity, normal); return roeAvg; diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl index 8a99712dc8e..6be9aef736e 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl @@ -432,7 +432,7 @@ void CFVMFlowSolverBase::Viscous_Residual_impl(unsigned long iEdge, CGeome CNumerics *numerics, CConfig *config) { const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); - const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST); + const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST && !(config->GetSSTParsedOptions().modified)); CVariable* turbNodes = nullptr; if (tkeNeeded) turbNodes = solver_container[TURB_SOL]->GetNodes(); @@ -1141,59 +1141,27 @@ void CFVMFlowSolverBase::BC_Sym_Plane(CGeometry* geometry, CSolve for (auto iDim = 0u; iDim < nDim; iDim++) UnitNormal[iDim] = Normal[iDim] / Area; } - su2double* V_reflected = GetCharacPrimVar(val_marker, iVertex); - - /*--- Grid movement ---*/ - if (dynamic_grid) - conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint), geometry->nodes->GetGridVel(iPoint)); - - /*--- Normal vector for this vertex (negate for outward convention). ---*/ - for (auto iDim = 0u; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; - conv_numerics->SetNormal(Normal); - - for (auto iVar = 0u; iVar < nPrimVar; iVar++) - V_reflected[iVar] = nodes->GetPrimitive(iPoint, iVar); - - su2double ProjVelocity_i = nodes->GetProjVel(iPoint, UnitNormal); - /*--- Adjustment to v.n due to grid movement. ---*/ - if (dynamic_grid) - ProjVelocity_i -= GeometryToolbox::DotProduct(nDim, geometry->nodes->GetGridVel(iPoint), UnitNormal); - - for (auto iDim = 0u; iDim < nDim; iDim++) - V_reflected[iDim + iVel] = nodes->GetVelocity(iPoint, iDim) - ProjVelocity_i * UnitNormal[iDim]; - - /*--- Get current solution at this boundary node ---*/ - const su2double* V_domain = nodes->GetPrimitive(iPoint); - - /*--- Set Primitive and Secondary for numerics class. ---*/ - conv_numerics->SetPrimitive(V_domain, V_reflected); - conv_numerics->SetSecondary(nodes->GetSecondary(iPoint), nodes->GetSecondary(iPoint)); - - /*--- Compute the residual using an upwind scheme. ---*/ - auto residual = conv_numerics->ComputeResidual(config); - - /*--- We include an update of the continuity and energy here, this is important for stability since - * these fluxes include numerical diffusion. ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) { - if (iVar < iVel || iVar >= iVel + nDim) LinSysRes(iPoint, iVar) += residual.residual[iVar]; - } - /*--- Explicitly set the velocity components normal to the symmetry plane to zero. * This is necessary because the modification of the residual leaves the problem * underconstrained (the normal residual is zero regardless of the normal velocity). ---*/ su2double* solutionOld = nodes->GetSolution_Old(iPoint); - su2double gridVel[MAXNVAR] = {}; + su2double gridVel[MAXNDIM] = {}, qn = 0.0; if (dynamic_grid) { for (auto iDim = 0u; iDim < nDim; iDim++) { gridVel[iDim] = geometry->nodes->GetGridVel(iPoint)[iDim]; + qn += gridVel[iDim] * Normal[iDim]; } if (FlowRegime == ENUM_REGIME::COMPRESSIBLE) { for(auto iDim = 0u; iDim < nDim; iDim++) { /*--- Multiply by density since we are correcting conservative variables. ---*/ gridVel[iDim] *= nodes->GetDensity(iPoint); } + /*--- Work of pressure forces. This is not needed for incompressible regimes + * because we use Cv == Cp. This is not included in the Jacobian because that + * makes convergence worse. ---*/ + LinSysRes(iPoint, iVel + nDim) -= qn * nodes->GetPressure(iPoint); } } su2double vp = 0.0; @@ -1215,7 +1183,30 @@ void CFVMFlowSolverBase::BC_Sym_Plane(CGeometry* geometry, CSolve /*--- Jacobian contribution for implicit integration. ---*/ if (implicit) { - Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); + /*--- Modify the Jacobians according to the modification of the residual + * J_new = (I - n * n^T) * J where n = {0, nx, ny, nz, 0, ...} ---*/ + su2double mat[MAXNVAR * MAXNVAR] = {}; + + for (auto iVar = 0u; iVar < nVar; iVar++) + mat[iVar * nVar + iVar] = 1; + for (auto iDim = 0u; iDim < nDim; iDim++) + for (auto jDim = 0u; jDim < nDim; jDim++) + mat[(iDim + iVel) * nVar + jDim + iVel] -= UnitNormal[iDim] * UnitNormal[jDim]; + + auto ModifyJacobian = [&](const unsigned long jPoint) { + su2double jac[MAXNVAR * MAXNVAR], newJac[MAXNVAR * MAXNVAR]; + auto* block = Jacobian.GetBlock(iPoint, jPoint); + for (auto iVar = 0u; iVar < nVar * nVar; iVar++) jac[iVar] = block[iVar]; + + CBlasStructure().gemm(nVar, nVar, nVar, mat, jac, newJac, config); + + for (auto iVar = 0u; iVar < nVar * nVar; iVar++) + block[iVar] = SU2_TYPE::GetValue(newJac[iVar]); + }; + ModifyJacobian(iPoint); + for (size_t iNeigh = 0; iNeigh < geometry->nodes->GetnPoint(iPoint); ++iNeigh) { + ModifyJacobian(geometry->nodes->GetPoint(iPoint, iNeigh)); + } } /*--- Correction for multigrid. ---*/ @@ -2368,6 +2359,8 @@ void CFVMFlowSolverBase::Friction_Forces(const CGeometry* geometr const su2double Prandtl_Lam = config->GetPrandtl_Lam(); const bool energy = config->GetEnergy_Equation(); const bool QCR = config->GetSAParsedOptions().qcr2000; + TURB_FAMILY TurbFamily = TurbModelFamily(config->GetKind_Turb_Model()); + const bool SSTm = config->GetSSTParsedOptions().modified; const bool axisymmetric = config->GetAxisymmetric(); const bool roughwall = (config->GetnRoughWall() > 0); const bool nemo = config->GetNEMOProblem(); @@ -2453,7 +2446,12 @@ void CFVMFlowSolverBase::Friction_Forces(const CGeometry* geometr } /*--- Evaluate Tau ---*/ - CNumerics::ComputeStressTensor(nDim, Tau, Grad_Vel, Viscosity); + su2double tke = 0.0; + // if (TurbFamily == TURB_FAMILY::KW) { + + // } + // Don't knowhow to retrieve the TKE yet + CNumerics::ComputeStressTensor(nDim, Tau, Grad_Vel, Viscosity, Density, tke); /*--- If necessary evaluate the QCR contribution to Tau ---*/ diff --git a/SU2_CFD/include/variables/CFlowVariable.hpp b/SU2_CFD/include/variables/CFlowVariable.hpp index d4d770f0ba8..e705a18892f 100644 --- a/SU2_CFD/include/variables/CFlowVariable.hpp +++ b/SU2_CFD/include/variables/CFlowVariable.hpp @@ -260,11 +260,11 @@ class CFlowVariable : public CVariable { * \param[in] iPoint - Point index. * \return Value of magnitude. */ - inline su2double GetStrainMag(unsigned long iPoint) const { return StrainMag(iPoint); } + inline su2double GetStrainMag(unsigned long iPoint) const final { return StrainMag(iPoint); } /*! * \brief Get the entire vector of the rate of strain magnitude. * \return Vector of magnitudes. */ - inline su2activevector& GetStrainMag() { return StrainMag; } + inline su2activevector& GetStrainMag() final { return StrainMag; } }; diff --git a/SU2_CFD/include/variables/CTurbVariable.hpp b/SU2_CFD/include/variables/CTurbVariable.hpp index 48f2087b2bf..85d2c0a446f 100644 --- a/SU2_CFD/include/variables/CTurbVariable.hpp +++ b/SU2_CFD/include/variables/CTurbVariable.hpp @@ -43,6 +43,11 @@ class CTurbVariable : public CScalarVariable { static constexpr size_t MAXNVAR = 2; VectorType turb_index; VectorType intermittency; /*!< \brief Value of the intermittency for the trans. model. */ + VectorType Pk; + VectorType Pw; + VectorType Dk; + VectorType Dw; + VectorType PkLim; /*! * \brief Constructor of the class. @@ -100,5 +105,38 @@ class CTurbVariable : public CScalarVariable { */ inline void SetIntermittency(unsigned long iPoint, su2double val_intermittency) final { intermittency(iPoint) = val_intermittency; } + /*! + * \brief Set the intermittency of the transition model. + * \param[in] iPoint - Point index. + * \param[in] val_intermittency - New value of the intermittency. + */ + inline void SetProdDestr(unsigned long iPoint, su2double* val_ProdDestr) final { + Pk(iPoint) = val_ProdDestr[0]; + Dk(iPoint) = val_ProdDestr[1]; + Pw(iPoint) = val_ProdDestr[2]; + Dw(iPoint) = val_ProdDestr[3]; + PkLim(iPoint) = val_ProdDestr[4]; + } + + /*! + * \brief Set the intermittency of the transition model. + * \param[in] iPoint - Point index. + * \param[in] val_intermittency - New value of the intermittency. + */ + inline su2double GetProdTKE(unsigned long iPoint) const final { + return Pk(iPoint); + } + inline su2double GetDestrTKE(unsigned long iPoint) const final { + return Dk(iPoint); + } + inline su2double GetProdW(unsigned long iPoint) const final { + return Pw(iPoint); + } + inline su2double GetDestrW(unsigned long iPoint) const final { + return Dw(iPoint); + } + inline su2double GetPkLim(unsigned long iPoint) const final { + return PkLim(iPoint); + } }; diff --git a/SU2_CFD/include/variables/CVariable.hpp b/SU2_CFD/include/variables/CVariable.hpp index 98e8c253819..6dda7f1f101 100644 --- a/SU2_CFD/include/variables/CVariable.hpp +++ b/SU2_CFD/include/variables/CVariable.hpp @@ -1386,6 +1386,19 @@ class CVariable { */ inline virtual su2double *GetdTvedU(unsigned long iPoint) { return nullptr; } + /*! + * \brief Get the magnitude of rate of strain. + * \param[in] iPoint - Point index. + * \return Value of magnitude. + */ + inline virtual su2double GetStrainMag(unsigned long iPoint) const {} + + /*! + * \brief Get the entire vector of the rate of strain magnitude. + * \return Vector of magnitudes. + */ + inline virtual su2activevector& GetStrainMag() {} + /*! * \brief A virtual member. */ @@ -1581,6 +1594,12 @@ class CVariable { */ inline virtual su2double GetGradient_Primitive(unsigned long iPoint, unsigned long iVar, unsigned long iDim) const { return 0.0; } + /*! + * \brief A virtual member. + * \return Value of the primitive variables gradient. + */ + inline virtual CMatrixView GetGradient_Primitive(unsigned long iPoint, unsigned long iVar=0) { return nullptr; } + /*! * \brief Get the primitive variable gradients for all points. * \return Reference to primitive variable gradient. @@ -1602,12 +1621,6 @@ class CVariable { */ inline virtual su2double GetLimiter_Primitive(unsigned long iPoint, unsigned long iVar) const { return 0.0; } - /*! - * \brief A virtual member. - * \return Value of the primitive variables gradient. - */ - inline virtual CMatrixView GetGradient_Primitive(unsigned long iPoint, unsigned long iVar=0) { return nullptr; } - /*! * \brief A virtual member. * \return Value of the primitive variables gradient. @@ -2343,4 +2356,11 @@ class CVariable { inline virtual const su2double *GetScalarSources(unsigned long iPoint) const { return nullptr; } inline virtual const su2double *GetScalarLookups(unsigned long iPoint) const { return nullptr; } + + inline virtual void SetProdDestr(unsigned long iPoint, su2double* val_ProdDestr) { } + inline virtual su2double GetProdTKE(unsigned long iPoint) const { return 0.0; } + inline virtual su2double GetDestrTKE(unsigned long iPoint) const { return 0.0; } + inline virtual su2double GetProdW(unsigned long iPoint) const { return 0.0; } + inline virtual su2double GetDestrW(unsigned long iPoint) const { return 0.0; } + inline virtual su2double GetPkLim(unsigned long iPoint) const { return 0.0; } }; diff --git a/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp b/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp index cc35fdc9cbc..c66b29ca373 100644 --- a/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp +++ b/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp @@ -179,6 +179,8 @@ void CFlowTractionInterface::GetDonor_Variable(CSolver *flow_solution, CGeometry unsigned long Vertex_Flow, unsigned long Point_Struct) { const auto Point_Flow = flow_geometry->vertex[Marker_Flow][Vertex_Flow]->GetNode(); + TURB_FAMILY TurbFamily = TurbModelFamily(flow_config->GetKind_Turb_Model()); + const bool SSTm = flow_config->GetSSTParsedOptions().modified; // Get the normal at the vertex: this normal goes inside the fluid domain. const su2double* Normal_Flow = flow_geometry->vertex[Marker_Flow][Vertex_Flow]->GetNormal(); @@ -205,7 +207,12 @@ void CFlowTractionInterface::GetDonor_Variable(CSolver *flow_solution, CGeometry su2double Viscosity = flow_nodes->GetLaminarViscosity(Point_Flow); su2double tau[3][3]; - CNumerics::ComputeStressTensor(nVar, tau, flow_nodes->GetVelocityGradient(Point_Flow), Viscosity); + su2double TKE = 0.0, Density = 0.0; + if (TurbFamily == TURB_FAMILY::KW && !SSTm) { + TKE = 0.0; // Have to find out how to pass the tke value if needed + Density = 0.0; + } + CNumerics::ComputeStressTensor(nVar, tau, flow_nodes->GetVelocityGradient(Point_Flow), Viscosity, Density, TKE); for (auto iVar = 0u; iVar < nVar; iVar++) { for (auto jVar = 0u; jVar < nVar; jVar++) { // Viscous component in the tn vector --> Units of force (non-dimensional). diff --git a/SU2_CFD/src/numerics/flow/flow_diffusion.cpp b/SU2_CFD/src/numerics/flow/flow_diffusion.cpp index a2cdb893533..d012092fbd5 100644 --- a/SU2_CFD/src/numerics/flow/flow_diffusion.cpp +++ b/SU2_CFD/src/numerics/flow/flow_diffusion.cpp @@ -132,7 +132,7 @@ void CAvgGrad_Base::SetStressTensor(const su2double *val_primvar, if (sstParsedOptions.uq) { // laminar part - ComputeStressTensor(nDim, tau, val_gradprimvar+1, val_laminar_viscosity); + ComputeStressTensor(nDim, tau, val_gradprimvar+1, val_laminar_viscosity, Density, val_turb_ke); // add turbulent part which was perturbed for (unsigned short iDim = 0 ; iDim < nDim; iDim++) for (unsigned short jDim = 0 ; jDim < nDim; jDim++) @@ -140,7 +140,7 @@ void CAvgGrad_Base::SetStressTensor(const su2double *val_primvar, } else { const su2double total_viscosity = val_laminar_viscosity + val_eddy_viscosity; // turb_ke is not considered in the stress tensor, see #797 - ComputeStressTensor(nDim, tau, val_gradprimvar+1, total_viscosity, Density, su2double(0.0)); + ComputeStressTensor(nDim, tau, val_gradprimvar+1, total_viscosity, Density, val_turb_ke); } } @@ -370,6 +370,7 @@ CNumerics::ResidualType<> CAvgGrad_Flow::ComputeResidual(const CConfig* config) AD::SetPreaccIn(Normal, nDim); unsigned short iVar, jVar, iDim; + const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST) && !(config->GetSSTParsedOptions().modified); /*--- Normalized normal vector ---*/ @@ -403,6 +404,7 @@ CNumerics::ResidualType<> CAvgGrad_Flow::ComputeResidual(const CConfig* config) Mean_Laminar_Viscosity = 0.5*(Laminar_Viscosity_i + Laminar_Viscosity_j); Mean_Eddy_Viscosity = 0.5*(Eddy_Viscosity_i + Eddy_Viscosity_j); Mean_turb_ke = 0.5*(turb_ke_i + turb_ke_j); + const su2double Mean_turb_ke_ForStressTensor = tkeNeeded ? Mean_turb_ke : 0.0; /*--- Mean gradient approximation ---*/ @@ -434,7 +436,7 @@ CNumerics::ResidualType<> CAvgGrad_Flow::ComputeResidual(const CConfig* config) /*--- Get projected flux tensor (viscous residual) ---*/ - SetStressTensor(Mean_PrimVar, Mean_GradPrimVar, Mean_turb_ke, + SetStressTensor(Mean_PrimVar, Mean_GradPrimVar, Mean_turb_ke_ForStressTensor, Mean_Laminar_Viscosity, Mean_Eddy_Viscosity); if (config->GetSAParsedOptions().qcr2000) AddQCR(nDim, &Mean_GradPrimVar[1], tau); if (Mean_TauWall > 0) AddTauWall(UnitNormal, Mean_TauWall); @@ -555,6 +557,7 @@ CNumerics::ResidualType<> CAvgGradInc_Flow::ComputeResidual(const CConfig* confi AD::SetPreaccIn(Normal, nDim); unsigned short iVar, jVar, iDim; + const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST) && !(config->GetSSTParsedOptions().modified); /*--- Normalized normal vector ---*/ @@ -590,6 +593,7 @@ CNumerics::ResidualType<> CAvgGradInc_Flow::ComputeResidual(const CConfig* confi Mean_Eddy_Viscosity = 0.5*(Eddy_Viscosity_i + Eddy_Viscosity_j); Mean_turb_ke = 0.5*(turb_ke_i + turb_ke_j); Mean_Thermal_Conductivity = 0.5*(Thermal_Conductivity_i + Thermal_Conductivity_j); + const su2double Mean_turb_ke_ForStressTensor = tkeNeeded ? Mean_turb_ke : 0.0; /*--- Mean gradient approximation ---*/ @@ -618,7 +622,7 @@ CNumerics::ResidualType<> CAvgGradInc_Flow::ComputeResidual(const CConfig* confi } /*--- Get projected flux tensor (viscous residual) ---*/ - SetStressTensor(Mean_PrimVar, Mean_GradPrimVar, Mean_turb_ke, + SetStressTensor(Mean_PrimVar, Mean_GradPrimVar, Mean_turb_ke_ForStressTensor, Mean_Laminar_Viscosity, Mean_Eddy_Viscosity); if (config->GetSAParsedOptions().qcr2000) AddQCR(nDim, &Mean_GradPrimVar[1], tau); if (Mean_TauWall > 0) AddTauWall(UnitNormal, Mean_TauWall); @@ -873,6 +877,7 @@ CNumerics::ResidualType<> CGeneralAvgGrad_Flow::ComputeResidual(const CConfig* c AD::SetPreaccIn(Normal, nDim); unsigned short iVar, jVar, iDim; + const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST) && !(config->GetSSTParsedOptions().modified); /*--- Normalized normal vector ---*/ @@ -918,6 +923,7 @@ CNumerics::ResidualType<> CGeneralAvgGrad_Flow::ComputeResidual(const CConfig* c Mean_turb_ke = 0.5*(turb_ke_i + turb_ke_j); Mean_Thermal_Conductivity = 0.5*(Thermal_Conductivity_i + Thermal_Conductivity_j); Mean_Cp = 0.5*(Cp_i + Cp_j); + const su2double Mean_turb_ke_ForStressTensor = tkeNeeded ? Mean_turb_ke : 0.0; /*--- Mean gradient approximation ---*/ @@ -949,7 +955,7 @@ CNumerics::ResidualType<> CGeneralAvgGrad_Flow::ComputeResidual(const CConfig* c /*--- Get projected flux tensor (viscous residual) ---*/ - SetStressTensor(Mean_PrimVar, Mean_GradPrimVar, Mean_turb_ke, + SetStressTensor(Mean_PrimVar, Mean_GradPrimVar, Mean_turb_ke_ForStressTensor, Mean_Laminar_Viscosity, Mean_Eddy_Viscosity); if (config->GetSAParsedOptions().qcr2000) AddQCR(nDim, &Mean_GradPrimVar[1], tau); if (Mean_TauWall > 0) AddTauWall(UnitNormal, Mean_TauWall); diff --git a/SU2_CFD/src/output/CFlowCompOutput.cpp b/SU2_CFD/src/output/CFlowCompOutput.cpp index d3c76e75a36..9cb227d2745 100644 --- a/SU2_CFD/src/output/CFlowCompOutput.cpp +++ b/SU2_CFD/src/output/CFlowCompOutput.cpp @@ -262,6 +262,7 @@ void CFlowCompOutput::SetVolumeOutputFields(CConfig *config){ AddVolumeOutput("HEAT_FLUX", "Heat_Flux", "PRIMITIVE", "Heat-flux"); AddVolumeOutput("Y_PLUS", "Y_Plus", "PRIMITIVE", "Non-dim. wall distance (Y-Plus)"); + AddVolumeOutput("NEIGHBORDIST", "NeighborDistance", "DEBUG", "Non-dim. wall distance (Y-Plus)"); } SetVolumeOutputFieldsScalarPrimitive(config); diff --git a/SU2_CFD/src/output/CFlowOutput.cpp b/SU2_CFD/src/output/CFlowOutput.cpp index 94344a26c06..ee0a1fdfc8d 100644 --- a/SU2_CFD/src/output/CFlowOutput.cpp +++ b/SU2_CFD/src/output/CFlowOutput.cpp @@ -1256,6 +1256,14 @@ void CFlowOutput::SetVolumeOutputFieldsScalarSolution(const CConfig* config){ case TURB_FAMILY::KW: AddVolumeOutput("TKE", "Turb_Kin_Energy", "SOLUTION", "Turbulent kinetic energy"); AddVolumeOutput("DISSIPATION", "Omega", "SOLUTION", "Rate of dissipation"); + AddVolumeOutput("PROD_TKE", "Prod_TKE", "DEBUG", "Production of turbulent kinetic energy"); + AddVolumeOutput("DESTR_TKE", "Destr_TKE", "DEBUG", "Destruction of turbulent kinetic energy"); + AddVolumeOutput("PROD_TKE_LIM", "Prod_TKE_Lim", "DEBUG", "Check if production limiter has been used for TKE"); + AddVolumeOutput("PROD_W", "Prod_W", "DEBUG", "Production of rate of dissipation"); + AddVolumeOutput("DESTR_W", "Destr_W", "DEBUG", "Destruction of rate of dissipation"); + AddVolumeOutput("CDkw", "CDkw", "DEBUG", "Cross-Diffusion term"); + AddVolumeOutput("F1", "F1", "DEBUG", "F1 blending function"); + AddVolumeOutput("F2", "F2", "DEBUG", "F2 blending function"); break; case TURB_FAMILY::NONE: @@ -1487,6 +1495,19 @@ void CFlowOutput::SetVolumeOutputFieldsScalarMisc(const CConfig* config) { AddVolumeOutput("VORTICITY", "Vorticity", "VORTEX_IDENTIFICATION", "Value of the vorticity"); } AddVolumeOutput("Q_CRITERION", "Q_Criterion", "VORTEX_IDENTIFICATION", "Value of the Q-Criterion"); + AddVolumeOutput("WALL_DISTANCE", "Wall_Distance", "MISC", "Wall distance value"); + AddVolumeOutput("STRAIN_MAG", "Strain_Magnitude", "MISC", "Strain magnitude value"); + AddVolumeOutput("GRAD_VEL_XX", "Grad_Vel_xx", "DEBUG", "Strain magnitude value"); + AddVolumeOutput("GRAD_VEL_XY", "Grad_Vel_xy", "DEBUG", "Strain magnitude value"); + AddVolumeOutput("GRAD_VEL_YX", "Grad_Vel_yx", "DEBUG", "Strain magnitude value"); + AddVolumeOutput("GRAD_VEL_YY", "Grad_Vel_yy", "DEBUG", "Strain magnitude value"); + if (nDim == 3) { + AddVolumeOutput("GRAD_VEL_XZ", "Grad_Vel_xz", "DEBUG", "Strain magnitude value"); + AddVolumeOutput("GRAD_VEL_YZ", "Grad_Vel_yz", "DEBUG", "Strain magnitude value"); + AddVolumeOutput("GRAD_VEL_ZX", "Grad_Vel_zx", "DEBUG", "Strain magnitude value"); + AddVolumeOutput("GRAD_VEL_ZY", "Grad_Vel_zy", "DEBUG", "Strain magnitude value"); + AddVolumeOutput("GRAD_VEL_ZZ", "Grad_Vel_zz", "DEBUG", "Strain magnitude value"); + } } // Timestep info @@ -1512,6 +1533,7 @@ void CFlowOutput::LoadVolumeDataScalar(const CConfig* config, const CSolver* con SetVolumeOutputValue("CFL", iPoint, Node_Flow->GetLocalCFL(iPoint)); if (config->GetViscous()) { + const auto VelGrad = Node_Flow->GetVelocityGradient(iPoint); if (nDim == 3){ SetVolumeOutputValue("VORTICITY_X", iPoint, Node_Flow->GetVorticity(iPoint)[0]); SetVolumeOutputValue("VORTICITY_Y", iPoint, Node_Flow->GetVorticity(iPoint)[1]); @@ -1519,7 +1541,20 @@ void CFlowOutput::LoadVolumeDataScalar(const CConfig* config, const CSolver* con } else { SetVolumeOutputValue("VORTICITY", iPoint, Node_Flow->GetVorticity(iPoint)[2]); } - SetVolumeOutputValue("Q_CRITERION", iPoint, GetQCriterion(Node_Flow->GetVelocityGradient(iPoint))); + SetVolumeOutputValue("Q_CRITERION", iPoint, GetQCriterion(VelGrad)); + SetVolumeOutputValue("WALL_DISTANCE", iPoint, Node_Geo->GetWall_Distance(iPoint)); + SetVolumeOutputValue("STRAIN_MAG", iPoint, Node_Flow->GetStrainMag(iPoint)); + SetVolumeOutputValue("GRAD_VEL_XX", iPoint, VelGrad(0,0)); + SetVolumeOutputValue("GRAD_VEL_XY", iPoint, VelGrad(0,1)); + SetVolumeOutputValue("GRAD_VEL_YX", iPoint, VelGrad(1,0)); + SetVolumeOutputValue("GRAD_VEL_YY", iPoint, VelGrad(1,1)); + if (nDim == 3) { + SetVolumeOutputValue("GRAD_VEL_XZ", iPoint, VelGrad(0,2)); + SetVolumeOutputValue("GRAD_VEL_YZ", iPoint, VelGrad(1,2)); + SetVolumeOutputValue("GRAD_VEL_ZX", iPoint, VelGrad(2,0)); + SetVolumeOutputValue("GRAD_VEL_ZY", iPoint, VelGrad(2,1)); + SetVolumeOutputValue("GRAD_VEL_ZZ", iPoint, VelGrad(2,2)); + } } const bool limiter = (config->GetKind_SlopeLimit_Turb() != LIMITER::NONE); @@ -1536,6 +1571,14 @@ void CFlowOutput::LoadVolumeDataScalar(const CConfig* config, const CSolver* con case TURB_FAMILY::KW: SetVolumeOutputValue("TKE", iPoint, Node_Turb->GetSolution(iPoint, 0)); SetVolumeOutputValue("DISSIPATION", iPoint, Node_Turb->GetSolution(iPoint, 1)); + SetVolumeOutputValue("PROD_TKE", iPoint, Node_Turb->GetProdTKE(iPoint)); + SetVolumeOutputValue("DESTR_TKE", iPoint, Node_Turb->GetDestrTKE(iPoint)); + SetVolumeOutputValue("PROD_TKE_LIM", iPoint, Node_Turb->GetPkLim(iPoint)); + SetVolumeOutputValue("PROD_W", iPoint, Node_Turb->GetProdW(iPoint)); + SetVolumeOutputValue("DESTR_W", iPoint, Node_Turb->GetDestrW(iPoint)); + SetVolumeOutputValue("CDkw", iPoint, Node_Turb->GetCrossDiff(iPoint)); + SetVolumeOutputValue("F1", iPoint, Node_Turb->GetF1blending(iPoint)); + SetVolumeOutputValue("F2", iPoint, Node_Turb->GetF2blending(iPoint)); SetVolumeOutputValue("RES_TKE", iPoint, turb_solver->LinSysRes(iPoint, 0)); SetVolumeOutputValue("RES_DISSIPATION", iPoint, turb_solver->LinSysRes(iPoint, 1)); if (limiter) { @@ -1651,6 +1694,7 @@ void CFlowOutput::LoadSurfaceData(CConfig *config, CGeometry *geometry, CSolver SetVolumeOutputValue("SKIN_FRICTION-Z", iPoint, solver[FLOW_SOL]->GetCSkinFriction(iMarker, iVertex, 2)); SetVolumeOutputValue("HEAT_FLUX", iPoint, solver[heat_sol]->GetHeatFlux(iMarker, iVertex)); SetVolumeOutputValue("Y_PLUS", iPoint, solver[FLOW_SOL]->GetYPlus(iMarker, iVertex)); + SetVolumeOutputValue("NEIGHBORDIST", iPoint, geometry->vertex[iMarker][iVertex]->GetNearestNeighborDistance()); } void CFlowOutput::AddAerodynamicCoefficients(const CConfig* config) { diff --git a/SU2_CFD/src/solvers/CAdjNSSolver.cpp b/SU2_CFD/src/solvers/CAdjNSSolver.cpp index 54e6c717b27..e3904110ab4 100644 --- a/SU2_CFD/src/solvers/CAdjNSSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjNSSolver.cpp @@ -592,6 +592,10 @@ void CAdjNSSolver::Viscous_Sensitivity(CGeometry *geometry, CSolver **solver_con dp_drv, dp_drw, dp_drE, dH_dr, dH_dru, dH_drv, dH_drw, dH_drE, H, D[3][3], Dd[3], Mach_Inf, eps, scale = 1.0, RefVel2, RefDensity, Mach2Vel, *Velocity_Inf, factor; + const bool SSTm = config->GetSSTParsedOptions().modified; + const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST) && !SSTm; + const auto* Node_Turb = (tkeNeeded) ? solver_container[TURB_SOL]->GetNodes() : nullptr; + auto *USens = new su2double[nVar]; auto *UnitNormal = new su2double[nDim]; auto *normal_grad_vel = new su2double[nDim]; @@ -762,6 +766,7 @@ void CAdjNSSolver::Viscous_Sensitivity(CGeometry *geometry, CSolver **solver_con /*--- Turbulent kinetic energy ---*/ // turb_ke is not considered in the stress tensor, see #797 val_turb_ke = 0.0; + if (tkeNeeded) val_turb_ke = Node_Turb->GetSolution(iPoint, 0); CNumerics::ComputeStressTensor(nDim, tau, PrimVar_Grad+1, Laminar_Viscosity, Density, val_turb_ke); /*--- Form normal_grad_gridvel = \partial_n (u_omega) ---*/ diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index b0e1381fef0..9c549e0b94c 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -65,6 +65,7 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, const bool time_stepping = (config->GetTime_Marching() == TIME_MARCHING::TIME_STEPPING); const bool adjoint = config->GetContinuous_Adjoint() || config->GetDiscrete_Adjoint(); const bool centered = config->GetKind_ConvNumScheme_Flow() == SPACE_CENTERED; + bool tkeNeeded = (rans && config->GetKind_Turb_Model() == TURB_MODEL::SST && !(config->GetSSTParsedOptions().modified)); int Unst_RestartIter = 0; unsigned long iPoint, iMarker, counter_local = 0, counter_global = 0; @@ -247,6 +248,7 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, Density_Inf = config->GetDensity_FreeStreamND(); Energy_Inf = config->GetEnergy_FreeStreamND(); Mach_Inf = config->GetMach(); + const su2double TKE_Inf = config->GetTke_FreeStreamND(); /*--- Initialize the secondary values for direct derivative approxiations ---*/ @@ -316,6 +318,7 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, Velocity2 += pow(nodes->GetSolution(iPoint,iDim+1)/Density,2); StaticEnergy= nodes->GetEnergy(iPoint) - 0.5*Velocity2; + if (tkeNeeded) StaticEnergy -= TKE_Inf; GetFluidModel()->SetTDState_rhoe(Density, StaticEnergy); Pressure= GetFluidModel()->GetPressure(); @@ -328,7 +331,7 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, Solution[0] = Density_Inf; for (iDim = 0; iDim < nDim; iDim++) Solution[iDim+1] = Velocity_Inf[iDim]*Density_Inf; - Solution[nDim+1] = Energy_Inf*Density_Inf; + Solution[nDim+1] = Energy_Inf*Density_Inf; nodes->SetSolution(iPoint,Solution); nodes->SetSolution_Old(iPoint,Solution); counter_local++; @@ -810,7 +813,8 @@ void CEulerSolver::SetNondimensionalization(CConfig *config, unsigned short iMes bool viscous = config->GetViscous(); bool gravity = config->GetGravityForce(); bool turbulent = (config->GetKind_Turb_Model() != TURB_MODEL::NONE); - bool tkeNeeded = (turbulent && config->GetKind_Turb_Model() == TURB_MODEL::SST); + bool tkeNeeded = (turbulent && config->GetKind_Turb_Model() == TURB_MODEL::SST && !(config->GetSSTParsedOptions().modified)); + // bool tkeNeeded = (turbulent && config->GetKind_Turb_Model() == TURB_MODEL::SST); bool free_stream_temp = (config->GetKind_FreeStreamOption() == FREESTREAM_OPTION::TEMPERATURE_FS); bool reynolds_init = (config->GetKind_InitOption() == REYNOLDS); bool aeroelastic = config->GetAeroelastic_Simulation(); @@ -975,6 +979,19 @@ void CEulerSolver::SetNondimensionalization(CConfig *config, unsigned short iMes Tke_FreeStream = 3.0/2.0*(ModVel_FreeStream*ModVel_FreeStream*config->GetTurbulenceIntensity_FreeStream()*config->GetTurbulenceIntensity_FreeStream()); + if (config->GetSSTParsedOptions().newBC) { + su2double Omega_Freestream = 10 * ModVel_FreeStream / config->GetLDomain(); + Tke_FreeStream = Omega_Freestream*(Viscosity_FreeStream*config->GetTurb2LamViscRatio_FreeStream())/Density_FreeStream; + } else if (config->GetSSTParsedOptions().sust) { + su2double Omega_Freestream = 5*ModVel_FreeStream/config->GetLength_Reynolds(); + /*--- not good ---*/ + Tke_FreeStream = pow(10.0, -6) * ModVel_FreeStream*ModVel_FreeStream; /*--- Equals a freestream turbulence intensity of 0.08165%. This should be the default one, not hard-coding the freestream TI. ---*/ + } + + /*-- Compute the freestream energy. ---*/ + + if (tkeNeeded) { Energy_FreeStream += Tke_FreeStream; }; + } else { @@ -985,9 +1002,8 @@ void CEulerSolver::SetNondimensionalization(CConfig *config, unsigned short iMes } - /*-- Compute the freestream energy. ---*/ - - if (tkeNeeded) { Energy_FreeStream += Tke_FreeStream; }; config->SetEnergy_FreeStream(Energy_FreeStream); + /*-- Set the freestream energy. ---*/ + config->SetEnergy_FreeStream(Energy_FreeStream); /*--- Compute non dimensional quantities. By definition, Lref is one because we have converted the grid to meters. ---*/ @@ -1048,15 +1064,30 @@ void CEulerSolver::SetNondimensionalization(CConfig *config, unsigned short iMes Viscosity_FreeStreamND = Viscosity_FreeStream / Viscosity_Ref; config->SetViscosity_FreeStreamND(Viscosity_FreeStreamND); Tke_FreeStream = 3.0/2.0*(ModVel_FreeStream*ModVel_FreeStream*config->GetTurbulenceIntensity_FreeStream()*config->GetTurbulenceIntensity_FreeStream()); - config->SetTke_FreeStream(Tke_FreeStream); - Tke_FreeStreamND = 3.0/2.0*(ModVel_FreeStreamND*ModVel_FreeStreamND*config->GetTurbulenceIntensity_FreeStream()*config->GetTurbulenceIntensity_FreeStream()); - config->SetTke_FreeStreamND(Tke_FreeStreamND); Omega_FreeStream = Density_FreeStream*Tke_FreeStream/(Viscosity_FreeStream*config->GetTurb2LamViscRatio_FreeStream()); - config->SetOmega_FreeStream(Omega_FreeStream); - Omega_FreeStreamND = Density_FreeStreamND*Tke_FreeStreamND/(Viscosity_FreeStreamND*config->GetTurb2LamViscRatio_FreeStream()); + + if (config->GetSSTParsedOptions().newBC) { + Omega_FreeStream = 10 * ModVel_FreeStream / config->GetLDomain(); + Omega_FreeStreamND = 10 * ModVel_FreeStreamND / config->GetLDomain(); // Should it be non-dimensionalized for the Reynolds length? + + Tke_FreeStream = Omega_FreeStream*(Viscosity_FreeStream*config->GetTurb2LamViscRatio_FreeStream())/Density_FreeStream; + Tke_FreeStreamND = Omega_FreeStreamND*(Viscosity_FreeStreamND*config->GetTurb2LamViscRatio_FreeStream())/Density_FreeStreamND; + } else if (config->GetSSTParsedOptions().sust) { + Omega_FreeStream = 5*ModVel_FreeStream/config->GetLength_Reynolds(); + Omega_FreeStreamND = 5*ModVel_FreeStreamND / config->GetLength_Reynolds(); // Should it be non-dimensionalized by what? Dimensions are 1/s + + /*--- not good ---*/ + Tke_FreeStream = pow(10.0, -6) * ModVel_FreeStream*ModVel_FreeStream; /*--- Equals a freestream turbulence intensity of 0.08165%. This should be the default one, not hard-coding the freestream TI. ---*/ + Tke_FreeStreamND = pow(10.0, -6) * ModVel_FreeStreamND*ModVel_FreeStreamND; /*--- Equals a freestream turbulence intensity of 0.08165%. This should be the default one, not hard-coding the freestream TI. ---*/ + } + + config->SetTke_FreeStream(Tke_FreeStream); + config->SetTke_FreeStreamND(Tke_FreeStreamND); + + config->SetOmega_FreeStream(Omega_FreeStream); config->SetOmega_FreeStreamND(Omega_FreeStreamND); if (config->GetTurbulenceIntensity_FreeStream() *100 <= 1.3) { @@ -4777,7 +4808,9 @@ void CEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_container, bool implicit = config->GetKind_TimeIntScheme() == EULER_IMPLICIT; bool viscous = config->GetViscous(); - bool tkeNeeded = config->GetKind_Turb_Model() == TURB_MODEL::SST; + bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST && !(config->GetSSTParsedOptions().modified)); + CVariable* turbNodes = nullptr; + if (tkeNeeded) turbNodes = solver_container[TURB_SOL]->GetNodes(); auto *Normal = new su2double[nDim]; @@ -4927,7 +4960,8 @@ void CEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_container, } Pressure = Density*SoundSpeed*SoundSpeed/Gamma; Energy = Pressure/(Gamma_Minus_One*Density) + 0.5*Velocity2; - if (tkeNeeded) Energy += GetTke_Inf(); + // if (tkeNeeded) Energy += GetTke_Inf(); + if (tkeNeeded) Energy += turbNodes->GetSolution(iPoint,0); /*--- Store new primitive state for computing the flux. ---*/ @@ -5020,7 +5054,9 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, const bool viscous = config->GetViscous(), implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT), gravity = config->GetGravityForce(), - tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST); + tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST && !(config->GetSSTParsedOptions().modified)); + CVariable* turbNodes = nullptr; + if (tkeNeeded) turbNodes = solver_container[TURB_SOL]->GetNodes(); su2double **P_Tensor = new su2double*[nVar], **invP_Tensor = new su2double*[nVar]; @@ -5066,7 +5102,8 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, const auto Density_i = nodes->GetDensity(iPoint); const auto Energy_i = nodes->GetEnergy(iPoint); - const su2double StaticEnergy_i = Energy_i - 0.5*Velocity2_i; + su2double StaticEnergy_i = Energy_i - 0.5*Velocity2_i; + if (tkeNeeded) StaticEnergy_i -= turbNodes->GetSolution(iPoint, 0); GetFluidModel()->SetTDState_rhoe(Density_i, StaticEnergy_i); @@ -5120,7 +5157,8 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, Density_e = GetFluidModel()->GetDensity(); StaticEnergy_e = GetFluidModel()->GetStaticEnergy(); Energy_e = StaticEnergy_e + 0.5 * Velocity2_e; - if (tkeNeeded) Energy_e += GetTke_Inf(); + // if (tkeNeeded) Energy_e += GetTke_Inf(); + if (tkeNeeded) Energy_e += turbNodes->GetSolution(iPoint,0); break; case STATIC_SUPERSONIC_INFLOW_PT: @@ -5146,7 +5184,8 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, Density_e = GetFluidModel()->GetDensity(); StaticEnergy_e = GetFluidModel()->GetStaticEnergy(); Energy_e = StaticEnergy_e + 0.5 * Velocity2_e; - if (tkeNeeded) Energy_e += GetTke_Inf(); + // if (tkeNeeded) Energy_e += GetTke_Inf(); + if (tkeNeeded) Energy_e += turbNodes->GetSolution(iPoint,0); break; case STATIC_SUPERSONIC_INFLOW_PD: @@ -5173,7 +5212,8 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, Density_e = GetFluidModel()->GetDensity(); StaticEnergy_e = GetFluidModel()->GetStaticEnergy(); Energy_e = StaticEnergy_e + 0.5 * Velocity2_e; - if (tkeNeeded) Energy_e += GetTke_Inf(); + // if (tkeNeeded) Energy_e += GetTke_Inf(); + if (tkeNeeded) Energy_e += turbNodes->GetSolution(iPoint,0); break; case DENSITY_VELOCITY: @@ -5206,6 +5246,7 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, Velocity2_e = GeometryToolbox::SquaredNorm(nDim, Velocity_e); Energy_e = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_e; + if (tkeNeeded) Energy_e += turbNodes->GetSolution(iPoint,0); break; default: @@ -5410,7 +5451,7 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, /*--- Turbulent kinetic energy ---*/ - if (config->GetKind_Turb_Model() == TURB_MODEL::SST) + if (tkeNeeded) visc_numerics->SetTurbKineticEnergy(solver_container[TURB_SOL]->GetNodes()->GetSolution(iPoint,0), solver_container[TURB_SOL]->GetNodes()->GetSolution(iPoint,0)); @@ -5462,7 +5503,9 @@ void CEulerSolver::BC_TurboRiemann(CGeometry *geometry, CSolver **solver_contain unsigned short nSpanWiseSections = geometry->GetnSpanWiseSections(config->GetMarker_All_TurbomachineryFlag(val_marker)); bool viscous = config->GetViscous(); bool gravity = (config->GetGravityForce()); - bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST); + bool tkeNeeded = ((config->GetKind_Turb_Model() == TURB_MODEL::SST) && !(config->GetSSTParsedOptions().modified)); + CVariable* turbNodes = nullptr; + if (tkeNeeded) turbNodes = solver_container[TURB_SOL]->GetNodes(); su2double *Normal, *turboNormal, *UnitNormal, *FlowDirMix, FlowDirMixMag, *turboVelocity; Normal = new su2double[nDim]; @@ -5536,6 +5579,7 @@ void CEulerSolver::BC_TurboRiemann(CGeometry *geometry, CSolver **solver_contain Energy_i = nodes->GetEnergy(iPoint); StaticEnergy_i = Energy_i - 0.5*Velocity2_i; + if(tkeNeeded) StaticEnergy_i -= turbNodes->GetSolution(iPoint, 0); GetFluidModel()->SetTDState_rhoe(Density_i, StaticEnergy_i); @@ -5581,11 +5625,12 @@ void CEulerSolver::BC_TurboRiemann(CGeometry *geometry, CSolver **solver_contain turboVelocity[iDim] = sqrt(Velocity2_e)*Flow_Dir[iDim]; ComputeBackVelocity(turboVelocity,turboNormal, Velocity_e, config->GetMarker_All_TurbomachineryFlag(val_marker),config->GetKind_TurboMachinery(iZone)); StaticEnthalpy_e = Enthalpy_e - 0.5 * Velocity2_e; + if(tkeNeeded) StaticEnthalpy_e -= turbNodes->GetSolution(iPoint, 0); GetFluidModel()->SetTDState_hs(StaticEnthalpy_e, Entropy_e); Density_e = GetFluidModel()->GetDensity(); StaticEnergy_e = GetFluidModel()->GetStaticEnergy(); Energy_e = StaticEnergy_e + 0.5 * Velocity2_e; - if (tkeNeeded) Energy_e += GetTke_Inf(); + if(tkeNeeded) Energy_e += turbNodes->GetSolution(iPoint, 0); break; case MIXING_IN: @@ -5616,10 +5661,12 @@ void CEulerSolver::BC_TurboRiemann(CGeometry *geometry, CSolver **solver_contain ComputeBackVelocity(turboVelocity,turboNormal, Velocity_e, config->GetMarker_All_TurbomachineryFlag(val_marker),config->GetKind_TurboMachinery(iZone)); StaticEnthalpy_e = Enthalpy_e - 0.5 * Velocity2_e; + if(tkeNeeded) StaticEnthalpy_e -= turbNodes->GetSolution(iPoint, 0); GetFluidModel()->SetTDState_hs(StaticEnthalpy_e, Entropy_e); Density_e = GetFluidModel()->GetDensity(); StaticEnergy_e = GetFluidModel()->GetStaticEnergy(); Energy_e = StaticEnergy_e + 0.5 * Velocity2_e; + if(tkeNeeded) Energy_e += turbNodes->GetSolution(iPoint, 0); // if (tkeNeeded) Energy_e += GetTke_Inf(); break; @@ -5638,6 +5685,7 @@ void CEulerSolver::BC_TurboRiemann(CGeometry *geometry, CSolver **solver_contain Velocity2_e += Velocity_e[iDim]*Velocity_e[iDim]; } Energy_e = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_e; + if(tkeNeeded) Energy_e += turbNodes->GetSolution(iPoint, 0); break; case STATIC_PRESSURE: @@ -5655,6 +5703,7 @@ void CEulerSolver::BC_TurboRiemann(CGeometry *geometry, CSolver **solver_contain Velocity2_e += Velocity_e[iDim]*Velocity_e[iDim]; } Energy_e = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_e; + if(tkeNeeded) Energy_e += turbNodes->GetSolution(iPoint, 0); break; @@ -5672,6 +5721,7 @@ void CEulerSolver::BC_TurboRiemann(CGeometry *geometry, CSolver **solver_contain Velocity2_e += Velocity_e[iDim]*Velocity_e[iDim]; } Energy_e = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_e; + if(tkeNeeded) Energy_e += turbNodes->GetSolution(iPoint, 0); break; default: @@ -6892,7 +6942,7 @@ void CEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, const su2double Gas_Constant = config->GetGas_ConstantND(); const auto Kind_Inlet_Cfg = config->GetKind_Inlet(); const auto Marker_Tag = config->GetMarker_All_TagBound(val_marker); - const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST); + const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST && !(config->GetSSTParsedOptions().modified)); /*--- Loop over all the vertices on this boundary marker ---*/ @@ -7162,7 +7212,10 @@ void CEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, su2double Gas_Constant = config->GetGas_ConstantND(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); bool gravity = (config->GetGravityForce()); - bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST); + bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST && !(config->GetSSTParsedOptions().modified)); + + CVariable* turbNodes = nullptr; + if (tkeNeeded) turbNodes = solver_container[TURB_SOL]->GetNodes(); auto *Normal = new su2double[nDim]; @@ -7245,7 +7298,8 @@ void CEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, Velocity2 += Velocity[iDim]*Velocity[iDim]; } Energy = P_Exit/(Density*Gamma_Minus_One) + 0.5*Velocity2; - if (tkeNeeded) Energy += GetTke_Inf(); + // if (tkeNeeded) Energy += GetTke_Inf(); + if (tkeNeeded) Energy += turbNodes->GetSolution(iPoint,0); /*--- Conservative variables, using the derived quantities ---*/ V_outlet[0] = Pressure / ( Gas_Constant * Density); @@ -7328,11 +7382,14 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con const su2double Gas_Constant = config->GetGas_ConstantND(); const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); const auto Marker_Tag = config->GetMarker_All_TagBound(val_marker); - const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST); + const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST && !(config->GetSSTParsedOptions().modified)); + CVariable* turbNodes = nullptr; + if (tkeNeeded) turbNodes = solver_container[TURB_SOL]->GetNodes(); /*--- Supersonic inlet flow: there are no outgoing characteristics, so all flow variables can be imposed at the inlet. ---*/ + /*--- Loop over all the vertices on this boundary marker ---*/ SU2_OMP_FOR_DYN(OMP_MIN_SIZE) for (auto iVertex = 0ul; iVertex < geometry->nVertex[val_marker]; iVertex++) { const auto iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); @@ -7363,7 +7420,7 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con Energy += Tke; } - /*--- Primitive variables, using the derived quantities. ---*/ + /*--- Allocate the value at the inlet ---*/ auto* V_inlet = GetCharacPrimVar(val_marker, iVertex); V_inlet[prim_idx.Temperature()] = Temperature; diff --git a/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp b/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp index 29c53116c84..15e4f9698cc 100644 --- a/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp +++ b/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp @@ -1055,15 +1055,30 @@ void CFEM_DG_EulerSolver::SetNondimensionalization(CConfig *config, Viscosity_FreeStreamND = Viscosity_FreeStream / Viscosity_Ref; config->SetViscosity_FreeStreamND(Viscosity_FreeStreamND); Tke_FreeStream = 3.0/2.0*(ModVel_FreeStream*ModVel_FreeStream*config->GetTurbulenceIntensity_FreeStream()*config->GetTurbulenceIntensity_FreeStream()); - config->SetTke_FreeStream(Tke_FreeStream); - Tke_FreeStreamND = 3.0/2.0*(ModVel_FreeStreamND*ModVel_FreeStreamND*config->GetTurbulenceIntensity_FreeStream()*config->GetTurbulenceIntensity_FreeStream()); + + Omega_FreeStream = Density_FreeStream*Tke_FreeStream/(Viscosity_FreeStream*config->GetTurb2LamViscRatio_FreeStream()); + Omega_FreeStreamND = Density_FreeStreamND*Tke_FreeStreamND/(Viscosity_FreeStreamND*config->GetTurb2LamViscRatio_FreeStream()); + + if (config->GetSSTParsedOptions().newBC) { + Omega_FreeStream = 10 * ModVel_FreeStream / config->GetLDomain(); + Omega_FreeStreamND = 10 * ModVel_FreeStreamND / config->GetLDomain(); // Should it be non-dimensionalized for the Reynolds length? + + Tke_FreeStream = Omega_FreeStream*(Viscosity_FreeStream*config->GetTurb2LamViscRatio_FreeStream())/Density_FreeStream; + Tke_FreeStreamND = Omega_FreeStreamND*(Viscosity_FreeStreamND*config->GetTurb2LamViscRatio_FreeStream())/Density_FreeStreamND; + } else if (config->GetSSTParsedOptions().sust) { + Omega_FreeStream = 5*ModVel_FreeStream/config->GetLength_Reynolds(); + Omega_FreeStreamND = 5*ModVel_FreeStreamND / config->GetLength_Reynolds(); // Should it be non-dimensionalized by what? Dimensions are 1/s + + /*--- not good ---*/ + Tke_FreeStream = pow(10.0, -6) * ModVel_FreeStream*ModVel_FreeStream; /*--- Equals a freestream turbulence intensity of 0.08165%. This should be the default one, not hard-coding the freestream TI. ---*/ + Tke_FreeStreamND = pow(10.0, -6) * ModVel_FreeStreamND*ModVel_FreeStreamND; /*--- Equals a freestream turbulence intensity of 0.08165%. This should be the default one, not hard-coding the freestream TI. ---*/ + } + + config->SetTke_FreeStream(Tke_FreeStream); config->SetTke_FreeStreamND(Tke_FreeStreamND); - Omega_FreeStream = Density_FreeStream*Tke_FreeStream/max((Viscosity_FreeStream*config->GetTurb2LamViscRatio_FreeStream()), 1.e-25); config->SetOmega_FreeStream(Omega_FreeStream); - - Omega_FreeStreamND = Density_FreeStreamND*Tke_FreeStreamND/max((Viscosity_FreeStreamND*config->GetTurb2LamViscRatio_FreeStream()), 1.e-25); config->SetOmega_FreeStreamND(Omega_FreeStreamND); /*--- Initialize the dimensionless Fluid Model that will be used to solve the dimensionless problem ---*/ diff --git a/SU2_CFD/src/solvers/CIncEulerSolver.cpp b/SU2_CFD/src/solvers/CIncEulerSolver.cpp index 6aaf09a5183..499c36cfd60 100644 --- a/SU2_CFD/src/solvers/CIncEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CIncEulerSolver.cpp @@ -452,15 +452,30 @@ void CIncEulerSolver::SetNondimensionalization(CConfig *config, unsigned short i Viscosity_FreeStreamND = Viscosity_FreeStream / Viscosity_Ref; config->SetViscosity_FreeStreamND(Viscosity_FreeStreamND); Tke_FreeStream = 3.0/2.0*(ModVel_FreeStream*ModVel_FreeStream*config->GetTurbulenceIntensity_FreeStream()*config->GetTurbulenceIntensity_FreeStream()); - config->SetTke_FreeStream(Tke_FreeStream); - Tke_FreeStreamND = 3.0/2.0*(ModVel_FreeStreamND*ModVel_FreeStreamND*config->GetTurbulenceIntensity_FreeStream()*config->GetTurbulenceIntensity_FreeStream()); - config->SetTke_FreeStreamND(Tke_FreeStreamND); Omega_FreeStream = Density_FreeStream*Tke_FreeStream/(Viscosity_FreeStream*config->GetTurb2LamViscRatio_FreeStream()); - config->SetOmega_FreeStream(Omega_FreeStream); - Omega_FreeStreamND = Density_FreeStreamND*Tke_FreeStreamND/(Viscosity_FreeStreamND*config->GetTurb2LamViscRatio_FreeStream()); + + if (config->GetSSTParsedOptions().newBC) { + Omega_FreeStream = 10 * ModVel_FreeStream / config->GetLDomain(); + Omega_FreeStreamND = 10 * ModVel_FreeStreamND / config->GetLDomain(); // Should it be non-dimensionalized for the Reynolds length? + + Tke_FreeStream = Omega_FreeStream*(Viscosity_FreeStream*config->GetTurb2LamViscRatio_FreeStream())/Density_FreeStream; + Tke_FreeStreamND = Omega_FreeStreamND*(Viscosity_FreeStreamND*config->GetTurb2LamViscRatio_FreeStream())/Density_FreeStreamND; + } else if (config->GetSSTParsedOptions().sust) { + Omega_FreeStream = 5*ModVel_FreeStream/config->GetLength_Reynolds(); + Omega_FreeStreamND = 5*ModVel_FreeStreamND / config->GetLength_Reynolds(); // Should it be non-dimensionalized by what? Dimensions are 1/s + + /*--- not good ---*/ + Tke_FreeStream = pow(10.0, -6) * ModVel_FreeStream*ModVel_FreeStream; /*--- Equals a freestream turbulence intensity of 0.08165%. This should be the default one, not hard-coding the freestream TI. ---*/ + Tke_FreeStreamND = pow(10.0, -6) * ModVel_FreeStreamND*ModVel_FreeStreamND; /*--- Equals a freestream turbulence intensity of 0.08165%. This should be the default one, not hard-coding the freestream TI. ---*/ + } + + config->SetTke_FreeStream(Tke_FreeStream); + config->SetTke_FreeStreamND(Tke_FreeStreamND); + + config->SetOmega_FreeStream(Omega_FreeStream); config->SetOmega_FreeStreamND(Omega_FreeStreamND); const su2double MassDiffusivityND = config->GetDiffusivity_Constant() / (Velocity_Ref * Length_Ref); diff --git a/SU2_CFD/src/solvers/CIncNSSolver.cpp b/SU2_CFD/src/solvers/CIncNSSolver.cpp index f6999d453f4..235ffdaf0f5 100644 --- a/SU2_CFD/src/solvers/CIncNSSolver.cpp +++ b/SU2_CFD/src/solvers/CIncNSSolver.cpp @@ -287,7 +287,7 @@ unsigned long CIncNSSolver::SetPrimitive_Variables(CSolver **solver_container, c const TURB_MODEL turb_model = config->GetKind_Turb_Model(); const SPECIES_MODEL species_model = config->GetKind_Species_Model(); - bool tkeNeeded = (turb_model == TURB_MODEL::SST); + bool tkeNeeded = (turb_model == TURB_MODEL::SST && !(config->GetSSTParsedOptions().modified)); AD::StartNoSharedReading(); diff --git a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp index 1a41a04f66a..3d236080f47 100644 --- a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp @@ -1187,15 +1187,30 @@ void CNEMOEulerSolver::SetNondimensionalization(CConfig *config, unsigned short Viscosity_FreeStreamND = Viscosity_FreeStream / Viscosity_Ref; config->SetViscosity_FreeStreamND(Viscosity_FreeStreamND); Tke_FreeStream = 3.0/2.0*(ModVel_FreeStream*ModVel_FreeStream*config->GetTurbulenceIntensity_FreeStream()*config->GetTurbulenceIntensity_FreeStream()); - config->SetTke_FreeStream(Tke_FreeStream); - Tke_FreeStreamND = 3.0/2.0*(ModVel_FreeStreamND*ModVel_FreeStreamND*config->GetTurbulenceIntensity_FreeStream()*config->GetTurbulenceIntensity_FreeStream()); - config->SetTke_FreeStreamND(Tke_FreeStreamND); Omega_FreeStream = Density_FreeStream*Tke_FreeStream/(Viscosity_FreeStream*config->GetTurb2LamViscRatio_FreeStream()); - config->SetOmega_FreeStream(Omega_FreeStream); - Omega_FreeStreamND = Density_FreeStreamND*Tke_FreeStreamND/(Viscosity_FreeStreamND*config->GetTurb2LamViscRatio_FreeStream()); + + if (config->GetSSTParsedOptions().newBC) { + Omega_FreeStream = 10 * ModVel_FreeStream / config->GetLDomain(); + Omega_FreeStreamND = 10 * ModVel_FreeStreamND / config->GetLDomain(); // Should it be non-dimensionalized for the Reynolds length? + + Tke_FreeStream = Omega_FreeStream*(Viscosity_FreeStream*config->GetTurb2LamViscRatio_FreeStream())/Density_FreeStream; + Tke_FreeStreamND = Omega_FreeStreamND*(Viscosity_FreeStreamND*config->GetTurb2LamViscRatio_FreeStream())/Density_FreeStreamND; + } else if (config->GetSSTParsedOptions().sust) { + Omega_FreeStream = 5*ModVel_FreeStream/config->GetLength_Reynolds(); + Omega_FreeStreamND = 5*ModVel_FreeStreamND / config->GetLength_Reynolds(); // Should it be non-dimensionalized by what? Dimensions are 1/s + + /*--- not good ---*/ + Tke_FreeStream = pow(10.0, -6) * ModVel_FreeStream*ModVel_FreeStream; /*--- Equals a freestream turbulence intensity of 0.08165%. This should be the default one, not hard-coding the freestream TI. ---*/ + Tke_FreeStreamND = pow(10.0, -6) * ModVel_FreeStreamND*ModVel_FreeStreamND; /*--- Equals a freestream turbulence intensity of 0.08165%. This should be the default one, not hard-coding the freestream TI. ---*/ + } + + config->SetTke_FreeStream(Tke_FreeStream); + config->SetTke_FreeStreamND(Tke_FreeStreamND); + + config->SetOmega_FreeStream(Omega_FreeStream); config->SetOmega_FreeStreamND(Omega_FreeStreamND); /*--- Initialize the dimensionless Fluid Model that will be used to solve the dimensionless problem ---*/ diff --git a/SU2_CFD/src/solvers/CNEMONSSolver.cpp b/SU2_CFD/src/solvers/CNEMONSSolver.cpp index 01d63385739..227b2a5ae80 100644 --- a/SU2_CFD/src/solvers/CNEMONSSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMONSSolver.cpp @@ -958,7 +958,7 @@ void CNEMONSSolver::BC_Smoluchowski_Maxwell(CGeometry *geometry, /*--- Compute wall shear stress (using the stress tensor) ---*/ su2double Tau[MAXNDIM][MAXNDIM] = {{0.0}}; - CNumerics::ComputeStressTensor(nDim, Tau, Grad_PrimVar+VEL_INDEX, Viscosity); + CNumerics::ComputeStressTensor(nDim, Tau, Grad_PrimVar+VEL_INDEX, Viscosity); // no need for TKE as it is on the wall su2double TauTangent[MAXNDIM] = {0.0}; GeometryToolbox::TangentProjection(nDim,Tau,UnitNormal,TauTangent); diff --git a/SU2_CFD/src/solvers/CNSSolver.cpp b/SU2_CFD/src/solvers/CNSSolver.cpp index fef4a352b2a..59c220495c4 100644 --- a/SU2_CFD/src/solvers/CNSSolver.cpp +++ b/SU2_CFD/src/solvers/CNSSolver.cpp @@ -133,7 +133,7 @@ unsigned long CNSSolver::SetPrimitive_Variables(CSolver **solver_container, cons unsigned long nonPhysicalPoints = 0; const TURB_MODEL turb_model = config->GetKind_Turb_Model(); - const bool tkeNeeded = (turb_model == TURB_MODEL::SST); + const bool tkeNeeded = (turb_model == TURB_MODEL::SST && !(config->GetSSTParsedOptions().modified)); AD::StartNoSharedReading(); @@ -795,6 +795,9 @@ void CNSSolver::SetTau_Wall_WF(CGeometry *geometry, CSolver **solver_container, const unsigned short max_iter = config->GetwallModel_MaxIter(); const su2double relax = config->GetwallModel_RelFac(); + const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST && !(config->GetSSTParsedOptions().modified)); + const auto* Node_Turb = (tkeNeeded) ? solver_container[TURB_SOL]->GetNodes() : nullptr; + /*--- Compute the recovery factor * use Molecular (Laminar) Prandtl number (see Nichols & Nelson, nomenclature ) ---*/ @@ -896,7 +899,9 @@ void CNSSolver::SetTau_Wall_WF(CGeometry *geometry, CSolver **solver_container, const su2double Lam_Visc_Wall = nodes->GetLaminarViscosity(iPoint); su2double Eddy_Visc_Wall = nodes->GetEddyViscosity(iPoint); - CNumerics::ComputeStressTensor(nDim, tau, nodes->GetVelocityGradient(iPoint), Lam_Visc_Wall); + su2double tke = 0.0; + if (tkeNeeded) tke = Node_Turb->GetSolution(iPoint, 0); + CNumerics::ComputeStressTensor(nDim, tau, nodes->GetVelocityGradient(iPoint), Lam_Visc_Wall, nodes->GetDensity(iPoint), tke); su2double TauTangent[MAXNDIM] = {0.0}; GeometryToolbox::TangentProjection(nDim, tau, UnitNormal, TauTangent); diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index 009910e91a2..7cda5cd6940 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -4047,6 +4047,7 @@ void CSolver::ComputeVertexTractions(CGeometry *geometry, const CConfig *config) if (viscous_flow) { const su2double Viscosity = base_nodes->GetLaminarViscosity(iPoint); su2double Tau[3][3]; + // Here I do not care for modified version of SST since TKE at wall is 0 CNumerics::ComputeStressTensor(nDim, Tau, base_nodes->GetVelocityGradient(iPoint), Viscosity); for (unsigned short iDim = 0; iDim < nDim; iDim++) { auxForce[iDim] += GeometryToolbox::DotProduct(nDim, Tau[iDim], Normal); diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index 0e3d1bf5ecf..77d6e08cab2 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -101,11 +101,13 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh constants[8] = constants[4]/constants[6] - constants[2]*0.41*0.41/sqrt(constants[6]); //alfa_1 constants[9] = constants[5]/constants[6] - constants[3]*0.41*0.41/sqrt(constants[6]); //alfa_2 constants[10] = 20.0; // production limiter constant + if (sstParsedOptions.prodLim) constants[10] = config->GetProdLimConst(); } else { /* SST-V2003 */ constants[8] = 5.0 / 9.0; //gamma_1 constants[9] = 0.44; //gamma_2 constants[10] = 10.0; // production limiter constant + if (sstParsedOptions.prodLim) constants[10] = config->GetProdLimConst(); } /*--- Far-field flow state quantities and initialization. ---*/ @@ -122,6 +124,15 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh su2double kine_Inf = 3.0/2.0*(VelMag2*Intensity*Intensity); su2double omega_Inf = rhoInf*kine_Inf/(muLamInf*viscRatio); + if (sstParsedOptions.newBC) { + omega_Inf = 10 * sqrt(VelMag2) / config->GetLDomain(); + kine_Inf = omega_Inf*(muLamInf*viscRatio)/rhoInf; + } else if (sstParsedOptions.sust) { + omega_Inf = 5*sqrt(VelMag2)/config->GetLength_Reynolds(); + /*--- not good ---*/ + kine_Inf = pow(10.0, -6) * VelMag2; /*--- Equals a freestream turbulence intensity of 0.08165%. This should be the default one, not hard-coding the freestream TI. ---*/ + } + Solution_Inf[0] = kine_Inf; Solution_Inf[1] = omega_Inf; @@ -240,7 +251,7 @@ void CTurbSSTSolver::Postprocessing(CGeometry *geometry, CSolver **solver_contai const su2double kine = nodes->GetSolution(iPoint,0); const su2double omega = nodes->GetSolution(iPoint,1); - const auto& eddy_visc_var = sstParsedOptions.version == SST_OPTIONS::V1994 ? VorticityMag : StrainMag; + const su2double eddy_visc_var = sstParsedOptions.version == SST_OPTIONS::V1994 ? VorticityMag : StrainMag; const su2double muT = max(0.0, rho * a1 * kine / max(a1 * omega, eddy_visc_var * F2)); nodes->SetmuT(iPoint, muT); @@ -377,6 +388,14 @@ void CTurbSSTSolver::Source_Residual(CGeometry *geometry, CSolver **solver_conta nodes->SetIntermittency(iPoint, numerics->GetIntermittencyEff()); } + su2double ProdDestr[5]; + ProdDestr[0] = numerics->GetProdDest(0); + ProdDestr[1] = numerics->GetProdDest(1); + ProdDestr[2] = numerics->GetProdDest(2); + ProdDestr[3] = numerics->GetProdDest(3); + ProdDestr[4] = numerics->GetProdDest(4); + nodes->SetProdDestr(iPoint, ProdDestr); + /*--- Subtract residual and the Jacobian ---*/ LinSysRes.SubtractBlock(iPoint, residual); @@ -468,7 +487,7 @@ void CTurbSSTSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_cont su2double beta_1 = constants[4]; su2double solution[MAXNVAR]; solution[0] = 0.0; - solution[1] = 60.0*laminar_viscosity/(density*beta_1*pow(wall_dist,2)); + solution[1] = min(60.0*laminar_viscosity/(density*beta_1*pow(wall_dist,2)), upperlimit[1]); /*--- Set the solution values and zero the residual ---*/ nodes->SetSolution_Old(iPoint,solution); @@ -621,8 +640,14 @@ void CTurbSSTSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, C const su2double viscRatio = Turb_Properties[1]; const su2double VelMag2 = GeometryToolbox::SquaredNorm(nDim, Velocity_Inlet); - Inlet_Vars[0] = 3.0 / 2.0 * (VelMag2 * pow(Intensity, 2)); - Inlet_Vars[1] = Density_Inlet * Inlet_Vars[0] / (Laminar_Viscosity_Inlet * viscRatio); + if (sstParsedOptions.newBC) { + Inlet_Vars[1] = 10 * sqrt(VelMag2) / config->GetLDomain(); + Inlet_Vars[0] = Inlet_Vars[1]*(Laminar_Viscosity_Inlet*viscRatio)/Density_Inlet; + } else { + Inlet_Vars[0] = 3.0 / 2.0 * (VelMag2 * pow(Intensity, 2)); + Inlet_Vars[1] = Density_Inlet * Inlet_Vars[0] / (Laminar_Viscosity_Inlet * viscRatio); + } + } /*--- Set the turbulent variable states. Use free-stream SST diff --git a/SU2_CFD/src/variables/CTurbSSTVariable.cpp b/SU2_CFD/src/variables/CTurbSSTVariable.cpp index d1fd98c8a14..6da5333bdfa 100644 --- a/SU2_CFD/src/variables/CTurbSSTVariable.cpp +++ b/SU2_CFD/src/variables/CTurbSSTVariable.cpp @@ -69,7 +69,9 @@ void CTurbSSTVariable::SetBlendingFunc(unsigned long iPoint, su2double val_visco for (unsigned long iDim = 0; iDim < nDim; iDim++) CDkw(iPoint) += Gradient(iPoint,0,iDim)*Gradient(iPoint,1,iDim); CDkw(iPoint) *= 2.0*val_density*sigma_om2/Solution(iPoint,1); - CDkw(iPoint) = max(CDkw(iPoint), pow(10.0, -prod_lim_const)); + su2double exponent = 20.0; + if (sstParsedOptions.version == SST_OPTIONS::V2003) exponent = 10.0; + CDkw(iPoint)= max(CDkw(iPoint), pow(10.0, -exponent)); /*--- F1 ---*/ diff --git a/SU2_CFD/src/variables/CTurbVariable.cpp b/SU2_CFD/src/variables/CTurbVariable.cpp index 46b686766a7..68083833de9 100644 --- a/SU2_CFD/src/variables/CTurbVariable.cpp +++ b/SU2_CFD/src/variables/CTurbVariable.cpp @@ -35,4 +35,12 @@ CTurbVariable::CTurbVariable(unsigned long npoint, unsigned long ndim, unsigned turb_index.resize(nPoint) = su2double(1.0); intermittency.resize(nPoint) = su2double(1.0); + if (TurbModelFamily(config->GetKind_Turb_Model()) == TURB_FAMILY::KW) { + Pk.resize(nPoint) = su2double(1.0); + Pw.resize(nPoint) = su2double(1.0); + Dk.resize(nPoint) = su2double(1.0); + Dw.resize(nPoint) = su2double(1.0); + PkLim.resize(nPoint) = su2double(1.0); + } + } diff --git a/TestCases/Tutorials/design/Inc_Turbulent_Bend_Wallfunctions/optim.csv.ref b/TestCases/Tutorials/design/Inc_Turbulent_Bend_Wallfunctions/optim.csv.ref index fb3d04a9bb4..2423dbf6598 100644 --- a/TestCases/Tutorials/design/Inc_Turbulent_Bend_Wallfunctions/optim.csv.ref +++ b/TestCases/Tutorials/design/Inc_Turbulent_Bend_Wallfunctions/optim.csv.ref @@ -1,2 +1,2 @@ ITER, avg_dp -1, 63.82289754521027 +1, 64.90301114659223 diff --git a/TestCases/cont_adj_euler/naca0012/of_grad_cd_disc.dat.ref b/TestCases/cont_adj_euler/naca0012/of_grad_cd_disc.dat.ref index 6da6f45e3ee..43f74e02a63 100644 --- a/TestCases/cont_adj_euler/naca0012/of_grad_cd_disc.dat.ref +++ b/TestCases/cont_adj_euler/naca0012/of_grad_cd_disc.dat.ref @@ -1,39 +1,39 @@ VARIABLES="VARIABLE" , "GRADIENT" , "FINDIFF_STEP" - 0 , -2656.0 , 0.001 - 1 , -7290.69 , 0.001 - 2 , -11252.7 , 0.001 - 3 , -12531.4 , 0.001 - 4 , -10923.7 , 0.001 - 5 , -6826.86 , 0.001 - 6 , -843.71 , 0.001 - 7 , 6462.74 , 0.001 - 8 , 14656.3 , 0.001 - 9 , 23308.0 , 0.001 - 10 , 31688.2 , 0.001 - 11 , 38407.2 , 0.001 - 12 , 41274.9 , 0.001 - 13 , 37812.2 , 0.001 - 14 , 27093.1 , 0.001 - 15 , 14049.9 , 0.001 - 16 , 17583.8 , 0.001 - 17 , 78620.8 , 0.001 - 18 , 140614.0 , 0.001 - 19 , -18263.2 , 0.001 - 20 , -20877.9 , 0.001 - 21 , -22859.6 , 0.001 - 22 , -24751.5 , 0.001 - 23 , -28392.5 , 0.001 - 24 , -35514.1 , 0.001 - 25 , -46855.4 , 0.001 - 26 , -61697.7 , 0.001 - 27 , -77631.1 , 0.001 - 28 , -90537.8 , 0.001 - 29 , -95036.8 , 0.001 - 30 , -85899.0 , 0.001 - 31 , -60885.3 , 0.001 - 32 , -24333.4 , 0.001 - 33 , 12334.3 , 0.001 - 34 , 39948.1 , 0.001 - 35 , 65452.2 , 0.001 - 36 , 82215.8 , 0.001 - 37 , -44066.2 , 0.001 + 0 , 292.459 , 0.001 + 1 , -8318.5 , 0.001 + 2 , -16158.4 , 0.001 + 3 , -21277.2 , 0.001 + 4 , -23366.9 , 0.001 + 5 , -22727.6 , 0.001 + 6 , -19872.3 , 0.001 + 7 , -15278.1 , 0.001 + 8 , -9283.99 , 0.001 + 9 , -2179.87 , 0.001 + 10 , 5520.63 , 0.001 + 11 , 12726.0 , 0.001 + 12 , 17538.0 , 0.001 + 13 , 17441.1 , 0.001 + 14 , 10335.6 , 0.001 + 15 , -2686.37 , 0.001 + 16 , -10522.5 , 0.001 + 17 , 24712.2 , 0.001 + 18 , 166438.0 , 0.001 + 19 , -15618.6 , 0.001 + 20 , -14178.7 , 0.001 + 21 , -12765.5 , 0.001 + 22 , -12007.2 , 0.001 + 23 , -13597.5 , 0.001 + 24 , -19002.9 , 0.001 + 25 , -28729.6 , 0.001 + 26 , -41946.6 , 0.001 + 27 , -56289.3 , 0.001 + 28 , -67832.1 , 0.001 + 29 , -71484.0 , 0.001 + 30 , -62334.5 , 0.001 + 31 , -38478.2 , 0.001 + 32 , -4757.34 , 0.001 + 33 , 26448.5 , 0.001 + 34 , 45049.5 , 0.001 + 35 , 60960.9 , 0.001 + 36 , 83515.9 , 0.001 + 37 , 8837.4 , 0.001 diff --git a/TestCases/cont_adj_euler/naca0012/of_grad_directdiff.dat.ref b/TestCases/cont_adj_euler/naca0012/of_grad_directdiff.dat.ref index 1b4c963eeac..2d6e1511983 100644 --- a/TestCases/cont_adj_euler/naca0012/of_grad_directdiff.dat.ref +++ b/TestCases/cont_adj_euler/naca0012/of_grad_directdiff.dat.ref @@ -1,4 +1,4 @@ VARIABLES="VARIABLE" , "DRAG" , "EFFICIENCY" , "FORCE_X" , "FORCE_Y" , "FORCE_Z" , "LIFT" , "MOMENT_X" , "MOMENT_Y" , "MOMENT_Z" , "SIDEFORCE" - 0 , 0.2405003164 , -108.3397202 , 0.2752804375 , -1.591326829 , 0.0 , -1.596953347 , 0.0 , 0.0 , 1.18511582 , 0.0 - 1 , 0.4163088272 , -176.5661566 , 0.4692829784 , -2.423229574 , 0.0 , -2.432890265 , 0.0 , 0.0 , 1.020271816 , 0.0 - 2 , 0.5558397416 , -231.7769399 , 0.6239540061 , -3.115569035 , 0.0 , -3.128439099 , 0.0 , 0.0 , 0.6093229584 , 0.0 + 0 , 0.24008251 , -117.3444057 , 0.2742430499 , -1.56293638 , 0.0 , -1.568547024 , 0.0 , 0.0 , 1.189018284 , 0.0 + 1 , 0.4064005433 , -189.77779 , 0.4586830911 , -2.391641926 , 0.0 , -2.401078899 , 0.0 , 0.0 , 1.030793484 , 0.0 + 2 , 0.5421052294 , -249.5397676 , 0.6095878335 , -3.086770277 , 0.0 , -3.099333798 , 0.0 , 0.0 , 0.6218682473 , 0.0 diff --git a/TestCases/cont_adj_euler/wedge/of_grad_combo.dat.ref b/TestCases/cont_adj_euler/wedge/of_grad_combo.dat.ref index 8ef5d9598b7..eca2a7ba183 100644 --- a/TestCases/cont_adj_euler/wedge/of_grad_combo.dat.ref +++ b/TestCases/cont_adj_euler/wedge/of_grad_combo.dat.ref @@ -1,5 +1,5 @@ VARIABLES="VARIABLE" , "GRADIENT" , "FINDIFF_STEP" - 0 , 0.00770904 , 0.0001 - 1 , 0.00500468 , 0.0001 - 2 , 0.00247269 , 0.0001 - 3 , 0.000899035 , 0.0001 + 0 , 0.00765473 , 0.0001 + 1 , 0.00497838 , 0.0001 + 2 , 0.0024697 , 0.0001 + 3 , 0.00090216 , 0.0001 diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index fa67b04a426..2864a83a6d8 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -51,7 +51,7 @@ def main(): channel.cfg_dir = "euler/channel" channel.cfg_file = "inv_channel_RK.cfg" channel.test_iter = 20 - channel.test_vals = [-2.965605, 2.459083, 0.016007, 0.042277] + channel.test_vals = [-2.965642, 2.459171, 0.016012, 0.042270] test_list.append(channel) # NACA0012 @@ -59,7 +59,7 @@ def main(): naca0012.cfg_dir = "euler/naca0012" naca0012.cfg_file = "inv_NACA0012_Roe.cfg" naca0012.test_iter = 20 - naca0012.test_vals = [-4.431337, -3.970066, 0.319205, 0.022299] + naca0012.test_vals = [-4.766168, -4.287699, 0.326688, 0.022661] test_list.append(naca0012) # Supersonic wedge @@ -67,7 +67,7 @@ def main(): wedge.cfg_dir = "euler/wedge" wedge.cfg_file = "inv_wedge_HLLC.cfg" wedge.test_iter = 20 - wedge.test_vals = [-1.368091, 4.302736, -0.243433, 0.042906] + wedge.test_vals = [-1.379426, 4.288828, -0.245341, 0.043244] test_list.append(wedge) # ONERA M6 Wing @@ -83,7 +83,7 @@ def main(): fixedCL_naca0012.cfg_dir = "fixed_cl/naca0012" fixedCL_naca0012.cfg_file = "inv_NACA0012.cfg" fixedCL_naca0012.test_iter = 10 - fixedCL_naca0012.test_vals = [-3.905038, 1.628019, 0.301067, 0.019483] + fixedCL_naca0012.test_vals = [-3.896832, 1.637749, 0.301084, 0.019485] test_list.append(fixedCL_naca0012) # HYPERSONIC FLOW PAST BLUNT BODY @@ -91,7 +91,7 @@ def main(): bluntbody.cfg_dir = "euler/bluntbody" bluntbody.cfg_file = "blunt.cfg" bluntbody.test_iter = 20 - bluntbody.test_vals = [0.491773, 6.855541, 0.000298, 1.791791] + bluntbody.test_vals = [0.475463, 6.835018, 0.000226, 1.784354] test_list.append(bluntbody) ########################## @@ -103,7 +103,7 @@ def main(): flatplate.cfg_dir = "navierstokes/flatplate" flatplate.cfg_file = "lam_flatplate.cfg" flatplate.test_iter = 100 - flatplate.test_vals = [-7.679131, -2.206953, 0.001084, 0.036233, 2.361500, -2.325300, 0, 0] + flatplate.test_vals = [-7.680034, -2.207912, 0.001084, 0.036233, 2.361500, -2.325300, 0.000000, 0.000000] test_list.append(flatplate) # Laminar cylinder (steady) @@ -136,7 +136,7 @@ def main(): poiseuille_profile.cfg_dir = "navierstokes/poiseuille" poiseuille_profile.cfg_file = "profile_poiseuille.cfg" poiseuille_profile.test_iter = 10 - poiseuille_profile.test_vals = [-12.008990, -7.262477, -0.000000, 2.089953] + poiseuille_profile.test_vals = [-12.009016, -7.262446, -0.000000, 2.089953] poiseuille_profile.test_vals_aarch64 = [-12.494717, -7.711274, -0.000000, 2.085796] test_list.append(poiseuille_profile) @@ -181,7 +181,7 @@ def main(): turb_flatplate.cfg_dir = "rans/flatplate" turb_flatplate.cfg_file = "turb_SA_flatplate.cfg" turb_flatplate.test_iter = 20 - turb_flatplate.test_vals = [-4.312725, -6.737976, -0.187467, 0.057468] + turb_flatplate.test_vals = [-4.316134, -6.737979, -0.187461, 0.057468] test_list.append(turb_flatplate) # ONERA M6 Wing @@ -189,7 +189,7 @@ def main(): turb_oneram6.cfg_dir = "rans/oneram6" turb_oneram6.cfg_file = "turb_ONERAM6.cfg" turb_oneram6.test_iter = 10 - turb_oneram6.test_vals = [-2.408523, -6.662833, 0.238333, 0.158910, 0] + turb_oneram6.test_vals = [-2.408675, -6.662904, 0.238578, 0.158968, 0.000000] test_list.append(turb_oneram6) # NACA0012 (SA, FUN3D finest grid results: CL=1.0983, CD=0.01242) @@ -230,7 +230,7 @@ def main(): turb_naca0012_sst_expliciteuler.cfg_dir = "rans/naca0012" turb_naca0012_sst_expliciteuler.cfg_file = "turb_NACA0012_sst_expliciteuler.cfg" turb_naca0012_sst_expliciteuler.test_iter = 10 - turb_naca0012_sst_expliciteuler.test_vals = [-3.533765, -3.157766, 3.364026, 1.124760, 0.501702, -float("inf")] + turb_naca0012_sst_expliciteuler.test_vals = [-3.533765, -3.157766, 3.364026, 1.124757, 0.501700, -float("inf")] test_list.append(turb_naca0012_sst_expliciteuler) # PROPELLER @@ -250,7 +250,7 @@ def main(): axi_rans_air_nozzle_restart.cfg_dir = "axisymmetric_rans/air_nozzle" axi_rans_air_nozzle_restart.cfg_file = "air_nozzle_restart.cfg" axi_rans_air_nozzle_restart.test_iter = 10 - axi_rans_air_nozzle_restart.test_vals = [-12.065572, -6.837646, -8.883745, -3.822957, 0.000000] + axi_rans_air_nozzle_restart.test_vals = [-12.065954, -6.836372, -8.889803, -3.832665, 0.000000] test_list.append(axi_rans_air_nozzle_restart) ################################# @@ -263,7 +263,7 @@ def main(): turb_naca0012_sst_restart_mg.cfg_file = "turb_NACA0012_sst_multigrid_restart.cfg" turb_naca0012_sst_restart_mg.test_iter = 20 turb_naca0012_sst_restart_mg.ntest_vals = 5 - turb_naca0012_sst_restart_mg.test_vals = [-7.633090, -7.182014, -0.627166, -0.000020, 0.078737] + turb_naca0012_sst_restart_mg.test_vals = [-7.633091, -7.181942, -0.627082, -0.000020, 0.078737] test_list.append(turb_naca0012_sst_restart_mg) ############################# @@ -324,7 +324,7 @@ def main(): harmonic_balance.cfg_dir = "harmonic_balance" harmonic_balance.cfg_file = "HB.cfg" harmonic_balance.test_iter = 25 - harmonic_balance.test_vals = [-1.554985, 0.831796, 0.935728, 3.960209] + harmonic_balance.test_vals = [-1.556681, 0.840664, 0.943816, 3.957040] test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil @@ -332,7 +332,7 @@ def main(): hb_rans_preconditioning.cfg_dir = "harmonic_balance/hb_rans_preconditioning" hb_rans_preconditioning.cfg_file = "davis.cfg" hb_rans_preconditioning.test_iter = 25 - hb_rans_preconditioning.test_vals = [-1.902111, 0.484080, 0.601469, 3.608991, -5.949373] + hb_rans_preconditioning.test_vals = [-1.902111, 0.484080, 0.601469, 3.608991, -5.949369] test_list.append(hb_rans_preconditioning) ############################# @@ -344,7 +344,7 @@ def main(): inc_euler_naca0012.cfg_dir = "incomp_euler/naca0012" inc_euler_naca0012.cfg_file = "incomp_NACA0012.cfg" inc_euler_naca0012.test_iter = 20 - inc_euler_naca0012.test_vals = [-7.104363, -6.354829, 0.531976, 0.008467] + inc_euler_naca0012.test_vals = [-7.127256, -6.466554, 0.531991, 0.008466] test_list.append(inc_euler_naca0012) # C-D nozzle with pressure inlet and mass flow outlet @@ -352,7 +352,7 @@ def main(): inc_nozzle.cfg_dir = "incomp_euler/nozzle" inc_nozzle.cfg_file = "inv_nozzle.cfg" inc_nozzle.test_iter = 20 - inc_nozzle.test_vals = [-6.363748, -5.564772, -0.003840, 0.126592] + inc_nozzle.test_vals = [-6.595923, -5.820518, -0.018365, 0.126411] inc_nozzle.test_vals_aarch64 = [-5.624385, -4.988472, -0.000096, 0.137032] test_list.append(inc_nozzle) @@ -390,7 +390,7 @@ def main(): inc_lam_bend.cfg_dir = "incomp_navierstokes/bend" inc_lam_bend.cfg_file = "lam_bend.cfg" inc_lam_bend.test_iter = 10 - inc_lam_bend.test_vals = [-3.547250, -3.225803, -0.015148, 1.006543] + inc_lam_bend.test_vals = [-3.560185, -3.051988, -0.013972, 1.102842] inc_lam_bend.test_vals_aarch64 = [-3.437996, -3.086188, -0.015600, 1.142213] test_list.append(inc_lam_bend) @@ -462,7 +462,7 @@ def main(): sine_gust.cfg_dir = "gust" sine_gust.cfg_file = "inv_gust_NACA0012.cfg" sine_gust.test_iter = 5 - sine_gust.test_vals = [-1.977514, 3.481817, -0.010400, -0.008115] + sine_gust.test_vals = [-1.977498, 3.481833, -0.014435, -0.007579] sine_gust.unsteady = True test_list.append(sine_gust) @@ -471,7 +471,7 @@ def main(): cosine_gust.cfg_dir = "gust" cosine_gust.cfg_file = "cosine_gust_zdir.cfg" cosine_gust.test_iter = 79 - cosine_gust.test_vals = [-2.418806, 0.001963, -0.001264, 0.000415, -0.000592] + cosine_gust.test_vals = [-2.418805, 0.003170, -0.001251, 0.000505, -0.000592] cosine_gust.unsteady = True cosine_gust.enabled_with_tsan = False test_list.append(cosine_gust) @@ -481,7 +481,7 @@ def main(): gust_mesh_defo.cfg_dir = "gust" gust_mesh_defo.cfg_file = "gust_with_mesh_deformation.cfg" gust_mesh_defo.test_iter = 6 - gust_mesh_defo.test_vals = [-1.844761, 0.001116, -0.000265] + gust_mesh_defo.test_vals = [-1.844761, 0.001539, -0.000363] gust_mesh_defo.unsteady = True gust_mesh_defo.enabled_with_tsan = False test_list.append(gust_mesh_defo) @@ -491,7 +491,7 @@ def main(): aeroelastic.cfg_dir = "aeroelastic" aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" aeroelastic.test_iter = 2 - aeroelastic.test_vals = [0.074058, 0.027628, -0.001641, -0.000128] + aeroelastic.test_vals = [0.074193, 0.027644, -0.001641, -0.000128] aeroelastic.test_vals_aarch64 = [0.074170, 0.027590, -0.001579, -0.000160] aeroelastic.unsteady = True aeroelastic.enabled_on_cpu_arch = ["x86_64"] # Requires AVX-capable architecture @@ -503,7 +503,7 @@ def main(): ddes_flatplate.cfg_dir = "ddes/flatplate" ddes_flatplate.cfg_file = "ddes_flatplate.cfg" ddes_flatplate.test_iter = 10 - ddes_flatplate.test_vals = [-2.714786, -5.882652, -0.215041, 0.023758, 0] + ddes_flatplate.test_vals = [-2.714713, -5.788302, -0.214960, 0.023758, 0.000000] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) @@ -512,7 +512,7 @@ def main(): unst_inc_turb_naca0015_sa.cfg_dir = "unsteady/pitching_naca0015_rans_inc" unst_inc_turb_naca0015_sa.cfg_file = "config_incomp_turb_sa.cfg" unst_inc_turb_naca0015_sa.test_iter = 1 - unst_inc_turb_naca0015_sa.test_vals = [-3.008629, -6.888963, 1.435186, 0.433529] + unst_inc_turb_naca0015_sa.test_vals = [-3.008629, -6.888996, 1.435193, 0.433537] unst_inc_turb_naca0015_sa.unsteady = True test_list.append(unst_inc_turb_naca0015_sa) @@ -521,7 +521,7 @@ def main(): unst_deforming_naca0012.cfg_dir = "disc_adj_euler/naca0012_pitching_def" unst_deforming_naca0012.cfg_file = "inv_NACA0012_pitching_deform.cfg" unst_deforming_naca0012.test_iter = 5 - unst_deforming_naca0012.test_vals = [-3.665202, -3.793253, -3.716498, -3.148334] + unst_deforming_naca0012.test_vals = [-3.665128, -3.793113, -3.716416, -3.148226] unst_deforming_naca0012.unsteady = True unst_deforming_naca0012.enabled_with_tsan = False test_list.append(unst_deforming_naca0012) @@ -535,7 +535,7 @@ def main(): edge_VW.cfg_dir = "nicf/edge" edge_VW.cfg_file = "edge_VW.cfg" edge_VW.test_iter = 40 - edge_VW.test_vals = [-5.759815, 0.398128, -0.000009, 0.000000] + edge_VW.test_vals = [-5.681149, 0.463233, -0.000009, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR @@ -543,7 +543,7 @@ def main(): edge_PPR.cfg_dir = "nicf/edge" edge_PPR.cfg_file = "edge_PPR.cfg" edge_PPR.test_iter = 40 - edge_PPR.test_vals = [-6.923001, -0.757902, -0.000034, 0.000000] + edge_PPR.test_vals = [-7.139177, -0.980792, -0.000034, 0.000000] edge_PPR.test_vals_aarch64 = [-8.573595, -2.391849, -0.000034, 0.000000] test_list.append(edge_PPR) @@ -595,7 +595,7 @@ def main(): uniform_flow.cfg_dir = "sliding_interface/uniform_flow" uniform_flow.cfg_file = "uniform_NN.cfg" uniform_flow.test_iter = 5 - uniform_flow.test_vals = [5.000000, 0.000000, -0.186037, -10.624438] + uniform_flow.test_vals = [5.000000, 0.000000, -0.193989, -10.624446] uniform_flow.unsteady = True uniform_flow.multizone = True test_list.append(uniform_flow) @@ -605,7 +605,7 @@ def main(): channel_2D.cfg_dir = "sliding_interface/channel_2D" channel_2D.cfg_file = "channel_2D_WA.cfg" channel_2D.test_iter = 2 - channel_2D.test_vals = [2.000000, 0.000000, 0.417392, 0.350483, 0.401514] + channel_2D.test_vals = [2.000000, 0.000000, 0.397967, 0.351400, 0.405709] channel_2D.unsteady = True channel_2D.multizone = True test_list.append(channel_2D) @@ -615,7 +615,7 @@ def main(): channel_3D.cfg_dir = "sliding_interface/channel_3D" channel_3D.cfg_file = "channel_3D_WA.cfg" channel_3D.test_iter = 2 - channel_3D.test_vals = [2.000000, 0.000000, 0.622653, 0.506145, 0.410984] + channel_3D.test_vals = [2.000000, 0.000000, 0.629106, 0.524901, 0.422380] channel_3D.test_vals_aarch64 = [2.000000, 0.000000, 0.620558, 0.504323, 0.412729] channel_3D.unsteady = True channel_3D.multizone = True @@ -627,7 +627,7 @@ def main(): pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 - pipe.test_vals = [0.121511, 0.477625, 0.641343, 0.983342, 1.018866] + pipe.test_vals = [0.058776, 0.451124, 0.554843, 0.973242, 1.013952] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) @@ -637,7 +637,7 @@ def main(): rotating_cylinders.cfg_dir = "sliding_interface/rotating_cylinders" rotating_cylinders.cfg_file = "rot_cylinders_WA.cfg" rotating_cylinders.test_iter = 3 - rotating_cylinders.test_vals = [3.000000, 0.000000, 0.719776, 1.111045, 1.154066] + rotating_cylinders.test_vals = [3.000000, 0.000000, 0.718819, 1.111416, 1.154850] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) @@ -647,7 +647,7 @@ def main(): supersonic_vortex_shedding.cfg_dir = "sliding_interface/supersonic_vortex_shedding" supersonic_vortex_shedding.cfg_file = "sup_vor_shed_WA.cfg" supersonic_vortex_shedding.test_iter = 5 - supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.206774, 1.053443] + supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.199633, 1.050808] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) @@ -698,7 +698,7 @@ def main(): fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" fsi2d.cfg_file = "configFSI.cfg" fsi2d.test_iter = 4 - fsi2d.test_vals = [4.000000, 0.000000, -3.726064, -4.277803] + fsi2d.test_vals = [4.000000, 0.000000, -3.725534, -4.279000] fsi2d.multizone= True fsi2d.unsteady = True fsi2d.enabled_with_tsan = False @@ -709,7 +709,7 @@ def main(): dyn_fsi.cfg_dir = "fea_fsi/dyn_fsi" dyn_fsi.cfg_file = "config.cfg" dyn_fsi.test_iter = 4 - dyn_fsi.test_vals = [-4.330905, -4.153024, 0.000000, 103.000000] + dyn_fsi.test_vals = [-4.328789, -4.153166, 0.000000, 102.000000] dyn_fsi.test_vals_aarch64 = [-4.332167, -4.057742, 0.000000, 102.000000] dyn_fsi.multizone = True dyn_fsi.unsteady = True @@ -720,7 +720,7 @@ def main(): stat_fsi_restart.cfg_dir = "fea_fsi/stat_fsi" stat_fsi_restart.cfg_file = "config_restart.cfg" stat_fsi_restart.test_iter = 1 - stat_fsi_restart.test_vals = [-3.468782, -4.271197, 0.000000, 36.000000] + stat_fsi_restart.test_vals = [-3.549586, -4.460650, 0.000000, 35.000000] stat_fsi_restart.test_vals_aarch64 = [-3.442878, -4.228058, 0.000000, 37.000000] stat_fsi_restart.multizone = True test_list.append(stat_fsi_restart) diff --git a/TestCases/hybrid_regression_AD.py b/TestCases/hybrid_regression_AD.py index 7350e0afdd2..ff6debc0304 100644 --- a/TestCases/hybrid_regression_AD.py +++ b/TestCases/hybrid_regression_AD.py @@ -50,7 +50,7 @@ def main(): discadj_naca0012.cfg_dir = "cont_adj_euler/naca0012" discadj_naca0012.cfg_file = "inv_NACA0012_discadj.cfg" discadj_naca0012.test_iter = 100 - discadj_naca0012.test_vals = [-3.560691, -8.925239, -0.000000, 0.005559] + discadj_naca0012.test_vals = [-3.562611, -8.932638, -0.000000, 0.005608] test_list.append(discadj_naca0012) # Inviscid Cylinder 3D (multiple markers) @@ -58,7 +58,7 @@ def main(): discadj_cylinder3D.cfg_dir = "disc_adj_euler/cylinder3D" discadj_cylinder3D.cfg_file = "inv_cylinder3D.cfg" discadj_cylinder3D.test_iter = 5 - discadj_cylinder3D.test_vals = [-3.773755, -3.737672, -0.000000, 0.000000] + discadj_cylinder3D.test_vals = [-3.689810, -3.883743, -0.000000, 0.000000] test_list.append(discadj_cylinder3D) # Arina nozzle 2D @@ -66,7 +66,7 @@ def main(): discadj_arina2k.cfg_dir = "disc_adj_euler/arina2k" discadj_arina2k.cfg_file = "Arina2KRS.cfg" discadj_arina2k.test_iter = 20 - discadj_arina2k.test_vals = [-3.534954, -3.773310, 0.027244, 0.000000] + discadj_arina2k.test_vals = [-3.254503, -3.495599, 0.052373, 0.000000] test_list.append(discadj_arina2k) #################################### @@ -98,7 +98,7 @@ def main(): discadj_incomp_NACA0012.cfg_dir = "disc_adj_incomp_euler/naca0012" discadj_incomp_NACA0012.cfg_file = "incomp_NACA0012_disc.cfg" discadj_incomp_NACA0012.test_iter = 20 - discadj_incomp_NACA0012.test_vals = [20.000000, -4.087948, -2.655204, 0.000000] + discadj_incomp_NACA0012.test_vals = [20.000000, -4.091640, -2.655563, 0.000000] test_list.append(discadj_incomp_NACA0012) ##################################### @@ -185,7 +185,7 @@ def main(): discadj_pitchingNACA0012.cfg_dir = "disc_adj_euler/naca0012_pitching" discadj_pitchingNACA0012.cfg_file = "inv_NACA0012_pitching.cfg" discadj_pitchingNACA0012.test_iter = 4 - discadj_pitchingNACA0012.test_vals = [-1.221198, -1.647772, -0.007510, 0.000013] + discadj_pitchingNACA0012.test_vals = [-1.218792, -1.645762, -0.007567, 0.000013] discadj_pitchingNACA0012.unsteady = True discadj_pitchingNACA0012.enabled_with_tsan = False test_list.append(discadj_pitchingNACA0012) @@ -253,7 +253,7 @@ def main(): pywrapper_CFD_AD_MeshDisp.cfg_dir = "py_wrapper/disc_adj_flow/mesh_disp_sens" pywrapper_CFD_AD_MeshDisp.cfg_file = "configAD_flow.cfg" pywrapper_CFD_AD_MeshDisp.test_iter = 1000 - pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.505480, 1.403813, 0.000000] + pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.496218, 1.441643, 0.000000] pywrapper_CFD_AD_MeshDisp.test_vals_aarch64 = [30.000000, -2.499079, 1.440068, 0.000000] pywrapper_CFD_AD_MeshDisp.command = TestCase.Command(exec = "python", param = "run_adjoint.py --parallel -f") pywrapper_CFD_AD_MeshDisp.timeout = 1600 diff --git a/TestCases/multiple_ffd/naca0012/of_grad_cd.dat.ref b/TestCases/multiple_ffd/naca0012/of_grad_cd.dat.ref index 8ece51e1c66..3c7f554fd5d 100644 --- a/TestCases/multiple_ffd/naca0012/of_grad_cd.dat.ref +++ b/TestCases/multiple_ffd/naca0012/of_grad_cd.dat.ref @@ -1,3 +1,3 @@ VARIABLES="VARIABLE" , "GRADIENT" , "FINDIFF_STEP" - 0 , 0.0779077 , 0.001 - 1 , -0.115995 , 0.001 + 0 , 0.0790825 , 0.001 + 1 , -0.112974 , 0.001 diff --git a/TestCases/multiple_ffd/naca0012/of_grad_directdiff.dat.ref b/TestCases/multiple_ffd/naca0012/of_grad_directdiff.dat.ref index d5db7c2a840..6ec22d9664a 100644 --- a/TestCases/multiple_ffd/naca0012/of_grad_directdiff.dat.ref +++ b/TestCases/multiple_ffd/naca0012/of_grad_directdiff.dat.ref @@ -1,3 +1,3 @@ VARIABLES="VARIABLE" , "DRAG" , "EFFICIENCY" , "FORCE_X" , "FORCE_Y" , "FORCE_Z" , "LIFT" , "MOMENT_X" , "MOMENT_Y" , "MOMENT_Z" , "SIDEFORCE" - 0 , 0.06156331034 , -0.6082822997 , 0.05895593271 , 0.1201660031 , 0.0 , 0.11885129 , 0.0 , 0.0 , 0.009672466384 , 0.0 - 1 , -0.08521017525 , 8.292100787 , -0.09081780606 , 0.2560645458 , 0.0 , 0.2579847894 , 0.0 , 0.0 , 0.004373844484 , 0.0 + 0 , 0.05922508178 , -0.6082054907 , 0.05650610011 , 0.1252552372 , 0.0 , 0.1239927558 , 0.0 , 0.0 , 0.00502894879 , 0.0 + 1 , -0.07750209216 , 8.684127966 , -0.08326907905 , 0.2634518171 , 0.0 , 0.2652056281 , 0.0 , 0.0 , -0.006643227386 , 0.0 diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index d5e6ec2bf54..30e1a12c4eb 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -47,7 +47,7 @@ def main(): cfd_flamelet_ch4.cfg_dir = "flamelet/01_laminar_premixed_ch4_flame_cfd" cfd_flamelet_ch4.cfg_file = "lam_prem_ch4_cfd.cfg" cfd_flamelet_ch4.test_iter = 10 - cfd_flamelet_ch4.test_vals = [-13.665072, -12.593885, -14.249600, -6.069756, -14.816937, -17.057821] + cfd_flamelet_ch4.test_vals = [-14.297190, -12.593356, -14.249342, -6.069757, -14.816955, -17.057821] cfd_flamelet_ch4.new_output = True test_list.append(cfd_flamelet_ch4) @@ -56,7 +56,7 @@ def main(): cfd_flamelet_ch4_axi.cfg_dir = "flamelet/05_laminar_premixed_ch4_flame_cfd_axi" cfd_flamelet_ch4_axi.cfg_file = "lam_prem_ch4_cfd_axi.cfg" cfd_flamelet_ch4_axi.test_iter = 10 - cfd_flamelet_ch4_axi.test_vals = [-10.935396, -11.476692, -11.302574, -12.734435, -6.110559] + cfd_flamelet_ch4_axi.test_vals = [-10.935482, -11.477701, -11.302709, -12.734435, -6.110542] cfd_flamelet_ch4_axi.new_output = True test_list.append(cfd_flamelet_ch4_axi) @@ -65,7 +65,7 @@ def main(): cfd_flamelet_ch4_partial_premix.cfg_dir = "flamelet/06_laminar_partial_premixed_ch4_flame_cfd" cfd_flamelet_ch4_partial_premix.cfg_file = "lam_partial_prem_ch4_cfd.cfg" cfd_flamelet_ch4_partial_premix.test_iter = 10 - cfd_flamelet_ch4_partial_premix.test_vals = [-9.641526, -11.303947, -3.675920, -13.158386, -11.087893] + cfd_flamelet_ch4_partial_premix.test_vals = [-9.645814, -11.304194, -3.675580, -13.158500, -11.087904] cfd_flamelet_ch4_partial_premix.new_output = True test_list.append(cfd_flamelet_ch4_partial_premix) @@ -74,7 +74,7 @@ def main(): cfd_flamelet_h2.cfg_dir = "flamelet/07_laminar_premixed_h2_flame_cfd" cfd_flamelet_h2.cfg_file = "laminar_premixed_h2_flame_cfd.cfg" cfd_flamelet_h2.test_iter = 5 - cfd_flamelet_h2.test_vals = [-9.999540, -9.843936, -3.290033, -11.338454] + cfd_flamelet_h2.test_vals = [-10.006096, -9.844001, -3.290043, -11.338465] cfd_flamelet_h2.new_output = True test_list.append(cfd_flamelet_h2) @@ -175,7 +175,7 @@ def main(): visc_cone.cfg_dir = "nonequilibrium/visc_wedge" visc_cone.cfg_file = "axi_visccone.cfg" visc_cone.test_iter = 10 - visc_cone.test_vals = [-5.222270, -5.746525, -20.560273, -20.510152, -20.409102, 1.255757, -3.208382, -0.016014, 0.093462, 32619.000000] + visc_cone.test_vals = [-5.222270, -5.746525, -20.560278, -20.510152, -20.409102, 1.255758, -3.208382, -0.016014, 0.093462, 32619.000000] visc_cone.test_vals_aarch64 = [-5.222267, -5.746523, -20.560279, -20.510152, -20.409102, 1.255758, -3.208380, -0.016014, 0.093462, 32633.000000] test_list.append(visc_cone) @@ -220,7 +220,7 @@ def main(): channel.cfg_dir = "euler/channel" channel.cfg_file = "inv_channel_RK.cfg" channel.test_iter = 20 - channel.test_vals = [-2.904385, 2.536048, 0.020906, 0.042348] + channel.test_vals = [-2.904401, 2.536139, 0.020924, 0.042340] test_list.append(channel) # NACA0012 @@ -228,7 +228,7 @@ def main(): naca0012.cfg_dir = "euler/naca0012" naca0012.cfg_file = "inv_NACA0012_Roe.cfg" naca0012.test_iter = 20 - naca0012.test_vals = [-4.319811, -3.867353, 0.321947, 0.022489] + naca0012.test_vals = [-4.607257, -4.138750, 0.327682, 0.022685] test_list.append(naca0012) # Supersonic wedge @@ -236,7 +236,7 @@ def main(): wedge.cfg_dir = "euler/wedge" wedge.cfg_file = "inv_wedge_HLLC.cfg" wedge.test_iter = 20 - wedge.test_vals = [-1.377543, 4.293870, -0.243566, 0.042930] + wedge.test_vals = [-1.387215, 4.281574, -0.245443, 0.043264] test_list.append(wedge) # ONERA M6 Wing @@ -244,7 +244,7 @@ def main(): oneram6.cfg_dir = "euler/oneram6" oneram6.cfg_file = "inv_ONERAM6.cfg" oneram6.test_iter = 10 - oneram6.test_vals = [-11.512364, -10.982009, 0.280800, 0.008623] + oneram6.test_vals = [-11.500303, -10.971884, 0.280800, 0.008623] oneram6.timeout = 3200 test_list.append(oneram6) @@ -253,7 +253,7 @@ def main(): fixedCL_naca0012.cfg_dir = "fixed_cl/naca0012" fixedCL_naca0012.cfg_file = "inv_NACA0012.cfg" fixedCL_naca0012.test_iter = 10 - fixedCL_naca0012.test_vals = [-3.856871, 1.676974, 0.301113, 0.019487] + fixedCL_naca0012.test_vals = [-3.840915, 1.693979, 0.301144, 0.019489] test_list.append(fixedCL_naca0012) # Polar sweep of the inviscid NACA0012 @@ -262,7 +262,7 @@ def main(): polar_naca0012.cfg_file = "inv_NACA0012.cfg" polar_naca0012.polar = True polar_naca0012.test_iter = 10 - polar_naca0012.test_vals = [-1.086730, 4.382703, 0.001762, 0.033013] + polar_naca0012.test_vals = [-1.096894, 4.372054, 0.002074, 0.031515] polar_naca0012.test_vals_aarch64 = [-1.083394, 4.386134, 0.001588, 0.033513] polar_naca0012.command = TestCase.Command(exec = "compute_polar.py", param = "-i 11") # flaky test on arm64 @@ -274,7 +274,7 @@ def main(): bluntbody.cfg_dir = "euler/bluntbody" bluntbody.cfg_file = "blunt.cfg" bluntbody.test_iter = 20 - bluntbody.test_vals = [0.493672, 6.857839, -0.000002, 1.791404] + bluntbody.test_vals = [0.475144, 6.834602, -0.000007, 1.783980] test_list.append(bluntbody) # Equivalent area NACA64-206 @@ -282,7 +282,7 @@ def main(): ea_naca64206.cfg_dir = "optimization_euler/equivalentarea_naca64206" ea_naca64206.cfg_file = "NACA64206.cfg" ea_naca64206.test_iter = 10 - ea_naca64206.test_vals = [-1.188459, -0.522783, -0.003147, 67775.000000] + ea_naca64206.test_vals = [-1.125893, -0.474056, -0.002414, 67775.000000] test_list.append(ea_naca64206) # SUPERSONIC FLOW PAST A RAMP IN A CHANNEL @@ -290,7 +290,7 @@ def main(): ramp.cfg_dir = "euler/ramp" ramp.cfg_file = "inv_ramp.cfg" ramp.test_iter = 10 - ramp.test_vals = [-13.648694, -8.010920, -0.076277, 0.054839] + ramp.test_vals = [-13.650727, -8.014514, -0.076277, 0.054839] ramp.test_vals_aarch64 = [-13.398422, -7.786461, -0.081064, 0.056474] test_list.append(ramp) @@ -303,7 +303,7 @@ def main(): flatplate.cfg_dir = "navierstokes/flatplate" flatplate.cfg_file = "lam_flatplate.cfg" flatplate.test_iter = 100 - flatplate.test_vals = [-7.613122, -2.140941, 0.001084, 0.036230, 2.361500, -2.325300, 0.000000, 0.000000] + flatplate.test_vals = [-7.613292, -2.141207, 0.001084, 0.036230, 2.361500, -2.325300, 0.000000, 0.000000] test_list.append(flatplate) # Custom objective function @@ -311,7 +311,7 @@ def main(): flatplate_udobj.cfg_dir = "user_defined_functions" flatplate_udobj.cfg_file = "lam_flatplate.cfg" flatplate_udobj.test_iter = 20 - flatplate_udobj.test_vals = [-6.660355, -1.186227, -0.956763, 0.000642, -0.000643, 0.000540, -0.001184, 596.990000, 300.060000, 296.920000, 22.235000, 0.524150, 37.285000, 2.350100] + flatplate_udobj.test_vals = [-6.760101, -1.283906, -0.745653, 0.000587, -0.000038, 0.000977, -0.001015, 596.450000, 299.550000, 296.900000, 21.318000, 0.586640, 36.553000, 2.188800] test_list.append(flatplate_udobj) # Laminar cylinder (steady) @@ -381,7 +381,7 @@ def main(): turb_flatplate.cfg_dir = "rans/flatplate" turb_flatplate.cfg_file = "turb_SA_flatplate.cfg" turb_flatplate.test_iter = 20 - turb_flatplate.test_vals = [-4.293470, -6.730438, -0.187644, 0.057700] + turb_flatplate.test_vals = [-4.297198, -6.730442, -0.187632, 0.057700] test_list.append(turb_flatplate) # Flat plate (compressible) with species inlet @@ -389,7 +389,7 @@ def main(): turb_flatplate_species.cfg_dir = "rans/flatplate" turb_flatplate_species.cfg_file = "turb_SA_flatplate_species.cfg" turb_flatplate_species.test_iter = 20 - turb_flatplate_species.test_vals = [-4.243064, -0.634797, -1.706652, 1.231264, -3.308212, 9.000000, -6.632972, 5.000000, -6.985977, 10.000000, -6.248436, 0.999902, 0.999902] + turb_flatplate_species.test_vals = [-4.249479, -0.634915, -1.716291, 1.223196, -3.307930, 9.000000, -6.634088, 5.000000, -6.985954, 10.000000, -6.255640, 0.999903, 0.999903] test_list.append(turb_flatplate_species) # Flat plate SST compressibility correction Wilcox @@ -397,7 +397,7 @@ def main(): turb_flatplate_CC_Wilcox.cfg_dir = "rans/flatplate" turb_flatplate_CC_Wilcox.cfg_file = "turb_SST_flatplate_compressibility_Wilcox.cfg" turb_flatplate_CC_Wilcox.test_iter = 20 - turb_flatplate_CC_Wilcox.test_vals = [-1.280875, 1.974210, 1.440441, 5.038396, -3.791093, 8.297424] + turb_flatplate_CC_Wilcox.test_vals = [-1.280934, 1.974155, 1.440363, 5.038339, -3.791118, 8.297543] test_list.append(turb_flatplate_CC_Wilcox) # Flat plate SST compressibility correction Sarkar @@ -405,7 +405,7 @@ def main(): turb_flatplate_CC_Sarkar.cfg_dir = "rans/flatplate" turb_flatplate_CC_Sarkar.cfg_file = "turb_SST_flatplate_compressibility_Sarkar.cfg" turb_flatplate_CC_Sarkar.test_iter = 20 - turb_flatplate_CC_Sarkar.test_vals = [-1.280875, 1.974210, 1.440441, 5.038396, -3.791096, 8.297424] + turb_flatplate_CC_Sarkar.test_vals = [-1.280934, 1.974155, 1.440363, 5.038339, -3.791121, 8.297543] test_list.append(turb_flatplate_CC_Sarkar) # ONERA M6 Wing @@ -413,7 +413,7 @@ def main(): turb_oneram6.cfg_dir = "rans/oneram6" turb_oneram6.cfg_file = "turb_ONERAM6.cfg" turb_oneram6.test_iter = 10 - turb_oneram6.test_vals = [-2.408532, -6.662836, 0.238334, 0.158910, 0] + turb_oneram6.test_vals = [-2.408685, -6.662907, 0.238579, 0.158968, 0.000000] turb_oneram6.timeout = 3200 test_list.append(turb_oneram6) @@ -422,7 +422,7 @@ def main(): turb_oneram6_vc.cfg_dir = "rans/oneram6" turb_oneram6_vc.cfg_file = "turb_ONERAM6_vc.cfg" turb_oneram6_vc.test_iter = 15 - turb_oneram6_vc.test_vals = [-2.281896, -6.614616, 0.233785, 0.142861, 0] + turb_oneram6_vc.test_vals = [-2.282318, -6.614780, 0.234330, 0.143024, 0.000000] turb_oneram6_vc.timeout = 3200 test_list.append(turb_oneram6_vc) @@ -431,7 +431,7 @@ def main(): turb_oneram6_nk.cfg_dir = "rans/oneram6" turb_oneram6_nk.cfg_file = "turb_ONERAM6_nk.cfg" turb_oneram6_nk.test_iter = 20 - turb_oneram6_nk.test_vals = [-4.851388, -4.457414, -11.468726, 0.217228, 0.049043, 5.000000, -0.533763, 23.567000] + turb_oneram6_nk.test_vals = [-4.828066, -4.426250, -11.417591, 0.224679, 0.044309, 1.000000, -0.642977, 31.384000] turb_oneram6_nk.timeout = 600 turb_oneram6_nk.tol = 0.0001 test_list.append(turb_oneram6_nk) @@ -498,7 +498,7 @@ def main(): turb_naca0012_sst_expliciteuler.cfg_dir = "rans/naca0012" turb_naca0012_sst_expliciteuler.cfg_file = "turb_NACA0012_sst_expliciteuler.cfg" turb_naca0012_sst_expliciteuler.test_iter = 10 - turb_naca0012_sst_expliciteuler.test_vals = [-3.533765, -3.157766, 3.364026, 1.124760, 0.501702, -float("inf")] + turb_naca0012_sst_expliciteuler.test_vals = [-3.533765, -3.157766, 3.364026, 1.124757, 0.501700, -float("inf")] turb_naca0012_sst_expliciteuler.timeout = 3200 test_list.append(turb_naca0012_sst_expliciteuler) @@ -530,7 +530,7 @@ def main(): axi_rans_air_nozzle_restart.cfg_dir = "axisymmetric_rans/air_nozzle" axi_rans_air_nozzle_restart.cfg_file = "air_nozzle_restart.cfg" axi_rans_air_nozzle_restart.test_iter = 10 - axi_rans_air_nozzle_restart.test_vals = [-12.067146, -6.838120, -8.845013, -3.786289, 0.000000] + axi_rans_air_nozzle_restart.test_vals = [-12.067375, -6.838713, -8.845034, -3.786225, 0.000000] axi_rans_air_nozzle_restart.tol = 0.0001 test_list.append(axi_rans_air_nozzle_restart) @@ -558,7 +558,7 @@ def main(): inc_euler_naca0012.cfg_dir = "incomp_euler/naca0012" inc_euler_naca0012.cfg_file = "incomp_NACA0012.cfg" inc_euler_naca0012.test_iter = 20 - inc_euler_naca0012.test_vals = [-7.141428, -6.403478, 0.531992, 0.008466] + inc_euler_naca0012.test_vals = [-7.154146, -6.507095, 0.532001, 0.008466] test_list.append(inc_euler_naca0012) # C-D nozzle with pressure inlet and mass flow outlet @@ -566,7 +566,7 @@ def main(): inc_nozzle.cfg_dir = "incomp_euler/nozzle" inc_nozzle.cfg_file = "inv_nozzle.cfg" inc_nozzle.test_iter = 20 - inc_nozzle.test_vals = [-6.308730, -5.512525, -0.004405, 0.126629] + inc_nozzle.test_vals = [-6.576818, -5.796867, -0.003141, 0.126481] test_list.append(inc_nozzle) # Laminar wall mounted cylinder, Euler walls, cylinder wall diagonally split @@ -574,7 +574,7 @@ def main(): inc_cylinder_split.cfg_dir = "incomp_navierstokes/cylinder_split" inc_cylinder_split.cfg_file = "cylinder_split.cfg" inc_cylinder_split.test_iter = 10 - inc_cylinder_split.test_vals = [-10.172747, -11.108149, -10.908852, 10.000000] + inc_cylinder_split.test_vals = [-10.207060, -11.197502, -11.296847, 10.000000] test_list.append(inc_cylinder_split) ############################# @@ -594,7 +594,7 @@ def main(): inc_lam_sphere.cfg_dir = "incomp_navierstokes/sphere" inc_lam_sphere.cfg_file = "sphere.cfg" inc_lam_sphere.test_iter = 5 - inc_lam_sphere.test_vals = [-8.342926, -9.322789, 0.121003, 25.782687] + inc_lam_sphere.test_vals = [-8.342048, -9.328063, 0.121003, 25.782687] test_list.append(inc_lam_sphere) # Buoyancy-driven cavity @@ -618,7 +618,7 @@ def main(): inc_lam_bend.cfg_dir = "incomp_navierstokes/bend" inc_lam_bend.cfg_file = "lam_bend.cfg" inc_lam_bend.test_iter = 10 - inc_lam_bend.test_vals = [-3.550744, -3.220213, -0.017606, 1.015086] + inc_lam_bend.test_vals = [-3.588863, -3.101606, -0.022302, 1.062971] test_list.append(inc_lam_bend) # 3D laminar channnel with 1 cell in flow direction, streamwise periodic @@ -634,7 +634,7 @@ def main(): inc_heatTransfer_BC.cfg_dir = "incomp_navierstokes/streamwise_periodic/chtPinArray_2d" inc_heatTransfer_BC.cfg_file = "BC_HeatTransfer.cfg" inc_heatTransfer_BC.test_iter = 50 - inc_heatTransfer_BC.test_vals = [-8.201114, -7.405807, -7.555676, -0.113666, -1671.700000] + inc_heatTransfer_BC.test_vals = [-8.747445, -7.653823, -8.079512, -0.654920, -1670.100000] test_list.append(inc_heatTransfer_BC) ############################ @@ -785,7 +785,7 @@ def main(): schubauer_klebanoff_transition.cfg_dir = "transition/Schubauer_Klebanoff" schubauer_klebanoff_transition.cfg_file = "transitional_BC_model_ConfigFile.cfg" schubauer_klebanoff_transition.test_iter = 10 - schubauer_klebanoff_transition.test_vals = [-8.058933, -13.242001, 0.000048, 0.007993] + schubauer_klebanoff_transition.test_vals = [-8.215651, -13.240283, 0.000048, 0.007983] test_list.append(schubauer_klebanoff_transition) ##################################### @@ -821,7 +821,7 @@ def main(): contadj_fixed_CL_naca0012.cfg_dir = "fixed_cl/naca0012" contadj_fixed_CL_naca0012.cfg_file = "inv_NACA0012_ContAdj.cfg" contadj_fixed_CL_naca0012.test_iter = 100 - contadj_fixed_CL_naca0012.test_vals = [0.748438, -4.810920, -0.520110, -0.000292] + contadj_fixed_CL_naca0012.test_vals = [0.748407, -4.810872, -0.520110, -0.000291] test_list.append(contadj_fixed_CL_naca0012) ################################### @@ -933,7 +933,7 @@ def main(): harmonic_balance.cfg_dir = "harmonic_balance" harmonic_balance.cfg_file = "HB.cfg" harmonic_balance.test_iter = 25 - harmonic_balance.test_vals = [-1.554985, 0.831796, 0.935729, 3.960210] + harmonic_balance.test_vals = [-1.556680, 0.840665, 0.943818, 3.957041] test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil @@ -942,7 +942,7 @@ def main(): hb_rans_preconditioning.cfg_file = "davis.cfg" hb_rans_preconditioning.test_iter = 25 hb_rans_preconditioning.tol = 0.00001 - hb_rans_preconditioning.test_vals = [-1.902098, 0.484070, 0.601481, 3.609002, -5.949360] + hb_rans_preconditioning.test_vals = [-1.902098, 0.484070, 0.601481, 3.609002, -5.949356] test_list.append(hb_rans_preconditioning) ###################################### @@ -954,7 +954,7 @@ def main(): rot_naca0012.cfg_dir = "rotating/naca0012" rot_naca0012.cfg_file = "rot_NACA0012.cfg" rot_naca0012.test_iter = 25 - rot_naca0012.test_vals = [-2.709459, 2.836670, -0.081188, 0.002156] + rot_naca0012.test_vals = [-2.671004, 2.876161, -0.081794, 0.002170] test_list.append(rot_naca0012) # Lid-driven cavity @@ -991,7 +991,7 @@ def main(): sine_gust.cfg_dir = "gust" sine_gust.cfg_file = "inv_gust_NACA0012.cfg" sine_gust.test_iter = 5 - sine_gust.test_vals = [-1.977514, 3.481817, -0.010609, -0.007956] + sine_gust.test_vals = [-1.977498, 3.481833, -0.014513, -0.007514] sine_gust.unsteady = True test_list.append(sine_gust) @@ -1000,7 +1000,7 @@ def main(): aeroelastic.cfg_dir = "aeroelastic" aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" aeroelastic.test_iter = 2 - aeroelastic.test_vals = [0.075176, 0.027496, -0.001643, -0.000126] + aeroelastic.test_vals = [0.075392, 0.027483, -0.001643, -0.000127] aeroelastic.unsteady = True test_list.append(aeroelastic) @@ -1009,7 +1009,7 @@ def main(): ddes_flatplate.cfg_dir = "ddes/flatplate" ddes_flatplate.cfg_file = "ddes_flatplate.cfg" ddes_flatplate.test_iter = 10 - ddes_flatplate.test_vals = [-2.714786, -5.882637, -0.215041, 0.023758, 0] + ddes_flatplate.test_vals = [-2.714713, -5.788290, -0.214960, 0.023758, 0.000000] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) @@ -1027,7 +1027,7 @@ def main(): flatplate_unsteady.cfg_dir = "navierstokes/flatplate" flatplate_unsteady.cfg_file = "lam_flatplate_unst.cfg" flatplate_unsteady.test_iter = 3 - flatplate_unsteady.test_vals = [-8.875126, -8.250188, -6.305789, -5.469452, -3.398228, 0.002075, -0.326018] + flatplate_unsteady.test_vals = [-8.875128, -8.250204, -6.305788, -5.469452, -3.398230, 0.002075, -0.325535] flatplate_unsteady.unsteady = True test_list.append(flatplate_unsteady) @@ -1040,7 +1040,7 @@ def main(): edge_VW.cfg_dir = "nicf/edge" edge_VW.cfg_file = "edge_VW.cfg" edge_VW.test_iter = 50 - edge_VW.test_vals = [-8.107432, -1.914195, -0.000009, 0.000000] + edge_VW.test_vals = [-9.057409, -2.833203, -0.000009, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR @@ -1048,7 +1048,7 @@ def main(): edge_PPR.cfg_dir = "nicf/edge" edge_PPR.cfg_file = "edge_PPR.cfg" edge_PPR.test_iter = 50 - edge_PPR.test_vals = [-8.611983, -2.441992, -0.000034, 0.000000] + edge_PPR.test_vals = [-9.781896, -3.630892, -0.000034, 0.000000] test_list.append(edge_PPR) # Rarefaction Q1D nozzle, include CoolProp fluid model @@ -1056,7 +1056,7 @@ def main(): coolprop_fluidModel.cfg_dir = "nicf/coolprop" coolprop_fluidModel.cfg_file = "fluidModel.cfg" coolprop_fluidModel.test_iter = 5 - coolprop_fluidModel.test_vals = [-4.424952, -1.583022, 3.724040, 0.000000, 0.000000] + coolprop_fluidModel.test_vals = [-4.684483, -1.583073, 3.724768, 0.000000, 0.000000] coolprop_fluidModel.enabled_on_cpu_arch = ["x86_64"] test_list.append(coolprop_fluidModel) @@ -1065,7 +1065,7 @@ def main(): coolprop_transportModel.cfg_dir = "nicf/coolprop" coolprop_transportModel.cfg_file = "transportModel.cfg" coolprop_transportModel.test_iter = 5 - coolprop_transportModel.test_vals = [-4.428096, -1.314553, 4.667817, 0.000000, 0.000000] + coolprop_transportModel.test_vals = [-4.684988, -1.314608, 4.668105, 0.000000, 0.000000] coolprop_transportModel.enabled_on_cpu_arch = ["x86_64"] test_list.append(coolprop_transportModel) @@ -1074,7 +1074,7 @@ def main(): datadriven_fluidModel.cfg_dir = "nicf/datadriven" datadriven_fluidModel.cfg_file = "datadriven_nozzle.cfg" datadriven_fluidModel.test_iter = 50 - datadriven_fluidModel.test_vals = [-6.338276, -3.837338, -4.350653, -1.850454, -2.701016, 0.692050] + datadriven_fluidModel.test_vals = [-6.338898, -3.837472, -4.351292, -1.860262, -2.700991, 0.691801] test_list.append(datadriven_fluidModel) ###################################### @@ -1132,7 +1132,7 @@ def main(): uniform_flow.cfg_dir = "sliding_interface/uniform_flow" uniform_flow.cfg_file = "uniform_NN.cfg" uniform_flow.test_iter = 5 - uniform_flow.test_vals = [5.000000, 0.000000, -0.186036, -10.624450] + uniform_flow.test_vals = [5.000000, 0.000000, -0.193989, -10.624461] uniform_flow.unsteady = True uniform_flow.multizone = True test_list.append(uniform_flow) @@ -1142,7 +1142,7 @@ def main(): channel_2D.cfg_dir = "sliding_interface/channel_2D" channel_2D.cfg_file = "channel_2D_WA.cfg" channel_2D.test_iter = 2 - channel_2D.test_vals = [2.000000, 0.000000, 0.417418, 0.350499, 0.401527] + channel_2D.test_vals = [2.000000, 0.000000, 0.397996, 0.351404, 0.405775] channel_2D.timeout = 100 channel_2D.unsteady = True channel_2D.multizone = True @@ -1153,7 +1153,7 @@ def main(): channel_3D.cfg_dir = "sliding_interface/channel_3D" channel_3D.cfg_file = "channel_3D_WA.cfg" channel_3D.test_iter = 2 - channel_3D.test_vals = [2.000000, 0.000000, 0.622666, 0.506173, 0.410911] + channel_3D.test_vals = [2.000000, 0.000000, 0.629113, 0.524906, 0.422425] channel_3D.unsteady = True channel_3D.multizone = True test_list.append(channel_3D) @@ -1163,7 +1163,7 @@ def main(): pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 - pipe.test_vals = [0.121512, 0.477629, 0.641341, 0.983336, 1.018856] + pipe.test_vals = [0.058776, 0.451126, 0.554840, 0.973245, 1.013942] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) @@ -1173,7 +1173,7 @@ def main(): rotating_cylinders.cfg_dir = "sliding_interface/rotating_cylinders" rotating_cylinders.cfg_file = "rot_cylinders_WA.cfg" rotating_cylinders.test_iter = 3 - rotating_cylinders.test_vals = [3.000000, 0.000000, 0.719777, 1.111044, 1.154071] + rotating_cylinders.test_vals = [3.000000, 0.000000, 0.718819, 1.111415, 1.154854] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) @@ -1183,7 +1183,7 @@ def main(): supersonic_vortex_shedding.cfg_dir = "sliding_interface/supersonic_vortex_shedding" supersonic_vortex_shedding.cfg_file = "sup_vor_shed_WA.cfg" supersonic_vortex_shedding.test_iter = 5 - supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.206774, 1.053450] + supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.199633, 1.050814] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) @@ -1258,7 +1258,7 @@ def main(): fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" fsi2d.cfg_file = "configFSI.cfg" fsi2d.test_iter = 4 - fsi2d.test_vals = [4.000000, 0.000000, -3.726049, -4.277801] + fsi2d.test_vals = [4.000000, 0.000000, -3.725519, -4.279000] fsi2d.command = TestCase.Command(exec = "parallel_computation_fsi.py", param = "-f") fsi2d.multizone= True fsi2d.unsteady = True @@ -1269,7 +1269,7 @@ def main(): stat_fsi.cfg_dir = "fea_fsi/stat_fsi" stat_fsi.cfg_file = "config.cfg" stat_fsi.test_iter = 7 - stat_fsi.test_vals = [-3.309522, -4.948620, 0.000000, 8] + stat_fsi.test_vals = [-3.301938, -4.971986, 0.000000, 11.000000] stat_fsi.multizone = True test_list.append(stat_fsi) @@ -1278,7 +1278,7 @@ def main(): dyn_fsi.cfg_dir = "fea_fsi/dyn_fsi" dyn_fsi.cfg_file = "config.cfg" dyn_fsi.test_iter = 4 - dyn_fsi.test_vals = [-4.330921, -4.153040, 0.000000, 96] + dyn_fsi.test_vals = [-4.328805, -4.153185, 0.000000, 97.000000] dyn_fsi.multizone = True dyn_fsi.unsteady = True test_list.append(dyn_fsi) @@ -1288,7 +1288,7 @@ def main(): stat_fsi_restart.cfg_dir = "fea_fsi/stat_fsi" stat_fsi_restart.cfg_file = "config_restart.cfg" stat_fsi_restart.test_iter = 1 - stat_fsi_restart.test_vals = [-3.450744, -4.279403, 0.000000, 27] + stat_fsi_restart.test_vals = [-3.486655, -4.425104, 0.000000, 27.000000] stat_fsi_restart.multizone = True test_list.append(stat_fsi_restart) @@ -1345,7 +1345,7 @@ def main(): sp_pinArray_cht_2d_dp_hf.cfg_dir = "incomp_navierstokes/streamwise_periodic/chtPinArray_2d" sp_pinArray_cht_2d_dp_hf.cfg_file = "configMaster.cfg" sp_pinArray_cht_2d_dp_hf.test_iter = 100 - sp_pinArray_cht_2d_dp_hf.test_vals = [0.548558, -0.379295, -1.007163, -0.732245, 208.023676, 334.010000, -0.000000, -0.732240, 0.732240] + sp_pinArray_cht_2d_dp_hf.test_vals = [0.500399, -0.667466, -0.984103, -0.726712, 208.023676, 350.140000, -0.000000, -0.726710, 0.726710] sp_pinArray_cht_2d_dp_hf.multizone = True test_list.append(sp_pinArray_cht_2d_dp_hf) @@ -1354,7 +1354,7 @@ def main(): sp_pinArray_3d_cht_mf_hf_tp.cfg_dir = "incomp_navierstokes/streamwise_periodic/chtPinArray_3d" sp_pinArray_3d_cht_mf_hf_tp.cfg_file = "configMaster.cfg" sp_pinArray_3d_cht_mf_hf_tp.test_iter = 30 - sp_pinArray_3d_cht_mf_hf_tp.test_vals = [-1.117102, -1.880628, -2.561816, -0.009804, 104.600540, 418.360000, 0.000000] + sp_pinArray_3d_cht_mf_hf_tp.test_vals = [-1.116189, -1.881686, -2.561500, -0.009805, 104.600449, 418.360000, 0.000000] sp_pinArray_3d_cht_mf_hf_tp.test_vals_aarch64 = [-1.117102, -1.880628, -2.561816, -0.009804, 104.600540, 418.360000, 0.000000] sp_pinArray_3d_cht_mf_hf_tp.multizone = True test_list.append(sp_pinArray_3d_cht_mf_hf_tp) @@ -1369,7 +1369,7 @@ def main(): pywrapper_naca0012.cfg_dir = "euler/naca0012" pywrapper_naca0012.cfg_file = "inv_NACA0012_Roe.cfg" pywrapper_naca0012.test_iter = 100 - pywrapper_naca0012.test_vals = [-8.461085, -7.758356, 0.335769, 0.023275] + pywrapper_naca0012.test_vals = [-9.249009, -8.546597, 0.335769, 0.023275] pywrapper_naca0012.command = TestCase.Command("mpirun -np 2", "SU2_CFD.py", "--parallel -f") test_list.append(pywrapper_naca0012) @@ -1399,7 +1399,7 @@ def main(): pywrapper_aeroelastic.cfg_dir = "aeroelastic" pywrapper_aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" pywrapper_aeroelastic.test_iter = 2 - pywrapper_aeroelastic.test_vals = [0.075176, 0.027496, -0.001643, -0.000126] + pywrapper_aeroelastic.test_vals = [0.075392, 0.027483, -0.001643, -0.000127] pywrapper_aeroelastic.command = TestCase.Command("mpirun -np 2", "SU2_CFD.py", "--parallel -f") pywrapper_aeroelastic.unsteady = True test_list.append(pywrapper_aeroelastic) @@ -1419,7 +1419,7 @@ def main(): pywrapper_fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" pywrapper_fsi2d.cfg_file = "configFSI.cfg" pywrapper_fsi2d.test_iter = 4 - pywrapper_fsi2d.test_vals = [4.000000, 0.000000, -3.726049, -4.277801] + pywrapper_fsi2d.test_vals = [4.000000, 0.000000, -3.725519, -4.279000] pywrapper_fsi2d.command = TestCase.Command("mpirun -np 2", "SU2_CFD.py", "--nZone 2 --fsi True --parallel -f") pywrapper_fsi2d.unsteady = True pywrapper_fsi2d.multizone = True @@ -1430,7 +1430,7 @@ def main(): pywrapper_unsteadyFSI.cfg_dir = "py_wrapper/dyn_fsi" pywrapper_unsteadyFSI.cfg_file = "config.cfg" pywrapper_unsteadyFSI.test_iter = 4 - pywrapper_unsteadyFSI.test_vals = [0.000000, 49.000000, 5.000000, 55.000000, -0.709822, -3.429271, -2.524625, -7.938341, 0.001514] + pywrapper_unsteadyFSI.test_vals = [0.000000, 30.000000, 5.000000, 58.000000, -1.756676, -2.828284, -7.625017, -6.863952, 0.000156] pywrapper_unsteadyFSI.command = TestCase.Command("mpirun -np 2", "python", "run.py") pywrapper_unsteadyFSI.unsteady = True pywrapper_unsteadyFSI.multizone = True @@ -1461,7 +1461,7 @@ def main(): pywrapper_deformingBump.cfg_dir = "py_wrapper/deforming_bump_in_channel" pywrapper_deformingBump.cfg_file = "config.cfg" pywrapper_deformingBump.test_iter = 1 - pywrapper_deformingBump.test_vals = [0.500000, 0.000000, -3.037859, -1.603563, -2.074259, 2.424288, 7.762848, -0.220436] + pywrapper_deformingBump.test_vals = [0.500000, 0.000000, -2.811520, -1.603562, -2.074257, 2.650721, 8.315499, -0.539186] pywrapper_deformingBump.command = TestCase.Command("mpirun -np 2", "python", "run.py") pywrapper_deformingBump.unsteady = True test_list.append(pywrapper_deformingBump) @@ -1533,7 +1533,7 @@ def main(): species2_primitiveVenturi_mixingmodel.cfg_dir = "species_transport/venturi_primitive_3species" species2_primitiveVenturi_mixingmodel.cfg_file = "species2_primitiveVenturi_mixingmodel.cfg" species2_primitiveVenturi_mixingmodel.test_iter = 50 - species2_primitiveVenturi_mixingmodel.test_vals = [-5.433571, -4.507202, -4.599966, -5.856697, -0.076061, -5.608935, 5.000000, -1.897907, 5.000000, -4.894972, 5.000000, -1.202673, 0.000538, 0.000476, 0.000062, 0.000000] + species2_primitiveVenturi_mixingmodel.test_vals = [-5.736233, -4.561289, -4.666830, -5.863760, -0.071055, -5.584743, 5.000000, -1.376449, 5.000000, -4.869012, 5.000000, -1.452251, 0.000372, 0.000356, 0.000016, 0.000000] test_list.append(species2_primitiveVenturi_mixingmodel) # 2 species (1 eq) primitive venturi mixing using mixing model and bounded scalar transport @@ -1541,7 +1541,7 @@ def main(): species2_primitiveVenturi_mixingmodel_boundedscalar.cfg_dir = "species_transport/venturi_primitive_3species" species2_primitiveVenturi_mixingmodel_boundedscalar.cfg_file = "species2_primitiveVenturi_mixingmodel_boundedscalar.cfg" species2_primitiveVenturi_mixingmodel_boundedscalar.test_iter = 50 - species2_primitiveVenturi_mixingmodel_boundedscalar.test_vals = [-5.397959, -4.441556, -4.532005, -6.118886, -0.129272, -5.681345, 5.000000, -1.986039, 5.000000, -4.961054, 5.000000, -1.880403, 0.000297, 0.000297, 0.000000, 0.000000] + species2_primitiveVenturi_mixingmodel_boundedscalar.test_vals = [-5.689876, -4.507214, -4.611632, -6.120372, -0.118388, -5.705973, 5.000000, -1.437234, 5.000000, -4.924953, 5.000000, -1.768691, 0.000313, 0.000313, 0.000000, 0.000000] test_list.append(species2_primitiveVenturi_mixingmodel_boundedscalar) # 2 species (1 eq) primitive venturi mixing using mixing model including viscosity, thermal conductivity and inlet markers for SA turbulence model @@ -1549,7 +1549,7 @@ def main(): species2_primitiveVenturi_mixingmodel_viscosity.cfg_dir = "species_transport/venturi_primitive_3species" species2_primitiveVenturi_mixingmodel_viscosity.cfg_file = "species2_primitiveVenturi_mixingmodel_viscosity.cfg" species2_primitiveVenturi_mixingmodel_viscosity.test_iter = 50 - species2_primitiveVenturi_mixingmodel_viscosity.test_vals = [-4.857405, -3.646534, -3.737422, -7.602756, -5.008835, 5.000000, -1.756256, 5.000000, -3.163548, 5.000000, -2.189690, 2.476807, 0.977000, 0.609279, 0.890528] + species2_primitiveVenturi_mixingmodel_viscosity.test_vals = [-5.232339, -3.617118, -3.857221, -7.533847, -5.126646, 5.000000, -1.682962, 5.000000, -3.474078, 5.000000, -2.086859, 2.495548, 0.985490, 0.600234, 0.909824] test_list.append(species2_primitiveVenturi_mixingmodel_viscosity) # 2 species (1 eq) primitive venturi mixing using mixing model including heat capacity and mass diffusivity @@ -1557,7 +1557,7 @@ def main(): species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg_dir = "species_transport/venturi_primitive_3species" species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg_file = "species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg" species2_primitiveVenturi_mixingmodel_heatcapacity_H2.test_iter = 50 - species2_primitiveVenturi_mixingmodel_heatcapacity_H2.test_vals = [-5.704159, -4.581981, -4.519914, -6.960130, 2.304741, -5.429054, 30.000000, -6.864204, 12.000000, -8.228958, 8.000000, -9.215808, 2.079379, 1.000000, 0.600000, 0.479379] + species2_primitiveVenturi_mixingmodel_heatcapacity_H2.test_vals = [-5.830112, -4.504576, -4.654774, -7.014975, 2.317603, -5.509555, 30.000000, -6.906408, 11.000000, -8.227485, 8.000000, -9.294144, 2.077533, 1.000000, 0.600000, 0.477533] test_list.append(species2_primitiveVenturi_mixingmodel_heatcapacity_H2) # 2 species (1 eq) primitive venturi mixing using mixing model including heat capacity and mass diffusivity NonDimensional case @@ -1565,7 +1565,7 @@ def main(): species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg_dir = "species_transport/venturi_primitive_3species" species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg_file = "species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg" species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.test_iter = 50 - species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.test_vals = [-5.304586, -4.884409, -4.811332, -7.928962, 1.999898, -5.034484, 10.000000, -2.603534, 3.000000, -5.374631, 5.000000, -5.612314, 2.079522, 1.000000, 0.600000, 0.479522] + species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.test_vals = [-5.429311, -4.805894, -4.943400, -7.978127, 2.012275, -5.115722, 10.000000, -2.264471, 2.000000, -5.061843, 4.000000, -5.055035, 2.077660, 1.000000, 0.600000, 0.477660] test_list.append(species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND) # 2 species (1 eq) primitive venturi mixing @@ -1573,7 +1573,7 @@ def main(): species2_primitiveVenturi.cfg_dir = "species_transport/venturi_primitive_3species" species2_primitiveVenturi.cfg_file = "species2_primitiveVenturi.cfg" species2_primitiveVenturi.test_iter = 50 - species2_primitiveVenturi.test_vals = [-5.383507, -4.591042, -4.618659, -5.371315, -1.048003, -5.321849, 5.000000, -1.011668, 5.000000, -2.540380, 5.000000, -1.220744, 0.000035, 0.000035, 0.000000, 0.000000] + species2_primitiveVenturi.test_vals = [-5.919132, -4.941085, -4.919763, -5.717215, -1.405791, -6.087254, 5.000000, -0.524653, 5.000000, -2.608809, 5.000000, -0.351723, 0.000113, 0.000112, 0.000000, 0.000000] test_list.append(species2_primitiveVenturi) # 2 species (1 eq) primitive venturi mixing with bounded scalar transport @@ -1581,7 +1581,7 @@ def main(): species_primitiveVenturi_boundedscalar.cfg_dir = "species_transport/venturi_primitive_3species" species_primitiveVenturi_boundedscalar.cfg_file = "species2_primitiveVenturi_boundedscalar.cfg" species_primitiveVenturi_boundedscalar.test_iter = 50 - species_primitiveVenturi_boundedscalar.test_vals = [-5.273416, -4.372370, -4.440933, -5.944335, -0.961736, -5.609422, 5.000000, -2.024352, 5.000000, -4.092737, 5.000000, -1.811021, 0.000423, 0.000423, 0.000000, 0.000000] + species_primitiveVenturi_boundedscalar.test_vals = [-5.534441, -4.368794, -4.465911, -5.935827, -0.867763, -5.633723, 5.000000, -1.470749, 5.000000, -4.161492, 5.000000, -1.724769, 0.000434, 0.000434, 0.000000, 0.000000] test_list.append(species_primitiveVenturi_boundedscalar) # 2 species (1 eq) primitive venturi mixing using mixing model including inlet markers for turbulent intensity and viscosity ratios @@ -1589,7 +1589,7 @@ def main(): species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg_dir = "species_transport/venturi_primitive_3species" species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg_file = "species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg" species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.test_iter = 50 - species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.test_vals = [-4.047742, -1.641280, -1.562848, -0.984640, 1.499898, -3.745901, 23.000000, -5.208811, 12.000000, -5.399205, 3.000000, -5.230072, 2.000000, 1.000000, 0.000000, 1.000000] + species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.test_vals = [-4.565556, -1.773987, -1.569972, -0.978893, 1.693213, -3.843844, 23.000000, -5.040721, 10.000000, -5.559387, 3.000000, -5.370252, 2.000000, 1.000000, 0.000000, 1.000000] test_list.append(species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS) # 3 species (2 eq) primitive venturi mixing with inlet files. @@ -1598,7 +1598,7 @@ def main(): species3_primitiveVenturi_inletFile.cfg_dir = "species_transport/venturi_primitive_3species" species3_primitiveVenturi_inletFile.cfg_file = "species3_primitiveVenturi_inletFile.cfg" species3_primitiveVenturi_inletFile.test_iter = 50 - species3_primitiveVenturi_inletFile.test_vals = [-5.454137, -4.661671, -4.689288, -5.441944, -1.118632, -5.592455, -5.735073, 5.000000, -1.011667, 5.000000, -2.540380, 5.000000, -1.040187] + species3_primitiveVenturi_inletFile.test_vals = [-5.989944, -5.011655, -4.990373, -5.787315, -1.475219, -6.316068, -6.446277, 5.000000, -0.525858, 5.000000, -2.609037, 5.000000, -0.362429] test_list.append(species3_primitiveVenturi_inletFile) # rectangle passive transport validation @@ -1606,7 +1606,7 @@ def main(): species_passive_val.cfg_dir = "species_transport/passive_transport_validation" species_passive_val.cfg_file = "passive_transport.cfg" species_passive_val.test_iter = 50 - species_passive_val.test_vals = [-16.604279, -16.303255, -16.970059, -4.257599, 10.000000, -4.731945, 8.000000, -5.193350, 0.186610, 0.000000] + species_passive_val.test_vals = [-16.561013, -16.280437, -16.910003, -4.257599, 10.000000, -4.457215, 8.000000, -5.193350, 0.186610, 0.000000] species_passive_val.test_vals_aarch64 = [-16.538551, -16.312552, -16.882823, -4.257599, 10, -4.585464, 8, -5.19335, 0.18661, 0] test_list.append(species_passive_val) @@ -1615,7 +1615,7 @@ def main(): species3_multizone_restart.cfg_dir = "species_transport/multizone" species3_multizone_restart.cfg_file = "configMaster.cfg" species3_multizone_restart.test_iter = 5 - species3_multizone_restart.test_vals = [-2.081789, -1.936012] + species3_multizone_restart.test_vals = [-3.715625, -3.070578] species3_multizone_restart.multizone = True test_list.append(species3_multizone_restart) @@ -1628,7 +1628,7 @@ def main(): cgns_writer.cfg_dir = "cgns_writer" cgns_writer.cfg_file = "config.cfg" cgns_writer.test_iter = 1 - cgns_writer.test_vals = [-2.974473, 0.640256, 5.371029, -6.732060] + cgns_writer.test_vals = [-2.974473, 0.640256, 5.371028, -6.732060] cgns_writer.command = TestCase.Command("mpirun -n 2", "SU2_CFD") cgns_writer.new_output = True test_list.append(cgns_writer) diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py index 89bd7e8037d..3330a4d624c 100644 --- a/TestCases/parallel_regression_AD.py +++ b/TestCases/parallel_regression_AD.py @@ -47,7 +47,7 @@ def main(): discadj_naca0012.cfg_dir = "cont_adj_euler/naca0012" discadj_naca0012.cfg_file = "inv_NACA0012_discadj.cfg" discadj_naca0012.test_iter = 100 - discadj_naca0012.test_vals = [-3.560692, -8.925239, -0.000000, 0.005559] + discadj_naca0012.test_vals = [-3.562562, -8.932563, -0.000000, 0.005608] test_list.append(discadj_naca0012) # Inviscid Cylinder 3D (multiple markers) @@ -55,7 +55,7 @@ def main(): discadj_cylinder3D.cfg_dir = "disc_adj_euler/cylinder3D" discadj_cylinder3D.cfg_file = "inv_cylinder3D.cfg" discadj_cylinder3D.test_iter = 5 - discadj_cylinder3D.test_vals = [-3.778153, -3.743482, 0.000000, 0.000000] + discadj_cylinder3D.test_vals = [-3.693714, -3.889422, 0.000000, 0.000000] test_list.append(discadj_cylinder3D) # Arina nozzle 2D @@ -63,7 +63,7 @@ def main(): discadj_arina2k.cfg_dir = "disc_adj_euler/arina2k" discadj_arina2k.cfg_file = "Arina2KRS.cfg" discadj_arina2k.test_iter = 20 - discadj_arina2k.test_vals = [-3.540396, -3.828299, 0.027959, 0.000000] + discadj_arina2k.test_vals = [-3.254894, -3.550776, 0.053099, 0.000000] test_list.append(discadj_arina2k) # Equivalent area NACA64-206 @@ -71,7 +71,7 @@ def main(): ea_naca64206.cfg_dir = "optimization_euler/equivalentarea_naca64206" ea_naca64206.cfg_file = "NACA64206.cfg" ea_naca64206.test_iter = 10 - ea_naca64206.test_vals = [3.127605, 2.411805, -5505700.000000, 10.591000] + ea_naca64206.test_vals = [3.117653, 2.396440, -5467200.000000, 11.585000] test_list.append(ea_naca64206) #################################### @@ -104,7 +104,7 @@ def main(): discadj_incomp_NACA0012.cfg_dir = "disc_adj_incomp_euler/naca0012" discadj_incomp_NACA0012.cfg_file = "incomp_NACA0012_disc.cfg" discadj_incomp_NACA0012.test_iter = 20 - discadj_incomp_NACA0012.test_vals = [20.000000, -4.093433, -2.686134, 0.000000] + discadj_incomp_NACA0012.test_vals = [20.000000, -4.096681, -2.686537, 0.000000] test_list.append(discadj_incomp_NACA0012) ##################################### @@ -128,7 +128,7 @@ def main(): discadj_incomp_turb_NACA0012_sa.cfg_dir = "disc_adj_incomp_rans/naca0012" discadj_incomp_turb_NACA0012_sa.cfg_file = "turb_naca0012_sa.cfg" discadj_incomp_turb_NACA0012_sa.test_iter = 10 - discadj_incomp_turb_NACA0012_sa.test_vals = [10.000000, -3.846018, -1.031079, 0.000000] + discadj_incomp_turb_NACA0012_sa.test_vals = [10.000000, -3.846020, -1.031079, 0.000000] discadj_incomp_turb_NACA0012_sa.test_vals_aarch64 = [10.000000, -3.846020, -1.031078, 0.000000] test_list.append(discadj_incomp_turb_NACA0012_sa) @@ -150,7 +150,7 @@ def main(): discadj_axisymmetric_rans_nozzle.cfg_dir = "axisymmetric_rans/air_nozzle" discadj_axisymmetric_rans_nozzle.cfg_file = "air_nozzle_restart.cfg" discadj_axisymmetric_rans_nozzle.test_iter = 10 - discadj_axisymmetric_rans_nozzle.test_vals = [9.553798, 4.939170, 7.053482, 2.476177] + discadj_axisymmetric_rans_nozzle.test_vals = [9.738507, 5.143637, 7.119665, 2.505997] discadj_axisymmetric_rans_nozzle.no_restart = True test_list.append(discadj_axisymmetric_rans_nozzle) @@ -217,7 +217,7 @@ def main(): discadj_pitchingNACA0012.cfg_dir = "disc_adj_euler/naca0012_pitching" discadj_pitchingNACA0012.cfg_file = "inv_NACA0012_pitching.cfg" discadj_pitchingNACA0012.test_iter = 4 - discadj_pitchingNACA0012.test_vals = [-1.227073, -1.648410, -0.007541, 0.000012] + discadj_pitchingNACA0012.test_vals = [-1.224823, -1.646695, -0.007573, 0.000012] discadj_pitchingNACA0012.unsteady = True test_list.append(discadj_pitchingNACA0012) @@ -256,7 +256,7 @@ def main(): discadj_heat.cfg_dir = "disc_adj_heat" discadj_heat.cfg_file = "disc_adj_heat.cfg" discadj_heat.test_iter = 10 - discadj_heat.test_vals = [-1.840134, 0.750337, 0.000000, 0.006760] + discadj_heat.test_vals = [-1.999668, 0.670563, 0.000000, 0.006210] discadj_heat.test_vals_aarch64 = [-2.226539, 0.605868, 0.000000, -6.256400] test_list.append(discadj_heat) @@ -299,7 +299,7 @@ def main(): da_sp_pinArray_cht_2d_dp_hf.cfg_dir = "incomp_navierstokes/streamwise_periodic/chtPinArray_2d" da_sp_pinArray_cht_2d_dp_hf.cfg_file = "DA_configMaster.cfg" da_sp_pinArray_cht_2d_dp_hf.test_iter = 100 - da_sp_pinArray_cht_2d_dp_hf.test_vals = [-4.703416, -4.061963, -4.136826] + da_sp_pinArray_cht_2d_dp_hf.test_vals = [-4.754828, -4.058323, -4.137408] da_sp_pinArray_cht_2d_dp_hf.multizone = True test_list.append(da_sp_pinArray_cht_2d_dp_hf) @@ -308,7 +308,7 @@ def main(): da_sp_pinArray_cht_2d_mf.cfg_dir = "incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d" da_sp_pinArray_cht_2d_mf.cfg_file = "configMaster.cfg" da_sp_pinArray_cht_2d_mf.test_iter = 100 - da_sp_pinArray_cht_2d_mf.test_vals = [-4.508582, -1.198591, -1.394041, -18.498530, -0.810948, -6.006116, -19.074586, -49.841067] + da_sp_pinArray_cht_2d_mf.test_vals = [-4.543396, -1.198883, -1.451287, -18.497517, -0.811918, -6.001418, -19.076086, -49.855384] da_sp_pinArray_cht_2d_mf.multizone = True test_list.append(da_sp_pinArray_cht_2d_mf) @@ -317,7 +317,7 @@ def main(): da_unsteadyCHT_cylinder.cfg_dir = "coupled_cht/disc_adj_unsteadyCHT_cylinder" da_unsteadyCHT_cylinder.cfg_file = "chtMaster.cfg" da_unsteadyCHT_cylinder.test_iter = 2 - da_unsteadyCHT_cylinder.test_vals = [-3.508906, -4.317739, -4.241558, -11.836892, -12.862650, 0.000000, 3.688000, 0.295190] + da_unsteadyCHT_cylinder.test_vals = [-3.508906, -4.317739, -4.241558, -11.836892, -12.862640, 0.000000, 3.688000, 0.295190] da_unsteadyCHT_cylinder.test_vals_aarch64 = [-3.508906, -4.317739, -4.241558, -11.836892, -12.862650, 0.000000, 3.688000, 0.295190] da_unsteadyCHT_cylinder.unsteady = True da_unsteadyCHT_cylinder.multizone = True @@ -511,7 +511,7 @@ def main(): pywrapper_CFD_AD_MeshDisp.cfg_dir = "py_wrapper/disc_adj_flow/mesh_disp_sens" pywrapper_CFD_AD_MeshDisp.cfg_file = "configAD_flow.cfg" pywrapper_CFD_AD_MeshDisp.test_iter = 1000 - pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.506016, 1.407249, 0.000000] + pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.496560, 1.440884, 0.000000] pywrapper_CFD_AD_MeshDisp.command = TestCase.Command("mpirun -n 2", "python", "run_adjoint.py --parallel -f") pywrapper_CFD_AD_MeshDisp.timeout = 1600 pywrapper_CFD_AD_MeshDisp.tol = 0.000001 diff --git a/TestCases/rotating/naca0012/rot_NACA0012.cfg b/TestCases/rotating/naca0012/rot_NACA0012.cfg index 54fbc87e5ae..6584205176b 100644 --- a/TestCases/rotating/naca0012/rot_NACA0012.cfg +++ b/TestCases/rotating/naca0012/rot_NACA0012.cfg @@ -52,7 +52,7 @@ MARKER_DESIGNING = ( airfoil ) % ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 1e4 +CFL_NUMBER= 100 CFL_ADAPT= NO CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index a50b91aa9ea..7c5d1fda1f5 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -93,7 +93,7 @@ def main(): channel.cfg_dir = "euler/channel" channel.cfg_file = "inv_channel_RK.cfg" channel.test_iter = 10 - channel.test_vals = [-2.691364, 2.781660, -0.009405, 0.011874] + channel.test_vals = [-2.691660, 2.781413, -0.009401, 0.011862] test_list.append(channel) # NACA0012 @@ -101,7 +101,7 @@ def main(): naca0012.cfg_dir = "euler/naca0012" naca0012.cfg_file = "inv_NACA0012_Roe.cfg" naca0012.test_iter = 20 - naca0012.test_vals = [-4.431325, -3.970055, 0.319205, 0.022299] + naca0012.test_vals = [-4.766184, -4.287722, 0.326688, 0.022661] test_list.append(naca0012) # Supersonic wedge @@ -109,7 +109,7 @@ def main(): wedge.cfg_dir = "euler/wedge" wedge.cfg_file = "inv_wedge_HLLC.cfg" wedge.test_iter = 20 - wedge.test_vals = [-1.368091, 4.302736, -0.243433, 0.042906] + wedge.test_vals = [-1.379426, 4.288828, -0.245341, 0.043244] test_list.append(wedge) # ONERA M6 Wing @@ -117,7 +117,7 @@ def main(): oneram6.cfg_dir = "euler/oneram6" oneram6.cfg_file = "inv_ONERAM6.cfg" oneram6.test_iter = 10 - oneram6.test_vals = [-11.510606, -10.980023, 0.280800, 0.008623] + oneram6.test_vals = [-11.498143, -10.969216, 0.280800, 0.008623] oneram6.timeout = 9600 test_list.append(oneram6) @@ -126,7 +126,7 @@ def main(): fixedCL_naca0012.cfg_dir = "fixed_cl/naca0012" fixedCL_naca0012.cfg_file = "inv_NACA0012.cfg" fixedCL_naca0012.test_iter = 10 - fixedCL_naca0012.test_vals = [-3.848561, 1.688373, 0.301145, 0.019489] + fixedCL_naca0012.test_vals = [-3.837516, 1.700577, 0.301169, 0.019490] test_list.append(fixedCL_naca0012) # Polar sweep of the inviscid NACA0012 @@ -135,7 +135,7 @@ def main(): polar_naca0012.cfg_file = "inv_NACA0012.cfg" polar_naca0012.polar = True polar_naca0012.test_iter = 10 - polar_naca0012.test_vals = [-1.067859, 4.397227, 0.000060, 0.031134] + polar_naca0012.test_vals = [-1.077848, 4.386916, -0.000333, 0.029678] polar_naca0012.test_vals_aarch64 = [-1.063447, 4.401847, 0.000291, 0.031696] polar_naca0012.command = TestCase.Command(exec = "compute_polar.py", param = "-n 1 -i 11") # flaky test on arm64 @@ -147,7 +147,7 @@ def main(): bluntbody.cfg_dir = "euler/bluntbody" bluntbody.cfg_file = "blunt.cfg" bluntbody.test_iter = 20 - bluntbody.test_vals = [0.493297, 6.857373, -0.000026, 1.791394] + bluntbody.test_vals = [0.475378, 6.834898, 0.000000, 1.783956] test_list.append(bluntbody) ########################## @@ -166,7 +166,7 @@ def main(): flatplate.cfg_dir = "navierstokes/flatplate" flatplate.cfg_file = "lam_flatplate.cfg" flatplate.test_iter = 20 - flatplate.test_vals = [-5.097707, 0.381809, 0.001324, 0.027932, 2.361600, -2.333600, 0, 0] + flatplate.test_vals = [-5.097199, 0.382306, 0.001326, 0.027904, 2.361500, -2.333600, 0.000000, 0.000000] test_list.append(flatplate) # Laminar cylinder (steady) @@ -242,7 +242,7 @@ def main(): turb_flatplate.cfg_dir = "rans/flatplate" turb_flatplate.cfg_file = "turb_SA_flatplate.cfg" turb_flatplate.test_iter = 20 - turb_flatplate.test_vals = [-4.312724, -6.737976, -0.187467, 0.057468] + turb_flatplate.test_vals = [-4.316135, -6.737979, -0.187461, 0.057468] test_list.append(turb_flatplate) # FLAT PLATE, WALL FUNCTIONS, COMPRESSIBLE SST @@ -250,7 +250,7 @@ def main(): turb_wallfunction_flatplate_sst.cfg_dir = "wallfunctions/flatplate/compressible_SST" turb_wallfunction_flatplate_sst.cfg_file = "turb_SST_flatplate.cfg" turb_wallfunction_flatplate_sst.test_iter = 10 - turb_wallfunction_flatplate_sst.test_vals = [-4.541884, -1.933249, -1.940974, 0.941214, -1.608738, 1.485909, 10.000000, -1.747280, 0.034237, 0.002426] + turb_wallfunction_flatplate_sst.test_vals = [-4.587729, -1.908761, -1.968077, 0.903297, -1.608475, 1.497162, 10.000000, -1.733571, 0.033374, 0.002430] test_list.append(turb_wallfunction_flatplate_sst) # FLAT PLATE, WALL FUNCTIONS, COMPRESSIBLE SA @@ -258,7 +258,7 @@ def main(): turb_wallfunction_flatplate_sa.cfg_dir = "wallfunctions/flatplate/compressible_SA" turb_wallfunction_flatplate_sa.cfg_file = "turb_SA_flatplate.cfg" turb_wallfunction_flatplate_sa.test_iter = 10 - turb_wallfunction_flatplate_sa.test_vals = [-4.460657, -2.033641, -2.118149, 0.889562, -5.382249, 10.000000, -1.517453, 0.034213, 0.002636] + turb_wallfunction_flatplate_sa.test_vals = [-4.487562, -2.016144, -2.169439, 0.834724, -5.382532, 10.000000, -1.508186, 0.034484, 0.002639] test_list.append(turb_wallfunction_flatplate_sa) # ONERA M6 Wing @@ -266,7 +266,7 @@ def main(): turb_oneram6.cfg_dir = "rans/oneram6" turb_oneram6.cfg_file = "turb_ONERAM6.cfg" turb_oneram6.test_iter = 10 - turb_oneram6.test_vals = [-2.408533, -6.662837, 0.238334, 0.158910, 0] + turb_oneram6.test_vals = [-2.408685, -6.662908, 0.238580, 0.158968, 0.000000] turb_oneram6.timeout = 3200 test_list.append(turb_oneram6) @@ -335,7 +335,7 @@ def main(): axi_rans_air_nozzle_restart.cfg_dir = "axisymmetric_rans/air_nozzle" axi_rans_air_nozzle_restart.cfg_file = "air_nozzle_restart.cfg" axi_rans_air_nozzle_restart.test_iter = 10 - axi_rans_air_nozzle_restart.test_vals = [-12.067037, -6.840810, -8.843191, -3.783401, 0.000000] + axi_rans_air_nozzle_restart.test_vals = [-12.067274, -6.841605, -8.843340, -3.783551, 0.000000] axi_rans_air_nozzle_restart.test_vals_aarch64 = [-12.067037, -6.840810, -8.843191, -3.783401, 0.000000] axi_rans_air_nozzle_restart.tol = 0.0001 test_list.append(axi_rans_air_nozzle_restart) @@ -371,7 +371,7 @@ def main(): inc_euler_naca0012.cfg_dir = "incomp_euler/naca0012" inc_euler_naca0012.cfg_file = "incomp_NACA0012.cfg" inc_euler_naca0012.test_iter = 20 - inc_euler_naca0012.test_vals = [-7.128795, -6.375403, 0.531980, 0.008467] + inc_euler_naca0012.test_vals = [-7.140809, -6.485990, 0.531993, 0.008466] test_list.append(inc_euler_naca0012) # C-D nozzle with pressure inlet and mass flow outlet @@ -379,7 +379,7 @@ def main(): inc_nozzle.cfg_dir = "incomp_euler/nozzle" inc_nozzle.cfg_file = "inv_nozzle.cfg" inc_nozzle.test_iter = 20 - inc_nozzle.test_vals = [-6.363763, -5.566528, -0.005348, 0.126610] + inc_nozzle.test_vals = [-6.623301, -5.844127, -0.023181, 0.126370] test_list.append(inc_nozzle) ############################# @@ -422,7 +422,7 @@ def main(): inc_lam_bend.cfg_dir = "incomp_navierstokes/bend" inc_lam_bend.cfg_file = "lam_bend.cfg" inc_lam_bend.test_iter = 10 - inc_lam_bend.test_vals = [-3.558881, -3.234611, -0.016265, 1.024052] + inc_lam_bend.test_vals = [-3.647474, -3.230291, -0.016108, 1.085750] test_list.append(inc_lam_bend) ############################ @@ -457,7 +457,7 @@ def main(): inc_turb_wallfunction_flatplate_sst.cfg_dir = "wallfunctions/flatplate/incompressible_SST" inc_turb_wallfunction_flatplate_sst.cfg_file = "turb_SST_flatplate.cfg" inc_turb_wallfunction_flatplate_sst.test_iter = 10 - inc_turb_wallfunction_flatplate_sst.test_vals = [-6.512787, -5.722412, -6.414362, -4.223877, -7.162308, -2.044027, 10.000000, -3.059125, 0.001126, 0.003161, 0.000000] + inc_turb_wallfunction_flatplate_sst.test_vals = [-6.881306, -5.729111, -6.724803, -4.242636, -7.162846, -2.044959, 10.000000, -2.877924, 0.001151, 0.003161, 0.000000] test_list.append(inc_turb_wallfunction_flatplate_sst) # FLAT PLATE, WALL FUNCTIONS, INCOMPRESSIBLE SA @@ -465,7 +465,7 @@ def main(): inc_turb_wallfunction_flatplate_sa.cfg_dir = "wallfunctions/flatplate/incompressible_SA" inc_turb_wallfunction_flatplate_sa.cfg_file = "turb_SA_flatplate.cfg" inc_turb_wallfunction_flatplate_sa.test_iter = 10 - inc_turb_wallfunction_flatplate_sa.test_vals = [-6.521493, -5.710967, -6.424313, -4.224459, -9.586823, 10.000000, -3.054800, 0.000999, 0.003759] + inc_turb_wallfunction_flatplate_sa.test_vals = [-6.894429, -5.717193, -6.743475, -4.242550, -9.587276, 10.000000, -2.879802, 0.001021, 0.003759] test_list.append(inc_turb_wallfunction_flatplate_sa) #################### @@ -558,7 +558,7 @@ def main(): schubauer_klebanoff_transition.cfg_dir = "transition/Schubauer_Klebanoff" schubauer_klebanoff_transition.cfg_file = "transitional_BC_model_ConfigFile.cfg" schubauer_klebanoff_transition.test_iter = 10 - schubauer_klebanoff_transition.test_vals = [-8.087369, -13.241874, 0.000055, 0.007992] + schubauer_klebanoff_transition.test_vals = [-8.284308, -13.240273, 0.000057, 0.007982] test_list.append(schubauer_klebanoff_transition) ##################################### @@ -602,7 +602,7 @@ def main(): contadj_fixedCL_naca0012.cfg_dir = "fixed_cl/naca0012" contadj_fixedCL_naca0012.cfg_file = "inv_NACA0012_ContAdj.cfg" contadj_fixedCL_naca0012.test_iter = 100 - contadj_fixedCL_naca0012.test_vals = [0.755070, -4.794630, -0.525290, -0.000238] + contadj_fixedCL_naca0012.test_vals = [0.754936, -4.793625, -0.524550, -0.000227] test_list.append(contadj_fixedCL_naca0012) ################################### @@ -721,7 +721,7 @@ def main(): harmonic_balance.cfg_dir = "harmonic_balance" harmonic_balance.cfg_file = "HB.cfg" harmonic_balance.test_iter = 25 - harmonic_balance.test_vals = [-1.554985, 0.831796, 0.935729, 3.960210] + harmonic_balance.test_vals = [-1.556680, 0.840665, 0.943818, 3.957041] test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil @@ -729,7 +729,7 @@ def main(): hb_rans_preconditioning.cfg_dir = "harmonic_balance/hb_rans_preconditioning" hb_rans_preconditioning.cfg_file = "davis.cfg" hb_rans_preconditioning.test_iter = 25 - hb_rans_preconditioning.test_vals = [-1.902097, 0.484069, 0.601483, 3.609005, -5.949359] + hb_rans_preconditioning.test_vals = [-1.902097, 0.484069, 0.601483, 3.609005, -5.949355] test_list.append(hb_rans_preconditioning) ###################################### @@ -741,7 +741,7 @@ def main(): rot_naca0012.cfg_dir = "rotating/naca0012" rot_naca0012.cfg_file = "rot_NACA0012.cfg" rot_naca0012.test_iter = 25 - rot_naca0012.test_vals = [-2.738864, 2.811401, -0.080279, 0.002160] + rot_naca0012.test_vals = [-2.652788, 2.892380, -0.080956, 0.002642] test_list.append(rot_naca0012) # Lid-driven cavity @@ -778,7 +778,7 @@ def main(): sine_gust.cfg_dir = "gust" sine_gust.cfg_file = "inv_gust_NACA0012.cfg" sine_gust.test_iter = 5 - sine_gust.test_vals = [-1.977514, 3.481817, -0.010465, -0.007859] + sine_gust.test_vals = [-1.977498, 3.481833, -0.014402, -0.007402] sine_gust.unsteady = True test_list.append(sine_gust) @@ -787,7 +787,7 @@ def main(): aeroelastic.cfg_dir = "aeroelastic" aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" aeroelastic.test_iter = 2 - aeroelastic.test_vals = [0.074291, 0.027620, -0.001641, -0.000128] + aeroelastic.test_vals = [0.074421, 0.027617, -0.001641, -0.000128] aeroelastic.unsteady = True test_list.append(aeroelastic) @@ -796,7 +796,7 @@ def main(): ddes_flatplate.cfg_dir = "ddes/flatplate" ddes_flatplate.cfg_file = "ddes_flatplate.cfg" ddes_flatplate.test_iter = 10 - ddes_flatplate.test_vals = [-2.714786, -5.882646, -0.215041, 0.023758, 0] + ddes_flatplate.test_vals = [-2.714713, -5.788301, -0.214960, 0.023758, 0.000000] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) @@ -814,7 +814,7 @@ def main(): unst_deforming_naca0012.cfg_dir = "disc_adj_euler/naca0012_pitching_def" unst_deforming_naca0012.cfg_file = "inv_NACA0012_pitching_deform.cfg" unst_deforming_naca0012.test_iter = 5 - unst_deforming_naca0012.test_vals = [-3.665187, -3.793258, -3.716457, -3.148323] + unst_deforming_naca0012.test_vals = [-3.665119, -3.793146, -3.716393, -3.148226] unst_deforming_naca0012.unsteady = True test_list.append(unst_deforming_naca0012) @@ -827,7 +827,7 @@ def main(): ls89_sa.cfg_dir = "nicf/LS89" ls89_sa.cfg_file = "turb_SA_PR.cfg" ls89_sa.test_iter = 20 - ls89_sa.test_vals = [-5.050483, -13.371791, 0.174939, 0.430757] + ls89_sa.test_vals = [-5.050483, -13.371790, 0.174939, 0.430757] test_list.append(ls89_sa) # Rarefaction shock wave edge_VW @@ -835,7 +835,7 @@ def main(): edge_VW.cfg_dir = "nicf/edge" edge_VW.cfg_file = "edge_VW.cfg" edge_VW.test_iter = 20 - edge_VW.test_vals = [-0.768929, 5.433202, -0.000628, 0.000000] + edge_VW.test_vals = [-0.772250, 5.429879, -0.000470, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR @@ -843,7 +843,7 @@ def main(): edge_PPR.cfg_dir = "nicf/edge" edge_PPR.cfg_file = "edge_PPR.cfg" edge_PPR.test_iter = 20 - edge_PPR.test_vals = [-2.017812, 4.174560, 0.000019, 0.000000] + edge_PPR.test_vals = [-2.126694, 4.066051, -0.000013, 0.000000] test_list.append(edge_PPR) @@ -910,7 +910,7 @@ def main(): uniform_flow.cfg_dir = "sliding_interface/uniform_flow" uniform_flow.cfg_file = "uniform_NN.cfg" uniform_flow.test_iter = 2 - uniform_flow.test_vals = [2.000000, 0.000000, -0.202598, -13.248144] + uniform_flow.test_vals = [2.000000, 0.000000, -0.230682, -13.249405] uniform_flow.tol = 0.000001 uniform_flow.unsteady = True uniform_flow.multizone = True @@ -921,7 +921,7 @@ def main(): channel_2D.cfg_dir = "sliding_interface/channel_2D" channel_2D.cfg_file = "channel_2D_WA.cfg" channel_2D.test_iter = 2 - channel_2D.test_vals = [2.000000, 0.000000, 0.417404, 0.350501, 0.401519] + channel_2D.test_vals = [2.000000, 0.000000, 0.397982, 0.351407, 0.405768] channel_2D.timeout = 100 channel_2D.unsteady = True channel_2D.multizone = True @@ -932,7 +932,7 @@ def main(): channel_3D.cfg_dir = "sliding_interface/channel_3D" channel_3D.cfg_file = "channel_3D_WA.cfg" channel_3D.test_iter = 1 - channel_3D.test_vals = [1.000000, 0.000000, 0.656358, 0.766909, 0.690972] + channel_3D.test_vals = [1.000000, 0.000000, 0.611989, 0.798999, 0.702438] channel_3D.unsteady = True channel_3D.multizone = True test_list.append(channel_3D) @@ -942,7 +942,7 @@ def main(): pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 - pipe.test_vals = [0.477630, 0.641341, 0.983336, 1.018856] + pipe.test_vals = [0.451122, 0.554840, 0.973242, 1.013943] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) @@ -952,7 +952,7 @@ def main(): rotating_cylinders.cfg_dir = "sliding_interface/rotating_cylinders" rotating_cylinders.cfg_file = "rot_cylinders_WA.cfg" rotating_cylinders.test_iter = 3 - rotating_cylinders.test_vals = [3.000000, 0.000000, 0.719778, 1.111044, 1.154068] + rotating_cylinders.test_vals = [3.000000, 0.000000, 0.718820, 1.111415, 1.154851] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) @@ -962,7 +962,7 @@ def main(): supersonic_vortex_shedding.cfg_dir = "sliding_interface/supersonic_vortex_shedding" supersonic_vortex_shedding.cfg_file = "sup_vor_shed_WA.cfg" supersonic_vortex_shedding.test_iter = 5 - supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.206774, 1.053444] + supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.199633, 1.050815] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) @@ -1040,7 +1040,7 @@ def main(): fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" fsi2d.cfg_file = "configFSI.cfg" fsi2d.test_iter = 4 - fsi2d.test_vals = [4.000000, 0.000000, -3.726050, -4.277800] + fsi2d.test_vals = [4.000000, 0.000000, -3.725520, -4.278999] fsi2d.multizone = True fsi2d.unsteady = True test_list.append(fsi2d) @@ -1050,7 +1050,7 @@ def main(): stat_fsi.cfg_dir = "fea_fsi/stat_fsi" stat_fsi.cfg_file = "config.cfg" stat_fsi.test_iter = 7 - stat_fsi.test_vals = [-3.343487, -4.993604, 0.000000, 7.000000] + stat_fsi.test_vals = [-3.336320, -4.991964, 0.000000, 7.000000] stat_fsi.multizone = True test_list.append(stat_fsi) @@ -1059,7 +1059,7 @@ def main(): stat_fsi_restart.cfg_dir = "fea_fsi/stat_fsi" stat_fsi_restart.cfg_file = "config_restart.cfg" stat_fsi_restart.test_iter = 1 - stat_fsi_restart.test_vals = [-3.405333, -4.327317, 0.000000, 26.000000] + stat_fsi_restart.test_vals = [-3.401553, -4.672932, 0.000000, 26.000000] stat_fsi_restart.multizone = True test_list.append(stat_fsi_restart) @@ -1068,7 +1068,7 @@ def main(): dyn_fsi.cfg_dir = "fea_fsi/dyn_fsi" dyn_fsi.cfg_file = "config.cfg" dyn_fsi.test_iter = 4 - dyn_fsi.test_vals = [-4.330908, -4.153034, 0.000000, 86.000000] + dyn_fsi.test_vals = [-4.328792, -4.153179, 0.000000, 85.000000] dyn_fsi.multizone = True dyn_fsi.unsteady = True test_list.append(dyn_fsi) @@ -1079,7 +1079,7 @@ def main(): airfoilRBF.cfg_file = "config.cfg" airfoilRBF.test_iter = 1 - airfoilRBF.test_vals = [1.000000, 0.087829, -3.377221] + airfoilRBF.test_vals = [1.000000, 0.086004, -3.365759] airfoilRBF.tol = 0.0001 airfoilRBF.multizone = True test_list.append(airfoilRBF) @@ -1477,7 +1477,7 @@ def main(): opt_multiobj1surf_py.cfg_dir = "optimization_euler/multiobjective_wedge" opt_multiobj1surf_py.cfg_file = "inv_wedge_ROE_multiobj_1surf.cfg" opt_multiobj1surf_py.test_iter = 1 - opt_multiobj1surf_py.test_vals = [1.000000, 1.000000, 36.139240, 4.307073] + opt_multiobj1surf_py.test_vals = [1.000000, 1.000000, 36.122920, 4.611743] opt_multiobj1surf_py.command = TestCase.Command(exec = "shape_optimization.py", param = "-g CONTINUOUS_ADJOINT -f") opt_multiobj1surf_py.timeout = 1600 opt_multiobj1surf_py.tol = 0.00001 @@ -1490,7 +1490,7 @@ def main(): opt_2surf1obj_py.cfg_dir = "optimization_euler/multiobjective_wedge" opt_2surf1obj_py.cfg_file = "inv_wedge_ROE_2surf_1obj.cfg" opt_2surf1obj_py.test_iter = 1 - opt_2surf1obj_py.test_vals = [1.000000, 1.000000, 2.005099, 0.000358] + opt_2surf1obj_py.test_vals = [1.000000, 1.000000, 2.005099, 0.000383] opt_2surf1obj_py.command = TestCase.Command(exec = "shape_optimization.py", param = "-g CONTINUOUS_ADJOINT -f") opt_2surf1obj_py.timeout = 1600 opt_2surf1obj_py.tol = 0.00001 @@ -1507,7 +1507,7 @@ def main(): pywrapper_naca0012.cfg_dir = "euler/naca0012" pywrapper_naca0012.cfg_file = "inv_NACA0012_Roe.cfg" pywrapper_naca0012.test_iter = 20 - pywrapper_naca0012.test_vals = [-4.431325, -3.970055, 0.319205, 0.022299] + pywrapper_naca0012.test_vals = [-4.766184, -4.287722, 0.326688, 0.022661] pywrapper_naca0012.command = TestCase.Command(exec = "SU2_CFD.py", param = "-f") pywrapper_naca0012.timeout = 1600 pywrapper_naca0012.tol = 0.00001 @@ -1548,7 +1548,7 @@ def main(): pywrapper_aeroelastic.cfg_dir = "aeroelastic" pywrapper_aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" pywrapper_aeroelastic.test_iter = 2 - pywrapper_aeroelastic.test_vals = [0.074291, 0.027620, -0.001641, -0.000128] + pywrapper_aeroelastic.test_vals = [0.074421, 0.027617, -0.001641, -0.000128] pywrapper_aeroelastic.command = TestCase.Command(exec = "SU2_CFD.py", param = "-f") pywrapper_aeroelastic.timeout = 1600 pywrapper_aeroelastic.tol = 0.00001 @@ -1562,7 +1562,7 @@ def main(): pywrapper_fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" pywrapper_fsi2d.cfg_file = "configFSI.cfg" pywrapper_fsi2d.test_iter = 4 - pywrapper_fsi2d.test_vals = [4.000000, 0.000000, -3.726050, -4.277800] + pywrapper_fsi2d.test_vals = [4.000000, 0.000000, -3.725520, -4.278999] pywrapper_fsi2d.command = TestCase.Command(exec = "SU2_CFD.py", param = "--nZone 2 --fsi True -f") pywrapper_fsi2d.unsteady = True pywrapper_fsi2d.multizone = True @@ -1605,7 +1605,7 @@ def main(): pywrapper_custom_inlet.cfg_dir = "py_wrapper/custom_inlet" pywrapper_custom_inlet.cfg_file = "lam_flatplate.cfg" pywrapper_custom_inlet.test_iter = 20 - pywrapper_custom_inlet.test_vals = [-4.120910, -1.540677, -3.567156, 1.342054, -0.748463, 0.161782, -0.012949, 0.516060, -0.529000] + pywrapper_custom_inlet.test_vals = [-4.123206, -1.543215, -3.735006, 1.339481, -0.793478, 0.161210, -0.007009, 0.513560, -0.520570] pywrapper_custom_inlet.command = TestCase.Command(exec = "python", param = "run.py") pywrapper_custom_inlet.timeout = 1600 pywrapper_custom_inlet.tol = 0.0001 diff --git a/TestCases/serial_regression_AD.py b/TestCases/serial_regression_AD.py index e684ea5953e..c9230974d1a 100644 --- a/TestCases/serial_regression_AD.py +++ b/TestCases/serial_regression_AD.py @@ -50,7 +50,7 @@ def main(): discadj_naca0012.cfg_dir = "cont_adj_euler/naca0012" discadj_naca0012.cfg_file = "inv_NACA0012_discadj.cfg" discadj_naca0012.test_iter = 100 - discadj_naca0012.test_vals = [-3.560691, -8.925239, -0.000000, 0.005559] + discadj_naca0012.test_vals = [-3.562611, -8.932639, -0.000000, 0.005608] test_list.append(discadj_naca0012) # Inviscid Cylinder 3D (multiple markers) @@ -58,7 +58,7 @@ def main(): discadj_cylinder3D.cfg_dir = "disc_adj_euler/cylinder3D" discadj_cylinder3D.cfg_file = "inv_cylinder3D.cfg" discadj_cylinder3D.test_iter = 5 - discadj_cylinder3D.test_vals = [-3.780430, -3.745463, -0.000000, 0.000000] + discadj_cylinder3D.test_vals = [-3.702105, -3.895140, -0.000000, 0.000000] test_list.append(discadj_cylinder3D) # Arina nozzle 2D @@ -66,7 +66,7 @@ def main(): discadj_arina2k.cfg_dir = "disc_adj_euler/arina2k" discadj_arina2k.cfg_file = "Arina2KRS.cfg" discadj_arina2k.test_iter = 20 - discadj_arina2k.test_vals = [-3.534947, -3.773294, 0.027242, 0.000000] + discadj_arina2k.test_vals = [-3.254490, -3.495569, 0.052370, 0.000000] test_list.append(discadj_arina2k) ####################################################### @@ -98,7 +98,7 @@ def main(): discadj_incomp_NACA0012.cfg_dir = "disc_adj_incomp_euler/naca0012" discadj_incomp_NACA0012.cfg_file = "incomp_NACA0012_disc.cfg" discadj_incomp_NACA0012.test_iter = 20 - discadj_incomp_NACA0012.test_vals = [20.000000, -4.087948, -2.655204, 0.000000] + discadj_incomp_NACA0012.test_vals = [20.000000, -4.091644, -2.655563, 0.000000] test_list.append(discadj_incomp_NACA0012) ##################################### @@ -148,7 +148,7 @@ def main(): discadj_pitchingNACA0012.cfg_dir = "disc_adj_euler/naca0012_pitching" discadj_pitchingNACA0012.cfg_file = "inv_NACA0012_pitching.cfg" discadj_pitchingNACA0012.test_iter = 4 - discadj_pitchingNACA0012.test_vals = [-1.220016, -1.646770, -0.007597, 0.000013] + discadj_pitchingNACA0012.test_vals = [-1.218076, -1.645208, -0.007630, 0.000013] discadj_pitchingNACA0012.unsteady = True test_list.append(discadj_pitchingNACA0012) @@ -157,7 +157,7 @@ def main(): unst_deforming_naca0012.cfg_dir = "disc_adj_euler/naca0012_pitching_def" unst_deforming_naca0012.cfg_file = "inv_NACA0012_pitching_deform_ad.cfg" unst_deforming_naca0012.test_iter = 4 - unst_deforming_naca0012.test_vals = [-1.959357, -1.843601, 2729.700000, 0.000004] + unst_deforming_naca0012.test_vals = [-1.955033, -1.839559, 2900.300000, 0.000004] unst_deforming_naca0012.unsteady = True test_list.append(unst_deforming_naca0012) @@ -183,7 +183,7 @@ def main(): discadj_heat.cfg_dir = "disc_adj_heat" discadj_heat.cfg_file = "disc_adj_heat.cfg" discadj_heat.test_iter = 10 - discadj_heat.test_vals = [-1.956346, 0.721746, 0.000000, 0.007024] + discadj_heat.test_vals = [-2.174678, 0.591525, 0.000000, 0.008748] test_list.append(discadj_heat) ################################### @@ -337,7 +337,7 @@ def main(): pywrapper_CFD_AD_MeshDisp.cfg_dir = "py_wrapper/disc_adj_flow/mesh_disp_sens" pywrapper_CFD_AD_MeshDisp.cfg_file = "configAD_flow.cfg" pywrapper_CFD_AD_MeshDisp.test_iter = 1000 - pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.505330, 1.409290, 0.000000] + pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.496380, 1.441373, 0.000000] pywrapper_CFD_AD_MeshDisp.command = TestCase.Command(exec = "python", param = "run_adjoint.py -f") pywrapper_CFD_AD_MeshDisp.timeout = 1600 pywrapper_CFD_AD_MeshDisp.tol = 0.000001 diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index 2efb33e5c49..17a9596e53e 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -69,7 +69,7 @@ def main(): cht_CR.cfg_dir = "../Tutorials/multiphysics/contact_resistance_cht" cht_CR.cfg_file = "master.cfg" cht_CR.test_iter = 80 - cht_CR.test_vals = [ -8.857438, -9.377593, -10.097769, -2.122358] + cht_CR.test_vals = [-8.606916, -9.227614, -10.411673, -2.114949] cht_CR.multizone = True test_list.append(cht_CR) @@ -80,7 +80,7 @@ def main(): sp_pinArray_2d_mf_hf.cfg_dir = "../Tutorials/incompressible_flow/Inc_Streamwise_Periodic" sp_pinArray_2d_mf_hf.cfg_file = "sp_pinArray_2d_mf_hf.cfg" sp_pinArray_2d_mf_hf.test_iter = 25 - sp_pinArray_2d_mf_hf.test_vals = [-4.613682, 1.471278, -0.748987, 241.667177] + sp_pinArray_2d_mf_hf.test_vals = [-4.666594, 1.403293, -0.758331, 241.626886] test_list.append(sp_pinArray_2d_mf_hf) # 2D pin case pressure drop periodic with heatflux BC and temperature periodicity @@ -88,7 +88,7 @@ def main(): sp_pinArray_2d_dp_hf_tp.cfg_dir = "../Tutorials/incompressible_flow/Inc_Streamwise_Periodic" sp_pinArray_2d_dp_hf_tp.cfg_file = "sp_pinArray_2d_dp_hf_tp.cfg" sp_pinArray_2d_dp_hf_tp.test_iter = 25 - sp_pinArray_2d_dp_hf_tp.test_vals = [-4.640621, 1.436697, -0.707302, 208.023676] + sp_pinArray_2d_dp_hf_tp.test_vals = [-4.718616, 1.341279, -0.716655, 208.023676] test_list.append(sp_pinArray_2d_dp_hf_tp) # 90 degree pipe bend with wall functions from the experiments of Sudo et al. @@ -96,7 +96,7 @@ def main(): sudo_tutorial.cfg_dir = "../Tutorials/incompressible_flow/Inc_Turbulent_Bend_Wallfunctions" sudo_tutorial.cfg_file = "sudo.cfg" sudo_tutorial.test_iter = 10 - sudo_tutorial.test_vals = [-14.286992, -12.868418, -13.150195, -13.036596, -13.027783, -9.510980, 15.000000, -2.288151] + sudo_tutorial.test_vals = [-14.664419, -12.789769, -13.280336, -13.016392, -13.018817, -9.510066, 15.000000, -1.994192] sudo_tutorial.command = TestCase.Command("mpirun -n 2", "SU2_CFD") test_list.append(sudo_tutorial) @@ -105,7 +105,7 @@ def main(): sudo_design_primal.cfg_dir = "../Tutorials/design/Inc_Turbulent_Bend_Wallfunctions" sudo_design_primal.cfg_file = "sudo_primal.cfg" sudo_design_primal.test_iter = 10 - sudo_design_primal.test_vals = [-12.064068, -11.348930, -11.059284, -11.066144, -11.437307, -8.258444, 64.545000] + sudo_design_primal.test_vals = [-12.282828, -11.284608, -11.508705, -10.879281, -11.317890, -8.080709, 64.545000] sudo_design_primal.command = TestCase.Command("mpirun -n 2", "SU2_CFD") test_list.append(sudo_design_primal) @@ -114,7 +114,7 @@ def main(): sudo_design_adjoint.cfg_dir = "../Tutorials/design/Inc_Turbulent_Bend_Wallfunctions" sudo_design_adjoint.cfg_file = "sudo_adjoint.cfg" sudo_design_adjoint.test_iter = 10 - sudo_design_adjoint.test_vals = [-4.118073, -3.680088, -2.567859, -3.440055, -3.710829, -7.211066] + sudo_design_adjoint.test_vals = [-4.380696, -3.296474, -3.098815, -3.195595, -3.737980, -7.327552] sudo_design_adjoint.command = TestCase.Command("mpirun -n 2", "SU2_CFD_AD") test_list.append(sudo_design_adjoint) @@ -134,7 +134,7 @@ def main(): species3_primitiveVenturi.cfg_dir = "../Tutorials/incompressible_flow/Inc_Species_Transport" species3_primitiveVenturi.cfg_file = "species3_primitiveVenturi.cfg" species3_primitiveVenturi.test_iter = 50 - species3_primitiveVenturi.test_vals = [-5.869509, -5.252493, -5.127926, -5.912790, -1.767067, -6.152558, -6.304196, 5.000000, -0.933280, 5.000000, -2.314730, 5.000000, -0.680255, 1.649865, 0.500678, 0.596475, 0.552712] + species3_primitiveVenturi.test_vals = [-6.325258, -5.481481, -5.487951, -6.041510, -1.982216, -6.686450, -6.770227, 5.000000, -0.578086, 5.000000, -2.435371, 5.000000, -0.176851, 1.655677, 0.501807, 0.602254, 0.551616] test_list.append(species3_primitiveVenturi) # 3 species (2 eq) primitive venturi mixing @@ -142,7 +142,7 @@ def main(): DAspecies3_primitiveVenturi.cfg_dir = "../Tutorials/incompressible_flow/Inc_Species_Transport" DAspecies3_primitiveVenturi.cfg_file = "DAspecies3_primitiveVenturi.cfg" DAspecies3_primitiveVenturi.test_iter = 50 - DAspecies3_primitiveVenturi.test_vals = [-7.584508, -7.211527, -6.740742, -6.896386, -11.472089, -10.865347, -10.096770] + DAspecies3_primitiveVenturi.test_vals = [-9.822258, -8.691684, -8.724082, -8.421745, -12.992943, -11.017067, -10.232083] DAspecies3_primitiveVenturi.test_vals_aarch64 = [-7.865411, -7.548131, -7.347978, -7.217536, -11.822422, -10.968444, -10.193225] DAspecies3_primitiveVenturi.command = TestCase.Command("mpirun -n 2", "SU2_CFD_AD") test_list.append(DAspecies3_primitiveVenturi) @@ -164,7 +164,7 @@ def main(): premixed_hydrogen.cfg_dir = "../Tutorials/incompressible_flow/Inc_Combustion/1__premixed_hydrogen" premixed_hydrogen.cfg_file = "H2_burner.cfg" premixed_hydrogen.test_iter = 10 - premixed_hydrogen.test_vals = [-9.809794, -10.369804, -11.044267, -4.332945, -11.883789] + premixed_hydrogen.test_vals = [-9.880667, -10.491791, -11.028989, -4.325192, -11.885386] test_list.append(premixed_hydrogen) ### Compressible Flow @@ -174,7 +174,7 @@ def main(): tutorial_inv_bump.cfg_dir = "../Tutorials/compressible_flow/Inviscid_Bump" tutorial_inv_bump.cfg_file = "inv_channel.cfg" tutorial_inv_bump.test_iter = 0 - tutorial_inv_bump.test_vals = [-1.548003, 3.983585, 0.020973, 0.071064] + tutorial_inv_bump.test_vals = [-1.437425, 4.075857, 0.035200, 0.019230] test_list.append(tutorial_inv_bump) # Inviscid Wedge @@ -182,7 +182,7 @@ def main(): tutorial_inv_wedge.cfg_dir = "../Tutorials/compressible_flow/Inviscid_Wedge" tutorial_inv_wedge.cfg_file = "inv_wedge_HLLC.cfg" tutorial_inv_wedge.test_iter = 0 - tutorial_inv_wedge.test_vals = [-0.864206, 4.850246, -0.245674, 0.043209] + tutorial_inv_wedge.test_vals = [-0.481460, 5.253008, -0.281099, 0.049535] tutorial_inv_wedge.no_restart = True test_list.append(tutorial_inv_wedge) @@ -191,7 +191,7 @@ def main(): tutorial_inv_onera.cfg_dir = "../Tutorials/compressible_flow/Inviscid_ONERAM6" tutorial_inv_onera.cfg_file = "inv_ONERAM6.cfg" tutorial_inv_onera.test_iter = 0 - tutorial_inv_onera.test_vals = [-5.504569, -4.895596, 0.248943, 0.118355] + tutorial_inv_onera.test_vals = [-5.204928, -4.597762, 0.294332, 0.115223] tutorial_inv_onera.no_restart = True test_list.append(tutorial_inv_onera) @@ -218,7 +218,7 @@ def main(): tutorial_turb_flatplate.cfg_dir = "../Tutorials/compressible_flow/Turbulent_Flat_Plate" tutorial_turb_flatplate.cfg_file = "turb_SA_flatplate.cfg" tutorial_turb_flatplate.test_iter = 0 - tutorial_turb_flatplate.test_vals = [-2.258584, -4.901015, -0.429373, 0.201034] + tutorial_turb_flatplate.test_vals = [-2.258584, -4.901015, -0.429401, 0.201034] tutorial_turb_flatplate.no_restart = True test_list.append(tutorial_turb_flatplate) @@ -227,7 +227,7 @@ def main(): tutorial_trans_flatplate.cfg_dir = "../Tutorials/compressible_flow/Transitional_Flat_Plate" tutorial_trans_flatplate.cfg_file = "transitional_BC_model_ConfigFile.cfg" tutorial_trans_flatplate.test_iter = 0 - tutorial_trans_flatplate.test_vals = [-22.021786, -15.330766, 0.000000, 0.023952] #last 4 columns + tutorial_trans_flatplate.test_vals = [-22.021786, -15.330766, 0.000000, 0.023944] tutorial_trans_flatplate.no_restart = True test_list.append(tutorial_trans_flatplate) @@ -236,7 +236,7 @@ def main(): tutorial_trans_flatplate_T3A.cfg_dir = "../Tutorials/compressible_flow/Transitional_Flat_Plate/Langtry_and_Menter/T3A" tutorial_trans_flatplate_T3A.cfg_file = "transitional_LM_model_ConfigFile.cfg" tutorial_trans_flatplate_T3A.test_iter = 20 - tutorial_trans_flatplate_T3A.test_vals = [-5.837370, -2.092243, -3.983811, -0.302357, -1.937550, 1.768072, -3.496905, 0.391385] + tutorial_trans_flatplate_T3A.test_vals = [-5.837372, -2.092248, -3.985588, -0.302343, -1.938059, 1.767906, -3.496887, 0.391359] tutorial_trans_flatplate_T3A.test_vals_aarch64 = [-5.837368, -2.092246, -3.984172, -0.302357, -1.928108, 1.667157, -3.496279, 0.391610] tutorial_trans_flatplate_T3A.no_restart = True test_list.append(tutorial_trans_flatplate_T3A) @@ -246,7 +246,7 @@ def main(): tutorial_trans_flatplate_T3Am.cfg_dir = "../Tutorials/compressible_flow/Transitional_Flat_Plate/Langtry_and_Menter/T3A-" tutorial_trans_flatplate_T3Am.cfg_file = "transitional_LM_model_ConfigFile.cfg" tutorial_trans_flatplate_T3Am.test_iter = 20 - tutorial_trans_flatplate_T3Am.test_vals = [-6.063710, -1.945074, -3.946905, -0.549154, -3.863803, 2.662907, -2.517658, 1.112973] + tutorial_trans_flatplate_T3Am.test_vals = [-5.887367, -1.965182, -3.915982, -0.391858, -3.893196, 2.628116, -2.486582, 1.346060] tutorial_trans_flatplate_T3Am.test_vals_aarch64 = [-6.063726, -1.945088, -3.946923, -0.549166, -3.863794, 2.664439, -2.517601, 1.112978] tutorial_trans_flatplate_T3Am.no_restart = True test_list.append(tutorial_trans_flatplate_T3Am) @@ -274,7 +274,7 @@ def main(): tutorial_turb_oneram6.cfg_dir = "../Tutorials/compressible_flow/Turbulent_ONERAM6" tutorial_turb_oneram6.cfg_file = "turb_ONERAM6.cfg" tutorial_turb_oneram6.test_iter = 0 - tutorial_turb_oneram6.test_vals = [-4.564441, -11.524295, 0.327905, 0.097340] + tutorial_turb_oneram6.test_vals = [-4.564441, -11.533952, 0.330625, 0.097701] test_list.append(tutorial_turb_oneram6) # NICFD Nozzle @@ -282,7 +282,7 @@ def main(): tutorial_nicfd_nozzle.cfg_dir = "../Tutorials/compressible_flow/NICFD_nozzle" tutorial_nicfd_nozzle.cfg_file = "NICFD_nozzle.cfg" tutorial_nicfd_nozzle.test_iter = 20 - tutorial_nicfd_nozzle.test_vals = [-2.056675, -2.120178, 3.756865, 0.000000, 0.000000] + tutorial_nicfd_nozzle.test_vals = [-2.258703, -2.317269, 3.711051, 0.000000, 0.000000] tutorial_nicfd_nozzle.no_restart = True test_list.append(tutorial_nicfd_nozzle) @@ -291,7 +291,7 @@ def main(): tutorial_nicfd_nozzle_pinn.cfg_dir = "../Tutorials/compressible_flow/NICFD_nozzle/PhysicsInformed" tutorial_nicfd_nozzle_pinn.cfg_file = "config_NICFD_PINN.cfg" tutorial_nicfd_nozzle_pinn.test_iter = 20 - tutorial_nicfd_nozzle_pinn.test_vals = [-3.183101, -1.639749, -1.274703, 2.444611, -11.769635] + tutorial_nicfd_nozzle_pinn.test_vals = [-3.181747, -1.638856, -1.277037, 2.445964, -11.769570] tutorial_nicfd_nozzle_pinn.no_restart = True test_list.append(tutorial_nicfd_nozzle_pinn) @@ -322,7 +322,7 @@ def main(): tutorial_design_inv_naca0012.cfg_dir = "../Tutorials/design/Inviscid_2D_Unconstrained_NACA0012" tutorial_design_inv_naca0012.cfg_file = "inv_NACA0012_basic.cfg" tutorial_design_inv_naca0012.test_iter = 0 - tutorial_design_inv_naca0012.test_vals = [-3.918503, -3.332494, 0.134359, 0.218097] + tutorial_design_inv_naca0012.test_vals = [-3.585391, -2.989014, 0.169337, 0.235131] tutorial_design_inv_naca0012.no_restart = True test_list.append(tutorial_design_inv_naca0012) diff --git a/TestCases/vandv.py b/TestCases/vandv.py index 540c6e49422..4cce3d8203e 100644 --- a/TestCases/vandv.py +++ b/TestCases/vandv.py @@ -54,7 +54,7 @@ def main(): flatplate_sst1994m.cfg_dir = "vandv/rans/flatplate" flatplate_sst1994m.cfg_file = "turb_flatplate_sst.cfg" flatplate_sst1994m.test_iter = 5 - flatplate_sst1994m.test_vals = [-13.024930, -9.634457, -10.707600, -7.558080, -9.926634, -4.910704, 0.002786] + flatplate_sst1994m.test_vals = [-13.034112, -9.631829, -10.705034, -7.564954, -9.926380, -4.911151, 0.002786] flatplate_sst1994m.test_vals_aarch64 = [-13.024930, -9.634457, -10.707600, -7.558080, -9.926634, -4.910704, 0.002786] test_list.append(flatplate_sst1994m) @@ -63,7 +63,7 @@ def main(): bump_sst1994m.cfg_dir = "vandv/rans/bump_in_channel" bump_sst1994m.cfg_file = "turb_bump_sst.cfg" bump_sst1994m.test_iter = 5 - bump_sst1994m.test_vals = [-13.025265, -10.669816, -10.615338, -7.577125, -10.709448, -5.453868, 0.004903] + bump_sst1994m.test_vals = [-13.058028, -10.648326, -10.605014, -7.606233, -10.707705, -5.453705, 0.004903] bump_sst1994m.test_vals_aarch64 = [-13.025265, -10.669816, -10.615338, -7.577125, -10.709448, -5.453868, 0.004903] test_list.append(bump_sst1994m) @@ -72,7 +72,7 @@ def main(): swbli_sa.cfg_dir = "vandv/rans/swbli" swbli_sa.cfg_file = "config_sa.cfg" swbli_sa.test_iter = 5 - swbli_sa.test_vals = [-11.511278, -10.750583, -11.854073, -10.320108, -14.316261, 0.002238, -1.585354, 1.276300] + swbli_sa.test_vals = [-11.511182, -10.750503, -11.853919, -10.320019, -14.316261, 0.002238, -1.585259, 1.276300] swbli_sa.test_vals_aarch64 = [-11.511278, -10.750583, -11.854073, -10.320108, -14.316261, 0.002238, -1.585354, 1.276300] test_list.append(swbli_sa) @@ -94,7 +94,7 @@ def main(): sandiajet_sst.cfg_dir = "vandv/species_transport/sandia_jet" sandiajet_sst.cfg_file = "validation.cfg" sandiajet_sst.test_iter = 5 - sandiajet_sst.test_vals = [-17.198747, -14.117051, -15.599971, -14.054169, -10.364040, -15.739739, 5.000000, -3.100725, 5.000000, -5.353629, 5.000000, -4.200029, 0.000258, 0.000000, 0.000000, 0.000258, 4019.500000, 3918.900000, 49.151000, 51.436000] + sandiajet_sst.test_vals = [-17.167460, -14.133874, -15.538854, -14.038830, -10.311748, -15.739547, 5.000000, -2.916316, 5.000000, -5.380194, 5.000000, -4.153689, 0.000258, 0.000000, 0.000000, 0.000258, 4019.500000, 3918.900000, 49.151000, 51.436000] sandiajet_sst.test_vals_aarch64 = [-17.069026, -13.156800, -15.290567, -11.689831, -9.349978, -14.907311, 5.000000, -2.738947, 5.000000, -4.813747, 5.000000, -3.981740, 0.000259, 0.000000, 0.000000, 0.000259, 4047.400000, 3946.800000, 49.161000, 51.433000] test_list.append(sandiajet_sst) diff --git a/externals/codi b/externals/codi index a0725b2bfd1..c6b039e5c9e 160000 --- a/externals/codi +++ b/externals/codi @@ -1 +1 @@ -Subproject commit a0725b2bfd172e741a07f96b041a5ddf88d441d7 +Subproject commit c6b039e5c9edb7675f90ffc725f9dd8e66571264 diff --git a/externals/medi b/externals/medi index 0cfaf96e7a3..ab3a7688f6d 160000 --- a/externals/medi +++ b/externals/medi @@ -1 +1 @@ -Subproject commit 0cfaf96e7a31a5a8941b97f84198da03a8f8bd7a +Subproject commit ab3a7688f6d518f8d940eb61a341d89f51922ba4 diff --git a/externals/opdi b/externals/opdi index a5e2ac47035..8c897988172 160000 --- a/externals/opdi +++ b/externals/opdi @@ -1 +1 @@ -Subproject commit a5e2ac47035b6b3663f60d5f80b7a9fe62084867 +Subproject commit 8c89798817253abb017d857a0ae7f0520187645c diff --git a/subprojects/MLPCpp b/subprojects/MLPCpp index e19ca0cafb2..c19c53ea2b8 160000 --- a/subprojects/MLPCpp +++ b/subprojects/MLPCpp @@ -1 +1 @@ -Subproject commit e19ca0cafb28c4b7ba5b8cffef42883259b00dc0 +Subproject commit c19c53ea2b85ccfb185f1c6c87044dc0b5bc7ae0