From 332591803a45a0c756b61bc368ffa9473614b999 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 24 Jul 2023 15:09:21 +0200 Subject: [PATCH 001/287] Added preferential diffusion model and additional options for flamelet solution ignition --- Common/include/CConfig.hpp | 48 ++- Common/include/containers/CLookUpTable.hpp | 5 + Common/include/option_structure.hpp | 27 ++ Common/src/CConfig.cpp | 10 +- Common/src/containers/CLookUpTable.cpp | 14 + SU2_CFD/include/fluid/CFluidFlamelet.hpp | 15 +- SU2_CFD/include/fluid/CFluidModel.hpp | 63 ++-- .../solvers/CSpeciesFlameletSolver.hpp | 28 +- SU2_CFD/include/solvers/CSpeciesSolver.hpp | 2 +- SU2_CFD/src/fluid/CFluidFlamelet.cpp | 58 ++- .../src/solvers/CSpeciesFlameletSolver.cpp | 346 ++++++++++++++++-- .../variables/CSpeciesFlameletVariable.cpp | 5 + config_template.cfg | 35 +- 13 files changed, 572 insertions(+), 84 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index dd5bde0606c..a66e94be798 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -1220,8 +1220,12 @@ class CConfig { unsigned short nSpecies_Init; /*!< \brief Number of entries of SPECIES_INIT */ /*--- Additional flamelet solver options ---*/ - su2double flame_init[8]; /*!< \brief Initial solution parameters for flamelet solver.*/ - + FLAMELET_INIT_TYPE flame_init_type = FLAMELET_INIT_TYPE::NONE; /*!< \brief Method for solution ignition for flamelet problems. */ + su2double flame_init[8]; /*!< \brief Flame front initialization parameters. */ + su2double spark_init[6]; /*!< \brief Spark ignition initialization parameters. */ + su2double* spark_reaction_rates; /*!< \brief Source terms for flamelet spark ignition option. */ + bool preferential_diffusion = false; /*!< \brief Preferential diffusion physics for flamelet solver.*/ + /*--- lookup table ---*/ unsigned short n_scalars = 0; /*!< \brief Number of transported scalars for flamelet LUT approach. */ unsigned short n_lookups = 0; /*!< \brief Number of lookup variables, for visualization only. */ @@ -2130,13 +2134,44 @@ class CConfig { /*! * \brief Get the flame initialization. - * (x1,x2,x3) = flame offset. - * (x4,x5,x6) = flame normal, separating unburnt from burnt. + * (x1,x2,x3) = flame offset/spark center location. + * (x4,x5,x6) = flame normal, separating unburnt from burnt or + * spark radius, spark start iteration, spark duration. * (x7) = flame thickness, the length from unburnt to burnt conditions. * (x8) = flame burnt thickness, the length to stay at burnt conditions. - * \return Flame initialization for the flamelet model. + * \return Ignition initialization parameters for the flamelet model. + */ + const su2double* GetFlameInit() const { + switch (flame_init_type) + { + case FLAMELET_INIT_TYPE::FLAME_FRONT: + return flame_init; + break; + case FLAMELET_INIT_TYPE::SPARK: + return spark_init; + break; + default: + return nullptr; + break; + } + } + + /*! + * \brief Get species net reaction rates applied during spark ignition. + */ + const su2double* GetSpark() const { + return spark_reaction_rates; + } + + /*! + * \brief Preferential diffusion combustion problem. + */ + bool GetPreferentialDiffusion() const { return preferential_diffusion; } + + /*! + * \brief Define preferential diffusion combustion problem. */ - const su2double* GetFlameInit() const { return flame_init; } + inline void SetPreferentialDiffusion(bool input) { preferential_diffusion = input; } /*! * \brief Get the number of control variables for flamelet model. @@ -2182,6 +2217,7 @@ class CConfig { if (n_user_sources > 0) return user_source_names[i_user_source]; else return none; } + FLAMELET_INIT_TYPE GetFlameletInitType() const { return flame_init_type; } /*! * \brief Get the number of transported scalars for combustion. */ diff --git a/Common/include/containers/CLookUpTable.hpp b/Common/include/containers/CLookUpTable.hpp index be60704ebfa..0bb2c8a46d9 100644 --- a/Common/include/containers/CLookUpTable.hpp +++ b/Common/include/containers/CLookUpTable.hpp @@ -373,4 +373,9 @@ class CLookUpTable { inline std::pair GetTableLimitsX(unsigned long i_level = 0) const { return limits_table_x[i_level]; } + + /*! + * \brief Check whether provided set of variables are included in the table. + */ + bool CheckForVariables(const std::vector& vars_to_check); }; diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 0a5bdfc8205..ed9a20df717 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1334,10 +1334,37 @@ enum FLAMELET_SCALAR_SOURCES { */ enum FLAMELET_LOOKUP_OPS { TD, /*!< \brief Thermochemical properties (temperature, density, diffusivity, etc.). */ + PD, /*!< \brief Preferential diffusion scalars. */ SOURCES, /*!< \brief Scalar source terms (controlling variables, passive species).*/ LOOKUP, /*!< \brief Passive look-up variables specified in config. */ }; +/*! + * \brief the preferential diffusion scalar indices for the preferential diffusion model. + */ +enum FLAMELET_PREF_DIFF_SCALARS { + I_BETA_PROGVAR, + I_BETA_ENTH_THERMAL, + I_BETA_ENTH, + I_BETA_MIXFRAC, + N_BETA_TERMS, +}; + +/*! + * \brief Flame initialization options for the flamelet solver. + */ +enum class FLAMELET_INIT_TYPE { + FLAME_FRONT, /*!< \brief Straight flame front. */ + SPARK, /*!< \brief Species reaction rate in a set location. */ + NONE, /*!< \brief No ignition, cold flow only. */ +}; + +static const MapType Flamelet_Init_Map = { + MakePair("NONE", FLAMELET_INIT_TYPE::NONE) + MakePair("FLAME_FRONT", FLAMELET_INIT_TYPE::FLAME_FRONT) + MakePair("SPARK", FLAMELET_INIT_TYPE::SPARK) +}; + /*! * \brief Types of subgrid scale models */ diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 23b84730103..f06173bf6b7 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1361,7 +1361,9 @@ void CConfig::SetConfig_Options() { /*!\brief SPECIES_CLIPPING_MIN \n DESCRIPTION: Minimum values for scalar clipping \ingroup Config*/ addDoubleListOption("SPECIES_CLIPPING_MIN", nSpecies_Clipping_Min, Species_Clipping_Min); - /*!\brief FLAME_INIT \n DESCRIPTION: flame initialization using the flamelet model \ingroup Config*/ + /*!\brief FLAME_INIT_METHOD \n DESCRIPTION: Ignition method for flamelet solver \n DEFAULT: no ignition; cold flow only. */ + addEnumOption("FLAME_INIT_METHOD", flame_init_type, Flamelet_Init_Map, FLAMELET_INIT_TYPE::NONE); + /*!\brief FLAME_INIT \n DESCRIPTION: flame front initialization using the flamelet model \ingroup Config*/ /*--- flame offset (x,y,z) ---*/ flame_init[0] = 0.0; flame_init[1] = 0.0; flame_init[2] = 0.0; /*--- flame normal (nx, ny, nz) ---*/ @@ -1370,6 +1372,12 @@ void CConfig::SetConfig_Options() { flame_init[6] = 0.5e-3; flame_init[7] = 1.0; addDoubleArrayOption("FLAME_INIT", 8,flame_init); + /*!\brief SPARK_INIT \n DESCRIPTION: spark initialization using the flamelet model \ingroup Config*/ + for (auto iSpark=0u; iSpark<6; ++iSpark) spark_init[iSpark]=0; + addDoubleArrayOption("SPARK_INIT", 6, spark_init); + /*!\brief SPARK_REACTION_RATES \n DESCRIPTION: Net source term values applied to species within spark area during spark ignition. \ingroup Config*/ + addDoubleListOption("SPARK_REACTION_RATES", nSpecies_Init, spark_reaction_rates); + /*--- Options related to mass diffusivity and thereby the species solver. ---*/ /*!\brief DIFFUSIVITY_MODEL\n DESCRIPTION: mass diffusivity model \n DEFAULT constant disffusivity \ingroup Config*/ diff --git a/Common/src/containers/CLookUpTable.cpp b/Common/src/containers/CLookUpTable.cpp index bff408de8d0..bddc1abdf3d 100644 --- a/Common/src/containers/CLookUpTable.cpp +++ b/Common/src/containers/CLookUpTable.cpp @@ -800,3 +800,17 @@ bool CLookUpTable::IsInTriangle(su2double val_CV1, su2double val_CV2, unsigned l return (abs(area_tri - (area_0 + area_1 + area_2)) < area_tri * 1e-10); } + +bool CLookUpTable::CheckForVariables(const std::vector& vars_to_check) { + bool variables_are_present {true}; + for (auto iVar=0u; iVar scalars_vector; vector varnames_TD, /*!< \brief Lookup names for thermodynamic state variables. */ - varnames_Sources, varnames_LookUp; + varnames_Sources, varnames_LookUp, varnames_PD; vector val_vars_TD, /*!< \brief References to thermodynamic state variables. */ - val_vars_Sources, val_vars_LookUp; + val_vars_Sources, val_vars_LookUp, val_vars_PD; void PreprocessLookUp(CConfig* config); @@ -127,4 +130,10 @@ class CFluidFlamelet final : public CFluidModel { * \param[out] Mu - value of the laminar viscosity */ inline su2double GetLaminarViscosity() override { return Mu; } + + /*! + * \brief Preferential diffusion as relevant phenomenon in flamelet simulations. + * \return Inclusion of preferential diffusion model. + */ + inline bool GetPreferentialDiffusion() const override { return PreferentialDiffusion; }; }; diff --git a/SU2_CFD/include/fluid/CFluidModel.hpp b/SU2_CFD/include/fluid/CFluidModel.hpp index aa7131f468e..b7c152d6828 100644 --- a/SU2_CFD/include/fluid/CFluidModel.hpp +++ b/SU2_CFD/include/fluid/CFluidModel.hpp @@ -46,34 +46,34 @@ class CLookUpTable; */ class CFluidModel { protected: - su2double StaticEnergy{0.0}; /*!< \brief Internal Energy. */ - su2double Entropy{0.0}; /*!< \brief Entropy. */ - su2double Density{0.0}; /*!< \brief Density. */ - su2double Pressure{0.0}; /*!< \brief Pressure. */ - su2double SoundSpeed2{0.0}; /*!< \brief SpeedSound. */ - su2double Temperature{0.0}; /*!< \brief Temperature. */ - su2double dPdrho_e{0.0}; /*!< \brief DpDd_e. */ - su2double dPde_rho{0.0}; /*!< \brief DpDe_d. */ - su2double dTdrho_e{0.0}; /*!< \brief DTDd_e. */ - su2double dTde_rho{0.0}; /*!< \brief DTDe_d. */ - su2double dhdrho_P{0.0}; /*!< \brief DhDrho_p. */ - su2double dhdP_rho{0.0}; /*!< \brief DhDp_rho. */ - su2double dsdrho_P{0.0}; /*!< \brief DsDrho_p. */ - su2double dsdP_rho{0.0}; /*!< \brief DsDp_rho. */ - su2double Cp{0.0}; /*!< \brief Specific Heat Capacity at constant pressure. */ - su2double Cv{0.0}; /*!< \brief Specific Heat Capacity at constant volume. */ - su2double Mu{0.0}; /*!< \brief Laminar viscosity. */ - su2double Mu_Turb{0.0}; /*!< \brief Eddy viscosity provided by a turbulence model. */ - su2double dmudrho_T{0.0}; /*!< \brief Partial derivative of viscosity w.r.t. density. */ - su2double dmudT_rho{0.0}; /*!< \brief Partial derivative of viscosity w.r.t. temperature. */ - su2double Kt{0.0}; /*!< \brief Thermal conductivity. */ - su2double dktdrho_T{0.0}; /*!< \brief Partial derivative of conductivity w.r.t. density. */ - su2double dktdT_rho{0.0}; /*!< \brief Partial derivative of conductivity w.r.t. temperature. */ - su2double mass_diffusivity{0.0}; /*!< \brief Mass Diffusivity */ + su2double StaticEnergy{0.0}; /*!< \brief Internal Energy. */ + su2double Entropy{0.0}; /*!< \brief Entropy. */ + su2double Density{0.0}; /*!< \brief Density. */ + su2double Pressure{0.0}; /*!< \brief Pressure. */ + su2double SoundSpeed2{0.0}; /*!< \brief SpeedSound. */ + su2double Temperature{0.0}; /*!< \brief Temperature. */ + su2double dPdrho_e{0.0}; /*!< \brief DpDd_e. */ + su2double dPde_rho{0.0}; /*!< \brief DpDe_d. */ + su2double dTdrho_e{0.0}; /*!< \brief DTDd_e. */ + su2double dTde_rho{0.0}; /*!< \brief DTDe_d. */ + su2double dhdrho_P{0.0}; /*!< \brief DhDrho_p. */ + su2double dhdP_rho{0.0}; /*!< \brief DhDp_rho. */ + su2double dsdrho_P{0.0}; /*!< \brief DsDrho_p. */ + su2double dsdP_rho{0.0}; /*!< \brief DsDp_rho. */ + su2double Cp{0.0}; /*!< \brief Specific Heat Capacity at constant pressure. */ + su2double Cv{0.0}; /*!< \brief Specific Heat Capacity at constant volume. */ + su2double Mu{0.0}; /*!< \brief Laminar viscosity. */ + su2double Mu_Turb{0.0}; /*!< \brief Eddy viscosity provided by a turbulence model. */ + su2double dmudrho_T{0.0}; /*!< \brief Partial derivative of viscosity w.r.t. density. */ + su2double dmudT_rho{0.0}; /*!< \brief Partial derivative of viscosity w.r.t. temperature. */ + su2double Kt{0.0}; /*!< \brief Thermal conductivity. */ + su2double dktdrho_T{0.0}; /*!< \brief Partial derivative of conductivity w.r.t. density. */ + su2double dktdT_rho{0.0}; /*!< \brief Partial derivative of conductivity w.r.t. temperature. */ + su2double mass_diffusivity{0.0}; /*!< \brief Mass Diffusivity */ unique_ptr LaminarViscosity; /*!< \brief Laminar Viscosity Model */ unique_ptr ThermalConductivity; /*!< \brief Thermal Conductivity Model */ - unique_ptr MassDiffusivity; /*!< \brief Mass Diffusivity Model */ + unique_ptr MassDiffusivity; /*!< \brief Mass Diffusivity Model */ /*! * \brief Instantiate the right type of viscosity model based on config. @@ -147,7 +147,10 @@ class CFluidModel { * \brief Evaluate data manifold for flamelet or data-driven fluid problems. * \param[in] input - input data for manifold regression. */ - virtual unsigned long EvaluateDataSet(const vector &input_scalar, unsigned short lookup_type, vector &output_refs) { return 0; } + virtual unsigned long EvaluateDataSet(const vector& input_scalar, unsigned short lookup_type, + vector& output_refs) { + return 0; + } /*! * \brief Get fluid dynamic viscosity. @@ -331,7 +334,7 @@ class CFluidModel { * \brief Virtual member. * \param[in] T - Temperature value at the point. */ - virtual void SetTDState_T(su2double val_Temperature, const su2double* val_scalars = nullptr) { } + virtual void SetTDState_T(su2double val_Temperature, const su2double* val_scalars = nullptr) {} /*! * \brief Set fluid eddy viscosity provided by a turbulence model needed for computing effective thermal conductivity. @@ -344,6 +347,12 @@ class CFluidModel { */ virtual unsigned long GetExtrapolation() const { return 0; } + /*! + * \brief Preferential diffusion as relevant phenomenon in flamelet simulations. + * \return Inclusion of preferential diffusion model. + */ + virtual bool GetPreferentialDiffusion() const { return false; } + /*! * \brief Get number of Newton solver iterations. * \return Newton solver iteration count at termination. diff --git a/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp b/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp index 514a3c9a863..aa01016bb9b 100644 --- a/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp +++ b/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp @@ -37,7 +37,6 @@ */ class CSpeciesFlameletSolver final : public CSpeciesSolver { private: - vector conjugate_var; /*!< \brief CHT variables for each boundary and vertex. */ bool include_mixture_fraction = false; /*!< \brief include mixture fraction as a controlling variable. */ /*! * \brief Compute the preconditioner for low-Mach flows. @@ -63,8 +62,8 @@ class CSpeciesFlameletSolver final : public CSpeciesSolver { * \param[in] val_enth_out - pointer to output enthalpy variable. * \param[out] Converged - 0 if Newton solver converged, 1 if not. */ - unsigned long GetEnthFromTemp(CFluidModel* fluid_model, su2double const val_temp, - const su2double* scalar_solution, su2double* val_enth_out); + unsigned long GetEnthFromTemp(CFluidModel* fluid_model, su2double const val_temp, const su2double* scalar_solution, + su2double* val_enth_out); /*! * \brief Find maximum progress variable value within the manifold for the current solution. @@ -97,6 +96,17 @@ class CSpeciesFlameletSolver final : public CSpeciesSolver { unsigned long SetScalarLookUps(const CConfig* config, CFluidModel* fluid_model_local, unsigned long iPoint, const vector& scalars); + /*! + * \brief Retrieve the preferential diffusion scalar values from manifold. + * \param[in] config - definition of particular problem. + * \param[in] fluid_model_local - pointer to flamelet fluid model. + * \param[in] iPoint - node ID. + * \param[in] scalars - local scalar solution. + * \return - within manifold bounds (0) or outside manifold bounds (1). + */ + unsigned long SetPreferentialDiffusionScalars(const CConfig* config, CFluidModel* fluid_model_local, + unsigned long iPoint, const vector& scalars); + public: /*! * \brief Constructor. @@ -175,4 +185,16 @@ class CSpeciesFlameletSolver final : public CSpeciesSolver { */ void BC_ConjugateHeat_Interface(CGeometry* geometry, CSolver** solver_container, CNumerics* numerics, CConfig* config, unsigned short val_marker) override; + + /*! + * \brief Compute the viscous fluxes of the flamelet species at a particular edge. + * \param[in] iEdge - Edge for which we want to compute the flux + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + * \note Calls a generic implementation after defining a SolverSpecificNumerics object. + */ + void Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, CNumerics* numerics, + CConfig* config) final; }; diff --git a/SU2_CFD/include/solvers/CSpeciesSolver.hpp b/SU2_CFD/include/solvers/CSpeciesSolver.hpp index 1d4eef366de..92a5a26f7a5 100644 --- a/SU2_CFD/include/solvers/CSpeciesSolver.hpp +++ b/SU2_CFD/include/solvers/CSpeciesSolver.hpp @@ -90,7 +90,7 @@ class CSpeciesSolver : public CScalarSolver { * \note Calls a generic implementation after defining a SolverSpecificNumerics object. */ void Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, CNumerics* numerics, - CConfig* config) final; + CConfig* config) override; /*! * \brief Impose the inlet boundary condition. diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index f75a68700a5..6bc2cfdda33 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -93,6 +93,11 @@ CFluidFlamelet::CFluidFlamelet(CConfig* config, su2double value_pressure_operati Pressure = value_pressure_operating; PreprocessLookUp(config); + + config->SetPreferentialDiffusion(PreferentialDiffusion); + if (rank == MASTER_NODE) { + cout << "Preferential diffusion: " << (PreferentialDiffusion ? "Enabled" : "Disabled") << endl; + } } CFluidFlamelet::~CFluidFlamelet() { @@ -106,8 +111,10 @@ CFluidFlamelet::~CFluidFlamelet() { delete iomap_Sources; delete iomap_LookUp; delete lookup_mlp; + if (PreferentialDiffusion) delete iomap_PD; + s #endif - break; + break; default: break; } @@ -187,6 +194,39 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { val_vars_LookUp.resize(n_lookups); for (auto iLookup = 0u; iLookup < n_lookups; iLookup++) varnames_LookUp[iLookup] = config->GetLookupName(iLookup); + /*--- Preferential diffusion scalars ---*/ + varnames_PD.resize(FLAMELET_PREF_DIFF_SCALARS::N_BETA_TERMS); + val_vars_PD.resize(FLAMELET_PREF_DIFF_SCALARS::N_BETA_TERMS); + + varnames_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_PROGVAR] = "Beta_ProgVar"; + varnames_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH_THERMAL] = "Beta_Enth_Thermal"; + varnames_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH] = "Beta_Enth"; + varnames_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_MIXFRAC] = "Beta_MixFrac"; + + val_vars_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_PROGVAR] = beta_progvar; + val_vars_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH_THERMAL] = beta_enth_thermal; + val_vars_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH] = beta_enth; + val_vars_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_MIXFRAC] = beta_mixfrac; + + size_t n_betas{0}; + PreferentialDiffusion = false; + switch (Kind_DataDriven_Method) { + case ENUM_DATADRIVEN_METHOD::LUT: + PreferentialDiffusion = look_up_table->CheckForVariables(varnames_PD); + break; + case ENUM_DATADRIVEN_METHOD::MLP: +#ifdef USE_MLPCPP + for (auto iMLP = 0u; iMLP < config->GetNDataDriven_Files(); iMLP++) { + auto outputMap = lookup_mlp->FindVariableIndices(iMLP, varnames_PD, false); + n_betas += outputMap.size(); + } + PreferentialDiffusion = (n_betas == varnames_PD.size()); +#endif + break; + default: + break; + } + if (Kind_DataDriven_Method == ENUM_DATADRIVEN_METHOD::MLP) { #ifdef USE_MLPCPP iomap_TD = new MLPToolbox::CIOMap(controlling_variable_names, varnames_TD); @@ -195,6 +235,10 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { lookup_mlp->PairVariableswithMLPs(*iomap_TD); lookup_mlp->PairVariableswithMLPs(*iomap_Sources); lookup_mlp->PairVariableswithMLPs(*iomap_LookUp); + if (PreferentialDiffusion) { + iomap_PD = new MLPToolbox::CIOMap(controlling_variable_names, varnames_PD); + lookup_mlp->PairVariableswithMLPs(*iomap_PD); + } #endif } } @@ -207,11 +251,20 @@ unsigned long CFluidFlamelet::EvaluateDataSet(const vector& input_sca vector varnames; vector val_vars; vector refs_vars; + AD::StartPreacc(); + for (auto iCV = 0u; iCV < n_control_vars; iCV++) AD::SetPreaccIn(input_scalar[iCV]); + switch (lookup_type) { case FLAMELET_LOOKUP_OPS::TD: varnames = varnames_TD; #ifdef USE_MLPCPP iomap_Current = iomap_TD; +#endif + break; + case FLAMELET_LOOKUP_OPS::PD: + varnames = varnames_PD; +#ifdef USE_MLPCPP + iomap_Current = iomap_PD; #endif break; case FLAMELET_LOOKUP_OPS::SOURCES: @@ -251,6 +304,7 @@ unsigned long CFluidFlamelet::EvaluateDataSet(const vector& input_sca default: break; } - + for (auto iVar = 0u; iVar < output_refs.size(); iVar++) AD::SetPreaccOut(output_refs[iVar]); + AD::EndPreacc(); return extrapolation; } diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index 2f8297a91a0..3bbe7cd2b49 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -68,9 +68,23 @@ void CSpeciesFlameletSolver::Preprocessing(CGeometry* geometry, CSolver** solver unsigned short RunTime_EqSystem, bool Output) { unsigned long n_not_in_domain_local = 0, n_not_in_domain_global = 0; vector scalars_vector(nVar); - + su2double spark_location[3]; + su2double spark_radius; + unsigned long spark_iter_start, spark_duration; + bool ignition = false; auto* flowNodes = su2staticcast_p(solver_container[FLOW_SOL]->GetNodes()); + /*--- Retrieve spark ignition parameters for spark-type ignition. ---*/ + if (config->GetFlameletInitType() == FLAMELET_INIT_TYPE::SPARK) { + auto spark_init = config->GetFlameInit(); + for (auto iDim = 0u; iDim < 3; ++iDim) spark_location[iDim] = spark_init[iDim]; + spark_radius = spark_init[3]; + spark_iter_start = ceil(spark_init[4]); + spark_duration = ceil(spark_init[5]); + unsigned long iter = config->GetMultizone_Problem() ? config->GetOuterIter() : config->GetInnerIter(); + ignition = ((iter >= spark_iter_start) && (iter <= (spark_iter_start + spark_duration))); + } + SU2_OMP_SAFE_GLOBAL_ACCESS(config->SetGlobalParam(config->GetKind_Solver(), RunTime_EqSystem);) SU2_OMP_FOR_STAT(omp_chunk_size) @@ -81,6 +95,18 @@ void CSpeciesFlameletSolver::Preprocessing(CGeometry* geometry, CSolver** solver /*--- Compute total source terms from the production and consumption. ---*/ unsigned long misses = SetScalarSources(config, fluid_model_local, i_point, scalars_vector); + + if (ignition) { + /*--- Apply source terms within spark radius. ---*/ + su2double dist_from_center = 0; + for (auto iDim = 0u; iDim < nDim; ++iDim) + dist_from_center += pow(geometry->nodes->GetCoord(i_point, iDim) - spark_location[iDim], 2); + if (sqrt(dist_from_center) < spark_radius) { + for (auto iVar = 0u; iVar < nVar; iVar++) + nodes->SetScalarSource(i_point, iVar, nodes->GetScalarSources(i_point)[iVar] + config->GetSpark()[iVar]); + } + } + nodes->SetTableMisses(i_point, misses); n_not_in_domain_local += misses; /*--- Obtain passive look-up scalars. ---*/ @@ -94,6 +120,10 @@ void CSpeciesFlameletSolver::Preprocessing(CGeometry* geometry, CSolver** solver nodes->SetDiffusivity(i_point, fluid_model_local->GetMassDiffusivity(i_scalar), i_scalar); } + /*--- Obtain preferential diffusion scalar values. ---*/ + if (config->GetPreferentialDiffusion()) + SetPreferentialDiffusionScalars(config, fluid_model_local, i_point, scalars_vector); + if (!Output) LinSysRes.SetBlock_Zero(i_point); } END_SU2_OMP_FOR @@ -102,6 +132,21 @@ void CSpeciesFlameletSolver::Preprocessing(CGeometry* geometry, CSolver** solver SU2_MPI::GetComm()); if ((rank == MASTER_NODE) && (n_not_in_domain_global > 0)) cout << "Number of points outside manifold domain: " << n_not_in_domain_global << endl; + + /*--- Compute preferential diffusion scalar gradients. ---*/ + if (config->GetPreferentialDiffusion()) { + switch (config->GetKind_Gradient_Method_Recon()) { + case GREEN_GAUSS: + SetAuxVar_Gradient_GG(geometry, config); + break; + case WEIGHTED_LEAST_SQUARES: + case LEAST_SQUARES: + SetAuxVar_Gradient_LS(geometry, config); + break; + default: + break; + } + } /*--- Clear Residual and Jacobian. Upwind second order reconstruction and gradients ---*/ CommonPreprocessing(geometry, config, Output); } @@ -115,13 +160,22 @@ void CSpeciesFlameletSolver::SetInitialCondition(CGeometry** geometry, CSolver** cout << "Initializing progress variable and total enthalpy (using temperature)" << endl; } - const su2double* flame_init = config->GetFlameInit(); - const su2double flame_offset[3] = {flame_init[0], flame_init[1], flame_init[2]}; - const su2double flame_normal[3] = {flame_init[3], flame_init[4], flame_init[5]}; - const su2double flame_thickness = flame_init[6]; - const su2double flame_burnt_thickness = flame_init[7]; + su2double flame_offset[3] = {0, 0, 0}, flame_normal[3] = {0, 0, 0}, flame_thickness = 0, flame_burnt_thickness = 0, + flamenorm = 0; + bool flame_front_ignition = (config->GetFlameletInitType() == FLAMELET_INIT_TYPE::FLAME_FRONT); + + if (flame_front_ignition) { + /*--- Collect flame front ignition parameters. ---*/ + auto flame_init = config->GetFlameInit(); + for (auto iDim = 0u; iDim < 3; ++iDim) { + flame_offset[iDim] = flame_init[iDim]; + flame_normal[iDim] = flame_init[3 + iDim]; + } + flame_thickness = flame_init[6]; + flame_burnt_thickness = flame_init[7]; + flamenorm = GeometryToolbox::Norm(nDim, flame_normal); + } - const su2double flamenorm = GeometryToolbox::Norm(nDim, flame_normal); const su2double temp_inlet = config->GetInc_Temperature_Init(); su2double enth_inlet = config->GetSpecies_Init()[I_ENTH]; @@ -134,6 +188,19 @@ void CSpeciesFlameletSolver::SetInitialCondition(CGeometry** geometry, CSolver** const auto& cv_name = config->GetControllingVariableName(iCV); cout << "initial condition: " << cv_name << " = " << config->GetSpecies_Init()[iCV] << endl; } + switch (config->GetFlameletInitType()) { + case FLAMELET_INIT_TYPE::FLAME_FRONT: + cout << "Ignition with a straight flame front" << endl; + break; + case FLAMELET_INIT_TYPE::SPARK: + cout << "Ignition with an artificial spark" << endl; + break; + case FLAMELET_INIT_TYPE::NONE: + cout << "No solution ignition (cold flow)" << endl; + break; + default: + break; + } } CFluidModel* fluid_model_local; @@ -157,37 +224,40 @@ void CSpeciesFlameletSolver::SetInitialCondition(CGeometry** geometry, CSolver** for (unsigned long i_point = 0; i_point < nPoint; i_point++) { auto coords = geometry[i_mesh]->nodes->GetCoord(i_point); - /*--- Determine if point is above or below the plane, assuming the normal - is pointing towards the burned region. ---*/ - point_loc = 0.0; - for (unsigned short i_dim = 0; i_dim < geometry[i_mesh]->GetnDim(); i_dim++) { - point_loc += flame_normal[i_dim] * (coords[i_dim] - flame_offset[i_dim]); - } - - /*--- Compute the exact distance from point to plane. ---*/ - point_loc = point_loc / flamenorm; - - /* --- Unburnt region upstream of the flame. --- */ - if (point_loc <= 0) { - scalar_init[I_PROGVAR] = prog_unburnt; - n_points_unburnt_local++; - - /* --- Flame zone where we lineary increase from unburnt to burnt conditions. --- */ - } else if ((point_loc > 0) && (point_loc <= flame_thickness)) { - scalar_init[I_PROGVAR] = prog_unburnt + point_loc * (prog_burnt - prog_unburnt) / flame_thickness; - n_points_flame_local++; - - /* --- Burnt region behind the flame zone. --- */ - } else if ((point_loc > flame_thickness) && (point_loc <= flame_thickness + flame_burnt_thickness)) { - scalar_init[I_PROGVAR] = prog_burnt; - n_points_burnt_local++; - - /* --- Unburnt region downstream of the flame and burnt region. --- */ + if (flame_front_ignition) { + /*--- Determine if point is above or below the plane, assuming the normal + is pointing towards the burned region. ---*/ + point_loc = 0.0; + for (unsigned short i_dim = 0; i_dim < geometry[i_mesh]->GetnDim(); i_dim++) { + point_loc += flame_normal[i_dim] * (coords[i_dim] - flame_offset[i_dim]); + } + + /*--- Compute the exact distance from point to plane. ---*/ + point_loc = point_loc / flamenorm; + + /* --- Unburnt region upstream of the flame. --- */ + if (point_loc <= 0) { + scalar_init[I_PROGVAR] = prog_unburnt; + n_points_unburnt_local++; + + /* --- Flame zone where we lineary increase from unburnt to burnt conditions. --- */ + } else if ((point_loc > 0) && (point_loc <= flame_thickness)) { + scalar_init[I_PROGVAR] = prog_unburnt + point_loc * (prog_burnt - prog_unburnt) / flame_thickness; + n_points_flame_local++; + + /* --- Burnt region behind the flame zone. --- */ + } else if ((point_loc > flame_thickness) && (point_loc <= flame_thickness + flame_burnt_thickness)) { + scalar_init[I_PROGVAR] = prog_burnt; + n_points_burnt_local++; + + /* --- Unburnt region downstream of the flame and burnt region. --- */ + } else { + scalar_init[I_PROGVAR] = prog_unburnt; + n_points_unburnt_local++; + } } else { scalar_init[I_PROGVAR] = prog_unburnt; - n_points_unburnt_local++; } - /* --- Perform manifold evaluation to check whether initial scalar is out-of-bounds. --- */ fluid_model_local->SetTDState_T(temp_inlet, scalar_init); n_not_in_domain_local += fluid_model_local->GetExtrapolation(); @@ -225,9 +295,11 @@ void CSpeciesFlameletSolver::SetInitialCondition(CGeometry** geometry, CSolver** if (rank == MASTER_NODE) { cout << endl; - cout << " Number of points in unburnt region: " << n_points_unburnt_global << "." << endl; - cout << " Number of points in burnt region : " << n_points_burnt_global << "." << endl; - cout << " Number of points in flame zone : " << n_points_flame_global << "." << endl; + if (flame_front_ignition) { + cout << " Number of points in unburnt region: " << n_points_unburnt_global << "." << endl; + cout << " Number of points in burnt region : " << n_points_burnt_global << "." << endl; + cout << " Number of points in flame zone : " << n_points_flame_global << "." << endl; + } if (n_not_in_domain_global > 0) cout << " Initial condition: Number of points outside of table domain: " << n_not_in_domain_global << " !!!" @@ -466,7 +538,7 @@ unsigned long CSpeciesFlameletSolver::SetScalarSources(const CConfig* config, CF unsigned long CSpeciesFlameletSolver::SetScalarLookUps(const CConfig* config, CFluidModel* fluid_model_local, unsigned long iPoint, const vector& scalars) { - /*--- Compute total source terms from the production and consumption. ---*/ + /*--- Retrieve the passive look-up variables from the manifold. ---*/ vector lookup_scalar(config->GetNLookups()); unsigned long misses = fluid_model_local->EvaluateDataSet(scalars, FLAMELET_LOOKUP_OPS::LOOKUP, lookup_scalar); @@ -477,6 +549,202 @@ unsigned long CSpeciesFlameletSolver::SetScalarLookUps(const CConfig* config, CF return misses; } +unsigned long CSpeciesFlameletSolver::SetPreferentialDiffusionScalars(const CConfig* config, + CFluidModel* fluid_model_local, + unsigned long iPoint, + const vector& scalars) { + /*--- Retrieve the preferential diffusion scalar values from the manifold. ---*/ + + vector beta_scalar(FLAMELET_PREF_DIFF_SCALARS::N_BETA_TERMS); + unsigned long misses = fluid_model_local->EvaluateDataSet(scalars, FLAMELET_LOOKUP_OPS::PD, beta_scalar); + + for (auto i_beta = 0u; i_beta < FLAMELET_PREF_DIFF_SCALARS::N_BETA_TERMS; i_beta++) { + nodes->SetAuxVar(iPoint, i_beta, beta_scalar[i_beta]); + } + return misses; +} + +void CSpeciesFlameletSolver::Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, + CNumerics* numerics, CConfig* config) { + /*--- Overloaded viscous residual method which accounts for preferential diffusion. ---*/ + const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT), + PreferentialDiffusion = config->GetPreferentialDiffusion(); + su2double *scalar_i, *scalar_j, *diff_coeff_beta_i, *diff_coeff_beta_j; + scalar_i = new su2double[nVar]; + scalar_j = new su2double[nVar]; + diff_coeff_beta_i = new su2double[nVar], diff_coeff_beta_j = new su2double[nVar]; + + su2activematrix scalar_grad_i(nVar, nDim), scalar_grad_j(nVar, nDim); + + // Number of active transport scalars + auto n_CV = config->GetNControlVars(); + + /*--- Points in edge ---*/ + auto iPoint = geometry->edges->GetNode(iEdge, 0); + auto jPoint = geometry->edges->GetNode(iEdge, 1); + + auto SolverSpecificNumerics = [&](unsigned long iPoint, unsigned long jPoint) { + /*--- Mass diffusivity coefficients. ---*/ + + numerics->SetDiffusionCoeff(nodes->GetDiffusivity(iPoint), nodes->GetDiffusivity(jPoint)); + }; + + /*--- Regular viscous scalar residual computation. ---*/ + + Viscous_Residual_impl(SolverSpecificNumerics, iEdge, geometry, solver_container, numerics, config); + + /*--- Viscous residual due to preferential diffusion ---*/ + if (PreferentialDiffusion) { + /*--- Looping over spatial dimensions to fill in the diffusion scalar gradients. ---*/ + /*--- The scalar gradient is subtracted to account for regular viscous diffusion. ---*/ + for (auto iScalar = 0u; iScalar < n_CV; ++iScalar) { + for (auto iDim = 0u; iDim < nDim; ++iDim) { + switch (iScalar) { + case I_PROGVAR: + scalar_grad_i[iScalar][iDim] = + nodes->GetAuxVarGradient(iPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_PROGVAR, iDim) - + nodes->GetGradient(iPoint, I_PROGVAR, iDim); + scalar_grad_j[iScalar][iDim] = + nodes->GetAuxVarGradient(jPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_PROGVAR, iDim) - + nodes->GetGradient(jPoint, I_PROGVAR, iDim); + break; + case I_ENTH: + scalar_grad_i[iScalar][iDim] = + nodes->GetAuxVarGradient(iPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH, iDim) - + nodes->GetGradient(iPoint, I_ENTH, iDim); + scalar_grad_j[iScalar][iDim] = + nodes->GetAuxVarGradient(jPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH, iDim) - + nodes->GetGradient(jPoint, I_ENTH, iDim); + break; + case I_MIXFRAC: + scalar_grad_i[iScalar][iDim] = + nodes->GetAuxVarGradient(iPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_MIXFRAC, iDim) - + nodes->GetGradient(iPoint, I_MIXFRAC, iDim); + scalar_grad_j[iScalar][iDim] = + nodes->GetAuxVarGradient(jPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_MIXFRAC, iDim) - + nodes->GetGradient(jPoint, I_MIXFRAC, iDim); + break; + default: + break; + } + } + } + /*--- No preferential diffusion modification for passive species. ---*/ + for (auto iScalar = n_CV; iScalar < nVar; ++iScalar) { + for (auto iDim = 0u; iDim < nDim; ++iDim) { + scalar_grad_i[iScalar][iDim] = 0; + scalar_grad_j[iScalar][iDim] = 0; + } + } + + for (auto iScalar = 0u; iScalar < n_CV; ++iScalar) { + /*--- Filling in the preferential diffusion scalars (beta_pv, beta_h2, beta_Z). ---*/ + switch (iScalar) { + case I_PROGVAR: + scalar_i[iScalar] = nodes->GetAuxVar(iPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_PROGVAR) - + nodes->GetSolution(iPoint, iScalar); + scalar_j[iScalar] = nodes->GetAuxVar(jPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_PROGVAR) - + nodes->GetSolution(jPoint, iScalar); + break; + case I_ENTH: + scalar_i[iScalar] = + nodes->GetAuxVar(iPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH) - nodes->GetSolution(iPoint, iScalar); + scalar_j[iScalar] = + nodes->GetAuxVar(jPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH) - nodes->GetSolution(jPoint, iScalar); + break; + case I_MIXFRAC: + scalar_i[iScalar] = nodes->GetAuxVar(iPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_MIXFRAC) - + nodes->GetSolution(iPoint, iScalar); + scalar_j[iScalar] = nodes->GetAuxVar(jPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_MIXFRAC) - + nodes->GetSolution(jPoint, iScalar); + break; + default: + break; + } + diff_coeff_beta_i[iScalar] = nodes->GetDiffusivity(iPoint, iScalar); + diff_coeff_beta_j[iScalar] = nodes->GetDiffusivity(jPoint, iScalar); + } + + for (auto iScalar = n_CV; iScalar < nVar; ++iScalar) { + scalar_i[iScalar] = 0; + scalar_j[iScalar] = 0; + diff_coeff_beta_i[iScalar] = 0; + diff_coeff_beta_j[iScalar] = 0; + } + + numerics->SetScalarVar(scalar_i, scalar_j); + + numerics->SetScalarVarGradient(CMatrixView(scalar_grad_i), CMatrixView(scalar_grad_j)); + + numerics->SetDiffusionCoeff(diff_coeff_beta_i, diff_coeff_beta_j); + + /*--- Computing first preferential residual component. ---*/ + auto residual_PD = numerics->ComputeResidual(config); + + if (ReducerStrategy) { + EdgeFluxes.SubtractBlock(iEdge, residual_PD); + + if (implicit) Jacobian.UpdateBlocksSub(iEdge, residual_PD.jacobian_i, residual_PD.jacobian_j); + } else { + LinSysRes.SubtractBlock(iPoint, residual_PD); + LinSysRes.AddBlock(jPoint, residual_PD); + /*--- Set implicit computation ---*/ + if (implicit) Jacobian.UpdateBlocksSub(iEdge, iPoint, jPoint, residual_PD.jacobian_i, residual_PD.jacobian_j); + } + + /* Computing the second preferential diffusion terms due to heat flux */ + for (auto iScalar = 0u; iScalar < nVar; ++iScalar) { + for (auto iDim = 0u; iDim < nDim; ++iDim) { + if (iScalar == I_ENTH) { + /* Setting the temperature gradient */ + scalar_grad_i[iScalar][iDim] = + solver_container[FLOW_SOL]->GetNodes()->GetGradient_Primitive(iPoint, prim_idx.Temperature(), iDim); + scalar_grad_j[iScalar][iDim] = + solver_container[FLOW_SOL]->GetNodes()->GetGradient_Primitive(jPoint, prim_idx.Temperature(), iDim); + } else { + scalar_grad_i[iScalar][iDim] = 0; + scalar_grad_j[iScalar][iDim] = 0; + } + } + + if (iScalar == I_ENTH) { + scalar_i[iScalar] = solver_container[FLOW_SOL]->GetNodes()->GetTemperature(iPoint); + scalar_j[iScalar] = solver_container[FLOW_SOL]->GetNodes()->GetTemperature(jPoint); + diff_coeff_beta_i[iScalar] = nodes->GetAuxVar(iPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH_THERMAL) * + nodes->GetDiffusivity(iPoint, iScalar); + diff_coeff_beta_j[iScalar] = nodes->GetAuxVar(jPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH_THERMAL) * + nodes->GetDiffusivity(jPoint, iScalar); + } else { + scalar_i[iScalar] = 0; + scalar_j[iScalar] = 0; + diff_coeff_beta_i[iScalar] = 0; + diff_coeff_beta_j[iScalar] = 0; + } + } + + numerics->SetScalarVar(scalar_i, scalar_j); + + numerics->SetScalarVarGradient(CMatrixView(scalar_grad_i), CMatrixView(scalar_grad_j)); + + numerics->SetDiffusionCoeff(diff_coeff_beta_i, diff_coeff_beta_j); + + auto residual_thermal = numerics->ComputeResidual(config); + + if (ReducerStrategy) { + EdgeFluxes.SubtractBlock(iEdge, residual_thermal); + if (implicit) Jacobian.UpdateBlocksSub(iEdge, residual_thermal.jacobian_i, residual_thermal.jacobian_j); + } else { + LinSysRes.SubtractBlock(iPoint, residual_thermal); + LinSysRes.AddBlock(jPoint, residual_thermal); + /* No implicit part for the preferential diffusion of heat */ + } + } + delete[] scalar_i; + delete[] scalar_j; + delete[] diff_coeff_beta_i; + delete[] diff_coeff_beta_j; +} + unsigned long CSpeciesFlameletSolver::GetEnthFromTemp(CFluidModel* fluid_model, su2double const val_temp, const su2double* scalar_solution, su2double* val_enth) { /*--- convergence criterion for temperature in [K], high accuracy needed for restarts. ---*/ diff --git a/SU2_CFD/src/variables/CSpeciesFlameletVariable.cpp b/SU2_CFD/src/variables/CSpeciesFlameletVariable.cpp index 16536909bee..e66ecbbf09e 100644 --- a/SU2_CFD/src/variables/CSpeciesFlameletVariable.cpp +++ b/SU2_CFD/src/variables/CSpeciesFlameletVariable.cpp @@ -53,4 +53,9 @@ CSpeciesFlameletVariable::CSpeciesFlameletVariable(const su2double* species_inf, source_scalar.resize(nPoint, config->GetNScalars()) = su2double(0.0); lookup_scalar.resize(nPoint, config->GetNLookups()) = su2double(0.0); table_misses.resize(nPoint) = 0; + + if (config->GetPreferentialDiffusion()) { + AuxVar.resize(nPoint, FLAMELET_PREF_DIFF_SCALARS::N_BETA_TERMS) = su2double(0.0); + Grad_AuxVar.resize(nPoint, FLAMELET_PREF_DIFF_SCALARS::N_BETA_TERMS, nDim, 0.0); + } } diff --git a/config_template.cfg b/config_template.cfg index 5f4fab871b8..915ca7bc168 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -772,6 +772,11 @@ SPECIES_CLIPPING_MAX= 1.0, ... SPECIES_CLIPPING_MIN= 0.0, ... % --------------------- FLAMELET MODEL -----------------------------% +% The flamelet model uses the prompts INTERPOLATION_METHOD and FILENAMES_INTERPOLATOR +% for definition of the flamelet manifold. Either LUT or MLP can be used as options. +% If the terms "Beta_ProgVar", "Beta_Enth_Thermal", "Beta_Enth", and "Beta_Mixfrac" are +% found in the variables list of the manifold, preferential diffusion is assumed. + % % Names of the user defined (auxiliary) transport equations. USER_SCALAR_NAMES= (Y-CO) @@ -797,8 +802,19 @@ CONTROLLING_VARIABLE_NAMES= (ProgressVariable, EnthalpyTot) % controlling variables without source terms, use "zero" or "null", similar to the % option USER_SOURCE_NAMES. CONTROLLING_VARIABLE_SOURCE_NAMES= (ProdRateTot_PV, NULL) -% -% flamelet initialization + +% Method used to ignite the solution: +% FLAME_FRONT : the flame is initialized using a plane, defined by a point and a normal. On one side, the solution is initialized +% using 'burnt' conditions and on the other side 'unburnt' conditions. The normal points in the direction of the 'burnt' +% condition. +% SPARK : the solution is ignited through application of a set of source terms within a specified region for a set number +% of solver iterations. This artificial spark can be applied after a certain number of iterations has passed, allowing for +% the flow to evolve before igniting the mixture. +% NONE : no artificial solution ignition. +% By default, this option is set to NONE +FLAME_INIT_METHOD= FLAME_FRONT + +% FLAME_FRONT initialization % the flame is initialized using a plane, defined by a point and a normal. On one side, the solution is initialized % using 'burnt' conditions and on the other side 'unburnt' conditions. The normal points in the direction of the 'burnt' % condition. @@ -807,6 +823,21 @@ CONTROLLING_VARIABLE_SOURCE_NAMES= (ProdRateTot_PV, NULL) % (x7) = thickness of the reaction zone, this is the transition from unburnt to burnt conditions. % (x8) = Thickness of the 'burnt' zone, after this length, the conditions will be 'unburnt' again. FLAME_INIT= (0.004, 0.0, 0.0, 1.0, 0.0, 0.0, 0.2e-3, 1.0) + +% SPARK initialization +% the solution is ignited through application of a set of source terms within a specified region for a set number +% of solver iterations. This artificial spark can be applied after a certain number of iterations has passed, allowing for +% the flow to evolve before igniting the mixture. +% (x1,x2,x3) = spark center location. +% (x4) = spark radius where within the artificial spark is applied. +% (x5,x6) = spark iteration start and number of iterations in which the artifical spark is applied. For single-zone problems +% the number of iterations are inner-loop iterations, for multi-zone problems, outer-loop iterations are considered. +SPARK_INIT= (0.004, 0.0, 0.0, 1e-4, 100, 10) + +% Source terms (density times species time rate of change) applied to the species equations in the spark region for the duration of the spark. +% The number of terms should equate the total number of species in the flamelet problem. +SPARK_REACTION_RATES= (1000, 0, 0) + % % --------------------- INVERSE DESIGN SIMULATION -----------------------------% % From 78f995c1d06dcece5cde5d2c0e5fc6c45fee60c6 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Wed, 26 Jul 2023 10:39:15 +0200 Subject: [PATCH 002/287] buf fix for spark initialization method --- Common/src/CConfig.cpp | 3 ++- SU2_CFD/src/fluid/CFluidFlamelet.cpp | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index f06173bf6b7..f49232bf521 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1375,8 +1375,9 @@ void CConfig::SetConfig_Options() { /*!\brief SPARK_INIT \n DESCRIPTION: spark initialization using the flamelet model \ingroup Config*/ for (auto iSpark=0u; iSpark<6; ++iSpark) spark_init[iSpark]=0; addDoubleArrayOption("SPARK_INIT", 6, spark_init); + unsigned short dummy; /*!\brief SPARK_REACTION_RATES \n DESCRIPTION: Net source term values applied to species within spark area during spark ignition. \ingroup Config*/ - addDoubleListOption("SPARK_REACTION_RATES", nSpecies_Init, spark_reaction_rates); + addDoubleListOption("SPARK_REACTION_RATES", dummy, spark_reaction_rates); /*--- Options related to mass diffusivity and thereby the species solver. ---*/ diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index 6bc2cfdda33..81cca434cce 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -112,7 +112,6 @@ CFluidFlamelet::~CFluidFlamelet() { delete iomap_LookUp; delete lookup_mlp; if (PreferentialDiffusion) delete iomap_PD; - s #endif break; default: From 63270c4ca80c94248169269530c0c57a832ab4c8 Mon Sep 17 00:00:00 2001 From: bigfooted Date: Tue, 15 Aug 2023 09:44:38 +0200 Subject: [PATCH 003/287] first commit, proof of concept --- SU2_CFD/src/drivers/CSinglezoneDriver.cpp | 7 +++++-- SU2_CFD/src/iteration/CFluidIteration.cpp | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/SU2_CFD/src/drivers/CSinglezoneDriver.cpp b/SU2_CFD/src/drivers/CSinglezoneDriver.cpp index c1f2c2519c8..bfe399d0747 100644 --- a/SU2_CFD/src/drivers/CSinglezoneDriver.cpp +++ b/SU2_CFD/src/drivers/CSinglezoneDriver.cpp @@ -30,6 +30,8 @@ #include "../../include/output/COutput.hpp" #include "../../include/iteration/CIteration.hpp" + + CSinglezoneDriver::CSinglezoneDriver(char* confFile, unsigned short val_nZone, SU2_Comm MPICommunicator) : CDriver(confFile, @@ -45,6 +47,7 @@ CSinglezoneDriver::~CSinglezoneDriver() = default; void CSinglezoneDriver::StartSolver() { + StartTime = SU2_MPI::Wtime(); config_container[ZONE_0]->Set_StartTime(StartTime); @@ -66,8 +69,8 @@ void CSinglezoneDriver::StartSolver() { TimeIter = config_container[ZONE_0]->GetRestart_Iter(); /*--- Run the problem until the number of time iterations required is reached. ---*/ - while ( TimeIter < config_container[ZONE_0]->GetnTime_Iter() ) { - + /*--- or until a SIGTERM signal stops the loop. We catch SIGTERM and exit gracefully ---*/ + while ( TimeIter < config_container[ZONE_0]->GetnTime_Iter()) { /*--- Perform some preprocessing before starting the time-step simulation. ---*/ Preprocess(TimeIter); diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index cde93a085bb..2321cd80d24 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -25,9 +25,21 @@ * License along with SU2. If not, see . */ +#include +#include + #include "../../include/iteration/CFluidIteration.hpp" #include "../../include/output/COutput.hpp" +volatile sig_atomic_t stop; + +void signalHandler( int signum ) { + cout << "NIJSO: Interrupt signal (" << signum << ") received.\n"; + // cleanup and close up stuff here + stop = 1; + // terminate program + //exit(signum); +} void CFluidIteration::Preprocess(COutput* output, CIntegration**** integration, CGeometry**** geometry, CSolver***** solver, CNumerics****** numerics, CConfig** config, CSurfaceMovement** surface_movement, CVolumetricMovement*** grid_movement, @@ -254,6 +266,7 @@ void CFluidIteration::Solve(COutput* output, CIntegration**** integration, CGeom unsigned long Inner_Iter, nInner_Iter = config[val_iZone]->GetnInner_Iter(); bool StopCalc = false; + signal(SIGTERM, signalHandler); /*--- Synchronization point before a single solver iteration. Compute the wall clock time required. ---*/ @@ -283,6 +296,9 @@ void CFluidIteration::Solve(COutput* output, CIntegration**** integration, CGeom Output(output, geometry, solver, config, Inner_Iter, StopCalc, val_iZone, val_iInst); } + /*--- If signal was sent, we set stopcalc to force writing the files ---*/ + if (stop == 1) StopCalc = true; + /*--- If the iteration has converged, break the loop ---*/ if (StopCalc) break; } From 7be05edddb0f5cbf4553c43cbcb99c0df7201ca3 Mon Sep 17 00:00:00 2001 From: bigfooted Date: Wed, 16 Aug 2023 09:42:07 +0200 Subject: [PATCH 004/287] move signal handler to coutput --- SU2_CFD/src/drivers/CSinglezoneDriver.cpp | 3 --- SU2_CFD/src/iteration/CFluidIteration.cpp | 16 ---------------- SU2_CFD/src/output/COutput.cpp | 17 +++++++++++++++++ 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/SU2_CFD/src/drivers/CSinglezoneDriver.cpp b/SU2_CFD/src/drivers/CSinglezoneDriver.cpp index bfe399d0747..ff89e60a629 100644 --- a/SU2_CFD/src/drivers/CSinglezoneDriver.cpp +++ b/SU2_CFD/src/drivers/CSinglezoneDriver.cpp @@ -30,8 +30,6 @@ #include "../../include/output/COutput.hpp" #include "../../include/iteration/CIteration.hpp" - - CSinglezoneDriver::CSinglezoneDriver(char* confFile, unsigned short val_nZone, SU2_Comm MPICommunicator) : CDriver(confFile, @@ -47,7 +45,6 @@ CSinglezoneDriver::~CSinglezoneDriver() = default; void CSinglezoneDriver::StartSolver() { - StartTime = SU2_MPI::Wtime(); config_container[ZONE_0]->Set_StartTime(StartTime); diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index 2321cd80d24..cde93a085bb 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -25,21 +25,9 @@ * License along with SU2. If not, see . */ -#include -#include - #include "../../include/iteration/CFluidIteration.hpp" #include "../../include/output/COutput.hpp" -volatile sig_atomic_t stop; - -void signalHandler( int signum ) { - cout << "NIJSO: Interrupt signal (" << signum << ") received.\n"; - // cleanup and close up stuff here - stop = 1; - // terminate program - //exit(signum); -} void CFluidIteration::Preprocess(COutput* output, CIntegration**** integration, CGeometry**** geometry, CSolver***** solver, CNumerics****** numerics, CConfig** config, CSurfaceMovement** surface_movement, CVolumetricMovement*** grid_movement, @@ -266,7 +254,6 @@ void CFluidIteration::Solve(COutput* output, CIntegration**** integration, CGeom unsigned long Inner_Iter, nInner_Iter = config[val_iZone]->GetnInner_Iter(); bool StopCalc = false; - signal(SIGTERM, signalHandler); /*--- Synchronization point before a single solver iteration. Compute the wall clock time required. ---*/ @@ -296,9 +283,6 @@ void CFluidIteration::Solve(COutput* output, CIntegration**** integration, CGeom Output(output, geometry, solver, config, Inner_Iter, StopCalc, val_iZone, val_iInst); } - /*--- If signal was sent, we set stopcalc to force writing the files ---*/ - if (stop == 1) StopCalc = true; - /*--- If the iteration has converged, break the loop ---*/ if (StopCalc) break; } diff --git a/SU2_CFD/src/output/COutput.cpp b/SU2_CFD/src/output/COutput.cpp index 94d7c0a3cb3..2484908bb2e 100644 --- a/SU2_CFD/src/output/COutput.cpp +++ b/SU2_CFD/src/output/COutput.cpp @@ -25,6 +25,9 @@ * License along with SU2. If not, see . */ +#include +#include + #include "../../../Common/include/geometry/CGeometry.hpp" #include "../../include/solvers/CSolver.hpp" @@ -46,6 +49,13 @@ #include "../../include/output/filewriter/CSU2BinaryFileWriter.hpp" #include "../../include/output/filewriter/CSU2MeshFileWriter.hpp" +volatile sig_atomic_t stop; + +void signalHandler( int signum ) { + cout << "Interrupt signal (" << signum << ") received, saving files and exiting.\n"; + stop = 1; +} + COutput::COutput(const CConfig *config, unsigned short ndim, bool fem_output): rank(SU2_MPI::GetRank()), size(SU2_MPI::GetSize()), @@ -843,6 +853,9 @@ void COutput::PrintConvergenceSummary(){ bool COutput::ConvergenceMonitoring(CConfig *config, unsigned long Iteration) { + /*--- Setup a signal handler for SIGTERM.---*/ + signal(SIGTERM, signalHandler); + convergence = true; for (auto iField_Conv = 0ul; iField_Conv < convFields.size(); iField_Conv++) { @@ -919,9 +932,13 @@ bool COutput::ConvergenceMonitoring(CConfig *config, unsigned long Iteration) { if (convFields.empty() || Iteration < config->GetStartConv_Iter()) convergence = false; + /*--- If a SIGTERM signal is sent to one of the processes, we set convergence to true ---*/ + if (stop == 1) convergence = true; + /*--- Apply the same convergence criteria to all processors. ---*/ unsigned short local = convergence, global = 0; + SU2_MPI::Allreduce(&local, &global, 1, MPI_UNSIGNED_SHORT, MPI_MAX, SU2_MPI::GetComm()); convergence = global > 0; From c3f2da9082f42e2c32a59f0c6166d8fdeda2d5a5 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Wed, 23 Aug 2023 11:31:41 +0200 Subject: [PATCH 005/287] Merged with develop --- SU2_CFD/src/fluid/CFluidFlamelet.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index 6bc2cfdda33..81cca434cce 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -112,7 +112,6 @@ CFluidFlamelet::~CFluidFlamelet() { delete iomap_LookUp; delete lookup_mlp; if (PreferentialDiffusion) delete iomap_PD; - s #endif break; default: From e5e151bbbec7e7a3b0323417f84ed4ce0674bfdd Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Fri, 1 Sep 2023 14:29:44 +0200 Subject: [PATCH 006/287] Pulled the new version of Develop --- Common/src/CConfig.cpp | 3 ++- Common/src/containers/CLookUpTable.cpp | 16 +++++++--------- SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp | 14 +++++++------- config_template.cfg | 18 +++++++++--------- 4 files changed, 25 insertions(+), 26 deletions(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index c7dae5810c4..89fec11d16e 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1375,8 +1375,9 @@ void CConfig::SetConfig_Options() { /*!\brief SPARK_INIT \n DESCRIPTION: spark initialization using the flamelet model \ingroup Config*/ for (auto iSpark=0u; iSpark<6; ++iSpark) spark_init[iSpark]=0; addDoubleArrayOption("SPARK_INIT", 6, spark_init); + unsigned short dummy; /*!\brief SPARK_REACTION_RATES \n DESCRIPTION: Net source term values applied to species within spark area during spark ignition. \ingroup Config*/ - addDoubleListOption("SPARK_REACTION_RATES", nSpecies_Init, spark_reaction_rates); + addDoubleListOption("SPARK_REACTION_RATES", dummy, spark_reaction_rates); /*--- Options related to mass diffusivity and thereby the species solver. ---*/ diff --git a/Common/src/containers/CLookUpTable.cpp b/Common/src/containers/CLookUpTable.cpp index 0321528ac21..698a042a3d5 100644 --- a/Common/src/containers/CLookUpTable.cpp +++ b/Common/src/containers/CLookUpTable.cpp @@ -802,15 +802,13 @@ bool CLookUpTable::IsInTriangle(su2double val_CV1, su2double val_CV2, unsigned l } bool CLookUpTable::CheckForVariables(const std::vector& vars_to_check) { - bool variables_are_present {true}; - for (auto iVar=0u; iVarGetMultizone_Problem() ? config->GetOuterIter() : config->GetInnerIter(); - ignition = ((iter >= spark_iter_start) && (iter <= (spark_iter_start + spark_duration))); + ignition = ((iter >= spark_iter_start) && (iter <= (spark_iter_start + spark_duration)) && !config->GetRestart()); } SU2_OMP_SAFE_GLOBAL_ACCESS(config->SetGlobalParam(config->GetKind_Solver(), RunTime_EqSystem);) @@ -403,8 +403,8 @@ void CSpeciesFlameletSolver::BC_Inlet(CGeometry* geometry, CSolver** solver_cont SU2_OMP_FOR_STAT(OMP_MIN_SIZE) for (auto iVertex = 0u; iVertex < geometry->nVertex[val_marker]; iVertex++) { Inlet_SpeciesVars[val_marker][iVertex][I_ENTH] = enth_inlet; - END_SU2_OMP_FOR } + END_SU2_OMP_FOR /*--- Call the general inlet boundary condition implementation. ---*/ CSpeciesSolver::BC_Inlet(geometry, solver_container, conv_numerics, visc_numerics, config, val_marker); @@ -514,13 +514,13 @@ unsigned long CSpeciesFlameletSolver::SetScalarSources(const CConfig* config, CF vector table_sources(config->GetNControlVars() + 2 * config->GetNUserScalars()); unsigned long misses = fluid_model_local->EvaluateDataSet(scalars, FLAMELET_LOOKUP_OPS::SOURCES, table_sources); + table_sources[I_PROGVAR] = fmax(0, table_sources[I_PROGVAR]); nodes->SetTableMisses(iPoint, misses); /*--- The source term for progress variable is always positive, we clip from below to makes sure. --- */ vector source_scalar(config->GetNScalars()); for (auto iCV = 0u; iCV < config->GetNControlVars(); iCV++) source_scalar[iCV] = table_sources[iCV]; - source_scalar[I_PROGVAR] = fmax(EPS, source_scalar[I_PROGVAR]); /*--- Source term for the auxiliary species transport equations. ---*/ for (size_t i_aux = 0; i_aux < config->GetNUserScalars(); i_aux++) { @@ -748,19 +748,19 @@ void CSpeciesFlameletSolver::Viscous_Residual(unsigned long iEdge, CGeometry* ge unsigned long CSpeciesFlameletSolver::GetEnthFromTemp(CFluidModel* fluid_model, su2double const val_temp, const su2double* scalar_solution, su2double* val_enth) { /*--- convergence criterion for temperature in [K], high accuracy needed for restarts. ---*/ - su2double delta_temp_final = 0.001; + su2double delta_temp_final = 1e-10; su2double enth_iter = scalar_solution[I_ENTH]; su2double delta_enth; su2double delta_temp_iter = 1e10; unsigned long exit_code = 0; - const int counter_limit = 1000; + const int counter_limit = 5000; int counter = 0; su2double val_scalars[MAXNVAR]; for (auto iVar = 0u; iVar < nVar; iVar++) val_scalars[iVar] = scalar_solution[iVar]; - while ((abs(delta_temp_iter) > delta_temp_final) && (counter++ < counter_limit)) { + while ((abs(delta_temp_iter / val_temp) > delta_temp_final) && (counter++ < counter_limit)) { /*--- Add all quantities and their names to the look up vectors. ---*/ val_scalars[I_ENTH] = enth_iter; fluid_model->SetTDState_T(val_temp, val_scalars); @@ -772,7 +772,7 @@ unsigned long CSpeciesFlameletSolver::GetEnthFromTemp(CFluidModel* fluid_model, delta_enth = Cp * delta_temp_iter; - enth_iter += delta_enth; + enth_iter += 0.5 * delta_enth; } *val_enth = enth_iter; diff --git a/config_template.cfg b/config_template.cfg index b96c363cf5b..2dfe390d759 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -774,7 +774,7 @@ SPECIES_CLIPPING_MIN= 0.0, ... % --------------------- FLAMELET MODEL -----------------------------% % The flamelet model uses the prompts INTERPOLATION_METHOD and FILENAMES_INTERPOLATOR % for definition of the flamelet manifold. Either LUT or MLP can be used as options. -% If the terms "Beta_ProgVar", "Beta_Enth_Thermal", "Beta_Enth", and "Beta_Mixfrac" are +% If the terms "Beta_ProgVar", "Beta_Enth_Thermal", "Beta_Enth", and "Beta_Mixfrac" are % found in the variables list of the manifold, preferential diffusion is assumed. % @@ -803,15 +803,15 @@ CONTROLLING_VARIABLE_NAMES= (ProgressVariable, EnthalpyTot) % option USER_SOURCE_NAMES. CONTROLLING_VARIABLE_SOURCE_NAMES= (ProdRateTot_PV, NULL) -% Method used to ignite the solution: +% Method used to ignite the solution: % FLAME_FRONT : the flame is initialized using a plane, defined by a point and a normal. On one side, the solution is initialized % using 'burnt' conditions and on the other side 'unburnt' conditions. The normal points in the direction of the 'burnt' % condition. -% SPARK : the solution is ignited through application of a set of source terms within a specified region for a set number +% SPARK : the solution is ignited through application of a set of source terms within a specified region for a set number % of solver iterations. This artificial spark can be applied after a certain number of iterations has passed, allowing for -% the flow to evolve before igniting the mixture. +% the flow to evolve before igniting the mixture. % NONE : no artificial solution ignition. -% By default, this option is set to NONE +% By default, this option is set to NONE FLAME_INIT_METHOD= FLAME_FRONT % FLAME_FRONT initialization @@ -824,17 +824,17 @@ FLAME_INIT_METHOD= FLAME_FRONT % (x8) = Thickness of the 'burnt' zone, after this length, the conditions will be 'unburnt' again. FLAME_INIT= (0.004, 0.0, 0.0, 1.0, 0.0, 0.0, 0.2e-3, 1.0) -% SPARK initialization -% the solution is ignited through application of a set of source terms within a specified region for a set number +% SPARK initialization +% the solution is ignited through application of a set of source terms within a specified region for a set number % of solver iterations. This artificial spark can be applied after a certain number of iterations has passed, allowing for -% the flow to evolve before igniting the mixture. +% the flow to evolve before igniting the mixture. % (x1,x2,x3) = spark center location. % (x4) = spark radius where within the artificial spark is applied. % (x5,x6) = spark iteration start and number of iterations in which the artifical spark is applied. For single-zone problems % the number of iterations are inner-loop iterations, for multi-zone problems, outer-loop iterations are considered. SPARK_INIT= (0.004, 0.0, 0.0, 1e-4, 100, 10) -% Source terms (density times species time rate of change) applied to the species equations in the spark region for the duration of the spark. +% Source terms (density times species time rate of change) applied to the species equations in the spark region for the duration of the spark. % The number of terms should equate the total number of species in the flamelet problem. SPARK_REACTION_RATES= (1000, 0, 0) From 7897bee347b45ea057cb3b462a6921c908d384bc Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Wed, 6 Sep 2023 16:26:35 +0200 Subject: [PATCH 007/287] Replaced isothermal getter function in config to be compatible with flow problems without isothermal walls --- Common/src/CConfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 89fec11d16e..36d2a1c3b5b 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -9177,7 +9177,7 @@ su2double CConfig::GetIsothermal_Temperature(const string& val_marker) const { if (Marker_Isothermal[iMarker_Isothermal] == val_marker) return Isothermal_Temperature[iMarker_Isothermal]; - return Isothermal_Temperature[0]; + return Temperature_FreeStream;// Isothermal_Temperature[0]; } su2double CConfig::GetWall_HeatFlux(const string& val_marker) const { From 42db642e5b45ee09c8e5c7a345a0c0578dba1f2e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 17:15:58 +0000 Subject: [PATCH 008/287] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/code-style.yml | 2 +- .github/workflows/codeql.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/code-style.yml b/.github/workflows/code-style.yml index a0080f08981..a7e38bd6d1d 100644 --- a/.github/workflows/code-style.yml +++ b/.github/workflows/code-style.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup python uses: actions/setup-python@v4 with: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 5d2607bab67..7403ae5062b 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Packages (cpp) if: ${{ matrix.language == 'cpp' }} From a8e66ed21930d95b2199f639098d57cca8bd36d8 Mon Sep 17 00:00:00 2001 From: bigfooted Date: Mon, 25 Sep 2023 12:34:45 +0200 Subject: [PATCH 009/287] fix memory allocation crash --- Common/include/CConfig.hpp | 1 + Common/src/CConfig.cpp | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 8fe5f2ef2a4..b7d16ab1065 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -1224,6 +1224,7 @@ class CConfig { su2double flame_init[8]; /*!< \brief Flame front initialization parameters. */ su2double spark_init[6]; /*!< \brief Spark ignition initialization parameters. */ su2double* spark_reaction_rates; /*!< \brief Source terms for flamelet spark ignition option. */ + unsigned short nspark; bool preferential_diffusion = false; /*!< \brief Preferential diffusion physics for flamelet solver.*/ /*--- lookup table ---*/ diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 36d2a1c3b5b..5ad4855bc64 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -972,7 +972,7 @@ void CConfig::SetPointersNull() { Species_Init = nullptr; Species_Clipping_Min = nullptr; Species_Clipping_Max = nullptr; - + spark_reaction_rates = nullptr; /*--- Moving mesh pointers ---*/ nKind_SurfaceMovement = 0; @@ -1375,9 +1375,8 @@ void CConfig::SetConfig_Options() { /*!\brief SPARK_INIT \n DESCRIPTION: spark initialization using the flamelet model \ingroup Config*/ for (auto iSpark=0u; iSpark<6; ++iSpark) spark_init[iSpark]=0; addDoubleArrayOption("SPARK_INIT", 6, spark_init); - unsigned short dummy; /*!\brief SPARK_REACTION_RATES \n DESCRIPTION: Net source term values applied to species within spark area during spark ignition. \ingroup Config*/ - addDoubleListOption("SPARK_REACTION_RATES", dummy, spark_reaction_rates); + addDoubleListOption("SPARK_REACTION_RATES", nspark, spark_reaction_rates); /*--- Options related to mass diffusivity and thereby the species solver. ---*/ From 16d6405a8eb05c040106912a19b941df9e290e27 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 5 Oct 2023 15:57:24 +0200 Subject: [PATCH 010/287] Pulled develop --- externals/mel | 2 +- subprojects/CoolProp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/externals/mel b/externals/mel index 46205ab019e..2484cd3258e 160000 --- a/externals/mel +++ b/externals/mel @@ -1 +1 @@ -Subproject commit 46205ab019e5224559091375a6d71aabae6bc5b9 +Subproject commit 2484cd3258ef800a10e361016cb341834ee7930b diff --git a/subprojects/CoolProp b/subprojects/CoolProp index bafdea1f39e..0ce42fcf3bb 160000 --- a/subprojects/CoolProp +++ b/subprojects/CoolProp @@ -1 +1 @@ -Subproject commit bafdea1f39ee873a6bb9833e3a21fe41f90b85e8 +Subproject commit 0ce42fcf3bb2c373512bc825a4f0c1973a78f307 From 629064713e569e1268aaafe569a2f71af4360e2b Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Wed, 25 Oct 2023 10:16:57 +0200 Subject: [PATCH 011/287] Created branch for solid-to-solid conjugate heat transfer capability --- Common/include/option_structure.hpp | 1 + SU2_CFD/src/drivers/CDriver.cpp | 23 +++++++++++++---------- SU2_CFD/src/drivers/CMultizoneDriver.cpp | 3 +++ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 5fe8228925e..755a38f4b48 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -409,6 +409,7 @@ enum ENUM_TRANSFER { CONJUGATE_HEAT_WEAKLY_FS = 17, /*!< \brief Conjugate heat transfer (between incompressible fluids and solids). */ CONJUGATE_HEAT_SF = 18, /*!< \brief Conjugate heat transfer (between solids and compressible fluids). */ CONJUGATE_HEAT_WEAKLY_SF = 19, /*!< \brief Conjugate heat transfer (between solids and incompressible fluids). */ + CONJUGATE_HEAT_SS = 20, /*!< \brief Conjugate heat transfer (between two solids). */ }; /*! diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index c33977ad33f..45eacbcf808 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -2492,19 +2492,22 @@ void CDriver::InitializeInterface(CConfig **config, CSolver***** solver, CGeomet if (rank == MASTER_NODE) cout << "sliding interface." << endl; } else if (heat_donor || heat_target) { - if (heat_donor && heat_target) - SU2_MPI::Error("Conjugate heat transfer between solids is not implemented.", CURRENT_FUNCTION); + if (heat_donor && heat_target){ + interface_type = CONJUGATE_HEAT_SS; - const auto fluidZone = heat_target? donor : target; + } else { - if (config[fluidZone]->GetEnergy_Equation() || (config[fluidZone]->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE) - || (config[fluidZone]->GetKind_FluidModel() == ENUM_FLUIDMODEL::FLUID_FLAMELET)) - interface_type = heat_target? CONJUGATE_HEAT_FS : CONJUGATE_HEAT_SF; - else if (config[fluidZone]->GetWeakly_Coupled_Heat()) - interface_type = heat_target? CONJUGATE_HEAT_WEAKLY_FS : CONJUGATE_HEAT_WEAKLY_SF; - else - interface_type = NO_TRANSFER; + const auto fluidZone = heat_target? donor : target; + if (config[fluidZone]->GetEnergy_Equation() || (config[fluidZone]->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE) + || (config[fluidZone]->GetKind_FluidModel() == ENUM_FLUIDMODEL::FLUID_FLAMELET)) + interface_type = heat_target? CONJUGATE_HEAT_FS : CONJUGATE_HEAT_SF; + else if (config[fluidZone]->GetWeakly_Coupled_Heat()) + interface_type = heat_target? CONJUGATE_HEAT_WEAKLY_FS : CONJUGATE_HEAT_WEAKLY_SF; + else + interface_type = NO_TRANSFER; + } + if (interface_type != NO_TRANSFER) { auto nVar = 4; interface[donor][target] = new CConjugateHeatInterface(nVar, 0); diff --git a/SU2_CFD/src/drivers/CMultizoneDriver.cpp b/SU2_CFD/src/drivers/CMultizoneDriver.cpp index 49a9c58e724..95ff11d2064 100644 --- a/SU2_CFD/src/drivers/CMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CMultizoneDriver.cpp @@ -585,6 +585,9 @@ bool CMultizoneDriver::TransferData(unsigned short donorZone, unsigned short tar BroadcastData(SPECIES_SOL, SPECIES_SOL); } break; + case CONJUGATE_HEAT_SS: + BroadcastData(HEAT_SOL, HEAT_SOL); + break; case CONJUGATE_HEAT_FS: BroadcastData(FLOW_SOL, HEAT_SOL); break; From 0d10cbde07e4939cc1e3196126fbd8dca60edbe2 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Wed, 1 Nov 2023 11:33:59 +0100 Subject: [PATCH 012/287] Quality of life changes to usability of flamelet solver --- Docs/docmain.hpp | 6 --- .../solvers/CSpeciesFlameletSolver.hpp | 5 +- SU2_CFD/src/fluid/CFluidFlamelet.cpp | 13 +++-- .../src/solvers/CSpeciesFlameletSolver.cpp | 51 ++++++++++--------- 4 files changed, 39 insertions(+), 36 deletions(-) diff --git a/Docs/docmain.hpp b/Docs/docmain.hpp index fcda1b961ec..ab8b45fa8ec 100644 --- a/Docs/docmain.hpp +++ b/Docs/docmain.hpp @@ -225,9 +225,3 @@ * \brief Classes for explicit (done by the programmer) vectorization (SIMD) of computations. * \ingroup Toolboxes */ - -/*! - * \defgroup Multi-Layer Perceptrons (MLP) - * \brief Data look up and interpolation via dense, feed-forward multi-layer perceptrons. - * \ingroup Toolboxes - */ diff --git a/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp b/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp index aa01016bb9b..555de8085df 100644 --- a/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp +++ b/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp @@ -109,11 +109,10 @@ class CSpeciesFlameletSolver final : public CSpeciesSolver { public: /*! - * \brief Constructor. + * \brief Define a Flamelet Generated Manifold species solver. * \param[in] geometry - Geometrical definition of the problem. * \param[in] config - Definition of the particular problem. * \param[in] iMesh - Index of the mesh in multigrid computations. - * \param[in] FluidModel */ CSpeciesFlameletSolver(CGeometry* geometry, CConfig* config, unsigned short iMesh); @@ -187,7 +186,7 @@ class CSpeciesFlameletSolver final : public CSpeciesSolver { unsigned short val_marker) override; /*! - * \brief Compute the viscous fluxes of the flamelet species at a particular edge. + * \brief Compute the fluxes due to viscous and preferential diffusion effects of the flamelet species at a particular edge. * \param[in] iEdge - Edge for which we want to compute the flux * \param[in] geometry - Geometrical definition of the problem. * \param[in] solver_container - Container vector with all the solutions. diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index 81cca434cce..6d51075a05a 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -189,9 +189,16 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { /*--- Passive look-up terms ---*/ size_t n_lookups = config->GetNLookups(); - varnames_LookUp.resize(n_lookups); - val_vars_LookUp.resize(n_lookups); - for (auto iLookup = 0u; iLookup < n_lookups; iLookup++) varnames_LookUp[iLookup] = config->GetLookupName(iLookup); + if (n_lookups == 0) { + varnames_LookUp.resize(1); + val_vars_LookUp.resize(1); + varnames_LookUp[0] = "NULL"; + val_vars_LookUp[0] = NULL; + } else { + varnames_LookUp.resize(n_lookups); + val_vars_LookUp.resize(n_lookups); + for (auto iLookup = 0u; iLookup < n_lookups; iLookup++) varnames_LookUp[iLookup] = config->GetLookupName(iLookup); + } /*--- Preferential diffusion scalars ---*/ varnames_PD.resize(FLAMELET_PREF_DIFF_SCALARS::N_BETA_TERMS); diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index 3bbe7cd2b49..e3e86d4d104 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -75,7 +75,7 @@ void CSpeciesFlameletSolver::Preprocessing(CGeometry* geometry, CSolver** solver auto* flowNodes = su2staticcast_p(solver_container[FLOW_SOL]->GetNodes()); /*--- Retrieve spark ignition parameters for spark-type ignition. ---*/ - if (config->GetFlameletInitType() == FLAMELET_INIT_TYPE::SPARK) { + if ((config->GetFlameletInitType() == FLAMELET_INIT_TYPE::SPARK) && !config->GetRestart()) { auto spark_init = config->GetFlameInit(); for (auto iDim = 0u; iDim < 3; ++iDim) spark_location[iDim] = spark_init[iDim]; spark_radius = spark_init[3]; @@ -539,13 +539,17 @@ unsigned long CSpeciesFlameletSolver::SetScalarSources(const CConfig* config, CF unsigned long CSpeciesFlameletSolver::SetScalarLookUps(const CConfig* config, CFluidModel* fluid_model_local, unsigned long iPoint, const vector& scalars) { /*--- Retrieve the passive look-up variables from the manifold. ---*/ - - vector lookup_scalar(config->GetNLookups()); - unsigned long misses = fluid_model_local->EvaluateDataSet(scalars, FLAMELET_LOOKUP_OPS::LOOKUP, lookup_scalar); - - for (auto i_lookup = 0u; i_lookup < config->GetNLookups(); i_lookup++) { - nodes->SetLookupScalar(iPoint, lookup_scalar[i_lookup], i_lookup); + unsigned long misses{0}; + /*--- Skip if no passive look-ups are listed ---*/ + if (config->GetNLookups() > 0) { + vector lookup_scalar(config->GetNLookups()); + misses = fluid_model_local->EvaluateDataSet(scalars, FLAMELET_LOOKUP_OPS::LOOKUP, lookup_scalar); + + for (auto i_lookup = 0u; i_lookup < config->GetNLookups(); i_lookup++) { + nodes->SetLookupScalar(iPoint, lookup_scalar[i_lookup], i_lookup); + } } + return misses; } @@ -569,15 +573,6 @@ void CSpeciesFlameletSolver::Viscous_Residual(unsigned long iEdge, CGeometry* ge /*--- Overloaded viscous residual method which accounts for preferential diffusion. ---*/ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT), PreferentialDiffusion = config->GetPreferentialDiffusion(); - su2double *scalar_i, *scalar_j, *diff_coeff_beta_i, *diff_coeff_beta_j; - scalar_i = new su2double[nVar]; - scalar_j = new su2double[nVar]; - diff_coeff_beta_i = new su2double[nVar], diff_coeff_beta_j = new su2double[nVar]; - - su2activematrix scalar_grad_i(nVar, nDim), scalar_grad_j(nVar, nDim); - - // Number of active transport scalars - auto n_CV = config->GetNControlVars(); /*--- Points in edge ---*/ auto iPoint = geometry->edges->GetNode(iEdge, 0); @@ -595,6 +590,17 @@ void CSpeciesFlameletSolver::Viscous_Residual(unsigned long iEdge, CGeometry* ge /*--- Viscous residual due to preferential diffusion ---*/ if (PreferentialDiffusion) { + CFlowVariable* flowNodes = su2staticcast_p(solver_container[FLOW_SOL]->GetNodes()); + + su2double *scalar_i, *scalar_j, *diff_coeff_beta_i, *diff_coeff_beta_j; + scalar_i = new su2double[nVar]; + scalar_j = new su2double[nVar]; + diff_coeff_beta_i = new su2double[nVar], diff_coeff_beta_j = new su2double[nVar]; + + // Number of active transport scalars + const auto n_CV = config->GetNControlVars(); + + su2activematrix scalar_grad_i(nVar, nDim), scalar_grad_j(nVar, nDim); /*--- Looping over spatial dimensions to fill in the diffusion scalar gradients. ---*/ /*--- The scalar gradient is subtracted to account for regular viscous diffusion. ---*/ for (auto iScalar = 0u; iScalar < n_CV; ++iScalar) { @@ -697,10 +703,8 @@ void CSpeciesFlameletSolver::Viscous_Residual(unsigned long iEdge, CGeometry* ge for (auto iDim = 0u; iDim < nDim; ++iDim) { if (iScalar == I_ENTH) { /* Setting the temperature gradient */ - scalar_grad_i[iScalar][iDim] = - solver_container[FLOW_SOL]->GetNodes()->GetGradient_Primitive(iPoint, prim_idx.Temperature(), iDim); - scalar_grad_j[iScalar][iDim] = - solver_container[FLOW_SOL]->GetNodes()->GetGradient_Primitive(jPoint, prim_idx.Temperature(), iDim); + scalar_grad_i[iScalar][iDim] = flowNodes->GetGradient_Primitive(iPoint, prim_idx.Temperature(), iDim); + scalar_grad_j[iScalar][iDim] = flowNodes->GetGradient_Primitive(jPoint, prim_idx.Temperature(), iDim); } else { scalar_grad_i[iScalar][iDim] = 0; scalar_grad_j[iScalar][iDim] = 0; @@ -708,8 +712,8 @@ void CSpeciesFlameletSolver::Viscous_Residual(unsigned long iEdge, CGeometry* ge } if (iScalar == I_ENTH) { - scalar_i[iScalar] = solver_container[FLOW_SOL]->GetNodes()->GetTemperature(iPoint); - scalar_j[iScalar] = solver_container[FLOW_SOL]->GetNodes()->GetTemperature(jPoint); + scalar_i[iScalar] = flowNodes->GetTemperature(iPoint); + scalar_j[iScalar] = flowNodes->GetTemperature(jPoint); diff_coeff_beta_i[iScalar] = nodes->GetAuxVar(iPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH_THERMAL) * nodes->GetDiffusivity(iPoint, iScalar); diff_coeff_beta_j[iScalar] = nodes->GetAuxVar(jPoint, FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH_THERMAL) * @@ -732,17 +736,16 @@ void CSpeciesFlameletSolver::Viscous_Residual(unsigned long iEdge, CGeometry* ge if (ReducerStrategy) { EdgeFluxes.SubtractBlock(iEdge, residual_thermal); - if (implicit) Jacobian.UpdateBlocksSub(iEdge, residual_thermal.jacobian_i, residual_thermal.jacobian_j); } else { LinSysRes.SubtractBlock(iPoint, residual_thermal); LinSysRes.AddBlock(jPoint, residual_thermal); /* No implicit part for the preferential diffusion of heat */ } - } delete[] scalar_i; delete[] scalar_j; delete[] diff_coeff_beta_i; delete[] diff_coeff_beta_j; + } } unsigned long CSpeciesFlameletSolver::GetEnthFromTemp(CFluidModel* fluid_model, su2double const val_temp, From ead4b74aec824bcd0d03cad927910f657845b4e0 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Wed, 1 Nov 2023 11:57:11 +0100 Subject: [PATCH 013/287] Updated codipack submodule --- externals/codi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/externals/codi b/externals/codi index 17232fed052..8ee822a9b0b 160000 --- a/externals/codi +++ b/externals/codi @@ -1 +1 @@ -Subproject commit 17232fed05245dbb8f04a31e274a02d53458c75c +Subproject commit 8ee822a9b0bb8235a2494467b774e27fb64ff14f From f48b3380e941c70a5c45cab72bcbbc5df79feba6 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Wed, 1 Nov 2023 13:03:19 +0100 Subject: [PATCH 014/287] Added hydrogen burner test case --- .github/workflows/regression.yml | 2 +- .../laminar_premixed_h2_flame_cfd.cfg | 120 ++++++++++++++++++ TestCases/parallel_regression.py | 9 ++ externals/codi | 2 +- 4 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 129913c82cf..5a6f49565d0 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -171,7 +171,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:230813-0103 with: # -t -c - args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t develop -c feature_new_flamelet -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:230813-0103 with: diff --git a/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg b/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg new file mode 100644 index 00000000000..b753483f8f3 --- /dev/null +++ b/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg @@ -0,0 +1,120 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Laminar premixed hydrogen flame with heat exchanger % +% Author: Evert Bunschoten % +% Institution: Delft University of Technology % +% Date: 01/11/2023 % +% File Version 8.0.0 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER = INC_NAVIER_STOKES +KIND_TURB_MODEL= NONE +MATH_PROBLEM= DIRECT +RESTART_SOL =YES +% ---------------- INCOMPRESSIBLE FLOW CONDITION DEFINITION -------------------% +% +INC_DENSITY_MODEL= VARIABLE +INC_ENERGY_EQUATION = YES +INC_VELOCITY_INIT= (1.13, 0.0, 0.0 ) +INC_TEMPERATURE_INIT= 300.0 +THERMODYNAMIC_PRESSURE= 101325 +INC_NONDIM= DIMENSIONAL + +% -------------------- FLUID MODEL --------------------------------------- % +% +FLUID_MODEL= FLUID_FLAMELET +VISCOSITY_MODEL= FLAMELET +CONDUCTIVITY_MODEL= FLAMELET +DIFFUSIVITY_MODEL= FLAMELET +KIND_SCALAR_MODEL= FLAMELET +INTERPOLATION_METHOD= MLP +FILENAMES_INTERPOLATOR= (MLP_TD.mlp, MLP_PD.mlp, MLP_PPV.mlp, MLP_null.mlp) + +% -------------------- SCALAR TRANSPORT ---------------------------------------% +% +% Using an artificial spark to ignite the solution at some location and iteration +FLAME_INIT_METHOD= SPARK +% Spark parameters in order: +% x-location of spark center (m) +% y-location of spark center (m) +% z-location of spark center (m) +% Spark radius (m) +% Iteration at which the artificial spark starts +% Spark iteration duration +SPARK_INIT= (0.001, 0.0004, 0, 5e-4, 10, 10) + +% Controlling variable source terms applied within the spark sphere for the spark +% duration. +SPARK_REACTION_RATES= (1000, 0, 0) + +SPECIES_INIT = (-0.49904325357252965, 2226.901776784524, 0.01446751783896619) + +% Passive reactants in flamelet problem + +CONTROLLING_VARIABLE_NAMES= (ProgressVariable, EnthalpyTot, MixtureFraction) +CONTROLLING_VARIABLE_SOURCE_NAMES= (ProdRateTot_PV, NULL, NULL) + +SPECIES_CLIPPING=YES +SPECIES_CLIPPING_MAX=+4.5623852432084366e-01 +8.6731375409855954e+06 1.0 +SPECIES_CLIPPING_MIN= -6.8059708053507162e-01 -4.9308262569627967e+06 0.0 + +MARKER_INLET_SPECIES = (inlet, -0.49904325357252965, 2226.901776784524, 0.01446751783896619) + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +MARKER_ISOTHERMAL= (burner_wall, 300, hex_wall, 300) +MARKER_SYM= (sides) +INC_INLET_TYPE= VELOCITY_INLET +MARKER_INLET = (inlet, 300.000, 0.575, 1.0, 0.0, 0.0) +INC_OUTLET_TYPE= PRESSURE_OUTLET +MARKER_OUTLET= (outlet, 0.0) +MARKER_ANALYZE_AVERAGE = AREA + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +NUM_METHOD_GRAD= GREEN_GAUSS +CFL_NUMBER =50 +CFL_ADAPT= NO +ITER=5 +OUTPUT_WRT_FREQ= 20 +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= ILU +LINEAR_SOLVER_ERROR= 1E-4 +LINEAR_SOLVER_ITER=20 +% +% -------------------- FLOW AND SPECIES NUMERICAL METHOD DEFINITION -----------------------% +% +CONV_NUM_METHOD_FLOW= FDS +CONV_NUM_METHOD_SPECIES= BOUNDED_SCALAR +MUSCL_FLOW= YES +MUSCL_SPECIES= YES +SLOPE_LIMITER_FLOW = NONE +SLOPE_LIMITER_SPECIES= NONE +TIME_DISCRE_FLOW= EULER_IMPLICIT +TIME_DISCRE_SPECIES= EULER_IMPLICIT + +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +CONV_FIELD = RMS_EnthalpyTot +CONV_RESIDUAL_MINVAL= -5 +CONV_STARTITER= 20 +SCREEN_OUTPUT = INNER_ITER RMS_PRESSURE RMS_ProgressVariable RMS_EnthalpyTot RMS_MixtureFraction +HISTORY_OUTPUT = WALL_TIME RMS_RES +VOLUME_OUTPUT = SOLUTION PRIMITIVE SOURCE RESIDUAL + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +MESH_FORMAT= SU2 +MESH_FILENAME = 2Dhex_BL.su2 +OUTPUT_FILES = (RESTART,PARAVIEW) +TABULAR_FORMAT = CSV +CONV_FILENAME= history +VOLUME_FILENAME= flow + + diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index f26049592b8..f189cf3ee9e 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -69,6 +69,15 @@ def main(): cfd_flamelet_ch4_partial_premix.new_output = True test_list.append(cfd_flamelet_ch4_partial_premix) + # 2D planar laminar premixed hydrogen flame on isothermal burner with heat exchanger emulator (restart) + cfd_flamelet_h2 = TestCase('cfd_flamelet_h2') + cfd_flamelet_h2.cfg_dir = "flamelet/07_laminar_premixed_h2_flame_cfd" + cfd_flamelet_h2.cfg_file = "lam_premixed_h2_flame_cfd.cfg" + cfd_flamelet_h2.test_iter = 5 + cfd_flamelet_h2.test_vals = [-9.915363, -9.807720, -3.260516, -11.304692] + cfd_flamelet_h2.new_output = True + test_list.append(cfd_flamelet_h2) + ######################### ## NEMO solver ### ######################### diff --git a/externals/codi b/externals/codi index 0ad036f2c82..8ee822a9b0b 160000 --- a/externals/codi +++ b/externals/codi @@ -1 +1 @@ -Subproject commit 0ad036f2c8254fa7b77180a443d99248c047c877 +Subproject commit 8ee822a9b0bb8235a2494467b774e27fb64ff14f From a4de27f96f53d329321a1a7f1484adab87c8f9ac Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 2 Nov 2023 09:13:49 +0100 Subject: [PATCH 015/287] Fixed build errors --- Common/src/CConfig.cpp | 2 +- SU2_CFD/include/fluid/CFluidFlamelet.hpp | 3 ++- SU2_CFD/src/fluid/CFluidFlamelet.cpp | 4 ++-- SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp | 9 +++------ 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index eb253978ed7..f5bf03ec6dc 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -9177,7 +9177,7 @@ su2double CConfig::GetIsothermal_Temperature(const string& val_marker) const { if (Marker_Isothermal[iMarker_Isothermal] == val_marker) return Isothermal_Temperature[iMarker_Isothermal]; - return Temperature_FreeStream;// Isothermal_Temperature[0]; + return Temperature_FreeStream; } su2double CConfig::GetWall_HeatFlux(const string& val_marker) const { diff --git a/SU2_CFD/include/fluid/CFluidFlamelet.hpp b/SU2_CFD/include/fluid/CFluidFlamelet.hpp index 24bf5715b92..075ea6bfef2 100644 --- a/SU2_CFD/include/fluid/CFluidFlamelet.hpp +++ b/SU2_CFD/include/fluid/CFluidFlamelet.hpp @@ -34,7 +34,7 @@ #define USE_MLPCPP #endif #include "CFluidModel.hpp" - +#include class CFluidFlamelet final : public CFluidModel { private: ENUM_DATADRIVEN_METHOD Kind_DataDriven_Method = @@ -64,6 +64,7 @@ class CFluidFlamelet final : public CFluidModel { /*--- Class variables for the multi-layer perceptron method ---*/ #ifdef USE_MLPCPP + size_t n_betas; MLPToolbox::CLookUp_ANN* lookup_mlp; /*!< \brief Multi-layer perceptron collection. */ MLPToolbox::CIOMap* iomap_TD; /*!< \brief Input-output map for thermochemical properties. */ MLPToolbox::CIOMap* iomap_PD; /*!< \brief Input-output map for the preferential diffusion scalars. */ diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index 377e3e236c0..6721f79292c 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -25,6 +25,7 @@ * License along with SU2. If not, see . */ +#include #include "../include/fluid/CFluidFlamelet.hpp" #include "../../../Common/include/containers/CLookUpTable.hpp" #if defined(HAVE_MLPCPP) @@ -47,7 +48,6 @@ CFluidFlamelet::CFluidFlamelet(CConfig* config, su2double value_pressure_operati cout << "Number of user scalars: " << n_user_scalars << endl; cout << "Number of control variables: " << n_control_vars << endl; } - scalars_vector.resize(n_scalars); table_scalar_names.resize(n_scalars); @@ -213,7 +213,6 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { val_vars_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH] = beta_enth; val_vars_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_MIXFRAC] = beta_mixfrac; - size_t n_betas{0}; PreferentialDiffusion = false; switch (Kind_DataDriven_Method) { case ENUM_DATADRIVEN_METHOD::LUT: @@ -221,6 +220,7 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { break; case ENUM_DATADRIVEN_METHOD::MLP: #ifdef USE_MLPCPP + n_betas = 0; for (auto iMLP = 0u; iMLP < config->GetNDataDriven_Files(); iMLP++) { auto outputMap = lookup_mlp->FindVariableIndices(iMLP, varnames_PD, false); n_betas += outputMap.size(); diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index 5609a0e140e..d7ef5e9a363 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -68,8 +68,6 @@ void CSpeciesFlameletSolver::Preprocessing(CGeometry* geometry, CSolver** solver unsigned short RunTime_EqSystem, bool Output) { unsigned long n_not_in_domain_local = 0, n_not_in_domain_global = 0; vector scalars_vector(nVar); - su2double spark_location[3]; - su2double spark_radius; unsigned long spark_iter_start, spark_duration; bool ignition = false; auto* flowNodes = su2staticcast_p(solver_container[FLOW_SOL]->GetNodes()); @@ -77,8 +75,6 @@ void CSpeciesFlameletSolver::Preprocessing(CGeometry* geometry, CSolver** solver /*--- Retrieve spark ignition parameters for spark-type ignition. ---*/ if ((config->GetFlameletInitType() == FLAMELET_INIT_TYPE::SPARK) && !config->GetRestart()) { auto spark_init = config->GetFlameInit(); - for (auto iDim = 0u; iDim < 3; ++iDim) spark_location[iDim] = spark_init[iDim]; - spark_radius = spark_init[3]; spark_iter_start = ceil(spark_init[4]); spark_duration = ceil(spark_init[5]); unsigned long iter = config->GetMultizone_Problem() ? config->GetOuterIter() : config->GetInnerIter(); @@ -98,9 +94,10 @@ void CSpeciesFlameletSolver::Preprocessing(CGeometry* geometry, CSolver** solver if (ignition) { /*--- Apply source terms within spark radius. ---*/ - su2double dist_from_center = 0; + su2double dist_from_center = 0, + spark_radius = config->GetFlameInit()[3]; for (auto iDim = 0u; iDim < nDim; ++iDim) - dist_from_center += pow(geometry->nodes->GetCoord(i_point, iDim) - spark_location[iDim], 2); + dist_from_center += pow(geometry->nodes->GetCoord(i_point, iDim) - config->GetFlameInit()[iDim], 2); if (sqrt(dist_from_center) < spark_radius) { for (auto iVar = 0u; iVar < nVar; iVar++) nodes->SetScalarSource(i_point, iVar, nodes->GetScalarSources(i_point)[iVar] + config->GetSpark()[iVar]); From 0df559607937d699b4c4637dfc1ed5347f959636 Mon Sep 17 00:00:00 2001 From: A Cappiello Date: Fri, 3 Nov 2023 13:47:40 +0100 Subject: [PATCH 016/287] adding 3D mixing-plane Aachen turbine config files --- .../Aachen_turbine/aachen_3D_MP.cfg | 371 ++++++++++++++++++ .../turbomachinery/Aachen_turbine/rotor.cfg | 19 + .../turbomachinery/Aachen_turbine/stator1.cfg | 6 + .../turbomachinery/Aachen_turbine/stator2.cfg | 6 + 4 files changed, 402 insertions(+) create mode 100644 TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg create mode 100644 TestCases/turbomachinery/Aachen_turbine/rotor.cfg create mode 100644 TestCases/turbomachinery/Aachen_turbine/stator1.cfg create mode 100644 TestCases/turbomachinery/Aachen_turbine/stator2.cfg diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg new file mode 100644 index 00000000000..89090f5d9cb --- /dev/null +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg @@ -0,0 +1,371 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: AACHEN turbine 3D % +% Author: S. Vitale, A. Cappiello % +% Institution: Delft University of Technology % +% Date: Oct 20th, 2023 % +% File Version 8.0 develop % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +% Physical governing equations (EULER, NAVIER_STOKES, +% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% POISSON_EQUATION) +SOLVER= RANS +% +% Specify turbulent model (NONE, SA, SST) +KIND_TURB_MODEL= SA +% +% Mathematical problem (DIRECT, ADJOINT, LINEARIZED) +MATH_PROBLEM= DIRECT +% +% Restart solution (NO, YES) +RESTART_SOL= NO +% +MULTIZONE= YES +% +% List of config files for zone-specific options +CONFIG_LIST=(stator1.cfg, rotor.cfg, stator2.cfg) +% +% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% +% +% Mach number (non-dimensional, based on the free-stream values) +MACH_NUMBER= 0.05 +% +% Angle of attack (degrees, only for compressible flows) +AOA= 0.0 +% +% Free-stream pressure (101325.0 N/m^2 by default, only Euler flows) +FREESTREAM_PRESSURE= 140000.0 +% +% Free-stream temperature (273.15 K by default) +FREESTREAM_TEMPERATURE= 300.0 +% +% Free-stream temperature (1.2886 Kg/m3 by default) +FREESTREAM_DENSITY= 1.7418 +% +% Free-stream option to choose if you want to use Density (DENSITY_FS) or Temperature TEMPERATURE_FS) to initialize the solution +FREESTREAM_OPTION= TEMPERATURE_FS +% +% Free-stream Turbulence Intensity +FREESTREAM_TURBULENCEINTENSITY = 0.025 +% +% Free-stream Turbulent to Laminar viscosity ratio +FREESTREAM_TURB2LAMVISCRATIO = 100.0 +% +% +%Init option to choose between Reynolds (default) or thermodynamics quantities for initializing the solution (REYNOLDS, TD_CONDITIONS) +INIT_OPTION= TD_CONDITIONS +% +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +% Reference origin for moment computation +REF_ORIGIN_MOMENT_X = 0.00 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +% +% Reference area for force coefficients (0 implies automatic calculation) +REF_AREA= 1.0 +% +% Flow non-dimensionalization (DIMENSIONAL, FREESTREAM_PRESS_EQ_ONE, +% FREESTREAM_VEL_EQ_MACH, FREESTREAM_VEL_EQ_ONE) +REF_DIMENSIONALIZATION= DIMENSIONAL +% +% +% ------------------------------ EQUATION OF STATE ----------------------------% +% +% Different gas model (STANDARD_AIR, IDEAL_GAS, VW_GAS, PR_GAS) +FLUID_MODEL= IDEAL_GAS +% +% Ratio of specific heats (1.4 default and the value is hardcoded for the model STANDARD_AIR) +GAMMA_VALUE= 1.4 +% +% Specific gas constant (287.058 J/kg*K default and this value is hardcoded for the model STANDARD_AIR) +GAS_CONSTANT= 287.058 +% +% Critical Temperature (273.15 K by default) +CRITICAL_TEMPERATURE= 273.15 +% +% Critical Pressure (101325.0 N/m^2 by default) +CRITICAL_PRESSURE= 101325.0 +% +% Acentri factor (0.035 (air)) +ACENTRIC_FACTOR= 0.035 +% +% --------------------------- VISCOSITY MODEL ---------------------------------% +% +% Viscosity model (SUTHERLAND, CONSTANT_VISCOSITY). +VISCOSITY_MODEL= SUTHERLAND +% +% Molecular Viscosity that would be constant (1.716E-5 by default) +MU_CONSTANT= 1.716E-5 +% +% Sutherland Viscosity Ref (1.716E-5 default value for AIR SI) +MU_REF= 1.716E-5 +% +% Sutherland Temperature Ref (273.15 K default value for AIR SI) +MU_T_REF= 273.15 +% +% Sutherland constant (110.4 default value for AIR SI) +SUTHERLAND_CONSTANT= 110.4 +% +% --------------------------- THERMAL CONDUCTIVITY MODEL ----------------------% +% +% Conductivity model (CONSTANT_CONDUCTIVITY, CONSTANT_PRANDTL). +CONDUCTIVITY_MODEL= CONSTANT_PRANDTL +% +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +%Navier-Stokes wall boundary marker(s) (NONE = no marker) +MARKER_HEATFLUX= (BLADE1, 0.0, BLADE2, 0.0, BLADE3, 0.0, HUB1, 0.0, SHROUD1, 0.0, HUB2, 0.0, SHROUD2, 0.0, HUB3, 0.0, SHROUD3, 0.0) +% +% Periodic boundary marker(s) (NONE = no marker) +% Format: ( periodic marker, donor marker, rot_cen_x, rot_cen_y, rot_cen_z, rot_angle_x-axis, rot_angle_y-axis, rot_angle_z-axis, translation_x, translation_y, translation_z) +MARKER_PERIODIC= (PER1_STATOR1, PER2_STATOR1, 0.0, 0.0, 0.0, 0.0, 0.0, 8.7804878, 0.0, 0.0, 0.0, PER1_ROTOR, PER2_ROTOR, 0.0, 0.0, 0.0, 0.0, 0.0, 8.7804878, 0.0, 0.0, 0.0, PER1_STATOR2, PER2_STATOR2, 0.0, 0.0, 0.0, 0.0, 0.0, 8.7804878, 0.0, 0.0, 0.0) +% +% +%-------- INFLOW/OUTFLOW BOUNDARY CONDITION SPECIFIC FOR TURBOMACHINERY --------% +% +% Inflow and Outflow markers must be specified, for each blade (zone), following the natural groth of the machine (i.e, from the first blade to the last) +MARKER_TURBOMACHINERY= (INFLOW_STATOR1, OUTFLOW_STATOR1, INFLOW_ROTOR, OUTFLOW_ROTOR, INFLOW_STATOR2, OUTFLOW_STATOR2) +MARKER_ANALYZE = (INFLOW_STATOR1, OUTFLOW_STATOR2) +% Mixing-plane interface markers must be specified to activate the transfer of information between zones +MARKER_MIXINGPLANE_INTERFACE= (OUTFLOW_STATOR1, INFLOW_ROTOR, OUTFLOW_ROTOR, INFLOW_STATOR2) +% Mixing-plane interface markers must be specified to activate the transfer of information between zones +MARKER_ZONE_INTERFACE= (OUTFLOW_STATOR1, INFLOW_ROTOR, OUTFLOW_ROTOR, INFLOW_STATOR2) +% +% Non reflecting boundary condition for inflow, outfolw and mixing-plane +% Format inlet: ( marker, TOTAL_CONDITIONS_PT, Total Pressure , Total Temperature, Flow dir-norm, Flow dir-tang, Flow dir-span, under-relax-avg, under-relax-fourier) +% Format outlet: ( marker, STATIC_PRESSURE, Static Pressure value, -, -, -, -, under-relax-avg, under-relax-fourier) +% Format mixing-plane in and out: ( marker, MIXING_IN or MIXING_OUT, -, -, -, -, -, -, under-relax-avg, under-relax-fourier) +MARKER_GILES= (INFLOW_STATOR1, TOTAL_CONDITIONS_PT, 158245.38, 308.26, 1.0, 0.0, 0.0, 0.3, 0.0, OUTFLOW_STATOR1, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, INFLOW_ROTOR, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, OUTFLOW_ROTOR, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, INFLOW_STATOR2, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, OUTFLOW_STATOR2, STATIC_PRESSURE_1D, 110050.96, 0.0, 0.0, 0.0, 0.0 , 1.0, 0.0) +SPATIAL_FOURIER= NO +% +% This option insert an extra under relaxation factor for the Giles BC at the hub and shroud levels +GILES_EXTRA_RELAXFACTOR= (0.05, 0.05) +% +%---------------------------- TURBOMACHINERY SIMULATION -----------------------------% +% +% Format: (marker) +% If the ROTATING_FRAME option is activated, this option force +% the velocity on the boundaries specified to 0.0 +MARKER_SHROUD= (SHROUD1, SHROUD2, SHROUD3) +% +% Specify kind of architecture (AXIAL, CENTRIPETAL, CENTRIFUGAL, CENTRIPETAL_AXIAL) +TURBOMACHINERY_KIND= AXIAL AXIAL AXIAL +% +% Uncomment to work with new_turbo_outputs +%TURBO_PERF_KIND= (TURBINE, TURBINE, TURBINE) +% +% Specify kind of interpolation for the mixing-plane (LINEAR_INTERPOLATION, NEAREST_SPAN, MATCHING) +MIXINGPLANE_INTERFACE_KIND= LINEAR_INTERPOLATION +% +% Specify option for turbulent mixing-plane (YES, NO) default NO +TURBULENT_MIXINGPLANE= YES +% +% Specify ramp option for Outlet pressure (YES, NO) default NO +RAMP_OUTLET_PRESSURE= NO +% +% Parameters of the outlet pressure ramp (starting outlet pressure, updating-iteration-frequency, total number of iteration for the ramp) +RAMP_OUTLET_PRESSURE_COEFF= (140000.0, 10.0, 2000) +% +% Specify Kind of average process for linearizing the Navier-Stokes equation at inflow and outflow BC included mixing-plane +% (ALGEBRAIC, AREA, MASSSFLUX, MIXEDOUT) default AREA +AVERAGE_PROCESS_KIND= MIXEDOUT +% +% Specify Kind of average process for computing turbomachienry performance parameters +% (ALGEBRAIC, AREA, MASSSFLUX, MIXEDOUT) default AREA +PERFORMANCE_AVERAGE_PROCESS_KIND= MIXEDOUT +% +%Parameters of the Newton method for the MIXEDOUT average algorithm (under relaxation factor, tollerance, max number of iterations) +MIXEDOUT_COEFF= (1.0, 1.0E-05, 15) +% +% Limit of Mach number below which the mixedout algorithm is substituted with a AREA average algorithm +AVERAGE_MACH_LIMIT= 0.03 +% +% +% ------------------------ SURFACES IDENTIFICATION ----------------------------% +% +% Marker(s) of the surface in the surface flow solution file +MARKER_PLOTTING= (BLADE1, BLADE2, BLADE3) +MARKER_MONITORING= (BLADE1, BLADE2, BLADE3) +% +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +% Numerical method for spatial gradients (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES) +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +% +% Courant-Friedrichs-Lewy condition of the finest grid +CFL_NUMBER= 10 +% +% Adaptive CFL number (NO, YES) +CFL_ADAPT= NO +% +% Parameters of the adaptive CFL number (factor down, factor up, CFL min value, CFL max value ) +CFL_ADAPT_PARAM= ( 1.3, 1.2, 1.0, 10.0) +% +% +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +% Linear solver or smoother for implicit formulations (BCGSTAB, FGMRES, SMOOTHER_JACOBI, SMOOTHER_ILU0, SMOOTHER_LUSGS, SMOOTHER_LINELET) +LINEAR_SOLVER= FGMRES +% +% Preconditioner of the Krylov linear solver (ILU, LU_SGS, LINELET, JACOBI) +LINEAR_SOLVER_PREC= LU_SGS +% +% Min error of the linear solver for the implicit formulation +LINEAR_SOLVER_ERROR= 1E-4 +% +% Max number of iterations of the linear solver for the implicit formulation +LINEAR_SOLVER_ITER= 15 +% +% ----------------------- SLOPE LIMITER DEFINITION ----------------------------% +% +% Coefficient for the limiter +VENKAT_LIMITER_COEFF= 0.01 +% +% Freeze the value of the limiter after a number of iterations +LIMITER_ITER= 999999 +% +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, +% TURKEL_PREC, MSW) +CONV_NUM_METHOD_FLOW= ROE +ENTROPY_FIX_COEFF= 0.001 +% +JST_SENSOR_COEFF= ( 0.5, 0.25 ) +% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) +MUSCL_FLOW= NO +% +% Slope limiter (VENKATAKRISHNAN, VAN_ALBADA) +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN +% +% +% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) +TIME_DISCRE_FLOW= EULER_IMPLICIT +% +% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% +% +% Convective numerical method (SCALAR_UPWIND) +CONV_NUM_METHOD_TURB= SCALAR_UPWIND +% +% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) +MUSCL_TURB= NO +% +% Slope limiter (VENKATAKRISHNAN, MINMOD) +SLOPE_LIMITER_TURB= VENKATAKRISHNAN +% +% Time discretization (EULER_IMPLICIT) +TIME_DISCRE_TURB= EULER_IMPLICIT +% +% Reduction factor of the CFL coefficient in the turbulence problem +CFL_REDUCTION_TURB= 0.1 +% +% ----------------------- DESIGN VARIABLE PARAMETERS --------------------------% +% +% Kind of deformation (NO_DEFORMATION, TRANSLATION, ROTATION, SCALE, +% FFD_SETTING, FFD_NACELLE +% FFD_CONTROL_POINT, FFD_CAMBER, FFD_THICKNESS, FFD_TWIST +% FFD_CONTROL_POINT_2D, FFD_CAMBER_2D, FFD_THICKNESS_2D, FFD_TWIST_2D, +% HICKS_HENNE, SURFACE_BUMP) +DV_KIND= NO_DEFORMATION +% +% Marker of the surface in which we are going apply the shape deformation +DV_MARKER= (BLADE1, BLADE2, BLADE3) +% +% Parameters of the shape deformation +DV_PARAM= ( 1, 0.5) +% +% Value of the shape deformation +DV_VALUE= 0.01 +% +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +% Number of total iterations +OUTER_ITER=30000 +% +% Convergence criteria (CAUCHY, RESIDUAL) +CONV_FIELD=RMS_ENERGY[0] +% +% Min value of the residual (log10 of the residual) +CONV_RESIDUAL_MINVAL= -12 +% +% Start convergence criteria at iteration number +CONV_STARTITER= 10 +% +% Number of elements to apply the criteria +CONV_CAUCHY_ELEMS= 999 +% +% Epsilon to control the series convergence +CONV_CAUCHY_EPS= 1E-6 +% +% Function to apply the criteria (LIFT, DRAG, NEARFIELD_PRESS, SENS_GEOMETRY, +% SENS_MACH, DELTA_LIFT, DELTA_DRAG) +%CAUCHY_FUNC_FLOW= DRAG +% +% Screen output fields (use 'SU2_CFD -d ' to view list of available fields) +SCREEN_OUTPUT= (OUTER_ITER, RMS_DENSITY[0], RMS_DENSITY[1], RMS_DENSITY[2], RMS_MOMENTUM-X[0], RMS_MOMENTUM-Y[0], RMS_ENERGY[0]) +% +% History output groups (use 'SU2_CFD -d ' to view list of available fields) +HISTORY_OUTPUT= (ITER, RMS_RES, TURBO_PERF) +% +% Volume output fields/groups (use 'SU2_CFD -d ' to view list of available fields) +VOLUME_OUTPUT= (COORDINATES, SOLUTION, PRIMITIVE, TURBOMACHINERY, RESIDUAL, LIMITER, VORTEX_IDENTIFICATION) +% +OUTPUT_FILES= (TECPLOT_ASCII, SURFACE_TECPLOT_ASCII, RESTART) +% +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +% Mesh input file +MESH_FILENAME= ../Mesh_and_sol/aachen_turbine_3D_41blade.su2 +% +% Mesh input file format (SU2, CGNS, NETCDF_ASCII) +MESH_FORMAT= SU2 +% +% Mesh output file +MESH_OUT_FILENAME= ../Mesh_and_sol/aachen_turbine_3D_41blade.su2 +% +% Restart flow input file +SOLUTION_FILENAME= restart_flow.dat +% +% Restart adjoint input file +SOLUTION_ADJ_FILENAME= restart_adj.dat +% +% Output file format (PARAVIEW, TECPLOT, STL) +TABULAR_FORMAT= TECPLOT +% +% Output file convergence history (w/o extension) +CONV_FILENAME= history +% +% Output file restart flow +RESTART_FILENAME= restart_flow.dat +% +% Output file restart adjoint +RESTART_ADJ_FILENAME= restart_adj.dat +% +% Output file flow (w/o extension) variables +VOLUME_FILENAME= flow +% +% Output file adjoint (w/o extension) variables +VOLUME_ADJ_FILENAME= adjoint +% +% Output objective function gradient (using continuous adjoint) +GRAD_OBJFUNC_FILENAME= of_grad.dat +% +% Output file surface flow coefficient (w/o extension) +SURFACE_FILENAME= surface_flow +% +% Output file surface adjoint coefficient (w/o extension) +SURFACE_ADJ_FILENAME= surface_adjoint +% +% Writing solution file frequency +OUTPUT_WRT_FREQ= 500 +% +% Writing convergence history frequency +HISTORY_WRT_FREQ_OUTER= 1 +WRT_ZONE_HIST = YES diff --git a/TestCases/turbomachinery/Aachen_turbine/rotor.cfg b/TestCases/turbomachinery/Aachen_turbine/rotor.cfg new file mode 100644 index 00000000000..ed7d886a96b --- /dev/null +++ b/TestCases/turbomachinery/Aachen_turbine/rotor.cfg @@ -0,0 +1,19 @@ +% ----------------------- DYNAMIC MESH DEFINITION -----------------------------% +% +% +% Type of dynamic mesh (NONE, ROTATING_FRAME) +GRID_MOVEMENT= ROTATING_FRAME +% +% Motion mach number (non-dimensional). Used for intitializing a viscous flow +% with the Reynolds number and for computing force coeffs. with dynamic meshes. +MACH_MOTION= 0.35 +% +MOTION_ORIGIN= 0.0 0.0 0.0 +% Angular velocity vector (rad/s) about the motion origi. Example 1250 RPM -> 130.89969389957471 rad/s 7508.3 +ROTATION_RATE= 0.0 0.0 -366.52 + +% Specify ramp option fr rotating frame (YES, NO) default NO +RAMP_ROTATING_FRAME= NO +% +% Parameters of the rotating frame ramp (starting rotational speed, updating-iteration-frequency, total number of iteration for the ramp) +RAMP_ROTATING_FRAME_COEFF= (0.0, 39.0, 500) diff --git a/TestCases/turbomachinery/Aachen_turbine/stator1.cfg b/TestCases/turbomachinery/Aachen_turbine/stator1.cfg new file mode 100644 index 00000000000..8c4f1def0c3 --- /dev/null +++ b/TestCases/turbomachinery/Aachen_turbine/stator1.cfg @@ -0,0 +1,6 @@ +% ----------------------- DYNAMIC MESH DEFINITION -----------------------------% +% +% +% Type of dynamic mesh (NONE, ROTATING_FRAME) +GRID_MOVEMENT= ROTATING_FRAME +% \ No newline at end of file diff --git a/TestCases/turbomachinery/Aachen_turbine/stator2.cfg b/TestCases/turbomachinery/Aachen_turbine/stator2.cfg new file mode 100644 index 00000000000..8c4f1def0c3 --- /dev/null +++ b/TestCases/turbomachinery/Aachen_turbine/stator2.cfg @@ -0,0 +1,6 @@ +% ----------------------- DYNAMIC MESH DEFINITION -----------------------------% +% +% +% Type of dynamic mesh (NONE, ROTATING_FRAME) +GRID_MOVEMENT= ROTATING_FRAME +% \ No newline at end of file From e138511b16cccb665130c2d90a7c20a45af3da89 Mon Sep 17 00:00:00 2001 From: A Cappiello Date: Fri, 3 Nov 2023 13:53:08 +0100 Subject: [PATCH 017/287] path to mesh file changed --- TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg index 89090f5d9cb..e0cda3a343f 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg @@ -322,13 +322,13 @@ OUTPUT_FILES= (TECPLOT_ASCII, SURFACE_TECPLOT_ASCII, RESTART) % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % % Mesh input file -MESH_FILENAME= ../Mesh_and_sol/aachen_turbine_3D_41blade.su2 +MESH_FILENAME= aachen_turbine_3D_41blade.su2 % % Mesh input file format (SU2, CGNS, NETCDF_ASCII) MESH_FORMAT= SU2 % % Mesh output file -MESH_OUT_FILENAME= ../Mesh_and_sol/aachen_turbine_3D_41blade.su2 +MESH_OUT_FILENAME= aachen_turbine_3D_41blade.su2 % % Restart flow input file SOLUTION_FILENAME= restart_flow.dat From d836e451c67c540d8b77ddfa6ff0b8c98bea2d18 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 6 Nov 2023 14:27:46 +0100 Subject: [PATCH 018/287] Updated submodules and updated comments around EvaluateDataSet in CFluidFlamelet --- Common/include/option_structure.hpp | 10 +++++----- SU2_CFD/include/fluid/CFluidFlamelet.hpp | 14 +++++++------- SU2_CFD/include/fluid/CFluidModel.hpp | 7 +++++-- externals/codi | 2 +- externals/mel | 2 +- subprojects/CoolProp | 2 +- 6 files changed, 20 insertions(+), 17 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 69149f6392c..f50dd937b8a 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1343,11 +1343,11 @@ enum FLAMELET_LOOKUP_OPS { * \brief the preferential diffusion scalar indices for the preferential diffusion model. */ enum FLAMELET_PREF_DIFF_SCALARS { - I_BETA_PROGVAR, - I_BETA_ENTH_THERMAL, - I_BETA_ENTH, - I_BETA_MIXFRAC, - N_BETA_TERMS, + I_BETA_PROGVAR, /*!< \brief Preferential diffusion scalar for the progress variable. */ + I_BETA_ENTH_THERMAL, /*!< \brief Preferential diffusion scalar for temperature. */ + I_BETA_ENTH, /*!< \brief Preferential diffusion scalar for total enthalpy. */ + I_BETA_MIXFRAC, /*!< \brief Preferential diffusion scalar for mixture fraction. */ + N_BETA_TERMS, /*!< \brief Total number of preferential diffusion scalars. */ }; /*! diff --git a/SU2_CFD/include/fluid/CFluidFlamelet.hpp b/SU2_CFD/include/fluid/CFluidFlamelet.hpp index 075ea6bfef2..2e1dd8bb00d 100644 --- a/SU2_CFD/include/fluid/CFluidFlamelet.hpp +++ b/SU2_CFD/include/fluid/CFluidFlamelet.hpp @@ -96,14 +96,14 @@ class CFluidFlamelet final : public CFluidModel { void SetTDState_T(su2double val_temperature, const su2double* val_scalars = nullptr) override; /*! - * \brief Evaluate the flamelet manifold. - * \param[in] input_scalar - scalar solution. - * \param[in] input_varnames - names of variables to evaluate. - * \param[in] output_refs - output data. - * \param[out] Extrapolation - scalar solution is within bounds (0) or out of bounds (1). + * \brief Evaluate data-set for flamelet simulations. + * \param[in] input_scalar - controlling variables used to interpolate manifold. + * \param[in] lookup_type - look-up operation to be performed (FLAMELET_LOOKUP_OPS) + * \param[in] output_refs - output variables where interpolated results are stored. + * \param[out] Extrapolation - query data is within manifold bounds (0) or out of bounds (1). */ - inline unsigned long EvaluateDataSet(const vector& input_scalar, unsigned short lookup_type, - vector& output_refs) override; + unsigned long EvaluateDataSet(const vector& input_scalar, unsigned short lookup_type, + vector& output_refs); /*! * \brief Check for out-of-bounds condition for data set interpolation. diff --git a/SU2_CFD/include/fluid/CFluidModel.hpp b/SU2_CFD/include/fluid/CFluidModel.hpp index 2df09071e13..ebc2c309ab9 100644 --- a/SU2_CFD/include/fluid/CFluidModel.hpp +++ b/SU2_CFD/include/fluid/CFluidModel.hpp @@ -144,8 +144,11 @@ class CFluidModel { virtual inline unsigned short GetNScalars() const { return 0; } /*! - * \brief Evaluate data manifold for flamelet or data-driven fluid problems. - * \param[in] input - input data for manifold regression. + * \brief Evaluate data-set for flamelet or data-driven fluid simulations. + * \param[in] input_scalar - data manifold query data. + * \param[in] lookup_type - look-up operation to be performed. + * \param[in] output_refs - output variables where interpolated results are stored. + * \param[out] Extrapolation - query data is within manifold bounds (0) or out of bounds (1). */ virtual unsigned long EvaluateDataSet(const vector& input_scalar, unsigned short lookup_type, vector& output_refs) { diff --git a/externals/codi b/externals/codi index 8ee822a9b0b..0ad036f2c82 160000 --- a/externals/codi +++ b/externals/codi @@ -1 +1 @@ -Subproject commit 8ee822a9b0bb8235a2494467b774e27fb64ff14f +Subproject commit 0ad036f2c8254fa7b77180a443d99248c047c877 diff --git a/externals/mel b/externals/mel index 2484cd3258e..46205ab019e 160000 --- a/externals/mel +++ b/externals/mel @@ -1 +1 @@ -Subproject commit 2484cd3258ef800a10e361016cb341834ee7930b +Subproject commit 46205ab019e5224559091375a6d71aabae6bc5b9 diff --git a/subprojects/CoolProp b/subprojects/CoolProp index 0ce42fcf3bb..bafdea1f39e 160000 --- a/subprojects/CoolProp +++ b/subprojects/CoolProp @@ -1 +1 @@ -Subproject commit 0ce42fcf3bb2c373512bc825a4f0c1973a78f307 +Subproject commit bafdea1f39ee873a6bb9833e3a21fe41f90b85e8 From 00ce99fed24b5779b880517d62586cbd1760aa90 Mon Sep 17 00:00:00 2001 From: A Cappiello Date: Mon, 6 Nov 2023 15:01:56 +0100 Subject: [PATCH 019/287] adding Aachen turbine to parallel_regression --- TestCases/parallel_regression.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index f26049592b8..992470f5dd6 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1034,6 +1034,14 @@ def main(): ### Turbomachinery ### ###################################### + # Aachen Turbine restart + Aachen_3D_restart = TestCase('aachen_turbine_restart') + Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" + Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" + Aachen_3D_restart.test_iter = 5 + Aachen_3D_restart.test_vals = [-13.373601, -12.292596, -14.478385, -11.684489, -11.338515, -7.903908] + test_list.append(Aachen_3D_restart) + # Jones APU Turbocharger restart Jones_tc_restart = TestCase('jones_turbocharger_restart') Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" From 65f8388d950a5ef124fc611ad20f95ef32bcd856 Mon Sep 17 00:00:00 2001 From: A Cappiello Date: Mon, 6 Nov 2023 15:03:03 +0100 Subject: [PATCH 020/287] adding Aachen turbine to serial_regression --- TestCases/serial_regression.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index a8486bc11ea..d542e07f211 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -852,6 +852,15 @@ def main(): ### turbomachinery ### ###################################### + # Aachen Turbine restart + Aachen_3D_restart = TestCase('aachen_turbine_restart') + Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" + Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" + Aachen_3D_restart.test_iter = 5 + Aachen_3D_restart.test_vals = [-13.373601, -12.292596, -14.478385, -11.684489, -11.338515, -7.903908] + Aachen_3D_restart.tol = 0.0001 + test_list.append(Aachen_3D_restart) + # Jones APU Turbocharger restart Jones_tc_restart = TestCase('jones_turbocharger_restart') Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" From b87c5bfcc062daa1f544b47a6351e276a0b1130b Mon Sep 17 00:00:00 2001 From: A Cappiello Date: Mon, 6 Nov 2023 15:05:52 +0100 Subject: [PATCH 021/287] adding Aachen restart config --- .../Aachen_turbine/aachen_3D_MP_restart.cfg | 371 ++++++++++++++++++ 1 file changed, 371 insertions(+) create mode 100644 TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg new file mode 100644 index 00000000000..0e23e13699d --- /dev/null +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg @@ -0,0 +1,371 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: AACHEN turbine 3D % +% Author: S. Vitale, A. Cappiello % +% Institution: Delft University of Technology % +% Date: Oct 20th, 2023 % +% File Version 8.0 develop % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +% Physical governing equations (EULER, NAVIER_STOKES, +% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% POISSON_EQUATION) +SOLVER= RANS +% +% Specify turbulent model (NONE, SA, SST) +KIND_TURB_MODEL= SA +% +% Mathematical problem (DIRECT, ADJOINT, LINEARIZED) +MATH_PROBLEM= DIRECT +% +% Restart solution (NO, YES) +RESTART_SOL= YES +% +MULTIZONE= YES +% +% List of config files for zone-specific options +CONFIG_LIST=(stator1.cfg, rotor.cfg, stator2.cfg) +% +% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% +% +% Mach number (non-dimensional, based on the free-stream values) +MACH_NUMBER= 0.05 +% +% Angle of attack (degrees, only for compressible flows) +AOA= 0.0 +% +% Free-stream pressure (101325.0 N/m^2 by default, only Euler flows) +FREESTREAM_PRESSURE= 140000.0 +% +% Free-stream temperature (273.15 K by default) +FREESTREAM_TEMPERATURE= 300.0 +% +% Free-stream temperature (1.2886 Kg/m3 by default) +FREESTREAM_DENSITY= 1.7418 +% +% Free-stream option to choose if you want to use Density (DENSITY_FS) or Temperature TEMPERATURE_FS) to initialize the solution +FREESTREAM_OPTION= TEMPERATURE_FS +% +% Free-stream Turbulence Intensity +FREESTREAM_TURBULENCEINTENSITY = 0.025 +% +% Free-stream Turbulent to Laminar viscosity ratio +FREESTREAM_TURB2LAMVISCRATIO = 100.0 +% +% +%Init option to choose between Reynolds (default) or thermodynamics quantities for initializing the solution (REYNOLDS, TD_CONDITIONS) +INIT_OPTION= TD_CONDITIONS +% +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +% Reference origin for moment computation +REF_ORIGIN_MOMENT_X = 0.00 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +% +% Reference area for force coefficients (0 implies automatic calculation) +REF_AREA= 1.0 +% +% Flow non-dimensionalization (DIMENSIONAL, FREESTREAM_PRESS_EQ_ONE, +% FREESTREAM_VEL_EQ_MACH, FREESTREAM_VEL_EQ_ONE) +REF_DIMENSIONALIZATION= DIMENSIONAL +% +% +% ------------------------------ EQUATION OF STATE ----------------------------% +% +% Different gas model (STANDARD_AIR, IDEAL_GAS, VW_GAS, PR_GAS) +FLUID_MODEL= IDEAL_GAS +% +% Ratio of specific heats (1.4 default and the value is hardcoded for the model STANDARD_AIR) +GAMMA_VALUE= 1.4 +% +% Specific gas constant (287.058 J/kg*K default and this value is hardcoded for the model STANDARD_AIR) +GAS_CONSTANT= 287.058 +% +% Critical Temperature (273.15 K by default) +CRITICAL_TEMPERATURE= 273.15 +% +% Critical Pressure (101325.0 N/m^2 by default) +CRITICAL_PRESSURE= 101325.0 +% +% Acentri factor (0.035 (air)) +ACENTRIC_FACTOR= 0.035 +% +% --------------------------- VISCOSITY MODEL ---------------------------------% +% +% Viscosity model (SUTHERLAND, CONSTANT_VISCOSITY). +VISCOSITY_MODEL= SUTHERLAND +% +% Molecular Viscosity that would be constant (1.716E-5 by default) +MU_CONSTANT= 1.716E-5 +% +% Sutherland Viscosity Ref (1.716E-5 default value for AIR SI) +MU_REF= 1.716E-5 +% +% Sutherland Temperature Ref (273.15 K default value for AIR SI) +MU_T_REF= 273.15 +% +% Sutherland constant (110.4 default value for AIR SI) +SUTHERLAND_CONSTANT= 110.4 +% +% --------------------------- THERMAL CONDUCTIVITY MODEL ----------------------% +% +% Conductivity model (CONSTANT_CONDUCTIVITY, CONSTANT_PRANDTL). +CONDUCTIVITY_MODEL= CONSTANT_PRANDTL +% +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +%Navier-Stokes wall boundary marker(s) (NONE = no marker) +MARKER_HEATFLUX= (BLADE1, 0.0, BLADE2, 0.0, BLADE3, 0.0, HUB1, 0.0, SHROUD1, 0.0, HUB2, 0.0, SHROUD2, 0.0, HUB3, 0.0, SHROUD3, 0.0) +% +% Periodic boundary marker(s) (NONE = no marker) +% Format: ( periodic marker, donor marker, rot_cen_x, rot_cen_y, rot_cen_z, rot_angle_x-axis, rot_angle_y-axis, rot_angle_z-axis, translation_x, translation_y, translation_z) +MARKER_PERIODIC= (PER1_STATOR1, PER2_STATOR1, 0.0, 0.0, 0.0, 0.0, 0.0, 8.7804878, 0.0, 0.0, 0.0, PER1_ROTOR, PER2_ROTOR, 0.0, 0.0, 0.0, 0.0, 0.0, 8.7804878, 0.0, 0.0, 0.0, PER1_STATOR2, PER2_STATOR2, 0.0, 0.0, 0.0, 0.0, 0.0, 8.7804878, 0.0, 0.0, 0.0) +% +% +%-------- INFLOW/OUTFLOW BOUNDARY CONDITION SPECIFIC FOR TURBOMACHINERY --------% +% +% Inflow and Outflow markers must be specified, for each blade (zone), following the natural groth of the machine (i.e, from the first blade to the last) +MARKER_TURBOMACHINERY= (INFLOW_STATOR1, OUTFLOW_STATOR1, INFLOW_ROTOR, OUTFLOW_ROTOR, INFLOW_STATOR2, OUTFLOW_STATOR2) +MARKER_ANALYZE = (INFLOW_STATOR1, OUTFLOW_STATOR2) +% Mixing-plane interface markers must be specified to activate the transfer of information between zones +MARKER_MIXINGPLANE_INTERFACE= (OUTFLOW_STATOR1, INFLOW_ROTOR, OUTFLOW_ROTOR, INFLOW_STATOR2) +% Mixing-plane interface markers must be specified to activate the transfer of information between zones +MARKER_ZONE_INTERFACE= (OUTFLOW_STATOR1, INFLOW_ROTOR, OUTFLOW_ROTOR, INFLOW_STATOR2) +% +% Non reflecting boundary condition for inflow, outfolw and mixing-plane +% Format inlet: ( marker, TOTAL_CONDITIONS_PT, Total Pressure , Total Temperature, Flow dir-norm, Flow dir-tang, Flow dir-span, under-relax-avg, under-relax-fourier) +% Format outlet: ( marker, STATIC_PRESSURE, Static Pressure value, -, -, -, -, under-relax-avg, under-relax-fourier) +% Format mixing-plane in and out: ( marker, MIXING_IN or MIXING_OUT, -, -, -, -, -, -, under-relax-avg, under-relax-fourier) +MARKER_GILES= (INFLOW_STATOR1, TOTAL_CONDITIONS_PT, 158245.38, 308.26, 1.0, 0.0, 0.0, 0.3, 0.0, OUTFLOW_STATOR1, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, INFLOW_ROTOR, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, OUTFLOW_ROTOR, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, INFLOW_STATOR2, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, OUTFLOW_STATOR2, STATIC_PRESSURE_1D, 110050.96, 0.0, 0.0, 0.0, 0.0 , 1.0, 0.0) +SPATIAL_FOURIER= NO +% +% This option insert an extra under relaxation factor for the Giles BC at the hub and shroud levels +GILES_EXTRA_RELAXFACTOR= (0.05, 0.05) +% +%---------------------------- TURBOMACHINERY SIMULATION -----------------------------% +% +% Format: (marker) +% If the ROTATING_FRAME option is activated, this option force +% the velocity on the boundaries specified to 0.0 +MARKER_SHROUD= (SHROUD1, SHROUD2, SHROUD3) +% +% Specify kind of architecture (AXIAL, CENTRIPETAL, CENTRIFUGAL, CENTRIPETAL_AXIAL) +TURBOMACHINERY_KIND= AXIAL AXIAL AXIAL +% +% Uncomment to work with new_turbo_outputs +%TURBO_PERF_KIND= (TURBINE, TURBINE, TURBINE) +% +% Specify kind of interpolation for the mixing-plane (LINEAR_INTERPOLATION, NEAREST_SPAN, MATCHING) +MIXINGPLANE_INTERFACE_KIND= LINEAR_INTERPOLATION +% +% Specify option for turbulent mixing-plane (YES, NO) default NO +TURBULENT_MIXINGPLANE= YES +% +% Specify ramp option for Outlet pressure (YES, NO) default NO +RAMP_OUTLET_PRESSURE= NO +% +% Parameters of the outlet pressure ramp (starting outlet pressure, updating-iteration-frequency, total number of iteration for the ramp) +RAMP_OUTLET_PRESSURE_COEFF= (140000.0, 10.0, 2000) +% +% Specify Kind of average process for linearizing the Navier-Stokes equation at inflow and outflow BC included mixing-plane +% (ALGEBRAIC, AREA, MASSSFLUX, MIXEDOUT) default AREA +AVERAGE_PROCESS_KIND= MIXEDOUT +% +% Specify Kind of average process for computing turbomachienry performance parameters +% (ALGEBRAIC, AREA, MASSSFLUX, MIXEDOUT) default AREA +PERFORMANCE_AVERAGE_PROCESS_KIND= MIXEDOUT +% +%Parameters of the Newton method for the MIXEDOUT average algorithm (under relaxation factor, tollerance, max number of iterations) +MIXEDOUT_COEFF= (1.0, 1.0E-05, 15) +% +% Limit of Mach number below which the mixedout algorithm is substituted with a AREA average algorithm +AVERAGE_MACH_LIMIT= 0.03 +% +% +% ------------------------ SURFACES IDENTIFICATION ----------------------------% +% +% Marker(s) of the surface in the surface flow solution file +MARKER_PLOTTING= (BLADE1, BLADE2, BLADE3) +MARKER_MONITORING= (BLADE1, BLADE2, BLADE3) +% +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +% Numerical method for spatial gradients (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES) +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +% +% Courant-Friedrichs-Lewy condition of the finest grid +CFL_NUMBER= 10 +% +% Adaptive CFL number (NO, YES) +CFL_ADAPT= NO +% +% Parameters of the adaptive CFL number (factor down, factor up, CFL min value, CFL max value ) +CFL_ADAPT_PARAM= ( 1.3, 1.2, 1.0, 10.0) +% +% +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +% Linear solver or smoother for implicit formulations (BCGSTAB, FGMRES, SMOOTHER_JACOBI, SMOOTHER_ILU0, SMOOTHER_LUSGS, SMOOTHER_LINELET) +LINEAR_SOLVER= FGMRES +% +% Preconditioner of the Krylov linear solver (ILU, LU_SGS, LINELET, JACOBI) +LINEAR_SOLVER_PREC= LU_SGS +% +% Min error of the linear solver for the implicit formulation +LINEAR_SOLVER_ERROR= 1E-4 +% +% Max number of iterations of the linear solver for the implicit formulation +LINEAR_SOLVER_ITER= 15 +% +% ----------------------- SLOPE LIMITER DEFINITION ----------------------------% +% +% Coefficient for the limiter +VENKAT_LIMITER_COEFF= 0.01 +% +% Freeze the value of the limiter after a number of iterations +LIMITER_ITER= 999999 +% +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, +% TURKEL_PREC, MSW) +CONV_NUM_METHOD_FLOW= ROE +ENTROPY_FIX_COEFF= 0.001 +% +JST_SENSOR_COEFF= ( 0.5, 0.25 ) +% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) +MUSCL_FLOW= NO +% +% Slope limiter (VENKATAKRISHNAN, VAN_ALBADA) +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN +% +% +% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) +TIME_DISCRE_FLOW= EULER_IMPLICIT +% +% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% +% +% Convective numerical method (SCALAR_UPWIND) +CONV_NUM_METHOD_TURB= SCALAR_UPWIND +% +% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) +MUSCL_TURB= NO +% +% Slope limiter (VENKATAKRISHNAN, MINMOD) +SLOPE_LIMITER_TURB= VENKATAKRISHNAN +% +% Time discretization (EULER_IMPLICIT) +TIME_DISCRE_TURB= EULER_IMPLICIT +% +% Reduction factor of the CFL coefficient in the turbulence problem +CFL_REDUCTION_TURB= 0.1 +% +% ----------------------- DESIGN VARIABLE PARAMETERS --------------------------% +% +% Kind of deformation (NO_DEFORMATION, TRANSLATION, ROTATION, SCALE, +% FFD_SETTING, FFD_NACELLE +% FFD_CONTROL_POINT, FFD_CAMBER, FFD_THICKNESS, FFD_TWIST +% FFD_CONTROL_POINT_2D, FFD_CAMBER_2D, FFD_THICKNESS_2D, FFD_TWIST_2D, +% HICKS_HENNE, SURFACE_BUMP) +DV_KIND= NO_DEFORMATION +% +% Marker of the surface in which we are going apply the shape deformation +DV_MARKER= (BLADE1, BLADE2, BLADE3) +% +% Parameters of the shape deformation +DV_PARAM= ( 1, 0.5) +% +% Value of the shape deformation +DV_VALUE= 0.01 +% +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +% Number of total iterations +OUTER_ITER=5 +% +% Convergence criteria (CAUCHY, RESIDUAL) +CONV_FIELD=RMS_ENERGY[0] +% +% Min value of the residual (log10 of the residual) +CONV_RESIDUAL_MINVAL= -12 +% +% Start convergence criteria at iteration number +CONV_STARTITER= 10 +% +% Number of elements to apply the criteria +CONV_CAUCHY_ELEMS= 999 +% +% Epsilon to control the series convergence +CONV_CAUCHY_EPS= 1E-6 +% +% Function to apply the criteria (LIFT, DRAG, NEARFIELD_PRESS, SENS_GEOMETRY, +% SENS_MACH, DELTA_LIFT, DELTA_DRAG) +%CAUCHY_FUNC_FLOW= DRAG +% +% Screen output fields (use 'SU2_CFD -d ' to view list of available fields) +SCREEN_OUTPUT= (OUTER_ITER, RMS_DENSITY[0], RMS_DENSITY[1], RMS_DENSITY[2], RMS_MOMENTUM-X[0], RMS_MOMENTUM-Y[0], RMS_ENERGY[0]) +% +% History output groups (use 'SU2_CFD -d ' to view list of available fields) +HISTORY_OUTPUT= (ITER, RMS_RES, TURBO_PERF) +% +% Volume output fields/groups (use 'SU2_CFD -d ' to view list of available fields) +VOLUME_OUTPUT= (COORDINATES, SOLUTION, PRIMITIVE, TURBOMACHINERY, RESIDUAL, LIMITER, VORTEX_IDENTIFICATION) +% +OUTPUT_FILES= (TECPLOT_ASCII, SURFACE_TECPLOT_ASCII, RESTART) +% +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +% Mesh input file +MESH_FILENAME= aachen_turbine_3D_41blade.su2 +% +% Mesh input file format (SU2, CGNS, NETCDF_ASCII) +MESH_FORMAT= SU2 +% +% Mesh output file +MESH_OUT_FILENAME= aachen_turbine_3D_41blade.su2 +% +% Restart flow input file +SOLUTION_FILENAME= restart_flow.dat +% +% Restart adjoint input file +SOLUTION_ADJ_FILENAME= restart_adj.dat +% +% Output file format (PARAVIEW, TECPLOT, STL) +TABULAR_FORMAT= TECPLOT +% +% Output file convergence history (w/o extension) +CONV_FILENAME= history +% +% Output file restart flow +RESTART_FILENAME= restart_flow.dat +% +% Output file restart adjoint +RESTART_ADJ_FILENAME= restart_adj.dat +% +% Output file flow (w/o extension) variables +VOLUME_FILENAME= flow +% +% Output file adjoint (w/o extension) variables +VOLUME_ADJ_FILENAME= adjoint +% +% Output objective function gradient (using continuous adjoint) +GRAD_OBJFUNC_FILENAME= of_grad.dat +% +% Output file surface flow coefficient (w/o extension) +SURFACE_FILENAME= surface_flow +% +% Output file surface adjoint coefficient (w/o extension) +SURFACE_ADJ_FILENAME= surface_adjoint +% +% Writing solution file frequency +OUTPUT_WRT_FREQ= 500 +% +% Writing convergence history frequency +HISTORY_WRT_FREQ_OUTER= 1 +WRT_ZONE_HIST = YES From b3c2389c8b62cbaa0b46478f95466f10298af9e9 Mon Sep 17 00:00:00 2001 From: A Cappiello Date: Fri, 10 Nov 2023 13:54:18 +0100 Subject: [PATCH 022/287] mesh file name in configs updated --- TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg | 4 ++-- .../turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg index e0cda3a343f..c9e64ab5345 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg @@ -322,13 +322,13 @@ OUTPUT_FILES= (TECPLOT_ASCII, SURFACE_TECPLOT_ASCII, RESTART) % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % % Mesh input file -MESH_FILENAME= aachen_turbine_3D_41blade.su2 +MESH_FILENAME= Aachen_3D_41_blade_coarse.su2 % % Mesh input file format (SU2, CGNS, NETCDF_ASCII) MESH_FORMAT= SU2 % % Mesh output file -MESH_OUT_FILENAME= aachen_turbine_3D_41blade.su2 +MESH_OUT_FILENAME= Aachen_3D_41_blade_coarse.su2 % % Restart flow input file SOLUTION_FILENAME= restart_flow.dat diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg index 0e23e13699d..5acf0eb8531 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg @@ -322,13 +322,13 @@ OUTPUT_FILES= (TECPLOT_ASCII, SURFACE_TECPLOT_ASCII, RESTART) % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % % Mesh input file -MESH_FILENAME= aachen_turbine_3D_41blade.su2 +MESH_FILENAME= Aachen_3D_41_blade_coarse.su2 % % Mesh input file format (SU2, CGNS, NETCDF_ASCII) MESH_FORMAT= SU2 % % Mesh output file -MESH_OUT_FILENAME= aachen_turbine_3D_41blade.su2 +MESH_OUT_FILENAME= Aachen_3D_41_blade_coarse.su2 % % Restart flow input file SOLUTION_FILENAME= restart_flow.dat From 9f008026d17eaae24ba3b77bb39553eb7b17d8be Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Wed, 15 Nov 2023 17:28:20 +0100 Subject: [PATCH 023/287] Added contact resistance model used in Fluent --- SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp index 5aa6772907f..361ea5b7b27 100644 --- a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp +++ b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp @@ -133,7 +133,10 @@ void CConjugateHeatInterface::GetDonor_Variable(CSolver *donor_solution, CGeomet (donor_config->GetKind_CHT_Coupling() == CHT_COUPLING::AVERAGED_TEMPERATURE_ROBIN_HEATFLUX)) { const su2double rho_cp_solid = donor_config->GetSpecific_Heat_Cp()*donor_config->GetMaterialDensity(0); - conductivity_over_dist = thermal_diffusivity*rho_cp_solid/dist; + const su2double thermal_conductivity = thermal_diffusivity * rho_cp_solid; + // TODO: add proper contact resistance here. + const su2double R_c = 0.0; + conductivity_over_dist = thermal_conductivity/(dist + thermal_conductivity * R_c); } } From 8c8a62dcc61d8e6acc2e0a30a60e2ca74c9a4311 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Fri, 17 Nov 2023 10:45:04 +0100 Subject: [PATCH 024/287] Defined config option for thermal contact resistance between zones --- Common/include/CConfig.hpp | 17 +++++++++++++++++ Common/src/CConfig.cpp | 13 +++++++++++++ SU2_CFD/include/interfaces/CInterface.hpp | 1 + .../interfaces/cht/CConjugateHeatInterface.hpp | 3 +++ SU2_CFD/src/interfaces/CInterface.cpp | 2 ++ .../interfaces/cht/CConjugateHeatInterface.cpp | 6 ++---- 6 files changed, 38 insertions(+), 4 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index da11f902606..ef3d26bb43c 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -191,6 +191,7 @@ class CConfig { nMarker_Fluid_Load, /*!< \brief Number of markers in which the flow load is computed/employed. */ nMarker_Fluid_InterfaceBound, /*!< \brief Number of fluid interface markers. */ nMarker_CHTInterface, /*!< \brief Number of conjugate heat transfer interface markers. */ + nMarker_ContactResistance, /*!< \brief Number of CHT interfaces with contact resistance. */ nMarker_Inlet, /*!< \brief Number of inlet flow markers. */ nMarker_Inlet_Species, /*!< \brief Number of inlet species markers. */ nSpecies_per_Inlet, /*!< \brief Number of species defined per inlet markers. */ @@ -400,6 +401,7 @@ class CConfig { su2double **Periodic_RotCenter; /*!< \brief Rotational center for each periodic boundary. */ su2double **Periodic_RotAngles; /*!< \brief Rotation angles for each periodic boundary. */ su2double **Periodic_Translation; /*!< \brief Translation vector for each periodic boundary. */ + su2double *CHT_ContactResistance; /*!< \brief Contact resistance values for each solid-solid CHT interface. */ string *Marker_CfgFile_TagBound; /*!< \brief Global index for markers using config file. */ unsigned short *Marker_All_KindBC, /*!< \brief Global index for boundaries using grid information. */ *Marker_CfgFile_KindBC; /*!< \brief Global index for boundaries using config file. */ @@ -592,6 +594,7 @@ class CConfig { bool EulerPersson; /*!< \brief Boolean to determine whether this is an Euler simulation with Persson shock capturing. */ bool FSI_Problem = false,/*!< \brief Boolean to determine whether the simulation is FSI or not. */ Multizone_Problem; /*!< \brief Boolean to determine whether we are solving a multizone problem. */ + bool ContactResistance = false; /*!< \brief Apply contact resistance for conjugate heat transfer. */ unsigned short nID_DV; /*!< \brief ID for the region of FEM when computed using direct differentiation. */ bool AD_Mode; /*!< \brief Algorithmic Differentiation support. */ @@ -3611,6 +3614,20 @@ class CConfig { */ unsigned short GetMarker_n_ZoneInterface(void) const { return nMarker_ZoneInterface; } + /*! + * \brief Contact resistance values are supplied for CHT interfaces. + * \param[in] void + * \return Application of contact resistance. + */ + bool ApplyContactResistance(void) const { return ContactResistance; } + + /*! + * \brief Get the contact resistance value of a specified interface. + * \param[in] val_interface interface index. + * \return Contact resistance value. + */ + const su2double GetContactResistance(unsigned short val_interface) const { return CHT_ContactResistance[val_interface]; } + /*! * \brief Get the DV information for a marker val_marker. * \param[in] val_marker - 0 or 1 depending if the the marker is going to be affected by design variables. diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index a34902142cf..9163702428c 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1509,6 +1509,8 @@ void CConfig::SetConfig_Options() { addStringListOption("MARKER_ZONE_INTERFACE", nMarker_ZoneInterface, Marker_ZoneInterface); /*!\brief MARKER_CHT_INTERFACE \n DESCRIPTION: CHT interface boundary marker(s) \ingroup Config*/ addStringListOption("MARKER_CHT_INTERFACE", nMarker_CHTInterface, Marker_CHTInterface); + /*!\brief CHT_INTERFACE_CONTACT_RESISTANCE: Thermal contact resistance values for each CHT inerface. \ingroup Config*/ + addDoubleListOption("CHT_INTERFACE_CONTACT_RESISTANCE", nMarker_ContactResistance, CHT_ContactResistance); /* DESCRIPTION: Internal boundary marker(s) */ addStringListOption("MARKER_INTERNAL", nMarker_Internal, Marker_Internal); /* DESCRIPTION: Custom boundary marker(s) */ @@ -3562,6 +3564,17 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i SU2_MPI::Error(string("You probably want to set INC_ENERGY_EQUATION= YES for the fluid solver. \n"), CURRENT_FUNCTION); } + /*--- Check correctness and consistency of contact resistance options. ---*/ + if (nMarker_ContactResistance > 0) { + ContactResistance = true; + if ((nMarker_CHTInterface/2) != nMarker_ContactResistance) + SU2_MPI::Error(string("Number of CHT interfaces does not match number of contact resistances. \n"), CURRENT_FUNCTION); + for (auto iCHTMarker=0u; iCHTMarker < nMarker_ContactResistance; iCHTMarker++){ + if (CHT_ContactResistance[iCHTMarker] < 0) + SU2_MPI::Error(string("Contact resistance value should be positive. \n"), CURRENT_FUNCTION); + } + } + /*--- By default, in 2D we should use TWOD_AIRFOIL (independenly from the input file) ---*/ if (val_nDim == 2) Geo_Description = TWOD_AIRFOIL; diff --git a/SU2_CFD/include/interfaces/CInterface.hpp b/SU2_CFD/include/interfaces/CInterface.hpp index 7830e091085..3baac075bba 100644 --- a/SU2_CFD/include/interfaces/CInterface.hpp +++ b/SU2_CFD/include/interfaces/CInterface.hpp @@ -228,4 +228,5 @@ class CInterface { */ void GatherAverageTurboGeoValues(CGeometry *donor_geometry, CGeometry *target_geometry, unsigned short donorZone); + inline virtual void SetContactResistance(su2double val_contact_resistance) {}; }; diff --git a/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp b/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp index 093675bb5dc..b372ca84980 100644 --- a/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp +++ b/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp @@ -35,6 +35,7 @@ * \ingroup Interfaces */ class CConjugateHeatInterface : public CInterface { + su2double ContactResistance = 0; /*!<\brief Contact resistance value of the current inerface. */ public: /*! * \brief Constructor of the class. @@ -70,4 +71,6 @@ class CConjugateHeatInterface : public CInterface { */ void SetTarget_Variable(CSolver *target_solution, CGeometry *target_geometry, const CConfig *target_config, unsigned long Marker_Target, unsigned long Vertex_Target, unsigned long Point_Target) override; + + void SetContactResistance(su2double val_contact_resistance) override { ContactResistance = val_contact_resistance; } }; diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index 4d8d33b3ecf..72b94b46337 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -108,6 +108,8 @@ void CInterface::BroadcastData(const CInterpolator& interpolator, su2activematrix sendDonorVar(nLocalVertexDonor, nVar); if (markDonor >= 0) { + if (donor_config->ApplyContactResistance()) + SetContactResistance(donor_config->GetContactResistance(iMarkerInt)); for (auto iVertex = 0ul, iSend = 0ul; iVertex < donor_geometry->GetnVertex(markDonor); iVertex++) { const auto iPoint = donor_geometry->vertex[markDonor][iVertex]->GetNode(); diff --git a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp index 361ea5b7b27..270ec227a15 100644 --- a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp +++ b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp @@ -133,10 +133,8 @@ void CConjugateHeatInterface::GetDonor_Variable(CSolver *donor_solution, CGeomet (donor_config->GetKind_CHT_Coupling() == CHT_COUPLING::AVERAGED_TEMPERATURE_ROBIN_HEATFLUX)) { const su2double rho_cp_solid = donor_config->GetSpecific_Heat_Cp()*donor_config->GetMaterialDensity(0); - const su2double thermal_conductivity = thermal_diffusivity * rho_cp_solid; - // TODO: add proper contact resistance here. - const su2double R_c = 0.0; - conductivity_over_dist = thermal_conductivity/(dist + thermal_conductivity * R_c); + thermal_conductivity = thermal_diffusivity * rho_cp_solid; + conductivity_over_dist = thermal_conductivity/(dist + thermal_conductivity * ContactResistance); } } From 706c0ed9f352c41473f6ae1b1386ec3d63ec6690 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 20 Nov 2023 16:49:11 +0100 Subject: [PATCH 025/287] Updated hydrogen test case file name in regression tests and set the GetEnthFromTemp convergence settings in accordance with develop --- SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp | 4 ++-- TestCases/parallel_regression.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index d7ef5e9a363..210fc02095b 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -748,12 +748,12 @@ void CSpeciesFlameletSolver::Viscous_Residual(unsigned long iEdge, CGeometry* ge unsigned long CSpeciesFlameletSolver::GetEnthFromTemp(CFluidModel* fluid_model, su2double const val_temp, const su2double* scalar_solution, su2double* val_enth) { /*--- convergence criterion for temperature in [K], high accuracy needed for restarts. ---*/ - su2double delta_temp_final = 1e-10; + su2double delta_temp_final = 0.001; su2double enth_iter = scalar_solution[I_ENTH]; su2double delta_enth; su2double delta_temp_iter = 1e10; unsigned long exit_code = 0; - const int counter_limit = 5000; + const int counter_limit = 1000; int counter = 0; diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 6f1ffda08bd..45fe43dcfb1 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -72,7 +72,7 @@ def main(): # 2D planar laminar premixed hydrogen flame on isothermal burner with heat exchanger emulator (restart) cfd_flamelet_h2 = TestCase('cfd_flamelet_h2') cfd_flamelet_h2.cfg_dir = "flamelet/07_laminar_premixed_h2_flame_cfd" - cfd_flamelet_h2.cfg_file = "lam_premixed_h2_flame_cfd.cfg" + cfd_flamelet_h2.cfg_file = "laminar_premixed_h2_flame_cfd.cfg" cfd_flamelet_h2.test_iter = 5 cfd_flamelet_h2.test_vals = [-9.915363, -9.807720, -3.260516, -11.304692] cfd_flamelet_h2.new_output = True From 9cef1888566113f5005798300af1cf81daa978b4 Mon Sep 17 00:00:00 2001 From: A Cappiello Date: Tue, 28 Nov 2023 17:05:24 +0100 Subject: [PATCH 026/287] fixing the iteration number --- .../turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg index 5acf0eb8531..482c7955c16 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg @@ -287,7 +287,7 @@ DV_VALUE= 0.01 % --------------------------- CONVERGENCE PARAMETERS --------------------------% % % Number of total iterations -OUTER_ITER=5 +OUTER_ITER=10 % % Convergence criteria (CAUCHY, RESIDUAL) CONV_FIELD=RMS_ENERGY[0] From 55bc78597040051c109a799671be125e3cb4e974 Mon Sep 17 00:00:00 2001 From: A Cappiello Date: Wed, 29 Nov 2023 14:27:38 +0100 Subject: [PATCH 027/287] fixing test values in regression tests --- TestCases/parallel_regression.py | 2 +- TestCases/serial_regression.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 992470f5dd6..03a00216132 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1039,7 +1039,7 @@ def main(): Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 - Aachen_3D_restart.test_vals = [-13.373601, -12.292596, -14.478385, -11.684489, -11.338515, -7.903908] + Aachen_3D_restart.test_vals = [-15.164439, -14.403106, -15.080788, -13.555608, -12.719007, -9.746760] test_list.append(Aachen_3D_restart) # Jones APU Turbocharger restart diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index d542e07f211..110bb3d8885 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -857,7 +857,7 @@ def main(): Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 - Aachen_3D_restart.test_vals = [-13.373601, -12.292596, -14.478385, -11.684489, -11.338515, -7.903908] + Aachen_3D_restart.test_vals = [-15.227701, -14.551669, -15.080787, -13.635771, -12.721746, -9.826153] Aachen_3D_restart.tol = 0.0001 test_list.append(Aachen_3D_restart) From 4cbaeebd53ad20de13b99f4b9d82c189e39725ce Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Wed, 29 Nov 2023 15:00:10 +0100 Subject: [PATCH 028/287] Updated GetEnthFromTemp function for proper restarts on test cases --- SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index 210fc02095b..f37a34f2f15 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -760,7 +760,7 @@ unsigned long CSpeciesFlameletSolver::GetEnthFromTemp(CFluidModel* fluid_model, su2double val_scalars[MAXNVAR]; for (auto iVar = 0u; iVar < nVar; iVar++) val_scalars[iVar] = scalar_solution[iVar]; - while ((abs(delta_temp_iter / val_temp) > delta_temp_final) && (counter++ < counter_limit)) { + while ((abs(delta_temp_iter) > delta_temp_final) && (counter++ < counter_limit)) { /*--- Add all quantities and their names to the look up vectors. ---*/ val_scalars[I_ENTH] = enth_iter; fluid_model->SetTDState_T(val_temp, val_scalars); @@ -772,7 +772,7 @@ unsigned long CSpeciesFlameletSolver::GetEnthFromTemp(CFluidModel* fluid_model, delta_enth = Cp * delta_temp_iter; - enth_iter += 0.5 * delta_enth; + enth_iter += delta_enth; } *val_enth = enth_iter; From dadedf4ea288ad89d734ce7b52cea126398e54f7 Mon Sep 17 00:00:00 2001 From: alecappiello <149589647+alecappiello@users.noreply.github.com> Date: Wed, 29 Nov 2023 15:12:46 +0100 Subject: [PATCH 029/287] Update TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg Adding supporting comment to TURBO_PERF_KIND keyword Co-authored-by: Josh Kelly <81244680+joshkellyjak@users.noreply.github.com> --- TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg index c9e64ab5345..56535397c54 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg @@ -159,6 +159,8 @@ MARKER_SHROUD= (SHROUD1, SHROUD2, SHROUD3) TURBOMACHINERY_KIND= AXIAL AXIAL AXIAL % % Uncomment to work with new_turbo_outputs +% Specify the machine architecture for performance analysis (TURBINE, COMPRESSOR, PROPELLOR) +% %TURBO_PERF_KIND= (TURBINE, TURBINE, TURBINE) % % Specify kind of interpolation for the mixing-plane (LINEAR_INTERPOLATION, NEAREST_SPAN, MATCHING) From 3b5c63c291fa21af78831f9b3c5766d545653195 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Wed, 29 Nov 2023 15:56:28 +0100 Subject: [PATCH 030/287] Updated code styling according to pre-commit --- Common/include/CConfig.hpp | 4 ++-- Common/src/CConfig.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 8e0a7f7d483..85f2b81046e 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -1223,7 +1223,7 @@ class CConfig { su2double* spark_reaction_rates; /*!< \brief Source terms for flamelet spark ignition option. */ unsigned short nspark; /*!< \brief Number of source terms for spark initialization. */ bool preferential_diffusion = false; /*!< \brief Preferential diffusion physics for flamelet solver.*/ - + /*--- lookup table ---*/ unsigned short n_scalars = 0; /*!< \brief Number of transported scalars for flamelet LUT approach. */ unsigned short n_lookups = 0; /*!< \brief Number of lookup variables, for visualization only. */ @@ -2143,7 +2143,7 @@ class CConfig { * (x8) = flame burnt thickness, the length to stay at burnt conditions. * \return Ignition initialization parameters for the flamelet model. */ - const su2double* GetFlameInit() const { + const su2double* GetFlameInit() const { switch (flame_init_type) { case FLAMELET_INIT_TYPE::FLAME_FRONT: diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 31db843b22c..4f3e863542e 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1390,7 +1390,7 @@ void CConfig::SetConfig_Options() { /*!\brief SPARK_INIT \n DESCRIPTION: spark initialization using the flamelet model \ingroup Config*/ for (auto iSpark=0u; iSpark<6; ++iSpark) spark_init[iSpark]=0; addDoubleArrayOption("SPARK_INIT", 6, spark_init); - + /*!\brief SPARK_REACTION_RATES \n DESCRIPTION: Net source term values applied to species within spark area during spark ignition. \ingroup Config*/ addDoubleListOption("SPARK_REACTION_RATES", nspark, spark_reaction_rates); From 15a8505a2af340da4da26c0eb8f66e88c1a62389 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 4 Dec 2023 12:11:28 +0100 Subject: [PATCH 031/287] Updated residual values for hydrogen flamelet regression test --- TestCases/parallel_regression.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 45fe43dcfb1..129a6d8d58c 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -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.915363, -9.807720, -3.260516, -11.304692] + cfd_flamelet_h2.test_vals = [-9.914406, -9.807959, -3.260701, -11.304908] cfd_flamelet_h2.new_output = True test_list.append(cfd_flamelet_h2) From ee5c4aa2b4c877ad6e0deb539b3693d770a1c847 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 4 Dec 2023 13:57:25 +0100 Subject: [PATCH 032/287] Updated spaces for codefactor analysis --- TestCases/parallel_regression.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 129a6d8d58c..9996abca751 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1377,7 +1377,7 @@ def main(): pywrapper_unsteadyFSI.test_iter = 4 pywrapper_unsteadyFSI.test_vals = [0, 31, 5, 58, -1.756780, -2.828276, -7.652558, -6.863929, 1.5618e-04] pywrapper_unsteadyFSI.command = TestCase.Command("mpirun -np 2", "python", "run.py") - pywrapper_unsteadyFSI.unsteady = True + pywrapper_unsteadyFSI.unsteady = True pywrapper_unsteadyFSI.multizone = True test_list.append(pywrapper_unsteadyFSI) @@ -1792,13 +1792,13 @@ def main(): # Inviscid NACA0012 (triangles) naca0012_cst = TestCase('naca0012_cst') - naca0012_cst.cfg_dir = "deformation/cst" - naca0012_cst.cfg_file = "naca0012.cfg" - naca0012_cst.test_iter = 10 - naca0012_cst.test_vals = [0.000385514] #residual - naca0012_cst.command = TestCase.Command("mpirun -n 2", "SU2_DEF") - naca0012_cst.timeout = 1600 - naca0012_cst.tol = 1e-8 + naca0012_cst.cfg_dir = "deformation/cst" + naca0012_cst.cfg_file = "naca0012.cfg" + naca0012_cst.test_iter = 10 + naca0012_cst.test_vals = [0.000385514] #residual + naca0012_cst.command = TestCase.Command("mpirun -n 2", "SU2_DEF") + naca0012_cst.timeout = 1600 + naca0012_cst.tol = 1e-8 pass_list.append(naca0012_cst.run_def()) test_list.append(naca0012_cst) From 293d8fd7a57874950f6e56d15209a0c7b2b47312 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 11 Dec 2023 16:00:25 +0100 Subject: [PATCH 033/287] removed trailing white spaces --- Common/include/CConfig.hpp | 4 ++-- Common/src/CConfig.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index e42b5289a49..1650a96944b 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -3603,7 +3603,7 @@ class CConfig { /*! * \brief Contact resistance values are supplied for CHT interfaces. * \param[in] void - * \return Application of contact resistance. + * \return Application of contact resistance. */ bool ApplyContactResistance(void) const { return ContactResistance; } @@ -3613,7 +3613,7 @@ class CConfig { * \return Contact resistance value. */ const su2double GetContactResistance(unsigned short val_interface) const { return CHT_ContactResistance[val_interface]; } - + /*! * \brief Get the DV information for a marker val_marker. * \param[in] val_marker - 0 or 1 depending if the the marker is going to be affected by design variables. diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index c7ac5f75dfa..2068186e81d 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -3545,11 +3545,11 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i if ((nMarker_CHTInterface/2) != nMarker_ContactResistance) SU2_MPI::Error(string("Number of CHT interfaces does not match number of contact resistances. \n"), CURRENT_FUNCTION); for (auto iCHTMarker=0u; iCHTMarker < nMarker_ContactResistance; iCHTMarker++){ - if (CHT_ContactResistance[iCHTMarker] < 0) + if (CHT_ContactResistance[iCHTMarker] < 0) SU2_MPI::Error(string("Contact resistance value should be positive. \n"), CURRENT_FUNCTION); } } - + /*--- By default, in 2D we should use TWOD_AIRFOIL (independenly from the input file) ---*/ if (val_nDim == 2) Geo_Description = TWOD_AIRFOIL; From d90e8e14ddda3582f782043fba9a00e3d3f4edcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Corentin=20Thom=C3=A9e?= Date: Fri, 12 Jan 2024 12:21:17 +0100 Subject: [PATCH 034/287] Implemented SA axisymmetric source terms --- Common/src/CConfig.cpp | 5 -- .../numerics/turbulent/turb_sources.hpp | 49 +++++++++++++++++++ SU2_CFD/src/solvers/CTurbSASolver.cpp | 7 +++ 3 files changed, 56 insertions(+), 5 deletions(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index f660ec5633d..f8b2e15dc78 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -3448,11 +3448,6 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i saParsedOptions = ParseSAOptions(SA_Options, nSA_Options, rank); } - /*--- Check if turbulence model can be used for AXISYMMETRIC case---*/ - if (Axisymmetric && Kind_Turb_Model != TURB_MODEL::NONE && Kind_Turb_Model != TURB_MODEL::SST){ - SU2_MPI::Error("Axisymmetry is currently only supported for KIND_TURB_MODEL chosen as SST", CURRENT_FUNCTION); - } - /*--- Postprocess LM_OPTIONS into structure. ---*/ if (Kind_Trans_Model == TURB_TRANS_MODEL::LM) { lmParsedOptions = ParseLMOptions(LM_Options, nLM_Options, rank, Kind_Turb_Model); diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index af920cd34c1..2382f84388d 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -77,9 +77,41 @@ class CSourceBase_TurbSA : public CNumerics { const FlowIndices idx; /*!< \brief Object to manage the access to the flow primitives. */ const SA_ParsedOptions options; /*!< \brief Struct with SA options. */ + const bool axisymmetric = false; bool transition_LM; + /*! + * \brief Add contribution from diffusion due to axisymmetric formulation to 2D residual + */ + inline void ResidualAxisymmetricDiffusion(su2double sigma) { + if (Coord_i[1] < EPS) return; + + const su2double yinv = 1.0 / Coord_i[1]; + const su2double& nue = ScalarVar_i[0]; + + const auto& density = V_i[idx.Density()]; + const auto& laminar_viscosity = V_i[idx.LaminarViscosity()]; + + const su2double nu = laminar_viscosity/density; + + su2double nu_e; + + if (options.version == SA_OPTIONS::NEG && nue < 0.0) { + const su2double cn1 = 16.0; + const su2double Xi = nue / nu; + const su2double fn = (cn1 + Xi*Xi*Xi) / (cn1 - Xi*Xi*Xi); + nu_e = nu + fn * nue; + } else { + nu_e = nu + nue; + } + + /* Diffusion source term */ + const su2double dv_axi = (1.0/sigma)*nu_e*ScalarVar_Grad_i[0][1]; + + Residual += yinv * dv_axi * Volume; + } + public: /*! * \brief Constructor of the class. @@ -89,6 +121,7 @@ class CSourceBase_TurbSA : public CNumerics { CSourceBase_TurbSA(unsigned short nDim, const CConfig* config) : CNumerics(nDim, 1, config), idx(nDim, config->GetnSpecies()), + axisymmetric(config->GetAxisymmetric()), options(config->GetSAParsedOptions()), transition_LM(config->GetKind_Trans_Model() == TURB_TRANS_MODEL::LM) { /*--- Setup the Jacobian pointer, we need to return su2double** but we know @@ -217,6 +250,9 @@ class CSourceBase_TurbSA : public CNumerics { SourceTerms::get(ScalarVar_i[0], var, Production, Destruction, CrossProduction, Jacobian_i[0]); Residual = (Production - Destruction + CrossProduction) * Volume; + + if (axisymmetric) ResidualAxisymmetricDiffusion(var.sigma); + Jacobian_i[0] *= Volume; } @@ -520,6 +556,19 @@ class CCompressibilityCorrection final : public ParentClass { const su2double d_CompCorrection = 2.0 * c5 * ScalarVar_i[0] / pow(sound_speed, 2) * aux_cc * Volume; const su2double CompCorrection = 0.5 * ScalarVar_i[0] * d_CompCorrection; + /* Axisymmetric contribution */ + if (config->GetAxisymmetric() && this->Coord_i[1] > EPS) { + const su2double yinv = 1.0 / this->Coord_i[1]; + const su2double nue = ScalarVar_i[0]; + const su2double v = V_i[idx.Velocity() + 1]; + + const su2double d_axiCorrection = 2.0 * c5 * nue * pow(v * yinv / sound_speed, 2) * Volume; + const su2double axiCorrection = 0.5 * nue * d_axiCorrection; + + this->Residual -= axiCorrection; + this->Jacobian_i[0] -= d_axiCorrection; + } + this->Residual -= CompCorrection; this->Jacobian_i[0] -= d_CompCorrection; diff --git a/SU2_CFD/src/solvers/CTurbSASolver.cpp b/SU2_CFD/src/solvers/CTurbSASolver.cpp index 2d301dc7722..143a09323d6 100644 --- a/SU2_CFD/src/solvers/CTurbSASolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSASolver.cpp @@ -308,6 +308,8 @@ void CTurbSASolver::Viscous_Residual(unsigned long iEdge, CGeometry* geometry, C void CTurbSASolver::Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container, CConfig *config, unsigned short iMesh) { + bool axisymmetric = config->GetAxisymmetric(); + const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); const bool harmonic_balance = (config->GetTime_Marching() == TIME_MARCHING::HARMONIC_BALANCE); const bool transition_BC = config->GetSAParsedOptions().bc; @@ -383,6 +385,11 @@ void CTurbSASolver::Source_Residual(CGeometry *geometry, CSolver **solver_contai numerics->SetIntermittency(solver_container[TRANS_SOL]->GetNodes()->GetSolution(iPoint, 0)); } + if (axisymmetric) { + /*--- Set y coordinate ---*/ + numerics->SetCoord(geometry->nodes->GetCoord(iPoint), geometry->nodes->GetCoord(iPoint)); + } + /*--- Compute the source term ---*/ auto residual = numerics->ComputeResidual(config); From 32144a20e7274015690b82bf180d65d736459843 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Corentin=20Thom=C3=A9e?= Date: Fri, 12 Jan 2024 13:52:37 +0100 Subject: [PATCH 035/287] Fix reorder warning --- SU2_CFD/include/numerics/turbulent/turb_sources.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index 2382f84388d..23e51975504 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -121,8 +121,8 @@ class CSourceBase_TurbSA : public CNumerics { CSourceBase_TurbSA(unsigned short nDim, const CConfig* config) : CNumerics(nDim, 1, config), idx(nDim, config->GetnSpecies()), - axisymmetric(config->GetAxisymmetric()), options(config->GetSAParsedOptions()), + axisymmetric(config->GetAxisymmetric()), transition_LM(config->GetKind_Trans_Model() == TURB_TRANS_MODEL::LM) { /*--- Setup the Jacobian pointer, we need to return su2double** but we know * the Jacobian is 1x1 so we use this trick to avoid heap allocation. ---*/ @@ -556,7 +556,7 @@ class CCompressibilityCorrection final : public ParentClass { const su2double d_CompCorrection = 2.0 * c5 * ScalarVar_i[0] / pow(sound_speed, 2) * aux_cc * Volume; const su2double CompCorrection = 0.5 * ScalarVar_i[0] * d_CompCorrection; - /* Axisymmetric contribution */ + /*--- Axisymmetric contribution ---*/ if (config->GetAxisymmetric() && this->Coord_i[1] > EPS) { const su2double yinv = 1.0 / this->Coord_i[1]; const su2double nue = ScalarVar_i[0]; From d9f6fa2eb879df1a82f94de522e7c33ce21e50bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Corentin=20Thom=C3=A9e?= Date: Fri, 12 Jan 2024 14:33:30 +0100 Subject: [PATCH 036/287] Remove useless call to getAxisymmetric() --- SU2_CFD/include/numerics/turbulent/turb_sources.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index 23e51975504..956979af846 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -557,7 +557,7 @@ class CCompressibilityCorrection final : public ParentClass { const su2double CompCorrection = 0.5 * ScalarVar_i[0] * d_CompCorrection; /*--- Axisymmetric contribution ---*/ - if (config->GetAxisymmetric() && this->Coord_i[1] > EPS) { + if (this->axisymmetric && this->Coord_i[1] > EPS) { const su2double yinv = 1.0 / this->Coord_i[1]; const su2double nue = ScalarVar_i[0]; const su2double v = V_i[idx.Velocity() + 1]; From 25e49c57af64c9e9900917792edbc5d175ad415d Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 1 Feb 2024 14:51:47 +0100 Subject: [PATCH 037/287] Implemented more efficient line search method for inclusion level search in look-up table --- Common/include/containers/CLookUpTable.hpp | 3 +-- Common/src/containers/CLookUpTable.cpp | 29 +++++++++++----------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Common/include/containers/CLookUpTable.hpp b/Common/include/containers/CLookUpTable.hpp index a9a9b9f7910..010c5b4d8fc 100644 --- a/Common/include/containers/CLookUpTable.hpp +++ b/Common/include/containers/CLookUpTable.hpp @@ -56,7 +56,7 @@ class CLookUpTable { unsigned long n_variables, n_table_levels = 1; - su2vector z_values_levels; /*!< \brief Constant z-values of each table level.*/ + std::vector z_values_levels; /*!< \brief Constant z-values of each table level.*/ unsigned short table_dim = 2; /*!< \brief Table dimension.*/ /*! @@ -353,7 +353,6 @@ class CLookUpTable { /*! * \brief Find the table levels with constant z-values directly above and below query val_z. * \param[in] val_CV3 - Value of controlling variable 3. - * \param[in] within_limits - Whether query point lies within table bounds. * \returns Pair of inclusion level indices (first = lower level index, second = upper level index). */ std::pair FindInclusionLevels(const su2double val_CV3); diff --git a/Common/src/containers/CLookUpTable.cpp b/Common/src/containers/CLookUpTable.cpp index 698a042a3d5..8ad60b4ca52 100644 --- a/Common/src/containers/CLookUpTable.cpp +++ b/Common/src/containers/CLookUpTable.cpp @@ -406,21 +406,22 @@ void CLookUpTable::GetInterpMatInv(const su2double* vec_x, const su2double* vec_ std::pair CLookUpTable::FindInclusionLevels(const su2double val_CV3) { /*--- Find the table levels with constant z-values directly below and above the query value val_CV3 ---*/ + + unsigned long i_low{0},i_up{0}; + su2double val_z = val_CV3; /* Check if val_CV3 lies outside table bounds */ - if (val_CV3 >= *limits_table_z.second) { - return std::make_pair(n_table_levels - 1, n_table_levels - 1); - } else if (val_CV3 <= *limits_table_z.first) { - return std::make_pair(0, 0); - } else { - std::pair inclusion_levels; - /* Loop over table levels to find the levels directly above and below the query value */ - for (auto i_level = 0ul; i_level < n_table_levels - 1; i_level++) { - if ((val_CV3 >= z_values_levels[i_level]) && (val_CV3 < z_values_levels[i_level + 1])) { - inclusion_levels = std::make_pair(i_level, i_level + 1); - } - } - return inclusion_levels; - } + if (val_z < z_values_levels.front()) val_z = z_values_levels.front(); + if (val_z > z_values_levels.back()) val_z = z_values_levels.back(); + + /* Perform line search to find upper inclusion level. */ + std::pair::iterator, std::vector::iterator> bounds; + bounds = std::equal_range(z_values_levels.begin(), z_values_levels.end(), val_z); + + /*--- if upper bound = 0, then use the range [0,1] ---*/ + i_up = max(1, bounds.first - z_values_levels.begin()); + i_low = i_up - 1; + + return make_pair(i_low, i_up); } unsigned long CLookUpTable::LookUp_XYZ(const std::string& val_name_var, su2double* val_var, su2double val_CV1, From fdcfd8a82bd7e70f70bf959bc9e4c9bb1c00c272 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Thu, 8 Feb 2024 16:11:22 +0000 Subject: [PATCH 038/287] Implementation of mass flow outlet in Giles BC --- Common/include/option_structure.hpp | 5 +++- SU2_CFD/include/solvers/CEulerSolver.hpp | 10 ++++++++ SU2_CFD/include/solvers/CSolver.hpp | 7 ++++++ SU2_CFD/src/solvers/CEulerSolver.cpp | 29 ++++++++++++++++++++++-- 4 files changed, 48 insertions(+), 3 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index a2b5f551525..3777ff5c794 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1699,7 +1699,8 @@ enum RIEMANN_TYPE { TOTAL_CONDITIONS_PT_1D = 11, STATIC_PRESSURE_1D = 12, MIXING_IN_1D = 13, - MIXING_OUT_1D =14 + MIXING_OUT_1D = 14, + MASS_FLOW_OUTLET = 15 }; static const MapType Riemann_Map = { MakePair("TOTAL_CONDITIONS_PT", TOTAL_CONDITIONS_PT) @@ -1716,6 +1717,7 @@ static const MapType Riemann_Map = { MakePair("RADIAL_EQUILIBRIUM", RADIAL_EQUILIBRIUM) MakePair("TOTAL_CONDITIONS_PT_1D", TOTAL_CONDITIONS_PT_1D) MakePair("STATIC_PRESSURE_1D", STATIC_PRESSURE_1D) + MakePair("MASS_FLOW_OUTLET", MASS_FLOW_OUTLET) }; static const MapType Giles_Map = { @@ -1733,6 +1735,7 @@ static const MapType Giles_Map = { MakePair("RADIAL_EQUILIBRIUM", RADIAL_EQUILIBRIUM) MakePair("TOTAL_CONDITIONS_PT_1D", TOTAL_CONDITIONS_PT_1D) MakePair("STATIC_PRESSURE_1D", STATIC_PRESSURE_1D) + MakePair("MASS_FLOW_OUTLET", MASS_FLOW_OUTLET) }; /*! diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index 7a6aa9fb3d8..bcd4e55b253 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -138,6 +138,7 @@ class CEulerSolver : public CFVMFlowSolverBase AverageMassFlowRate; su2activematrix DensityIn; su2activematrix PressureIn; @@ -1191,6 +1192,15 @@ class CEulerSolver : public CFVMFlowSolverBaseval_marker + */ + inline su2double GetAverageMassFlowRate(unsigned short valMarker) const final { + return AverageMassFlowRate[valMarker]; + } + /*! * \brief Provide the average pressure at the boundary of interest. * \param[in] val_marker - bound marker. diff --git a/SU2_CFD/include/solvers/CSolver.hpp b/SU2_CFD/include/solvers/CSolver.hpp index 9134c901174..a43ed764f11 100644 --- a/SU2_CFD/include/solvers/CSolver.hpp +++ b/SU2_CFD/include/solvers/CSolver.hpp @@ -3799,6 +3799,13 @@ class CSolver { */ inline virtual su2double GetAverageDensity(unsigned short valMarker, unsigned short valSpan) const { return 0.0; } + /*! + * \brief virtual member + * \param[in] val_marker - boundary marker + * \return Value of the mass flow rate on the surface val_marker + */ + inline virtual su2double GetAverageMassFlowRate(unsigned short valMarker) const {return 0.0; } + /*! * \brief A virtual member. * \param[in] val_marker - bound marker. diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 05aec1c2843..dae32f75e30 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -232,6 +232,9 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, Exhaust_Pressure.resize(nMarker); Exhaust_Area.resize(nMarker); + /*--- Turbomachinery simulation ---*/ + AverageMassFlowRate.resize(nMarker); + /*--- Read farfield conditions from config ---*/ Temperature_Inf = config->GetTemperature_FreeStreamND(); @@ -279,6 +282,8 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, Exhaust_Temperature[iMarker] = Temperature_Inf; Exhaust_Pressure[iMarker] = Pressure_Inf; Exhaust_Area[iMarker] = 0.0; + + AverageMassFlowRate[iMarker] = 0.0; } /*--- Initialize the solution to the far-field state everywhere. ---*/ @@ -6530,6 +6535,23 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu break; + case MASS_FLOW_OUTLET: + auto const MassFlowRate_e = config->GetGiles_Var1(Marker_Tag); + auto const relFacMassFlowRate = config->GetGiles_Var2(Marker_Tag); + + Pressure_e = AveragePressure[val_marker][nSpanWiseSections]+relFacMassFlowRate*(AverageMassFlowRate[val_marker]-MassFlowRate_e); + + + /* --- Compute avg characteristic jump --- */ + if (nDim == 2){ + c_avg[3] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); + } + else + { + c_avg[4] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); + } + break; + } /*--- Loop over all the vertices on this boundary marker ---*/ @@ -6701,7 +6723,7 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu break; - case STATIC_PRESSURE:case STATIC_PRESSURE_1D:case MIXING_OUT:case RADIAL_EQUILIBRIUM:case MIXING_OUT_1D: + case STATIC_PRESSURE:case STATIC_PRESSURE_1D:case MIXING_OUT:case RADIAL_EQUILIBRIUM:case MIXING_OUT_1D: case MASS_FLOW_OUTLET: /* --- implementation of Giles BC---*/ if(config->GetSpatialFourier()){ @@ -9335,7 +9357,10 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC SU2_MPI::Error(" Invalid AVERAGE PROCESS input!", CURRENT_FUNCTION); break; } - + /*--- Store averaged value of mass flow rate over the prescribed boundary ---*/ + if (iSpan == nSpanWiseSections){ + AverageMassFlowRate[iMarker] = TotalFluxes[0]; + } AverageDensity[iMarker][iSpan] = avgDensity; AveragePressure[iMarker][iSpan] = avgPressure; if ((average_process == MIXEDOUT) && !belowMachLimit) { From 7d4d4ede681199bdec58599377d627a3c13847ec Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 13 Feb 2024 16:13:06 +0000 Subject: [PATCH 039/287] Added TURBO_INTERFACE_KIND options and updated interface preprocesing --- Common/include/CConfig.hpp | 10 ++++++++++ Common/include/option_structure.hpp | 12 ++++++++++++ Common/src/CConfig.cpp | 17 ++++++++++++++++- SU2_CFD/src/drivers/CDriver.cpp | 25 +++++++++++++++++-------- 4 files changed, 55 insertions(+), 9 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 910be2231ac..ae99f984ce3 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -231,6 +231,7 @@ class CConfig { *Marker_PerBound, /*!< \brief Periodic boundary markers. */ *Marker_PerDonor, /*!< \brief Rotationally periodic boundary donor markers. */ *Marker_MixingPlaneInterface, /*!< \brief MixingPlane interface boundary markers. */ + *Marker_TurboInterface, /*!< \breif Turbo interface boundary markers */ *Marker_TurboBoundIn, /*!< \brief Turbomachinery performance boundary markers. */ *Marker_TurboBoundOut, /*!< \brief Turbomachinery performance boundary donor markers. */ *Marker_NearFieldBound, /*!< \brief Near Field boundaries markers. */ @@ -436,6 +437,7 @@ class CConfig { TURBO_PERF_KIND *Kind_TurboPerf; /*!< \brief Kind of turbomachynery architecture.*/ TURBOMACHINERY_TYPE *Kind_TurboMachinery; + TURBO_INTERFACE_KIND *Kind_TurboInterface; /* Gradient smoothing options */ su2double SmoothingEps1; /*!< \brief Parameter for the identity part in gradient smoothing. */ @@ -459,6 +461,7 @@ class CConfig { unsigned short* nDV_Value; /*!< \brief Number of values for each design variable (might be different than 1 if we allow arbitrary movement). */ unsigned short nFFDBox; /*!< \brief Number of ffd boxes. */ unsigned short nTurboMachineryKind; /*!< \brief Number turbomachinery types specified. */ + unsigned short nTurboInterfaces; /*!< \brief Number of turbomachiery interfaces */ unsigned short nParamDV; /*!< \brief Number of parameters of the design variable. */ string DV_Filename; /*!< \brief Filename for providing surface positions from an external parameterization. */ string DV_Unordered_Sens_Filename; /*!< \brief Filename of volume sensitivities in an unordered ASCII format. */ @@ -755,6 +758,7 @@ class CConfig { *Marker_CfgFile_Turbomachinery, /*!< \brief Global index for Turbomachinery using the config information. */ *Marker_CfgFile_TurbomachineryFlag, /*!< \brief Global index for Turbomachinery flag using the config information. */ *Marker_CfgFile_MixingPlaneInterface, /*!< \brief Global index for MixingPlane interface using the config information. */ + *Marker_CfgFile_TurboInterface, /*< \breif Global index for turbo interface using the config information */ *Marker_CfgFile_Moving, /*!< \brief Global index for moving surfaces using the config information. */ *Marker_CfgFile_Deform_Mesh, /*!< \brief Global index for deformable markers at the boundary. */ *Marker_CfgFile_Deform_Mesh_Sym_Plane, /*!< \brief Global index for markers with symmetric deformations. */ @@ -5262,6 +5266,12 @@ class CConfig { */ TURBO_PERF_KIND GetKind_TurboPerf(unsigned short val_iZone) const { return Kind_TurboPerf[val_iZone]; }; + /*! + * \brief get interface kind for two adjacent zones in turbomachinery problem + * \return interface kind + */ + TURBO_INTERFACE_KIND GetKind_TurboInterface(unsigned short interfaceIndex) const { return Kind_TurboInterface[interfaceIndex]; } + /*! * \brief get outlet bounds name for Turbomachinery performance calculation. * \return name of the bound. diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 3777ff5c794..3228892b3c4 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1812,6 +1812,18 @@ static const MapType TurboPerfKind_Map = { MakePair("PROPELLOR", TURBO_PERF_KIND::PROPELLOR) }; +/*! + * \brief Types onf Turbomachinery interfaces + */ +enum class TURBO_INTERFACE_KIND{ + MIXING_PLANE = ENUM_TRANSFER::MIXING_PLANE, + FROZEN_ROTOR = ENUM_TRANSFER::SLIDING_INTERFACE, +}; +static const MapType TurboInterfaceKind_Map = { + MakePair("MIXING_PLANE", TURBO_INTERFACE_KIND::MIXING_PLANE) + MakePair("FROZEN_ROTOR", TURBO_INTERFACE_KIND::FROZEN_ROTOR) +}; + /*! * \brief Types of Turbomachinery performance flag. */ diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 86a0d31e456..1796f012bf4 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -834,6 +834,7 @@ void CConfig::SetPointersNull() { Marker_CfgFile_Turbomachinery = nullptr; Marker_All_Turbomachinery = nullptr; Marker_CfgFile_TurbomachineryFlag = nullptr; Marker_All_TurbomachineryFlag = nullptr; Marker_CfgFile_MixingPlaneInterface = nullptr; Marker_All_MixingPlaneInterface = nullptr; + Marker_CfgFile_TurboInterface = nullptr; Marker_CfgFile_ZoneInterface = nullptr; Marker_CfgFile_Deform_Mesh = nullptr; Marker_All_Deform_Mesh = nullptr; Marker_CfgFile_Deform_Mesh_Sym_Plane = nullptr; Marker_All_Deform_Mesh_Sym_Plane = nullptr; @@ -1034,6 +1035,7 @@ void CConfig::SetPointersNull() { Kind_TurboMachinery = nullptr; Marker_MixingPlaneInterface = nullptr; + Marker_TurboInterface = nullptr; Marker_TurboBoundIn = nullptr; Marker_TurboBoundOut = nullptr; Marker_Giles = nullptr; @@ -1630,6 +1632,9 @@ void CConfig::SetConfig_Options() { /*!\brief TURBOMACHINERY_KIND \n DESCRIPTION: types of turbomachynery Performance Calculations. \n OPTIONS: see \link TurboPerfKind_Map \endlink \n Default: TURBINE */ addEnumListOption("TURBO_PERF_KIND", nTurboMachineryKind, Kind_TurboPerf, TurboPerfKind_Map); + /*!\brief TURBO_INTERFACE_KIND \n DESCRIPTION: types of interface to be used between zones in turbomachinery problems + * \n OPTIONS: see \link TurboInterfaceKind_Map \endlink \n DEFAULT: MIXING_PLANE */ + addEnumListOption("TURBO_INTERFACE_KIND", nTurboInterfaces, Kind_TurboInterface, TurboInterfaceKind_Map); /*!\brief MARKER_SHROUD \n DESCRIPTION: markers in which velocity is forced to 0.0. * \n Format: (shroud1, shroud2, ...)*/ addStringListOption("MARKER_SHROUD", nMarker_Shroud, Marker_Shroud); @@ -5543,7 +5548,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { iMarker_Clamped, iMarker_ZoneInterface, iMarker_CHTInterface, iMarker_Load_Dir, iMarker_Disp_Dir, iMarker_Fluid_Load, iMarker_Deform_Mesh, iMarker_Deform_Mesh_Sym_Plane, iMarker_ActDiskInlet, iMarker_ActDiskOutlet, - iMarker_Turbomachinery, iMarker_MixingPlaneInterface; + iMarker_Turbomachinery, iMarker_MixingPlaneInterface, iMarker_TurboInterface; int size = SINGLE_NODE; SU2_MPI::Comm_size(SU2_MPI::GetComm(), &size); @@ -5616,6 +5621,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { Marker_CfgFile_Turbomachinery = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_TurbomachineryFlag = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_MixingPlaneInterface = new unsigned short[nMarker_CfgFile] (); + Marker_CfgFile_TurboInterface = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_PyCustom = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_SobolevBC = new unsigned short[nMarker_CfgFile] (); @@ -5973,6 +5979,15 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] = indexMarker; } + //for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { + // unsigned short indexMarker = 0; + // Marker_CfgFile_TurboInterface[iMarker_CfgFile] = NO; + // for (iMarker_TurboInterface = 0; iMarker_TurboInterface < nTurboInterfaces; iMarker_TurboInterface) + // if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_TurboInterface[iMarker_TurboInterface]) + // indexMarker=(int)(iMarker_TurboInterface/2+1); + // Marker_CfgFile_TurboInterface[iMarker_CfgFile] = indexMarker; + //} + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { Marker_CfgFile_DV[iMarker_CfgFile] = NO; for (iMarker_DV = 0; iMarker_DV < nMarker_DV; iMarker_DV++) diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index 0fdfb2c2a2e..085cd4ac49e 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -2488,14 +2488,23 @@ void CDriver::InitializeInterface(CConfig **config, CSolver***** solver, CGeomet if (rank == MASTER_NODE) cout << "boundary displacements from the structural solver." << endl; } else if (fluid_donor && fluid_target) { - /*--- Mixing plane for turbo machinery applications. ---*/ - if (config[donor]->GetBoolMixingPlaneInterface()) { - interface_type = MIXING_PLANE; - auto nVar = solver[donor][INST_0][MESH_0][FLOW_SOL]->GetnVar(); - interface[donor][target] = new CMixingPlaneInterface(nVar, 0); - if (rank == MASTER_NODE) { - cout << "Set mixing-plane interface from donor zone " - << donor << " to target zone " << target << "." << endl; + /*--- Interface handling for turbomachinery applications. ---*/ + if (config[donor]->GetBoolTurbomachinery()) { + auto interfaceIndex = (donor+target-1)/2; + switch (config[donor]->GetKind_TurboInterface(interfaceIndex)) { + case TURBO_INTERFACE_KIND::MIXING_PLANE: { + interface_type = MIXING_PLANE; + auto nVar = solver[donor][INST_0][MESH_0][FLOW_SOL]->GetnVar(); + interface[donor][target] = new CMixingPlaneInterface(nVar, 0); + if (rank == MASTER_NODE) cout << "using a mixing-plane interface from donor zone " << donor << " to target zone " << target << "." << endl; + break; + } + case TURBO_INTERFACE_KIND::FROZEN_ROTOR: { + auto nVar = solver[donor][INST_0][MESH_0][FLOW_SOL]->GetnPrimVar(); + interface_type = SLIDING_INTERFACE; + interface[donor][target] = new CSlidingInterface(nVar, 0); + if (rank == MASTER_NODE) cout << "using a frozen rotor interface from donor zone " << donor << " to target zone " << target << "." << endl; + } } } else{ From 71c227995a4c23973f9b68c3e5ded77a9ae3c942 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 13 Feb 2024 16:30:41 +0000 Subject: [PATCH 040/287] Remove some unecssary code --- Common/src/CConfig.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 1796f012bf4..7b68b597e4e 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -5979,15 +5979,6 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] = indexMarker; } - //for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { - // unsigned short indexMarker = 0; - // Marker_CfgFile_TurboInterface[iMarker_CfgFile] = NO; - // for (iMarker_TurboInterface = 0; iMarker_TurboInterface < nTurboInterfaces; iMarker_TurboInterface) - // if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_TurboInterface[iMarker_TurboInterface]) - // indexMarker=(int)(iMarker_TurboInterface/2+1); - // Marker_CfgFile_TurboInterface[iMarker_CfgFile] = indexMarker; - //} - for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { Marker_CfgFile_DV[iMarker_CfgFile] = NO; for (iMarker_DV = 0; iMarker_DV < nMarker_DV; iMarker_DV++) From b8dd1c4cad27930ce53cba2679ee1557dbddcabe Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 13 Feb 2024 16:37:04 +0000 Subject: [PATCH 041/287] Updated testcases --- TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg | 1 + TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg | 1 + TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg | 1 + 3 files changed, 3 insertions(+) diff --git a/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg b/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg index 42de00358bd..45e3aafaffb 100755 --- a/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg +++ b/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg @@ -69,6 +69,7 @@ MARKER_TURBOMACHINERY= (INFLOW, OUTMIX, INMIX, OUTFLOW) MARKER_ANALYZE= (OUTFLOW) MARKER_ZONE_INTERFACE= (OUTMIX, INMIX) MARKER_MIXINGPLANE_INTERFACE= (OUTMIX, INMIX) +TURBO_INTERFACE_KIND= (MIXING_PLANE) MARKER_GILES= (INFLOW, TOTAL_CONDITIONS_PT, 413.6E+03, 477.6, 1.0, 0.0, 0.0, 1.0, 0.0, OUTMIX, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, INMIX, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, OUTFLOW, STATIC_PRESSURE_1D, 67.46E+03, 0.0, 0.0, 0.0, 0.0 , 1.0, 0.0) GILES_EXTRA_RELAXFACTOR= (0.05, 0.05) SPATIAL_FOURIER= NO diff --git a/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg b/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg index 75be16ada08..5a8741ea0de 100755 --- a/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg +++ b/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg @@ -72,6 +72,7 @@ MARKER_ANALYZE= (outflow) MARKER_ZONE_INTERFACE= (outmix, inmix) % Mixing-plane interface markers must be specified to activate the transfer of information between zones MARKER_MIXINGPLANE_INTERFACE= (outmix, inmix) +TURBO_INTERFACE_KIND= (MIXING_PLANE) % MARKER_GILES= (inflow, TOTAL_CONDITIONS_PT, 169623.33, 305.76, 1.0, 0.0, 0.0,1.0,1.0, outmix, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0,1.0,1.0, inmix, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0,1.0, 1.0 outflow, STATIC_PRESSURE, 99741.00, 0.0, 0.0, 0.0, 0.0,1.0,1.0) SPATIAL_FOURIER= NO diff --git a/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg b/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg index 22ab379423b..3402e566fa5 100755 --- a/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg +++ b/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg @@ -61,6 +61,7 @@ MARKER_RIEMANN= (inflow, TOTAL_CONDITIONS_PT, 366000.0, 515.00, 0.52101, -0.8535 MARKER_NRBC= (outmix, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, inmix, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0, outflow, STATIC_PRESSURE, 95750.0, 0.0, 0.0, 0.0, 0.0) MIXING_PROCESS_TYPE= AREA_AVERAGE MARKER_MIXINGPLANE= (outmix, inmix) +TURBO_INTERFACE_KIND= (MIXING_PLANE) MARKER_PERIODIC= (periodic1, periodic2, 0.0, 0.0, 0.0, 0.0, 0.0, 10.29, 0.0, 0.0, 0.0, periodic3, periodic4, 0.0, 0.0, 0.0, 0.0, 0.0, 8.78, 0.0, 0.0, 0.0) % % ------------------------ SURFACES IDENTIFICATION ----------------------------% From 42abd3f1fb3624c1e551e9659690b0388ed3d24c Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 13 Feb 2024 16:53:37 +0000 Subject: [PATCH 042/287] Removing unused variable --- Common/src/CConfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 7b68b597e4e..092bd2a0401 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -5548,7 +5548,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { iMarker_Clamped, iMarker_ZoneInterface, iMarker_CHTInterface, iMarker_Load_Dir, iMarker_Disp_Dir, iMarker_Fluid_Load, iMarker_Deform_Mesh, iMarker_Deform_Mesh_Sym_Plane, iMarker_ActDiskInlet, iMarker_ActDiskOutlet, - iMarker_Turbomachinery, iMarker_MixingPlaneInterface, iMarker_TurboInterface; + iMarker_Turbomachinery, iMarker_MixingPlaneInterface; int size = SINGLE_NODE; SU2_MPI::Comm_size(SU2_MPI::GetComm(), &size); From ca911a48841e886efc82f8e41944dd4e6f5dcf07 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 13 Feb 2024 16:57:43 +0000 Subject: [PATCH 043/287] cleanup --- Common/include/CConfig.hpp | 2 -- Common/src/CConfig.cpp | 3 --- 2 files changed, 5 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index ae99f984ce3..5d95e69e015 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -231,7 +231,6 @@ class CConfig { *Marker_PerBound, /*!< \brief Periodic boundary markers. */ *Marker_PerDonor, /*!< \brief Rotationally periodic boundary donor markers. */ *Marker_MixingPlaneInterface, /*!< \brief MixingPlane interface boundary markers. */ - *Marker_TurboInterface, /*!< \breif Turbo interface boundary markers */ *Marker_TurboBoundIn, /*!< \brief Turbomachinery performance boundary markers. */ *Marker_TurboBoundOut, /*!< \brief Turbomachinery performance boundary donor markers. */ *Marker_NearFieldBound, /*!< \brief Near Field boundaries markers. */ @@ -758,7 +757,6 @@ class CConfig { *Marker_CfgFile_Turbomachinery, /*!< \brief Global index for Turbomachinery using the config information. */ *Marker_CfgFile_TurbomachineryFlag, /*!< \brief Global index for Turbomachinery flag using the config information. */ *Marker_CfgFile_MixingPlaneInterface, /*!< \brief Global index for MixingPlane interface using the config information. */ - *Marker_CfgFile_TurboInterface, /*< \breif Global index for turbo interface using the config information */ *Marker_CfgFile_Moving, /*!< \brief Global index for moving surfaces using the config information. */ *Marker_CfgFile_Deform_Mesh, /*!< \brief Global index for deformable markers at the boundary. */ *Marker_CfgFile_Deform_Mesh_Sym_Plane, /*!< \brief Global index for markers with symmetric deformations. */ diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 092bd2a0401..81246ae6463 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -834,7 +834,6 @@ void CConfig::SetPointersNull() { Marker_CfgFile_Turbomachinery = nullptr; Marker_All_Turbomachinery = nullptr; Marker_CfgFile_TurbomachineryFlag = nullptr; Marker_All_TurbomachineryFlag = nullptr; Marker_CfgFile_MixingPlaneInterface = nullptr; Marker_All_MixingPlaneInterface = nullptr; - Marker_CfgFile_TurboInterface = nullptr; Marker_CfgFile_ZoneInterface = nullptr; Marker_CfgFile_Deform_Mesh = nullptr; Marker_All_Deform_Mesh = nullptr; Marker_CfgFile_Deform_Mesh_Sym_Plane = nullptr; Marker_All_Deform_Mesh_Sym_Plane = nullptr; @@ -1035,7 +1034,6 @@ void CConfig::SetPointersNull() { Kind_TurboMachinery = nullptr; Marker_MixingPlaneInterface = nullptr; - Marker_TurboInterface = nullptr; Marker_TurboBoundIn = nullptr; Marker_TurboBoundOut = nullptr; Marker_Giles = nullptr; @@ -5621,7 +5619,6 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { Marker_CfgFile_Turbomachinery = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_TurbomachineryFlag = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_MixingPlaneInterface = new unsigned short[nMarker_CfgFile] (); - Marker_CfgFile_TurboInterface = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_PyCustom = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_SobolevBC = new unsigned short[nMarker_CfgFile] (); From 6484a8c25aa969b6249ea6ccfa7ab220beefe306 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Fri, 16 Feb 2024 14:27:05 +0100 Subject: [PATCH 044/287] Implemented overladed instances of look-up function which avoids string comparisons, improving efficiency --- Common/include/containers/CLookUpTable.hpp | 142 ++++++-- Common/include/containers/CTrapezoidalMap.hpp | 4 +- Common/src/containers/CLookUpTable.cpp | 339 ++++++++++-------- Common/src/containers/CTrapezoidalMap.cpp | 12 +- SU2_CFD/include/fluid/CDataDrivenFluid.hpp | 9 +- SU2_CFD/include/fluid/CFluidFlamelet.hpp | 15 + SU2_CFD/src/fluid/CDataDrivenFluid.cpp | 17 +- SU2_CFD/src/fluid/CFluidFlamelet.cpp | 24 +- 8 files changed, 373 insertions(+), 189 deletions(-) diff --git a/Common/include/containers/CLookUpTable.hpp b/Common/include/containers/CLookUpTable.hpp index 102f69d1db1..fa03dc0ba3b 100644 --- a/Common/include/containers/CLookUpTable.hpp +++ b/Common/include/containers/CLookUpTable.hpp @@ -48,7 +48,11 @@ class CLookUpTable { version_lut, /*!< \brief LUT version as specified in LUT file.*/ version_reader, /*!< \brief Reader version (should be equal or above LUT version).*/ name_CV1, /*!< \brief Name of controlling variable 1.*/ - name_CV2; /*!< \brief Name of xontrolling variable 2.*/ + name_CV2; /*!< \brief Name of controlling variable 2.*/ + + unsigned long idx_CV1, /*!< \brief Table variable index of controlling variable 1.*/ + idx_CV2, /*!< \brief Table variable index of controlling variable 2.*/ + idx_null; /*!< \brief Variable index corresponding to NULL variable. */ su2vector n_points, /*!< \brief Number of data poins per table level.*/ n_triangles, /*!< \brief Number of triangles per table level.*/ @@ -105,21 +109,6 @@ class CLookUpTable { */ su2vector> interp_mat_inv_x_y; - /*! \brief - * Returns the index to the variable in the lookup table. - */ - inline unsigned int GetIndexOfVar(const std::string& nameVar) const { - int index = find(names_var.begin(), names_var.end(), nameVar) - names_var.begin(); - if (index == int(names_var.size())) { - index = -1; - std::string error_msg = "Variable '"; - error_msg.append(nameVar); - error_msg.append("' is not in the lookup table."); - SU2_MPI::Error(error_msg, CURRENT_FUNCTION); - } - return index; - } - /*! \brief * Returns true if the string is null or zero (ignores case). */ @@ -182,8 +171,8 @@ class CLookUpTable { * \param[in] interp_mat_inv - Inverse matrix for interpolation. * \param[out] interp_coeffs - Interpolation coefficients. */ - void GetInterpCoeffs(su2double val_CV1, su2double val_CV2, su2activematrix& interp_mat_inv, - std::array& interp_coeffs); + void GetInterpCoeffs(su2double val_CV1, su2double val_CV2, const su2activematrix& interp_mat_inv, + std::array& interp_coeffs) const; /*! * \brief Compute interpolated value of a point P in the triangle. @@ -239,6 +228,28 @@ class CLookUpTable { const std::vector& names_var, std::vector& var_vals, const unsigned long i_level = 0); + /*! + * \brief Interpolate data based on distance-weighted averaging on the nearest two table nodes. + * \param[in] val_CV1 - First coordinate of point P(val_CV1,val_CV2) to check. + * \param[in] val_CV2 - Second coordinate of point P(val_CV1,val_CV2) to check. + * \param[in] idx_var - Vector of table variable indices to be looked up. + * \param[out] val_vars - Pointer to the vector of stored values of the variables to look up. + */ + void InterpolateToNearestNeighbors(const su2double val_CV1, const su2double val_CV2, + const std::vector& idx_var, std::vector& var_vals, + const unsigned long i_level = 0); + + /*! + * \brief Interpolate data based on distance-weighted averaging on the nearest two table nodes. + * \param[in] val_CV1 - First coordinate of point P(val_CV1,val_CV2) to check. + * \param[in] val_CV2 - Second coordinate of point P(val_CV1,val_CV2) to check. + * \param[in] idx_var - Vector of table variable indices to be looked up. + * \param[out] val_vars - Pointer to the vector of stored values of the variables to look up. + */ + void InterpolateToNearestNeighbors(const su2double val_CV1, const su2double val_CV2, + const std::vector& idx_var, std::vector& var_vals, + const unsigned long i_level = 0); + /*! * \brief Interpolate data based on distance-weighted averaging on the nearest two table nodes for a single variable. * \param[in] val_CV1 - First coordinate of point P(val_CV1,val_CV2) to check. @@ -284,6 +295,27 @@ class CLookUpTable { const su2double val_CV1, const su2double val_CV2, const su2double val_CV3); + /*! + * \brief Find the triangle within which the query point (val_CV1, val_CV2) is located. + * \param[in] val_CV1 - First controlling variable value. + * \param[in] val_CV2 - Second controlling variable value. + * \param[in] id_triangle - Reference to inclusion triangle index. + * \param[in] iLevel - Table level index. + * \returns 0 if inside data set, 1 if outside. + */ + unsigned long FindInclusionTriangle(const su2double val_CV1, const su2double val_CV2, unsigned long& id_triangle, + const unsigned long iLevel = 0); + + /*! + * \brief Identify the nearest second nearest hull nodes w.r.t. the query point (val_CV1, val_CV2). + * \param[in] val_CV1 - First controlling variable value. + * \param[in] val_CV2 - Second controlling variable value. + * \param[in] iLevel - Table level index. + * \returns pair with nearest node index(first) and second nearest node(second). + */ + std::pair FindNearestNeighbors(const su2double val_CV1, const su2double val_CV2, + const unsigned long iLevel = 0); + public: CLookUpTable(const std::string& file_name_lut, std::string name_CV1_in, std::string name_CV2_in); @@ -300,8 +332,8 @@ class CLookUpTable { * \param[in] val_CV2 - Value of controlling variable 2. * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. */ - unsigned long LookUp_XY(const std::string& val_name_var, su2double* val_var, su2double val_CV1, su2double val_CV2, - unsigned long i_level = 0); + unsigned long LookUp_XY(const std::string& val_name_var, su2double* val_var, const su2double val_CV1, + const su2double val_CV2, const unsigned long i_level = 0); /*! * \brief Lookup 1 value for each of the variables in "val_name_var" using controlling variable @@ -313,7 +345,7 @@ class CLookUpTable { * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. */ unsigned long LookUp_XY(const std::vector& val_names_var, std::vector& val_vars, - su2double val_CV1, su2double val_CV2, unsigned long i_level = 0); + const su2double val_CV1, const su2double val_CV2, const unsigned long i_level = 0); /*! * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2). @@ -324,8 +356,29 @@ class CLookUpTable { * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. */ unsigned long LookUp_XY(const std::vector& val_names_var, std::vector& val_vars, - su2double val_CV1, su2double val_CV2, unsigned long i_level = 0); + const su2double val_CV1, const su2double val_CV2, const unsigned long i_level = 0); + /*! + * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2). + * \param[in] idx_var - Table data column indices corresponding to look-up variables. + * \param[out] val_var - The stored value of the variable to look up. + * \param[in] val_CV1 - Value of controlling variable 1. + * \param[in] val_CV2 - Value of controlling variable 2. + * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. + */ + unsigned long LookUp_XY(const std::vector& idx_var, std::vector& val_vars, + const su2double val_CV1, const su2double val_CV2, const unsigned long i_level = 0); + + /*! + * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2). + * \param[in] idx_var - Table data column indices corresponding to look-up variables. + * \param[out] val_var - The stored value of the variable to look up. + * \param[in] val_CV1 - Value of controlling variable 1. + * \param[in] val_CV2 - Value of controlling variable 2. + * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. + */ + unsigned long LookUp_XY(const std::vector& idx_var, std::vector& val_vars, + const su2double val_CV1, su2double val_CV2, const unsigned long i_level = 0); /*! * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2,val_z). * \param[in] val_name_var - String name of the variable to look up. @@ -335,8 +388,8 @@ class CLookUpTable { * \param[in] val_CV3 - Value of controlling variable 3. * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. */ - unsigned long LookUp_XYZ(const std::string& val_name_var, su2double* val_var, su2double val_CV1, su2double val_CV2, - su2double val_CV3); + unsigned long LookUp_XYZ(const std::string& val_name_var, su2double* val_var, const su2double val_CV1, + const su2double val_CV2, const su2double val_CV3); /*! * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2,val_z). @@ -348,21 +401,32 @@ class CLookUpTable { * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. */ unsigned long LookUp_XYZ(const std::vector& val_names_var, std::vector& val_vars, - su2double val_CV1, su2double val_CV2, su2double val_CV3 = 0); + const su2double val_CV1, const su2double val_CV2, const su2double val_CV3 = 0); + /*! + * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2,val_z). + * \param[in] idx_var - Table variable index to look up. + * \param[out] val_var - The stored value of the variable to look up. + * \param[in] val_CV1 - Value of controlling variable 1. + * \param[in] val_CV2 - Value of controlling variable 2. + * \param[in] val_CV3 - Value of controlling variable 3. + * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. + */ + unsigned long LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, + const su2double val_CV1, const su2double val_CV2, const su2double val_CV3 = 0); /*! * \brief Find the table levels with constant z-values directly above and below query val_z. * \param[in] val_CV3 - Value of controlling variable 3. * \param[in] within_limits - Whether query point lies within table bounds. * \returns Pair of inclusion level indices (first = lower level index, second = upper level index). */ - std::pair FindInclusionLevels(const su2double val_CV3); + std::pair FindInclusionLevels(const su2double val_CV3) const; /*! * \brief Determine the minimum and maximum value of the second controlling variable. * \returns Pair of minimum and maximum value of controlling variable 2. */ - inline std::pair GetTableLimitsY(unsigned long i_level = 0) const { + inline std::pair GetTableLimitsY(const unsigned long i_level = 0) const { return limits_table_y[i_level]; } @@ -370,7 +434,29 @@ class CLookUpTable { * \brief Determine the minimum and maximum value of the first controlling variable. * \returns Pair of minimum and maximum value of controlling variable 1. */ - inline std::pair GetTableLimitsX(unsigned long i_level = 0) const { + inline std::pair GetTableLimitsX(const unsigned long i_level = 0) const { return limits_table_x[i_level]; } + + /*! + * \brief Returns the index to the variable in the lookup table. + * \param[in] nameVar - Variable name for which to retrieve the column index. + * \returns Table data column index corresponding to variable. + */ + inline unsigned int GetIndexOfVar(const std::string& nameVar) const { + int index = find(names_var.begin(), names_var.end(), nameVar) - names_var.begin(); + if (index == int(names_var.size())) { + index = -1; + std::string error_msg = "Variable '"; + error_msg.append(nameVar); + error_msg.append("' is not in the lookup table."); + SU2_MPI::Error(error_msg, CURRENT_FUNCTION); + } + return index; + } + + /*! \brief + * Returns the table variable index which will always return zero when looked up. + */ + unsigned long GetNullIndex() const { return idx_null; } }; diff --git a/Common/include/containers/CTrapezoidalMap.hpp b/Common/include/containers/CTrapezoidalMap.hpp index c5f99f1bb3f..46b74f0c94f 100644 --- a/Common/include/containers/CTrapezoidalMap.hpp +++ b/Common/include/containers/CTrapezoidalMap.hpp @@ -69,7 +69,7 @@ class CTrapezoidalMap { * \param[in] val_y - y-coordinate or second independent variable * \param[out] val_index - index to the triangle */ - unsigned long GetTriangle(su2double val_x, su2double val_y); + unsigned long GetTriangle(const su2double val_x, const su2double val_y); /*! * \brief get the indices of the vertical coordinate band (xmin,xmax) in the 2D search space @@ -78,7 +78,7 @@ class CTrapezoidalMap { * \param[out] val_band - a pair(i_low,i_up) , the lower index and upper index between which the value val_x * can be found */ - std::pair GetBand(su2double val_x); + std::pair GetBand(const su2double val_x); /*! * \brief for a given coordinate (val_x,value), known to be in the band (xmin,xmax) with band index (i_low,i_up), diff --git a/Common/src/containers/CLookUpTable.cpp b/Common/src/containers/CLookUpTable.cpp index 6ec0ff247f5..9b05052ea20 100644 --- a/Common/src/containers/CLookUpTable.cpp +++ b/Common/src/containers/CLookUpTable.cpp @@ -40,6 +40,10 @@ CLookUpTable::CLookUpTable(const string& var_file_name_lut, string name_CV1_in, LoadTableRaw(var_file_name_lut); + /* Store indices of controlling variables. */ + idx_CV1 = GetIndexOfVar(name_CV1); + idx_CV2 = GetIndexOfVar(name_CV2); + FindTableLimits(name_CV1, name_CV2); if (rank == MASTER_NODE) @@ -53,6 +57,9 @@ CLookUpTable::CLookUpTable(const string& var_file_name_lut, string name_CV1_in, PrintTableInfo(); + /* Add additional variable index which will always result in zero when looked up. */ + idx_null = names_var.size(); + if (rank == MASTER_NODE) switch (table_dim) { case 2: cout << "Building a trapezoidal map for the (" + name_CV1 + ", " + name_CV2 + @@ -158,8 +165,6 @@ void CLookUpTable::LoadTableRaw(const string& var_file_name_lut) { } void CLookUpTable::FindTableLimits(const string& name_cv1, const string& name_cv2) { - int idx_CV1 = GetIndexOfVar(name_cv1); - int idx_CV2 = GetIndexOfVar(name_cv2); limits_table_x.resize(n_table_levels); limits_table_y.resize(n_table_levels); @@ -360,8 +365,8 @@ void CLookUpTable::ComputeInterpCoeffs() { std::array next_triangle; - const su2double* val_CV1 = GetDataP(name_CV1, i_level); - const su2double* val_CV2 = GetDataP(name_CV2, i_level); + const su2double* val_CV1 = table_data[i_level][idx_CV1]; + const su2double* val_CV2 = table_data[i_level][idx_CV2]; /* calculate weights for each triangle (basically a distance function) and * build inverse interpolation matrices */ @@ -403,7 +408,7 @@ void CLookUpTable::GetInterpMatInv(const su2double* vec_x, const su2double* vec_ } } -std::pair CLookUpTable::FindInclusionLevels(const su2double val_CV3) { +std::pair CLookUpTable::FindInclusionLevels(const su2double val_CV3) const { /*--- Find the table levels with constant z-values directly below and above the query value val_CV3 ---*/ /* Check if val_CV3 lies outside table bounds */ @@ -423,43 +428,7 @@ std::pair CLookUpTable::FindInclusionLevels(const } } -unsigned long CLookUpTable::LookUp_XYZ(const std::string& val_name_var, su2double* val_var, su2double val_CV1, - su2double val_CV2, su2double val_CV3) { - /*--- Perform quasi-3D interpolation for a single variable named val_name_var on a query point - with coordinates val_CV1, val_CV2, and val_CV3 ---*/ - - /* 1: Find table levels directly above and below the query point (the levels that sandwhich val_CV3) */ - std::pair inclusion_levels = FindInclusionLevels(val_CV3); - bool within_z_limits = (inclusion_levels.first != inclusion_levels.second); - - if (within_z_limits) { - /* 2: Determine val_CV1 and val_CV2 for the inclusion table levels. */ - std::array, 2> lower_upper_CV1_2 = - ComputeNormalizedXY(inclusion_levels, val_CV1, val_CV2, val_CV3); - su2double val_CV1_lower = lower_upper_CV1_2[0][0], val_CV2_lower = lower_upper_CV1_2[0][1], - val_CV1_upper = lower_upper_CV1_2[1][0], val_CV2_upper = lower_upper_CV1_2[1][1]; - - /* 3: Perform 2D interpolations on upper and lower inclusion levels */ - unsigned long lower_level = inclusion_levels.first; - unsigned long upper_level = inclusion_levels.second; - - su2double val_var_lower, val_var_upper; - unsigned long exit_code_lower = LookUp_XY(val_name_var, &val_var_lower, val_CV1_lower, val_CV2_lower, lower_level); - unsigned long exit_code_upper = LookUp_XY(val_name_var, &val_var_upper, val_CV1_upper, val_CV2_upper, upper_level); - - /* 4: Perform linear interpolation along the z-direction using the x-y interpolation results - from upper and lower trapezoidal maps */ - Linear_Interpolation(val_CV3, lower_level, upper_level, val_var_lower, val_var_upper, val_var); - - return max(exit_code_lower, exit_code_upper); - } else { - /* Perform single, 2D interpolation when val_CV3 lies outside table bounds */ - unsigned long bound_level = inclusion_levels.first; - LookUp_XY(val_name_var, val_var, val_CV1, val_CV2, bound_level); - return 1; - } -} -unsigned long CLookUpTable::LookUp_XYZ(const std::vector& val_names_var, std::vector& val_vars, +unsigned long CLookUpTable::LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, su2double val_CV1, su2double val_CV2, su2double val_CV3) { /*--- Perform quasi-3D interpolation for a vector of variables with names val_names_var on a query point with coordinates val_CV1, val_CV2, and val_CV3 ---*/ @@ -482,8 +451,8 @@ unsigned long CLookUpTable::LookUp_XYZ(const std::vector& val_names std::vector val_vars_lower, val_vars_upper; val_vars_lower.resize(val_vars.size()); val_vars_upper.resize(val_vars.size()); - unsigned long exit_code_lower = LookUp_XY(val_names_var, val_vars_lower, val_CV1_lower, val_CV2_lower, lower_level); - unsigned long exit_code_upper = LookUp_XY(val_names_var, val_vars_upper, val_CV1_upper, val_CV2_upper, upper_level); + unsigned long exit_code_lower = LookUp_XY(idx_var, val_vars_lower, val_CV1_lower, val_CV2_lower, lower_level); + unsigned long exit_code_upper = LookUp_XY(idx_var, val_vars_upper, val_CV1_upper, val_CV2_upper, upper_level); /* 4: Perform linear interpolation along the z-direction using the x-y interpolation results from upper and lower trapezoidal maps */ @@ -493,11 +462,37 @@ unsigned long CLookUpTable::LookUp_XYZ(const std::vector& val_names } else { /* Perform single, 2D interpolation when val_CV3 lies outside table bounds */ unsigned long bound_level = inclusion_levels.first; - LookUp_XY(val_names_var, val_vars, val_CV1, val_CV2, bound_level); + LookUp_XY(idx_var, val_vars, val_CV1, val_CV2, bound_level); return 1; } } +unsigned long CLookUpTable::LookUp_XYZ(const std::vector& val_names_var, std::vector& val_vars, + su2double val_CV1, su2double val_CV2, su2double val_CV3) { + vector idx_var; + idx_var.resize(val_names_var.size()); + for (auto iVar = 0u; iVar < val_names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(val_names_var[iVar]); + unsigned long exit_code = LookUp_XYZ(idx_var, val_vars, val_CV1, val_CV2, val_CV3); + return exit_code; +} + +unsigned long CLookUpTable::LookUp_XYZ(const std::string& val_name_var, su2double* val_var, su2double val_CV1, + su2double val_CV2, su2double val_CV3) { + unsigned long exit_code; + if (noSource(val_name_var)) { + *val_var = 0; + exit_code = 0; + return exit_code; + } + + vector val_names_var = {val_name_var}; + vector val_vars; + val_vars.resize(1); + exit_code = LookUp_XYZ(val_names_var, val_vars, val_CV1, val_CV2, val_CV3); + *val_var = val_vars[0]; + return exit_code; +} + void CLookUpTable::Linear_Interpolation(const su2double val_CV3, const unsigned long lower_level, const unsigned long upper_level, su2double& lower_value, su2double& upper_value, su2double*& var_val) const { @@ -579,8 +574,36 @@ std::array, 2> CLookUpTable::ComputeNormalizedXY( return lower_upper_CVs; } -unsigned long CLookUpTable::LookUp_XY(const string& val_name_var, su2double* val_var, su2double val_CV1, - su2double val_CV2, unsigned long i_level) { +unsigned long CLookUpTable::LookUp_XY(const vector& idx_var, vector& val_vars, + const su2double val_CV1, const su2double val_CV2, unsigned long i_level) { + unsigned long id_triangle; + unsigned long exit_code = FindInclusionTriangle(val_CV1, val_CV2, id_triangle, i_level); + + /* loop over variable names and interpolate / get values */ + if (exit_code == 0) { + std::array interp_coeffs{0}; + std::array triangle{0}; + for (auto iVertex = 0u; iVertex < N_POINTS_TRIANGLE; iVertex++) + triangle[iVertex] = triangles[i_level][id_triangle][iVertex]; + + GetInterpCoeffs(val_CV1, val_CV2, interp_mat_inv_x_y[i_level][id_triangle], interp_coeffs); + + for (auto iVar = 0u; iVar < idx_var.size(); iVar++) { + if (idx_var[iVar] == idx_null) { + val_vars[iVar] = 0; + } else { + su2double interp_var = Interpolate(table_data[i_level][idx_var[iVar]], triangle, interp_coeffs); + val_vars[iVar] = interp_var; + } + } + } else + InterpolateToNearestNeighbors(val_CV1, val_CV2, idx_var, val_vars, i_level); + + return exit_code; +} + +unsigned long CLookUpTable::LookUp_XY(const string& val_name_var, su2double* val_var, const su2double val_CV1, + const su2double val_CV2, const unsigned long i_level) { unsigned long exit_code = 1; if (noSource(val_name_var)) { @@ -589,95 +612,72 @@ unsigned long CLookUpTable::LookUp_XY(const string& val_name_var, su2double* val return exit_code; } - /* check if x and y value is in table range */ - if ((val_CV1 >= *limits_table_x[i_level].first && val_CV1 <= *limits_table_x[i_level].second) && - (val_CV2 >= *limits_table_y[i_level].first && val_CV2 <= *limits_table_y[i_level].second)) { - /* find the triangle that holds the (x, y) point */ - unsigned long id_triangle = trap_map_x_y[i_level].GetTriangle(val_CV1, val_CV2); + vector val_names_var = {val_name_var}; + vector val_vars = {val_var}; + exit_code = LookUp_XY(val_names_var, val_vars, val_CV1, val_CV2, i_level); + return exit_code; +} - if (IsInTriangle(val_CV1, val_CV2, id_triangle, i_level)) { - /* get interpolation coefficients for point on triangle */ - std::array interp_coeffs{0}; - GetInterpCoeffs(val_CV1, val_CV2, interp_mat_inv_x_y[i_level][id_triangle], interp_coeffs); +unsigned long CLookUpTable::LookUp_XY(const vector& val_names_var, vector& val_vars, + const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) { + vector idx_var; + idx_var.resize(val_names_var.size()); + for (auto iVar = 0u; iVar < val_names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(val_names_var[iVar]); - /* first, copy the single triangle from the large triangle list*/ - std::array triangle{0}; - for (int p = 0; p < 3; p++) triangle[p] = triangles[i_level][id_triangle][p]; + unsigned long exit_code = LookUp_XY(idx_var, val_vars, val_CV1, val_CV2, i_level); + return exit_code; +} - *val_var = Interpolate(GetDataP(val_name_var, i_level), triangle, interp_coeffs); - exit_code = 0; - } - } - if (exit_code == 1) InterpolateToNearestNeighbors(val_CV1, val_CV2, val_name_var, val_var, i_level); +unsigned long CLookUpTable::LookUp_XY(const vector& val_names_var, vector& val_vars, + const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) { + vector idx_var; + idx_var.resize(val_names_var.size()); + for (auto iVar = 0u; iVar < val_names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(val_names_var[iVar]); + unsigned long exit_code = LookUp_XY(idx_var, val_vars, val_CV1, val_CV2, i_level); return exit_code; } -unsigned long CLookUpTable::LookUp_XY(const vector& val_names_var, vector& val_vars, - su2double val_CV1, su2double val_CV2, unsigned long i_level) { - vector look_up_data(val_names_var.size()); - - for (long unsigned int i_var = 0; i_var < val_vars.size(); ++i_var) { - look_up_data[i_var] = &val_vars[i_var]; - } +unsigned long CLookUpTable::LookUp_XY(const vector& idx_var, vector& val_vars, + const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) { + vector output_var_vals; + output_var_vals.resize(val_vars.size()); + unsigned long exit_code = LookUp_XY(idx_var, output_var_vals, val_CV1, val_CV2, i_level); - unsigned long exit_code = LookUp_XY(val_names_var, look_up_data, val_CV1, val_CV2, i_level); + for (auto iVar = 0u; iVar < val_vars.size(); iVar++) *val_vars[iVar] = output_var_vals[iVar]; return exit_code; } -unsigned long CLookUpTable::LookUp_XY(const vector& val_names_var, vector& val_vars, - su2double val_CV1, su2double val_CV2, unsigned long i_level) { +unsigned long CLookUpTable::FindInclusionTriangle(const su2double val_CV1, const su2double val_CV2, + unsigned long& id_triangle, const unsigned long iLevel) { unsigned long exit_code = 1; - unsigned long id_triangle = 0; - std::array interp_coeffs{0}; - std::array triangle{0}; /* check if x value is in table x-dimension range * and if y is in table y-dimension table range */ - if ((val_CV1 >= *limits_table_x[i_level].first && val_CV1 <= *limits_table_x[i_level].second) && - (val_CV2 >= *limits_table_y[i_level].first && val_CV2 <= *limits_table_y[i_level].second)) { + if ((val_CV1 >= *limits_table_x[iLevel].first && val_CV1 <= *limits_table_x[iLevel].second) && + (val_CV2 >= *limits_table_y[iLevel].first && val_CV2 <= *limits_table_y[iLevel].second)) { /* if so, try to find the triangle that holds the (prog, enth) point */ - id_triangle = trap_map_x_y[i_level].GetTriangle(val_CV1, val_CV2); + id_triangle = trap_map_x_y[iLevel].GetTriangle(val_CV1, val_CV2); /* check if point is inside a triangle (if table domain is non-rectangular, * the previous range check might be true but the point could still be outside of the domain) */ - if (IsInTriangle(val_CV1, val_CV2, id_triangle, i_level)) { - /* if so, get interpolation coefficients for point in the triangle */ - GetInterpCoeffs(val_CV1, val_CV2, interp_mat_inv_x_y[i_level][id_triangle], interp_coeffs); - + if (IsInTriangle(val_CV1, val_CV2, id_triangle, iLevel)) { /* exit_code 0 means point was in triangle */ exit_code = 0; } } - - /* loop over variable names and interpolate / get values */ - for (long unsigned int i_var = 0; i_var < val_names_var.size(); ++i_var) { - if (noSource(val_names_var[i_var])) { - *val_vars[i_var] = 0.0; - exit_code = 0; - } else { - if (exit_code == 0) { - /* first, copy the single triangle from the large triangle list*/ - for (int p = 0; p < 3; p++) triangle[p] = triangles[i_level][id_triangle][p]; - *val_vars[i_var] = Interpolate(GetDataP(val_names_var[i_var], i_level), triangle, interp_coeffs); - } else { - InterpolateToNearestNeighbors(val_CV1, val_CV2, val_names_var[i_var], val_vars[i_var], i_level); - } - } - } - return exit_code; } -void CLookUpTable::GetInterpCoeffs(su2double val_CV1, su2double val_CV2, su2activematrix& interp_mat_inv, - std::array& interp_coeffs) { - std::array query_vector = {1, val_CV1, val_CV2}; +void CLookUpTable::GetInterpCoeffs(su2double val_CV1, su2double val_CV2, const su2activematrix& interp_mat_inv, + std::array& interp_coeffs) const { + std::array query_vector = {1, val_CV1, val_CV2}; su2double d; - for (int i = 0; i < 3; i++) { + for (auto i = 0u; i < N_POINTS_TRIANGLE; i++) { d = 0; - for (int j = 0; j < 3; j++) { + for (auto j = 0u; j < N_POINTS_TRIANGLE; j++) { d = d + interp_mat_inv[i][j] * query_vector[j]; } interp_coeffs[i] = d; @@ -689,7 +689,7 @@ su2double CLookUpTable::Interpolate(const su2double* val_samples, std::array CLookUpTable::FindNearestNeighbors(const su2double val_CV1, + const su2double val_CV2, + const unsigned long i_level) { + su2double min_distance = 1e99, second_distance = 1e99; + su2double norm_coeff_x = 1. / (*limits_table_x[i_level].second - *limits_table_x[i_level].first); + su2double norm_coeff_y = 1. / (*limits_table_y[i_level].second - *limits_table_y[i_level].first); + su2double val_CV1_norm = val_CV1 / (*limits_table_x[i_level].second - *limits_table_x[i_level].first); + su2double val_CV2_norm = val_CV2 / (*limits_table_y[i_level].second - *limits_table_y[i_level].first); + + const su2double* x_table = table_data[i_level][idx_CV1]; + const su2double* y_table = table_data[i_level][idx_CV2]; + unsigned long i_nearest = 0, i_second_nearest = 0; + + for (unsigned long i_point = 0; i_point < n_hull_points[i_level]; ++i_point) { + su2double next_x_norm = x_table[hull[i_level][i_point]] * norm_coeff_x; + su2double next_y_norm = y_table[hull[i_level][i_point]] * norm_coeff_y; + + su2double next_distance = pow(val_CV1_norm - next_x_norm, 2) + pow(val_CV2_norm - next_y_norm, 2); + + /* Check if distance to node is lower than current nearest or second nearest node. */ + if (next_distance < min_distance) { + second_distance = min_distance; + min_distance = next_distance; + + i_second_nearest = i_nearest; + i_nearest = hull[i_level][i_point]; + } else if ((next_distance > min_distance) && (next_distance < second_distance)) { + i_second_nearest = hull[i_level][i_point]; + + second_distance = next_distance; + } + } + return make_pair(i_nearest, i_second_nearest); +} + unsigned long CLookUpTable::FindNearestNeighborOnHull(su2double val_CV1, su2double val_CV2, unsigned long i_level) { su2double min_distance = 1.e99; su2double next_distance = 1.e99; - su2double next_x_norm; - su2double next_y_norm; unsigned long neighbor_id = 0; - const su2double* x_table = GetDataP(name_CV1, i_level); - const su2double* y_table = GetDataP(name_CV2, i_level); + const su2double* x_table = table_data[i_level][idx_CV1]; + const su2double* y_table = table_data[i_level][idx_CV2]; su2double norm_coeff_x = 1. / (limits_table_x[i_level].second - limits_table_x[i_level].first); su2double norm_coeff_y = 1. / (limits_table_y[i_level].second - limits_table_y[i_level].first); su2double val_CV1_norm = val_CV1 / (limits_table_x[i_level].second - limits_table_x[i_level].first); su2double val_CV2_norm = val_CV2 / (limits_table_y[i_level].second - limits_table_y[i_level].first); - for (unsigned long i_point = 0; i_point < n_hull_points[i_level]; ++i_point) { - next_x_norm = x_table[hull[i_level][i_point]] * norm_coeff_x; - next_y_norm = y_table[hull[i_level][i_point]] * norm_coeff_y; + for (auto i_point = 0u; i_point < n_hull_points[i_level]; ++i_point) { + su2double next_x_norm = x_table[hull[i_level][i_point]] * norm_coeff_x; + su2double next_y_norm = y_table[hull[i_level][i_point]] * norm_coeff_y; next_distance = sqrt(pow(val_CV1_norm - next_x_norm, 2) + pow(val_CV2_norm - next_y_norm, 2)); @@ -727,39 +760,25 @@ unsigned long CLookUpTable::FindNearestNeighborOnHull(su2double val_CV1, su2doub } void CLookUpTable::InterpolateToNearestNeighbors(const su2double val_CV1, const su2double val_CV2, - const std::vector& names_var, - std::vector& var_vals, const unsigned long i_level) { + const std::vector& idx_var, + std::vector& var_vals, const unsigned long i_level) { /* Interpolate data using distance-weighted averaging on the two nearest table nodes. */ - su2double min_distance = 1e99, second_distance = 1e99; su2double norm_coeff_x = 1. / (*limits_table_x[i_level].second - *limits_table_x[i_level].first); su2double norm_coeff_y = 1. / (*limits_table_y[i_level].second - *limits_table_y[i_level].first); su2double val_CV1_norm = val_CV1 / (*limits_table_x[i_level].second - *limits_table_x[i_level].first); su2double val_CV2_norm = val_CV2 / (*limits_table_y[i_level].second - *limits_table_y[i_level].first); - const su2double* x_table = GetDataP(name_CV1, i_level); - const su2double* y_table = GetDataP(name_CV2, i_level); - unsigned long i_nearest = 0, i_second_nearest = 0; - - for (unsigned long i_point = 0; i_point < n_hull_points[i_level]; ++i_point) { - su2double next_x_norm = x_table[hull[i_level][i_point]] * norm_coeff_x; - su2double next_y_norm = y_table[hull[i_level][i_point]] * norm_coeff_y; - - su2double next_distance = pow(val_CV1_norm - next_x_norm, 2) + pow(val_CV2_norm - next_y_norm, 2); - - /* Check if distance to node is lower than current nearest or second nearest node. */ - if (next_distance < min_distance) { - second_distance = min_distance; - min_distance = next_distance; - - i_second_nearest = i_nearest; - i_nearest = hull[i_level][i_point]; - } else if ((next_distance > min_distance) && (next_distance < second_distance)) { - i_second_nearest = hull[i_level][i_point]; - - second_distance = next_distance; - } - } + std::pair nearest_IDs = FindNearestNeighbors(val_CV1, val_CV2, i_level); + unsigned long i_nearest = nearest_IDs.first, i_second_nearest = nearest_IDs.second; + su2double x_nearest = table_data[i_level][idx_CV1][nearest_IDs.first], + x_second_nearest = table_data[i_level][idx_CV1][nearest_IDs.second], + y_nearest = table_data[i_level][idx_CV2][nearest_IDs.first], + y_second_nearest = table_data[i_level][idx_CV2][nearest_IDs.second]; + su2double min_distance = + pow(val_CV1_norm - x_nearest * norm_coeff_x, 2) + pow(val_CV2_norm - y_nearest * norm_coeff_y, 2); + su2double second_distance = + pow(val_CV1_norm - x_second_nearest * norm_coeff_x, 2) + pow(val_CV2_norm - y_second_nearest * norm_coeff_y, 2); min_distance = sqrt(min_distance); second_distance = sqrt(second_distance); @@ -767,12 +786,34 @@ void CLookUpTable::InterpolateToNearestNeighbors(const su2double val_CV1, const /* Interpolate data using distance-weighted averaging */ su2double delimiter = (1.0 / min_distance) + (1.0 / second_distance); for (auto iVar = 0u; iVar < var_vals.size(); iVar++) { - su2double data_nearest = GetDataP(names_var[iVar], i_level)[i_nearest], - data_second_nearest = GetDataP(names_var[iVar], i_level)[i_second_nearest]; - *var_vals[iVar] = (data_nearest * (1.0 / min_distance) + data_second_nearest * (1.0 / second_distance)) / delimiter; + if (idx_var[iVar] == idx_null) { + var_vals[iVar] = 0; + } else { + su2double data_nearest = table_data[i_level][idx_var[iVar]][i_nearest], + data_second_nearest = table_data[i_level][idx_var[iVar]][i_second_nearest]; + var_vals[iVar] = + (data_nearest * (1.0 / min_distance) + data_second_nearest * (1.0 / second_distance)) / delimiter; + } } } +void CLookUpTable::InterpolateToNearestNeighbors(const su2double val_CV1, const su2double val_CV2, + const std::vector& names_var, + std::vector& var_vals, const unsigned long i_level) { + vector idx_var; + idx_var.resize(names_var.size()); + for (auto iVar = 0u; iVar < names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(names_var[iVar]); +} + +void CLookUpTable::InterpolateToNearestNeighbors(const su2double val_CV1, const su2double val_CV2, + const std::vector& idx_var, + std::vector& var_vals, const unsigned long i_level) { + vector output_var_vals; + output_var_vals.resize(var_vals.size()); + InterpolateToNearestNeighbors(val_CV1, val_CV2, idx_var, output_var_vals, i_level); + for (auto iVar = 0u; iVar < var_vals.size(); iVar++) *var_vals[iVar] = output_var_vals[iVar]; +} + void CLookUpTable::InterpolateToNearestNeighbors(const su2double val_CV1, const su2double val_CV2, const std::string& name_var, su2double* var_vals, const unsigned long i_level) { @@ -783,14 +824,14 @@ void CLookUpTable::InterpolateToNearestNeighbors(const su2double val_CV1, const bool CLookUpTable::IsInTriangle(su2double val_CV1, su2double val_CV2, unsigned long val_id_triangle, unsigned long i_level) { - su2double tri_x_0 = GetDataP(name_CV1, i_level)[triangles[i_level][val_id_triangle][0]]; - su2double tri_y_0 = GetDataP(name_CV2, i_level)[triangles[i_level][val_id_triangle][0]]; + su2double tri_x_0 = table_data[i_level][idx_CV1][triangles[i_level][val_id_triangle][0]]; + su2double tri_y_0 = table_data[i_level][idx_CV2][triangles[i_level][val_id_triangle][0]]; - su2double tri_x_1 = GetDataP(name_CV1, i_level)[triangles[i_level][val_id_triangle][1]]; - su2double tri_y_1 = GetDataP(name_CV2, i_level)[triangles[i_level][val_id_triangle][1]]; + su2double tri_x_1 = table_data[i_level][idx_CV1][triangles[i_level][val_id_triangle][1]]; + su2double tri_y_1 = table_data[i_level][idx_CV2][triangles[i_level][val_id_triangle][1]]; - su2double tri_x_2 = GetDataP(name_CV1, i_level)[triangles[i_level][val_id_triangle][2]]; - su2double tri_y_2 = GetDataP(name_CV2, i_level)[triangles[i_level][val_id_triangle][2]]; + su2double tri_x_2 = table_data[i_level][idx_CV1][triangles[i_level][val_id_triangle][2]]; + su2double tri_y_2 = table_data[i_level][idx_CV2][triangles[i_level][val_id_triangle][2]]; su2double area_tri = TriArea(tri_x_0, tri_y_0, tri_x_1, tri_y_1, tri_x_2, tri_y_2); diff --git a/Common/src/containers/CTrapezoidalMap.cpp b/Common/src/containers/CTrapezoidalMap.cpp index 0f964030748..acb16ad8d30 100644 --- a/Common/src/containers/CTrapezoidalMap.cpp +++ b/Common/src/containers/CTrapezoidalMap.cpp @@ -178,7 +178,7 @@ CTrapezoidalMap::CTrapezoidalMap(const su2double* samples_x, const su2double* sa } } -unsigned long CTrapezoidalMap::GetTriangle(su2double val_x, su2double val_y) { +unsigned long CTrapezoidalMap::GetTriangle(const su2double val_x, const su2double val_y) { /* find x band in which val_x sits */ pair band = GetBand(val_x); @@ -210,16 +210,16 @@ unsigned long CTrapezoidalMap::GetTriangle(su2double val_x, su2double val_y) { return triangle[0]; } -pair CTrapezoidalMap::GetBand(su2double val_x) { +pair CTrapezoidalMap::GetBand(const su2double val_x) { unsigned long i_low = 0; unsigned long i_up = 0; - + su2double val_x_sample = val_x; /* check if val_x is in x-bounds of the table, if not then project val_x to either x-min or x-max */ - if (val_x < unique_bands_x.front()) val_x = unique_bands_x.front(); - if (val_x > unique_bands_x.back()) val_x = unique_bands_x.back(); + if (val_x_sample < unique_bands_x.front()) val_x_sample = unique_bands_x.front(); + if (val_x_sample > unique_bands_x.back()) val_x_sample = unique_bands_x.back(); std::pair::iterator, std::vector::iterator> bounds; - bounds = std::equal_range(unique_bands_x.begin(), unique_bands_x.end(), val_x); + bounds = std::equal_range(unique_bands_x.begin(), unique_bands_x.end(), val_x_sample); /*--- if upper bound = 0, then use the range [0,1] ---*/ i_up = max(1, bounds.first - unique_bands_x.begin()); diff --git a/SU2_CFD/include/fluid/CDataDrivenFluid.hpp b/SU2_CFD/include/fluid/CDataDrivenFluid.hpp index 6c067bc92aa..52dc804c1b8 100644 --- a/SU2_CFD/include/fluid/CDataDrivenFluid.hpp +++ b/SU2_CFD/include/fluid/CDataDrivenFluid.hpp @@ -95,7 +95,14 @@ class CDataDrivenFluid final : public CFluidModel { vector MLP_inputs; /*!< \brief Inputs for the multi-layer perceptron look-up operation. */ CLookUpTable* lookup_table; /*!< \brief Look-up table regression object. */ - + unsigned long LUT_idx_s, + LUT_idx_dsde_rho, + LUT_idx_dsdrho_e, + LUT_idx_d2sde2, + LUT_idx_d2sdedrho, + LUT_idx_d2sdrho2; + vector LUT_lookup_indices; + unsigned long outside_dataset, /*!< \brief Density-energy combination lies outside data set. */ nIter_Newton; /*!< \brief Number of Newton solver iterations. */ diff --git a/SU2_CFD/include/fluid/CFluidFlamelet.hpp b/SU2_CFD/include/fluid/CFluidFlamelet.hpp index 9520a432a44..e8bb5d57b09 100644 --- a/SU2_CFD/include/fluid/CFluidFlamelet.hpp +++ b/SU2_CFD/include/fluid/CFluidFlamelet.hpp @@ -60,6 +60,10 @@ class CFluidFlamelet final : public CFluidModel { CLookUpTable* look_up_table; + vector LUT_idx_TD, + LUT_idx_Sources, + LUT_idx_LookUp; + /*--- Class variables for the multi-layer perceptron method ---*/ #ifdef USE_MLPCPP MLPToolbox::CLookUp_ANN* lookup_mlp; /*!< \brief Multi-layer perceptron collection. */ @@ -79,6 +83,17 @@ class CFluidFlamelet final : public CFluidModel { void PreprocessLookUp(CConfig* config); + /*! \brief + * Returns true if the string is null or zero (ignores case). + */ + inline bool noSource(const std::string& name_var) const { + if (name_var.compare("NULL") == 0 || name_var.compare("Null") == 0 || name_var.compare("null") == 0 || + name_var.compare("ZERO") == 0 || name_var.compare("Zero") == 0 || name_var.compare("zero") == 0) { + return true; + } else { + return false; + } + } public: CFluidFlamelet(CConfig* config, su2double value_pressure_operating); diff --git a/SU2_CFD/src/fluid/CDataDrivenFluid.cpp b/SU2_CFD/src/fluid/CDataDrivenFluid.cpp index 40f8e1234c7..3c10f745806 100644 --- a/SU2_CFD/src/fluid/CDataDrivenFluid.cpp +++ b/SU2_CFD/src/fluid/CDataDrivenFluid.cpp @@ -118,6 +118,21 @@ void CDataDrivenFluid::MapInputs_to_Outputs() { lookup_mlp->PairVariableswithMLPs(*iomap_rhoe); MLP_inputs.resize(2); #endif + } else { + /*--- Retrieve column indices of LUT output variables ---*/ + LUT_idx_s = lookup_table->GetIndexOfVar(output_names_rhoe[idx_s]); + LUT_idx_dsdrho_e = lookup_table->GetIndexOfVar(output_names_rhoe[idx_dsdrho_e]); + LUT_idx_dsde_rho = lookup_table->GetIndexOfVar(output_names_rhoe[idx_dsde_rho]); + LUT_idx_d2sde2 = lookup_table->GetIndexOfVar(output_names_rhoe[idx_d2sde2]); + LUT_idx_d2sdedrho= lookup_table->GetIndexOfVar(output_names_rhoe[idx_d2sdedrho]); + LUT_idx_d2sdrho2 = lookup_table->GetIndexOfVar(output_names_rhoe[idx_d2sdrho2]); + + LUT_lookup_indices.push_back(LUT_idx_s); + LUT_lookup_indices.push_back(LUT_idx_dsde_rho); + LUT_lookup_indices.push_back(LUT_idx_dsdrho_e); + LUT_lookup_indices.push_back(LUT_idx_d2sde2); + LUT_lookup_indices.push_back(LUT_idx_d2sdedrho); + LUT_lookup_indices.push_back(LUT_idx_d2sdrho2); } } @@ -246,7 +261,7 @@ unsigned long CDataDrivenFluid::Predict_LUT(su2double rho, su2double e) { outputs_LUT[iOutput] = outputs_rhoe[iOutput]; } - exit_code = lookup_table->LookUp_XY(output_names_rhoe_LUT, outputs_LUT, rho, e); + exit_code = lookup_table->LookUp_XY(LUT_lookup_indices, outputs_rhoe, rho, e); return exit_code; } diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index 0dbdee37c5e..a5202f04b87 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -196,6 +196,22 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { lookup_mlp->PairVariableswithMLPs(*iomap_Sources); lookup_mlp->PairVariableswithMLPs(*iomap_LookUp); #endif + } else { + for (auto iVar=0u; iVar < varnames_TD.size(); iVar++){ + LUT_idx_TD.push_back(look_up_table->GetIndexOfVar(varnames_TD[iVar])); + } + for (auto iVar=0u; iVar < varnames_Sources.size(); iVar++){ + unsigned long LUT_idx; + if (noSource(varnames_Sources[iVar])) { + LUT_idx = look_up_table->GetNullIndex(); + } else { + LUT_idx = look_up_table->GetIndexOfVar(varnames_Sources[iVar]); + } + LUT_idx_Sources.push_back(LUT_idx); + } + for (auto iVar=0u; iVar < varnames_LookUp.size(); iVar++){ + LUT_idx_LookUp.push_back(look_up_table->GetIndexOfVar(varnames_LookUp[iVar])); + } } } @@ -207,21 +223,25 @@ unsigned long CFluidFlamelet::EvaluateDataSet(const vector& input_sca vector varnames; vector val_vars; vector refs_vars; + vector LUT_idx; switch (lookup_type) { case FLAMELET_LOOKUP_OPS::TD: varnames = varnames_TD; + LUT_idx = LUT_idx_TD; #ifdef USE_MLPCPP iomap_Current = iomap_TD; #endif break; case FLAMELET_LOOKUP_OPS::SOURCES: varnames = varnames_Sources; + LUT_idx = LUT_idx_Sources; #ifdef USE_MLPCPP iomap_Current = iomap_Sources; #endif break; case FLAMELET_LOOKUP_OPS::LOOKUP: varnames = varnames_LookUp; + LUT_idx = LUT_idx_LookUp; #ifdef USE_MLPCPP iomap_Current = iomap_LookUp; #endif @@ -236,9 +256,9 @@ unsigned long CFluidFlamelet::EvaluateDataSet(const vector& input_sca switch (Kind_DataDriven_Method) { case ENUM_DATADRIVEN_METHOD::LUT: if (include_mixture_fraction) { - extrapolation = look_up_table->LookUp_XYZ(varnames, output_refs, val_prog, val_enth, val_mixfrac); + extrapolation = look_up_table->LookUp_XYZ(LUT_idx, output_refs, val_prog, val_enth, val_mixfrac); } else { - extrapolation = look_up_table->LookUp_XY(varnames, output_refs, val_prog, val_enth); + extrapolation = look_up_table->LookUp_XY(LUT_idx, output_refs, val_prog, val_enth); } break; case ENUM_DATADRIVEN_METHOD::MLP: From 7ae56d26fa13512b29c4ee1dd844d2071bc91539 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 19 Feb 2024 15:00:25 +0100 Subject: [PATCH 045/287] Removed string-based look-up procedures --- Common/include/containers/CLookUpTable.hpp | 48 +--- Common/src/containers/CLookUpTable.cpp | 220 ++++++++++-------- .../Common/containers/CLookupTable_tests.cpp | 18 +- 3 files changed, 143 insertions(+), 143 deletions(-) diff --git a/Common/include/containers/CLookUpTable.hpp b/Common/include/containers/CLookUpTable.hpp index fa03dc0ba3b..a99fd0cb1c5 100644 --- a/Common/include/containers/CLookUpTable.hpp +++ b/Common/include/containers/CLookUpTable.hpp @@ -60,7 +60,7 @@ class CLookUpTable { unsigned long n_variables, n_table_levels = 1; - su2vector z_values_levels; /*!< \brief Constant z-values of each table level.*/ + std::vector z_values_levels; /*!< \brief Constant z-values of each table level.*/ unsigned short table_dim = 2; /*!< \brief Table dimension.*/ /*! @@ -325,39 +325,14 @@ class CLookUpTable { void PrintTableInfo(); /*! - * \brief Lookup 1 value of the single variable "val_name_var" using controlling variable values(val_CV1,val_CV2). - * \param[in] val_name_var - String name of the variable to look up. - * \param[out] val_var - The stored value of the variable to look up. - * \param[in] val_CV1 - Value of controlling variable 1. - * \param[in] val_CV2 - Value of controlling variable 2. - * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. + * \brief Lookup 1 value of a single variable at data column "idx_var" using controlling variable + * values(val_CV1,val_CV2). \param[in] idx_var - Column index corresponding to look-up data. \param[out] val_var - The + * stored value of the variable to look up. \param[in] val_CV1 - Value of controlling variable 1. \param[in] val_CV2 - + * Value of controlling variable 2. \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. */ - unsigned long LookUp_XY(const std::string& val_name_var, su2double* val_var, const su2double val_CV1, + unsigned long LookUp_XY(const unsigned long idx_var, su2double* val_var, const su2double val_CV1, const su2double val_CV2, const unsigned long i_level = 0); - /*! - * \brief Lookup 1 value for each of the variables in "val_name_var" using controlling variable - * values(val_CV1,val_CV2). - * \param[in] val_names_var - vector of string names of the variables to look up. - * \param[out] val_vars - pointer to the vector of stored values of the variables to look up. - * \param[in] val_CV1 - value of controlling variable 1. - * \param[in] val_CV2 - value of controlling variable 2. - * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. - */ - unsigned long LookUp_XY(const std::vector& val_names_var, std::vector& val_vars, - const su2double val_CV1, const su2double val_CV2, const unsigned long i_level = 0); - - /*! - * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2). - * \param[in] val_name_var - String name of the variable to look up. - * \param[out] val_var - The stored value of the variable to look up. - * \param[in] val_CV1 - Value of controlling variable 1. - * \param[in] val_CV2 - Value of controlling variable 2. - * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. - */ - unsigned long LookUp_XY(const std::vector& val_names_var, std::vector& val_vars, - const su2double val_CV1, const su2double val_CV2, const unsigned long i_level = 0); - /*! * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2). * \param[in] idx_var - Table data column indices corresponding to look-up variables. @@ -388,19 +363,19 @@ class CLookUpTable { * \param[in] val_CV3 - Value of controlling variable 3. * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. */ - unsigned long LookUp_XYZ(const std::string& val_name_var, su2double* val_var, const su2double val_CV1, + unsigned long LookUp_XYZ(const unsigned long idx_var, su2double* val_var, const su2double val_CV1, const su2double val_CV2, const su2double val_CV3); /*! * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2,val_z). - * \param[in] val_name_var - String name of the variable to look up. + * \param[in] idx_var - Table variable index to look up. * \param[out] val_var - The stored value of the variable to look up. * \param[in] val_CV1 - Value of controlling variable 1. * \param[in] val_CV2 - Value of controlling variable 2. * \param[in] val_CV3 - Value of controlling variable 3. * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. */ - unsigned long LookUp_XYZ(const std::vector& val_names_var, std::vector& val_vars, + unsigned long LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, const su2double val_CV1, const su2double val_CV2, const su2double val_CV3 = 0); /*! @@ -412,15 +387,16 @@ class CLookUpTable { * \param[in] val_CV3 - Value of controlling variable 3. * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. */ - unsigned long LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, + unsigned long LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, const su2double val_CV1, const su2double val_CV2, const su2double val_CV3 = 0); + /*! * \brief Find the table levels with constant z-values directly above and below query val_z. * \param[in] val_CV3 - Value of controlling variable 3. * \param[in] within_limits - Whether query point lies within table bounds. * \returns Pair of inclusion level indices (first = lower level index, second = upper level index). */ - std::pair FindInclusionLevels(const su2double val_CV3) const; + std::pair FindInclusionLevels(const su2double val_CV3); /*! * \brief Determine the minimum and maximum value of the second controlling variable. diff --git a/Common/src/containers/CLookUpTable.cpp b/Common/src/containers/CLookUpTable.cpp index 9b05052ea20..e488a285acf 100644 --- a/Common/src/containers/CLookUpTable.cpp +++ b/Common/src/containers/CLookUpTable.cpp @@ -219,7 +219,7 @@ void CLookUpTable::PrintTableInfo() { cout << "| Variable names: |" << endl; cout << "| |" << endl; - for (unsigned long i_var = 0; i_var < names_var.size(); i_var++) + for (auto i_var = 0u; i_var < names_var.size(); i_var++) cout << "| " << right << setw(3) << i_var << ": " << left << setw(59) << names_var[i_var] << " |" << endl; cout << "+------------------------------------------------------------------+" << endl; @@ -243,7 +243,7 @@ void CLookUpTable::PrintTableInfo() { cout << "| Variable names: |" << endl; cout << "| |" << endl; - for (unsigned long i_var = 0; i_var < names_var.size(); i_var++) + for (auto i_var = 0u; i_var < names_var.size(); i_var++) cout << "| " << right << setw(3) << i_var << ": " << left << setw(59) << names_var[i_var] << " |" << endl; cout << "+------------------------------------------------------------------+" << endl; @@ -262,11 +262,11 @@ void CLookUpTable::IdentifyUniqueEdges() { vector > neighborElemsOfPoint; neighborElemsOfPoint.resize(n_points[i_level]); - for (unsigned long iElem = 0; iElem < n_triangles[i_level]; iElem++) { + for (auto iElem = 0u; iElem < n_triangles[i_level]; iElem++) { /* loop over 3 points per triangle */ - for (unsigned long iPoint = 0; iPoint < N_POINTS_TRIANGLE; iPoint++) { + for (auto iPoint = 0u; iPoint < N_POINTS_TRIANGLE; iPoint++) { /* get the global ID of the current point */ - const unsigned long GlobalIndex = triangles[i_level][iElem][iPoint]; + const auto GlobalIndex = triangles[i_level][iElem][iPoint]; /* add the current element ID to the neighbor list for this point */ neighborElemsOfPoint[GlobalIndex].push_back(iElem); @@ -275,7 +275,7 @@ void CLookUpTable::IdentifyUniqueEdges() { /* remove duplicates from the neighboring element lists*/ vector::iterator vecIt; - for (unsigned long iPoint = 0; iPoint < n_points[i_level]; iPoint++) { + for (auto iPoint = 0u; iPoint < n_points[i_level]; iPoint++) { /* sort neighboring elements for each point */ sort(neighborElemsOfPoint[iPoint].begin(), neighborElemsOfPoint[iPoint].end()); @@ -290,12 +290,12 @@ void CLookUpTable::IdentifyUniqueEdges() { the point IDs that are neighboring points */ vector > neighborPointsOfPoint; neighborPointsOfPoint.resize(n_points[i_level]); - for (unsigned long iPoint = 0; iPoint < n_points[i_level]; iPoint++) { - for (unsigned long iElem = 0; iElem < neighborElemsOfPoint[iPoint].size(); iElem++) { + for (auto iPoint = 0u; iPoint < n_points[i_level]; iPoint++) { + for (auto iElem = 0u; iElem < neighborElemsOfPoint[iPoint].size(); iElem++) { /* loop over element points */ - for (unsigned long jPoint = 0; jPoint < N_POINTS_TRIANGLE; jPoint++) { + for (auto jPoint = 0u; jPoint < N_POINTS_TRIANGLE; jPoint++) { /* get the global ID of the current point */ - const unsigned long GlobalIndex = triangles[i_level][neighborElemsOfPoint[iPoint][iElem]][jPoint]; + const auto GlobalIndex = triangles[i_level][neighborElemsOfPoint[iPoint][iElem]][jPoint]; /* add the current element ID to the neighbor list for this point */ if (GlobalIndex != iPoint) neighborPointsOfPoint[iPoint].push_back(GlobalIndex); @@ -304,7 +304,7 @@ void CLookUpTable::IdentifyUniqueEdges() { } /* remove duplicates from the neighboring points lists */ - for (unsigned long iPoint = 0; iPoint < n_points[i_level]; iPoint++) { + for (auto iPoint = 0u; iPoint < n_points[i_level]; iPoint++) { /* sort neighboring points for each point */ sort(neighborPointsOfPoint[iPoint].begin(), neighborPointsOfPoint[iPoint].end()); @@ -320,10 +320,10 @@ void CLookUpTable::IdentifyUniqueEdges() { that the smaller global index is in the first position and the larger is in the second to make for a unique set, so there's no need to remove duplicates. */ - for (unsigned long iPoint = 0; iPoint < n_points[i_level]; iPoint++) { - for (unsigned long jPoint = 0; jPoint < neighborPointsOfPoint[iPoint].size(); jPoint++) { + for (auto iPoint = 0u; iPoint < n_points[i_level]; iPoint++) { + for (auto jPoint = 0u; jPoint < neighborPointsOfPoint[iPoint].size(); jPoint++) { /* Store the neighbor index more clearly. */ - const unsigned long GlobalIndex = neighborPointsOfPoint[iPoint][jPoint]; + const auto GlobalIndex = neighborPointsOfPoint[iPoint][jPoint]; /* Store the edge so that the lower index of the pair is always first. */ if (iPoint < GlobalIndex) { @@ -339,17 +339,17 @@ void CLookUpTable::IdentifyUniqueEdges() { pair, loop through the neighboring elements and store the two elements that contain the second point in the edge ('left' and 'right' of the edge). */ edge_to_triangle[i_level].resize(edges[i_level].size()); - for (unsigned long iEdge = 0; iEdge < edges[i_level].size(); iEdge++) { + for (auto iEdge = 0u; iEdge < edges[i_level].size(); iEdge++) { /* Store the two points of the edge more clearly. */ - const unsigned long iPoint = edges[i_level][iEdge][0]; - const unsigned long jPoint = edges[i_level][iEdge][1]; + const auto iPoint = edges[i_level][iEdge][0]; + const auto jPoint = edges[i_level][iEdge][1]; /* Loop over all neighboring elements to iPoint. */ - for (unsigned long iElem = 0; iElem < neighborElemsOfPoint[iPoint].size(); iElem++) { + for (auto iElem = 0u; iElem < neighborElemsOfPoint[iPoint].size(); iElem++) { /* loop over 3 points per triangle */ - for (unsigned long kPoint = 0; kPoint < N_POINTS_TRIANGLE; kPoint++) { + for (auto kPoint = 0u; kPoint < N_POINTS_TRIANGLE; kPoint++) { /* Get the global ID of the current point. */ - const unsigned long GlobalIndex = triangles[i_level][neighborElemsOfPoint[iPoint][iElem]][kPoint]; + const auto GlobalIndex = triangles[i_level][neighborElemsOfPoint[iPoint][iElem]][kPoint]; /* Add the current element ID to the neighbor list for this point. */ if (GlobalIndex == jPoint) edge_to_triangle[i_level][iEdge].push_back(neighborElemsOfPoint[iPoint][iElem]); @@ -371,12 +371,12 @@ void CLookUpTable::ComputeInterpCoeffs() { /* calculate weights for each triangle (basically a distance function) and * build inverse interpolation matrices */ interp_mat_inv_x_y[i_level].resize(n_triangles[i_level]); - for (unsigned long i_triangle = 0; i_triangle < n_triangles[i_level]; i_triangle++) { - for (int p = 0; p < 3; p++) { + for (auto i_triangle = 0u; i_triangle < n_triangles[i_level]; i_triangle++) { + for (auto p = 0u; p < N_POINTS_TRIANGLE; p++) { next_triangle[p] = triangles[i_level][i_triangle][p]; } - su2activematrix x_interp_mat_inv(3, 3); + su2activematrix x_interp_mat_inv(N_POINTS_TRIANGLE, N_POINTS_TRIANGLE); GetInterpMatInv(val_CV1, val_CV2, next_triangle, x_interp_mat_inv); interp_mat_inv_x_y[i_level][i_triangle] = x_interp_mat_inv; } @@ -385,51 +385,72 @@ void CLookUpTable::ComputeInterpCoeffs() { void CLookUpTable::GetInterpMatInv(const su2double* vec_x, const su2double* vec_y, std::array& point_ids, su2activematrix& interp_mat_inv) { - const unsigned int M = 3; - CSquareMatrixCM global_M(3); + CSquareMatrixCM global_M(N_POINTS_TRIANGLE); /* setup LHM matrix for the interpolation */ - for (unsigned int i_point = 0; i_point < M; i_point++) { - su2double x = vec_x[point_ids[i_point]]; - su2double y = vec_y[point_ids[i_point]]; + for (auto i_vertex = 0u; i_vertex < N_POINTS_TRIANGLE; i_vertex++) { + su2double x = vec_x[point_ids[i_vertex]]; + su2double y = vec_y[point_ids[i_vertex]]; - global_M(i_point, 0) = SU2_TYPE::GetValue(1.0); - global_M(i_point, 1) = SU2_TYPE::GetValue(x); - global_M(i_point, 2) = SU2_TYPE::GetValue(y); + global_M(i_vertex, 0) = SU2_TYPE::GetValue(1.0); + global_M(i_vertex, 1) = SU2_TYPE::GetValue(x); + global_M(i_vertex, 2) = SU2_TYPE::GetValue(y); } global_M.Invert(); global_M.Transpose(); - for (unsigned int i = 0; i < M; i++) { - for (unsigned int j = 0; j < M; j++) { + for (auto i = 0u; i < N_POINTS_TRIANGLE; i++) { + for (auto j = 0u; j < N_POINTS_TRIANGLE; j++) { interp_mat_inv[i][j] = global_M(i, j); } } } -std::pair CLookUpTable::FindInclusionLevels(const su2double val_CV3) const { +std::pair CLookUpTable::FindInclusionLevels(const su2double val_CV3) { /*--- Find the table levels with constant z-values directly below and above the query value val_CV3 ---*/ + su2double val_z = val_CV3; + unsigned long i_up{0}, i_low{0}; /* Check if val_CV3 lies outside table bounds */ - if (val_CV3 >= *limits_table_z.second) { - return std::make_pair(n_table_levels - 1, n_table_levels - 1); - } else if (val_CV3 <= *limits_table_z.first) { - return std::make_pair(0, 0); - } else { - std::pair inclusion_levels; - /* Loop over table levels to find the levels directly above and below the query value */ - for (auto i_level = 0ul; i_level < n_table_levels - 1; i_level++) { - if ((val_CV3 >= z_values_levels[i_level]) && (val_CV3 < z_values_levels[i_level + 1])) { - inclusion_levels = std::make_pair(i_level, i_level + 1); - } - } - return inclusion_levels; + if (val_z < z_values_levels.front()) { + val_z = z_values_levels.front(); + return make_pair(i_low, i_up); } + if (val_z > z_values_levels.back()) { + val_z = z_values_levels.back(); + i_low = n_table_levels - 1; + i_up = n_table_levels - 1; + return make_pair(i_low, i_up); + } + std::pair::iterator, std::vector::iterator> bounds; + bounds = std::equal_range(z_values_levels.begin(), z_values_levels.end(), val_z); + + /*--- if upper bound = 0, then use the range [0,1] ---*/ + i_up = max(1, bounds.first - z_values_levels.begin()); + i_low = i_up - 1; + return make_pair(i_low, i_up); +} + +unsigned long CLookUpTable::LookUp_XYZ(const unsigned long idx_var, su2double* val_var, const su2double val_CV1, + const su2double val_CV2, const su2double val_CV3) { + vector vec_idx_var = {idx_var}; + vector vec_val_var = {val_var}; + return LookUp_XYZ(vec_idx_var, vec_val_var, val_CV1, val_CV2, val_CV3); +} + +unsigned long CLookUpTable::LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, + const su2double val_CV1, const su2double val_CV2, const su2double val_CV3) { + vector var_vals_output; + var_vals_output.resize(val_vars.size()); + unsigned long exit_code = LookUp_XYZ(idx_var, var_vals_output, val_CV1, val_CV2, val_CV3); + for (auto iVar = 0u; iVar < val_vars.size(); iVar++) *val_vars[iVar] = var_vals_output[iVar]; + + return exit_code; } unsigned long CLookUpTable::LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, - su2double val_CV1, su2double val_CV2, su2double val_CV3) { + const su2double val_CV1, const su2double val_CV2, const su2double val_CV3) { /*--- Perform quasi-3D interpolation for a vector of variables with names val_names_var on a query point with coordinates val_CV1, val_CV2, and val_CV3 ---*/ @@ -467,31 +488,32 @@ unsigned long CLookUpTable::LookUp_XYZ(const std::vector& idx_var } } -unsigned long CLookUpTable::LookUp_XYZ(const std::vector& val_names_var, std::vector& val_vars, - su2double val_CV1, su2double val_CV2, su2double val_CV3) { - vector idx_var; - idx_var.resize(val_names_var.size()); - for (auto iVar = 0u; iVar < val_names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(val_names_var[iVar]); - unsigned long exit_code = LookUp_XYZ(idx_var, val_vars, val_CV1, val_CV2, val_CV3); - return exit_code; -} - -unsigned long CLookUpTable::LookUp_XYZ(const std::string& val_name_var, su2double* val_var, su2double val_CV1, - su2double val_CV2, su2double val_CV3) { - unsigned long exit_code; - if (noSource(val_name_var)) { - *val_var = 0; - exit_code = 0; - return exit_code; - } - - vector val_names_var = {val_name_var}; - vector val_vars; - val_vars.resize(1); - exit_code = LookUp_XYZ(val_names_var, val_vars, val_CV1, val_CV2, val_CV3); - *val_var = val_vars[0]; - return exit_code; -} +// unsigned long CLookUpTable::LookUp_XYZ(const std::vector& val_names_var, std::vector& +// val_vars, +// su2double val_CV1, su2double val_CV2, su2double val_CV3) { +// vector idx_var; +// idx_var.resize(val_names_var.size()); +// for (auto iVar = 0u; iVar < val_names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(val_names_var[iVar]); +// unsigned long exit_code = LookUp_XYZ(idx_var, val_vars, val_CV1, val_CV2, val_CV3); +// return exit_code; +// } + +// unsigned long CLookUpTable::LookUp_XYZ(const std::string& val_name_var, su2double* val_var, su2double val_CV1, +// su2double val_CV2, su2double val_CV3) { +// unsigned long exit_code; +// if (noSource(val_name_var)) { +// *val_var = 0; +// exit_code = 0; +// return exit_code; +// } + +// vector val_names_var = {val_name_var}; +// vector val_vars; +// val_vars.resize(1); +// exit_code = LookUp_XYZ(val_names_var, val_vars, val_CV1, val_CV2, val_CV3); +// *val_var = val_vars[0]; +// return exit_code; +// } void CLookUpTable::Linear_Interpolation(const su2double val_CV3, const unsigned long lower_level, const unsigned long upper_level, su2double& lower_value, su2double& upper_value, @@ -602,41 +624,37 @@ unsigned long CLookUpTable::LookUp_XY(const vector& idx_var, vect return exit_code; } -unsigned long CLookUpTable::LookUp_XY(const string& val_name_var, su2double* val_var, const su2double val_CV1, +unsigned long CLookUpTable::LookUp_XY(const unsigned long idx_var, su2double* val_var, const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) { unsigned long exit_code = 1; - if (noSource(val_name_var)) { - *val_var = 0.0; - exit_code = 0; - return exit_code; - } - - vector val_names_var = {val_name_var}; + vector vec_idx_var = {idx_var}; vector val_vars = {val_var}; - exit_code = LookUp_XY(val_names_var, val_vars, val_CV1, val_CV2, i_level); + exit_code = LookUp_XY(vec_idx_var, val_vars, val_CV1, val_CV2, i_level); return exit_code; } -unsigned long CLookUpTable::LookUp_XY(const vector& val_names_var, vector& val_vars, - const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) { - vector idx_var; - idx_var.resize(val_names_var.size()); - for (auto iVar = 0u; iVar < val_names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(val_names_var[iVar]); - - unsigned long exit_code = LookUp_XY(idx_var, val_vars, val_CV1, val_CV2, i_level); - return exit_code; -} - -unsigned long CLookUpTable::LookUp_XY(const vector& val_names_var, vector& val_vars, - const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) { - vector idx_var; - idx_var.resize(val_names_var.size()); - for (auto iVar = 0u; iVar < val_names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(val_names_var[iVar]); - - unsigned long exit_code = LookUp_XY(idx_var, val_vars, val_CV1, val_CV2, i_level); - return exit_code; -} +// unsigned long CLookUpTable::LookUp_XY(const vector& val_names_var, vector& val_vars, +// const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) +// { +// vector idx_var; +// idx_var.resize(val_names_var.size()); +// for (auto iVar = 0u; iVar < val_names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(val_names_var[iVar]); + +// unsigned long exit_code = LookUp_XY(idx_var, val_vars, val_CV1, val_CV2, i_level); +// return exit_code; +// } + +// unsigned long CLookUpTable::LookUp_XY(const vector& val_names_var, vector& val_vars, +// const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) +// { +// vector idx_var; +// idx_var.resize(val_names_var.size()); +// for (auto iVar = 0u; iVar < val_names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(val_names_var[iVar]); + +// unsigned long exit_code = LookUp_XY(idx_var, val_vars, val_CV1, val_CV2, i_level); +// return exit_code; +// } unsigned long CLookUpTable::LookUp_XY(const vector& idx_var, vector& val_vars, const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) { diff --git a/UnitTests/Common/containers/CLookupTable_tests.cpp b/UnitTests/Common/containers/CLookupTable_tests.cpp index 5e63f60b149..225229459af 100644 --- a/UnitTests/Common/containers/CLookupTable_tests.cpp +++ b/UnitTests/Common/containers/CLookupTable_tests.cpp @@ -50,8 +50,9 @@ TEST_CASE("LUTreader", "[tabulated chemistry]") { su2double prog = 0.55; su2double enth = -0.5; string look_up_tag = "Density"; + unsigned long idx_tag = look_up_table.GetIndexOfVar(look_up_tag); su2double look_up_dat; - look_up_table.LookUp_XY(look_up_tag, &look_up_dat, prog, enth); + look_up_table.LookUp_XY(idx_tag, &look_up_dat, prog, enth); CHECK(look_up_dat == Approx(1.02)); /*--- look up a single value for viscosity ---*/ @@ -59,7 +60,8 @@ TEST_CASE("LUTreader", "[tabulated chemistry]") { prog = 0.6; enth = 0.9; look_up_tag = "Viscosity"; - look_up_table.LookUp_XY(look_up_tag, &look_up_dat, prog, enth); + idx_tag = look_up_table.GetIndexOfVar(look_up_tag); + look_up_table.LookUp_XY(idx_tag, &look_up_dat, prog, enth); CHECK(look_up_dat == Approx(0.0000674286)); /* find the table limits */ @@ -77,7 +79,8 @@ TEST_CASE("LUTreader", "[tabulated chemistry]") { prog = 1.10; enth = 1.1; look_up_tag = "Density"; - look_up_table.LookUp_XY(look_up_tag, &look_up_dat, prog, enth); + idx_tag = look_up_table.GetIndexOfVar(look_up_tag); + look_up_table.LookUp_XY(idx_tag, &look_up_dat, prog, enth); CHECK(look_up_dat == Approx(1.1738796125)); } @@ -98,8 +101,9 @@ TEST_CASE("LUTreader_3D", "[tabulated chemistry]") { su2double enth = -0.5; su2double mfrac = 0.5; string look_up_tag = "Density"; + unsigned long idx_tag = look_up_table.GetIndexOfVar(look_up_tag); su2double look_up_dat; - look_up_table.LookUp_XYZ(look_up_tag, &look_up_dat, prog, enth, mfrac); + look_up_table.LookUp_XYZ(idx_tag, &look_up_dat, prog, enth, mfrac); CHECK(look_up_dat == Approx(1.02)); /*--- look up a single value for viscosity ---*/ @@ -108,7 +112,8 @@ TEST_CASE("LUTreader_3D", "[tabulated chemistry]") { enth = 0.9; mfrac = 0.8; look_up_tag = "Viscosity"; - look_up_table.LookUp_XYZ(look_up_tag, &look_up_dat, prog, enth, mfrac); + idx_tag = look_up_table.GetIndexOfVar(look_up_tag); + look_up_table.LookUp_XYZ(idx_tag, &look_up_dat, prog, enth, mfrac); CHECK(look_up_dat == Approx(0.0000674286)); /* find the table limits */ @@ -127,6 +132,7 @@ TEST_CASE("LUTreader_3D", "[tabulated chemistry]") { enth = 1.1; mfrac = 2.0; look_up_tag = "Density"; - look_up_table.LookUp_XYZ(look_up_tag, &look_up_dat, prog, enth, mfrac); + idx_tag = look_up_table.GetIndexOfVar(look_up_tag); + look_up_table.LookUp_XYZ(idx_tag, &look_up_dat, prog, enth, mfrac); CHECK(look_up_dat == Approx(1.1738796125)); } From 92c4d4a0da7dfc53f8f3f28d10fcf8f8e53a9f93 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Fri, 23 Feb 2024 14:05:30 +0100 Subject: [PATCH 046/287] Removed commented out sections --- Common/src/containers/CLookUpTable.cpp | 49 -------------------------- 1 file changed, 49 deletions(-) diff --git a/Common/src/containers/CLookUpTable.cpp b/Common/src/containers/CLookUpTable.cpp index e488a285acf..1030e5fef6a 100644 --- a/Common/src/containers/CLookUpTable.cpp +++ b/Common/src/containers/CLookUpTable.cpp @@ -488,33 +488,6 @@ unsigned long CLookUpTable::LookUp_XYZ(const std::vector& idx_var } } -// unsigned long CLookUpTable::LookUp_XYZ(const std::vector& val_names_var, std::vector& -// val_vars, -// su2double val_CV1, su2double val_CV2, su2double val_CV3) { -// vector idx_var; -// idx_var.resize(val_names_var.size()); -// for (auto iVar = 0u; iVar < val_names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(val_names_var[iVar]); -// unsigned long exit_code = LookUp_XYZ(idx_var, val_vars, val_CV1, val_CV2, val_CV3); -// return exit_code; -// } - -// unsigned long CLookUpTable::LookUp_XYZ(const std::string& val_name_var, su2double* val_var, su2double val_CV1, -// su2double val_CV2, su2double val_CV3) { -// unsigned long exit_code; -// if (noSource(val_name_var)) { -// *val_var = 0; -// exit_code = 0; -// return exit_code; -// } - -// vector val_names_var = {val_name_var}; -// vector val_vars; -// val_vars.resize(1); -// exit_code = LookUp_XYZ(val_names_var, val_vars, val_CV1, val_CV2, val_CV3); -// *val_var = val_vars[0]; -// return exit_code; -// } - void CLookUpTable::Linear_Interpolation(const su2double val_CV3, const unsigned long lower_level, const unsigned long upper_level, su2double& lower_value, su2double& upper_value, su2double*& var_val) const { @@ -634,28 +607,6 @@ unsigned long CLookUpTable::LookUp_XY(const unsigned long idx_var, su2double* va return exit_code; } -// unsigned long CLookUpTable::LookUp_XY(const vector& val_names_var, vector& val_vars, -// const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) -// { -// vector idx_var; -// idx_var.resize(val_names_var.size()); -// for (auto iVar = 0u; iVar < val_names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(val_names_var[iVar]); - -// unsigned long exit_code = LookUp_XY(idx_var, val_vars, val_CV1, val_CV2, i_level); -// return exit_code; -// } - -// unsigned long CLookUpTable::LookUp_XY(const vector& val_names_var, vector& val_vars, -// const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) -// { -// vector idx_var; -// idx_var.resize(val_names_var.size()); -// for (auto iVar = 0u; iVar < val_names_var.size(); iVar++) idx_var[iVar] = GetIndexOfVar(val_names_var[iVar]); - -// unsigned long exit_code = LookUp_XY(idx_var, val_vars, val_CV1, val_CV2, i_level); -// return exit_code; -// } - unsigned long CLookUpTable::LookUp_XY(const vector& idx_var, vector& val_vars, const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) { vector output_var_vals; From c0fb42089edd3289e2c49549e10a5d63f145747a Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 26 Feb 2024 11:16:44 +0100 Subject: [PATCH 047/287] Changed query inclusion flag to boolean instead of unsigned --- Common/include/containers/CLookUpTable.hpp | 84 +++++++++++----------- Common/src/containers/CLookUpTable.cpp | 64 ++++++++--------- SU2_CFD/src/fluid/CDataDrivenFluid.cpp | 19 ++--- SU2_CFD/src/fluid/CFluidFlamelet.cpp | 13 ++-- 4 files changed, 80 insertions(+), 100 deletions(-) diff --git a/Common/include/containers/CLookUpTable.hpp b/Common/include/containers/CLookUpTable.hpp index a99fd0cb1c5..cb4f1139c81 100644 --- a/Common/include/containers/CLookUpTable.hpp +++ b/Common/include/containers/CLookUpTable.hpp @@ -301,10 +301,10 @@ class CLookUpTable { * \param[in] val_CV2 - Second controlling variable value. * \param[in] id_triangle - Reference to inclusion triangle index. * \param[in] iLevel - Table level index. - * \returns 0 if inside data set, 1 if outside. + * \returns if query point is within data set. */ - unsigned long FindInclusionTriangle(const su2double val_CV1, const su2double val_CV2, unsigned long& id_triangle, - const unsigned long iLevel = 0); + bool FindInclusionTriangle(const su2double val_CV1, const su2double val_CV2, unsigned long& id_triangle, + const unsigned long iLevel = 0); /*! * \brief Identify the nearest second nearest hull nodes w.r.t. the query point (val_CV1, val_CV2). @@ -325,70 +325,66 @@ class CLookUpTable { void PrintTableInfo(); /*! - * \brief Lookup 1 value of a single variable at data column "idx_var" using controlling variable - * values(val_CV1,val_CV2). \param[in] idx_var - Column index corresponding to look-up data. \param[out] val_var - The - * stored value of the variable to look up. \param[in] val_CV1 - Value of controlling variable 1. \param[in] val_CV2 - - * Value of controlling variable 2. \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. + * \brief Lookup value of variable stored under idx_var using controlling variable values(val_CV1,val_CV2). + * \param[in] idx_var - Column index corresponding to look-up data. + * \param[out] val_var - The stored value of the variable to look up. + * \param[in] val_CV1 - Value of controlling variable 1. + * \param[in] val_CV2 - Value of controlling variable 2. + * \returns whether query is inside (true) or outside (false) data set. */ - unsigned long LookUp_XY(const unsigned long idx_var, su2double* val_var, const su2double val_CV1, - const su2double val_CV2, const unsigned long i_level = 0); + bool LookUp_XY(const unsigned long idx_var, su2double* val_var, const su2double val_CV1, const su2double val_CV2, + const unsigned long i_level = 0); /*! - * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2). + * \brief Lookup the value of the variable stored under idx_var using controlling variable values(val_CV1,val_CV2). * \param[in] idx_var - Table data column indices corresponding to look-up variables. * \param[out] val_var - The stored value of the variable to look up. * \param[in] val_CV1 - Value of controlling variable 1. * \param[in] val_CV2 - Value of controlling variable 2. - * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. + * \returns whether query is inside (true) or outside (false) data set. */ - unsigned long LookUp_XY(const std::vector& idx_var, std::vector& val_vars, - const su2double val_CV1, const su2double val_CV2, const unsigned long i_level = 0); + bool LookUp_XY(const std::vector& idx_var, std::vector& val_vars, const su2double val_CV1, + const su2double val_CV2, const unsigned long i_level = 0); /*! - * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2). + * \brief Lookup the values of the variables stored under idx_var using controlling variable values(val_CV1,val_CV2). * \param[in] idx_var - Table data column indices corresponding to look-up variables. * \param[out] val_var - The stored value of the variable to look up. * \param[in] val_CV1 - Value of controlling variable 1. * \param[in] val_CV2 - Value of controlling variable 2. - * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. + * \returns whether query is inside (true) or outside (false) data set. */ - unsigned long LookUp_XY(const std::vector& idx_var, std::vector& val_vars, - const su2double val_CV1, su2double val_CV2, const unsigned long i_level = 0); + bool LookUp_XY(const std::vector& idx_var, std::vector& val_vars, const su2double val_CV1, + su2double val_CV2, const unsigned long i_level = 0); /*! - * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2,val_z). - * \param[in] val_name_var - String name of the variable to look up. - * \param[out] val_var - The stored value of the variable to look up. - * \param[in] val_CV1 - Value of controlling variable 1. - * \param[in] val_CV2 - Value of controlling variable 2. - * \param[in] val_CV3 - Value of controlling variable 3. - * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. + * \brief Lookup the value of the variable stored under idx_var using controlling variable values(val_CV1,val_CV2, + * val_CV3). \param[in] val_name_var - String name of the variable to look up. \param[out] val_var - The stored value + * of the variable to look up. \param[in] val_CV1 - Value of controlling variable 1. \param[in] val_CV2 - Value of + * controlling variable 2. \param[in] val_CV3 - Value of controlling variable 3. \returns whether query is inside + * (true) or outside (false) data set. */ - unsigned long LookUp_XYZ(const unsigned long idx_var, su2double* val_var, const su2double val_CV1, - const su2double val_CV2, const su2double val_CV3); + bool LookUp_XYZ(const unsigned long idx_var, su2double* val_var, const su2double val_CV1, const su2double val_CV2, + const su2double val_CV3); /*! - * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2,val_z). - * \param[in] idx_var - Table variable index to look up. - * \param[out] val_var - The stored value of the variable to look up. - * \param[in] val_CV1 - Value of controlling variable 1. - * \param[in] val_CV2 - Value of controlling variable 2. - * \param[in] val_CV3 - Value of controlling variable 3. - * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. + * \brief Lookup the values of the variables stored under idx_var using controlling variable values + * (val_CV1,val_CV2,val_z). \param[in] idx_var - Table variable index to look up. \param[out] val_var - The stored + * value of the variable to look up. \param[in] val_CV1 - Value of controlling variable 1. \param[in] val_CV2 - Value + * of controlling variable 2. \param[in] val_CV3 - Value of controlling variable 3. \returns whether query is inside + * (true) or outside (false) data set. */ - unsigned long LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, - const su2double val_CV1, const su2double val_CV2, const su2double val_CV3 = 0); + bool LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, const su2double val_CV1, + const su2double val_CV2, const su2double val_CV3 = 0); /*! - * \brief Lookup the value of the variable "val_name_var" using controlling variable values(val_CV1,val_CV2,val_z). - * \param[in] idx_var - Table variable index to look up. - * \param[out] val_var - The stored value of the variable to look up. - * \param[in] val_CV1 - Value of controlling variable 1. - * \param[in] val_CV2 - Value of controlling variable 2. - * \param[in] val_CV3 - Value of controlling variable 3. - * \returns 1 if the lookup and subsequent interpolation was a success, 0 if not. + * \brief Lookup the values of the variables stored under idx_var using controlling variable values + * (val_CV1,val_CV2,val_z). \param[in] idx_var - Table variable index to look up. \param[out] val_var - The stored + * value of the variable to look up. \param[in] val_CV1 - Value of controlling variable 1. \param[in] val_CV2 - Value + * of controlling variable 2. \param[in] val_CV3 - Value of controlling variable 3. \returns whether query is inside + * (true) or outside (false) data set. */ - unsigned long LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, - const su2double val_CV1, const su2double val_CV2, const su2double val_CV3 = 0); + bool LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, const su2double val_CV1, + const su2double val_CV2, const su2double val_CV3 = 0); /*! * \brief Find the table levels with constant z-values directly above and below query val_z. diff --git a/Common/src/containers/CLookUpTable.cpp b/Common/src/containers/CLookUpTable.cpp index 1030e5fef6a..96135d26b82 100644 --- a/Common/src/containers/CLookUpTable.cpp +++ b/Common/src/containers/CLookUpTable.cpp @@ -432,25 +432,25 @@ std::pair CLookUpTable::FindInclusionLevels(const return make_pair(i_low, i_up); } -unsigned long CLookUpTable::LookUp_XYZ(const unsigned long idx_var, su2double* val_var, const su2double val_CV1, - const su2double val_CV2, const su2double val_CV3) { +bool CLookUpTable::LookUp_XYZ(const unsigned long idx_var, su2double* val_var, const su2double val_CV1, + const su2double val_CV2, const su2double val_CV3) { vector vec_idx_var = {idx_var}; vector vec_val_var = {val_var}; return LookUp_XYZ(vec_idx_var, vec_val_var, val_CV1, val_CV2, val_CV3); } -unsigned long CLookUpTable::LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, - const su2double val_CV1, const su2double val_CV2, const su2double val_CV3) { +bool CLookUpTable::LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, + const su2double val_CV1, const su2double val_CV2, const su2double val_CV3) { vector var_vals_output; var_vals_output.resize(val_vars.size()); - unsigned long exit_code = LookUp_XYZ(idx_var, var_vals_output, val_CV1, val_CV2, val_CV3); + bool inside = LookUp_XYZ(idx_var, var_vals_output, val_CV1, val_CV2, val_CV3); for (auto iVar = 0u; iVar < val_vars.size(); iVar++) *val_vars[iVar] = var_vals_output[iVar]; - return exit_code; + return inside; } -unsigned long CLookUpTable::LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, - const su2double val_CV1, const su2double val_CV2, const su2double val_CV3) { +bool CLookUpTable::LookUp_XYZ(const std::vector& idx_var, std::vector& val_vars, + const su2double val_CV1, const su2double val_CV2, const su2double val_CV3) { /*--- Perform quasi-3D interpolation for a vector of variables with names val_names_var on a query point with coordinates val_CV1, val_CV2, and val_CV3 ---*/ @@ -472,19 +472,19 @@ unsigned long CLookUpTable::LookUp_XYZ(const std::vector& idx_var std::vector val_vars_lower, val_vars_upper; val_vars_lower.resize(val_vars.size()); val_vars_upper.resize(val_vars.size()); - unsigned long exit_code_lower = LookUp_XY(idx_var, val_vars_lower, val_CV1_lower, val_CV2_lower, lower_level); - unsigned long exit_code_upper = LookUp_XY(idx_var, val_vars_upper, val_CV1_upper, val_CV2_upper, upper_level); + auto inside_lower = LookUp_XY(idx_var, val_vars_lower, val_CV1_lower, val_CV2_lower, lower_level); + auto inside_upper = LookUp_XY(idx_var, val_vars_upper, val_CV1_upper, val_CV2_upper, upper_level); /* 4: Perform linear interpolation along the z-direction using the x-y interpolation results from upper and lower trapezoidal maps */ Linear_Interpolation(val_CV3, lower_level, upper_level, val_vars_lower, val_vars_upper, val_vars); - return max(exit_code_lower, exit_code_upper); + return (inside_upper && inside_lower); } else { /* Perform single, 2D interpolation when val_CV3 lies outside table bounds */ unsigned long bound_level = inclusion_levels.first; LookUp_XY(idx_var, val_vars, val_CV1, val_CV2, bound_level); - return 1; + return false; } } @@ -569,13 +569,13 @@ std::array, 2> CLookUpTable::ComputeNormalizedXY( return lower_upper_CVs; } -unsigned long CLookUpTable::LookUp_XY(const vector& idx_var, vector& val_vars, - const su2double val_CV1, const su2double val_CV2, unsigned long i_level) { +bool CLookUpTable::LookUp_XY(const vector& idx_var, vector& val_vars, const su2double val_CV1, + const su2double val_CV2, unsigned long i_level) { unsigned long id_triangle; - unsigned long exit_code = FindInclusionTriangle(val_CV1, val_CV2, id_triangle, i_level); + bool inside = FindInclusionTriangle(val_CV1, val_CV2, id_triangle, i_level); /* loop over variable names and interpolate / get values */ - if (exit_code == 0) { + if (inside) { std::array interp_coeffs{0}; std::array triangle{0}; for (auto iVertex = 0u; iVertex < N_POINTS_TRIANGLE; iVertex++) @@ -594,34 +594,29 @@ unsigned long CLookUpTable::LookUp_XY(const vector& idx_var, vect } else InterpolateToNearestNeighbors(val_CV1, val_CV2, idx_var, val_vars, i_level); - return exit_code; + return inside; } -unsigned long CLookUpTable::LookUp_XY(const unsigned long idx_var, su2double* val_var, const su2double val_CV1, - const su2double val_CV2, const unsigned long i_level) { - unsigned long exit_code = 1; - +bool CLookUpTable::LookUp_XY(const unsigned long idx_var, su2double* val_var, const su2double val_CV1, + const su2double val_CV2, const unsigned long i_level) { vector vec_idx_var = {idx_var}; vector val_vars = {val_var}; - exit_code = LookUp_XY(vec_idx_var, val_vars, val_CV1, val_CV2, i_level); - return exit_code; + return LookUp_XY(vec_idx_var, val_vars, val_CV1, val_CV2, i_level); } -unsigned long CLookUpTable::LookUp_XY(const vector& idx_var, vector& val_vars, - const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) { +bool CLookUpTable::LookUp_XY(const vector& idx_var, vector& val_vars, + const su2double val_CV1, const su2double val_CV2, const unsigned long i_level) { vector output_var_vals; output_var_vals.resize(val_vars.size()); - unsigned long exit_code = LookUp_XY(idx_var, output_var_vals, val_CV1, val_CV2, i_level); + bool inside = LookUp_XY(idx_var, output_var_vals, val_CV1, val_CV2, i_level); for (auto iVar = 0u; iVar < val_vars.size(); iVar++) *val_vars[iVar] = output_var_vals[iVar]; - return exit_code; + return inside; } -unsigned long CLookUpTable::FindInclusionTriangle(const su2double val_CV1, const su2double val_CV2, - unsigned long& id_triangle, const unsigned long iLevel) { - unsigned long exit_code = 1; - +bool CLookUpTable::FindInclusionTriangle(const su2double val_CV1, const su2double val_CV2, unsigned long& id_triangle, + const unsigned long iLevel) { /* check if x value is in table x-dimension range * and if y is in table y-dimension table range */ if ((val_CV1 >= *limits_table_x[iLevel].first && val_CV1 <= *limits_table_x[iLevel].second) && @@ -631,12 +626,9 @@ unsigned long CLookUpTable::FindInclusionTriangle(const su2double val_CV1, const /* check if point is inside a triangle (if table domain is non-rectangular, * the previous range check might be true but the point could still be outside of the domain) */ - if (IsInTriangle(val_CV1, val_CV2, id_triangle, iLevel)) { - /* exit_code 0 means point was in triangle */ - exit_code = 0; - } + return IsInTriangle(val_CV1, val_CV2, id_triangle, iLevel); } - return exit_code; + return false; } void CLookUpTable::GetInterpCoeffs(su2double val_CV1, su2double val_CV2, const su2activematrix& interp_mat_inv, diff --git a/SU2_CFD/src/fluid/CDataDrivenFluid.cpp b/SU2_CFD/src/fluid/CDataDrivenFluid.cpp index 3c10f745806..caf67d39f23 100644 --- a/SU2_CFD/src/fluid/CDataDrivenFluid.cpp +++ b/SU2_CFD/src/fluid/CDataDrivenFluid.cpp @@ -248,21 +248,10 @@ unsigned long CDataDrivenFluid::Predict_MLP(su2double rho, su2double e) { } unsigned long CDataDrivenFluid::Predict_LUT(su2double rho, su2double e) { - unsigned long exit_code; - std::vector output_names_rhoe_LUT; - std::vector outputs_LUT; - output_names_rhoe_LUT.resize(output_names_rhoe.size()); - for (auto iOutput = 0u; iOutput < output_names_rhoe.size(); iOutput++) { - output_names_rhoe_LUT[iOutput] = output_names_rhoe[iOutput]; - } - - outputs_LUT.resize(outputs_rhoe.size()); - for (auto iOutput = 0u; iOutput < outputs_rhoe.size(); iOutput++) { - outputs_LUT[iOutput] = outputs_rhoe[iOutput]; - } - - exit_code = lookup_table->LookUp_XY(LUT_lookup_indices, outputs_rhoe, rho, e); - return exit_code; + bool inside = lookup_table->LookUp_XY(LUT_lookup_indices, outputs_rhoe, rho, e); + if (inside) + return 0; + return 1; } void CDataDrivenFluid::Evaluate_Dataset(su2double rho, su2double e) { diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index a5202f04b87..b460484fab5 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -197,10 +197,10 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { lookup_mlp->PairVariableswithMLPs(*iomap_LookUp); #endif } else { - for (auto iVar=0u; iVar < varnames_TD.size(); iVar++){ + for (auto iVar=0u; iVar < varnames_TD.size(); iVar++) { LUT_idx_TD.push_back(look_up_table->GetIndexOfVar(varnames_TD[iVar])); } - for (auto iVar=0u; iVar < varnames_Sources.size(); iVar++){ + for (auto iVar=0u; iVar < varnames_Sources.size(); iVar++) { unsigned long LUT_idx; if (noSource(varnames_Sources[iVar])) { LUT_idx = look_up_table->GetNullIndex(); @@ -209,7 +209,7 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { } LUT_idx_Sources.push_back(LUT_idx); } - for (auto iVar=0u; iVar < varnames_LookUp.size(); iVar++){ + for (auto iVar=0u; iVar < varnames_LookUp.size(); iVar++) { LUT_idx_LookUp.push_back(look_up_table->GetIndexOfVar(varnames_LookUp[iVar])); } } @@ -253,13 +253,16 @@ unsigned long CFluidFlamelet::EvaluateDataSet(const vector& input_sca SU2_MPI::Error(string("Output vector size incompatible with manifold lookup operation."), CURRENT_FUNCTION); /*--- Add all quantities and their names to the look up vectors. ---*/ + bool inside; switch (Kind_DataDriven_Method) { case ENUM_DATADRIVEN_METHOD::LUT: if (include_mixture_fraction) { - extrapolation = look_up_table->LookUp_XYZ(LUT_idx, output_refs, val_prog, val_enth, val_mixfrac); + inside = look_up_table->LookUp_XYZ(LUT_idx, output_refs, val_prog, val_enth, val_mixfrac); } else { - extrapolation = look_up_table->LookUp_XY(LUT_idx, output_refs, val_prog, val_enth); + inside = look_up_table->LookUp_XY(LUT_idx, output_refs, val_prog, val_enth); } + if (inside) extrapolation = 0; + else extrapolation = 1; break; case ENUM_DATADRIVEN_METHOD::MLP: refs_vars.resize(output_refs.size()); From 44347834e0a7814d1adfe5db3e5fd0234e05c8ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 29 Feb 2024 10:55:46 +0100 Subject: [PATCH 048/287] CoDiPack update. --- externals/codi | 2 +- meson_scripts/init.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/externals/codi b/externals/codi index 9ca6c382806..75344991146 160000 --- a/externals/codi +++ b/externals/codi @@ -1 +1 @@ -Subproject commit 9ca6c38280610b3ea5337ca3e5b5085ee1c66b59 +Subproject commit 75344991146b606ff8667e2a54943905a49aeb4b diff --git a/meson_scripts/init.py b/meson_scripts/init.py index b347432f473..7a302985007 100755 --- a/meson_scripts/init.py +++ b/meson_scripts/init.py @@ -55,7 +55,7 @@ def init_submodules( # This information of the modules is used if projects was not cloned using git # The sha tag must be maintained manually to point to the correct commit - sha_version_codi = "9ca6c38280610b3ea5337ca3e5b5085ee1c66b59" + sha_version_codi = "75344991146b606ff8667e2a54943905a49aeb4b" github_repo_codi = "https://github.com/scicompkl/CoDiPack" sha_version_medi = "ab3a7688f6d518f8d940eb61a341d89f51922ba4" github_repo_medi = "https://github.com/SciCompKL/MeDiPack" From 3b04ab6d3381e4b58b56978ad81a0cc6ddf7f496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 29 Feb 2024 15:24:47 +0100 Subject: [PATCH 049/287] Aggregated statistics for tapes from OpenMP parallel parts. --- Common/include/basic_types/ad_structure.hpp | 43 ++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/Common/include/basic_types/ad_structure.hpp b/Common/include/basic_types/ad_structure.hpp index bdb13365056..e392b59fe6d 100644 --- a/Common/include/basic_types/ad_structure.hpp +++ b/Common/include/basic_types/ad_structure.hpp @@ -348,7 +348,48 @@ FORCEINLINE void StopRecording() { AD::getTape().setPassive(); } FORCEINLINE bool TapeActive() { return AD::getTape().isActive(); } -FORCEINLINE void PrintStatistics() { AD::getTape().printStatistics(); } +FORCEINLINE void PrintStatistics() { + +#ifdef HAVE_OPDI + std::cout << "-------------------------------------------------------\n"; + std::cout << " Serial parts of the tape \n"; + std::cout << "-------------------------------------------------------\n"; +#endif + + AD::getTape().printStatistics(); + +#ifdef HAVE_OPDI + + // clang-format off + + std::cout << "-------------------------------------------------------\n"; + std::cout << " Aggregated OpenMP parallel parts of the tape\n"; + std::cout << "-------------------------------------------------------\n"; + + codi::TapeValues* aggregatedOpenMPTapeValues = nullptr; + + SU2_OMP_PARALLEL { + if (omp_get_thread_num() == 0) { + codi::TapeValues masterTapeValues = AD::getTape().getTapeValues(); + aggregatedOpenMPTapeValues = &masterTapeValues; + + SU2_OMP_BARRIER // master completes initialization + SU2_OMP_BARRIER // other threads complete adding their data + + aggregatedOpenMPTapeValues->formatDefault(std::cout); + aggregatedOpenMPTapeValues = nullptr; + } else { // omp_get_thread_num() > 0 + SU2_OMP_BARRIER // master completes initialization + SU2_OMP_CRITICAL { + aggregatedOpenMPTapeValues->combineData(AD::getTape().getTapeValues()); + } END_SU2_OMP_CRITICAL + SU2_OMP_BARRIER // other threads complete adding their data + } + } END_SU2_OMP_PARALLEL + +// clang-format on +#endif +} FORCEINLINE void ClearAdjoints() { AD::getTape().clearAdjoints(); } From 68b516085d74d6246199e6a774fff0eb1ef708bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 29 Feb 2024 10:55:46 +0100 Subject: [PATCH 050/287] CoDiPack update. --- externals/codi | 2 +- meson_scripts/init.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/externals/codi b/externals/codi index 9ca6c382806..bb7689fb947 160000 --- a/externals/codi +++ b/externals/codi @@ -1 +1 @@ -Subproject commit 9ca6c38280610b3ea5337ca3e5b5085ee1c66b59 +Subproject commit bb7689fb9479818d4ab55c4f3898c88d92890315 diff --git a/meson_scripts/init.py b/meson_scripts/init.py index b347432f473..76d351763f3 100755 --- a/meson_scripts/init.py +++ b/meson_scripts/init.py @@ -55,7 +55,7 @@ def init_submodules( # This information of the modules is used if projects was not cloned using git # The sha tag must be maintained manually to point to the correct commit - sha_version_codi = "9ca6c38280610b3ea5337ca3e5b5085ee1c66b59" + sha_version_codi = "bb7689fb9479818d4ab55c4f3898c88d92890315" github_repo_codi = "https://github.com/scicompkl/CoDiPack" sha_version_medi = "ab3a7688f6d518f8d940eb61a341d89f51922ba4" github_repo_medi = "https://github.com/SciCompKL/MeDiPack" From 98684f6cda910a4bdeaccfe59b22e89bf0106c6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Tue, 5 Mar 2024 11:46:02 +0100 Subject: [PATCH 051/287] CoDiPack update. --- externals/codi | 2 +- meson_scripts/init.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/externals/codi b/externals/codi index 75344991146..8408470208c 160000 --- a/externals/codi +++ b/externals/codi @@ -1 +1 @@ -Subproject commit 75344991146b606ff8667e2a54943905a49aeb4b +Subproject commit 8408470208cc41866583d681995222f7ca45dff0 diff --git a/meson_scripts/init.py b/meson_scripts/init.py index 7a302985007..d4f771424f3 100755 --- a/meson_scripts/init.py +++ b/meson_scripts/init.py @@ -55,7 +55,7 @@ def init_submodules( # This information of the modules is used if projects was not cloned using git # The sha tag must be maintained manually to point to the correct commit - sha_version_codi = "75344991146b606ff8667e2a54943905a49aeb4b" + sha_version_codi = "8408470208cc41866583d681995222f7ca45dff0" github_repo_codi = "https://github.com/scicompkl/CoDiPack" sha_version_medi = "ab3a7688f6d518f8d940eb61a341d89f51922ba4" github_repo_medi = "https://github.com/SciCompKL/MeDiPack" From ec2555305e69effc0806c8a38bc5c65b2e492139 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Tue, 5 Mar 2024 13:53:24 +0100 Subject: [PATCH 052/287] Adapted fluidflamelet to new table architecture --- SU2_CFD/include/fluid/CFluidFlamelet.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SU2_CFD/include/fluid/CFluidFlamelet.hpp b/SU2_CFD/include/fluid/CFluidFlamelet.hpp index adb1238d7f5..23307767726 100644 --- a/SU2_CFD/include/fluid/CFluidFlamelet.hpp +++ b/SU2_CFD/include/fluid/CFluidFlamelet.hpp @@ -64,7 +64,8 @@ class CFluidFlamelet final : public CFluidModel { vector LUT_idx_TD, LUT_idx_Sources, - LUT_idx_LookUp; + LUT_idx_LookUp, + LUT_idx_PD; /*--- Class variables for the multi-layer perceptron method ---*/ #ifdef USE_MLPCPP From f723bf1de2fa1d9c6f8ccf0e115f686ed0729e18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Tue, 5 Mar 2024 15:36:13 +0100 Subject: [PATCH 053/287] CoDiPack update. --- externals/codi | 2 +- meson_scripts/init.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/externals/codi b/externals/codi index 8408470208c..c6b039e5c9e 160000 --- a/externals/codi +++ b/externals/codi @@ -1 +1 @@ -Subproject commit 8408470208cc41866583d681995222f7ca45dff0 +Subproject commit c6b039e5c9edb7675f90ffc725f9dd8e66571264 diff --git a/meson_scripts/init.py b/meson_scripts/init.py index d4f771424f3..787bfb56e2f 100755 --- a/meson_scripts/init.py +++ b/meson_scripts/init.py @@ -55,7 +55,7 @@ def init_submodules( # This information of the modules is used if projects was not cloned using git # The sha tag must be maintained manually to point to the correct commit - sha_version_codi = "8408470208cc41866583d681995222f7ca45dff0" + sha_version_codi = "c6b039e5c9edb7675f90ffc725f9dd8e66571264" github_repo_codi = "https://github.com/scicompkl/CoDiPack" sha_version_medi = "ab3a7688f6d518f8d940eb61a341d89f51922ba4" github_repo_medi = "https://github.com/SciCompKL/MeDiPack" From 06636e8667c28c6fa185ee893d05616c9ff227f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Tue, 5 Mar 2024 15:38:59 +0100 Subject: [PATCH 054/287] Aggregate tape statistics across MPI processes. --- Common/include/basic_types/ad_structure.hpp | 59 +++++++++++++++---- .../src/drivers/CDiscAdjMultizoneDriver.cpp | 14 +---- .../src/drivers/CDiscAdjSinglezoneDriver.cpp | 14 +---- 3 files changed, 48 insertions(+), 39 deletions(-) diff --git a/Common/include/basic_types/ad_structure.hpp b/Common/include/basic_types/ad_structure.hpp index e392b59fe6d..cdf1d7c8cdc 100644 --- a/Common/include/basic_types/ad_structure.hpp +++ b/Common/include/basic_types/ad_structure.hpp @@ -29,6 +29,9 @@ #include "../code_config.hpp" #include "../parallelization/omp_structure.hpp" +#ifdef HAVE_MPI +#include +#endif /*! * \namespace AD @@ -58,8 +61,13 @@ inline bool TapeActive() { return false; } /*! * \brief Prints out tape statistics. + * + * Tape statistics are aggregated across OpenMP threads and MPI processes, if applicable. + * With MPI, the given communicator is used to reduce data across MPI processes, and the printing behaviour can be set + * per rank (usually, only the master rank prints). */ -inline void PrintStatistics() {} +template +inline void PrintStatistics(Comm communicator, bool printingRank) {} /*! * \brief Registers the variable as an input. I.e. as a leaf of the computational graph. @@ -348,37 +356,62 @@ FORCEINLINE void StopRecording() { AD::getTape().setPassive(); } FORCEINLINE bool TapeActive() { return AD::getTape().isActive(); } -FORCEINLINE void PrintStatistics() { - +template +FORCEINLINE void PrintStatistics(Comm communicator, bool printingRank) { + if (printingRank) { #ifdef HAVE_OPDI - std::cout << "-------------------------------------------------------\n"; - std::cout << " Serial parts of the tape \n"; - std::cout << "-------------------------------------------------------\n"; + std::cout << "-------------------------------------------------------\n"; + std::cout << " Serial parts of the tape\n"; +#ifdef HAVE_MPI + std::cout << " (aggregated across MPI processes)\n"; #endif + std::cout << "-------------------------------------------------------\n"; +#endif + } - AD::getTape().printStatistics(); + codi::TapeValues serialTapeValues = AD::getTape().getTapeValues(); + serialTapeValues.combineDataMPI(communicator); + + if (printingRank) { + serialTapeValues.formatDefault(std::cout); + } + + double totalMemoryUsed = serialTapeValues.getUsedMemorySize(); #ifdef HAVE_OPDI // clang-format off - std::cout << "-------------------------------------------------------\n"; - std::cout << " Aggregated OpenMP parallel parts of the tape\n"; - std::cout << "-------------------------------------------------------\n"; + if (printingRank) { + std::cout << "-------------------------------------------------------\n"; + std::cout << " OpenMP parallel parts of the tape\n"; + std::cout << " (aggregated across OpenMP threads)\n"; + #ifdef HAVE_MPI + std::cout << " (aggregated across MPI processes)\n"; + #endif + std::cout << "-------------------------------------------------------\n"; + } codi::TapeValues* aggregatedOpenMPTapeValues = nullptr; SU2_OMP_PARALLEL { - if (omp_get_thread_num() == 0) { + if (omp_get_thread_num() == 0) { // master thread codi::TapeValues masterTapeValues = AD::getTape().getTapeValues(); aggregatedOpenMPTapeValues = &masterTapeValues; SU2_OMP_BARRIER // master completes initialization SU2_OMP_BARRIER // other threads complete adding their data - aggregatedOpenMPTapeValues->formatDefault(std::cout); + aggregatedOpenMPTapeValues->combineDataMPI(communicator); + totalMemoryUsed += aggregatedOpenMPTapeValues->getUsedMemorySize(); + if (printingRank) { + aggregatedOpenMPTapeValues->formatDefault(std::cout); + std::cout << "-------------------------------------\n"; + std::cout << " Total memory used : " << totalMemoryUsed / 1024.0 / 1024.0 << " MB\n"; + std::cout << "-------------------------------------\n"; + } aggregatedOpenMPTapeValues = nullptr; - } else { // omp_get_thread_num() > 0 + } else { // other threads SU2_OMP_BARRIER // master completes initialization SU2_OMP_CRITICAL { aggregatedOpenMPTapeValues->combineData(AD::getTape().getTapeValues()); diff --git a/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp b/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp index fd70eaf1a4f..14d84721fd7 100644 --- a/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp @@ -670,19 +670,7 @@ void CDiscAdjMultizoneDriver::SetRecording(RECORDING kind_recording, Kind_Tape t } if (kind_recording != RECORDING::CLEAR_INDICES && driver_config->GetWrt_AD_Statistics()) { - if (rank == MASTER_NODE) AD::PrintStatistics(); -#ifdef CODI_REVERSE_TYPE - if (size > SINGLE_NODE) { - su2double myMem = AD::getTape().getTapeValues().getUsedMemorySize(), totMem = 0.0; - SU2_MPI::Allreduce(&myMem, &totMem, 1, MPI_DOUBLE, MPI_SUM, SU2_MPI::GetComm()); - if (rank == MASTER_NODE) { - cout << "MPI\n"; - cout << "-------------------------------------\n"; - cout << " Total memory used : " << totMem << " MB\n"; - cout << "-------------------------------------\n" << endl; - } - } -#endif + AD::PrintStatistics(SU2_MPI::GetComm(), rank == MASTER_NODE); } AD::StopRecording(); diff --git a/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp b/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp index 693388784a7..c0b2d7c94b3 100644 --- a/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp +++ b/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp @@ -305,19 +305,7 @@ void CDiscAdjSinglezoneDriver::SetRecording(RECORDING kind_recording){ SetObjFunction(); if (kind_recording != RECORDING::CLEAR_INDICES && config_container[ZONE_0]->GetWrt_AD_Statistics()) { - if (rank == MASTER_NODE) AD::PrintStatistics(); -#ifdef CODI_REVERSE_TYPE - if (size > SINGLE_NODE) { - su2double myMem = AD::getTape().getTapeValues().getUsedMemorySize(), totMem = 0.0; - SU2_MPI::Allreduce(&myMem, &totMem, 1, MPI_DOUBLE, MPI_SUM, SU2_MPI::GetComm()); - if (rank == MASTER_NODE) { - cout << "MPI\n"; - cout << "-------------------------------------\n"; - cout << " Total memory used : " << totMem << " MB\n"; - cout << "-------------------------------------\n" << endl; - } - } -#endif + AD::PrintStatistics(SU2_MPI::GetComm(), rank == MASTER_NODE); } AD::StopRecording(); From 6e2d7532e65e6924972a9be8490bc2d387fab1a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Tue, 5 Mar 2024 15:42:22 +0100 Subject: [PATCH 055/287] Print both total used and total allocated memory. --- Common/include/basic_types/ad_structure.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Common/include/basic_types/ad_structure.hpp b/Common/include/basic_types/ad_structure.hpp index cdf1d7c8cdc..70357a04c14 100644 --- a/Common/include/basic_types/ad_structure.hpp +++ b/Common/include/basic_types/ad_structure.hpp @@ -377,6 +377,7 @@ FORCEINLINE void PrintStatistics(Comm communicator, bool printingRank) { } double totalMemoryUsed = serialTapeValues.getUsedMemorySize(); + double totalMemoryAllocated = serialTapeValues.getAllocatedMemorySize(); #ifdef HAVE_OPDI @@ -404,11 +405,13 @@ FORCEINLINE void PrintStatistics(Comm communicator, bool printingRank) { aggregatedOpenMPTapeValues->combineDataMPI(communicator); totalMemoryUsed += aggregatedOpenMPTapeValues->getUsedMemorySize(); + totalMemoryAllocated += aggregatedOpenMPTapeValues->getAllocatedMemorySize(); if (printingRank) { aggregatedOpenMPTapeValues->formatDefault(std::cout); - std::cout << "-------------------------------------\n"; + std::cout << "-------------------------------------------------------\n"; std::cout << " Total memory used : " << totalMemoryUsed / 1024.0 / 1024.0 << " MB\n"; - std::cout << "-------------------------------------\n"; + std::cout << " Total memory allocated : " << totalMemoryAllocated / 1024.0 / 1024.0 << " MB\n"; + std::cout << "-------------------------------------------------------\n"; } aggregatedOpenMPTapeValues = nullptr; } else { // other threads From 2482a498d58d7fd62eb493c90a772011681c9379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Tue, 5 Mar 2024 16:04:03 +0100 Subject: [PATCH 056/287] Move 'clang-format off'. --- Common/include/basic_types/ad_structure.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Common/include/basic_types/ad_structure.hpp b/Common/include/basic_types/ad_structure.hpp index 70357a04c14..af81d349c2c 100644 --- a/Common/include/basic_types/ad_structure.hpp +++ b/Common/include/basic_types/ad_structure.hpp @@ -381,20 +381,20 @@ FORCEINLINE void PrintStatistics(Comm communicator, bool printingRank) { #ifdef HAVE_OPDI - // clang-format off - if (printingRank) { std::cout << "-------------------------------------------------------\n"; std::cout << " OpenMP parallel parts of the tape\n"; std::cout << " (aggregated across OpenMP threads)\n"; - #ifdef HAVE_MPI - std::cout << " (aggregated across MPI processes)\n"; - #endif +#ifdef HAVE_MPI + std::cout << " (aggregated across MPI processes)\n"; +#endif std::cout << "-------------------------------------------------------\n"; } codi::TapeValues* aggregatedOpenMPTapeValues = nullptr; + // clang-format off + SU2_OMP_PARALLEL { if (omp_get_thread_num() == 0) { // master thread codi::TapeValues masterTapeValues = AD::getTape().getTapeValues(); From be1b90693d008419cbf83fae266f0d5bc067b7d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Tue, 5 Mar 2024 16:28:00 +0100 Subject: [PATCH 057/287] Always print header for the serial part and footer for the total memory. --- Common/include/basic_types/ad_structure.hpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Common/include/basic_types/ad_structure.hpp b/Common/include/basic_types/ad_structure.hpp index af81d349c2c..7d6dbac1946 100644 --- a/Common/include/basic_types/ad_structure.hpp +++ b/Common/include/basic_types/ad_structure.hpp @@ -359,14 +359,12 @@ FORCEINLINE bool TapeActive() { return AD::getTape().isActive(); } template FORCEINLINE void PrintStatistics(Comm communicator, bool printingRank) { if (printingRank) { -#ifdef HAVE_OPDI std::cout << "-------------------------------------------------------\n"; std::cout << " Serial parts of the tape\n"; #ifdef HAVE_MPI std::cout << " (aggregated across MPI processes)\n"; #endif std::cout << "-------------------------------------------------------\n"; -#endif } codi::TapeValues serialTapeValues = AD::getTape().getTapeValues(); @@ -408,10 +406,6 @@ FORCEINLINE void PrintStatistics(Comm communicator, bool printingRank) { totalMemoryAllocated += aggregatedOpenMPTapeValues->getAllocatedMemorySize(); if (printingRank) { aggregatedOpenMPTapeValues->formatDefault(std::cout); - std::cout << "-------------------------------------------------------\n"; - std::cout << " Total memory used : " << totalMemoryUsed / 1024.0 / 1024.0 << " MB\n"; - std::cout << " Total memory allocated : " << totalMemoryAllocated / 1024.0 / 1024.0 << " MB\n"; - std::cout << "-------------------------------------------------------\n"; } aggregatedOpenMPTapeValues = nullptr; } else { // other threads @@ -425,6 +419,13 @@ FORCEINLINE void PrintStatistics(Comm communicator, bool printingRank) { // clang-format on #endif + + if (printingRank) { + std::cout << "-------------------------------------------------------\n"; + std::cout << " Total memory used : " << totalMemoryUsed / 1024.0 / 1024.0 << " MB\n"; + std::cout << " Total memory allocated : " << totalMemoryAllocated / 1024.0 / 1024.0 << " MB\n"; + std::cout << "-------------------------------------------------------\n"; + } } FORCEINLINE void ClearAdjoints() { AD::getTape().clearAdjoints(); } From a8988823cce7f37fc7098b62fcb6fe579c8b8fea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Tue, 5 Mar 2024 19:26:13 +0100 Subject: [PATCH 058/287] Include not needed. --- Common/include/basic_types/ad_structure.hpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/Common/include/basic_types/ad_structure.hpp b/Common/include/basic_types/ad_structure.hpp index 7d6dbac1946..c44374f7eb7 100644 --- a/Common/include/basic_types/ad_structure.hpp +++ b/Common/include/basic_types/ad_structure.hpp @@ -29,9 +29,6 @@ #include "../code_config.hpp" #include "../parallelization/omp_structure.hpp" -#ifdef HAVE_MPI -#include -#endif /*! * \namespace AD From 2ff8fcaba49f911824ac3f73f4354c5c2a491f92 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 6 Mar 2024 15:48:18 +0000 Subject: [PATCH 059/287] Implement method based on continuity --- SU2_CFD/include/solvers/CEulerSolver.hpp | 8 +++-- SU2_CFD/src/solvers/CEulerSolver.cpp | 43 +++++++++--------------- 2 files changed, 21 insertions(+), 30 deletions(-) diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index bcd4e55b253..6570621568f 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -139,6 +139,8 @@ class CEulerSolver : public CFVMFlowSolverBase AverageMassFlowRate; + vector AverageMomentumThrust; + vector AveragePressureForce; su2activematrix DensityIn; su2activematrix PressureIn; @@ -1197,9 +1199,9 @@ class CEulerSolver : public CFVMFlowSolverBaseval_marker */ - inline su2double GetAverageMassFlowRate(unsigned short valMarker) const final { - return AverageMassFlowRate[valMarker]; - } + //inline su2double GetAverageMassFlowRate(unsigned short valMarker) const final { + // return AverageMassFlowRate[valMarker]; + //} /*! * \brief Provide the average pressure at the boundary of interest. diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index dae32f75e30..95305460d50 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -234,6 +234,8 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, /*--- Turbomachinery simulation ---*/ AverageMassFlowRate.resize(nMarker); + AverageMomentumThrust.resize(nMarker); + AveragePressureForce.resize(nMarker); /*--- Read farfield conditions from config ---*/ @@ -284,6 +286,8 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, Exhaust_Area[iMarker] = 0.0; AverageMassFlowRate[iMarker] = 0.0; + AverageMomentumThrust[iMarker] = 0.0; + AveragePressureForce[iMarker] = 0.0; } /*--- Initialize the solution to the far-field state everywhere. ---*/ @@ -6504,13 +6508,7 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_e /= config->GetPressure_Ref(); /* --- Compute avg characteristic jump --- */ - if (nDim == 2){ - c_avg[3] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); - } - else - { - c_avg[4] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); - } + c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); break; case STATIC_PRESSURE_1D: @@ -6518,13 +6516,7 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_e /= config->GetPressure_Ref(); /* --- Compute avg characteristic jump --- */ - if (nDim == 2){ - c_avg[3] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); - } - else - { - c_avg[4] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); - } + c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); break; case RADIAL_EQUILIBRIUM: @@ -6539,17 +6531,11 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu auto const MassFlowRate_e = config->GetGiles_Var1(Marker_Tag); auto const relFacMassFlowRate = config->GetGiles_Var2(Marker_Tag); - Pressure_e = AveragePressure[val_marker][nSpanWiseSections]+relFacMassFlowRate*(AverageMassFlowRate[val_marker]-MassFlowRate_e); - + auto const deltam = 1 - MassFlowRate_e/AverageMassFlowRate[val_marker]; + Pressure_e = AverageMomentumThrust[val_marker]*deltam+AveragePressureForce[val_marker]; - /* --- Compute avg characteristic jump --- */ - if (nDim == 2){ - c_avg[3] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); - } - else - { - c_avg[4] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); - } + /*--- Compute avg characteristic jump ---*/ + c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); break; } @@ -9358,9 +9344,9 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC break; } /*--- Store averaged value of mass flow rate over the prescribed boundary ---*/ - if (iSpan == nSpanWiseSections){ - AverageMassFlowRate[iMarker] = TotalFluxes[0]; - } + //if (iSpan == nSpanWiseSections){ + // AverageMassFlowRate[iMarker] = TotalFluxes[0]; + //} AverageDensity[iMarker][iSpan] = avgDensity; AveragePressure[iMarker][iSpan] = avgPressure; if ((average_process == MIXEDOUT) && !belowMachLimit) { @@ -9424,6 +9410,9 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC } else { ComputeTurboVelocity(avgVelocity, AverageTurboNormal , TurboVel, marker_flag, config->GetKind_TurboMachinery(iZone)); } + AveragePressureForce[iMarker] = AveragePressure[iMarker][iSpan]; + AverageMassFlowRate[iMarker] = TotalFluxes[0]; + AverageMomentumThrust[iMarker] = TotalFluxes[0]*TurboVel[0]; } } } // iMarkerTP From c66f7ad2bfc2bb7f9f7bb1314766924574640ad5 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 6 Mar 2024 15:50:20 +0000 Subject: [PATCH 060/287] Change machine performance variable names --- SU2_CFD/src/output/CFlowOutput.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/SU2_CFD/src/output/CFlowOutput.cpp b/SU2_CFD/src/output/CFlowOutput.cpp index 5ed2862922a..58de17e2775 100644 --- a/SU2_CFD/src/output/CFlowOutput.cpp +++ b/SU2_CFD/src/output/CFlowOutput.cpp @@ -4078,9 +4078,9 @@ void CFlowOutput::AddTurboOutput(unsigned short nZone){ } //Adds turbomachinery machine performance variables AddHistoryOutput("EntropyGeneration", "EntropyGen", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); - AddHistoryOutput("EulerianWork", "EulerianWork", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); - AddHistoryOutput("TotalStaticEfficiency", "TotStaticEff", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); - AddHistoryOutput("TotalTotalEfficiency", "TotTotEff", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); - AddHistoryOutput("PressureRatioTS", "PRTS", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); - AddHistoryOutput("PressureRatioTT", "PRTT", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); + AddHistoryOutput("EulerianWork", "EulerianWork", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine Eulerian work", HistoryFieldType::DEFAULT); + AddHistoryOutput("TotalStaticEfficiency", "TotStaticEff", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine total-to-static efficiency", HistoryFieldType::DEFAULT); + AddHistoryOutput("TotalTotalEfficiency", "TotTotEff", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine total-to-total efficiency", HistoryFieldType::DEFAULT); + AddHistoryOutput("PressureRatioTS", "PRTS", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine total-to-static pressure ratio", HistoryFieldType::DEFAULT); + AddHistoryOutput("PressureRatioTT", "PRTT", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine total-to-toal pressure ratio", HistoryFieldType::DEFAULT); } From 5852f8c4af13ea2d944468808edefbdb8d54db6e Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 6 Mar 2024 16:14:32 +0000 Subject: [PATCH 061/287] Unused var --- SU2_CFD/src/solvers/CEulerSolver.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 95305460d50..3fd6cbe3752 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -6529,8 +6529,6 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu case MASS_FLOW_OUTLET: auto const MassFlowRate_e = config->GetGiles_Var1(Marker_Tag); - auto const relFacMassFlowRate = config->GetGiles_Var2(Marker_Tag); - auto const deltam = 1 - MassFlowRate_e/AverageMassFlowRate[val_marker]; Pressure_e = AverageMomentumThrust[val_marker]*deltam+AveragePressureForce[val_marker]; From d61c8947a33707b4bf087b6c7293c06aae711ff6 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 7 Mar 2024 13:05:03 +0100 Subject: [PATCH 062/287] Implemented Nijso's comments --- Common/include/option_structure.hpp | 4 ++-- SU2_CFD/include/fluid/CFluidFlamelet.hpp | 8 ++++++-- SU2_CFD/include/fluid/CFluidModel.hpp | 4 ++-- SU2_CFD/include/solvers/CHeatSolver.hpp | 4 ++-- SU2_CFD/include/solvers/CScalarSolver.hpp | 10 +++++----- SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp | 4 ++-- SU2_CFD/include/solvers/CSpeciesSolver.hpp | 4 ++-- SU2_CFD/include/solvers/CTransLMSolver.hpp | 4 ++-- SU2_CFD/include/solvers/CTurbSASolver.hpp | 4 ++-- SU2_CFD/include/solvers/CTurbSSTSolver.hpp | 4 ++-- SU2_CFD/src/fluid/CFluidFlamelet.cpp | 6 +++--- SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp | 8 ++++---- SU2_CFD/src/solvers/CSpeciesSolver.cpp | 4 ++-- SU2_CFD/src/solvers/CTransLMSolver.cpp | 4 ++-- SU2_CFD/src/solvers/CTurbSASolver.cpp | 4 ++-- SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 4 ++-- 16 files changed, 42 insertions(+), 38 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 202d0620d92..a87c4bafe6c 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1333,8 +1333,8 @@ enum FLAMELET_SCALAR_SOURCES { * \brief Look-up operations for the flamelet scalar solver. */ enum FLAMELET_LOOKUP_OPS { - TD, /*!< \brief Thermochemical properties (temperature, density, diffusivity, etc.). */ - PD, /*!< \brief Preferential diffusion scalars. */ + THERMO, /*!< \brief Thermochemical properties (temperature, density, diffusivity, etc.). */ + PREFDIF, /*!< \brief Preferential diffusion scalars. */ SOURCES, /*!< \brief Scalar source terms (controlling variables, passive species).*/ LOOKUP, /*!< \brief Passive look-up variables specified in config. */ }; diff --git a/SU2_CFD/include/fluid/CFluidFlamelet.hpp b/SU2_CFD/include/fluid/CFluidFlamelet.hpp index 23307767726..5de0231492d 100644 --- a/SU2_CFD/include/fluid/CFluidFlamelet.hpp +++ b/SU2_CFD/include/fluid/CFluidFlamelet.hpp @@ -81,10 +81,14 @@ class CFluidFlamelet final : public CFluidModel { vector scalars_vector; vector varnames_TD, /*!< \brief Lookup names for thermodynamic state variables. */ - varnames_Sources, varnames_LookUp, varnames_PD; + varnames_Sources, /*!< \brief Lookup names for source terms. */ + varnames_LookUp, /*!< \brief Lookup names for passive look-up terms. */ + varnames_PD; /*!< \brief Lookup names for preferential diffusion scalars. */ vector val_vars_TD, /*!< \brief References to thermodynamic state variables. */ - val_vars_Sources, val_vars_LookUp, val_vars_PD; + val_vars_Sources, /*!< \brief References to source terms. */ + val_vars_LookUp, /*!< \brief References passive look-up terms. */ + val_vars_PD; /*!< \brief References to preferential diffusion scalars. */ void PreprocessLookUp(CConfig* config); diff --git a/SU2_CFD/include/fluid/CFluidModel.hpp b/SU2_CFD/include/fluid/CFluidModel.hpp index babdc248c04..29f0becdb0d 100644 --- a/SU2_CFD/include/fluid/CFluidModel.hpp +++ b/SU2_CFD/include/fluid/CFluidModel.hpp @@ -351,8 +351,8 @@ class CFluidModel { virtual unsigned long GetExtrapolation() const { return 0; } /*! - * \brief Preferential diffusion as relevant phenomenon in flamelet simulations. - * \return Inclusion of preferential diffusion model. + * \brief Get the state of the Preferential diffusion model for flamelet simulations. + * \return True if preferential diffusion model is active, false otherwise. */ virtual bool GetPreferentialDiffusion() const { return false; } diff --git a/SU2_CFD/include/solvers/CHeatSolver.hpp b/SU2_CFD/include/solvers/CHeatSolver.hpp index e82c96881d7..627983ec096 100644 --- a/SU2_CFD/include/solvers/CHeatSolver.hpp +++ b/SU2_CFD/include/solvers/CHeatSolver.hpp @@ -103,8 +103,8 @@ class CHeatSolver final : public CScalarSolver { * \param[in] config - Definition of the particular problem. * \note Calls a generic implementation after defining a SolverSpecificNumerics object. */ - inline void Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, - CNumerics* numerics, CConfig* config) override { + inline void Viscous_Residual(const unsigned long iEdge, const CGeometry* geometry, CSolver** solver_container, + CNumerics* numerics, const CConfig* config) override { const CVariable* flow_nodes = flow ? solver_container[FLOW_SOL]->GetNodes() : nullptr; const su2double const_diffusivity = config->GetThermalDiffusivity(); diff --git a/SU2_CFD/include/solvers/CScalarSolver.hpp b/SU2_CFD/include/solvers/CScalarSolver.hpp index ca84ea7c644..ca4ce3e2483 100644 --- a/SU2_CFD/include/solvers/CScalarSolver.hpp +++ b/SU2_CFD/include/solvers/CScalarSolver.hpp @@ -99,9 +99,9 @@ class CScalarSolver : public CSolver { * \param[in] config - Definition of the particular problem. */ template - FORCEINLINE void Viscous_Residual_impl(const SolverSpecificNumericsFunc& SolverSpecificNumerics, unsigned long iEdge, - CGeometry* geometry, CSolver** solver_container, CNumerics* numerics, - CConfig* config) { + FORCEINLINE void Viscous_Residual_impl(const SolverSpecificNumericsFunc& SolverSpecificNumerics, const unsigned long iEdge, + const CGeometry* geometry, CSolver** solver_container, CNumerics* numerics, + const CConfig* config) { const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); CFlowVariable* flowNodes = solver_container[FLOW_SOL] ? su2staticcast_p(solver_container[FLOW_SOL]->GetNodes()) : nullptr; @@ -307,8 +307,8 @@ class CScalarSolver : public CSolver { * \param[in] config - Definition of the particular problem. * \note Calls a generic implementation after defining a SolverSpecificNumerics object. */ - inline virtual void Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, - CNumerics* numerics, CConfig* config) { + inline virtual void Viscous_Residual(const unsigned long iEdge, const CGeometry* geometry, CSolver** solver_container, + CNumerics* numerics, const CConfig* config) { /*--- Define an empty object for solver specific numerics contribution. In case there are none, this default *--- implementation will be called ---*/ auto SolverSpecificNumerics = [&](unsigned long iPoint, unsigned long jPoint) {}; diff --git a/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp b/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp index 8d479ebf8ba..1d1bd498230 100644 --- a/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp +++ b/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp @@ -194,6 +194,6 @@ class CSpeciesFlameletSolver final : public CSpeciesSolver { * \param[in] config - Definition of the particular problem. * \note Calls a generic implementation after defining a SolverSpecificNumerics object. */ - void Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, CNumerics* numerics, - CConfig* config) final; + void Viscous_Residual(const unsigned long iEdge, const CGeometry* geometry, CSolver** solver_container, CNumerics* numerics, + const CConfig* config) final; }; diff --git a/SU2_CFD/include/solvers/CSpeciesSolver.hpp b/SU2_CFD/include/solvers/CSpeciesSolver.hpp index e1f53de1977..4fbb9419117 100644 --- a/SU2_CFD/include/solvers/CSpeciesSolver.hpp +++ b/SU2_CFD/include/solvers/CSpeciesSolver.hpp @@ -89,8 +89,8 @@ class CSpeciesSolver : public CScalarSolver { * \param[in] config - Definition of the particular problem. * \note Calls a generic implementation after defining a SolverSpecificNumerics object. */ - void Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, CNumerics* numerics, - CConfig* config) override; + void Viscous_Residual(const unsigned long iEdge, const CGeometry* geometry, CSolver** solver_container, CNumerics* numerics, + const CConfig* config) override; /*! * \brief Impose the inlet boundary condition. diff --git a/SU2_CFD/include/solvers/CTransLMSolver.hpp b/SU2_CFD/include/solvers/CTransLMSolver.hpp index 220f2b01ed7..98595abb266 100644 --- a/SU2_CFD/include/solvers/CTransLMSolver.hpp +++ b/SU2_CFD/include/solvers/CTransLMSolver.hpp @@ -98,8 +98,8 @@ class CTransLMSolver final : public CTurbSolver { * \param[in] config - Definition of the particular problem. * \note Calls a generic implementation after defining a SolverSpecificNumerics object. */ - void Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, - CNumerics* numerics, CConfig* config) override; + void Viscous_Residual(const unsigned long iEdge, const CGeometry* geometry, CSolver** solver_container, + CNumerics* numerics, const CConfig* config) override; /*! * \brief Source term computation. diff --git a/SU2_CFD/include/solvers/CTurbSASolver.hpp b/SU2_CFD/include/solvers/CTurbSASolver.hpp index cb0307817e7..c79649799cc 100644 --- a/SU2_CFD/include/solvers/CTurbSASolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSASolver.hpp @@ -125,8 +125,8 @@ class CTurbSASolver final : public CTurbSolver { * \param[in] config - Definition of the particular problem. * \note Calls a generic implementation after defining a SolverSpecificNumerics object. */ - void Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, - CNumerics* numerics, CConfig* config) override; + void Viscous_Residual(const unsigned long iEdge, const CGeometry* geometry, CSolver** solver_container, + CNumerics* numerics, const CConfig* config) override; /*! * \brief Source term computation. diff --git a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp index f4cf89d38d0..bdb4227a191 100644 --- a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp @@ -107,8 +107,8 @@ class CTurbSSTSolver final : public CTurbSolver { * \param[in] config - Definition of the particular problem. * \note Calls a generic implementation after defining a SolverSpecificNumerics object. */ - void Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, - CNumerics* numerics, CConfig* config) override; + void Viscous_Residual(const unsigned long iEdge, const CGeometry* geometry, CSolver** solver_container, + CNumerics* numerics, const CConfig* config) override; /*! * \brief Source term computation. diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index 01260c6850f..06fd814594d 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -127,7 +127,7 @@ void CFluidFlamelet::SetTDState_T(su2double val_temperature, const su2double* va for (auto iVar = 0u; iVar < n_scalars; iVar++) scalars_vector[iVar] = val_scalars[iVar]; /*--- Add all quantities and their names to the look up vectors. ---*/ - EvaluateDataSet(scalars_vector, FLAMELET_LOOKUP_OPS::TD, val_vars_TD); + EvaluateDataSet(scalars_vector, FLAMELET_LOOKUP_OPS::THERMO, val_vars_TD); Temperature = val_vars_TD[LOOKUP_TD::TEMPERATURE]; Cp = val_vars_TD[LOOKUP_TD::HEATCAPACITY]; @@ -290,13 +290,13 @@ unsigned long CFluidFlamelet::EvaluateDataSet(const vector& input_sca vector refs_vars; vector LUT_idx; switch (lookup_type) { - case FLAMELET_LOOKUP_OPS::TD: + case FLAMELET_LOOKUP_OPS::THERMO: LUT_idx = LUT_idx_TD; #ifdef USE_MLPCPP iomap_Current = iomap_TD; #endif break; - case FLAMELET_LOOKUP_OPS::PD: + case FLAMELET_LOOKUP_OPS::PREFDIF: LUT_idx = LUT_idx_PD; #ifdef USE_MLPCPP iomap_Current = iomap_PD; diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index cc7cb45c575..af0a2ae62d1 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -110,7 +110,7 @@ void CSpeciesFlameletSolver::Preprocessing(CGeometry* geometry, CSolver** solver SetScalarLookUps(config, fluid_model_local, i_point, scalars_vector); /*--- Set mass diffusivity based on thermodynamic state. ---*/ - su2double T = flowNodes->GetTemperature(i_point); + auto T = flowNodes->GetTemperature(i_point); fluid_model_local->SetTDState_T(T, scalars); /*--- set the diffusivity in the fluid model to the diffusivity obtained from the lookup table ---*/ for (auto i_scalar = 0u; i_scalar < nVar; ++i_scalar) { @@ -557,7 +557,7 @@ unsigned long CSpeciesFlameletSolver::SetPreferentialDiffusionScalars(const CCon /*--- Retrieve the preferential diffusion scalar values from the manifold. ---*/ vector beta_scalar(FLAMELET_PREF_DIFF_SCALARS::N_BETA_TERMS); - unsigned long misses = fluid_model_local->EvaluateDataSet(scalars, FLAMELET_LOOKUP_OPS::PD, beta_scalar); + unsigned long misses = fluid_model_local->EvaluateDataSet(scalars, FLAMELET_LOOKUP_OPS::PREFDIF, beta_scalar); for (auto i_beta = 0u; i_beta < FLAMELET_PREF_DIFF_SCALARS::N_BETA_TERMS; i_beta++) { nodes->SetAuxVar(iPoint, i_beta, beta_scalar[i_beta]); @@ -565,8 +565,8 @@ unsigned long CSpeciesFlameletSolver::SetPreferentialDiffusionScalars(const CCon return misses; } -void CSpeciesFlameletSolver::Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, - CNumerics* numerics, CConfig* config) { +void CSpeciesFlameletSolver::Viscous_Residual(const unsigned long iEdge, const CGeometry* geometry, CSolver** solver_container, + CNumerics* numerics, const CConfig* config) { /*--- Overloaded viscous residual method which accounts for preferential diffusion. ---*/ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT), PreferentialDiffusion = config->GetPreferentialDiffusion(); diff --git a/SU2_CFD/src/solvers/CSpeciesSolver.cpp b/SU2_CFD/src/solvers/CSpeciesSolver.cpp index f5f5ed16603..05d43f13ff8 100644 --- a/SU2_CFD/src/solvers/CSpeciesSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesSolver.cpp @@ -314,8 +314,8 @@ void CSpeciesSolver::Preprocessing(CGeometry* geometry, CSolver** solver_contain CommonPreprocessing(geometry, config, Output); } -void CSpeciesSolver::Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, - CNumerics* numerics, CConfig* config) { +void CSpeciesSolver::Viscous_Residual(const unsigned long iEdge, const CGeometry* geometry, CSolver** solver_container, + CNumerics* numerics, const CConfig* config) { /*--- Define an object to set solver specific numerics contribution. ---*/ auto SolverSpecificNumerics = [&](unsigned long iPoint, unsigned long jPoint) { /*--- Mass diffusivity coefficients. ---*/ diff --git a/SU2_CFD/src/solvers/CTransLMSolver.cpp b/SU2_CFD/src/solvers/CTransLMSolver.cpp index b67e1b1af96..af89924ea2e 100644 --- a/SU2_CFD/src/solvers/CTransLMSolver.cpp +++ b/SU2_CFD/src/solvers/CTransLMSolver.cpp @@ -263,8 +263,8 @@ void CTransLMSolver::Postprocessing(CGeometry *geometry, CSolver **solver_contai } -void CTransLMSolver::Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, - CNumerics* numerics, CConfig* config) { +void CTransLMSolver::Viscous_Residual(const unsigned long iEdge, const CGeometry* geometry, CSolver** solver_container, + CNumerics* numerics, const CConfig* config) { /*--- Define an object to set solver specific numerics contribution. ---*/ diff --git a/SU2_CFD/src/solvers/CTurbSASolver.cpp b/SU2_CFD/src/solvers/CTurbSASolver.cpp index f3a6d57b589..d84b56e1dc6 100644 --- a/SU2_CFD/src/solvers/CTurbSASolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSASolver.cpp @@ -291,8 +291,8 @@ void CTurbSASolver::Postprocessing(CGeometry *geometry, CSolver **solver_contain AD::EndNoSharedReading(); } -void CTurbSASolver::Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, - CNumerics* numerics, CConfig* config) { +void CTurbSASolver::Viscous_Residual(const unsigned long iEdge, const CGeometry* geometry, CSolver** solver_container, + CNumerics* numerics, const CConfig* config) { /*--- Define an object to set solver specific numerics contribution. ---*/ auto SolverSpecificNumerics = [&](unsigned long iPoint, unsigned long jPoint) { diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index 1973b70a331..ea316e9a0cd 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -276,8 +276,8 @@ void CTurbSSTSolver::Postprocessing(CGeometry *geometry, CSolver **solver_contai AD::EndNoSharedReading(); } -void CTurbSSTSolver::Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container, - CNumerics* numerics, CConfig* config) { +void CTurbSSTSolver::Viscous_Residual(const unsigned long iEdge, const CGeometry* geometry, CSolver** solver_container, + CNumerics* numerics, const CConfig* config) { /*--- Define an object to set solver specific numerics contribution. ---*/ auto SolverSpecificNumerics = [&](unsigned long iPoint, unsigned long jPoint) { From 572ce65b9e454f0308bbbabbfe049492539d9d1b Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 7 Mar 2024 13:15:29 +0100 Subject: [PATCH 063/287] Added config option for preferential diffusion model --- Common/src/CConfig.cpp | 3 +++ SU2_CFD/src/fluid/CFluidFlamelet.cpp | 6 ++++-- .../laminar_premixed_h2_flame_cfd.cfg | 1 + config_template.cfg | 8 ++++++++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index ef9ce56469f..70d535c02b5 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -2145,6 +2145,9 @@ void CConfig::SetConfig_Options() { /* DESCRIPTION: Names of the user scalar source terms. */ addStringListOption("USER_SOURCE_NAMES", n_user_sources, user_source_names); + /* DESCRIPTION: Enable preferential diffusion for FGM simulations. \n DEFAULT: false */ + addBoolOption("PREFERENTIAL_DIFFUSION", preferential_diffusion, false); + /*!\brief CONV_FILENAME \n DESCRIPTION: Output file convergence history (w/o extension) \n DEFAULT: history \ingroup Config*/ addStringOption("CONV_FILENAME", Conv_FileName, string("history")); /*!\brief BREAKDOWN_FILENAME \n DESCRIPTION: Output file forces breakdown \ingroup Config*/ diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index 06fd814594d..319265d7379 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -98,7 +98,6 @@ CFluidFlamelet::CFluidFlamelet(CConfig* config, su2double value_pressure_operati PreprocessLookUp(config); - config->SetPreferentialDiffusion(PreferentialDiffusion); if (rank == MASTER_NODE) { cout << "Preferential diffusion: " << (PreferentialDiffusion ? "Enabled" : "Disabled") << endl; } @@ -217,7 +216,7 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { val_vars_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH] = beta_enth; val_vars_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_MIXFRAC] = beta_mixfrac; - PreferentialDiffusion = false; + PreferentialDiffusion = config->GetPreferentialDiffusion(); switch (Kind_DataDriven_Method) { case ENUM_DATADRIVEN_METHOD::LUT: PreferentialDiffusion = look_up_table->CheckForVariables(varnames_PD); @@ -236,6 +235,9 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { break; } + if (!PreferentialDiffusion && config->GetPreferentialDiffusion()) + SU2_MPI::Error("Preferential diffusion scalars not included in flamelet manifold.", CURRENT_FUNCTION); + if (Kind_DataDriven_Method == ENUM_DATADRIVEN_METHOD::MLP) { #ifdef USE_MLPCPP iomap_TD = new MLPToolbox::CIOMap(controlling_variable_names, varnames_TD); diff --git a/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg b/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg index b753483f8f3..314a4aae37d 100644 --- a/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg +++ b/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg @@ -33,6 +33,7 @@ DIFFUSIVITY_MODEL= FLAMELET KIND_SCALAR_MODEL= FLAMELET INTERPOLATION_METHOD= MLP FILENAMES_INTERPOLATOR= (MLP_TD.mlp, MLP_PD.mlp, MLP_PPV.mlp, MLP_null.mlp) +PREFERENTIAL_DIFFUSION= YES % -------------------- SCALAR TRANSPORT ---------------------------------------% % diff --git a/config_template.cfg b/config_template.cfg index 6e824a9aa1f..74832ef98db 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -911,6 +911,14 @@ CONTROLLING_VARIABLE_SOURCE_NAMES= (ProdRateTot_PV, NULL) % By default, this option is set to NONE FLAME_INIT_METHOD= FLAME_FRONT +% Enable preferential diffusion for progress variable, total enthalpy, mixture fraction FGM problems. +% If 'YES', the preferential diffusion model from Efimov et al.(2021) is used for computing the viscous residual terms. +% If enabled, make sure the variables "Beta_ProgVar", "Beta_Enth_Thermal", "Beta_Enth", and "Beta_MixFrac", corresponding +% to the preferential diffusion terms of the progress variable, temperature, total enthalpy, and mixture fraction +% respectively are included in the manifold. +% By default, this option is disabled. +PREFERENTIAL_DIFFUSION= NO + % FLAME_FRONT initialization % the flame is initialized using a plane, defined by a point and a normal. On one side, the solution is initialized % using 'burnt' conditions and on the other side 'unburnt' conditions. The normal points in the direction of the 'burnt' From 3cbdef7df751ea12a2f20e4ea8fe445c21001ac8 Mon Sep 17 00:00:00 2001 From: Evert Bunschoten <38651601+EvertBunschoten@users.noreply.github.com> Date: Thu, 7 Mar 2024 13:17:49 +0100 Subject: [PATCH 064/287] Update Common/include/containers/CLookUpTable.hpp Co-authored-by: Nijso --- Common/include/containers/CLookUpTable.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/include/containers/CLookUpTable.hpp b/Common/include/containers/CLookUpTable.hpp index b8d24f5762a..9f06548c377 100644 --- a/Common/include/containers/CLookUpTable.hpp +++ b/Common/include/containers/CLookUpTable.hpp @@ -410,7 +410,7 @@ class CLookUpTable { } /*! - * \brief Check whether provided set of variables are included in the table. + * \brief Check whether requested set of variables are included in the table. */ bool CheckForVariables(const std::vector& vars_to_check); From 7ab2deae1b72f4865103047b6d0c2ba6dbff5a4b Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 7 Mar 2024 13:26:06 +0100 Subject: [PATCH 065/287] Fixed issues from CodeFactor --- TestCases/parallel_regression.py | 36 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 259925d064a..8b1ad47fde7 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1066,8 +1066,8 @@ def main(): axial_stage2D.cfg_dir = "turbomachinery/axial_stage_2D" axial_stage2D.cfg_file = "Axial_stage2D.cfg" axial_stage2D.test_iter = 20 - axial_stage2D.test_vals = [0.983754, 1.534455, -2.888523, 2.606770, -2.418403, 3.087203, 106380, 106380, 5.7325, 64.711] - axial_stage2D.test_vals_aarch64 = [0.983754, 1.534455, -2.888523, 2.606770, -2.418403, 3.087203, 106380, 106380, 5.7325, 64.711] + axial_stage2D.test_vals = [0.983754, 1.534455, -2.888523, 2.606770, -2.418403, 3.087203, 106380, 106380, 5.7325, 64.711] + axial_stage2D.test_vals_aarch64 = [0.983754, 1.534455, -2.888523, 2.606770, -2.418403, 3.087203, 106380, 106380, 5.7325, 64.711] test_list.append(axial_stage2D) # 2D transonic stator restart @@ -1075,7 +1075,7 @@ def main(): transonic_stator_restart.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator_restart.cfg_file = "transonic_stator_restart.cfg" transonic_stator_restart.test_iter = 20 - transonic_stator_restart.test_vals = [-5.011834, -3.091110, -2.757795, 1.087934, -3.544707, 2.166101, -471630, 94.868, -0.035888] + transonic_stator_restart.test_vals = [-5.011834, -3.091110, -2.757795, 1.087934, -3.544707, 2.166101, -471630, 94.868, -0.035888] transonic_stator_restart.test_vals_aarch64 = [-5.011834, -3.091110, -2.757795, 1.087934, -3.544707, 2.166101, -471630, 94.868, -0.035888] test_list.append(transonic_stator_restart) @@ -1571,13 +1571,13 @@ def main(): ##################### # CGNS writer - cgns_writer = TestCase('cgns_writer') - cgns_writer.cfg_dir = "cgns_writer" - cgns_writer.cfg_file = "config.cfg" - cgns_writer.test_iter = 1 - cgns_writer.test_vals = [-2.974473, 0.665204, 5.068846, -7.003873] - cgns_writer.command = TestCase.Command("mpirun -n 2", "SU2_CFD") - cgns_writer.new_output = True + cgns_writer = TestCase('cgns_writer') + cgns_writer.cfg_dir = "cgns_writer" + cgns_writer.cfg_file = "config.cfg" + cgns_writer.test_iter = 1 + cgns_writer.test_vals = [-2.974473, 0.665204, 5.068846, -7.003873] + cgns_writer.command = TestCase.Command("mpirun -n 2", "SU2_CFD") + cgns_writer.new_output = True test_list.append(cgns_writer) ###################################### @@ -1807,14 +1807,14 @@ def main(): test_list.append(sphere_ffd_def_bspline) # Inviscid NACA0012 (triangles) - naca0012_cst = TestCase('naca0012_cst') - naca0012_cst.cfg_dir = "deformation/cst" - naca0012_cst.cfg_file = "naca0012.cfg" - naca0012_cst.test_iter = 10 - naca0012_cst.test_vals = [0.000385514] #residual - naca0012_cst.command = TestCase.Command("mpirun -n 2", "SU2_DEF") - naca0012_cst.timeout = 1600 - naca0012_cst.tol = 1e-8 + naca0012_cst = TestCase('naca0012_cst') + naca0012_cst.cfg_dir = "deformation/cst" + naca0012_cst.cfg_file = "naca0012.cfg" + naca0012_cst.test_iter = 10 + naca0012_cst.test_vals = [0.000385514] #residual + naca0012_cst.command = TestCase.Command("mpirun -n 2", "SU2_DEF") + naca0012_cst.timeout = 1600 + naca0012_cst.tol = 1e-8 pass_list.append(naca0012_cst.run_def()) test_list.append(naca0012_cst) From cd68e3b8b5cf71e72031d79697e87d48f8d8210f Mon Sep 17 00:00:00 2001 From: Josh Kelly <81244680+joshkellyjak@users.noreply.github.com> Date: Tue, 12 Mar 2024 14:56:51 +0000 Subject: [PATCH 066/287] Update aachen_3D_MP.cfg --- TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg index 56535397c54..01c4e31069e 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg @@ -161,7 +161,7 @@ TURBOMACHINERY_KIND= AXIAL AXIAL AXIAL % Uncomment to work with new_turbo_outputs % Specify the machine architecture for performance analysis (TURBINE, COMPRESSOR, PROPELLOR) % -%TURBO_PERF_KIND= (TURBINE, TURBINE, TURBINE) +TURBO_PERF_KIND= (TURBINE, TURBINE, TURBINE) % % Specify kind of interpolation for the mixing-plane (LINEAR_INTERPOLATION, NEAREST_SPAN, MATCHING) MIXINGPLANE_INTERFACE_KIND= LINEAR_INTERPOLATION From 6bc54d28d5c4cab759ec7bc4b43a5979820a75f7 Mon Sep 17 00:00:00 2001 From: alecappiello <149589647+alecappiello@users.noreply.github.com> Date: Tue, 12 Mar 2024 16:33:44 +0100 Subject: [PATCH 067/287] Update aachen_3D_MP_restart.cfg adding TURBO_PERF_KIND --- .../turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg index 482c7955c16..ce76e8a6472 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg @@ -159,7 +159,7 @@ MARKER_SHROUD= (SHROUD1, SHROUD2, SHROUD3) TURBOMACHINERY_KIND= AXIAL AXIAL AXIAL % % Uncomment to work with new_turbo_outputs -%TURBO_PERF_KIND= (TURBINE, TURBINE, TURBINE) +TURBO_PERF_KIND= (TURBINE, TURBINE, TURBINE) % % Specify kind of interpolation for the mixing-plane (LINEAR_INTERPOLATION, NEAREST_SPAN, MATCHING) MIXINGPLANE_INTERFACE_KIND= LINEAR_INTERPOLATION From 5d2a61e4efba3a6148cd15803853f379a3db1ece Mon Sep 17 00:00:00 2001 From: alecappiello <149589647+alecappiello@users.noreply.github.com> Date: Wed, 13 Mar 2024 09:17:20 +0100 Subject: [PATCH 068/287] Update serial_regression.py Update residuals in serial regression --- TestCases/serial_regression.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 31dcd2f5ce5..dab5dd1256f 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -857,8 +857,7 @@ def main(): Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 - Aachen_3D_restart.test_vals = [-15.227701, -14.551669, -15.080787, -13.635771, -12.721746, -9.826153] - Aachen_3D_restart.tol = 0.0001 + Aachen_3D_restart.test_vals = [-15.137167, -14.551444, -15.078894, -13.486154, -12.724891, -9.717612] test_list.append(Aachen_3D_restart) # Jones APU Turbocharger restart From d9c7a7c0b65e13239660ad0d03bdb780c9816c8a Mon Sep 17 00:00:00 2001 From: alecappiello <149589647+alecappiello@users.noreply.github.com> Date: Wed, 13 Mar 2024 09:19:38 +0100 Subject: [PATCH 069/287] Update parallel_regression.py Update residual values in parallel regression test --- TestCases/parallel_regression.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 06aaecf59c2..51b18e48741 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1049,7 +1049,7 @@ def main(): Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 - Aachen_3D_restart.test_vals = [-15.164439, -14.403106, -15.080788, -13.555608, -12.719007, -9.746760] + Aachen_3D_restart.test_vals = [-15.329206, -15.008622, -15.078888, -13.841072, -12.727840, -9.975729] test_list.append(Aachen_3D_restart) # Jones APU Turbocharger restart From 501e0b67132d2cb45b665b3a210e2adf1ea4df51 Mon Sep 17 00:00:00 2001 From: alecappiello <149589647+alecappiello@users.noreply.github.com> Date: Wed, 13 Mar 2024 13:10:34 +0100 Subject: [PATCH 070/287] Update parallel_regression.py fix residual values --- TestCases/parallel_regression.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 51b18e48741..d8a28db6a8e 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1049,7 +1049,7 @@ def main(): Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 - Aachen_3D_restart.test_vals = [-15.329206, -15.008622, -15.078888, -13.841072, -12.727840, -9.975729] + Aachen_3D_restart.test_vals = [-15.063514, -14.406005, -15.078886, -13.390427, -12.718131, -9.631495] test_list.append(Aachen_3D_restart) # Jones APU Turbocharger restart From 4efad8b623823ddb4e09a3734ab7c9cb6d926264 Mon Sep 17 00:00:00 2001 From: alecappiello <149589647+alecappiello@users.noreply.github.com> Date: Thu, 14 Mar 2024 11:06:35 +0100 Subject: [PATCH 071/287] Update parallel_regression.py --- TestCases/parallel_regression.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index d8a28db6a8e..51b18e48741 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1049,7 +1049,7 @@ def main(): Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 - Aachen_3D_restart.test_vals = [-15.063514, -14.406005, -15.078886, -13.390427, -12.718131, -9.631495] + Aachen_3D_restart.test_vals = [-15.329206, -15.008622, -15.078888, -13.841072, -12.727840, -9.975729] test_list.append(Aachen_3D_restart) # Jones APU Turbocharger restart From 53f9b2a7073247945dfaf17c67276a4e5c12fa57 Mon Sep 17 00:00:00 2001 From: alecappiello <149589647+alecappiello@users.noreply.github.com> Date: Thu, 14 Mar 2024 14:26:50 +0100 Subject: [PATCH 072/287] Update aachen_3D_MP_restart.cfg removing unused chauchy criterion --- .../Aachen_turbine/aachen_3D_MP_restart.cfg | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg index ce76e8a6472..97deb468167 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg @@ -298,16 +298,6 @@ CONV_RESIDUAL_MINVAL= -12 % Start convergence criteria at iteration number CONV_STARTITER= 10 % -% Number of elements to apply the criteria -CONV_CAUCHY_ELEMS= 999 -% -% Epsilon to control the series convergence -CONV_CAUCHY_EPS= 1E-6 -% -% Function to apply the criteria (LIFT, DRAG, NEARFIELD_PRESS, SENS_GEOMETRY, -% SENS_MACH, DELTA_LIFT, DELTA_DRAG) -%CAUCHY_FUNC_FLOW= DRAG -% % Screen output fields (use 'SU2_CFD -d ' to view list of available fields) SCREEN_OUTPUT= (OUTER_ITER, RMS_DENSITY[0], RMS_DENSITY[1], RMS_DENSITY[2], RMS_MOMENTUM-X[0], RMS_MOMENTUM-Y[0], RMS_ENERGY[0]) % From 3d78a44b2375b579a825a17dfe6fda5b2b0104ac Mon Sep 17 00:00:00 2001 From: alecappiello <149589647+alecappiello@users.noreply.github.com> Date: Thu, 14 Mar 2024 15:06:30 +0100 Subject: [PATCH 073/287] Update aachen_3D_MP.cfg Removing unused Cauchy convergence criterion --- .../turbomachinery/Aachen_turbine/aachen_3D_MP.cfg | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg index 01c4e31069e..ded976c2abd 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg @@ -300,16 +300,6 @@ CONV_RESIDUAL_MINVAL= -12 % Start convergence criteria at iteration number CONV_STARTITER= 10 % -% Number of elements to apply the criteria -CONV_CAUCHY_ELEMS= 999 -% -% Epsilon to control the series convergence -CONV_CAUCHY_EPS= 1E-6 -% -% Function to apply the criteria (LIFT, DRAG, NEARFIELD_PRESS, SENS_GEOMETRY, -% SENS_MACH, DELTA_LIFT, DELTA_DRAG) -%CAUCHY_FUNC_FLOW= DRAG -% % Screen output fields (use 'SU2_CFD -d ' to view list of available fields) SCREEN_OUTPUT= (OUTER_ITER, RMS_DENSITY[0], RMS_DENSITY[1], RMS_DENSITY[2], RMS_MOMENTUM-X[0], RMS_MOMENTUM-Y[0], RMS_ENERGY[0]) % From a0a7fc64636003de1a337d30fefc3c478c9db7c3 Mon Sep 17 00:00:00 2001 From: alecappiello <149589647+alecappiello@users.noreply.github.com> Date: Fri, 15 Mar 2024 13:24:49 +0100 Subject: [PATCH 074/287] Delete TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg Removing duplicate config --- .../Aachen_turbine/aachen_3D_MP.cfg | 363 ------------------ 1 file changed, 363 deletions(-) delete mode 100644 TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg deleted file mode 100644 index ded976c2abd..00000000000 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP.cfg +++ /dev/null @@ -1,363 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% SU2 configuration file % -% Case description: AACHEN turbine 3D % -% Author: S. Vitale, A. Cappiello % -% Institution: Delft University of Technology % -% Date: Oct 20th, 2023 % -% File Version 8.0 develop % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -% Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, -% POISSON_EQUATION) -SOLVER= RANS -% -% Specify turbulent model (NONE, SA, SST) -KIND_TURB_MODEL= SA -% -% Mathematical problem (DIRECT, ADJOINT, LINEARIZED) -MATH_PROBLEM= DIRECT -% -% Restart solution (NO, YES) -RESTART_SOL= NO -% -MULTIZONE= YES -% -% List of config files for zone-specific options -CONFIG_LIST=(stator1.cfg, rotor.cfg, stator2.cfg) -% -% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% -% -% Mach number (non-dimensional, based on the free-stream values) -MACH_NUMBER= 0.05 -% -% Angle of attack (degrees, only for compressible flows) -AOA= 0.0 -% -% Free-stream pressure (101325.0 N/m^2 by default, only Euler flows) -FREESTREAM_PRESSURE= 140000.0 -% -% Free-stream temperature (273.15 K by default) -FREESTREAM_TEMPERATURE= 300.0 -% -% Free-stream temperature (1.2886 Kg/m3 by default) -FREESTREAM_DENSITY= 1.7418 -% -% Free-stream option to choose if you want to use Density (DENSITY_FS) or Temperature TEMPERATURE_FS) to initialize the solution -FREESTREAM_OPTION= TEMPERATURE_FS -% -% Free-stream Turbulence Intensity -FREESTREAM_TURBULENCEINTENSITY = 0.025 -% -% Free-stream Turbulent to Laminar viscosity ratio -FREESTREAM_TURB2LAMVISCRATIO = 100.0 -% -% -%Init option to choose between Reynolds (default) or thermodynamics quantities for initializing the solution (REYNOLDS, TD_CONDITIONS) -INIT_OPTION= TD_CONDITIONS -% -% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% -% -% Reference origin for moment computation -REF_ORIGIN_MOMENT_X = 0.00 -REF_ORIGIN_MOMENT_Y = 0.00 -REF_ORIGIN_MOMENT_Z = 0.00 -% -% Reference area for force coefficients (0 implies automatic calculation) -REF_AREA= 1.0 -% -% Flow non-dimensionalization (DIMENSIONAL, FREESTREAM_PRESS_EQ_ONE, -% FREESTREAM_VEL_EQ_MACH, FREESTREAM_VEL_EQ_ONE) -REF_DIMENSIONALIZATION= DIMENSIONAL -% -% -% ------------------------------ EQUATION OF STATE ----------------------------% -% -% Different gas model (STANDARD_AIR, IDEAL_GAS, VW_GAS, PR_GAS) -FLUID_MODEL= IDEAL_GAS -% -% Ratio of specific heats (1.4 default and the value is hardcoded for the model STANDARD_AIR) -GAMMA_VALUE= 1.4 -% -% Specific gas constant (287.058 J/kg*K default and this value is hardcoded for the model STANDARD_AIR) -GAS_CONSTANT= 287.058 -% -% Critical Temperature (273.15 K by default) -CRITICAL_TEMPERATURE= 273.15 -% -% Critical Pressure (101325.0 N/m^2 by default) -CRITICAL_PRESSURE= 101325.0 -% -% Acentri factor (0.035 (air)) -ACENTRIC_FACTOR= 0.035 -% -% --------------------------- VISCOSITY MODEL ---------------------------------% -% -% Viscosity model (SUTHERLAND, CONSTANT_VISCOSITY). -VISCOSITY_MODEL= SUTHERLAND -% -% Molecular Viscosity that would be constant (1.716E-5 by default) -MU_CONSTANT= 1.716E-5 -% -% Sutherland Viscosity Ref (1.716E-5 default value for AIR SI) -MU_REF= 1.716E-5 -% -% Sutherland Temperature Ref (273.15 K default value for AIR SI) -MU_T_REF= 273.15 -% -% Sutherland constant (110.4 default value for AIR SI) -SUTHERLAND_CONSTANT= 110.4 -% -% --------------------------- THERMAL CONDUCTIVITY MODEL ----------------------% -% -% Conductivity model (CONSTANT_CONDUCTIVITY, CONSTANT_PRANDTL). -CONDUCTIVITY_MODEL= CONSTANT_PRANDTL -% -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% -%Navier-Stokes wall boundary marker(s) (NONE = no marker) -MARKER_HEATFLUX= (BLADE1, 0.0, BLADE2, 0.0, BLADE3, 0.0, HUB1, 0.0, SHROUD1, 0.0, HUB2, 0.0, SHROUD2, 0.0, HUB3, 0.0, SHROUD3, 0.0) -% -% Periodic boundary marker(s) (NONE = no marker) -% Format: ( periodic marker, donor marker, rot_cen_x, rot_cen_y, rot_cen_z, rot_angle_x-axis, rot_angle_y-axis, rot_angle_z-axis, translation_x, translation_y, translation_z) -MARKER_PERIODIC= (PER1_STATOR1, PER2_STATOR1, 0.0, 0.0, 0.0, 0.0, 0.0, 8.7804878, 0.0, 0.0, 0.0, PER1_ROTOR, PER2_ROTOR, 0.0, 0.0, 0.0, 0.0, 0.0, 8.7804878, 0.0, 0.0, 0.0, PER1_STATOR2, PER2_STATOR2, 0.0, 0.0, 0.0, 0.0, 0.0, 8.7804878, 0.0, 0.0, 0.0) -% -% -%-------- INFLOW/OUTFLOW BOUNDARY CONDITION SPECIFIC FOR TURBOMACHINERY --------% -% -% Inflow and Outflow markers must be specified, for each blade (zone), following the natural groth of the machine (i.e, from the first blade to the last) -MARKER_TURBOMACHINERY= (INFLOW_STATOR1, OUTFLOW_STATOR1, INFLOW_ROTOR, OUTFLOW_ROTOR, INFLOW_STATOR2, OUTFLOW_STATOR2) -MARKER_ANALYZE = (INFLOW_STATOR1, OUTFLOW_STATOR2) -% Mixing-plane interface markers must be specified to activate the transfer of information between zones -MARKER_MIXINGPLANE_INTERFACE= (OUTFLOW_STATOR1, INFLOW_ROTOR, OUTFLOW_ROTOR, INFLOW_STATOR2) -% Mixing-plane interface markers must be specified to activate the transfer of information between zones -MARKER_ZONE_INTERFACE= (OUTFLOW_STATOR1, INFLOW_ROTOR, OUTFLOW_ROTOR, INFLOW_STATOR2) -% -% Non reflecting boundary condition for inflow, outfolw and mixing-plane -% Format inlet: ( marker, TOTAL_CONDITIONS_PT, Total Pressure , Total Temperature, Flow dir-norm, Flow dir-tang, Flow dir-span, under-relax-avg, under-relax-fourier) -% Format outlet: ( marker, STATIC_PRESSURE, Static Pressure value, -, -, -, -, under-relax-avg, under-relax-fourier) -% Format mixing-plane in and out: ( marker, MIXING_IN or MIXING_OUT, -, -, -, -, -, -, under-relax-avg, under-relax-fourier) -MARKER_GILES= (INFLOW_STATOR1, TOTAL_CONDITIONS_PT, 158245.38, 308.26, 1.0, 0.0, 0.0, 0.3, 0.0, OUTFLOW_STATOR1, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, INFLOW_ROTOR, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, OUTFLOW_ROTOR, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, INFLOW_STATOR2, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, OUTFLOW_STATOR2, STATIC_PRESSURE_1D, 110050.96, 0.0, 0.0, 0.0, 0.0 , 1.0, 0.0) -SPATIAL_FOURIER= NO -% -% This option insert an extra under relaxation factor for the Giles BC at the hub and shroud levels -GILES_EXTRA_RELAXFACTOR= (0.05, 0.05) -% -%---------------------------- TURBOMACHINERY SIMULATION -----------------------------% -% -% Format: (marker) -% If the ROTATING_FRAME option is activated, this option force -% the velocity on the boundaries specified to 0.0 -MARKER_SHROUD= (SHROUD1, SHROUD2, SHROUD3) -% -% Specify kind of architecture (AXIAL, CENTRIPETAL, CENTRIFUGAL, CENTRIPETAL_AXIAL) -TURBOMACHINERY_KIND= AXIAL AXIAL AXIAL -% -% Uncomment to work with new_turbo_outputs -% Specify the machine architecture for performance analysis (TURBINE, COMPRESSOR, PROPELLOR) -% -TURBO_PERF_KIND= (TURBINE, TURBINE, TURBINE) -% -% Specify kind of interpolation for the mixing-plane (LINEAR_INTERPOLATION, NEAREST_SPAN, MATCHING) -MIXINGPLANE_INTERFACE_KIND= LINEAR_INTERPOLATION -% -% Specify option for turbulent mixing-plane (YES, NO) default NO -TURBULENT_MIXINGPLANE= YES -% -% Specify ramp option for Outlet pressure (YES, NO) default NO -RAMP_OUTLET_PRESSURE= NO -% -% Parameters of the outlet pressure ramp (starting outlet pressure, updating-iteration-frequency, total number of iteration for the ramp) -RAMP_OUTLET_PRESSURE_COEFF= (140000.0, 10.0, 2000) -% -% Specify Kind of average process for linearizing the Navier-Stokes equation at inflow and outflow BC included mixing-plane -% (ALGEBRAIC, AREA, MASSSFLUX, MIXEDOUT) default AREA -AVERAGE_PROCESS_KIND= MIXEDOUT -% -% Specify Kind of average process for computing turbomachienry performance parameters -% (ALGEBRAIC, AREA, MASSSFLUX, MIXEDOUT) default AREA -PERFORMANCE_AVERAGE_PROCESS_KIND= MIXEDOUT -% -%Parameters of the Newton method for the MIXEDOUT average algorithm (under relaxation factor, tollerance, max number of iterations) -MIXEDOUT_COEFF= (1.0, 1.0E-05, 15) -% -% Limit of Mach number below which the mixedout algorithm is substituted with a AREA average algorithm -AVERAGE_MACH_LIMIT= 0.03 -% -% -% ------------------------ SURFACES IDENTIFICATION ----------------------------% -% -% Marker(s) of the surface in the surface flow solution file -MARKER_PLOTTING= (BLADE1, BLADE2, BLADE3) -MARKER_MONITORING= (BLADE1, BLADE2, BLADE3) -% -% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% -% -% Numerical method for spatial gradients (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES) -NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -% -% Courant-Friedrichs-Lewy condition of the finest grid -CFL_NUMBER= 10 -% -% Adaptive CFL number (NO, YES) -CFL_ADAPT= NO -% -% Parameters of the adaptive CFL number (factor down, factor up, CFL min value, CFL max value ) -CFL_ADAPT_PARAM= ( 1.3, 1.2, 1.0, 10.0) -% -% -% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% -% -% Linear solver or smoother for implicit formulations (BCGSTAB, FGMRES, SMOOTHER_JACOBI, SMOOTHER_ILU0, SMOOTHER_LUSGS, SMOOTHER_LINELET) -LINEAR_SOLVER= FGMRES -% -% Preconditioner of the Krylov linear solver (ILU, LU_SGS, LINELET, JACOBI) -LINEAR_SOLVER_PREC= LU_SGS -% -% Min error of the linear solver for the implicit formulation -LINEAR_SOLVER_ERROR= 1E-4 -% -% Max number of iterations of the linear solver for the implicit formulation -LINEAR_SOLVER_ITER= 15 -% -% ----------------------- SLOPE LIMITER DEFINITION ----------------------------% -% -% Coefficient for the limiter -VENKAT_LIMITER_COEFF= 0.01 -% -% Freeze the value of the limiter after a number of iterations -LIMITER_ITER= 999999 -% -% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% -% -% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, -% TURKEL_PREC, MSW) -CONV_NUM_METHOD_FLOW= ROE -ENTROPY_FIX_COEFF= 0.001 -% -JST_SENSOR_COEFF= ( 0.5, 0.25 ) -% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) -MUSCL_FLOW= NO -% -% Slope limiter (VENKATAKRISHNAN, VAN_ALBADA) -SLOPE_LIMITER_FLOW= VENKATAKRISHNAN -% -% -% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) -TIME_DISCRE_FLOW= EULER_IMPLICIT -% -% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% -% -% Convective numerical method (SCALAR_UPWIND) -CONV_NUM_METHOD_TURB= SCALAR_UPWIND -% -% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) -MUSCL_TURB= NO -% -% Slope limiter (VENKATAKRISHNAN, MINMOD) -SLOPE_LIMITER_TURB= VENKATAKRISHNAN -% -% Time discretization (EULER_IMPLICIT) -TIME_DISCRE_TURB= EULER_IMPLICIT -% -% Reduction factor of the CFL coefficient in the turbulence problem -CFL_REDUCTION_TURB= 0.1 -% -% ----------------------- DESIGN VARIABLE PARAMETERS --------------------------% -% -% Kind of deformation (NO_DEFORMATION, TRANSLATION, ROTATION, SCALE, -% FFD_SETTING, FFD_NACELLE -% FFD_CONTROL_POINT, FFD_CAMBER, FFD_THICKNESS, FFD_TWIST -% FFD_CONTROL_POINT_2D, FFD_CAMBER_2D, FFD_THICKNESS_2D, FFD_TWIST_2D, -% HICKS_HENNE, SURFACE_BUMP) -DV_KIND= NO_DEFORMATION -% -% Marker of the surface in which we are going apply the shape deformation -DV_MARKER= (BLADE1, BLADE2, BLADE3) -% -% Parameters of the shape deformation -DV_PARAM= ( 1, 0.5) -% -% Value of the shape deformation -DV_VALUE= 0.01 -% -% --------------------------- CONVERGENCE PARAMETERS --------------------------% -% -% Number of total iterations -OUTER_ITER=30000 -% -% Convergence criteria (CAUCHY, RESIDUAL) -CONV_FIELD=RMS_ENERGY[0] -% -% Min value of the residual (log10 of the residual) -CONV_RESIDUAL_MINVAL= -12 -% -% Start convergence criteria at iteration number -CONV_STARTITER= 10 -% -% Screen output fields (use 'SU2_CFD -d ' to view list of available fields) -SCREEN_OUTPUT= (OUTER_ITER, RMS_DENSITY[0], RMS_DENSITY[1], RMS_DENSITY[2], RMS_MOMENTUM-X[0], RMS_MOMENTUM-Y[0], RMS_ENERGY[0]) -% -% History output groups (use 'SU2_CFD -d ' to view list of available fields) -HISTORY_OUTPUT= (ITER, RMS_RES, TURBO_PERF) -% -% Volume output fields/groups (use 'SU2_CFD -d ' to view list of available fields) -VOLUME_OUTPUT= (COORDINATES, SOLUTION, PRIMITIVE, TURBOMACHINERY, RESIDUAL, LIMITER, VORTEX_IDENTIFICATION) -% -OUTPUT_FILES= (TECPLOT_ASCII, SURFACE_TECPLOT_ASCII, RESTART) -% -% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% -% -% Mesh input file -MESH_FILENAME= Aachen_3D_41_blade_coarse.su2 -% -% Mesh input file format (SU2, CGNS, NETCDF_ASCII) -MESH_FORMAT= SU2 -% -% Mesh output file -MESH_OUT_FILENAME= Aachen_3D_41_blade_coarse.su2 -% -% Restart flow input file -SOLUTION_FILENAME= restart_flow.dat -% -% Restart adjoint input file -SOLUTION_ADJ_FILENAME= restart_adj.dat -% -% Output file format (PARAVIEW, TECPLOT, STL) -TABULAR_FORMAT= TECPLOT -% -% Output file convergence history (w/o extension) -CONV_FILENAME= history -% -% Output file restart flow -RESTART_FILENAME= restart_flow.dat -% -% Output file restart adjoint -RESTART_ADJ_FILENAME= restart_adj.dat -% -% Output file flow (w/o extension) variables -VOLUME_FILENAME= flow -% -% Output file adjoint (w/o extension) variables -VOLUME_ADJ_FILENAME= adjoint -% -% Output objective function gradient (using continuous adjoint) -GRAD_OBJFUNC_FILENAME= of_grad.dat -% -% Output file surface flow coefficient (w/o extension) -SURFACE_FILENAME= surface_flow -% -% Output file surface adjoint coefficient (w/o extension) -SURFACE_ADJ_FILENAME= surface_adjoint -% -% Writing solution file frequency -OUTPUT_WRT_FREQ= 500 -% -% Writing convergence history frequency -HISTORY_WRT_FREQ_OUTER= 1 -WRT_ZONE_HIST = YES From a4030aa5f0b3037c91aa61c4c6144a60e9d3b465 Mon Sep 17 00:00:00 2001 From: alecappiello <149589647+alecappiello@users.noreply.github.com> Date: Fri, 15 Mar 2024 13:29:18 +0100 Subject: [PATCH 075/287] Update aachen_3D_MP_restart.cfg leaner config file --- .../Aachen_turbine/aachen_3D_MP_restart.cfg | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg index 97deb468167..b1096952f78 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg @@ -12,9 +12,7 @@ % % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % -% Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, -% POISSON_EQUATION) +% Physical governing equations SOLVER= RANS % % Specify turbulent model (NONE, SA, SST) @@ -71,8 +69,7 @@ REF_ORIGIN_MOMENT_Z = 0.00 % Reference area for force coefficients (0 implies automatic calculation) REF_AREA= 1.0 % -% Flow non-dimensionalization (DIMENSIONAL, FREESTREAM_PRESS_EQ_ONE, -% FREESTREAM_VEL_EQ_MACH, FREESTREAM_VEL_EQ_ONE) +% Flow non-dimensionalization REF_DIMENSIONALIZATION= DIMENSIONAL % % @@ -211,7 +208,7 @@ CFL_ADAPT_PARAM= ( 1.3, 1.2, 1.0, 10.0) % % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% % -% Linear solver or smoother for implicit formulations (BCGSTAB, FGMRES, SMOOTHER_JACOBI, SMOOTHER_ILU0, SMOOTHER_LUSGS, SMOOTHER_LINELET) +% Linear solver or smoother for implicit formulations LINEAR_SOLVER= FGMRES % % Preconditioner of the Krylov linear solver (ILU, LU_SGS, LINELET, JACOBI) @@ -233,13 +230,12 @@ LIMITER_ITER= 999999 % % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % -% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, -% TURKEL_PREC, MSW) +% Convective numerical method CONV_NUM_METHOD_FLOW= ROE ENTROPY_FIX_COEFF= 0.001 % JST_SENSOR_COEFF= ( 0.5, 0.25 ) -% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) +% Spatial numerical order integration MUSCL_FLOW= NO % % Slope limiter (VENKATAKRISHNAN, VAN_ALBADA) @@ -254,7 +250,7 @@ TIME_DISCRE_FLOW= EULER_IMPLICIT % Convective numerical method (SCALAR_UPWIND) CONV_NUM_METHOD_TURB= SCALAR_UPWIND % -% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) +% Spatial numerical order integration MUSCL_TURB= NO % % Slope limiter (VENKATAKRISHNAN, MINMOD) @@ -314,7 +310,7 @@ OUTPUT_FILES= (TECPLOT_ASCII, SURFACE_TECPLOT_ASCII, RESTART) % Mesh input file MESH_FILENAME= Aachen_3D_41_blade_coarse.su2 % -% Mesh input file format (SU2, CGNS, NETCDF_ASCII) +% Mesh input file format MESH_FORMAT= SU2 % % Mesh output file @@ -326,7 +322,7 @@ SOLUTION_FILENAME= restart_flow.dat % Restart adjoint input file SOLUTION_ADJ_FILENAME= restart_adj.dat % -% Output file format (PARAVIEW, TECPLOT, STL) +% Output file format TABULAR_FORMAT= TECPLOT % % Output file convergence history (w/o extension) From 3de48742ca0b4d3e91920d1884aaa342602d6b48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Fri, 15 Mar 2024 13:54:51 +0100 Subject: [PATCH 076/287] Workaround for ASLR/tsan incompatibility. --- .github/workflows/regression.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index d0c9b6519ef..c001fedf53f 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -88,6 +88,8 @@ jobs: # flags: '--buildtype=debug -Denable-directdiff=true -Denable-normal=false -Dwith-omp=true -Denable-mixedprec=true -Denable-pywrapper=true -Denable-tecio=false --warnlevel=3 --werror' runs-on: ${{ inputs.runner || 'ubuntu-latest' }} steps: + - name: Reduce ASLR entropy for tsan + run: sudo sysctl -w vm.mmap_rnd_bits=28 - name: Cache Object Files uses: actions/cache@v4 with: @@ -187,6 +189,8 @@ jobs: matrix: testscript: ['hybrid_regression.py', 'hybrid_regression_AD.py'] steps: + - name: Reduce ASLR entropy for tsan + run: sudo sysctl -w vm.mmap_rnd_bits=28 - name: Pre Cleanup uses: docker://ghcr.io/su2code/su2/test-su2-tsan:230813-0103 with: From f33b3addba4d929c55b02e4fbfe024233c54d93a Mon Sep 17 00:00:00 2001 From: alecappiello <149589647+alecappiello@users.noreply.github.com> Date: Fri, 15 Mar 2024 13:57:31 +0100 Subject: [PATCH 077/287] Update aachen_3D_MP_restart.cfg Removing file version from config --- .../turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg index b1096952f78..9d96f859684 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg @@ -4,8 +4,7 @@ % Case description: AACHEN turbine 3D % % Author: S. Vitale, A. Cappiello % % Institution: Delft University of Technology % -% Date: Oct 20th, 2023 % -% File Version 8.0 develop % +% Date: Oct 20th, 2023 % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % From 958f67cfe4bf516e9efb69e7744fbb67462fcf32 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Fri, 15 Mar 2024 17:54:25 +0100 Subject: [PATCH 078/287] Added gprof profiling option --- SU2_CFD/src/meson.build | 14 +++++++++++--- meson_options.txt | 3 ++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/SU2_CFD/src/meson.build b/SU2_CFD/src/meson.build index 43e8aaed5de..3b40822a34f 100644 --- a/SU2_CFD/src/meson.build +++ b/SU2_CFD/src/meson.build @@ -189,6 +189,11 @@ su2_cfd_src += files(['iteration/CIteration.cpp', su2_cfd_src += files(['limiters/CLimiterDetails.cpp']) +profiling_args = [] +if get_option('enable-gprof') + profiling_args = ['-pg','-no-pie'] +endif + if get_option('enable-normal') su2_cfd_lib = static_library('SU2core', su2_cfd_src, @@ -201,7 +206,8 @@ if get_option('enable-normal') 'SU2_CFD.cpp', install : true, dependencies : [su2_cfd_dep, su2_deps, common_dep], - cpp_args: ['-fPIC'] + [default_warning_flags, su2_cpp_args]) + cpp_args: ['-fPIC'] + [default_warning_flags, su2_cpp_args] + profiling_args, + link_args: profiling_args) endif if get_option('enable-autodiff') @@ -216,7 +222,8 @@ if get_option('enable-autodiff') 'SU2_CFD.cpp', install : true, dependencies : [su2_cfd_dep_ad, su2_deps, codi_dep, commonAD_dep], - cpp_args: ['-fPIC'] + [default_warning_flags, su2_cpp_args, codi_rev_args]) + cpp_args: ['-fPIC'] + [default_warning_flags, su2_cpp_args, codi_rev_args] + profiling_args, + link_args: profiling_args) endif if get_option('enable-directdiff') @@ -231,6 +238,7 @@ if get_option('enable-directdiff') 'SU2_CFD.cpp', install : true, dependencies : [su2_cfd_dep_dd, su2_deps, codi_dep, commonDD_dep], - cpp_args: ['-fPIC'] + [default_warning_flags, su2_cpp_args, codi_for_args]) + cpp_args: ['-fPIC'] + [default_warning_flags, su2_cpp_args, codi_for_args] + profiling_args, + link_args: profiling_args) endif diff --git a/meson_options.txt b/meson_options.txt index 7b2902bba0b..08fbac80669 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -20,7 +20,8 @@ option('extra-deps', type : 'string', value : '', description: 'comma-separated option('enable-mpp', type : 'boolean', value : false, description: 'enable Mutation++ support') option('install-mpp', type : 'boolean', value : false, description: 'install Mutation++ in the directory defined with --prefix') option('enable-coolprop', type : 'boolean', value : false, description: 'enable CoolProp support') -option('enable-mlpcpp', type : 'boolean', value : false, description: 'enable MLPCpp support') +option('enable-mlpcpp', type : 'boolean', value : false, description: 'enable profiling through gprof') +option('enable-gprof', type : 'boolean', value : false, description: 'enable MLPCpp support') option('opdi-backend', type : 'combo', choices : ['auto', 'macro', 'ompt'], value : 'auto', description: 'OpDiLib backend choice') option('codi-tape', type : 'combo', choices : ['JacobianLinear', 'JacobianReuse', 'JacobianMultiUse', 'PrimalLinear', 'PrimalReuse', 'PrimalMultiUse'], value : 'JacobianLinear', description: 'CoDiPack tape choice') option('opdi-shared-read-opt', type : 'boolean', value : true, description : 'OpDiLib shared reading optimization') From 8b039ab044eaff2264af73926482d4505a051865 Mon Sep 17 00:00:00 2001 From: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> Date: Fri, 15 Mar 2024 18:07:42 +0000 Subject: [PATCH 079/287] Update TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg --- .../turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg index 9d96f859684..2f4eb415a16 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg @@ -4,7 +4,7 @@ % Case description: AACHEN turbine 3D % % Author: S. Vitale, A. Cappiello % % Institution: Delft University of Technology % -% Date: Oct 20th, 2023 % % +% Date: Oct 20th, 2023 % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % From 9cfed5f48a0532eb8752bf7a7a049adaea2730d7 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 18 Mar 2024 08:57:57 +0100 Subject: [PATCH 080/287] Commit to restart GitHub checks --- SU2_CFD/src/fluid/CFluidFlamelet.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index b4991e96c21..3e7c67c2c72 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -54,7 +54,7 @@ CFluidFlamelet::CFluidFlamelet(CConfig* config, su2double value_pressure_operati for (auto iCV = 0u; iCV < n_control_vars; iCV++) table_scalar_names[iCV] = config->GetControllingVariableName(iCV); /*--- auxiliary species transport equations---*/ - for (size_t i_aux = 0; i_aux < n_user_scalars; i_aux++) { + for (auto i_aux = 0u; i_aux < n_user_scalars; i_aux++) { table_scalar_names[n_control_vars + i_aux] = config->GetUserScalarName(i_aux); } From b7fe75717d7dbe42445f68ce10286f31dcc11e17 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 19 Mar 2024 16:52:13 +0000 Subject: [PATCH 081/287] Fix in mass flow outlet calculation --- SU2_CFD/src/solvers/CEulerSolver.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 3fd6cbe3752..eeae8d30c3b 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -9085,7 +9085,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC const auto nSpanWiseSections = config->GetnSpanWiseSections(); for (auto iSpan= 0; iSpan < nSpanWiseSections + 1; iSpan++){ - su2double TotalDensity{0}, TotalPressure{0}, TotalNu{0}, TotalOmega{0}, TotalKine{0}, TotalVelocity[MAXNDIM], + su2double TotalDensity{0}, TotalPressure{0}, TotalNu{0}, TotalOmega{0}, TotalKine{0}, TotalVelocity[MAXNDIM], TotalMomentumThrust{0}, TotalAreaDensity{0}, TotalAreaPressure{0}, TotalAreaNu{0}, TotalAreaOmega{0}, TotalAreaKine{0}, TotalAreaVelocity[MAXNDIM], TotalMassDensity{0}, TotalMassPressure{0}, TotalMassNu{0}, TotalMassOmega{0}, TotalMassKine{0}, TotalMassVelocity[MAXNDIM]; @@ -9127,7 +9127,8 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC TotalMassPressure += Area*(Density*TurboVelocity[0] )*Pressure; TotalMassDensity += Area*(Density*TurboVelocity[0] )*Density; - + TotalMomentumThrust += Area*(Density*TurboVelocity[0]*TurboVelocity[0]); + for (auto iDim = 0u; iDim < nDim; iDim++) { TotalVelocity[iDim] += Velocity[iDim]; TotalAreaVelocity[iDim] += Area*Velocity[iDim]; @@ -9205,6 +9206,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC TotalAreaPressure = Allreduce(TotalAreaPressure); TotalMassDensity = Allreduce(TotalMassDensity); TotalMassPressure = Allreduce(TotalMassPressure); + TotalMomentumThrust = Allreduce(TotalMomentumThrust); TotalNu = Allreduce(TotalNu); TotalKine = Allreduce(TotalKine); @@ -9251,7 +9253,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC /*--- Compute the averaged value for the boundary of interest for the span of interest ---*/ const bool belowMachLimit = (abs(MachTest)< config->GetAverageMachLimit()); - su2double avgDensity{0}, avgPressure{0}, avgKine{0}, avgOmega{0}, avgNu{0}, + su2double avgDensity{0}, avgPressure{0}, avgKine{0}, avgOmega{0}, avgNu{0}, avgMomThrust{0}, avgVelocity[MAXNDIM] = {0}; for (auto iVar = 0u; iVarGetKind_TurboMachinery(iZone)); } - AveragePressureForce[iMarker] = AveragePressure[iMarker][iSpan]; - AverageMassFlowRate[iMarker] = TotalFluxes[0]; - AverageMomentumThrust[iMarker] = TotalFluxes[0]*TurboVel[0]; } } } // iMarkerTP From 9c4e37aacfd5f5c788fee495b46ca9f7cbcfe3f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 21 Mar 2024 11:00:54 +0100 Subject: [PATCH 082/287] Update container image tags. --- .github/workflows/regression.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index c001fedf53f..1b28776de3b 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -52,12 +52,12 @@ jobs: key: ${{ matrix.config_set }}-${{ github.sha }} restore-keys: ${{ matrix.config_set }} - name: Pre Cleanup - uses: docker://ghcr.io/su2code/su2/build-su2:230813-0103 + uses: docker://ghcr.io/su2code/su2/build-su2:240320-1536 with: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} - name: Build - uses: docker://ghcr.io/su2code/su2/build-su2:230813-0103 + uses: docker://ghcr.io/su2code/su2/build-su2:240320-1536 with: args: -b ${{github.ref}} -f "${{matrix.flags}}" - name: Compress binaries @@ -68,7 +68,7 @@ jobs: name: ${{ matrix.config_set }} path: install_bin.tgz - name: Post Cleanup - uses: docker://ghcr.io/su2code/su2/build-su2:230813-0103 + uses: docker://ghcr.io/su2code/su2/build-su2:240320-1536 with: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} @@ -97,12 +97,12 @@ jobs: key: ${{ matrix.config_set }}-${{ github.sha }} restore-keys: ${{ matrix.config_set }} - name: Pre Cleanup - uses: docker://ghcr.io/su2code/su2/build-su2-tsan:230813-0103 + uses: docker://ghcr.io/su2code/su2/build-su2-tsan:240320-1536 with: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} - name: Build - uses: docker://ghcr.io/su2code/su2/build-su2-tsan:230813-0103 + uses: docker://ghcr.io/su2code/su2/build-su2-tsan:240320-1536 with: args: -b ${{github.ref}} -f "${{matrix.flags}}" - name: Compress binaries @@ -113,7 +113,7 @@ jobs: name: ${{ matrix.config_set }} path: install_bin.tgz - name: Post Cleanup - uses: docker://ghcr.io/su2code/su2/build-su2-tsan:230813-0103 + uses: docker://ghcr.io/su2code/su2/build-su2-tsan:240320-1536 with: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} @@ -144,7 +144,7 @@ jobs: tag: OMP steps: - name: Pre Cleanup - uses: docker://ghcr.io/su2code/su2/test-su2:230813-0103 + uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} @@ -170,12 +170,12 @@ jobs: chmod a+x $BIN_FOLDER/* ls -lahR $BIN_FOLDER - name: Run Tests in Container - uses: docker://ghcr.io/su2code/su2/test-su2:230813-0103 + uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: # -t -c args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} - name: Cleanup - uses: docker://ghcr.io/su2code/su2/test-su2:230813-0103 + uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} @@ -192,7 +192,7 @@ jobs: - name: Reduce ASLR entropy for tsan run: sudo sysctl -w vm.mmap_rnd_bits=28 - name: Pre Cleanup - uses: docker://ghcr.io/su2code/su2/test-su2-tsan:230813-0103 + uses: docker://ghcr.io/su2code/su2/test-su2-tsan:240320-1536 with: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} @@ -218,12 +218,12 @@ jobs: chmod a+x $BIN_FOLDER/* ls -lahR $BIN_FOLDER - name: Run Tests in Container - uses: docker://ghcr.io/su2code/su2/test-su2-tsan:230813-0103 + uses: docker://ghcr.io/su2code/su2/test-su2-tsan:240320-1536 with: # -t -c args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} -a "--tsan" - name: Cleanup - uses: docker://ghcr.io/su2code/su2/test-su2-tsan:230813-0103 + uses: docker://ghcr.io/su2code/su2/test-su2-tsan:240320-1536 with: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} @@ -244,7 +244,7 @@ jobs: tag: MPI steps: - name: Pre Cleanup - uses: docker://ghcr.io/su2code/su2/test-su2:230813-0103 + uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} @@ -305,11 +305,11 @@ jobs: echo $PWD ls -lahR - name: Run Unit Tests - uses: docker://ghcr.io/su2code/su2/test-su2:230813-0103 + uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: entrypoint: install/bin/${{matrix.testdriver}} - name: Post Cleanup - uses: docker://ghcr.io/su2code/su2/test-su2:230813-0103 + uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} From c2a2c572661cce158eb6b2cb2da1a6932bc5543a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 21 Mar 2024 14:15:45 +0100 Subject: [PATCH 083/287] Add job for building SU2 with the address sanitizer. --- .github/workflows/regression.yml | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 1b28776de3b..d1126341605 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -117,6 +117,46 @@ jobs: with: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} + build_asan: + name: Build SU2 (asan) + strategy: + fail-fast: false + matrix: + config_set: [BaseNoMPI-asan, ReverseNoMPI-asan] + include: + - config_set: BaseNoMPI-asan + flags: '--buildtype=debugoptimized -Denable-pywrapper=true -Denable-openblas=true -Dwith-mpi=disabled -Denable-mlpcpp=true -Denable-tests=true --warnlevel=3 --werror' + - config_set: ReverseNoMPI-asan + flags: '--buildtype=debugoptimized -Denable-autodiff=true -Denable-normal=false -Dwith-mpi=disabled -Denable-pywrapper=true -Denable-tests=true --warnlevel=3 --werror' + runs-on: ${{ inputs.runner || 'ubuntu-latest' }} + steps: + - name: Reduce ASLR entropy for asan + run: sudo sysctl -w vm.mmap_rnd_bits=28 + - name: Cache Object Files + uses: actions/cache@v4 + with: + path: ccache + key: ${{ matrix.config_set }}-${{ github.sha }} + restore-keys: ${{ matrix.config_set }} + - name: Pre Cleanup + uses: docker://ghcr.io/su2code/su2/build-su2-asan:240320-1536 + with: + entrypoint: /bin/rm + args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} + - name: Build + run: docker run --rm -it --cap-add=SYS_PTRACE -v $(pwd):/${{ github.workspace }} -w ${{ github.workspace }} ghcr.io/su2code/su2/build-su2-asan:240320-1536 -b ${{github.ref}} -f "${{matrix.flags}}" + - name: Compress binaries + run: tar -zcvf install_bin.tgz install/* + - name: Upload Binaries + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.config_set }} + path: install_bin.tgz + - name: Post Cleanup + uses: docker://ghcr.io/su2code/su2/build-su2-asan:240320-1536 + with: + entrypoint: /bin/rm + args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} regression_tests: runs-on: ${{ inputs.runner || 'ubuntu-latest' }} name: Regression Tests From 5ff2348da749023b7a271882c3954a7db5a2a539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 21 Mar 2024 14:33:13 +0100 Subject: [PATCH 084/287] Fix. --- .github/workflows/regression.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index d1126341605..ce0aa58bd90 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -144,7 +144,7 @@ jobs: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} - name: Build - run: docker run --rm -it --cap-add=SYS_PTRACE -v $(pwd):/${{ github.workspace }} -w ${{ github.workspace }} ghcr.io/su2code/su2/build-su2-asan:240320-1536 -b ${{github.ref}} -f "${{matrix.flags}}" + run: docker run --rm --cap-add=SYS_PTRACE -v $(pwd):/${{ github.workspace }} -w ${{ github.workspace }} ghcr.io/su2code/su2/build-su2-asan:240320-1536 -b ${{github.ref}} -f "${{matrix.flags}}" - name: Compress binaries run: tar -zcvf install_bin.tgz install/* - name: Upload Binaries From bc6362f4b3063412c410872f8de995ae698cbeb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 21 Mar 2024 14:56:22 +0100 Subject: [PATCH 085/287] Remove slash. --- .github/workflows/regression.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index ce0aa58bd90..fdf619a57cb 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -144,7 +144,7 @@ jobs: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} - name: Build - run: docker run --rm --cap-add=SYS_PTRACE -v $(pwd):/${{ github.workspace }} -w ${{ github.workspace }} ghcr.io/su2code/su2/build-su2-asan:240320-1536 -b ${{github.ref}} -f "${{matrix.flags}}" + run: docker run --rm --cap-add=SYS_PTRACE -v $(pwd):${{ github.workspace }} -w ${{ github.workspace }} ghcr.io/su2code/su2/build-su2-asan:240320-1536 -b ${{github.ref}} -f "${{matrix.flags}}" - name: Compress binaries run: tar -zcvf install_bin.tgz install/* - name: Upload Binaries From 3c32cd4f7d007dc14c9b47108c3796d653577aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Fri, 22 Mar 2024 13:08:08 +0100 Subject: [PATCH 086/287] Address sanitizer builds without python wrapper and unit tests. --- .github/workflows/regression.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index fdf619a57cb..29d47f6bccd 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -125,9 +125,9 @@ jobs: config_set: [BaseNoMPI-asan, ReverseNoMPI-asan] include: - config_set: BaseNoMPI-asan - flags: '--buildtype=debugoptimized -Denable-pywrapper=true -Denable-openblas=true -Dwith-mpi=disabled -Denable-mlpcpp=true -Denable-tests=true --warnlevel=3 --werror' + flags: '--buildtype=debugoptimized -Denable-pywrapper=true -Denable-openblas=true -Dwith-mpi=disabled -Denable-mlpcpp=true --warnlevel=3 --werror' - config_set: ReverseNoMPI-asan - flags: '--buildtype=debugoptimized -Denable-autodiff=true -Denable-normal=false -Dwith-mpi=disabled -Denable-pywrapper=true -Denable-tests=true --warnlevel=3 --werror' + flags: '--buildtype=debugoptimized -Denable-autodiff=true -Denable-normal=false -Dwith-mpi=disabled --warnlevel=3 --werror' runs-on: ${{ inputs.runner || 'ubuntu-latest' }} steps: - name: Reduce ASLR entropy for asan @@ -144,7 +144,7 @@ jobs: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} - name: Build - run: docker run --rm --cap-add=SYS_PTRACE -v $(pwd):${{ github.workspace }} -w ${{ github.workspace }} ghcr.io/su2code/su2/build-su2-asan:240320-1536 -b ${{github.ref}} -f "${{matrix.flags}}" + run: docker run --rm --cap-add SYS_PTRACE -v $(pwd):${{ github.workspace }} -w ${{ github.workspace }} ghcr.io/su2code/su2/build-su2-asan:240320-1536 -b ${{github.ref}} -f "${{matrix.flags}}" - name: Compress binaries run: tar -zcvf install_bin.tgz install/* - name: Upload Binaries From acd1a760f3f12ea16a870585b46665370574db63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Mon, 25 Mar 2024 15:35:33 +0100 Subject: [PATCH 087/287] Add --asan flag, add with_asan parameter. --- .github/workflows/regression.yml | 2 +- TestCases/TestCase.py | 31 +++++++++++++++++-------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 29d47f6bccd..274918a2e2f 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -125,7 +125,7 @@ jobs: config_set: [BaseNoMPI-asan, ReverseNoMPI-asan] include: - config_set: BaseNoMPI-asan - flags: '--buildtype=debugoptimized -Denable-pywrapper=true -Denable-openblas=true -Dwith-mpi=disabled -Denable-mlpcpp=true --warnlevel=3 --werror' + flags: '--buildtype=debugoptimized -Denable-openblas=true -Dwith-mpi=disabled -Denable-mlpcpp=true --warnlevel=3 --werror' - config_set: ReverseNoMPI-asan flags: '--buildtype=debugoptimized -Denable-autodiff=true -Denable-normal=false -Dwith-mpi=disabled --warnlevel=3 --werror' runs-on: ${{ inputs.runner || 'ubuntu-latest' }} diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 6d577b47df4..ce63fddd5c6 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -45,6 +45,7 @@ def is_float(test_string): def parse_args(description: str): parser = argparse.ArgumentParser(description=description) parser.add_argument('--tsan', action='store_true', help='Run thread sanitizer tests. Requires a tsan-enabled SU2 build.') + parser.add_argument('--asan', action='store_true', help='Run address sanitizer tests. Requires an asan-enabled SU2 build.') return parser.parse_args() class TestCase: @@ -114,6 +115,7 @@ def __init__(self,tag_in): self.cpu_arch = platform.machine().casefold() self.enabled_on_cpu_arch = ["x86_64","amd64","aarch64","arm64"] self.enabled_with_tsan = True + self.enabled_with_asan = True self.command = self.Command() self.timeout = 0 self.tol = 0.0 @@ -125,9 +127,9 @@ def __init__(self,tag_in): self.reference_file_aarch64 = "" self.test_file = "of_grad.dat" - def run_test(self, running_with_tsan=False): + def run_test(self, with_tsan=False, with_asan=False): - if not self.is_enabled(running_with_tsan): + if not self.is_enabled(with_tsan, with_asan): return True print('==================== Start Test: %s ===================='%self.tag) @@ -142,7 +144,7 @@ def run_test(self, running_with_tsan=False): # Adjust the number of iterations in the config file if len(self.test_vals) != 0: - self.adjust_iter(running_with_tsan) + self.adjust_iter(with_tsan, with_asan) # Check for disabling the restart if self.no_restart: @@ -186,7 +188,7 @@ def run_test(self, running_with_tsan=False): delta_vals = [] sim_vals = [] - if not running_with_tsan: # tsan findings result in non-zero return code, no need to examine the output + if not with_tsan and not with_asan: # sanitizer findings result in non-zero return code, no need to examine the output # Examine the output f = open(logfilename,'r') output = f.readlines() @@ -260,7 +262,7 @@ def run_test(self, running_with_tsan=False): if not start_solver: print('ERROR: The code was not able to get to the "Begin solver" section.') - if not running_with_tsan and iter_missing: + if not with_tsan and not with_asan and iter_missing: print('ERROR: The iteration number %d could not be found.'%self.test_iter) print('CPU architecture=%s' % self.cpu_arch) @@ -281,9 +283,9 @@ def run_test(self, running_with_tsan=False): os.chdir(workdir) return passed - def run_filediff(self, running_with_tsan=False): + def run_filediff(self, with_tsan=False, with_asan=False): - if not self.is_enabled(running_with_tsan): + if not self.is_enabled(with_tsan, with_asan): return True print('==================== Start Test: %s ===================='%self.tag) @@ -291,7 +293,7 @@ def run_filediff(self, running_with_tsan=False): timed_out = False # Adjust the number of iterations in the config file - self.adjust_iter(running_with_tsan) + self.adjust_iter(with_tsan, with_asan) self.adjust_test_data() @@ -330,7 +332,7 @@ def run_filediff(self, running_with_tsan=False): print("Output from the failed case:") subprocess.call(["cat", logfilename]) - if not running_with_tsan: # thread sanitizer tests only check the return code, no need to compare outputs + if not with_tsan and not with_asan: # sanitizer tests only check the return code, no need to compare outputs diff_time_start = datetime.datetime.now() if not timed_out and passed: # Compare files @@ -850,7 +852,7 @@ def run_def(self): os.chdir(workdir) return passed - def adjust_iter(self, running_with_tsan=False): + def adjust_iter(self, with_tsan=False, with_asan=False): # Read the cfg file workdir = os.getcwd() @@ -861,7 +863,7 @@ def adjust_iter(self, running_with_tsan=False): new_iter = self.test_iter + 1 - if running_with_tsan: + if with_tsan or with_asan: # detect restart restart_iter = 0 @@ -942,18 +944,19 @@ def disable_restart(self): return - def is_enabled(self, running_with_tsan=False): + def is_enabled(self, with_tsan=False, with_asan=False): is_enabled_on_arch = self.cpu_arch in self.enabled_on_cpu_arch if not is_enabled_on_arch: print('Ignoring test "%s" because it is not enabled for the current CPU architecture: %s' % (self.tag, self.cpu_arch)) - tsan_compatible = not running_with_tsan or self.enabled_with_tsan + tsan_compatible = not with_tsan or self.enabled_with_tsan + asan_compatible = not with_asan or self.enabled_with_asan if not tsan_compatible: print('Ignoring test "%s" because it is not enabled to run with the thread sanitizer.' % self.tag) - return is_enabled_on_arch and tsan_compatible + return is_enabled_on_arch and tsan_compatible and asan_compatible def adjust_test_data(self): From c16aab20c0e8744d8a4d41ce6df4b4075b6e0ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Mon, 25 Mar 2024 16:05:28 +0100 Subject: [PATCH 088/287] Add basic tsan/asan checks to further run_* routines. --- TestCases/TestCase.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index ce63fddd5c6..ec6499245b3 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -470,9 +470,9 @@ def run_filediff(self, with_tsan=False, with_asan=False): os.chdir(workdir) return passed - def run_opt(self): + def run_opt(self, with_tsan=False, with_asan=False): - if not self.is_enabled(): + if not self.is_enabled(with_tsan, with_asan): return True print('==================== Start Test: %s ===================='%self.tag) @@ -595,9 +595,9 @@ def run_opt(self): os.chdir(workdir) return passed - def run_geo(self): + def run_geo(self, with_tsan=False, with_asan=False): - if not self.is_enabled(): + if not self.is_enabled(with_tsan, with_asan): return True print('==================== Start Test: %s ===================='%self.tag) @@ -727,9 +727,9 @@ def run_geo(self): os.chdir(workdir) return passed - def run_def(self): + def run_def(self, with_tsan=False, with_asan=False): - if not self.is_enabled(): + if not self.is_enabled(with_tsan, with_asan): return True print('==================== Start Test: %s ===================='%self.tag) From c84780e94d63d7180638b7abe356b6a7c21a1e63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Mon, 25 Mar 2024 16:13:04 +0100 Subject: [PATCH 089/287] Enable address sanitizer execution of SU2_CFD serial regression tests. --- TestCases/serial_regression.py | 86 +++++++++++++++++++++++----------- 1 file changed, 58 insertions(+), 28 deletions(-) diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index cecb6408e22..9964395d837 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -28,12 +28,15 @@ from __future__ import print_function, division, absolute_import import sys from TestCase import TestCase +from TestCase import parse_args def main(): '''This program runs SU2 and ensures that the output matches specified values. This will be used to do checks when code is pushed to github to make sure nothing is broken. ''' + args = parse_args('Serial Regression Tests') + test_list = [] ######################### @@ -1188,7 +1191,7 @@ def main(): if test.tol == 0.0: test.tol = 0.00001 - pass_list = [ test.run_test() for test in test_list ] + pass_list = [ test.run_test(args.tsan, args.asan) for test in test_list ] ###################################### @@ -1203,7 +1206,8 @@ def main(): naca0012_geo.command = TestCase.Command(exec = "SU2_GEO") naca0012_geo.timeout = 1600 naca0012_geo.tol = 0.00001 - pass_list.append(naca0012_geo.run_geo()) + naca0012_geo.enabled_with_asan = False + pass_list.append(naca0012_geo.run_geo(args.tsan, args.asan)) test_list.append(naca0012_geo) ###################################### @@ -1219,8 +1223,9 @@ def main(): intersect_def.command = TestCase.Command(exec = "SU2_DEF") intersect_def.timeout = 1600 intersect_def.tol = 1e-04 + intersect_def.enabled_with_asan = False - pass_list.append(intersect_def.run_def()) + pass_list.append(intersect_def.run_def(args.tsan, args.asan)) test_list.append(intersect_def) # Inviscid NACA0012 (triangles) @@ -1232,8 +1237,9 @@ def main(): naca0012_def.command = TestCase.Command(exec = "SU2_DEF") naca0012_def.timeout = 1600 naca0012_def.tol = 1e-08 + naca0012_def.enabled_with_asan = False - pass_list.append(naca0012_def.run_def()) + pass_list.append(naca0012_def.run_def(args.tsan, args.asan)) test_list.append(naca0012_def) # Inviscid NACA0012 based on SURFACE_FILE input (surface_bump.dat) @@ -1245,8 +1251,9 @@ def main(): naca0012_def_file.command = TestCase.Command(exec = "SU2_DEF") naca0012_def_file.timeout = 1600 naca0012_def_file.tol = 1e-8 + naca0012_def_file.enabled_with_asan = False - pass_list.append(naca0012_def_file.run_def()) + pass_list.append(naca0012_def_file.run_def(args.tsan, args.asan)) test_list.append(naca0012_def_file) # RAE2822 (mixed tris + quads) @@ -1258,8 +1265,9 @@ def main(): rae2822_def.command = TestCase.Command(exec = "SU2_DEF") rae2822_def.timeout = 1600 rae2822_def.tol = 1e-13 + rae2822_def.enabled_with_asan = False - pass_list.append(rae2822_def.run_def()) + pass_list.append(rae2822_def.run_def(args.tsan, args.asan)) test_list.append(rae2822_def) # Turb NACA4412 (quads, wall distance) @@ -1271,8 +1279,9 @@ def main(): naca4412_def.command = TestCase.Command(exec = "SU2_DEF") naca4412_def.timeout = 1600 naca4412_def.tol = 1e-12 + naca4412_def.enabled_with_asan = False - pass_list.append(naca4412_def.run_def()) + pass_list.append(naca4412_def.run_def(args.tsan, args.asan)) test_list.append(naca4412_def) # Brick of tets (inverse volume) @@ -1284,8 +1293,9 @@ def main(): brick_tets_def.command = TestCase.Command(exec = "SU2_DEF") brick_tets_def.timeout = 1600 brick_tets_def.tol = 1e-09 + brick_tets_def.enabled_with_asan = False - pass_list.append(brick_tets_def.run_def()) + pass_list.append(brick_tets_def.run_def(args.tsan, args.asan)) test_list.append(brick_tets_def) # Brick of isotropic hexas (inverse volume) @@ -1297,8 +1307,9 @@ def main(): brick_hex_def.command = TestCase.Command(exec = "SU2_DEF") brick_hex_def.timeout = 1600 brick_hex_def.tol = 1e-09 + brick_hex_def.enabled_with_asan = False - pass_list.append(brick_hex_def.run_def()) + pass_list.append(brick_hex_def.run_def(args.tsan, args.asan)) test_list.append(brick_hex_def) # Brick with a pyramid layer (inverse volume) @@ -1310,8 +1321,9 @@ def main(): brick_pyra_def.command = TestCase.Command(exec = "SU2_DEF") brick_pyra_def.timeout = 1600 brick_pyra_def.tol = 1e-08 + brick_pyra_def.enabled_with_asan = False - pass_list.append(brick_pyra_def.run_def()) + pass_list.append(brick_pyra_def.run_def(args.tsan, args.asan)) test_list.append(brick_pyra_def) # Brick of isotropic prisms (inverse volume) @@ -1323,8 +1335,9 @@ def main(): brick_prism_def.command = TestCase.Command(exec = "SU2_DEF") brick_prism_def.timeout = 1600 brick_prism_def.tol = 1e-08 + brick_prism_def.enabled_with_asan = False - pass_list.append(brick_prism_def.run_def()) + pass_list.append(brick_prism_def.run_def(args.tsan, args.asan)) test_list.append(brick_prism_def) # Brick of prisms with high aspect ratio cells near the wall (wall distance) @@ -1336,8 +1349,9 @@ def main(): brick_prism_rans_def.command = TestCase.Command(exec = "SU2_DEF") brick_prism_rans_def.timeout = 1600 brick_prism_rans_def.tol = 1e-12 + brick_prism_rans_def.enabled_with_asan = False - pass_list.append(brick_prism_rans_def.run_def()) + pass_list.append(brick_prism_rans_def.run_def(args.tsan, args.asan)) test_list.append(brick_prism_rans_def) # Brick of hexas with high aspect ratio cells near the wall (inverse volume) @@ -1349,8 +1363,9 @@ def main(): brick_hex_rans_def.command = TestCase.Command(exec = "SU2_DEF") brick_hex_rans_def.timeout = 1600 brick_hex_rans_def.tol = 1e-12 + brick_hex_rans_def.enabled_with_asan = False - pass_list.append(brick_hex_rans_def.run_def()) + pass_list.append(brick_hex_rans_def.run_def(args.tsan, args.asan)) test_list.append(brick_hex_rans_def) # Cylindrical FFD test @@ -1362,8 +1377,9 @@ def main(): cylinder_ffd_def.command = TestCase.Command(exec = "SU2_DEF") cylinder_ffd_def.timeout = 1600 cylinder_ffd_def.tol = 1e-09 + cylinder_ffd_def.enabled_with_asan = False - pass_list.append(cylinder_ffd_def.run_def()) + pass_list.append(cylinder_ffd_def.run_def(args.tsan, args.asan)) test_list.append(cylinder_ffd_def) # Spherical FFD test @@ -1375,8 +1391,9 @@ def main(): sphere_ffd_def.command = TestCase.Command(exec = "SU2_DEF") sphere_ffd_def.timeout = 1600 sphere_ffd_def.tol = 1e-08 + sphere_ffd_def.enabled_with_asan = False - pass_list.append(sphere_ffd_def.run_def()) + pass_list.append(sphere_ffd_def.run_def(args.tsan, args.asan)) test_list.append(sphere_ffd_def) # Spherical FFD test using BSplines @@ -1388,8 +1405,9 @@ def main(): sphere_ffd_def_bspline.command = TestCase.Command(exec = "SU2_DEF") sphere_ffd_def_bspline.timeout = 1600 sphere_ffd_def_bspline.tol = 1e-08 + sphere_ffd_def_bspline.enabled_with_asan = False - pass_list.append(sphere_ffd_def_bspline.run_def()) + pass_list.append(sphere_ffd_def_bspline.run_def(args.tsan, args.asan)) test_list.append(sphere_ffd_def_bspline) ###################################### @@ -1405,7 +1423,8 @@ def main(): contadj_euler_py.timeout = 1600 contadj_euler_py.reference_file = "of_grad_cd.dat.ref" contadj_euler_py.test_file = "of_grad_cd.dat" - pass_list.append(contadj_euler_py.run_filediff()) + contadj_euler_py.enabled_with_asan = False + pass_list.append(contadj_euler_py.run_filediff(args.tsan, args.asan)) test_list.append(contadj_euler_py) # test shape_optimization.py @@ -1417,7 +1436,8 @@ def main(): shape_opt_euler_py.command = TestCase.Command(exec = "shape_optimization.py", param = "-g CONTINUOUS_ADJOINT -f") shape_opt_euler_py.timeout = 1600 shape_opt_euler_py.tol = 0.00001 - pass_list.append(shape_opt_euler_py.run_opt()) + shape_opt_euler_py.enabled_with_asan = False + pass_list.append(shape_opt_euler_py.run_opt(args.tsan, args.asan)) test_list.append(shape_opt_euler_py) # Multiple functionals with the continuous adjoint @@ -1429,7 +1449,8 @@ def main(): contadj_multi_py.timeout = 1600 contadj_multi_py.reference_file = "of_grad_combo.dat.ref" contadj_multi_py.test_file = "of_grad_combo.dat" - pass_list.append(contadj_multi_py.run_filediff()) + contadj_multi_py.enabled_with_asan = False + pass_list.append(contadj_multi_py.run_filediff(args.tsan, args.asan)) test_list.append(contadj_multi_py) # Optimization with multiple objectives, with gradients evaluated individually @@ -1467,7 +1488,8 @@ def main(): 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 - pass_list.append(opt_multiobj1surf_py.run_opt()) + opt_multiobj1surf_py.enabled_with_asan = False + pass_list.append(opt_multiobj1surf_py.run_opt(args.tsan, args.asan)) test_list.append(opt_multiobj1surf_py) # test optimization, with a single objective evaluated on multiple surfaces @@ -1479,7 +1501,8 @@ def main(): 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 - pass_list.append(opt_2surf1obj_py.run_opt()) + opt_2surf1obj_py.enabled_with_asan = False + pass_list.append(opt_2surf1obj_py.run_opt(args.tsan, args.asan)) test_list.append(opt_2surf1obj_py) ########################## @@ -1495,8 +1518,9 @@ def main(): pywrapper_naca0012.command = TestCase.Command(exec = "SU2_CFD.py", param = "-f") pywrapper_naca0012.timeout = 1600 pywrapper_naca0012.tol = 0.00001 + pywrapper_naca0012.enabled_with_asan = False test_list.append(pywrapper_naca0012) - pass_list.append(pywrapper_naca0012.run_test()) + pass_list.append(pywrapper_naca0012.run_test(args.tsan, args.asan)) # NACA0012 (SST, FUN3D results for finest grid: CL=1.0840, CD=0.01253) pywrapper_turb_naca0012_sst = TestCase('pywrapper_turb_naca0012_sst') @@ -1508,8 +1532,9 @@ def main(): pywrapper_turb_naca0012_sst.command = TestCase.Command(exec = "SU2_CFD.py", param = "-f") pywrapper_turb_naca0012_sst.timeout = 3200 pywrapper_turb_naca0012_sst.tol = 0.00001 + pywrapper_turb_naca0012_sst.enabled_with_asan = False test_list.append(pywrapper_turb_naca0012_sst) - pass_list.append(pywrapper_turb_naca0012_sst.run_test()) + pass_list.append(pywrapper_turb_naca0012_sst.run_test(args.tsan, args.asan)) # Square cylinder pywrapper_square_cylinder = TestCase('pywrapper_square_cylinder') @@ -1521,8 +1546,9 @@ def main(): pywrapper_square_cylinder.timeout = 1600 pywrapper_square_cylinder.tol = 0.00001 pywrapper_square_cylinder.unsteady = True + pywrapper_square_cylinder.enabled_with_asan = False test_list.append(pywrapper_square_cylinder) - pass_list.append(pywrapper_square_cylinder.run_test()) + pass_list.append(pywrapper_square_cylinder.run_test(args.tsan, args.asan)) # Aeroelastic pywrapper_aeroelastic = TestCase('pywrapper_aeroelastic') @@ -1534,8 +1560,9 @@ def main(): pywrapper_aeroelastic.timeout = 1600 pywrapper_aeroelastic.tol = 0.00001 pywrapper_aeroelastic.unsteady = True + pywrapper_aeroelastic.enabled_with_asan = False test_list.append(pywrapper_aeroelastic) - pass_list.append(pywrapper_aeroelastic.run_test()) + pass_list.append(pywrapper_aeroelastic.run_test(args.tsan, args.asan)) # FSI, 2d pywrapper_fsi2d = TestCase('pywrapper_fsi2d') @@ -1548,8 +1575,9 @@ def main(): pywrapper_fsi2d.multizone = True pywrapper_fsi2d.timeout = 1600 pywrapper_fsi2d.tol = 0.00001 + pywrapper_fsi2d.enabled_with_asan = False test_list.append(pywrapper_fsi2d) - pass_list.append(pywrapper_fsi2d.run_test()) + pass_list.append(pywrapper_fsi2d.run_test(args.tsan, args.asan)) # Unsteady CHT pywrapper_unsteadyCHT = TestCase('pywrapper_unsteadyCHT') @@ -1561,8 +1589,9 @@ def main(): pywrapper_unsteadyCHT.timeout = 1600 pywrapper_unsteadyCHT.tol = 0.00001 pywrapper_unsteadyCHT.unsteady = True + pywrapper_unsteadyCHT.enabled_with_asan = False test_list.append(pywrapper_unsteadyCHT) - pass_list.append(pywrapper_unsteadyCHT.run_test()) + pass_list.append(pywrapper_unsteadyCHT.run_test(args.tsan, args.asan)) # Rigid motion pywrapper_rigidMotion = TestCase('pywrapper_rigidMotion') @@ -1574,8 +1603,9 @@ def main(): pywrapper_rigidMotion.timeout = 1600 pywrapper_rigidMotion.tol = 0.00001 pywrapper_rigidMotion.unsteady = True + pywrapper_rigidMotion.enabled_with_asan = False test_list.append(pywrapper_rigidMotion) - pass_list.append(pywrapper_rigidMotion.run_test()) + pass_list.append(pywrapper_rigidMotion.run_test(args.tsan, args.asan)) # Tests summary print('==================================================================') From 8a79faa2ebfba86bae4e2bd432fbb3877496c7da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Mon, 25 Mar 2024 16:44:37 +0100 Subject: [PATCH 090/287] Add job for address sanitizer tests. --- .github/workflows/regression.yml | 47 ++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 274918a2e2f..b80cd8f4384 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -267,6 +267,53 @@ jobs: with: entrypoint: /bin/rm args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} + address_sanitizer_tests: + runs-on: ${{ inputs.runner || 'ubuntu-latest' }} + name: Address Sanitizer Tests + needs: build_asan + strategy: + fail-fast: false + matrix: + testscript: ['serial_regression.py'] + steps: + - name: Reduce ASLR entropy for asan + run: sudo sysctl -w vm.mmap_rnd_bits=28 + - name: Pre Cleanup + uses: docker://ghcr.io/su2code/su2/test-su2-asan:240320-1536 + with: + entrypoint: /bin/rm + args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} + - name: Download All artifacts + uses: actions/download-artifact@v4 + - name: Uncompress and Move Binaries + run: | + BIN_FOLDER="$PWD/install/bin" + mkdir -p $BIN_FOLDER + ls -lah $BIN_FOLDER + for type in Base Reverse Forward; do + TYPE_FOLDER="${type}NoMPI-asan" + echo "Processing '$TYPE_FOLDER' ..." + if [ -d $TYPE_FOLDER ]; then + pushd $TYPE_FOLDER + ls -lah + tar -zxvf install_bin.tgz + ls -lah install/bin/ + cp -r install/* $BIN_FOLDER/../ + popd; + fi + done + chmod a+x $BIN_FOLDER/* + ls -lahR $BIN_FOLDER + - name: Run Tests in Container + uses: docker://ghcr.io/su2code/su2/test-su2-asan:240320-1536 + with: + # -t -c + args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} -a "--asan" + - name: Cleanup + uses: docker://ghcr.io/su2code/su2/test-su2-asan:240320-1536 + with: + entrypoint: /bin/rm + args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }} unit_tests: runs-on: ${{ inputs.runner || 'ubuntu-latest' }} name: Unit Tests From 4a617a118e514765a1a83aae7e9d753012795c41 Mon Sep 17 00:00:00 2001 From: ShiheJia <58663453+ShiheJia@users.noreply.github.com> Date: Tue, 26 Mar 2024 12:28:00 +0800 Subject: [PATCH 091/287] Start volume averaging after StartWindowIteration --- SU2_CFD/src/output/COutput.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SU2_CFD/src/output/COutput.cpp b/SU2_CFD/src/output/COutput.cpp index c49a2627b22..dedea04cc1e 100644 --- a/SU2_CFD/src/output/COutput.cpp +++ b/SU2_CFD/src/output/COutput.cpp @@ -191,7 +191,7 @@ void COutput::SetHistoryOutput(CGeometry *geometry, unsigned long InnerIter) { curTimeIter = TimeIter; - curAbsTimeIter = TimeIter - config->GetRestart_Iter(); + curAbsTimeIter = max(TimeIter, config->GetStartWindowIteration()) - config->GetStartWindowIteration(); curOuterIter = OuterIter; curInnerIter = InnerIter; @@ -258,7 +258,7 @@ void COutput::SetHistoryOutput(CGeometry ****geometry, CSolver *****solver, CCon void COutput::SetMultizoneHistoryOutput(COutput **output, CConfig **config, CConfig *driver_config, unsigned long TimeIter, unsigned long OuterIter){ curTimeIter = TimeIter; - curAbsTimeIter = TimeIter - driver_config->GetRestart_Iter(); + curAbsTimeIter = max(TimeIter, driver_config->GetStartWindowIteration()) - driver_config->GetStartWindowIteration(); curOuterIter = OuterIter; /*--- Retrieve residual and extra data -----------------------------------------------------------------*/ @@ -2414,4 +2414,4 @@ void COutput::PrintVolumeFields(){ VolumeFieldTable.PrintFooter(); } -} \ No newline at end of file +} From 3e426993752690a0f8b22e98e1781e8748418fb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Tue, 26 Mar 2024 17:19:12 +0100 Subject: [PATCH 092/287] Avoid reallocation of surface_movement. --- SU2_CFD/src/drivers/CDriver.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index 7160cc93e6f..6c1a6170a04 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -2389,7 +2389,9 @@ void CDriver::PreprocessDynamicMesh(CConfig *config, CGeometry **geometry, CSolv cout << "Setting dynamic mesh structure for zone "<< iZone + 1<<"." << endl; grid_movement = new CVolumetricMovement(geometry[MESH_0], config); - surface_movement = new CSurfaceMovement(); + if (surface_movement != nullptr) + surface_movement = new CSurfaceMovement(); + surface_movement->CopyBoundary(geometry[MESH_0], config); if (config->GetTime_Marching() == TIME_MARCHING::HARMONIC_BALANCE){ if (rank == MASTER_NODE) cout << endl << "Instance "<< iInst + 1 <<":" << endl; From a65d31cd0532529f3addf977011923c23cf38d56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Wed, 27 Mar 2024 16:00:43 +0100 Subject: [PATCH 093/287] Enable address sanitizer execution of SU2_CFD_AD serial regression AD tests. --- .github/workflows/regression.yml | 2 +- TestCases/serial_regression_AD.py | 29 ++++++++++++++++++++--------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index b80cd8f4384..af6f6c60875 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -274,7 +274,7 @@ jobs: strategy: fail-fast: false matrix: - testscript: ['serial_regression.py'] + testscript: ['serial_regression.py', 'serial_regression_AD.py'] steps: - name: Reduce ASLR entropy for asan run: sudo sysctl -w vm.mmap_rnd_bits=28 diff --git a/TestCases/serial_regression_AD.py b/TestCases/serial_regression_AD.py index 2a0ac757097..ac268040cd5 100644 --- a/TestCases/serial_regression_AD.py +++ b/TestCases/serial_regression_AD.py @@ -30,12 +30,15 @@ import sys from TestCase import TestCase +from TestCase import parse_args def main(): '''This program runs SU2 and ensures that the output matches specified values. This will be used to do checks when code is pushed to github to make sure nothing is broken. ''' + args = parse_args('Serial Regression AD Tests') + test_list = [] ##################################### @@ -223,7 +226,7 @@ def main(): if test.tol == 0.0: test.tol = 0.00001 - pass_list = [ test.run_test() for test in test_list ] + pass_list = [ test.run_test(args.tsan, args.asan) for test in test_list ] ################################### ### Coupled RHT-CFD Adjoint ### @@ -239,7 +242,8 @@ def main(): discadj_rht.reference_file = "of_grad_cd.csv.ref" discadj_rht.reference_file_aarch64 = "of_grad_cd_aarch64.csv.ref" discadj_rht.test_file = "of_grad_cd.csv" - pass_list.append(discadj_rht.run_filediff()) + discadj_rht.enabled_with_asan = False + pass_list.append(discadj_rht.run_filediff(args.tsan, args.asan)) test_list.append(discadj_rht) ###################################### @@ -256,7 +260,8 @@ def main(): discadj_euler_py.reference_file = "of_grad_cd_disc.dat.ref" discadj_euler_py.reference_file_aarch64 = "of_grad_cd_disc_aarch64.dat.ref" discadj_euler_py.test_file = "of_grad_cd.dat" - pass_list.append(discadj_euler_py.run_filediff()) + discadj_euler_py.enabled_with_asan = False + pass_list.append(discadj_euler_py.run_filediff(args.tsan, args.asan)) test_list.append(discadj_euler_py) # test discrete_adjoint with multiple ffd boxes @@ -269,7 +274,8 @@ def main(): discadj_multiple_ffd_py.reference_file = "of_grad_cd.dat.ref" discadj_multiple_ffd_py.reference_file_aarch64 = "of_grad_cd_aarch64.dat.ref" discadj_multiple_ffd_py.test_file = "of_grad_cd.dat" - pass_list.append(discadj_multiple_ffd_py.run_filediff()) + discadj_multiple_ffd_py.enabled_with_asan = False + pass_list.append(discadj_multiple_ffd_py.run_filediff(args.tsan, args.asan)) test_list.append(discadj_multiple_ffd_py) # test direct_differentiation.py @@ -282,7 +288,8 @@ def main(): directdiff_euler_py.reference_file = "of_grad_directdiff.dat.ref" directdiff_euler_py.reference_file_aarch64 = "of_grad_directdiff_aarch64.dat.ref" directdiff_euler_py.test_file = "DIRECTDIFF/of_grad_directdiff.dat" - pass_list.append(directdiff_euler_py.run_filediff()) + directdiff_euler_py.enabled_with_asan = False + pass_list.append(directdiff_euler_py.run_filediff(args.tsan, args.asan)) test_list.append(directdiff_euler_py) # test direct_differentiation.py with multiple ffd boxes @@ -295,7 +302,8 @@ def main(): directdiff_multiple_ffd_py.reference_file = "of_grad_directdiff.dat.ref" directdiff_multiple_ffd_py.reference_file_aarch64 = "of_grad_directdiff_aarch64.dat.ref" directdiff_multiple_ffd_py.test_file = "DIRECTDIFF/of_grad_directdiff.dat" - pass_list.append(directdiff_multiple_ffd_py.run_filediff()) + directdiff_multiple_ffd_py.enabled_with_asan = False + pass_list.append(directdiff_multiple_ffd_py.run_filediff(args.tsan, args.asan)) test_list.append(directdiff_multiple_ffd_py) # test continuous_adjoint.py, with multiple objectives @@ -320,8 +328,9 @@ def main(): pywrapper_FEA_AD_FlowLoad.timeout = 1600 pywrapper_FEA_AD_FlowLoad.tol = 0.000001 pywrapper_FEA_AD_FlowLoad.new_output = False + pywrapper_FEA_AD_FlowLoad.enabled_with_asan = False test_list.append(pywrapper_FEA_AD_FlowLoad) - pass_list.append(pywrapper_FEA_AD_FlowLoad.run_test()) + pass_list.append(pywrapper_FEA_AD_FlowLoad.run_test(args.tsan, args.asan)) # Flow AD Mesh Displacement Sensitivity pywrapper_CFD_AD_MeshDisp = TestCase('pywrapper_CFD_AD_MeshDisp') @@ -333,8 +342,9 @@ def main(): pywrapper_CFD_AD_MeshDisp.timeout = 1600 pywrapper_CFD_AD_MeshDisp.tol = 0.000001 pywrapper_CFD_AD_MeshDisp.new_output = False + pywrapper_CFD_AD_MeshDisp.enabled_with_asan = False test_list.append(pywrapper_CFD_AD_MeshDisp) - pass_list.append(pywrapper_CFD_AD_MeshDisp.run_test()) + pass_list.append(pywrapper_CFD_AD_MeshDisp.run_test(args.tsan, args.asan)) ################################### @@ -350,7 +360,8 @@ def main(): grad_smooth_naca0012.reference_file = "of_hess.dat.ref" grad_smooth_naca0012.reference_file_aarch64 = "of_hess_aarch64.dat.ref" grad_smooth_naca0012.test_file = "of_hess.dat" - pass_list.append(grad_smooth_naca0012.run_filediff()) + grad_smooth_naca0012.enabled_with_asan = False + pass_list.append(grad_smooth_naca0012.run_filediff(args.tsan, args.asan)) test_list.append(grad_smooth_naca0012) # Tests summary From 3477fba6e59b07190c385688a609423f9e14ea7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 28 Mar 2024 18:37:45 +0100 Subject: [PATCH 094/287] Enable asan execution of SU2_GEO and SU2_DEF serial regression tests. --- TestCases/TestCase.py | 166 +++++++++++++++++---------------- TestCases/serial_regression.py | 15 --- 2 files changed, 84 insertions(+), 97 deletions(-) diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index ec6499245b3..334be29bb01 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -642,52 +642,53 @@ def run_geo(self, with_tsan=False, with_asan=False): timed_out = True passed = False - # Examine the output - f = open(logfilename,'r') - output = f.readlines() - delta_vals = [] - sim_vals = [] - data = [] - if not timed_out: - start_solver = False - for line in output: - if not start_solver: # Don't bother parsing anything before SU2_GEO starts - if line.find('Station 1') > -1: - start_solver=True - elif line.find('Station 2') > -1: # jump out of loop if we hit the next station - break - else: # Found the lines; parse the input - - if line.find('Chord') > -1: - raw_data = line.replace(",", "").split() - data.append(raw_data[1]) - found_chord = True - data.append(raw_data[5]) - found_radius = True - data.append(raw_data[8]) - found_toc = True - data.append(raw_data[10]) - found_aoa = True - - if found_chord and found_radius and found_toc and found_aoa: # Found what we're checking for - iter_missing = False - if not len(self.test_vals)==len(data): # something went wrong... probably bad input - print("Error in test_vals!") - passed = False - for j in range(len(data)): - sim_vals.append( float(data[j]) ) - delta_vals.append( abs(float(data[j])-self.test_vals[j]) ) - if delta_vals[j] > self.tol: - exceed_tol = True - passed = False - else: - iter_missing = True + if not with_tsan and not with_asan: # sanitizer findings result in non-zero return code, no need to examine the output + # Examine the output + f = open(logfilename,'r') + output = f.readlines() + delta_vals = [] + sim_vals = [] + data = [] + if not timed_out: + start_solver = False + for line in output: + if not start_solver: # Don't bother parsing anything before SU2_GEO starts + if line.find('Station 1') > -1: + start_solver=True + elif line.find('Station 2') > -1: # jump out of loop if we hit the next station + break + else: # Found the lines; parse the input + + if line.find('Chord') > -1: + raw_data = line.replace(",", "").split() + data.append(raw_data[1]) + found_chord = True + data.append(raw_data[5]) + found_radius = True + data.append(raw_data[8]) + found_toc = True + data.append(raw_data[10]) + found_aoa = True + + if found_chord and found_radius and found_toc and found_aoa: # Found what we're checking for + iter_missing = False + if not len(self.test_vals)==len(data): # something went wrong... probably bad input + print("Error in test_vals!") + passed = False + for j in range(len(data)): + sim_vals.append( float(data[j]) ) + delta_vals.append( abs(float(data[j])-self.test_vals[j]) ) + if delta_vals[j] > self.tol: + exceed_tol = True + passed = False + else: + iter_missing = True - if not start_solver: - passed = False + if not start_solver: + passed = False - if iter_missing: - passed = False + if iter_missing: + passed = False # Write the test results #for j in output: @@ -769,48 +770,49 @@ def run_def(self, with_tsan=False, with_asan=False): timed_out = True passed = False - # Examine the output - f = open(logfilename,'r') - output = f.readlines() - delta_vals = [] - sim_vals = [] - if not timed_out: - start_solver = False - for line in output: - if not start_solver: # Don't bother parsing anything before -- Volumetric grid deformation --- - if line.find('Volumetric grid deformation') > -1: - start_solver=True - else: # Found the -- Volumetric grid deformation --- line; parse the input - raw_data = line.split() - try: - iter_number = int(raw_data[0]) - data = raw_data[len(raw_data)-1:] # Take the last column for comparison - except ValueError: - continue - except IndexError: - continue + if not with_tsan and not with_asan: # sanitizer findings result in non-zero return code, no need to examine the output + # Examine the output + f = open(logfilename,'r') + output = f.readlines() + delta_vals = [] + sim_vals = [] + if not timed_out: + start_solver = False + for line in output: + if not start_solver: # Don't bother parsing anything before -- Volumetric grid deformation --- + if line.find('Volumetric grid deformation') > -1: + start_solver=True + else: # Found the -- Volumetric grid deformation --- line; parse the input + raw_data = line.split() + try: + iter_number = int(raw_data[0]) + data = raw_data[len(raw_data)-1:] # Take the last column for comparison + except ValueError: + continue + except IndexError: + continue - if iter_number == self.test_iter: # Found the iteration number we're checking for - iter_missing = False - if not len(self.test_vals)==len(data): # something went wrong... probably bad input - print("Error in test_vals!") - passed = False - break - for j in range(len(data)): - sim_vals.append( float(data[j]) ) - delta_vals.append( abs(float(data[j])-self.test_vals[j]) ) - if delta_vals[j] > self.tol: - exceed_tol = True + if iter_number == self.test_iter: # Found the iteration number we're checking for + iter_missing = False + if not len(self.test_vals)==len(data): # something went wrong... probably bad input + print("Error in test_vals!") passed = False - break - else: - iter_missing = True + break + for j in range(len(data)): + sim_vals.append( float(data[j]) ) + delta_vals.append( abs(float(data[j])-self.test_vals[j]) ) + if delta_vals[j] > self.tol: + exceed_tol = True + passed = False + break + else: + iter_missing = True - if not start_solver: - passed = False + if not start_solver: + passed = False - if iter_missing: - passed = False + if iter_missing: + passed = False # Write the test results #for j in output: diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 9964395d837..ce5de549f41 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -1206,7 +1206,6 @@ def main(): naca0012_geo.command = TestCase.Command(exec = "SU2_GEO") naca0012_geo.timeout = 1600 naca0012_geo.tol = 0.00001 - naca0012_geo.enabled_with_asan = False pass_list.append(naca0012_geo.run_geo(args.tsan, args.asan)) test_list.append(naca0012_geo) @@ -1223,7 +1222,6 @@ def main(): intersect_def.command = TestCase.Command(exec = "SU2_DEF") intersect_def.timeout = 1600 intersect_def.tol = 1e-04 - intersect_def.enabled_with_asan = False pass_list.append(intersect_def.run_def(args.tsan, args.asan)) test_list.append(intersect_def) @@ -1237,7 +1235,6 @@ def main(): naca0012_def.command = TestCase.Command(exec = "SU2_DEF") naca0012_def.timeout = 1600 naca0012_def.tol = 1e-08 - naca0012_def.enabled_with_asan = False pass_list.append(naca0012_def.run_def(args.tsan, args.asan)) test_list.append(naca0012_def) @@ -1251,7 +1248,6 @@ def main(): naca0012_def_file.command = TestCase.Command(exec = "SU2_DEF") naca0012_def_file.timeout = 1600 naca0012_def_file.tol = 1e-8 - naca0012_def_file.enabled_with_asan = False pass_list.append(naca0012_def_file.run_def(args.tsan, args.asan)) test_list.append(naca0012_def_file) @@ -1265,7 +1261,6 @@ def main(): rae2822_def.command = TestCase.Command(exec = "SU2_DEF") rae2822_def.timeout = 1600 rae2822_def.tol = 1e-13 - rae2822_def.enabled_with_asan = False pass_list.append(rae2822_def.run_def(args.tsan, args.asan)) test_list.append(rae2822_def) @@ -1279,7 +1274,6 @@ def main(): naca4412_def.command = TestCase.Command(exec = "SU2_DEF") naca4412_def.timeout = 1600 naca4412_def.tol = 1e-12 - naca4412_def.enabled_with_asan = False pass_list.append(naca4412_def.run_def(args.tsan, args.asan)) test_list.append(naca4412_def) @@ -1293,7 +1287,6 @@ def main(): brick_tets_def.command = TestCase.Command(exec = "SU2_DEF") brick_tets_def.timeout = 1600 brick_tets_def.tol = 1e-09 - brick_tets_def.enabled_with_asan = False pass_list.append(brick_tets_def.run_def(args.tsan, args.asan)) test_list.append(brick_tets_def) @@ -1307,7 +1300,6 @@ def main(): brick_hex_def.command = TestCase.Command(exec = "SU2_DEF") brick_hex_def.timeout = 1600 brick_hex_def.tol = 1e-09 - brick_hex_def.enabled_with_asan = False pass_list.append(brick_hex_def.run_def(args.tsan, args.asan)) test_list.append(brick_hex_def) @@ -1321,7 +1313,6 @@ def main(): brick_pyra_def.command = TestCase.Command(exec = "SU2_DEF") brick_pyra_def.timeout = 1600 brick_pyra_def.tol = 1e-08 - brick_pyra_def.enabled_with_asan = False pass_list.append(brick_pyra_def.run_def(args.tsan, args.asan)) test_list.append(brick_pyra_def) @@ -1335,7 +1326,6 @@ def main(): brick_prism_def.command = TestCase.Command(exec = "SU2_DEF") brick_prism_def.timeout = 1600 brick_prism_def.tol = 1e-08 - brick_prism_def.enabled_with_asan = False pass_list.append(brick_prism_def.run_def(args.tsan, args.asan)) test_list.append(brick_prism_def) @@ -1349,7 +1339,6 @@ def main(): brick_prism_rans_def.command = TestCase.Command(exec = "SU2_DEF") brick_prism_rans_def.timeout = 1600 brick_prism_rans_def.tol = 1e-12 - brick_prism_rans_def.enabled_with_asan = False pass_list.append(brick_prism_rans_def.run_def(args.tsan, args.asan)) test_list.append(brick_prism_rans_def) @@ -1363,7 +1352,6 @@ def main(): brick_hex_rans_def.command = TestCase.Command(exec = "SU2_DEF") brick_hex_rans_def.timeout = 1600 brick_hex_rans_def.tol = 1e-12 - brick_hex_rans_def.enabled_with_asan = False pass_list.append(brick_hex_rans_def.run_def(args.tsan, args.asan)) test_list.append(brick_hex_rans_def) @@ -1377,7 +1365,6 @@ def main(): cylinder_ffd_def.command = TestCase.Command(exec = "SU2_DEF") cylinder_ffd_def.timeout = 1600 cylinder_ffd_def.tol = 1e-09 - cylinder_ffd_def.enabled_with_asan = False pass_list.append(cylinder_ffd_def.run_def(args.tsan, args.asan)) test_list.append(cylinder_ffd_def) @@ -1391,7 +1378,6 @@ def main(): sphere_ffd_def.command = TestCase.Command(exec = "SU2_DEF") sphere_ffd_def.timeout = 1600 sphere_ffd_def.tol = 1e-08 - sphere_ffd_def.enabled_with_asan = False pass_list.append(sphere_ffd_def.run_def(args.tsan, args.asan)) test_list.append(sphere_ffd_def) @@ -1405,7 +1391,6 @@ def main(): sphere_ffd_def_bspline.command = TestCase.Command(exec = "SU2_DEF") sphere_ffd_def_bspline.timeout = 1600 sphere_ffd_def_bspline.tol = 1e-08 - sphere_ffd_def_bspline.enabled_with_asan = False pass_list.append(sphere_ffd_def_bspline.run_def(args.tsan, args.asan)) test_list.append(sphere_ffd_def_bspline) From 38b6658f4292690219b474f14bb2643a4afc8505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Tue, 2 Apr 2024 11:15:05 +0200 Subject: [PATCH 095/287] Fixes in run_geo and run_def. --- TestCases/TestCase.py | 60 ++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 334be29bb01..0818c6074a0 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -642,12 +642,18 @@ def run_geo(self, with_tsan=False, with_asan=False): timed_out = True passed = False + # check for non-zero return code + process.communicate() + if process.returncode != 0: + passed = False + + delta_vals = [] + sim_vals = [] + if not with_tsan and not with_asan: # sanitizer findings result in non-zero return code, no need to examine the output # Examine the output f = open(logfilename,'r') output = f.readlines() - delta_vals = [] - sim_vals = [] data = [] if not timed_out: start_solver = False @@ -706,20 +712,21 @@ def run_geo(self, with_tsan=False, with_asan=False): if timed_out: print('ERROR: Execution timed out. timeout=%d'%self.timeout) - if exceed_tol: - print('ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%f'%self.tol) + if not with_tsan and not with_asan: + if exceed_tol: + print('ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%f'%self.tol) - if not start_solver: - print('ERROR: The code was not able to get to the "OBJFUN" section.') + if not start_solver: + print('ERROR: The code was not able to get to the "OBJFUN" section.') - if iter_missing: - print('ERROR: The SU2_GEO values could not be found.') + if iter_missing: + print('ERROR: The SU2_GEO values could not be found.') - print_vals(self.test_vals, name="test_vals (stored)") + print_vals(self.test_vals, name="test_vals (stored)") - print_vals(sim_vals, name="sim_vals (computed)") + print_vals(sim_vals, name="sim_vals (computed)") - print_vals(delta_vals, name="delta_vals") + print_vals(delta_vals, name="delta_vals") print('test duration: %.2f min'%(running_time/60.0)) print('==================== End Test: %s ====================\n'%self.tag) @@ -770,12 +777,18 @@ def run_def(self, with_tsan=False, with_asan=False): timed_out = True passed = False + # check for non-zero return code + process.communicate() + if process.returncode != 0: + passed = False + + delta_vals = [] + sim_vals = [] + if not with_tsan and not with_asan: # sanitizer findings result in non-zero return code, no need to examine the output # Examine the output f = open(logfilename,'r') output = f.readlines() - delta_vals = [] - sim_vals = [] if not timed_out: start_solver = False for line in output: @@ -830,22 +843,23 @@ def run_def(self, with_tsan=False, with_asan=False): if timed_out: print('ERROR: Execution timed out. timeout=%d sec'%self.timeout) - if exceed_tol: - print('ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%e'%self.tol) + if not with_tsan and not with_asan: + if exceed_tol: + print('ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%e'%self.tol) - if not start_solver: - print('ERROR: The code was not able to get to the "Begin solver" section.') + if not start_solver: + print('ERROR: The code was not able to get to the "Begin solver" section.') - if iter_missing: - print('ERROR: The iteration number %d could not be found.'%self.test_iter) + if iter_missing: + print('ERROR: The iteration number %d could not be found.'%self.test_iter) - print('test_iter=%d' % self.test_iter) + print('test_iter=%d' % self.test_iter) - print_vals(self.test_vals, name="test_vals (stored)") + print_vals(self.test_vals, name="test_vals (stored)") - print_vals(sim_vals, name="sim_vals (computed)") + print_vals(sim_vals, name="sim_vals (computed)") - print_vals(delta_vals, name="delta_vals") + print_vals(delta_vals, name="delta_vals") print('test duration: %.2f min'%(running_time/60.0)) #print('==================== End Test: %s ====================\n'%self.tag) From 4ce1448e2406dc7a04092c8b630bcdae435faab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Tue, 2 Apr 2024 18:31:19 +0200 Subject: [PATCH 096/287] Fix mismatched allocation/deallocation. --- SU2_GEO/src/SU2_GEO.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SU2_GEO/src/SU2_GEO.cpp b/SU2_GEO/src/SU2_GEO.cpp index 86b9ee5c6e0..cc8b3193c32 100644 --- a/SU2_GEO/src/SU2_GEO.cpp +++ b/SU2_GEO/src/SU2_GEO.cpp @@ -1435,8 +1435,8 @@ int main(int argc, char* argv[]) { delete[] Gradient; for (iPlane = 0; iPlane < nPlane; iPlane++) { - delete Plane_P0[iPlane]; - delete Plane_Normal[iPlane]; + delete[] Plane_P0[iPlane]; + delete[] Plane_Normal[iPlane]; } delete[] Plane_P0; delete[] Plane_Normal; From cf1fab86fc485ebc24e01f60bafc0d072cd1e789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Tue, 2 Apr 2024 18:56:56 +0200 Subject: [PATCH 097/287] Fix missing deallocation. --- SU2_GEO/src/SU2_GEO.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/SU2_GEO/src/SU2_GEO.cpp b/SU2_GEO/src/SU2_GEO.cpp index cc8b3193c32..4e1d3bad9fe 100644 --- a/SU2_GEO/src/SU2_GEO.cpp +++ b/SU2_GEO/src/SU2_GEO.cpp @@ -1429,6 +1429,7 @@ int main(int argc, char* argv[]) { delete[] Xcoord_Airfoil; delete[] Ycoord_Airfoil; delete[] Zcoord_Airfoil; + delete[] Variable_Airfoil; delete[] ObjectiveFunc; delete[] ObjectiveFunc_New; From 9651460281a880491959e7cece4c37d1994c1774 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Wed, 3 Apr 2024 10:31:35 +0200 Subject: [PATCH 098/287] Fix memory leak of CFreeFormDefBox::BlendingFunction[2]. --- Common/src/grid_movement/CFreeFormDefBox.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Common/src/grid_movement/CFreeFormDefBox.cpp b/Common/src/grid_movement/CFreeFormDefBox.cpp index 78e4b384c9f..6cfd9cc8c85 100644 --- a/Common/src/grid_movement/CFreeFormDefBox.cpp +++ b/Common/src/grid_movement/CFreeFormDefBox.cpp @@ -144,7 +144,8 @@ CFreeFormDefBox::~CFreeFormDefBox() { for (iCornerPoints = 0; iCornerPoints < nCornerPoints; iCornerPoints++) delete[] Coord_Corner_Points[iCornerPoints]; delete[] Coord_Corner_Points; - for (iDim = 0; iDim < nDim; iDim++) { + /*--- nDim is 3 at allocation but might change later, so we used fixed 3 as upper bound for deallocation ---*/ + for (iDim = 0; iDim < 3; iDim++) { delete BlendingFunction[iDim]; } delete[] BlendingFunction; From 7ad81fb70c592454af074a00d9916f39b6f347d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Wed, 3 Apr 2024 10:34:55 +0200 Subject: [PATCH 099/287] Fix reallocation without freeing and memory leak at exit of CSurfaceMovement::FFDBox. --- Common/src/grid_movement/CSurfaceMovement.cpp | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/Common/src/grid_movement/CSurfaceMovement.cpp b/Common/src/grid_movement/CSurfaceMovement.cpp index 59b0cf7bfe8..9b21d64f2c9 100644 --- a/Common/src/grid_movement/CSurfaceMovement.cpp +++ b/Common/src/grid_movement/CSurfaceMovement.cpp @@ -33,12 +33,21 @@ CSurfaceMovement::CSurfaceMovement() : CGridMovement() { size = SU2_MPI::GetSize(); rank = SU2_MPI::GetRank(); + FFDBox = nullptr; nFFDBox = 0; nLevel = 0; FFDBoxDefinition = false; } -CSurfaceMovement::~CSurfaceMovement() = default; +CSurfaceMovement::~CSurfaceMovement() { + if (FFDBox != nullptr) { + for (unsigned int iFFDBox = 0; iFFDBox < MAX_NUMBER_FFD; ++iFFDBox) { + if (FFDBox[iFFDBox] != nullptr) delete FFDBox[iFFDBox]; + } + delete[] FFDBox; + FFDBox = nullptr; + } +}; vector > CSurfaceMovement::SetSurface_Deformation(CGeometry* geometry, CConfig* config) { unsigned short iFFDBox, iDV, iLevel, iChild, iParent, jFFDBox, iMarker; @@ -60,7 +69,16 @@ vector > CSurfaceMovement::SetSurface_Deformation(CGeometry* g if (config->GetDesign_Variable(0) == FFD_SETTING) { /*--- Definition of the FFD deformation class ---*/ - FFDBox = new CFreeFormDefBox*[MAX_NUMBER_FFD]; + /*--- As this method might be called multiple times, properly delete old objects before allocating new ones. ---*/ + if (FFDBox != nullptr) { + for (unsigned int iFFDBox = 0; iFFDBox < MAX_NUMBER_FFD; ++iFFDBox) { + if (FFDBox[iFFDBox] != nullptr) delete FFDBox[iFFDBox]; + } + delete[] FFDBox; + FFDBox = nullptr; + } + + FFDBox = new CFreeFormDefBox*[MAX_NUMBER_FFD](); /*--- Read the FFD information from the config file ---*/ @@ -167,7 +185,16 @@ vector > CSurfaceMovement::SetSurface_Deformation(CGeometry* g (config->GetDesign_Variable(0) == FFD_THICKNESS) || (config->GetDesign_Variable(0) == FFD_ANGLE_OF_ATTACK)) { /*--- Definition of the FFD deformation class ---*/ - FFDBox = new CFreeFormDefBox*[MAX_NUMBER_FFD]; + /*--- As this method might be called multiple times, properly delete old objects before allocating new ones. ---*/ + if (FFDBox != nullptr) { + for (unsigned int iFFDBox = 0; iFFDBox < MAX_NUMBER_FFD; ++iFFDBox) { + if (FFDBox[iFFDBox] != nullptr) delete FFDBox[iFFDBox]; + } + delete[] FFDBox; + FFDBox = nullptr; + } + + FFDBox = new CFreeFormDefBox*[MAX_NUMBER_FFD](); /*--- Read the FFD information from the grid file ---*/ From 41256dcda5ede6a12c89b7e8643d2194a51ee892 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Wed, 3 Apr 2024 11:14:26 +0200 Subject: [PATCH 100/287] Fix semicolon and variable hiding. --- Common/src/grid_movement/CSurfaceMovement.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Common/src/grid_movement/CSurfaceMovement.cpp b/Common/src/grid_movement/CSurfaceMovement.cpp index 9b21d64f2c9..5c29534fb39 100644 --- a/Common/src/grid_movement/CSurfaceMovement.cpp +++ b/Common/src/grid_movement/CSurfaceMovement.cpp @@ -47,7 +47,7 @@ CSurfaceMovement::~CSurfaceMovement() { delete[] FFDBox; FFDBox = nullptr; } -}; +} vector > CSurfaceMovement::SetSurface_Deformation(CGeometry* geometry, CConfig* config) { unsigned short iFFDBox, iDV, iLevel, iChild, iParent, jFFDBox, iMarker; @@ -71,7 +71,7 @@ vector > CSurfaceMovement::SetSurface_Deformation(CGeometry* g /*--- As this method might be called multiple times, properly delete old objects before allocating new ones. ---*/ if (FFDBox != nullptr) { - for (unsigned int iFFDBox = 0; iFFDBox < MAX_NUMBER_FFD; ++iFFDBox) { + for (iFFDBox = 0; iFFDBox < MAX_NUMBER_FFD; ++iFFDBox) { if (FFDBox[iFFDBox] != nullptr) delete FFDBox[iFFDBox]; } delete[] FFDBox; @@ -187,7 +187,7 @@ vector > CSurfaceMovement::SetSurface_Deformation(CGeometry* g /*--- As this method might be called multiple times, properly delete old objects before allocating new ones. ---*/ if (FFDBox != nullptr) { - for (unsigned int iFFDBox = 0; iFFDBox < MAX_NUMBER_FFD; ++iFFDBox) { + for (iFFDBox = 0; iFFDBox < MAX_NUMBER_FFD; ++iFFDBox) { if (FFDBox[iFFDBox] != nullptr) delete FFDBox[iFFDBox]; } delete[] FFDBox; From c97610b02bc1281eb766847e7ef5ed7ac451dfb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Wed, 3 Apr 2024 14:50:32 +0200 Subject: [PATCH 101/287] Explore fix for heap buffer overflow in CInterface. --- SU2_CFD/src/interfaces/CInterface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index 050c948bc1f..20e2b2332a4 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -286,7 +286,7 @@ void CInterface::PreprocessAverage(CGeometry *donor_geometry, CGeometry *target_ for(iSpan = 1; iSpan SpanValuesDonor[jSpan]){ From afad3acf5d96e0ed7a3df1fbcaf7443e688b56c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Wed, 10 Apr 2024 16:25:40 +0200 Subject: [PATCH 102/287] Fix comparison. --- SU2_CFD/src/drivers/CDriver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index 6c1a6170a04..8476c58dc54 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -2389,7 +2389,7 @@ void CDriver::PreprocessDynamicMesh(CConfig *config, CGeometry **geometry, CSolv cout << "Setting dynamic mesh structure for zone "<< iZone + 1<<"." << endl; grid_movement = new CVolumetricMovement(geometry[MESH_0], config); - if (surface_movement != nullptr) + if (surface_movement == nullptr) surface_movement = new CSurfaceMovement(); surface_movement->CopyBoundary(geometry[MESH_0], config); From 49740205d4fd147e7d1b2139bcbead5ca77526d1 Mon Sep 17 00:00:00 2001 From: Nijso Date: Sun, 14 Apr 2024 21:25:25 +0200 Subject: [PATCH 103/287] fix update of dualtime solver for species transport (#2260) --- SU2_CFD/src/iteration/CFluidIteration.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index d5ae7bd22e4..0987329daa7 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -200,6 +200,15 @@ void CFluidIteration::Update(COutput* output, CIntegration**** integration, CGeo solver[val_iZone][val_iInst][MESH_0][HEAT_SOL], config[val_iZone], MESH_0); } + + /*--- Update dual time solver for species transport equations (including flamelet) ---*/ + + if (config[val_iZone]->GetKind_Species_Model() != SPECIES_MODEL::NONE) { + integration[val_iZone][val_iInst][SPECIES_SOL]->SetDualTime_Solver(geometry[val_iZone][val_iInst][MESH_0], + solver[val_iZone][val_iInst][MESH_0][SPECIES_SOL], + config[val_iZone], MESH_0); + } + } } From 7ab1e086d220a31646568d168f622a50ae82332f Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Wed, 17 Apr 2024 16:46:55 +0200 Subject: [PATCH 104/287] Updated tutorials branch --- .github/workflows/regression.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index b9436addd59..159ec2a522b 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -173,7 +173,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:230813-0103 with: # -t -c - args: -b ${{github.ref}} -t develop -c feature_new_flamelet -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t feature_new_flamelet -c feature_new_flamelet -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:230813-0103 with: From 95eafd06a633cddbfaf1a83bf245aaf183a2ba1d Mon Sep 17 00:00:00 2001 From: Nijso Date: Thu, 18 Apr 2024 07:59:11 +0200 Subject: [PATCH 105/287] Fix bug in inlet profile writer. (#2267) * fix profile writer * fix formatting * increment index --- SU2_CFD/src/CMarkerProfileReaderFVM.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/SU2_CFD/src/CMarkerProfileReaderFVM.cpp b/SU2_CFD/src/CMarkerProfileReaderFVM.cpp index b9b27a176aa..b6b1e36479f 100644 --- a/SU2_CFD/src/CMarkerProfileReaderFVM.cpp +++ b/SU2_CFD/src/CMarkerProfileReaderFVM.cpp @@ -302,6 +302,10 @@ void CMarkerProfileReaderFVM::MergeProfileMarkers() { by the master and sorted by marker tag in one large n-dim. array. ---*/ su2double *Coords_Local; jPoint = 0; + + /*--- Index to the string in columNames and columnValues ---*/ + unsigned short columnIndex=0; + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { if (config->GetMarker_All_KindBC(iMarker) == markerType) { @@ -338,12 +342,12 @@ void CMarkerProfileReaderFVM::MergeProfileMarkers() { /*--- Store the column names ---*/ SPRINTF(&Buffer_Send_Name[jPoint*MAX_STRING_SIZE], "%s", - columnNames[iMarker].c_str()); + columnNames[columnIndex].c_str()); /*--- Store the column values ---*/ SPRINTF(&Buffer_Send_Value[jPoint*MAX_STRING_SIZE], "%s", - columnValues[iMarker].c_str()); + columnValues[columnIndex].c_str()); /*--- Increment jPoint as the counter. We need this because iPoint may include halo nodes that we skip over during this loop. ---*/ @@ -352,6 +356,7 @@ void CMarkerProfileReaderFVM::MergeProfileMarkers() { } } + columnIndex++; } } From 67a975fcf3278318c86d767471c88c0fc83d9a5c Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 18 Apr 2024 09:38:55 +0200 Subject: [PATCH 106/287] Corrected gradient method determination for auxilary variables in flamelet solver --- SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp | 3 +-- TestCases/parallel_regression.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index af0a2ae62d1..8fa2d426d8d 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -132,12 +132,11 @@ void CSpeciesFlameletSolver::Preprocessing(CGeometry* geometry, CSolver** solver /*--- Compute preferential diffusion scalar gradients. ---*/ if (config->GetPreferentialDiffusion()) { - switch (config->GetKind_Gradient_Method_Recon()) { + switch (config->GetKind_Gradient_Method()) { case GREEN_GAUSS: SetAuxVar_Gradient_GG(geometry, config); break; case WEIGHTED_LEAST_SQUARES: - case LEAST_SQUARES: SetAuxVar_Gradient_LS(geometry, config); break; default: diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 823fb7446cb..2c391651825 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1054,7 +1054,7 @@ def main(): ###################################### # Aachen Turbine restart - Aachen_3D_restart = TestCase('aachen_turbine_restart') + Aachen_3D_restart = TestCase('aachen_turbine_restart') Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 From b75f0648f4bf6c352a1cf12fcb9e2f698b5b974c Mon Sep 17 00:00:00 2001 From: Cristopher Morales <98025159+Cristopher-Morales@users.noreply.github.com> Date: Sun, 21 Apr 2024 16:21:51 +0200 Subject: [PATCH 107/287] adding scalar bgs residuals for multizone for species flamelet solver (#2269) --- SU2_CFD/src/output/CFlowOutput.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/SU2_CFD/src/output/CFlowOutput.cpp b/SU2_CFD/src/output/CFlowOutput.cpp index 65fac24ddaf..5ffee0d23f5 100644 --- a/SU2_CFD/src/output/CFlowOutput.cpp +++ b/SU2_CFD/src/output/CFlowOutput.cpp @@ -1218,6 +1218,9 @@ void CFlowOutput::LoadHistoryDataScalar(const CConfig* config, const CSolver* co const auto& cv_name = config->GetControllingVariableName(iCV); SetHistoryOutputValue("RMS_" + cv_name, log10(solver[SPECIES_SOL]->GetRes_RMS(iCV))); SetHistoryOutputValue("MAX_" + cv_name, log10(solver[SPECIES_SOL]->GetRes_Max(iCV))); + if (multiZone) { + SetHistoryOutputValue("BGS_" + cv_name, log10(solver[SPECIES_SOL]->GetRes_BGS(iCV))); + } } /*--- auxiliary species transport ---*/ for (unsigned short iReactant=0; iReactantGetNUserScalars(); iReactant++){ From 8ab10072cf894e75833469c21106e4ca464c56a3 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sun, 21 Apr 2024 09:45:07 -0700 Subject: [PATCH 108/287] avoid segfault --- Common/include/CConfig.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index c28c3aaef54..dffd3e85fdd 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -2904,7 +2904,10 @@ class CConfig { * \brief Get the number of design variables. * \return Number of the design variables. */ - unsigned short GetnDV_Value(unsigned short iDV) const { return nDV_Value[iDV]; } + unsigned short GetnDV_Value(unsigned short iDV) const { + if (!nDV_Value) return 0; + return nDV_Value[iDV]; + } /*! * \brief Get the total number of design variables. From aefc894c828ee3a8e519381f9c870b8c3d037f47 Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Tue, 23 Apr 2024 13:08:17 +0900 Subject: [PATCH 109/287] Compressibility Correction for SST model Added two compressibility correction( Wilcox and Zeman ) for the SST model. --- Common/include/option_structure.hpp | 14 ++++++++ Common/src/CConfig.cpp | 6 ++++ .../numerics/turbulent/turb_sources.hpp | 32 ++++++++++++++++--- 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 7199a310193..a7dd35c91a5 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -990,6 +990,8 @@ enum class SST_OPTIONS { 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. */ }; static const MapType SST_Options_Map = { MakePair("NONE", SST_OPTIONS::NONE) @@ -1002,6 +1004,8 @@ static const MapType SST_Options_Map = { 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) }; /*! @@ -1013,6 +1017,8 @@ struct SST_ParsedOptions { bool sust = false; /*!< \brief Bool for SST model with sustaining terms. */ bool uq = false; /*!< \brief Bool for using uncertainty quantification. */ bool modified = false; /*!< \brief Bool for modified (m) SST model. */ + bool compWilcox = false; /*!< \brief Bool for compressibility correction of Wilocx. */ + bool compSarkar = false; /*!< \brief Bool for compressibility correction of Wilocx. */ }; /*! @@ -1048,6 +1054,8 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne const bool sst_v = IsPresent(SST_OPTIONS::V); const bool sst_kl = IsPresent(SST_OPTIONS::KL); 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); if (sst_1994 && sst_2003) { SU2_MPI::Error("Two versions (1994 and 2003) selected for SST_OPTIONS. Please choose only one.", CURRENT_FUNCTION); @@ -1066,11 +1074,17 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne SSTParsedOptions.production = SST_OPTIONS::KL; } else if (sst_uq) { SSTParsedOptions.production = SST_OPTIONS::UQ; + } else if (sst_compWilcox) { + SSTParsedOptions.production = SST_OPTIONS::COMP_Wilcox; + } else if (sst_compSarkar) { + SSTParsedOptions.production = SST_OPTIONS::COMP_Sarkar; } SSTParsedOptions.sust = sst_sust; SSTParsedOptions.modified = sst_m; SSTParsedOptions.uq = sst_uq; + SSTParsedOptions.compWilcox = sst_compWilcox; + SSTParsedOptions.compSarkar = sst_compSarkar; return SSTParsedOptions; } diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 18da76556c4..9c317175f03 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -6157,6 +6157,12 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { cout << "\nperturbing the Reynold's Stress Matrix towards " << eig_val_comp << " component turbulence"; if (uq_permute) cout << " (permuting eigenvectors)"; break; + case SST_OPTIONS::COMP_Wilcox: + cout << " with compressibility correction of Wilcox"; + break; + case SST_OPTIONS::COMP_Sarkar: + cout << " with compressibility correction of Sarkar"; + break; default: cout << " with no production modification"; break; diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index bdf9d0c6fc4..5d92fc087a3 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -740,6 +740,7 @@ class CSourcePieceWise_TurbSST final : public CNumerics { AD::SetPreaccIn(Vorticity_i, 3); AD::SetPreaccIn(V_i[idx.Density()], V_i[idx.LaminarViscosity()], V_i[idx.EddyViscosity()]); AD::SetPreaccIn(V_i[idx.Velocity() + 1]); + AD::SetPreaccIn(V_i[idx.SoundSpeed()]); Density_i = V_i[idx.Density()]; Laminar_Viscosity_i = V_i[idx.LaminarViscosity()]; @@ -778,6 +779,8 @@ class CSourcePieceWise_TurbSST final : public CNumerics { const su2double VorticityMag = GeometryToolbox::Norm(3, Vorticity_i); su2double P_Base = 0; + su2double zetaFMt = 0.0, Dilatation_Sarkar = 0.0; + const su2double Mt = pow(2.0 * ScalarVar_i[0], 0.5)/V_i[idx.SoundSpeed()]; /*--- Apply production term modifications ---*/ switch (sstParsedOptions.production) { @@ -795,6 +798,20 @@ class CSourcePieceWise_TurbSST final : public CNumerics { P_Base = sqrt(StrainMag_i*VorticityMag); break; + case SST_OPTIONS::COMP_Wilcox: + P_Base = StrainMag_i; + if( Mt >= 0.25){ + zetaFMt = 2.0 * (Mt * Mt - 0.25 * 0.25); + } + break; + + case SST_OPTIONS::COMP_Sarkar: + P_Base = StrainMag_i; + if( Mt >= 0.25){ + zetaFMt = 0.5 * (Mt * Mt); + } + break; + default: /*--- Base production term for SST-1994 and SST-2003 ---*/ P_Base = StrainMag_i; @@ -831,10 +848,15 @@ class CSourcePieceWise_TurbSST final : public CNumerics { pw = max(pw, sust_w); } + if(sstParsedOptions.production == SST_OPTIONS::COMP_Sarkar) { + Dilatation_Sarkar = -0.15 * pk * Mt + 0.2 * beta_star * (1.0 +zetaFMt) * Density_i * ScalarVar_i[1] + ScalarVar_i[0] * Mt * Mt; + pk += Dilatation_Sarkar; + } + /*--- Dissipation ---*/ - su2double dk = beta_star * Density_i * ScalarVar_i[1] * ScalarVar_i[0]; - su2double dw = beta_blended * Density_i * ScalarVar_i[1] * ScalarVar_i[1]; + 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); /*--- LM model coupling with production and dissipation term for k transport equation---*/ if (config->GetKind_Trans_Model() == TURB_TRANS_MODEL::LM) { @@ -862,10 +884,10 @@ class CSourcePieceWise_TurbSST final : public CNumerics { /*--- Implicit part ---*/ - Jacobian_i[0][0] = -beta_star * ScalarVar_i[1] * Volume; - Jacobian_i[0][1] = -beta_star * ScalarVar_i[0] * Volume; + Jacobian_i[0][0] = -beta_star * ScalarVar_i[1] * Volume * (1.0 + zetaFMt); + 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; + Jacobian_i[1][1] = -2.0 * beta_blended * ScalarVar_i[1] * Volume * (1.0 - 0.09/beta_blended * zetaFMt); } AD::SetPreaccOut(Residual, nVar); From 54e98dc71a224f21a9f6bdcc0d48dc5b26826c45 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Wed, 24 Apr 2024 13:21:41 +0200 Subject: [PATCH 110/287] CodeFactor complaints --- TestCases/parallel_regression.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 2c391651825..452898b3fad 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1054,9 +1054,9 @@ def main(): ###################################### # Aachen Turbine restart - Aachen_3D_restart = TestCase('aachen_turbine_restart') - Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" - Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" + Aachen_3D_restart = TestCase('aachen_turbine_restart') + Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" + Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 Aachen_3D_restart.test_vals = [-15.329206, -15.008622, -15.078888, -13.841072, -12.727840, -9.975729] test_list.append(Aachen_3D_restart) From 147fdf035b598471a51c2f79efc7e0a231032111 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 25 Apr 2024 09:55:20 +0200 Subject: [PATCH 111/287] Added hydrogen combustion tutorial to tutorial regression tests and updated MLPCpp module --- .../laminar_premixed_h2_flame_cfd.cfg | 2 +- TestCases/tutorials.py | 10 ++++++++++ meson_scripts/init.py | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg b/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg index 314a4aae37d..8e2a13a7274 100644 --- a/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg +++ b/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg @@ -107,7 +107,7 @@ CONV_RESIDUAL_MINVAL= -5 CONV_STARTITER= 20 SCREEN_OUTPUT = INNER_ITER RMS_PRESSURE RMS_ProgressVariable RMS_EnthalpyTot RMS_MixtureFraction HISTORY_OUTPUT = WALL_TIME RMS_RES -VOLUME_OUTPUT = SOLUTION PRIMITIVE SOURCE RESIDUAL +VOLUME_OUTPUT = SOLUTION % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index 849a4f85c26..263e0bdf60e 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -120,6 +120,16 @@ def main(): sudo_tutorial.command = TestCase.Command("mpirun -n 2", "SU2_CFD") test_list.append(sudo_tutorial) + ### Incompressible Combustion + + # Pre-mixed, laminar hydrogen flame with heat loss + premixed_hydrogen = TestCase('premixed_hydrogen') + 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.828673,-10.420037,-11.041527,-4.321735,-11.868641] + test_list.append(premixed_hydrogen) + ### Compressible Flow # Inviscid Bump diff --git a/meson_scripts/init.py b/meson_scripts/init.py index 787bfb56e2f..bc58f9a9564 100755 --- a/meson_scripts/init.py +++ b/meson_scripts/init.py @@ -71,7 +71,7 @@ def init_submodules( github_repo_coolprop = "https://github.com/CoolProp/CoolProp" sha_version_mel = "46205ab019e5224559091375a6d71aabae6bc5b9" github_repo_mel = "https://github.com/pcarruscag/MEL" - sha_version_mlpcpp = "665c45b7d3533c977eb1f637918d5b8b75c07d3b" + sha_version_mlpcpp = "c19c53ea2b85ccfb185f1c6c87044dc0b5bc7ae0" github_repo_mlpcpp = "https://github.com/EvertBunschoten/MLPCpp" medi_name = "MeDiPack" From 1effb945fe7f57553ecca2fa2f4259fcc7efbace Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 25 Apr 2024 10:00:58 +0200 Subject: [PATCH 112/287] Addressed CodeFactor complaints --- TestCases/tutorials.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index 263e0bdf60e..310d974ab3d 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -123,9 +123,9 @@ def main(): ### Incompressible Combustion # Pre-mixed, laminar hydrogen flame with heat loss - premixed_hydrogen = TestCase('premixed_hydrogen') - premixed_hydrogen.cfg_dir = "../Tutorials/incompressible_flow/Inc_Combustion/1__premixed_hydrogen" - premixed_hydrogen.cfg_file = "H2_burner.cfg" + premixed_hydrogen = TestCase('premixed_hydrogen') + 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.828673,-10.420037,-11.041527,-4.321735,-11.868641] test_list.append(premixed_hydrogen) From 3a2895d971738126870e74433d66daacfa8ffde0 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 25 Apr 2024 14:29:40 +0200 Subject: [PATCH 113/287] Updated MLPCpp module --- subprojects/MLPCpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subprojects/MLPCpp b/subprojects/MLPCpp index 665c45b7d35..c19c53ea2b8 160000 --- a/subprojects/MLPCpp +++ b/subprojects/MLPCpp @@ -1 +1 @@ -Subproject commit 665c45b7d3533c977eb1f637918d5b8b75c07d3b +Subproject commit c19c53ea2b85ccfb185f1c6c87044dc0b5bc7ae0 From bde5980835b944e447a594c94b7ab28f84ba16aa Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 25 Apr 2024 15:08:48 +0200 Subject: [PATCH 114/287] Updated regression test values for hydrogen combustion case --- TestCases/parallel_regression.py | 2 +- TestCases/tutorials.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 452898b3fad..b891e7d9a84 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -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.914406, -9.807959, -3.260701, -11.304908] + cfd_flamelet_h2.test_vals = [-10.003106, -9.843748, -3.289857, -11.338273] cfd_flamelet_h2.new_output = True test_list.append(cfd_flamelet_h2) diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index 310d974ab3d..f63fb81c990 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -127,7 +127,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.828673,-10.420037,-11.041527,-4.321735,-11.868641] + premixed_hydrogen.test_vals = [-9.905856, -10.449512, -11.035999, -4.331440, -11.882740] test_list.append(premixed_hydrogen) ### Compressible Flow From 65f06c477ef19dd1098f7d12c2786ac512e64dac Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 25 Apr 2024 19:41:48 +0200 Subject: [PATCH 115/287] Implemented Pedro's comments --- Common/include/CConfig.hpp | 4 ++++ Common/include/containers/CLookUpTable.hpp | 2 +- Common/include/option_structure.hpp | 2 +- Common/src/CConfig.cpp | 3 ++- Common/src/containers/CLookUpTable.cpp | 2 +- .../src/solvers/CSpeciesFlameletSolver.cpp | 22 +++++++------------ .../laminar_premixed_h2_flame_cfd.cfg | 1 - 7 files changed, 17 insertions(+), 19 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index cb65388d1e3..bab87d1b2ac 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -2226,7 +2226,11 @@ class CConfig { if (n_user_sources > 0) return user_source_names[i_user_source]; else return none; } + /*! + * \brief Get the ignition method used for combustion problems. + */ FLAMELET_INIT_TYPE GetFlameletInitType() const { return flame_init_type; } + /*! * \brief Get the number of transported scalars for combustion. */ diff --git a/Common/include/containers/CLookUpTable.hpp b/Common/include/containers/CLookUpTable.hpp index 9f06548c377..230b009fc92 100644 --- a/Common/include/containers/CLookUpTable.hpp +++ b/Common/include/containers/CLookUpTable.hpp @@ -412,7 +412,7 @@ class CLookUpTable { /*! * \brief Check whether requested set of variables are included in the table. */ - bool CheckForVariables(const std::vector& vars_to_check); + bool CheckForVariables(const std::vector& vars_to_check) const; /*! * \brief Returns the index to the variable in the lookup table. diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index a87c4bafe6c..919aefa65b9 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1340,7 +1340,7 @@ enum FLAMELET_LOOKUP_OPS { }; /*! - * \brief the preferential diffusion scalar indices for the preferential diffusion model. + * \brief The preferential diffusion scalar indices for the preferential diffusion model. */ enum FLAMELET_PREF_DIFF_SCALARS { I_BETA_PROGVAR, /*!< \brief Preferential diffusion scalar for the progress variable. */ diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 70d535c02b5..ff2ffaf1eb9 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -988,6 +988,7 @@ void CConfig::SetPointersNull() { Species_Clipping_Min = nullptr; Species_Clipping_Max = nullptr; spark_reaction_rates = nullptr; + /*--- Moving mesh pointers ---*/ nKind_SurfaceMovement = 0; @@ -9233,7 +9234,7 @@ su2double CConfig::GetIsothermal_Temperature(const string& val_marker) const { if (Marker_Isothermal[iMarker_Isothermal] == val_marker) return Isothermal_Temperature[iMarker_Isothermal]; - return Temperature_FreeStream; + return Isothermal_Temperature[0]; } su2double CConfig::GetWall_HeatFlux(const string& val_marker) const { diff --git a/Common/src/containers/CLookUpTable.cpp b/Common/src/containers/CLookUpTable.cpp index e467070e621..5d6ba81b9b4 100644 --- a/Common/src/containers/CLookUpTable.cpp +++ b/Common/src/containers/CLookUpTable.cpp @@ -803,7 +803,7 @@ bool CLookUpTable::IsInTriangle(su2double val_CV1, su2double val_CV2, unsigned l return (abs(area_tri - (area_0 + area_1 + area_2)) < area_tri * 1e-10); } -bool CLookUpTable::CheckForVariables(const std::vector& vars_to_check) { +bool CLookUpTable::CheckForVariables(const std::vector& vars_to_check) const { bool variables_are_present{true}; for (auto iVar = 0u; iVar < vars_to_check.size(); iVar++) { bool var_is_present{false}; diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index 8fa2d426d8d..d31a071a4e1 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -96,9 +96,8 @@ void CSpeciesFlameletSolver::Preprocessing(CGeometry* geometry, CSolver** solver /*--- Apply source terms within spark radius. ---*/ su2double dist_from_center = 0, spark_radius = config->GetFlameInit()[3]; - for (auto iDim = 0u; iDim < nDim; ++iDim) - dist_from_center += pow(geometry->nodes->GetCoord(i_point, iDim) - config->GetFlameInit()[iDim], 2); - if (sqrt(dist_from_center) < spark_radius) { + dist_from_center = GeometryToolbox::SquaredDistance(nDim, geometry->nodes->GetCoord(i_point), config->GetFlameInit()); + if (dist_from_center < pow(spark_radius,2)) { for (auto iVar = 0u; iVar < nVar; iVar++) nodes->SetScalarSource(i_point, iVar, nodes->GetScalarSources(i_point)[iVar] + config->GetSpark()[iVar]); } @@ -411,10 +410,8 @@ void CSpeciesFlameletSolver::BC_Isothermal_Wall_Generic(CGeometry* geometry, CSo CConfig* config, unsigned short val_marker, bool cht_mode) { const bool implicit = config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT; const string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - su2double temp_wall; CFluidModel* fluid_model_local = solver_container[FLOW_SOL]->GetFluidModel(); auto* flowNodes = su2staticcast_p(solver_container[FLOW_SOL]->GetNodes()); - su2double enth_wall; unsigned long n_not_iterated = 0; /*--- Loop over all the vertices on this boundary marker. ---*/ @@ -422,6 +419,7 @@ void CSpeciesFlameletSolver::BC_Isothermal_Wall_Generic(CGeometry* geometry, CSo for (unsigned long iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { unsigned long iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); + su2double temp_wall, enth_wall; if (cht_mode) temp_wall = solver_container[FLOW_SOL]->GetConjugateHeatVariable(val_marker, iVertex, 0); else @@ -588,15 +586,15 @@ void CSpeciesFlameletSolver::Viscous_Residual(const unsigned long iEdge, const C if (PreferentialDiffusion) { CFlowVariable* flowNodes = su2staticcast_p(solver_container[FLOW_SOL]->GetNodes()); - su2double *scalar_i, *scalar_j, *diff_coeff_beta_i, *diff_coeff_beta_j; - scalar_i = new su2double[nVar]; - scalar_j = new su2double[nVar]; - diff_coeff_beta_i = new su2double[nVar], diff_coeff_beta_j = new su2double[nVar]; + su2double scalar_i[MAXNVAR] = {0}, + scalar_j[MAXNVAR] = {0}, + diff_coeff_beta_i[MAXNVAR] = {0}, + diff_coeff_beta_j[MAXNVAR] = {0}; // Number of active transport scalars const auto n_CV = config->GetNControlVars(); - su2activematrix scalar_grad_i(nVar, nDim), scalar_grad_j(nVar, nDim); + su2activematrix scalar_grad_i(MAXNVAR, MAXNDIM), scalar_grad_j(MAXNVAR, MAXNDIM); /*--- Looping over spatial dimensions to fill in the diffusion scalar gradients. ---*/ /*--- The scalar gradient is subtracted to account for regular viscous diffusion. ---*/ for (auto iScalar = 0u; iScalar < n_CV; ++iScalar) { @@ -737,10 +735,6 @@ void CSpeciesFlameletSolver::Viscous_Residual(const unsigned long iEdge, const C LinSysRes.AddBlock(jPoint, residual_thermal); /* No implicit part for the preferential diffusion of heat */ } - delete[] scalar_i; - delete[] scalar_j; - delete[] diff_coeff_beta_i; - delete[] diff_coeff_beta_j; } } diff --git a/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg b/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg index 8e2a13a7274..3f294865a17 100644 --- a/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg +++ b/TestCases/flamelet/07_laminar_premixed_h2_flame_cfd/laminar_premixed_h2_flame_cfd.cfg @@ -5,7 +5,6 @@ % Author: Evert Bunschoten % % Institution: Delft University of Technology % % Date: 01/11/2023 % -% File Version 8.0.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From 9b0351d0d0b9a131319ec1444b5f38d92469b0ed Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Fri, 26 Apr 2024 10:09:46 +0200 Subject: [PATCH 116/287] Implemented suggestions from Nijso and Pedro --- Common/include/CConfig.hpp | 9 +++-- Common/src/CConfig.cpp | 4 +- Common/src/containers/CLookUpTable.cpp | 14 +++---- SU2_CFD/include/fluid/CFluidFlamelet.hpp | 6 +-- SU2_CFD/src/fluid/CFluidFlamelet.cpp | 40 +++++++------------ .../src/solvers/CSpeciesFlameletSolver.cpp | 2 +- 6 files changed, 32 insertions(+), 43 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index bab87d1b2ac..bc32b5407b1 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -1224,9 +1224,10 @@ class CConfig { unsigned short nSpecies_Init; /*!< \brief Number of entries of SPECIES_INIT */ /*--- Additional flamelet solver options ---*/ + ///TODO: Add python wrapper initialization option FLAMELET_INIT_TYPE flame_init_type = FLAMELET_INIT_TYPE::NONE; /*!< \brief Method for solution ignition for flamelet problems. */ - su2double flame_init[8]; /*!< \brief Flame front initialization parameters. */ - su2double spark_init[6]; /*!< \brief Spark ignition initialization parameters. */ + std::array flame_init; /*!< \brief Flame front initialization parameters. */ + std::array spark_init; /*!< \brief Spark ignition initialization parameters. */ su2double* spark_reaction_rates; /*!< \brief Source terms for flamelet spark ignition option. */ unsigned short nspark; /*!< \brief Number of source terms for spark initialization. */ bool preferential_diffusion = false; /*!< \brief Preferential diffusion physics for flamelet solver.*/ @@ -2154,10 +2155,10 @@ class CConfig { switch (flame_init_type) { case FLAMELET_INIT_TYPE::FLAME_FRONT: - return flame_init; + return flame_init.data(); break; case FLAMELET_INIT_TYPE::SPARK: - return spark_init; + return spark_init.data(); break; default: return nullptr; diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index ff2ffaf1eb9..63810ab3e03 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1386,11 +1386,11 @@ void CConfig::SetConfig_Options() { flame_init[3] = 1.0; flame_init[4] = 0.0; flame_init[5] = 0.0; /*--- flame thickness (x) and flame burnt thickness (after this thickness, we have unburnt conditions again) ---*/ flame_init[6] = 0.5e-3; flame_init[7] = 1.0; - addDoubleArrayOption("FLAME_INIT", 8,flame_init); + addDoubleArrayOption("FLAME_INIT", 8,flame_init.begin()); /*!\brief SPARK_INIT \n DESCRIPTION: spark initialization using the flamelet model \ingroup Config*/ for (auto iSpark=0u; iSpark<6; ++iSpark) spark_init[iSpark]=0; - addDoubleArrayOption("SPARK_INIT", 6, spark_init); + addDoubleArrayOption("SPARK_INIT", 6, spark_init.begin()); /*!\brief SPARK_REACTION_RATES \n DESCRIPTION: Net source term values applied to species within spark area during spark ignition. \ingroup Config*/ addDoubleListOption("SPARK_REACTION_RATES", nspark, spark_reaction_rates); diff --git a/Common/src/containers/CLookUpTable.cpp b/Common/src/containers/CLookUpTable.cpp index 5d6ba81b9b4..16c042efba7 100644 --- a/Common/src/containers/CLookUpTable.cpp +++ b/Common/src/containers/CLookUpTable.cpp @@ -804,13 +804,11 @@ bool CLookUpTable::IsInTriangle(su2double val_CV1, su2double val_CV2, unsigned l } bool CLookUpTable::CheckForVariables(const std::vector& vars_to_check) const { - bool variables_are_present{true}; - for (auto iVar = 0u; iVar < vars_to_check.size(); iVar++) { - bool var_is_present{false}; - for (auto jVar = 0u; jVar < names_var.size(); jVar++) { - if (vars_to_check[iVar].compare(names_var[jVar]) == 0) var_is_present = true; - } - if (!var_is_present) variables_are_present = false; + for (const string& var_to_check : vars_to_check) { + if (!std::any_of(names_var.begin(), names_var.end(), + [var_to_check](const std::string& n) { return var_to_check == n; })) { + return false; + }; } - return variables_are_present; + return true; } diff --git a/SU2_CFD/include/fluid/CFluidFlamelet.hpp b/SU2_CFD/include/fluid/CFluidFlamelet.hpp index 5de0231492d..49273b2a9e6 100644 --- a/SU2_CFD/include/fluid/CFluidFlamelet.hpp +++ b/SU2_CFD/include/fluid/CFluidFlamelet.hpp @@ -34,7 +34,7 @@ #define USE_MLPCPP #endif #include "CFluidModel.hpp" -#include + class CFluidFlamelet final : public CFluidModel { private: ENUM_DATADRIVEN_METHOD Kind_DataDriven_Method = @@ -46,7 +46,7 @@ class CFluidFlamelet final : public CFluidModel { int rank; bool include_mixture_fraction = false, /*!< \brief include mixture fraction in controlling variables. */ - PreferentialDiffusion = false; /*!< \brief use preferential diffusion physics. */ + preferential_diffusion = false; /*!< \brief use preferential diffusion physics. */ unsigned short n_scalars, n_lookups, n_user_scalars, /*!< \brief number of passive reactant species. */ n_control_vars; /*!< \brief number of controlling variables. */ @@ -156,5 +156,5 @@ class CFluidFlamelet final : public CFluidModel { * \brief Preferential diffusion as relevant phenomenon in flamelet simulations. * \return Inclusion of preferential diffusion model. */ - inline bool GetPreferentialDiffusion() const override { return PreferentialDiffusion; }; + inline bool GetPreferentialDiffusion() const override { return preferential_diffusion; } }; diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index df87592dc04..0f4c38dcb93 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -26,6 +26,7 @@ */ #include +#include #include "../include/fluid/CFluidFlamelet.hpp" #include "../../../Common/include/containers/CLookUpTable.hpp" #if defined(HAVE_MLPCPP) @@ -33,10 +34,6 @@ #define USE_MLPCPP #endif -#include -#include -#include - CFluidFlamelet::CFluidFlamelet(CConfig* config, su2double value_pressure_operating) : CFluidModel() { rank = SU2_MPI::GetRank(); Kind_DataDriven_Method = config->GetKind_DataDriven_Method(); @@ -99,27 +96,20 @@ CFluidFlamelet::CFluidFlamelet(CConfig* config, su2double value_pressure_operati PreprocessLookUp(config); if (rank == MASTER_NODE) { - cout << "Preferential diffusion: " << (PreferentialDiffusion ? "Enabled" : "Disabled") << endl; + cout << "Preferential diffusion: " << (preferential_diffusion ? "Enabled" : "Disabled") << endl; } } CFluidFlamelet::~CFluidFlamelet() { - switch (Kind_DataDriven_Method) { - case ENUM_DATADRIVEN_METHOD::LUT: - delete look_up_table; - break; - case ENUM_DATADRIVEN_METHOD::MLP: + if (Kind_DataDriven_Method == ENUM_DATADRIVEN_METHOD::LUT) + delete look_up_table; #ifdef USE_MLPCPP - delete iomap_TD; - delete iomap_Sources; - delete iomap_LookUp; - delete lookup_mlp; - if (PreferentialDiffusion) delete iomap_PD; + delete iomap_TD; + delete iomap_Sources; + delete iomap_LookUp; + delete lookup_mlp; + if (preferential_diffusion) delete iomap_PD; #endif - break; - default: - break; - } } void CFluidFlamelet::SetTDState_T(su2double val_temperature, const su2double* val_scalars) { @@ -216,10 +206,10 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { val_vars_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_ENTH] = beta_enth; val_vars_PD[FLAMELET_PREF_DIFF_SCALARS::I_BETA_MIXFRAC] = beta_mixfrac; - PreferentialDiffusion = config->GetPreferentialDiffusion(); + preferential_diffusion = config->GetPreferentialDiffusion(); switch (Kind_DataDriven_Method) { case ENUM_DATADRIVEN_METHOD::LUT: - PreferentialDiffusion = look_up_table->CheckForVariables(varnames_PD); + preferential_diffusion = look_up_table->CheckForVariables(varnames_PD); break; case ENUM_DATADRIVEN_METHOD::MLP: #ifdef USE_MLPCPP @@ -228,14 +218,14 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { auto outputMap = lookup_mlp->FindVariableIndices(iMLP, varnames_PD, false); n_betas += outputMap.size(); } - PreferentialDiffusion = (n_betas == varnames_PD.size()); + preferential_diffusion = (n_betas == varnames_PD.size()); #endif break; default: break; } - if (!PreferentialDiffusion && config->GetPreferentialDiffusion()) + if (!preferential_diffusion && config->GetPreferentialDiffusion()) SU2_MPI::Error("Preferential diffusion scalars not included in flamelet manifold.", CURRENT_FUNCTION); if (Kind_DataDriven_Method == ENUM_DATADRIVEN_METHOD::MLP) { @@ -246,7 +236,7 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { lookup_mlp->PairVariableswithMLPs(*iomap_TD); lookup_mlp->PairVariableswithMLPs(*iomap_Sources); lookup_mlp->PairVariableswithMLPs(*iomap_LookUp); - if (PreferentialDiffusion) { + if (preferential_diffusion) { iomap_PD = new MLPToolbox::CIOMap(controlling_variable_names, varnames_PD); lookup_mlp->PairVariableswithMLPs(*iomap_PD); } @@ -272,7 +262,7 @@ void CFluidFlamelet::PreprocessLookUp(CConfig* config) { LUT_idx = look_up_table->GetIndexOfVar(varnames_LookUp[iVar]); LUT_idx_LookUp.push_back(LUT_idx); } - if (PreferentialDiffusion) { + if (preferential_diffusion) { for (auto iVar=0u; iVar < varnames_PD.size(); iVar++) { LUT_idx_PD.push_back(look_up_table->GetIndexOfVar(varnames_PD[iVar])); } diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index d31a071a4e1..661c9543024 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -468,7 +468,7 @@ void CSpeciesFlameletSolver::BC_Isothermal_Wall_Generic(CGeometry* geometry, CSo su2double dist_ij = sqrt(dist_ij_2); /*--- Compute the normal gradient in temperature using Twall. ---*/ - + ///TODO: Account for preferential diffusion in computation of the heat flux su2double dTdn = -(flowNodes->GetTemperature(Point_Normal) - temp_wall) / dist_ij; /*--- Get thermal conductivity. ---*/ From a44c51cd10f365825a0274a5da6eecf784d092b0 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Fri, 26 Apr 2024 10:52:02 +0200 Subject: [PATCH 117/287] Fixed bug in CFluidFlamelet destructor --- SU2_CFD/src/fluid/CFluidFlamelet.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index 0f4c38dcb93..18dbcd2a43a 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -104,11 +104,13 @@ CFluidFlamelet::~CFluidFlamelet() { if (Kind_DataDriven_Method == ENUM_DATADRIVEN_METHOD::LUT) delete look_up_table; #ifdef USE_MLPCPP - delete iomap_TD; - delete iomap_Sources; - delete iomap_LookUp; - delete lookup_mlp; - if (preferential_diffusion) delete iomap_PD; + if (Kind_DataDriven_Method == ENUM_DATADRIVEN_METHOD::MLP) { + delete iomap_TD; + delete iomap_Sources; + delete iomap_LookUp; + delete lookup_mlp; + if (preferential_diffusion) delete iomap_PD; + } #endif } From 06649f74fa5f7a1d16ecba2d8e3899c7a692f0cb Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Sat, 27 Apr 2024 18:54:29 +0200 Subject: [PATCH 118/287] Set branches for test cases and tutorials back to develop --- .github/workflows/regression.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 159ec2a522b..c001fedf53f 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -173,7 +173,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:230813-0103 with: # -t -c - args: -b ${{github.ref}} -t feature_new_flamelet -c feature_new_flamelet -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:230813-0103 with: From 20e8ec1a3aa2ac6af8c74890359ccc077ec18859 Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Tue, 30 Apr 2024 20:32:15 +0900 Subject: [PATCH 119/287] Wilcox regression regression Test --- TestCases/hybrid_regression.py | 8 + ...b_SST_flatplate_compressibility_Sarkar.cfg | 150 ++++++++++++++++++ ...b_SST_flatplate_compressibility_Wilcox.cfg | 150 ++++++++++++++++++ config_template.cfg | 2 +- 4 files changed, 309 insertions(+), 1 deletion(-) create mode 100644 TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Sarkar/turb_SST_flatplate_compressibility_Sarkar.cfg create mode 100644 TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Wilcox/turb_SST_flatplate_compressibility_Wilcox.cfg diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index 8745a96f610..545a5ec58c2 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -188,6 +188,14 @@ def main(): turb_flatplate.test_vals = [-4.157358, -6.736289, -0.176258, 0.057431] test_list.append(turb_flatplate) + # Flat plate SST compressibility correction Wilcox + turb_flatplate_CC_Wilcox = TestCase('turb_flatplate_Compressibility_Wilcox') + turb_flatplate_CC_Wilcox.cfg_dir = "rans/flatplate/turb_SST_flatplate_compressibility/Wilcox" + turb_flatplate_CC_Wilcox.cfg_file = "turb_SST_flatplate_compressibility_Wilocx.cfg" + turb_flatplate_CC_Wilcox.test_iter = 20 + turb_flatplate_CC_Wilcox.test_vals = [-1.280917808, 1.974174717, 1.440456585, 5.03837059, -4.050814412, 8.520862201] + test_list.append(turb_flatplate_CC_Wilcox) + # ONERA M6 Wing turb_oneram6 = TestCase('turb_oneram6') turb_oneram6.cfg_dir = "rans/oneram6" diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Sarkar/turb_SST_flatplate_compressibility_Sarkar.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Sarkar/turb_SST_flatplate_compressibility_Sarkar.cfg new file mode 100644 index 00000000000..d98073df088 --- /dev/null +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Sarkar/turb_SST_flatplate_compressibility_Sarkar.cfg @@ -0,0 +1,150 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Turbulent flow over flat plate(2DZPH) % +% Author: Sunoh. Kang % +% Institution: Pusan National University % +% Date: 2024.04.30 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= RANS +KIND_TURB_MODEL= SST +SST_OPTIONS= V2003m, COMPRESSIBILITY-SARKAR +MATH_PROBLEM= DIRECT +RESTART_SOL= YES + +% ------------------------ COMPRESSIBLE FREE-STREAM DEFINITION ----------------% +% +MACH_NUMBER= 5.0 +AOA= 0.000 +INIT_OPTION= TD_CONDITIONS +FREESTREAM_OPTION= TEMPERATURE_FS +FREESTREAM_TEMPERATURE= 300.3333 +FREESTREAM_PRESSURE= 13753.90558 +FREESTREAM_TURBULENCEINTENSITY = 0.00002 +FREESTREAM_TURB2LAMVISCRATIO = 0.009 +REF_DIMENSIONALIZATION= DIMENSIONAL +REYNOLDS_NUMBER= 15E6 + +% ---- IDEAL GAS, POLYTPOPIC, VAN DER WALLS AND PENG ROBINSOPN CNSTANTS ------ % +% +FLUID_MODEL= IDEAL_GAS +GAMMA_VALUE= 1.4 +GAS_CONSTANT= 287.058 +ACENTRIC_FACTOR= 0.035 +SPECIFIC_HEAT_CP= 1004.703 +THERMAL_EXPANSION_COEFF= 0.00347 +MOLECULAR_WEIGHT= 28.96 + +% --------------------------- VISCOSITY MODEL ---------------------------------% +% + +VISCOSITY_MODEL= SUTHERLAND +MU_REF= 1.716E-5 +MU_T_REF= 273.15 +SUTHERLAND_CONSTANT= 110.4 + +% ------------------------ THERMAL CONDUCTIVITY MODEL -------------------------% +% + +CONDUCTIVITY_MODEL= CONSTANT_PRANDTL +PRANDTL_LAM= 0.72 +TURBULENT_CONDUCTIVITY_MODEL= CONSTANT_PRANDTL_TURB +PRANDTL_TURB= 0.9 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% + +REF_ORIGIN_MOMENT_X = 0.00 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +REF_LENGTH= 1.0 +REF_AREA= 1.0 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% + +MARKER_PLOTTING = ( wall ) +MARKER_SUPERSONIC_INLET= ( inlet, 300.3333 , 13753.90558 , 1737.082226 , 0.0 , 0.0 ) +MARKER_FAR= ( farfield ) +MARKER_SYM= ( symmetry ) +MARKER_SUPERSONIC_OUTLET= (outlet, 34384.76396) +MARKER_ISOTHERMAL= ( wall, 327.36297) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% + +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +CFL_NUMBER= 0.5 +CFL_ADAPT= YES +CFL_ADAPT_PARAM= ( 0.1, 1.5, 0.5, 50.0 ) + +% --------- SLOPE LIMITER DEFINITION, DISSIPATION SENSOR DEFINITION -----------------% +% + +MUSCL_FLOW= YES +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN_WANG +SLOPE_LIMITER_TURB= NONE +VENKAT_LIMITER_COEFF= 0.05 +JST_SENSOR_COEFF= (0.5, 0.02) + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% + +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= LU_SGS +LINEAR_SOLVER_ERROR= 1E-6 +LINEAR_SOLVER_ITER= 5 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% + +CONV_NUM_METHOD_FLOW= AUSM +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% +% + +CONV_NUM_METHOD_TURB= SCALAR_UPWIND +TIME_DISCRE_TURB= EULER_IMPLICIT + +% ------------------------- SCREEN/HISTORY VOLUME OUTPUT --------------------------% +% + +SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_MOMENTUM-X, RMS_MOMENTUM-Y, RMS_ENERGY, RMS_TKE, RMS_DISSIPATION) +SCREEN_WRT_FREQ_INNER= 1 +SCREEN_WRT_FREQ_OUTER= 1 +SCREEN_WRT_FREQ_TIME= 1 +HISTORY_WRT_FREQ_INNER= 1 +HISTORY_WRT_FREQ_OUTER= 1 +HISTORY_WRT_FREQ_TIME= 1 +OUTPUT_WRT_FREQ= 1000 + +% ------------------------- INPUT/OUTPUT FILE INFORMATION --------------------------% +% + +MESH_FILENAME= mesh_flatplate_turb_137x97.su2 +MESH_FORMAT= SU2 +MESH_OUT_FILENAME= mesh_out.su2 +SOLUTION_FILENAME= restart_flow.dat +SOLUTION_ADJ_FILENAME= solution_adj.dat +OUTPUT_FILES= (RESTART, PARAVIEW, SURFACE_PARAVIEW, TECPLOT, SURFACE_TECPLOT, CSV, SURFACE_CSV ) +CONV_FILENAME= history +BREAKDOWN_FILENAME= forces_breakdown.dat +RESTART_FILENAME= restart_flow.dat +RESTART_ADJ_FILENAME= restart_adj.dat + +% ------------------------------- SOLVER CONTROL ------------------------------% +% + +INNER_ITER= 100 +OUTER_ITER= 1 +TIME_ITER= 100 +CONV_RESIDUAL_MINVAL= -14 +CONV_STARTITER= 10 +CONV_CAUCHY_ELEMS= 100 +CONV_CAUCHY_EPS= 1E-10 \ No newline at end of file diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Wilcox/turb_SST_flatplate_compressibility_Wilcox.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Wilcox/turb_SST_flatplate_compressibility_Wilcox.cfg new file mode 100644 index 00000000000..3af13512de9 --- /dev/null +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Wilcox/turb_SST_flatplate_compressibility_Wilcox.cfg @@ -0,0 +1,150 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Turbulent flow over flat plate(2DZPH) % +% Author: Sunoh. Kang % +% Institution: Pusan National University % +% Date: 2024.04.30 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= RANS +KIND_TURB_MODEL= SST +SST_OPTIONS= V2003m, COMPRESSIBILITY-WILCOX +MATH_PROBLEM= DIRECT +RESTART_SOL= NO + +% ------------------------ COMPRESSIBLE FREE-STREAM DEFINITION ----------------% +% +MACH_NUMBER= 5.0 +AOA= 0.000 +INIT_OPTION= TD_CONDITIONS +FREESTREAM_OPTION= TEMPERATURE_FS +FREESTREAM_TEMPERATURE= 300.3333 +FREESTREAM_PRESSURE= 13753.90558 +FREESTREAM_TURBULENCEINTENSITY = 0.00002 +FREESTREAM_TURB2LAMVISCRATIO = 0.009 +REF_DIMENSIONALIZATION= DIMENSIONAL +REYNOLDS_NUMBER= 15E6 + +% ---- IDEAL GAS, POLYTPOPIC, VAN DER WALLS AND PENG ROBINSOPN CNSTANTS ------ % +% +FLUID_MODEL= IDEAL_GAS +GAMMA_VALUE= 1.4 +GAS_CONSTANT= 287.058 +ACENTRIC_FACTOR= 0.035 +SPECIFIC_HEAT_CP= 1004.703 +THERMAL_EXPANSION_COEFF= 0.00347 +MOLECULAR_WEIGHT= 28.96 + +% --------------------------- VISCOSITY MODEL ---------------------------------% +% + +VISCOSITY_MODEL= SUTHERLAND +MU_REF= 1.716E-5 +MU_T_REF= 273.15 +SUTHERLAND_CONSTANT= 110.4 + +% ------------------------ THERMAL CONDUCTIVITY MODEL -------------------------% +% + +CONDUCTIVITY_MODEL= CONSTANT_PRANDTL +PRANDTL_LAM= 0.72 +TURBULENT_CONDUCTIVITY_MODEL= CONSTANT_PRANDTL_TURB +PRANDTL_TURB= 0.9 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% + +REF_ORIGIN_MOMENT_X = 0.00 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +REF_LENGTH= 1.0 +REF_AREA= 1.0 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% + +MARKER_PLOTTING = ( wall ) +MARKER_SUPERSONIC_INLET= ( inlet, 300.3333 , 13753.90558 , 1737.082226 , 0.0 , 0.0 ) +MARKER_FAR= ( farfield ) +MARKER_SYM= ( symmetry ) +MARKER_SUPERSONIC_OUTLET= (outlet, 34384.76396) +MARKER_ISOTHERMAL= ( wall, 327.36297) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% + +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +CFL_NUMBER= 0.5 +CFL_ADAPT= YES +CFL_ADAPT_PARAM= ( 0.1, 1.5, 0.5, 50.0 ) + +% --------- SLOPE LIMITER DEFINITION, DISSIPATION SENSOR DEFINITION -----------------% +% + +MUSCL_FLOW= YES +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN_WANG +SLOPE_LIMITER_TURB= NONE +VENKAT_LIMITER_COEFF= 0.05 +JST_SENSOR_COEFF= (0.5, 0.02) + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% + +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= LU_SGS +LINEAR_SOLVER_ERROR= 1E-6 +LINEAR_SOLVER_ITER= 5 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% + +CONV_NUM_METHOD_FLOW= AUSM +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% +% + +CONV_NUM_METHOD_TURB= SCALAR_UPWIND +TIME_DISCRE_TURB= EULER_IMPLICIT + +% ------------------------- SCREEN/HISTORY VOLUME OUTPUT --------------------------% +% + +SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_MOMENTUM-X, RMS_MOMENTUM-Y, RMS_ENERGY, RMS_TKE, RMS_DISSIPATION) +SCREEN_WRT_FREQ_INNER= 1 +SCREEN_WRT_FREQ_OUTER= 1 +SCREEN_WRT_FREQ_TIME= 1 +HISTORY_WRT_FREQ_INNER= 1 +HISTORY_WRT_FREQ_OUTER= 1 +HISTORY_WRT_FREQ_TIME= 1 +OUTPUT_WRT_FREQ= 1000 + +% ------------------------- INPUT/OUTPUT FILE INFORMATION --------------------------% +% + +MESH_FILENAME= mesh_flatplate_turb_137x97.su2 +MESH_FORMAT= SU2 +MESH_OUT_FILENAME= mesh_out.su2 +SOLUTION_FILENAME= restart_flow.dat +SOLUTION_ADJ_FILENAME= solution_adj.dat +OUTPUT_FILES= (RESTART, PARAVIEW, SURFACE_PARAVIEW, TECPLOT, SURFACE_TECPLOT, CSV, SURFACE_CSV ) +CONV_FILENAME= history +BREAKDOWN_FILENAME= forces_breakdown.dat +RESTART_FILENAME= restart_flow.dat +RESTART_ADJ_FILENAME= restart_adj.dat + +% ------------------------------- SOLVER CONTROL ------------------------------% +% + +INNER_ITER= 100 +OUTER_ITER= 1 +TIME_ITER= 100 +CONV_RESIDUAL_MINVAL= -14 +CONV_STARTITER= 10 +CONV_CAUCHY_ELEMS= 100 +CONV_CAUCHY_EPS= 1E-10 \ No newline at end of file diff --git a/config_template.cfg b/config_template.cfg index bf3e6bae907..664d49a2e96 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -21,7 +21,7 @@ SOLVER= EULER % Specify turbulence model (NONE, SA, SST) KIND_TURB_MODEL= NONE % -% Specify versions/corrections of the SST model (V2003m, V1994m, VORTICITY, KATO_LAUNDER, UQ, SUSTAINING) +% Specify versions/corrections of the SST model (V2003m, V1994m, VORTICITY, KATO_LAUNDER, UQ, SUSTAINING, COMPRESSIBILITY-WILCOX, COMPRESSIBILITY-SARKAR) SST_OPTIONS= NONE % % Specify versions/corrections of the SA model (NEGATIVE, EDWARDS, WITHFT2, QCR2000, COMPRESSIBILITY, ROTATION, BCM, EXPERIMENTAL) From d7c5b148bec555ce43ef878a6b6b511605fa7b33 Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Tue, 30 Apr 2024 22:32:42 +0900 Subject: [PATCH 120/287] Wilcox Regression Regression --- TestCases/hybrid_regression.py | 2 +- ...b_SST_flatplate_compressibility_Wilcox.cfg | 150 ++++++++++++++++++ 2 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index 545a5ec58c2..89ca406dabe 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -190,7 +190,7 @@ def main(): # Flat plate SST compressibility correction Wilcox turb_flatplate_CC_Wilcox = TestCase('turb_flatplate_Compressibility_Wilcox') - turb_flatplate_CC_Wilcox.cfg_dir = "rans/flatplate/turb_SST_flatplate_compressibility/Wilcox" + turb_flatplate_CC_Wilcox.cfg_dir = "rans/flatplate" turb_flatplate_CC_Wilcox.cfg_file = "turb_SST_flatplate_compressibility_Wilocx.cfg" turb_flatplate_CC_Wilcox.test_iter = 20 turb_flatplate_CC_Wilcox.test_vals = [-1.280917808, 1.974174717, 1.440456585, 5.03837059, -4.050814412, 8.520862201] diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg new file mode 100644 index 00000000000..3af13512de9 --- /dev/null +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg @@ -0,0 +1,150 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Turbulent flow over flat plate(2DZPH) % +% Author: Sunoh. Kang % +% Institution: Pusan National University % +% Date: 2024.04.30 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= RANS +KIND_TURB_MODEL= SST +SST_OPTIONS= V2003m, COMPRESSIBILITY-WILCOX +MATH_PROBLEM= DIRECT +RESTART_SOL= NO + +% ------------------------ COMPRESSIBLE FREE-STREAM DEFINITION ----------------% +% +MACH_NUMBER= 5.0 +AOA= 0.000 +INIT_OPTION= TD_CONDITIONS +FREESTREAM_OPTION= TEMPERATURE_FS +FREESTREAM_TEMPERATURE= 300.3333 +FREESTREAM_PRESSURE= 13753.90558 +FREESTREAM_TURBULENCEINTENSITY = 0.00002 +FREESTREAM_TURB2LAMVISCRATIO = 0.009 +REF_DIMENSIONALIZATION= DIMENSIONAL +REYNOLDS_NUMBER= 15E6 + +% ---- IDEAL GAS, POLYTPOPIC, VAN DER WALLS AND PENG ROBINSOPN CNSTANTS ------ % +% +FLUID_MODEL= IDEAL_GAS +GAMMA_VALUE= 1.4 +GAS_CONSTANT= 287.058 +ACENTRIC_FACTOR= 0.035 +SPECIFIC_HEAT_CP= 1004.703 +THERMAL_EXPANSION_COEFF= 0.00347 +MOLECULAR_WEIGHT= 28.96 + +% --------------------------- VISCOSITY MODEL ---------------------------------% +% + +VISCOSITY_MODEL= SUTHERLAND +MU_REF= 1.716E-5 +MU_T_REF= 273.15 +SUTHERLAND_CONSTANT= 110.4 + +% ------------------------ THERMAL CONDUCTIVITY MODEL -------------------------% +% + +CONDUCTIVITY_MODEL= CONSTANT_PRANDTL +PRANDTL_LAM= 0.72 +TURBULENT_CONDUCTIVITY_MODEL= CONSTANT_PRANDTL_TURB +PRANDTL_TURB= 0.9 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% + +REF_ORIGIN_MOMENT_X = 0.00 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +REF_LENGTH= 1.0 +REF_AREA= 1.0 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% + +MARKER_PLOTTING = ( wall ) +MARKER_SUPERSONIC_INLET= ( inlet, 300.3333 , 13753.90558 , 1737.082226 , 0.0 , 0.0 ) +MARKER_FAR= ( farfield ) +MARKER_SYM= ( symmetry ) +MARKER_SUPERSONIC_OUTLET= (outlet, 34384.76396) +MARKER_ISOTHERMAL= ( wall, 327.36297) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% + +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +CFL_NUMBER= 0.5 +CFL_ADAPT= YES +CFL_ADAPT_PARAM= ( 0.1, 1.5, 0.5, 50.0 ) + +% --------- SLOPE LIMITER DEFINITION, DISSIPATION SENSOR DEFINITION -----------------% +% + +MUSCL_FLOW= YES +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN_WANG +SLOPE_LIMITER_TURB= NONE +VENKAT_LIMITER_COEFF= 0.05 +JST_SENSOR_COEFF= (0.5, 0.02) + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% + +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= LU_SGS +LINEAR_SOLVER_ERROR= 1E-6 +LINEAR_SOLVER_ITER= 5 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% + +CONV_NUM_METHOD_FLOW= AUSM +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% +% + +CONV_NUM_METHOD_TURB= SCALAR_UPWIND +TIME_DISCRE_TURB= EULER_IMPLICIT + +% ------------------------- SCREEN/HISTORY VOLUME OUTPUT --------------------------% +% + +SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_MOMENTUM-X, RMS_MOMENTUM-Y, RMS_ENERGY, RMS_TKE, RMS_DISSIPATION) +SCREEN_WRT_FREQ_INNER= 1 +SCREEN_WRT_FREQ_OUTER= 1 +SCREEN_WRT_FREQ_TIME= 1 +HISTORY_WRT_FREQ_INNER= 1 +HISTORY_WRT_FREQ_OUTER= 1 +HISTORY_WRT_FREQ_TIME= 1 +OUTPUT_WRT_FREQ= 1000 + +% ------------------------- INPUT/OUTPUT FILE INFORMATION --------------------------% +% + +MESH_FILENAME= mesh_flatplate_turb_137x97.su2 +MESH_FORMAT= SU2 +MESH_OUT_FILENAME= mesh_out.su2 +SOLUTION_FILENAME= restart_flow.dat +SOLUTION_ADJ_FILENAME= solution_adj.dat +OUTPUT_FILES= (RESTART, PARAVIEW, SURFACE_PARAVIEW, TECPLOT, SURFACE_TECPLOT, CSV, SURFACE_CSV ) +CONV_FILENAME= history +BREAKDOWN_FILENAME= forces_breakdown.dat +RESTART_FILENAME= restart_flow.dat +RESTART_ADJ_FILENAME= restart_adj.dat + +% ------------------------------- SOLVER CONTROL ------------------------------% +% + +INNER_ITER= 100 +OUTER_ITER= 1 +TIME_ITER= 100 +CONV_RESIDUAL_MINVAL= -14 +CONV_STARTITER= 10 +CONV_CAUCHY_ELEMS= 100 +CONV_CAUCHY_EPS= 1E-10 \ No newline at end of file From aed13d453322e24a5ba1781cb30a4ba1186e8137 Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Tue, 30 Apr 2024 23:37:14 +0900 Subject: [PATCH 121/287] test t --- .../flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg index 3af13512de9..e620265a2ed 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg @@ -141,7 +141,7 @@ RESTART_ADJ_FILENAME= restart_adj.dat % ------------------------------- SOLVER CONTROL ------------------------------% % -INNER_ITER= 100 +INNER_ITER= 20 OUTER_ITER= 1 TIME_ITER= 100 CONV_RESIDUAL_MINVAL= -14 From c358d0bbfaf1e6ad4312ae6370137ed1d5899177 Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Wed, 1 May 2024 01:49:17 +0900 Subject: [PATCH 122/287] Regression_Test Regression --- TestCases/hybrid_regression.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index 89ca406dabe..206e84bdd6f 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -189,9 +189,9 @@ def main(): test_list.append(turb_flatplate) # Flat plate SST compressibility correction Wilcox - turb_flatplate_CC_Wilcox = TestCase('turb_flatplate_Compressibility_Wilcox') + turb_flatplate_CC_Wilcox = TestCase('turb_flatplate_CC_Wilcox') turb_flatplate_CC_Wilcox.cfg_dir = "rans/flatplate" - turb_flatplate_CC_Wilcox.cfg_file = "turb_SST_flatplate_compressibility_Wilocx.cfg" + 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.280917808, 1.974174717, 1.440456585, 5.03837059, -4.050814412, 8.520862201] test_list.append(turb_flatplate_CC_Wilcox) From 11de1471ed9cb3472b0410f2f8c9366237b6f7b7 Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Wed, 1 May 2024 10:54:27 +0900 Subject: [PATCH 123/287] Regression_Test remove hybrid/ add parallel --- TestCases/hybrid_regression.py | 8 -------- TestCases/parallel_regression.py | 8 ++++++++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index 206e84bdd6f..8745a96f610 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -188,14 +188,6 @@ def main(): turb_flatplate.test_vals = [-4.157358, -6.736289, -0.176258, 0.057431] test_list.append(turb_flatplate) - # Flat plate SST compressibility correction Wilcox - turb_flatplate_CC_Wilcox = TestCase('turb_flatplate_CC_Wilcox') - 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.280917808, 1.974174717, 1.440456585, 5.03837059, -4.050814412, 8.520862201] - test_list.append(turb_flatplate_CC_Wilcox) - # ONERA M6 Wing turb_oneram6 = TestCase('turb_oneram6') turb_oneram6.cfg_dir = "rans/oneram6" diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index b891e7d9a84..47349c0731c 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -392,6 +392,14 @@ def main(): turb_flatplate_species.test_vals = [-4.147727, -0.634899, -1.770894, 1.334987, -3.250340, 9.000000, -6.700853, 5.000000, -6.991055, 10.000000, -6.033829, 0.996033, 0.996033] test_list.append(turb_flatplate_species) + # Flat plate SST compressibility correction Wilcox + turb_flatplate_CC_Wilcox = TestCase('turb_flatplate_CC_Wilcox') + 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.280918, 1.974175, 1.440457, 5.038371, -4.050814, 8.520862] + test_list.append(turb_flatplate_CC_Wilcox) + # ONERA M6 Wing turb_oneram6 = TestCase('turb_oneram6') turb_oneram6.cfg_dir = "rans/oneram6" From 5b68ade39930a490cc7f05f87fdf6d393bba625a Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Thu, 2 May 2024 11:31:57 +0900 Subject: [PATCH 124/287] Regression_2 Wilcox_Regression --- .../flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg index e620265a2ed..803013c4804 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg @@ -141,10 +141,10 @@ RESTART_ADJ_FILENAME= restart_adj.dat % ------------------------------- SOLVER CONTROL ------------------------------% % -INNER_ITER= 20 +INNER_ITER= 100 OUTER_ITER= 1 TIME_ITER= 100 CONV_RESIDUAL_MINVAL= -14 CONV_STARTITER= 10 CONV_CAUCHY_ELEMS= 100 -CONV_CAUCHY_EPS= 1E-10 \ No newline at end of file +CONV_CAUCHY_EPS= 1E-10 From cdf5231bc296f5dee4addde380ec2e02c8374747 Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Thu, 2 May 2024 12:42:53 +0900 Subject: [PATCH 125/287] Reeeeeee Re --- .../flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg index 803013c4804..846e23c72d4 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg @@ -141,7 +141,7 @@ RESTART_ADJ_FILENAME= restart_adj.dat % ------------------------------- SOLVER CONTROL ------------------------------% % -INNER_ITER= 100 +INNER_ITER= 99999 OUTER_ITER= 1 TIME_ITER= 100 CONV_RESIDUAL_MINVAL= -14 From d9efed5b55c8d43d536c3a6a4a70a2523514bc5c Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Thu, 2 May 2024 13:34:22 +0900 Subject: [PATCH 126/287] Reee Re2 --- .../flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg index 846e23c72d4..49739edb95f 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg @@ -141,7 +141,7 @@ RESTART_ADJ_FILENAME= restart_adj.dat % ------------------------------- SOLVER CONTROL ------------------------------% % -INNER_ITER= 99999 +ITER= 100 OUTER_ITER= 1 TIME_ITER= 100 CONV_RESIDUAL_MINVAL= -14 From 39de5be36d1c91ac75bc86ff1a13ade7a5a300c1 Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Thu, 2 May 2024 14:18:09 +0900 Subject: [PATCH 127/287] Regression Regression test for Wilcox and Sarkar . --- TestCases/parallel_regression.py | 10 +- ...b_SST_flatplate_compressibility_Wilcox.cfg | 150 ------------------ ...b_SST_flatplate_compressibility_Sarkar.cfg | 6 +- 3 files changed, 12 insertions(+), 154 deletions(-) delete mode 100644 TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Wilcox/turb_SST_flatplate_compressibility_Wilcox.cfg rename TestCases/rans/flatplate/{turb_SST_flatplate_compressibility/Sarkar => }/turb_SST_flatplate_compressibility_Sarkar.cfg (98%) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 47349c0731c..9d642f28035 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -397,7 +397,15 @@ 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.280918, 1.974175, 1.440457, 5.038371, -4.050814, 8.520862] + turb_flatplate_CC_Wilcox.test_vals = [-1.280847, 1.974242, 1.440510, 5.038429, -4.051126, 8.520857] + test_list.append(turb_flatplate_CC_Wilcox) + + # Flat plate SST compressibility correction Sarkar + turb_flatplate_CC_Wilcox = TestCase('turb_flatplate_CC_Wilcox') + 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.280847, 1.974242, 1.440510, 5.038429, -4.051126, 8.520857] test_list.append(turb_flatplate_CC_Wilcox) # ONERA M6 Wing diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Wilcox/turb_SST_flatplate_compressibility_Wilcox.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Wilcox/turb_SST_flatplate_compressibility_Wilcox.cfg deleted file mode 100644 index 3af13512de9..00000000000 --- a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Wilcox/turb_SST_flatplate_compressibility_Wilcox.cfg +++ /dev/null @@ -1,150 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% SU2 configuration file % -% Case description: Turbulent flow over flat plate(2DZPH) % -% Author: Sunoh. Kang % -% Institution: Pusan National University % -% Date: 2024.04.30 % -% File Version 8.0.1 "Harrier" % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -SOLVER= RANS -KIND_TURB_MODEL= SST -SST_OPTIONS= V2003m, COMPRESSIBILITY-WILCOX -MATH_PROBLEM= DIRECT -RESTART_SOL= NO - -% ------------------------ COMPRESSIBLE FREE-STREAM DEFINITION ----------------% -% -MACH_NUMBER= 5.0 -AOA= 0.000 -INIT_OPTION= TD_CONDITIONS -FREESTREAM_OPTION= TEMPERATURE_FS -FREESTREAM_TEMPERATURE= 300.3333 -FREESTREAM_PRESSURE= 13753.90558 -FREESTREAM_TURBULENCEINTENSITY = 0.00002 -FREESTREAM_TURB2LAMVISCRATIO = 0.009 -REF_DIMENSIONALIZATION= DIMENSIONAL -REYNOLDS_NUMBER= 15E6 - -% ---- IDEAL GAS, POLYTPOPIC, VAN DER WALLS AND PENG ROBINSOPN CNSTANTS ------ % -% -FLUID_MODEL= IDEAL_GAS -GAMMA_VALUE= 1.4 -GAS_CONSTANT= 287.058 -ACENTRIC_FACTOR= 0.035 -SPECIFIC_HEAT_CP= 1004.703 -THERMAL_EXPANSION_COEFF= 0.00347 -MOLECULAR_WEIGHT= 28.96 - -% --------------------------- VISCOSITY MODEL ---------------------------------% -% - -VISCOSITY_MODEL= SUTHERLAND -MU_REF= 1.716E-5 -MU_T_REF= 273.15 -SUTHERLAND_CONSTANT= 110.4 - -% ------------------------ THERMAL CONDUCTIVITY MODEL -------------------------% -% - -CONDUCTIVITY_MODEL= CONSTANT_PRANDTL -PRANDTL_LAM= 0.72 -TURBULENT_CONDUCTIVITY_MODEL= CONSTANT_PRANDTL_TURB -PRANDTL_TURB= 0.9 - -% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% -% - -REF_ORIGIN_MOMENT_X = 0.00 -REF_ORIGIN_MOMENT_Y = 0.00 -REF_ORIGIN_MOMENT_Z = 0.00 -REF_LENGTH= 1.0 -REF_AREA= 1.0 - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% - -MARKER_PLOTTING = ( wall ) -MARKER_SUPERSONIC_INLET= ( inlet, 300.3333 , 13753.90558 , 1737.082226 , 0.0 , 0.0 ) -MARKER_FAR= ( farfield ) -MARKER_SYM= ( symmetry ) -MARKER_SUPERSONIC_OUTLET= (outlet, 34384.76396) -MARKER_ISOTHERMAL= ( wall, 327.36297) - -% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% -% - -NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 0.5 -CFL_ADAPT= YES -CFL_ADAPT_PARAM= ( 0.1, 1.5, 0.5, 50.0 ) - -% --------- SLOPE LIMITER DEFINITION, DISSIPATION SENSOR DEFINITION -----------------% -% - -MUSCL_FLOW= YES -SLOPE_LIMITER_FLOW= VENKATAKRISHNAN_WANG -SLOPE_LIMITER_TURB= NONE -VENKAT_LIMITER_COEFF= 0.05 -JST_SENSOR_COEFF= (0.5, 0.02) - -% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% -% - -LINEAR_SOLVER= FGMRES -LINEAR_SOLVER_PREC= LU_SGS -LINEAR_SOLVER_ERROR= 1E-6 -LINEAR_SOLVER_ITER= 5 - -% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% -% - -CONV_NUM_METHOD_FLOW= AUSM -TIME_DISCRE_FLOW= EULER_IMPLICIT - -% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% -% - -CONV_NUM_METHOD_TURB= SCALAR_UPWIND -TIME_DISCRE_TURB= EULER_IMPLICIT - -% ------------------------- SCREEN/HISTORY VOLUME OUTPUT --------------------------% -% - -SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_MOMENTUM-X, RMS_MOMENTUM-Y, RMS_ENERGY, RMS_TKE, RMS_DISSIPATION) -SCREEN_WRT_FREQ_INNER= 1 -SCREEN_WRT_FREQ_OUTER= 1 -SCREEN_WRT_FREQ_TIME= 1 -HISTORY_WRT_FREQ_INNER= 1 -HISTORY_WRT_FREQ_OUTER= 1 -HISTORY_WRT_FREQ_TIME= 1 -OUTPUT_WRT_FREQ= 1000 - -% ------------------------- INPUT/OUTPUT FILE INFORMATION --------------------------% -% - -MESH_FILENAME= mesh_flatplate_turb_137x97.su2 -MESH_FORMAT= SU2 -MESH_OUT_FILENAME= mesh_out.su2 -SOLUTION_FILENAME= restart_flow.dat -SOLUTION_ADJ_FILENAME= solution_adj.dat -OUTPUT_FILES= (RESTART, PARAVIEW, SURFACE_PARAVIEW, TECPLOT, SURFACE_TECPLOT, CSV, SURFACE_CSV ) -CONV_FILENAME= history -BREAKDOWN_FILENAME= forces_breakdown.dat -RESTART_FILENAME= restart_flow.dat -RESTART_ADJ_FILENAME= restart_adj.dat - -% ------------------------------- SOLVER CONTROL ------------------------------% -% - -INNER_ITER= 100 -OUTER_ITER= 1 -TIME_ITER= 100 -CONV_RESIDUAL_MINVAL= -14 -CONV_STARTITER= 10 -CONV_CAUCHY_ELEMS= 100 -CONV_CAUCHY_EPS= 1E-10 \ No newline at end of file diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Sarkar/turb_SST_flatplate_compressibility_Sarkar.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg similarity index 98% rename from TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Sarkar/turb_SST_flatplate_compressibility_Sarkar.cfg rename to TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg index d98073df088..bd545ece45a 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility/Sarkar/turb_SST_flatplate_compressibility_Sarkar.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg @@ -15,7 +15,7 @@ SOLVER= RANS KIND_TURB_MODEL= SST SST_OPTIONS= V2003m, COMPRESSIBILITY-SARKAR MATH_PROBLEM= DIRECT -RESTART_SOL= YES +RESTART_SOL= NO % ------------------------ COMPRESSIBLE FREE-STREAM DEFINITION ----------------% % @@ -141,10 +141,10 @@ RESTART_ADJ_FILENAME= restart_adj.dat % ------------------------------- SOLVER CONTROL ------------------------------% % -INNER_ITER= 100 +ITER= 100 OUTER_ITER= 1 TIME_ITER= 100 CONV_RESIDUAL_MINVAL= -14 CONV_STARTITER= 10 CONV_CAUCHY_ELEMS= 100 -CONV_CAUCHY_EPS= 1E-10 \ No newline at end of file +CONV_CAUCHY_EPS= 1E-10 From 6581d96074cdc1f7a8b215ab281c7da74b84a146 Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Thu, 2 May 2024 15:07:43 +0900 Subject: [PATCH 128/287] Regression Sarkar --- TestCases/parallel_regression.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 9d642f28035..439873b54dc 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -401,12 +401,12 @@ def main(): test_list.append(turb_flatplate_CC_Wilcox) # Flat plate SST compressibility correction Sarkar - turb_flatplate_CC_Wilcox = TestCase('turb_flatplate_CC_Wilcox') - 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.280847, 1.974242, 1.440510, 5.038429, -4.051126, 8.520857] - test_list.append(turb_flatplate_CC_Wilcox) + turb_flatplate_CC_Sarkar = TestCase('turb_flatplate_CC_Sarkar') + 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.280847, 1.974242, 1.440510, 5.038429, -4.051126, 8.520857] + test_list.append(turb_flatplate_CC_Sarkar) # ONERA M6 Wing turb_oneram6 = TestCase('turb_oneram6') From f315436b970e5a6d52eabd22c844d474de5ff499 Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Thu, 2 May 2024 15:10:42 +0900 Subject: [PATCH 129/287] Re Re --- TestCases/parallel_regression.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 439873b54dc..15679a96b1d 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -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.280847, 1.974242, 1.440510, 5.038429, -4.051126, 8.520857] + turb_flatplate_CC_Sarkar.test_vals = [-1.280847, 1.974242, 1.440510, 5.038429, -4.051126, 8.520800] test_list.append(turb_flatplate_CC_Sarkar) # ONERA M6 Wing From 559492820b050866a8b9195a0c9334dd925f1f6b Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Thu, 2 May 2024 15:35:20 +0900 Subject: [PATCH 130/287] Regression for Willcox and Sarkar Regression Test --- TestCases/parallel_regression.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 15679a96b1d..aad839ceb6a 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -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.280847, 1.974242, 1.440510, 5.038429, -4.051126, 8.520800] + turb_flatplate_CC_Sarkar.test_vals = [-1.280847, 1.974242, 1.440510, 5.038429, -1.827406, 8.520709] test_list.append(turb_flatplate_CC_Sarkar) # ONERA M6 Wing From 3c0b73f8d7eaf53e1e688431eb16745c9edc6a5c Mon Sep 17 00:00:00 2001 From: Sunoh Kang <50565314+sun5k@users.noreply.github.com> Date: Sun, 5 May 2024 18:26:59 +0900 Subject: [PATCH 131/287] Update Common/include/option_structure.hpp Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- Common/include/option_structure.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 15a967a1775..c6d4fd77293 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1017,8 +1017,8 @@ struct SST_ParsedOptions { bool sust = false; /*!< \brief Bool for SST model with sustaining terms. */ bool uq = false; /*!< \brief Bool for using uncertainty quantification. */ bool modified = false; /*!< \brief Bool for modified (m) SST model. */ - bool compWilcox = false; /*!< \brief Bool for compressibility correction of Wilocx. */ - bool compSarkar = false; /*!< \brief Bool for compressibility correction of Wilocx. */ + bool compWilcox = false; /*!< \brief Bool for compressibility correction of Wilcox. */ + bool compSarkar = false; /*!< \brief Bool for compressibility correction of Sarkar. */ }; /*! From 3abd35011fe79331ad43bc57cb18efdda143c838 Mon Sep 17 00:00:00 2001 From: Sunoh Kang <50565314+sun5k@users.noreply.github.com> Date: Sun, 5 May 2024 18:27:08 +0900 Subject: [PATCH 132/287] Update SU2_CFD/include/numerics/turbulent/turb_sources.hpp Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- SU2_CFD/include/numerics/turbulent/turb_sources.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index 5d92fc087a3..54405254d3e 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -780,7 +780,7 @@ class CSourcePieceWise_TurbSST final : public CNumerics { const su2double VorticityMag = GeometryToolbox::Norm(3, Vorticity_i); su2double P_Base = 0; su2double zetaFMt = 0.0, Dilatation_Sarkar = 0.0; - const su2double Mt = pow(2.0 * ScalarVar_i[0], 0.5)/V_i[idx.SoundSpeed()]; + const su2double Mt = sqrt(2.0 * ScalarVar_i[0]) / V_i[idx.SoundSpeed()]; /*--- Apply production term modifications ---*/ switch (sstParsedOptions.production) { From 6259103c0ded3a183576d036b5dac64768c606dd Mon Sep 17 00:00:00 2001 From: Sunoh Kang <50565314+sun5k@users.noreply.github.com> Date: Sun, 5 May 2024 18:27:17 +0900 Subject: [PATCH 133/287] Update SU2_CFD/include/numerics/turbulent/turb_sources.hpp Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- SU2_CFD/include/numerics/turbulent/turb_sources.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index 54405254d3e..383ef87cc16 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -800,7 +800,7 @@ class CSourcePieceWise_TurbSST final : public CNumerics { case SST_OPTIONS::COMP_Wilcox: P_Base = StrainMag_i; - if( Mt >= 0.25){ + if (Mt >= 0.25) { zetaFMt = 2.0 * (Mt * Mt - 0.25 * 0.25); } break; From 4a1280ea3a17a528b49a5d648ae00c457b1da733 Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Sun, 5 May 2024 18:29:47 +0900 Subject: [PATCH 134/287] Fix Sarkar's pressure dilatation term Fix --- SU2_CFD/include/numerics/turbulent/turb_sources.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index 383ef87cc16..f4865e46b0b 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -849,7 +849,7 @@ class CSourcePieceWise_TurbSST final : public CNumerics { } if(sstParsedOptions.production == SST_OPTIONS::COMP_Sarkar) { - Dilatation_Sarkar = -0.15 * pk * Mt + 0.2 * beta_star * (1.0 +zetaFMt) * Density_i * ScalarVar_i[1] + ScalarVar_i[0] * Mt * Mt; + Dilatation_Sarkar = -0.15 * pk * Mt + 0.2 * beta_star * (1.0 +zetaFMt) * Density_i * ScalarVar_i[1] * ScalarVar_i[0] * Mt * Mt; pk += Dilatation_Sarkar; } From 57d369960faa832d674d3ef6710b6d668e03fdbc Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Sun, 5 May 2024 19:46:14 +0900 Subject: [PATCH 135/287] Regression Sarkar Regression --- TestCases/parallel_regression.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index aad839ceb6a..ef29140b1d7 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -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.280847, 1.974242, 1.440510, 5.038429, -1.827406, 8.520709] + turb_flatplate_CC_Sarkar.test_vals = [-1.280847, 1.974242, 1.440510, 5.038429, -4.051129, 8.520857] test_list.append(turb_flatplate_CC_Sarkar) # ONERA M6 Wing From aa2787b4437a10e917253020b007f9763ebd984f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Wed, 8 May 2024 10:35:12 +0200 Subject: [PATCH 136/287] Revert "Explore fix for heap buffer overflow in CInterface." This reverts commit c97610b02bc1281eb766847e7ef5ed7ac451dfb9. --- SU2_CFD/src/interfaces/CInterface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index 20e2b2332a4..050c948bc1f 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -286,7 +286,7 @@ void CInterface::PreprocessAverage(CGeometry *donor_geometry, CGeometry *target_ for(iSpan = 1; iSpan SpanValuesDonor[jSpan]){ From 0f3fc3ec900f1518c0c3ed26c3e971ae27fb974c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Wed, 8 May 2024 10:39:15 +0200 Subject: [PATCH 137/287] Disable address sanitizer runs of the Aachen turbine test. --- TestCases/parallel_regression.py | 1 + TestCases/serial_regression.py | 1 + 2 files changed, 2 insertions(+) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index b891e7d9a84..f8403488070 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1058,6 +1058,7 @@ def main(): Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 + Aachen_3D_restart.enabled_with_asan = False Aachen_3D_restart.test_vals = [-15.329206, -15.008622, -15.078888, -13.841072, -12.727840, -9.975729] test_list.append(Aachen_3D_restart) diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index b0cb0c4ae7b..f7ab332ae7a 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -860,6 +860,7 @@ def main(): Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 + Aachen_3D_restart.enabled_with_asan = False Aachen_3D_restart.test_vals = [-15.137167, -14.551444, -15.078894, -13.486154, -12.724891, -9.717612] test_list.append(Aachen_3D_restart) From b253dc0c5ac99bb84b991742efadd123596c0436 Mon Sep 17 00:00:00 2001 From: joshkellyjak Date: Wed, 8 May 2024 12:40:44 +0100 Subject: [PATCH 138/287] Revert to previous 'dampning' method --- SU2_CFD/include/solvers/CEulerSolver.hpp | 2 -- SU2_CFD/src/solvers/CEulerSolver.cpp | 34 ++++++++++++------------ 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index 0b9aee94399..ee3d0efd2d9 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -139,8 +139,6 @@ class CEulerSolver : public CFVMFlowSolverBase AverageMassFlowRate; - vector AverageMomentumThrust; - vector AveragePressureForce; su2activematrix DensityIn; su2activematrix PressureIn; diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 44d68beeedc..804edc94ff7 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -6437,11 +6437,18 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu case MASS_FLOW_OUTLET: auto const MassFlowRate_e = config->GetGiles_Var1(Marker_Tag); - auto const deltam = 1 - MassFlowRate_e/AverageMassFlowRate[val_marker]; - Pressure_e = AverageMomentumThrust[val_marker]*deltam+AveragePressureForce[val_marker]; + auto const relFacMassFlowRate = config->GetGiles_Var2(Marker_Tag); + + Pressure_e = AveragePressure[val_marker][nSpanWiseSections]+relFacMassFlowRate*(AverageMassFlowRate[val_marker]-MassFlowRate_e); - /*--- Compute avg characteristic jump ---*/ - c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); + /* --- Compute avg characteristic jump --- */ + if (nDim == 2){ + c_avg[3] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); + } + else + { + c_avg[4] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); + } break; } @@ -8945,7 +8952,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC const auto nSpanWiseSections = config->GetnSpanWiseSections(); for (auto iSpan= 0; iSpan < nSpanWiseSections + 1; iSpan++){ - su2double TotalDensity{0}, TotalPressure{0}, TotalNu{0}, TotalOmega{0}, TotalKine{0}, TotalVelocity[MAXNDIM], TotalMomentumThrust{0}, + su2double TotalDensity{0}, TotalPressure{0}, TotalNu{0}, TotalOmega{0}, TotalKine{0}, TotalVelocity[MAXNDIM], TotalAreaDensity{0}, TotalAreaPressure{0}, TotalAreaNu{0}, TotalAreaOmega{0}, TotalAreaKine{0}, TotalAreaVelocity[MAXNDIM], TotalMassDensity{0}, TotalMassPressure{0}, TotalMassNu{0}, TotalMassOmega{0}, TotalMassKine{0}, TotalMassVelocity[MAXNDIM]; @@ -8986,8 +8993,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC TotalAreaDensity += Area*Density; TotalMassPressure += Area*(Density*TurboVelocity[0] )*Pressure; - TotalMassDensity += Area*(Density*TurboVelocity[0] )*Density; - TotalMomentumThrust += Area*(Density*TurboVelocity[0]*TurboVelocity[0]); + TotalMassDensity += Area*(Density*TurboVelocity[0] )*Density; for (auto iDim = 0u; iDim < nDim; iDim++) { TotalVelocity[iDim] += Velocity[iDim]; @@ -9066,7 +9072,6 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC TotalAreaPressure = Allreduce(TotalAreaPressure); TotalMassDensity = Allreduce(TotalMassDensity); TotalMassPressure = Allreduce(TotalMassPressure); - TotalMomentumThrust = Allreduce(TotalMomentumThrust); TotalNu = Allreduce(TotalNu); TotalKine = Allreduce(TotalKine); @@ -9113,8 +9118,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC /*--- Compute the averaged value for the boundary of interest for the span of interest ---*/ const bool belowMachLimit = (abs(MachTest)< config->GetAverageMachLimit()); - su2double avgDensity{0}, avgPressure{0}, avgKine{0}, avgOmega{0}, avgNu{0}, avgMomThrust{0}, - avgVelocity[MAXNDIM] = {0}; + su2double avgDensity{0}, avgPressure{0}, avgKine{0}, avgOmega{0}, avgNu{0}, avgVelocity[MAXNDIM] = {0}; for (auto iVar = 0u; iVar Date: Wed, 8 May 2024 12:41:59 +0100 Subject: [PATCH 139/287] Revert "Revert to previous 'dampning' method" This reverts commit b253dc0c5ac99bb84b991742efadd123596c0436. --- SU2_CFD/include/solvers/CEulerSolver.hpp | 2 ++ SU2_CFD/src/solvers/CEulerSolver.cpp | 34 ++++++++++++------------ 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index ee3d0efd2d9..0b9aee94399 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -139,6 +139,8 @@ class CEulerSolver : public CFVMFlowSolverBase AverageMassFlowRate; + vector AverageMomentumThrust; + vector AveragePressureForce; su2activematrix DensityIn; su2activematrix PressureIn; diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 804edc94ff7..44d68beeedc 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -6437,18 +6437,11 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu case MASS_FLOW_OUTLET: auto const MassFlowRate_e = config->GetGiles_Var1(Marker_Tag); - auto const relFacMassFlowRate = config->GetGiles_Var2(Marker_Tag); - - Pressure_e = AveragePressure[val_marker][nSpanWiseSections]+relFacMassFlowRate*(AverageMassFlowRate[val_marker]-MassFlowRate_e); + auto const deltam = 1 - MassFlowRate_e/AverageMassFlowRate[val_marker]; + Pressure_e = AverageMomentumThrust[val_marker]*deltam+AveragePressureForce[val_marker]; - /* --- Compute avg characteristic jump --- */ - if (nDim == 2){ - c_avg[3] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); - } - else - { - c_avg[4] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); - } + /*--- Compute avg characteristic jump ---*/ + c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); break; } @@ -8952,7 +8945,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC const auto nSpanWiseSections = config->GetnSpanWiseSections(); for (auto iSpan= 0; iSpan < nSpanWiseSections + 1; iSpan++){ - su2double TotalDensity{0}, TotalPressure{0}, TotalNu{0}, TotalOmega{0}, TotalKine{0}, TotalVelocity[MAXNDIM], + su2double TotalDensity{0}, TotalPressure{0}, TotalNu{0}, TotalOmega{0}, TotalKine{0}, TotalVelocity[MAXNDIM], TotalMomentumThrust{0}, TotalAreaDensity{0}, TotalAreaPressure{0}, TotalAreaNu{0}, TotalAreaOmega{0}, TotalAreaKine{0}, TotalAreaVelocity[MAXNDIM], TotalMassDensity{0}, TotalMassPressure{0}, TotalMassNu{0}, TotalMassOmega{0}, TotalMassKine{0}, TotalMassVelocity[MAXNDIM]; @@ -8993,7 +8986,8 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC TotalAreaDensity += Area*Density; TotalMassPressure += Area*(Density*TurboVelocity[0] )*Pressure; - TotalMassDensity += Area*(Density*TurboVelocity[0] )*Density; + TotalMassDensity += Area*(Density*TurboVelocity[0] )*Density; + TotalMomentumThrust += Area*(Density*TurboVelocity[0]*TurboVelocity[0]); for (auto iDim = 0u; iDim < nDim; iDim++) { TotalVelocity[iDim] += Velocity[iDim]; @@ -9072,6 +9066,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC TotalAreaPressure = Allreduce(TotalAreaPressure); TotalMassDensity = Allreduce(TotalMassDensity); TotalMassPressure = Allreduce(TotalMassPressure); + TotalMomentumThrust = Allreduce(TotalMomentumThrust); TotalNu = Allreduce(TotalNu); TotalKine = Allreduce(TotalKine); @@ -9118,7 +9113,8 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC /*--- Compute the averaged value for the boundary of interest for the span of interest ---*/ const bool belowMachLimit = (abs(MachTest)< config->GetAverageMachLimit()); - su2double avgDensity{0}, avgPressure{0}, avgKine{0}, avgOmega{0}, avgNu{0}, avgVelocity[MAXNDIM] = {0}; + su2double avgDensity{0}, avgPressure{0}, avgKine{0}, avgOmega{0}, avgNu{0}, avgMomThrust{0}, + avgVelocity[MAXNDIM] = {0}; for (auto iVar = 0u; iVar Date: Wed, 8 May 2024 13:27:52 +0100 Subject: [PATCH 140/287] revert to previous 'dampning' method --- SU2_CFD/include/solvers/CEulerSolver.hpp | 2 -- SU2_CFD/src/solvers/CEulerSolver.cpp | 10 ++-------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index 0b9aee94399..ee3d0efd2d9 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -139,8 +139,6 @@ class CEulerSolver : public CFVMFlowSolverBase AverageMassFlowRate; - vector AverageMomentumThrust; - vector AveragePressureForce; su2activematrix DensityIn; su2activematrix PressureIn; diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 44d68beeedc..314e3fa1004 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -8987,7 +8987,6 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC TotalMassPressure += Area*(Density*TurboVelocity[0] )*Pressure; TotalMassDensity += Area*(Density*TurboVelocity[0] )*Density; - TotalMomentumThrust += Area*(Density*TurboVelocity[0]*TurboVelocity[0]); for (auto iDim = 0u; iDim < nDim; iDim++) { TotalVelocity[iDim] += Velocity[iDim]; @@ -9066,7 +9065,6 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC TotalAreaPressure = Allreduce(TotalAreaPressure); TotalMassDensity = Allreduce(TotalMassDensity); TotalMassPressure = Allreduce(TotalMassPressure); - TotalMomentumThrust = Allreduce(TotalMomentumThrust); TotalNu = Allreduce(TotalNu); TotalKine = Allreduce(TotalKine); @@ -9113,8 +9111,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC /*--- Compute the averaged value for the boundary of interest for the span of interest ---*/ const bool belowMachLimit = (abs(MachTest)< config->GetAverageMachLimit()); - su2double avgDensity{0}, avgPressure{0}, avgKine{0}, avgOmega{0}, avgNu{0}, avgMomThrust{0}, - avgVelocity[MAXNDIM] = {0}; + su2double avgDensity{0}, avgPressure{0}, avgKine{0}, avgOmega{0}, avgNu{0}, avgVelocity[MAXNDIM] = {0}; for (auto iVar = 0u; iVar Date: Wed, 8 May 2024 13:32:27 +0100 Subject: [PATCH 141/287] removing some unused vars --- SU2_CFD/src/solvers/CEulerSolver.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 314e3fa1004..71e15c24938 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -234,8 +234,6 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, /*--- Turbomachinery simulation ---*/ AverageMassFlowRate.resize(nMarker); - AverageMomentumThrust.resize(nMarker); - AveragePressureForce.resize(nMarker); /*--- Read farfield conditions from config ---*/ @@ -286,8 +284,6 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, Exhaust_Area[iMarker] = 0.0; AverageMassFlowRate[iMarker] = 0.0; - AverageMomentumThrust[iMarker] = 0.0; - AveragePressureForce[iMarker] = 0.0; } /*--- Initialize the solution to the far-field state everywhere. ---*/ @@ -6437,8 +6433,9 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu case MASS_FLOW_OUTLET: auto const MassFlowRate_e = config->GetGiles_Var1(Marker_Tag); - auto const deltam = 1 - MassFlowRate_e/AverageMassFlowRate[val_marker]; - Pressure_e = AverageMomentumThrust[val_marker]*deltam+AveragePressureForce[val_marker]; + auto const relFacMassFlowRate = config->GetGiles_Var2(Marker_Tag); + + Pressure_e = AveragePressure[val_marker][nSpanWiseSections]+relFacMassFlowRate*(AverageMassFlowRate[val_marker]-MassFlowRate_e); /*--- Compute avg characteristic jump ---*/ c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); @@ -8945,7 +8942,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC const auto nSpanWiseSections = config->GetnSpanWiseSections(); for (auto iSpan= 0; iSpan < nSpanWiseSections + 1; iSpan++){ - su2double TotalDensity{0}, TotalPressure{0}, TotalNu{0}, TotalOmega{0}, TotalKine{0}, TotalVelocity[MAXNDIM], TotalMomentumThrust{0}, + su2double TotalDensity{0}, TotalPressure{0}, TotalNu{0}, TotalOmega{0}, TotalKine{0}, TotalVelocity[MAXNDIM], TotalAreaDensity{0}, TotalAreaPressure{0}, TotalAreaNu{0}, TotalAreaOmega{0}, TotalAreaKine{0}, TotalAreaVelocity[MAXNDIM], TotalMassDensity{0}, TotalMassPressure{0}, TotalMassNu{0}, TotalMassOmega{0}, TotalMassKine{0}, TotalMassVelocity[MAXNDIM]; From 868a7247cca057708aa4bf6170802d32fac8763b Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Fri, 10 May 2024 10:12:57 +0300 Subject: [PATCH 142/287] fix for MARKER_ENGINE_INFLOW with FAN_FACE_MACH option Added mach number evaluation for the engine boundaries. Decoupled the engine marker evaluation frequency from screen write frequency --- SU2_CFD/src/solvers/CEulerSolver.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 16cdfe59a4b..1dc51a3391d 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -2541,7 +2541,7 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; su2double Beta = config->GetAoS()*PI_NUMBER/180.0; bool write_heads = ((((config->GetInnerIter() % (config->GetScreen_Wrt_Freq(2)*40)) == 0) && (config->GetInnerIter()!= 0)) || (config->GetInnerIter() == 1)); - bool Evaluate_BC = ((((config->GetInnerIter() % (config->GetScreen_Wrt_Freq(2)*40)) == 0)) || (config->GetInnerIter() == 1) || (config->GetDiscrete_Adjoint())); + bool Evaluate_BC = ((((config->GetInnerIter() % (config->GetBc_Eval_Freq())) == 0)) || (config->GetInnerIter() == 1) || (config->GetDiscrete_Adjoint())); if ((config->GetnMarker_EngineInflow() != 0) || (config->GetnMarker_EngineExhaust() != 0)) Engine = true; if ((config->GetnMarker_ActDiskInlet() != 0) || (config->GetnMarker_ActDiskOutlet() != 0)) Engine = false; @@ -2930,6 +2930,7 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns config->SetInflow_RamDrag(iMarker_Inlet, Inlet_RamDrag_Total[iMarker_Inlet]); config->SetInflow_Force(iMarker_Inlet, Inlet_Force_Total[iMarker_Inlet]); config->SetInflow_Power(iMarker_Inlet, Inlet_Power_Total[iMarker_Inlet]); + config->SetInflow_Mach(iMarker_Inlet, Inlet_Mach_Total[iMarker_Inlet]); } else { config->SetActDiskInlet_MassFlow(iMarker_Inlet, Inlet_MassFlow_Total[iMarker_Inlet]); From 258b89a1c4f83b9cb93105708eee9ecef96801de Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Fri, 10 May 2024 15:41:10 +0300 Subject: [PATCH 143/287] Defining the option BC_EVAL_FREQ Defining the option BC_EVAL_FREQ, for setting the evaluation frequency for the Engine and Actuator markers --- Common/include/CConfig.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index bc32b5407b1..6c32f18a2d7 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -138,6 +138,7 @@ class CConfig { su2double Buffet_lambda; /*!< \brief Offset parameter for buffet sensor.*/ su2double Damp_Engine_Inflow; /*!< \brief Damping factor for the engine inlet. */ su2double Damp_Engine_Exhaust; /*!< \brief Damping factor for the engine exhaust. */ + unsigned long Bc_Eval_Freq; /*!< \brief Evaluation frequency for Engine and Actuator disk markers*/ su2double Damp_Res_Restric, /*!< \brief Damping factor for the residual restriction. */ Damp_Correc_Prolong; /*!< \brief Damping factor for the correction prolongation. */ su2double Position_Plane; /*!< \brief Position of the Near-Field (y coordinate 2D, and z coordinate 3D). */ @@ -6492,6 +6493,11 @@ class CConfig { */ su2double GetMinLogResidual(void) const { return MinLogResidual; } + /*! + * \brief Evaluation frequency for Engine and Actuator disk markers. + * \return Value Evaluation frequency . + */ + unsigned long GetBc_Eval_Freq(void) const { return Bc_Eval_Freq; } /*! * \brief Value of the damping factor for the engine inlet bc. * \return Value of the damping factor. From 01d6832233b294aa89ed973681530cff7a860467 Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Fri, 10 May 2024 15:44:59 +0300 Subject: [PATCH 144/287] Defining option BC_EVAL_FREQ Defining option BC_EVAL_FREQ, to set the evaluation frequency for Engine and Actuator Disk Markers --- Common/src/CConfig.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 63810ab3e03..dc52cd13135 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1729,7 +1729,9 @@ void CConfig::SetConfig_Options() { addDoubleArrayOption("SINE_LOAD_COEFF", 3, sineload_coeff); /*!\brief RAMP_AND_RELEASE\n DESCRIPTION: release the load after applying the ramp*/ addBoolOption("RAMP_AND_RELEASE_LOAD", RampAndRelease, false); - + + /*DESCRIPTION: Evaluation frequency for Engine and Actuator disk markers*/ + addUnsignedLongOption("BC_EVAL_FREQ",Bc_Eval_Freq,40); /* DESCRIPTION: Damping factor for engine inlet condition */ addDoubleOption("DAMP_ENGINE_INFLOW", Damp_Engine_Inflow, 0.95); /* DESCRIPTION: Damping factor for engine exhaust condition */ From 51b33e22dc63402d43d59cacd60de742c19e80c3 Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Sat, 11 May 2024 11:13:17 +0300 Subject: [PATCH 145/287] Create inv_channel_engine_inflow.cfg Test case for marker_engine_inflow --- .../engine/inv_channel_engine_inflow.cfg | 219 ++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 TestCases/engine/inv_channel_engine_inflow.cfg diff --git a/TestCases/engine/inv_channel_engine_inflow.cfg b/TestCases/engine/inv_channel_engine_inflow.cfg new file mode 100644 index 00000000000..41ad1cbd6f2 --- /dev/null +++ b/TestCases/engine/inv_channel_engine_inflow.cfg @@ -0,0 +1,219 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Inviscid, internal flow over a bump in a channel % +% Author: Thomas D. Economon % +% Institution: Stanford University % +% Date: 2012.09.29 % +% File Version 4.0.2 "Cardinal" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +% Physical governing equations (EULER, NAVIER_STOKES, NS_PLASMA) +% +SOLVER= EULER +% +% Mathematical problem (DIRECT, CONTINUOUS_ADJOINT) +MATH_PROBLEM= DIRECT +% +% Restart solution (NO, YES) +RESTART_SOL= NO + +% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% +% +% Mach number (non-dimensional, based on the free-stream values) +MACH_NUMBER= 0.1 +% +% Angle of attack (degrees, only for compressible flows) +AOA= 0.0 +% +% Side-slip angle (degrees, only for compressible flows) +SIDESLIP_ANGLE= 0.0 +% +% Free-stream pressure (101325.0 N/m^2 by default) +FREESTREAM_PRESSURE= 101300.0 +% +% Free-stream temperature (288.15 K by default) +FREESTREAM_TEMPERATURE= 288.0 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +% Reference origin for moment computation +REF_ORIGIN_MOMENT_X = 0.25 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +% +% Reference length for pitching, rolling, and yawing non-dimensional moment +REF_LENGTH= 1.0 +% +% Reference area for force coefficients (0 implies automatic calculation) +REF_AREA= 1.0 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +% Euler wall boundary marker(s) (NONE = no marker) +MARKER_EULER= ( upper_wall, lower_wall ) +% +% Inlet boundary type (TOTAL_CONDITIONS, MASS_FLOW) +INLET_TYPE= TOTAL_CONDITIONS +% +% Inlet boundary marker(s) (NONE = no marker) +% Format: ( inlet marker, total temperature, total pressure, flow_direction_x, +% flow_direction_y, flow_direction_z, ... ) where flow_direction is +% a unit vector. +% Default: Mach ~ 0.1 +MARKER_INLET= ( inlet, 288.6, 102010.0, 1.0, 0.0, 0.0 ) +% Comment above line and uncomment next for Mach ~ 0.7 (transonic) +%MARKER_INLET= ( inlet, 316.224, 140513.23, 1.0, 0.0, 0.0 ) +% +% Outlet boundary marker(s) (NONE = no marker) +% Format: ( outlet marker, back pressure (static), ... ) +MARKER_ENGINE_INFLOW= ( outlet, 0.1) +ENGINE_INFLOW_TYPE= FAN_FACE_MACH +DAMP_ENGINE_INFLOW= 0.9 +BC_EVAL_FREQ = 5 + +% ------------------------ SURFACES IDENTIFICATION ----------------------------% +% +% Marker(s) of the surface to be plotted or designed +MARKER_PLOTTING= ( lower_wall ) +% +% Marker(s) of the surface where the functional (Cd, Cl, etc.) will be evaluated +MARKER_MONITORING= ( upper_wall, lower_wall ) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +% Numerical method for spatial gradients (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES) +NUM_METHOD_GRAD= GREEN_GAUSS +% +% Courant-Friedrichs-Lewy condition of the finest grid +CFL_NUMBER= 50.0 +% +% Adaptive CFL number (NO, YES) +CFL_ADAPT= YES +% +% Parameters of the adaptive CFL number (factor down, factor up, CFL min value, +% CFL max value ) +CFL_ADAPT_PARAM= ( 0.1, 2.0, 50.0, 1e10 ) +% +% Runge-Kutta alpha coefficients +RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) +% +% Number of total iterations +ITER= 999999 + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +% Linear solver for implicit formulations (BCGSTAB, FGMRES) +LINEAR_SOLVER= FGMRES +% +% Preconditioner of the Krylov linear solver (ILU, JACOBI, LINELET, LU_SGS) +LINEAR_SOLVER_PREC= ILU +% +% Minimum error of the linear solver for implicit formulations +LINEAR_SOLVER_ERROR= 1E-10 +% +% Max number of iterations of the linear solver for the implicit formulation +LINEAR_SOLVER_ITER= 20 + +% -------------------------- MULTIGRID PARAMETERS -----------------------------% +% +% Multi-Grid Levels (0 = no multi-grid) +MGLEVEL= 3 +% +% Multi-grid cycle (V_CYCLE, W_CYCLE, FULLMG_CYCLE) +MGCYCLE= W_CYCLE +% +% Multi-grid pre-smoothing level +MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) +% +% Multi-grid post-smoothing level +MG_POST_SMOOTH= ( 0, 0, 0, 0 ) +% +% Jacobi implicit smoothing of the correction +MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) +% +% Damping factor for the residual restriction +MG_DAMP_RESTRICTION= 1.0 +% +% Damping factor for the correction prolongation +MG_DAMP_PROLONGATION= 1.0 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, +% TURKEL_PREC, MSW) +CONV_NUM_METHOD_FLOW= JST +% +% 2nd and 4th order artificial dissipation coefficients +JST_SENSOR_COEFF= ( 0.5, 0.02 ) +% +% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +% Convergence criteria (CAUCHY, RESIDUAL) +CONV_FIELD= RMS_DENSITY +% +% Min value of the residual (log10 of the residual) +CONV_RESIDUAL_MINVAL= -10 +% +% Start convergence criteria at iteration number +CONV_STARTITER= 10 +% +% Number of elements to apply the criteria +CONV_CAUCHY_ELEMS= 100 +% +% Epsilon to control the series convergence +CONV_CAUCHY_EPS= 1E-10 + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +% Mesh input file +MESH_FILENAME= mesh_channel_256x128.su2 +% +% Mesh input file format (SU2, CGNS, NETCDF_ASCII) +MESH_FORMAT= SU2 +% +% Mesh output file +MESH_OUT_FILENAME= mesh_out.su2 +% +% Restart flow input file +SOLUTION_FILENAME= solution_flow.dat +% +% Restart adjoint input file +SOLUTION_ADJ_FILENAME= solution_adj.dat +% +% Output file format (PARAVIEW, TECPLOT, STL) +TABULAR_FORMAT= CSV +% +% Output file convergence history (w/o extension) +CONV_FILENAME= history +% +% Output file restart flow +RESTART_FILENAME= restart_flow.dat +% +% Output file restart adjoint +RESTART_ADJ_FILENAME= restart_adj.dat +% +% Output file flow (w/o extension) variables +VOLUME_FILENAME= flow +% +% Output file adjoint (w/o extension) variables +VOLUME_ADJ_FILENAME= adjoint +% +% Output objective function gradient (using continuous adjoint) +GRAD_OBJFUNC_FILENAME= of_grad.dat +% +% Output file surface flow coefficient (w/o extension) +SURFACE_FILENAME= surface_flow +% +% Output file surface adjoint coefficient (w/o extension) +SURFACE_ADJ_FILENAME= surface_adjoint +% +% +% Screen output +SCREEN_OUTPUT= (INNER_ITER, WALL_TIME, RMS_DENSITY, RMS_ENERGY, LIFT, DRAG) From 0690c04a97b9a67c245e2489927b1061f9bf23e8 Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Sat, 11 May 2024 12:19:46 +0300 Subject: [PATCH 146/287] Update and rename TestCases/engine/inv_channel_engine_inflow.cfg to TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg --- .../inv_channel_engine_inflow.cfg | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) rename TestCases/engine/{ => marker_engine_inflow}/inv_channel_engine_inflow.cfg (96%) diff --git a/TestCases/engine/inv_channel_engine_inflow.cfg b/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg similarity index 96% rename from TestCases/engine/inv_channel_engine_inflow.cfg rename to TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg index 41ad1cbd6f2..a93fdfbf863 100644 --- a/TestCases/engine/inv_channel_engine_inflow.cfg +++ b/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg @@ -68,12 +68,14 @@ MARKER_INLET= ( inlet, 288.6, 102010.0, 1.0, 0.0, 0.0 ) % Comment above line and uncomment next for Mach ~ 0.7 (transonic) %MARKER_INLET= ( inlet, 316.224, 140513.23, 1.0, 0.0, 0.0 ) % -% Outlet boundary marker(s) (NONE = no marker) -% Format: ( outlet marker, back pressure (static), ... ) +% Engine inflow boundary marker(s) (NONE = no marker) +% Format: (engine inflow marker, fan face Mach, ... ) MARKER_ENGINE_INFLOW= ( outlet, 0.1) ENGINE_INFLOW_TYPE= FAN_FACE_MACH -DAMP_ENGINE_INFLOW= 0.9 -BC_EVAL_FREQ = 5 +% Damping factor for the engine inflow. +DAMP_ENGINE_INFLOW= 0.2 +% Evaluation frequency for engine marker values +BC_EVAL_FREQ = 1 % ------------------------ SURFACES IDENTIFICATION ----------------------------% % From 0e24b040f057de1552ff0232ed65c2f30445d117 Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Sat, 11 May 2024 13:42:23 +0300 Subject: [PATCH 147/287] Update config_template.cfg --- config_template.cfg | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config_template.cfg b/config_template.cfg index 74832ef98db..082bffc7b13 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -672,6 +672,9 @@ FAN_POLY_EFF= 1.0 % Only half engine is in the computational grid (NO, YES) ENGINE_HALF_MODEL= NO % +%Evalutation Frequency for Engine and Actuator Disk Markers +BC_EVAL_FREQ = 40 +% % Damping factor for the engine inflow. DAMP_ENGINE_INFLOW= 0.95 % From a17c9dff9d5c161b1416e450bc9c4356f8be07b5 Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Mon, 13 May 2024 08:51:00 +0300 Subject: [PATCH 148/287] Update config_template.cfg Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- config_template.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config_template.cfg b/config_template.cfg index 082bffc7b13..78281e2702d 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -672,7 +672,7 @@ FAN_POLY_EFF= 1.0 % Only half engine is in the computational grid (NO, YES) ENGINE_HALF_MODEL= NO % -%Evalutation Frequency for Engine and Actuator Disk Markers +% Evalutation Frequency for Engine and Actuator Disk Markers BC_EVAL_FREQ = 40 % % Damping factor for the engine inflow. From 1af50ba94c49daec8029c870733f7bdbb2799386 Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Mon, 13 May 2024 08:52:19 +0300 Subject: [PATCH 149/287] Update Common/include/CConfig.hpp Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- Common/include/CConfig.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 6c32f18a2d7..d88e86b250d 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -6493,11 +6493,12 @@ class CConfig { */ su2double GetMinLogResidual(void) const { return MinLogResidual; } - /*! + /*! * \brief Evaluation frequency for Engine and Actuator disk markers. * \return Value Evaluation frequency . */ unsigned long GetBc_Eval_Freq(void) const { return Bc_Eval_Freq; } + /*! * \brief Value of the damping factor for the engine inlet bc. * \return Value of the damping factor. From c4e240a4137d0fbfea118b3bb1a94fbca23fe1cc Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Mon, 13 May 2024 08:52:33 +0300 Subject: [PATCH 150/287] Update Common/include/CConfig.hpp Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- Common/include/CConfig.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index d88e86b250d..f2ef25fbec2 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -138,7 +138,7 @@ class CConfig { su2double Buffet_lambda; /*!< \brief Offset parameter for buffet sensor.*/ su2double Damp_Engine_Inflow; /*!< \brief Damping factor for the engine inlet. */ su2double Damp_Engine_Exhaust; /*!< \brief Damping factor for the engine exhaust. */ - unsigned long Bc_Eval_Freq; /*!< \brief Evaluation frequency for Engine and Actuator disk markers*/ + unsigned long Bc_Eval_Freq; /*!< \brief Evaluation frequency for Engine and Actuator disk markers*/ su2double Damp_Res_Restric, /*!< \brief Damping factor for the residual restriction. */ Damp_Correc_Prolong; /*!< \brief Damping factor for the correction prolongation. */ su2double Position_Plane; /*!< \brief Position of the Near-Field (y coordinate 2D, and z coordinate 3D). */ From 851f7a74178c7baf1dfd264b8a845f44e707328d Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Mon, 13 May 2024 08:56:26 +0300 Subject: [PATCH 151/287] Update inv_channel_engine_inflow.cfg Changed the mesh to an existing mesh in the repository --- .../engine/marker_engine_inflow/inv_channel_engine_inflow.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg b/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg index a93fdfbf863..4258cfab755 100644 --- a/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg +++ b/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg @@ -175,7 +175,7 @@ CONV_CAUCHY_EPS= 1E-10 % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % % Mesh input file -MESH_FILENAME= mesh_channel_256x128.su2 +MESH_FILENAME= /TestCases/euler/channel/mesh_channel_256x128.su2 % % Mesh input file format (SU2, CGNS, NETCDF_ASCII) MESH_FORMAT= SU2 From 44da0b5fd5d8a1ec791fda85d19650962e955045 Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Mon, 13 May 2024 09:08:33 +0300 Subject: [PATCH 152/287] Update inv_channel_engine_inflow.cfg Changing the mesh file to an existing mesh --- .../engine/marker_engine_inflow/inv_channel_engine_inflow.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg b/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg index 4258cfab755..8952d118293 100644 --- a/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg +++ b/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg @@ -175,7 +175,7 @@ CONV_CAUCHY_EPS= 1E-10 % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % % Mesh input file -MESH_FILENAME= /TestCases/euler/channel/mesh_channel_256x128.su2 +MESH_FILENAME= ../../euler/channel/mesh_channel_256x128.su2 % % Mesh input file format (SU2, CGNS, NETCDF_ASCII) MESH_FORMAT= SU2 From ca12a5cb5abc13861af626e3964c56be4cc12fbd Mon Sep 17 00:00:00 2001 From: Cristopher Morales <98025159+Cristopher-Morales@users.noreply.github.com> Date: Tue, 14 May 2024 11:27:01 +0200 Subject: [PATCH 153/287] Using free stream tremperature for initialization of wall temperature for pure conjugate heat transfer problems (#2281) * using freestream temperature as a default value * Update Common/src/CConfig.cpp Co-authored-by: Evert Bunschoten <38651601+EvertBunschoten@users.noreply.github.com> --------- Co-authored-by: Evert Bunschoten <38651601+EvertBunschoten@users.noreply.github.com> --- Common/src/CConfig.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 63810ab3e03..bf6d1e66b43 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -9234,7 +9234,8 @@ su2double CConfig::GetIsothermal_Temperature(const string& val_marker) const { if (Marker_Isothermal[iMarker_Isothermal] == val_marker) return Isothermal_Temperature[iMarker_Isothermal]; - return Isothermal_Temperature[0]; + // Return free-stream temperature for pure CHT cases. + return Temperature_FreeStream; } su2double CConfig::GetWall_HeatFlux(const string& val_marker) const { From 83cac12a2a33be13378cfeee783e43e9f8ce9879 Mon Sep 17 00:00:00 2001 From: Nijso Date: Tue, 14 May 2024 13:57:17 +0200 Subject: [PATCH 154/287] change MPI_QUANTITIES to enum class (#2279) * change to enum class --- Common/include/geometry/CGeometry.hpp | 6 +- Common/include/linear_algebra/CSysMatrix.hpp | 4 +- Common/include/option_structure.hpp | 2 +- Common/src/geometry/CGeometry.cpp | 40 ++--- Common/src/geometry/CPhysicalGeometry.cpp | 4 +- .../src/grid_movement/CVolumetricMovement.cpp | 4 +- Common/src/linear_algebra/CSysMatrix.cpp | 22 +-- .../include/solvers/CFVMFlowSolverBase.hpp | 16 +- .../include/solvers/CFVMFlowSolverBase.inl | 22 +-- SU2_CFD/include/solvers/CScalarSolver.inl | 4 +- SU2_CFD/include/solvers/CSolver.hpp | 6 +- SU2_CFD/src/drivers/CDriver.cpp | 8 +- SU2_CFD/src/drivers/CDriverBase.cpp | 4 +- .../src/integration/CMultiGridIntegration.cpp | 12 +- .../integration/CSingleGridIntegration.cpp | 8 +- .../src/iteration/CDiscAdjFEAIteration.cpp | 8 +- .../src/iteration/CDiscAdjFluidIteration.cpp | 20 +-- .../src/iteration/CDiscAdjHeatIteration.cpp | 4 +- SU2_CFD/src/solvers/CAdjEulerSolver.cpp | 32 ++-- SU2_CFD/src/solvers/CAdjNSSolver.cpp | 4 +- SU2_CFD/src/solvers/CAdjTurbSolver.cpp | 8 +- SU2_CFD/src/solvers/CBaselineSolver.cpp | 12 +- SU2_CFD/src/solvers/CEulerSolver.cpp | 48 +++--- SU2_CFD/src/solvers/CFEASolver.cpp | 4 +- .../src/solvers/CGradientSmoothingSolver.cpp | 8 +- SU2_CFD/src/solvers/CHeatSolver.cpp | 16 +- SU2_CFD/src/solvers/CMeshSolver.cpp | 22 +-- SU2_CFD/src/solvers/CNEMOEulerSolver.cpp | 4 +- SU2_CFD/src/solvers/CNEMONSSolver.cpp | 2 +- SU2_CFD/src/solvers/CRadP1Solver.cpp | 4 +- SU2_CFD/src/solvers/CRadSolver.cpp | 4 +- SU2_CFD/src/solvers/CSolver.cpp | 142 +++++++++--------- .../src/solvers/CSpeciesFlameletSolver.cpp | 10 +- SU2_CFD/src/solvers/CSpeciesSolver.cpp | 14 +- SU2_CFD/src/solvers/CTransLMSolver.cpp | 12 +- SU2_CFD/src/solvers/CTurbSASolver.cpp | 4 +- SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 4 +- SU2_CFD/src/solvers/CTurbSolver.cpp | 8 +- UnitTests/SU2_CFD/gradients.cpp | 8 +- 39 files changed, 282 insertions(+), 282 deletions(-) diff --git a/Common/include/geometry/CGeometry.hpp b/Common/include/geometry/CGeometry.hpp index 15a726cabec..688f71c7dce 100644 --- a/Common/include/geometry/CGeometry.hpp +++ b/Common/include/geometry/CGeometry.hpp @@ -426,7 +426,7 @@ class CGeometry { * \param[out] COUNT_PER_POINT - Number of communicated variables per point. * \param[out] MPI_TYPE - Enumerated type for the datatype of the quantity to be communicated. */ - void GetCommCountAndType(const CConfig* config, unsigned short commType, unsigned short& COUNT_PER_POINT, + void GetCommCountAndType(const CConfig* config, MPI_QUANTITIES commType, unsigned short& COUNT_PER_POINT, unsigned short& MPI_TYPE) const; /*! @@ -436,14 +436,14 @@ class CGeometry { * \param[in] config - Definition of the particular problem. * \param[in] commType - Enumerated type for the quantity to be communicated. */ - void InitiateComms(CGeometry* geometry, const CConfig* config, unsigned short commType) const; + void InitiateComms(CGeometry* geometry, const CConfig* config, MPI_QUANTITIES commType) const; /*! * \brief Routine to complete the set of non-blocking communications launched by InitiateComms() and unpacking of the * data into the geometry class. \param[in] geometry - Geometrical definition of the problem. \param[in] config - * Definition of the particular problem. \param[in] commType - Enumerated type for the quantity to be unpacked. */ - void CompleteComms(CGeometry* geometry, const CConfig* config, unsigned short commType); + void CompleteComms(CGeometry* geometry, const CConfig* config, MPI_QUANTITIES commType); /*! * \brief Get number of coordinates. diff --git a/Common/include/linear_algebra/CSysMatrix.hpp b/Common/include/linear_algebra/CSysMatrix.hpp index 573e6217d93..02747f8be07 100644 --- a/Common/include/linear_algebra/CSysMatrix.hpp +++ b/Common/include/linear_algebra/CSysMatrix.hpp @@ -92,7 +92,7 @@ struct CSysMatrixComms { */ template static void Initiate(const CSysVector& x, CGeometry* geometry, const CConfig* config, - unsigned short commType = SOLUTION_MATRIX); + MPI_QUANTITIES commType = MPI_QUANTITIES::SOLUTION_MATRIX); /*! * \brief Routine to complete the set of non-blocking communications launched by @@ -104,7 +104,7 @@ struct CSysMatrixComms { */ template static void Complete(CSysVector& x, CGeometry* geometry, const CConfig* config, - unsigned short commType = SOLUTION_MATRIX); + MPI_QUANTITIES commType = MPI_QUANTITIES::SOLUTION_MATRIX); }; /*! diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 919aefa65b9..9bbe613c4bc 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -2498,7 +2498,7 @@ enum PERIODIC_QUANTITIES { /*! * \brief Vertex-based quantities exchanged in MPI point-to-point communications. */ -enum MPI_QUANTITIES { +enum class MPI_QUANTITIES { SOLUTION , /*!< \brief Conservative solution communication. */ SOLUTION_OLD , /*!< \brief Conservative solution old communication. */ SOLUTION_GRADIENT , /*!< \brief Conservative solution gradient communication. */ diff --git a/Common/src/geometry/CGeometry.cpp b/Common/src/geometry/CGeometry.cpp index e1f199999f9..5292fb69a13 100644 --- a/Common/src/geometry/CGeometry.cpp +++ b/Common/src/geometry/CGeometry.cpp @@ -543,29 +543,29 @@ void CGeometry::PostP2PSends(CGeometry* geometry, const CConfig* config, unsigne END_SU2_OMP_MASTER } -void CGeometry::GetCommCountAndType(const CConfig* config, unsigned short commType, unsigned short& COUNT_PER_POINT, +void CGeometry::GetCommCountAndType(const CConfig* config, MPI_QUANTITIES commType, unsigned short& COUNT_PER_POINT, unsigned short& MPI_TYPE) const { switch (commType) { - case COORDINATES: + case MPI_QUANTITIES::COORDINATES: COUNT_PER_POINT = nDim; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case GRID_VELOCITY: + case MPI_QUANTITIES::GRID_VELOCITY: COUNT_PER_POINT = nDim; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case COORDINATES_OLD: + case MPI_QUANTITIES::COORDINATES_OLD: if (config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_2ND) COUNT_PER_POINT = nDim * 2; else COUNT_PER_POINT = nDim; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case MAX_LENGTH: + case MPI_QUANTITIES::MAX_LENGTH: COUNT_PER_POINT = 1; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case NEIGHBORS: + case MPI_QUANTITIES::NEIGHBORS: COUNT_PER_POINT = 1; MPI_TYPE = COMM_TYPE_UNSIGNED_SHORT; break; @@ -575,7 +575,7 @@ void CGeometry::GetCommCountAndType(const CConfig* config, unsigned short commTy } } -void CGeometry::InitiateComms(CGeometry* geometry, const CConfig* config, unsigned short commType) const { +void CGeometry::InitiateComms(CGeometry* geometry, const CConfig* config, MPI_QUANTITIES commType) const { if (nP2PSend == 0) return; /*--- Local variables ---*/ @@ -633,15 +633,15 @@ void CGeometry::InitiateComms(CGeometry* geometry, const CConfig* config, unsign buf_offset = (msg_offset + iSend) * COUNT_PER_POINT; switch (commType) { - case COORDINATES: + case MPI_QUANTITIES::COORDINATES: vector = nodes->GetCoord(iPoint); for (iDim = 0; iDim < nDim; iDim++) bufDSend[buf_offset + iDim] = vector[iDim]; break; - case GRID_VELOCITY: + case MPI_QUANTITIES::GRID_VELOCITY: vector = nodes->GetGridVel(iPoint); for (iDim = 0; iDim < nDim; iDim++) bufDSend[buf_offset + iDim] = vector[iDim]; break; - case COORDINATES_OLD: + case MPI_QUANTITIES::COORDINATES_OLD: vector = nodes->GetCoord_n(iPoint); for (iDim = 0; iDim < nDim; iDim++) { bufDSend[buf_offset + iDim] = vector[iDim]; @@ -653,10 +653,10 @@ void CGeometry::InitiateComms(CGeometry* geometry, const CConfig* config, unsign } } break; - case MAX_LENGTH: + case MPI_QUANTITIES::MAX_LENGTH: bufDSend[buf_offset] = nodes->GetMaxLength(iPoint); break; - case NEIGHBORS: + case MPI_QUANTITIES::NEIGHBORS: bufSSend[buf_offset] = geometry->nodes->GetnNeighbor(iPoint); break; default: @@ -672,7 +672,7 @@ void CGeometry::InitiateComms(CGeometry* geometry, const CConfig* config, unsign } } -void CGeometry::CompleteComms(CGeometry* geometry, const CConfig* config, unsigned short commType) { +void CGeometry::CompleteComms(CGeometry* geometry, const CConfig* config, MPI_QUANTITIES commType) { if (nP2PRecv == 0) return; /*--- Local variables ---*/ @@ -734,21 +734,21 @@ void CGeometry::CompleteComms(CGeometry* geometry, const CConfig* config, unsign /*--- Store the data correctly depending on the quantity. ---*/ switch (commType) { - case COORDINATES: + case MPI_QUANTITIES::COORDINATES: for (iDim = 0; iDim < nDim; iDim++) nodes->SetCoord(iPoint, iDim, bufDRecv[buf_offset + iDim]); break; - case GRID_VELOCITY: + case MPI_QUANTITIES::GRID_VELOCITY: for (iDim = 0; iDim < nDim; iDim++) nodes->SetGridVel(iPoint, iDim, bufDRecv[buf_offset + iDim]); break; - case COORDINATES_OLD: + case MPI_QUANTITIES::COORDINATES_OLD: nodes->SetCoord_n(iPoint, &bufDRecv[buf_offset]); if (config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_2ND) nodes->SetCoord_n1(iPoint, &bufDRecv[buf_offset + nDim]); break; - case MAX_LENGTH: + case MPI_QUANTITIES::MAX_LENGTH: nodes->SetMaxLength(iPoint, bufDRecv[buf_offset]); break; - case NEIGHBORS: + case MPI_QUANTITIES::NEIGHBORS: nodes->SetnNeighbor(iPoint, bufSRecv[buf_offset]); break; default: @@ -2327,8 +2327,8 @@ void CGeometry::RegisterCoordinates() const { } void CGeometry::UpdateGeometry(CGeometry** geometry_container, CConfig* config) { - geometry_container[MESH_0]->InitiateComms(geometry_container[MESH_0], config, COORDINATES); - geometry_container[MESH_0]->CompleteComms(geometry_container[MESH_0], config, COORDINATES); + geometry_container[MESH_0]->InitiateComms(geometry_container[MESH_0], config, MPI_QUANTITIES::COORDINATES); + geometry_container[MESH_0]->CompleteComms(geometry_container[MESH_0], config, MPI_QUANTITIES::COORDINATES); geometry_container[MESH_0]->SetControlVolume(config, UPDATE); geometry_container[MESH_0]->SetBoundControlVolume(config, UPDATE); diff --git a/Common/src/geometry/CPhysicalGeometry.cpp b/Common/src/geometry/CPhysicalGeometry.cpp index 8d245ce1206..29f10a492b3 100644 --- a/Common/src/geometry/CPhysicalGeometry.cpp +++ b/Common/src/geometry/CPhysicalGeometry.cpp @@ -6364,8 +6364,8 @@ void CPhysicalGeometry::SetMaxLength(CConfig* config) { } END_SU2_OMP_FOR - InitiateComms(this, config, MAX_LENGTH); - CompleteComms(this, config, MAX_LENGTH); + InitiateComms(this, config, MPI_QUANTITIES::MAX_LENGTH); + CompleteComms(this, config, MPI_QUANTITIES::MAX_LENGTH); } void CPhysicalGeometry::MatchActuator_Disk(const CConfig* config) { diff --git a/Common/src/grid_movement/CVolumetricMovement.cpp b/Common/src/grid_movement/CVolumetricMovement.cpp index 5b09a9cdd71..a3f91fa36c1 100644 --- a/Common/src/grid_movement/CVolumetricMovement.cpp +++ b/Common/src/grid_movement/CVolumetricMovement.cpp @@ -76,8 +76,8 @@ void CVolumetricMovement::UpdateGridCoord(CGeometry* geometry, CConfig* config) * Hence we still need a communication of the transformed coordinates, otherwise periodicity * is not maintained. ---*/ - geometry->InitiateComms(geometry, config, COORDINATES); - geometry->CompleteComms(geometry, config, COORDINATES); + geometry->InitiateComms(geometry, config, MPI_QUANTITIES::COORDINATES); + geometry->CompleteComms(geometry, config, MPI_QUANTITIES::COORDINATES); } void CVolumetricMovement::UpdateDualGrid(CGeometry* geometry, CConfig* config) { diff --git a/Common/src/linear_algebra/CSysMatrix.cpp b/Common/src/linear_algebra/CSysMatrix.cpp index 10747fadbcb..280d05b6b7f 100644 --- a/Common/src/linear_algebra/CSysMatrix.cpp +++ b/Common/src/linear_algebra/CSysMatrix.cpp @@ -226,7 +226,7 @@ void CSysMatrix::Initialize(unsigned long npoint, unsigned long npoi template void CSysMatrixComms::Initiate(const CSysVector& x, CGeometry* geometry, const CConfig* config, - unsigned short commType) { + MPI_QUANTITIES commType) { if (geometry->nP2PSend == 0) return; /*--- Local variables ---*/ @@ -236,13 +236,13 @@ void CSysMatrixComms::Initiate(const CSysVector& x, CGeometry* geometry, cons /*--- Create a boolean for reversing the order of comms. ---*/ - const bool reverse = (commType == SOLUTION_MATRIXTRANS); + const bool reverse = (commType == MPI_QUANTITIES::SOLUTION_MATRIXTRANS); /*--- Set the size of the data packet and type depending on quantity. ---*/ switch (commType) { - case SOLUTION_MATRIX: - case SOLUTION_MATRIXTRANS: + case MPI_QUANTITIES::SOLUTION_MATRIX: + case MPI_QUANTITIES::SOLUTION_MATRIXTRANS: break; default: SU2_MPI::Error("Unrecognized quantity for point-to-point MPI comms.", CURRENT_FUNCTION); @@ -265,7 +265,7 @@ void CSysMatrixComms::Initiate(const CSysVector& x, CGeometry* geometry, cons for (auto iMessage = 0; iMessage < geometry->nP2PSend; iMessage++) { switch (commType) { - case SOLUTION_MATRIX: { + case MPI_QUANTITIES::SOLUTION_MATRIX: { su2double* bufDSend = geometry->bufD_P2PSend; /*--- Get the offset for the start of this message. ---*/ @@ -294,7 +294,7 @@ void CSysMatrixComms::Initiate(const CSysVector& x, CGeometry* geometry, cons break; } - case SOLUTION_MATRIXTRANS: { + case MPI_QUANTITIES::SOLUTION_MATRIXTRANS: { /*--- We are going to communicate in reverse, so we use the recv buffer for the send instead. Also, all of the offsets and counts are derived from the recv data structures. ---*/ @@ -341,7 +341,7 @@ void CSysMatrixComms::Initiate(const CSysVector& x, CGeometry* geometry, cons } template -void CSysMatrixComms::Complete(CSysVector& x, CGeometry* geometry, const CConfig* config, unsigned short commType) { +void CSysMatrixComms::Complete(CSysVector& x, CGeometry* geometry, const CConfig* config, MPI_QUANTITIES commType) { if (geometry->nP2PRecv == 0) return; /*--- Local variables ---*/ @@ -366,7 +366,7 @@ void CSysMatrixComms::Complete(CSysVector& x, CGeometry* geometry, const CCon const auto source = status.MPI_SOURCE; switch (commType) { - case SOLUTION_MATRIX: { + case MPI_QUANTITIES::SOLUTION_MATRIX: { const su2double* bufDRecv = geometry->bufD_P2PRecv; /*--- We know the offsets based on the source rank. ---*/ @@ -400,7 +400,7 @@ void CSysMatrixComms::Complete(CSysVector& x, CGeometry* geometry, const CCon break; } - case SOLUTION_MATRIXTRANS: { + case MPI_QUANTITIES::SOLUTION_MATRIXTRANS: { /*--- We are going to communicate in reverse, so we use the send buffer for the recv instead. Also, all of the offsets and counts are derived from the send data structures. ---*/ @@ -1197,8 +1197,8 @@ void CSysMatrix::ComputePastixPreconditioner(const CSysVector(const CSysVector&, CGeometry*, const CConfig*, unsigned short); \ - template void CSysMatrixComms::Complete(CSysVector&, CGeometry*, const CConfig*, unsigned short); + template void CSysMatrixComms::Initiate(const CSysVector&, CGeometry*, const CConfig*, MPI_QUANTITIES); \ + template void CSysMatrixComms::Complete(CSysVector&, CGeometry*, const CConfig*, MPI_QUANTITIES); #define INSTANTIATE_MATRIX(TYPE) \ template class CSysMatrix; \ diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp index 5e0e34b7a3e..26a69293004 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp @@ -710,8 +710,8 @@ class CFVMFlowSolverBase : public CSolver { /*--- MPI parallelization ---*/ - InitiateComms(geometry, config, MAX_EIGENVALUE); - CompleteComms(geometry, config, MAX_EIGENVALUE); + InitiateComms(geometry, config, MPI_QUANTITIES::MAX_EIGENVALUE); + CompleteComms(geometry, config, MPI_QUANTITIES::MAX_EIGENVALUE); } /*! @@ -780,8 +780,8 @@ class CFVMFlowSolverBase : public CSolver { /*--- MPI parallelization ---*/ - InitiateComms(geometry, config, SENSOR); - CompleteComms(geometry, config, SENSOR); + InitiateComms(geometry, config, MPI_QUANTITIES::SENSOR); + CompleteComms(geometry, config, MPI_QUANTITIES::SENSOR); } @@ -871,8 +871,8 @@ class CFVMFlowSolverBase : public CSolver { /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); if (!adjoint) { /*--- For verification cases, compute the global error metrics. ---*/ @@ -996,8 +996,8 @@ class CFVMFlowSolverBase : public CSolver { CompletePeriodicComms(geometry, config, iPeriodic, PERIODIC_IMPLICIT); } - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); /*--- For verification cases, compute the global error metrics. ---*/ ComputeVerificationError(geometry, config); diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl index c3051311c30..b8efa1e695d 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl @@ -266,8 +266,8 @@ void CFVMFlowSolverBase::CommunicateInitialState(CGeometry* geometry, cons /*--- Perform the MPI communication of the solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); /*--- Store the initial CFL number for all grid points. ---*/ @@ -383,7 +383,7 @@ void CFVMFlowSolverBase::SetPrimitive_Gradient_GG(CGeometry* geometry, con bool reconstruction) { const auto& primitives = nodes->GetPrimitive(); auto& gradient = reconstruction ? nodes->GetGradient_Reconstruction() : nodes->GetGradient_Primitive(); - const auto comm = reconstruction? PRIMITIVE_GRAD_REC : PRIMITIVE_GRADIENT; + const auto comm = reconstruction? MPI_QUANTITIES::PRIMITIVE_GRAD_REC : MPI_QUANTITIES::PRIMITIVE_GRADIENT; const auto commPer = reconstruction? PERIODIC_PRIM_GG_R : PERIODIC_PRIM_GG; computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, gradient); @@ -408,7 +408,7 @@ void CFVMFlowSolverBase::SetPrimitive_Gradient_LS(CGeometry* geometry, con const auto& primitives = nodes->GetPrimitive(); auto& rmatrix = nodes->GetRmatrix(); auto& gradient = reconstruction ? nodes->GetGradient_Reconstruction() : nodes->GetGradient_Primitive(); - const auto comm = reconstruction? PRIMITIVE_GRAD_REC : PRIMITIVE_GRADIENT; + const auto comm = reconstruction? MPI_QUANTITIES::PRIMITIVE_GRAD_REC : MPI_QUANTITIES::PRIMITIVE_GRADIENT; computeGradientsLeastSquares(this, comm, commPer, *geometry, *config, weighted, primitives, 0, nPrimVarGrad, gradient, rmatrix); @@ -423,7 +423,7 @@ void CFVMFlowSolverBase::SetPrimitive_Limiter(CGeometry* geometry, const C auto& primMax = nodes->GetSolution_Max(); auto& limiter = nodes->GetLimiter_Primitive(); - computeLimiters(kindLimiter, this, PRIMITIVE_LIMITER, PERIODIC_LIM_PRIM_1, PERIODIC_LIM_PRIM_2, *geometry, *config, 0, + computeLimiters(kindLimiter, this, MPI_QUANTITIES::PRIMITIVE_LIMITER, PERIODIC_LIM_PRIM_1, PERIODIC_LIM_PRIM_2, *geometry, *config, 0, nPrimVarGrad, primitives, gradient, primMin, primMax, limiter); } @@ -929,8 +929,8 @@ void CFVMFlowSolverBase::LoadRestart_impl(CGeometry **geometry, CSolver ** /*--- Compute the grid velocities on the coarser levels. ---*/ if (iMesh) geometry[iMesh]->SetRestricted_GridVelocity(geometry[iMesh - 1]); else { - geometry[MESH_0]->InitiateComms(geometry[MESH_0], config, GRID_VELOCITY); - geometry[MESH_0]->CompleteComms(geometry[MESH_0], config, GRID_VELOCITY); + geometry[MESH_0]->InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::GRID_VELOCITY); + geometry[MESH_0]->CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::GRID_VELOCITY); } } } @@ -941,8 +941,8 @@ void CFVMFlowSolverBase::LoadRestart_impl(CGeometry **geometry, CSolver ** on the fine level in order to have all necessary quantities updated, especially if this is a turbulent simulation (eddy viscosity). ---*/ - solver[MESH_0][FLOW_SOL]->InitiateComms(geometry[MESH_0], config, SOLUTION); - solver[MESH_0][FLOW_SOL]->CompleteComms(geometry[MESH_0], config, SOLUTION); + solver[MESH_0][FLOW_SOL]->InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); + solver[MESH_0][FLOW_SOL]->CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); /*--- For turbulent/species simulations the flow preprocessing is done by the turbulence/species solver * after it loads its variables (they are needed to compute flow primitives). In case turbulence and species, the @@ -957,8 +957,8 @@ void CFVMFlowSolverBase::LoadRestart_impl(CGeometry **geometry, CSolver ** for (auto iMesh = 1u; iMesh <= config->GetnMGLevels(); iMesh++) { MultigridRestriction(*geometry[iMesh - 1], solver[iMesh - 1][FLOW_SOL]->GetNodes()->GetSolution(), *geometry[iMesh], solver[iMesh][FLOW_SOL]->GetNodes()->GetSolution()); - solver[iMesh][FLOW_SOL]->InitiateComms(geometry[iMesh], config, SOLUTION); - solver[iMesh][FLOW_SOL]->CompleteComms(geometry[iMesh], config, SOLUTION); + solver[iMesh][FLOW_SOL]->InitiateComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); + solver[iMesh][FLOW_SOL]->CompleteComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); if (config->GetKind_Turb_Model() == TURB_MODEL::NONE && config->GetKind_Species_Model() == SPECIES_MODEL::NONE) { diff --git a/SU2_CFD/include/solvers/CScalarSolver.inl b/SU2_CFD/include/solvers/CScalarSolver.inl index 6f9aeafac4a..1777fa2e289 100644 --- a/SU2_CFD/include/solvers/CScalarSolver.inl +++ b/SU2_CFD/include/solvers/CScalarSolver.inl @@ -531,8 +531,8 @@ void CScalarSolver::CompleteImplicitIteration(CGeometry* geometry, CompletePeriodicComms(geometry, config, iPeriodic, PERIODIC_IMPLICIT); } - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); } template diff --git a/SU2_CFD/include/solvers/CSolver.hpp b/SU2_CFD/include/solvers/CSolver.hpp index 2b114a7714b..5a52599cfe6 100644 --- a/SU2_CFD/include/solvers/CSolver.hpp +++ b/SU2_CFD/include/solvers/CSolver.hpp @@ -240,7 +240,7 @@ class CSolver { * \param[out] MPI_TYPE - Enumerated type for the datatype of the quantity to be communicated. */ void GetCommCountAndType(const CConfig* config, - unsigned short commType, + MPI_QUANTITIES commType, unsigned short &COUNT_PER_POINT, unsigned short &MPI_TYPE) const; @@ -252,7 +252,7 @@ class CSolver { */ void InitiateComms(CGeometry *geometry, const CConfig *config, - unsigned short commType); + MPI_QUANTITIES commType); /*! * \brief Routine to complete the set of non-blocking communications launched by InitiateComms() and unpacking of the data in the solver class. @@ -262,7 +262,7 @@ class CSolver { */ void CompleteComms(CGeometry *geometry, const CConfig *config, - unsigned short commType); + MPI_QUANTITIES commType); /*! * \brief Helper function to define the type and number of variables per point for each communication type. diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index 8476c58dc54..14c478c0f47 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -912,8 +912,8 @@ void CDriver::InitializeGeometryFVM(CConfig *config, CGeometry **&geometry) { if ((rank == MASTER_NODE) && (size > SINGLE_NODE) && (iMGlevel == MESH_0)) cout << "Communicating number of neighbors." << endl; - geometry[iMGlevel]->InitiateComms(geometry[iMGlevel], config, NEIGHBORS); - geometry[iMGlevel]->CompleteComms(geometry[iMGlevel], config, NEIGHBORS); + geometry[iMGlevel]->InitiateComms(geometry[iMGlevel], config, MPI_QUANTITIES::NEIGHBORS); + geometry[iMGlevel]->CompleteComms(geometry[iMGlevel], config, MPI_QUANTITIES::NEIGHBORS); } } @@ -2513,7 +2513,7 @@ void CDriver::InitializeInterface(CConfig **config, CSolver***** solver, CGeomet const auto fluidZone = heat_target? donor : target; - if (config[fluidZone]->GetEnergy_Equation() || (config[fluidZone]->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE) + if (config[fluidZone]->GetEnergy_Equation() || (config[fluidZone]->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE) || (config[fluidZone]->GetKind_FluidModel() == ENUM_FLUIDMODEL::FLUID_FLAMELET)) interface_type = heat_target? CONJUGATE_HEAT_FS : CONJUGATE_HEAT_SF; else if (config[fluidZone]->GetWeakly_Coupled_Heat()) @@ -2693,7 +2693,7 @@ void CDriver::PreprocessTurbomachinery(CConfig** config, CGeometry**** geometry, } } - for (iZone = 0; iZone < nZone-1; iZone++) { + for (iZone = 0; iZone < nZone-1; iZone++) { geometry[nZone-1][INST_0][MESH_0]->SetAvgTurboGeoValues(config[iZone],geometry[iZone][INST_0][MESH_0], iZone); } diff --git a/SU2_CFD/src/drivers/CDriverBase.cpp b/SU2_CFD/src/drivers/CDriverBase.cpp index c964677e623..602e89e3ace 100644 --- a/SU2_CFD/src/drivers/CDriverBase.cpp +++ b/SU2_CFD/src/drivers/CDriverBase.cpp @@ -391,8 +391,8 @@ vector CDriverBase::GetMarkerVertexNormals(unsigned short iMarker } void CDriverBase::CommunicateMeshDisplacements() { - solver_container[selected_zone][INST_0][MESH_0][MESH_SOL]->InitiateComms(main_geometry, main_config, MESH_DISPLACEMENTS); - solver_container[selected_zone][INST_0][MESH_0][MESH_SOL]->CompleteComms(main_geometry, main_config, MESH_DISPLACEMENTS); + solver_container[selected_zone][INST_0][MESH_0][MESH_SOL]->InitiateComms(main_geometry, main_config, MPI_QUANTITIES::MESH_DISPLACEMENTS); + solver_container[selected_zone][INST_0][MESH_0][MESH_SOL]->CompleteComms(main_geometry, main_config, MPI_QUANTITIES::MESH_DISPLACEMENTS); } map CDriverBase::GetSolverIndices() const { diff --git a/SU2_CFD/src/integration/CMultiGridIntegration.cpp b/SU2_CFD/src/integration/CMultiGridIntegration.cpp index a6750435d97..f8a7c1a9645 100644 --- a/SU2_CFD/src/integration/CMultiGridIntegration.cpp +++ b/SU2_CFD/src/integration/CMultiGridIntegration.cpp @@ -366,8 +366,8 @@ void CMultiGridIntegration::GetProlongated_Correction(unsigned short RunTime_EqS /*--- MPI the set solution old ---*/ - sol_coarse->InitiateComms(geo_coarse, config, SOLUTION_OLD); - sol_coarse->CompleteComms(geo_coarse, config, SOLUTION_OLD); + sol_coarse->InitiateComms(geo_coarse, config, MPI_QUANTITIES::SOLUTION_OLD); + sol_coarse->CompleteComms(geo_coarse, config, MPI_QUANTITIES::SOLUTION_OLD); SU2_OMP_FOR_STAT(roundUpDiv(geo_coarse->GetnPointDomain(), omp_get_num_threads())) for (Point_Coarse = 0; Point_Coarse < geo_coarse->GetnPointDomain(); Point_Coarse++) { @@ -479,8 +479,8 @@ void CMultiGridIntegration::SetProlongated_Correction(CSolver *sol_fine, CGeomet /*--- MPI the new interpolated solution ---*/ - sol_fine->InitiateComms(geo_fine, config, SOLUTION); - sol_fine->CompleteComms(geo_fine, config, SOLUTION); + sol_fine->InitiateComms(geo_fine, config, MPI_QUANTITIES::SOLUTION); + sol_fine->CompleteComms(geo_fine, config, MPI_QUANTITIES::SOLUTION); } @@ -608,8 +608,8 @@ void CMultiGridIntegration::SetRestricted_Solution(unsigned short RunTime_EqSyst /*--- MPI the new interpolated solution ---*/ - sol_coarse->InitiateComms(geo_coarse, config, SOLUTION); - sol_coarse->CompleteComms(geo_coarse, config, SOLUTION); + sol_coarse->InitiateComms(geo_coarse, config, MPI_QUANTITIES::SOLUTION); + sol_coarse->CompleteComms(geo_coarse, config, MPI_QUANTITIES::SOLUTION); } diff --git a/SU2_CFD/src/integration/CSingleGridIntegration.cpp b/SU2_CFD/src/integration/CSingleGridIntegration.cpp index 56b74282cde..de70accb876 100644 --- a/SU2_CFD/src/integration/CSingleGridIntegration.cpp +++ b/SU2_CFD/src/integration/CSingleGridIntegration.cpp @@ -111,8 +111,8 @@ void CSingleGridIntegration::SetRestricted_Solution(unsigned short RunTime_EqSys CGeometry *geo_fine, CGeometry *geo_coarse, CConfig *config) { CSolver::MultigridRestriction(*geo_fine, sol_fine->GetNodes()->GetSolution(), *geo_coarse, sol_coarse->GetNodes()->GetSolution()); - sol_coarse->InitiateComms(geo_coarse, config, SOLUTION); - sol_coarse->CompleteComms(geo_coarse, config, SOLUTION); + sol_coarse->InitiateComms(geo_coarse, config, MPI_QUANTITIES::SOLUTION); + sol_coarse->CompleteComms(geo_coarse, config, MPI_QUANTITIES::SOLUTION); } void CSingleGridIntegration::SetRestricted_EddyVisc(unsigned short RunTime_EqSystem, CSolver *sol_fine, CSolver *sol_coarse, @@ -160,7 +160,7 @@ void CSingleGridIntegration::SetRestricted_EddyVisc(unsigned short RunTime_EqSys /*--- MPI the new interpolated solution (this also includes the eddy viscosity) ---*/ - sol_coarse->InitiateComms(geo_coarse, config, SOLUTION_EDDY); - sol_coarse->CompleteComms(geo_coarse, config, SOLUTION_EDDY); + sol_coarse->InitiateComms(geo_coarse, config, MPI_QUANTITIES::SOLUTION_EDDY); + sol_coarse->CompleteComms(geo_coarse, config, MPI_QUANTITIES::SOLUTION_EDDY); } diff --git a/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp index d7848499f62..53f1bff6945 100644 --- a/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp @@ -233,11 +233,11 @@ void CDiscAdjFEAIteration::SetDependencies(CSolver***** solver, CGeometry**** ge /*--- MPI dependencies. ---*/ - dir_solver->InitiateComms(structural_geometry, config[iZone], SOLUTION_FEA); - dir_solver->CompleteComms(structural_geometry, config[iZone], SOLUTION_FEA); + dir_solver->InitiateComms(structural_geometry, config[iZone], MPI_QUANTITIES::SOLUTION_FEA); + dir_solver->CompleteComms(structural_geometry, config[iZone], MPI_QUANTITIES::SOLUTION_FEA); - structural_geometry->InitiateComms(structural_geometry, config[iZone], COORDINATES); - structural_geometry->CompleteComms(structural_geometry, config[iZone], COORDINATES); + structural_geometry->InitiateComms(structural_geometry, config[iZone], MPI_QUANTITIES::COORDINATES); + structural_geometry->CompleteComms(structural_geometry, config[iZone], MPI_QUANTITIES::COORDINATES); } END_SU2_OMP_PARALLEL diff --git a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp index 6bde7b99418..27173f3357e 100644 --- a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp @@ -468,26 +468,26 @@ void CDiscAdjFluidIteration::SetDependencies(CSolver***** solver, CGeometry**** /*--- Compute coupling between flow, turbulent and species equations ---*/ solvers0[FLOW_SOL]->Preprocessing(geometry0, solvers0, config[iZone], MESH_0, NO_RK_ITER, RUNTIME_FLOW_SYS, true); - solvers0[FLOW_SOL]->InitiateComms(geometry0, config[iZone], SOLUTION); - solvers0[FLOW_SOL]->CompleteComms(geometry0, config[iZone], SOLUTION); + solvers0[FLOW_SOL]->InitiateComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); + solvers0[FLOW_SOL]->CompleteComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); if (turbulent && !config[iZone]->GetFrozen_Visc_Disc()) { solvers0[TURB_SOL]->Postprocessing(geometry0, solvers0, config[iZone], MESH_0); - solvers0[TURB_SOL]->InitiateComms(geometry0, config[iZone], SOLUTION); - solvers0[TURB_SOL]->CompleteComms(geometry0, config[iZone], SOLUTION); + solvers0[TURB_SOL]->InitiateComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); + solvers0[TURB_SOL]->CompleteComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); } if (config[iZone]->GetKind_Species_Model() != SPECIES_MODEL::NONE) { solvers0[SPECIES_SOL]->Preprocessing(geometry0, solvers0, config[iZone], MESH_0, NO_RK_ITER, RUNTIME_FLOW_SYS, true); - solvers0[SPECIES_SOL]->InitiateComms(geometry0, config[iZone], SOLUTION); - solvers0[SPECIES_SOL]->CompleteComms(geometry0, config[iZone], SOLUTION); + solvers0[SPECIES_SOL]->InitiateComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); + solvers0[SPECIES_SOL]->CompleteComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); } if (config[iZone]->GetWeakly_Coupled_Heat()) { solvers0[HEAT_SOL]->Set_Heatflux_Areas(geometry0, config[iZone]); solvers0[HEAT_SOL]->Preprocessing(geometry0, solvers0, config[iZone], MESH_0, NO_RK_ITER, RUNTIME_HEAT_SYS, true); solvers0[HEAT_SOL]->Postprocessing(geometry0, solvers0, config[iZone], MESH_0); - solvers0[HEAT_SOL]->InitiateComms(geometry0, config[iZone], SOLUTION); - solvers0[HEAT_SOL]->CompleteComms(geometry0, config[iZone], SOLUTION); + solvers0[HEAT_SOL]->InitiateComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); + solvers0[HEAT_SOL]->CompleteComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); } } @@ -495,8 +495,8 @@ void CDiscAdjFluidIteration::SetDependencies(CSolver***** solver, CGeometry**** if (config[iZone]->AddRadiation()) { solvers0[RAD_SOL]->Postprocessing(geometry0, solvers0, config[iZone], MESH_0); - solvers0[RAD_SOL]->InitiateComms(geometry0, config[iZone], SOLUTION); - solvers0[RAD_SOL]->CompleteComms(geometry0, config[iZone], SOLUTION); + solvers0[RAD_SOL]->InitiateComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); + solvers0[RAD_SOL]->CompleteComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); } } diff --git a/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp index 1c3666d5216..f0c14d4168a 100644 --- a/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp @@ -213,8 +213,8 @@ void CDiscAdjHeatIteration::SetDependencies(CSolver***** solver, CGeometry**** g solvers0[HEAT_SOL]->Preprocessing(geometries[MESH_0], solvers0, config[iZone], MESH_0, NO_RK_ITER, RUNTIME_HEAT_SYS, true); solvers0[HEAT_SOL]->Postprocessing(geometries[MESH_0], solvers0, config[iZone], MESH_0); - solvers0[HEAT_SOL]->InitiateComms(geometries[MESH_0], config[iZone], SOLUTION); - solvers0[HEAT_SOL]->CompleteComms(geometries[MESH_0], config[iZone], SOLUTION); + solvers0[HEAT_SOL]->InitiateComms(geometries[MESH_0], config[iZone], MPI_QUANTITIES::SOLUTION); + solvers0[HEAT_SOL]->CompleteComms(geometries[MESH_0], config[iZone], MPI_QUANTITIES::SOLUTION); } void CDiscAdjHeatIteration::RegisterOutput(CSolver***** solver, CGeometry**** geometry, CConfig** config, diff --git a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp index e43bd91c871..17128c7fec8 100644 --- a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp @@ -328,8 +328,8 @@ CAdjEulerSolver::CAdjEulerSolver(CGeometry *geometry, CConfig *config, unsigned /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); SolverName = "ADJ.FLOW"; } @@ -888,8 +888,8 @@ void CAdjEulerSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solve for (auto iMesh = 1ul; iMesh <= config->GetnMGLevels(); iMesh++) { MultigridRestriction(*geometry[iMesh - 1], solver_container[iMesh - 1][ADJFLOW_SOL]->GetNodes()->GetSolution(), *geometry[iMesh], solver_container[iMesh][ADJFLOW_SOL]->GetNodes()->GetSolution()); - solver_container[iMesh][ADJFLOW_SOL]->InitiateComms(geometry[iMesh], config, SOLUTION); - solver_container[iMesh][ADJFLOW_SOL]->CompleteComms(geometry[iMesh], config, SOLUTION); + solver_container[iMesh][ADJFLOW_SOL]->InitiateComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); + solver_container[iMesh][ADJFLOW_SOL]->CompleteComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); } } @@ -1343,8 +1343,8 @@ void CAdjEulerSolver::SetCentered_Dissipation_Sensor(CGeometry *geometry, CConfi /*--- MPI parallelization ---*/ - InitiateComms(geometry, config, SENSOR); - CompleteComms(geometry, config, SENSOR); + InitiateComms(geometry, config, MPI_QUANTITIES::SENSOR); + CompleteComms(geometry, config, MPI_QUANTITIES::SENSOR); } @@ -1377,8 +1377,8 @@ void CAdjEulerSolver::ExplicitRK_Iteration(CGeometry *geometry, CSolver **solver /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); /*--- Compute the root mean square residual ---*/ SetResidual_RMS(geometry, config); @@ -1411,8 +1411,8 @@ void CAdjEulerSolver::ExplicitEuler_Iteration(CGeometry *geometry, CSolver **sol /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); /*--- Compute the root mean square residual ---*/ SetResidual_RMS(geometry, config); @@ -1491,8 +1491,8 @@ void CAdjEulerSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **sol /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); /*--- Compute the root mean square residual ---*/ @@ -3880,8 +3880,8 @@ void CAdjEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf it down to the coarse levels. We also call the preprocessing routine on the fine level in order to have all necessary quantities updated. ---*/ - solver[MESH_0][ADJFLOW_SOL]->InitiateComms(geometry[MESH_0], config, SOLUTION); - solver[MESH_0][ADJFLOW_SOL]->CompleteComms(geometry[MESH_0], config, SOLUTION); + solver[MESH_0][ADJFLOW_SOL]->InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); + solver[MESH_0][ADJFLOW_SOL]->CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); solver[MESH_0][ADJFLOW_SOL]->Preprocessing(geometry[MESH_0], solver[MESH_0], config, MESH_0, NO_RK_ITER, RUNTIME_FLOW_SYS, false); /*--- Interpolate the solution down to the coarse multigrid levels ---*/ @@ -3889,8 +3889,8 @@ void CAdjEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf for (iMesh = 1; iMesh <= config->GetnMGLevels(); iMesh++) { MultigridRestriction(*geometry[iMesh - 1], solver[iMesh - 1][ADJFLOW_SOL]->GetNodes()->GetSolution(), *geometry[iMesh], solver[iMesh][ADJFLOW_SOL]->GetNodes()->GetSolution()); - solver[iMesh][ADJFLOW_SOL]->InitiateComms(geometry[iMesh], config, SOLUTION); - solver[iMesh][ADJFLOW_SOL]->CompleteComms(geometry[iMesh], config, SOLUTION); + solver[iMesh][ADJFLOW_SOL]->InitiateComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); + solver[iMesh][ADJFLOW_SOL]->CompleteComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); solver[iMesh][ADJFLOW_SOL]->Preprocessing(geometry[iMesh], solver[iMesh], config, iMesh, NO_RK_ITER, RUNTIME_FLOW_SYS, false); } diff --git a/SU2_CFD/src/solvers/CAdjNSSolver.cpp b/SU2_CFD/src/solvers/CAdjNSSolver.cpp index b9da5ad2b63..c07425a2bdc 100644 --- a/SU2_CFD/src/solvers/CAdjNSSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjNSSolver.cpp @@ -281,8 +281,8 @@ CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); } diff --git a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp index 58403f541a4..3d5b6eb7024 100644 --- a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp @@ -158,8 +158,8 @@ CAdjTurbSolver::CAdjTurbSolver(CGeometry *geometry, CConfig *config, unsigned sh /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); } @@ -511,8 +511,8 @@ void CAdjTurbSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solv /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); /*--- Compute the root mean square residual ---*/ diff --git a/SU2_CFD/src/solvers/CBaselineSolver.cpp b/SU2_CFD/src/solvers/CBaselineSolver.cpp index bc8b9c1ebc5..411cce58397 100644 --- a/SU2_CFD/src/solvers/CBaselineSolver.cpp +++ b/SU2_CFD/src/solvers/CBaselineSolver.cpp @@ -459,8 +459,8 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf /*--- MPI solution ---*/ - InitiateComms(geometry[iInst], config, SOLUTION); - CompleteComms(geometry[iInst], config, SOLUTION); + InitiateComms(geometry[iInst], config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry[iInst], config, MPI_QUANTITIES::SOLUTION); /*--- Update the geometry for flows on dynamic meshes ---*/ @@ -468,11 +468,11 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf /*--- Communicate the new coordinates and grid velocities at the halos ---*/ - geometry[iInst]->InitiateComms(geometry[iInst], config, COORDINATES); - geometry[iInst]->CompleteComms(geometry[iInst], config, COORDINATES); + geometry[iInst]->InitiateComms(geometry[iInst], config, MPI_QUANTITIES::COORDINATES); + geometry[iInst]->CompleteComms(geometry[iInst], config, MPI_QUANTITIES::COORDINATES); - geometry[iInst]->InitiateComms(geometry[iInst], config, GRID_VELOCITY); - geometry[iInst]->CompleteComms(geometry[iInst], config, GRID_VELOCITY); + geometry[iInst]->InitiateComms(geometry[iInst], config, MPI_QUANTITIES::GRID_VELOCITY); + geometry[iInst]->CompleteComms(geometry[iInst], config, MPI_QUANTITIES::GRID_VELOCITY); } diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 16cdfe59a4b..bdc4db5a473 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -2351,8 +2351,8 @@ void CEulerSolver::SetUndivided_Laplacian(CGeometry *geometry, const CConfig *co /*--- MPI parallelization ---*/ - InitiateComms(geometry, config, UNDIVIDED_LAPLACIAN); - CompleteComms(geometry, config, UNDIVIDED_LAPLACIAN); + InitiateComms(geometry, config, MPI_QUANTITIES::UNDIVIDED_LAPLACIAN); + CompleteComms(geometry, config, MPI_QUANTITIES::UNDIVIDED_LAPLACIAN); } @@ -2415,8 +2415,8 @@ void CEulerSolver::SetUpwind_Ducros_Sensor(CGeometry *geometry, CConfig *config) } END_SU2_OMP_FOR - InitiateComms(geometry, config, SENSOR); - CompleteComms(geometry, config, SENSOR); + InitiateComms(geometry, config, MPI_QUANTITIES::SENSOR); + CompleteComms(geometry, config, MPI_QUANTITIES::SENSOR); } @@ -5067,8 +5067,8 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, su2double Velocity_i[MAXNDIM]={0}; for (auto iDim=0u; iDim < nDim; iDim++) Velocity_i[iDim] = nodes->GetVelocity(iPoint,iDim); - - const auto Velocity2_i = GeometryToolbox::SquaredNorm(nDim, Velocity_i); + + const auto Velocity2_i = GeometryToolbox::SquaredNorm(nDim, Velocity_i); const auto Density_i = nodes->GetDensity(iPoint); @@ -5090,7 +5090,7 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, T_Total{0}, P_Total{0}, Density_e{0}, StaticEnthalpy_e{0}, StaticEnergy_e{0}; su2double Velocity2_e{0}, NormalVelocity{0}, TangVelocity{0}, VelMag_e{0}; - su2double Velocity_e[MAXNDIM] = {0}; + su2double Velocity_e[MAXNDIM] = {0}; const su2double * Flow_Dir, * Mach; switch(config->GetKind_Data_Riemann(Marker_Tag)) { @@ -5146,10 +5146,10 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, GetFluidModel()->SetTDState_PT(P_static, T_static); /* --- Compute the boundary state u_e --- */ - for (auto iDim = 0u; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) Velocity_e[iDim] = Mach[iDim]*GetFluidModel()->GetSoundSpeed(); - Velocity2_e = GeometryToolbox::SquaredNorm(nDim, Velocity_e); + Velocity2_e = GeometryToolbox::SquaredNorm(nDim, Velocity_e); Density_e = GetFluidModel()->GetDensity(); StaticEnergy_e = GetFluidModel()->GetStaticEnergy(); Energy_e = StaticEnergy_e + 0.5 * Velocity2_e; @@ -5176,7 +5176,7 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, for (auto iDim = 0u; iDim < nDim; iDim++) Velocity_e[iDim] = Mach[iDim]*GetFluidModel()->GetSoundSpeed(); - Velocity2_e = GeometryToolbox::SquaredNorm(nDim, Velocity_e); + Velocity2_e = GeometryToolbox::SquaredNorm(nDim, Velocity_e); Density_e = GetFluidModel()->GetDensity(); StaticEnergy_e = GetFluidModel()->GetStaticEnergy(); Energy_e = StaticEnergy_e + 0.5 * Velocity2_e; @@ -5208,10 +5208,10 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, /* --- Compute the boundary state u_e --- */ GetFluidModel()->SetTDState_Prho(Pressure_e, Density_e); - for (auto iDim = 0u; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) Velocity_e[iDim] = Velocity_i[iDim]; - Velocity2_e = GeometryToolbox::SquaredNorm(nDim, Velocity_e); + Velocity2_e = GeometryToolbox::SquaredNorm(nDim, Velocity_e); Energy_e = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_e; break; @@ -5235,7 +5235,7 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, } /*--- Flow eigenvalues, boundary state u_e and u_i ---*/ - su2double Lambda_i[MAXNVAR] = {0}, u_e[MAXNVAR] = {0}, u_i[MAXNVAR]={0}, u_b[MAXNVAR]={0}, + su2double Lambda_i[MAXNVAR] = {0}, u_e[MAXNVAR] = {0}, u_i[MAXNVAR]={0}, u_b[MAXNVAR]={0}, dw[MAXNVAR]={0}; u_e[0] = Density_e; u_i[0] = Density_i; @@ -5302,7 +5302,7 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, LinSysRes.AddBlock(iPoint, Residual); if (implicit) { - su2double **Jacobian_b = new su2double*[nVar], + su2double **Jacobian_b = new su2double*[nVar], **Jacobian_i = new su2double*[nVar]; su2double **DubDu = new su2double*[nVar]; for (auto iVar = 0u; iVar < nVar; iVar++){ @@ -5333,7 +5333,7 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, if (dynamic_grid){ const auto gridVel = geometry->nodes->GetGridVel(iPoint); const auto projVelocity = GeometryToolbox::DotProduct(nDim, gridVel, Normal); - for (auto iVar = 0u; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_b[iVar][iVar] -= projVelocity; } @@ -5394,7 +5394,7 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, visc_numerics->SetPrimVarGradient(nodes->GetGradient_Primitive(iPoint), nodes->GetGradient_Primitive(iPoint)); /*--- Secondary variables ---*/ - + auto S_domain = nodes->GetSecondary(iPoint); /*--- Compute secondary thermodynamic properties (partial derivatives...) ---*/ @@ -8795,9 +8795,9 @@ void CEulerSolver::PreprocessAverage(CSolver **solver, CGeometry *geometry, CCon const auto nSpanWiseSections = config->GetnSpanWiseSections(); const auto iZone = config->GetiZone(); - + for (auto iSpan= 0u; iSpan < nSpanWiseSections; iSpan++){ - su2double TotalAreaVelocity[MAXNDIM]={0.0}, + su2double TotalAreaVelocity[MAXNDIM]={0.0}, TotalAreaPressure{0}, TotalAreaDensity{0}; for (auto iMarker = 0u; iMarker < config->GetnMarker_All(); iMarker++){ @@ -8987,7 +8987,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC TotalAreaVelocity[iDim] += Area*Velocity[iDim]; TotalMassVelocity[iDim] += Area*(Density*TurboVelocity[0] )*Velocity[iDim]; } - + TotalFluxes[0] += Area*(Density*TurboVelocity[0]); TotalFluxes[1] += Area*(Density*TurboVelocity[0]*TurboVelocity[0] + Pressure); for (auto iDim = 2; iDim < nDim+1; iDim++) @@ -9036,7 +9036,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC UpdateTotalQuantities(iMarker, jSpan, iVertex); } } - } + } } // marker_flag match } // iMarkerTP match @@ -9251,7 +9251,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC OmegaOut[iMarkerTP - 1][iSpan] = AverageOmega[iMarker][iSpan]; NuOut[iMarkerTP - 1][iSpan] = AverageNu[iMarker][iSpan]; } - + auto TurboVel = (marker_flag == INFLOW) ? TurboVelocityIn[iMarkerTP - 1][iSpan] : TurboVelocityOut[iMarkerTP - 1][iSpan]; if (performance_average_process == MIXEDOUT) { @@ -9281,7 +9281,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC if(config->GetKind_Data_Giles(Marker_Tag) == RADIAL_EQUILIBRIUM){ RadialEquilibriumPressure[iMarker][nSpanWiseSections/2] = config->GetGiles_Var1(Marker_Tag)/config->GetPressure_Ref(); } - } + } for (auto iSpan= nSpanWiseSections/2; iSpan < nSpanWiseSections-1; iSpan++){ const auto Radius2 = geometry->GetTurboRadius(iMarker,iSpan+1); const auto Radius1 = geometry->GetTurboRadius(iMarker,iSpan); @@ -9325,9 +9325,9 @@ void CEulerSolver::MixedOut_Average(CConfig *config, su2double val_init_pressure su2double vel[MAXNDIM] = {0}; vel[0] = (val_Averaged_Flux[1] - pressure_mix) / val_Averaged_Flux[0]; - for (auto iDim = 1u; iDim < nDim; iDim++) + for (auto iDim = 1u; iDim < nDim; iDim++) vel[iDim] = val_Averaged_Flux[iDim+1] / val_Averaged_Flux[0]; - + const su2double velsq = GeometryToolbox::DotProduct(nDim, vel, vel); diff --git a/SU2_CFD/src/solvers/CFEASolver.cpp b/SU2_CFD/src/solvers/CFEASolver.cpp index f67a0199d01..fd142988bce 100644 --- a/SU2_CFD/src/solvers/CFEASolver.cpp +++ b/SU2_CFD/src/solvers/CFEASolver.cpp @@ -3116,8 +3116,8 @@ void CFEASolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *c /*--- MPI. If dynamic, we also need to communicate the old solution. ---*/ - InitiateComms(geometry[MESH_0], config, SOLUTION_FEA); - CompleteComms(geometry[MESH_0], config, SOLUTION_FEA); + InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION_FEA); + CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION_FEA); /*--- It's important to not push back the solution when this function is used to load solutions for * unsteady discrete adjoints, otherwise we overwrite one of the two solutions needed. ---*/ diff --git a/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp b/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp index 1f3a425aae6..47a624faada 100644 --- a/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp +++ b/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp @@ -287,8 +287,8 @@ void CGradientSmoothingSolver::ApplyGradientSmoothingDV(CGeometry* geometry, CNu /*--- Matrix vector product with the Laplace-Beltrami stiffness matrix. ---*/ if (config->GetSmoothOnSurface()) { - CSysMatrixComms::Initiate(helperVecIn, geometry, config, SOLUTION_MATRIX); - CSysMatrixComms::Complete(helperVecIn, geometry, config, SOLUTION_MATRIX); + CSysMatrixComms::Initiate(helperVecIn, geometry, config, MPI_QUANTITIES::SOLUTION_MATRIX); + CSysMatrixComms::Complete(helperVecIn, geometry, config, MPI_QUANTITIES::SOLUTION_MATRIX); mat_vec(helperVecIn, helperVecAux); @@ -306,8 +306,8 @@ void CGradientSmoothingSolver::ApplyGradientSmoothingDV(CGeometry* geometry, CNu grid_movement->SetVolume_Deformation(geometry, config, false, true, true); CGradientSmoothingSolverDetails::ReadVectorToGeometry(geometry, helperVecIn); - CSysMatrixComms::Initiate(helperVecIn, geometry, config, SOLUTION_MATRIX); - CSysMatrixComms::Complete(helperVecIn, geometry, config, SOLUTION_MATRIX); + CSysMatrixComms::Initiate(helperVecIn, geometry, config, MPI_QUANTITIES::SOLUTION_MATRIX); + CSysMatrixComms::Complete(helperVecIn, geometry, config, MPI_QUANTITIES::SOLUTION_MATRIX); mat_vec(helperVecIn, helperVecAux); diff --git a/SU2_CFD/src/solvers/CHeatSolver.cpp b/SU2_CFD/src/solvers/CHeatSolver.cpp index b01870e29bb..64ddb898e74 100644 --- a/SU2_CFD/src/solvers/CHeatSolver.cpp +++ b/SU2_CFD/src/solvers/CHeatSolver.cpp @@ -152,8 +152,8 @@ CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iM /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); /*--- Store the initial CFL number for all grid points. ---*/ @@ -246,8 +246,8 @@ void CHeatSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig * on the fine level in order to have all necessary quantities updated, especially if this is a turbulent simulation (eddy viscosity). ---*/ - solver[MESH_0][HEAT_SOL]->InitiateComms(geometry[MESH_0], config, SOLUTION); - solver[MESH_0][HEAT_SOL]->CompleteComms(geometry[MESH_0], config, SOLUTION); + solver[MESH_0][HEAT_SOL]->InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); + solver[MESH_0][HEAT_SOL]->CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); solver[MESH_0][HEAT_SOL]->Preprocessing(geometry[MESH_0], solver[MESH_0], config, MESH_0, NO_RK_ITER, RUNTIME_HEAT_SYS, false); @@ -256,8 +256,8 @@ void CHeatSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig * for (auto iMesh = 1u; iMesh <= config->GetnMGLevels(); iMesh++) { MultigridRestriction(*geometry[iMesh - 1], solver[iMesh - 1][HEAT_SOL]->GetNodes()->GetSolution(), *geometry[iMesh], solver[iMesh][HEAT_SOL]->GetNodes()->GetSolution()); - solver[iMesh][HEAT_SOL]->InitiateComms(geometry[iMesh], config, SOLUTION); - solver[iMesh][HEAT_SOL]->CompleteComms(geometry[iMesh], config, SOLUTION); + solver[iMesh][HEAT_SOL]->InitiateComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); + solver[iMesh][HEAT_SOL]->CompleteComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); solver[iMesh][HEAT_SOL]->Preprocessing(geometry[iMesh], solver[iMesh], config, iMesh, NO_RK_ITER, RUNTIME_HEAT_SYS, false); } @@ -934,8 +934,8 @@ void CHeatSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_co for (auto iMesh = 1u; iMesh <= config->GetnMGLevels(); iMesh++) { MultigridRestriction(*geometry[iMesh - 1], solver_container[iMesh - 1][HEAT_SOL]->GetNodes()->GetSolution(), *geometry[iMesh], solver_container[iMesh][HEAT_SOL]->GetNodes()->GetSolution()); - solver_container[iMesh][HEAT_SOL]->InitiateComms(geometry[iMesh], config, SOLUTION); - solver_container[iMesh][HEAT_SOL]->CompleteComms(geometry[iMesh], config, SOLUTION); + solver_container[iMesh][HEAT_SOL]->InitiateComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); + solver_container[iMesh][HEAT_SOL]->CompleteComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); } } diff --git a/SU2_CFD/src/solvers/CMeshSolver.cpp b/SU2_CFD/src/solvers/CMeshSolver.cpp index 39e17b322c8..e875dcab694 100644 --- a/SU2_CFD/src/solvers/CMeshSolver.cpp +++ b/SU2_CFD/src/solvers/CMeshSolver.cpp @@ -479,14 +479,14 @@ void CMeshSolver::DeformMesh(CGeometry **geometry, CNumerics **numerics, CConfig if (multizone) nodes->Set_BGSSolution_k(); /*--- Capture a few MPI dependencies for AD. ---*/ - geometry[MESH_0]->InitiateComms(geometry[MESH_0], config, COORDINATES); - geometry[MESH_0]->CompleteComms(geometry[MESH_0], config, COORDINATES); + geometry[MESH_0]->InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::COORDINATES); + geometry[MESH_0]->CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::COORDINATES); - InitiateComms(geometry[MESH_0], config, SOLUTION); - CompleteComms(geometry[MESH_0], config, SOLUTION); + InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); - InitiateComms(geometry[MESH_0], config, MESH_DISPLACEMENTS); - CompleteComms(geometry[MESH_0], config, MESH_DISPLACEMENTS); + InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::MESH_DISPLACEMENTS); + CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::MESH_DISPLACEMENTS); /*--- Compute the stiffness matrix, no point recording because we clear the residual. ---*/ @@ -562,8 +562,8 @@ void CMeshSolver::UpdateGridCoord(CGeometry *geometry, const CConfig *config){ END_SU2_OMP_FOR /*--- Communicate the updated displacements and mesh coordinates. ---*/ - geometry->InitiateComms(geometry, config, COORDINATES); - geometry->CompleteComms(geometry, config, COORDINATES); + geometry->InitiateComms(geometry, config, MPI_QUANTITIES::COORDINATES); + geometry->CompleteComms(geometry, config, MPI_QUANTITIES::COORDINATES); } @@ -818,8 +818,8 @@ void CMeshSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig * } /*--- Communicate the loaded displacements. ---*/ - solver[MESH_0][MESH_SOL]->InitiateComms(geometry[MESH_0], config, SOLUTION); - solver[MESH_0][MESH_SOL]->CompleteComms(geometry[MESH_0], config, SOLUTION); + solver[MESH_0][MESH_SOL]->InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); + solver[MESH_0][MESH_SOL]->CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); /*--- Init the linear system solution. ---*/ for (unsigned long iPoint = 0; iPoint < nPoint; ++iPoint) { @@ -880,7 +880,7 @@ void CMeshSolver::RestartOldGeometry(CGeometry *geometry, const CConfig *config) for(unsigned short iStep = 1; iStep <= nSteps; ++iStep) { - unsigned short CommType = (iStep == 1) ? SOLUTION_TIME_N : SOLUTION_TIME_N1; + MPI_QUANTITIES CommType = (iStep == 1) ? MPI_QUANTITIES::SOLUTION_TIME_N : MPI_QUANTITIES::SOLUTION_TIME_N1; /*--- Modify file name for an unsteady restart ---*/ int Unst_RestartIter; diff --git a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp index 0905ddeda32..3519d6d912d 100644 --- a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp @@ -2354,7 +2354,7 @@ void CNEMOEulerSolver::SetPressureDiffusionSensor(CGeometry *geometry, CConfig * /*--- MPI parallelization ---*/ - InitiateComms(geometry, config, SENSOR); - CompleteComms(geometry, config, SENSOR); + InitiateComms(geometry, config, MPI_QUANTITIES::SENSOR); + CompleteComms(geometry, config, MPI_QUANTITIES::SENSOR); } diff --git a/SU2_CFD/src/solvers/CNEMONSSolver.cpp b/SU2_CFD/src/solvers/CNEMONSSolver.cpp index b6642b5cf8d..b30b99edebe 100644 --- a/SU2_CFD/src/solvers/CNEMONSSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMONSSolver.cpp @@ -146,7 +146,7 @@ unsigned long CNEMONSSolver::SetPrimitive_Variables(CSolver **solver_container,C void CNEMONSSolver::SetPrimitive_Gradient_GG(CGeometry *geometry, const CConfig *config, bool reconstruction) { auto& gradient = reconstruction ? nodes->GetGradient_Reconstruction() : nodes->GetGradient_Primitive(); - const auto comm = reconstruction? PRIMITIVE_GRAD_REC : PRIMITIVE_GRADIENT; + const auto comm = reconstruction? MPI_QUANTITIES::PRIMITIVE_GRAD_REC : MPI_QUANTITIES::PRIMITIVE_GRADIENT; const auto commPer = reconstruction? PERIODIC_PRIM_GG_R : PERIODIC_PRIM_GG; /*--- Get indices of species & mixture density ---*/ diff --git a/SU2_CFD/src/solvers/CRadP1Solver.cpp b/SU2_CFD/src/solvers/CRadP1Solver.cpp index af40b22f2bc..d102e3b1d9a 100644 --- a/SU2_CFD/src/solvers/CRadP1Solver.cpp +++ b/SU2_CFD/src/solvers/CRadP1Solver.cpp @@ -553,8 +553,8 @@ void CRadP1Solver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); /*--- Compute the root mean square residual ---*/ diff --git a/SU2_CFD/src/solvers/CRadSolver.cpp b/SU2_CFD/src/solvers/CRadSolver.cpp index ca5becad7af..735983fa586 100644 --- a/SU2_CFD/src/solvers/CRadSolver.cpp +++ b/SU2_CFD/src/solvers/CRadSolver.cpp @@ -149,8 +149,8 @@ void CRadSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *c } /*--- MPI communication ---*/ - solver[MESH_0][RAD_SOL]->InitiateComms(geometry[MESH_0], config, SOLUTION); - solver[MESH_0][RAD_SOL]->CompleteComms(geometry[MESH_0], config, SOLUTION); + solver[MESH_0][RAD_SOL]->InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); + solver[MESH_0][RAD_SOL]->CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); /*--- Preprocess the fluid solver to compute the primitive variables ---*/ solver[MESH_0][FLOW_SOL]->Preprocessing(geometry[MESH_0], solver[MESH_0], config, MESH_0, NO_RK_ITER, RUNTIME_FLOW_SYS, false); diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index 03c79b46fc3..f7af2746cfe 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -1322,60 +1322,60 @@ void CSolver::CompletePeriodicComms(CGeometry *geometry, } void CSolver::GetCommCountAndType(const CConfig* config, - unsigned short commType, + MPI_QUANTITIES commType, unsigned short &COUNT_PER_POINT, unsigned short &MPI_TYPE) const { switch (commType) { - case SOLUTION: - case SOLUTION_OLD: - case UNDIVIDED_LAPLACIAN: - case SOLUTION_LIMITER: + case MPI_QUANTITIES::SOLUTION: + case MPI_QUANTITIES::SOLUTION_OLD: + case MPI_QUANTITIES::UNDIVIDED_LAPLACIAN: + case MPI_QUANTITIES::SOLUTION_LIMITER: COUNT_PER_POINT = nVar; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case MAX_EIGENVALUE: - case SENSOR: + case MPI_QUANTITIES::MAX_EIGENVALUE: + case MPI_QUANTITIES::SENSOR: COUNT_PER_POINT = 1; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case SOLUTION_GRADIENT: - case SOLUTION_GRAD_REC: + case MPI_QUANTITIES::SOLUTION_GRADIENT: + case MPI_QUANTITIES::SOLUTION_GRAD_REC: COUNT_PER_POINT = nVar*nDim; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case PRIMITIVE_GRADIENT: - case PRIMITIVE_GRAD_REC: + case MPI_QUANTITIES::PRIMITIVE_GRADIENT: + case MPI_QUANTITIES::PRIMITIVE_GRAD_REC: COUNT_PER_POINT = nPrimVarGrad*nDim; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case PRIMITIVE_LIMITER: + case MPI_QUANTITIES::PRIMITIVE_LIMITER: COUNT_PER_POINT = nPrimVarGrad; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case SOLUTION_EDDY: + case MPI_QUANTITIES::SOLUTION_EDDY: COUNT_PER_POINT = nVar+1; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case SOLUTION_FEA: + case MPI_QUANTITIES::SOLUTION_FEA: if (config->GetTime_Domain()) COUNT_PER_POINT = nVar*3; else COUNT_PER_POINT = nVar; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case AUXVAR_GRADIENT: + case MPI_QUANTITIES::AUXVAR_GRADIENT: COUNT_PER_POINT = nDim*base_nodes->GetnAuxVar(); MPI_TYPE = COMM_TYPE_DOUBLE; break; - case MESH_DISPLACEMENTS: + case MPI_QUANTITIES::MESH_DISPLACEMENTS: COUNT_PER_POINT = nDim; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case SOLUTION_TIME_N: + case MPI_QUANTITIES::SOLUTION_TIME_N: COUNT_PER_POINT = nVar; MPI_TYPE = COMM_TYPE_DOUBLE; break; - case SOLUTION_TIME_N1: + case MPI_QUANTITIES::SOLUTION_TIME_N1: COUNT_PER_POINT = nVar; MPI_TYPE = COMM_TYPE_DOUBLE; break; @@ -1387,25 +1387,25 @@ void CSolver::GetCommCountAndType(const CConfig* config, } namespace CommHelpers { - CVectorOfMatrix& selectGradient(CVariable* nodes, unsigned short commType) { + CVectorOfMatrix& selectGradient(CVariable* nodes, MPI_QUANTITIES commType) { switch(commType) { - case SOLUTION_GRAD_REC: return nodes->GetGradient_Reconstruction(); - case PRIMITIVE_GRADIENT: return nodes->GetGradient_Primitive(); - case PRIMITIVE_GRAD_REC: return nodes->GetGradient_Reconstruction(); - case AUXVAR_GRADIENT: return nodes->GetAuxVarGradient(); + case MPI_QUANTITIES::SOLUTION_GRAD_REC: return nodes->GetGradient_Reconstruction(); + case MPI_QUANTITIES::PRIMITIVE_GRADIENT: return nodes->GetGradient_Primitive(); + case MPI_QUANTITIES::PRIMITIVE_GRAD_REC: return nodes->GetGradient_Reconstruction(); + case MPI_QUANTITIES::AUXVAR_GRADIENT: return nodes->GetAuxVarGradient(); default: return nodes->GetGradient(); } } - su2activematrix& selectLimiter(CVariable* nodes, unsigned short commType) { - if (commType == PRIMITIVE_LIMITER) return nodes->GetLimiter_Primitive(); + su2activematrix& selectLimiter(CVariable* nodes, MPI_QUANTITIES commType) { + if (commType == MPI_QUANTITIES::PRIMITIVE_LIMITER) return nodes->GetLimiter_Primitive(); return nodes->GetLimiter(); } } void CSolver::InitiateComms(CGeometry *geometry, const CConfig *config, - unsigned short commType) { + MPI_QUANTITIES commType) { /*--- Local variables ---*/ @@ -1470,44 +1470,44 @@ void CSolver::InitiateComms(CGeometry *geometry, buf_offset = (msg_offset + iSend)*COUNT_PER_POINT; switch (commType) { - case SOLUTION: + case MPI_QUANTITIES::SOLUTION: for (iVar = 0; iVar < nVar; iVar++) bufDSend[buf_offset+iVar] = base_nodes->GetSolution(iPoint, iVar); break; - case SOLUTION_OLD: + case MPI_QUANTITIES::SOLUTION_OLD: for (iVar = 0; iVar < nVar; iVar++) bufDSend[buf_offset+iVar] = base_nodes->GetSolution_Old(iPoint, iVar); break; - case SOLUTION_EDDY: + case MPI_QUANTITIES::SOLUTION_EDDY: for (iVar = 0; iVar < nVar; iVar++) bufDSend[buf_offset+iVar] = base_nodes->GetSolution(iPoint, iVar); bufDSend[buf_offset+nVar] = base_nodes->GetmuT(iPoint); break; - case UNDIVIDED_LAPLACIAN: + case MPI_QUANTITIES::UNDIVIDED_LAPLACIAN: for (iVar = 0; iVar < nVar; iVar++) bufDSend[buf_offset+iVar] = base_nodes->GetUndivided_Laplacian(iPoint, iVar); break; - case SOLUTION_LIMITER: - case PRIMITIVE_LIMITER: + case MPI_QUANTITIES::SOLUTION_LIMITER: + case MPI_QUANTITIES::PRIMITIVE_LIMITER: for (iVar = 0; iVar < COUNT_PER_POINT; iVar++) bufDSend[buf_offset+iVar] = limiter(iPoint, iVar); break; - case MAX_EIGENVALUE: + case MPI_QUANTITIES::MAX_EIGENVALUE: bufDSend[buf_offset] = base_nodes->GetLambda(iPoint); break; - case SENSOR: + case MPI_QUANTITIES::SENSOR: bufDSend[buf_offset] = base_nodes->GetSensor(iPoint); break; - case SOLUTION_GRADIENT: - case PRIMITIVE_GRADIENT: - case SOLUTION_GRAD_REC: - case PRIMITIVE_GRAD_REC: - case AUXVAR_GRADIENT: + case MPI_QUANTITIES::SOLUTION_GRADIENT: + case MPI_QUANTITIES::PRIMITIVE_GRADIENT: + case MPI_QUANTITIES::SOLUTION_GRAD_REC: + case MPI_QUANTITIES::PRIMITIVE_GRAD_REC: + case MPI_QUANTITIES::AUXVAR_GRADIENT: for (iVar = 0; iVar < nVarGrad; iVar++) for (iDim = 0; iDim < nDim; iDim++) bufDSend[buf_offset+iVar*nDim+iDim] = gradient(iPoint, iVar, iDim); break; - case SOLUTION_FEA: + case MPI_QUANTITIES::SOLUTION_FEA: for (iVar = 0; iVar < nVar; iVar++) { bufDSend[buf_offset+iVar] = base_nodes->GetSolution(iPoint, iVar); if (config->GetTime_Domain()) { @@ -1516,15 +1516,15 @@ void CSolver::InitiateComms(CGeometry *geometry, } } break; - case MESH_DISPLACEMENTS: + case MPI_QUANTITIES::MESH_DISPLACEMENTS: for (iDim = 0; iDim < nDim; iDim++) bufDSend[buf_offset+iDim] = base_nodes->GetBound_Disp(iPoint, iDim); break; - case SOLUTION_TIME_N: + case MPI_QUANTITIES::SOLUTION_TIME_N: for (iVar = 0; iVar < nVar; iVar++) bufDSend[buf_offset+iVar] = base_nodes->GetSolution_time_n(iPoint, iVar); break; - case SOLUTION_TIME_N1: + case MPI_QUANTITIES::SOLUTION_TIME_N1: for (iVar = 0; iVar < nVar; iVar++) bufDSend[buf_offset+iVar] = base_nodes->GetSolution_time_n1(iPoint, iVar); break; @@ -1547,7 +1547,7 @@ void CSolver::InitiateComms(CGeometry *geometry, void CSolver::CompleteComms(CGeometry *geometry, const CConfig *config, - unsigned short commType) { + MPI_QUANTITIES commType) { /*--- Local variables ---*/ @@ -1618,44 +1618,44 @@ void CSolver::CompleteComms(CGeometry *geometry, /*--- Store the data correctly depending on the quantity. ---*/ switch (commType) { - case SOLUTION: + case MPI_QUANTITIES::SOLUTION: for (iVar = 0; iVar < nVar; iVar++) base_nodes->SetSolution(iPoint, iVar, bufDRecv[buf_offset+iVar]); break; - case SOLUTION_OLD: + case MPI_QUANTITIES::SOLUTION_OLD: for (iVar = 0; iVar < nVar; iVar++) base_nodes->SetSolution_Old(iPoint, iVar, bufDRecv[buf_offset+iVar]); break; - case SOLUTION_EDDY: + case MPI_QUANTITIES::SOLUTION_EDDY: for (iVar = 0; iVar < nVar; iVar++) base_nodes->SetSolution(iPoint, iVar, bufDRecv[buf_offset+iVar]); base_nodes->SetmuT(iPoint,bufDRecv[buf_offset+nVar]); break; - case UNDIVIDED_LAPLACIAN: + case MPI_QUANTITIES::UNDIVIDED_LAPLACIAN: for (iVar = 0; iVar < nVar; iVar++) base_nodes->SetUnd_Lapl(iPoint, iVar, bufDRecv[buf_offset+iVar]); break; - case SOLUTION_LIMITER: - case PRIMITIVE_LIMITER: + case MPI_QUANTITIES::SOLUTION_LIMITER: + case MPI_QUANTITIES::PRIMITIVE_LIMITER: for (iVar = 0; iVar < COUNT_PER_POINT; iVar++) limiter(iPoint,iVar) = bufDRecv[buf_offset+iVar]; break; - case MAX_EIGENVALUE: + case MPI_QUANTITIES::MAX_EIGENVALUE: base_nodes->SetLambda(iPoint,bufDRecv[buf_offset]); break; - case SENSOR: + case MPI_QUANTITIES::SENSOR: base_nodes->SetSensor(iPoint,bufDRecv[buf_offset]); break; - case SOLUTION_GRADIENT: - case PRIMITIVE_GRADIENT: - case SOLUTION_GRAD_REC: - case PRIMITIVE_GRAD_REC: - case AUXVAR_GRADIENT: + case MPI_QUANTITIES::SOLUTION_GRADIENT: + case MPI_QUANTITIES::PRIMITIVE_GRADIENT: + case MPI_QUANTITIES::SOLUTION_GRAD_REC: + case MPI_QUANTITIES::PRIMITIVE_GRAD_REC: + case MPI_QUANTITIES::AUXVAR_GRADIENT: for (iVar = 0; iVar < nVarGrad; iVar++) for (iDim = 0; iDim < nDim; iDim++) gradient(iPoint,iVar,iDim) = bufDRecv[buf_offset+iVar*nDim+iDim]; break; - case SOLUTION_FEA: + case MPI_QUANTITIES::SOLUTION_FEA: for (iVar = 0; iVar < nVar; iVar++) { base_nodes->SetSolution(iPoint, iVar, bufDRecv[buf_offset+iVar]); if (config->GetTime_Domain()) { @@ -1664,15 +1664,15 @@ void CSolver::CompleteComms(CGeometry *geometry, } } break; - case MESH_DISPLACEMENTS: + case MPI_QUANTITIES::MESH_DISPLACEMENTS: for (iDim = 0; iDim < nDim; iDim++) base_nodes->SetBound_Disp(iPoint, iDim, bufDRecv[buf_offset+iDim]); break; - case SOLUTION_TIME_N: + case MPI_QUANTITIES::SOLUTION_TIME_N: for (iVar = 0; iVar < nVar; iVar++) base_nodes->Set_Solution_time_n(iPoint, iVar, bufDRecv[buf_offset+iVar]); break; - case SOLUTION_TIME_N1: + case MPI_QUANTITIES::SOLUTION_TIME_N1: for (iVar = 0; iVar < nVar; iVar++) base_nodes->Set_Solution_time_n1(iPoint, iVar, bufDRecv[buf_offset+iVar]); break; @@ -2095,7 +2095,7 @@ void CSolver::SetAuxVar_Gradient_GG(CGeometry *geometry, const CConfig *config) const auto& solution = base_nodes->GetAuxVar(); auto& gradient = base_nodes->GetAuxVarGradient(); - computeGradientsGreenGauss(this, AUXVAR_GRADIENT, PERIODIC_NONE, *geometry, + computeGradientsGreenGauss(this, MPI_QUANTITIES::AUXVAR_GRADIENT, PERIODIC_NONE, *geometry, *config, solution, 0, base_nodes->GetnAuxVar(), gradient); } @@ -2106,7 +2106,7 @@ void CSolver::SetAuxVar_Gradient_LS(CGeometry *geometry, const CConfig *config) auto& gradient = base_nodes->GetAuxVarGradient(); auto& rmatrix = base_nodes->GetRmatrix(); - computeGradientsLeastSquares(this, AUXVAR_GRADIENT, PERIODIC_NONE, *geometry, *config, + computeGradientsLeastSquares(this, MPI_QUANTITIES::AUXVAR_GRADIENT, PERIODIC_NONE, *geometry, *config, weighted, solution, 0, base_nodes->GetnAuxVar(), gradient, rmatrix); } @@ -2114,7 +2114,7 @@ void CSolver::SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config const auto& solution = base_nodes->GetSolution(); auto& gradient = reconstruction? base_nodes->GetGradient_Reconstruction() : base_nodes->GetGradient(); - const auto comm = reconstruction? SOLUTION_GRAD_REC : SOLUTION_GRADIENT; + const auto comm = reconstruction? MPI_QUANTITIES::SOLUTION_GRAD_REC : MPI_QUANTITIES::SOLUTION_GRADIENT; const auto commPer = reconstruction? PERIODIC_SOL_GG_R : PERIODIC_SOL_GG; computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, solution, 0, nVar, gradient); @@ -2138,7 +2138,7 @@ void CSolver::SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config const auto& solution = base_nodes->GetSolution(); auto& rmatrix = base_nodes->GetRmatrix(); auto& gradient = reconstruction? base_nodes->GetGradient_Reconstruction() : base_nodes->GetGradient(); - const auto comm = reconstruction? SOLUTION_GRAD_REC : SOLUTION_GRADIENT; + const auto comm = reconstruction? MPI_QUANTITIES::SOLUTION_GRAD_REC : MPI_QUANTITIES::SOLUTION_GRADIENT; computeGradientsLeastSquares(this, comm, commPer, *geometry, *config, weighted, solution, 0, nVar, gradient, rmatrix); } @@ -2183,8 +2183,8 @@ void CSolver::SetUndivided_Laplacian(CGeometry *geometry, const CConfig *config) /*--- MPI parallelization ---*/ - InitiateComms(geometry, config, UNDIVIDED_LAPLACIAN); - CompleteComms(geometry, config, UNDIVIDED_LAPLACIAN); + InitiateComms(geometry, config, MPI_QUANTITIES::UNDIVIDED_LAPLACIAN); + CompleteComms(geometry, config, MPI_QUANTITIES::UNDIVIDED_LAPLACIAN); } @@ -2238,7 +2238,7 @@ void CSolver::SetGridVel_Gradient(CGeometry *geometry, const CConfig *config) co auto& gridVelGrad = geometry->nodes->GetGridVel_Grad(); auto rmatrix = CVectorOfMatrix(nPoint,nDim,nDim); - computeGradientsLeastSquares(nullptr, GRID_VELOCITY, PERIODIC_NONE, *geometry, *config, + computeGradientsLeastSquares(nullptr, MPI_QUANTITIES::GRID_VELOCITY, PERIODIC_NONE, *geometry, *config, true, gridVel, 0, nDim, gridVelGrad, rmatrix); } @@ -2251,7 +2251,7 @@ void CSolver::SetSolution_Limiter(CGeometry *geometry, const CConfig *config) { auto& solMax = base_nodes->GetSolution_Max(); auto& limiter = base_nodes->GetLimiter(); - computeLimiters(kindLimiter, this, SOLUTION_LIMITER, PERIODIC_LIM_SOL_1, PERIODIC_LIM_SOL_2, + computeLimiters(kindLimiter, this, MPI_QUANTITIES::SOLUTION_LIMITER, PERIODIC_LIM_SOL_1, PERIODIC_LIM_SOL_2, *geometry, *config, 0, nVar, solution, gradient, solMin, solMax, limiter); } @@ -2723,8 +2723,8 @@ void CSolver::Restart_OldGeometry(CGeometry *geometry, CConfig *config) const { /*--- It's necessary to communicate this information ---*/ - geometry->InitiateComms(geometry, config, COORDINATES_OLD); - geometry->CompleteComms(geometry, config, COORDINATES_OLD); + geometry->InitiateComms(geometry, config, MPI_QUANTITIES::COORDINATES_OLD); + geometry->CompleteComms(geometry, config, MPI_QUANTITIES::COORDINATES_OLD); } diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index 661c9543024..2484084e46f 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -265,11 +265,11 @@ void CSpeciesFlameletSolver::SetInitialCondition(CGeometry** geometry, CSolver** solver_container[i_mesh][SPECIES_SOL]->GetNodes()->SetSolution(i_point, scalar_init); } - solver_container[i_mesh][SPECIES_SOL]->InitiateComms(geometry[i_mesh], config, SOLUTION); - solver_container[i_mesh][SPECIES_SOL]->CompleteComms(geometry[i_mesh], config, SOLUTION); + solver_container[i_mesh][SPECIES_SOL]->InitiateComms(geometry[i_mesh], config, MPI_QUANTITIES::SOLUTION); + solver_container[i_mesh][SPECIES_SOL]->CompleteComms(geometry[i_mesh], config, MPI_QUANTITIES::SOLUTION); - solver_container[i_mesh][FLOW_SOL]->InitiateComms(geometry[i_mesh], config, SOLUTION); - solver_container[i_mesh][FLOW_SOL]->CompleteComms(geometry[i_mesh], config, SOLUTION); + solver_container[i_mesh][FLOW_SOL]->InitiateComms(geometry[i_mesh], config, MPI_QUANTITIES::SOLUTION); + solver_container[i_mesh][FLOW_SOL]->CompleteComms(geometry[i_mesh], config, MPI_QUANTITIES::SOLUTION); solver_container[i_mesh][FLOW_SOL]->Preprocessing(geometry[i_mesh], solver_container[i_mesh], config, i_mesh, NO_RK_ITER, RUNTIME_FLOW_SYS, false); @@ -543,7 +543,7 @@ unsigned long CSpeciesFlameletSolver::SetScalarLookUps(const CConfig* config, CF nodes->SetLookupScalar(iPoint, lookup_scalar[i_lookup], i_lookup); } } - + return misses; } diff --git a/SU2_CFD/src/solvers/CSpeciesSolver.cpp b/SU2_CFD/src/solvers/CSpeciesSolver.cpp index 05d43f13ff8..3c7ac895708 100644 --- a/SU2_CFD/src/solvers/CSpeciesSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesSolver.cpp @@ -60,8 +60,8 @@ CSpeciesSolver::CSpeciesSolver(CGeometry* geometry, CConfig* config, unsigned sh /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); SlidingState.resize(nMarker); SlidingStateNodes.resize(nMarker); @@ -248,8 +248,8 @@ void CSpeciesSolver::LoadRestart(CGeometry** geometry, CSolver*** solver, CConfi /*--- MPI solution and compute the eddy viscosity ---*/ - solver[MESH_0][SPECIES_SOL]->InitiateComms(geometry[MESH_0], config, SOLUTION); - solver[MESH_0][SPECIES_SOL]->CompleteComms(geometry[MESH_0], config, SOLUTION); + solver[MESH_0][SPECIES_SOL]->InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); + solver[MESH_0][SPECIES_SOL]->CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); // Flow-Pre computes/sets mixture properties solver[MESH_0][FLOW_SOL]->Preprocessing(geometry[MESH_0], solver[MESH_0], config, MESH_0, NO_RK_ITER, @@ -267,8 +267,8 @@ void CSpeciesSolver::LoadRestart(CGeometry** geometry, CSolver*** solver, CConfi for (auto iMesh = 1u; iMesh <= config->GetnMGLevels(); iMesh++) { MultigridRestriction(*geometry[iMesh - 1], solver[iMesh - 1][SPECIES_SOL]->GetNodes()->GetSolution(), *geometry[iMesh], solver[iMesh][SPECIES_SOL]->GetNodes()->GetSolution()); - solver[iMesh][SPECIES_SOL]->InitiateComms(geometry[iMesh], config, SOLUTION); - solver[iMesh][SPECIES_SOL]->CompleteComms(geometry[iMesh], config, SOLUTION); + solver[iMesh][SPECIES_SOL]->InitiateComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); + solver[iMesh][SPECIES_SOL]->CompleteComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); solver[iMesh][FLOW_SOL]->Preprocessing(geometry[iMesh], solver[iMesh], config, iMesh, NO_RK_ITER, RUNTIME_FLOW_SYS, false); @@ -345,7 +345,7 @@ void CSpeciesSolver::BC_Inlet(CGeometry* geometry, CSolver** solver_container, C /*--- Identify the boundary by string name ---*/ string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - + if (config->GetMarker_StrongBC(Marker_Tag)==true) { nodes->SetSolution_Old(iPoint, Inlet_SpeciesVars[val_marker][iVertex]); diff --git a/SU2_CFD/src/solvers/CTransLMSolver.cpp b/SU2_CFD/src/solvers/CTransLMSolver.cpp index af89924ea2e..1fdf2a47de1 100644 --- a/SU2_CFD/src/solvers/CTransLMSolver.cpp +++ b/SU2_CFD/src/solvers/CTransLMSolver.cpp @@ -132,8 +132,8 @@ CTransLMSolver::CTransLMSolver(CGeometry *geometry, CConfig *config, unsigned sh /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION); - CompleteComms(geometry, config, SOLUTION); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION); /*--- Initializate quantities for SlidingMesh Interface ---*/ @@ -561,8 +561,8 @@ void CTransLMSolver::LoadRestart(CGeometry** geometry, CSolver*** solver, CConfi /*--- MPI solution and compute the eddy viscosity ---*/ - solver[MESH_0][TRANS_SOL]->InitiateComms(geometry[MESH_0], config, SOLUTION); - solver[MESH_0][TRANS_SOL]->CompleteComms(geometry[MESH_0], config, SOLUTION); + solver[MESH_0][TRANS_SOL]->InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); + solver[MESH_0][TRANS_SOL]->CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); /*--- For turbulent+species simulations the solver Pre-/Postprocessing is done by the species solver. ---*/ if (config->GetKind_Species_Model() == SPECIES_MODEL::NONE) { @@ -578,8 +578,8 @@ void CTransLMSolver::LoadRestart(CGeometry** geometry, CSolver*** solver, CConfi MultigridRestriction(*geometry[iMesh - 1], solver[iMesh - 1][TRANS_SOL]->GetNodes()->GetSolution(), *geometry[iMesh], solver[iMesh][TRANS_SOL]->GetNodes()->GetSolution()); - solver[iMesh][TRANS_SOL]->InitiateComms(geometry[iMesh], config, SOLUTION); - solver[iMesh][TRANS_SOL]->CompleteComms(geometry[iMesh], config, SOLUTION); + solver[iMesh][TRANS_SOL]->InitiateComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); + solver[iMesh][TRANS_SOL]->CompleteComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); if (config->GetKind_Species_Model() == SPECIES_MODEL::NONE) { solver[iMesh][FLOW_SOL]->Preprocessing(geometry[iMesh], solver[iMesh], config, iMesh, NO_RK_ITER, RUNTIME_FLOW_SYS, diff --git a/SU2_CFD/src/solvers/CTurbSASolver.cpp b/SU2_CFD/src/solvers/CTurbSASolver.cpp index d84b56e1dc6..f53596e9901 100644 --- a/SU2_CFD/src/solvers/CTurbSASolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSASolver.cpp @@ -134,8 +134,8 @@ CTurbSASolver::CTurbSASolver(CGeometry *geometry, CConfig *config, unsigned shor /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION_EDDY); - CompleteComms(geometry, config, SOLUTION_EDDY); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION_EDDY); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION_EDDY); /*--- Initializate quantities for SlidingMesh Interface ---*/ diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index ea316e9a0cd..555f8e77155 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -142,8 +142,8 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh /*--- MPI solution ---*/ - InitiateComms(geometry, config, SOLUTION_EDDY); - CompleteComms(geometry, config, SOLUTION_EDDY); + InitiateComms(geometry, config, MPI_QUANTITIES::SOLUTION_EDDY); + CompleteComms(geometry, config, MPI_QUANTITIES::SOLUTION_EDDY); /*--- Initialize quantities for SlidingMesh Interface ---*/ diff --git a/SU2_CFD/src/solvers/CTurbSolver.cpp b/SU2_CFD/src/solvers/CTurbSolver.cpp index c4b5a0b2e2b..d0744a7e223 100644 --- a/SU2_CFD/src/solvers/CTurbSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSolver.cpp @@ -167,8 +167,8 @@ void CTurbSolver::LoadRestart(CGeometry** geometry, CSolver*** solver, CConfig* /*--- MPI solution and compute the eddy viscosity ---*/ - solver[MESH_0][TURB_SOL]->InitiateComms(geometry[MESH_0], config, SOLUTION); - solver[MESH_0][TURB_SOL]->CompleteComms(geometry[MESH_0], config, SOLUTION); + solver[MESH_0][TURB_SOL]->InitiateComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); + solver[MESH_0][TURB_SOL]->CompleteComms(geometry[MESH_0], config, MPI_QUANTITIES::SOLUTION); /*--- For turbulent+species simulations the solver Pre-/Postprocessing is done by the species solver. ---*/ if (config->GetKind_Species_Model() == SPECIES_MODEL::NONE && config->GetKind_Trans_Model() == TURB_TRANS_MODEL::NONE) { @@ -182,8 +182,8 @@ void CTurbSolver::LoadRestart(CGeometry** geometry, CSolver*** solver, CConfig* for (auto iMesh = 1u; iMesh <= config->GetnMGLevels(); iMesh++) { MultigridRestriction(*geometry[iMesh - 1], solver[iMesh - 1][TURB_SOL]->GetNodes()->GetSolution(), *geometry[iMesh], solver[iMesh][TURB_SOL]->GetNodes()->GetSolution()); - solver[iMesh][TURB_SOL]->InitiateComms(geometry[iMesh], config, SOLUTION); - solver[iMesh][TURB_SOL]->CompleteComms(geometry[iMesh], config, SOLUTION); + solver[iMesh][TURB_SOL]->InitiateComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); + solver[iMesh][TURB_SOL]->CompleteComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); if (config->GetKind_Species_Model() == SPECIES_MODEL::NONE) { solver[iMesh][FLOW_SOL]->Preprocessing(geometry[iMesh], solver[iMesh], config, iMesh, NO_RK_ITER, RUNTIME_FLOW_SYS, diff --git a/UnitTests/SU2_CFD/gradients.cpp b/UnitTests/SU2_CFD/gradients.cpp index e0829ce1104..2f69d407d3a 100644 --- a/UnitTests/SU2_CFD/gradients.cpp +++ b/UnitTests/SU2_CFD/gradients.cpp @@ -132,8 +132,8 @@ void testGreenGauss() { TestField field; C3DDoubleMatrix gradient(field.geometry->GetnPoint(), field.nVar, field.geometry->GetnDim()); - computeGradientsGreenGauss(nullptr, SOLUTION, PERIODIC_NONE, *field.geometry.get(), *field.config.get(), field, 0, - field.nVar, gradient); + computeGradientsGreenGauss(nullptr, MPI_QUANTITIES::SOLUTION, PERIODIC_NONE, *field.geometry.get(), + *field.config.get(), field, 0, field.nVar, gradient); check(field, gradient); } @@ -144,8 +144,8 @@ void testLeastSquares(bool weighted) { C3DDoubleMatrix R(field.geometry->GetnPoint(), nDim, nDim); C3DDoubleMatrix gradient(field.geometry->GetnPoint(), field.nVar, nDim); - computeGradientsLeastSquares(nullptr, SOLUTION, PERIODIC_NONE, *field.geometry.get(), *field.config.get(), weighted, - field, 0, field.nVar, gradient, R); + computeGradientsLeastSquares(nullptr, MPI_QUANTITIES::SOLUTION, PERIODIC_NONE, *field.geometry.get(), + *field.config.get(), weighted, field, 0, field.nVar, gradient, R); check(field, gradient); } From 8c62546480072e5644a4344d6894f8dc8dd1a31a Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Tue, 14 May 2024 15:25:43 +0300 Subject: [PATCH 155/287] Update config_template.cfg Co-authored-by: Nijso --- config_template.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config_template.cfg b/config_template.cfg index 78281e2702d..dc288ca3586 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -672,7 +672,7 @@ FAN_POLY_EFF= 1.0 % Only half engine is in the computational grid (NO, YES) ENGINE_HALF_MODEL= NO % -% Evalutation Frequency for Engine and Actuator Disk Markers +% Evaluation Frequency for Engine and Actuator Disk Markers BC_EVAL_FREQ = 40 % % Damping factor for the engine inflow. From ff22bc9261e5dd6a05cb44fa3bcc92b5a034d2e6 Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Tue, 14 May 2024 15:26:04 +0300 Subject: [PATCH 156/287] Update Common/src/CConfig.cpp Co-authored-by: Nijso --- Common/src/CConfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 35f6bb977d2..af4e8169a3b 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1730,7 +1730,7 @@ void CConfig::SetConfig_Options() { /*!\brief RAMP_AND_RELEASE\n DESCRIPTION: release the load after applying the ramp*/ addBoolOption("RAMP_AND_RELEASE_LOAD", RampAndRelease, false); - /*DESCRIPTION: Evaluation frequency for Engine and Actuator disk markers*/ + /* DESCRIPTION: Evaluation frequency for Engine and Actuator disk markers. */ addUnsignedLongOption("BC_EVAL_FREQ",Bc_Eval_Freq,40); /* DESCRIPTION: Damping factor for engine inlet condition */ addDoubleOption("DAMP_ENGINE_INFLOW", Damp_Engine_Inflow, 0.95); From 1d9845255040fec4298c57cd7a53a7a37395ee5a Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Tue, 14 May 2024 15:26:23 +0300 Subject: [PATCH 157/287] Update Common/include/CConfig.hpp Co-authored-by: Nijso --- Common/include/CConfig.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index f2ef25fbec2..2791601174b 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -138,7 +138,7 @@ class CConfig { su2double Buffet_lambda; /*!< \brief Offset parameter for buffet sensor.*/ su2double Damp_Engine_Inflow; /*!< \brief Damping factor for the engine inlet. */ su2double Damp_Engine_Exhaust; /*!< \brief Damping factor for the engine exhaust. */ - unsigned long Bc_Eval_Freq; /*!< \brief Evaluation frequency for Engine and Actuator disk markers*/ + unsigned long Bc_Eval_Freq; /*!< \brief Evaluation frequency for Engine and Actuator disk markers. */ su2double Damp_Res_Restric, /*!< \brief Damping factor for the residual restriction. */ Damp_Correc_Prolong; /*!< \brief Damping factor for the correction prolongation. */ su2double Position_Plane; /*!< \brief Position of the Near-Field (y coordinate 2D, and z coordinate 3D). */ From 9828047a687a57bce6e9b2a24f2afc9582d57287 Mon Sep 17 00:00:00 2001 From: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> Date: Tue, 14 May 2024 06:46:01 -0700 Subject: [PATCH 158/287] =?UTF-8?q?Revert=20"Using=20free=20stream=20tremp?= =?UTF-8?q?erature=20for=20initialization=20of=20wall=20temperature?= =?UTF-8?q?=E2=80=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit ca12a5cb5abc13861af626e3964c56be4cc12fbd. --- Common/src/CConfig.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index bf6d1e66b43..63810ab3e03 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -9234,8 +9234,7 @@ su2double CConfig::GetIsothermal_Temperature(const string& val_marker) const { if (Marker_Isothermal[iMarker_Isothermal] == val_marker) return Isothermal_Temperature[iMarker_Isothermal]; - // Return free-stream temperature for pure CHT cases. - return Temperature_FreeStream; + return Isothermal_Temperature[0]; } su2double CConfig::GetWall_HeatFlux(const string& val_marker) const { From c0324a453a2872f49e5d193b610ee52ff1a185cc Mon Sep 17 00:00:00 2001 From: Cristopher Morales <98025159+Cristopher-Morales@users.noreply.github.com> Date: Sat, 18 May 2024 09:33:14 +0200 Subject: [PATCH 159/287] Fix CHT boundary problem for flamelet computations (#2283) * changing CHT_WALL_INTERFACE --- SU2_CFD/src/integration/CIntegration.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/SU2_CFD/src/integration/CIntegration.cpp b/SU2_CFD/src/integration/CIntegration.cpp index 87e34cd1c8a..f53d50639cc 100644 --- a/SU2_CFD/src/integration/CIntegration.cpp +++ b/SU2_CFD/src/integration/CIntegration.cpp @@ -171,14 +171,13 @@ void CIntegration::Space_Integration(CGeometry *geometry, break; case CHT_WALL_INTERFACE: - if ( MainSolver == FLOW_SOL && (config->GetKind_FluidModel() == FLUID_FLAMELET) ){ - solver_container[MainSolver]->BC_Isothermal_Wall(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); - break; - } - if ((MainSolver == SPECIES_SOL) || (MainSolver == HEAT_SOL) || ((MainSolver == FLOW_SOL) && ((config->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE) || config->GetEnergy_Equation()))) { - solver_container[MainSolver]->BC_ConjugateHeat_Interface(geometry, solver_container, conv_bound_numerics, config, iMarker); - } - else { + if ((MainSolver == FLOW_SOL && (config->GetKind_FluidModel() == FLUID_FLAMELET)) || + (MainSolver == SPECIES_SOL) || (MainSolver == HEAT_SOL) || + ((MainSolver == FLOW_SOL) && + ((config->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE) || config->GetEnergy_Equation()))) { + solver_container[MainSolver]->BC_ConjugateHeat_Interface(geometry, solver_container, conv_bound_numerics, + config, iMarker); + } else { solver_container[MainSolver]->BC_HeatFlux_Wall(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); } break; From ca0278f26687d93eddd4a858554c1f73c3f099db Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Tue, 28 May 2024 13:10:43 +0300 Subject: [PATCH 160/287] Updated header of the config file Changed Case Description, Author, Date and File Version --- .../marker_engine_inflow/inv_channel_engine_inflow.cfg | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg b/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg index 8952d118293..d0bb330728d 100644 --- a/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg +++ b/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg @@ -1,11 +1,12 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % SU2 configuration file % -% Case description: Inviscid, internal flow over a bump in a channel % -% Author: Thomas D. Economon % +% Case description: Inviscid, internal flow over a bump in a channel with % +% prescribed Mach number for outlet BC % +% Author: Thomas D. Economon , Berke C. Deveci % % Institution: Stanford University % -% Date: 2012.09.29 % -% File Version 4.0.2 "Cardinal" % +% Date: 2024.05.28 % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From 588da144abf85af4c2b286210f772390ec2bbdef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Wed, 3 Apr 2024 14:50:32 +0200 Subject: [PATCH 161/287] Fix for heap buffer overflow in CInterface. --- SU2_CFD/src/interfaces/CInterface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index 050c948bc1f..cefc65e6798 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -286,7 +286,7 @@ void CInterface::PreprocessAverage(CGeometry *donor_geometry, CGeometry *target_ for(iSpan = 1; iSpan SpanValuesDonor[jSpan]){ From 08a15c627bb7317bf8822208b39c100d07c8a583 Mon Sep 17 00:00:00 2001 From: emaberman Date: Wed, 5 Jun 2024 09:50:45 +0300 Subject: [PATCH 162/287] Fix CFL Turbulence reduction option for adaptive cfl Extend the Turbulence CFL reduction option, such that it will be available when using the adaptive CFL --- SU2_CFD/src/solvers/CSolver.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index f7af2746cfe..83bc86e31f5 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -1821,6 +1821,7 @@ void CSolver::AdaptCFLNumber(CGeometry **geometry, /* Loop over all points on this grid and apply CFL adaption. */ su2double myCFLMin = 1e30, myCFLMax = 0.0, myCFLSum = 0.0; + su2double CFLTurbReduction =config->GetCFLRedCoeff_Turb(); SU2_OMP_MASTER if ((iMesh == MESH_0) && fullComms) { @@ -1885,7 +1886,7 @@ void CSolver::AdaptCFLNumber(CGeometry **geometry, CFL *= CFLFactor; solverFlow->GetNodes()->SetLocalCFL(iPoint, CFL); if ((iMesh == MESH_0) && solverTurb) { - solverTurb->GetNodes()->SetLocalCFL(iPoint, CFL); + solverTurb->GetNodes()->SetLocalCFL(iPoint, CFL*CFLTurbReduction); } /* Store min and max CFL for reporting on the fine grid. */ From 4cfe588251984b564fd08bc646515f630d354ec1 Mon Sep 17 00:00:00 2001 From: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> Date: Wed, 5 Jun 2024 08:14:13 -0700 Subject: [PATCH 163/287] Apply suggestions from code review --- SU2_CFD/src/solvers/CSolver.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index 83bc86e31f5..0e51405262a 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -1821,7 +1821,7 @@ void CSolver::AdaptCFLNumber(CGeometry **geometry, /* Loop over all points on this grid and apply CFL adaption. */ su2double myCFLMin = 1e30, myCFLMax = 0.0, myCFLSum = 0.0; - su2double CFLTurbReduction =config->GetCFLRedCoeff_Turb(); + const su2double CFLTurbReduction = config->GetCFLRedCoeff_Turb(); SU2_OMP_MASTER if ((iMesh == MESH_0) && fullComms) { @@ -1886,7 +1886,7 @@ void CSolver::AdaptCFLNumber(CGeometry **geometry, CFL *= CFLFactor; solverFlow->GetNodes()->SetLocalCFL(iPoint, CFL); if ((iMesh == MESH_0) && solverTurb) { - solverTurb->GetNodes()->SetLocalCFL(iPoint, CFL*CFLTurbReduction); + solverTurb->GetNodes()->SetLocalCFL(iPoint, CFL * CFLTurbReduction); } /* Store min and max CFL for reporting on the fine grid. */ From 2ef77ba7dc836b38b430fe27db389413d4f984e4 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sat, 8 Jun 2024 13:31:38 -0700 Subject: [PATCH 164/287] custom inlets via python and test --- Common/include/CConfig.hpp | 8 +- Common/include/geometry/CGeometry.hpp | 44 +++++++++ .../include/geometry/CMultiGridGeometry.hpp | 44 --------- Common/src/CConfig.cpp | 8 +- Common/src/geometry/CGeometry.cpp | 32 +++--- Common/src/geometry/CMultiGridGeometry.cpp | 4 +- SU2_CFD/include/drivers/CDriver.hpp | 4 +- SU2_CFD/include/drivers/CDriverBase.hpp | 33 +++++++ SU2_CFD/include/solvers/CEulerSolver.hpp | 13 +-- .../include/solvers/CFVMFlowSolverBase.hpp | 23 +++-- .../include/solvers/CFVMFlowSolverBase.inl | 49 +++++++++- SU2_CFD/include/solvers/CSolver.hpp | 33 ++++--- SU2_CFD/src/python_wrapper_structure.cpp | 32 +++--- SU2_CFD/src/solvers/CEulerSolver.cpp | 17 ---- SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp | 6 +- SU2_CFD/src/solvers/CNEMOEulerSolver.cpp | 21 ++-- SU2_CFD/src/solvers/CSolver.cpp | 6 +- .../src/solvers/CSpeciesFlameletSolver.cpp | 2 +- .../py_wrapper/custom_inlet/lam_flatplate.cfg | 97 +++++++++++++++++++ TestCases/py_wrapper/custom_inlet/run.py | 78 +++++++++++++++ TestCases/serial_regression.py | 14 +++ 21 files changed, 407 insertions(+), 161 deletions(-) create mode 100644 TestCases/py_wrapper/custom_inlet/lam_flatplate.cfg create mode 100644 TestCases/py_wrapper/custom_inlet/run.py diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index bc32b5407b1..494c9542922 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -6841,7 +6841,7 @@ class CConfig { * \param[in] val_index - Index corresponding to the inlet boundary. * \return The total temperature. */ - su2double GetInlet_Ttotal(const string& val_index) const; + su2double GetInletTtotal(const string& val_index) const; /*! * \brief Get the temperature at a supersonic inlet boundary. @@ -6883,14 +6883,14 @@ class CConfig { * \param[in] val_index - Index corresponding to the inlet boundary. * \return The total pressure. */ - su2double GetInlet_Ptotal(const string& val_index) const; + su2double GetInletPtotal(const string& val_index) const; /*! * \brief Set the total pressure at an inlet boundary. * \param[in] val_pressure - Pressure value at the inlet boundary. * \param[in] val_index - Index corresponding to the inlet boundary. */ - void SetInlet_Ptotal(su2double val_pressure, const string& val_marker); + void SetInletPtotal(su2double val_pressure, const string& val_marker); /*! * \brief Get the species values at an inlet boundary @@ -6930,7 +6930,7 @@ class CConfig { * \param[in] val_index - Index corresponding to the inlet boundary. * \return The flow direction vector. */ - const su2double* GetInlet_FlowDir(const string& val_index) const; + const su2double* GetInletFlowDir(const string& val_index) const; /*! * \brief Get the back pressure (static) at an outlet boundary. diff --git a/Common/include/geometry/CGeometry.hpp b/Common/include/geometry/CGeometry.hpp index 688f71c7dce..582679ca6af 100644 --- a/Common/include/geometry/CGeometry.hpp +++ b/Common/include/geometry/CGeometry.hpp @@ -1639,6 +1639,50 @@ class CGeometry { CustomBoundaryHeatFlux[val_marker][val_vertex] = val_customBoundaryHeatFlux; } + /*! + * \brief Set a representative wall value of the agglomerated control volumes on a particular boundary marker. + * \param[in] fine_grid - Geometrical definition of the problem. + * \param[in] val_marker - Index of the boundary marker. + * \param[in] wall_quantity - Object with methods Get(iVertex_fine) and Set(iVertex_coarse, val). + */ + template + void SetMultiGridMarkerQuantity(const CGeometry* fine_grid, unsigned short val_marker, T& wall_quantity) { + for (auto iVertex = 0ul; iVertex < nVertex[val_marker]; iVertex++) { + const auto Point_Coarse = vertex[val_marker][iVertex]->GetNode(); + + if (!nodes->GetDomain(Point_Coarse)) continue; + + su2double Area_Parent = 0.0; + + /*--- Compute area parent by taking into account only volumes that are on the marker. ---*/ + for (auto iChildren = 0u; iChildren < nodes->GetnChildren_CV(Point_Coarse); iChildren++) { + const auto Point_Fine = nodes->GetChildren_CV(Point_Coarse, iChildren); + const auto isVertex = + fine_grid->nodes->GetDomain(Point_Fine) && (fine_grid->nodes->GetVertex(Point_Fine, val_marker) != -1); + if (isVertex) { + Area_Parent += fine_grid->nodes->GetVolume(Point_Fine); + } + } + + su2double Quantity_Coarse = 0.0; + + /*--- Loop again to average coarser value. ---*/ + for (auto iChildren = 0u; iChildren < nodes->GetnChildren_CV(Point_Coarse); iChildren++) { + const auto Point_Fine = nodes->GetChildren_CV(Point_Coarse, iChildren); + const auto isVertex = + fine_grid->nodes->GetDomain(Point_Fine) && (fine_grid->nodes->GetVertex(Point_Fine, val_marker) != -1); + if (isVertex) { + const auto Vertex_Fine = fine_grid->nodes->GetVertex(Point_Fine, val_marker); + const auto Area_Children = fine_grid->nodes->GetVolume(Point_Fine); + Quantity_Coarse += wall_quantity.Get(Vertex_Fine) * Area_Children / Area_Parent; + } + } + + /*--- Set the value at the coarse level. ---*/ + wall_quantity.Set(iVertex, Quantity_Coarse); + } + } + /*! * \brief Filter values given at the element CG by performing a weighted average over a radial neighbourhood. * \param[in] filter_radius - Parameter defining the size of the neighbourhood. diff --git a/Common/include/geometry/CMultiGridGeometry.hpp b/Common/include/geometry/CMultiGridGeometry.hpp index 6669db4b019..1a7f7f9ab58 100644 --- a/Common/include/geometry/CMultiGridGeometry.hpp +++ b/Common/include/geometry/CMultiGridGeometry.hpp @@ -66,50 +66,6 @@ class CMultiGridGeometry final : public CGeometry { void SetSuitableNeighbors(vector& Suitable_Indirect_Neighbors, unsigned long iPoint, unsigned long Index_CoarseCV, const CGeometry* fine_grid) const; - /*! - * \brief Set a representative wall value of the agglomerated control volumes on a particular boundary marker. - * \param[in] fine_grid - Geometrical definition of the problem. - * \param[in] val_marker - Index of the boundary marker. - * \param[in] wall_quantity - Object with methods Get(iVertex_fine) and Set(iVertex_coarse, val). - */ - template - void SetMultiGridWallQuantity(const CGeometry* fine_grid, unsigned short val_marker, T& wall_quantity) { - for (auto iVertex = 0ul; iVertex < nVertex[val_marker]; iVertex++) { - const auto Point_Coarse = vertex[val_marker][iVertex]->GetNode(); - - if (!nodes->GetDomain(Point_Coarse)) continue; - - su2double Area_Parent = 0.0; - - /*--- Compute area parent by taking into account only volumes that are on the marker. ---*/ - for (auto iChildren = 0u; iChildren < nodes->GetnChildren_CV(Point_Coarse); iChildren++) { - const auto Point_Fine = nodes->GetChildren_CV(Point_Coarse, iChildren); - const auto isVertex = - fine_grid->nodes->GetDomain(Point_Fine) && (fine_grid->nodes->GetVertex(Point_Fine, val_marker) != -1); - if (isVertex) { - Area_Parent += fine_grid->nodes->GetVolume(Point_Fine); - } - } - - su2double Quantity_Coarse = 0.0; - - /*--- Loop again to average coarser value. ---*/ - for (auto iChildren = 0u; iChildren < nodes->GetnChildren_CV(Point_Coarse); iChildren++) { - const auto Point_Fine = nodes->GetChildren_CV(Point_Coarse, iChildren); - const auto isVertex = - fine_grid->nodes->GetDomain(Point_Fine) && (fine_grid->nodes->GetVertex(Point_Fine, val_marker) != -1); - if (isVertex) { - const auto Vertex_Fine = fine_grid->nodes->GetVertex(Point_Fine, val_marker); - const auto Area_Children = fine_grid->nodes->GetVolume(Point_Fine); - Quantity_Coarse += wall_quantity.Get(Vertex_Fine) * Area_Children / Area_Parent; - } - } - - /*--- Set the value at the coarse level. ---*/ - wall_quantity.Set(iVertex, Quantity_Coarse); - } - } - public: /*--- This is to suppress Woverloaded-virtual, omitting it has no negative impact. ---*/ using CGeometry::SetBoundControlVolume; diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 63810ab3e03..5ff351cfee5 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -8900,28 +8900,28 @@ INC_OUTLET_TYPE CConfig::GetKind_Inc_Outlet(const string& val_marker) const { return Kind_Inc_Outlet[iMarker_Outlet]; } -su2double CConfig::GetInlet_Ttotal(const string& val_marker) const { +su2double CConfig::GetInletTtotal(const string& val_marker) const { unsigned short iMarker_Inlet; for (iMarker_Inlet = 0; iMarker_Inlet < nMarker_Inlet; iMarker_Inlet++) if (Marker_Inlet[iMarker_Inlet] == val_marker) break; return Inlet_Ttotal[iMarker_Inlet]; } -su2double CConfig::GetInlet_Ptotal(const string& val_marker) const { +su2double CConfig::GetInletPtotal(const string& val_marker) const { unsigned short iMarker_Inlet; for (iMarker_Inlet = 0; iMarker_Inlet < nMarker_Inlet; iMarker_Inlet++) if (Marker_Inlet[iMarker_Inlet] == val_marker) break; return Inlet_Ptotal[iMarker_Inlet]; } -void CConfig::SetInlet_Ptotal(su2double val_pressure, const string& val_marker) { +void CConfig::SetInletPtotal(su2double val_pressure, const string& val_marker) { unsigned short iMarker_Inlet; for (iMarker_Inlet = 0; iMarker_Inlet < nMarker_Inlet; iMarker_Inlet++) if (Marker_Inlet[iMarker_Inlet] == val_marker) Inlet_Ptotal[iMarker_Inlet] = val_pressure; } -const su2double* CConfig::GetInlet_FlowDir(const string& val_marker) const { +const su2double* CConfig::GetInletFlowDir(const string& val_marker) const { unsigned short iMarker_Inlet; for (iMarker_Inlet = 0; iMarker_Inlet < nMarker_Inlet; iMarker_Inlet++) if (Marker_Inlet[iMarker_Inlet] == val_marker) break; diff --git a/Common/src/geometry/CGeometry.cpp b/Common/src/geometry/CGeometry.cpp index 5292fb69a13..bbdbb0316d0 100644 --- a/Common/src/geometry/CGeometry.cpp +++ b/Common/src/geometry/CGeometry.cpp @@ -2386,24 +2386,20 @@ void CGeometry::SetCustomBoundary(CConfig* config) { } void CGeometry::UpdateCustomBoundaryConditions(CGeometry** geometry_container, CConfig* config) { - unsigned short iMGfine, iMGlevel, nMGlevel, iMarker; - - nMGlevel = config->GetnMGLevels(); - for (iMGlevel = 1; iMGlevel <= nMGlevel; iMGlevel++) { - iMGfine = iMGlevel - 1; - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if (config->GetMarker_All_PyCustom(iMarker)) { - switch (config->GetMarker_All_KindBC(iMarker)) { - case HEAT_FLUX: - geometry_container[iMGlevel]->SetMultiGridWallHeatFlux(geometry_container[iMGfine], iMarker); - break; - case ISOTHERMAL: - geometry_container[iMGlevel]->SetMultiGridWallTemperature(geometry_container[iMGfine], iMarker); - break; - // Inlet flow handled in solver class. - default: - break; - } + for (auto iMGlevel = 1u; iMGlevel <= config->GetnMGLevels(); iMGlevel++) { + const auto iMGfine = iMGlevel - 1; + for (auto iMarker = 0u; iMarker < config->GetnMarker_All(); iMarker++) { + if (!config->GetMarker_All_PyCustom(iMarker)) continue; + switch (config->GetMarker_All_KindBC(iMarker)) { + case HEAT_FLUX: + geometry_container[iMGlevel]->SetMultiGridWallHeatFlux(geometry_container[iMGfine], iMarker); + break; + case ISOTHERMAL: + geometry_container[iMGlevel]->SetMultiGridWallTemperature(geometry_container[iMGfine], iMarker); + break; + // Inlet flow handled in solver class. + default: + break; } } } diff --git a/Common/src/geometry/CMultiGridGeometry.cpp b/Common/src/geometry/CMultiGridGeometry.cpp index 3e2b26c0198..5ae064d778f 100644 --- a/Common/src/geometry/CMultiGridGeometry.cpp +++ b/Common/src/geometry/CMultiGridGeometry.cpp @@ -972,7 +972,7 @@ void CMultiGridGeometry::SetMultiGridWallHeatFlux(const CGeometry* fine_grid, un wall_heat_flux.marker = val_marker; wall_heat_flux.target = CustomBoundaryHeatFlux[val_marker]; - SetMultiGridWallQuantity(fine_grid, val_marker, wall_heat_flux); + SetMultiGridMarkerQuantity(fine_grid, val_marker, wall_heat_flux); } void CMultiGridGeometry::SetMultiGridWallTemperature(const CGeometry* fine_grid, unsigned short val_marker) { @@ -990,7 +990,7 @@ void CMultiGridGeometry::SetMultiGridWallTemperature(const CGeometry* fine_grid, wall_temperature.marker = val_marker; wall_temperature.target = CustomBoundaryTemperature[val_marker]; - SetMultiGridWallQuantity(fine_grid, val_marker, wall_temperature); + SetMultiGridMarkerQuantity(fine_grid, val_marker, wall_temperature); } void CMultiGridGeometry::SetRestricted_GridVelocity(const CGeometry* fine_grid) { diff --git a/SU2_CFD/include/drivers/CDriver.hpp b/SU2_CFD/include/drivers/CDriver.hpp index 4d284a56f0c..c5e78bd9037 100644 --- a/SU2_CFD/include/drivers/CDriver.hpp +++ b/SU2_CFD/include/drivers/CDriver.hpp @@ -505,7 +505,7 @@ class CDriver : public CDriverBase { /*! * \brief Set the direction of the inlet. * \param[in] iMarker - Marker index. - * \param[in] alpha - Angle (Zpos). + * \param[in] alpha - Angle around z axis. */ void SetInletAngle(unsigned short iMarker, passivedouble alpha); @@ -554,7 +554,7 @@ class CDriver : public CDriverBase { * \param[in] vel_z - Value of velocity along z-axis. */ void SetMarkerTranslationRate(unsigned short iMarker, passivedouble vel_x, passivedouble vel_y, passivedouble vel_z); - + /// \} }; diff --git a/SU2_CFD/include/drivers/CDriverBase.hpp b/SU2_CFD/include/drivers/CDriverBase.hpp index ea29323e189..313d83cd2ab 100644 --- a/SU2_CFD/include/drivers/CDriverBase.hpp +++ b/SU2_CFD/include/drivers/CDriverBase.hpp @@ -701,6 +701,39 @@ class CDriverBase { } } + /*! + * \brief Set the first variable in MARKER_INLET (usually temperature). + * \param[in] iMarker - Marker index. + * \param[in] iVertex - Marker vertex index. + * \param[in] value - Value of the variable. + */ + void SetMarkerCustomInletVar0(unsigned short iMarker, unsigned long iVertex, passivedouble value) { + GetSolverAndCheckMarker(FLOW_SOL, iMarker)->SetInletTtotal(iMarker, iVertex, value); + } + + /*! + * \brief Set the second variable in MARKER_INLET (usually total pressure). + * \param[in] iMarker - Marker index. + * \param[in] iVertex - Marker vertex index. + * \param[in] value - Value of the variable. + */ + void SetMarkerCustomInletVar1(unsigned short iMarker, unsigned long iVertex, passivedouble value) { + GetSolverAndCheckMarker(FLOW_SOL, iMarker)->SetInletPtotal(iMarker, iVertex, value); + } + + /*! + * \brief Set the flow direction vector (does not need to be a unit vector). + * \param[in] iMarker - Marker index. + * \param[in] iVertex - Marker vertex index. + * \param[in] values - Flow direction vector. + */ + void SetMarkerCustomInletDirection(unsigned short iMarker, unsigned long iVertex, std::vector values) { + auto* solver = GetSolverAndCheckMarker(FLOW_SOL, iMarker); + for (auto iDim = 0ul; iDim < GetNumberDimensions(); ++iDim) { + solver->SetInletFlowDir(iMarker, iVertex, iDim, values[iDim]); + } + } + /// \} protected: diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index 5dbef8b6784..fdd5598278e 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -1013,13 +1013,6 @@ class CEulerSolver : public CFVMFlowSolverBaseval_marker where the total temperature is evaluated. * \return Value of the total temperature */ - inline su2double GetInlet_Ttotal(unsigned short val_marker, unsigned long val_vertex) const final { + inline su2double GetInletTtotal(unsigned short val_marker, unsigned long val_vertex) const final { return Inlet_Ttotal[val_marker][val_vertex]; } @@ -2129,7 +2129,7 @@ class CFVMFlowSolverBase : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the total pressure is evaluated. * \return Value of the total pressure */ - inline su2double GetInlet_Ptotal(unsigned short val_marker, unsigned long val_vertex) const final { + inline su2double GetInletPtotal(unsigned short val_marker, unsigned long val_vertex) const final { return Inlet_Ptotal[val_marker][val_vertex]; } @@ -2140,7 +2140,7 @@ class CFVMFlowSolverBase : public CSolver { * \param[in] val_dim - The component of the flow direction unit vector to be evaluated * \return Component of a unit vector representing the flow direction. */ - inline su2double GetInlet_FlowDir(unsigned short val_marker, unsigned long val_vertex, + inline su2double GetInletFlowDir(unsigned short val_marker, unsigned long val_vertex, unsigned short val_dim) const final { return Inlet_FlowDir[val_marker][val_vertex][val_dim]; } @@ -2151,7 +2151,7 @@ class CFVMFlowSolverBase : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the total temperature is set. * \param[in] val_ttotal - Value of the total temperature */ - inline void SetInlet_Ttotal(unsigned short val_marker, unsigned long val_vertex, su2double val_ttotal) final { + inline void SetInletTtotal(unsigned short val_marker, unsigned long val_vertex, su2double val_ttotal) final { /*--- Since this call can be accessed indirectly using python, do some error * checking to prevent segmentation faults ---*/ if (val_marker >= nMarker) @@ -2168,7 +2168,7 @@ class CFVMFlowSolverBase : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the total pressure is set. * \param[in] val_ptotal - Value of the total pressure */ - inline void SetInlet_Ptotal(unsigned short val_marker, unsigned long val_vertex, su2double val_ptotal) final { + inline void SetInletPtotal(unsigned short val_marker, unsigned long val_vertex, su2double val_ptotal) final { /*--- Since this call can be accessed indirectly using python, do some error * checking to prevent segmentation faults ---*/ if (val_marker >= nMarker) @@ -2186,8 +2186,8 @@ class CFVMFlowSolverBase : public CSolver { * \param[in] val_dim - The component of the flow direction unit vector to be set * \param[in] val_flowdir - Component of a unit vector representing the flow direction. */ - inline void SetInlet_FlowDir(unsigned short val_marker, unsigned long val_vertex, unsigned short val_dim, - su2double val_flowdir) final { + inline void SetInletFlowDir(unsigned short val_marker, unsigned long val_vertex, unsigned short val_dim, + su2double val_flowdir) final { /*--- Since this call can be accessed indirectly using python, do some error * checking to prevent segmentation faults ---*/ if (val_marker >= nMarker) @@ -2198,6 +2198,15 @@ class CFVMFlowSolverBase : public CSolver { Inlet_FlowDir[val_marker][val_vertex][val_dim] = val_flowdir; } + /*! + * \brief Update the multi-grid structure for the customized boundary conditions. + * \param geometry_container - Geometrical definition. + * \param solver_container - Solver definition. + * \param config - Definition of the particular problem. + */ + void UpdateCustomBoundaryConditions(CGeometry **geometry_container, CSolver ***solver_container, + CConfig *config) final; + /*! * \brief Updates the components of the farfield velocity vector. */ diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl index b8efa1e695d..eb3edb511db 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl @@ -779,9 +779,9 @@ template void CFVMFlowSolverBase::SetUniformInlet(const CConfig* config, unsigned short iMarker) { if (config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) { string Marker_Tag = config->GetMarker_All_TagBound(iMarker); - su2double p_total = config->GetInlet_Ptotal(Marker_Tag); - su2double t_total = config->GetInlet_Ttotal(Marker_Tag); - auto flow_dir = config->GetInlet_FlowDir(Marker_Tag); + su2double p_total = config->GetInletPtotal(Marker_Tag); + su2double t_total = config->GetInletTtotal(Marker_Tag); + auto flow_dir = config->GetInletFlowDir(Marker_Tag); for (unsigned long iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { Inlet_Ttotal[iMarker][iVertex] = t_total; @@ -800,6 +800,49 @@ void CFVMFlowSolverBase::SetUniformInlet(const CConfig* config, unsigned s } } +template +void CFVMFlowSolverBase::UpdateCustomBoundaryConditions( + CGeometry** geometry_container, CSolver*** solver_container, CConfig *config) { + struct { + const CSolver* fine_solver{nullptr}; + CSolver* coarse_solver{nullptr}; + unsigned short marker{0}; + unsigned short var{0}; + + su2double Get(unsigned long vertex) const { + if (var == 0) { + return fine_solver->GetInletTtotal(marker, vertex); + } else if (var == 1) { + return fine_solver->GetInletPtotal(marker, vertex); + } + return fine_solver->GetInletFlowDir(marker, vertex, var - 2); + } + + void Set(unsigned long vertex, const su2double& val) const { + if (var == 0) { + coarse_solver->SetInletTtotal(marker, vertex, val); + } else if (var == 1) { + coarse_solver->SetInletPtotal(marker, vertex, val); + } + coarse_solver->SetInletFlowDir(marker, vertex, var - 2, val); + } + } inlet_values; + + for (auto mg_coarse = 1u; mg_coarse <= config->GetnMGLevels(); ++mg_coarse) { + const auto mg_fine = mg_coarse - 1; + inlet_values.fine_solver = solver_container[mg_fine][FLOW_SOL]; + inlet_values.coarse_solver = solver_container[mg_coarse][FLOW_SOL]; + + for (auto marker = 0u; marker < config->GetnMarker_All(); ++marker) { + if (config->GetMarker_All_KindBC(marker) != INLET_FLOW) continue; + inlet_values.marker = marker; + for (inlet_values.var = 0; inlet_values.var < 2 + nDim; ++inlet_values.var) { + geometry_container[mg_coarse]->SetMultiGridMarkerQuantity(geometry_container[mg_fine], marker, inlet_values); + } + } + } +} + template void CFVMFlowSolverBase::LoadRestart_impl(CGeometry **geometry, CSolver ***solver, CConfig *config, int iter, bool update_geo, su2double* SolutionRestart, diff --git a/SU2_CFD/include/solvers/CSolver.hpp b/SU2_CFD/include/solvers/CSolver.hpp index 5a52599cfe6..eee698af3d5 100644 --- a/SU2_CFD/include/solvers/CSolver.hpp +++ b/SU2_CFD/include/solvers/CSolver.hpp @@ -2818,7 +2818,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the total temperature is evaluated. * \return Value of the total temperature */ - inline virtual su2double GetInlet_Ttotal(unsigned short val_marker, unsigned long val_vertex) const { return 0; } + inline virtual su2double GetInletTtotal(unsigned short val_marker, unsigned long val_vertex) const { return 0; } /*! * \brief A virtual member @@ -2826,7 +2826,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the total pressure is evaluated. * \return Value of the total pressure */ - inline virtual su2double GetInlet_Ptotal(unsigned short val_marker, unsigned long val_vertex) const { return 0; } + inline virtual su2double GetInletPtotal(unsigned short val_marker, unsigned long val_vertex) const { return 0; } /*! * \brief A virtual member @@ -2835,9 +2835,9 @@ class CSolver { * \param[in] val_dim - The component of the flow direction unit vector to be evaluated * \return Component of a unit vector representing the flow direction. */ - inline virtual su2double GetInlet_FlowDir(unsigned short val_marker, - unsigned long val_vertex, - unsigned short val_dim) const { return 0; } + inline virtual su2double GetInletFlowDir(unsigned short val_marker, + unsigned long val_vertex, + unsigned short val_dim) const { return 0; } /*! * \brief A virtual member @@ -2845,9 +2845,9 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the total temperature is set. * \param[in] val_ttotal - Value of the total temperature */ - inline virtual void SetInlet_Ttotal(unsigned short val_marker, - unsigned long val_vertex, - su2double val_ttotal) { } + inline virtual void SetInletTtotal(unsigned short val_marker, + unsigned long val_vertex, + su2double val_ttotal) { } /*! * \brief A virtual member @@ -2855,7 +2855,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the total pressure is set. * \param[in] val_ptotal - Value of the total pressure */ - inline virtual void SetInlet_Ptotal(unsigned short val_marker, + inline virtual void SetInletPtotal(unsigned short val_marker, unsigned long val_vertex, su2double val_ptotal) { } @@ -2866,10 +2866,10 @@ class CSolver { * \param[in] val_dim - The component of the flow direction unit vector to be set * \param[in] val_flowdir - Component of a unit vector representing the flow direction. */ - inline virtual void SetInlet_FlowDir(unsigned short val_marker, - unsigned long val_vertex, - unsigned short val_dim, - su2double val_flowdir) { } + inline virtual void SetInletFlowDir(unsigned short val_marker, + unsigned long val_vertex, + unsigned short val_dim, + su2double val_flowdir) { } /*! * \brief Updates the components of the farfield velocity vector. @@ -2922,11 +2922,14 @@ class CSolver { const CConfig *config) const { return 0; } /*! - * \brief Update the multi-grid structure for the customized boundary conditions + * \brief Update the multi-grid structure for the customized boundary conditions. * \param geometry_container - Geometrical definition. + * \param solver_container - Solver definition. * \param config - Definition of the particular problem. */ - inline virtual void UpdateCustomBoundaryConditions(CGeometry **geometry_container, CConfig *config) { } + inline virtual void UpdateCustomBoundaryConditions(CGeometry **geometry_container, + CSolver ***solver_container, + CConfig *config) { } /*! * \brief A virtual member. diff --git a/SU2_CFD/src/python_wrapper_structure.cpp b/SU2_CFD/src/python_wrapper_structure.cpp index 97cf441f1e5..a0018371443 100644 --- a/SU2_CFD/src/python_wrapper_structure.cpp +++ b/SU2_CFD/src/python_wrapper_structure.cpp @@ -36,23 +36,17 @@ void CDriver::PreprocessPythonInterface(CConfig** config, CGeometry**** geometry /*--- Initialize boundary conditions customization, this is achieved through the Python wrapper. --- */ for (iZone = 0; iZone < nZone; iZone++) { if (config[iZone]->GetnMarker_PyCustom() > 0) { - if (rank == MASTER_NODE) cout << "----------------- Python Interface Preprocessing ( Zone " << iZone << " ) -----------------" << endl; - - if (rank == MASTER_NODE) cout << "Setting customized boundary conditions for zone " << iZone << endl; + if (rank == MASTER_NODE) { + cout << "----------------- Python Interface Preprocessing ( Zone " << iZone << " ) -----------------\n"; + cout << "Setting customized boundary conditions for zone " << iZone << endl; + } for (iMesh = 0; iMesh <= config[iZone]->GetnMGLevels(); iMesh++) { geometry[iZone][INST_0][iMesh]->SetCustomBoundary(config[iZone]); } geometry[iZone][INST_0][MESH_0]->UpdateCustomBoundaryConditions(geometry[iZone][INST_0], config[iZone]); - if ((config[iZone]->GetKind_Solver() == MAIN_SOLVER::EULER) || - (config[iZone]->GetKind_Solver() == MAIN_SOLVER::NAVIER_STOKES) || - (config[iZone]->GetKind_Solver() == MAIN_SOLVER::RANS) || - (config[iZone]->GetKind_Solver() == MAIN_SOLVER::INC_EULER) || - (config[iZone]->GetKind_Solver() == MAIN_SOLVER::INC_NAVIER_STOKES) || - (config[iZone]->GetKind_Solver() == MAIN_SOLVER::INC_RANS) || - (config[iZone]->GetKind_Solver() == MAIN_SOLVER::NEMO_EULER) || - (config[iZone]->GetKind_Solver() == MAIN_SOLVER::NEMO_NAVIER_STOKES)) { - solver[iZone][INST_0][MESH_0][FLOW_SOL]->UpdateCustomBoundaryConditions(geometry[iZone][INST_0], config[iZone]); + if (solver[iZone][INST_0][MESH_0][FLOW_SOL]) { + solver[iZone][INST_0][MESH_0][FLOW_SOL]->UpdateCustomBoundaryConditions(geometry[iZone][INST_0], solver[iZone][INST_0], config[iZone]); } } } @@ -77,7 +71,7 @@ string CDriver::GetSurfaceFileName() const { return config_container[selected_zo //////////////////////////////////////////////////////////////////////////////// void CDriver::SetHeatSourcePosition(passivedouble alpha, passivedouble pos_x, passivedouble pos_y, - passivedouble pos_z) { + passivedouble pos_z) { CSolver* solver = solver_container[selected_zone][INST_0][MESH_0][RAD_SOL]; config_container[selected_zone]->SetHeatSource_Rot_Z(alpha); @@ -87,13 +81,15 @@ void CDriver::SetHeatSourcePosition(passivedouble alpha, passivedouble pos_x, pa } void CDriver::SetInletAngle(unsigned short iMarker, passivedouble alpha) { - su2double alpha_rad = alpha * PI_NUMBER / 180.0; + const su2double alpha_rad = alpha * PI_NUMBER / 180.0; - unsigned long iVertex; + const auto* geometry = geometry_container[selected_zone][INST_0][MESH_0]; + auto* flow_solver = solver_container[selected_zone][INST_0][MESH_0][FLOW_SOL]; - for (iVertex = 0; iVertex < geometry_container[selected_zone][INST_0][MESH_0]->nVertex[iMarker]; iVertex++) { - solver_container[selected_zone][INST_0][MESH_0][FLOW_SOL]->SetInlet_FlowDir(iMarker, iVertex, 0, cos(alpha_rad)); - solver_container[selected_zone][INST_0][MESH_0][FLOW_SOL]->SetInlet_FlowDir(iMarker, iVertex, 1, sin(alpha_rad)); + for (auto iVertex = 0ul; iVertex < geometry->nVertex[iMarker]; ++iVertex) { + flow_solver->SetInletFlowDir(iMarker, iVertex, 0, cos(alpha_rad)); + flow_solver->SetInletFlowDir(iMarker, iVertex, 1, sin(alpha_rad)); + if (geometry->GetnDim() == 3) flow_solver->SetInletFlowDir(iMarker, iVertex, 2, 0); } } diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index bdc4db5a473..356c759564c 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -4692,23 +4692,6 @@ void CEulerSolver::SetCoefficient_Gradients(CConfig *config) const{ config->SetdCL_dAlpha(dCL_dAlpha_); } -void CEulerSolver::UpdateCustomBoundaryConditions(CGeometry **geometry_container, CConfig *config){ - - unsigned short nMGlevel; - unsigned long iMarker; - - // TODO: Update the fluid boundary conditions for MG - nMGlevel = config->GetnMGLevels(); - if (nMGlevel > 1) { - for (iMarker=0; iMarker < nMarker; iMarker++) { - bool isCustomizable = config->GetMarker_All_PyCustom(iMarker); - bool isInlet = (config->GetMarker_All_KindBC(iMarker) == INLET_FLOW); - if (isCustomizable && isInlet) - SU2_MPI::Error("Custom inlet BCs are not currently compatible with multigrid.", CURRENT_FUNCTION); - } - } -} - void CEulerSolver::Evaluate_ObjFunc(const CConfig *config, CSolver**) { unsigned short iMarker_Monitoring, Kind_ObjFunc; diff --git a/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp b/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp index f01ea90e7b1..73b04c709eb 100644 --- a/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp +++ b/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp @@ -7578,9 +7578,9 @@ void CFEM_DG_EulerSolver::BoundaryStates_Inlet(CConfig *config, /*--- Retrieve the specified total conditions for this inlet. ---*/ string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - su2double P_Total = config->GetInlet_Ptotal(Marker_Tag); - su2double T_Total = config->GetInlet_Ttotal(Marker_Tag); - auto Flow_Dir = config->GetInlet_FlowDir(Marker_Tag); + su2double P_Total = config->GetInletPtotal(Marker_Tag); + su2double T_Total = config->GetInletTtotal(Marker_Tag); + auto Flow_Dir = config->GetInletFlowDir(Marker_Tag); /*--- Non-dim. the inputs if necessary, and compute the total enthalpy. ---*/ P_Total /= config->GetPressure_Ref(); diff --git a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp index 3519d6d912d..776a3baaafd 100644 --- a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp @@ -1618,14 +1618,13 @@ void CNEMOEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, Pressure, Density, Energy, Mach2, SoundSpeed2, SoundSpeed_Total2, Vel_Mag, alpha, aa, bb, cc, dd, Area, UnitNormal[3] = {0.0}; - const su2double *Flow_Dir; + su2double Flow_Dir[MAXNDIM] = {}; bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); bool dynamic_grid = config->GetGrid_Movement(); su2double Two_Gamma_M1 = 2.0/Gamma_Minus_One; su2double Gas_Constant = config->GetGas_ConstantND(); - INLET_TYPE Kind_Inlet = config->GetKind_Inlet(); - string Marker_Tag = config->GetMarker_All_TagBound(val_marker); + INLET_TYPE Kind_Inlet = config->GetKind_Inlet(); auto *U_domain = new su2double[nVar]; auto *U_inlet = new su2double[nVar]; auto *V_domain = new su2double[nPrimVar]; auto *V_inlet = new su2double[nPrimVar]; @@ -1659,6 +1658,10 @@ void CNEMOEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, for (auto iVar = 0ul; iVar < nVar; iVar++) U_domain[iVar] = nodes->GetSolution(iPoint, iVar); for (auto iVar = 0ul; iVar < nPrimVar; iVar++) V_domain[iVar] = nodes->GetPrimitive(iPoint,iVar); + const su2double* dir = Inlet_FlowDir[val_marker][iVertex]; + const su2double mag = GeometryToolbox::Norm(nDim, dir); + for (auto iDim = 0ul; iDim < nDim; iDim++) Flow_Dir[iDim] = dir[iDim] / mag; + /*--- Build the fictitious intlet state based on characteristics ---*/ /*--- Subsonic inflow: there is one outgoing characteristic (u-c), @@ -1674,9 +1677,8 @@ void CNEMOEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, case INLET_TYPE::TOTAL_CONDITIONS: /*--- Retrieve the specified total conditions for this inlet. ---*/ - P_Total = config->GetInlet_Ptotal(Marker_Tag); - T_Total = config->GetInlet_Ttotal(Marker_Tag); - Flow_Dir = config->GetInlet_FlowDir(Marker_Tag); + P_Total = Inlet_Ptotal[val_marker][iVertex]; + T_Total = Inlet_Ttotal[val_marker][iVertex]; /*--- Non-dim. the inputs if necessary. ---*/ P_Total /= config->GetPressure_Ref(); @@ -1773,13 +1775,12 @@ void CNEMOEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, break; - /*--- Mass flow has been specified at the inlet. ---*/ + /*--- Mass flow has been specified at the inlet. ---*/ case INLET_TYPE::MASS_FLOW: /*--- Retrieve the specified mass flow for the inlet. ---*/ - Density = config->GetInlet_Ttotal(Marker_Tag); - Vel_Mag = config->GetInlet_Ptotal(Marker_Tag); - Flow_Dir = config->GetInlet_FlowDir(Marker_Tag); + Vel_Mag = Inlet_Ptotal[val_marker][iVertex]; + Density = Inlet_Ttotal[val_marker][iVertex]; /*--- Non-dim. the inputs if necessary. ---*/ Density /= config->GetDensity_Ref(); diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index f7af2746cfe..1f2ca053b40 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -3589,9 +3589,9 @@ void CSolver::LoadInletProfile(CGeometry **geometry, if (config->GetMarker_All_KindBC(iMarker) != KIND_MARKER) continue; string Marker_Tag = config->GetMarker_All_TagBound(iMarker); - su2double p_total = config->GetInlet_Ptotal(Marker_Tag); - su2double t_total = config->GetInlet_Ttotal(Marker_Tag); - auto flow_dir = config->GetInlet_FlowDir(Marker_Tag); + su2double p_total = config->GetInletPtotal(Marker_Tag); + su2double t_total = config->GetInletTtotal(Marker_Tag); + auto flow_dir = config->GetInletFlowDir(Marker_Tag); std::stringstream columnName,columnValue; columnValue << setprecision(15); diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index 2484084e46f..d41818a5bde 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -388,7 +388,7 @@ void CSpeciesFlameletSolver::BC_Inlet(CGeometry* geometry, CSolver** solver_cont CNumerics* visc_numerics, CConfig* config, unsigned short val_marker) { string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - su2double temp_inlet = config->GetInlet_Ttotal(Marker_Tag); + su2double temp_inlet = config->GetInletTtotal(Marker_Tag); /*--- We compute inlet enthalpy from the temperature and progress variable. ---*/ su2double enth_inlet; diff --git a/TestCases/py_wrapper/custom_inlet/lam_flatplate.cfg b/TestCases/py_wrapper/custom_inlet/lam_flatplate.cfg new file mode 100644 index 00000000000..bc9ea1fc61f --- /dev/null +++ b/TestCases/py_wrapper/custom_inlet/lam_flatplate.cfg @@ -0,0 +1,97 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Test custom inlets via Python wrapper. % +% Author: P. Gomes % +% Date: 2nd Jun 2024 % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +SOLVER= NAVIER_STOKES +KIND_TURB_MODEL= NONE +RESTART_SOL= NO +% +TIME_DOMAIN= YES +TIME_STEP= 0.005 +TIME_MARCHING= DUAL_TIME_STEPPING-2ND_ORDER +% +SCREEN_OUTPUT= TIME_ITER, INNER_ITER, RMS_RES, LINSOL_RESIDUAL, FORCE_X, SURFACE_MASSFLOW +HISTORY_OUTPUT = ITER, RMS_RES, AERO_COEFF, FLOW_COEFF, FLOW_COEFF_SURF + +% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% +% +MACH_NUMBER= 0.1 +INIT_OPTION= TD_CONDITIONS +FREESTREAM_OPTION= TEMPERATURE_FS +FREESTREAM_TEMPERATURE= 297.62 +REYNOLDS_NUMBER= 600 +REYNOLDS_LENGTH= 0.02 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +REF_ORIGIN_MOMENT_X = 0.00 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +REF_LENGTH= 0.02 +REF_AREA= 0.02 +% +FLUID_MODEL= IDEAL_GAS +GAMMA_VALUE= 1.4 +GAS_CONSTANT= 287.87 +VISCOSITY_MODEL= CONSTANT_VISCOSITY +MU_CONSTANT= 0.001 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +MARKER_HEATFLUX= ( y_minus, 0.0 ) +MARKER_SYM= ( y_plus ) +% +MARKER_INLET= ( x_minus, 300.0, 100000.0, 1.0, 0.0, 0.0 ) +MARKER_OUTLET= ( x_plus, 99000.0 ) +% +MARKER_PLOTTING= ( y_minus ) +MARKER_MONITORING= ( y_minus ) +MARKER_ANALYZE= ( x_minus, x_plus ) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +NUM_METHOD_GRAD= GREEN_GAUSS +CFL_NUMBER= 1e3 +CFL_ADAPT= NO +TIME_DISCRE_FLOW= EULER_IMPLICIT +% +MGLEVEL= 2 +MGCYCLE= V_CYCLE +MG_PRE_SMOOTH= ( 1, 1, 1 ) +MG_POST_SMOOTH= ( 0, 0, 0 ) +MG_DAMP_RESTRICTION= 0.5 +MG_DAMP_PROLONGATION= 0.5 + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= ILU +LINEAR_SOLVER_ERROR= 0.2 +LINEAR_SOLVER_ITER= 5 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +CONV_NUM_METHOD_FLOW= ROE +MUSCL_FLOW= YES +SLOPE_LIMITER_FLOW= NONE + +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +INNER_ITER= 100 +CONV_RESIDUAL_MINVAL= -2 +CONV_FIELD= REL_RMS_DENSITY +CONV_STARTITER= 0 +MAX_TIME= 0.5 +TIME_ITER= 21 + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +MESH_FORMAT= RECTANGLE +MESH_BOX_LENGTH= (0.1, 0.01, 0) +MESH_BOX_SIZE= (65, 17, 0) + diff --git a/TestCases/py_wrapper/custom_inlet/run.py b/TestCases/py_wrapper/custom_inlet/run.py new file mode 100644 index 00000000000..0d67325c233 --- /dev/null +++ b/TestCases/py_wrapper/custom_inlet/run.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python + +## \file run.py +# \brief Unsteady inlet boundary conditions. +# \version 8.0.1 "Harrier" +# +# SU2 Project Website: https://su2code.github.io +# +# The SU2 Project is maintained by the SU2 Foundation +# (http://su2foundation.org) +# +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) +# +# SU2 is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# SU2 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with SU2. If not, see . + +import pysu2 +import math +from mpi4py import MPI + +def main(): + """ + Run the flow solver with a custom inlet (function of time and space). + """ + comm = MPI.COMM_WORLD + rank = comm.Get_rank() + + # Initialize the primal driver of SU2, this includes solver preprocessing. + try: + driver = pysu2.CSinglezoneDriver('lam_flatplate.cfg', 1, comm) + except TypeError as exception: + print('A TypeError occured in pysu2.CSinglezoneDriver : ', exception) + raise + + # Get the ID of the inlet marker. + all_marker_ids = driver.GetMarkerIndices() + marker_name = 'x_minus' + marker_id = all_marker_ids[marker_name] if marker_name in all_marker_ids else -1 + + # Run the time loop in python to vary the inlet conditions. + dt = driver.GetUnsteadyTimeStep() + + for time_iter in range(driver.GetNumberTimeIter()): + # Change the total pressure. + if marker_id >= 0: + for i_vertex in range(driver.GetNumberMarkerNodes(marker_id)): + y = driver.MarkerCoordinates(marker_id)(i_vertex, 1) + t = time_iter * dt + pt = 1e5 + 2e4 * y / 0.01 * (1 - math.cos(2 * math.pi * t / 0.1)) + driver.SetMarkerCustomInletVar1(marker_id, i_vertex, pt) + driver.BoundaryConditionsUpdate() + + driver.Preprocess(time_iter) + + # Run one time iteration. + driver.Run() + driver.Postprocess() + driver.Update() + + # Monitor the solver and output solution to file if required. + driver.Monitor(time_iter) + driver.Output(time_iter) + + # Finalize the solver and exit cleanly. + driver.Finalize() + +if __name__ == '__main__': + main() diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index f7ab332ae7a..50b5b75e441 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -1601,6 +1601,20 @@ def main(): test_list.append(pywrapper_rigidMotion) pass_list.append(pywrapper_rigidMotion.run_test(args.tsan, args.asan)) + # Custom inlet + pywrapper_custom_inlet = TestCase('pywrapper_custom_inlet') + 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.124164, -1.544359, -3.808866, 1.338411, -0.752679, 0.161436, -1.2391e-02, 5.1662e-01, -5.2901e-01] + pywrapper_custom_inlet.command = TestCase.Command(exec = "python", param = "run.py") + pywrapper_custom_inlet.timeout = 1600 + pywrapper_custom_inlet.tol = 0.0001 + pywrapper_custom_inlet.unsteady = True + pywrapper_custom_inlet.enabled_with_asan = False + test_list.append(pywrapper_custom_inlet) + pass_list.append(pywrapper_custom_inlet.run_test(args.tsan, args.asan)) + # Tests summary print('==================================================================') print('Summary of the serial tests') From 2eafdaf0a9abb289f4d6728a387891f9d0bc22fc Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sat, 8 Jun 2024 21:47:52 -0700 Subject: [PATCH 165/287] fix scrip for serial --- TestCases/parallel_regression.py | 2 +- TestCases/py_wrapper/custom_inlet/run.py | 8 ++++---- .../flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index f8403488070..0f4489a740b 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1059,7 +1059,7 @@ def main(): Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 Aachen_3D_restart.enabled_with_asan = False - Aachen_3D_restart.test_vals = [-15.329206, -15.008622, -15.078888, -13.841072, -12.727840, -9.975729] + Aachen_3D_restart.test_vals = [-15.375769, -15.207144, -15.078890, -13.854448, -12.723902, -10.048085] test_list.append(Aachen_3D_restart) # Jones APU Turbocharger restart diff --git a/TestCases/py_wrapper/custom_inlet/run.py b/TestCases/py_wrapper/custom_inlet/run.py index 0d67325c233..32fa655e8f5 100644 --- a/TestCases/py_wrapper/custom_inlet/run.py +++ b/TestCases/py_wrapper/custom_inlet/run.py @@ -26,14 +26,14 @@ import pysu2 import math -from mpi4py import MPI +# from mpi4py import MPI def main(): """ Run the flow solver with a custom inlet (function of time and space). """ - comm = MPI.COMM_WORLD - rank = comm.Get_rank() + # comm = MPI.COMM_WORLD + comm = 0 # Initialize the primal driver of SU2, this includes solver preprocessing. try: @@ -59,7 +59,7 @@ def main(): pt = 1e5 + 2e4 * y / 0.01 * (1 - math.cos(2 * math.pi * t / 0.1)) driver.SetMarkerCustomInletVar1(marker_id, i_vertex, pt) driver.BoundaryConditionsUpdate() - + driver.Preprocess(time_iter) # Run one time iteration. diff --git a/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py b/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py index 138351cdf58..8b66256bd1a 100755 --- a/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py +++ b/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py @@ -62,7 +62,7 @@ def main(): # Initialize the corresponding driver of SU2, this includes solver preprocessing try: - SU2Driver = pysu2.CSinglezoneDriver(options.filename, options.nZone, comm); + SU2Driver = pysu2.CSinglezoneDriver(options.filename, options.nZone, comm) except TypeError as exception: print('A TypeError occured in pysu2.CDriver : ',exception) if options.with_MPI == True: From 92f2f1e495ccbac32ba88d969ab5903258ccdf80 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sun, 9 Jun 2024 09:01:04 -0700 Subject: [PATCH 166/287] rename and missing "Begin Solver" --- SU2_CFD/include/drivers/CDriverBase.hpp | 6 +++--- TestCases/parallel_regression.py | 2 +- TestCases/py_wrapper/custom_inlet/run.py | 4 +++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/SU2_CFD/include/drivers/CDriverBase.hpp b/SU2_CFD/include/drivers/CDriverBase.hpp index 313d83cd2ab..c9c296ce57c 100644 --- a/SU2_CFD/include/drivers/CDriverBase.hpp +++ b/SU2_CFD/include/drivers/CDriverBase.hpp @@ -707,7 +707,7 @@ class CDriverBase { * \param[in] iVertex - Marker vertex index. * \param[in] value - Value of the variable. */ - void SetMarkerCustomInletVar0(unsigned short iMarker, unsigned long iVertex, passivedouble value) { + void SetMarkerCustomInletFlowVar0(unsigned short iMarker, unsigned long iVertex, passivedouble value) { GetSolverAndCheckMarker(FLOW_SOL, iMarker)->SetInletTtotal(iMarker, iVertex, value); } @@ -717,7 +717,7 @@ class CDriverBase { * \param[in] iVertex - Marker vertex index. * \param[in] value - Value of the variable. */ - void SetMarkerCustomInletVar1(unsigned short iMarker, unsigned long iVertex, passivedouble value) { + void SetMarkerCustomInletFlowVar1(unsigned short iMarker, unsigned long iVertex, passivedouble value) { GetSolverAndCheckMarker(FLOW_SOL, iMarker)->SetInletPtotal(iMarker, iVertex, value); } @@ -727,7 +727,7 @@ class CDriverBase { * \param[in] iVertex - Marker vertex index. * \param[in] values - Flow direction vector. */ - void SetMarkerCustomInletDirection(unsigned short iMarker, unsigned long iVertex, std::vector values) { + void SetMarkerCustomInletFlowDirection(unsigned short iMarker, unsigned long iVertex, std::vector values) { auto* solver = GetSolverAndCheckMarker(FLOW_SOL, iMarker); for (auto iDim = 0ul; iDim < GetNumberDimensions(); ++iDim) { solver->SetInletFlowDir(iMarker, iVertex, iDim, values[iDim]); diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 0f4489a740b..f8403488070 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1059,7 +1059,7 @@ def main(): Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 Aachen_3D_restart.enabled_with_asan = False - Aachen_3D_restart.test_vals = [-15.375769, -15.207144, -15.078890, -13.854448, -12.723902, -10.048085] + Aachen_3D_restart.test_vals = [-15.329206, -15.008622, -15.078888, -13.841072, -12.727840, -9.975729] test_list.append(Aachen_3D_restart) # Jones APU Turbocharger restart diff --git a/TestCases/py_wrapper/custom_inlet/run.py b/TestCases/py_wrapper/custom_inlet/run.py index 32fa655e8f5..ae50c8a3f7a 100644 --- a/TestCases/py_wrapper/custom_inlet/run.py +++ b/TestCases/py_wrapper/custom_inlet/run.py @@ -50,6 +50,8 @@ def main(): # Run the time loop in python to vary the inlet conditions. dt = driver.GetUnsteadyTimeStep() + print("\n------------------------------ Begin Solver -----------------------------") + for time_iter in range(driver.GetNumberTimeIter()): # Change the total pressure. if marker_id >= 0: @@ -57,7 +59,7 @@ def main(): y = driver.MarkerCoordinates(marker_id)(i_vertex, 1) t = time_iter * dt pt = 1e5 + 2e4 * y / 0.01 * (1 - math.cos(2 * math.pi * t / 0.1)) - driver.SetMarkerCustomInletVar1(marker_id, i_vertex, pt) + driver.SetMarkerCustomInletFlowVar1(marker_id, i_vertex, pt) driver.BoundaryConditionsUpdate() driver.Preprocess(time_iter) From 2f77e6365d6d4fe84b461408ff9c72106f04c12d Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sun, 9 Jun 2024 10:01:09 -0700 Subject: [PATCH 167/287] have to flush... --- TestCases/py_wrapper/custom_inlet/run.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TestCases/py_wrapper/custom_inlet/run.py b/TestCases/py_wrapper/custom_inlet/run.py index ae50c8a3f7a..cc804c4ec89 100644 --- a/TestCases/py_wrapper/custom_inlet/run.py +++ b/TestCases/py_wrapper/custom_inlet/run.py @@ -24,6 +24,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with SU2. If not, see . +import sys import pysu2 import math # from mpi4py import MPI @@ -51,6 +52,7 @@ def main(): dt = driver.GetUnsteadyTimeStep() print("\n------------------------------ Begin Solver -----------------------------") + sys.stdout.flush() for time_iter in range(driver.GetNumberTimeIter()): # Change the total pressure. From c96e23584b505908d5055d1a8b2590c8d4faf4da Mon Sep 17 00:00:00 2001 From: Sunoh Kang <50565314+sun5k@users.noreply.github.com> Date: Thu, 13 Jun 2024 10:36:26 +0900 Subject: [PATCH 168/287] Update SU2_CFD/include/numerics/turbulent/turb_sources.hpp Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- SU2_CFD/include/numerics/turbulent/turb_sources.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index f4865e46b0b..abab9451a0e 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -779,7 +779,7 @@ class CSourcePieceWise_TurbSST final : public CNumerics { const su2double VorticityMag = GeometryToolbox::Norm(3, Vorticity_i); su2double P_Base = 0; - su2double zetaFMt = 0.0, Dilatation_Sarkar = 0.0; + su2double zetaFMt = 0.0; const su2double Mt = sqrt(2.0 * ScalarVar_i[0]) / V_i[idx.SoundSpeed()]; /*--- Apply production term modifications ---*/ From 6c12bf81b1c4232e13bfe81b28fccba8b123578f Mon Sep 17 00:00:00 2001 From: Sunoh Kang <50565314+sun5k@users.noreply.github.com> Date: Thu, 13 Jun 2024 10:36:44 +0900 Subject: [PATCH 169/287] Update SU2_CFD/include/numerics/turbulent/turb_sources.hpp Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- SU2_CFD/include/numerics/turbulent/turb_sources.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index abab9451a0e..1f09b1afa44 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -807,7 +807,7 @@ class CSourcePieceWise_TurbSST final : public CNumerics { case SST_OPTIONS::COMP_Sarkar: P_Base = StrainMag_i; - if( Mt >= 0.25){ + if (Mt >= 0.25) { zetaFMt = 0.5 * (Mt * Mt); } break; From 49e5eaad6dd56ba2d99c5c69ac4c2531b576fb8d Mon Sep 17 00:00:00 2001 From: Sunoh Kang <50565314+sun5k@users.noreply.github.com> Date: Thu, 13 Jun 2024 10:36:58 +0900 Subject: [PATCH 170/287] Update SU2_CFD/include/numerics/turbulent/turb_sources.hpp Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- SU2_CFD/include/numerics/turbulent/turb_sources.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index 1f09b1afa44..f8274107361 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -849,7 +849,7 @@ class CSourcePieceWise_TurbSST final : public CNumerics { } if(sstParsedOptions.production == SST_OPTIONS::COMP_Sarkar) { - Dilatation_Sarkar = -0.15 * pk * Mt + 0.2 * beta_star * (1.0 +zetaFMt) * Density_i * ScalarVar_i[1] * ScalarVar_i[0] * Mt * Mt; + const su2double Dilatation_Sarkar = -0.15 * pk * Mt + 0.2 * beta_star * (1.0 +zetaFMt) * Density_i * ScalarVar_i[1] * ScalarVar_i[0] * Mt * Mt; pk += Dilatation_Sarkar; } From aa64487c7341a2f9c02028d5b97dafd2cb356e3d Mon Sep 17 00:00:00 2001 From: Sunoh Kang <50565314+sun5k@users.noreply.github.com> Date: Thu, 13 Jun 2024 10:37:10 +0900 Subject: [PATCH 171/287] Update SU2_CFD/include/numerics/turbulent/turb_sources.hpp Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- SU2_CFD/include/numerics/turbulent/turb_sources.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index f8274107361..a190d3de942 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -848,7 +848,7 @@ class CSourcePieceWise_TurbSST final : public CNumerics { pw = max(pw, sust_w); } - if(sstParsedOptions.production == SST_OPTIONS::COMP_Sarkar) { + if (sstParsedOptions.production == SST_OPTIONS::COMP_Sarkar) { const su2double Dilatation_Sarkar = -0.15 * pk * Mt + 0.2 * beta_star * (1.0 +zetaFMt) * Density_i * ScalarVar_i[1] * ScalarVar_i[0] * Mt * Mt; pk += Dilatation_Sarkar; } From 4aacfb9898292688676b6e63b6d3702a948a7540 Mon Sep 17 00:00:00 2001 From: "oosun93@pusan.ac.kr" Date: Thu, 13 Jun 2024 14:00:52 +0900 Subject: [PATCH 172/287] Break Compressibility Correction Option and Incompressible RANS Break SU2 code, if either options is selected. --- Common/include/option_structure.hpp | 5 +++++ Common/src/CConfig.cpp | 8 ++++++++ .../turb_SST_flatplate_compressibility_Sarkar.cfg | 4 ++-- .../turb_SST_flatplate_compressibility_Wilcox.cfg | 4 ++-- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 023aef78c1b..e50653fcb7a 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1074,6 +1074,11 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne SSTParsedOptions.production = SST_OPTIONS::KL; } else if (sst_uq) { SSTParsedOptions.production = SST_OPTIONS::UQ; + } + + // Parse compressibility options + if (sst_compWilcox && sst_compSarkar) { + 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) { diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index c811c1bee1e..cdd9a0e1512 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -3475,6 +3475,14 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i saParsedOptions = ParseSAOptions(SA_Options, nSA_Options, rank); } + if (Kind_Solver == MAIN_SOLVER::INC_RANS && sstParsedOptions.compSarkar){ + SU2_MPI::Error("COMPRESSIBILITY-SARKAR only supported for SOLVER= RANS", CURRENT_FUNCTION); + } + + if (Kind_Solver == MAIN_SOLVER::INC_RANS && sstParsedOptions.compWilcox){ + SU2_MPI::Error("COMPRESSIBILITY-WILCOX only supported for SOLVER= RANS", CURRENT_FUNCTION); + } + /*--- Check if turbulence model can be used for AXISYMMETRIC case---*/ if (Axisymmetric && Kind_Turb_Model != TURB_MODEL::NONE && Kind_Turb_Model != TURB_MODEL::SST){ SU2_MPI::Error("Axisymmetry is currently only supported for KIND_TURB_MODEL chosen as SST", CURRENT_FUNCTION); diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg index bd545ece45a..9630355c8d5 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg @@ -1,8 +1,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % SU2 configuration file % -% Case description: Turbulent flow over flat plate(2DZPH) % -% Author: Sunoh. Kang % +% Case description: Turbulent flow over flat plate(2DZPH) % +% Author: Sunoh. Kang % % Institution: Pusan National University % % Date: 2024.04.30 % % File Version 8.0.1 "Harrier" % diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg index 49739edb95f..bec9c121e3a 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg @@ -1,8 +1,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % SU2 configuration file % -% Case description: Turbulent flow over flat plate(2DZPH) % -% Author: Sunoh. Kang % +% Case description: Turbulent flow over flat plate(2DZPH) % +% Author: Sunoh. Kang % % Institution: Pusan National University % % Date: 2024.04.30 % % File Version 8.0.1 "Harrier" % From 42e146db58787a1fc575869797529d7ad5884e91 Mon Sep 17 00:00:00 2001 From: emaberman Date: Mon, 24 Jun 2024 11:43:15 +0300 Subject: [PATCH 173/287] Merge --- TestCases/hybrid_regression.py | 2 +- TestCases/parallel_regression.py | 2 +- TestCases/serial_regression.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index 8745a96f610..bd7635e1413 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -561,7 +561,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.594590, -2.792279, -14.336129, -8.776066, -11.371439, -5.845633, 73273, 73273, 0.019884, 82.491] + Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index f8403488070..4a91574d54f 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1067,7 +1067,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.594590, -2.792281, -14.336129, -8.776067, -11.371439, -5.845633, 73273, 73273, 0.019884, 82.491] + Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 50b5b75e441..d1fe9bbd572 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -869,7 +869,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.594586, -2.792279, -14.336132, -8.776068, -11.371439, -5.845632, 73273, 73273, 0.019884, 82.491] + Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage From bb98f5fd973f343baf716b8ccdf12d194e0dab0a Mon Sep 17 00:00:00 2001 From: emaberman Date: Wed, 26 Jun 2024 11:56:14 +0300 Subject: [PATCH 174/287] Change SST variable's limits --- SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index 555f8e77155..639c7ace7dc 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -108,12 +108,6 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh constants[9] = 0.44; //gamma_2 constants[10] = 10.0; // production limiter constant } - /*--- Initialize lower and upper limits---*/ - lowerlimit[0] = 1.0e-10; - upperlimit[0] = 1.0e10; - - lowerlimit[1] = 1.0e-4; - upperlimit[1] = 1.0e15; /*--- Far-field flow state quantities and initialization. ---*/ su2double rhoInf, *VelInf, muLamInf, Intensity, viscRatio, muT_Inf; @@ -129,6 +123,14 @@ 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); + /*--- Initialize lower and upper limits---*/ + lowerlimit[0] = 1.0e-20 * kine_Inf; + upperlimit[0] = 1.0e10; + + lowerlimit[1] = 1.0e-6 * omega_Inf; + upperlimit[1] = 1.0e16; + + Solution_Inf[0] = kine_Inf; Solution_Inf[1] = omega_Inf; From d4287657e9530819ebca1d125a4c348e6797878a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 27 Jun 2024 15:56:28 +0200 Subject: [PATCH 175/287] Rename input files for Aachen test case, temporarily update test cases branch. --- .github/workflows/regression.yml | 6 +++--- .../turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index af6f6c60875..e441b84780b 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -213,7 +213,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t develop -c fix_aachen_turbine -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: @@ -261,7 +261,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2-tsan:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} -a "--tsan" + args: -b ${{github.ref}} -t develop -c fix_aachen_turbine -s ${{matrix.testscript}} -a "--tsan" - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2-tsan:240320-1536 with: @@ -308,7 +308,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2-asan:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} -a "--asan" + args: -b ${{github.ref}} -t develop -c fix_aachen_turbine -s ${{matrix.testscript}} -a "--asan" - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2-asan:240320-1536 with: diff --git a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg index 2f4eb415a16..97f2e133e61 100644 --- a/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg +++ b/TestCases/turbomachinery/Aachen_turbine/aachen_3D_MP_restart.cfg @@ -316,10 +316,10 @@ MESH_FORMAT= SU2 MESH_OUT_FILENAME= Aachen_3D_41_blade_coarse.su2 % % Restart flow input file -SOLUTION_FILENAME= restart_flow.dat +SOLUTION_FILENAME= solution_flow.dat % % Restart adjoint input file -SOLUTION_ADJ_FILENAME= restart_adj.dat +SOLUTION_ADJ_FILENAME= solution_adj.dat % % Output file format TABULAR_FORMAT= TECPLOT From ef736ac3a2b0494bae57d9fae4d4280521b34076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 27 Jun 2024 17:11:48 +0200 Subject: [PATCH 176/287] Update test values. --- TestCases/parallel_regression.py | 2 +- TestCases/serial_regression.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index f8403488070..26abc51eb78 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1059,7 +1059,7 @@ def main(): Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 Aachen_3D_restart.enabled_with_asan = False - Aachen_3D_restart.test_vals = [-15.329206, -15.008622, -15.078888, -13.841072, -12.727840, -9.975729] + Aachen_3D_restart.test_vals = [-9.853215, -8.891480, -9.610418, -8.028579, -7.792957, -4.384186] test_list.append(Aachen_3D_restart) # Jones APU Turbocharger restart diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 50b5b75e441..21a8968cc3e 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -861,7 +861,7 @@ def main(): Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 Aachen_3D_restart.enabled_with_asan = False - Aachen_3D_restart.test_vals = [-15.137167, -14.551444, -15.078894, -13.486154, -12.724891, -9.717612] + Aachen_3D_restart.test_vals = [-9.853207, -8.891479, -9.610411, -8.028566, -7.792947, -4.384177] test_list.append(Aachen_3D_restart) # Jones APU Turbocharger restart From 403c444b774a375974536ead6c5121fb6b10cc67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 27 Jun 2024 17:13:33 +0200 Subject: [PATCH 177/287] Re-enable address sanitzer testing. --- TestCases/serial_regression.py | 1 - 1 file changed, 1 deletion(-) diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 21a8968cc3e..a786f1f9d7e 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -860,7 +860,6 @@ def main(): Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 - Aachen_3D_restart.enabled_with_asan = False Aachen_3D_restart.test_vals = [-9.853207, -8.891479, -9.610411, -8.028566, -7.792947, -4.384177] test_list.append(Aachen_3D_restart) From 61972835a22791515e4b4af1a0807776a39874ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 27 Jun 2024 20:10:04 +0200 Subject: [PATCH 178/287] Revert test cases branch. --- .github/workflows/regression.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index e441b84780b..af6f6c60875 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -213,7 +213,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c fix_aachen_turbine -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: @@ -261,7 +261,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2-tsan:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c fix_aachen_turbine -s ${{matrix.testscript}} -a "--tsan" + args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} -a "--tsan" - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2-tsan:240320-1536 with: @@ -308,7 +308,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2-asan:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c fix_aachen_turbine -s ${{matrix.testscript}} -a "--asan" + args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} -a "--asan" - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2-asan:240320-1536 with: From c8447a6fc56402fd4c86452ee3ecd99986643fc4 Mon Sep 17 00:00:00 2001 From: Ole Burghardt Date: Tue, 2 Jul 2024 10:41:41 +0200 Subject: [PATCH 179/287] Add averaged quantities to recording (those which are used and communicated in the mixing plane). --- SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp index 27173f3357e..24fd1602e6e 100644 --- a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp @@ -471,6 +471,10 @@ void CDiscAdjFluidIteration::SetDependencies(CSolver***** solver, CGeometry**** solvers0[FLOW_SOL]->InitiateComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); solvers0[FLOW_SOL]->CompleteComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); + if (config[iZone]->GetBoolTurbomachinery()) { + solvers0[FLOW_SOL]->TurboAverageProcess(solvers0, geometry0, config[iZone], INFLOW); + solvers0[FLOW_SOL]->TurboAverageProcess(solvers0, geometry0, config[iZone], OUTFLOW); + } if (turbulent && !config[iZone]->GetFrozen_Visc_Disc()) { solvers0[TURB_SOL]->Postprocessing(geometry0, solvers0, config[iZone], MESH_0); From 355a6ce39fcc5bc8ddf48362429c5edd8528a36b Mon Sep 17 00:00:00 2001 From: emaberman Date: Thu, 4 Jul 2024 10:13:33 +0300 Subject: [PATCH 180/287] Give user control of lower limit Coefficient --- Common/include/CConfig.hpp | 14 ++++++++++++++ Common/src/CConfig.cpp | 4 ++++ SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 12 ++++++++---- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 494c9542922..4b02a32f2b5 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -878,6 +878,8 @@ class CConfig { ReThetaT_FreeStream, /*!< \brief Freestream Transition Momentum Thickness Reynolds Number (for LM transition model) of the fluid. */ NuFactor_FreeStream, /*!< \brief Ratio of turbulent to laminar viscosity. */ NuFactor_Engine, /*!< \brief Ratio of turbulent to laminar viscosity at the engine. */ + KFactor_LowerLimit, /*!< \Non dimensional coefficient for lower limit of K in SST model. */ + OmegaFactor_LowerLimit, /*!< \Non dimensional coefficient for lower limit of omega in SST model. */ SecondaryFlow_ActDisk, /*!< \brief Ratio of turbulent to laminar viscosity at the actuator disk. */ Initial_BCThrust, /*!< \brief Ratio of turbulent to laminar viscosity at the actuator disk. */ Pressure_FreeStream, /*!< \brief Total pressure of the fluid. */ @@ -2008,6 +2010,18 @@ class CConfig { */ su2double GetNuFactor_FreeStream(void) const { return NuFactor_FreeStream; } + /*! + * \brief Get the k constant factor define a lower limit by multiplication with values in SST turbulencemodel. + * \return Non-dimensionalized freestream intensity. + */ + su2double GetKFactor_LowerLimit(void) const { return KFactor_LowerLimit; } + + /*! + * \brief Get the w constant factor define a lower limit by multiplication with values in SST turbulencemodel. + * \return Non-dimensionalized freestream intensity. + */ + su2double GetOmegaFactor_LowerLimit(void) const { return OmegaFactor_LowerLimit; } + /*! * \brief Get the value of the non-dimensionalized engine turbulence intensity. * \return Non-dimensionalized engine intensity. diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 5ff351cfee5..8b99552bcf6 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1420,6 +1420,10 @@ void CConfig::SetConfig_Options() { /* DESCRIPTION: */ addDoubleOption("FREESTREAM_NU_FACTOR", NuFactor_FreeStream, 3.0); /* DESCRIPTION: */ + addDoubleOption("LOWER_LIMIT_K_FACTOR", KFactor_LowerLimit, 1.0e-20); + /* DESCRIPTION: */ + addDoubleOption("LOWER_LIMIT_OMEGA_FACTOR", OmegaFactor_LowerLimit, 1e-06); + /* DESCRIPTION: */ addDoubleOption("ENGINE_NU_FACTOR", NuFactor_Engine, 3.0); /* DESCRIPTION: */ addDoubleOption("ACTDISK_SECONDARY_FLOW", SecondaryFlow_ActDisk, 0.0); diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index 639c7ace7dc..6b9dfa433d7 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -97,7 +97,7 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh constants[5] = 0.0828; //beta_2 constants[6] = 0.09; //betaStar constants[7] = 0.31; //a1 - + if (sstParsedOptions.version == SST_OPTIONS::V1994){ 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 @@ -123,12 +123,16 @@ 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); + /*--- Constants to use for lower limit of turbulence variable. ---*/ + su2double Ck = config->GetKFactor_LowerLimit(); + su2double Cw = config->GetOmegaFactor_LowerLimit(); + /*--- Initialize lower and upper limits---*/ - lowerlimit[0] = 1.0e-20 * kine_Inf; + lowerlimit[0] = Ck * kine_Inf; upperlimit[0] = 1.0e10; - lowerlimit[1] = 1.0e-6 * omega_Inf; - upperlimit[1] = 1.0e16; + lowerlimit[1] = Cw * omega_Inf; + upperlimit[1] = 1.0e15; Solution_Inf[0] = kine_Inf; From a8658f323e5661cfc2d1ed4291fd560741fd6cd6 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 9 Jul 2024 16:10:00 +0200 Subject: [PATCH 181/287] Fixes to turbo monitor --- SU2_CFD/include/iteration/CFluidIteration.hpp | 6 +- SU2_CFD/src/iteration/CFluidIteration.cpp | 56 +++++++++---------- 2 files changed, 30 insertions(+), 32 deletions(-) diff --git a/SU2_CFD/include/iteration/CFluidIteration.hpp b/SU2_CFD/include/iteration/CFluidIteration.hpp index 07883903a05..7ce8cec5151 100644 --- a/SU2_CFD/include/iteration/CFluidIteration.hpp +++ b/SU2_CFD/include/iteration/CFluidIteration.hpp @@ -109,8 +109,12 @@ class CFluidIteration : public CIteration { /*! * \brief Monitors turbo computation (pressure and turbo ramps). + * \param[in] geometry_container - Geometrical definition of the problem + * \param[in] config_container - Defintion of the particular problem + * \param[in] ExtIter - The current iteration of the problem + * \param[in] iZone - The current zone */ - void TurboMonitor(CGeometry**** geometry_container, CConfig** config_container, unsigned long ExtIter); + void TurboMonitor(CGeometry**** geometry_container, CConfig** config_container, unsigned long ExtIter, unsigned short iZone); /*! * \brief Computes turboperformance. diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index d5ae7bd22e4..0f3f9a08eec 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -224,11 +224,12 @@ bool CFluidIteration::Monitor(COutput* output, CIntegration**** integration, CGe config[val_iZone]->GetInnerIter(), val_iInst); } - TurboMonitor(geometry, config, config[val_iZone]->GetInnerIter()); - } + TurboMonitor(geometry, config, config[val_iZone]->GetInnerIter(), val_iZone); + } else { output->SetHistoryOutput(geometry[val_iZone][val_iInst][MESH_0], solver[val_iZone][val_iInst][MESH_0], config[val_iZone], config[val_iZone]->GetTimeIter(), config[val_iZone]->GetOuterIter(), config[val_iZone]->GetInnerIter()); + }; StopCalc = output->GetConvergence(); @@ -242,45 +243,38 @@ bool CFluidIteration::Monitor(COutput* output, CIntegration**** integration, CGe return StopCalc; } -void CFluidIteration::TurboMonitor(CGeometry**** geometry_container, CConfig** config_container, unsigned long iter) { - - auto* config = config_container[ZONE_0]; +void CFluidIteration::TurboMonitor(CGeometry**** geometry_container, CConfig** config_container, unsigned long iter, unsigned short iZone) { + auto* config = config_container[iZone]; if (config_container[ZONE_0]->GetMultizone_Problem()) iter = config_container[ZONE_0]->GetOuterIter(); - - /*--- ROTATING FRAME Ramp: Compute the updated rotational velocity. ---*/ if (config->GetGrid_Movement() && config->GetRampRotatingFrame()) { const unsigned long rampFreq = SU2_TYPE::Int(config->GetRampRotatingFrame_Coeff(1)); const unsigned long finalRamp_Iter = SU2_TYPE::Int(config->GetRampRotatingFrame_Coeff(2)); const su2double rot_z_ini = config->GetRampRotatingFrame_Coeff(0); - const bool print = false; + const bool print = true; if(iter % rampFreq == 0 && iter <= finalRamp_Iter){ - for (auto iZone = 0u; iZone < nZone; iZone++) { - const su2double rot_z_final = config_container[iZone]->GetFinalRotation_Rate_Z(); + const su2double rot_z_final = config->GetFinalRotation_Rate_Z(); - if (fabs(rot_z_final) > 0.0) { - const su2double rot_z = rot_z_ini + iter * ( rot_z_final - rot_z_ini) / finalRamp_Iter; - config_container[iZone]->SetRotation_Rate(2, rot_z); - if (rank == MASTER_NODE && print && iter > 0) { - cout << "\nUpdated rotating frame grid velocities for zone " << iZone << ".\n"; - } - geometry_container[iZone][INST_0][MESH_0]->SetRotationalVelocity(config_container[iZone], print); - geometry_container[iZone][INST_0][MESH_0]->SetShroudVelocity(config_container[iZone]); + if (fabs(rot_z_final) > 0.0) { + const su2double rot_z = rot_z_ini + iter * ( rot_z_final - rot_z_ini) / finalRamp_Iter; + config->SetRotation_Rate(2, rot_z); + if (rank == MASTER_NODE && print && iter > 0) { + cout << "\nUpdated rotating frame grid velocities for zone " << iZone << ".\n"; } + geometry_container[iZone][INST_0][MESH_0]->SetRotationalVelocity(config, print); + geometry_container[iZone][INST_0][MESH_0]->SetShroudVelocity(config); } - for (auto iZone = 0u; iZone < nZone; iZone++) { - geometry_container[iZone][INST_0][MESH_0]->SetAvgTurboValue(config_container[iZone], iZone, INFLOW, false); - geometry_container[iZone][INST_0][MESH_0]->SetAvgTurboValue(config_container[iZone],iZone, OUTFLOW, false); - geometry_container[iZone][INST_0][MESH_0]->GatherInOutAverageValues(config_container[iZone], false); - } + geometry_container[iZone][INST_0][MESH_0]->SetAvgTurboValue(config, iZone, INFLOW, false); + geometry_container[iZone][INST_0][MESH_0]->SetAvgTurboValue(config, iZone, OUTFLOW, false); + geometry_container[iZone][INST_0][MESH_0]->GatherInOutAverageValues(config, false); - for (auto iZone = 0; iZone < nZone-1; iZone++) { - geometry_container[nZone-1][INST_0][MESH_0]->SetAvgTurboGeoValues(config_container[iZone],geometry_container[iZone][INST_0][MESH_0], iZone); + if (iZone < nZone - 1) { + geometry_container[nZone-1][INST_0][MESH_0]->SetAvgTurboGeoValues(config ,geometry_container[iZone][INST_0][MESH_0], iZone); } } } @@ -297,22 +291,22 @@ void CFluidIteration::TurboMonitor(CGeometry**** geometry_container, CConfig** c if (rank == MASTER_NODE) config->SetMonitotOutletPressure(outPres); for (auto iZone = 0u; iZone < nZone; iZone++) { - for (auto iMarker = 0; iMarker < config_container[iZone]->GetnMarker_All(); iMarker++) { - const auto KindBC = config_container[iZone]->GetMarker_All_KindBC(iMarker); - const auto Marker_Tag = config_container[iZone]->GetMarker_All_TagBound(iMarker); + for (auto iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + const auto KindBC = config->GetMarker_All_KindBC(iMarker); + const auto Marker_Tag = config->GetMarker_All_TagBound(iMarker); unsigned short KindBCOption; switch (KindBC) { case RIEMANN_BOUNDARY: - KindBCOption = config_container[iZone]->GetKind_Data_Riemann(Marker_Tag); + KindBCOption = config->GetKind_Data_Riemann(Marker_Tag); if (KindBCOption == STATIC_PRESSURE || KindBCOption == RADIAL_EQUILIBRIUM) { SU2_MPI::Error("Outlet pressure ramp only implemented for NRBC", CURRENT_FUNCTION); } break; case GILES_BOUNDARY: - KindBCOption = config_container[iZone]->GetKind_Data_Giles(Marker_Tag); + KindBCOption = config->GetKind_Data_Giles(Marker_Tag); if (KindBCOption == STATIC_PRESSURE || KindBCOption == STATIC_PRESSURE_1D || KindBCOption == RADIAL_EQUILIBRIUM ) { - config_container[iZone]->SetGiles_Var1(outPres, Marker_Tag); + config->SetGiles_Var1(outPres, Marker_Tag); } break; } From 4e3c48cbce94158025613a131ff8b0e76f5b98cd Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 9 Jul 2024 18:55:00 +0200 Subject: [PATCH 182/287] Changes for comments and spelling --- Common/include/CConfig.hpp | 2 +- SU2_CFD/src/iteration/CFluidIteration.cpp | 42 +++++++++++------------ 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index c28c3aaef54..969a166ed39 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -5088,7 +5088,7 @@ class CConfig { /*! * \brief Set Monitor Outlet Pressure value for the ramp. */ - void SetMonitotOutletPressure(su2double newMonPres) { MonitorOutletPressure = newMonPres;} + void SetMonitorOutletPressure(su2double newMonPres) { MonitorOutletPressure = newMonPres;} /*! * \brief Get Outlet Pressure Ramp option. diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index 0f3f9a08eec..85f2e9366f1 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -288,28 +288,26 @@ void CFluidIteration::TurboMonitor(CGeometry**** geometry_container, CConfig** c if (iter % rampFreq == 0 && iter <= finalRamp_Iter) { const su2double outPres = outPres_ini + iter * (outPres_final - outPres_ini) / finalRamp_Iter; - if (rank == MASTER_NODE) config->SetMonitotOutletPressure(outPres); - - for (auto iZone = 0u; iZone < nZone; iZone++) { - for (auto iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - const auto KindBC = config->GetMarker_All_KindBC(iMarker); - const auto Marker_Tag = config->GetMarker_All_TagBound(iMarker); - unsigned short KindBCOption; - switch (KindBC) { - case RIEMANN_BOUNDARY: - KindBCOption = config->GetKind_Data_Riemann(Marker_Tag); - if (KindBCOption == STATIC_PRESSURE || KindBCOption == RADIAL_EQUILIBRIUM) { - SU2_MPI::Error("Outlet pressure ramp only implemented for NRBC", CURRENT_FUNCTION); - } - break; - case GILES_BOUNDARY: - KindBCOption = config->GetKind_Data_Giles(Marker_Tag); - if (KindBCOption == STATIC_PRESSURE || KindBCOption == STATIC_PRESSURE_1D || - KindBCOption == RADIAL_EQUILIBRIUM ) { - config->SetGiles_Var1(outPres, Marker_Tag); - } - break; - } + if (rank == MASTER_NODE) config->SetMonitorOutletPressure(outPres); + + for (auto iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + const auto KindBC = config->GetMarker_All_KindBC(iMarker); + const auto Marker_Tag = config->GetMarker_All_TagBound(iMarker); + unsigned short KindBCOption; + switch (KindBC) { + case RIEMANN_BOUNDARY: + KindBCOption = config->GetKind_Data_Riemann(Marker_Tag); + if (KindBCOption == STATIC_PRESSURE || KindBCOption == RADIAL_EQUILIBRIUM) { + SU2_MPI::Error("Outlet pressure ramp only implemented for NRBC", CURRENT_FUNCTION); + } + break; + case GILES_BOUNDARY: + KindBCOption = config->GetKind_Data_Giles(Marker_Tag); + if (KindBCOption == STATIC_PRESSURE || KindBCOption == STATIC_PRESSURE_1D || + KindBCOption == RADIAL_EQUILIBRIUM ) { + config->SetGiles_Var1(outPres, Marker_Tag); + } + break; } } } From 9f2cc51901cdd3c4568e414261d3618ece795ddc Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 9 Jul 2024 18:55:17 +0200 Subject: [PATCH 183/287] format --- SU2_CFD/src/iteration/CFluidIteration.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index 85f2e9366f1..df5966b841f 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -289,7 +289,7 @@ void CFluidIteration::TurboMonitor(CGeometry**** geometry_container, CConfig** c if (iter % rampFreq == 0 && iter <= finalRamp_Iter) { const su2double outPres = outPres_ini + iter * (outPres_final - outPres_ini) / finalRamp_Iter; if (rank == MASTER_NODE) config->SetMonitorOutletPressure(outPres); - + for (auto iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { const auto KindBC = config->GetMarker_All_KindBC(iMarker); const auto Marker_Tag = config->GetMarker_All_TagBound(iMarker); From 18e6aa0b9e20f89d9a3c336b0cd56575af4fa50c Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 10 Jul 2024 13:38:39 +0200 Subject: [PATCH 184/287] Better way of doing things --- SU2_CFD/src/iteration/CFluidIteration.cpp | 5 ++--- SU2_CFD/src/output/COutput.cpp | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index db38391690e..99fad1ec1af 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -234,11 +234,10 @@ bool CFluidIteration::Monitor(COutput* output, CIntegration**** integration, CGe } TurboMonitor(geometry, config, config[val_iZone]->GetInnerIter(), val_iZone); - } else { + } output->SetHistoryOutput(geometry[val_iZone][val_iInst][MESH_0], solver[val_iZone][val_iInst][MESH_0], config[val_iZone], config[val_iZone]->GetTimeIter(), config[val_iZone]->GetOuterIter(), config[val_iZone]->GetInnerIter()); - }; StopCalc = output->GetConvergence(); @@ -298,7 +297,7 @@ void CFluidIteration::TurboMonitor(CGeometry**** geometry_container, CConfig** c if (iter % rampFreq == 0 && iter <= finalRamp_Iter) { const su2double outPres = outPres_ini + iter * (outPres_final - outPres_ini) / finalRamp_Iter; if (rank == MASTER_NODE) config->SetMonitorOutletPressure(outPres); - + for (auto iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { const auto KindBC = config->GetMarker_All_KindBC(iMarker); const auto Marker_Tag = config->GetMarker_All_TagBound(iMarker); diff --git a/SU2_CFD/src/output/COutput.cpp b/SU2_CFD/src/output/COutput.cpp index dedea04cc1e..d8aa5c16af9 100644 --- a/SU2_CFD/src/output/COutput.cpp +++ b/SU2_CFD/src/output/COutput.cpp @@ -250,7 +250,6 @@ void COutput::SetHistoryOutput(CGeometry ****geometry, CSolver *****solver, CCon if (rank == MASTER_NODE){ LoadTurboHistoryData(TurboStagePerf, TurboPerf, config[val_iZone]); } - SetHistoryOutput(geometry[val_iZone][val_iInst][MESH_0], solver[val_iZone][val_iInst][MESH_0], config[val_iZone], TimeIter, OuterIter,InnerIter); } From af8b1c188e6aedcd8191ec4e046c94f1c7a52094 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 10 Jul 2024 15:54:41 +0200 Subject: [PATCH 185/287] Changes for comments --- SU2_CFD/include/solvers/CEulerSolver.hpp | 11 +---------- SU2_CFD/src/solvers/CEulerSolver.cpp | 2 +- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index ee3d0efd2d9..0a4280dfc89 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -138,7 +138,7 @@ class CEulerSolver : public CFVMFlowSolverBase AverageMassFlowRate; + su2activevector AverageMassFlowRate; su2activematrix DensityIn; su2activematrix PressureIn; @@ -1192,15 +1192,6 @@ class CEulerSolver : public CFVMFlowSolverBaseval_marker - */ - //inline su2double GetAverageMassFlowRate(unsigned short valMarker) const final { - // return AverageMassFlowRate[valMarker]; - //} - /*! * \brief Provide the average pressure at the boundary of interest. * \param[in] val_marker - bound marker. diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 71e15c24938..a45b0413876 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -6435,7 +6435,7 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu auto const MassFlowRate_e = config->GetGiles_Var1(Marker_Tag); auto const relFacMassFlowRate = config->GetGiles_Var2(Marker_Tag); - Pressure_e = AveragePressure[val_marker][nSpanWiseSections]+relFacMassFlowRate*(AverageMassFlowRate[val_marker]-MassFlowRate_e); + Pressure_e = AveragePressure[val_marker][nSpanWiseSections]+relFacMassFlowRate*GetFluidModel()->GetdPdrho_e()*(AverageMassFlowRate[val_marker]-MassFlowRate_e); /*--- Compute avg characteristic jump ---*/ c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); From 6ebc1586573ad951d7e25cf915a8f0443a59272e Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 10 Jul 2024 16:05:52 +0200 Subject: [PATCH 186/287] Changes for comments --- SU2_CFD/src/iteration/CFluidIteration.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index 99fad1ec1af..65d567830c5 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -261,7 +261,6 @@ void CFluidIteration::TurboMonitor(CGeometry**** geometry_container, CConfig** c const unsigned long rampFreq = SU2_TYPE::Int(config->GetRampRotatingFrame_Coeff(1)); const unsigned long finalRamp_Iter = SU2_TYPE::Int(config->GetRampRotatingFrame_Coeff(2)); const su2double rot_z_ini = config->GetRampRotatingFrame_Coeff(0); - const bool print = true; if(iter % rampFreq == 0 && iter <= finalRamp_Iter){ @@ -270,7 +269,7 @@ void CFluidIteration::TurboMonitor(CGeometry**** geometry_container, CConfig** c if (fabs(rot_z_final) > 0.0) { const su2double rot_z = rot_z_ini + iter * ( rot_z_final - rot_z_ini) / finalRamp_Iter; config->SetRotation_Rate(2, rot_z); - if (rank == MASTER_NODE && print && iter > 0) { + if (rank == MASTER_NODE && iter > 0) { cout << "\nUpdated rotating frame grid velocities for zone " << iZone << ".\n"; } geometry_container[iZone][INST_0][MESH_0]->SetRotationalVelocity(config, print); From c90780b636aa7caedd40f703611539dbf9b9a087 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 10 Jul 2024 16:46:20 +0200 Subject: [PATCH 187/287] fix ramp print to output with COMM_LEVEL --- SU2_CFD/src/iteration/CFluidIteration.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index 65d567830c5..bd60c38a961 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -261,6 +261,7 @@ void CFluidIteration::TurboMonitor(CGeometry**** geometry_container, CConfig** c const unsigned long rampFreq = SU2_TYPE::Int(config->GetRampRotatingFrame_Coeff(1)); const unsigned long finalRamp_Iter = SU2_TYPE::Int(config->GetRampRotatingFrame_Coeff(2)); const su2double rot_z_ini = config->GetRampRotatingFrame_Coeff(0); + const bool print = (config->GetComm_Level() == COMM_FULL); if(iter % rampFreq == 0 && iter <= finalRamp_Iter){ From 3e486f593695ce721f730ed62b9046c7698b69f6 Mon Sep 17 00:00:00 2001 From: emaberman <139676851+emaberman@users.noreply.github.com> Date: Wed, 10 Jul 2024 19:44:52 +0300 Subject: [PATCH 188/287] Update AUTHORS.md Added Myself and Dr Yair Mor-Yossef as Authors per request --- AUTHORS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AUTHORS.md b/AUTHORS.md index f8c364f411b..511ebcf4b33 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -69,6 +69,7 @@ Daumantas Kavolis Dave Taflin Eduardo Molina Edwin van der Weide +Eitan Aberman Ethan Alan Hereth Florian Dittmann Filip Hahs @@ -108,6 +109,7 @@ Max Sagebaum Michele Gaffuri Mickael Philit Mladen Banovic +Mor Nat-1 Nicola Fonzi Nijso Beishuizen @@ -137,6 +139,7 @@ Trent Lukaczyk Vinzenz Götz VivaanKhatri Wally Maier +Yair Mor-Yossef Y. Chandukrishna Zan Xu Zcaic From 3ed4417bdea7c626fe7b6da1eeb409aeb311809e Mon Sep 17 00:00:00 2001 From: Eitan Aberman <139676851+emaberman@users.noreply.github.com> Date: Thu, 11 Jul 2024 16:11:02 +0300 Subject: [PATCH 189/287] Update config_template.cfg add options to config_template --- config_template.cfg | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config_template.cfg b/config_template.cfg index 74832ef98db..925726fd3ed 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -1801,6 +1801,10 @@ TIME_DISCRE_TURB= EULER_IMPLICIT % Reduction factor of the CFL coefficient in the turbulence problem CFL_REDUCTION_TURB= 1.0 +% Control lower limit constants of the SST model (C*phi_infinity) +LOWER_LIMIT_K_FACTOR= 1e-20 +LOWER_LIMIT_OMEGA_FACTOR= 1e-6 + % --------------------- HEAT NUMERICAL METHOD DEFINITION ----------------------% % % Value of the thermal diffusivity From 0fcf22f9648c45eef873f2b36abfe8c553f43062 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 16 Jul 2024 15:39:12 +0200 Subject: [PATCH 190/287] Remove need more multiple specification of boundary markers --- Common/include/CConfig.hpp | 12 +++++++--- Common/include/option_structure.inl | 10 ++++++-- Common/src/CConfig.cpp | 37 +++++++++++++++++++++++------ SU2_CFD/src/drivers/CDriver.cpp | 4 ++-- 4 files changed, 49 insertions(+), 14 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index ec700020f22..5a8d997c95b 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -235,6 +235,7 @@ class CConfig { *Marker_MixingPlaneInterface, /*!< \brief MixingPlane interface boundary markers. */ *Marker_TurboBoundIn, /*!< \brief Turbomachinery performance boundary markers. */ *Marker_TurboBoundOut, /*!< \brief Turbomachinery performance boundary donor markers. */ + *Marker_Turbomachinery, *Marker_NearFieldBound, /*!< \brief Near Field boundaries markers. */ *Marker_Deform_Mesh, /*!< \brief Deformable markers at the boundary. */ *Marker_Deform_Mesh_Sym_Plane, /*!< \brief Marker with symmetric deformation. */ @@ -440,7 +441,7 @@ class CConfig { TURBO_PERF_KIND *Kind_TurboPerf; /*!< \brief Kind of turbomachynery architecture.*/ TURBOMACHINERY_TYPE *Kind_TurboMachinery; - TURBO_INTERFACE_KIND *Kind_TurboInterface; + su2vector Kind_TurboInterface; /* Gradient smoothing options */ su2double SmoothingEps1; /*!< \brief Parameter for the identity part in gradient smoothing. */ @@ -1371,7 +1372,7 @@ class CConfig { su2double** & RotCenter, su2double** & RotAngles, su2double** & Translation); void addTurboPerfOption(const string & name, unsigned short & nMarker_TurboPerf, - string* & Marker_TurboBoundIn, string* & Marker_TurboBoundOut); + string* & Marker_TurboBoundIn, string* & Marker_TurboBoundOut, string* & Marker_Turbomachinery); void addActDiskOption(const string & name, unsigned short & nMarker_ActDiskInlet, unsigned short & nMarker_ActDiskOutlet, string* & Marker_ActDiskInlet, string* & Marker_ActDiskOutlet, @@ -5314,10 +5315,15 @@ class CConfig { TURBO_PERF_KIND GetKind_TurboPerf(unsigned short val_iZone) const { return Kind_TurboPerf[val_iZone]; }; /*! - * \brief get interface kind for two adjacent zones in turbomachinery problem + * \brief gets interface kind for an interface marker in turbomachinery problem * \return interface kind */ TURBO_INTERFACE_KIND GetKind_TurboInterface(unsigned short interfaceIndex) const { return Kind_TurboInterface[interfaceIndex]; } + + /*! + * \brief Sets marker kind for an interface marker in turbomachinery problem + */ + void SetKind_TurboInterface(unsigned short interfaceIndex, TURBO_INTERFACE_KIND TurboInterfaceKind) {Kind_TurboInterface[interfaceIndex] = TurboInterfaceKind ;} /*! * \brief get outlet bounds name for Turbomachinery performance calculation. diff --git a/Common/include/option_structure.inl b/Common/include/option_structure.inl index 955d1531482..645733ccbc1 100644 --- a/Common/include/option_structure.inl +++ b/Common/include/option_structure.inl @@ -1606,11 +1606,12 @@ class COptionTurboPerformance : public COptionBase { unsigned short& size; string*& marker_turboIn; string*& marker_turboOut; + string*& markers; public: COptionTurboPerformance(const string option_field_name, unsigned short& nMarker_TurboPerf, - string*& Marker_TurboBoundIn, string*& Marker_TurboBoundOut) - : size(nMarker_TurboPerf), marker_turboIn(Marker_TurboBoundIn), marker_turboOut(Marker_TurboBoundOut) { + string*& Marker_TurboBoundIn, string*& Marker_TurboBoundOut, string*& Marker_Turbomachinery) + : size(nMarker_TurboPerf), marker_turboIn(Marker_TurboBoundIn), marker_turboOut(Marker_TurboBoundOut), markers(Marker_Turbomachinery) { this->name = option_field_name; } @@ -1637,6 +1638,11 @@ class COptionTurboPerformance : public COptionBase { ; return newstring; } + + this->markers = new string[totalVals]; + for (unsigned long i = 0; i < totalVals; i++) { + this->markers[i].assign(option_value[i]); + } unsigned long nVals = totalVals / mod_num; this->size = nVals; diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 4239c92d820..98138dcfbf5 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -539,10 +539,10 @@ void CConfig::addPeriodicOption(const string & name, unsigned short & nMarker_Pe } void CConfig::addTurboPerfOption(const string & name, unsigned short & nMarker_TurboPerf, - string* & Marker_TurboBoundIn, string* & Marker_TurboBoundOut) { + string* & Marker_TurboBoundIn, string* & Marker_TurboBoundOut, string* & Marker_Turbomachinery) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); - COptionBase* val = new COptionTurboPerformance(name, nMarker_TurboPerf, Marker_TurboBoundIn, Marker_TurboBoundOut); + COptionBase* val = new COptionTurboPerformance(name, nMarker_TurboPerf, Marker_TurboBoundIn, Marker_TurboBoundOut, Marker_Turbomachinery); option_map.insert(pair(name, val)); } @@ -1037,6 +1037,7 @@ void CConfig::SetPointersNull() { Marker_MixingPlaneInterface = nullptr; Marker_TurboBoundIn = nullptr; Marker_TurboBoundOut = nullptr; + Marker_Turbomachinery = nullptr; Marker_Giles = nullptr; Marker_Shroud = nullptr; @@ -1627,8 +1628,8 @@ void CConfig::SetConfig_Options() { addStringListOption("MARKER_MIXINGPLANE_INTERFACE", nMarker_MixingPlaneInterface, Marker_MixingPlaneInterface); /*!\brief TURBULENT_MIXINGPLANE \n DESCRIPTION: Activate mixing plane also for turbulent quantities \ingroup Config*/ addBoolOption("TURBULENT_MIXINGPLANE", turbMixingPlane, false); - /*!\brief MARKER_TURBOMACHINERY \n DESCRIPTION: Identify the inflow and outflow boundaries in which the turbomachinery settings are applied. \ingroup Config*/ - addTurboPerfOption("MARKER_TURBOMACHINERY", nMarker_Turbomachinery, Marker_TurboBoundIn, Marker_TurboBoundOut); + /*!\brief MARKER_TURBOMACHINERY \n DESCRIPTION: Identify the boundaries for which the turbomachinery settings are applied. \ingroup Config*/ + addTurboPerfOption("MARKER_TURBOMACHINERY", nMarker_Turbomachinery, Marker_TurboBoundIn, Marker_TurboBoundOut, Marker_Turbomachinery); /*!\brief NUM_SPANWISE_SECTIONS \n DESCRIPTION: Integer number of spanwise sections to compute 3D turbo BC and Performance for turbomachinery */ addUnsignedShortOption("NUM_SPANWISE_SECTIONS", nSpanWiseSections_User, 1); /*!\brief SPANWISE_KIND \n DESCRIPTION: type of algorithm to identify the span-wise sections at the turbo boundaries. @@ -1640,9 +1641,6 @@ void CConfig::SetConfig_Options() { /*!\brief TURBOMACHINERY_KIND \n DESCRIPTION: types of turbomachynery Performance Calculations. \n OPTIONS: see \link TurboPerfKind_Map \endlink \n Default: TURBINE */ addEnumListOption("TURBO_PERF_KIND", nTurboMachineryKind, Kind_TurboPerf, TurboPerfKind_Map); - /*!\brief TURBO_INTERFACE_KIND \n DESCRIPTION: types of interface to be used between zones in turbomachinery problems - * \n OPTIONS: see \link TurboInterfaceKind_Map \endlink \n DEFAULT: MIXING_PLANE */ - addEnumListOption("TURBO_INTERFACE_KIND", nTurboInterfaces, Kind_TurboInterface, TurboInterfaceKind_Map); /*!\brief MARKER_SHROUD \n DESCRIPTION: markers in which velocity is forced to 0.0. * \n Format: (shroud1, shroud2, ...)*/ addStringListOption("MARKER_SHROUD", nMarker_Shroud, Marker_Shroud); @@ -6011,6 +6009,31 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] = indexMarker; } + /*--- Once we have identified the MixingPlane and Turbomachinery markers + * we next need to determine what type of interface between zones is + * used. It is convenient to do this here as it tidies up the interface + * preproccesing in CDriver ---*/ + nTurboInterfaces = (nMarker_Turbomachinery - 1)*2; //Two markers per zone + Kind_TurboInterface.resize(nTurboInterfaces); + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { + /*--- Loop over all interface markers ---*/ + for (iMarker_ZoneInterface = 0; iMarker_ZoneInterface < nMarker_ZoneInterface; iMarker_ZoneInterface++) { + /*--- Identify mixing plane markers ---*/ + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_MixingPlaneInterface[iMarker_ZoneInterface]) { + /*--- Find which list position this marker is in turbomachinery markers ---*/ + const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); + auto target_index = target - Marker_Turbomachinery; + /*--- Assign the correct interface ---*/ + SetKind_TurboInterface(target_index - 1, TURBO_INTERFACE_KIND::MIXING_PLANE); + } + else if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_Fluid_InterfaceBound[iMarker_ZoneInterface]) { + const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); + auto target_index = target - Marker_Turbomachinery; + SetKind_TurboInterface(target_index-1, TURBO_INTERFACE_KIND::FROZEN_ROTOR); + } + } + } + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { Marker_CfgFile_DV[iMarker_CfgFile] = NO; for (iMarker_DV = 0; iMarker_DV < nMarker_DV; iMarker_DV++) diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index a2a40717e5b..ca2892ab5ea 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -2492,7 +2492,7 @@ void CDriver::InitializeInterface(CConfig **config, CSolver***** solver, CGeomet else if (fluid_donor && fluid_target) { /*--- Interface handling for turbomachinery applications. ---*/ if (config[donor]->GetBoolTurbomachinery()) { - auto interfaceIndex = (donor+target-1)/2; + auto interfaceIndex = donor+target; // Here we assume that the interfaces at each side are the same kind switch (config[donor]->GetKind_TurboInterface(interfaceIndex)) { case TURBO_INTERFACE_KIND::MIXING_PLANE: { interface_type = MIXING_PLANE; @@ -2505,7 +2505,7 @@ void CDriver::InitializeInterface(CConfig **config, CSolver***** solver, CGeomet auto nVar = solver[donor][INST_0][MESH_0][FLOW_SOL]->GetnPrimVar(); interface_type = SLIDING_INTERFACE; interface[donor][target] = new CSlidingInterface(nVar, 0); - if (rank == MASTER_NODE) cout << "using a frozen rotor interface from donor zone " << donor << " to target zone " << target << "." << endl; + if (rank == MASTER_NODE) cout << "using a fluid interface interface from donor zone " << donor << " to target zone " << target << "." << endl; } } } From 68cde3e9df4e3a737a450d0d4e1835937125a528 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 16 Jul 2024 15:43:55 +0200 Subject: [PATCH 191/287] White spaces and defaults options --- Common/include/CConfig.hpp | 2 +- Common/include/option_structure.inl | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 5a8d997c95b..cee4020060d 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -5319,7 +5319,7 @@ class CConfig { * \return interface kind */ TURBO_INTERFACE_KIND GetKind_TurboInterface(unsigned short interfaceIndex) const { return Kind_TurboInterface[interfaceIndex]; } - + /*! * \brief Sets marker kind for an interface marker in turbomachinery problem */ diff --git a/Common/include/option_structure.inl b/Common/include/option_structure.inl index 645733ccbc1..9ceb3567598 100644 --- a/Common/include/option_structure.inl +++ b/Common/include/option_structure.inl @@ -1611,7 +1611,10 @@ class COptionTurboPerformance : public COptionBase { public: COptionTurboPerformance(const string option_field_name, unsigned short& nMarker_TurboPerf, string*& Marker_TurboBoundIn, string*& Marker_TurboBoundOut, string*& Marker_Turbomachinery) - : size(nMarker_TurboPerf), marker_turboIn(Marker_TurboBoundIn), marker_turboOut(Marker_TurboBoundOut), markers(Marker_Turbomachinery) { + : size(nMarker_TurboPerf), + marker_turboIn(Marker_TurboBoundIn), + marker_turboOut(Marker_TurboBoundOut), + markers(Marker_Turbomachinery) { this->name = option_field_name; } @@ -1638,8 +1641,8 @@ class COptionTurboPerformance : public COptionBase { ; return newstring; } - - this->markers = new string[totalVals]; + + this->markers = new string[totalVals]; for (unsigned long i = 0; i < totalVals; i++) { this->markers[i].assign(option_value[i]); } @@ -1660,6 +1663,7 @@ class COptionTurboPerformance : public COptionBase { this->size = 0; this->marker_turboIn = nullptr; this->marker_turboOut = nullptr; + this->markers = nullptr; } }; From 3f20abe6b9adfec9219db6e3e014347f3b519f71 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 16 Jul 2024 17:11:05 +0200 Subject: [PATCH 192/287] Bug fix for when one type of interface is specified --- Common/src/CConfig.cpp | 24 ++++++++++++++---------- SU2_CFD/src/drivers/CDriver.cpp | 2 +- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 98138dcfbf5..d0b43d3a7cd 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -6019,17 +6019,21 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { /*--- Loop over all interface markers ---*/ for (iMarker_ZoneInterface = 0; iMarker_ZoneInterface < nMarker_ZoneInterface; iMarker_ZoneInterface++) { /*--- Identify mixing plane markers ---*/ - if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_MixingPlaneInterface[iMarker_ZoneInterface]) { - /*--- Find which list position this marker is in turbomachinery markers ---*/ - const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); - auto target_index = target - Marker_Turbomachinery; - /*--- Assign the correct interface ---*/ - SetKind_TurboInterface(target_index - 1, TURBO_INTERFACE_KIND::MIXING_PLANE); + if (Marker_MixingPlaneInterface != nullptr){ // Necessary in cases where no mixing plane interfaces are defined + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_MixingPlaneInterface[iMarker_ZoneInterface]) { + /*--- Find which list position this marker is in turbomachinery markers ---*/ + const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); + const auto target_index = target - Marker_Turbomachinery; + /*--- Assign the correct interface ---*/ + SetKind_TurboInterface(target_index - 1, TURBO_INTERFACE_KIND::MIXING_PLANE); + } } - else if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_Fluid_InterfaceBound[iMarker_ZoneInterface]) { - const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); - auto target_index = target - Marker_Turbomachinery; - SetKind_TurboInterface(target_index-1, TURBO_INTERFACE_KIND::FROZEN_ROTOR); + if (Marker_Fluid_InterfaceBound != nullptr){ // Necessary in cases where no fluid interfaces are defined + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_Fluid_InterfaceBound[iMarker_ZoneInterface]) { + const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); + const auto target_index = target - Marker_Turbomachinery; + SetKind_TurboInterface(target_index-1, TURBO_INTERFACE_KIND::FROZEN_ROTOR); + } } } } diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index ca2892ab5ea..a4473a10851 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -2490,7 +2490,7 @@ void CDriver::InitializeInterface(CConfig **config, CSolver***** solver, CGeomet if (rank == MASTER_NODE) cout << "boundary displacements from the structural solver." << endl; } else if (fluid_donor && fluid_target) { - /*--- Interface handling for turbomachinery applications. ---*/ + /*--- Interface handling for turbomachinery applications. ---*/ if (config[donor]->GetBoolTurbomachinery()) { auto interfaceIndex = donor+target; // Here we assume that the interfaces at each side are the same kind switch (config[donor]->GetKind_TurboInterface(interfaceIndex)) { From 250f556cdbd8831c4552ded86a26fa8fa921d777 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 16 Jul 2024 17:16:07 +0200 Subject: [PATCH 193/287] Remove superfluous options from reg test configs --- TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg | 1 - TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg | 1 - TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg | 1 - 3 files changed, 3 deletions(-) diff --git a/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg b/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg index a9128d354bb..f8e68d0a1e5 100755 --- a/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg +++ b/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg @@ -69,7 +69,6 @@ MARKER_TURBOMACHINERY= (INFLOW, OUTMIX, INMIX, OUTFLOW) MARKER_ANALYZE= (OUTFLOW) MARKER_ZONE_INTERFACE= (OUTMIX, INMIX) MARKER_MIXINGPLANE_INTERFACE= (OUTMIX, INMIX) -TURBO_INTERFACE_KIND= (MIXING_PLANE) MARKER_GILES= (INFLOW, TOTAL_CONDITIONS_PT, 413.6E+03, 477.6, 1.0, 0.0, 0.0, 1.0, 0.0, OUTMIX, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, INMIX, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, OUTFLOW, STATIC_PRESSURE_1D, 67.46E+03, 0.0, 0.0, 0.0, 0.0 , 1.0, 0.0) GILES_EXTRA_RELAXFACTOR= (0.05, 0.05) SPATIAL_FOURIER= NO diff --git a/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg b/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg index 945d456d3f0..a7ded02ea2e 100755 --- a/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg +++ b/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg @@ -72,7 +72,6 @@ MARKER_ANALYZE= (outflow) MARKER_ZONE_INTERFACE= (outmix, inmix) % Mixing-plane interface markers must be specified to activate the transfer of information between zones MARKER_MIXINGPLANE_INTERFACE= (outmix, inmix) -TURBO_INTERFACE_KIND= (MIXING_PLANE) % MARKER_GILES= (inflow, TOTAL_CONDITIONS_PT, 169623.33, 305.76, 1.0, 0.0, 0.0,1.0,1.0, outmix, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0,1.0,1.0, inmix, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0,1.0, 1.0 outflow, STATIC_PRESSURE, 99741.00, 0.0, 0.0, 0.0, 0.0,1.0,1.0) SPATIAL_FOURIER= NO diff --git a/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg b/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg index c8d5ca38091..f3a52180c86 100755 --- a/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg +++ b/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg @@ -61,7 +61,6 @@ MARKER_RIEMANN= (inflow, TOTAL_CONDITIONS_PT, 366000.0, 515.00, 0.52101, -0.8535 MARKER_NRBC= (outmix, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, inmix, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0, outflow, STATIC_PRESSURE, 95750.0, 0.0, 0.0, 0.0, 0.0) MIXING_PROCESS_TYPE= AREA_AVERAGE MARKER_MIXINGPLANE= (outmix, inmix) -TURBO_INTERFACE_KIND= (MIXING_PLANE) MARKER_PERIODIC= (periodic1, periodic2, 0.0, 0.0, 0.0, 0.0, 0.0, 10.29, 0.0, 0.0, 0.0, periodic3, periodic4, 0.0, 0.0, 0.0, 0.0, 0.0, 8.78, 0.0, 0.0, 0.0) % % ------------------------ SURFACES IDENTIFICATION ----------------------------% From 20aff4ee1011d302eeeebfd45f565f4820592a53 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 16 Jul 2024 18:39:22 +0200 Subject: [PATCH 194/287] Releasing resources --- Common/include/option_structure.inl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Common/include/option_structure.inl b/Common/include/option_structure.inl index 9ceb3567598..ade32853611 100644 --- a/Common/include/option_structure.inl +++ b/Common/include/option_structure.inl @@ -1618,7 +1618,11 @@ class COptionTurboPerformance : public COptionBase { this->name = option_field_name; } - ~COptionTurboPerformance() override{}; + ~COptionTurboPerformance() override{ + delete[] markers; + delete[] marker_turboIn; + delete[] marker_turboOut; + }; string SetValue(const vector& option_value) override { COptionBase::SetValue(option_value); const int mod_num = 2; From 0d6fc3ce932af838ba177564caf7fdb7458db19d Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 16 Jul 2024 18:41:15 +0200 Subject: [PATCH 195/287] formatting --- Common/include/option_structure.inl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/include/option_structure.inl b/Common/include/option_structure.inl index ade32853611..ea560a6a931 100644 --- a/Common/include/option_structure.inl +++ b/Common/include/option_structure.inl @@ -1618,7 +1618,7 @@ class COptionTurboPerformance : public COptionBase { this->name = option_field_name; } - ~COptionTurboPerformance() override{ + ~COptionTurboPerformance() override { delete[] markers; delete[] marker_turboIn; delete[] marker_turboOut; From 8d3f866c13484eae6842b70ad9199fa413ee2bbf Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 16 Jul 2024 19:25:26 +0200 Subject: [PATCH 196/287] heap after use --- Common/include/option_structure.inl | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Common/include/option_structure.inl b/Common/include/option_structure.inl index ea560a6a931..01ed6de9bf9 100644 --- a/Common/include/option_structure.inl +++ b/Common/include/option_structure.inl @@ -1618,11 +1618,7 @@ class COptionTurboPerformance : public COptionBase { this->name = option_field_name; } - ~COptionTurboPerformance() override { - delete[] markers; - delete[] marker_turboIn; - delete[] marker_turboOut; - }; + ~COptionTurboPerformance() override{}; string SetValue(const vector& option_value) override { COptionBase::SetValue(option_value); const int mod_num = 2; @@ -1632,6 +1628,7 @@ class COptionTurboPerformance : public COptionBase { this->size = 0; this->marker_turboIn = nullptr; this->marker_turboOut = nullptr; + this->markers = nullptr; return ""; } @@ -1642,6 +1639,7 @@ class COptionTurboPerformance : public COptionBase { this->size = 0; this->marker_turboIn = nullptr; this->marker_turboOut = nullptr; + this->markers = nullptr; ; return newstring; } From 8b7ca1bf313d2389e822ca81dbdd95564a889826 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 16 Jul 2024 19:35:50 +0200 Subject: [PATCH 197/287] Remove Marker_Turbomachinery --- Common/src/CConfig.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index d0b43d3a7cd..6d0406ad3fb 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -8243,6 +8243,7 @@ CConfig::~CConfig() { delete [] RelaxFactorFourier; delete [] nSpan_iZones; + delete [] Marker_Turbomachinery; delete [] Marker_TurboBoundIn; delete [] Marker_TurboBoundOut; delete [] Marker_Riemann; From eeb7ec785cd7c62b761eb4d82c56e65bfde6e71a Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 16 Jul 2024 23:29:38 +0200 Subject: [PATCH 198/287] fix for asan --- Common/include/CConfig.hpp | 2 +- Common/src/CConfig.cpp | 20 +++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 694208bc16e..02055db1554 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -235,7 +235,7 @@ class CConfig { *Marker_MixingPlaneInterface, /*!< \brief MixingPlane interface boundary markers. */ *Marker_TurboBoundIn, /*!< \brief Turbomachinery performance boundary markers. */ *Marker_TurboBoundOut, /*!< \brief Turbomachinery performance boundary donor markers. */ - *Marker_Turbomachinery, + *Marker_Turbomachinery, /*!< \breif Turbomachinery markers */ *Marker_NearFieldBound, /*!< \brief Near Field boundaries markers. */ *Marker_Deform_Mesh, /*!< \brief Deformable markers at the boundary. */ *Marker_Deform_Mesh_Sym_Plane, /*!< \brief Marker with symmetric deformation. */ diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 6d0406ad3fb..44f3bcd88dd 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -6004,8 +6004,10 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { unsigned short indexMarker=0; Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] = NO; for (iMarker_MixingPlaneInterface = 0; iMarker_MixingPlaneInterface < nMarker_MixingPlaneInterface; iMarker_MixingPlaneInterface++) - if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_MixingPlaneInterface[iMarker_MixingPlaneInterface]) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_MixingPlaneInterface[iMarker_MixingPlaneInterface]) { indexMarker=(int)(iMarker_MixingPlaneInterface/2+1); + Marker_CfgFile_KindBC[iMarker_CfgFile] = MIXING_PLANE; + } Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] = indexMarker; } @@ -6013,23 +6015,23 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { * we next need to determine what type of interface between zones is * used. It is convenient to do this here as it tidies up the interface * preproccesing in CDriver ---*/ - nTurboInterfaces = (nMarker_Turbomachinery - 1)*2; //Two markers per zone - Kind_TurboInterface.resize(nTurboInterfaces); - for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { - /*--- Loop over all interface markers ---*/ - for (iMarker_ZoneInterface = 0; iMarker_ZoneInterface < nMarker_ZoneInterface; iMarker_ZoneInterface++) { + if (nMarker_Turbomachinery != 0) { + nTurboInterfaces = (nMarker_Turbomachinery - 1)*2; //Two markers per zone minus inlet & outlet + Kind_TurboInterface.resize(nTurboInterfaces); + /*--- Loop over all markers ---*/ + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { /*--- Identify mixing plane markers ---*/ if (Marker_MixingPlaneInterface != nullptr){ // Necessary in cases where no mixing plane interfaces are defined - if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_MixingPlaneInterface[iMarker_ZoneInterface]) { + if (Marker_CfgFile_KindBC[iMarker_CfgFile] == MIXING_PLANE) { /*--- Find which list position this marker is in turbomachinery markers ---*/ const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; /*--- Assign the correct interface ---*/ - SetKind_TurboInterface(target_index - 1, TURBO_INTERFACE_KIND::MIXING_PLANE); + SetKind_TurboInterface(target_index - 1, TURBO_INTERFACE_KIND::MIXING_PLANE); // Need to subtract 1 from index as to not consider the inlet an interface } } if (Marker_Fluid_InterfaceBound != nullptr){ // Necessary in cases where no fluid interfaces are defined - if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_Fluid_InterfaceBound[iMarker_ZoneInterface]) { + if (Marker_CfgFile_KindBC[iMarker_CfgFile] == FLUID_INTERFACE) { const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; SetKind_TurboInterface(target_index-1, TURBO_INTERFACE_KIND::FROZEN_ROTOR); From aac4bab4a1c34d2fecc0c195715b17b5c8a92645 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 17 Jul 2024 11:14:32 +0200 Subject: [PATCH 199/287] Potential fix --- Common/include/option_structure.hpp | 1 + Common/src/CConfig.cpp | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 88cd68678aa..d802d223751 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1596,6 +1596,7 @@ enum BC_TYPE { FLUID_INTERFACE = 39, /*!< \brief Domain interface definition. */ DISP_DIR_BOUNDARY = 40, /*!< \brief Boundary displacement definition. */ DAMPER_BOUNDARY = 41, /*!< \brief Damper. */ + MIXING_PLANE_INTERFACE = 42, /*< \breif Mxing plane */ CHT_WALL_INTERFACE = 50, /*!< \brief Domain interface definition. */ SMOLUCHOWSKI_MAXWELL = 55, /*!< \brief Smoluchoski/Maxwell wall boundary condition. */ SEND_RECEIVE = 99, /*!< \brief Boundary send-receive definition. */ diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 44f3bcd88dd..cec11877686 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -5772,7 +5772,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { for (iMarker_Fluid_InterfaceBound = 0; iMarker_Fluid_InterfaceBound < nMarker_Fluid_InterfaceBound; iMarker_Fluid_InterfaceBound++) { Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Fluid_InterfaceBound[iMarker_Fluid_InterfaceBound]; - Marker_CfgFile_KindBC[iMarker_CfgFile] = FLUID_INTERFACE; + Marker_CfgFile_KindBC[iMarker_CfgFile] = BC_TYPE::FLUID_INTERFACE; iMarker_CfgFile++; } @@ -6006,7 +6006,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { for (iMarker_MixingPlaneInterface = 0; iMarker_MixingPlaneInterface < nMarker_MixingPlaneInterface; iMarker_MixingPlaneInterface++) if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_MixingPlaneInterface[iMarker_MixingPlaneInterface]) { indexMarker=(int)(iMarker_MixingPlaneInterface/2+1); - Marker_CfgFile_KindBC[iMarker_CfgFile] = MIXING_PLANE; + Marker_CfgFile_KindBC[iMarker_CfgFile] = BC_TYPE::GILES_MIXING_PLANE; } Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] = indexMarker; } @@ -6022,7 +6022,8 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { /*--- Identify mixing plane markers ---*/ if (Marker_MixingPlaneInterface != nullptr){ // Necessary in cases where no mixing plane interfaces are defined - if (Marker_CfgFile_KindBC[iMarker_CfgFile] == MIXING_PLANE) { + if (Marker_CfgFile_KindBC[iMarker_CfgFile] == BC_TYPE::MIXING_PLANE_INTERFACE) { + cout << Marker_CfgFile_KindBC[iMarker_CfgFile] << endl; /*--- Find which list position this marker is in turbomachinery markers ---*/ const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; @@ -6031,7 +6032,8 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { } } if (Marker_Fluid_InterfaceBound != nullptr){ // Necessary in cases where no fluid interfaces are defined - if (Marker_CfgFile_KindBC[iMarker_CfgFile] == FLUID_INTERFACE) { + if (Marker_CfgFile_KindBC[iMarker_CfgFile] == BC_TYPE::FLUID_INTERFACE) { + cout << Marker_CfgFile_KindBC[iMarker_CfgFile] << endl; const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; SetKind_TurboInterface(target_index-1, TURBO_INTERFACE_KIND::FROZEN_ROTOR); From deae2a9815970f14f5bae7e2f7e15447cfab5353 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 17 Jul 2024 11:20:21 +0200 Subject: [PATCH 200/287] a mistake --- Common/src/CConfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index cec11877686..f411ce2a537 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -6006,7 +6006,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { for (iMarker_MixingPlaneInterface = 0; iMarker_MixingPlaneInterface < nMarker_MixingPlaneInterface; iMarker_MixingPlaneInterface++) if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_MixingPlaneInterface[iMarker_MixingPlaneInterface]) { indexMarker=(int)(iMarker_MixingPlaneInterface/2+1); - Marker_CfgFile_KindBC[iMarker_CfgFile] = BC_TYPE::GILES_MIXING_PLANE; + Marker_CfgFile_KindBC[iMarker_CfgFile] = BC_TYPE::MIXING_PLANE_INTERFACE; } Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] = indexMarker; } From 3b882220b01b726690f7c8d06c4b3dde9fbd04f8 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 17 Jul 2024 12:05:39 +0200 Subject: [PATCH 201/287] Potential fix --- Common/src/CConfig.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index f411ce2a537..88c0bab5c9e 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -6004,11 +6004,10 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { unsigned short indexMarker=0; Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] = NO; for (iMarker_MixingPlaneInterface = 0; iMarker_MixingPlaneInterface < nMarker_MixingPlaneInterface; iMarker_MixingPlaneInterface++) - if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_MixingPlaneInterface[iMarker_MixingPlaneInterface]) { + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_MixingPlaneInterface[iMarker_MixingPlaneInterface]) indexMarker=(int)(iMarker_MixingPlaneInterface/2+1); - Marker_CfgFile_KindBC[iMarker_CfgFile] = BC_TYPE::MIXING_PLANE_INTERFACE; - } Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] = indexMarker; + if (indexMarker != 0) Marker_CfgFile_KindBC[iMarker_CfgFile] = BC_TYPE::MIXING_PLANE_INTERFACE; } /*--- Once we have identified the MixingPlane and Turbomachinery markers @@ -6023,7 +6022,6 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { /*--- Identify mixing plane markers ---*/ if (Marker_MixingPlaneInterface != nullptr){ // Necessary in cases where no mixing plane interfaces are defined if (Marker_CfgFile_KindBC[iMarker_CfgFile] == BC_TYPE::MIXING_PLANE_INTERFACE) { - cout << Marker_CfgFile_KindBC[iMarker_CfgFile] << endl; /*--- Find which list position this marker is in turbomachinery markers ---*/ const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; @@ -6033,7 +6031,6 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { } if (Marker_Fluid_InterfaceBound != nullptr){ // Necessary in cases where no fluid interfaces are defined if (Marker_CfgFile_KindBC[iMarker_CfgFile] == BC_TYPE::FLUID_INTERFACE) { - cout << Marker_CfgFile_KindBC[iMarker_CfgFile] << endl; const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; SetKind_TurboInterface(target_index-1, TURBO_INTERFACE_KIND::FROZEN_ROTOR); From 8252f0d59e5e62187a83419b43d62a2e09587c8f Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 17 Jul 2024 12:48:17 +0200 Subject: [PATCH 202/287] Potential fix --- Common/src/CConfig.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 88c0bab5c9e..018aebf295f 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -6007,7 +6007,6 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_MixingPlaneInterface[iMarker_MixingPlaneInterface]) indexMarker=(int)(iMarker_MixingPlaneInterface/2+1); Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] = indexMarker; - if (indexMarker != 0) Marker_CfgFile_KindBC[iMarker_CfgFile] = BC_TYPE::MIXING_PLANE_INTERFACE; } /*--- Once we have identified the MixingPlane and Turbomachinery markers @@ -6021,7 +6020,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { /*--- Identify mixing plane markers ---*/ if (Marker_MixingPlaneInterface != nullptr){ // Necessary in cases where no mixing plane interfaces are defined - if (Marker_CfgFile_KindBC[iMarker_CfgFile] == BC_TYPE::MIXING_PLANE_INTERFACE) { + if (Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] != 0) { //Is a mixing plane /*--- Find which list position this marker is in turbomachinery markers ---*/ const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; @@ -6030,7 +6029,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { } } if (Marker_Fluid_InterfaceBound != nullptr){ // Necessary in cases where no fluid interfaces are defined - if (Marker_CfgFile_KindBC[iMarker_CfgFile] == BC_TYPE::FLUID_INTERFACE) { + if (Marker_CfgFile_KindBC[iMarker_CfgFile] == BC_TYPE::FLUID_INTERFACE) { //Is a fluid interface const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; SetKind_TurboInterface(target_index-1, TURBO_INTERFACE_KIND::FROZEN_ROTOR); From b855f0361ffb0c2d5182a83639c19e1fba85d54f Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sat, 20 Jul 2024 09:48:07 -0700 Subject: [PATCH 203/287] use inlet profile for supersonic inlet --- .../include/solvers/CFVMFlowSolverBase.inl | 18 ++++-- SU2_CFD/src/solvers/CEulerSolver.cpp | 55 +++++++++---------- 2 files changed, 39 insertions(+), 34 deletions(-) diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl index eb3edb511db..74c77b1771c 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl @@ -778,17 +778,27 @@ su2double CFVMFlowSolverBase::GetInletAtVertex(su2double* val_inlet, unsig template void CFVMFlowSolverBase::SetUniformInlet(const CConfig* config, unsigned short iMarker) { if (config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) { - string Marker_Tag = config->GetMarker_All_TagBound(iMarker); - su2double p_total = config->GetInletPtotal(Marker_Tag); - su2double t_total = config->GetInletTtotal(Marker_Tag); - auto flow_dir = config->GetInletFlowDir(Marker_Tag); + const string Marker_Tag = config->GetMarker_All_TagBound(iMarker); + const su2double p_total = config->GetInletPtotal(Marker_Tag); + const su2double t_total = config->GetInletTtotal(Marker_Tag); + const su2double* flow_dir = config->GetInletFlowDir(Marker_Tag); for (unsigned long iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { Inlet_Ttotal[iMarker][iVertex] = t_total; Inlet_Ptotal[iMarker][iVertex] = p_total; for (unsigned short iDim = 0; iDim < nDim; iDim++) Inlet_FlowDir[iMarker][iVertex][iDim] = flow_dir[iDim]; } + } else if (config->GetMarker_All_KindBC(iMarker) == SUPERSONIC_INLET) { + const string Marker_Tag = config->GetMarker_All_TagBound(iMarker); + const su2double p = config->GetInlet_Pressure(Marker_Tag); + const su2double t = config->GetInlet_Temperature(Marker_Tag); + const su2double* vel = config->GetInlet_Velocity(Marker_Tag); + for (unsigned long iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { + Inlet_Ttotal[iMarker][iVertex] = t; + Inlet_Ptotal[iMarker][iVertex] = p; + for (unsigned short iDim = 0; iDim < nDim; iDim++) Inlet_FlowDir[iMarker][iVertex][iDim] = vel[iDim]; + } } else { /*--- For now, non-inlets just get set to zero. In the future, we can do more customization for other boundary types here. ---*/ diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 356c759564c..6b129998d5c 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -7343,41 +7343,36 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST); /*--- Supersonic inlet flow: there are no outgoing characteristics, - so all flow variables can be imposed at the inlet. - First, retrieve the specified values for the primitive variables. ---*/ + so all flow variables can be imposed at the inlet. ---*/ - const su2double Temperature = config->GetInlet_Temperature(Marker_Tag) / config->GetTemperature_Ref(); - const su2double Pressure = config->GetInlet_Pressure(Marker_Tag) / config->GetPressure_Ref(); - const auto* Vel = config->GetInlet_Velocity(Marker_Tag); - - su2double Velocity[MAXNDIM] = {0.0}; - for (unsigned short iDim = 0; iDim < nDim; iDim++) - Velocity[iDim] = Vel[iDim] / config->GetVelocity_Ref(); + 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(); - /*--- Density at the inlet from the gas law ---*/ + if (!geometry->nodes->GetDomain(iPoint)) continue; - const su2double Density = Pressure / (Gas_Constant * Temperature); + /*--- Retrieve the inlet profile, note that total conditions are reused as static. ---*/ - /*--- Compute the energy from the specified state ---*/ + const su2double Temperature = Inlet_Ttotal[val_marker][iVertex] / config->GetTemperature_Ref(); + const su2double Pressure = Inlet_Ptotal[val_marker][iVertex] / config->GetPressure_Ref(); + su2double Velocity[MAXNDIM] = {0.0}; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { + Velocity[iDim] = Inlet_FlowDir[val_marker][iVertex][iDim] / config->GetVelocity_Ref(); + } - const su2double Velocity2 = GeometryToolbox::SquaredNorm(int(MAXNDIM), Velocity); - su2double Energy = Pressure / (Density * Gamma_Minus_One) + 0.5 * Velocity2; - if (tkeNeeded) Energy += GetTke_Inf(); + /*--- Density at the inlet from the gas law. ---*/ - /*--- Loop over all the vertices on this boundary marker ---*/ + const su2double Density = Pressure / (Gas_Constant * Temperature); - 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(); + /*--- Compute the energy from the specified state. ---*/ - if (!geometry->nodes->GetDomain(iPoint)) continue; + const su2double Velocity2 = GeometryToolbox::SquaredNorm(int(MAXNDIM), Velocity); + su2double Energy = Pressure / (Density * Gamma_Minus_One) + 0.5 * Velocity2; + if (tkeNeeded) Energy += GetTke_Inf(); - /*--- Allocate the value at the inlet ---*/ + /*--- Primitive variables, using the derived quantities. ---*/ auto* V_inlet = GetCharacPrimVar(val_marker, iVertex); - - /*--- Primitive variables, using the derived quantities ---*/ - V_inlet[prim_idx.Temperature()] = Temperature; V_inlet[prim_idx.Pressure()] = Pressure; V_inlet[prim_idx.Density()] = Density; @@ -7385,17 +7380,17 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con for (unsigned short iDim = 0; iDim < nDim; iDim++) V_inlet[iDim+prim_idx.Velocity()] = Velocity[iDim]; - /*--- Current solution at this boundary node ---*/ + /*--- Current solution at this boundary node. ---*/ - auto* V_domain = nodes->GetPrimitive(iPoint); + const auto* V_domain = nodes->GetPrimitive(iPoint); - /*--- Normal vector for this vertex (negate for outward convention) ---*/ + /*--- Normal vector for this vertex (negate for outward convention). ---*/ su2double Normal[MAXNDIM] = {0.0}; geometry->vertex[val_marker][iVertex]->GetNormal(Normal); for (unsigned short iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; - /*--- Set various quantities in the solver class ---*/ + /*--- Set various quantities in the solver class. ---*/ conv_numerics->SetNormal(Normal); conv_numerics->SetPrimitive(V_domain, V_inlet); @@ -7404,13 +7399,13 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint), geometry->nodes->GetGridVel(iPoint)); - /*--- Compute the residual using an upwind scheme ---*/ + /*--- Compute the residual using an upwind scheme. ---*/ auto residual = conv_numerics->ComputeResidual(config); LinSysRes.AddBlock(iPoint, residual); - /*--- Jacobian contribution for implicit integration ---*/ + /*--- Jacobian contribution for implicit integration. ---*/ if (implicit) Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); From b349f48a4cccc82f03eacddcb654b4e97f74159d Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sat, 20 Jul 2024 10:59:32 -0700 Subject: [PATCH 204/287] fixes --- SU2_CFD/include/solvers/CFVMFlowSolverBase.inl | 5 +++-- SU2_CFD/src/drivers/CDriver.cpp | 18 ++++++++++-------- SU2_CFD/src/solvers/CSpeciesSolver.cpp | 5 +++-- SU2_CFD/src/solvers/CTurbSASolver.cpp | 5 +++-- SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 5 +++-- 5 files changed, 22 insertions(+), 16 deletions(-) diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl index 74c77b1771c..991aaf98d10 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl @@ -738,9 +738,10 @@ su2double CFVMFlowSolverBase::GetInletAtVertex(su2double* val_inlet, unsig unsigned short P_position = nDim + 1; unsigned short FlowDir_position = nDim + 2; - if (val_kind_marker == INLET_FLOW) { + if (val_kind_marker == INLET_FLOW || val_kind_marker == SUPERSONIC_INLET) { for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) && + if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW || + config->GetMarker_All_KindBC(iMarker) == SUPERSONIC_INLET) && (config->GetMarker_All_TagBound(iMarker) == val_marker)) { for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index 14c478c0f47..a2d1bbcfce1 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -1071,14 +1071,16 @@ void CDriver::PreprocessInlet(CSolver ***solver, CGeometry **geometry, CConfig * cout << config->GetInlet_FileName() << endl; } - if (solver[MESH_0][FLOW_SOL]) { - solver[MESH_0][FLOW_SOL]->LoadInletProfile(geometry, solver, config, val_iter, FLOW_SOL, INLET_FLOW); - } - if (solver[MESH_0][TURB_SOL]) { - solver[MESH_0][TURB_SOL]->LoadInletProfile(geometry, solver, config, val_iter, TURB_SOL, INLET_FLOW); - } - if (solver[MESH_0][SPECIES_SOL]) { - solver[MESH_0][SPECIES_SOL]->LoadInletProfile(geometry, solver, config, val_iter, SPECIES_SOL, INLET_FLOW); + for (const auto marker_type : {INLET_FLOW, SUPERSONIC_INLET}) { + if (solver[MESH_0][FLOW_SOL]) { + solver[MESH_0][FLOW_SOL]->LoadInletProfile(geometry, solver, config, val_iter, FLOW_SOL, marker_type); + } + if (solver[MESH_0][TURB_SOL]) { + solver[MESH_0][TURB_SOL]->LoadInletProfile(geometry, solver, config, val_iter, TURB_SOL, marker_type); + } + if (solver[MESH_0][SPECIES_SOL]) { + solver[MESH_0][SPECIES_SOL]->LoadInletProfile(geometry, solver, config, val_iter, SPECIES_SOL, marker_type); + } } /*--- Exit if profiles were requested for a solver that is not available. ---*/ diff --git a/SU2_CFD/src/solvers/CSpeciesSolver.cpp b/SU2_CFD/src/solvers/CSpeciesSolver.cpp index 3c7ac895708..96cffde31b9 100644 --- a/SU2_CFD/src/solvers/CSpeciesSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesSolver.cpp @@ -430,10 +430,11 @@ su2double CSpeciesSolver::GetInletAtVertex(su2double *val_inlet, /*--- Alias positions within inlet file for readability ---*/ - if (val_kind_marker == INLET_FLOW) { + if (val_kind_marker == INLET_FLOW || val_kind_marker == SUPERSONIC_INLET) { for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) && + if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW || + config->GetMarker_All_KindBC(iMarker) == SUPERSONIC_INLET) && (config->GetMarker_All_TagBound(iMarker) == val_marker)) { for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { diff --git a/SU2_CFD/src/solvers/CTurbSASolver.cpp b/SU2_CFD/src/solvers/CTurbSASolver.cpp index f53596e9901..b7046075162 100644 --- a/SU2_CFD/src/solvers/CTurbSASolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSASolver.cpp @@ -1536,12 +1536,13 @@ su2double CTurbSASolver::GetInletAtVertex(su2double *val_inlet, /*--- Alias positions within inlet file for readability ---*/ - if (val_kind_marker == INLET_FLOW) { + if (val_kind_marker == INLET_FLOW || val_kind_marker == SUPERSONIC_INLET) { unsigned short position = nDim+2+nDim; for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) && + if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW || + config->GetMarker_All_KindBC(iMarker) == SUPERSONIC_INLET) && (config->GetMarker_All_TagBound(iMarker) == val_marker)) { for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++){ diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index 555f8e77155..465ece51b94 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -1007,13 +1007,14 @@ su2double CTurbSSTSolver::GetInletAtVertex(su2double *val_inlet, /*--- Alias positions within inlet file for readability ---*/ - if (val_kind_marker == INLET_FLOW) { + if (val_kind_marker == INLET_FLOW || val_kind_marker == SUPERSONIC_INLET) { unsigned short tke_position = nDim+2+nDim; unsigned short omega_position = nDim+2+nDim+1; for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) && + if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW || + config->GetMarker_All_KindBC(iMarker) == SUPERSONIC_INLET) && (config->GetMarker_All_TagBound(iMarker) == val_marker)) { for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++){ From ff35ddea27d912aaef8ebc35374987ee6781aaa8 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sun, 21 Jul 2024 10:24:03 -0700 Subject: [PATCH 205/287] fix segfault and cleanup --- .../include/solvers/CFVMFlowSolverBase.hpp | 15 ++-- .../include/solvers/CFVMFlowSolverBase.inl | 62 ++++------------ SU2_CFD/include/solvers/CSolver.hpp | 21 +++--- SU2_CFD/include/solvers/CSpeciesSolver.hpp | 13 ++-- SU2_CFD/include/solvers/CTurbSASolver.hpp | 17 ++--- SU2_CFD/include/solvers/CTurbSSTSolver.hpp | 17 ++--- SU2_CFD/src/drivers/CDriver.cpp | 10 ++- SU2_CFD/src/solvers/CSolver.cpp | 38 ++++++---- SU2_CFD/src/solvers/CSpeciesSolver.cpp | 60 +++------------- SU2_CFD/src/solvers/CTurbSASolver.cpp | 62 +++------------- SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 70 ++++--------------- 11 files changed, 103 insertions(+), 282 deletions(-) diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp index 21b87849bcd..39b6ffa1aee 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp @@ -1095,22 +1095,21 @@ class CFVMFlowSolverBase : public CSolver { /*! * \brief Store of a set of provided inlet profile values at a vertex. * \param[in] val_inlet - vector containing the inlet values for the current vertex. - * \param[in] iMarker - Surface marker where the coefficient is computed. + * \param[in] iMarker - Index of the surface marker. * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. */ void SetInletAtVertex(const su2double* val_inlet, unsigned short iMarker, unsigned long iVertex) final; /*! - * \brief Get the set of value imposed at an inlet. - * \param[in] val_inlet - vector returning the inlet values for the current vertex. - * \param[in] val_inlet_point - Node index where the inlet is being set. - * \param[in] val_kind_marker - Enumerated type for the particular inlet type. + * \brief Get the set of values imposed at an inlet. + * \param[in] iMarker - Index of the surface marker. + * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. * \param[in] geometry - Geometrical definition of the problem. - * \param config - Definition of the particular problem. + * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. * \return Value of the face area at the vertex. */ - su2double GetInletAtVertex(su2double* val_inlet, unsigned long val_inlet_point, unsigned short val_kind_marker, - string val_marker, const CGeometry* geometry, const CConfig* config) const final; + su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const final; /*! * \author T. Kattmann diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl index 991aaf98d10..d422f8f37de 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl @@ -722,58 +722,22 @@ void CFVMFlowSolverBase::SetInletAtVertex(const su2double* val_inlet, unsi } template -su2double CFVMFlowSolverBase::GetInletAtVertex(su2double* val_inlet, unsigned long val_inlet_point, - unsigned short val_kind_marker, string val_marker, - const CGeometry* geometry, const CConfig* config) const { - /*--- Local variables ---*/ - - unsigned short iMarker, iDim; - unsigned long iPoint, iVertex; - su2double Area = 0.0; - su2double Normal[3] = {0.0, 0.0, 0.0}; - - /*--- Alias positions within inlet file for readability ---*/ - - unsigned short T_position = nDim; - unsigned short P_position = nDim + 1; - unsigned short FlowDir_position = nDim + 2; - - if (val_kind_marker == INLET_FLOW || val_kind_marker == SUPERSONIC_INLET) { - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW || - config->GetMarker_All_KindBC(iMarker) == SUPERSONIC_INLET) && - (config->GetMarker_All_TagBound(iMarker) == val_marker)) { - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - - if (iPoint == val_inlet_point) { - /*-- Compute boundary face area for this vertex. ---*/ - - geometry->vertex[iMarker][iVertex]->GetNormal(Normal); - Area = GeometryToolbox::Norm(nDim, Normal); - - /*--- Access and store the inlet variables for this vertex. ---*/ - - val_inlet[T_position] = Inlet_Ttotal[iMarker][iVertex]; - val_inlet[P_position] = Inlet_Ptotal[iMarker][iVertex]; - for (iDim = 0; iDim < nDim; iDim++) { - val_inlet[FlowDir_position + iDim] = Inlet_FlowDir[iMarker][iVertex][iDim]; - } - - /*--- Exit once we find the point. ---*/ - - return Area; - } - } - } - } +su2double CFVMFlowSolverBase::GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const { + const auto T_position = nDim; + const auto P_position = nDim + 1; + const auto FlowDir_position = nDim + 2; + val_inlet[T_position] = Inlet_Ttotal[iMarker][iVertex]; + val_inlet[P_position] = Inlet_Ptotal[iMarker][iVertex]; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { + val_inlet[FlowDir_position + iDim] = Inlet_FlowDir[iMarker][iVertex][iDim]; } - /*--- If we don't find a match, then the child point is not on the - current inlet boundary marker. Return zero area so this point does - not contribute to the restriction operator and continue. ---*/ + /*--- Compute boundary face area for this vertex. ---*/ - return Area; + su2double Normal[MAXNDIM] = {0.0}; + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + return GeometryToolbox::Norm(nDim, Normal); } template diff --git a/SU2_CFD/include/solvers/CSolver.hpp b/SU2_CFD/include/solvers/CSolver.hpp index eee698af3d5..a57b4c28abc 100644 --- a/SU2_CFD/include/solvers/CSolver.hpp +++ b/SU2_CFD/include/solvers/CSolver.hpp @@ -2893,7 +2893,7 @@ class CSolver { * \param[in] config - Definition of the particular problem. * \param[in] iMarker - Surface marker where the coefficient is computed. */ - inline virtual void SetUniformInlet(const CConfig* config, unsigned short iMarker) {}; + inline virtual void SetUniformInlet(const CConfig* config, unsigned short iMarker) {} /*! * \brief A virtual member @@ -2903,23 +2903,18 @@ class CSolver { */ inline virtual void SetInletAtVertex(const su2double *val_inlet, unsigned short iMarker, - unsigned long iVertex) { }; + unsigned long iVertex) { } /*! - * \brief A virtual member - * \param[in] val_inlet - vector returning the inlet values for the current vertex. - * \param[in] val_inlet_point - Node index where the inlet is being set. - * \param[in] val_kind_marker - Enumerated type for the particular inlet type. + * \brief Get the set of values imposed at an inlet. + * \param[in] iMarker - Index of the surface marker. + * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. * \param[in] geometry - Geometrical definition of the problem. - * \param config - Definition of the particular problem. + * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. * \return Value of the face area at the vertex. */ - inline virtual su2double GetInletAtVertex(su2double *val_inlet, - unsigned long val_inlet_point, - unsigned short val_kind_marker, - string val_marker, - const CGeometry *geometry, - const CConfig *config) const { return 0; } + inline virtual su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const { return 0; } /*! * \brief Update the multi-grid structure for the customized boundary conditions. diff --git a/SU2_CFD/include/solvers/CSpeciesSolver.hpp b/SU2_CFD/include/solvers/CSpeciesSolver.hpp index 4fbb9419117..8b838cd0e61 100644 --- a/SU2_CFD/include/solvers/CSpeciesSolver.hpp +++ b/SU2_CFD/include/solvers/CSpeciesSolver.hpp @@ -113,16 +113,15 @@ class CSpeciesSolver : public CScalarSolver { void SetInletAtVertex(const su2double* val_inlet, unsigned short iMarker, unsigned long iVertex) override; /*! - * \brief Get the set of value imposed at an inlet. - * \param[in] val_inlet - vector returning the inlet values for the current vertex. - * \param[in] val_inlet_point - Node index where the inlet is being set. - * \param[in] val_kind_marker - Enumerated type for the particular inlet type. + * \brief Get the set of values imposed at an inlet. + * \param[in] iMarker - Index of the surface marker. + * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. * \param[in] geometry - Geometrical definition of the problem. - * \param config - Definition of the particular problem. + * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. * \return Value of the face area at the vertex. */ - su2double GetInletAtVertex(su2double* val_inlet, unsigned long val_inlet_point, unsigned short val_kind_marker, - string val_marker, const CGeometry* geometry, const CConfig* config) const override; + su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const override; /*! * \brief Set a uniform inlet profile diff --git a/SU2_CFD/include/solvers/CTurbSASolver.hpp b/SU2_CFD/include/solvers/CTurbSASolver.hpp index c79649799cc..1bf7d929d0e 100644 --- a/SU2_CFD/include/solvers/CTurbSASolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSASolver.hpp @@ -345,20 +345,15 @@ class CTurbSASolver final : public CTurbSolver { unsigned long iVertex) override; /*! - * \brief Get the set of value imposed at an inlet. - * \param[in] val_inlet - vector returning the inlet values for the current vertex. - * \param[in] val_inlet_point - Node index where the inlet is being set. - * \param[in] val_kind_marker - Enumerated type for the particular inlet type. + * \brief Get the set of values imposed at an inlet. + * \param[in] iMarker - Index of the surface marker. + * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. * \param[in] geometry - Geometrical definition of the problem. - * \param config - Definition of the particular problem. + * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. * \return Value of the face area at the vertex. */ - su2double GetInletAtVertex(su2double *val_inlet, - unsigned long val_inlet_point, - unsigned short val_kind_marker, - string val_marker, - const CGeometry *geometry, - const CConfig *config) const override; + su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const override; /*! * \brief Set a uniform inlet profile diff --git a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp index bdb4227a191..4ab59ec73a8 100644 --- a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp @@ -269,20 +269,15 @@ class CTurbSSTSolver final : public CTurbSolver { unsigned long iVertex) override; /*! - * \brief Get the set of value imposed at an inlet. - * \param[in] val_inlet - vector returning the inlet values for the current vertex. - * \param[in] val_inlet_point - Node index where the inlet is being set. - * \param[in] val_kind_marker - Enumerated type for the particular inlet type. + * \brief Get the set of values imposed at an inlet. + * \param[in] iMarker - Index of the surface marker. + * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. * \param[in] geometry - Geometrical definition of the problem. - * \param config - Definition of the particular problem. + * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. * \return Value of the face area at the vertex. */ - su2double GetInletAtVertex(su2double *val_inlet, - unsigned long val_inlet_point, - unsigned short val_kind_marker, - string val_marker, - const CGeometry *geometry, - const CConfig *config) const override; + su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const override; /*! * \brief Set a uniform inlet profile diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index a2d1bbcfce1..89e312b0f97 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -1066,9 +1066,7 @@ void CDriver::PreprocessInlet(CSolver ***solver, CGeometry **geometry, CConfig * /*--- Use LoadInletProfile() routines for the particular solver. ---*/ if (rank == MASTER_NODE) { - cout << endl; - cout << "Reading inlet profile from file: "; - cout << config->GetInlet_FileName() << endl; + cout << "\nReading inlet profile from file: " << config->GetInlet_FileName() << endl; } for (const auto marker_type : {INLET_FLOW, SUPERSONIC_INLET}) { @@ -1086,9 +1084,9 @@ void CDriver::PreprocessInlet(CSolver ***solver, CGeometry **geometry, CConfig * /*--- Exit if profiles were requested for a solver that is not available. ---*/ if (!config->GetFluidProblem()) { - SU2_MPI::Error(string("Inlet profile specification via file (C++) has not been \n") + - string("implemented yet for this solver.\n") + - string("Please set SPECIFIED_INLET_PROFILE= NO and try again."), CURRENT_FUNCTION); + SU2_MPI::Error("Inlet profile specification via file (C++) has not been \n" + "implemented yet for this solver.\n" + "Please set SPECIFIED_INLET_PROFILE= NO and try again.", CURRENT_FUNCTION); } } else { diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index b9d03fe3ee2..d46a15b5a0d 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -3589,15 +3589,26 @@ void CSolver::LoadInletProfile(CGeometry **geometry, /*--- Skip if this is the wrong type of marker. ---*/ if (config->GetMarker_All_KindBC(iMarker) != KIND_MARKER) continue; - string Marker_Tag = config->GetMarker_All_TagBound(iMarker); - su2double p_total = config->GetInletPtotal(Marker_Tag); - su2double t_total = config->GetInletTtotal(Marker_Tag); - auto flow_dir = config->GetInletFlowDir(Marker_Tag); - std::stringstream columnName,columnValue; + const string Marker_Tag = config->GetMarker_All_TagBound(iMarker); + std::stringstream columnName,columnValue; columnValue << setprecision(15); columnValue << std::scientific; + su2double p_total, t_total; + const su2double* flow_dir = nullptr; + + if (KIND_MARKER == INLET_FLOW) { + p_total = config->GetInletPtotal(Marker_Tag); + t_total = config->GetInletTtotal(Marker_Tag); + flow_dir = config->GetInletFlowDir(Marker_Tag); + } else if (KIND_MARKER == SUPERSONIC_INLET) { + p_total = config->GetInlet_Pressure(Marker_Tag); + t_total = config->GetInlet_Temperature(Marker_Tag); + flow_dir = config->GetInlet_Velocity(Marker_Tag); + } else { + SU2_MPI::Error("Unsupported type of inlet.", CURRENT_FUNCTION); + } columnValue << t_total << "\t" << p_total <<"\t"; for (unsigned short iDim = 0; iDim < nDim; iDim++) { columnValue << flow_dir[iDim] <<"\t"; @@ -3606,7 +3617,9 @@ void CSolver::LoadInletProfile(CGeometry **geometry, columnName << "# COORD-X " << setw(24) << "COORD-Y " << setw(24); if(nDim==3) columnName << "COORD-Z " << setw(24); - if (config->GetKind_Regime()==ENUM_REGIME::COMPRESSIBLE){ + if (KIND_MARKER == SUPERSONIC_INLET) { + columnName << "TEMPERATURE" << setw(24) << "PRESSURE " << setw(24); + } else if (config->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE) { switch (config->GetKind_Inlet()) { /*--- compressible conditions ---*/ case INLET_TYPE::TOTAL_CONDITIONS: @@ -3617,7 +3630,8 @@ void CSolver::LoadInletProfile(CGeometry **geometry, break; default: SU2_MPI::Error("Unsupported INLET_TYPE.", CURRENT_FUNCTION); - break; } + break; + } } else { switch (config->GetKind_Inc_Inlet(Marker_Tag)) { /*--- incompressible conditions ---*/ @@ -3914,7 +3928,7 @@ void CSolver::LoadInletProfile(CGeometry **geometry, const auto Marker_Tag = config->GetMarker_All_TagBound(iMarker); - /* Check the number of columns and allocate temp array. */ + /*--- Check the number of columns and allocate temp array. ---*/ unsigned short nColumns = 0; for (auto jMarker = 0ul; jMarker < profileReader.GetNumberOfProfiles(); jMarker++) { @@ -3948,12 +3962,10 @@ void CSolver::LoadInletProfile(CGeometry **geometry, the averaging. ---*/ for (auto iChildren = 0u; iChildren < geometry[iMesh]->nodes->GetnChildren_CV(iPoint); iChildren++) { - const auto Point_Fine = geometry[iMesh]->nodes->GetChildren_CV(iPoint, iChildren); - - auto Area_Children = solver[iMesh-1][KIND_SOLVER]->GetInletAtVertex(Inlet_Fine.data(), Point_Fine, KIND_MARKER, - Marker_Tag, geometry[iMesh-1], config); + const auto Area_Children = + solver[iMesh-1][KIND_SOLVER]->GetInletAtVertex(iMarker, iVertex, geometry[iMesh-1], Inlet_Fine.data()); for (auto iVar = 0u; iVar < nColumns; iVar++) - Inlet_Values[iVar] += Inlet_Fine[iVar]*Area_Children/Area_Parent; + Inlet_Values[iVar] += Inlet_Fine[iVar] * Area_Children / Area_Parent; } /*--- Set the boundary area-averaged inlet values for the coarse point. ---*/ diff --git a/SU2_CFD/src/solvers/CSpeciesSolver.cpp b/SU2_CFD/src/solvers/CSpeciesSolver.cpp index 96cffde31b9..832c9014511 100644 --- a/SU2_CFD/src/solvers/CSpeciesSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesSolver.cpp @@ -415,60 +415,16 @@ void CSpeciesSolver::SetInletAtVertex(const su2double *val_inlet, } -su2double CSpeciesSolver::GetInletAtVertex(su2double *val_inlet, - unsigned long val_inlet_point, - unsigned short val_kind_marker, - string val_marker, - const CGeometry *geometry, - const CConfig *config) const { - /*--- Local variables ---*/ - - unsigned short iMarker; - unsigned long iPoint, iVertex; - su2double Area = 0.0; - su2double Normal[3] = {0.0,0.0,0.0}; - - /*--- Alias positions within inlet file for readability ---*/ - - if (val_kind_marker == INLET_FLOW || val_kind_marker == SUPERSONIC_INLET) { - - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW || - config->GetMarker_All_KindBC(iMarker) == SUPERSONIC_INLET) && - (config->GetMarker_All_TagBound(iMarker) == val_marker)) { - - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { - - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - - if (iPoint == val_inlet_point) { - - /*-- Compute boundary face area for this vertex. ---*/ - - geometry->vertex[iMarker][iVertex]->GetNormal(Normal); - Area = GeometryToolbox::Norm(nDim, Normal); - - /*--- Access and store the inlet variables for this vertex. ---*/ - for (unsigned short iVar = 0; iVar < nVar; iVar++) - val_inlet[Inlet_Position + iVar] = Inlet_SpeciesVars[iMarker][iVertex][iVar]; - - /*--- Exit once we find the point. ---*/ - - return Area; - - } - } - } - } - - } - - /*--- If we don't find a match, then the child point is not on the - current inlet boundary marker. Return zero area so this point does - not contribute to the restriction operator and continue. ---*/ +su2double CSpeciesSolver::GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const { + for (unsigned short iVar = 0; iVar < nVar; iVar++) + val_inlet[Inlet_Position + iVar] = Inlet_SpeciesVars[iMarker][iVertex][iVar]; - return Area; + /*--- Compute boundary face area for this vertex. ---*/ + su2double Normal[MAXNDIM] = {0.0}; + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + return GeometryToolbox::Norm(nDim, Normal); } void CSpeciesSolver::SetUniformInlet(const CConfig* config, unsigned short iMarker) { diff --git a/SU2_CFD/src/solvers/CTurbSASolver.cpp b/SU2_CFD/src/solvers/CTurbSASolver.cpp index b7046075162..d30eba4f8d8 100644 --- a/SU2_CFD/src/solvers/CTurbSASolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSASolver.cpp @@ -1521,62 +1521,16 @@ void CTurbSASolver::SetInletAtVertex(const su2double *val_inlet, } -su2double CTurbSASolver::GetInletAtVertex(su2double *val_inlet, - unsigned long val_inlet_point, - unsigned short val_kind_marker, - string val_marker, - const CGeometry *geometry, - const CConfig *config) const { - /*--- Local variables ---*/ +su2double CTurbSASolver::GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const { + const auto position = nDim + 2 + nDim; + val_inlet[position] = Inlet_TurbVars[iMarker][iVertex][0]; - unsigned short iMarker; - unsigned long iPoint, iVertex; - su2double Area = 0.0; - su2double Normal[3] = {0.0,0.0,0.0}; - - /*--- Alias positions within inlet file for readability ---*/ - - if (val_kind_marker == INLET_FLOW || val_kind_marker == SUPERSONIC_INLET) { - - unsigned short position = nDim+2+nDim; - - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW || - config->GetMarker_All_KindBC(iMarker) == SUPERSONIC_INLET) && - (config->GetMarker_All_TagBound(iMarker) == val_marker)) { - - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++){ - - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - - if (iPoint == val_inlet_point) { - - /*-- Compute boundary face area for this vertex. ---*/ - - geometry->vertex[iMarker][iVertex]->GetNormal(Normal); - Area = GeometryToolbox::Norm(nDim, Normal); - - /*--- Access and store the inlet variables for this vertex. ---*/ - - val_inlet[position] = Inlet_TurbVars[iMarker][iVertex][0]; - - /*--- Exit once we find the point. ---*/ - - return Area; - - } - } - } - } - - } - - /*--- If we don't find a match, then the child point is not on the - current inlet boundary marker. Return zero area so this point does - not contribute to the restriction operator and continue. ---*/ - - return Area; + /*--- Compute boundary face area for this vertex. ---*/ + su2double Normal[MAXNDIM] = {0.0}; + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + return GeometryToolbox::Norm(nDim, Normal); } void CTurbSASolver::SetUniformInlet(const CConfig* config, unsigned short iMarker) { diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index 465ece51b94..114dd442867 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -992,64 +992,18 @@ void CTurbSSTSolver::SetInletAtVertex(const su2double *val_inlet, } -su2double CTurbSSTSolver::GetInletAtVertex(su2double *val_inlet, - unsigned long val_inlet_point, - unsigned short val_kind_marker, - string val_marker, - const CGeometry *geometry, - const CConfig *config) const { - /*--- Local variables ---*/ - - unsigned short iMarker; - unsigned long iPoint, iVertex; - su2double Area = 0.0; - su2double Normal[3] = {0.0,0.0,0.0}; - - /*--- Alias positions within inlet file for readability ---*/ - - if (val_kind_marker == INLET_FLOW || val_kind_marker == SUPERSONIC_INLET) { - - unsigned short tke_position = nDim+2+nDim; - unsigned short omega_position = nDim+2+nDim+1; - - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW || - config->GetMarker_All_KindBC(iMarker) == SUPERSONIC_INLET) && - (config->GetMarker_All_TagBound(iMarker) == val_marker)) { - - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++){ - - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - - if (iPoint == val_inlet_point) { - - /*-- Compute boundary face area for this vertex. ---*/ - - geometry->vertex[iMarker][iVertex]->GetNormal(Normal); - Area = GeometryToolbox::Norm(nDim, Normal); - - /*--- Access and store the inlet variables for this vertex. ---*/ - - val_inlet[tke_position] = Inlet_TurbVars[iMarker][iVertex][0]; - val_inlet[omega_position] = Inlet_TurbVars[iMarker][iVertex][1]; - - /*--- Exit once we find the point. ---*/ - - return Area; - - } - } - } - } - - } - - /*--- If we don't find a match, then the child point is not on the - current inlet boundary marker. Return zero area so this point does - not contribute to the restriction operator and continue. ---*/ - - return Area; - +su2double CTurbSSTSolver::GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const { + const auto tke_position = nDim + 2 + nDim; + const auto omega_position = tke_position + 1; + val_inlet[tke_position] = Inlet_TurbVars[iMarker][iVertex][0]; + val_inlet[omega_position] = Inlet_TurbVars[iMarker][iVertex][1]; + + /*--- Compute boundary face area for this vertex. ---*/ + + su2double Normal[MAXNDIM] = {0.0}; + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + return GeometryToolbox::Norm(nDim, Normal); } void CTurbSSTSolver::SetUniformInlet(const CConfig* config, unsigned short iMarker) { From 956554cd45817f8cdb022683f290183cb7f386aa Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sun, 21 Jul 2024 10:39:33 -0700 Subject: [PATCH 206/287] fix for outputting the example --- SU2_CFD/src/solvers/CSolver.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index d46a15b5a0d..5e039f58331 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -3689,6 +3689,9 @@ void CSolver::LoadInletProfile(CGeometry **geometry, } + /*--- There are no markers of this type. ---*/ + + if (columnNames.empty()) return; /*--- Read the profile data from an ASCII file. ---*/ From ab66e081250baccdedf9586b49c84a00e4132c33 Mon Sep 17 00:00:00 2001 From: emaberman Date: Mon, 22 Jul 2024 12:05:06 +0300 Subject: [PATCH 207/287] update default values and allow backwards compatibility of the code by adding normalized lower limit as SST option --- Common/include/option_structure.hpp | 5 +++++ Common/src/CConfig.cpp | 15 +++++++++++---- SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 18 +++++++++++------- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 9bbe613c4bc..678ad3e6e88 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -990,6 +990,7 @@ enum class SST_OPTIONS { 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. */ + DLL, /*!< \brief Menter k-w SST model with dimensionless lower limit clipping of turbulence variables. */ }; static const MapType SST_Options_Map = { MakePair("NONE", SST_OPTIONS::NONE) @@ -1002,6 +1003,7 @@ static const MapType SST_Options_Map = { MakePair("VORTICITY", SST_OPTIONS::V) MakePair("KATO-LAUNDER", SST_OPTIONS::KL) MakePair("UQ", SST_OPTIONS::UQ) + MakePair("DIMENSIONLESS_LIMIT", SST_OPTIONS::DLL) }; /*! @@ -1013,6 +1015,7 @@ struct SST_ParsedOptions { bool sust = false; /*!< \brief Bool for SST model with sustaining terms. */ bool uq = false; /*!< \brief Bool for using uncertainty quantification. */ bool modified = false; /*!< \brief Bool for modified (m) SST model. */ + bool dll = false; /*!< \brief Bool dimensionless lower limit. */ }; /*! @@ -1048,6 +1051,7 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne const bool sst_v = IsPresent(SST_OPTIONS::V); const bool sst_kl = IsPresent(SST_OPTIONS::KL); const bool sst_uq = IsPresent(SST_OPTIONS::UQ); + const bool sst_dll = IsPresent(SST_OPTIONS::DLL); if (sst_1994 && sst_2003) { SU2_MPI::Error("Two versions (1994 and 2003) selected for SST_OPTIONS. Please choose only one.", CURRENT_FUNCTION); @@ -1071,6 +1075,7 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne SSTParsedOptions.sust = sst_sust; SSTParsedOptions.modified = sst_m; SSTParsedOptions.uq = sst_uq; + SSTParsedOptions.dll = sst_dll; return SSTParsedOptions; } diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 8b99552bcf6..29a893d56d2 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1420,9 +1420,9 @@ void CConfig::SetConfig_Options() { /* DESCRIPTION: */ addDoubleOption("FREESTREAM_NU_FACTOR", NuFactor_FreeStream, 3.0); /* DESCRIPTION: */ - addDoubleOption("LOWER_LIMIT_K_FACTOR", KFactor_LowerLimit, 1.0e-20); + addDoubleOption("LOWER_LIMIT_K_FACTOR", KFactor_LowerLimit, 1.0e-15); /* DESCRIPTION: */ - addDoubleOption("LOWER_LIMIT_OMEGA_FACTOR", OmegaFactor_LowerLimit, 1e-06); + addDoubleOption("LOWER_LIMIT_OMEGA_FACTOR", OmegaFactor_LowerLimit, 1e-05); /* DESCRIPTION: */ addDoubleOption("ENGINE_NU_FACTOR", NuFactor_Engine, 3.0); /* DESCRIPTION: */ @@ -6161,8 +6161,8 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { if (sstParsedOptions.version == SST_OPTIONS::V1994) cout << "-1994"; else cout << "-2003"; if (sstParsedOptions.modified) cout << "m"; - if (sstParsedOptions.sust) cout << " with sustaining terms, and"; - + if (sstParsedOptions.sust) cout << " with sustaining terms,"; + switch (sstParsedOptions.production) { case SST_OPTIONS::KL: cout << " with Kato-Launder production"; @@ -6178,6 +6178,13 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { cout << " with no production modification"; break; } + + if (sstParsedOptions.dll){ + cout << "\nusing non dimensional lower limits relative to infinity values clipping by Coefficients:" ; + cout << " C_w= " << OmegaFactor_LowerLimit << " and C_k= " <GetKFactor_LowerLimit(); su2double Cw = config->GetOmegaFactor_LowerLimit(); /*--- Initialize lower and upper limits---*/ - lowerlimit[0] = Ck * kine_Inf; + if (sstParsedOptions.dll) { + lowerlimit[0] = Ck * kine_Inf; + lowerlimit[1] = Cw * omega_Inf; + } else { + lowerlimit[0] = 1.0e-10; + lowerlimit[1] = 1.0e-4; + } + upperlimit[0] = 1.0e10; - - lowerlimit[1] = Cw * omega_Inf; upperlimit[1] = 1.0e15; - - Solution_Inf[0] = kine_Inf; - Solution_Inf[1] = omega_Inf; - /*--- Eddy viscosity, initialized without stress limiter at the infinity ---*/ muT_Inf = rhoInf*kine_Inf/omega_Inf; From d79dc6dbc10ca443b92baccd8f83743a3f51650b Mon Sep 17 00:00:00 2001 From: Eitan Aberman <139676851+emaberman@users.noreply.github.com> Date: Mon, 22 Jul 2024 12:18:32 +0300 Subject: [PATCH 208/287] Update Common/include/CConfig.hpp add space Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- Common/include/CConfig.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index ce9ba30ac60..d4f94008ddc 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -2011,7 +2011,7 @@ class CConfig { su2double GetNuFactor_FreeStream(void) const { return NuFactor_FreeStream; } /*! - * \brief Get the k constant factor define a lower limit by multiplication with values in SST turbulencemodel. + * \brief Get the k constant factor define a lower limit by multiplication with values in SST turbulence model. * \return Non-dimensionalized freestream intensity. */ su2double GetKFactor_LowerLimit(void) const { return KFactor_LowerLimit; } From 64acfa4f75a20f80b9104e257fc963565f0ec68c Mon Sep 17 00:00:00 2001 From: Eitan Aberman <139676851+emaberman@users.noreply.github.com> Date: Mon, 22 Jul 2024 12:18:57 +0300 Subject: [PATCH 209/287] Update SU2_CFD/src/solvers/CTurbSSTSolver.cpp Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index ce666519214..8c3e726defc 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -97,7 +97,6 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh constants[5] = 0.0828; //beta_2 constants[6] = 0.09; //betaStar constants[7] = 0.31; //a1 - if (sstParsedOptions.version == SST_OPTIONS::V1994){ 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 From cbc71b84e3127c7dbb8767052b288954a1c66196 Mon Sep 17 00:00:00 2001 From: Eitan Aberman <139676851+emaberman@users.noreply.github.com> Date: Mon, 22 Jul 2024 12:19:17 +0300 Subject: [PATCH 210/287] Update SU2_CFD/src/solvers/CTurbSSTSolver.cpp Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index 8c3e726defc..4c546ca7ae8 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -129,7 +129,7 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh su2double Ck = config->GetKFactor_LowerLimit(); su2double Cw = config->GetOmegaFactor_LowerLimit(); - /*--- Initialize lower and upper limits---*/ + /*--- Initialize lower and upper limits. ---*/ if (sstParsedOptions.dll) { lowerlimit[0] = Ck * kine_Inf; lowerlimit[1] = Cw * omega_Inf; From 755a24cc7ca8eb62b4bdc9d81f2e02d3d065f77b Mon Sep 17 00:00:00 2001 From: Eitan Aberman <139676851+emaberman@users.noreply.github.com> Date: Mon, 22 Jul 2024 12:22:32 +0300 Subject: [PATCH 211/287] Update config_template.cfg Update config_template.cfg optins --- config_template.cfg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config_template.cfg b/config_template.cfg index a6188f3cbfc..ecf00315bd8 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -21,7 +21,7 @@ SOLVER= EULER % Specify turbulence model (NONE, SA, SST) KIND_TURB_MODEL= NONE % -% Specify versions/corrections of the SST model (V2003m, V1994m, VORTICITY, KATO_LAUNDER, UQ, SUSTAINING, COMPRESSIBILITY-WILCOX, COMPRESSIBILITY-SARKAR) +% Specify versions/corrections of the SST model (V2003m, V1994m, VORTICITY, KATO_LAUNDER, UQ, SUSTAINING, COMPRESSIBILITY-WILCOX, COMPRESSIBILITY-SARKAR, DIMENSIONLESS_LIMIT) SST_OPTIONS= NONE % % Specify versions/corrections of the SA model (NEGATIVE, EDWARDS, WITHFT2, QCR2000, COMPRESSIBILITY, ROTATION, BCM, EXPERIMENTAL) @@ -1802,8 +1802,8 @@ TIME_DISCRE_TURB= EULER_IMPLICIT CFL_REDUCTION_TURB= 1.0 % Control lower limit constants of the SST model (C*phi_infinity) -LOWER_LIMIT_K_FACTOR= 1e-20 -LOWER_LIMIT_OMEGA_FACTOR= 1e-6 +LOWER_LIMIT_K_FACTOR= 1e-15 +LOWER_LIMIT_OMEGA_FACTOR= 1e-5 % --------------------- HEAT NUMERICAL METHOD DEFINITION ----------------------% % From a7951604cbf3bc61e245e489ff1f3533030741a2 Mon Sep 17 00:00:00 2001 From: emaberman Date: Mon, 22 Jul 2024 12:26:03 +0300 Subject: [PATCH 212/287] fix merge conflicts --- Common/include/option_structure.hpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index f4bb35b2779..c5b7e82f32b 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1063,13 +1063,10 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne const bool sst_v = IsPresent(SST_OPTIONS::V); const bool sst_kl = IsPresent(SST_OPTIONS::KL); const bool sst_uq = IsPresent(SST_OPTIONS::UQ); -<<<<<<< HEAD - const bool sst_dll = IsPresent(SST_OPTIONS::DLL); -======= const bool sst_compWilcox = IsPresent(SST_OPTIONS::COMP_Wilcox); const bool sst_compSarkar = IsPresent(SST_OPTIONS::COMP_Sarkar); ->>>>>>> develop - + const bool sst_dll = IsPresent(SST_OPTIONS::DLL); + if (sst_1994 && sst_2003) { SU2_MPI::Error("Two versions (1994 and 2003) selected for SST_OPTIONS. Please choose only one.", CURRENT_FUNCTION); } else if (sst_2003) { From 4500c424932f2f8286e5a553581b9e3d0b9dadfe Mon Sep 17 00:00:00 2001 From: emaberman Date: Mon, 22 Jul 2024 12:37:41 +0300 Subject: [PATCH 213/287] clear trailing white spaces --- Common/include/option_structure.hpp | 2 +- Common/src/CConfig.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index c5b7e82f32b..308ee22c301 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1066,7 +1066,7 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne const bool sst_compWilcox = IsPresent(SST_OPTIONS::COMP_Wilcox); const bool sst_compSarkar = IsPresent(SST_OPTIONS::COMP_Sarkar); const bool sst_dll = IsPresent(SST_OPTIONS::DLL); - + if (sst_1994 && sst_2003) { SU2_MPI::Error("Two versions (1994 and 2003) selected for SST_OPTIONS. Please choose only one.", CURRENT_FUNCTION); } else if (sst_2003) { diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 9cc50ddc4f9..bf2122f01a7 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -6170,7 +6170,7 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { else cout << "-2003"; if (sstParsedOptions.modified) cout << "m"; if (sstParsedOptions.sust) cout << " with sustaining terms,"; - + switch (sstParsedOptions.production) { case SST_OPTIONS::KL: cout << " with Kato-Launder production"; @@ -6193,12 +6193,12 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { break; } - if (sstParsedOptions.dll){ + if (sstParsedOptions.dll){ cout << "\nusing non dimensional lower limits relative to infinity values clipping by Coefficients:" ; cout << " C_w= " << OmegaFactor_LowerLimit << " and C_k= " < Date: Mon, 22 Jul 2024 12:56:35 +0300 Subject: [PATCH 214/287] fix merge mishaps --- Common/include/option_structure.hpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 308ee22c301..4c4287ad7c4 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -990,12 +990,9 @@ enum class SST_OPTIONS { 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. */ -<<<<<<< HEAD - DLL, /*!< \brief Menter k-w SST model with dimensionless lower limit clipping of turbulence variables. */ -======= 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. */ ->>>>>>> develop + DLL, /*!< \brief Menter k-w SST model with dimensionless lower limit clipping of turbulence variables. */ }; static const MapType SST_Options_Map = { MakePair("NONE", SST_OPTIONS::NONE) @@ -1008,12 +1005,9 @@ static const MapType SST_Options_Map = { MakePair("VORTICITY", SST_OPTIONS::V) MakePair("KATO-LAUNDER", SST_OPTIONS::KL) MakePair("UQ", SST_OPTIONS::UQ) -<<<<<<< HEAD - MakePair("DIMENSIONLESS_LIMIT", SST_OPTIONS::DLL) -======= MakePair("COMPRESSIBILITY-WILCOX", SST_OPTIONS::COMP_Wilcox) MakePair("COMPRESSIBILITY-SARKAR", SST_OPTIONS::COMP_Sarkar) ->>>>>>> develop + MakePair("DIMENSIONLESS_LIMIT", SST_OPTIONS::DLL) }; /*! @@ -1098,12 +1092,10 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne SSTParsedOptions.sust = sst_sust; SSTParsedOptions.modified = sst_m; SSTParsedOptions.uq = sst_uq; -<<<<<<< HEAD - SSTParsedOptions.dll = sst_dll; -======= SSTParsedOptions.compWilcox = sst_compWilcox; SSTParsedOptions.compSarkar = sst_compSarkar; ->>>>>>> develop + SSTParsedOptions.dll = sst_dll; + return SSTParsedOptions; } From de4098779650385a25fc60f01901e83535ce0f01 Mon Sep 17 00:00:00 2001 From: emaberman Date: Mon, 22 Jul 2024 13:02:20 +0300 Subject: [PATCH 215/287] fix spaces --- Common/include/option_structure.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 4c4287ad7c4..64c781a34f8 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1095,7 +1095,7 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne SSTParsedOptions.compWilcox = sst_compWilcox; SSTParsedOptions.compSarkar = sst_compSarkar; SSTParsedOptions.dll = sst_dll; - + return SSTParsedOptions; } From 77fed34f6b5c3a587b8e730449e873cf88f965f8 Mon Sep 17 00:00:00 2001 From: Nijso Date: Sun, 4 Aug 2024 22:07:25 +0200 Subject: [PATCH 216/287] Correction of symmetry plane implementation (#2194) * Correct symmetry plane and Euler wall * Correct gradients for symmetry plane and Euler wall --------- Co-authored-by: Pedro Gomes Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- Common/include/geometry/CGeometry.hpp | 24 +- .../include/geometry/CMultiGridGeometry.hpp | 3 +- Common/include/geometry/CPhysicalGeometry.hpp | 9 +- Common/include/geometry/dual_grid/CPoint.hpp | 8 +- .../meshreader/CCGNSMeshReaderFVM.hpp | 9 +- Common/src/geometry/CGeometry.cpp | 182 +++----- Common/src/geometry/CMultiGridGeometry.cpp | 121 ++++-- Common/src/geometry/CPhysicalGeometry.cpp | 8 +- .../src/grid_movement/CVolumetricMovement.cpp | 2 +- .../gradients/computeGradientsGreenGauss.hpp | 139 +++--- .../computeGradientsLeastSquares.hpp | 20 +- .../gradients/correctGradientsSymmetry.hpp | 146 +++++++ .../include/solvers/CFVMFlowSolverBase.hpp | 4 + .../include/solvers/CFVMFlowSolverBase.inl | 323 +++++--------- SU2_CFD/include/solvers/CScalarSolver.inl | 10 +- SU2_CFD/include/solvers/CSolver.hpp | 6 +- SU2_CFD/include/variables/CEulerVariable.hpp | 4 +- SU2_CFD/include/variables/CVariable.hpp | 10 + SU2_CFD/src/drivers/CDriver.cpp | 16 +- SU2_CFD/src/integration/CIntegration.cpp | 15 +- SU2_CFD/src/numerics/flow/convection/fds.cpp | 2 +- SU2_CFD/src/numerics/flow/convection/roe.cpp | 2 +- SU2_CFD/src/solvers/CAdjEulerSolver.cpp | 10 +- SU2_CFD/src/solvers/CAdjNSSolver.cpp | 14 +- SU2_CFD/src/solvers/CAdjTurbSolver.cpp | 8 +- SU2_CFD/src/solvers/CNEMONSSolver.cpp | 2 +- SU2_CFD/src/solvers/CRadP1Solver.cpp | 10 +- SU2_CFD/src/solvers/CSolver.cpp | 15 +- SU2_CFD/src/solvers/CTransLMSolver.cpp | 4 +- SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 4 +- TestCases/TestCase.py | 2 +- .../naca0012/of_grad_cd.dat.ref | 76 ++-- .../naca0012/of_grad_cd_disc.dat.ref | 76 ++-- .../naca0012/of_grad_directdiff.dat.ref | 6 +- .../wedge/of_grad_combo.dat.ref | 8 +- .../disc_adj_fsi/dyn_fsi/grad_dv.opt.ref | 16 +- TestCases/disc_adj_heat/disc_adj_heat.cfg | 2 +- TestCases/euler/bluntbody/blunt.cfg | 2 +- TestCases/euler/channel/inv_channel_RK.cfg | 2 +- TestCases/euler/naca0012/inv_NACA0012_Roe.cfg | 8 +- TestCases/euler/wedge/inv_wedge_HLLC.cfg | 2 +- TestCases/fixed_cl/naca0012/inv_NACA0012.cfg | 12 +- .../lam_prem_ch4_cfd.cfg | 13 +- .../lam_prem_ch4_cht_cfd_fluid.cfg | 7 +- .../lam_prem_ch4_cht_cfd_master.cfg | 2 +- TestCases/hybrid_regression.py | 90 ++-- TestCases/hybrid_regression_AD.py | 22 +- .../incomp_euler/naca0012/incomp_NACA0012.cfg | 8 +- TestCases/incomp_euler/nozzle/inv_nozzle.cfg | 6 +- .../incomp_navierstokes/sphere/sphere.cfg | 104 +++++ .../chtPinArray_2d/of_grad_findiff.csv.ref | 2 +- .../chtPinArray_3d/configMaster.cfg | 2 +- .../multiple_ffd/naca0012/of_grad_cd.dat.ref | 4 +- .../naca0012/of_grad_directdiff.dat.ref | 4 +- .../navierstokes/cylinder/lam_cylinder.cfg | 2 +- .../navierstokes/flatplate/lam_flatplate.cfg | 12 +- TestCases/nicf/edge/edge_PPR.cfg | 15 +- TestCases/nicf/edge/edge_VW.cfg | 16 +- TestCases/parallel_regression.py | 220 +++++----- TestCases/parallel_regression_AD.py | 24 +- .../translating_NACA0012/config.cfg | 20 +- .../translating_NACA0012/forces_0.csv.ref | 400 +++++++++--------- .../forces_0.csv.ref | 400 +++++++++--------- TestCases/rotating/naca0012/rot_NACA0012.cfg | 2 +- TestCases/serial_regression.py | 172 ++++---- TestCases/serial_regression_AD.py | 30 +- ...iveVenturi_mixingmodel_heatcapacity_H2.cfg | 2 +- ...Venturi_mixingmodel_heatcapacity_H2_ND.cfg | 6 +- TestCases/tutorials.py | 40 +- .../user_defined_functions/lam_flatplate.cfg | 2 +- TestCases/vandv.py | 18 +- UnitTests/SU2_CFD/gradients.cpp | 4 +- 72 files changed, 1560 insertions(+), 1431 deletions(-) create mode 100644 SU2_CFD/include/gradients/correctGradientsSymmetry.hpp create mode 100644 TestCases/incomp_navierstokes/sphere/sphere.cfg diff --git a/Common/include/geometry/CGeometry.hpp b/Common/include/geometry/CGeometry.hpp index 582679ca6af..015aaf1fdc2 100644 --- a/Common/include/geometry/CGeometry.hpp +++ b/Common/include/geometry/CGeometry.hpp @@ -240,8 +240,10 @@ class CGeometry { unsigned long* nVertex{nullptr}; /*!< \brief Number of vertex for each marker. */ unsigned long* nElem_Bound{nullptr}; /*!< \brief Number of elements of the boundary. */ string* Tag_to_Marker{nullptr}; /*!< \brief Names of boundary markers. */ - vector - bound_is_straight; /*!< \brief Bool if boundary-marker is straight(2D)/plane(3D) for each local marker. */ + + /*!< \brief Corrected normals on nodes with shared symmetry markers. */ + vector>> symmetryNormals; + vector SurfaceAreaCfgFile; /*!< \brief Total Surface area for all markers. */ /*--- Partitioning-specific variables ---*/ @@ -819,6 +821,12 @@ class CGeometry { */ inline virtual void SetBoundControlVolume(const CConfig* config, unsigned short action) {} + /*! + * \brief Computes modified normals at intersecting symmetry planes. + * \param[in] config - Definition of the particular problem. + */ + void ComputeModifiedSymmetryNormals(const CConfig* config); + /*! * \brief A virtual member. * \param[in] config_filename - Name of the file where the tecplot information is going to be stored. @@ -936,9 +944,10 @@ class CGeometry { /*! * \brief A virtual member. * \param[in] fine_grid - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. * \param[in] action - Allocate or not the new elements. */ - inline virtual void SetBoundControlVolume(const CGeometry* fine_grid, unsigned short action) {} + inline virtual void SetBoundControlVolume(const CGeometry* fine_grid, const CConfig* config, unsigned short action) {} /*! * \brief A virtual member. @@ -1005,15 +1014,6 @@ class CGeometry { */ su2double GetSurfaceArea(const CConfig* config, unsigned short val_marker) const; - /*! - * \brief Check if a boundary is straight(2D) / plane(3D) for EULER_WALL and SYMMETRY_PLANE - * only and store the information in bound_is_straight. For all other boundary types - * this will return false and could therfore be wrong. Used ultimately for BC_Slip_Wall. - * \param[in] config - Definition of the particular problem. - * \param[in] print_on_screen - Boolean whether to print result on screen. - */ - void ComputeSurf_Straightness(CConfig* config, bool print_on_screen); - /*! * \brief Find and store all vertices on a sharp corner in the geometry. * \param[in] config - Definition of the particular problem. diff --git a/Common/include/geometry/CMultiGridGeometry.hpp b/Common/include/geometry/CMultiGridGeometry.hpp index 1a7f7f9ab58..541aaa88d6d 100644 --- a/Common/include/geometry/CMultiGridGeometry.hpp +++ b/Common/include/geometry/CMultiGridGeometry.hpp @@ -104,9 +104,10 @@ class CMultiGridGeometry final : public CGeometry { /*! * \brief Set boundary vertex structure of the agglomerated control volume. * \param[in] fine_grid - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. * \param[in] action - Allocate or not the new elements. */ - void SetBoundControlVolume(const CGeometry* fine_grid, unsigned short action) override; + void SetBoundControlVolume(const CGeometry* fine_grid, const CConfig* config, unsigned short action) override; /*! * \brief Set a representative coordinates of the agglomerated control volume. diff --git a/Common/include/geometry/CPhysicalGeometry.hpp b/Common/include/geometry/CPhysicalGeometry.hpp index 10e781cb85e..070bf015ab8 100644 --- a/Common/include/geometry/CPhysicalGeometry.hpp +++ b/Common/include/geometry/CPhysicalGeometry.hpp @@ -208,10 +208,13 @@ class CPhysicalGeometry final : public CGeometry { * \brief Routine to launch non-blocking sends and recvs amongst all processors. * \param[in] bufSend - Buffer of data to be sent. * \param[in] nElemSend - Array containing the number of elements to send to other processors in cumulative storage - * format. \param[in] sendReq - Array of MPI send requests. \param[in] bufRecv - Buffer of data to be received. + * format. + * \param[in] sendReq - Array of MPI send requests. + * \param[in] bufRecv - Buffer of data to be received. * \param[in] nElemSend - Array containing the number of elements to receive from other processors in cumulative - * storage format. \param[in] sendReq - Array of MPI recv requests. \param[in] countPerElem - Pieces of data per - * element communicated. + * storage format. + * \param[in] sendReq - Array of MPI recv requests. + * \param[in] countPerElem - Pieces of data per element communicated. */ void InitiateCommsAll(void* bufSend, const int* nElemSend, SU2_MPI::Request* sendReq, void* bufRecv, const int* nElemRecv, SU2_MPI::Request* recvReq, unsigned short countPerElem, diff --git a/Common/include/geometry/dual_grid/CPoint.hpp b/Common/include/geometry/dual_grid/CPoint.hpp index 9c73fdeaa9a..c297b1b5df9 100644 --- a/Common/include/geometry/dual_grid/CPoint.hpp +++ b/Common/include/geometry/dual_grid/CPoint.hpp @@ -314,10 +314,8 @@ class CPoint { * \return Index of the vertex. */ inline long GetVertex(unsigned long iPoint, unsigned long iMarker) const { - if (Boundary(iPoint)) - return Vertex[iPoint][iMarker]; - else - return -1; + if (Boundary(iPoint)) return Vertex[iPoint][iMarker]; + return -1; } /*! @@ -369,7 +367,7 @@ class CPoint { inline bool GetPhysicalBoundary(unsigned long iPoint) const { return PhysicalBoundary(iPoint); } /*! - * \brief Set if a point belong to the boundary. + * \brief Set if a point belong to the solid wall boundary. * \param[in] iPoint - Index of the point. * \param[in] boundary - TRUE if the point belong to the physical boundary; otherwise FALSE. */ diff --git a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp index 7ef5ef88206..3b072222d41 100644 --- a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp @@ -121,10 +121,13 @@ class CCGNSMeshReaderFVM : public CMeshReaderFVM { * \brief Routine to launch non-blocking sends and recvs amongst all processors. * \param[in] bufSend - Buffer of data to be sent. * \param[in] nElemSend - Array containing the number of elements to send to other processors in cumulative storage - * format. \param[in] sendReq - Array of MPI send requests. \param[in] bufRecv - Buffer of data to be received. + * format. + * \param[in] sendReq - Array of MPI send requests. + * \param[in] bufRecv - Buffer of data to be received. * \param[in] nElemSend - Array containing the number of elements to receive from other processors in cumulative - * storage format. \param[in] sendReq - Array of MPI recv requests. \param[in] countPerElem - Pieces of data per - * element communicated. + * storage format. + * \param[in] sendReq - Array of MPI recv requests. + * \param[in] countPerElem - Pieces of data per element communicated. */ void InitiateCommsAll(void* bufSend, const int* nElemSend, SU2_MPI::Request* sendReq, void* bufRecv, const int* nElemRecv, SU2_MPI::Request* recvReq, unsigned short countPerElem, diff --git a/Common/src/geometry/CGeometry.cpp b/Common/src/geometry/CGeometry.cpp index bbdbb0316d0..b1c77372141 100644 --- a/Common/src/geometry/CGeometry.cpp +++ b/Common/src/geometry/CGeometry.cpp @@ -2338,7 +2338,7 @@ void CGeometry::UpdateGeometry(CGeometry** geometry_container, CConfig* config) /*--- Update the control volume structures ---*/ geometry_container[iMesh]->SetControlVolume(geometry_container[iMesh - 1], UPDATE); - geometry_container[iMesh]->SetBoundControlVolume(geometry_container[iMesh - 1], UPDATE); + geometry_container[iMesh]->SetBoundControlVolume(geometry_container[iMesh - 1], config, UPDATE); geometry_container[iMesh]->SetCoord(geometry_container[iMesh - 1]); } @@ -2453,123 +2453,71 @@ su2double CGeometry::GetSurfaceArea(const CConfig* config, unsigned short val_ma return 0.0; } -void CGeometry::ComputeSurf_Straightness(CConfig* config, bool print_on_screen) { - bool RefUnitNormal_defined; - unsigned short iDim, iMarker, iMarker_Global, nMarker_Global = config->GetnMarker_CfgFile(); - unsigned long iVertex; - constexpr passivedouble epsilon = 1.0e-6; - su2double Area; - string Local_TagBound, Global_TagBound; - - vector Normal(nDim), UnitNormal(nDim), RefUnitNormal(nDim); - - /*--- Assume now that this boundary marker is straight. As soon as one - AreaElement is found that is not aligend with a Reference then it is - certain that the boundary marker is not straight and one can stop - searching. Another possibility is that this process doesn't own - any nodes of that boundary, in that case we also have to assume the - boundary is straight. - Any boundary type other than SYMMETRY_PLANE or EULER_WALL gets - the value false (or see cases specified in the conditional below) - which could be wrong. ---*/ - bound_is_straight.resize(nMarker); - fill(bound_is_straight.begin(), bound_is_straight.end(), true); - - /*--- Loop over all local markers ---*/ - for (iMarker = 0; iMarker < nMarker; iMarker++) { - Local_TagBound = config->GetMarker_All_TagBound(iMarker); - - /*--- Marker has to be Symmetry or Euler. Additionally marker can't be a - moving surface and Grid Movement Elasticity is forbidden as well. All - other GridMovements are rigid. ---*/ - if ((config->GetMarker_All_KindBC(iMarker) == SYMMETRY_PLANE || - config->GetMarker_All_KindBC(iMarker) == EULER_WALL) && - !config->GetMarker_Moving_Bool(Local_TagBound) && !config->GetMarker_Deform_Mesh_Bool(Local_TagBound)) { - /*--- Loop over all global markers, and find the local-global pair via - matching unique string tags. ---*/ - for (iMarker_Global = 0; iMarker_Global < nMarker_Global; iMarker_Global++) { - Global_TagBound = config->GetMarker_CfgFile_TagBound(iMarker_Global); - if (Local_TagBound == Global_TagBound) { - RefUnitNormal_defined = false; - iVertex = 0; - - while (bound_is_straight[iMarker] && iVertex < nVertex[iMarker]) { - vertex[iMarker][iVertex]->GetNormal(Normal.data()); - UnitNormal = Normal; - - /*--- Compute unit normal. ---*/ - Area = 0.0; - for (iDim = 0; iDim < nDim; iDim++) Area += Normal[iDim] * Normal[iDim]; - Area = sqrt(Area); - - /*--- Negate for outward convention. ---*/ - for (iDim = 0; iDim < nDim; iDim++) UnitNormal[iDim] /= -Area; - - /*--- Check if unit normal is within tolerance of the Reference unit normal. - Reference unit normal = first unit normal found. ---*/ - if (RefUnitNormal_defined) { - for (iDim = 0; iDim < nDim; iDim++) { - if (abs(RefUnitNormal[iDim] - UnitNormal[iDim]) > epsilon) { - bound_is_straight[iMarker] = false; - break; - } - } - } else { - RefUnitNormal = UnitNormal; // deep copy of values - RefUnitNormal_defined = true; - } +void CGeometry::ComputeModifiedSymmetryNormals(const CConfig* config) { + /* Check how many symmetry planes there are and use the first (lowest ID) as the basis to orthogonalize against. + * All nodes that are shared by multiple symmetries have to get a corrected normal. */ + symmetryNormals.resize(nMarker); + std::vector symMarkers; - iVertex++; - } // while iVertex - } // if Local == Global - } // for iMarker_Global - } else { - /*--- Enforce default value: false ---*/ - bound_is_straight[iMarker] = false; - } // if sym or euler ... - } // for iMarker - - /*--- Communicate results and print on screen. ---*/ - if (print_on_screen) { - /*--- Additional vector which can later be MPI::Allreduce(d) to pring the results - on screen as nMarker (local) can vary across ranks. Default 'true' as it can - happen that a local rank does not contain an element of each surface marker. ---*/ - vector bound_is_straight_Global(nMarker_Global, true); - /*--- Match local with global tag bound and fill a Global Marker vector. ---*/ - for (iMarker = 0; iMarker < nMarker; iMarker++) { - Local_TagBound = config->GetMarker_All_TagBound(iMarker); - for (iMarker_Global = 0; iMarker_Global < nMarker_Global; iMarker_Global++) { - Global_TagBound = config->GetMarker_CfgFile_TagBound(iMarker_Global); - - if (Local_TagBound == Global_TagBound) bound_is_straight_Global[iMarker_Global] = bound_is_straight[iMarker]; - - } // for iMarker_Global - } // for iMarker - - vector Buff_Send_isStraight(nMarker_Global), Buff_Recv_isStraight(nMarker_Global); - - /*--- Cast to int as std::vector can be a special construct. MPI handling using - is more straight-forward. ---*/ - for (iMarker_Global = 0; iMarker_Global < nMarker_Global; iMarker_Global++) - Buff_Send_isStraight[iMarker_Global] = static_cast(bound_is_straight_Global[iMarker_Global]); - - /*--- Product of type (bool) is equivalnt to a 'logical and' ---*/ - SU2_MPI::Allreduce(Buff_Send_isStraight.data(), Buff_Recv_isStraight.data(), nMarker_Global, MPI_INT, MPI_PROD, - SU2_MPI::GetComm()); - - /*--- Print results on screen. ---*/ - if (rank == MASTER_NODE) { - for (iMarker_Global = 0; iMarker_Global < nMarker_Global; iMarker_Global++) { - if (config->GetMarker_CfgFile_KindBC(config->GetMarker_CfgFile_TagBound(iMarker_Global)) == SYMMETRY_PLANE || - config->GetMarker_CfgFile_KindBC(config->GetMarker_CfgFile_TagBound(iMarker_Global)) == EULER_WALL) { - cout << "Boundary marker " << config->GetMarker_CfgFile_TagBound(iMarker_Global) << " is"; - if (!static_cast(Buff_Recv_isStraight[iMarker_Global])) cout << " NOT"; - if (nDim == 2) cout << " a single straight." << endl; - if (nDim == 3) cout << " a single plane." << endl; - } // if sym or euler - } // for iMarker_Global - } // if rank==MASTER - } // if print_on_scren + for (auto iMarker = 0u; iMarker < nMarker; ++iMarker) { + if ((config->GetMarker_All_KindBC(iMarker) == SYMMETRY_PLANE) || + (config->GetMarker_All_KindBC(iMarker) == EULER_WALL)) { + symMarkers.push_back(iMarker); + } + } + + /*--- Loop over all markers and find nodes on symmetry planes that are shared with other symmetries. ---*/ + /*--- The first symmetry does not need a corrected normal vector, hence start at 1. ---*/ + for (size_t i = 1; i < symMarkers.size(); ++i) { + const auto iMarker = symMarkers[i]; + + for (auto iVertex = 0ul; iVertex < nVertex[iMarker]; iVertex++) { + const auto iPoint = vertex[iMarker][iVertex]->GetNode(); + + /*--- Halo points do not need to be considered. ---*/ + if (!nodes->GetDomain(iPoint)) continue; + + /*--- Get the vertex normal on the current symmetry. ---*/ + std::array iNormal = {}; + vertex[iMarker][iVertex]->GetNormal(iNormal.data()); + + /*--- Loop over previous symmetries and if this point shares them, make this normal orthogonal to them. ---*/ + bool isShared = false; + + for (size_t j = 0; j < i; ++j) { + const auto jMarker = symMarkers[j]; + const auto jVertex = nodes->GetVertex(iPoint, jMarker); + if (jVertex < 0) continue; + + isShared = true; + + std::array jNormal = {}; + const auto it = symmetryNormals[jMarker].find(jVertex); + + if (it != symmetryNormals[jMarker].end()) { + jNormal = it->second; + } else { + vertex[jMarker][jVertex]->GetNormal(jNormal.data()); + const su2double area = GeometryToolbox::Norm(nDim, jNormal.data()); + for (auto iDim = 0u; iDim < nDim; iDim++) jNormal[iDim] /= area; + } + + const auto proj = GeometryToolbox::DotProduct(nDim, jNormal.data(), iNormal.data()); + for (auto iDim = 0u; iDim < nDim; iDim++) iNormal[iDim] -= proj * jNormal[iDim]; + } + + if (!isShared) continue; + + /*--- Normalize. If the norm is close to zero it means the normal is a linear combination of previous + * normals, in this case we don't need to store the corrected normal, using the original in the gradient + * correction will have no effect since previous corrections will remove components in this direction). ---*/ + const su2double area = GeometryToolbox::Norm(nDim, iNormal.data()); + if (area > EPS) { + for (auto iDim = 0u; iDim < nDim; iDim++) iNormal[iDim] /= area; + symmetryNormals[iMarker][iVertex] = iNormal; + } + } + } } void CGeometry::ComputeSurf_Curvature(CConfig* config) { diff --git a/Common/src/geometry/CMultiGridGeometry.cpp b/Common/src/geometry/CMultiGridGeometry.cpp index 5ae064d778f..00cc4ebf009 100644 --- a/Common/src/geometry/CMultiGridGeometry.cpp +++ b/Common/src/geometry/CMultiGridGeometry.cpp @@ -108,17 +108,27 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry* fine_grid, CConfig* config, un This can be improved. If there is only a marker, it is a good candidate for agglomeration ---*/ - if (counter == 1) agglomerate_seed = true; + if (counter == 1) { + agglomerate_seed = true; - /*--- If there are two markers, we will aglomerate if any of the + /*--- Euler walls can be curved and agglomerating them leads to difficulties ---*/ + if (config->GetMarker_All_KindBC(marker_seed) == EULER_WALL) agglomerate_seed = false; + } + /*--- If there are two markers, we will agglomerate if any of the markers is SEND_RECEIVE ---*/ if (counter == 2) { agglomerate_seed = (config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) || (config->GetMarker_All_KindBC(copy_marker[1]) == SEND_RECEIVE); + + /* --- Euler walls can also not be agglomerated when the point has 2 markers ---*/ + if ((config->GetMarker_All_KindBC(copy_marker[0]) == EULER_WALL) || + (config->GetMarker_All_KindBC(copy_marker[1]) == EULER_WALL)) { + agglomerate_seed = false; + } } - /*--- If there are more than 2 markers, the aglomeration will be discarted ---*/ + /*--- If there are more than 2 markers, the aglomeration will be discarded ---*/ if (counter > 2) agglomerate_seed = false; @@ -220,7 +230,7 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry* fine_grid, CConfig* config, un const auto iPoint = MGQueue_InnerCV.NextCV(); iteration++; - /*--- If the element has not being previously agglomerated, belongs to the physical domain, + /*--- If the element has not been previously agglomerated, belongs to the physical domain, and satisfies several geometrical criteria then the seed CV is accepted for agglomeration. ---*/ if ((!fine_grid->nodes->GetAgglomerate(iPoint)) && (fine_grid->nodes->GetDomain(iPoint)) && @@ -438,7 +448,6 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry* fine_grid, CConfig* config, un /*--- Be careful, it is possible that a node changes the agglomeration configuration, the priority is always when receiving the information. ---*/ - fine_grid->nodes->SetParent_CV(iPoint_Fine, iPoint_Coarse); nodes->SetChildren_CV(iPoint_Coarse, nChildren_MPI[iPoint_Coarse], iPoint_Fine); nChildren_MPI[iPoint_Coarse]++; @@ -501,7 +510,7 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark const CConfig* config) const { bool agglomerate_CV = false; - /*--- Basic condition, the point has not being previously agglomerated, it belongs to the domain, + /*--- Basic condition, the point has not been previously agglomerated, it belongs to the domain, and has passed some basic geometrical checks. ---*/ if ((!fine_grid->nodes->GetAgglomerate(CVPoint)) && (fine_grid->nodes->GetDomain(CVPoint)) && @@ -511,6 +520,7 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark if (fine_grid->nodes->GetBoundary(CVPoint)) { /*--- Identify the markers of the vertex that we want to agglomerate ---*/ + // count number of markers on the agglomeration candidate int counter = 0; unsigned short copy_marker[3] = {}; for (auto jMarker = 0u; jMarker < fine_grid->GetnMarker() && counter < 3; jMarker++) { @@ -526,13 +536,22 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark /*--- Only one marker in the vertex that is going to be aglomerated ---*/ if (counter == 1) { - /*--- We agglomerate if there is only a marker and is the same marker as the seed marker ---*/ - + /*--- We agglomerate if there is only one marker and it is the same marker as the seed marker ---*/ + // note that this should be the same marker id, not just the same marker type if (copy_marker[0] == marker_seed) agglomerate_CV = true; /*--- If there is only one marker, but the marker is the SEND_RECEIVE ---*/ - if (config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) agglomerate_CV = true; + if (config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) { + agglomerate_CV = true; + } + + if ((config->GetMarker_All_KindBC(marker_seed) == SYMMETRY_PLANE) || + (config->GetMarker_All_KindBC(marker_seed) == EULER_WALL)) { + if (config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) { + agglomerate_CV = false; + } + } } /*--- If there are two markers in the vertex that is going to be aglomerated ---*/ @@ -541,20 +560,25 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark /*--- First we verify that the seed is a physical boundary ---*/ if (config->GetMarker_All_KindBC(marker_seed) != SEND_RECEIVE) { - /*--- Then we check that one of the marker is equal to the seed marker, and the other is send/receive ---*/ + /*--- Then we check that one of the markers is equal to the seed marker, and the other is send/receive ---*/ if (((copy_marker[0] == marker_seed) && (config->GetMarker_All_KindBC(copy_marker[1]) == SEND_RECEIVE)) || - ((config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) && (copy_marker[1] == marker_seed))) + ((config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) && (copy_marker[1] == marker_seed))) { agglomerate_CV = true; + } } } - } - - /*--- If the element belongs to the domain, it is allways aglomerated. ---*/ - + /*--- If the element belongs to the domain, it is always agglomerated. ---*/ else { agglomerate_CV = true; + + // actually, for symmetry (and possibly other cells) we only agglomerate cells that are on the marker + // at this point, the seed was on the boundary and the CV was not. so we check if the seed is a symmetry + if ((config->GetMarker_All_KindBC(marker_seed) == SYMMETRY_PLANE) || + (config->GetMarker_All_KindBC(marker_seed) == EULER_WALL)) { + agglomerate_CV = false; + } } } @@ -900,44 +924,47 @@ void CMultiGridGeometry::SetControlVolume(const CGeometry* fine_grid, unsigned s END_SU2_OMP_SAFE_GLOBAL_ACCESS } -void CMultiGridGeometry::SetBoundControlVolume(const CGeometry* fine_grid, unsigned short action) { - BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { - unsigned long iCoarsePoint, iFinePoint, FineVertex, iVertex; - unsigned short iMarker, iChildren, iDim; - su2double *Normal, Area, *NormalFace = nullptr; - - Normal = new su2double[nDim]; +void CMultiGridGeometry::SetBoundControlVolume(const CGeometry* fine_grid, const CConfig* config, + unsigned short action) { + unsigned long iCoarsePoint, iFinePoint, FineVertex, iVertex; + su2double Normal[MAXNDIM] = {0.0}, Area, *NormalFace = nullptr; - if (action != ALLOCATE) { - for (iMarker = 0; iMarker < nMarker; iMarker++) - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) vertex[iMarker][iVertex]->SetZeroValues(); - } + if (action != ALLOCATE) { + SU2_OMP_FOR_DYN(1) + for (auto iMarker = 0; iMarker < nMarker; iMarker++) + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) vertex[iMarker][iVertex]->SetZeroValues(); + END_SU2_OMP_FOR + } - for (iMarker = 0; iMarker < nMarker; iMarker++) - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { - iCoarsePoint = vertex[iMarker][iVertex]->GetNode(); - for (iChildren = 0; iChildren < nodes->GetnChildren_CV(iCoarsePoint); iChildren++) { - iFinePoint = nodes->GetChildren_CV(iCoarsePoint, iChildren); - if (fine_grid->nodes->GetVertex(iFinePoint, iMarker) != -1) { - FineVertex = fine_grid->nodes->GetVertex(iFinePoint, iMarker); - fine_grid->vertex[iMarker][FineVertex]->GetNormal(Normal); - vertex[iMarker][iVertex]->AddNormal(Normal); - } + SU2_OMP_FOR_DYN(1) + for (auto iMarker = 0; iMarker < nMarker; iMarker++) { + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { + iCoarsePoint = vertex[iMarker][iVertex]->GetNode(); + for (auto iChildren = 0; iChildren < nodes->GetnChildren_CV(iCoarsePoint); iChildren++) { + iFinePoint = nodes->GetChildren_CV(iCoarsePoint, iChildren); + if (fine_grid->nodes->GetVertex(iFinePoint, iMarker) != -1) { + FineVertex = fine_grid->nodes->GetVertex(iFinePoint, iMarker); + fine_grid->vertex[iMarker][FineVertex]->GetNormal(Normal); + vertex[iMarker][iVertex]->AddNormal(Normal); } } + } + } + END_SU2_OMP_FOR - delete[] Normal; - - /*--- Check if there is a normal with null area ---*/ - for (iMarker = 0; iMarker < nMarker; iMarker++) - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { - NormalFace = vertex[iMarker][iVertex]->GetNormal(); - Area = GeometryToolbox::Norm(nDim, NormalFace); - if (Area == 0.0) - for (iDim = 0; iDim < nDim; iDim++) NormalFace[iDim] = EPS * EPS; - } + /*--- Check if there is a normal with null area ---*/ + SU2_OMP_FOR_DYN(1) + for (auto iMarker = 0; iMarker < nMarker; iMarker++) { + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { + NormalFace = vertex[iMarker][iVertex]->GetNormal(); + Area = GeometryToolbox::Norm(nDim, NormalFace); + if (Area == 0.0) + for (auto iDim = 0; iDim < nDim; iDim++) NormalFace[iDim] = EPS * EPS; + } } - END_SU2_OMP_SAFE_GLOBAL_ACCESS + END_SU2_OMP_FOR + + SU2_OMP_SAFE_GLOBAL_ACCESS(ComputeModifiedSymmetryNormals(config);) } void CMultiGridGeometry::SetCoord(const CGeometry* fine_grid) { diff --git a/Common/src/geometry/CPhysicalGeometry.cpp b/Common/src/geometry/CPhysicalGeometry.cpp index 29f10a492b3..a069424c666 100644 --- a/Common/src/geometry/CPhysicalGeometry.cpp +++ b/Common/src/geometry/CPhysicalGeometry.cpp @@ -4124,7 +4124,7 @@ void CPhysicalGeometry::Check_IntElem_Orientation(const CConfig* config) { if (tria_flip + quad_flip + tet_flip + hexa_flip + pyram_flip + prism_flip + quad_error + pyram_error + prism_error + hexa_error == 0) { - cout << "All volume elements are correctly orientend." << endl; + cout << "All volume elements are correctly oriented." << endl; } } } @@ -4260,7 +4260,7 @@ void CPhysicalGeometry::Check_BoundElem_Orientation(const CConfig* config) { } if (line_flip + tria_flip + quad_flip + quad_error == 0) { - cout << "All surface elements are correctly orientend." << endl; + cout << "All surface elements are correctly oriented." << endl; } } } @@ -7283,6 +7283,8 @@ void CPhysicalGeometry::SetBoundControlVolume(const CConfig* config, unsigned sh } } END_SU2_OMP_FOR + + SU2_OMP_SAFE_GLOBAL_ACCESS(ComputeModifiedSymmetryNormals(config);) } void CPhysicalGeometry::VisualizeControlVolume(const CConfig* config) const { @@ -9558,7 +9560,7 @@ su2double CPhysicalGeometry::Compute_Length(su2double* Plane_P0, su2double* Plan su2double DeltaZ, DeltaX; /*--- Not that in a symmetry plane configuration there is an extra edge that connects - the two extremes, and we really don't now the curve orientation. We will evaluate + the two extremes, and we really don't know the curve orientation. We will evaluate both distance and picked the smallest one ---*/ Length_Value = 0.0; diff --git a/Common/src/grid_movement/CVolumetricMovement.cpp b/Common/src/grid_movement/CVolumetricMovement.cpp index a3f91fa36c1..efd2a6f2b74 100644 --- a/Common/src/grid_movement/CVolumetricMovement.cpp +++ b/Common/src/grid_movement/CVolumetricMovement.cpp @@ -98,7 +98,7 @@ void CVolumetricMovement::UpdateMultiGrid(CGeometry** geometry, CConfig* config) for (iMGlevel = 1; iMGlevel <= nMGlevel; iMGlevel++) { iMGfine = iMGlevel - 1; geometry[iMGlevel]->SetControlVolume(geometry[iMGfine], UPDATE); - geometry[iMGlevel]->SetBoundControlVolume(geometry[iMGfine], UPDATE); + geometry[iMGlevel]->SetBoundControlVolume(geometry[iMGfine], config, UPDATE); geometry[iMGlevel]->SetCoord(geometry[iMGfine]); if (config->GetGrid_Movement()) geometry[iMGlevel]->SetRestricted_GridVelocity(geometry[iMGfine]); } diff --git a/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp b/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp index 5d0abbb8537..f03668cafa1 100644 --- a/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp +++ b/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp @@ -27,7 +27,12 @@ * License along with SU2. If not, see . */ +#include +#include + #include "../../../Common/include/parallelization/omp_structure.hpp" +#include "../../../Common/include/toolboxes/geometry_toolbox.hpp" +#include "correctGradientsSymmetry.hpp" namespace detail { @@ -49,19 +54,13 @@ namespace detail { * \param[in] field - Generic object implementing operator (iPoint, iVar). * \param[in] varBegin - Index of first variable for which to compute the gradient. * \param[in] varEnd - Index of last variable for which to compute the gradient. + * \param[in] idxVel - Index of velocity, or -1 if no velocity present. * \param[out] gradient - Generic object implementing operator (iPoint, iVar, iDim). */ -template -void computeGradientsGreenGauss(CSolver* solver, - MPI_QUANTITIES kindMpiComm, - PERIODIC_QUANTITIES kindPeriodicComm, - CGeometry& geometry, - const CConfig& config, - const FieldType& field, - size_t varBegin, - size_t varEnd, - GradientType& gradient) -{ +template +void computeGradientsGreenGauss(CSolver* solver, MPI_QUANTITIES kindMpiComm, PERIODIC_QUANTITIES kindPeriodicComm, + CGeometry& geometry, const CConfig& config, const FieldType& field, + const size_t varBegin, const size_t varEnd, const int idxVel, GradientType& gradient) { const size_t nPointDomain = geometry.GetnPointDomain(); #ifdef HAVE_OMP @@ -70,11 +69,12 @@ void computeGradientsGreenGauss(CSolver* solver, const auto chunkSize = computeStaticChunkSize(nPointDomain, omp_get_max_threads(), OMP_MAX_CHUNK); #endif + static constexpr size_t MAXNVAR = 20; + /*--- For each (non-halo) volume integrate over its faces (edges). ---*/ SU2_OMP_FOR_DYN(chunkSize) - for (size_t iPoint = 0; iPoint < nPointDomain; ++iPoint) - { + for (size_t iPoint = 0; iPoint < nPointDomain; ++iPoint) { auto nodes = geometry.nodes; /*--- Cannot preaccumulate if hybrid parallel due to shared reading. ---*/ @@ -82,69 +82,59 @@ void computeGradientsGreenGauss(CSolver* solver, AD::SetPreaccIn(nodes->GetVolume(iPoint)); AD::SetPreaccIn(nodes->GetPeriodicVolume(iPoint)); - for (size_t iVar = varBegin; iVar < varEnd; ++iVar) - AD::SetPreaccIn(field(iPoint,iVar)); + for (size_t iVar = varBegin; iVar < varEnd; ++iVar) AD::SetPreaccIn(field(iPoint, iVar)); /*--- Clear the gradient. --*/ for (size_t iVar = varBegin; iVar < varEnd; ++iVar) - for (size_t iDim = 0; iDim < nDim; ++iDim) - gradient(iPoint, iVar, iDim) = 0.0; + for (size_t iDim = 0; iDim < nDim; ++iDim) gradient(iPoint, iVar, iDim) = 0.0; /*--- Handle averaging and division by volume in one constant. ---*/ - su2double halfOnVol = 0.5 / (nodes->GetVolume(iPoint)+nodes->GetPeriodicVolume(iPoint)); + su2double halfOnVol = 0.5 / (nodes->GetVolume(iPoint) + nodes->GetPeriodicVolume(iPoint)); /*--- Add a contribution due to each neighbor. ---*/ - for (size_t iNeigh = 0; iNeigh < nodes->GetnPoint(iPoint); ++iNeigh) - { - size_t iEdge = nodes->GetEdge(iPoint,iNeigh); - size_t jPoint = nodes->GetPoint(iPoint,iNeigh); + for (size_t iNeigh = 0; iNeigh < nodes->GetnPoint(iPoint); ++iNeigh) { + size_t iEdge = nodes->GetEdge(iPoint, iNeigh); + size_t jPoint = nodes->GetPoint(iPoint, iNeigh); /*--- Determine if edge points inwards or outwards of iPoint. * If inwards we need to flip the area vector. ---*/ - su2double dir = (iPoint < jPoint)? 1.0 : -1.0; + su2double dir = (iPoint < jPoint) ? 1.0 : -1.0; su2double weight = dir * halfOnVol; const auto area = geometry.edges->GetNormal(iEdge); AD::SetPreaccIn(area, nDim); - for (size_t iVar = varBegin; iVar < varEnd; ++iVar) - { - AD::SetPreaccIn(field(jPoint,iVar)); - - su2double flux = weight * (field(iPoint,iVar) + field(jPoint,iVar)); + for (size_t iVar = varBegin; iVar < varEnd; ++iVar) { + AD::SetPreaccIn(field(jPoint, iVar)); + su2double flux = weight * (field(iPoint, iVar) + field(jPoint, iVar)); - for (size_t iDim = 0; iDim < nDim; ++iDim) - gradient(iPoint, iVar, iDim) += flux * area[iDim]; + for (size_t iDim = 0; iDim < nDim; ++iDim) gradient(iPoint, iVar, iDim) += flux * area[iDim]; } - } for (size_t iVar = varBegin; iVar < varEnd; ++iVar) - for (size_t iDim = 0; iDim < nDim; ++iDim) - AD::SetPreaccOut(gradient(iPoint,iVar,iDim)); + for (size_t iDim = 0; iDim < nDim; ++iDim) AD::SetPreaccOut(gradient(iPoint, iVar, iDim)); AD::EndPreacc(); } END_SU2_OMP_FOR - /*--- Add boundary fluxes. ---*/ + su2double flux[MAXNVAR] = {0.0}; - for (size_t iMarker = 0; iMarker < geometry.GetnMarker(); ++iMarker) - { + /*--- Add edges of markers that contribute to the gradients ---*/ + for (size_t iMarker = 0; iMarker < geometry.GetnMarker(); ++iMarker) { if ((config.GetMarker_All_KindBC(iMarker) != INTERNAL_BOUNDARY) && (config.GetMarker_All_KindBC(iMarker) != NEARFIELD_BOUNDARY) && - (config.GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) - { + (config.GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) { /*--- Work is shared in inner loop as two markers * may try to update the same point. ---*/ SU2_OMP_FOR_STAT(32) - for (size_t iVertex = 0; iVertex < geometry.GetnVertex(iMarker); ++iVertex) - { + for (size_t iVertex = 0; iVertex < geometry.GetnVertex(iMarker); ++iVertex) { size_t iPoint = geometry.vertex[iMarker][iVertex]->GetNode(); auto nodes = geometry.nodes; @@ -153,20 +143,25 @@ void computeGradientsGreenGauss(CSolver* solver, if (!nodes->GetDomain(iPoint)) continue; su2double volume = nodes->GetVolume(iPoint) + nodes->GetPeriodicVolume(iPoint); - const auto area = geometry.vertex[iMarker][iVertex]->GetNormal(); for (size_t iVar = varBegin; iVar < varEnd; iVar++) - { - su2double flux = field(iPoint,iVar) / volume; - - for (size_t iDim = 0; iDim < nDim; iDim++) - gradient(iPoint, iVar, iDim) -= flux * area[iDim]; - } - } + flux[iVar] = field(iPoint,iVar) / volume; + + for (size_t iVar = varBegin; iVar < varEnd; iVar++) { + for (size_t iDim = 0; iDim < nDim; iDim++) { + gradient(iPoint, iVar, iDim) -= flux[iVar] * area[iDim]; + } + } // loop over variables + } // vertices END_SU2_OMP_FOR - } - } + } //found right marker + } // iMarkers + + + /*--- Compute the corrections for symmetry planes and Euler walls. ---*/ + + correctGradientsSymmetry(geometry, config, varBegin, varEnd, idxVel, gradient); /*--- If no solver was provided we do not communicate ---*/ @@ -174,8 +169,7 @@ void computeGradientsGreenGauss(CSolver* solver, /*--- Account for periodic contributions. ---*/ - for (size_t iPeriodic = 1; iPeriodic <= config.GetnMarker_Periodic()/2; ++iPeriodic) - { + for (size_t iPeriodic = 1; iPeriodic <= config.GetnMarker_Periodic() / 2; ++iPeriodic) { solver->InitiatePeriodicComms(&geometry, &config, iPeriodic, kindPeriodicComm); solver->CompletePeriodicComms(&geometry, &config, iPeriodic, kindPeriodicComm); } @@ -184,35 +178,30 @@ void computeGradientsGreenGauss(CSolver* solver, solver->InitiateComms(&geometry, &config, kindMpiComm); solver->CompleteComms(&geometry, &config, kindMpiComm); - } -} // end namespace +} // namespace detail + + /*! * \brief Instantiations for 2D and 3D. * \ingroup FvmAlgos */ -template -void computeGradientsGreenGauss(CSolver* solver, - MPI_QUANTITIES kindMpiComm, - PERIODIC_QUANTITIES kindPeriodicComm, - CGeometry& geometry, - const CConfig& config, - const FieldType& field, - size_t varBegin, - size_t varEnd, - GradientType& gradient) { +template +void computeGradientsGreenGauss(CSolver* solver, MPI_QUANTITIES kindMpiComm, PERIODIC_QUANTITIES kindPeriodicComm, + CGeometry& geometry, const CConfig& config, const FieldType& field, + const size_t varBegin, const size_t varEnd, const int idxVel, GradientType& gradient) { switch (geometry.GetnDim()) { - case 2: - detail::computeGradientsGreenGauss<2>(solver, kindMpiComm, kindPeriodicComm, geometry, - config, field, varBegin, varEnd, gradient); - break; - case 3: - detail::computeGradientsGreenGauss<3>(solver, kindMpiComm, kindPeriodicComm, geometry, - config, field, varBegin, varEnd, gradient); - break; - default: - SU2_MPI::Error("Too many dimensions to compute gradients.", CURRENT_FUNCTION); - break; + case 2: + detail::computeGradientsGreenGauss<2>(solver, kindMpiComm, kindPeriodicComm, geometry, config, field, varBegin, + varEnd, idxVel, gradient); + break; + case 3: + detail::computeGradientsGreenGauss<3>(solver, kindMpiComm, kindPeriodicComm, geometry, config, field, varBegin, + varEnd, idxVel, gradient); + break; + default: + SU2_MPI::Error("Too many dimensions to compute gradients.", CURRENT_FUNCTION); + break; } } diff --git a/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp b/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp index 29daee7f06e..ef476e7a3df 100644 --- a/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp +++ b/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp @@ -28,6 +28,7 @@ #include "../../../Common/include/parallelization/omp_structure.hpp" #include "../../../Common/include/toolboxes/geometry_toolbox.hpp" +#include "correctGradientsSymmetry.hpp" namespace detail { @@ -175,6 +176,7 @@ FORCEINLINE void solveLeastSquares(size_t iPoint, * \param[in] field - Generic object implementing operator (iPoint, iVar). * \param[in] varBegin - Index of first variable for which to compute the gradient. * \param[in] varEnd - Index of last variable for which to compute the gradient. + * \param[in] idxVel - Index to velocity, -1 if no velocity is present in the solver. * \param[out] gradient - Generic object implementing operator (iPoint, iVar, iDim). * \param[out] Rmatrix - Generic object implementing operator (iPoint, iDim, iDim). */ @@ -186,8 +188,9 @@ void computeGradientsLeastSquares(CSolver* solver, const CConfig& config, bool weighted, const FieldType& field, - size_t varBegin, - size_t varEnd, + const size_t varBegin, + const size_t varEnd, + const int idxVel, GradientType& gradient, RMatrixType& Rmatrix) { @@ -312,6 +315,10 @@ void computeGradientsLeastSquares(CSolver* solver, END_SU2_OMP_FOR } + /* --- compute the corrections for symmetry planes and Euler walls. --- */ + + correctGradientsSymmetry(geometry, config, varBegin, varEnd, idxVel, gradient); + /*--- If no solver was provided we do not communicate ---*/ if (solver != nullptr) @@ -337,18 +344,19 @@ void computeGradientsLeastSquares(CSolver* solver, const CConfig& config, bool weighted, const FieldType& field, - size_t varBegin, - size_t varEnd, + const size_t varBegin, + const size_t varEnd, + const int idxVel, GradientType& gradient, RMatrixType& Rmatrix) { switch (geometry.GetnDim()) { case 2: detail::computeGradientsLeastSquares<2>(solver, kindMpiComm, kindPeriodicComm, geometry, config, - weighted, field, varBegin, varEnd, gradient, Rmatrix); + weighted, field, varBegin, varEnd, idxVel, gradient, Rmatrix); break; case 3: detail::computeGradientsLeastSquares<3>(solver, kindMpiComm, kindPeriodicComm, geometry, config, - weighted, field, varBegin, varEnd, gradient, Rmatrix); + weighted, field, varBegin, varEnd, idxVel, gradient, Rmatrix); break; default: SU2_MPI::Error("Too many dimensions to compute gradients.", CURRENT_FUNCTION); diff --git a/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp b/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp new file mode 100644 index 00000000000..a17ce827184 --- /dev/null +++ b/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp @@ -0,0 +1,146 @@ +/*! + * \file correctGradientsSymmetry.hpp + * \brief Implements the symmetry boundary conditions for the gradient computations. + * \author N. Beishuizen + * \version 8.0.1 "Harrier" + * + * SU2 Project Website: https://su2code.github.io + * + * The SU2 Project is maintained by the SU2 Foundation + * (http://su2foundation.org) + * + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +#include +#include + +#include "../../../Common/include/parallelization/omp_structure.hpp" +#include "../../../Common/include/toolboxes/geometry_toolbox.hpp" + +namespace detail { +/*! + * \brief Correct the gradient on a symmetry plane. + * \ingroup FvmAlgos + * \param[in] varBegin - Start of the variables. + * \param[in] varEnd - End of the variables. + * \param[in] idxVel - Variable index where velocity gradients start (-1 if all variables are scalars). + * \param[in] n - Normal direction. + * \param[in, out] gradients - The gradients to be modified. + */ +template +inline void correctGradient(const size_t varBegin, const size_t varEnd, const int idxVel, const Scalar* n, + Matrix&& gradients) { + + /*--- First we correct the part that involves velocities. ---*/ + + if (idxVel >= static_cast(varBegin) && idxVel + nDim <= varEnd) { + /*--- Normal gradient of velocity components and gradient of normal velocity. ---*/ + su2double normalGrad[nDim] = {}, gradNormalVel[nDim] = {}; + + for (size_t iDim = 0; iDim < nDim; iDim++) { + normalGrad[iDim] = GeometryToolbox::DotProduct(nDim, gradients[idxVel + iDim], n); + + for (size_t jDim = 0; jDim < nDim; jDim++) { + gradNormalVel[jDim] += n[iDim] * gradients[idxVel + iDim][jDim]; + } + } + + /*--- Normal gradient of the normal velocity. ---*/ + const su2double normalGradNormalVel = GeometryToolbox::DotProduct(nDim, n, gradNormalVel); + + /*--- Remove the tangential projection (I - n.n^T) of the normal gradients. + * And the normal projection (n.n^T) of the tangential gradients. + * dV = dV - (I - n.n^T) dV n.n^T - n.n^T dV (I - n.n^T) ---*/ + + for (size_t iDim = 0; iDim < nDim; iDim++) { + for (size_t jDim = 0; jDim < nDim; jDim++) { + gradients[idxVel + iDim][jDim] -= normalGrad[iDim] * n[jDim] + n[iDim] * gradNormalVel[jDim]; + gradients[idxVel + iDim][jDim] += 2 * n[iDim] * normalGradNormalVel * n[jDim]; + } + } + } + + /*--- Remove the normal component for all scalars (excluding velocities). ---*/ + + for (auto iVar = varBegin; iVar < varEnd; iVar++) { + if (idxVel != -1 && static_cast(iVar) >= idxVel && iVar < idxVel + nDim) continue; + + const su2double normalGrad = GeometryToolbox::DotProduct(nDim, n, gradients[iVar]); + for (size_t iDim = 0; iDim < nDim; iDim++) { + gradients[iVar][iDim] -= normalGrad * n[iDim]; + } + } +} +} + +/*! + * \brief Correct gradients on symmetry and Euler (slip) markers to respect the conditions: + * 1. n.grad(phi) = 0 + * 2. n.grad(v.t) = 0 + * 3. t.grad(v.n) = 0 + * \note See Blazek eq. 8.40. + * \ingroup FvmAlgos + * \param[in] geometry - Geometric grid properties. + * \param[in] config - Configuration of the problem, used to identify types of boundaries. + * \param[in] varBegin - Index of first variable for which to compute the gradient. + * \param[in] varEnd - Index of last variable for which to compute the gradient. + * \param[in] idxVel - Index to velocity, -1 if no velocity is present in the solver. + * \param[in,out] gradient - Generic object implementing operator (iPoint, iVar, iDim). + */ +template +void correctGradientsSymmetry(CGeometry& geometry, const CConfig& config, const size_t varBegin, + const size_t varEnd, const int idxVel, GradientType& gradient) { + + /*--- Check how many symmetry planes there are. ---*/ + std::vector symMarkers; + for (auto iMarker = 0u; iMarker < geometry.GetnMarker(); ++iMarker) { + if (config.GetMarker_All_KindBC(iMarker) == SYMMETRY_PLANE || + config.GetMarker_All_KindBC(iMarker) == EULER_WALL) { + symMarkers.push_back(iMarker); + } + } + + for (const auto iMarker : symMarkers) { + SU2_OMP_FOR_STAT(32) + for (size_t iVertex = 0; iVertex < geometry.GetnVertex(iMarker); ++iVertex) { + + const auto iPoint = geometry.vertex[iMarker][iVertex]->GetNode(); + + /*--- Get the normal of the current symmetry. This may be the original normal of the vertex + * or a modified normal if there are intersecting symmetries. ---*/ + + su2double unitNormal[nDim] = {}; + const auto it = geometry.symmetryNormals[iMarker].find(iVertex); + + if (it != geometry.symmetryNormals[iMarker].end()) { + for (auto iDim = 0u; iDim < nDim; iDim++) unitNormal[iDim] = it->second[iDim]; + } else { + geometry.vertex[iMarker][iVertex]->GetNormal(unitNormal); + const su2double area = GeometryToolbox::Norm(nDim, unitNormal); + for (auto iDim = 0u; iDim < nDim; iDim++) unitNormal[iDim] /= area; + } + + detail::correctGradient(varBegin, varEnd, idxVel, unitNormal, gradient[iPoint]); + + } // loop over vertices + END_SU2_OMP_FOR + } // markers + +} + diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp index 21b87849bcd..51901b8201e 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp @@ -451,6 +451,8 @@ class CFVMFlowSolverBase : public CSolver { for (unsigned short iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) { if ((config->GetMarker_All_KindBC(iMarker) != INTERNAL_BOUNDARY) && + (config->GetMarker_All_KindBC(iMarker) != SYMMETRY_PLANE) && + (config->GetMarker_All_KindBC(iMarker) != EULER_WALL) && (config->GetMarker_All_KindBC(iMarker) != NEARFIELD_BOUNDARY) && (config->GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) { @@ -667,6 +669,8 @@ class CFVMFlowSolverBase : public CSolver { for (unsigned short iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) { if ((config->GetMarker_All_KindBC(iMarker) != INTERNAL_BOUNDARY) && + (config->GetMarker_All_KindBC(iMarker) != SYMMETRY_PLANE) && + (config->GetMarker_All_KindBC(iMarker) != EULER_WALL) && (config->GetMarker_All_KindBC(iMarker) != NEARFIELD_BOUNDARY) && (config->GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) { diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl index eb3edb511db..8fcb6d05bec 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl @@ -386,7 +386,7 @@ void CFVMFlowSolverBase::SetPrimitive_Gradient_GG(CGeometry* geometry, con const auto comm = reconstruction? MPI_QUANTITIES::PRIMITIVE_GRAD_REC : MPI_QUANTITIES::PRIMITIVE_GRADIENT; const auto commPer = reconstruction? PERIODIC_PRIM_GG_R : PERIODIC_PRIM_GG; - computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, gradient); + computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, prim_idx.Velocity(), gradient); } template @@ -411,7 +411,7 @@ void CFVMFlowSolverBase::SetPrimitive_Gradient_LS(CGeometry* geometry, con const auto comm = reconstruction? MPI_QUANTITIES::PRIMITIVE_GRAD_REC : MPI_QUANTITIES::PRIMITIVE_GRADIENT; computeGradientsLeastSquares(this, comm, commPer, *geometry, *config, weighted, - primitives, 0, nPrimVarGrad, gradient, rmatrix); + primitives, 0, nPrimVarGrad, prim_idx.Velocity(), gradient, rmatrix); } template @@ -1089,7 +1089,7 @@ void CFVMFlowSolverBase::PushSolutionBackInTime(unsigned long TimeIter, bo CSolver*** solver_container, CGeometry** geometry, CConfig* config) { /*--- Push back the initial condition to previous solution containers - for a 1st-order restart or when simply intitializing to freestream. ---*/ + for a 1st-order restart or when simply initializing to freestream. ---*/ for (unsigned short iMesh = 0; iMesh <= config->GetnMGLevels(); iMesh++) { solver_container[iMesh][FLOW_SOL]->GetNodes()->Set_Solution_time_n(); @@ -1132,248 +1132,127 @@ void CFVMFlowSolverBase::PushSolutionBackInTime(unsigned long TimeIter, bo } } -template -void CFVMFlowSolverBase::BC_Sym_Plane(CGeometry* geometry, CSolver** solver_container, CNumerics* conv_numerics, - CNumerics* visc_numerics, CConfig* config, unsigned short val_marker) { - unsigned short iDim, iVar; - unsigned long iVertex, iPoint; +template +void CFVMFlowSolverBase::BC_Sym_Plane(CGeometry* geometry, CSolver** solver_container, CNumerics* conv_numerics, + CNumerics* visc_numerics, CConfig* config, unsigned short val_marker) { + const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); + const auto iVel = prim_idx.Velocity(); - bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); - bool viscous = config->GetViscous(); - bool preprocessed = false; + /*--- Blazek chapter 8.: + * The components of the momentum residual normal to the symmetry plane are zeroed out. + * The gradients have already been corrected acording to Eq. (8.40). + * Contrary to Blazek we keep some scalar fluxes computed on the boundary to improve stability (see below). ---*/ - /*--- Allocation of variables necessary for convective fluxes. ---*/ - su2double Area, ProjVelocity_i, *V_reflected, *V_domain, Normal[MAXNDIM] = {0.0}, UnitNormal[MAXNDIM] = {0.0}; + /*--- Loop over all the vertices on this boundary marker. ---*/ - /*--- Allocation of variables necessary for viscous fluxes. ---*/ - su2double ProjGradient, ProjNormVelGrad, ProjTangVelGrad, TangentialNorm, - Tangential[MAXNDIM] = {0.0}, GradNormVel[MAXNDIM] = {0.0}, GradTangVel[MAXNDIM] = {0.0}; + 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(); - /*--- Allocation of primitive gradient arrays for viscous fluxes. ---*/ - su2activematrix Grad_Reflected(nPrimVarGrad, nDim); + /*--- Halo points do not need to be considered. ---*/ + if (!geometry->nodes->GetDomain(iPoint)) continue; - /*--- Loop over all the vertices on this boundary marker. ---*/ + /*--- Get the normal of the current symmetry. This may be the original normal of the vertex + * or a modified normal if there are intersecting symmetries. ---*/ - SU2_OMP_FOR_DYN(OMP_MIN_SIZE) - for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { - if (!preprocessed || geometry->bound_is_straight[val_marker] != true) { - /*----------------------------------------------------------------------------------------------*/ - /*--- Preprocessing: ---*/ - /*--- Compute the unit normal and (in case of viscous flow) a corresponding unit tangential ---*/ - /*--- to that normal. On a straight(2D)/plane(3D) boundary these two vectors are constant. ---*/ - /*--- This circumstance is checked in geometry->ComputeSurf_Straightness(...) and stored ---*/ - /*--- such that the recomputation does not occur for each node. On true symmetry planes, the ---*/ - /*--- normal is constant but this routines is used for Symmetry, Euler-Wall in inviscid flow ---*/ - /*--- and Euler Wall in viscous flow as well. In the latter curvy boundaries are likely to ---*/ - /*--- happen. In doubt, the conditional above which checks straightness can be thrown out ---*/ - /*--- such that the recomputation is done for each node (which comes with a tiny performance ---*/ - /*--- penalty). ---*/ - /*----------------------------------------------------------------------------------------------*/ - - preprocessed = true; - - /*--- Normal vector for a random vertex (zero) on this marker (negate for outward convention). ---*/ - geometry->vertex[val_marker][iVertex]->GetNormal(Normal); - for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; - - /*--- Compute unit normal, to be used for unit tangential, projected velocity and velocity - component gradients. ---*/ - Area = GeometryToolbox::Norm(nDim, Normal); + su2double Normal[MAXNDIM] = {}, UnitNormal[MAXNDIM] = {}; + geometry->vertex[val_marker][iVertex]->GetNormal(Normal); + const auto it = geometry->symmetryNormals[val_marker].find(iVertex); - for (iDim = 0; iDim < nDim; iDim++) UnitNormal[iDim] = -Normal[iDim] / Area; + if (it != geometry->symmetryNormals[val_marker].end()) { + for (auto iDim = 0u; iDim < nDim; iDim++) UnitNormal[iDim] = it->second[iDim]; + } else { + const su2double Area = GeometryToolbox::Norm(nDim, Normal); + for (auto iDim = 0u; iDim < nDim; iDim++) UnitNormal[iDim] = Normal[iDim] / Area; + } - /*--- Preprocessing: Compute unit tangential, the direction is arbitrary as long as - t*n=0 && |t|_2 = 1 ---*/ - if (viscous) { - switch (nDim) { - case 2: { - Tangential[0] = -UnitNormal[1]; - Tangential[1] = UnitNormal[0]; - break; - } - case 3: { - /*--- n = ai + bj + ck, if |b| > |c| ---*/ - if (abs(UnitNormal[1]) > abs(UnitNormal[2])) { - /*--- t = bi + (c-a)j - bk ---*/ - Tangential[0] = UnitNormal[1]; - Tangential[1] = UnitNormal[2] - UnitNormal[0]; - Tangential[2] = -UnitNormal[1]; - } else { - /*--- t = ci - cj + (b-a)k ---*/ - Tangential[0] = UnitNormal[2]; - Tangential[1] = -UnitNormal[2]; - Tangential[2] = UnitNormal[1] - UnitNormal[0]; - } - /*--- Make it a unit vector. ---*/ - TangentialNorm = sqrt(pow(Tangential[0], 2) + pow(Tangential[1], 2) + pow(Tangential[2], 2)); - Tangential[0] = Tangential[0] / TangentialNorm; - Tangential[1] = Tangential[1] / TangentialNorm; - Tangential[2] = Tangential[2] / TangentialNorm; - break; - } - } // switch - } // if viscous - } // if bound_is_straight - - iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); - - /*--- Check if the node belongs to the domain (i.e., not a halo node) ---*/ - if (geometry->nodes->GetDomain(iPoint)) { - /*-------------------------------------------------------------------------------*/ - /*--- Step 1: For the convective fluxes, create a reflected state of the ---*/ - /*--- Primitive variables by copying all interior values to the ---*/ - /*--- reflected. Only the velocity is mirrored along the symmetry ---*/ - /*--- axis. Based on the Upwind_Residual routine. ---*/ - /*-------------------------------------------------------------------------------*/ - - /*--- Allocate the reflected state at the symmetry boundary. ---*/ - 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). ---*/ - geometry->vertex[val_marker][iVertex]->GetNormal(Normal); - for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; - conv_numerics->SetNormal(Normal); - - /*--- Get current solution at this boundary node ---*/ - V_domain = nodes->GetPrimitive(iPoint); - - /*--- Set the reflected state based on the boundary node. Scalars are copied and - the velocity is mirrored along the symmetry boundary, i.e. the velocity in - normal direction is substracted twice. ---*/ - for (iVar = 0; iVar < nPrimVar; iVar++) V_reflected[iVar] = nodes->GetPrimitive(iPoint, iVar); - - /*--- Compute velocity in normal direction (ProjVelcity_i=(v*n)) und substract twice from - velocity in normal direction: v_r = v - 2 (v*n)n ---*/ - 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); - } + su2double* V_reflected = GetCharacPrimVar(val_marker, iVertex); - for (iDim = 0; iDim < nDim; iDim++) - V_reflected[iDim + 1] = nodes->GetVelocity(iPoint, iDim) - 2.0 * ProjVelocity_i * UnitNormal[iDim]; + /*--- Grid movement ---*/ + if (dynamic_grid) + conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint), geometry->nodes->GetGridVel(iPoint)); - /*--- Set Primitive and Secondary for numerics class. ---*/ - conv_numerics->SetPrimitive(V_domain, V_reflected); - conv_numerics->SetSecondary(nodes->GetSecondary(iPoint), nodes->GetSecondary(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); - /*--- Compute the residual using an upwind scheme. ---*/ + for (auto iVar = 0u; iVar < nPrimVar; iVar++) + V_reflected[iVar] = nodes->GetPrimitive(iPoint, iVar); - auto residual = conv_numerics->ComputeResidual(config); + 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); - /*--- Update residual value ---*/ - LinSysRes.AddBlock(iPoint, residual); + for (auto iDim = 0u; iDim < nDim; iDim++) + V_reflected[iDim + iVel] = nodes->GetVelocity(iPoint, iDim) - ProjVelocity_i * UnitNormal[iDim]; - /*--- Jacobian contribution for implicit integration. ---*/ - if (implicit) { - Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); - } + /*--- Get current solution at this boundary node ---*/ + const su2double* V_domain = nodes->GetPrimitive(iPoint); - if (viscous) { - /*-------------------------------------------------------------------------------*/ - /*--- Step 2: The viscous fluxes of the Navier-Stokes equations depend on the ---*/ - /*--- Primitive variables and their gradients. The viscous numerics ---*/ - /*--- container is filled just as the convective numerics container, ---*/ - /*--- but the primitive gradients of the reflected state have to be ---*/ - /*--- determined additionally such that symmetry at the boundary is ---*/ - /*--- enforced. Based on the Viscous_Residual routine. ---*/ - /*-------------------------------------------------------------------------------*/ - - /*--- Set the normal vector and the coordinates. ---*/ - visc_numerics->SetCoord(geometry->nodes->GetCoord(iPoint), geometry->nodes->GetCoord(iPoint)); - visc_numerics->SetNormal(Normal); - - /*--- Set the primitive and Secondary variables. ---*/ - visc_numerics->SetPrimitive(V_domain, V_reflected); - visc_numerics->SetSecondary(nodes->GetSecondary(iPoint), nodes->GetSecondary(iPoint)); - - /*--- For viscous Fluxes also the gradients of the primitives need to be determined. - 1. The gradients of scalars are mirrored along the sym plane just as velocity for the primitives - 2. The gradients of the velocity components need more attention, i.e. the gradient of the - normal velocity in tangential direction is mirrored and the gradient of the tangential velocity in - normal direction is mirrored. ---*/ - - /*--- Get gradients of primitives of boundary cell ---*/ - for (iVar = 0; iVar < nPrimVarGrad; iVar++) - for (iDim = 0; iDim < nDim; iDim++) - Grad_Reflected[iVar][iDim] = nodes->GetGradient_Primitive(iPoint, iVar, iDim); + /*--- Set Primitive and Secondary for numerics class. ---*/ + conv_numerics->SetPrimitive(V_domain, V_reflected); + conv_numerics->SetSecondary(nodes->GetSecondary(iPoint), nodes->GetSecondary(iPoint)); - /*--- Reflect the gradients for all scalars including the velocity components. - The gradients of the velocity components are set later with the - correct values: grad(V)_r = grad(V) - 2 [grad(V)*n]n, V beeing any primitive ---*/ - for (iVar = 0; iVar < nPrimVarGrad; iVar++) { - if (iVar == 0 || iVar > nDim) { // Exclude velocity component gradients + /*--- Compute the residual using an upwind scheme. ---*/ + auto residual = conv_numerics->ComputeResidual(config); - /*--- Compute projected part of the gradient in a dot product ---*/ - ProjGradient = 0.0; - for (iDim = 0; iDim < nDim; iDim++) ProjGradient += Grad_Reflected[iVar][iDim] * UnitNormal[iDim]; + /*--- 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]; + } - for (iDim = 0; iDim < nDim; iDim++) - Grad_Reflected[iVar][iDim] = Grad_Reflected[iVar][iDim] - 2.0 * ProjGradient * UnitNormal[iDim]; - } - } + /*--- 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). ---*/ - /*--- Compute gradients of normal and tangential velocity: - grad(v*n) = grad(v_x) n_x + grad(v_y) n_y (+ grad(v_z) n_z) - grad(v*t) = grad(v_x) t_x + grad(v_y) t_y (+ grad(v_z) t_z) ---*/ - for (iVar = 0; iVar < nDim; iVar++) { // counts gradient components - GradNormVel[iVar] = 0.0; - GradTangVel[iVar] = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { // counts sum with unit normal/tangential - GradNormVel[iVar] += Grad_Reflected[iDim + 1][iVar] * UnitNormal[iDim]; - GradTangVel[iVar] += Grad_Reflected[iDim + 1][iVar] * Tangential[iDim]; - } - } + su2double* solutionOld = nodes->GetSolution_Old(iPoint); - /*--- Refelect gradients in tangential and normal direction by substracting the normal/tangential - component twice, just as done with velocity above. - grad(v*n)_r = grad(v*n) - 2 {grad([v*n])*t}t - grad(v*t)_r = grad(v*t) - 2 {grad([v*t])*n}n ---*/ - ProjNormVelGrad = 0.0; - ProjTangVelGrad = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { - ProjNormVelGrad += GradNormVel[iDim] * Tangential[iDim]; // grad([v*n])*t - ProjTangVelGrad += GradTangVel[iDim] * UnitNormal[iDim]; // grad([v*t])*n + su2double gridVel[MAXNVAR] = {}; + if (dynamic_grid) { + for (auto iDim = 0u; iDim < nDim; iDim++) { + gridVel[iDim] = geometry->nodes->GetGridVel(iPoint)[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); } + } + } + su2double vp = 0.0; + for (auto iDim = 0u; iDim < nDim; iDim++) { + vp += (solutionOld[iVel + iDim] - gridVel[iDim]) * UnitNormal[iDim]; + } + for (auto iDim = 0u; iDim < nDim; iDim++) { + solutionOld[iVel + iDim] -= vp * UnitNormal[iDim]; + } - for (iDim = 0; iDim < nDim; iDim++) { - GradNormVel[iDim] = GradNormVel[iDim] - 2.0 * ProjNormVelGrad * Tangential[iDim]; - GradTangVel[iDim] = GradTangVel[iDim] - 2.0 * ProjTangVelGrad * UnitNormal[iDim]; - } + /*--- Keep only the tangential part of the momentum residuals. ---*/ + su2double normalRes = 0.0; + for (auto iDim = 0u; iDim < nDim; iDim++) { + normalRes += LinSysRes(iPoint, iVel + iDim) * UnitNormal[iDim]; + } + for (auto iDim = 0u; iDim < nDim; iDim++) { + LinSysRes(iPoint, iVel + iDim) -= normalRes * UnitNormal[iDim]; + } - /*--- Transfer reflected gradients back into the Cartesian Coordinate system: - grad(v_x)_r = grad(v*n)_r n_x + grad(v*t)_r t_x - grad(v_y)_r = grad(v*n)_r n_y + grad(v*t)_r t_y - ( grad(v_z)_r = grad(v*n)_r n_z + grad(v*t)_r t_z ) ---*/ - for (iVar = 0; iVar < nDim; iVar++) // loops over the velocity component gradients - for (iDim = 0; iDim < nDim; iDim++) // loops over the entries of the above - Grad_Reflected[iVar + 1][iDim] = - GradNormVel[iDim] * UnitNormal[iVar] + GradTangVel[iDim] * Tangential[iVar]; - - /*--- Set the primitive gradients of the boundary and reflected state. ---*/ - visc_numerics->SetPrimVarGradient(nodes->GetGradient_Primitive(iPoint), CMatrixView(Grad_Reflected)); - - /*--- Turbulent kinetic energy. ---*/ - if (config->GetKind_Turb_Model() == TURB_MODEL::SST) - visc_numerics->SetTurbKineticEnergy(solver_container[TURB_SOL]->GetNodes()->GetSolution(iPoint, 0), - solver_container[TURB_SOL]->GetNodes()->GetSolution(iPoint, 0)); - - /*--- Compute and update residual. Note that the viscous shear stress tensor is computed in the - following routine based upon the velocity-component gradients. ---*/ - auto residual = visc_numerics->ComputeResidual(config); - - LinSysRes.SubtractBlock(iPoint, residual); - - /*--- Jacobian contribution for implicit integration. ---*/ - if (implicit) Jacobian.SubtractBlock2Diag(iPoint, residual.jacobian_i); - } // if viscous - } // if GetDomain - } // for iVertex + /*--- Jacobian contribution for implicit integration. ---*/ + if (implicit) { + Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); + } + + /*--- Correction for multigrid. ---*/ + normalRes = 0.0; + su2double* Res_TruncError = nodes->GetResTruncError(iPoint); + for (auto iDim = 0u; iDim < nDim; iDim++) { + normalRes += Res_TruncError[iVel + iDim] * UnitNormal[iDim]; + } + for (auto iDim = 0u; iDim < nDim; iDim++) { + Res_TruncError[iVel + iDim] -= normalRes * UnitNormal[iDim]; + } + } END_SU2_OMP_FOR } diff --git a/SU2_CFD/include/solvers/CScalarSolver.inl b/SU2_CFD/include/solvers/CScalarSolver.inl index 1777fa2e289..63936187185 100644 --- a/SU2_CFD/include/solvers/CScalarSolver.inl +++ b/SU2_CFD/include/solvers/CScalarSolver.inl @@ -111,15 +111,15 @@ void CScalarSolver::CommonPreprocessing(CGeometry *geometry, const if (config->GetReconstructionGradientRequired()) { switch(config->GetKind_Gradient_Method_Recon()) { - case GREEN_GAUSS: SetSolution_Gradient_GG(geometry, config, true); break; - case LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, true); break; - case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, true); break; + case GREEN_GAUSS: SetSolution_Gradient_GG(geometry, config, -1, true); break; + case LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, -1, true); break; + case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, -1, true); break; } } switch(config->GetKind_Gradient_Method()) { - case GREEN_GAUSS: SetSolution_Gradient_GG(geometry, config); break; - case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config); break; + case GREEN_GAUSS: SetSolution_Gradient_GG(geometry, config, -1); break; + case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, -1); break; } if (limiter && muscl) SetSolution_Limiter(geometry, config); diff --git a/SU2_CFD/include/solvers/CSolver.hpp b/SU2_CFD/include/solvers/CSolver.hpp index eee698af3d5..191a61c90ea 100644 --- a/SU2_CFD/include/solvers/CSolver.hpp +++ b/SU2_CFD/include/solvers/CSolver.hpp @@ -543,17 +543,19 @@ class CSolver { * \brief Compute the Green-Gauss gradient of the solution. * \param[in] geometry - Geometrical definition of the problem. * \param[in] config - Definition of the particular problem. + * \param[in] idxVel - Index to velocity, -1 if no velocity is present in the solver. * \param[in] reconstruction - indicator that the gradient being computed is for upwind reconstruction. */ - void SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config, bool reconstruction = false); + void SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction = false); /*! * \brief Compute the Least Squares gradient of the solution. * \param[in] geometry - Geometrical definition of the problem. * \param[in] config - Definition of the particular problem. + * \param[in] idxVel - Index to velocity, -1 if no velocity is present in the solver. * \param[in] reconstruction - indicator that the gradient being computed is for upwind reconstruction. */ - void SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config, bool reconstruction = false); + void SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction = false); /*! * \brief Compute the Least Squares gradient of the grid velocity. diff --git a/SU2_CFD/include/variables/CEulerVariable.hpp b/SU2_CFD/include/variables/CEulerVariable.hpp index d2880fce420..4dc91781c4b 100644 --- a/SU2_CFD/include/variables/CEulerVariable.hpp +++ b/SU2_CFD/include/variables/CEulerVariable.hpp @@ -237,7 +237,7 @@ class CEulerVariable : public CFlowVariable { * \return Value of the velocity for the dimension iDim. */ inline su2double GetVelocity(unsigned long iPoint, unsigned long iDim) const final { - return Primitive(iPoint,iDim+indices.Velocity()); + return Primitive(iPoint, iDim+indices.Velocity()); } /*! @@ -256,7 +256,7 @@ class CEulerVariable : public CFlowVariable { inline su2double GetProjVel(unsigned long iPoint, const su2double *val_vector) const final { su2double ProjVel = 0.0; for (unsigned long iDim = 0; iDim < nDim; iDim++) - ProjVel += Primitive(iPoint,iDim+indices.Velocity())*val_vector[iDim]; + ProjVel += Primitive(iPoint, iDim+indices.Velocity())*val_vector[iDim]; return ProjVel; } diff --git a/SU2_CFD/include/variables/CVariable.hpp b/SU2_CFD/include/variables/CVariable.hpp index 358824ae8d7..920f5680915 100644 --- a/SU2_CFD/include/variables/CVariable.hpp +++ b/SU2_CFD/include/variables/CVariable.hpp @@ -702,6 +702,16 @@ class CVariable { val_trunc_error[iVar] = Res_TruncError(iPoint, iVar); } + /*! + * \brief Set the truncation error. + * \param[in] iPoint - Point index. + * \param[in] val_trunc_error - Pointer to the truncation error. + */ + inline void SetResTruncError(unsigned long iPoint, su2double *val_trunc_error) { + for (unsigned long iVar = 0; iVar < nVar; iVar++) + Res_TruncError(iPoint, iVar) = val_trunc_error[iVar]; + } + /*! * \brief Set the gradient of the solution. * \param[in] iPoint - Point index. diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index 14c478c0f47..971ae9e0be7 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -679,20 +679,6 @@ void CDriver::InitializeGeometry(CConfig* config, CGeometry **&geometry, bool du } #endif - /*--- Check if Euler & Symmetry markers are straight/plane. This information - is used in the Euler & Symmetry boundary routines. ---*/ - if((config_container[iZone]->GetnMarker_Euler() != 0 || - config_container[iZone]->GetnMarker_SymWall() != 0) && - !fem_solver) { - - if (rank == MASTER_NODE) - cout << "Checking if Euler & Symmetry markers are straight/plane:" << endl; - - for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) - geometry_container[iZone][iInst][iMesh]->ComputeSurf_Straightness(config_container[iZone], (iMesh==MESH_0) ); - - } - /*--- Keep a reference to the main (ZONE_0, INST_0, MESH_0) geometry. ---*/ main_geometry = geometry_container[ZONE_0][INST_0][MESH_0]; @@ -844,7 +830,7 @@ void CDriver::InitializeGeometryFVM(CConfig *config, CGeometry **&geometry) { /*--- Create the control volume structures ---*/ geometry[iMGlevel]->SetControlVolume(geometry[iMGlevel-1], ALLOCATE); - geometry[iMGlevel]->SetBoundControlVolume(geometry[iMGlevel-1], ALLOCATE); + geometry[iMGlevel]->SetBoundControlVolume(geometry[iMGlevel-1], config, ALLOCATE); geometry[iMGlevel]->SetCoord(geometry[iMGlevel-1]); /*--- Find closest neighbor to a surface point ---*/ diff --git a/SU2_CFD/src/integration/CIntegration.cpp b/SU2_CFD/src/integration/CIntegration.cpp index f53d50639cc..65406ae4e16 100644 --- a/SU2_CFD/src/integration/CIntegration.cpp +++ b/SU2_CFD/src/integration/CIntegration.cpp @@ -91,7 +91,7 @@ void CIntegration::Space_Integration(CGeometry *geometry, BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { if (config->GetBoolTurbomachinery()){ - /*--- Average quantities at the inflow and outflow boundaries ---*/ + /*--- Average quantities at the inflow and outflow boundaries ---*/ solver_container[MainSolver]->TurboAverageProcess(solver_container, geometry,config,INFLOW); solver_container[MainSolver]->TurboAverageProcess(solver_container, geometry, config, OUTFLOW); } @@ -103,9 +103,6 @@ void CIntegration::Space_Integration(CGeometry *geometry, for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { KindBC = config->GetMarker_All_KindBC(iMarker); switch (KindBC) { - case EULER_WALL: - solver_container[MainSolver]->BC_Euler_Wall(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); - break; case ACTDISK_INLET: solver_container[MainSolver]->BC_ActDisk_Inlet(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); break; @@ -144,9 +141,6 @@ void CIntegration::Space_Integration(CGeometry *geometry, case FAR_FIELD: solver_container[MainSolver]->BC_Far_Field(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); break; - case SYMMETRY_PLANE: - solver_container[MainSolver]->BC_Sym_Plane(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); - break; } } @@ -195,6 +189,13 @@ void CIntegration::Space_Integration(CGeometry *geometry, solver_container[MainSolver]->BC_Periodic(geometry, solver_container, conv_bound_numerics, config); } + + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + if (config->GetMarker_All_KindBC(iMarker)==SYMMETRY_PLANE) + solver_container[MainSolver]->BC_Sym_Plane(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); + else if (config->GetMarker_All_KindBC(iMarker)==EULER_WALL) + solver_container[MainSolver]->BC_Euler_Wall(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); + } //AD::ResumePreaccumulation(pausePreacc); } diff --git a/SU2_CFD/src/numerics/flow/convection/fds.cpp b/SU2_CFD/src/numerics/flow/convection/fds.cpp index 4a83dfe275d..eeffeb1cb57 100644 --- a/SU2_CFD/src/numerics/flow/convection/fds.cpp +++ b/SU2_CFD/src/numerics/flow/convection/fds.cpp @@ -104,7 +104,7 @@ CNumerics::ResidualType<> CUpwFDSInc_Flow::ComputeResidual(const CConfig *config Area = GeometryToolbox::Norm(nDim, Normal); - /*--- Compute and unitary normal vector ---*/ + /*--- Compute the unit normal vector ---*/ for (iDim = 0; iDim < nDim; iDim++) { UnitNormal[iDim] = Normal[iDim]/Area; diff --git a/SU2_CFD/src/numerics/flow/convection/roe.cpp b/SU2_CFD/src/numerics/flow/convection/roe.cpp index 07c69f2030d..5f84fc21858 100644 --- a/SU2_CFD/src/numerics/flow/convection/roe.cpp +++ b/SU2_CFD/src/numerics/flow/convection/roe.cpp @@ -109,7 +109,7 @@ CNumerics::ResidualType<> CUpwRoeBase_Flow::ComputeResidual(const CConfig* confi AD::SetPreaccIn(Dissipation_i); AD::SetPreaccIn(Dissipation_j); } - /*--- Face area (norm or the normal vector) and unit normal ---*/ + /*--- Face area (norm of the normal vector) and unit normal ---*/ Area = GeometryToolbox::Norm(nDim, Normal); diff --git a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp index 17128c7fec8..b72305e0be2 100644 --- a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp @@ -952,11 +952,11 @@ void CAdjEulerSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contai /*--- Gradient computation for MUSCL reconstruction. ---*/ if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS) - SetSolution_Gradient_GG(geometry, config, true); + SetSolution_Gradient_GG(geometry, config, 1, true); if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES) - SetSolution_Gradient_LS(geometry, config, true); + SetSolution_Gradient_LS(geometry, config, 1, true); if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES) - SetSolution_Gradient_LS(geometry, config, true); + SetSolution_Gradient_LS(geometry, config, 1, true); /*--- Limiter computation ---*/ @@ -970,8 +970,8 @@ void CAdjEulerSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contai if ((center_jst) && (iMesh == MESH_0)) { SetCentered_Dissipation_Sensor(geometry, config); SetUndivided_Laplacian(geometry, config); - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, 1); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, 1); } } diff --git a/SU2_CFD/src/solvers/CAdjNSSolver.cpp b/SU2_CFD/src/solvers/CAdjNSSolver.cpp index c07425a2bdc..3a219b06ea9 100644 --- a/SU2_CFD/src/solvers/CAdjNSSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjNSSolver.cpp @@ -345,14 +345,14 @@ void CAdjNSSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container if (config->GetReconstructionGradientRequired()) { if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS) - SetSolution_Gradient_GG(geometry, config, true); + SetSolution_Gradient_GG(geometry, config, 1, true); if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES) - SetSolution_Gradient_LS(geometry, config, true); + SetSolution_Gradient_LS(geometry, config, 1, true); if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES) - SetSolution_Gradient_LS(geometry, config, true); + SetSolution_Gradient_LS(geometry, config, 1, true); } - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, 1); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, 1); /*--- Limiter computation (upwind reconstruction) ---*/ @@ -361,8 +361,8 @@ void CAdjNSSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container /*--- Compute gradients adj for viscous term coupling ---*/ if ((config->GetKind_Solver() == MAIN_SOLVER::ADJ_RANS) && (!config->GetFrozen_Visc_Cont())) { - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) solver_container[ADJTURB_SOL]->SetSolution_Gradient_GG(geometry, config); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) solver_container[ADJTURB_SOL]->SetSolution_Gradient_LS(geometry, config); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) solver_container[ADJTURB_SOL]->SetSolution_Gradient_GG(geometry, config, 1); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) solver_container[ADJTURB_SOL]->SetSolution_Gradient_LS(geometry, config, 1); } /*--- Artificial dissipation for centered schemes ---*/ diff --git a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp index 3d5b6eb7024..cb4a194ca95 100644 --- a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp @@ -257,12 +257,12 @@ void CAdjTurbSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contain Jacobian.SetValZero(); /*--- Gradient of the adjoint turbulent variables ---*/ - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, -1); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, -1); /*--- Gradient of the turbulent variables ---*/ - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) solver_container[TURB_SOL]->SetSolution_Gradient_GG(geometry, config); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) solver_container[TURB_SOL]->SetSolution_Gradient_LS(geometry, config); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) solver_container[TURB_SOL]->SetSolution_Gradient_GG(geometry, config, -1); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) solver_container[TURB_SOL]->SetSolution_Gradient_LS(geometry, config, -1); } diff --git a/SU2_CFD/src/solvers/CNEMONSSolver.cpp b/SU2_CFD/src/solvers/CNEMONSSolver.cpp index b30b99edebe..5b12013cee2 100644 --- a/SU2_CFD/src/solvers/CNEMONSSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMONSSolver.cpp @@ -166,7 +166,7 @@ void CNEMONSSolver::SetPrimitive_Gradient_GG(CGeometry *geometry, const CConfig const auto& primitives = nodes->GetPrimitive_Aux(); - computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, gradient); + computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, prim_idx.Velocity(), gradient); } void CNEMONSSolver::Viscous_Residual(CGeometry *geometry, diff --git a/SU2_CFD/src/solvers/CRadP1Solver.cpp b/SU2_CFD/src/solvers/CRadP1Solver.cpp index d102e3b1d9a..21e5458a81c 100644 --- a/SU2_CFD/src/solvers/CRadP1Solver.cpp +++ b/SU2_CFD/src/solvers/CRadP1Solver.cpp @@ -150,12 +150,12 @@ void CRadP1Solver::Preprocessing(CGeometry *geometry, CSolver **solver_container /*--- Compute the Solution gradients ---*/ if (config->GetReconstructionGradientRequired()) { - if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, true); - if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, true); - if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, true); + if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, -1, true); + if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, -1, true); + if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, -1, true); } - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, -1); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, -1); } diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index b9d03fe3ee2..de0ec914b73 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -2097,7 +2097,7 @@ void CSolver::SetAuxVar_Gradient_GG(CGeometry *geometry, const CConfig *config) auto& gradient = base_nodes->GetAuxVarGradient(); computeGradientsGreenGauss(this, MPI_QUANTITIES::AUXVAR_GRADIENT, PERIODIC_NONE, *geometry, - *config, solution, 0, base_nodes->GetnAuxVar(), gradient); + *config, solution, 0, base_nodes->GetnAuxVar(), -1, gradient); } void CSolver::SetAuxVar_Gradient_LS(CGeometry *geometry, const CConfig *config) { @@ -2108,20 +2108,19 @@ void CSolver::SetAuxVar_Gradient_LS(CGeometry *geometry, const CConfig *config) auto& rmatrix = base_nodes->GetRmatrix(); computeGradientsLeastSquares(this, MPI_QUANTITIES::AUXVAR_GRADIENT, PERIODIC_NONE, *geometry, *config, - weighted, solution, 0, base_nodes->GetnAuxVar(), gradient, rmatrix); + weighted, solution, 0, base_nodes->GetnAuxVar(), -1, gradient, rmatrix); } -void CSolver::SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config, bool reconstruction) { +void CSolver::SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction) { const auto& solution = base_nodes->GetSolution(); auto& gradient = reconstruction? base_nodes->GetGradient_Reconstruction() : base_nodes->GetGradient(); const auto comm = reconstruction? MPI_QUANTITIES::SOLUTION_GRAD_REC : MPI_QUANTITIES::SOLUTION_GRADIENT; const auto commPer = reconstruction? PERIODIC_SOL_GG_R : PERIODIC_SOL_GG; - - computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, solution, 0, nVar, gradient); + computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, solution, 0, nVar, idxVel, gradient); } -void CSolver::SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config, bool reconstruction) { +void CSolver::SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction) { /*--- Set a flag for unweighted or weighted least-squares. ---*/ bool weighted; @@ -2141,7 +2140,7 @@ void CSolver::SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config auto& gradient = reconstruction? base_nodes->GetGradient_Reconstruction() : base_nodes->GetGradient(); const auto comm = reconstruction? MPI_QUANTITIES::SOLUTION_GRAD_REC : MPI_QUANTITIES::SOLUTION_GRADIENT; - computeGradientsLeastSquares(this, comm, commPer, *geometry, *config, weighted, solution, 0, nVar, gradient, rmatrix); + computeGradientsLeastSquares(this, comm, commPer, *geometry, *config, weighted, solution, 0, nVar, idxVel, gradient, rmatrix); } void CSolver::SetUndivided_Laplacian(CGeometry *geometry, const CConfig *config) { @@ -2240,7 +2239,7 @@ void CSolver::SetGridVel_Gradient(CGeometry *geometry, const CConfig *config) co auto rmatrix = CVectorOfMatrix(nPoint,nDim,nDim); computeGradientsLeastSquares(nullptr, MPI_QUANTITIES::GRID_VELOCITY, PERIODIC_NONE, *geometry, *config, - true, gridVel, 0, nDim, gridVelGrad, rmatrix); + true, gridVel, 0, nDim, 0, gridVelGrad, rmatrix); } void CSolver::SetSolution_Limiter(CGeometry *geometry, const CConfig *config) { diff --git a/SU2_CFD/src/solvers/CTransLMSolver.cpp b/SU2_CFD/src/solvers/CTransLMSolver.cpp index 1fdf2a47de1..902a67925c4 100644 --- a/SU2_CFD/src/solvers/CTransLMSolver.cpp +++ b/SU2_CFD/src/solvers/CTransLMSolver.cpp @@ -185,10 +185,10 @@ void CTransLMSolver::Postprocessing(CGeometry *geometry, CSolver **solver_contai /*--- Compute LM model gradients. ---*/ if (config->GetKind_Gradient_Method() == GREEN_GAUSS) { - SetSolution_Gradient_GG(geometry, config); + SetSolution_Gradient_GG(geometry, config, -1); } if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { - SetSolution_Gradient_LS(geometry, config); + SetSolution_Gradient_LS(geometry, config, -1); } AD::StartNoSharedReading(); diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index 555f8e77155..53d1b1f2524 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -200,10 +200,10 @@ void CTurbSSTSolver::Postprocessing(CGeometry *geometry, CSolver **solver_contai /*--- Compute turbulence gradients. ---*/ if (config->GetKind_Gradient_Method() == GREEN_GAUSS) { - SetSolution_Gradient_GG(geometry, config); + SetSolution_Gradient_GG(geometry, config, -1); } if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { - SetSolution_Gradient_LS(geometry, config); + SetSolution_Gradient_LS(geometry, config, -1); } AD::StartNoSharedReading(); diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 0818c6074a0..1170ae71e05 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -361,7 +361,7 @@ def run_filediff(self, with_tsan=False, with_asan=False): # Assert that both files have the same number of lines if len(fromlines) != len(tolines): - diff = ["ERROR: Number of lines in " + fromfile + " and " + tofile + " differ."] + diff = ["ERROR: Number of lines in " + fromfile + " and " + tofile + " differ: " + len(fromlines) + " vs " + len(tolines) + "."] passed = False # Loop through all lines diff --git a/TestCases/cont_adj_euler/naca0012/of_grad_cd.dat.ref b/TestCases/cont_adj_euler/naca0012/of_grad_cd.dat.ref index 2f88439a0b9..c9cda259729 100644 --- a/TestCases/cont_adj_euler/naca0012/of_grad_cd.dat.ref +++ b/TestCases/cont_adj_euler/naca0012/of_grad_cd.dat.ref @@ -1,39 +1,39 @@ VARIABLES="VARIABLE" , "GRADIENT" , "FINDIFF_STEP" - 0 , 0.00534068 , 0.0001 - 1 , 0.024277 , 0.0001 - 2 , 0.0299625 , 0.0001 - 3 , 0.0234274 , 0.0001 - 4 , 0.00339532 , 0.0001 - 5 , -0.0308111 , 0.0001 - 6 , -0.0775489 , 0.0001 - 7 , -0.132033 , 0.0001 - 8 , -0.186824 , 0.0001 - 9 , -0.233924 , 0.0001 - 10 , -0.268068 , 0.0001 - 11 , -0.289743 , 0.0001 - 12 , -0.305716 , 0.0001 - 13 , -0.325863 , 0.0001 - 14 , -0.358209 , 0.0001 - 15 , -0.407234 , 0.0001 - 16 , -0.47926 , 0.0001 - 17 , -0.595838 , 0.0001 - 18 , -0.850012 , 0.0001 - 19 , 0.565996 , 0.0001 - 20 , 1.14457 , 0.0001 - 21 , 1.50247 , 0.0001 - 22 , 1.62875 , 0.0001 - 23 , 1.54948 , 0.0001 - 24 , 1.31563 , 0.0001 - 25 , 0.989959 , 0.0001 - 26 , 0.634653 , 0.0001 - 27 , 0.301875 , 0.0001 - 28 , 0.0291654 , 0.0001 - 29 , -0.160196 , 0.0001 - 30 , -0.253741 , 0.0001 - 31 , -0.247195 , 0.0001 - 32 , -0.147396 , 0.0001 - 33 , 0.0181901 , 0.0001 - 34 , 0.197238 , 0.0001 - 35 , 0.341451 , 0.0001 - 36 , 0.467151 , 0.0001 - 37 , 0.682825 , 0.0001 + 0 , -0.346339 , 0.0001 + 1 , -0.248052 , 0.0001 + 2 , -0.1713 , 0.0001 + 3 , -0.122543 , 0.0001 + 4 , -0.101101 , 0.0001 + 5 , -0.104377 , 0.0001 + 6 , -0.127816 , 0.0001 + 7 , -0.164567 , 0.0001 + 8 , -0.206037 , 0.0001 + 9 , -0.24378 , 0.0001 + 10 , -0.272396 , 0.0001 + 11 , -0.292059 , 0.0001 + 12 , -0.308757 , 0.0001 + 13 , -0.331226 , 0.0001 + 14 , -0.366529 , 0.0001 + 15 , -0.418919 , 0.0001 + 16 , -0.495353 , 0.0001 + 17 , -0.619083 , 0.0001 + 18 , -0.889061 , 0.0001 + 19 , 0.118474 , 0.0001 + 20 , 0.849882 , 0.0001 + 21 , 1.3251 , 0.0001 + 22 , 1.53508 , 0.0001 + 23 , 1.51368 , 0.0001 + 24 , 1.31908 , 0.0001 + 25 , 1.02001 , 0.0001 + 26 , 0.68317 , 0.0001 + 27 , 0.363758 , 0.0001 + 28 , 0.100704 , 0.0001 + 29 , -0.0830333 , 0.0001 + 30 , -0.176826 , 0.0001 + 31 , -0.178825 , 0.0001 + 32 , -0.096525 , 0.0001 + 33 , 0.0472928 , 0.0001 + 34 , 0.21134 , 0.0001 + 35 , 0.355622 , 0.0001 + 36 , 0.490104 , 0.0001 + 37 , 0.718618 , 0.0001 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 272a21372a2..6da6f45e3ee 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.96 , 0.001 - 1 , -12995.9 , 0.001 - 2 , -21781.3 , 0.001 - 3 , -27675.3 , 0.001 - 4 , -30437.9 , 0.001 - 5 , -30443.9 , 0.001 - 6 , -28343.1 , 0.001 - 7 , -24794.2 , 0.001 - 8 , -20329.4 , 0.001 - 9 , -15376.6 , 0.001 - 10 , -10418.0 , 0.001 - 11 , -6201.67 , 0.001 - 12 , -3878.08 , 0.001 - 13 , -4910.93 , 0.001 - 14 , -10573.5 , 0.001 - 15 , -20610.7 , 0.001 - 16 , -30110.4 , 0.001 - 17 , -26294.5 , 0.001 - 18 , -62393.8 , 0.001 - 19 , -2797.26 , 0.001 - 20 , -832.067 , 0.001 - 21 , -668.081 , 0.001 - 22 , -1773.25 , 0.001 - 23 , -5718.86 , 0.001 - 24 , -13717.8 , 0.001 - 25 , -25699.0 , 0.001 - 26 , -40061.9 , 0.001 - 27 , -53729.8 , 0.001 - 28 , -62415.6 , 0.001 - 29 , -61293.4 , 0.001 - 30 , -46505.9 , 0.001 - 31 , -17841.7 , 0.001 - 32 , 18183.8 , 0.001 - 33 , 48447.5 , 0.001 - 34 , 62322.0 , 0.001 - 35 , 64139.5 , 0.001 - 36 , 54568.2 , 0.001 - 37 , 64856.8 , 0.001 + 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 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 4992e46a279..1b4c963eeac 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.2253591473 , -105.6097088 , 0.2588459007 , -1.5322178 , 0.0 , -1.537499867 , 0.0 , 0.0 , 1.202899757 , 0.0 - 1 , 0.3835809166 , -173.3502205 , 0.4363886002 , -2.415957492 , 0.0 , -2.424902327 , 0.0 , 0.0 , 1.053347497 , 0.0 - 2 , 0.5151776249 , -228.9760041 , 0.5835870252 , -3.129538494 , 0.0 , -3.141524632 , 0.0 , 0.0 , 0.6540715539 , 0.0 + 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 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 0d54e740402..51bda5370df 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.00766235 , 0.0001 - 1 , 0.00499567 , 0.0001 - 2 , 0.00249665 , 0.0001 - 3 , 0.000904607 , 0.0001 + 0 , 0.00767644 , 0.0001 + 1 , 0.00498358 , 0.0001 + 2 , 0.00246134 , 0.0001 + 3 , 0.000893054 , 0.0001 diff --git a/TestCases/disc_adj_fsi/dyn_fsi/grad_dv.opt.ref b/TestCases/disc_adj_fsi/dyn_fsi/grad_dv.opt.ref index b2e428bed5a..d0a338410ba 100644 --- a/TestCases/disc_adj_fsi/dyn_fsi/grad_dv.opt.ref +++ b/TestCases/disc_adj_fsi/dyn_fsi/grad_dv.opt.ref @@ -1,9 +1,9 @@ INDEX GRAD -0 -3.461460667601000e-03 -1 -1.841786311588663e-03 -2 -7.915536257748967e-04 -3 -2.739622082729717e-04 -4 -2.734869133461104e-04 -5 -7.881162428890206e-04 -6 -1.828978290516677e-03 -7 -3.427219398258316e-03 +0 -5.239274142145693e-03 +1 -2.822866261832595e-03 +2 -1.251166631047082e-03 +3 -4.746312021502222e-04 +4 -4.726421390156573e-04 +5 -1.242307153964931e-03 +6 -2.797799332331688e-03 +7 -5.181304648315885e-03 diff --git a/TestCases/disc_adj_heat/disc_adj_heat.cfg b/TestCases/disc_adj_heat/disc_adj_heat.cfg index 85e7d30e98c..cb258ec6333 100644 --- a/TestCases/disc_adj_heat/disc_adj_heat.cfg +++ b/TestCases/disc_adj_heat/disc_adj_heat.cfg @@ -208,6 +208,6 @@ SURFACE_FILENAME= surface_flow SURFACE_ADJ_FILENAME= surface_adjoint -OUTPUT_WRT_FREQ= 1 +OUTPUT_WRT_FREQ= 100 SCREEN_OUTPUT= (INNER_ITER, RMS_ADJ_PRESSURE, RMS_ADJ_NU_TILDE, RMS_ADJ_HEAT, SENS_VEL_IN, SENS_PRESS_OUT) diff --git a/TestCases/euler/bluntbody/blunt.cfg b/TestCases/euler/bluntbody/blunt.cfg index f9ece1cbae4..a76c6be19ba 100644 --- a/TestCases/euler/bluntbody/blunt.cfg +++ b/TestCases/euler/bluntbody/blunt.cfg @@ -43,7 +43,7 @@ MARKER_MONITORING = ( wall ) % ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 3.0 +CFL_NUMBER= 6.0 CFL_ADAPT= NO CFL_ADAPT_PARAM= ( 1.1, 0.9, 5.0, 50.0 ) ITER= 2500 diff --git a/TestCases/euler/channel/inv_channel_RK.cfg b/TestCases/euler/channel/inv_channel_RK.cfg index ee2b3513e14..8e20a09f14c 100644 --- a/TestCases/euler/channel/inv_channel_RK.cfg +++ b/TestCases/euler/channel/inv_channel_RK.cfg @@ -44,7 +44,7 @@ MARKER_MONITORING= ( upper_wall, lower_wall ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 2.0 +CFL_NUMBER= 2.5 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/euler/naca0012/inv_NACA0012_Roe.cfg b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg index 6215d0870ae..087bca16ebc 100644 --- a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg +++ b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg @@ -41,11 +41,11 @@ MARKER_MONITORING= ( airfoil ) % ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 4.0 +CFL_NUMBER= 20.0 CFL_ADAPT= NO CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) -ITER= 110 +ITER= 1000 LINEAR_SOLVER= BCGSTAB LINEAR_SOLVER_ERROR= 1E-6 LINEAR_SOLVER_ITER= 5 @@ -57,8 +57,8 @@ MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 2, 2 ) MG_POST_SMOOTH= ( 1, 1, 1, 1 ) MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1 ) -MG_DAMP_RESTRICTION= 1.0 -MG_DAMP_PROLONGATION= 1.0 +MG_DAMP_RESTRICTION= 0.80 +MG_DAMP_PROLONGATION= 0.80 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % diff --git a/TestCases/euler/wedge/inv_wedge_HLLC.cfg b/TestCases/euler/wedge/inv_wedge_HLLC.cfg index 30120e792dd..77c20175c22 100644 --- a/TestCases/euler/wedge/inv_wedge_HLLC.cfg +++ b/TestCases/euler/wedge/inv_wedge_HLLC.cfg @@ -42,7 +42,7 @@ MARKER_MONITORING= ( upper, lower ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 1.0 +CFL_NUMBER= 4.0 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/fixed_cl/naca0012/inv_NACA0012.cfg b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg index 5842e3848dc..a66afe95074 100644 --- a/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg +++ b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg @@ -55,7 +55,7 @@ MARKER_DESIGNING = ( airfoil ) % NUM_METHOD_GRAD= GREEN_GAUSS OBJECTIVE_FUNCTION= DRAG -CFL_NUMBER= 5.0 +CFL_NUMBER=1000 ITER= 1000 % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% @@ -115,15 +115,15 @@ CONV_CAUCHY_EPS= 1E-6 MESH_FILENAME= mesh_NACA0012_inv.su2 MESH_FORMAT= SU2 MESH_OUT_FILENAME= mesh_out.su2 -SOLUTION_FILENAME= solution_flow.dat -SOLUTION_ADJ_FILENAME= solution_adj.dat +SOLUTION_FILENAME= solution_flow +SOLUTION_ADJ_FILENAME= solution_adj TABULAR_FORMAT= CSV CONV_FILENAME= history -RESTART_FILENAME= restart_flow.dat -RESTART_ADJ_FILENAME= restart_adj.dat +RESTART_FILENAME= restart_flow +RESTART_ADJ_FILENAME= restart_adj VOLUME_FILENAME= flow VOLUME_ADJ_FILENAME= adjoint -GRAD_OBJFUNC_FILENAME= of_grad.dat +GRAD_OBJFUNC_FILENAME= of_grad SURFACE_FILENAME= surface_flow SURFACE_ADJ_FILENAME= surface_adjoint OUTPUT_WRT_FREQ= 250 diff --git a/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg b/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg index 1b927581780..f2b6bd919aa 100644 --- a/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg +++ b/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg @@ -37,15 +37,16 @@ KIND_SCALAR_MODEL= FLAMELET DIFFUSIVITY_MODEL= FLAMELET VISCOSITY_MODEL= FLAMELET CONDUCTIVITY_MODEL= FLAMELET +FLAME_INIT_METHOD= FLAME_FRONT FLAME_INIT= (0.0032, 0.00, 0.00, 1.0, 0.1, 0.0, 1.0e-3, 0.1) % # progvar, enthalpy SPECIES_INIT = (0.0, -210000, 0.0, 0.0) -CONV_NUM_METHOD_SPECIES= SCALAR_UPWIND +CONV_NUM_METHOD_SPECIES= BOUNDED_SCALAR MUSCL_SPECIES= YES SLOPE_LIMITER_SPECIES= NONE TIME_DISCRE_SPECIES= EULER_IMPLICIT % SCALAR CLIPPING -SPECIES_CLIPPING= YES +SPECIES_CLIPPING= NO SPECIES_CLIPPING_MIN= 0 -2e6 0 0 SPECIES_CLIPPING_MAX= 1 2e6 1 1 % @@ -85,9 +86,9 @@ MARKER_ANALYZE_AVERAGE = AREA % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 350 +CFL_NUMBER= 50 CFL_ADAPT= NO -ITER= 100 +ITER= 10000 OUTPUT_WRT_FREQ= 100 % % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% @@ -126,8 +127,8 @@ MESH_FILENAME = mesh_structured.cgns MESH_OUT_FILENAME= mesh_out.su2 SOLUTION_FILENAME= solution RESTART_FILENAME= restart -%OUTPUT_FILES = (RESTART,PARAVIEW,PARAVIEW_MULTIBLOCK) -OUTPUT_FILES = (RESTART) +OUTPUT_FILES = (RESTART,PARAVIEW,PARAVIEW_MULTIBLOCK) +%OUTPUT_FILES = (RESTART) TABULAR_FORMAT = CSV CONV_FILENAME= history VOLUME_FILENAME= ch4_flame_cfd diff --git a/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_fluid.cfg b/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_fluid.cfg index e0828cc4d44..adf9a65020f 100644 --- a/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_fluid.cfg +++ b/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_fluid.cfg @@ -19,7 +19,7 @@ HISTORY_OUTPUT= RMS_RES AERO_COEFF FLOW_COEFF FLOW_COEFF_SURF VOLUME_OUTPUT= SOLUTION PRIMITIVE SOURCE RESIDUAL LOOKUP -OUTPUT_FILES= (RESTART_ASCII) +OUTPUT_FILES= (RESTART_ASCII, PARAVIEW) INNER_ITER= 1 @@ -55,6 +55,7 @@ FLUID_MODEL= FLUID_FLAMELET FILENAMES_INTERPOLATOR= (fgm_ch4.drg) CONTROLLING_VARIABLE_NAMES= (ProgressVariable, EnthalpyTot) CONTROLLING_VARIABLE_SOURCE_NAMES= (ProdRateTot_PV, NULL) +FLAME_INIT_METHOD= NONE FLAME_INIT= (0.004, 0.0, 0.0, 1.0, 0.0, 0.0, 0.2e-3, 1.0) % -------------------- SPECIES TRANSPORT ---------------------------------------% @@ -88,8 +89,8 @@ VISCOSITY_MODEL= FLAMELET % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% -%NUM_METHOD_GRAD= GREEN_GAUSS -NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +NUM_METHOD_GRAD= GREEN_GAUSS +%NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES CFL_NUMBER= 25 CFL_ADAPT= NO diff --git a/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_master.cfg b/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_master.cfg index 1ca70ab9d79..9a674d7a8e5 100644 --- a/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_master.cfg +++ b/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_master.cfg @@ -37,7 +37,7 @@ RESTART_ADJ_FILENAME= restart_adj TIME_DOMAIN= NO OUTER_ITER= 10 -OUTPUT_WRT_FREQ= 500 +OUTPUT_WRT_FREQ= 100 SCREEN_WRT_FREQ_INNER= 1 SCREEN_WRT_FREQ_OUTER= 1 diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index bd7635e1413..3f14c4c40c6 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.667328, 2.797437, 0.018714, 0.006906] + channel.test_vals = [-2.965605, 2.459083, 0.016007, 0.042277] 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.023999, -3.515034, 0.339426, 0.022217] + naca0012.test_vals = [-4.444945, -3.941041, 0.318999, 0.022365] 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 = [-0.942862, 4.784581, -0.208106, 0.036665] + wedge.test_vals = [-1.396962, 4.262003, -0.244219, 0.043052] test_list.append(wedge) # ONERA M6 Wing @@ -75,7 +75,7 @@ def main(): oneram6.cfg_dir = "euler/oneram6" oneram6.cfg_file = "inv_ONERAM6.cfg" oneram6.test_iter = 10 - oneram6.test_vals = [0.281703, 0.011821] + oneram6.test_vals = [0.280800, 0.008623] test_list.append(oneram6) # Fixed CL NACA0012 @@ -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 = [-7.374806, -1.872330, 0.300000, 0.019471] + fixedCL_naca0012.test_vals = [-3.905038, 1.628019, 0.301067, 0.019483] 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.540010, 6.916656, 0.000027, 1.869004] + bluntbody.test_vals = [0.491773, 6.855541, 0.000298, 1.791791] 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 = [-9.154123, -3.663185, 0.001112, 0.036277, 2.361500, -2.325300, -2.278800, -2.278800] + flatplate.test_vals = [-7.700620, -2.229886, 0.001084, 0.036235, 2.361500, -2.325300, -1.823400, -1.823400] flatplate.test_vals_aarch64 = [-9.154130, -3.663197, 0.001112, 0.036277, 2.361500, -2.325300, -2.278800, -2.278800] test_list.append(flatplate) @@ -112,7 +112,7 @@ def main(): cylinder.cfg_dir = "navierstokes/cylinder" cylinder.cfg_file = "lam_cylinder.cfg" cylinder.test_iter = 25 - cylinder.test_vals = [-6.765429, -1.297425, 0.019571, 0.310233, 0.123270] + cylinder.test_vals = [-8.265865, -2.783635, -0.019914, 1.614879, -0.010191] cylinder.test_vals_aarch64 = [-6.765429, -1.297425, 0.019571, 0.310231, 0.123270] test_list.append(cylinder) @@ -185,7 +185,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.157358, -6.736289, -0.176258, 0.057431] + turb_flatplate.test_vals = [-4.156553, -6.736064, -0.176184, 0.057478] test_list.append(turb_flatplate) # ONERA M6 Wing @@ -193,7 +193,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.388836, -6.689426, 0.230320, 0.157640, -32539.000000] + turb_oneram6.test_vals = [-2.392863, -6.689822, 0.230745, 0.158812, -33786.000000] test_list.append(turb_oneram6) # NACA0012 (SA, FUN3D finest grid results: CL=1.0983, CD=0.01242) @@ -255,7 +255,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.060634, -6.992273, -8.808757, -4.097753, -2019.800000] + axi_rans_air_nozzle_restart.test_vals = [-12.155957, -6.610384, -9.237797, -4.532605, -2019.700000] test_list.append(axi_rans_air_nozzle_restart) ################################# @@ -329,7 +329,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.589740, 0.790168, 0.937052, 3.922578] + harmonic_balance.test_vals = [-1.554985, 0.831796, 0.935728, 3.960209] test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil @@ -349,7 +349,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 = [-4.858287, -3.810487, 0.491850, 0.007002] + inc_euler_naca0012.test_vals = [-7.104363, -6.354829, 0.531976, 0.008467] test_list.append(inc_euler_naca0012) # C-D nozzle with pressure inlet and mass flow outlet @@ -357,8 +357,8 @@ 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 = [-5.971249, -4.910844, -0.000196, 0.121635] - inc_nozzle.test_vals_aarch64 = [-5.971248, -4.910844, -0.000196, 0.121635] + inc_nozzle.test_vals = [-6.363748, -5.564772, -0.003840, 0.126592] + inc_nozzle.test_vals_aarch64 = [-5.624385, -4.988472, -0.000096, 0.137032] test_list.append(inc_nozzle) ############################# @@ -395,7 +395,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.437996, -3.086189, -0.015600, 1.142212] + inc_lam_bend.test_vals = [-3.547250, -3.225803, -0.015148, 1.006543] inc_lam_bend.test_vals_aarch64 = [-3.437996, -3.086188, -0.015600, 1.142213] test_list.append(inc_lam_bend) @@ -424,7 +424,7 @@ def main(): inc_weakly_coupled.cfg_dir = "disc_adj_heat" inc_weakly_coupled.cfg_file = "primal.cfg" inc_weakly_coupled.test_iter = 10 - inc_weakly_coupled.test_vals = [-16.498562, -15.335587, -15.570565, -12.867787, -18.185331, -13.071436, 5.545800] + inc_weakly_coupled.test_vals = [-18.894811, -17.879327, -18.412938, -17.855948, -18.343462, -15.659612, 5.545700] test_list.append(inc_weakly_coupled) ###################################### @@ -467,7 +467,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.977520, 3.481804, -0.012402, -0.007454] + sine_gust.test_vals = [-1.977514, 3.481817, -0.010400, -0.008115] sine_gust.unsteady = True test_list.append(sine_gust) @@ -476,7 +476,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.418813, 0.004650, -0.001878, -0.000637, -0.000271] + cosine_gust.test_vals = [-2.418805, 0.002013, -0.001504, 0.000445, -0.000558] cosine_gust.unsteady = True cosine_gust.enabled_with_tsan = False test_list.append(cosine_gust) @@ -486,7 +486,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.844778, 0.000846, -0.000408] + gust_mesh_defo.test_vals = [-1.844761, 0.001116, -0.000265] gust_mesh_defo.unsteady = True gust_mesh_defo.enabled_with_tsan = False test_list.append(gust_mesh_defo) @@ -496,8 +496,8 @@ def main(): aeroelastic.cfg_dir = "aeroelastic" aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" aeroelastic.test_iter = 2 - aeroelastic.test_vals = [0.074432, 0.033108, -0.001650, -0.000127] - aeroelastic.test_vals_aarch64 = [0.074836, 0.033102, -0.001650, -0.000127] + aeroelastic.test_vals = [0.074058, 0.027628, -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 aeroelastic.enabled_with_tsan = False @@ -508,7 +508,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.714757, -5.882779, -0.215005, 0.023783, -618.130000] + ddes_flatplate.test_vals = [-2.714785, -5.882681, -0.215041, 0.023758, -617.440000] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) @@ -526,7 +526,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.665126, -3.793497, -3.716496, -3.148290] + unst_deforming_naca0012.test_vals = [-3.665202, -3.793253, -3.716498, -3.148334] unst_deforming_naca0012.unsteady = True unst_deforming_naca0012.enabled_with_tsan = False test_list.append(unst_deforming_naca0012) @@ -539,17 +539,17 @@ def main(): edge_VW = TestCase('edge_VW') edge_VW.cfg_dir = "nicf/edge" edge_VW.cfg_file = "edge_VW.cfg" - edge_VW.test_iter = 100 - edge_VW.test_vals = [-5.040246, 1.124521, -0.000009, 0.000000] + edge_VW.test_iter = 40 + edge_VW.test_vals = [-5.759815, 0.398128, -0.000009, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR edge_PPR = TestCase('edge_PPR') edge_PPR.cfg_dir = "nicf/edge" edge_PPR.cfg_file = "edge_PPR.cfg" - edge_PPR.test_iter = 100 - edge_PPR.test_vals = [-5.401604, 0.738202, -0.000035, 0.000000] - edge_PPR.test_vals_aarch64 = [-5.401642, 0.738164, -0.000035, 0.000000] + edge_PPR.test_iter = 40 + edge_PPR.test_vals = [-6.922907, -0.757793, -0.000034, 0.000000] + edge_PPR.test_vals_aarch64 = [-8.573595, -2.391849, -0.000034, 0.000000] test_list.append(edge_PPR) ###################################### @@ -561,7 +561,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273, 73273, 0.019884, 82.491] + Jones_tc_restart.test_vals = [-6.614627, -3.001324, -14.336143, -8.776079, -11.382919, -5.852328, 73273.000000, 73273.000000, 0.019884, 82.491000] test_list.append(Jones_tc_restart) # 2D axial stage @@ -569,7 +569,7 @@ def main(): axial_stage2D.cfg_dir = "turbomachinery/axial_stage_2D" axial_stage2D.cfg_file = "Axial_stage2D.cfg" axial_stage2D.test_iter = 20 - axial_stage2D.test_vals = [0.983739, 1.534333, -2.888521, 2.606770, -2.418339, 3.087275, 106380, 106380, 5.7325, 64.711] + axial_stage2D.test_vals = [0.983739, 1.534333, -2.888521, 2.606770, -2.418339, 3.087275, 106380.000000, 106380.000000, 5.732600, 64.711000] axial_stage2D.test_vals_aarch64 = [0.983739, 1.534333, -2.888521, 2.606770, -2.418339, 3.087275, 106380, 106380, 5.7325, 64.711] test_list.append(axial_stage2D) @@ -578,7 +578,7 @@ def main(): transonic_stator_restart.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator_restart.cfg_file = "transonic_stator_restart.cfg" transonic_stator_restart.test_iter = 20 - transonic_stator_restart.test_vals = [-5.007735, -3.099310, -2.751696, 1.091966, -3.542819, 2.163237, -471630, 94.866, -0.035738] + transonic_stator_restart.test_vals = [-5.007735, -3.099310, -2.751696, 1.091966, -3.542819, 2.163237, -471630.000000, 94.866000, -0.035738] transonic_stator_restart.test_vals_aarch64 = [-5.007735, -3.099310, -2.751696, 1.091966, -3.542819, 2.163237, -471630, 94.866, -0.035738] test_list.append(transonic_stator_restart) @@ -591,7 +591,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.188748, -10.631533] + uniform_flow.test_vals = [5.000000, 0.000000, -0.185381, -10.631535] uniform_flow.unsteady = True uniform_flow.multizone = True test_list.append(uniform_flow) @@ -601,7 +601,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.397975, 0.352765, 0.405420] + channel_2D.test_vals = [2.000000, 0.000000, 0.419762, 0.352170, 0.404385] channel_2D.unsteady = True channel_2D.multizone = True test_list.append(channel_2D) @@ -611,8 +611,8 @@ 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.620170, 0.505179, 0.415317] - channel_3D.test_vals_aarch64 = [2.000000, 0.000000, 0.620189, 0.505311, 0.415246] + channel_3D.test_vals = [2.000000, 0.000000, 0.623108, 0.505077, 0.412801] + channel_3D.test_vals_aarch64 = [2.000000, 0.000000, 0.620558, 0.504323, 0.412729] channel_3D.unsteady = True channel_3D.multizone = True channel_3D.enabled_with_tsan = False @@ -623,7 +623,7 @@ def main(): pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 - pipe.test_vals = [0.150024, 0.491949, 0.677759, 0.963991, 1.006947] + pipe.test_vals = [0.116650, 0.481386, 0.648698, 0.982997, 1.018359] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) @@ -633,7 +633,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.777568, 1.134807, 1.224137] + rotating_cylinders.test_vals = [3.000000, 0.000000, 0.719776, 1.111045, 1.154066] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) @@ -643,7 +643,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.214344, 1.663912] + supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.207949, 1.036083] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) @@ -694,7 +694,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.743227, -4.133479] + fsi2d.test_vals = [4.000000, 0.000000, -3.729243, -4.153954] fsi2d.multizone= True fsi2d.unsteady = True fsi2d.enabled_with_tsan = False @@ -705,7 +705,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 = [-5.397954, -5.719688, 0.000000, 10.000000] + stat_fsi.test_vals = [-5.425896, -5.797242, 0.000000, 6.000000] stat_fsi.test_vals_aarch64 = [-5.423016, -5.753459, 0.000000, 10.000000] stat_fsi.multizone = True test_list.append(stat_fsi) @@ -715,8 +715,8 @@ 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.355806, -4.060582, 0.000000, 103.000000] - dyn_fsi.test_vals_aarch64 = [-4.355806, -4.060582, 0.000000, 103.000000] + dyn_fsi.test_vals = [-4.330441, -4.057994, 0.000000, 103.000000] + dyn_fsi.test_vals_aarch64 = [-4.332167, -4.057742, 0.000000, 102.000000] dyn_fsi.multizone = True dyn_fsi.unsteady = True test_list.append(dyn_fsi) @@ -726,8 +726,8 @@ 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.474078, -4.242240, 0.000000, 36.000000] - stat_fsi_restart.test_vals_aarch64 = [-3.474081, -4.242372, 0.000000, 37.000000] + stat_fsi_restart.test_vals = [-3.463348, -4.232710, 0.000000, 37.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 5bf0befa263..0669ff42a30 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.561506, -8.926634, -0.000000, 0.005587] + discadj_naca0012.test_vals = [-3.560691, -8.925239, -0.000000, 0.005559] 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.730673, -3.832084, -0.000000, 0.000000] + discadj_cylinder3D.test_vals = [-3.764562, -3.719982, -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.087876, -3.481506, 0.068878, 0.000000] + discadj_arina2k.test_vals = [-3.534954, -3.773310, 0.027244, 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.092007, -2.652751, 0.000000] + discadj_incomp_NACA0012.test_vals = [20.000000, -4.087948, -2.655204, 0.000000] test_list.append(discadj_incomp_NACA0012) ##################################### @@ -123,7 +123,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.845995, -1.031097, 0.000000] + discadj_incomp_turb_NACA0012_sa.test_vals = [10.000000, -3.845995, -1.031096, 0.000000] test_list.append(discadj_incomp_turb_NACA0012_sa) # Adjoint Incompressible Turbulent NACA 0012 SST @@ -143,7 +143,7 @@ def main(): discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder" discadj_cylinder.cfg_file = "cylinder.cfg" discadj_cylinder.test_iter = 9 - discadj_cylinder.test_vals = [3.746907, -1.544882, -0.008321, 0.000014] + discadj_cylinder.test_vals = [3.746907, -1.544883, -0.008321, 0.000014] discadj_cylinder.unsteady = True discadj_cylinder.enabled_with_tsan = False test_list.append(discadj_cylinder) @@ -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.219713, -1.645717, -0.007513, 0.000013] + discadj_pitchingNACA0012.test_vals = [-1.221198, -1.647772, -0.007510, 0.000013] discadj_pitchingNACA0012.unsteady = True discadj_pitchingNACA0012.enabled_with_tsan = False test_list.append(discadj_pitchingNACA0012) @@ -199,7 +199,7 @@ def main(): discadj_trans_stator.cfg_dir = "disc_adj_turbomachinery/transonic_stator_2D" discadj_trans_stator.cfg_file = "transonic_stator.cfg" discadj_trans_stator.test_iter = 79 - discadj_trans_stator.test_vals = [79, 0.770065, 0.383137, 0.472153, -0.996484, 2.153296, -4.444301] + discadj_trans_stator.test_vals = [79.000000, 0.770094, 0.383191, 0.472139, -0.996477, 2.153270, -4.444323] discadj_trans_stator.test_vals_aarch64 = [79, 0.769987, 0.383135, 0.472391, -0.996504, 2.153296, -4.444301] discadj_trans_stator.enabled_with_tsan = False test_list.append(discadj_trans_stator) @@ -238,7 +238,7 @@ def main(): pywrapper_FEA_AD_FlowLoad.cfg_dir = "py_wrapper/disc_adj_fea/flow_load_sens" pywrapper_FEA_AD_FlowLoad.cfg_file = "configAD_fem.cfg" pywrapper_FEA_AD_FlowLoad.test_iter = 100 - pywrapper_FEA_AD_FlowLoad.test_vals = [-0.131415, -0.551701, -0.000364, -0.003101] #last 4 columns + pywrapper_FEA_AD_FlowLoad.test_vals = [-0.132037, -0.554472, -0.000364, -0.003101] pywrapper_FEA_AD_FlowLoad.test_vals_aarch64 = [-0.131745, -0.553214, -0.000364, -0.003101] pywrapper_FEA_AD_FlowLoad.command = TestCase.Command(exec = "python", param = "run_adjoint.py --parallel -f") pywrapper_FEA_AD_FlowLoad.timeout = 1600 @@ -253,8 +253,8 @@ 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.521422, 1.372295, 0.000000] #last 4 columns - pywrapper_CFD_AD_MeshDisp.test_vals_aarch64 = [30.000000, -2.516536, 1.386443, 0.000000] + pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.505480, 1.403813, 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 pywrapper_CFD_AD_MeshDisp.tol = 1e-2 diff --git a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg index 3b7da053aef..300dd64a5b5 100644 --- a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg +++ b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg @@ -43,7 +43,7 @@ MARKER_MONITORING= ( airfoil ) % ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% % NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 3.0 +CFL_NUMBER= 200.0 CFL_ADAPT= NO CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) @@ -51,13 +51,13 @@ ITER= 9999 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % -MGLEVEL= 2 +MGLEVEL= 3 MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) MG_POST_SMOOTH= ( 1, 1, 1, 1 ) MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1 ) -MG_DAMP_RESTRICTION= 0.85 -MG_DAMP_PROLONGATION= 0.85 +MG_DAMP_RESTRICTION= 0.9 +MG_DAMP_PROLONGATION= 0.9 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % diff --git a/TestCases/incomp_euler/nozzle/inv_nozzle.cfg b/TestCases/incomp_euler/nozzle/inv_nozzle.cfg index 0c793b2c903..9633d08fba5 100644 --- a/TestCases/incomp_euler/nozzle/inv_nozzle.cfg +++ b/TestCases/incomp_euler/nozzle/inv_nozzle.cfg @@ -46,7 +46,7 @@ MARKER_ANALYZE_AVERAGE = AREA % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 15.0 +CFL_NUMBER= 500 % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% % @@ -61,8 +61,8 @@ LINEAR_SOLVER_ITER= 5 MGLEVEL= 3 MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) -MG_POST_SMOOTH= ( 0, 0, 0, 0 ) -MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) +MG_POST_SMOOTH= ( 1, 1, 1, 0 ) +MG_CORRECTION_SMOOTH= ( 1, 1, 1, 0 ) MG_DAMP_RESTRICTION= 0.95 MG_DAMP_PROLONGATION= 0.95 diff --git a/TestCases/incomp_navierstokes/sphere/sphere.cfg b/TestCases/incomp_navierstokes/sphere/sphere.cfg new file mode 100644 index 00000000000..7f5ed6dd2fc --- /dev/null +++ b/TestCases/incomp_navierstokes/sphere/sphere.cfg @@ -0,0 +1,104 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: laminar flow around a sphere % +% Author: Nijso Beishuizen % +% Institution: Technische Universiteit Eindhoven % +% Date: 2024.05.05 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= INC_NAVIER_STOKES +KIND_TURB_MODEL= NONE +RESTART_SOL= YES +INC_NONDIM= DIMENSIONAL + +% ---------------- INCOMPRESSIBLE FLOW CONDITION DEFINITION -------------------% +% Re = rho*V*D/mu = 1*1*2.0/2.0 = 1.0 +INC_DENSITY_MODEL= CONSTANT +INC_ENERGY_EQUATION= NO +INC_DENSITY_INIT= 1.0 + +INC_VELOCITY_INIT= (1.0, 0.0, 0.0 ) +INC_VELOCITY_REF = 1 +INC_DENSITY_REF = 1.0 + +% --------------------------- VISCOSITY MODEL ---------------------------------% +% +VISCOSITY_MODEL= CONSTANT_VISCOSITY +MU_CONSTANT= 2.0 +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +REF_ORIGIN_MOMENT_X = 0.25 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +% sphere is 1/40 of a complete sphere +% area = pi*r^2 = 3.14159 +% 1/40 slice = 0.07854 +REF_AREA= 0.07854 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +MARKER_HEATFLUX= ( wall, 0.0 ) +MARKER_SYM= ( symmetry_left, symmetry_right ) +MARKER_FAR= ( farfield ) +MARKER_PLOTTING= ( wall ) +MARKER_MONITORING= ( wall ) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +NUM_METHOD_GRAD= GREEN_GAUSS +CFL_NUMBER= 10.0 +CFL_ADAPT= NO +ITER=50000 +VENKAT_LIMITER_COEFF= 0.01 + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= ILU +LINEAR_SOLVER_ERROR= 1E-05 +LINEAR_SOLVER_ITER= 5 + +% -------------------------- MULTIGRID PARAMETERS -----------------------------% +% +MGLEVEL= 1 +MGCYCLE= V_CYCLE +MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) +MG_POST_SMOOTH= ( 1, 1, 1, 1 ) +MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1 ) +MG_DAMP_RESTRICTION= 0.6 +MG_DAMP_PROLONGATION= 0.6 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +CONV_NUM_METHOD_FLOW= FDS +MUSCL_FLOW= YES +SLOPE_LIMITER_FLOW= NONE +JST_SENSOR_COEFF= ( 0.5, 0.04 ) +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +CONV_RESIDUAL_MINVAL= -10 +CONV_STARTITER= 10 +CONV_CAUCHY_ELEMS= 100 +CONV_CAUCHY_EPS= 1E-6 + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +MESH_FILENAME= slice_2syms.su2 +MESH_FORMAT= SU2 +SOLUTION_FILENAME= solution_flow.dat +TABULAR_FORMAT= CSV +CONV_FILENAME= history +RESTART_FILENAME= restart_flow.dat +VOLUME_FILENAME= flow +SURFACE_FILENAME= surface_flow +OUTPUT_WRT_FREQ= 100 +WRT_VOLUME_OVERWRITE= YES +SCREEN_OUTPUT= ( INNER_ITER, RMS_PRESSURE, RMS_VELOCITY-X, RMS_VELOCITY-Y, RMS_VELOCITY-Z, LIFT, DRAG) +VOLUME_OUTPUT= ( SOLUTION,PRIMITIVE,RESIDUAL,MULTIGRID, RANK ) diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref index f959a481490..2634fca1ff5 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref @@ -1,2 +1,2 @@ "VARIABLE" , "AVG_DENSITY[0]", "AVG_ENTHALPY[0]", "AVG_NORMALVEL[0]", "DRAG[0]" , "EFFICIENCY[0]" , "FORCE_X[0]" , "FORCE_Y[0]" , "FORCE_Z[0]" , "LIFT[0]" , "MOMENT_X[0]" , "MOMENT_Y[0]" , "MOMENT_Z[0]" , "SIDEFORCE[0]" , "SURFACE_MACH[0]", "SURFACE_MASSFLOW[0]", "SURFACE_MOM_DISTORTION[0]", "SURFACE_PRESSURE_DROP[0]", "SURFACE_SECONDARY[0]", "SURFACE_SECOND_OVER_UNIFORM[0]", "SURFACE_STATIC_PRESSURE[0]", "SURFACE_STATIC_TEMPERATURE[0]", "SURFACE_TOTAL_PRESSURE[0]", "SURFACE_TOTAL_TEMPERATURE[0]", "SURFACE_UNIFORMITY[0]", "AVG_TEMPERATURE[1]", "MAXIMUM_HEATFLUX[1]", "TOTAL_HEATFLUX[1]", "FINDIFF_STEP" -0 , 0.0 , -199999.9862164259, -5.551100000002363e-08, 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , -0.02000000026702864, 5.550999999230055e-08, -0.6560000001543109 , 0.0 , 0.6520000012111282 , 1.1399999999550658 , 319.9999980552093 , -39.999997625272954 , 260.999999568412 , -39.999997625272954 , -0.4999999969612645 , -269.99999818144715, 0.0 , -560.0000008598727, 1e-08 +0 , 0.0 , -300000.0026077032, -3.3306691000000184e-08, 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , -0.01999999887924986, 0.0 , -0.9000000009140585 , 0.0 , 0.9379999998948563 , 1.649999997743734 , 419.99999780273356 , -69.99999868639861 , 358.9999998609983 , -69.99999868639861 , -0.6000000052353016 , -380.0000001774606, 0.0 , -430.00000005122274, 1e-08 diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg index 8ff23f71359..d7c2698fc10 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg @@ -22,7 +22,7 @@ OUTER_ITER = 31 % CONV_RESIDUAL_MINVAL= -26 SCREEN_OUTPUT= (OUTER_ITER, BGS_PRESSURE[0], BGS_TEMPERATURE[0], BGS_TEMPERATURE[1], STREAMWISE_MASSFLOW[0], STREAMWISE_DP[0], AVG_TEMPERATURE[1], TOTAL_HEATFLUX[0] ) -SCREEN_WRT_FREQ_OUTER= 100 +SCREEN_WRT_FREQ_OUTER= 10 % HISTORY_OUTPUT= ( ITER, RMS_RES[0], RMS_RES[1], STREAMWISE_PERIODIC[0], FLOW_COEFF[0], HEAT[1] ) % diff --git a/TestCases/multiple_ffd/naca0012/of_grad_cd.dat.ref b/TestCases/multiple_ffd/naca0012/of_grad_cd.dat.ref index 81759ef4cd7..bce05aa9bf6 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.0767137 , 0.001 - 1 , -0.113024 , 0.001 + 0 , 0.0779208 , 0.001 + 1 , -0.115959 , 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 da2e3f10472..74adba36fa1 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.05685349197 , -0.4081397694 , 0.05417489043 , 0.1233787706 , 0.0 , 0.1221675908 , 0.0 , 0.0 , 0.009249264651 , 0.0 - 1 , -0.08020555475 , 8.976256797 , -0.08614647972 , 0.2713937953 , 0.0 , 0.2732084865 , 0.0 , 0.0 , 0.00847918122 , 0.0 + 0 , 0.06149476303 , -0.608748249 , 0.05888315926 , 0.1203589365 , 0.0 , 0.119045765 , 0.0 , 0.0 , 0.009719951712 , 0.0 + 1 , -0.08536237383 , 8.303168487 , -0.09097907726 , 0.2564786779 , 0.0 , 0.2584023411 , 0.0 , 0.0 , 0.004460595335 , 0.0 diff --git a/TestCases/navierstokes/cylinder/lam_cylinder.cfg b/TestCases/navierstokes/cylinder/lam_cylinder.cfg index 8c0efd53259..eb03eb6c121 100644 --- a/TestCases/navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/navierstokes/cylinder/lam_cylinder.cfg @@ -42,7 +42,7 @@ MARKER_MONITORING= ( cylinder ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 4.0 +CFL_NUMBER= 500.0 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/navierstokes/flatplate/lam_flatplate.cfg b/TestCases/navierstokes/flatplate/lam_flatplate.cfg index 34f572d5598..75541961acc 100644 --- a/TestCases/navierstokes/flatplate/lam_flatplate.cfg +++ b/TestCases/navierstokes/flatplate/lam_flatplate.cfg @@ -46,7 +46,7 @@ MARKER_ANALYZE= (inlet, outlet) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 10000 +CFL_NUMBER= 1000 CFL_ADAPT= NO % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% @@ -60,11 +60,11 @@ LINEAR_SOLVER_ITER= 3 % MGLEVEL= 3 MGCYCLE= V_CYCLE -MG_PRE_SMOOTH= ( 1, 1, 1, 2 ) -MG_POST_SMOOTH= ( 0, 1, 1, 0 ) +MG_PRE_SMOOTH= ( 1, 2, 3, 0 ) +MG_POST_SMOOTH= ( 1, 1, 1, 0 ) MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) -MG_DAMP_RESTRICTION= 0.75 -MG_DAMP_PROLONGATION= 0.75 +MG_DAMP_RESTRICTION= 0.8 +MG_DAMP_PROLONGATION= 0.8 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % @@ -78,7 +78,7 @@ TIME_DISCRE_FLOW= EULER_IMPLICIT CONV_FIELD= RMS_DENSITY CONV_RESIDUAL_MINVAL= -12 CONV_STARTITER= 10 -ITER= 500 +ITER= 5000 % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % diff --git a/TestCases/nicf/edge/edge_PPR.cfg b/TestCases/nicf/edge/edge_PPR.cfg index 759187d1229..34fdba91303 100644 --- a/TestCases/nicf/edge/edge_PPR.cfg +++ b/TestCases/nicf/edge/edge_PPR.cfg @@ -10,7 +10,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% +% SOLVER= EULER MATH_PROBLEM= DIRECT RESTART_SOL= NO @@ -50,11 +50,11 @@ MARKER_MONITORING= ( WALL1 ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 10 -CFL_ADAPT= NO -CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) +CFL_NUMBER= 2.5 +CFL_ADAPT= YES +CFL_ADAPT_PARAM= ( 0.9, 1.1, 1.0, 200.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) -ITER= 500 +ITER= 51 % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% % @@ -65,8 +65,8 @@ LINEAR_SOLVER_ITER= 10 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % -MGLEVEL= 2 -MGCYCLE= V_CYCLE +MGLEVEL= 3 +MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) MG_POST_SMOOTH= ( 0, 0, 0, 0 ) MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) @@ -83,6 +83,7 @@ JST_SENSOR_COEFF= ( 0.5, 0.02 ) TIME_DISCRE_FLOW= EULER_IMPLICIT % --------------------------- CONVERGENCE PARAMETERS --------------------------% +% CONV_RESIDUAL_MINVAL= -12 CONV_STARTITER= 10 CONV_CAUCHY_ELEMS= 100 diff --git a/TestCases/nicf/edge/edge_VW.cfg b/TestCases/nicf/edge/edge_VW.cfg index 2646c8efb40..add439803e6 100644 --- a/TestCases/nicf/edge/edge_VW.cfg +++ b/TestCases/nicf/edge/edge_VW.cfg @@ -51,9 +51,9 @@ MARKER_MONITORING= ( WALL1 ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 10 -CFL_ADAPT= NO -CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) +CFL_NUMBER= 2.0 +CFL_ADAPT= YES +CFL_ADAPT_PARAM= ( 0.9, 1.1, 1.0, 200.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) ITER= 500 @@ -66,13 +66,13 @@ LINEAR_SOLVER_ITER= 10 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % -MGLEVEL= 2 -MGCYCLE= V_CYCLE +MGLEVEL= 3 +MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) -MG_POST_SMOOTH= ( 0, 0, 0, 0 ) +MG_POST_SMOOTH= ( 1, 1, 1, 1 ) MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) -MG_DAMP_RESTRICTION= 0.9 -MG_DAMP_PROLONGATION= 0.9 +MG_DAMP_RESTRICTION= 0.85 +MG_DAMP_PROLONGATION= 0.85 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index f981186a3eb..4cad2c9789c 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 = [-15.313265, -15.180884, -15.291808, -8.488238, -15.010141, -15.920950] + cfd_flamelet_ch4.test_vals = [-13.665072, -12.593885, -14.249600, -6.069756, -14.816937, -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 = [-11.054149, -12.276393, -11.299388, -13.877670, -6.291548] + cfd_flamelet_ch4_axi.test_vals = [-10.935396, -11.476692, -11.302574, -12.734435, -6.110559] 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 = [-10.072805, -11.301138, -4.658971, -13.158224, -11.087511] + cfd_flamelet_ch4_partial_premix.test_vals = [-9.641526, -11.303947, -3.675920, -13.158386, -11.087893] 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 = [-10.003106, -9.843748, -3.289857, -11.338273] + cfd_flamelet_h2.test_vals = [-9.999540, -9.843936, -3.290033, -11.338454] cfd_flamelet_h2.new_output = True test_list.append(cfd_flamelet_h2) @@ -112,8 +112,8 @@ def main(): invwedge_a.cfg_dir = "nonequilibrium/invwedge" invwedge_a.cfg_file = "invwedge_ausm.cfg" invwedge_a.test_iter = 10 - invwedge_a.test_vals = [-1.042842, -1.567605, -18.301264, -18.628631, -18.574668, 2.275192, 1.879772, 5.319421, 0.873699] - invwedge_a.test_vals_aarch64 = [-1.042842, -1.567605, -18.301374, -18.628734, -18.574780, 2.275192, 1.879772, 5.319421, 0.873699] + invwedge_a.test_vals = [-1.069675, -1.594438, -18.299923, -18.627316, -18.573325, 2.245721, 1.874105, 5.290285, 0.847729] + invwedge_a.test_vals_aarch64 = [-1.070904, -1.595667, -18.299980, -18.627372, -18.573382, 2.244654, 1.871030, 5.289134, 0.846502] test_list.append(invwedge_a) # Inviscid single wedge, ausm+-up2, implicit @@ -121,8 +121,8 @@ def main(): invwedge_ap2.cfg_dir = "nonequilibrium/invwedge" invwedge_ap2.cfg_file = "invwedge_ausmplusup2.cfg" invwedge_ap2.test_iter = 10 - invwedge_ap2.test_vals = [-0.952589, -1.477352, -16.736014, -17.064021, -17.009120, 2.387086, 1.287286, 5.403046, 0.956402] - invwedge_ap2.test_vals_aarch64 = [-0.952589, -1.477352, -16.736014, -17.064021, -17.009120, 2.387086, 1.287286, 5.403046, 0.956402] + invwedge_ap2.test_vals = [-0.982059, -1.506822, -16.735977, -17.063993, -17.009083, 2.354326, 1.482256, 5.373931, 0.927155] + invwedge_ap2.test_vals_aarch64 = [-0.982059, -1.506822, -16.735977, -17.063993, -17.009083, 2.354326, 1.482256, 5.373931, 0.927155] test_list.append(invwedge_ap2) # Inviscid single wedge, msw, implicit @@ -130,8 +130,8 @@ def main(): invwedge_msw.cfg_dir = "nonequilibrium/invwedge" invwedge_msw.cfg_file = "invwedge_msw.cfg" invwedge_msw.test_iter = 10 - invwedge_msw.test_vals = [-1.165957, -1.690720, -18.298756, -18.626164, -18.572159, 2.151638, 1.721236, 5.193813, 0.751584] - invwedge_msw.test_vals_aarch64 = [-1.165957, -1.690720, -18.301301, -18.628685, -18.574704, 2.151638, 1.721236, 5.193813, 0.751584] + invwedge_msw.test_vals = [-1.212335, -1.737098, -18.299220, -18.626618, -18.572623, 2.106171, 1.651949, 5.143958, 0.704444] + invwedge_msw.test_vals_aarch64 = [-1.224649, -1.749412, -18.299151, -18.626550, -18.572552, 2.094106, 1.635779, 5.131012, 0.692821] test_list.append(invwedge_msw) # Inviscid single wedge, roe, implicit @@ -139,8 +139,8 @@ def main(): invwedge_roe.cfg_dir = "nonequilibrium/invwedge" invwedge_roe.cfg_file = "invwedge_roe.cfg" invwedge_roe.test_iter = 10 - invwedge_roe.test_vals = [-1.038582, -1.563344, -18.300307, -18.627706, -18.573706, 2.278987, 1.861307, 5.323753, 0.874900] - invwedge_roe.test_vals_aarch64 = [-1.038582, -1.563344, -18.299879, -18.627263, -18.573276, 2.278987, 1.861307, 5.323753, 0.874900] + invwedge_roe.test_vals = [-1.062496, -1.587259, -17.208314, -17.538065, -17.481444, 2.255933, 1.853450, 5.293725, 0.890784] + invwedge_roe.test_vals_aarch64 = [-1.069128, -1.593891, -17.208222, -17.537969, -17.481352, 2.249020, 1.852904, 5.287143, 0.879852] test_list.append(invwedge_roe) # Inviscid single wedge, lax, implicit @@ -148,8 +148,8 @@ def main(): invwedge_lax.cfg_dir = "nonequilibrium/invwedge" invwedge_lax.cfg_file = "invwedge_lax.cfg" invwedge_lax.test_iter = 10 - invwedge_lax.test_vals = [-1.075662, -1.600425, -32.000000, -32.000000, -24.972431, 2.252952, 1.725158, 5.282140, 0.848823] - invwedge_lax.test_vals_aarch64 = [-1.075662, -1.600425, -32.000000, -32.000000, -24.972431, 2.252952, 1.725158, 5.282140, 0.848823] + invwedge_lax.test_vals = [-0.877280, -1.402043, -32.000000, -32.000000, -24.952631, 2.451869, 1.857084, 5.486158, 1.051580] + invwedge_lax.test_vals_aarch64 = [-0.877280, -1.402043, -32.000000, -32.000000, -24.952631, 2.451869, 1.857084, 5.486158, 1.051580] test_list.append(invwedge_lax) # Inviscid single wedge, implicit, AUSM+M scheme @@ -157,8 +157,8 @@ def main(): invwedge_ausm_m.cfg_dir = "nonequilibrium/invwedge" invwedge_ausm_m.cfg_file = "invwedge_am.cfg" invwedge_ausm_m.test_iter = 10 - invwedge_ausm_m.test_vals = [-1.055083, -1.579845, -16.739725, -17.063618, -17.012831, 2.265430, 1.797602, 5.302740, 0.856548] - invwedge_ausm_m.test_vals_aarch64 = [-1.055079, -1.579842, -16.739725, -17.063618, -17.012831, 2.265433, 1.797600, 5.302743, 0.856551] + invwedge_ausm_m.test_vals = [-1.173033, -1.697796, -16.739586, -17.063491, -17.012692, 2.124519, 1.963804, 5.182881, 0.747539] + invwedge_ausm_m.test_vals_aarch64 = [-1.171654, -1.696417, -16.739585, -17.063491, -17.012691, 2.125633, 1.966511, 5.184281, 0.749068] test_list.append(invwedge_ausm_m) # Inviscid single wedge, implicit, NEMO supersonic inlet @@ -166,8 +166,8 @@ def main(): invwedge_ss_inlet.cfg_dir = "nonequilibrium/invwedge" invwedge_ss_inlet.cfg_file = "invwedge_ss_inlet.cfg" invwedge_ss_inlet.test_iter = 10 - invwedge_ss_inlet.test_vals = [-1.042718, -1.567481, -18.250175, -18.579516, -18.523248, 2.275305, 1.880068, 5.319548, 0.873821] - invwedge_ss_inlet.test_vals_aarch64 = [-1.042718, -1.567481, -18.250175, -18.579516, -18.523248, 2.275305, 1.880068, 5.319548, 0.873821] + invwedge_ss_inlet.test_vals = [-1.068592, -1.593355, -18.250183, -18.579524, -18.523255, 2.246972, 1.874197, 5.291273, 0.848771] + invwedge_ss_inlet.test_vals_aarch64 = [-1.069892, -1.594654, -18.250175, -18.579516, -18.523248, 2.245827, 1.871123, 5.290054, 0.847476] test_list.append(invwedge_ss_inlet) # Viscous single cone - axisymmetric @@ -175,8 +175,8 @@ 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.222212, -5.746462, -20.559802, -20.510196, -20.439814, 1.255865, -3.208363, -0.016006, 0.093455, 32633.000000] - visc_cone.test_vals_aarch64 = [-5.222267, -5.746522, -20.559799, -20.510195, -20.440311, 1.255761, -3.208360, -0.016014, 0.093462, 32634.000000] + 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_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) # Viscous single wedge with Mutation++ @@ -192,7 +192,7 @@ def main(): super_cat.cfg_dir = "nonequilibrium/visc_wedge" super_cat.cfg_file = "super_cat.cfg" super_cat.test_iter = 10 - super_cat.test_vals = [-5.232590, -5.757884, -20.641547, -20.640244, -20.539243, 1.246889, -3.205235, -0.028406, 0.250857, 32459.000000] + super_cat.test_vals = [-5.232595, -5.757889, -20.641415, -20.640623, -20.541670, 1.246866, -3.205258, -0.028372, 0.250647, 32440.000000] test_list.append(super_cat) # Viscous single wedge - partially catalytic walls @@ -200,7 +200,7 @@ def main(): partial_cat.cfg_dir = "nonequilibrium/visc_wedge" partial_cat.cfg_file = "partial_cat.cfg" partial_cat.test_iter = 10 - partial_cat.test_vals = [-5.210300, -5.735063, -20.880374, -20.825890, -23.475263, 1.806281, -2.813924, -0.078469, 0.496017, 29021.000000] + partial_cat.test_vals = [-5.210302, -5.735065, -20.880448, -20.825971, -23.475263, 1.806201, -2.813952, -0.078400, 0.495606, 29020.000000] test_list.append(partial_cat) # Viscous cylinder, ionization, Gupta-Yos @@ -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.647975, 2.818090, 0.022280, 0.004644] + channel.test_vals = [-2.904385, 2.536048, 0.020906, 0.042348] 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.014140, -3.537888, 0.333403, 0.021227] + naca0012.test_vals = [-4.322128, -3.813578, 0.321660, 0.022547] 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 = [-0.944740, 4.782451, -0.208522, 0.036742] + wedge.test_vals = [-1.406716, 4.253025, -0.244411, 0.043089] 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 = [-9.277150, -8.694005, 0.281703, 0.011821] + oneram6.test_vals = [-11.512364, -10.982009, 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 = [-7.379831, -1.886302, 0.300000, 0.019471] + fixedCL_naca0012.test_vals = [-3.856871, 1.676974, 0.301113, 0.019487] test_list.append(fixedCL_naca0012) # Polar sweep of the inviscid NACA0012 @@ -262,8 +262,8 @@ def main(): polar_naca0012.cfg_file = "inv_NACA0012.cfg" polar_naca0012.polar = True polar_naca0012.test_iter = 10 - polar_naca0012.test_vals = [-1.217981, 4.256386, 0.009084, 0.016823] - polar_naca0012.test_vals_aarch64 = [-1.718925, 3.711429, 0.009217, 0.007784] + polar_naca0012.test_vals = [-1.086730, 4.382703, 0.001762, 0.033013] + 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 polar_naca0012.enabled_on_cpu_arch = ["x86_64"] @@ -274,7 +274,7 @@ def main(): bluntbody.cfg_dir = "euler/bluntbody" bluntbody.cfg_file = "blunt.cfg" bluntbody.test_iter = 20 - bluntbody.test_vals = [0.540009, 6.916653, 0.000000, 1.868976] + bluntbody.test_vals = [0.493672, 6.857839, -0.000002, 1.791404] 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.076215, -0.391987, -0.000701, 67775.000000] + ea_naca64206.test_vals = [-1.151334, -0.455927, -0.003879, 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.399623, -7.788893, -0.081064, 0.056474] + ramp.test_vals = [-13.648694, -8.010920, -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 = [-9.336395, -3.849426, 0.001112, 0.036276, 2.361500, -2.325300, -2.279700, -2.279700] + flatplate.test_vals = [-7.621750, -2.149876, 0.001084, 0.036232, 2.361500, -2.325300, -1.815200, -1.815200] 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.653802, -1.181430, -0.794887, 0.000611, -0.000369, 0.000736, -0.001104, 596.690000, 299.800000, 296.890000, 21.492000, 0.563990, 37.148000, 2.278700] + flatplate_udobj.test_vals = [-6.664134, -1.190073, -0.954366, 0.000641, -0.000633, 0.000548, -0.001181, 596.940000, 300.020000, 296.920000, 22.201000, 0.525750, 37.278000, 2.347900] test_list.append(flatplate_udobj) # Laminar cylinder (steady) @@ -319,7 +319,7 @@ def main(): cylinder.cfg_dir = "navierstokes/cylinder" cylinder.cfg_file = "lam_cylinder.cfg" cylinder.test_iter = 25 - cylinder.test_vals = [-6.754517, -1.286785, -0.213640, 0.706519, 0.158870] + cylinder.test_vals = [-8.421986, -2.931138, -0.003382, 1.607685, -0.009905] test_list.append(cylinder) # Laminar cylinder (low Mach correction) @@ -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.147727, -6.728308, -0.176232, 0.057717] + turb_flatplate.test_vals = [-4.147387, -6.728398, -0.176234, 0.057709] 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.147727, -0.634899, -1.770894, 1.334987, -3.250340, 9.000000, -6.700853, 5.000000, -6.991055, 10.000000, -6.033829, 0.996033, 0.996033] + turb_flatplate_species.test_vals = [-4.147387, -0.634805, -1.769879, 1.335329, -3.250300, 9.000000, -6.694977, 5.000000, -6.991166, 10.000000, -6.033066, 0.996034, 0.996034] 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.280847, 1.974242, 1.440510, 5.038429, -4.051126, 8.520857] + turb_flatplate_CC_Wilcox.test_vals = [-1.280875, 1.974212, 1.440458, 5.038402, -4.051125, 8.521136] 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.280847, 1.974242, 1.440510, 5.038429, -4.051129, 8.520857] + turb_flatplate_CC_Sarkar.test_vals = [-1.280875, 1.974212, 1.440458, 5.038402, -4.051128, 8.521136] 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.388839, -6.689426, 0.230321, 0.157640, -32539.000000] + turb_oneram6.test_vals = [-2.392865, -6.689822, 0.230746, 0.158811, -33786.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.262387, -6.626454, 0.228392, 0.140799, -27107.000000] + turb_oneram6_vc.test_vals = [-2.266212, -6.628059, 0.228692, 0.142105, -28396.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.892252, -4.514006, -11.432306, 0.221025, 0.045570, 2.000000, -0.899460, 31.384000] + turb_oneram6_nk.test_vals = [-4.803402, -4.393783, -11.445194, 0.218505, 0.048793, 4.000000, -0.607076, 25.924000] turb_oneram6_nk.timeout = 600 turb_oneram6_nk.tol = 0.0001 test_list.append(turb_oneram6_nk) @@ -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.063597, -7.006585, -8.702557, -4.039824, -2019.8] + axi_rans_air_nozzle_restart.test_vals = [-12.150822, -6.604726, -9.187292, -4.518261, -2019.700000] 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 = [-4.801273, -3.773079, 0.495236, 0.007346] + inc_euler_naca0012.test_vals = [-7.141428, -6.403478, 0.531992, 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 = [-5.982321, -4.953536, 0.000454, 0.121390] + inc_nozzle.test_vals = [-6.308730, -5.512525, -0.004405, 0.126629] test_list.append(inc_nozzle) ############################# @@ -581,6 +581,14 @@ def main(): inc_lam_cylinder.test_vals = [-4.004072, -3.194881, -0.076553, 7.780048] test_list.append(inc_lam_cylinder) + # Laminar sphere, Re=1. Last column: Cd=24/Re + inc_lam_sphere = TestCase('inc_lam_sphere') + 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, -8.032107, 0.121003, 25.782687] + test_list.append(inc_lam_sphere) + # Buoyancy-driven cavity inc_buoyancy = TestCase('inc_buoyancy') inc_buoyancy.cfg_dir = "incomp_navierstokes/buoyancy_cavity" @@ -602,7 +610,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.447746, -3.085237, -0.020816, 1.147373] + inc_lam_bend.test_vals = [-3.550744, -3.220213, -0.017606, 1.015086] test_list.append(inc_lam_bend) # 3D laminar channnel with 1 cell in flow direction, streamwise periodic @@ -618,7 +626,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.242651, -7.341179, -7.407346, -0.152603, -1667.300000] + inc_heatTransfer_BC.test_vals = [-8.201114, -7.405807, -7.555676, -0.113666, -1671.700000] test_list.append(inc_heatTransfer_BC) ############################ @@ -769,7 +777,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 = [-7.994740, -13.240225, 0.000046, 0.007987] + schubauer_klebanoff_transition.test_vals = [-8.058933, -13.242001, 0.000048, 0.007993] test_list.append(schubauer_klebanoff_transition) ##################################### @@ -781,7 +789,7 @@ def main(): contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012" contadj_naca0012.cfg_file = "inv_NACA0012.cfg" contadj_naca0012.test_iter = 5 - contadj_naca0012.test_vals = [-9.300816, -14.587365, 0.300920, 0.019552] + contadj_naca0012.test_vals = [-9.662585, -14.998832, -0.726250, 0.020280] test_list.append(contadj_naca0012) # Inviscid ONERA M6 @@ -789,7 +797,7 @@ def main(): contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6" contadj_oneram6.cfg_file = "inv_ONERAM6.cfg" contadj_oneram6.test_iter = 10 - contadj_oneram6.test_vals = [-12.130993, -12.702085, 0.685900, 0.007594] + contadj_oneram6.test_vals = [-12.032190, -12.587083, -1.086100, 0.007556] test_list.append(contadj_oneram6) # Inviscid WEDGE: tests averaged outflow total pressure adjoint @@ -797,7 +805,7 @@ def main(): contadj_wedge.cfg_dir = "cont_adj_euler/wedge" contadj_wedge.cfg_file = "inv_wedge_ROE.cfg" contadj_wedge.test_iter = 10 - contadj_wedge.test_vals = [2.872691, -2.755572, 853010.000000, -0.000000] + contadj_wedge.test_vals = [2.872064, -2.756210, 1010800.000000, 0.000000] test_list.append(contadj_wedge) # Inviscid fixed CL NACA0012 @@ -805,7 +813,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.275856, -5.200511, 0.342710, 0.000105] + contadj_fixed_CL_naca0012.test_vals = [0.748438, -4.810920, -0.520110, -0.000292] test_list.append(contadj_fixed_CL_naca0012) ################################### @@ -921,7 +929,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.589739, 0.790169, 0.937053, 3.922579] + harmonic_balance.test_vals = [-1.554985, 0.831796, 0.935729, 3.960210] test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil @@ -942,7 +950,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.698005, 2.845328, -0.079439, 0.002128] + rot_naca0012.test_vals = [-2.709459, 2.836670, -0.081188, 0.002156] test_list.append(rot_naca0012) # Lid-driven cavity @@ -979,7 +987,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.977520, 3.481804, -0.012377, -0.007389] + sine_gust.test_vals = [-1.977514, 3.481817, -0.010609, -0.007956] sine_gust.unsteady = True test_list.append(sine_gust) @@ -988,7 +996,7 @@ def main(): aeroelastic.cfg_dir = "aeroelastic" aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" aeroelastic.test_iter = 2 - aeroelastic.test_vals = [0.076550, 0.033042, -0.001650, -0.000127] + aeroelastic.test_vals = [0.075176, 0.027496, -0.001643, -0.000126] aeroelastic.unsteady = True test_list.append(aeroelastic) @@ -997,7 +1005,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.714757, -5.882779, -0.215005, 0.023783, -618.130000] + ddes_flatplate.test_vals = [-2.714785, -5.882679, -0.215041, 0.023758, -617.450000] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) @@ -1015,7 +1023,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 = [7.9509e-06, -8.868859, -8.231652, -6.283262, -5.466675, -3.391163, 0.002078, -0.343642] + flatplate_unsteady.test_vals = [0.000008, -8.876477, -8.249920, -6.294138, -5.468911, -3.398657, 0.002075, -0.324341] flatplate_unsteady.unsteady = True test_list.append(flatplate_unsteady) @@ -1027,16 +1035,16 @@ def main(): edge_VW = TestCase('edge_VW') edge_VW.cfg_dir = "nicf/edge" edge_VW.cfg_file = "edge_VW.cfg" - edge_VW.test_iter = 100 - edge_VW.test_vals = [-5.048044, 1.115667, -0.000009, 0.000000] + edge_VW.test_iter = 50 + edge_VW.test_vals = [-8.107432, -1.914195, -0.000009, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR edge_PPR = TestCase('edge_PPR') edge_PPR.cfg_dir = "nicf/edge" edge_PPR.cfg_file = "edge_PPR.cfg" - edge_PPR.test_iter = 100 - edge_PPR.test_vals = [-5.400790, 0.739723, -0.000035, 0.000000] + edge_PPR.test_iter = 50 + edge_PPR.test_vals = [-8.611983, -2.441992, -0.000034, 0.000000] test_list.append(edge_PPR) # Rarefaction Q1D nozzle, include CoolProp fluid model @@ -1044,7 +1052,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.525459, -1.578697, 3.443116, 0.000000, 0.000000] + coolprop_fluidModel.test_vals = [-4.424953, -1.582877, 3.442422, 0.000000, 0.000000] coolprop_fluidModel.enabled_on_cpu_arch = ["x86_64"] test_list.append(coolprop_fluidModel) @@ -1053,7 +1061,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.527922, -1.308648, 4.630717, 0.000000, 0.000000] + coolprop_transportModel.test_vals = [-4.428098, -1.314332, 4.630872, 0.000000, 0.000000] coolprop_transportModel.enabled_on_cpu_arch = ["x86_64"] test_list.append(coolprop_transportModel) @@ -1062,7 +1070,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 = [-2.623890, 0.145236, 4.688439, 0.000000, 0.000000] + datadriven_fluidModel.test_vals = [-2.632817, 0.155922, 4.690917, 0.000000, 0.000000] test_list.append(datadriven_fluidModel) ###################################### @@ -1113,7 +1121,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.188747, -10.631538] + uniform_flow.test_vals = [5.000000, 0.000000, -0.185381, -10.631539] uniform_flow.unsteady = True uniform_flow.multizone = True test_list.append(uniform_flow) @@ -1123,7 +1131,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.398011, 0.352778, 0.405461] + channel_2D.test_vals = [2.000000, 0.000000, 0.419792, 0.352177, 0.404446] channel_2D.test_vals_aarch64 = [2.000000, 0.000000, 0.398036, 0.352783, 0.405462] channel_2D.timeout = 100 channel_2D.unsteady = True @@ -1135,7 +1143,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.620176, 0.505161, 0.415248] + channel_3D.test_vals = [2.000000, 0.000000, 0.623113, 0.505078, 0.412774] channel_3D.test_vals_aarch64 = [2.000000, 0.000000, 0.620182, 0.505302, 0.415257] channel_3D.unsteady = True channel_3D.multizone = True @@ -1146,7 +1154,7 @@ def main(): pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 - pipe.test_vals = [0.150024, 0.491953, 0.677755, 0.963980, 1.006936] + pipe.test_vals = [0.116649, 0.481389, 0.648696, 0.982990, 1.018349] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) @@ -1156,7 +1164,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.777572, 1.134804, 1.224137] + rotating_cylinders.test_vals = [3.000000, 0.000000, 0.719777, 1.111044, 1.154071] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) @@ -1166,7 +1174,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.214350, 1.663914] + supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.207949, 1.036090] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) @@ -1230,7 +1238,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.743210, -4.133483] + fsi2d.test_vals = [4.000000, 0.000000, -3.729224, -4.153951] fsi2d.command = TestCase.Command(exec = "parallel_computation_fsi.py", param = "-f") fsi2d.multizone= True fsi2d.unsteady = True @@ -1241,7 +1249,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.296605, -4.934646, 0.000000, 7.000000] + stat_fsi.test_vals = [-3.311842, -4.950580, 0.000000, 8.000000] stat_fsi.multizone = True test_list.append(stat_fsi) @@ -1250,7 +1258,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.355829, -4.060587, 5.3837e-08, 98] + dyn_fsi.test_vals = [-4.330462, -4.058005, 0.000000, 97.000000] dyn_fsi.multizone = True dyn_fsi.unsteady = True test_list.append(dyn_fsi) @@ -1260,7 +1268,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.435926, -4.264912, 0.000000, 28.000000] + stat_fsi_restart.test_vals = [-3.445617, -4.243213, 0.000000, 28.000000] stat_fsi_restart.multizone = True test_list.append(stat_fsi_restart) @@ -1317,7 +1325,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.104306, -1.005859, -1.028870, -0.753282, 208.023676, 353.490000, -0.000000, -0.753280, 0.753280] + sp_pinArray_cht_2d_dp_hf.test_vals = [0.088580, -0.764276, -1.086940, -0.747450, 208.023676, 344.680000, -0.000000, -0.747450, 0.747450] sp_pinArray_cht_2d_dp_hf.multizone = True test_list.append(sp_pinArray_cht_2d_dp_hf) @@ -1326,8 +1334,8 @@ 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 = [-5.128577, -5.425081, -6.788413, -0.009675, 104.655438, 419.210000, 0.0] - sp_pinArray_3d_cht_mf_hf_tp.test_vals_aarch64 = [-5.128577, -5.425081, -6.788413, -0.009675, 104.655438, 419.210000, 0.0] + sp_pinArray_3d_cht_mf_hf_tp.test_vals = [-1.627413, -3.083567, -4.577909, -0.009725, 104.632413, 418.370000, 0.000000] + sp_pinArray_3d_cht_mf_hf_tp.test_vals_aarch64 = [-1.622914, -3.081114, -4.576282, -0.009725, 104.632412, 418.370000, 0.000000] sp_pinArray_3d_cht_mf_hf_tp.multizone = True test_list.append(sp_pinArray_3d_cht_mf_hf_tp) @@ -1340,7 +1348,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 = [-6.747210, -6.149915, 0.333445, 0.021241] + pywrapper_naca0012.test_vals = [-9.569885, -8.966579, 0.335418, 0.023332] pywrapper_naca0012.command = TestCase.Command("mpirun -np 2", "SU2_CFD.py", "--parallel -f") test_list.append(pywrapper_naca0012) @@ -1371,7 +1379,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.076550, 0.033042, -0.001650, -0.000127] + pywrapper_aeroelastic.test_vals = [0.075176, 0.027496, -0.001643, -0.000126] pywrapper_aeroelastic.command = TestCase.Command("mpirun -np 2", "SU2_CFD.py", "--parallel -f") pywrapper_aeroelastic.unsteady = True test_list.append(pywrapper_aeroelastic) @@ -1391,7 +1399,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.743210, -4.133483] + pywrapper_fsi2d.test_vals = [4.000000, 0.000000, -3.729224, -4.153951] 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 @@ -1402,7 +1410,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, 31, 5, 58, -1.756780, -2.828276, -7.652558, -6.863929, 1.5618e-04] + pywrapper_unsteadyFSI.test_vals = [0.000000, 49.000000, 5.000000, 44.000000, -0.589089, -2.800967, -2.603174, -6.722478, 0.000209] pywrapper_unsteadyFSI.command = TestCase.Command("mpirun -np 2", "python", "run.py") pywrapper_unsteadyFSI.unsteady = True pywrapper_unsteadyFSI.multizone = True @@ -1433,7 +1441,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, -2.554360, -1.084594, -0.024882, 2.907803, 8.785498, -0.363585] + pywrapper_deformingBump.test_vals = [0.500000, 0.000000, -3.037857, -1.603573, -2.074205, 2.424288, 7.765352, -0.220502] pywrapper_deformingBump.command = TestCase.Command("mpirun -np 2", "python", "run.py") pywrapper_deformingBump.unsteady = True test_list.append(pywrapper_deformingBump) @@ -1505,7 +1513,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.359429, -4.504612, -4.480004, -5.629196, -0.059934, -5.596051, 5.000000, -1.870943, 5.000000, -4.915279, 5.000000, -1.183531, 0.000429, 0.000393, 0.000036, 0.000000] + species2_primitiveVenturi_mixingmodel.test_vals = [ -5.407755, -4.557255, -4.635502, -5.642910, -0.059627, -5.546376, 5.000000, -1.879995, 5.000000, -4.898985, 5.000000, -1.169389, 0.000551, 0.000483, 0.000068, 0.000000] test_list.append(species2_primitiveVenturi_mixingmodel) # 2 species (1 eq) primitive venturi mixing using mixing model and bounded scalar transport @@ -1513,7 +1521,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.336209, -4.445047, -4.432074, -5.785385, -0.127631, -5.672217, 5.000000, -1.944369, 5.000000, -4.878272, 5.000000, -1.806657, 0.000272, 0.000272, 0.000000, 0.000000] + species2_primitiveVenturi_mixingmodel_boundedscalar.test_vals = [-5.392378, -4.492373, -4.576491, -5.759780, -0.137797, -5.677531, 5.000000, -1.895013, 5.000000, -4.806816, 5.000000, -1.697769, 0.000275, 0.000275, 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 @@ -1521,7 +1529,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.843481, -3.585988, -3.486593, -7.560545, -5.094245, 5.000000, -1.898097, 5.000000, -3.328995, 5.000000, -2.113241, 2.482221, 0.974142, 0.607219, 0.900860] + species2_primitiveVenturi_mixingmodel_viscosity.test_vals = [-4.857397, -3.646605, -3.737462, -7.602922, -5.008846, 5.000000, -1.756226, 5.000000, -3.163353, 5.000000, -2.189723, 2.476808, 0.976999, 0.609280, 0.890529] test_list.append(species2_primitiveVenturi_mixingmodel_viscosity) # 2 species (1 eq) primitive venturi mixing using mixing model including heat capacity and mass diffusivity @@ -1529,7 +1537,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 = [-6.118333, -4.985699, -4.918326, -7.249080, 2.445213, -5.624080, 30.000000, -5.681895, 12.000000, -8.186475, 10.000000, -8.853067, 2.083524, 1.000000, 0.600000, 0.483524] + species2_primitiveVenturi_mixingmodel_heatcapacity_H2.test_vals = [-5.688779, -4.556193, -4.513326, -6.563666, 2.298459, -5.423525, 30.000000, -6.903871, 13.000000, -8.224587, 8.000000, -9.119625, 2.078869, 1.000000, 0.600000, 0.478869] 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 @@ -1537,7 +1545,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.724191, -5.290524, -5.223195, -8.252900, 2.140394, -5.229908, 30.000000, -5.681850, 12.000000, -8.186296, 10.000000, -8.852858, 2.083526, 1.000000, 0.600000, 0.483526] + species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.test_vals = [-5.287504, -4.852957, -4.798004, -7.501815, 1.991002, -5.023713, 10.000000, -2.696121, 3.000000, -5.182457, 5.000000, -5.561055, 2.078843, 1.000000, 0.600000, 0.478843] test_list.append(species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND) # 2 species (1 eq) primitive venturi mixing @@ -1545,7 +1553,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.641112, -4.724266, -4.677148, -5.470711, -1.121455, -5.713132, 5.000000, -0.830412, 5.000000, -2.668654, 5.000000, -0.454161, 0.000092, 0.000091, 0.000001, 0.000000] + species2_primitiveVenturi.test_vals = [-5.643794, -4.798953, -4.858719, -5.648947, -1.195985, -5.564607, 5.000000, -0.958960, 5.000000, -2.515334, 5.000000, -0.796944, 0.000210, 0.000206, 0.000004, 0.000000] test_list.append(species2_primitiveVenturi) # 2 species (1 eq) primitive venturi mixing with bounded scalar transport @@ -1553,7 +1561,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.278467, -4.368236, -4.350556, -5.693359, -0.978845, -5.618393, 5.000000, -1.804015, 5.000000, -4.057089, 5.000000, -2.003816, 0.000415, 0.000415, 0.000000, 0.000000] + species_primitiveVenturi_boundedscalar.test_vals = [-5.283533, -4.417193, -4.478360, -5.669526, -0.952767, -5.618596, 5.000000, -1.996975, 5.000000, -4.017868, 5.000000, -1.747496, 0.000423, 0.000423, 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 @@ -1561,7 +1569,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.026294, -1.649804, -1.404882, -0.746005, 1.609256, -3.767237, 23.000000, -5.082019, 10.000000, -5.056739, 4.000000, -6.480965, 2.000000, 1.000000, 0.000000, 1.000000] + species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.test_vals = [-4.105910, -1.680056, -1.599493, -0.672401, 1.441091, -3.759601, 23.000000, -5.201473, 11.000000, -5.312651, 4.000000, -6.525448, 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. @@ -1570,7 +1578,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.711734, -4.794814, -4.747694, -5.541323, -1.192017, -5.951964, -6.096677, 5.000000, -0.830172, 5.000000, -2.668819, 5.000000, -0.516308] + species3_primitiveVenturi_inletFile.test_vals = [-5.714428, -4.869589, -4.929349, -5.719577, -1.266622, -5.824037, -5.944720, 5.000000, -0.958918, 5.000000, -2.515337, 5.000000, -0.523677] test_list.append(species3_primitiveVenturi_inletFile) # rectangle passive transport validation @@ -1578,7 +1586,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.559189, -16.315116, -16.908670, -4.257599, 10, -4.523292, 8, -5.19335, 0.18661, 0] + 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_aarch64 = [-16.538551, -16.312552, -16.882823, -4.257599, 10, -4.585464, 8, -5.19335, 0.18661, 0] test_list.append(species_passive_val) @@ -1587,7 +1595,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 = [-6.175178, -5.763030] + species3_multizone_restart.test_vals = [-6.111017, -5.720050] species3_multizone_restart.multizone = True test_list.append(species3_multizone_restart) @@ -1631,14 +1639,14 @@ def main(): cfd_flamelet_ch4_cht = TestCase('cfd_flamelet_ch4_cht') cfd_flamelet_ch4_cht.cfg_dir = "flamelet/03_laminar_premixed_ch4_flame_cht_cfd" cfd_flamelet_ch4_cht.cfg_file = "lam_prem_ch4_cht_cfd_master.cfg" - cfd_flamelet_ch4_cht.test_iter = 10 + cfd_flamelet_ch4_cht.test_iter = 5 cfd_flamelet_ch4_cht.command = TestCase.Command("mpirun -n 2", "SU2_CFD") cfd_flamelet_ch4_cht.timeout = 1600 cfd_flamelet_ch4_cht.reference_file = "restart_0.csv.ref" cfd_flamelet_ch4_cht.test_file = "restart_0.csv" cfd_flamelet_ch4_cht.multizone = True cfd_flamelet_ch4_cht.comp_threshold = 1e-6 - cfd_flamelet_ch4_cht.tol_file_percent = 0.1 + cfd_flamelet_ch4_cht.tol_file_percent = 1.0 pass_list.append(cfd_flamelet_ch4_cht.run_filediff()) test_list.append(cfd_flamelet_ch4_cht) @@ -1845,16 +1853,18 @@ def main(): test_list.append(naca0012_cst) # 2D FD streamwise periodic cht, avg temp obj func - fd_sp_pinArray_cht_2d_dp_hf = TestCase('fd_sp_pinArray_cht_2d_dp_hf') - fd_sp_pinArray_cht_2d_dp_hf.cfg_dir = "incomp_navierstokes/streamwise_periodic/chtPinArray_2d" - fd_sp_pinArray_cht_2d_dp_hf.cfg_file = "FD_configMaster.cfg" - fd_sp_pinArray_cht_2d_dp_hf.test_iter = 100 - fd_sp_pinArray_cht_2d_dp_hf.command = TestCase.Command(exec = "finite_differences.py", param = "-z 2 -n 2 -f") - fd_sp_pinArray_cht_2d_dp_hf.timeout = 1600 - fd_sp_pinArray_cht_2d_dp_hf.reference_file = "of_grad_findiff.csv.ref" + fd_sp_pinArray_cht_2d_dp_hf = TestCase('fd_sp_pinArray_cht_2d_dp_hf') + fd_sp_pinArray_cht_2d_dp_hf.cfg_dir = "incomp_navierstokes/streamwise_periodic/chtPinArray_2d" + fd_sp_pinArray_cht_2d_dp_hf.cfg_file = "FD_configMaster.cfg" + fd_sp_pinArray_cht_2d_dp_hf.test_iter = 100 + fd_sp_pinArray_cht_2d_dp_hf.command = TestCase.Command(exec = "finite_differences.py", param = "-z 2 -n 2 -f") + fd_sp_pinArray_cht_2d_dp_hf.timeout = 1600 + fd_sp_pinArray_cht_2d_dp_hf.comp_threshold = 1e-6 + fd_sp_pinArray_cht_2d_dp_hf.tol_file_percent = 0.2 + fd_sp_pinArray_cht_2d_dp_hf.reference_file = "of_grad_findiff.csv.ref" fd_sp_pinArray_cht_2d_dp_hf.reference_file_aarch64 = "of_grad_findiff_aarch64.csv.ref" - fd_sp_pinArray_cht_2d_dp_hf.test_file = "FINDIFF/of_grad_findiff.csv" - fd_sp_pinArray_cht_2d_dp_hf.multizone = True + fd_sp_pinArray_cht_2d_dp_hf.test_file = "FINDIFF/of_grad_findiff.csv" + fd_sp_pinArray_cht_2d_dp_hf.multizone = True pass_list.append(fd_sp_pinArray_cht_2d_dp_hf.run_filediff()) test_list.append(fd_sp_pinArray_cht_2d_dp_hf) diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py index 59576fdc410..b62fed781a3 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.561506, -8.926634, -0.000000, 0.005587] + discadj_naca0012.test_vals = [-3.560692, -8.925239, -0.000000, 0.005559] 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.734502, -3.839637, 0.000000, 0.000000] + discadj_cylinder3D.test_vals = [-3.768909, -3.725727, 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.111181, -3.501516, 6.8705e-02, 0] + discadj_arina2k.test_vals = [-3.540396, -3.828299, 0.027959, 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.181093, 2.471539, -5487700.0, 8.3604] + ea_naca64206.test_vals = [3.182170, 2.473052, -5509000.000000, 5.551800] 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.095412, -2.690483, 0.000000] + discadj_incomp_NACA0012.test_vals = [20.000000, -4.093433, -2.686134, 0.000000] test_list.append(discadj_incomp_NACA0012) ##################################### @@ -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.516464, 5.022130, 7.370705, 2.744551] + discadj_axisymmetric_rans_nozzle.test_vals = [9.550040, 4.937865, 7.377284, 2.748846] 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.223480, -1.639387, -0.007591, 0.000013] + discadj_pitchingNACA0012.test_vals = [-1.227073, -1.648410, -0.007541, 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 = [-2.226539, 0.605868, 0.000000, -6.256400] + discadj_heat.test_vals = [-2.117791, 0.784475, 0.000000, -0.574700] discadj_heat.test_vals_aarch64 = [-2.226539, 0.605868, 0.000000, -6.256400] test_list.append(discadj_heat) @@ -277,7 +277,7 @@ def main(): discadj_fsi2.cfg_dir = "disc_adj_fsi/Airfoil_2d" discadj_fsi2.cfg_file = "config.cfg" discadj_fsi2.test_iter = 8 - discadj_fsi2.test_vals = [-4.349377, 0.192713, -1.303589, 0.75407, 2.3244] + discadj_fsi2.test_vals = [-2.402639, 2.740269, -1.270185, -1.273900, 3.860200] discadj_fsi2.test_vals_aarch64 = [-4.349372, 0.190601, -1.303589, 0.754070, 2.324400] discadj_fsi2.tol = 0.00001 test_list.append(discadj_fsi2) @@ -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.743218, -4.059800, -4.138231] + da_sp_pinArray_cht_2d_dp_hf.test_vals = [-4.706292, -4.062398, -4.137374] 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.611237, -1.290668, -1.453678, -18.507826, -0.859013, -5.755971, -19.067984, -47.993931] + da_sp_pinArray_cht_2d_mf.test_vals = [-4.600710, -1.298285, -1.430286, -18.503417, -0.870017, -5.768271, -19.069555, -47.953298] da_sp_pinArray_cht_2d_mf.multizone = True test_list.append(da_sp_pinArray_cht_2d_mf) @@ -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.520972485907894, 1.3848377455328362, 0.000000] #last 4 columns + pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.506016, 1.407249, 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/py_wrapper/translating_NACA0012/config.cfg b/TestCases/py_wrapper/translating_NACA0012/config.cfg index 8446a5405a1..a7880927239 100644 --- a/TestCases/py_wrapper/translating_NACA0012/config.cfg +++ b/TestCases/py_wrapper/translating_NACA0012/config.cfg @@ -43,27 +43,33 @@ MARKER_DEFORM_MESH= ( airfoil ) % DISCRETIZATION METHODS % CONV_NUM_METHOD_FLOW= ROE -MUSCL_FLOW= YES -NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +MUSCL_FLOW= NO +NUM_METHOD_GRAD= GREEN_GAUSS SLOPE_LIMITER_FLOW= VENKATAKRISHNAN_WANG VENKAT_LIMITER_COEFF= 0.1 % SOLUTION ACCELERATION % -CFL_NUMBER= 1e3 +CFL_NUMBER= 1000 CFL_ADAPT= NO % MGLEVEL= 3 MGCYCLE= W_CYCLE +MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) +MG_POST_SMOOTH= ( 0, 0, 0, 0 ) +MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) +MG_DAMP_RESTRICTION= 0.7 +MG_DAMP_PROLONGATION= 0.7 + % LINEAR_SOLVER= FGMRES LINEAR_SOLVER_PREC= ILU -LINEAR_SOLVER_ERROR= 0.1 -LINEAR_SOLVER_ITER= 10 +LINEAR_SOLVER_ERROR= 1.0e-6 +LINEAR_SOLVER_ITER= 25 % CONVERGENCE PARAMETERS % -ITER= 250 +ITER= 2500 CONV_FIELD= RMS_DENSITY CONV_RESIDUAL_MINVAL= -9 @@ -71,5 +77,5 @@ CONV_RESIDUAL_MINVAL= -9 % MESH_FILENAME= ../../euler/naca0012/mesh_NACA0012_inv.su2 MESH_FORMAT= SU2 -SCREEN_OUTPUT= (INNER_ITER, RMS_RES, LIFT, DRAG, MOMENT_X, MOMENT_Y, MOMENT_Z) +SCREEN_OUTPUT= (INNER_ITER, RMS_RES, LIFT, DRAG, MOMENT_X, MOMENT_Y, MOMENT_Z, LINSOL_RES, LINSOL_ITER) HISTORY_OUTPUT= (INNER_ITER, RMS_RES, AERO_COEFF) diff --git a/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref b/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref index aa9112983d0..56ad73bb9aa 100644 --- a/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref +++ b/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref @@ -1,200 +1,200 @@ -199, -1.01, -0.00, 0.00 -0, -2.07, 14.25, 0.00 -1, -3.62, 24.97, 0.00 -2, -4.84, 33.38, 0.00 -3, -5.85, 40.49, 0.00 -4, -6.69, 46.42, 0.00 -5, -7.36, 51.26, 0.00 -6, -7.92, 55.36, 0.00 -7, -8.34, 58.59, 0.00 -8, -8.64, 61.04, 0.00 -9, -8.83, 62.73, 0.00 -10, -8.91, 63.73, 0.00 -11, -8.90, 64.10, 0.00 -12, -8.79, 63.80, 0.00 -13, -8.59, 62.88, 0.00 -14, -8.31, 61.35, 0.00 -15, -7.95, 59.25, 0.00 -16, -7.53, 56.67, 0.00 -17, -7.05, 53.55, 0.00 -18, -6.50, 49.94, 0.00 -19, -5.90, 45.87, 0.00 -20, -5.26, 41.32, 0.00 -21, -4.57, 36.38, 0.00 -22, -3.85, 31.01, 0.00 -23, -3.09, 25.23, 0.00 -24, -2.31, 19.12, 0.00 -25, -1.51, 12.63, 0.00 -26, -0.68, 5.79, 0.00 -27, 0.16, -1.36, 0.00 -28, 1.01, -8.84, 0.00 -29, 1.86, -16.61, 0.00 -30, 2.72, -24.66, 0.00 -31, 3.58, -32.98, 0.00 -32, 4.43, -41.60, 0.00 -33, 5.28, -50.47, 0.00 -34, 6.11, -59.56, 0.00 -35, 6.93, -68.92, 0.00 -36, 7.73, -78.52, 0.00 -37, 8.50, -88.30, 0.00 -38, 9.24, -98.33, 0.00 -39, 9.95, -108.57, 0.00 -40, 10.62, -118.95, 0.00 -41, 11.24, -129.51, 0.00 -42, 11.81, -140.28, 0.00 -43, 12.33, -151.21, 0.00 -44, 12.78, -162.28, 0.00 -45, 13.15, -173.40, 0.00 -46, 13.44, -184.61, 0.00 -47, 13.64, -195.87, 0.00 -48, 13.73, -207.12, 0.00 -49, 13.72, -218.38, 0.00 -50, 13.58, -229.47, 0.00 -51, 13.30, -240.10, 0.00 -52, 12.85, -250.14, 0.00 -53, 12.31, -261.02, 0.00 -54, 11.62, -271.62, 0.00 -55, 10.32, -270.49, 0.00 -56, 8.26, -248.20, 0.00 -57, 6.94, -245.94, 0.00 -58, 7.97, -348.31, 0.00 -59, 7.61, -440.57, 0.00 -60, 5.11, -448.31, 0.00 -61, 2.28, -436.77, 0.00 -62, -0.53, -428.04, 0.00 -63, -3.36, -418.60, 0.00 -64, -6.17, -407.62, 0.00 -65, -8.93, -395.29, 0.00 -66, -11.62, -381.67, 0.00 -67, -14.20, -367.12, 0.00 -68, -16.64, -351.56, 0.00 -69, -18.92, -335.22, 0.00 -70, -21.01, -318.22, 0.00 -71, -22.89, -300.56, 0.00 -72, -24.52, -282.37, 0.00 -73, -25.88, -263.71, 0.00 -74, -26.96, -244.77, 0.00 -75, -27.72, -225.59, 0.00 -76, -28.12, -205.99, 0.00 -77, -28.13, -186.20, 0.00 -78, -27.76, -166.42, 0.00 -79, -26.92, -146.54, 0.00 -80, -25.62, -126.74, 0.00 -81, -23.79, -107.06, 0.00 -82, -21.39, -87.53, 0.00 -83, -18.36, -68.27, 0.00 -84, -14.63, -49.34, 0.00 -85, -10.10, -30.83, 0.00 -86, -4.66, -12.84, 0.00 -87, 1.82, 4.49, 0.00 -88, 9.54, 21.04, 0.00 -89, 18.64, 36.46, 0.00 -90, 29.42, 50.48, 0.00 -91, 42.11, 62.60, 0.00 -92, 56.77, 71.89, 0.00 -93, 73.41, 77.41, 0.00 -94, 91.92, 78.09, 0.00 -95, 111.10, 72.36, 0.00 -96, 128.91, 59.09, 0.00 -97, 142.62, 38.60, 0.00 -98, 108.87, 14.61, 0.00 -99, 70.25, -0.00, 0.00 -100, 103.25, -13.86, 0.00 -101, 123.24, -33.35, 0.00 -102, 98.16, -44.99, 0.00 -103, 72.48, -47.21, 0.00 -104, 48.60, -41.28, 0.00 -105, 27.56, -29.06, 0.00 -106, 9.78, -12.38, 0.00 -107, -4.77, 7.09, 0.00 -108, -16.59, 28.46, 0.00 -109, -26.11, 51.06, 0.00 -110, -33.64, 74.25, 0.00 -111, -39.61, 97.94, 0.00 -112, -44.31, 122.01, 0.00 -113, -47.92, 146.26, 0.00 -114, -50.63, 170.78, 0.00 -115, -52.57, 195.45, 0.00 -116, -53.80, 220.12, 0.00 -117, -54.43, 244.90, 0.00 -118, -54.50, 269.61, 0.00 -119, -54.06, 294.24, 0.00 -120, -53.18, 318.89, 0.00 -121, -51.86, 343.20, 0.00 -122, -50.17, 367.52, 0.00 -123, -48.12, 391.59, 0.00 -124, -45.70, 414.97, 0.00 -125, -43.01, 438.21, 0.00 -126, -40.06, 461.35, 0.00 -127, -36.86, 484.02, 0.00 -128, -33.42, 506.10, 0.00 -129, -29.77, 527.50, 0.00 -130, -25.96, 548.39, 0.00 -131, -22.00, 568.76, 0.00 -132, -17.91, 588.36, 0.00 -133, -13.73, 607.39, 0.00 -134, -9.47, 625.38, 0.00 -135, -5.15, 642.54, 0.00 -136, -0.81, 659.27, 0.00 -137, 3.53, 674.87, 0.00 -138, 7.85, 689.30, 0.00 -139, 12.15, 703.23, 0.00 -140, 16.38, 716.18, 0.00 -141, 20.53, 727.67, 0.00 -142, 24.59, 738.40, 0.00 -143, 28.55, 748.36, 0.00 -144, 32.38, 757.04, 0.00 -145, 36.06, 764.43, 0.00 -146, 39.61, 771.02, 0.00 -147, 43.00, 776.59, 0.00 -148, 46.22, 780.89, 0.00 -149, 49.29, 784.46, 0.00 -150, 52.17, 786.78, 0.00 -151, 54.87, 788.13, 0.00 -152, 57.40, 788.54, 0.00 -153, 59.77, 788.13, 0.00 -154, 61.95, 786.74, 0.00 -155, 63.49, 778.73, 0.00 -156, 67.16, 797.62, 0.00 -157, 62.16, 716.24, 0.00 -158, 1.28, 14.32, 0.00 -159, -2.99, -32.64, 0.00 -160, 0.35, 3.75, 0.00 -161, -0.04, -0.41, 0.00 -162, 0.11, 1.11, 0.00 -163, 0.13, 1.27, 0.00 -164, 0.00, 0.00, 0.00 -165, -0.22, -2.15, 0.00 -166, -0.53, -5.01, 0.00 -167, -0.91, -8.41, 0.00 -168, -1.35, -12.19, 0.00 -169, -1.83, -16.27, 0.00 -170, -2.34, -20.53, 0.00 -171, -2.88, -24.89, 0.00 -172, -3.44, -29.28, 0.00 -173, -4.01, -33.68, 0.00 -174, -4.59, -37.96, 0.00 -175, -5.16, -42.10, 0.00 -176, -5.72, -46.12, 0.00 -177, -6.27, -49.88, 0.00 -178, -6.79, -53.37, 0.00 -179, -7.28, -56.59, 0.00 -180, -7.74, -59.45, 0.00 -181, -8.15, -61.97, 0.00 -182, -8.52, -64.08, 0.00 -183, -8.82, -65.74, 0.00 -184, -9.08, -67.01, 0.00 -185, -9.26, -67.76, 0.00 -186, -9.37, -67.96, 0.00 -187, -9.39, -67.62, 0.00 -188, -9.32, -66.63, 0.00 -189, -9.16, -65.08, 0.00 -190, -8.90, -62.89, 0.00 -191, -8.54, -59.98, 0.00 -192, -8.06, -56.33, 0.00 -193, -7.45, -51.85, 0.00 -194, -6.73, -46.69, 0.00 -195, -5.85, -40.49, 0.00 -196, -4.79, -33.08, 0.00 -197, -3.55, -24.47, 0.00 -198, -1.91, -13.14, 0.00 +199, -0.85, -0.00, 0.00 +0, -2.66, 18.33, 0.00 +1, -3.73, 25.70, 0.00 +2, -4.53, 31.27, 0.00 +3, -5.24, 36.23, 0.00 +4, -5.81, 40.33, 0.00 +5, -6.25, 43.55, 0.00 +6, -6.60, 46.13, 0.00 +7, -6.83, 47.96, 0.00 +8, -6.95, 49.09, 0.00 +9, -6.97, 49.54, 0.00 +10, -6.90, 49.35, 0.00 +11, -6.74, 48.57, 0.00 +12, -6.50, 47.14, 0.00 +13, -6.17, 45.13, 0.00 +14, -5.76, 42.53, 0.00 +15, -5.29, 39.38, 0.00 +16, -4.75, 35.75, 0.00 +17, -4.16, 31.65, 0.00 +18, -3.53, 27.09, 0.00 +19, -2.85, 22.14, 0.00 +20, -2.14, 16.79, 0.00 +21, -1.39, 11.10, 0.00 +22, -0.63, 5.06, 0.00 +23, 0.16, -1.33, 0.00 +24, 0.98, -8.10, 0.00 +25, 1.82, -15.27, 0.00 +26, 2.68, -22.82, 0.00 +27, 3.56, -30.76, 0.00 +28, 4.45, -39.00, 0.00 +29, 5.32, -47.44, 0.00 +30, 6.19, -56.07, 0.00 +31, 7.05, -64.97, 0.00 +32, 7.91, -74.28, 0.00 +33, 8.78, -83.97, 0.00 +34, 9.63, -93.91, 0.00 +35, 10.46, -104.09, 0.00 +36, 11.25, -114.37, 0.00 +37, 12.00, -124.73, 0.00 +38, 12.71, -135.28, 0.00 +39, 13.38, -145.98, 0.00 +40, 13.99, -156.79, 0.00 +41, 14.55, -167.72, 0.00 +42, 15.06, -178.80, 0.00 +43, 15.48, -189.92, 0.00 +44, 15.83, -201.03, 0.00 +45, 16.07, -211.97, 0.00 +46, 16.22, -222.82, 0.00 +47, 16.27, -233.68, 0.00 +48, 16.23, -244.83, 0.00 +49, 16.13, -256.65, 0.00 +50, 15.93, -269.12, 0.00 +51, 15.62, -282.01, 0.00 +52, 15.14, -294.70, 0.00 +53, 14.49, -307.24, 0.00 +54, 13.68, -319.91, 0.00 +55, 12.67, -332.16, 0.00 +56, 11.42, -342.95, 0.00 +57, 9.91, -351.31, 0.00 +58, 8.15, -356.48, 0.00 +59, 6.19, -358.24, 0.00 +60, 4.07, -357.17, 0.00 +61, 1.85, -353.80, 0.00 +62, -0.43, -348.10, 0.00 +63, -2.73, -340.32, 0.00 +64, -5.01, -331.03, 0.00 +65, -7.24, -320.26, 0.00 +66, -9.38, -308.18, 0.00 +67, -11.42, -295.32, 0.00 +68, -13.34, -281.72, 0.00 +69, -15.11, -267.62, 0.00 +70, -16.72, -253.15, 0.00 +71, -18.14, -238.20, 0.00 +72, -19.34, -222.69, 0.00 +73, -20.27, -206.50, 0.00 +74, -20.91, -189.85, 0.00 +75, -21.24, -172.83, 0.00 +76, -21.19, -155.22, 0.00 +77, -20.73, -137.21, 0.00 +78, -19.84, -118.97, 0.00 +79, -18.47, -100.51, 0.00 +80, -16.59, -82.08, 0.00 +81, -14.17, -63.76, 0.00 +82, -11.16, -45.67, 0.00 +83, -7.51, -27.92, 0.00 +84, -3.16, -10.66, 0.00 +85, 1.96, 5.99, 0.00 +86, 7.98, 21.97, 0.00 +87, 15.01, 37.12, 0.00 +88, 23.22, 51.25, 0.00 +89, 32.70, 63.95, 0.00 +90, 43.60, 74.81, 0.00 +91, 56.10, 83.39, 0.00 +92, 70.04, 88.70, 0.00 +93, 85.41, 90.05, 0.00 +94, 101.82, 86.49, 0.00 +95, 118.17, 76.97, 0.00 +96, 133.74, 61.30, 0.00 +97, 147.39, 39.89, 0.00 +98, 111.90, 15.02, 0.00 +99, 71.22, -0.00, 0.00 +100, 109.26, -14.66, 0.00 +101, 137.60, -37.24, 0.00 +102, 115.95, -53.15, 0.00 +103, 93.75, -61.06, 0.00 +104, 72.27, -61.39, 0.00 +105, 52.36, -55.20, 0.00 +106, 34.79, -44.05, 0.00 +107, 19.66, -29.23, 0.00 +108, 6.81, -11.68, 0.00 +109, -3.93, 7.68, 0.00 +110, -12.86, 28.37, 0.00 +111, -20.21, 49.96, 0.00 +112, -26.23, 72.22, 0.00 +113, -31.05, 94.79, 0.00 +114, -34.88, 117.65, 0.00 +115, -37.90, 140.89, 0.00 +116, -40.20, 164.49, 0.00 +117, -41.88, 188.42, 0.00 +118, -43.00, 212.71, 0.00 +119, -43.62, 237.42, 0.00 +120, -43.64, 261.69, 0.00 +121, -43.10, 285.24, 0.00 +122, -42.11, 308.46, 0.00 +123, -40.72, 331.35, 0.00 +124, -38.94, 353.54, 0.00 +125, -36.84, 375.42, 0.00 +126, -34.48, 397.10, 0.00 +127, -31.85, 418.29, 0.00 +128, -28.97, 438.71, 0.00 +129, -25.85, 458.00, 0.00 +130, -22.55, 476.33, 0.00 +131, -19.10, 493.80, 0.00 +132, -15.54, 510.37, 0.00 +133, -11.90, 526.39, 0.00 +134, -8.20, 541.54, 0.00 +135, -4.46, 556.04, 0.00 +136, -0.70, 570.26, 0.00 +137, 3.05, 583.60, 0.00 +138, 6.79, 596.04, 0.00 +139, 10.50, 608.18, 0.00 +140, 14.17, 619.60, 0.00 +141, 17.77, 629.84, 0.00 +142, 21.29, 639.37, 0.00 +143, 24.72, 648.06, 0.00 +144, 28.03, 655.33, 0.00 +145, 31.19, 661.08, 0.00 +146, 34.20, 665.74, 0.00 +147, 37.05, 669.08, 0.00 +148, 39.71, 670.85, 0.00 +149, 42.17, 671.22, 0.00 +150, 44.38, 669.34, 0.00 +151, 46.26, 664.42, 0.00 +152, 47.51, 652.70, 0.00 +153, 46.78, 616.94, 0.00 +154, 39.70, 504.23, 0.00 +155, 24.94, 305.93, 0.00 +156, 16.44, 195.28, 0.00 +157, 13.94, 160.59, 0.00 +158, 13.18, 147.63, 0.00 +159, 12.74, 138.97, 0.00 +160, 12.29, 130.81, 0.00 +161, 11.80, 122.63, 0.00 +162, 11.26, 114.42, 0.00 +163, 10.66, 106.07, 0.00 +164, 10.01, 97.60, 0.00 +165, 9.32, 89.11, 0.00 +166, 8.57, 80.48, 0.00 +167, 7.78, 71.77, 0.00 +168, 6.96, 63.07, 0.00 +169, 6.10, 54.40, 0.00 +170, 5.22, 45.80, 0.00 +171, 4.33, 37.37, 0.00 +172, 3.44, 29.24, 0.00 +173, 2.56, 21.44, 0.00 +174, 1.69, 13.95, 0.00 +175, 0.83, 6.81, 0.00 +176, 0.01, 0.05, 0.00 +177, -0.80, -6.35, 0.00 +178, -1.58, -12.38, 0.00 +179, -2.32, -18.05, 0.00 +180, -3.04, -23.33, 0.00 +181, -3.71, -28.22, 0.00 +182, -4.34, -32.66, 0.00 +183, -4.92, -36.62, 0.00 +184, -5.43, -40.09, 0.00 +185, -5.87, -42.98, 0.00 +186, -6.24, -45.27, 0.00 +187, -6.52, -46.94, 0.00 +188, -6.70, -47.94, 0.00 +189, -6.80, -48.33, 0.00 +190, -6.80, -48.04, 0.00 +191, -6.70, -47.05, 0.00 +192, -6.48, -45.33, 0.00 +193, -6.15, -42.84, 0.00 +194, -5.72, -39.70, 0.00 +195, -5.15, -35.65, 0.00 +196, -4.45, -30.72, 0.00 +197, -3.65, -25.15, 0.00 +198, -2.59, -17.80, 0.00 diff --git a/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref b/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref index de783b9af84..2e4f90bda43 100644 --- a/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref +++ b/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref @@ -1,200 +1,200 @@ -199, -1.02, -0.00, 0.00 -0, -2.05, 14.11, 0.00 -1, -3.63, 25.02, 0.00 -2, -4.85, 33.50, 0.00 -3, -5.88, 40.69, 0.00 -4, -6.73, 46.67, 0.00 -5, -7.41, 51.56, 0.00 -6, -7.97, 55.71, 0.00 -7, -8.40, 58.99, 0.00 -8, -8.71, 61.49, 0.00 -9, -8.90, 63.22, 0.00 -10, -8.98, 64.25, 0.00 -11, -8.98, 64.66, 0.00 -12, -8.87, 64.38, 0.00 -13, -8.68, 63.48, 0.00 -14, -8.39, 61.96, 0.00 -15, -8.03, 59.85, 0.00 -16, -7.61, 57.27, 0.00 -17, -7.12, 54.13, 0.00 -18, -6.57, 50.50, 0.00 -19, -5.97, 46.39, 0.00 -20, -5.32, 41.81, 0.00 -21, -4.63, 36.81, 0.00 -22, -3.90, 31.39, 0.00 -23, -3.13, 25.55, 0.00 -24, -2.34, 19.36, 0.00 -25, -1.53, 12.80, 0.00 -26, -0.69, 5.88, 0.00 -27, 0.16, -1.35, 0.00 -28, 1.02, -8.91, 0.00 -29, 1.88, -16.75, 0.00 -30, 2.74, -24.86, 0.00 -31, 3.61, -33.24, 0.00 -32, 4.46, -41.89, 0.00 -33, 5.31, -50.77, 0.00 -34, 6.14, -59.83, 0.00 -35, 6.95, -69.11, 0.00 -36, 7.73, -78.56, 0.00 -37, 8.48, -88.13, 0.00 -38, 9.19, -97.82, 0.00 -39, 9.86, -107.57, 0.00 -40, 10.47, -117.28, 0.00 -41, 11.01, -126.92, 0.00 -42, 11.49, -136.42, 0.00 -43, 11.87, -145.62, 0.00 -44, 12.15, -154.31, 0.00 -45, 12.30, -162.22, 0.00 -46, 12.31, -169.04, 0.00 -47, 12.11, -173.89, 0.00 -48, 11.66, -175.88, 0.00 -49, 11.13, -177.08, 0.00 -50, 10.20, -172.29, 0.00 -51, 6.86, -123.94, 0.00 -52, 5.97, -116.29, 0.00 -53, 21.77, -461.42, 0.00 -54, 26.12, -610.78, 0.00 -55, 21.89, -573.85, 0.00 -56, 18.71, -561.76, 0.00 -57, 15.72, -557.10, 0.00 -58, 12.57, -549.52, 0.00 -59, 9.33, -540.36, 0.00 -60, 6.04, -530.05, 0.00 -61, 2.71, -518.89, 0.00 -62, -0.62, -506.43, 0.00 -63, -3.95, -492.74, 0.00 -64, -7.24, -478.42, 0.00 -65, -10.47, -463.16, 0.00 -66, -13.60, -446.83, 0.00 -67, -16.63, -429.81, 0.00 -68, -19.50, -411.99, 0.00 -69, -22.22, -393.60, 0.00 -70, -24.75, -374.77, 0.00 -71, -27.06, -355.42, 0.00 -72, -29.14, -335.60, 0.00 -73, -30.94, -315.27, 0.00 -74, -32.45, -294.65, 0.00 -75, -33.65, -273.85, 0.00 -76, -34.49, -252.64, 0.00 -77, -34.95, -231.28, 0.00 -78, -35.02, -209.98, 0.00 -79, -34.64, -188.53, 0.00 -80, -33.79, -167.17, 0.00 -81, -32.42, -145.88, 0.00 -82, -30.48, -124.69, 0.00 -83, -27.91, -103.76, 0.00 -84, -24.63, -83.06, 0.00 -85, -20.55, -62.73, 0.00 -86, -15.56, -42.84, 0.00 -87, -9.50, -23.48, 0.00 -88, -2.17, -4.79, 0.00 -89, 6.62, 12.94, 0.00 -90, 17.16, 29.44, 0.00 -91, 29.73, 44.19, 0.00 -92, 44.58, 56.46, 0.00 -93, 61.71, 65.06, 0.00 -94, 81.10, 68.89, 0.00 -95, 101.88, 66.36, 0.00 -96, 122.09, 55.96, 0.00 -97, 139.13, 37.65, 0.00 -98, 108.84, 14.60, 0.00 -99, 71.28, -0.00, 0.00 -100, 106.29, -14.26, 0.00 -101, 130.33, -35.27, 0.00 -102, 108.14, -49.57, 0.00 -103, 84.37, -54.95, 0.00 -104, 61.43, -52.19, 0.00 -105, 40.94, -43.16, 0.00 -106, 23.22, -29.41, 0.00 -107, 8.42, -12.52, 0.00 -108, -3.78, 6.48, 0.00 -109, -13.76, 26.90, 0.00 -110, -21.85, 48.23, 0.00 -111, -28.39, 70.19, 0.00 -112, -33.65, 92.65, 0.00 -113, -37.82, 115.44, 0.00 -114, -41.08, 138.55, 0.00 -115, -43.55, 161.90, 0.00 -116, -45.31, 185.37, 0.00 -117, -46.46, 209.03, 0.00 -118, -47.03, 232.69, 0.00 -119, -47.10, 256.34, 0.00 -120, -46.71, 280.06, 0.00 -121, -45.86, 303.51, 0.00 -122, -44.63, 326.98, 0.00 -123, -43.04, 350.21, 0.00 -124, -41.06, 372.86, 0.00 -125, -38.81, 395.46, 0.00 -126, -36.30, 418.02, 0.00 -127, -33.51, 440.10, 0.00 -128, -30.48, 461.60, 0.00 -129, -27.23, 482.42, 0.00 -130, -23.80, 502.74, 0.00 -131, -20.21, 522.54, 0.00 -132, -16.49, 541.62, 0.00 -133, -12.66, 560.14, 0.00 -134, -8.74, 577.66, 0.00 -135, -4.77, 594.37, 0.00 -136, -0.75, 610.64, 0.00 -137, 3.27, 625.80, 0.00 -138, 7.29, 639.80, 0.00 -139, 11.28, 653.28, 0.00 -140, 15.23, 665.78, 0.00 -141, 19.09, 676.85, 0.00 -142, 22.88, 687.16, 0.00 -143, 26.58, 696.67, 0.00 -144, 30.15, 704.91, 0.00 -145, 33.58, 711.87, 0.00 -146, 36.88, 717.99, 0.00 -147, 40.04, 723.07, 0.00 -148, 43.03, 726.92, 0.00 -149, 45.86, 729.95, 0.00 -150, 48.47, 730.99, 0.00 -151, 50.57, 726.34, 0.00 -152, 54.71, 751.52, 0.00 -153, 52.81, 696.43, 0.00 -154, 5.64, 71.68, 0.00 -155, -0.65, -7.95, 0.00 -156, 3.46, 41.08, 0.00 -157, 3.63, 41.77, 0.00 -158, 4.01, 44.95, 0.00 -159, 4.28, 46.74, 0.00 -160, 4.32, 46.00, 0.00 -161, 4.21, 43.77, 0.00 -162, 3.98, 40.43, 0.00 -163, 3.64, 36.21, 0.00 -164, 3.22, 31.35, 0.00 -165, 2.72, 26.01, 0.00 -166, 2.16, 20.31, 0.00 -167, 1.56, 14.37, 0.00 -168, 0.92, 8.30, 0.00 -169, 0.24, 2.16, 0.00 -170, -0.45, -3.98, 0.00 -171, -1.16, -10.05, 0.00 -172, -1.88, -15.99, 0.00 -173, -2.60, -21.79, 0.00 -174, -3.31, -27.36, 0.00 -175, -4.00, -32.68, 0.00 -176, -4.69, -37.76, 0.00 -177, -5.34, -42.49, 0.00 -178, -5.96, -46.87, 0.00 -179, -6.55, -50.90, 0.00 -180, -7.09, -54.49, 0.00 -181, -7.59, -57.67, 0.00 -182, -8.03, -60.38, 0.00 -183, -8.40, -62.58, 0.00 -184, -8.72, -64.34, 0.00 -185, -8.96, -65.53, 0.00 -186, -9.11, -66.13, 0.00 -187, -9.18, -66.13, 0.00 -188, -9.15, -65.46, 0.00 -189, -9.04, -64.19, 0.00 -190, -8.81, -62.24, 0.00 -191, -8.48, -59.55, 0.00 -192, -8.02, -56.09, 0.00 -193, -7.44, -51.78, 0.00 -194, -6.74, -46.74, 0.00 -195, -5.87, -40.64, 0.00 -196, -4.83, -33.31, 0.00 -197, -3.59, -24.74, 0.00 -198, -1.96, -13.51, 0.00 +199, -1.01, -0.00, 0.00 +0, -2.98, 20.50, 0.00 +1, -3.99, 27.46, 0.00 +2, -5.22, 36.06, 0.00 +3, -6.10, 42.20, 0.00 +4, -6.90, 47.88, 0.00 +5, -7.54, 52.52, 0.00 +6, -8.08, 56.52, 0.00 +7, -8.50, 59.69, 0.00 +8, -8.79, 62.11, 0.00 +9, -8.98, 63.80, 0.00 +10, -9.06, 64.81, 0.00 +11, -9.06, 65.22, 0.00 +12, -8.95, 64.94, 0.00 +13, -8.75, 64.06, 0.00 +14, -8.48, 62.56, 0.00 +15, -8.12, 60.48, 0.00 +16, -7.70, 57.92, 0.00 +17, -7.21, 54.81, 0.00 +18, -6.66, 51.20, 0.00 +19, -6.07, 47.12, 0.00 +20, -5.42, 42.57, 0.00 +21, -4.73, 37.59, 0.00 +22, -4.00, 32.19, 0.00 +23, -3.23, 26.37, 0.00 +24, -2.44, 20.21, 0.00 +25, -1.63, 13.66, 0.00 +26, -0.79, 6.76, 0.00 +27, 0.05, -0.45, 0.00 +28, 0.91, -7.99, 0.00 +29, 1.77, -15.81, 0.00 +30, 2.64, -23.91, 0.00 +31, 3.50, -32.27, 0.00 +32, 4.36, -40.90, 0.00 +33, 5.20, -49.76, 0.00 +34, 6.03, -58.80, 0.00 +35, 6.84, -68.06, 0.00 +36, 7.63, -77.50, 0.00 +37, 8.37, -87.04, 0.00 +38, 9.09, -96.70, 0.00 +39, 9.76, -106.43, 0.00 +40, 10.37, -116.12, 0.00 +41, 10.91, -125.73, 0.00 +42, 11.39, -135.21, 0.00 +43, 11.77, -144.39, 0.00 +44, 12.05, -153.08, 0.00 +45, 12.21, -161.05, 0.00 +46, 12.22, -167.88, 0.00 +47, 12.01, -172.51, 0.00 +48, 11.61, -175.12, 0.00 +49, 11.25, -179.01, 0.00 +50, 10.12, -170.90, 0.00 +51, 6.24, -112.75, 0.00 +52, 6.61, -128.63, 0.00 +53, 20.84, -441.83, 0.00 +54, 25.65, -599.65, 0.00 +55, 21.77, -570.80, 0.00 +56, 18.66, -560.26, 0.00 +57, 15.64, -554.49, 0.00 +58, 12.51, -546.85, 0.00 +59, 9.28, -537.57, 0.00 +60, 6.01, -527.15, 0.00 +61, 2.70, -515.89, 0.00 +62, -0.62, -503.33, 0.00 +63, -3.92, -489.55, 0.00 +64, -7.19, -475.11, 0.00 +65, -10.39, -459.75, 0.00 +66, -13.50, -443.31, 0.00 +67, -16.49, -426.20, 0.00 +68, -19.33, -408.27, 0.00 +69, -22.00, -389.78, 0.00 +70, -24.49, -370.85, 0.00 +71, -26.76, -351.39, 0.00 +72, -28.78, -331.47, 0.00 +73, -30.52, -311.04, 0.00 +74, -31.97, -290.33, 0.00 +75, -33.11, -269.42, 0.00 +76, -33.86, -248.08, 0.00 +77, -34.24, -226.61, 0.00 +78, -34.22, -205.20, 0.00 +79, -33.74, -183.64, 0.00 +80, -32.78, -162.19, 0.00 +81, -31.29, -140.79, 0.00 +82, -29.21, -119.49, 0.00 +83, -26.48, -98.43, 0.00 +84, -23.02, -77.63, 0.00 +85, -18.75, -57.22, 0.00 +86, -13.54, -37.28, 0.00 +87, -7.23, -17.89, 0.00 +88, 0.32, 0.71, 0.00 +89, 9.35, 18.28, 0.00 +90, 20.02, 34.35, 0.00 +91, 32.65, 48.54, 0.00 +92, 47.34, 59.96, 0.00 +93, 64.24, 67.74, 0.00 +94, 83.11, 70.60, 0.00 +95, 102.71, 66.90, 0.00 +96, 121.38, 55.64, 0.00 +97, 137.08, 37.10, 0.00 +98, 106.89, 14.34, 0.00 +99, 69.93, -0.00, 0.00 +100, 104.81, -14.06, 0.00 +101, 129.39, -35.02, 0.00 +102, 108.98, -49.95, 0.00 +103, 86.90, -56.60, 0.00 +104, 64.97, -55.19, 0.00 +105, 44.71, -47.14, 0.00 +106, 27.08, -34.30, 0.00 +107, 12.21, -18.16, 0.00 +108, -0.23, 0.39, 0.00 +109, -10.50, 20.54, 0.00 +110, -18.96, 41.85, 0.00 +111, -25.82, 63.84, 0.00 +112, -31.39, 86.44, 0.00 +113, -35.84, 109.39, 0.00 +114, -39.33, 132.66, 0.00 +115, -42.01, 156.16, 0.00 +116, -43.95, 179.80, 0.00 +117, -45.26, 203.64, 0.00 +118, -45.98, 227.47, 0.00 +119, -46.16, 251.27, 0.00 +120, -45.89, 275.14, 0.00 +121, -45.14, 298.74, 0.00 +122, -44.00, 322.34, 0.00 +123, -42.49, 345.71, 0.00 +124, -40.58, 368.50, 0.00 +125, -38.39, 391.21, 0.00 +126, -35.94, 413.88, 0.00 +127, -33.21, 436.09, 0.00 +128, -30.22, 457.70, 0.00 +129, -27.02, 478.65, 0.00 +130, -23.62, 499.09, 0.00 +131, -20.08, 519.03, 0.00 +132, -16.39, 538.22, 0.00 +133, -12.59, 556.86, 0.00 +134, -8.70, 574.51, 0.00 +135, -4.74, 591.34, 0.00 +136, -0.75, 607.73, 0.00 +137, 3.26, 623.00, 0.00 +138, 7.26, 637.13, 0.00 +139, 11.24, 650.73, 0.00 +140, 15.17, 663.34, 0.00 +141, 19.03, 674.54, 0.00 +142, 22.81, 684.95, 0.00 +143, 26.50, 694.58, 0.00 +144, 30.06, 702.94, 0.00 +145, 33.49, 710.01, 0.00 +146, 36.79, 716.23, 0.00 +147, 39.95, 721.39, 0.00 +148, 42.93, 725.31, 0.00 +149, 45.77, 728.51, 0.00 +150, 48.44, 730.59, 0.00 +151, 50.61, 726.85, 0.00 +152, 53.86, 739.83, 0.00 +153, 53.31, 702.96, 0.00 +154, 8.15, 103.49, 0.00 +155, -2.34, -28.69, 0.00 +156, 3.10, 36.88, 0.00 +157, 3.81, 43.93, 0.00 +158, 3.88, 43.46, 0.00 +159, 4.18, 45.56, 0.00 +160, 4.24, 45.15, 0.00 +161, 4.13, 42.94, 0.00 +162, 3.90, 39.62, 0.00 +163, 3.56, 35.42, 0.00 +164, 3.14, 30.58, 0.00 +165, 2.64, 25.27, 0.00 +166, 2.09, 19.60, 0.00 +167, 1.48, 13.68, 0.00 +168, 0.84, 7.64, 0.00 +169, 0.17, 1.53, 0.00 +170, -0.52, -4.58, 0.00 +171, -1.23, -10.62, 0.00 +172, -1.94, -16.53, 0.00 +173, -2.66, -22.30, 0.00 +174, -3.37, -27.85, 0.00 +175, -4.06, -33.13, 0.00 +176, -4.74, -38.17, 0.00 +177, -5.39, -42.87, 0.00 +178, -6.01, -47.21, 0.00 +179, -6.59, -51.20, 0.00 +180, -7.13, -54.76, 0.00 +181, -7.62, -57.90, 0.00 +182, -8.05, -60.58, 0.00 +183, -8.42, -62.75, 0.00 +184, -8.74, -64.48, 0.00 +185, -8.97, -65.65, 0.00 +186, -9.13, -66.23, 0.00 +187, -9.20, -66.23, 0.00 +188, -9.17, -65.58, 0.00 +189, -9.06, -64.33, 0.00 +190, -8.84, -62.44, 0.00 +191, -8.52, -59.84, 0.00 +192, -8.08, -56.51, 0.00 +193, -7.52, -52.37, 0.00 +194, -6.86, -47.60, 0.00 +195, -6.05, -41.82, 0.00 +196, -5.16, -35.60, 0.00 +197, -3.91, -26.94, 0.00 +198, -2.89, -19.92, 0.00 diff --git a/TestCases/rotating/naca0012/rot_NACA0012.cfg b/TestCases/rotating/naca0012/rot_NACA0012.cfg index a103c5fbcf6..35c932c33b5 100644 --- a/TestCases/rotating/naca0012/rot_NACA0012.cfg +++ b/TestCases/rotating/naca0012/rot_NACA0012.cfg @@ -131,7 +131,7 @@ VOLUME_ADJ_FILENAME= adjoint GRAD_OBJFUNC_FILENAME= of_grad.dat SURFACE_FILENAME= surface_flow SURFACE_ADJ_FILENAME= surface_adjoint -OUTPUT_WRT_FREQ= 1 +OUTPUT_WRT_FREQ= 100 % --------------------- OPTIMAL SHAPE DESIGN DEFINITION -----------------------% % diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index fcdacb032a7..8d328dc460f 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -64,7 +64,7 @@ def main(): invwedge.cfg_dir = "nonequilibrium/invwedge" invwedge.cfg_file = "invwedge_ausm.cfg" invwedge.test_iter = 10 - invwedge.test_vals = [-1.046323, -1.571086, -18.301251, -18.628639, -18.574676, 2.271778, 1.875687, 5.315769, 0.870008] + invwedge.test_vals = [-1.073699, -1.598462, -18.299911, -18.627322, -18.573334, 2.241760, 1.868575, 5.286072, 0.843741] invwedge.test_vals_aarch64 = [-1.046323, -1.571086, -18.301361, -18.628744, -18.574788, 2.271778, 1.875687, 5.315769, 0.870008] test_list.append(invwedge) @@ -73,7 +73,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.215236, -5.739371, -20.556662, -20.517023, -20.436970, 1.262783, -3.205463, -0.015695, 0.093205, 32656.000000] + visc_cone.test_vals = [-5.215239, -5.739373, -20.560910, -20.517094, -20.406632, 1.262779, -3.205484, -0.015695, 0.093205, 32641.000000] visc_cone.test_vals_aarch64 = [-5.215229, -5.739368, -20.556662, -20.517022, -20.437459, 1.262784, -3.205455, -0.015696, 0.093207, 32656.000000] test_list.append(visc_cone) @@ -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.475872, 3.046370, -0.203974, 0.036018] + channel.test_vals = [-2.691364, 2.781660, -0.009405, 0.011874] 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.023999, -3.515034, 0.339426, 0.022217] + naca0012.test_vals = [-4.444941, -3.941038, 0.318998, 0.022365] 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 = [-0.942862, 4.784581, -0.208106, 0.036665] + wedge.test_vals = [-1.396962, 4.262003, -0.244219, 0.043052] 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 = [-9.279396, -8.697739, 0.281703, 0.011821] + oneram6.test_vals = [-11.510606, -10.980023, 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 = [-7.382410, -1.879887, 0.300000, 0.019471] + fixedCL_naca0012.test_vals = [-3.848561, 1.688373, 0.301145, 0.019489] test_list.append(fixedCL_naca0012) # Polar sweep of the inviscid NACA0012 @@ -135,8 +135,8 @@ def main(): polar_naca0012.cfg_file = "inv_NACA0012.cfg" polar_naca0012.polar = True polar_naca0012.test_iter = 10 - polar_naca0012.test_vals = [-1.243326, 4.224483, 0.016432, 0.016145] - polar_naca0012.test_vals_aarch64 = [-1.811046, 3.612379, 0.012330, 0.009194] + polar_naca0012.test_vals = [-1.067859, 4.397227, 0.000060, 0.031134] + 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 polar_naca0012.enabled_on_cpu_arch = ["x86_64"] @@ -147,7 +147,7 @@ def main(): bluntbody.cfg_dir = "euler/bluntbody" bluntbody.cfg_file = "blunt.cfg" bluntbody.test_iter = 20 - bluntbody.test_vals = [0.540009, 6.916653, -0.000000, 1.868975] + bluntbody.test_vals = [0.493297, 6.857373, -0.000026, 1.791394] test_list.append(bluntbody) ########################## @@ -165,8 +165,8 @@ def main(): flatplate = TestCase('flatplate') flatplate.cfg_dir = "navierstokes/flatplate" flatplate.cfg_file = "lam_flatplate.cfg" - flatplate.test_iter = 100 - flatplate.test_vals = [-9.856258, -4.371983, 0.001112, 0.036277, 2.361500, -2.325300, -2.279500, -2.279500] + flatplate.test_iter = 20 + flatplate.test_vals = [-5.122306, 0.357174, 0.001311, 0.028230, 2.361600, -2.333300, -2.629100, -2.629100] test_list.append(flatplate) # Laminar cylinder (steady) @@ -174,7 +174,7 @@ def main(): cylinder.cfg_dir = "navierstokes/cylinder" cylinder.cfg_file = "lam_cylinder.cfg" cylinder.test_iter = 25 - cylinder.test_vals = [-6.765430, -1.297426, 0.019508, 0.310015, 0.123250] + cylinder.test_vals = [-8.363068, -2.882163, -0.017777, 1.607222, -0.010064] test_list.append(cylinder) # Laminar cylinder (low Mach correction) @@ -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.157358, -6.736289, -0.176258, 0.057431] + turb_flatplate.test_vals = [-4.156553, -6.736064, -0.176184, 0.057478] 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.181412, -1.864638, -1.966031, 1.259921, -1.487159, 1.544166, 10.000000, -2.130777, 0.073950, 0.002971] + turb_wallfunction_flatplate_sst.test_vals = [-4.177397, -1.880811, -1.943377, 1.263787, -1.254740, 1.538892, 10.000000, -2.097623, 0.074673, 0.002932] 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.435719, -2.044696, -2.114266, 0.980115, -5.393813, 10.000000, -1.589802, 0.069744, 0.002686] + turb_wallfunction_flatplate_sa.test_vals = [-4.414833, -2.031596, -2.120806, 1.007586, -5.386444, 10.000000, -1.635112, 0.068983, 0.002640] 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.388841, -6.689427, 0.230321, 0.157640, -32539.000000] + turb_oneram6.test_vals = [-2.392867, -6.689823, 0.230746, 0.158811, -33786.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.063377, -7.005051, -8.705733, -4.036815, -2019.8] + axi_rans_air_nozzle_restart.test_vals = [-12.151701, -6.605756, -9.188910, -4.516059, -2019.700000] axi_rans_air_nozzle_restart.test_vals_aarch64 = [-12.063354, -7.004772, -8.705740, -4.036824, -2019.800000] 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 = [-4.858287, -3.810487, 0.491850, 0.007002] + inc_euler_naca0012.test_vals = [-7.128795, -6.375403, 0.531980, 0.008467] 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 = [-5.971283, -4.911145, -0.000201, 0.121631] + inc_nozzle.test_vals = [-6.363763, -5.566528, -0.005348, 0.126610] 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.455147, -3.082194, -0.018579, 1.169947] + inc_lam_bend.test_vals = [-3.558881, -3.234611, -0.016265, 1.024052] 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.560775, -5.700721, -6.304284, -4.230488, -7.179831, -1.956057, 10.000000, -2.918240, 0.000887, 0.003680, 0.518450] + inc_turb_wallfunction_flatplate_sst.test_vals = [-6.507362, -5.693894, -6.434063, -4.223774, -7.008049, -1.954102, 10.000000, -3.047554, 0.001081, 0.003644, 0.618140] 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.561303, -5.718581, -6.306403, -4.230225, -9.586904, 10.000000, -2.927392, 0.000858, 0.003792] + 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] 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.029786, -13.240213, 0.000053, 0.007986] + schubauer_klebanoff_transition.test_vals = [-8.087369, -13.241874, 0.000055, 0.007992] test_list.append(schubauer_klebanoff_transition) ##################################### @@ -577,7 +577,7 @@ def main(): contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012" contadj_naca0012.cfg_file = "inv_NACA0012.cfg" contadj_naca0012.test_iter = 5 - contadj_naca0012.test_vals = [-9.289565, -14.563859, 0.300920, 0.019552] + contadj_naca0012.test_vals = [-9.748339, -15.067997, -0.726250, 0.020280] contadj_naca0012.tol = 0.001 test_list.append(contadj_naca0012) @@ -586,7 +586,7 @@ def main(): contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6" contadj_oneram6.cfg_file = "inv_ONERAM6.cfg" contadj_oneram6.test_iter = 10 - contadj_oneram6.test_vals = [-12.133160, -12.706697, 0.685900, 0.007594] + contadj_oneram6.test_vals = [-12.034680, -12.592674, -1.086100, 0.007556] test_list.append(contadj_oneram6) # Inviscid WEDGE: tests averaged outflow total pressure adjoint @@ -594,7 +594,7 @@ def main(): contadj_wedge.cfg_dir = "cont_adj_euler/wedge" contadj_wedge.cfg_file = "inv_wedge_ROE.cfg" contadj_wedge.test_iter = 10 - contadj_wedge.test_vals = [2.872691, -2.755572, 853000.000000, 0.000000] + contadj_wedge.test_vals = [2.872064, -2.756210, 1010800.000000, 0.000000] test_list.append(contadj_wedge) # Inviscid fixed CL NACA0012 @@ -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.293213, -5.201710, 0.360590, -0.000022] + contadj_fixedCL_naca0012.test_vals = [0.755070, -4.794630, -0.525290, -0.000238] test_list.append(contadj_fixedCL_naca0012) ################################### @@ -725,7 +725,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.589739, 0.790169, 0.937053, 3.922579] + harmonic_balance.test_vals = [-1.554985, 0.831796, 0.935729, 3.960210] test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil @@ -745,7 +745,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.688979, 2.857521, -0.079219, 0.002135] + rot_naca0012.test_vals = [-2.738864, 2.811401, -0.080279, 0.002160] test_list.append(rot_naca0012) # Lid-driven cavity @@ -753,7 +753,7 @@ def main(): cavity.cfg_dir = "moving_wall/cavity" cavity.cfg_file = "lam_cavity.cfg" cavity.test_iter = 25 - cavity.test_vals = [ -5.627868, -0.164405, 0.053283, 2.545817] + cavity.test_vals = [-5.627868, -0.164405, 0.053283, 2.545817] test_list.append(cavity) # Spinning cylinder @@ -782,7 +782,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.977520, 3.481804, -0.012277, -0.007309] + sine_gust.test_vals = [-1.977514, 3.481817, -0.010465, -0.007859] sine_gust.unsteady = True test_list.append(sine_gust) @@ -791,7 +791,7 @@ def main(): aeroelastic.cfg_dir = "aeroelastic" aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" aeroelastic.test_iter = 2 - aeroelastic.test_vals = [0.074836, 0.033102, -0.001650, -0.000127] + aeroelastic.test_vals = [0.074291, 0.027620, -0.001641, -0.000128] aeroelastic.unsteady = True test_list.append(aeroelastic) @@ -800,7 +800,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.714757, -5.882779, -0.215005, 0.023783, -618.130000] + ddes_flatplate.test_vals = [-2.714785, -5.882680, -0.215041, 0.023758, -617.450000] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) @@ -818,7 +818,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.665129, -3.793590, -3.716505, -3.148308] + unst_deforming_naca0012.test_vals = [-3.665187, -3.793258, -3.716457, -3.148323] unst_deforming_naca0012.unsteady = True test_list.append(unst_deforming_naca0012) @@ -839,7 +839,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.711552, 5.490479, -0.000975, 0.000000] + edge_VW.test_vals = [-0.768929, 5.433202, -0.000628, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR @@ -847,7 +847,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 = [-1.670439, 4.522842, 0.001027, 0.000000] + edge_PPR.test_vals = [-2.017812, 4.174560, 0.000019, 0.000000] test_list.append(edge_PPR) @@ -868,7 +868,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273, 73273, 0.019884, 82.491] + Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273.000000, 73273.000000, 0.019884, 82.491000] test_list.append(Jones_tc_restart) # 2D axial stage @@ -876,7 +876,7 @@ def main(): axial_stage2D.cfg_dir = "turbomachinery/axial_stage_2D" axial_stage2D.cfg_file = "Axial_stage2D.cfg" axial_stage2D.test_iter = 20 - axial_stage2D.test_vals = [0.983751, 1.534480, -2.888520, 2.606773, -2.418421, 3.087187, 106380, 106380, 5.7325, 64.711] + axial_stage2D.test_vals = [0.983751, 1.534480, -2.888520, 2.606773, -2.418421, 3.087187, 106380.000000, 106380.000000, 5.732500, 64.711000] axial_stage2D.test_vals_aarch64 = [0.983751, 1.534480, -2.888520, 2.606773, -2.418421, 3.087187, 106380, 106380, 5.7325, 64.711] test_list.append(axial_stage2D) @@ -885,7 +885,7 @@ def main(): transonic_stator_restart.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator_restart.cfg_file = "transonic_stator_restart.cfg" transonic_stator_restart.test_iter = 20 - transonic_stator_restart.test_vals = [-5.008547, -3.102420, -2.752033, 1.091152, -3.543849, 2.169844, -471630, 94.866, -0.035806] + transonic_stator_restart.test_vals = [-5.008547, -3.102420, -2.752033, 1.091152, -3.543849, 2.169844, -471630.000000, 94.866000, -0.035806] transonic_stator_restart.test_vals_aarch64 = [-5.008547, -3.102420, -2.752033, 1.091152, -3.543849, 2.169844, -471630, 94.866, -0.035806] test_list.append(transonic_stator_restart) @@ -906,7 +906,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.205134, -13.251542] + uniform_flow.test_vals = [2.000000, 0.000000, -0.202697, -13.249572] uniform_flow.test_vals_aarch64 = [2.000000, 0.000000, -0.205134, -13.250720] #last 4 columns uniform_flow.tol = 0.000001 uniform_flow.unsteady = True @@ -918,7 +918,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.397995, 0.352789, 0.405474] + channel_2D.test_vals = [2.000000, 0.000000, 0.419778, 0.352185, 0.404395] channel_2D.test_vals_aarch64 = [2.000000, 0.000000, 0.398053, 0.352788, 0.405474] #last 5 columns channel_2D.timeout = 100 channel_2D.unsteady = True @@ -930,7 +930,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.661408, 0.769988, 0.696033] + channel_3D.test_vals = [1.000000, 0.000000, 0.657678, 0.767752, 0.692208] channel_3D.test_vals_aarch64 = [1.000000, 0.000000, 0.661408, 0.769902, 0.695663] #last 5 columns channel_3D.unsteady = True channel_3D.multizone = True @@ -941,7 +941,7 @@ def main(): pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 - pipe.test_vals = [0.491954, 0.677756, 0.963981, 1.006936] + pipe.test_vals = [0.481390, 0.648695, 0.982990, 1.018349] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) @@ -951,7 +951,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.777574, 1.134794, 1.224127] + rotating_cylinders.test_vals = [3.000000, 0.000000, 0.719778, 1.111044, 1.154068] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) @@ -961,7 +961,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.214359, 1.663910] + supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.207949, 1.036092] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) @@ -1039,7 +1039,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.743214, -4.133482] + fsi2d.test_vals = [4.000000, 0.000000, -3.729228, -4.153949] fsi2d.multizone = True fsi2d.unsteady = True test_list.append(fsi2d) @@ -1049,7 +1049,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.326934, -4.981505, 0.000000, 7.000000] + stat_fsi.test_vals = [-3.345064, -4.996078, 0.000000, 7.000000] stat_fsi.multizone = True test_list.append(stat_fsi) @@ -1058,7 +1058,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.407486, -4.339837, 0.000000, 27.000000] + stat_fsi_restart.test_vals = [-3.404628, -4.288921, 0.000000, 27.000000] stat_fsi_restart.multizone = True test_list.append(stat_fsi_restart) @@ -1067,7 +1067,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.355809, -4.060588, 0.000000, 87.000000] + dyn_fsi.test_vals = [-4.330444, -4.058003, 0.000000, 86.000000] dyn_fsi.test_vals_aarch64 = [-4.355809, -4.060588, 0.000000, 86.000000] #last 4 columns dyn_fsi.multizone = True dyn_fsi.unsteady = True @@ -1079,7 +1079,7 @@ def main(): airfoilRBF.cfg_file = "config.cfg" airfoilRBF.test_iter = 1 - airfoilRBF.test_vals = [1.000000, -2.786186, -4.977944] + airfoilRBF.test_vals = [1.000000, -2.581853, -5.085822] airfoilRBF.tol = 0.0001 airfoilRBF.multizone = True test_list.append(airfoilRBF) @@ -1210,7 +1210,7 @@ def main(): naca0012_geo = TestCase('naca0012_geo') naca0012_geo.cfg_dir = "optimization_euler/steady_naca0012" naca0012_geo.cfg_file = "inv_NACA0012_adv.cfg" - naca0012_geo.test_vals = [1.0000, 62.0455, 0.120011, 0.0000] #chord, LE radius, ToC, Alpha + naca0012_geo.test_vals = [1.000000, 62.045500, 0.120011, 0.000000] naca0012_geo.command = TestCase.Command(exec = "SU2_GEO") naca0012_geo.timeout = 1600 naca0012_geo.tol = 0.00001 @@ -1226,7 +1226,7 @@ def main(): intersect_def.cfg_dir = "deformation/intersection_prevention" intersect_def.cfg_file = "def_intersect.cfg" intersect_def.test_iter = 10 - intersect_def.test_vals = [0.000112] #residual + intersect_def.test_vals = [0.000112] intersect_def.command = TestCase.Command(exec = "SU2_DEF") intersect_def.timeout = 1600 intersect_def.tol = 1e-04 @@ -1239,10 +1239,10 @@ def main(): naca0012_def.cfg_dir = "deformation/naca0012" naca0012_def.cfg_file = "def_NACA0012.cfg" naca0012_def.test_iter = 10 - naca0012_def.test_vals = [0.00344658] #residual + naca0012_def.test_vals = [0.0034470] naca0012_def.command = TestCase.Command(exec = "SU2_DEF") naca0012_def.timeout = 1600 - naca0012_def.tol = 1e-08 + naca0012_def.tol = 1e-06 pass_list.append(naca0012_def.run_def(args.tsan, args.asan)) test_list.append(naca0012_def) @@ -1252,10 +1252,10 @@ def main(): naca0012_def_file.cfg_dir = "deformation/naca0012" naca0012_def_file.cfg_file = "surface_file_NACA0012.cfg" naca0012_def_file.test_iter = 10 - naca0012_def_file.test_vals = [0.00344658] #residual + naca0012_def_file.test_vals = [0.0034470] naca0012_def_file.command = TestCase.Command(exec = "SU2_DEF") naca0012_def_file.timeout = 1600 - naca0012_def_file.tol = 1e-8 + naca0012_def_file.tol = 1e-6 pass_list.append(naca0012_def_file.run_def(args.tsan, args.asan)) test_list.append(naca0012_def_file) @@ -1265,10 +1265,10 @@ def main(): rae2822_def.cfg_dir = "deformation/rae2822" rae2822_def.cfg_file = "def_RAE2822.cfg" rae2822_def.test_iter = 10 - rae2822_def.test_vals = [7.94218e-09] #residual + rae2822_def.test_vals = [0.0000000] rae2822_def.command = TestCase.Command(exec = "SU2_DEF") rae2822_def.timeout = 1600 - rae2822_def.tol = 1e-13 + rae2822_def.tol = 1e-06 pass_list.append(rae2822_def.run_def(args.tsan, args.asan)) test_list.append(rae2822_def) @@ -1278,10 +1278,10 @@ def main(): naca4412_def.cfg_dir = "deformation/naca4412" naca4412_def.cfg_file = "def_NACA4412.cfg" naca4412_def.test_iter = 10 - naca4412_def.test_vals = [8.855370e-13] #residual + naca4412_def.test_vals = [0.0000000] naca4412_def.command = TestCase.Command(exec = "SU2_DEF") naca4412_def.timeout = 1600 - naca4412_def.tol = 1e-12 + naca4412_def.tol = 1e-06 pass_list.append(naca4412_def.run_def(args.tsan, args.asan)) test_list.append(naca4412_def) @@ -1291,10 +1291,10 @@ def main(): brick_tets_def.cfg_dir = "deformation/brick_tets" brick_tets_def.cfg_file = "def_brick_tets.cfg" brick_tets_def.test_iter = 10 - brick_tets_def.test_vals = [8.973010e-04] #residual + brick_tets_def.test_vals = [0.0008970] brick_tets_def.command = TestCase.Command(exec = "SU2_DEF") brick_tets_def.timeout = 1600 - brick_tets_def.tol = 1e-09 + brick_tets_def.tol = 1e-06 pass_list.append(brick_tets_def.run_def(args.tsan, args.asan)) test_list.append(brick_tets_def) @@ -1304,10 +1304,10 @@ def main(): brick_hex_def.cfg_dir = "deformation/brick_hex" brick_hex_def.cfg_file = "def_brick_hex.cfg" brick_hex_def.test_iter = 10 - brick_hex_def.test_vals = [2.082100e-04] #residual + brick_hex_def.test_vals = [0.0002080] brick_hex_def.command = TestCase.Command(exec = "SU2_DEF") brick_hex_def.timeout = 1600 - brick_hex_def.tol = 1e-09 + brick_hex_def.tol = 1e-06 pass_list.append(brick_hex_def.run_def(args.tsan, args.asan)) test_list.append(brick_hex_def) @@ -1317,10 +1317,10 @@ def main(): brick_pyra_def.cfg_dir = "deformation/brick_pyra" brick_pyra_def.cfg_file = "def_brick_pyra.cfg" brick_pyra_def.test_iter = 10 - brick_pyra_def.test_vals = [0.00150063] #residual + brick_pyra_def.test_vals = [0.0015010] brick_pyra_def.command = TestCase.Command(exec = "SU2_DEF") brick_pyra_def.timeout = 1600 - brick_pyra_def.tol = 1e-08 + brick_pyra_def.tol = 1e-06 pass_list.append(brick_pyra_def.run_def(args.tsan, args.asan)) test_list.append(brick_pyra_def) @@ -1330,10 +1330,10 @@ def main(): brick_prism_def.cfg_dir = "deformation/brick_prism" brick_prism_def.cfg_file = "def_brick_prism.cfg" brick_prism_def.test_iter = 10 - brick_prism_def.test_vals = [0.00212069] #residual + brick_prism_def.test_vals = [0.0021210] brick_prism_def.command = TestCase.Command(exec = "SU2_DEF") brick_prism_def.timeout = 1600 - brick_prism_def.tol = 1e-08 + brick_prism_def.tol = 1e-06 pass_list.append(brick_prism_def.run_def(args.tsan, args.asan)) test_list.append(brick_prism_def) @@ -1343,10 +1343,10 @@ def main(): brick_prism_rans_def.cfg_dir = "deformation/brick_prism_rans" brick_prism_rans_def.cfg_file = "def_brick_prism_rans.cfg" brick_prism_rans_def.test_iter = 10 - brick_prism_rans_def.test_vals = [4.8066e-08] #residual + brick_prism_rans_def.test_vals = [0.0000000] brick_prism_rans_def.command = TestCase.Command(exec = "SU2_DEF") brick_prism_rans_def.timeout = 1600 - brick_prism_rans_def.tol = 1e-12 + brick_prism_rans_def.tol = 1e-06 pass_list.append(brick_prism_rans_def.run_def(args.tsan, args.asan)) test_list.append(brick_prism_rans_def) @@ -1356,10 +1356,10 @@ def main(): brick_hex_rans_def.cfg_dir = "deformation/brick_hex_rans" brick_hex_rans_def.cfg_file = "def_brick_hex_rans.cfg" brick_hex_rans_def.test_iter = 10 - brick_hex_rans_def.test_vals = [2.260750e-07] #residual + brick_hex_rans_def.test_vals = [0.0000000] brick_hex_rans_def.command = TestCase.Command(exec = "SU2_DEF") brick_hex_rans_def.timeout = 1600 - brick_hex_rans_def.tol = 1e-12 + brick_hex_rans_def.tol = 1e-06 pass_list.append(brick_hex_rans_def.run_def(args.tsan, args.asan)) test_list.append(brick_hex_rans_def) @@ -1369,10 +1369,10 @@ def main(): cylinder_ffd_def.cfg_dir = "deformation/cylindrical_ffd" cylinder_ffd_def.cfg_file = "def_cylindrical.cfg" cylinder_ffd_def.test_iter = 10 - cylinder_ffd_def.test_vals = [0.000470133] #residual + cylinder_ffd_def.test_vals = [0.0004700] cylinder_ffd_def.command = TestCase.Command(exec = "SU2_DEF") cylinder_ffd_def.timeout = 1600 - cylinder_ffd_def.tol = 1e-09 + cylinder_ffd_def.tol = 1e-06 pass_list.append(cylinder_ffd_def.run_def(args.tsan, args.asan)) test_list.append(cylinder_ffd_def) @@ -1382,10 +1382,10 @@ def main(): sphere_ffd_def.cfg_dir = "deformation/spherical_ffd" sphere_ffd_def.cfg_file = "def_spherical.cfg" sphere_ffd_def.test_iter = 10 - sphere_ffd_def.test_vals = [0.00356699] #residual + sphere_ffd_def.test_vals = [0.0035670] sphere_ffd_def.command = TestCase.Command(exec = "SU2_DEF") sphere_ffd_def.timeout = 1600 - sphere_ffd_def.tol = 1e-08 + sphere_ffd_def.tol = 1e-06 pass_list.append(sphere_ffd_def.run_def(args.tsan, args.asan)) test_list.append(sphere_ffd_def) @@ -1395,10 +1395,10 @@ def main(): sphere_ffd_def_bspline.cfg_dir = "deformation/spherical_ffd" sphere_ffd_def_bspline.cfg_file = "def_spherical_bspline.cfg" sphere_ffd_def_bspline.test_iter = 10 - sphere_ffd_def_bspline.test_vals = [0.00206808] #residual + sphere_ffd_def_bspline.test_vals = [0.0020680] sphere_ffd_def_bspline.command = TestCase.Command(exec = "SU2_DEF") sphere_ffd_def_bspline.timeout = 1600 - sphere_ffd_def_bspline.tol = 1e-08 + sphere_ffd_def_bspline.tol = 1e-06 pass_list.append(sphere_ffd_def_bspline.run_def(args.tsan, args.asan)) test_list.append(sphere_ffd_def_bspline) @@ -1425,7 +1425,7 @@ def main(): shape_opt_euler_py.cfg_dir = "optimization_euler/steady_naca0012" shape_opt_euler_py.cfg_file = "inv_NACA0012_adv.cfg" shape_opt_euler_py.test_iter = 1 - shape_opt_euler_py.test_vals = [1, 1, 2.134974E-05, 0.003847] #last 4 columns + shape_opt_euler_py.test_vals = [1.000000, 1.000000, 0.000021, 0.003643] shape_opt_euler_py.command = TestCase.Command(exec = "shape_optimization.py", param = "-g CONTINUOUS_ADJOINT -f") shape_opt_euler_py.timeout = 1600 shape_opt_euler_py.tol = 0.00001 @@ -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, 30.428280, 2.039416] + opt_multiobj1surf_py.test_vals = [1.000000, 1.000000, 36.117740, 4.438036] 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.005694, 0.000185] + opt_2surf1obj_py.test_vals = [1.000000, 1.000000, 2.005219, 0.000369] 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.023999, -3.515034, 0.339426, 0.022217] + pywrapper_naca0012.test_vals = [-4.444941, -3.941038, 0.318998, 0.022365] 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.074836, 0.033102, -0.001650, -0.000127] + pywrapper_aeroelastic.test_vals = [0.074291, 0.027620, -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.743214, -4.133482] + pywrapper_fsi2d.test_vals = [4.000000, 0.000000, -3.729228, -4.153949] 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.124164, -1.544359, -3.808866, 1.338411, -0.752679, 0.161436, -1.2391e-02, 5.1662e-01, -5.2901e-01] + pywrapper_custom_inlet.test_vals = [-4.120494, -1.540195, -3.566114, 1.342509, -0.748827, 0.161349, -0.013214, 0.516000, -0.529220] 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 ac268040cd5..6faaeff53af 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.561506, -8.926634, -0.000000, 0.005587] + discadj_naca0012.test_vals = [-3.560691, -8.925239, -0.000000, 0.005559] 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.737675, -3.842311, -0.000000, 0.000000] + discadj_cylinder3D.test_vals = [-3.771233, -3.727282, -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.087863, -3.481496, 6.8879e-02, 0] + discadj_arina2k.test_vals = [-3.534947, -3.773294, 0.027242, 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.092007, -2.652750, 0.000000] + discadj_incomp_NACA0012.test_vals = [20.000000, -4.087948, -2.655204, 0.000000] test_list.append(discadj_incomp_NACA0012) ##################################### @@ -110,7 +110,7 @@ def main(): discadj_incomp_cylinder.cfg_dir = "disc_adj_incomp_navierstokes/cylinder" discadj_incomp_cylinder.cfg_file = "heated_cylinder.cfg" discadj_incomp_cylinder.test_iter = 20 - discadj_incomp_cylinder.test_vals = [20.000000, -2.373367, -2.368305, 0.000000] #last 4 columns + discadj_incomp_cylinder.test_vals = [20.000000, -2.373367, -2.368305, 0.000000] test_list.append(discadj_incomp_cylinder) ####################################################### @@ -122,7 +122,7 @@ def main(): discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder" discadj_cylinder.cfg_file = "cylinder.cfg" discadj_cylinder.test_iter = 9 - discadj_cylinder.test_vals = [3.746909, -1.544883, -0.008321, 0.000014] #last 4 columns + discadj_cylinder.test_vals = [3.746909, -1.544883, -0.008321, 0.000014] discadj_cylinder.unsteady = True test_list.append(discadj_cylinder) @@ -135,7 +135,7 @@ def main(): discadj_DT_1ST_cylinder.cfg_dir = "disc_adj_rans/cylinder_DT_1ST" discadj_DT_1ST_cylinder.cfg_file = "cylinder.cfg" discadj_DT_1ST_cylinder.test_iter = 9 - discadj_DT_1ST_cylinder.test_vals = [3.698168, -1.607050, -0.002159, 0.000028] #last 4 columns + discadj_DT_1ST_cylinder.test_vals = [3.698168, -1.607050, -0.002159, 0.000028] discadj_DT_1ST_cylinder.unsteady = True test_list.append(discadj_DT_1ST_cylinder) @@ -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.218846, -1.645199, -0.007645, 0.000013] + discadj_pitchingNACA0012.test_vals = [-1.220016, -1.646770, -0.007597, 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.958006, -1.841808, 1081.700000, 0.000004] + unst_deforming_naca0012.test_vals = [-1.959357, -1.843601, 2729.700000, 0.000004] unst_deforming_naca0012.unsteady = True test_list.append(unst_deforming_naca0012) @@ -170,7 +170,7 @@ def main(): discadj_fea.cfg_dir = "disc_adj_fea" discadj_fea.cfg_file = "configAD_fem.cfg" discadj_fea.test_iter = 4 - discadj_fea.test_vals = [-2.849781, -3.238667, -0.000364, -8.708700] + discadj_fea.test_vals = [-2.849844, -3.238713, -0.000364, -8.708700] discadj_fea.tol = 0.00007 test_list.append(discadj_fea) @@ -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 = [-2.227530, 0.577932, 0.000000, -7.754000] + discadj_heat.test_vals = [-2.122406, 0.693852, 0.000000, -0.869010] test_list.append(discadj_heat) ################################### @@ -195,7 +195,7 @@ def main(): discadj_fsi.cfg_dir = "disc_adj_fsi" discadj_fsi.cfg_file = "config.cfg" discadj_fsi.test_iter = 6 - discadj_fsi.test_vals = [6.000000, -1.965877, -3.084381, 0.000440, -1.063100] #last 5 columns + discadj_fsi.test_vals = [6.000000, -1.965877, -3.084381, 0.000440, -1.063100] test_list.append(discadj_fsi) ################################### @@ -207,7 +207,7 @@ def main(): discadj_cht.cfg_dir = "coupled_cht/disc_adj_incomp_2d" discadj_cht.cfg_file = "cht_2d_3cylinders.cfg" discadj_cht.test_iter = 10 - discadj_cht.test_vals = [-2.955506, -3.085551, -3.085518, -3.085513] #last 4 columns + discadj_cht.test_vals = [-2.955506, -3.085551, -3.085518, -3.085513] test_list.append(discadj_cht) ###################################### @@ -323,7 +323,7 @@ def main(): pywrapper_FEA_AD_FlowLoad.cfg_dir = "py_wrapper/disc_adj_fea/flow_load_sens" pywrapper_FEA_AD_FlowLoad.cfg_file = "configAD_fem.cfg" pywrapper_FEA_AD_FlowLoad.test_iter = 100 - pywrapper_FEA_AD_FlowLoad.test_vals = [-0.13945587401579657, -0.585985886606256, -0.00036377840086080753, -0.0031005670174756375] #last 4 columns + pywrapper_FEA_AD_FlowLoad.test_vals = [-0.139456, -0.585986, -0.000364, -0.003101] pywrapper_FEA_AD_FlowLoad.command = TestCase.Command(exec = "python", param = "run_adjoint.py -f") pywrapper_FEA_AD_FlowLoad.timeout = 1600 pywrapper_FEA_AD_FlowLoad.tol = 0.000001 @@ -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.518695, 1.390150, 0.000000] #last 4 columns + pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.505330, 1.409290, 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/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg index 239ae7647de..7ce89091193 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg @@ -81,7 +81,7 @@ MARKER_OUTLET= ( outlet, 0.0 ) % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES % -CFL_NUMBER= 150 +CFL_NUMBER= 80 CFL_REDUCTION_SPECIES= 0.1 CFL_REDUCTION_TURB= 1.0 % diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg index 1ba87a48301..f851455c179 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg @@ -82,7 +82,7 @@ MARKER_OUTLET= ( outlet, 0.0 ) % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES % -CFL_NUMBER= 150 +CFL_NUMBER= 80 CFL_REDUCTION_SPECIES= 0.1 CFL_REDUCTION_TURB= 1.0 % @@ -93,8 +93,8 @@ ITER= 1000 % LINEAR_SOLVER= FGMRES LINEAR_SOLVER_PREC= ILU -LINEAR_SOLVER_ERROR= 1E-8 -LINEAR_SOLVER_ITER= 30 +LINEAR_SOLVER_ERROR= 1E-5 +LINEAR_SOLVER_ITER= 10 % % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index f63fb81c990..e2cac1f32d0 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -71,7 +71,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.625757, 1.445108, -0.750969, 241.762883] + sp_pinArray_2d_mf_hf.test_vals = [-4.613682, 1.471278, -0.748987, 241.667177] test_list.append(sp_pinArray_2d_mf_hf) # 2D pin case pressure drop periodic with heatflux BC and temperature periodicity @@ -79,7 +79,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.666547, 1.396426, -0.709267, 208.023676] + sp_pinArray_2d_dp_hf_tp.test_vals = [-4.640621, 1.436697, -0.707302, 208.023676] test_list.append(sp_pinArray_2d_dp_hf_tp) ### Species Transport @@ -89,7 +89,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 = [-6.082040, -5.293756, -5.131970, -5.933415, -1.606563, -6.274241, -6.408477, 5.000000, -0.811535, 5.000000, -2.344697, 5.000000, -0.388358, 1.647440, 0.499101, 0.600978, 0.547361] + 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] test_list.append(species3_primitiveVenturi) # 3 species (2 eq) primitive venturi mixing @@ -97,8 +97,8 @@ 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 = [-8.443103, -7.715615, -7.706589, -7.428740, -12.067471, -12.205189, -11.368995] - DAspecies3_primitiveVenturi.test_vals_aarch64 = [-8.443103, -7.715615, -7.706589, -7.428740, -12.067471, -12.205189, -11.368995] + DAspecies3_primitiveVenturi.test_vals = [-7.584508, -7.211527, -6.740742, -6.896386, -11.472089, -10.865347, -10.096770] + 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) @@ -116,7 +116,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 = [-13.618610, -12.647974, -12.296537, -11.658760, -13.136523, -9.550829, 15.000000, -2.369703] + sudo_tutorial.test_vals = [-14.579462, -13.203791, -13.601782, -12.616876, -14.005299, -10.817605, 15.000000, -2.296083] sudo_tutorial.command = TestCase.Command("mpirun -n 2", "SU2_CFD") test_list.append(sudo_tutorial) @@ -127,7 +127,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.905856, -10.449512, -11.035999, -4.331440, -11.882740] + premixed_hydrogen.test_vals = [-9.809794, -10.369804, -11.044267, -4.332945, -11.883789] test_list.append(premixed_hydrogen) ### Compressible Flow @@ -137,7 +137,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.437425, 4.075857, 0.005439, 0.012998] + tutorial_inv_bump.test_vals = [-1.548003, 3.983585, 0.020973, 0.071064] test_list.append(tutorial_inv_bump) # Inviscid Wedge @@ -145,7 +145,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.481460, 5.253008, -0.291747, 0.052515] + tutorial_inv_wedge.test_vals = [-0.864206, 4.850246, -0.259185, 0.045567] tutorial_inv_wedge.no_restart = True test_list.append(tutorial_inv_wedge) @@ -154,7 +154,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.204928, -4.597762, 0.247451, 0.085770] + tutorial_inv_onera.test_vals = [-5.504789, -4.895776, 0.249157, 0.118834] tutorial_inv_onera.no_restart = True test_list.append(tutorial_inv_onera) @@ -172,7 +172,7 @@ def main(): tutorial_lam_flatplate.cfg_dir = "../Tutorials/compressible_flow/Laminar_Flat_Plate" tutorial_lam_flatplate.cfg_file = "lam_flatplate.cfg" tutorial_lam_flatplate.test_iter = 0 - tutorial_lam_flatplate.test_vals = [-2.821818, 2.657591, -0.400044, 0.029413] #last 4 columns + tutorial_lam_flatplate.test_vals = [-2.821818, 2.657591, -0.400044, 0.029365] #last 4 columns tutorial_lam_flatplate.no_restart = True test_list.append(tutorial_lam_flatplate) @@ -181,7 +181,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.429375, 0.201236] + tutorial_turb_flatplate.test_vals = [-2.258584, -4.901015, -0.429373, 0.201034] tutorial_turb_flatplate.no_restart = True test_list.append(tutorial_turb_flatplate) @@ -199,8 +199,8 @@ 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.837186, -2.092246, -3.982633, -0.302219, -1.921235, 1.667190, -3.496277, 0.391605] - tutorial_trans_flatplate_T3A.test_vals_aarch64 = [-5.837191, -2.092246, -3.982640, -0.302224, -1.922554, 1.667190, -3.496277, 0.391605] + tutorial_trans_flatplate_T3A.test_vals = [-5.837399, -2.092246, -3.983493, -0.302381, -1.920868, 1.667180, -3.496278, 0.391608] + 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) @@ -209,8 +209,8 @@ 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.063600, -1.945057, -3.946760, -0.549063, -3.863792, 2.664453, -2.517606, 1.112979] - tutorial_trans_flatplate_T3Am.test_vals_aarch64 = [-6.063598, -1.945057, -3.946744, -0.549062, -3.863792, 2.664453, -2.517606, 1.112979] + tutorial_trans_flatplate_T3Am.test_vals = [-6.063700, -1.945073, -3.946836, -0.549147, -3.863792, 2.664440, -2.517610, 1.112977] + 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) @@ -237,7 +237,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.524476, 0.327954, 0.097349] + tutorial_turb_oneram6.test_vals = [-4.564441, -11.524295, 0.327905, 0.097340] test_list.append(tutorial_turb_oneram6) # NICD Nozzle @@ -245,7 +245,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.187397, -2.338457, 3.617301, 0.000000, 0.000000] + tutorial_nicfd_nozzle.test_vals = [-2.056675, -2.124123, 3.687027, 0.000000, 0.000000] tutorial_nicfd_nozzle.no_restart = True test_list.append(tutorial_nicfd_nozzle) @@ -275,7 +275,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.585391, -2.989014, 0.135070, 0.208565] + tutorial_design_inv_naca0012.test_vals = [-3.918503, -3.332494, 0.134359, 0.218097] tutorial_design_inv_naca0012.no_restart = True test_list.append(tutorial_design_inv_naca0012) @@ -293,7 +293,7 @@ def main(): tutorial_design_multiobj.cfg_dir = "../Tutorials/design/Multi_Objective_Shape_Design" tutorial_design_multiobj.cfg_file = "inv_wedge_ROE_multiobj_combo.cfg" tutorial_design_multiobj.test_iter = 0 - tutorial_design_multiobj.test_vals = [2.657333, -3.020635, 324840.000000, 0.000000] #last 4 columns + tutorial_design_multiobj.test_vals = [2.657333, -3.020635, 370220.000000, 0.000000] tutorial_design_multiobj.no_restart = True test_list.append(tutorial_design_multiobj) diff --git a/TestCases/user_defined_functions/lam_flatplate.cfg b/TestCases/user_defined_functions/lam_flatplate.cfg index 35cdc97b9c9..c3d55cd45c0 100644 --- a/TestCases/user_defined_functions/lam_flatplate.cfg +++ b/TestCases/user_defined_functions/lam_flatplate.cfg @@ -114,7 +114,7 @@ SLOPE_LIMITER_FLOW= NONE % CONV_RESIDUAL_MINVAL= -11 CONV_STARTITER= 0 -INNER_ITER= 1000 +INNER_ITER= 21 % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % diff --git a/TestCases/vandv.py b/TestCases/vandv.py index 16ea373e8c1..06c74d893f8 100644 --- a/TestCases/vandv.py +++ b/TestCases/vandv.py @@ -54,8 +54,8 @@ 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.023358, -9.956752, -11.099910, -7.933220, -10.206577, -5.132343, 0.002808] - flatplate_sst1994m.test_vals_aarch64 = [-13.022835, -9.956652, -11.102384, -7.928197, -10.206580, -5.132317, 0.002808] + flatplate_sst1994m.test_vals = [-13.027926, -10.276119, -11.311717, -8.137517, -10.520065, -5.127385, 0.002775] + flatplate_sst1994m.test_vals_aarch64 = [-13.028095, -11.271115, -11.532461, -8.387610, -11.417974, -5.116988, 0.002808] test_list.append(flatplate_sst1994m) # bump in channel - sst-v1994m @@ -63,8 +63,8 @@ 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 = [-12.986182, -10.719941, -10.556276, -7.606531, -10.774915, -5.605156, 0.004972] - bump_sst1994m.test_vals_aarch64 = [-13.039365, -10.729085, -10.609923, -7.682911, -10.774915, -5.605087, 0.004972] + bump_sst1994m.test_vals = [-13.022054, -9.882710, -10.557148, -7.605034, -10.172437, -5.549948, 0.004904] + bump_sst1994m.test_vals_aarch64 = [-13.034665, -10.510699, -10.627802, -7.661320, -10.680337, -5.749566, 0.004972] test_list.append(bump_sst1994m) # SWBLI SA @@ -72,8 +72,8 @@ 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.530796, -10.915564, -12.034495, -10.538719, -15.922522, 0.002233, -3.359164, 1.340100] - swbli_sa.test_vals_aarch64 = [-11.530796, -10.915564, -12.034495, -10.538719, -15.922522, 0.002233, -3.359164, 1.340100] + swbli_sa.test_vals = [-11.564511, -10.836187, -11.792765, -10.383947, -15.718717, 0.002212, -2.993991, 1.340100] + swbli_sa.test_vals_aarch64 = [-11.564511, -10.836187, -11.792765, -10.383947, -15.718717, 0.002212, -2.993991, 1.340100] test_list.append(swbli_sa) @@ -82,7 +82,7 @@ def main(): swbli_sst.cfg_dir = "vandv/rans/swbli" swbli_sst.cfg_file = "config_sst.cfg" swbli_sst.test_iter = 5 - swbli_sst.test_vals = [-11.527743, -11.150388, -11.944923, -10.750834, -11.116769, -4.030059, 0.002339, -2.730391, -4.067274, 1.276300] + swbli_sst.test_vals = [-11.528112, -10.961624, -11.903226, -10.630539, -11.117619, -4.573066, 0.002318, -2.905628, -4.037947, 1.340100] test_list.append(swbli_sst) ########################## @@ -94,8 +94,8 @@ 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 = [-16.249917, -13.835991, -14.303372, -13.276035, -10.074262, -14.027223, 5, -1.672359, 5, -4.938477, 5, -3.462217, 2.5859e-04, 2.8215e-32, 4.5010e-68, 2.5859e-04, 4.0474e+03, 3.9468e+03, 4.9170e+01, 5.1441e+01] - sandiajet_sst.test_vals_aarch64 = [-16.249289, -13.833785, -14.303058, -13.276559, -10.267928, -14.027240, 5, -1.676412, 5, -4.815216, 5, -3.462247, 0.000259, 0, 0, 0.000259, 4047.4, 3946.8, 49.17, 51.441] + sandiajet_sst.test_vals = [-17.169907, -13.518707, -15.442566, -12.021165, -9.660040, -15.289842, 5.000000, -2.746249, 5.000000, -4.836800, 5.000000, -3.966350, 0.000259, 0.000000, 0.000000, 0.000259, 4047.400000, 3946.800000, 49.161000, 51.433000] + 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/UnitTests/SU2_CFD/gradients.cpp b/UnitTests/SU2_CFD/gradients.cpp index 2f69d407d3a..af3ad8a2fee 100644 --- a/UnitTests/SU2_CFD/gradients.cpp +++ b/UnitTests/SU2_CFD/gradients.cpp @@ -133,7 +133,7 @@ void testGreenGauss() { C3DDoubleMatrix gradient(field.geometry->GetnPoint(), field.nVar, field.geometry->GetnDim()); computeGradientsGreenGauss(nullptr, MPI_QUANTITIES::SOLUTION, PERIODIC_NONE, *field.geometry.get(), - *field.config.get(), field, 0, field.nVar, gradient); + *field.config.get(), field, 0, field.nVar, -1, gradient); check(field, gradient); } @@ -145,7 +145,7 @@ void testLeastSquares(bool weighted) { C3DDoubleMatrix gradient(field.geometry->GetnPoint(), field.nVar, nDim); computeGradientsLeastSquares(nullptr, MPI_QUANTITIES::SOLUTION, PERIODIC_NONE, *field.geometry.get(), - *field.config.get(), weighted, field, 0, field.nVar, gradient, R); + *field.config.get(), weighted, field, 0, field.nVar, -1, gradient, R); check(field, gradient); } From dca70b2959f4fb9ece304b43b4dcc04f42f248d6 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Tue, 6 Aug 2024 10:28:44 +0200 Subject: [PATCH 217/287] Added test case for solid-to-solid conjugate heat transfer with contact resistance --- .../solid_solid_contact_resistance/fluid.cfg | 55 +++++++++++++++++++ .../solid_solid_contact_resistance/master.cfg | 31 +++++++++++ .../solid_1.cfg | 47 ++++++++++++++++ .../solid_2.cfg | 41 ++++++++++++++ 4 files changed, 174 insertions(+) create mode 100644 TestCases/coupled_cht/solid_solid_contact_resistance/fluid.cfg create mode 100644 TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg create mode 100644 TestCases/coupled_cht/solid_solid_contact_resistance/solid_1.cfg create mode 100644 TestCases/coupled_cht/solid_solid_contact_resistance/solid_2.cfg diff --git a/TestCases/coupled_cht/solid_solid_contact_resistance/fluid.cfg b/TestCases/coupled_cht/solid_solid_contact_resistance/fluid.cfg new file mode 100644 index 00000000000..f9a42d6a4c5 --- /dev/null +++ b/TestCases/coupled_cht/solid_solid_contact_resistance/fluid.cfg @@ -0,0 +1,55 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: solid-to-solid and solid-to-fluid conjugate heat transfer % +% with contact resistance. % +% Author: E.C.Bunschoten % +% Date: August 6, 2024 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% + +SOLVER= INC_NAVIER_STOKES +INC_ENERGY_EQUATION= YES + +% ------------------- INCOMPRESSIBLE FREE-STREAM DEFINITION -------------------% + +FREESTREAM_TEMPERATURE= 300 + +INC_VELOCITY_INIT=(0.1, 0.0, 0.0) +FLUID_MODEL=INC_IDEAL_GAS + +VISCOSITY_MODEL=CONSTANT_VISCOSITY +MU_CONSTANT=1e-5 + +REF_DIMENSIONALIZATION= DIMENSIONAL +INC_NONDIM= DIMENSIONAL + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +INC_INLET_TYPE=VELOCITY_INLET +INC_OUTLET_TYPE=PRESSURE_OUTLET +MARKER_SYM= ( side_3 ) +MARKER_INLET= ( inlet, 300, 0.1, 1.0, 0.0, 0.0 ) +MARKER_OUTLET= ( outlet, 0.0) +MARKER_INTERNAL= (fluid) +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% + +CFL_NUMBER= 100 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +CONV_NUM_METHOD_FLOW= FDS +MUSCL_FLOW= YES + +% --------------------------- CONVERGENCE PARAMETERS --------------------------% + +CONV_RESIDUAL_MINVAL= -12 + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +MESH_FILENAME= fluid_mesh.su2 +CONV_FILENAME= history_fluid_3 +TABULAR_FORMAT= CSV \ No newline at end of file diff --git a/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg b/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg new file mode 100644 index 00000000000..32b47d8e09b --- /dev/null +++ b/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg @@ -0,0 +1,31 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: solid-to-solid and solid-to-fluid conjugate heat transfer % +% with contact resistance. % +% Author: E.C.Bunschoten % +% Date: August 6, 2024 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= MULTIPHYSICS +MATH_PROBLEM= DIRECT +MULTIZONE_MESH=NO +CONFIG_LIST = (solid_1.cfg, solid_2.cfg, fluid.cfg) +MARKER_ZONE_INTERFACE= (cht_interface_1_2, cht_interface_2_1, \ + cht_interface_1_3, cht_interface_3_1, \ + cht_interface_2_3, cht_interface_3_2) +MARKER_CHT_INTERFACE= (cht_interface_1_2, cht_interface_2_1, \ + cht_interface_1_3, cht_interface_3_1, \ + cht_interface_2_3, cht_interface_3_2) +CHT_INTERFACE_CONTACT_RESISTANCE = (1e-5, 0, 0) + +CHT_COUPLING_METHOD= DIRECT_TEMPERATURE_ROBIN_HEATFLUX +TIME_DOMAIN = NO +OUTER_ITER = 2000 +WRT_ZONE_HIST=YES + +OUTPUT_FILES=(RESTART, PARAVIEW_MULTIBLOCK) \ No newline at end of file diff --git a/TestCases/coupled_cht/solid_solid_contact_resistance/solid_1.cfg b/TestCases/coupled_cht/solid_solid_contact_resistance/solid_1.cfg new file mode 100644 index 00000000000..06f3d0561ef --- /dev/null +++ b/TestCases/coupled_cht/solid_solid_contact_resistance/solid_1.cfg @@ -0,0 +1,47 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: solid-to-solid and solid-to-fluid conjugate heat transfer % +% with contact resistance. % +% Author: E.C.Bunschoten % +% Date: August 6, 2024 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= HEAT_EQUATION + + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +MARKER_ISOTHERMAL= ( isothermal_wall_1, 500.0 ) +MARKER_SYM=(side_1) +MARKER_MONITORING= ( NONE ) +MARKER_INTERNAL=(solid_1) + +% ---------------- (SOLIDS) CONDUCTION CONDITION DEFINITION -------------------% + +% We should keep the dimensionalization of the coupled flow solver +INC_NONDIM= DIMENSIONAL +FREESTREAM_TEMPERATURE= 300.0 + +% Properties of stainless steel +MATERIAL_DENSITY= 8935 +SPECIFIC_HEAT_CP= 3850 +THERMAL_CONDUCTIVITY_CONSTANT=26 + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% + +CFL_NUMBER= 100.0 + + +% -------------------- HEAT NUMERICAL METHOD DEFINITION -----------------------% + +TIME_DISCRE_HEAT= EULER_IMPLICIT + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +TABULAR_FORMAT= CSV +CONV_FILENAME= history_solid_1 +MESH_FILENAME=solid_mesh_1.su2 \ No newline at end of file diff --git a/TestCases/coupled_cht/solid_solid_contact_resistance/solid_2.cfg b/TestCases/coupled_cht/solid_solid_contact_resistance/solid_2.cfg new file mode 100644 index 00000000000..213d2520a4e --- /dev/null +++ b/TestCases/coupled_cht/solid_solid_contact_resistance/solid_2.cfg @@ -0,0 +1,41 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: solid-to-solid and solid-to-fluid conjugate heat transfer % +% with contact resistance. % +% Author: E.C.Bunschoten % +% Date: August 6, 2024 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= HEAT_EQUATION + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +MARKER_ISOTHERMAL= ( isothermal_wall_2, 300.0 ) +MARKER_SYM=(side_2) +MARKER_INTERNAL=(solid_2) + +% ---------------- (SOLIDS) CONDUCTION CONDITION DEFINITION -------------------% + +% We should keep the dimensionalization of the coupled flow solver +INC_NONDIM= DIMENSIONAL +FREESTREAM_TEMPERATURE= 300.0 + +MATERIAL_DENSITY= 8000 +SPECIFIC_HEAT_CP= 4420 +THERMAL_CONDUCTIVITY_CONSTANT= 61 + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% + +CFL_NUMBER= 100.0 + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% + +MESH_FILENAME= solid_mesh_2.su2 +TABULAR_FORMAT= CSV +CONV_FILENAME= history_solid_2 + From 0e11d1f843ed5f043aaccd2e14b53c47c0fb23fd Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Tue, 6 Aug 2024 10:46:32 +0200 Subject: [PATCH 218/287] Added test case to regression tests. --- .github/workflows/regression.yml | 2 +- Common/include/CConfig.hpp | 2 +- TestCases/parallel_regression.py | 10 ++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index af6f6c60875..f7e5b1952b1 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -213,7 +213,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t develop -c feature_solid-solid_cht -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index af5bc3078bc..c7761753d33 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -3677,7 +3677,7 @@ class CConfig { * \param[in] val_interface interface index. * \return Contact resistance value. */ - const su2double GetContactResistance(unsigned short val_interface) const { return CHT_ContactResistance[val_interface]; } + su2double GetContactResistance(unsigned short val_interface) const { return CHT_ContactResistance[val_interface]; } /*! * \brief Get the DV information for a marker val_marker. diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 4cad2c9789c..9ab9f8024fa 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1339,6 +1339,16 @@ def main(): sp_pinArray_3d_cht_mf_hf_tp.multizone = True test_list.append(sp_pinArray_3d_cht_mf_hf_tp) + # Solid-to-solid and solid-to-fluid CHT with contact resistance + cht_CR = TestCase('cht_solid_solid') + cht_CR.cfg_dir = "coupled_cht/solid_solid_contact_resistance" + cht_CR.cfg_file = "master.cfg" + cht_CR.test_iter = 100 + cht_CR.test_vals = [-2.128827, -0.588812, -0.588812, -0.588812] + cht_CR.multizone = True + test_list.append(cht_CR) + + ########################## ### Python wrapper ### ########################## From 87ffec480982cec96b57d8cb30d4fc5f55a77dec Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Tue, 6 Aug 2024 11:45:47 +0200 Subject: [PATCH 219/287] Modified screen outputs --- .../coupled_cht/solid_solid_contact_resistance/master.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg b/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg index 32b47d8e09b..386f46991df 100644 --- a/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg +++ b/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg @@ -28,4 +28,5 @@ TIME_DOMAIN = NO OUTER_ITER = 2000 WRT_ZONE_HIST=YES -OUTPUT_FILES=(RESTART, PARAVIEW_MULTIBLOCK) \ No newline at end of file +OUTPUT_FILES=(RESTART, PARAVIEW_MULTIBLOCK) +SCREEN_OUTPUT=(RMS_PRESSURE[2],RMS_VELOCITY-X[2],RMS_TEMPERATURE[0],RMS_TEMPERATURE[1]) \ No newline at end of file From faa0ca4dbdade6e1e8e94423a1839e807abb86c0 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Tue, 6 Aug 2024 12:19:41 +0200 Subject: [PATCH 220/287] Modified screen outputs --- TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg b/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg index 386f46991df..26e48176b16 100644 --- a/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg +++ b/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg @@ -29,4 +29,4 @@ OUTER_ITER = 2000 WRT_ZONE_HIST=YES OUTPUT_FILES=(RESTART, PARAVIEW_MULTIBLOCK) -SCREEN_OUTPUT=(RMS_PRESSURE[2],RMS_VELOCITY-X[2],RMS_TEMPERATURE[0],RMS_TEMPERATURE[1]) \ No newline at end of file +SCREEN_OUTPUT=(OUTER_ITER, RMS_PRESSURE[2],RMS_VELOCITY-X[2],RMS_TEMPERATURE[0],RMS_TEMPERATURE[1]) \ No newline at end of file From d9645ab17281da038886d3306bd8dcb0f53a8b63 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Tue, 6 Aug 2024 13:10:46 +0200 Subject: [PATCH 221/287] Updated residual values for cht test case and updated tutorial branch --- .github/workflows/regression.yml | 2 +- TestCases/parallel_regression.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index f7e5b1952b1..c08dce750b1 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -213,7 +213,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c feature_solid-solid_cht -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t feature_solid-solid_cht -c feature_solid-solid_cht -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 9ab9f8024fa..96b1c4b575e 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1344,7 +1344,7 @@ def main(): cht_CR.cfg_dir = "coupled_cht/solid_solid_contact_resistance" cht_CR.cfg_file = "master.cfg" cht_CR.test_iter = 100 - cht_CR.test_vals = [-2.128827, -0.588812, -0.588812, -0.588812] + cht_CR.test_vals = [ -8.899450, -9.378702, -7.378797, -7.246496] cht_CR.multizone = True test_list.append(cht_CR) From 374abdd46de320523c0af49c020b579d25ddc595 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Fri, 9 Aug 2024 22:17:06 +0200 Subject: [PATCH 222/287] Cleanup Giles BC initial commit --- SU2_CFD/include/solvers/CEulerSolver.hpp | 34 +- SU2_CFD/include/solvers/CSolver.hpp | 32 ++ SU2_CFD/src/solvers/CEulerSolver.cpp | 525 +++++++++-------------- 3 files changed, 259 insertions(+), 332 deletions(-) diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index fdd5598278e..342448c6253 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -589,7 +589,7 @@ class CEulerSolver : public CFVMFlowSolverBaseGetiZone(); - bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); - string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - bool viscous = config->GetViscous(); - unsigned short nSpanWiseSections = geometry->GetnSpanWiseSections(config->GetMarker_All_TurbomachineryFlag(val_marker)); - su2double relfacAvgCfg = config->GetGiles_RelaxFactorAverage(Marker_Tag); - su2double relfacFouCfg = config->GetGiles_RelaxFactorFourier(Marker_Tag); - su2double *Normal; - su2double TwoPiThetaFreq_Pitch, pitch,theta; - const su2double *SpanWiseValues = nullptr, *FlowDir; - su2double spanPercent, extrarelfacAvg = 0.0, deltaSpan = 0.0, relfacAvg, relfacFou, coeffrelfacAvg = 0.0; - unsigned short Turbo_Flag; - - Normal = new su2double[nDim]; - turboNormal = new su2double[nDim]; - UnitNormal = new su2double[nDim]; - turboVelocity = new su2double[nDim]; - Velocity_i = new su2double[nDim]; - Velocity_b = new su2double[nDim]; - - - su2double AverageSoundSpeed, *AverageTurboMach, AverageEntropy, AverageEnthalpy; - AverageTurboMach = new su2double[nDim]; - S_boundary = new su2double[8]; - - su2double AvgMach , *cj, GilesBeta, *delta_c, **R_Matrix, *deltaprim, **R_c_inv,**R_c, alphaIn_BC, gammaIn_BC = 0, - P_Total, T_Total, Enthalpy_BC, Entropy_BC, *R, *c_avg,*dcjs, Beta_inf2, c2js_Re, c3js_Re, cOutjs_Re, avgVel2 =0.0; - - long freq; - - delta_c = new su2double[nVar]; - deltaprim = new su2double[nVar]; - cj = new su2double[nVar]; - R_Matrix = new su2double*[nVar]; - R_c = new su2double*[nVar-1]; - R_c_inv = new su2double*[nVar-1]; - R = new su2double[nVar-1]; - c_avg = new su2double[nVar]; - dcjs = new su2double[nVar]; - - for (iVar = 0; iVar < nVar; iVar++) + /*--- Initialisation of data structures ---*/ + + su2double *Normal = new su2double[nDim], + *turboNormal = new su2double[nDim], + *UnitNormal = new su2double[nDim], + *turboVelocity = new su2double[nDim], + *Velocity_i = new su2double[nDim], + *Velocity_b = new su2double[nDim], + *AverageTurboMach = new su2double[nDim], + *S_boundary = new su2double[8], + *delta_c = new su2double[nVar], + *cj = new su2double[nVar], + **R_Matrix = new su2double*[nVar], + *dcjs = new su2double[nVar], + *c_avg = new su2double[nVar], + **R_c = new su2double*[nVar-1], + **R_c_inv = new su2double*[nVar-1], + *R = new su2double[nVar-1], + *deltaprim = new su2double[nVar]; + + for (auto iVar = 0; iVar < nVar; iVar++) { R_Matrix[iVar] = new su2double[nVar]; c_avg[iVar] = 0.0; dcjs[iVar] = 0.0; } - for (iVar = 0; iVar < nVar-1; iVar++) + for (auto iVar = 0; iVar < nVar-1; iVar++) { R_c[iVar] = new su2double[nVar-1]; R_c_inv[iVar] = new su2double[nVar-1]; } - - complex I, c2ks, c2js, c3ks, c3js, cOutks, cOutjs, Beta_inf; - I = complex(0.0,1.0); + auto const I = complex(0.0,1.0); /*--- Compute coeff for under relaxation of Avg and Fourier Coefficient for hub and shroud---*/ + auto const Marker_Tag = config->GetMarker_All_TagBound(val_marker); + su2double relfacAvgCfg = config->GetGiles_RelaxFactorAverage(Marker_Tag); + + unsigned short nSpanWiseSections = geometry->GetnSpanWiseSections(config->GetMarker_All_TurbomachineryFlag(val_marker)); + + const su2double *SpanWiseValues = nullptr; + + su2double extrarelfacAvg = 0.0, deltaSpan = 0.0, relfacAvg, relfacFou = config->GetGiles_RelaxFactorFourier(Marker_Tag), coeffrelfacAvg = 0.0; + if (nDim == 3){ extrarelfacAvg = config->GetExtraRelFacGiles(0); - spanPercent = config->GetExtraRelFacGiles(1); - Turbo_Flag = config->GetMarker_All_TurbomachineryFlag(val_marker); + auto const spanPercent = config->GetExtraRelFacGiles(1); + auto const Turbo_Flag = config->GetMarker_All_TurbomachineryFlag(val_marker); SpanWiseValues = geometry->GetSpanWiseValue(Turbo_Flag); deltaSpan = SpanWiseValues[nSpanWiseSections-1]*spanPercent; coeffrelfacAvg = (relfacAvgCfg - extrarelfacAvg)/deltaSpan; } - for (iSpan= 0; iSpan < nSpanWiseSections ; iSpan++){ + for (unsigned short iSpan= 0; iSpan < nSpanWiseSections ; iSpan++){ /*--- Compute under relaxation for the Hub and Shroud Avg and Fourier Coefficient---*/ if(nDim == 3){ if(SpanWiseValues[iSpan] <= SpanWiseValues[0] + deltaSpan){ @@ -6202,18 +6181,16 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } else{ relfacAvg = relfacAvgCfg; - relfacFou = relfacFouCfg; } } else{ { relfacAvg = relfacAvgCfg; - relfacFou = relfacFouCfg; } } GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan]); - AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); + auto AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); AverageTurboMach[0] = AverageTurboVelocity[val_marker][iSpan][0]/AverageSoundSpeed; AverageTurboMach[1] = AverageTurboVelocity[val_marker][iSpan][1]/AverageSoundSpeed; @@ -6221,168 +6198,32 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu AverageTurboMach[1] -= geometry->GetAverageTangGridVel(val_marker,iSpan)/AverageSoundSpeed; } - AvgMach = AverageTurboMach[0]*AverageTurboMach[0] + AverageTurboMach[1]*AverageTurboMach[1]; - - kend = geometry->GetnFreqSpan(val_marker, iSpan); - kend_max = geometry->GetnFreqSpanMax(config->GetMarker_All_TurbomachineryFlag(val_marker)); + auto const kend = geometry->GetnFreqSpan(val_marker, iSpan); + auto const kend_max = geometry->GetnFreqSpanMax(config->GetMarker_All_TurbomachineryFlag(val_marker)); conv_numerics->GetRMatrix(AverageSoundSpeed, AverageDensity[val_marker][iSpan], R_Matrix); + su2double Pressure_e; //Useful to pass by reference + switch(config->GetKind_Data_Giles(Marker_Tag)){ case TOTAL_CONDITIONS_PT: - /*--- Retrieve the specified total conditions for this inlet. ---*/ - P_Total = config->GetGiles_Var1(Marker_Tag); - T_Total = config->GetGiles_Var2(Marker_Tag); - FlowDir = config->GetGiles_FlowDir(Marker_Tag); - alphaIn_BC = atan(FlowDir[1]/FlowDir[0]); - - gammaIn_BC = 0; - if (nDim == 3){ - gammaIn_BC = FlowDir[2]; //atan(FlowDir[2]/FlowDir[0]); - } - - /*--- Non-dim. the inputs---*/ - P_Total /= config->GetPressure_Ref(); - T_Total /= config->GetTemperature_Ref(); - - /* --- Computes the total state --- */ - GetFluidModel()->SetTDState_PT(P_Total, T_Total); - Enthalpy_BC = GetFluidModel()->GetStaticEnergy()+ GetFluidModel()->GetPressure()/GetFluidModel()->GetDensity(); - Entropy_BC = GetFluidModel()->GetEntropy(); - - - /* --- Computes the inverse matrix R_c --- */ - conv_numerics->ComputeResJacobianGiles(GetFluidModel(), AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan], - AverageTurboVelocity[val_marker][iSpan], alphaIn_BC, gammaIn_BC, R_c, R_c_inv); - - GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan]); - AverageEnthalpy = GetFluidModel()->GetStaticEnergy() + AveragePressure[val_marker][iSpan]/AverageDensity[val_marker][iSpan]; - AverageEntropy = GetFluidModel()->GetEntropy(); - - avgVel2 = 0.0; - for (iDim = 0; iDim < nDim; iDim++) avgVel2 += AverageVelocity[val_marker][iSpan][iDim]*AverageVelocity[val_marker][iSpan][iDim]; - if (nDim == 2){ - R[0] = -(AverageEntropy - Entropy_BC); - R[1] = -(AverageTurboVelocity[val_marker][iSpan][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][iSpan][0]); - R[2] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); - } - - else{ - R[0] = -(AverageEntropy - Entropy_BC); - R[1] = -(AverageTurboVelocity[val_marker][iSpan][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][iSpan][0]); - R[2] = -(AverageTurboVelocity[val_marker][iSpan][2] - tan(gammaIn_BC)*AverageTurboVelocity[val_marker][iSpan][0]); - R[3] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); - - } - /* --- Compute the avg component c_avg = R_c^-1 * R --- */ - for (iVar = 0; iVar < nVar-1; iVar++){ - c_avg[iVar] = 0.0; - for (jVar = 0; jVar < nVar-1; jVar++){ - c_avg[iVar] += R_c_inv[iVar][jVar]*R[jVar]; - } - } + BC_Giles_Total_Inlet(conv_numerics, config, val_marker, c_avg, R, R_c_inv, R_c, iSpan, iSpan); break; case TOTAL_CONDITIONS_PT_1D: - /*--- Retrieve the specified total conditions for this inlet. ---*/ - P_Total = config->GetGiles_Var1(Marker_Tag); - T_Total = config->GetGiles_Var2(Marker_Tag); - FlowDir = config->GetGiles_FlowDir(Marker_Tag); - alphaIn_BC = atan(FlowDir[1]/FlowDir[0]); - - gammaIn_BC = 0; - if (nDim == 3){ - // Review definition of angle - gammaIn_BC = FlowDir[2]; //atan(FlowDir[2]/FlowDir[0]); - } - - /*--- Non-dim. the inputs---*/ - P_Total /= config->GetPressure_Ref(); - T_Total /= config->GetTemperature_Ref(); - - /* --- Computes the total state --- */ - GetFluidModel()->SetTDState_PT(P_Total, T_Total); - Enthalpy_BC = GetFluidModel()->GetStaticEnergy()+ GetFluidModel()->GetPressure()/GetFluidModel()->GetDensity(); - Entropy_BC = GetFluidModel()->GetEntropy(); - - - /* --- Computes the inverse matrix R_c --- */ - conv_numerics->ComputeResJacobianGiles(GetFluidModel(), AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan], - AverageTurboVelocity[val_marker][iSpan], alphaIn_BC, gammaIn_BC, R_c, R_c_inv); - - GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][nSpanWiseSections], AverageDensity[val_marker][nSpanWiseSections]); - AverageEnthalpy = GetFluidModel()->GetStaticEnergy() + AveragePressure[val_marker][nSpanWiseSections]/AverageDensity[val_marker][nSpanWiseSections]; - AverageEntropy = GetFluidModel()->GetEntropy(); - - - avgVel2 = 0.0; - for (iDim = 0; iDim < nDim; iDim++) avgVel2 += AverageVelocity[val_marker][iSpan][iDim]*AverageVelocity[val_marker][iSpan][iDim]; - if (nDim == 2){ - R[0] = -(AverageEntropy - Entropy_BC); - R[1] = -(AverageTurboVelocity[val_marker][nSpanWiseSections][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][nSpanWiseSections][0]); - R[2] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); - } - - else{ - R[0] = -(AverageEntropy - Entropy_BC); - R[1] = -(AverageTurboVelocity[val_marker][nSpanWiseSections][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][nSpanWiseSections][0]); - R[2] = -(AverageTurboVelocity[val_marker][nSpanWiseSections][2] - tan(gammaIn_BC)*AverageTurboVelocity[val_marker][nSpanWiseSections][0]); - R[3] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); - - } - /* --- Compute the avg component c_avg = R_c^-1 * R --- */ - for (iVar = 0; iVar < nVar-1; iVar++){ - c_avg[iVar] = 0.0; - for (jVar = 0; jVar < nVar-1; jVar++){ - c_avg[iVar] += R_c_inv[iVar][jVar]*R[jVar]; - } - } + BC_Giles_Total_Inlet(conv_numerics, config, val_marker, c_avg, R, R_c_inv, R_c, iSpan, nSpanWiseSections); break; case MIXING_IN: case MIXING_OUT: - /* --- Compute average jump of primitive at the mixing-plane interface--- */ - deltaprim[0] = ExtAverageDensity[val_marker][iSpan] - AverageDensity[val_marker][iSpan]; - deltaprim[1] = ExtAverageTurboVelocity[val_marker][iSpan][0] - AverageTurboVelocity[val_marker][iSpan][0]; - deltaprim[2] = ExtAverageTurboVelocity[val_marker][iSpan][1] - AverageTurboVelocity[val_marker][iSpan][1]; - if (nDim == 2){ - deltaprim[3] = ExtAveragePressure[val_marker][iSpan] - AveragePressure[val_marker][iSpan]; - } - else - { - deltaprim[3] = ExtAverageTurboVelocity[val_marker][iSpan][2] - AverageTurboVelocity[val_marker][iSpan][2]; - deltaprim[4] = ExtAveragePressure[val_marker][iSpan] - AveragePressure[val_marker][iSpan]; - } - - - /* --- Compute average jump of charachteristic variable at the mixing-plane interface--- */ - GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan]); - AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); - conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][iSpan], deltaprim, c_avg); + BC_Giles_Mixing(conv_numerics, val_marker, deltaprim, c_avg, iSpan); break; case MIXING_IN_1D: case MIXING_OUT_1D: - /* --- Compute average jump of primitive at the mixing-plane interface--- */ - deltaprim[0] = ExtAverageDensity[val_marker][nSpanWiseSections] - AverageDensity[val_marker][nSpanWiseSections]; - deltaprim[1] = ExtAverageTurboVelocity[val_marker][nSpanWiseSections][0] - AverageTurboVelocity[val_marker][nSpanWiseSections][0]; - deltaprim[2] = ExtAverageTurboVelocity[val_marker][nSpanWiseSections][1] - AverageTurboVelocity[val_marker][nSpanWiseSections][1]; - if (nDim == 2){ - deltaprim[3] = ExtAveragePressure[val_marker][nSpanWiseSections] - AveragePressure[val_marker][nSpanWiseSections]; - } - else - { - deltaprim[3] = ExtAverageTurboVelocity[val_marker][nSpanWiseSections][2] - AverageTurboVelocity[val_marker][nSpanWiseSections][2]; - deltaprim[4] = ExtAveragePressure[val_marker][nSpanWiseSections] - AveragePressure[val_marker][nSpanWiseSections]; - } - - /* --- Compute average jump of charachteristic variable at the mixing-plane interface--- */ - GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][nSpanWiseSections], AverageDensity[val_marker][nSpanWiseSections]); - AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); - conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][nSpanWiseSections], deltaprim, c_avg); - break; + BC_Giles_Mixing(conv_numerics, val_marker, deltaprim, c_avg, nSpanWiseSections); case STATIC_PRESSURE: @@ -6390,13 +6231,8 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_e /= config->GetPressure_Ref(); /* --- Compute avg characteristic jump --- */ - if (nDim == 2){ - c_avg[3] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); - } - else - { - c_avg[4] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); - } + c_avg[nDim+1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); + break; case STATIC_PRESSURE_1D: @@ -6404,13 +6240,8 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_e /= config->GetPressure_Ref(); /* --- Compute avg characteristic jump --- */ - if (nDim == 2){ - c_avg[3] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); - } - else - { - c_avg[4] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); - } + c_avg[nDim+1] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); + break; case RADIAL_EQUILIBRIUM: @@ -6423,67 +6254,66 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } + auto const iZone = config->GetiZone(); + /*--- Loop over all the vertices on this boundary marker ---*/ SU2_OMP_FOR_DYN(OMP_MIN_SIZE) - for (iVertex = 0; iVertex < geometry->GetnVertexSpan(val_marker,iSpan); iVertex++) { + for (unsigned long iVertex = 0; iVertex < geometry->GetnVertexSpan(val_marker,iSpan); iVertex++) { /*--- using the other vertex information for retrieving some information ---*/ - oldVertex = geometry->turbovertex[val_marker][iSpan][iVertex]->GetOldVertex(); - V_boundary= GetCharacPrimVar(val_marker, oldVertex); + auto oldVertex = geometry->turbovertex[val_marker][iSpan][iVertex]->GetOldVertex(); + auto V_boundary= GetCharacPrimVar(val_marker, oldVertex); /*--- Index of the closest interior node ---*/ - Point_Normal = geometry->vertex[val_marker][oldVertex]->GetNormal_Neighbor(); + auto Point_Normal = geometry->vertex[val_marker][oldVertex]->GetNormal_Neighbor(); /*--- Normal vector for this vertex (negate for outward convention), * this normal is scaled with the area of the face of the element ---*/ geometry->vertex[val_marker][oldVertex]->GetNormal(Normal); - for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; + for (unsigned short iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; conv_numerics->SetNormal(Normal); /*--- find the node related to the vertex ---*/ - iPoint = geometry->turbovertex[val_marker][iSpan][iVertex]->GetNode(); + auto iPoint = geometry->turbovertex[val_marker][iSpan][iVertex]->GetNode(); /*--- Normalize Normal vector for this vertex (already for outward convention) ---*/ geometry->turbovertex[val_marker][iSpan][iVertex]->GetNormal(UnitNormal); geometry->turbovertex[val_marker][iSpan][iVertex]->GetTurboNormal(turboNormal); /*--- Retrieve solution at this boundary node ---*/ - V_domain = nodes->GetPrimitive(iPoint); + auto V_domain = nodes->GetPrimitive(iPoint); /*--- Retrieve domain Secondary variables ---*/ - S_domain = nodes->GetSecondary(iPoint); + auto S_domain = nodes->GetSecondary(iPoint); /*--- Compute the internal state u_i ---*/ - Velocity2_i = 0; - for (iDim = 0; iDim < nDim; iDim++) + su2double Velocity2_i = 0; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { Velocity_i[iDim] = nodes->GetVelocity(iPoint,iDim); Velocity2_i += Velocity_i[iDim]*Velocity_i[iDim]; } - Density_i = nodes->GetDensity(iPoint); + auto Density_i = nodes->GetDensity(iPoint); - Energy_i = nodes->GetEnergy(iPoint); - StaticEnergy_i = Energy_i - 0.5*Velocity2_i; + auto Energy_i = nodes->GetEnergy(iPoint); + auto StaticEnergy_i = Energy_i - 0.5*Velocity2_i; GetFluidModel()->SetTDState_rhoe(Density_i, StaticEnergy_i); - Pressure_i = GetFluidModel()->GetPressure(); + auto Pressure_i = GetFluidModel()->GetPressure(); ComputeTurboVelocity(Velocity_i, turboNormal, turboVelocity, config->GetMarker_All_TurbomachineryFlag(val_marker),config->GetKind_TurboMachinery(iZone)); + deltaprim[0] = Density_i - AverageDensity[val_marker][iSpan]; + deltaprim[1] = turboVelocity[0] - AverageTurboVelocity[val_marker][iSpan][0]; + deltaprim[2] = turboVelocity[1] - AverageTurboVelocity[val_marker][iSpan][1]; if (nDim == 2){ - deltaprim[0] = Density_i - AverageDensity[val_marker][iSpan]; - deltaprim[1] = turboVelocity[0] - AverageTurboVelocity[val_marker][iSpan][0]; - deltaprim[2] = turboVelocity[1] - AverageTurboVelocity[val_marker][iSpan][1]; deltaprim[3] = Pressure_i - AveragePressure[val_marker][iSpan]; } else{ - deltaprim[0] = Density_i - AverageDensity[val_marker][iSpan]; - deltaprim[1] = turboVelocity[0] - AverageTurboVelocity[val_marker][iSpan][0]; - deltaprim[2] = turboVelocity[1] - AverageTurboVelocity[val_marker][iSpan][1]; deltaprim[3] = turboVelocity[2] - AverageTurboVelocity[val_marker][iSpan][2]; deltaprim[4] = Pressure_i - AveragePressure[val_marker][iSpan]; } @@ -6493,8 +6323,13 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][iSpan], deltaprim, cj); - pitch = geometry->GetMaxAngularCoord(val_marker, iSpan) - geometry->GetMinAngularCoord(val_marker,iSpan); - theta = geometry->turbovertex[val_marker][iSpan][iVertex]->GetRelAngularCoord(); + auto pitch = geometry->GetMaxAngularCoord(val_marker, iSpan) - geometry->GetMinAngularCoord(val_marker,iSpan); + auto theta = geometry->turbovertex[val_marker][iSpan][iVertex]->GetRelAngularCoord(); + + auto const AvgMach = AverageTurboMach[0]*AverageTurboMach[0] + AverageTurboMach[1]*AverageTurboMach[1]; + auto Beta_inf= I*complex(sqrt(1.0 - AvgMach)); + su2double TwoPiThetaFreq_Pitch; + long freq; switch(config->GetKind_Data_Giles(Marker_Tag)) { @@ -6504,11 +6339,18 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu case TOTAL_CONDITIONS_PT: case MIXING_IN:case TOTAL_CONDITIONS_PT_1D: case MIXING_IN_1D: if(config->GetSpatialFourier()){ + + /* --- Initial definition of variables ---*/ + auto c2js = complex(0.0,0.0); + auto c3js = complex(0.0,0.0); + auto c2ks = complex(0.0,0.0); + auto c3ks = complex(0.0,0.0); + auto c2js_Re = c2js.real(); + auto c3js_Re = c3js.real(); + su2double Beta_inf2; + if (AvgMach <= 1.0){ - Beta_inf= I*complex(sqrt(1.0 - AvgMach)); - c2js = complex(0.0,0.0); - c3js = complex(0.0,0.0); - for(k=0; k < 2*kend_max+1; k++){ + for(unsigned long k=0; k < 2*kend_max+1; k++){ freq = k - kend_max; if(freq >= (long)(-kend) && freq <= (long)(kend) && AverageTurboMach[0] > config->GetAverageMachLimit()){ TwoPiThetaFreq_Pitch = 2*PI_NUMBER*freq*theta/pitch; @@ -6527,16 +6369,10 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu c2js_Re = c2js.real(); c3js_Re = c3js.real(); - if (nDim == 2){ - dcjs[0] = 0.0 - cj[0]; - dcjs[1] = c2js_Re - cj[1]; - dcjs[2] = c3js_Re - cj[2]; - }else{ - dcjs[0] = 0.0 - cj[0]; - dcjs[1] = c2js_Re - cj[1]; - dcjs[2] = 0.0 - cj[2]; - dcjs[3] = c3js_Re - cj[3]; - } + dcjs[0] = 0.0 - cj[0]; + dcjs[1] = c2js_Re - cj[1]; + dcjs[2] = 0.0 - cj[2]; + dcjs[nDim] = c3js_Re - cj[nDim]; // Overwrites previous value in 2D case }else{ if (AverageTurboVelocity[val_marker][iSpan][1] >= 0.0){ @@ -6544,40 +6380,21 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu }else{ Beta_inf2= sqrt(AvgMach-1.0); } - if (nDim == 2){ - c2js_Re = -cj[3]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - c3js_Re = cj[3]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - c3js_Re *= (Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - }else{ - c2js_Re = -cj[4]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - c3js_Re = cj[4]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - c3js_Re *= (Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - } + c2js_Re = -cj[nDim+1]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + c3js_Re = cj[nDim+1]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + c3js_Re *= (Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - if (nDim == 2){ - dcjs[0] = 0.0 - cj[0]; - dcjs[1] = c2js_Re - cj[1]; - dcjs[2] = c3js_Re - cj[2]; - }else{ - dcjs[0] = 0.0 - cj[0]; - dcjs[1] = c2js_Re - cj[1]; - dcjs[2] = 0.0 - cj[2]; - dcjs[3] = c3js_Re - cj[3]; - } - } - } - else{ - if (nDim == 2){ - dcjs[0] = 0.0; - dcjs[1] = 0.0; - dcjs[2] = 0.0; - }else{ - dcjs[0] = 0.0; - dcjs[1] = 0.0; - dcjs[2] = 0.0; - dcjs[3] = 0.0; + dcjs[0] = 0.0 - cj[0]; + dcjs[1] = c2js_Re - cj[1]; + dcjs[2] = 0.0 - cj[2]; + dcjs[nDim] = c3js_Re - cj[nDim]; } + }else{ + dcjs[0] = 0.0; + dcjs[1] = 0.0; + dcjs[2] = 0.0; + dcjs[nDim] = 0.0; } /* --- Impose Inlet BC Reflecting--- */ delta_c[0] = relfacAvg*c_avg[0] + relfacFou*dcjs[0]; @@ -6596,6 +6413,7 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu /* --- implementation of Giles BC---*/ if(config->GetSpatialFourier()){ + su2double GilesBeta, cOutjs_Re; if (AvgMach > 1.0){ /* --- supersonic Giles implementation ---*/ if (AverageTurboVelocity[val_marker][iSpan][1] >= 0.0){ @@ -6619,9 +6437,9 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu }else{ /* --- subsonic Giles implementation ---*/ - Beta_inf= I*complex(sqrt(1.0 - AvgMach)); - cOutjs = complex(0.0,0.0); - for(k=0; k < 2*kend_max+1; k++){ + auto cOutjs = complex(0.0,0.0); + auto cOutks = complex(0.0,0.0); + for(unsigned long k=0; k < 2*kend_max+1; k++){ freq = k - kend_max; if(freq >= (long)(-kend) && freq <= (long)(kend) && AverageTurboMach[0] > config->GetAverageMachLimit()){ TwoPiThetaFreq_Pitch = 2*PI_NUMBER*freq*theta/pitch; @@ -6636,41 +6454,25 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } cOutjs_Re = cOutjs.real(); - if (nDim == 2){ - dcjs[3] = cOutjs_Re - cj[3]; - } - else{ - dcjs[4] = cOutjs_Re - cj[4]; - } + dcjs[nDim+1] = cOutjs_Re - cj[nDim+1]; } } else{ - if (nDim == 2){ - dcjs[3] = 0.0; - } - else{ - dcjs[4] = 0.0; - } + dcjs[nDim+1] = 0.0; } /* --- Impose Outlet BC Non-Reflecting --- */ delta_c[0] = cj[0]; delta_c[1] = cj[1]; delta_c[2] = cj[2]; - if (nDim == 2){ - delta_c[3] = relfacAvg*c_avg[3] + relfacFou*dcjs[3]; - } - else{ - delta_c[3] = cj[3]; - delta_c[4] = relfacAvg*c_avg[4] + relfacFou*dcjs[4]; - } - + delta_c[3] = cj[3]; + delta_c[nDim+1] = relfacAvg*c_avg[nDim+1] + relfacFou*dcjs[nDim+1]; /*--- Automatically impose supersonic autoflow ---*/ if (abs(AverageTurboMach[0]) > 1.0000){ delta_c[0] = 0.0; delta_c[1] = 0.0; delta_c[2] = 0.0; - delta_c[2] = 0.0; + delta_c[3] = 0.0; if (nDim == 3)delta_c[4] = 0.0; } @@ -6682,31 +6484,25 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } /*--- Compute primitive jump from characteristic variables ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (unsigned short iVar = 0; iVar < nVar; iVar++) { deltaprim[iVar]=0.0; - for (jVar = 0; jVar < nVar; jVar++) + for (unsigned short jVar = 0; jVar < nVar; jVar++) { deltaprim[iVar] += R_Matrix[iVar][jVar]*delta_c[jVar]; } } /*--- retrieve boundary variables ---*/ - Density_b = AverageDensity[val_marker][iSpan] + deltaprim[0]; + su2double Density_b = AverageDensity[val_marker][iSpan] + deltaprim[0]; turboVelocity[0] = AverageTurboVelocity[val_marker][iSpan][0] + deltaprim[1]; turboVelocity[1] = AverageTurboVelocity[val_marker][iSpan][1] + deltaprim[2]; - if(nDim == 2){ - Pressure_b = AveragePressure[val_marker][iSpan] + deltaprim[3]; - } - else{ - turboVelocity[2] = AverageTurboVelocity[val_marker][iSpan][2] + deltaprim[3]; - Pressure_b = AveragePressure[val_marker][iSpan] + deltaprim[4]; - } - + turboVelocity[nDim-1] = AverageTurboVelocity[val_marker][iSpan][nDim-1] + deltaprim[nDim]; + su2double Pressure_b = AveragePressure[val_marker][iSpan] + deltaprim[nDim+1]; ComputeBackVelocity(turboVelocity, turboNormal, Velocity_b, config->GetMarker_All_TurbomachineryFlag(val_marker), config->GetKind_TurboMachinery(iZone)); - Velocity2_b = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { + su2double Velocity2_b = 0.0; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { Velocity2_b+= Velocity_b[iDim]*Velocity_b[iDim]; } @@ -6714,20 +6510,20 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_b = Pressure_i; Density_b = Density_i; Velocity2_b = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { + for (unsigned short iDim = 0; iDim < nDim; iDim++) { Velocity_b[iDim] = Velocity_i[iDim]; Velocity2_b+= Velocity_b[iDim]*Velocity_b[iDim]; } } GetFluidModel()->SetTDState_Prho(Pressure_b, Density_b); - Energy_b = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_b; - Temperature_b= GetFluidModel()->GetTemperature(); - Enthalpy_b = Energy_b + Pressure_b/Density_b; + su2double Energy_b = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_b; + su2double Temperature_b= GetFluidModel()->GetTemperature(); + su2double Enthalpy_b = Energy_b + Pressure_b/Density_b; /*--- Primitive variables, using the derived quantities ---*/ V_boundary[0] = Temperature_b; - for (iDim = 0; iDim < nDim; iDim++) + for (unsigned short iDim = 0; iDim < nDim; iDim++) V_boundary[iDim+1] = Velocity_b[iDim]; V_boundary[nDim+1] = Pressure_b; V_boundary[nDim+2] = Density_b; @@ -6755,12 +6551,12 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu LinSysRes.AddBlock(iPoint, residual); /*--- Jacobian contribution for implicit integration ---*/ - if (implicit) + if (config->GetKind_TimeIntScheme() == EULER_IMPLICIT) Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); /*--- Viscous contribution ---*/ - if (viscous) { + if (config->GetViscous()) { /*--- Set laminar and eddy viscosity at the infinity ---*/ @@ -6814,7 +6610,7 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu /*--- Jacobian contribution for implicit integration ---*/ - if (implicit) + if (config->GetKind_TimeIntScheme() == EULER_IMPLICIT) Jacobian.SubtractBlock2Diag(iPoint, residual.jacobian_i); } @@ -6836,11 +6632,11 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu delete [] delta_c; delete [] deltaprim; delete [] cj; - for (iVar = 0; iVar < nVar; iVar++) + for (unsigned short iVar = 0; iVar < nVar; iVar++) { delete [] R_Matrix[iVar]; } - for (iVar = 0; iVar < nVar-1; iVar++) + for (unsigned short iVar = 0; iVar < nVar-1; iVar++) { delete [] R_c_inv[iVar]; delete [] R_c[iVar]; @@ -6858,6 +6654,73 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu delete [] turboVelocity; } +void CEulerSolver::BC_Giles_Total_Inlet( CNumerics *conv_numerics, CConfig *config, unsigned short val_marker, + su2double *&c_avg, su2double *&R, su2double **&R_c_inv, su2double **&R_c, unsigned short iSpan, unsigned short SpanwisePosition) { + + /*--- Calculates boundry condition for quasi-3D and 1D total boundary conditions ---*/ + + /*--- Retrieve the specified boundary conditions. ---*/ + auto const Marker_Tag = config->GetMarker_All_TagBound(val_marker); + auto P_Total = config->GetGiles_Var1(Marker_Tag); + auto T_Total = config->GetGiles_Var2(Marker_Tag); + auto const FlowDir = config->GetGiles_FlowDir(Marker_Tag); + auto const alphaIn_BC = atan(FlowDir[1]/FlowDir[0]); + + su2double gammaIn_BC = 0; + if (nDim == 3){ + gammaIn_BC = FlowDir[2]; //atan(FlowDir[2]/FlowDir[0]); + } + + /*--- Non-dim. the inputs---*/ + P_Total /= config->GetPressure_Ref(); + T_Total /= config->GetTemperature_Ref(); + + /* --- Computes the total state --- */ + GetFluidModel()->SetTDState_PT(P_Total, T_Total); + auto const Enthalpy_BC = GetFluidModel()->GetStaticEnergy()+ GetFluidModel()->GetPressure()/GetFluidModel()->GetDensity(); + auto const Entropy_BC = GetFluidModel()->GetEntropy(); + + /* --- Computes the inverse matrix R_c --- */ + conv_numerics->ComputeResJacobianGiles(GetFluidModel(), AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan], + AverageTurboVelocity[val_marker][iSpan], alphaIn_BC, gammaIn_BC, R_c, R_c_inv); + + GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][SpanwisePosition], AverageDensity[val_marker][SpanwisePosition]); + auto AverageEnthalpy = GetFluidModel()->GetStaticEnergy() + AveragePressure[val_marker][SpanwisePosition]/AverageDensity[val_marker][SpanwisePosition]; + auto AverageEntropy = GetFluidModel()->GetEntropy(); + + + su2double avgVel2 = 0.0; + for (unsigned short iDim = 0; iDim < nDim; iDim++) avgVel2 += AverageVelocity[val_marker][iSpan][iDim]*AverageVelocity[val_marker][iSpan][iDim]; + + R[0] = -(AverageEntropy - Entropy_BC); + R[1] = -(AverageTurboVelocity[val_marker][SpanwisePosition][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][SpanwisePosition][0]); + R[2] = -(AverageTurboVelocity[val_marker][SpanwisePosition][2] - tan(gammaIn_BC)*AverageTurboVelocity[val_marker][SpanwisePosition][0]); + R[nDim] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); + + /* --- Compute the avg component c_avg = R_c^-1 * R --- */ + for (unsigned short iVar = 0; iVar < nVar-1; iVar++){ + c_avg[iVar] = 0.0; + for (unsigned short jVar = 0; jVar < nVar-1; jVar++){ + c_avg[iVar] += R_c_inv[iVar][jVar]*R[jVar]; + } + } +} + +void CEulerSolver::BC_Giles_Mixing(CNumerics *conv_numerics, unsigned short val_marker, su2double *&deltaprim, su2double *&c_avg, unsigned short SpanwisePosition) { + + /* --- Compute average jump of primitive at the mixing-plane interface--- */ + deltaprim[0] = ExtAverageDensity[val_marker][SpanwisePosition] - AverageDensity[val_marker][SpanwisePosition]; + deltaprim[1] = ExtAverageTurboVelocity[val_marker][SpanwisePosition][0] - AverageTurboVelocity[val_marker][SpanwisePosition][0]; + deltaprim[2] = ExtAverageTurboVelocity[val_marker][SpanwisePosition][1] - AverageTurboVelocity[val_marker][SpanwisePosition][1]; + deltaprim[3] = ExtAverageTurboVelocity[val_marker][SpanwisePosition][2] - AverageTurboVelocity[val_marker][SpanwisePosition][2]; + deltaprim[nDim+1] = ExtAveragePressure[val_marker][SpanwisePosition] - AveragePressure[val_marker][SpanwisePosition]; + + /* --- Compute average jump of charachteristic variable at the mixing-plane interface--- */ + GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][SpanwisePosition], AverageDensity[val_marker][SpanwisePosition]); + auto const AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); + conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][SpanwisePosition], deltaprim, c_avg); +} + void CEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { From e0877eb348100bff1cc3235a7007db64dc4a2e6e Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Fri, 9 Aug 2024 22:27:02 +0200 Subject: [PATCH 223/287] missing break --- SU2_CFD/src/solvers/CEulerSolver.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index da337490163..794c470a6ca 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -6224,6 +6224,7 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu case MIXING_IN_1D: case MIXING_OUT_1D: BC_Giles_Mixing(conv_numerics, val_marker, deltaprim, c_avg, nSpanWiseSections); + break; case STATIC_PRESSURE: From 905a24aaa45ee14d0b91da320c6a6ed3e69bc578 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Fri, 9 Aug 2024 21:06:34 -0700 Subject: [PATCH 224/287] mpi fix --- SU2_CFD/src/solvers/CSolver.cpp | 7 +++++-- TestCases/hybrid_regression.py | 4 ++-- TestCases/parallel_regression.py | 6 +++--- TestCases/serial_regression.py | 4 ++-- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index 618355f4c3b..bfbd4edad58 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -3690,11 +3690,14 @@ void CSolver::LoadInletProfile(CGeometry **geometry, /*--- There are no markers of this type. ---*/ - if (columnNames.empty()) return; + const unsigned short has_names = !columnNames.empty(); + unsigned short any_has_names; + SU2_MPI::Allreduce(&has_names, &any_has_names, 1, MPI_UNSIGNED_SHORT, MPI_MAX, SU2_MPI::GetComm()); + if (!any_has_names) return; /*--- Read the profile data from an ASCII file. ---*/ - CMarkerProfileReaderFVM profileReader(geometry[MESH_0], config, profile_filename, KIND_MARKER, nCol_InletFile, columnNames,columnValues); + CMarkerProfileReaderFVM profileReader(geometry[MESH_0], config, profile_filename, KIND_MARKER, nCol_InletFile, columnNames, columnValues); /*--- Load data from the restart into correct containers. ---*/ diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index 3f14c4c40c6..686bef7e367 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -139,8 +139,8 @@ 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.494728, -7.712546, -0.000000, 2.085796] - poiseuille_profile.test_vals_aarch64 = [-12.494717, -7.711274, -0.000000, 2.085796] + poiseuille_profile.test_vals = [-12.485957, -7.612048, -0.000000, 2.085796] + poiseuille_profile.test_vals_aarch64 = [-12.485957, -7.612048, -0.000000, 2.085796] test_list.append(poiseuille_profile) # 2D Rotational Periodic diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 4cad2c9789c..b7fc6af3c05 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -344,8 +344,8 @@ 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.492939, -7.672950, -0.000000, 2.085796] - poiseuille_profile.test_vals_aarch64 = [-12.492864, -7.671632, -0.000000, 2.085796] + poiseuille_profile.test_vals = [-12.483967, -7.577331, -0.000000, 2.085796] + poiseuille_profile.test_vals_aarch64 = [-12.483967, -7.577331, -0.000000, 2.085796] test_list.append(poiseuille_profile) ########################## @@ -399,7 +399,7 @@ def main(): turb_flatplate_CC_Wilcox.test_iter = 20 turb_flatplate_CC_Wilcox.test_vals = [-1.280875, 1.974212, 1.440458, 5.038402, -4.051125, 8.521136] test_list.append(turb_flatplate_CC_Wilcox) - + # Flat plate SST compressibility correction Sarkar turb_flatplate_CC_Sarkar = TestCase('turb_flatplate_CC_Sarkar') turb_flatplate_CC_Sarkar.cfg_dir = "rans/flatplate" diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 8d328dc460f..eeabe7de0ef 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -198,8 +198,8 @@ 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.494681, -7.711642, -0.000000, 2.085796] - poiseuille_profile.test_vals_aarch64 = [-12.494684, -7.711379, -0.000000, 2.085796] #last 4 columns + poiseuille_profile.test_vals = [-12.485974, -7.612341, -0.000000, 2.085796] + poiseuille_profile.test_vals_aarch64 = [-12.485974, -7.612341, -0.000000, 2.085796] test_list.append(poiseuille_profile) ########################## From 0b905f40673f34c248f0cccc8030b19a60a009a9 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sat, 10 Aug 2024 08:49:02 -0700 Subject: [PATCH 225/287] update test --- TestCases/parallel_regression.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index b7fc6af3c05..e8394388bb8 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -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.147387, -0.634805, -1.769879, 1.335329, -3.250300, 9.000000, -6.694977, 5.000000, -6.991166, 10.000000, -6.033066, 0.996034, 0.996034] + turb_flatplate_species.test_vals = [-4.120225, -0.634021, -1.706720, 1.363240, -3.250204, 9.000000, -6.697079, 5.000000, -6.978731, 10.000000, -6.013196, 0.996237, 0.996237] test_list.append(turb_flatplate_species) # Flat plate SST compressibility correction Wilcox From 0111d55f1fa081b9b7bb0837d16c83324aa0db3d Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sun, 11 Aug 2024 11:14:21 -0700 Subject: [PATCH 226/287] fix hllc kappa --- Common/include/CConfig.hpp | 3 +- .../include/numerics/flow/convection/hllc.hpp | 4 +- SU2_CFD/src/numerics/flow/convection/hllc.cpp | 83 ++++++------------- SU2_CFD/src/numerics/flow/convection/roe.cpp | 4 +- TestCases/parallel_regression.py | 4 +- config_template.cfg | 2 +- 6 files changed, 33 insertions(+), 67 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index d4f94008ddc..df9a0dba3b7 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -4335,8 +4335,7 @@ class CConfig { array GetNewtonKrylovDblParam(void) const { return NK_DblParam; } /*! - * \brief Get the relaxation coefficient of the linear solver for the implicit formulation. - * \return relaxation coefficient of the linear solver for the implicit formulation. + * \brief Returns the Roe kappa (multipler of the dissipation term). */ su2double GetRoe_Kappa(void) const { return Roe_Kappa; } diff --git a/SU2_CFD/include/numerics/flow/convection/hllc.hpp b/SU2_CFD/include/numerics/flow/convection/hllc.hpp index 5cac798825e..62d46a7d211 100644 --- a/SU2_CFD/include/numerics/flow/convection/hllc.hpp +++ b/SU2_CFD/include/numerics/flow/convection/hllc.hpp @@ -49,7 +49,7 @@ class CUpwHLLC_Flow final : public CNumerics { su2double sq_velRoe, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeProjVelocity, ProjInterfaceVel; - su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho, kappa; + su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho; su2double Omega, RHO, OmegaSM; su2double *dSm_dU, *dPI_dU, *drhoStar_dU, *dpStar_dU, *dEStar_dU; @@ -102,7 +102,7 @@ class CUpwGeneralHLLC_Flow final : public CNumerics { su2double sq_velRoe, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeProjVelocity, ProjInterfaceVel; su2double Kappa_i, Kappa_j, Chi_i, Chi_j, RoeKappa, RoeChi, RoeKappaStaticEnthalpy; - su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho, kappa; + su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho; su2double Omega, RHO, OmegaSM; su2double *dSm_dU, *dPI_dU, *drhoStar_dU, *dpStar_dU, *dEStar_dU; diff --git a/SU2_CFD/src/numerics/flow/convection/hllc.cpp b/SU2_CFD/src/numerics/flow/convection/hllc.cpp index d574f929b20..d94b44759a7 100644 --- a/SU2_CFD/src/numerics/flow/convection/hllc.cpp +++ b/SU2_CFD/src/numerics/flow/convection/hllc.cpp @@ -31,7 +31,7 @@ CUpwHLLC_Flow::CUpwHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, const CConfig* config) : CNumerics(val_nDim, val_nVar, config) { implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - kappa = config->GetRoe_Kappa(); + /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */ dynamic_grid = config->GetDynamic_Grid(); @@ -114,30 +114,19 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) Density_j = V_j[nDim+2]; Enthalpy_j = V_j[nDim+3]; - - sq_vel_i = 0.0; - sq_vel_j = 0.0; - - for (iDim = 0; iDim < nDim; iDim++) { - sq_vel_i += Velocity_i[iDim] * Velocity_i[iDim]; - sq_vel_j += Velocity_j[iDim] * Velocity_j[iDim]; - } + sq_vel_i = GeometryToolbox::SquaredNorm(nDim, Velocity_i); + sq_vel_j = GeometryToolbox::SquaredNorm(nDim, Velocity_j); Energy_i = Enthalpy_i - Pressure_i / Density_i; Energy_j = Enthalpy_j - Pressure_j / Density_j; - SoundSpeed_i = sqrt( (Enthalpy_i - 0.5 * sq_vel_i) * Gamma_Minus_One ); - SoundSpeed_j = sqrt( (Enthalpy_j - 0.5 * sq_vel_j) * Gamma_Minus_One ); + SoundSpeed_i = sqrt((Enthalpy_i - 0.5 * sq_vel_i) * Gamma_Minus_One); + SoundSpeed_j = sqrt((Enthalpy_j - 0.5 * sq_vel_j) * Gamma_Minus_One); /*--- Projected velocities ---*/ - ProjVelocity_i = 0; - ProjVelocity_j = 0; - - for (iDim = 0; iDim < nDim; iDim++) { - ProjVelocity_i += Velocity_i[iDim] * UnitNormal[iDim]; - ProjVelocity_j += Velocity_j[iDim] * UnitNormal[iDim]; - } + ProjVelocity_i = GeometryToolbox::DotProduct(nDim, Velocity_i, UnitNormal); + ProjVelocity_j = GeometryToolbox::DotProduct(nDim, Velocity_j, UnitNormal); /*--- Projected Grid Velocity ---*/ @@ -146,7 +135,7 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) if (dynamic_grid) { for (iDim = 0; iDim < nDim; iDim++) - ProjInterfaceVel += 0.5 * ( GridVel_i[iDim] + GridVel_j[iDim] )*UnitNormal[iDim]; + ProjInterfaceVel += 0.5 * (GridVel_i[iDim] + GridVel_j[iDim]) * UnitNormal[iDim]; SoundSpeed_i -= ProjInterfaceVel; SoundSpeed_j += ProjInterfaceVel; @@ -159,14 +148,11 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) Rrho = ( sqrt(Density_i) + sqrt(Density_j) ); - sq_velRoe = 0.0; - RoeProjVelocity = - ProjInterfaceVel; - for (iDim = 0; iDim < nDim; iDim++) { RoeVelocity[iDim] = ( Velocity_i[iDim] * sqrt(Density_i) + Velocity_j[iDim] * sqrt(Density_j) ) / Rrho; - sq_velRoe += RoeVelocity[iDim] * RoeVelocity[iDim]; - RoeProjVelocity += RoeVelocity[iDim] * UnitNormal[iDim]; } + sq_velRoe = GeometryToolbox::SquaredNorm(nDim, RoeVelocity); + RoeProjVelocity = GeometryToolbox::DotProduct(nDim, RoeVelocity, UnitNormal) - ProjInterfaceVel; /*--- Mean Roe variables iPoint and jPoint ---*/ @@ -175,10 +161,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Roe-averaged speed of sound ---*/ - //RoeSoundSpeed2 = Gamma_Minus_One * ( RoeEnthalpy - 0.5 * sq_velRoe ); RoeSoundSpeed = sqrt( Gamma_Minus_One * ( RoeEnthalpy - 0.5 * sq_velRoe ) ) - ProjInterfaceVel; - /*--- Speed of sound at L and R ---*/ sL = min( RoeProjVelocity - RoeSoundSpeed, ProjVelocity_i - SoundSpeed_i); @@ -214,8 +198,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) IntermediateState[0] = rhoSL * Density_i; for (iDim = 0; iDim < nDim; iDim++) - IntermediateState[iDim+1] = rhoSL * ( Density_i * Velocity_i[iDim] + ( pStar - Pressure_i ) / ( sL - ProjVelocity_i ) * UnitNormal[iDim] ) ; - IntermediateState[nVar-1] = rhoSL * ( Density_i * Energy_i - ( Pressure_i * ProjVelocity_i - pStar * sM) / ( sL - ProjVelocity_i ) ); + IntermediateState[iDim+1] = rhoSL * Density_i * Velocity_i[iDim] + (pStar - Pressure_i) * UnitNormal[iDim] / (sL - sM); + IntermediateState[nVar-1] = rhoSL * Density_i * Energy_i - (Pressure_i * ProjVelocity_i - pStar * sM) / (sL - sM); Flux[0] = sM * IntermediateState[0]; @@ -243,8 +227,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) IntermediateState[0] = rhoSR * Density_j; for (iDim = 0; iDim < nDim; iDim++) - IntermediateState[iDim+1] = rhoSR * ( Density_j * Velocity_j[iDim] + ( pStar - Pressure_j ) / ( sR - ProjVelocity_j ) * UnitNormal[iDim] ) ; - IntermediateState[nVar-1] = rhoSR * ( Density_j * Energy_j - ( Pressure_j * ProjVelocity_j - pStar * sM ) / ( sR - ProjVelocity_j ) ); + IntermediateState[iDim+1] = rhoSR * Density_j * Velocity_j[iDim] + (pStar - Pressure_j) * UnitNormal[iDim] / (sR - sM); + IntermediateState[nVar-1] = rhoSR * Density_j * Energy_j - (Pressure_j * ProjVelocity_j - pStar * sM) / (sR - sM); Flux[0] = sM * IntermediateState[0]; @@ -254,14 +238,12 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) } } - - for (iVar = 0; iVar < nVar; iVar++) - Flux[iVar] *= Area; + for (iVar = 0; iVar < nVar; iVar++) Flux[iVar] *= Area; /*--- Return early if the Jacobians do not need to be computed. ---*/ - if (implicit) - { + if (!implicit) return ResidualType<>(Flux, Jacobian_i, Jacobian_j); + if (sM > 0.0) { if (sL > 0.0) { @@ -537,27 +519,20 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) } } - - /*--- Jacobians of the inviscid flux, scale = k because Flux ~ 0.5*(fc_i+fc_j)*Normal ---*/ - - Area *= kappa; - + /*--- Scale Jacobians by area (from Flux *= Area). ---*/ for (iVar = 0; iVar < nVar; iVar++) { for (jVar = 0; jVar < nVar; jVar++) { - Jacobian_i[iVar][jVar] *= Area; - Jacobian_j[iVar][jVar] *= Area; + Jacobian_i[iVar][jVar] *= Area; + Jacobian_j[iVar][jVar] *= Area; } } - } // end if implicit - return ResidualType<>(Flux, Jacobian_i, Jacobian_j); - } CUpwGeneralHLLC_Flow::CUpwGeneralHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, const CConfig* config) : CNumerics(val_nDim, val_nVar, config) { implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - kappa = config->GetRoe_Kappa(); + /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */ dynamic_grid = config->GetDynamic_Grid(); @@ -792,13 +767,12 @@ CNumerics::ResidualType<> CUpwGeneralHLLC_Flow::ComputeResidual(const CConfig* c } } - for (iVar = 0; iVar < nVar; iVar++) - Flux[iVar] *= Area; + for (iVar = 0; iVar < nVar; iVar++) Flux[iVar] *= Area; /*--- Return early if the Jacobians do not need to be computed. ---*/ - if (implicit) - { + if (!implicit) return ResidualType<>(Flux, Jacobian_i, Jacobian_j); + if (sM > 0.0) { if (sL > 0.0) { @@ -1090,21 +1064,14 @@ CNumerics::ResidualType<> CUpwGeneralHLLC_Flow::ComputeResidual(const CConfig* c } } - - /*--- Jacobians of the inviscid flux, scale = kappa because Flux ~ 0.5*(fc_i+fc_j)*Normal ---*/ - - Area *= kappa; - + /*--- Scale Jacobians by area (from Flux *= Area). ---*/ for (iVar = 0; iVar < nVar; iVar++) { for (jVar = 0; jVar < nVar; jVar++) { Jacobian_i[iVar][jVar] *= Area; Jacobian_j[iVar][jVar] *= Area; } } - } // end if implicit - return ResidualType<>(Flux, Jacobian_i, Jacobian_j); - } void CUpwGeneralHLLC_Flow::VinokurMontagne() { diff --git a/SU2_CFD/src/numerics/flow/convection/roe.cpp b/SU2_CFD/src/numerics/flow/convection/roe.cpp index 5f84fc21858..7b122119009 100644 --- a/SU2_CFD/src/numerics/flow/convection/roe.cpp +++ b/SU2_CFD/src/numerics/flow/convection/roe.cpp @@ -34,7 +34,7 @@ CUpwRoeBase_Flow::CUpwRoeBase_Flow(unsigned short val_nDim, unsigned short val_n implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */ dynamic_grid = config->GetDynamic_Grid(); - kappa = config->GetRoe_Kappa(); // 1 is unstable + kappa = config->GetRoe_Kappa(); Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; @@ -683,7 +683,7 @@ CUpwGeneralRoe_Flow::CUpwGeneralRoe_Flow(unsigned short val_nDim, unsigned short implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */ dynamic_grid = config->GetDynamic_Grid(); - kappa = config->GetRoe_Kappa(); // 1 is unstable + kappa = config->GetRoe_Kappa(); Flux = new su2double [nVar]; diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index e8394388bb8..e7184d37783 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -392,7 +392,7 @@ def main(): turb_flatplate_species.test_vals = [-4.120225, -0.634021, -1.706720, 1.363240, -3.250204, 9.000000, -6.697079, 5.000000, -6.978731, 10.000000, -6.013196, 0.996237, 0.996237] test_list.append(turb_flatplate_species) - # Flat plate SST compressibility correction Wilcox + # Flat plate SST compressibility correction Wilcox turb_flatplate_CC_Wilcox = TestCase('turb_flatplate_CC_Wilcox') turb_flatplate_CC_Wilcox.cfg_dir = "rans/flatplate" turb_flatplate_CC_Wilcox.cfg_file = "turb_SST_flatplate_compressibility_Wilcox.cfg" @@ -400,7 +400,7 @@ def main(): turb_flatplate_CC_Wilcox.test_vals = [-1.280875, 1.974212, 1.440458, 5.038402, -4.051125, 8.521136] test_list.append(turb_flatplate_CC_Wilcox) - # Flat plate SST compressibility correction Sarkar + # Flat plate SST compressibility correction Sarkar turb_flatplate_CC_Sarkar = TestCase('turb_flatplate_CC_Sarkar') turb_flatplate_CC_Sarkar.cfg_dir = "rans/flatplate" turb_flatplate_CC_Sarkar.cfg_file = "turb_SST_flatplate_compressibility_Sarkar.cfg" diff --git a/config_template.cfg b/config_template.cfg index ecf00315bd8..00334732b30 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -1567,7 +1567,7 @@ CONV_NUM_METHOD_FLOW= ROE % Roe Low Dissipation function for Hybrid RANS/LES simulations (FD, NTS, NTS_DUCROS) ROE_LOW_DISSIPATION= FD % -% Roe coefficient +% Roe dissipation coefficient ROE_KAPPA= 0.5 % % Minimum value for beta for the Roe-Turkel preconditioner From f3e7187db240063fd2e94846a904ee1f20cdea03 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sun, 11 Aug 2024 11:58:55 -0700 Subject: [PATCH 227/287] checkpoint --- .../include/numerics/flow/convection/hllc.hpp | 14 -- SU2_CFD/src/numerics/flow/convection/hllc.cpp | 218 +++++++++--------- 2 files changed, 103 insertions(+), 129 deletions(-) diff --git a/SU2_CFD/include/numerics/flow/convection/hllc.hpp b/SU2_CFD/include/numerics/flow/convection/hllc.hpp index 62d46a7d211..8f3a64f7f0d 100644 --- a/SU2_CFD/include/numerics/flow/convection/hllc.hpp +++ b/SU2_CFD/include/numerics/flow/convection/hllc.hpp @@ -39,20 +39,6 @@ class CUpwHLLC_Flow final : public CNumerics { private: bool implicit, dynamic_grid; - unsigned short iDim, jDim, iVar, jVar; - - su2double *IntermediateState; - su2double *Velocity_i, *Velocity_j, *RoeVelocity; - - su2double sq_vel_i, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, ProjVelocity_i; - su2double sq_vel_j, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, ProjVelocity_j; - - su2double sq_velRoe, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeProjVelocity, ProjInterfaceVel; - - su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho; - - su2double Omega, RHO, OmegaSM; - su2double *dSm_dU, *dPI_dU, *drhoStar_dU, *dpStar_dU, *dEStar_dU; su2double* Flux; /*!< \brief The flux accross the face. */ su2double** Jacobian_i; /*!< \brief The Jacobian w.r.t. point i after computation. */ diff --git a/SU2_CFD/src/numerics/flow/convection/hllc.cpp b/SU2_CFD/src/numerics/flow/convection/hllc.cpp index d94b44759a7..972c71047c1 100644 --- a/SU2_CFD/src/numerics/flow/convection/hllc.cpp +++ b/SU2_CFD/src/numerics/flow/convection/hllc.cpp @@ -39,17 +39,6 @@ CUpwHLLC_Flow::CUpwHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, c Gamma_Minus_One = Gamma - 1.0; - IntermediateState = new su2double [nVar]; - dSm_dU = new su2double [nVar]; - dPI_dU = new su2double [nVar]; - drhoStar_dU = new su2double [nVar]; - dpStar_dU = new su2double [nVar]; - dEStar_dU = new su2double [nVar]; - - Velocity_i = new su2double [nDim]; - Velocity_j = new su2double [nDim]; - RoeVelocity = new su2double [nDim]; - Flux = new su2double [nVar]; Jacobian_i = new su2double* [nVar]; Jacobian_j = new su2double* [nVar]; @@ -61,17 +50,6 @@ CUpwHLLC_Flow::CUpwHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, c CUpwHLLC_Flow::~CUpwHLLC_Flow() { - delete [] IntermediateState; - delete [] dSm_dU; - delete [] dPI_dU; - delete [] drhoStar_dU; - delete [] dpStar_dU; - delete [] dEStar_dU; - - delete [] Velocity_i; - delete [] Velocity_j; - delete [] RoeVelocity; - for (unsigned short iVar = 0; iVar < nVar; iVar++) { delete [] Jacobian_i[iVar]; delete [] Jacobian_j[iVar]; @@ -88,53 +66,53 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Face area (norm or the normal vector) ---*/ - Area = GeometryToolbox::Norm(nDim, Normal); + const su2double Area = GeometryToolbox::Norm(nDim, Normal); /*-- Unit Normal ---*/ - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) UnitNormal[iDim] = Normal[iDim] / Area; /*-- Fluid velocity at node i,j ---*/ - for (iDim = 0; iDim < nDim; iDim++) { + su2double Velocity_i[MAXNDIM] = {}, Velocity_j[MAXNDIM] = {}; + for (auto iDim = 0u; iDim < nDim; iDim++) { Velocity_i[iDim] = V_i[iDim+1]; Velocity_j[iDim] = V_j[iDim+1]; } /*--- Primitive variables at point i ---*/ - Pressure_i = V_i[nDim+1]; - Density_i = V_i[nDim+2]; - Enthalpy_i = V_i[nDim+3]; + const su2double Pressure_i = V_i[nDim+1]; + const su2double Density_i = V_i[nDim+2]; + const su2double Enthalpy_i = V_i[nDim+3]; /*--- Primitive variables at point j ---*/ - Pressure_j = V_j[nDim+1]; - Density_j = V_j[nDim+2]; - Enthalpy_j = V_j[nDim+3]; + const su2double Pressure_j = V_j[nDim+1]; + const su2double Density_j = V_j[nDim+2]; + const su2double Enthalpy_j = V_j[nDim+3]; - sq_vel_i = GeometryToolbox::SquaredNorm(nDim, Velocity_i); - sq_vel_j = GeometryToolbox::SquaredNorm(nDim, Velocity_j); + const su2double sq_vel_i = GeometryToolbox::SquaredNorm(nDim, Velocity_i); + const su2double sq_vel_j = GeometryToolbox::SquaredNorm(nDim, Velocity_j); - Energy_i = Enthalpy_i - Pressure_i / Density_i; - Energy_j = Enthalpy_j - Pressure_j / Density_j; + const su2double Energy_i = Enthalpy_i - Pressure_i / Density_i; + const su2double Energy_j = Enthalpy_j - Pressure_j / Density_j; - SoundSpeed_i = sqrt((Enthalpy_i - 0.5 * sq_vel_i) * Gamma_Minus_One); - SoundSpeed_j = sqrt((Enthalpy_j - 0.5 * sq_vel_j) * Gamma_Minus_One); + su2double SoundSpeed_i = sqrt((Enthalpy_i - 0.5 * sq_vel_i) * Gamma_Minus_One); + su2double SoundSpeed_j = sqrt((Enthalpy_j - 0.5 * sq_vel_j) * Gamma_Minus_One); /*--- Projected velocities ---*/ - ProjVelocity_i = GeometryToolbox::DotProduct(nDim, Velocity_i, UnitNormal); - ProjVelocity_j = GeometryToolbox::DotProduct(nDim, Velocity_j, UnitNormal); + su2double ProjVelocity_i = GeometryToolbox::DotProduct(nDim, Velocity_i, UnitNormal); + su2double ProjVelocity_j = GeometryToolbox::DotProduct(nDim, Velocity_j, UnitNormal); /*--- Projected Grid Velocity ---*/ - ProjInterfaceVel = 0; + su2double ProjInterfaceVel = 0; if (dynamic_grid) { - - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) ProjInterfaceVel += 0.5 * (GridVel_i[iDim] + GridVel_j[iDim]) * UnitNormal[iDim]; SoundSpeed_i -= ProjInterfaceVel; @@ -146,37 +124,39 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Roe's averaging ---*/ - Rrho = ( sqrt(Density_i) + sqrt(Density_j) ); + const su2double Rrho = ( sqrt(Density_i) + sqrt(Density_j) ); - for (iDim = 0; iDim < nDim; iDim++) { + su2double RoeVelocity[MAXNDIM] = {}; + for (auto iDim = 0u; iDim < nDim; iDim++) { RoeVelocity[iDim] = ( Velocity_i[iDim] * sqrt(Density_i) + Velocity_j[iDim] * sqrt(Density_j) ) / Rrho; } - sq_velRoe = GeometryToolbox::SquaredNorm(nDim, RoeVelocity); - RoeProjVelocity = GeometryToolbox::DotProduct(nDim, RoeVelocity, UnitNormal) - ProjInterfaceVel; + const su2double sq_velRoe = GeometryToolbox::SquaredNorm(nDim, RoeVelocity); + const su2double RoeProjVelocity = GeometryToolbox::DotProduct(nDim, RoeVelocity, UnitNormal) - ProjInterfaceVel; /*--- Mean Roe variables iPoint and jPoint ---*/ - RoeDensity = sqrt( Density_i * Density_j ); - RoeEnthalpy = ( sqrt(Density_j) * Enthalpy_j + sqrt(Density_i) * Enthalpy_i) / Rrho; + const su2double RoeDensity = sqrt( Density_i * Density_j ); + const su2double RoeEnthalpy = ( sqrt(Density_j) * Enthalpy_j + sqrt(Density_i) * Enthalpy_i) / Rrho; /*--- Roe-averaged speed of sound ---*/ - RoeSoundSpeed = sqrt( Gamma_Minus_One * ( RoeEnthalpy - 0.5 * sq_velRoe ) ) - ProjInterfaceVel; + const su2double RoeSoundSpeed = sqrt( Gamma_Minus_One * ( RoeEnthalpy - 0.5 * sq_velRoe ) ) - ProjInterfaceVel; /*--- Speed of sound at L and R ---*/ - sL = min( RoeProjVelocity - RoeSoundSpeed, ProjVelocity_i - SoundSpeed_i); - sR = max( RoeProjVelocity + RoeSoundSpeed, ProjVelocity_j + SoundSpeed_j); + const su2double sL = min( RoeProjVelocity - RoeSoundSpeed, ProjVelocity_i - SoundSpeed_i); + const su2double sR = max( RoeProjVelocity + RoeSoundSpeed, ProjVelocity_j + SoundSpeed_j); /*--- speed of contact surface ---*/ - RHO = Density_j * (sR - ProjVelocity_j) - Density_i * (sL - ProjVelocity_i); - sM = ( Pressure_i - Pressure_j - Density_i * ProjVelocity_i * ( sL - ProjVelocity_i ) + Density_j * ProjVelocity_j * ( sR - ProjVelocity_j ) ) / RHO; + const su2double RHO = Density_j * (sR - ProjVelocity_j) - Density_i * (sL - ProjVelocity_i); + const su2double sM = ( Pressure_i - Pressure_j - Density_i * ProjVelocity_i * ( sL - ProjVelocity_i ) + Density_j * ProjVelocity_j * ( sR - ProjVelocity_j ) ) / RHO; /*--- Pressure at right and left (Pressure_j=Pressure_i) side of contact surface ---*/ - pStar = Density_j * ( ProjVelocity_j - sR ) * ( ProjVelocity_j - sM ) + Pressure_j; + const su2double pStar = Density_j * ( ProjVelocity_j - sR ) * ( ProjVelocity_j - sM ) + Pressure_j; + su2double IntermediateState[5] = {}; if (sM > 0.0) { @@ -185,7 +165,7 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Compute Left Flux ---*/ Flux[0] = Density_i * ProjVelocity_i; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) Flux[iDim+1] = Density_i * Velocity_i[iDim] * ProjVelocity_i + Pressure_i * UnitNormal[iDim]; Flux[nVar-1] = Enthalpy_i * Density_i * ProjVelocity_i; @@ -194,16 +174,15 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Compute Flux Left Star from Left Star State ---*/ - rhoSL = ( sL - ProjVelocity_i ) / ( sL - sM ); + const su2double rhoSL = ( sL - ProjVelocity_i ) / ( sL - sM ); IntermediateState[0] = rhoSL * Density_i; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) IntermediateState[iDim+1] = rhoSL * Density_i * Velocity_i[iDim] + (pStar - Pressure_i) * UnitNormal[iDim] / (sL - sM); IntermediateState[nVar-1] = rhoSL * Density_i * Energy_i - (Pressure_i * ProjVelocity_i - pStar * sM) / (sL - sM); - Flux[0] = sM * IntermediateState[0]; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) Flux[iDim+1] = sM * IntermediateState[iDim+1] + pStar * UnitNormal[iDim]; Flux[nVar-1] = sM * ( IntermediateState[nVar-1] + pStar ) + pStar * ProjInterfaceVel; } @@ -215,7 +194,7 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Compute Right Flux ---*/ Flux[0] = Density_j * ProjVelocity_j; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) Flux[iDim+1] = Density_j * Velocity_j[iDim] * ProjVelocity_j + Pressure_j * UnitNormal[iDim]; Flux[nVar-1] = Enthalpy_j * Density_j * ProjVelocity_j; } @@ -223,22 +202,21 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Compute Flux Right Star from Right Star State ---*/ - rhoSR = ( sR - ProjVelocity_j ) / ( sR - sM ); + const su2double rhoSR = ( sR - ProjVelocity_j ) / ( sR - sM ); IntermediateState[0] = rhoSR * Density_j; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) IntermediateState[iDim+1] = rhoSR * Density_j * Velocity_j[iDim] + (pStar - Pressure_j) * UnitNormal[iDim] / (sR - sM); IntermediateState[nVar-1] = rhoSR * Density_j * Energy_j - (Pressure_j * ProjVelocity_j - pStar * sM) / (sR - sM); - Flux[0] = sM * IntermediateState[0]; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) Flux[iDim+1] = sM * IntermediateState[iDim+1] + pStar * UnitNormal[iDim]; Flux[nVar-1] = sM * (IntermediateState[nVar-1] + pStar ) + pStar * ProjInterfaceVel; } } - for (iVar = 0; iVar < nVar; iVar++) Flux[iVar] *= Area; + for (auto iVar = 0u; iVar < nVar; iVar++) Flux[iVar] *= Area; /*--- Return early if the Jacobians do not need to be computed. ---*/ @@ -250,8 +228,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Compute Jacobian based on Left State ---*/ - for (iVar = 0; iVar < nVar; iVar++) - for (jVar = 0; jVar < nVar; jVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) + for (auto jVar = 0u; jVar < nVar; jVar++) Jacobian_j[iVar][jVar] = 0; GetInviscidProjJac(Velocity_i, &Energy_i, UnitNormal, 1.0, Jacobian_i); @@ -260,9 +238,9 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) else { /*--- Compute Jacobian based on Left Star State ---*/ - EStar = IntermediateState[nVar-1]; - Omega = 1/(sL-sM); - OmegaSM = Omega * sM; + const su2double EStar = IntermediateState[nVar-1]; + const su2double Omega = 1/(sL-sM); + const su2double OmegaSM = Omega * sM; /*--------- Left Jacobian ---------*/ @@ -270,41 +248,46 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Computing pressure derivatives d/dU_L (PI) ---*/ + su2double dPI_dU[5] = {}; dPI_dU[0] = 0.5 * Gamma_Minus_One * sq_vel_i; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) dPI_dU[iDim+1] = - Gamma_Minus_One * Velocity_i[iDim]; dPI_dU[nVar-1] = Gamma_Minus_One; /*--- Computing d/dU_L (Sm) ---*/ + su2double dSm_dU[5] = {}; dSm_dU[0] = ( - ProjVelocity_i * ProjVelocity_i + sM * sL + dPI_dU[0] ) / RHO; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) dSm_dU[iDim+1] = ( UnitNormal[iDim] * ( 2 * ProjVelocity_i - sL - sM ) + dPI_dU[iDim+1] ) / RHO; dSm_dU[nVar-1] = dPI_dU[nVar-1] / RHO; /*--- Computing d/dU_L (rhoStar) ---*/ + su2double drhoStar_dU[5] = {}; drhoStar_dU[0] = Omega * ( sL + IntermediateState[0] * dSm_dU[0] ); - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) drhoStar_dU[iDim+1] = Omega * ( - UnitNormal[iDim] + IntermediateState[0] * dSm_dU[iDim+1] ); drhoStar_dU[nVar-1] = Omega * IntermediateState[0] * dSm_dU[nVar-1]; /*--- Computing d/dU_L (pStar) ---*/ - for (iVar = 0; iVar < nVar; iVar++) + su2double dpStar_dU[5] = {}; + for (auto iVar = 0u; iVar < nVar; iVar++) dpStar_dU[iVar] = Density_i * (sR - ProjVelocity_j) * dSm_dU[iVar]; /*--- Computing d/dU_L (EStar) ---*/ - for (iVar = 0; iVar < nVar; iVar++) + su2double dEStar_dU[5] = {}; + for (auto iVar = 0u; iVar < nVar; iVar++) dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); dEStar_dU[0] += Omega * ProjVelocity_i * ( Enthalpy_i - dPI_dU[0] ); - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) dEStar_dU[iDim+1] += Omega * ( - UnitNormal[iDim] * Enthalpy_i - ProjVelocity_i * dPI_dU[iDim+1] ); dEStar_dU[nVar-1] += Omega * ( sL - ProjVelocity_i - ProjVelocity_i * dPI_dU[nVar-1] ); @@ -312,29 +295,29 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Jacobian First Row ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_i[0][iVar] = sM * drhoStar_dU[iVar] + IntermediateState[0] * dSm_dU[iVar]; /*--- Jacobian Middle Rows ---*/ - for (jDim = 0; jDim < nDim; jDim++) { - for (iVar = 0; iVar < nVar; iVar++) + for (auto jDim = 0u; jDim < nDim; jDim++) { + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_i[jDim+1][iVar] = ( OmegaSM + 1 ) * ( UnitNormal[jDim] * dpStar_dU[iVar] + IntermediateState[jDim+1] * dSm_dU[iVar] ); Jacobian_i[jDim+1][0] += OmegaSM * Velocity_i[jDim] * ProjVelocity_i; Jacobian_i[jDim+1][jDim+1] += OmegaSM * (sL - ProjVelocity_i); - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) Jacobian_i[jDim+1][iDim+1] -= OmegaSM * Velocity_i[jDim] * UnitNormal[iDim]; - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_i[jDim+1][iVar] -= OmegaSM * dPI_dU[iVar] * UnitNormal[jDim]; } /*--- Jacobian Last Row ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_i[nVar-1][iVar] = sM * ( dEStar_dU[iVar] + dpStar_dU[iVar] ) + ( EStar + pStar ) * dSm_dU[iVar]; @@ -344,39 +327,39 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Computing d/dU_R (Sm) ---*/ dSm_dU[0] = ( ProjVelocity_j * ProjVelocity_j - sM * sR - 0.5 * Gamma_Minus_One * sq_vel_j ) / RHO; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) dSm_dU[iDim+1] = - ( UnitNormal[iDim] * ( 2 * ProjVelocity_j - sR - sM) - Gamma_Minus_One * Velocity_j[iDim] ) / RHO; dSm_dU[nVar-1] = - Gamma_Minus_One / RHO; /*--- Computing d/dU_R (pStar) ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) dpStar_dU[iVar] = Density_j * (sL - ProjVelocity_i) * dSm_dU[iVar]; /*--- Computing d/dU_R (EStar) ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); /*--- Jacobian First Row ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_j[0][iVar] = IntermediateState[0] * ( OmegaSM + 1 ) * dSm_dU[iVar]; /*--- Jacobian Middle Rows ---*/ - for (iDim = 0; iDim < nDim; iDim++) { - for (iVar = 0; iVar < nVar; iVar++) + for (auto iDim = 0u; iDim < nDim; iDim++) { + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_j[iDim+1][iVar] = ( OmegaSM + 1 ) * ( IntermediateState[iDim+1] * dSm_dU[iVar] + UnitNormal[iDim] * dpStar_dU[iVar] ); } /*--- Jacobian Last Row ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_j[nVar-1][iVar] = sM * (dEStar_dU[iVar] + dpStar_dU[iVar]) + (EStar + pStar) * dSm_dU[iVar]; } } @@ -385,8 +368,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Compute Jacobian based on Right State ---*/ - for (iVar = 0; iVar < nVar; iVar++) - for (jVar = 0; jVar < nVar; jVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) + for (auto jVar = 0u; jVar < nVar; jVar++) Jacobian_i[iVar][jVar] = 0; GetInviscidProjJac(Velocity_j, &Energy_j, UnitNormal, 1.0, Jacobian_j); @@ -395,9 +378,9 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) else { /*--- Compute Jacobian based on Right Star State ---*/ - EStar = IntermediateState[nVar-1]; - Omega = 1/(sR-sM); - OmegaSM = Omega * sM; + const su2double EStar = IntermediateState[nVar-1]; + const su2double Omega = 1/(sR-sM); + const su2double OmegaSM = Omega * sM; /*--------- Left Jacobian ---------*/ @@ -405,40 +388,43 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Computing d/dU_L (Sm) ---*/ + su2double dSm_dU[5] = {}; dSm_dU[0] = ( - ProjVelocity_i * ProjVelocity_i + sM * sL + 0.5 * Gamma_Minus_One * sq_vel_i ) / RHO; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) dSm_dU[iDim+1] = ( UnitNormal[iDim] * ( 2 * ProjVelocity_i - sL - sM ) - Gamma_Minus_One * Velocity_i[iDim] ) / RHO; dSm_dU[nVar-1] = Gamma_Minus_One / RHO; /*--- Computing d/dU_L (pStar) ---*/ - for (iVar = 0; iVar < nVar; iVar++) + su2double dpStar_dU[5] = {}; + for (auto iVar = 0u; iVar < nVar; iVar++) dpStar_dU[iVar] = Density_i * (sR - ProjVelocity_j) * dSm_dU[iVar]; /*--- Computing d/dU_L (EStar) ---*/ - for (iVar = 0; iVar < nVar; iVar++) + su2double dEStar_dU[5] = {}; + for (auto iVar = 0u; iVar < nVar; iVar++) dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); /*--- Jacobian First Row ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_i[0][iVar] = IntermediateState[0] * ( OmegaSM + 1 ) * dSm_dU[iVar]; /*--- Jacobian Middle Rows ---*/ - for (iDim = 0; iDim < nDim; iDim++) { - for (iVar = 0; iVar < nVar; iVar++) + for (auto iDim = 0u; iDim < nDim; iDim++) { + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_i[iDim+1][iVar] = (OmegaSM + 1) * ( IntermediateState[iDim+1] * dSm_dU[iVar] + UnitNormal[iDim] * dpStar_dU[iVar] ); } /*--- Jacobian Last Row ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_i[nVar-1][iVar] = sM * (dEStar_dU[iVar] + dpStar_dU[iVar]) + (EStar + pStar) * dSm_dU[iVar]; @@ -448,8 +434,9 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Computing pressure derivatives d/dU_R (PI) ---*/ + su2double dPI_dU[5] = {}; dPI_dU[0] = 0.5 * Gamma_Minus_One * sq_vel_j; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) dPI_dU[iDim+1] = - Gamma_Minus_One * Velocity_j[iDim]; dPI_dU[nVar-1] = Gamma_Minus_One; @@ -458,32 +445,33 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Computing d/dU_R (Sm) ---*/ dSm_dU[0] = - ( - ProjVelocity_j * ProjVelocity_j + sM * sR + dPI_dU[0] ) / RHO; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) dSm_dU[iDim+1] = - ( UnitNormal[iDim] * ( 2 * ProjVelocity_j - sR - sM) + dPI_dU[iDim+1] ) / RHO; dSm_dU[nVar-1] = - dPI_dU[nVar-1] / RHO; /*--- Computing d/dU_R (pStar) ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) dpStar_dU[iVar] = Density_j * (sL - ProjVelocity_i) * dSm_dU[iVar]; /*--- Computing d/dU_R (rhoStar) ---*/ + su2double drhoStar_dU[5] = {}; drhoStar_dU[0] = Omega * ( sR + IntermediateState[0] * dSm_dU[0] ); - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) drhoStar_dU[iDim+1] = Omega * ( - UnitNormal[iDim] + IntermediateState[0] * dSm_dU[iDim+1] ); drhoStar_dU[nVar-1] = Omega * IntermediateState[0] * dSm_dU[nVar-1]; /*--- Computing d/dU_R (EStar) ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); dEStar_dU[0] += Omega * ProjVelocity_j * ( Enthalpy_j - dPI_dU[0] ); - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) dEStar_dU[iDim+1] += Omega * ( - UnitNormal[iDim] * Enthalpy_j - ProjVelocity_j * dPI_dU[iDim+1] ); dEStar_dU[nVar-1] += Omega * ( sR - ProjVelocity_j - ProjVelocity_j * dPI_dU[nVar-1] ); @@ -491,37 +479,37 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Jacobian First Row ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_j[0][iVar] = sM * drhoStar_dU[iVar] + IntermediateState[0] * dSm_dU[iVar]; /*--- Jacobian Middle Rows ---*/ - for (jDim = 0; jDim < nDim; jDim++) { - for (iVar = 0; iVar < nVar; iVar++) + for (auto jDim = 0u; jDim < nDim; jDim++) { + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_j[jDim+1][iVar] = ( OmegaSM + 1 ) * ( UnitNormal[jDim] * dpStar_dU[iVar] + IntermediateState[jDim+1] * dSm_dU[iVar] ); Jacobian_j[jDim+1][0] += OmegaSM * Velocity_j[jDim] * ProjVelocity_j; Jacobian_j[jDim+1][jDim+1] += OmegaSM * (sR - ProjVelocity_j); - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) Jacobian_j[jDim+1][iDim+1] -= OmegaSM * Velocity_j[jDim] * UnitNormal[iDim]; - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_j[jDim+1][iVar] -= OmegaSM * dPI_dU[iVar] * UnitNormal[jDim]; } /*--- Jacobian Last Row ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_j[nVar-1][iVar] = sM * ( dEStar_dU[iVar] + dpStar_dU[iVar] ) + ( EStar + pStar ) * dSm_dU[iVar]; } } /*--- Scale Jacobians by area (from Flux *= Area). ---*/ - for (iVar = 0; iVar < nVar; iVar++) { - for (jVar = 0; jVar < nVar; jVar++) { + for (auto iVar = 0u; iVar < nVar; iVar++) { + for (auto jVar = 0u; jVar < nVar; jVar++) { Jacobian_i[iVar][jVar] *= Area; Jacobian_j[iVar][jVar] *= Area; } From dbca37cd3f1f3f8ca635d41bd4c82ac823ed299c Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sun, 11 Aug 2024 12:36:34 -0700 Subject: [PATCH 228/287] Revert "checkpoint" This reverts commit f3e7187db240063fd2e94846a904ee1f20cdea03. --- .../include/numerics/flow/convection/hllc.hpp | 14 ++ SU2_CFD/src/numerics/flow/convection/hllc.cpp | 218 +++++++++--------- 2 files changed, 129 insertions(+), 103 deletions(-) diff --git a/SU2_CFD/include/numerics/flow/convection/hllc.hpp b/SU2_CFD/include/numerics/flow/convection/hllc.hpp index 8f3a64f7f0d..62d46a7d211 100644 --- a/SU2_CFD/include/numerics/flow/convection/hllc.hpp +++ b/SU2_CFD/include/numerics/flow/convection/hllc.hpp @@ -39,6 +39,20 @@ class CUpwHLLC_Flow final : public CNumerics { private: bool implicit, dynamic_grid; + unsigned short iDim, jDim, iVar, jVar; + + su2double *IntermediateState; + su2double *Velocity_i, *Velocity_j, *RoeVelocity; + + su2double sq_vel_i, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, ProjVelocity_i; + su2double sq_vel_j, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, ProjVelocity_j; + + su2double sq_velRoe, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeProjVelocity, ProjInterfaceVel; + + su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho; + + su2double Omega, RHO, OmegaSM; + su2double *dSm_dU, *dPI_dU, *drhoStar_dU, *dpStar_dU, *dEStar_dU; su2double* Flux; /*!< \brief The flux accross the face. */ su2double** Jacobian_i; /*!< \brief The Jacobian w.r.t. point i after computation. */ diff --git a/SU2_CFD/src/numerics/flow/convection/hllc.cpp b/SU2_CFD/src/numerics/flow/convection/hllc.cpp index 972c71047c1..d94b44759a7 100644 --- a/SU2_CFD/src/numerics/flow/convection/hllc.cpp +++ b/SU2_CFD/src/numerics/flow/convection/hllc.cpp @@ -39,6 +39,17 @@ CUpwHLLC_Flow::CUpwHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, c Gamma_Minus_One = Gamma - 1.0; + IntermediateState = new su2double [nVar]; + dSm_dU = new su2double [nVar]; + dPI_dU = new su2double [nVar]; + drhoStar_dU = new su2double [nVar]; + dpStar_dU = new su2double [nVar]; + dEStar_dU = new su2double [nVar]; + + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + RoeVelocity = new su2double [nDim]; + Flux = new su2double [nVar]; Jacobian_i = new su2double* [nVar]; Jacobian_j = new su2double* [nVar]; @@ -50,6 +61,17 @@ CUpwHLLC_Flow::CUpwHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, c CUpwHLLC_Flow::~CUpwHLLC_Flow() { + delete [] IntermediateState; + delete [] dSm_dU; + delete [] dPI_dU; + delete [] drhoStar_dU; + delete [] dpStar_dU; + delete [] dEStar_dU; + + delete [] Velocity_i; + delete [] Velocity_j; + delete [] RoeVelocity; + for (unsigned short iVar = 0; iVar < nVar; iVar++) { delete [] Jacobian_i[iVar]; delete [] Jacobian_j[iVar]; @@ -66,53 +88,53 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Face area (norm or the normal vector) ---*/ - const su2double Area = GeometryToolbox::Norm(nDim, Normal); + Area = GeometryToolbox::Norm(nDim, Normal); /*-- Unit Normal ---*/ - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) UnitNormal[iDim] = Normal[iDim] / Area; /*-- Fluid velocity at node i,j ---*/ - su2double Velocity_i[MAXNDIM] = {}, Velocity_j[MAXNDIM] = {}; - for (auto iDim = 0u; iDim < nDim; iDim++) { + for (iDim = 0; iDim < nDim; iDim++) { Velocity_i[iDim] = V_i[iDim+1]; Velocity_j[iDim] = V_j[iDim+1]; } /*--- Primitive variables at point i ---*/ - const su2double Pressure_i = V_i[nDim+1]; - const su2double Density_i = V_i[nDim+2]; - const su2double Enthalpy_i = V_i[nDim+3]; + Pressure_i = V_i[nDim+1]; + Density_i = V_i[nDim+2]; + Enthalpy_i = V_i[nDim+3]; /*--- Primitive variables at point j ---*/ - const su2double Pressure_j = V_j[nDim+1]; - const su2double Density_j = V_j[nDim+2]; - const su2double Enthalpy_j = V_j[nDim+3]; + Pressure_j = V_j[nDim+1]; + Density_j = V_j[nDim+2]; + Enthalpy_j = V_j[nDim+3]; - const su2double sq_vel_i = GeometryToolbox::SquaredNorm(nDim, Velocity_i); - const su2double sq_vel_j = GeometryToolbox::SquaredNorm(nDim, Velocity_j); + sq_vel_i = GeometryToolbox::SquaredNorm(nDim, Velocity_i); + sq_vel_j = GeometryToolbox::SquaredNorm(nDim, Velocity_j); - const su2double Energy_i = Enthalpy_i - Pressure_i / Density_i; - const su2double Energy_j = Enthalpy_j - Pressure_j / Density_j; + Energy_i = Enthalpy_i - Pressure_i / Density_i; + Energy_j = Enthalpy_j - Pressure_j / Density_j; - su2double SoundSpeed_i = sqrt((Enthalpy_i - 0.5 * sq_vel_i) * Gamma_Minus_One); - su2double SoundSpeed_j = sqrt((Enthalpy_j - 0.5 * sq_vel_j) * Gamma_Minus_One); + SoundSpeed_i = sqrt((Enthalpy_i - 0.5 * sq_vel_i) * Gamma_Minus_One); + SoundSpeed_j = sqrt((Enthalpy_j - 0.5 * sq_vel_j) * Gamma_Minus_One); /*--- Projected velocities ---*/ - su2double ProjVelocity_i = GeometryToolbox::DotProduct(nDim, Velocity_i, UnitNormal); - su2double ProjVelocity_j = GeometryToolbox::DotProduct(nDim, Velocity_j, UnitNormal); + ProjVelocity_i = GeometryToolbox::DotProduct(nDim, Velocity_i, UnitNormal); + ProjVelocity_j = GeometryToolbox::DotProduct(nDim, Velocity_j, UnitNormal); /*--- Projected Grid Velocity ---*/ - su2double ProjInterfaceVel = 0; + ProjInterfaceVel = 0; if (dynamic_grid) { - for (auto iDim = 0u; iDim < nDim; iDim++) + + for (iDim = 0; iDim < nDim; iDim++) ProjInterfaceVel += 0.5 * (GridVel_i[iDim] + GridVel_j[iDim]) * UnitNormal[iDim]; SoundSpeed_i -= ProjInterfaceVel; @@ -124,39 +146,37 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Roe's averaging ---*/ - const su2double Rrho = ( sqrt(Density_i) + sqrt(Density_j) ); + Rrho = ( sqrt(Density_i) + sqrt(Density_j) ); - su2double RoeVelocity[MAXNDIM] = {}; - for (auto iDim = 0u; iDim < nDim; iDim++) { + for (iDim = 0; iDim < nDim; iDim++) { RoeVelocity[iDim] = ( Velocity_i[iDim] * sqrt(Density_i) + Velocity_j[iDim] * sqrt(Density_j) ) / Rrho; } - const su2double sq_velRoe = GeometryToolbox::SquaredNorm(nDim, RoeVelocity); - const su2double RoeProjVelocity = GeometryToolbox::DotProduct(nDim, RoeVelocity, UnitNormal) - ProjInterfaceVel; + sq_velRoe = GeometryToolbox::SquaredNorm(nDim, RoeVelocity); + RoeProjVelocity = GeometryToolbox::DotProduct(nDim, RoeVelocity, UnitNormal) - ProjInterfaceVel; /*--- Mean Roe variables iPoint and jPoint ---*/ - const su2double RoeDensity = sqrt( Density_i * Density_j ); - const su2double RoeEnthalpy = ( sqrt(Density_j) * Enthalpy_j + sqrt(Density_i) * Enthalpy_i) / Rrho; + RoeDensity = sqrt( Density_i * Density_j ); + RoeEnthalpy = ( sqrt(Density_j) * Enthalpy_j + sqrt(Density_i) * Enthalpy_i) / Rrho; /*--- Roe-averaged speed of sound ---*/ - const su2double RoeSoundSpeed = sqrt( Gamma_Minus_One * ( RoeEnthalpy - 0.5 * sq_velRoe ) ) - ProjInterfaceVel; + RoeSoundSpeed = sqrt( Gamma_Minus_One * ( RoeEnthalpy - 0.5 * sq_velRoe ) ) - ProjInterfaceVel; /*--- Speed of sound at L and R ---*/ - const su2double sL = min( RoeProjVelocity - RoeSoundSpeed, ProjVelocity_i - SoundSpeed_i); - const su2double sR = max( RoeProjVelocity + RoeSoundSpeed, ProjVelocity_j + SoundSpeed_j); + sL = min( RoeProjVelocity - RoeSoundSpeed, ProjVelocity_i - SoundSpeed_i); + sR = max( RoeProjVelocity + RoeSoundSpeed, ProjVelocity_j + SoundSpeed_j); /*--- speed of contact surface ---*/ - const su2double RHO = Density_j * (sR - ProjVelocity_j) - Density_i * (sL - ProjVelocity_i); - const su2double sM = ( Pressure_i - Pressure_j - Density_i * ProjVelocity_i * ( sL - ProjVelocity_i ) + Density_j * ProjVelocity_j * ( sR - ProjVelocity_j ) ) / RHO; + RHO = Density_j * (sR - ProjVelocity_j) - Density_i * (sL - ProjVelocity_i); + sM = ( Pressure_i - Pressure_j - Density_i * ProjVelocity_i * ( sL - ProjVelocity_i ) + Density_j * ProjVelocity_j * ( sR - ProjVelocity_j ) ) / RHO; /*--- Pressure at right and left (Pressure_j=Pressure_i) side of contact surface ---*/ - const su2double pStar = Density_j * ( ProjVelocity_j - sR ) * ( ProjVelocity_j - sM ) + Pressure_j; + pStar = Density_j * ( ProjVelocity_j - sR ) * ( ProjVelocity_j - sM ) + Pressure_j; - su2double IntermediateState[5] = {}; if (sM > 0.0) { @@ -165,7 +185,7 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Compute Left Flux ---*/ Flux[0] = Density_i * ProjVelocity_i; - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) Flux[iDim+1] = Density_i * Velocity_i[iDim] * ProjVelocity_i + Pressure_i * UnitNormal[iDim]; Flux[nVar-1] = Enthalpy_i * Density_i * ProjVelocity_i; @@ -174,15 +194,16 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Compute Flux Left Star from Left Star State ---*/ - const su2double rhoSL = ( sL - ProjVelocity_i ) / ( sL - sM ); + rhoSL = ( sL - ProjVelocity_i ) / ( sL - sM ); IntermediateState[0] = rhoSL * Density_i; - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) IntermediateState[iDim+1] = rhoSL * Density_i * Velocity_i[iDim] + (pStar - Pressure_i) * UnitNormal[iDim] / (sL - sM); IntermediateState[nVar-1] = rhoSL * Density_i * Energy_i - (Pressure_i * ProjVelocity_i - pStar * sM) / (sL - sM); + Flux[0] = sM * IntermediateState[0]; - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) Flux[iDim+1] = sM * IntermediateState[iDim+1] + pStar * UnitNormal[iDim]; Flux[nVar-1] = sM * ( IntermediateState[nVar-1] + pStar ) + pStar * ProjInterfaceVel; } @@ -194,7 +215,7 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Compute Right Flux ---*/ Flux[0] = Density_j * ProjVelocity_j; - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) Flux[iDim+1] = Density_j * Velocity_j[iDim] * ProjVelocity_j + Pressure_j * UnitNormal[iDim]; Flux[nVar-1] = Enthalpy_j * Density_j * ProjVelocity_j; } @@ -202,21 +223,22 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Compute Flux Right Star from Right Star State ---*/ - const su2double rhoSR = ( sR - ProjVelocity_j ) / ( sR - sM ); + rhoSR = ( sR - ProjVelocity_j ) / ( sR - sM ); IntermediateState[0] = rhoSR * Density_j; - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) IntermediateState[iDim+1] = rhoSR * Density_j * Velocity_j[iDim] + (pStar - Pressure_j) * UnitNormal[iDim] / (sR - sM); IntermediateState[nVar-1] = rhoSR * Density_j * Energy_j - (Pressure_j * ProjVelocity_j - pStar * sM) / (sR - sM); + Flux[0] = sM * IntermediateState[0]; - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) Flux[iDim+1] = sM * IntermediateState[iDim+1] + pStar * UnitNormal[iDim]; Flux[nVar-1] = sM * (IntermediateState[nVar-1] + pStar ) + pStar * ProjInterfaceVel; } } - for (auto iVar = 0u; iVar < nVar; iVar++) Flux[iVar] *= Area; + for (iVar = 0; iVar < nVar; iVar++) Flux[iVar] *= Area; /*--- Return early if the Jacobians do not need to be computed. ---*/ @@ -228,8 +250,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Compute Jacobian based on Left State ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) - for (auto jVar = 0u; jVar < nVar; jVar++) + for (iVar = 0; iVar < nVar; iVar++) + for (jVar = 0; jVar < nVar; jVar++) Jacobian_j[iVar][jVar] = 0; GetInviscidProjJac(Velocity_i, &Energy_i, UnitNormal, 1.0, Jacobian_i); @@ -238,9 +260,9 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) else { /*--- Compute Jacobian based on Left Star State ---*/ - const su2double EStar = IntermediateState[nVar-1]; - const su2double Omega = 1/(sL-sM); - const su2double OmegaSM = Omega * sM; + EStar = IntermediateState[nVar-1]; + Omega = 1/(sL-sM); + OmegaSM = Omega * sM; /*--------- Left Jacobian ---------*/ @@ -248,46 +270,41 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Computing pressure derivatives d/dU_L (PI) ---*/ - su2double dPI_dU[5] = {}; dPI_dU[0] = 0.5 * Gamma_Minus_One * sq_vel_i; - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) dPI_dU[iDim+1] = - Gamma_Minus_One * Velocity_i[iDim]; dPI_dU[nVar-1] = Gamma_Minus_One; /*--- Computing d/dU_L (Sm) ---*/ - su2double dSm_dU[5] = {}; dSm_dU[0] = ( - ProjVelocity_i * ProjVelocity_i + sM * sL + dPI_dU[0] ) / RHO; - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) dSm_dU[iDim+1] = ( UnitNormal[iDim] * ( 2 * ProjVelocity_i - sL - sM ) + dPI_dU[iDim+1] ) / RHO; dSm_dU[nVar-1] = dPI_dU[nVar-1] / RHO; /*--- Computing d/dU_L (rhoStar) ---*/ - su2double drhoStar_dU[5] = {}; drhoStar_dU[0] = Omega * ( sL + IntermediateState[0] * dSm_dU[0] ); - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) drhoStar_dU[iDim+1] = Omega * ( - UnitNormal[iDim] + IntermediateState[0] * dSm_dU[iDim+1] ); drhoStar_dU[nVar-1] = Omega * IntermediateState[0] * dSm_dU[nVar-1]; /*--- Computing d/dU_L (pStar) ---*/ - su2double dpStar_dU[5] = {}; - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) dpStar_dU[iVar] = Density_i * (sR - ProjVelocity_j) * dSm_dU[iVar]; /*--- Computing d/dU_L (EStar) ---*/ - su2double dEStar_dU[5] = {}; - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); dEStar_dU[0] += Omega * ProjVelocity_i * ( Enthalpy_i - dPI_dU[0] ); - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) dEStar_dU[iDim+1] += Omega * ( - UnitNormal[iDim] * Enthalpy_i - ProjVelocity_i * dPI_dU[iDim+1] ); dEStar_dU[nVar-1] += Omega * ( sL - ProjVelocity_i - ProjVelocity_i * dPI_dU[nVar-1] ); @@ -295,29 +312,29 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Jacobian First Row ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) Jacobian_i[0][iVar] = sM * drhoStar_dU[iVar] + IntermediateState[0] * dSm_dU[iVar]; /*--- Jacobian Middle Rows ---*/ - for (auto jDim = 0u; jDim < nDim; jDim++) { - for (auto iVar = 0u; iVar < nVar; iVar++) + for (jDim = 0; jDim < nDim; jDim++) { + for (iVar = 0; iVar < nVar; iVar++) Jacobian_i[jDim+1][iVar] = ( OmegaSM + 1 ) * ( UnitNormal[jDim] * dpStar_dU[iVar] + IntermediateState[jDim+1] * dSm_dU[iVar] ); Jacobian_i[jDim+1][0] += OmegaSM * Velocity_i[jDim] * ProjVelocity_i; Jacobian_i[jDim+1][jDim+1] += OmegaSM * (sL - ProjVelocity_i); - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) Jacobian_i[jDim+1][iDim+1] -= OmegaSM * Velocity_i[jDim] * UnitNormal[iDim]; - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) Jacobian_i[jDim+1][iVar] -= OmegaSM * dPI_dU[iVar] * UnitNormal[jDim]; } /*--- Jacobian Last Row ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) Jacobian_i[nVar-1][iVar] = sM * ( dEStar_dU[iVar] + dpStar_dU[iVar] ) + ( EStar + pStar ) * dSm_dU[iVar]; @@ -327,39 +344,39 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Computing d/dU_R (Sm) ---*/ dSm_dU[0] = ( ProjVelocity_j * ProjVelocity_j - sM * sR - 0.5 * Gamma_Minus_One * sq_vel_j ) / RHO; - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) dSm_dU[iDim+1] = - ( UnitNormal[iDim] * ( 2 * ProjVelocity_j - sR - sM) - Gamma_Minus_One * Velocity_j[iDim] ) / RHO; dSm_dU[nVar-1] = - Gamma_Minus_One / RHO; /*--- Computing d/dU_R (pStar) ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) dpStar_dU[iVar] = Density_j * (sL - ProjVelocity_i) * dSm_dU[iVar]; /*--- Computing d/dU_R (EStar) ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); /*--- Jacobian First Row ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) Jacobian_j[0][iVar] = IntermediateState[0] * ( OmegaSM + 1 ) * dSm_dU[iVar]; /*--- Jacobian Middle Rows ---*/ - for (auto iDim = 0u; iDim < nDim; iDim++) { - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iDim = 0; iDim < nDim; iDim++) { + for (iVar = 0; iVar < nVar; iVar++) Jacobian_j[iDim+1][iVar] = ( OmegaSM + 1 ) * ( IntermediateState[iDim+1] * dSm_dU[iVar] + UnitNormal[iDim] * dpStar_dU[iVar] ); } /*--- Jacobian Last Row ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) Jacobian_j[nVar-1][iVar] = sM * (dEStar_dU[iVar] + dpStar_dU[iVar]) + (EStar + pStar) * dSm_dU[iVar]; } } @@ -368,8 +385,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Compute Jacobian based on Right State ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) - for (auto jVar = 0u; jVar < nVar; jVar++) + for (iVar = 0; iVar < nVar; iVar++) + for (jVar = 0; jVar < nVar; jVar++) Jacobian_i[iVar][jVar] = 0; GetInviscidProjJac(Velocity_j, &Energy_j, UnitNormal, 1.0, Jacobian_j); @@ -378,9 +395,9 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) else { /*--- Compute Jacobian based on Right Star State ---*/ - const su2double EStar = IntermediateState[nVar-1]; - const su2double Omega = 1/(sR-sM); - const su2double OmegaSM = Omega * sM; + EStar = IntermediateState[nVar-1]; + Omega = 1/(sR-sM); + OmegaSM = Omega * sM; /*--------- Left Jacobian ---------*/ @@ -388,43 +405,40 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Computing d/dU_L (Sm) ---*/ - su2double dSm_dU[5] = {}; dSm_dU[0] = ( - ProjVelocity_i * ProjVelocity_i + sM * sL + 0.5 * Gamma_Minus_One * sq_vel_i ) / RHO; - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) dSm_dU[iDim+1] = ( UnitNormal[iDim] * ( 2 * ProjVelocity_i - sL - sM ) - Gamma_Minus_One * Velocity_i[iDim] ) / RHO; dSm_dU[nVar-1] = Gamma_Minus_One / RHO; /*--- Computing d/dU_L (pStar) ---*/ - su2double dpStar_dU[5] = {}; - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) dpStar_dU[iVar] = Density_i * (sR - ProjVelocity_j) * dSm_dU[iVar]; /*--- Computing d/dU_L (EStar) ---*/ - su2double dEStar_dU[5] = {}; - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); /*--- Jacobian First Row ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) Jacobian_i[0][iVar] = IntermediateState[0] * ( OmegaSM + 1 ) * dSm_dU[iVar]; /*--- Jacobian Middle Rows ---*/ - for (auto iDim = 0u; iDim < nDim; iDim++) { - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iDim = 0; iDim < nDim; iDim++) { + for (iVar = 0; iVar < nVar; iVar++) Jacobian_i[iDim+1][iVar] = (OmegaSM + 1) * ( IntermediateState[iDim+1] * dSm_dU[iVar] + UnitNormal[iDim] * dpStar_dU[iVar] ); } /*--- Jacobian Last Row ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) Jacobian_i[nVar-1][iVar] = sM * (dEStar_dU[iVar] + dpStar_dU[iVar]) + (EStar + pStar) * dSm_dU[iVar]; @@ -434,9 +448,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Computing pressure derivatives d/dU_R (PI) ---*/ - su2double dPI_dU[5] = {}; dPI_dU[0] = 0.5 * Gamma_Minus_One * sq_vel_j; - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) dPI_dU[iDim+1] = - Gamma_Minus_One * Velocity_j[iDim]; dPI_dU[nVar-1] = Gamma_Minus_One; @@ -445,33 +458,32 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Computing d/dU_R (Sm) ---*/ dSm_dU[0] = - ( - ProjVelocity_j * ProjVelocity_j + sM * sR + dPI_dU[0] ) / RHO; - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) dSm_dU[iDim+1] = - ( UnitNormal[iDim] * ( 2 * ProjVelocity_j - sR - sM) + dPI_dU[iDim+1] ) / RHO; dSm_dU[nVar-1] = - dPI_dU[nVar-1] / RHO; /*--- Computing d/dU_R (pStar) ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) dpStar_dU[iVar] = Density_j * (sL - ProjVelocity_i) * dSm_dU[iVar]; /*--- Computing d/dU_R (rhoStar) ---*/ - su2double drhoStar_dU[5] = {}; drhoStar_dU[0] = Omega * ( sR + IntermediateState[0] * dSm_dU[0] ); - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) drhoStar_dU[iDim+1] = Omega * ( - UnitNormal[iDim] + IntermediateState[0] * dSm_dU[iDim+1] ); drhoStar_dU[nVar-1] = Omega * IntermediateState[0] * dSm_dU[nVar-1]; /*--- Computing d/dU_R (EStar) ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); dEStar_dU[0] += Omega * ProjVelocity_j * ( Enthalpy_j - dPI_dU[0] ); - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) dEStar_dU[iDim+1] += Omega * ( - UnitNormal[iDim] * Enthalpy_j - ProjVelocity_j * dPI_dU[iDim+1] ); dEStar_dU[nVar-1] += Omega * ( sR - ProjVelocity_j - ProjVelocity_j * dPI_dU[nVar-1] ); @@ -479,37 +491,37 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Jacobian First Row ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) Jacobian_j[0][iVar] = sM * drhoStar_dU[iVar] + IntermediateState[0] * dSm_dU[iVar]; /*--- Jacobian Middle Rows ---*/ - for (auto jDim = 0u; jDim < nDim; jDim++) { - for (auto iVar = 0u; iVar < nVar; iVar++) + for (jDim = 0; jDim < nDim; jDim++) { + for (iVar = 0; iVar < nVar; iVar++) Jacobian_j[jDim+1][iVar] = ( OmegaSM + 1 ) * ( UnitNormal[jDim] * dpStar_dU[iVar] + IntermediateState[jDim+1] * dSm_dU[iVar] ); Jacobian_j[jDim+1][0] += OmegaSM * Velocity_j[jDim] * ProjVelocity_j; Jacobian_j[jDim+1][jDim+1] += OmegaSM * (sR - ProjVelocity_j); - for (auto iDim = 0u; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) Jacobian_j[jDim+1][iDim+1] -= OmegaSM * Velocity_j[jDim] * UnitNormal[iDim]; - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) Jacobian_j[jDim+1][iVar] -= OmegaSM * dPI_dU[iVar] * UnitNormal[jDim]; } /*--- Jacobian Last Row ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) Jacobian_j[nVar-1][iVar] = sM * ( dEStar_dU[iVar] + dpStar_dU[iVar] ) + ( EStar + pStar ) * dSm_dU[iVar]; } } /*--- Scale Jacobians by area (from Flux *= Area). ---*/ - for (auto iVar = 0u; iVar < nVar; iVar++) { - for (auto jVar = 0u; jVar < nVar; jVar++) { + for (iVar = 0; iVar < nVar; iVar++) { + for (jVar = 0; jVar < nVar; jVar++) { Jacobian_i[iVar][jVar] *= Area; Jacobian_j[iVar][jVar] *= Area; } From e5386aaf515bb3594eec9c13f9ee102aff4584a1 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sun, 11 Aug 2024 12:36:52 -0700 Subject: [PATCH 229/287] update tests --- TestCases/hybrid_regression.py | 6 +++--- TestCases/parallel_regression.py | 6 +++--- TestCases/parallel_regression_AD.py | 2 +- TestCases/serial_regression.py | 4 ++-- TestCases/tutorials.py | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index 686bef7e367..c893649c1dd 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -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.396962, 4.262003, -0.244219, 0.043052] + wedge.test_vals = [-1.368091, 4.302736, -0.243433, 0.042906] test_list.append(wedge) # ONERA M6 Wing @@ -121,8 +121,8 @@ def main(): cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 - cylinder_lowmach.test_vals = [-6.850130, -1.388096, -0.056036, 108.140809, 0.007988] - cylinder_lowmach.test_vals_aarch64 = [-6.850130, -1.388096, -0.056036, 108.140813, 0.007988] + cylinder_lowmach.test_vals = [-6.830996, -1.368850, -0.143956, 73.963354, 0.002457] + cylinder_lowmach.test_vals_aarch64 = [-6.830996, -1.368850, -0.143956, 73.963354, 0.002457] test_list.append(cylinder_lowmach) # 2D Poiseuille flow (body force driven with periodic inlet / outlet) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index e7184d37783..03e6fbaef47 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -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.406716, 4.253025, -0.244411, 0.043089] + wedge.test_vals = [-1.377543, 4.293870, -0.243566, 0.042930] test_list.append(wedge) # ONERA M6 Wing @@ -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.151334, -0.455927, -0.003879, 67775.000000] + ea_naca64206.test_vals = [-1.188459, -0.522783, -0.003147, 67775.000000] test_list.append(ea_naca64206) # SUPERSONIC FLOW PAST A RAMP IN A CHANNEL @@ -327,7 +327,7 @@ def main(): cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 - cylinder_lowmach.test_vals = [-6.858484, -1.396528, -1.854558, 110.033249, 0.001951] + cylinder_lowmach.test_vals = [-6.841604, -1.379532, -1.266739, 76.118218, 0.000274] test_list.append(cylinder_lowmach) # 2D Poiseuille flow (body force driven with periodic inlet / outlet) diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py index b62fed781a3..a4aa0f57252 100644 --- a/TestCases/parallel_regression_AD.py +++ b/TestCases/parallel_regression_AD.py @@ -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.182170, 2.473052, -5509000.000000, 5.551800] + ea_naca64206.test_vals = [3.127605, 2.411805, -5505700.000000, 10.591000] test_list.append(ea_naca64206) #################################### diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index eeabe7de0ef..080b41053b7 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -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.396962, 4.262003, -0.244219, 0.043052] + wedge.test_vals = [-1.368091, 4.302736, -0.243433, 0.042906] test_list.append(wedge) # ONERA M6 Wing @@ -182,7 +182,7 @@ def main(): cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 - cylinder_lowmach.test_vals = [-6.850123, -1.388088, -0.056090, 108.140176, 0.007983] + cylinder_lowmach.test_vals = [-6.830989, -1.368842, -0.143838, 73.962440, 0.002454] test_list.append(cylinder_lowmach) # 2D Poiseuille flow (body force driven with periodic inlet / outlet) diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index e2cac1f32d0..5d987f8cd9a 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -145,7 +145,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.259185, 0.045567] + tutorial_inv_wedge.test_vals = [-0.864206, 4.850246, -0.245674, 0.043209] tutorial_inv_wedge.no_restart = True test_list.append(tutorial_inv_wedge) From df7cfce592033b2c84ddb1a4fb78b7198ee28497 Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Mon, 12 Aug 2024 08:55:56 +0300 Subject: [PATCH 230/287] pre-commit fixes --- Common/src/CConfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 90c8a15d162..7c550f2a50c 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1733,7 +1733,7 @@ void CConfig::SetConfig_Options() { addDoubleArrayOption("SINE_LOAD_COEFF", 3, sineload_coeff); /*!\brief RAMP_AND_RELEASE\n DESCRIPTION: release the load after applying the ramp*/ addBoolOption("RAMP_AND_RELEASE_LOAD", RampAndRelease, false); - + /* DESCRIPTION: Evaluation frequency for Engine and Actuator disk markers. */ addUnsignedLongOption("BC_EVAL_FREQ",Bc_Eval_Freq,40); /* DESCRIPTION: Damping factor for engine inlet condition */ From eff4b7edd1761a9b7f907b834155d925f679a94e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Tue, 13 Aug 2024 16:50:24 +0200 Subject: [PATCH 231/287] Revert ASLR fix. --- .github/workflows/regression.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index af6f6c60875..2502204b64c 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -88,8 +88,6 @@ jobs: # flags: '--buildtype=debug -Denable-directdiff=true -Denable-normal=false -Dwith-omp=true -Denable-mixedprec=true -Denable-pywrapper=true -Denable-tecio=false --warnlevel=3 --werror' runs-on: ${{ inputs.runner || 'ubuntu-latest' }} steps: - - name: Reduce ASLR entropy for tsan - run: sudo sysctl -w vm.mmap_rnd_bits=28 - name: Cache Object Files uses: actions/cache@v4 with: @@ -130,8 +128,6 @@ jobs: flags: '--buildtype=debugoptimized -Denable-autodiff=true -Denable-normal=false -Dwith-mpi=disabled --warnlevel=3 --werror' runs-on: ${{ inputs.runner || 'ubuntu-latest' }} steps: - - name: Reduce ASLR entropy for asan - run: sudo sysctl -w vm.mmap_rnd_bits=28 - name: Cache Object Files uses: actions/cache@v4 with: @@ -229,8 +225,6 @@ jobs: matrix: testscript: ['hybrid_regression.py', 'hybrid_regression_AD.py'] steps: - - name: Reduce ASLR entropy for tsan - run: sudo sysctl -w vm.mmap_rnd_bits=28 - name: Pre Cleanup uses: docker://ghcr.io/su2code/su2/test-su2-tsan:240320-1536 with: @@ -276,8 +270,6 @@ jobs: matrix: testscript: ['serial_regression.py', 'serial_regression_AD.py'] steps: - - name: Reduce ASLR entropy for asan - run: sudo sysctl -w vm.mmap_rnd_bits=28 - name: Pre Cleanup uses: docker://ghcr.io/su2code/su2/test-su2-asan:240320-1536 with: From fe95eef6527d34e93a6513e5e14646f4eb81d4d3 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 14 Aug 2024 16:13:47 +0200 Subject: [PATCH 232/287] Cleanup MP implementation initial commit --- SU2_CFD/include/interfaces/CInterface.hpp | 40 +++++++++++------------ SU2_CFD/src/drivers/CMultizoneDriver.cpp | 15 ++++----- SU2_CFD/src/interfaces/CInterface.cpp | 11 +------ 3 files changed, 27 insertions(+), 39 deletions(-) diff --git a/SU2_CFD/include/interfaces/CInterface.hpp b/SU2_CFD/include/interfaces/CInterface.hpp index 9ec0599827e..fcc4600b5aa 100644 --- a/SU2_CFD/include/interfaces/CInterface.hpp +++ b/SU2_CFD/include/interfaces/CInterface.hpp @@ -159,14 +159,14 @@ class CInterface { const CConfig *target_config, unsigned long Marker_Target, unsigned long Vertex_Target, unsigned long Point_Target) = 0; - /*! - * \brief A virtual member. - * \param[in] target_solution - Solution from the target mesh. - * \param[in] target_solution - Solution from the target mesh. - * \param[in] donor_zone - Index of the donorZone. - */ - inline virtual void SetAverageValues(CSolver *donor_solution, CSolver *target_solution, - unsigned short donorZone) { } + // /*! + // * \brief A virtual member. + // * \param[in] target_solution - Solution from the target mesh. + // * \param[in] target_solution - Solution from the target mesh. + // * \param[in] donor_zone - Index of the donorZone. + // */ + // inline virtual void SetAverageValues(CSolver *donor_solution, CSolver *target_solution, + // unsigned short donorZone) { } /*! * \brief A virtual member. @@ -185,6 +185,15 @@ class CInterface { */ inline virtual void SetSpanWiseLevels(const CConfig *donor_config, const CConfig *target_config) { } + /*! + * \brief A virtual member. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_zone - Index of the donorZone. + */ + inline virtual void SetAverageValues(CSolver *donor_solution, CSolver *target_solution, + unsigned short donorZone) { } + /*! * \brief Transfer pre-processing for the mixing plane inteface. * \param[in] donor_geometry - Geometry of the donor mesh. @@ -207,16 +216,5 @@ class CInterface { void AllgatherAverage(CSolver *donor_solution, CSolver *target_solution, CGeometry *donor_geometry, CGeometry *target_geometry, const CConfig *donor_config, const CConfig *target_config, unsigned short iMarkerInt); - - /*! - * \brief Interpolate data and scatter it into different processors, for matching meshes. - * \param[in] donor_solution - Solution from the donor mesh. - * \param[in] target_solution - Solution from the target mesh. - * \param[in] donor_geometry - Geometry of the donor mesh. - * \param[in] target_geometry - Geometry of the target mesh. - * \param[in] donor_config - Definition of the problem at the donor mesh. - * \param[in] target_config - Definition of the problem at the target mesh. - */ - void GatherAverageValues(CSolver *donor_solution, CSolver *target_solution, unsigned short donorZone); - -}; + +}; \ No newline at end of file diff --git a/SU2_CFD/src/drivers/CMultizoneDriver.cpp b/SU2_CFD/src/drivers/CMultizoneDriver.cpp index 641307e7a19..607e1d989ee 100644 --- a/SU2_CFD/src/drivers/CMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CMultizoneDriver.cpp @@ -586,19 +586,18 @@ bool CMultizoneDriver::TransferData(unsigned short donorZone, unsigned short tar { const auto nMarkerInt = config_container[donorZone]->GetnMarker_MixingPlaneInterface() / 2; - /*--- Transfer the average value from the donorZone to the targetZone ---*/ + /*--- Transfer the average value from the donorZone to the targetZone ---*/ for (auto iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++) { interface_container[donorZone][targetZone]->AllgatherAverage(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL],solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], geometry_container[donorZone][INST_0][MESH_0],geometry_container[targetZone][INST_0][MESH_0], config_container[donorZone], config_container[targetZone], iMarkerInt ); } - for (donorZone = 0; donorZone < nZone; donorZone++) { - if (interface_types[donorZone][targetZone]==MIXING_PLANE) { - interface_container[donorZone][targetZone]->GatherAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL],solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], donorZone); - geometry_container[targetZone][INST_0][MESH_0]->SetAvgTurboGeoValues(config_container[iZone],geometry_container[iZone][INST_0][MESH_0], iZone); - } - } + /*--- Set average value donorZone->targetZone ---*/ + interface_container[donorZone][targetZone]->SetAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL],solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], donorZone); + + /*--- Set average geometrical properties FROM donorZone IN targetZone ---*/ + geometry_container[targetZone][INST_0][MESH_0]->SetAvgTurboGeoValues(config_container[iZone],geometry_container[iZone][INST_0][MESH_0], iZone); break; } @@ -620,7 +619,7 @@ bool CMultizoneDriver::TransferData(unsigned short donorZone, unsigned short tar void CMultizoneDriver::SetTurboPerformance() { for (auto donorZone = 1u; donorZone < nZone; donorZone++) { - interface_container[donorZone][ZONE_0]->GatherAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL], + interface_container[donorZone][ZONE_0]->SetAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL], solver_container[ZONE_0][INST_0][MESH_0][FLOW_SOL], donorZone); } diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index 050c948bc1f..d79c2d316d3 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -286,7 +286,7 @@ void CInterface::PreprocessAverage(CGeometry *donor_geometry, CGeometry *target_ for(iSpan = 1; iSpan SpanValuesDonor[jSpan]){ @@ -636,12 +636,3 @@ void CInterface::AllgatherAverage(CSolver *donor_solution, CSolver *target_solut } - -void CInterface::GatherAverageValues(CSolver *donor_solution, CSolver *target_solution, unsigned short donorZone){ - - - /*--- here we made the strong assumption that the mesh zone order - * follows the same order of the turbomachinery markers ---*/ - SetAverageValues(donor_solution, target_solution, donorZone); - -} From da83afd707a6ab34396a5704eea75bcadf57c15f Mon Sep 17 00:00:00 2001 From: BerkeCan97 <97515807+BerkeCan97@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:08:01 +0300 Subject: [PATCH 233/287] Update Common/src/CConfig.cpp Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- Common/src/CConfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index b29ee63f910..9bc1613edeb 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1735,7 +1735,7 @@ void CConfig::SetConfig_Options() { addBoolOption("RAMP_AND_RELEASE_LOAD", RampAndRelease, false); /* DESCRIPTION: Evaluation frequency for Engine and Actuator disk markers. */ - addUnsignedLongOption("BC_EVAL_FREQ",Bc_Eval_Freq,40); + addUnsignedLongOption("BC_EVAL_FREQ", Bc_Eval_Freq, 40); /* DESCRIPTION: Damping factor for engine inlet condition */ addDoubleOption("DAMP_ENGINE_INFLOW", Damp_Engine_Inflow, 0.95); /* DESCRIPTION: Damping factor for engine exhaust condition */ From 07e11348ae31ba8c75d0e215c46a830b4ea1067f Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 26 Aug 2024 10:49:19 +0200 Subject: [PATCH 234/287] Removed solid-to-solid CHT regression test from TestCases --- .../solid_solid_contact_resistance/fluid.cfg | 55 ------------------- .../solid_solid_contact_resistance/master.cfg | 32 ----------- .../solid_1.cfg | 47 ---------------- .../solid_2.cfg | 41 -------------- 4 files changed, 175 deletions(-) delete mode 100644 TestCases/coupled_cht/solid_solid_contact_resistance/fluid.cfg delete mode 100644 TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg delete mode 100644 TestCases/coupled_cht/solid_solid_contact_resistance/solid_1.cfg delete mode 100644 TestCases/coupled_cht/solid_solid_contact_resistance/solid_2.cfg diff --git a/TestCases/coupled_cht/solid_solid_contact_resistance/fluid.cfg b/TestCases/coupled_cht/solid_solid_contact_resistance/fluid.cfg deleted file mode 100644 index f9a42d6a4c5..00000000000 --- a/TestCases/coupled_cht/solid_solid_contact_resistance/fluid.cfg +++ /dev/null @@ -1,55 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% SU2 configuration file % -% Case description: solid-to-solid and solid-to-fluid conjugate heat transfer % -% with contact resistance. % -% Author: E.C.Bunschoten % -% Date: August 6, 2024 % -% File Version 8.0.1 "Harrier" % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% - -SOLVER= INC_NAVIER_STOKES -INC_ENERGY_EQUATION= YES - -% ------------------- INCOMPRESSIBLE FREE-STREAM DEFINITION -------------------% - -FREESTREAM_TEMPERATURE= 300 - -INC_VELOCITY_INIT=(0.1, 0.0, 0.0) -FLUID_MODEL=INC_IDEAL_GAS - -VISCOSITY_MODEL=CONSTANT_VISCOSITY -MU_CONSTANT=1e-5 - -REF_DIMENSIONALIZATION= DIMENSIONAL -INC_NONDIM= DIMENSIONAL - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% -INC_INLET_TYPE=VELOCITY_INLET -INC_OUTLET_TYPE=PRESSURE_OUTLET -MARKER_SYM= ( side_3 ) -MARKER_INLET= ( inlet, 300, 0.1, 1.0, 0.0, 0.0 ) -MARKER_OUTLET= ( outlet, 0.0) -MARKER_INTERNAL= (fluid) -% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% - -CFL_NUMBER= 100 - -% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% -% -CONV_NUM_METHOD_FLOW= FDS -MUSCL_FLOW= YES - -% --------------------------- CONVERGENCE PARAMETERS --------------------------% - -CONV_RESIDUAL_MINVAL= -12 - -% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% -% -MESH_FILENAME= fluid_mesh.su2 -CONV_FILENAME= history_fluid_3 -TABULAR_FORMAT= CSV \ No newline at end of file diff --git a/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg b/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg deleted file mode 100644 index 26e48176b16..00000000000 --- a/TestCases/coupled_cht/solid_solid_contact_resistance/master.cfg +++ /dev/null @@ -1,32 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% SU2 configuration file % -% Case description: solid-to-solid and solid-to-fluid conjugate heat transfer % -% with contact resistance. % -% Author: E.C.Bunschoten % -% Date: August 6, 2024 % -% File Version 8.0.1 "Harrier" % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -SOLVER= MULTIPHYSICS -MATH_PROBLEM= DIRECT -MULTIZONE_MESH=NO -CONFIG_LIST = (solid_1.cfg, solid_2.cfg, fluid.cfg) -MARKER_ZONE_INTERFACE= (cht_interface_1_2, cht_interface_2_1, \ - cht_interface_1_3, cht_interface_3_1, \ - cht_interface_2_3, cht_interface_3_2) -MARKER_CHT_INTERFACE= (cht_interface_1_2, cht_interface_2_1, \ - cht_interface_1_3, cht_interface_3_1, \ - cht_interface_2_3, cht_interface_3_2) -CHT_INTERFACE_CONTACT_RESISTANCE = (1e-5, 0, 0) - -CHT_COUPLING_METHOD= DIRECT_TEMPERATURE_ROBIN_HEATFLUX -TIME_DOMAIN = NO -OUTER_ITER = 2000 -WRT_ZONE_HIST=YES - -OUTPUT_FILES=(RESTART, PARAVIEW_MULTIBLOCK) -SCREEN_OUTPUT=(OUTER_ITER, RMS_PRESSURE[2],RMS_VELOCITY-X[2],RMS_TEMPERATURE[0],RMS_TEMPERATURE[1]) \ No newline at end of file diff --git a/TestCases/coupled_cht/solid_solid_contact_resistance/solid_1.cfg b/TestCases/coupled_cht/solid_solid_contact_resistance/solid_1.cfg deleted file mode 100644 index 06f3d0561ef..00000000000 --- a/TestCases/coupled_cht/solid_solid_contact_resistance/solid_1.cfg +++ /dev/null @@ -1,47 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% SU2 configuration file % -% Case description: solid-to-solid and solid-to-fluid conjugate heat transfer % -% with contact resistance. % -% Author: E.C.Bunschoten % -% Date: August 6, 2024 % -% File Version 8.0.1 "Harrier" % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -SOLVER= HEAT_EQUATION - - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% -MARKER_ISOTHERMAL= ( isothermal_wall_1, 500.0 ) -MARKER_SYM=(side_1) -MARKER_MONITORING= ( NONE ) -MARKER_INTERNAL=(solid_1) - -% ---------------- (SOLIDS) CONDUCTION CONDITION DEFINITION -------------------% - -% We should keep the dimensionalization of the coupled flow solver -INC_NONDIM= DIMENSIONAL -FREESTREAM_TEMPERATURE= 300.0 - -% Properties of stainless steel -MATERIAL_DENSITY= 8935 -SPECIFIC_HEAT_CP= 3850 -THERMAL_CONDUCTIVITY_CONSTANT=26 - -% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% - -CFL_NUMBER= 100.0 - - -% -------------------- HEAT NUMERICAL METHOD DEFINITION -----------------------% - -TIME_DISCRE_HEAT= EULER_IMPLICIT - -% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% -TABULAR_FORMAT= CSV -CONV_FILENAME= history_solid_1 -MESH_FILENAME=solid_mesh_1.su2 \ No newline at end of file diff --git a/TestCases/coupled_cht/solid_solid_contact_resistance/solid_2.cfg b/TestCases/coupled_cht/solid_solid_contact_resistance/solid_2.cfg deleted file mode 100644 index 213d2520a4e..00000000000 --- a/TestCases/coupled_cht/solid_solid_contact_resistance/solid_2.cfg +++ /dev/null @@ -1,41 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% SU2 configuration file % -% Case description: solid-to-solid and solid-to-fluid conjugate heat transfer % -% with contact resistance. % -% Author: E.C.Bunschoten % -% Date: August 6, 2024 % -% File Version 8.0.1 "Harrier" % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -SOLVER= HEAT_EQUATION - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% -MARKER_ISOTHERMAL= ( isothermal_wall_2, 300.0 ) -MARKER_SYM=(side_2) -MARKER_INTERNAL=(solid_2) - -% ---------------- (SOLIDS) CONDUCTION CONDITION DEFINITION -------------------% - -% We should keep the dimensionalization of the coupled flow solver -INC_NONDIM= DIMENSIONAL -FREESTREAM_TEMPERATURE= 300.0 - -MATERIAL_DENSITY= 8000 -SPECIFIC_HEAT_CP= 4420 -THERMAL_CONDUCTIVITY_CONSTANT= 61 - -% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% - -CFL_NUMBER= 100.0 - -% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% - -MESH_FILENAME= solid_mesh_2.su2 -TABULAR_FORMAT= CSV -CONV_FILENAME= history_solid_2 - From d560eb67d006254a3b01416f02470341cd8e88c4 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 26 Aug 2024 10:49:36 +0200 Subject: [PATCH 235/287] Updated tutorials and testcases branch --- .github/workflows/regression.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index f28e5a2cf6f..2502204b64c 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -209,7 +209,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t feature_solid-solid_cht -c feature_solid-solid_cht -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: From b3b31fb7be8a61830958c5000b573311327278c2 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 26 Aug 2024 10:50:09 +0200 Subject: [PATCH 236/287] Removed boolean for the application of contact resistance --- Common/include/CConfig.hpp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 558cffefe07..615959fdd38 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -591,7 +591,7 @@ class CConfig { bool EulerPersson; /*!< \brief Boolean to determine whether this is an Euler simulation with Persson shock capturing. */ bool FSI_Problem = false,/*!< \brief Boolean to determine whether the simulation is FSI or not. */ Multizone_Problem; /*!< \brief Boolean to determine whether we are solving a multizone problem. */ - bool ContactResistance = false; /*!< \brief Apply contact resistance for conjugate heat transfer. */ + //bool ContactResistance = false; /*!< \brief Apply contact resistance for conjugate heat transfer. */ unsigned short nID_DV; /*!< \brief ID for the region of FEM when computed using direct differentiation. */ bool AD_Mode; /*!< \brief Algorithmic Differentiation support. */ @@ -3665,19 +3665,12 @@ class CConfig { */ unsigned short GetMarker_n_ZoneInterface(void) const { return nMarker_ZoneInterface; } - /*! - * \brief Contact resistance values are supplied for CHT interfaces. - * \param[in] void - * \return Application of contact resistance. - */ - bool ApplyContactResistance(void) const { return ContactResistance; } - /*! * \brief Get the contact resistance value of a specified interface. * \param[in] val_interface interface index. - * \return Contact resistance value. + * \return Contact resistance value (zero by default). */ - su2double GetContactResistance(unsigned short val_interface) const { return CHT_ContactResistance[val_interface]; } + su2double GetContactResistance(unsigned short val_interface) const { return (nMarker_ContactResistance > 0) ? CHT_ContactResistance[val_interface] : 0.0; } /*! * \brief Get the DV information for a marker val_marker. From 64e29b80dcda2c336e2a6b0a562d3efcf80ac1ce Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 26 Aug 2024 10:51:05 +0200 Subject: [PATCH 237/287] Constant contact resistance is applied to all CHT interfaces if a single value is provided --- Common/src/CConfig.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 952edaf72d3..3857e73523f 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -3564,12 +3564,20 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i /*--- Check correctness and consistency of contact resistance options. ---*/ if (nMarker_ContactResistance > 0) { - ContactResistance = true; - if ((nMarker_CHTInterface/2) != nMarker_ContactResistance) - SU2_MPI::Error(string("Number of CHT interfaces does not match number of contact resistances. \n"), CURRENT_FUNCTION); + + /*--- Set constant contact resistance across CHT interfaces if a single value is provided. ---*/ + if (nMarker_ContactResistance == 1) { + auto val_CHTInterface = CHT_ContactResistance[0]; + delete [] CHT_ContactResistance; + CHT_ContactResistance = new su2double[nMarker_CHTInterface]; + for (auto iCHTMarker=0u; iCHTMarker < nMarker_CHTInterface; iCHTMarker++) + CHT_ContactResistance[iCHTMarker] = val_CHTInterface; + }else if((nMarker_CHTInterface/2) != nMarker_ContactResistance){ + SU2_MPI::Error("Number of CHT interfaces does not match number of contact resistances.", CURRENT_FUNCTION); + } for (auto iCHTMarker=0u; iCHTMarker < nMarker_ContactResistance; iCHTMarker++){ if (CHT_ContactResistance[iCHTMarker] < 0) - SU2_MPI::Error(string("Contact resistance value should be positive. \n"), CURRENT_FUNCTION); + SU2_MPI::Error("Contact resistance value should be positive.", CURRENT_FUNCTION); } } From c8db996b7acab6f382be848fe04961c21018c0fc Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 26 Aug 2024 10:51:30 +0200 Subject: [PATCH 238/287] Removed duplicate code --- SU2_CFD/src/drivers/CDriver.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index 3c1e523e880..65a25b6c9a2 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -2507,14 +2507,6 @@ void CDriver::InitializeInterface(CConfig **config, CSolver***** solver, CGeomet interface_type = heat_target? CONJUGATE_HEAT_WEAKLY_FS : CONJUGATE_HEAT_WEAKLY_SF; else interface_type = NO_TRANSFER; - - if (config[fluidZone]->GetEnergy_Equation() || (config[fluidZone]->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE) - || (config[fluidZone]->GetKind_FluidModel() == ENUM_FLUIDMODEL::FLUID_FLAMELET)) - interface_type = heat_target? CONJUGATE_HEAT_FS : CONJUGATE_HEAT_SF; - else if (config[fluidZone]->GetWeakly_Coupled_Heat()) - interface_type = heat_target? CONJUGATE_HEAT_WEAKLY_FS : CONJUGATE_HEAT_WEAKLY_SF; - else - interface_type = NO_TRANSFER; } if (interface_type != NO_TRANSFER) { From 26d07764730a4404fb6d9cb855d47ac6551261e6 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 26 Aug 2024 10:52:41 +0200 Subject: [PATCH 239/287] Removed check for the use of contact resistance --- SU2_CFD/src/interfaces/CInterface.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index 4b7a30aa618..8deeaaa4ae0 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -108,8 +108,11 @@ void CInterface::BroadcastData(const CInterpolator& interpolator, su2activematrix sendDonorVar(nLocalVertexDonor, nVar); if (markDonor >= 0) { - if (donor_config->ApplyContactResistance()) - SetContactResistance(donor_config->GetContactResistance(iMarkerInt)); + + /*--- Apply contact resistance if specified. ---*/ + + SetContactResistance(donor_config->GetContactResistance(iMarkerInt)); + for (auto iVertex = 0ul, iSend = 0ul; iVertex < donor_geometry->GetnVertex(markDonor); iVertex++) { const auto iPoint = donor_geometry->vertex[markDonor][iVertex]->GetNode(); From ed6acbf088007ed8b99f29bde2464e5b48f9b222 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 26 Aug 2024 10:53:23 +0200 Subject: [PATCH 240/287] Moved solid-solid CHT regression test from TestCases to Tutorials --- TestCases/parallel_regression.py | 9 --------- TestCases/tutorials.py | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 38193eb3757..0137b08806c 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1339,15 +1339,6 @@ def main(): sp_pinArray_3d_cht_mf_hf_tp.multizone = True test_list.append(sp_pinArray_3d_cht_mf_hf_tp) - # Solid-to-solid and solid-to-fluid CHT with contact resistance - cht_CR = TestCase('cht_solid_solid') - cht_CR.cfg_dir = "coupled_cht/solid_solid_contact_resistance" - cht_CR.cfg_file = "master.cfg" - cht_CR.test_iter = 100 - cht_CR.test_vals = [ -8.899450, -9.378702, -7.378797, -7.246496] - cht_CR.multizone = True - test_list.append(cht_CR) - ########################## ### Python wrapper ### diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index 5d987f8cd9a..50e7ed9cac3 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -64,6 +64,15 @@ def main(): cht_incompressible.multizone = True test_list.append(cht_incompressible) + # Solid-to-solid and solid-to-fluid CHT with contact resistance + cht_CR = TestCase('cht_solid_solid') + cht_CR.cfg_dir = "../Tutorials/multiphysics/contact_resistance_cht" + cht_CR.cfg_file = "master.cfg" + cht_CR.test_iter = 100 + cht_CR.test_vals = [ -8.899450, -9.378702, -7.378797, -7.246496] + cht_CR.multizone = True + test_list.append(cht_CR) + ### Incompressible Flow # 2D pin case massflow periodic with heatflux BC and prescribed extracted outlet heat From 2dee186d8299aa4a4d861f32b31aac25e233bd45 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Mon, 26 Aug 2024 11:28:53 +0200 Subject: [PATCH 241/287] Updated tutorials branch --- .github/workflows/regression.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 2502204b64c..cd916ffcfe5 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -209,7 +209,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t feature_solid-solid_cht -c develop -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: From ab5cfb798706a0fe94f71cde91a1f386010d0105 Mon Sep 17 00:00:00 2001 From: Cristopher Morales <98025159+Cristopher-Morales@users.noreply.github.com> Date: Wed, 28 Aug 2024 10:11:13 +0200 Subject: [PATCH 242/287] small fix (#2345) --- Common/src/CConfig.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index ec4a555d6af..ef78d7ac095 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -3920,6 +3920,13 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i SU2_MPI::Error("The use of FLUID_MIXTURE requires the INC_DENSITY_MODEL option to be VARIABLE", CURRENT_FUNCTION); } + /*--- Check whether the Kind scalar model used is correct, in the case of FLUID_MIXTURE the kind scalar model must + be SPECIES_TRANSPORT. Otherwise, if the scalar model is NONE, the species transport equations will not be solved. + --- */ + if (Kind_Species_Model != SPECIES_MODEL::SPECIES_TRANSPORT) { + SU2_MPI::Error("The use of FLUID_MIXTURE requires the KIND_SCALAR_MODEL option to be SPECIES_TRANSPORT", + CURRENT_FUNCTION); + } switch (Kind_ViscosityModel) { case VISCOSITYMODEL::CONSTANT: From a78dccb9f11657b5f1b2f657a50476ff4686cce1 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 29 Aug 2024 11:53:06 +0200 Subject: [PATCH 243/287] Pulled develop --- TestCases/tutorials.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index 50e7ed9cac3..6021d7434d2 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -68,7 +68,7 @@ def main(): cht_CR = TestCase('cht_solid_solid') cht_CR.cfg_dir = "../Tutorials/multiphysics/contact_resistance_cht" cht_CR.cfg_file = "master.cfg" - cht_CR.test_iter = 100 + cht_CR.test_iter = 99 cht_CR.test_vals = [ -8.899450, -9.378702, -7.378797, -7.246496] cht_CR.multizone = True test_list.append(cht_CR) From 137ebf77dc5fe028e5671cd7be03801e7b979acd Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 29 Aug 2024 12:45:06 +0200 Subject: [PATCH 244/287] Updated residual values --- TestCases/tutorials.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index 6021d7434d2..b4c8534d8a1 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -68,8 +68,8 @@ def main(): cht_CR = TestCase('cht_solid_solid') cht_CR.cfg_dir = "../Tutorials/multiphysics/contact_resistance_cht" cht_CR.cfg_file = "master.cfg" - cht_CR.test_iter = 99 - cht_CR.test_vals = [ -8.899450, -9.378702, -7.378797, -7.246496] + cht_CR.test_iter = 80 + cht_CR.test_vals = [ -8.857438, -9.377593, -10.097769, -2.122358] cht_CR.multizone = True test_list.append(cht_CR) From 7fc46b6b069edc77d842cd64d657cc893cd83839 Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 29 Aug 2024 14:03:13 +0200 Subject: [PATCH 245/287] Updated SS-CHT tutorial regression test residual values --- TestCases/tutorials.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index b4c8534d8a1..bd99ff6e6c6 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.867150, -9.366438, -10.286384, -2.229279] cht_CR.multizone = True test_list.append(cht_CR) From 55d4d1679aad1ff4e5daf0a9a2f16b9e324e8010 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Thu, 29 Aug 2024 14:05:04 +0200 Subject: [PATCH 246/287] Modification of some comments --- SU2_CFD/src/drivers/CMultizoneDriver.cpp | 1 + SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/SU2_CFD/src/drivers/CMultizoneDriver.cpp b/SU2_CFD/src/drivers/CMultizoneDriver.cpp index 607e1d989ee..2551427734d 100644 --- a/SU2_CFD/src/drivers/CMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CMultizoneDriver.cpp @@ -587,6 +587,7 @@ bool CMultizoneDriver::TransferData(unsigned short donorZone, unsigned short tar const auto nMarkerInt = config_container[donorZone]->GetnMarker_MixingPlaneInterface() / 2; /*--- Transfer the average value from the donorZone to the targetZone ---*/ + /*--- Loops over the mixing planes defined in the config file to find the correct mixing plane for the donor-target combination ---*/ for (auto iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++) { interface_container[donorZone][targetZone]->AllgatherAverage(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL],solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], geometry_container[donorZone][INST_0][MESH_0],geometry_container[targetZone][INST_0][MESH_0], diff --git a/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp b/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp index f35dc776f9e..a3579422c72 100644 --- a/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp +++ b/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp @@ -118,7 +118,7 @@ void CMixingPlaneInterface::SetAverageValues(CSolver *donor_solution, CSolver *t unsigned short iSpan; for(iSpan = 0; iSpanSetDensityIn(donor_solution->GetDensityIn(donorZone, iSpan), donorZone, iSpan); target_solution->SetPressureIn(donor_solution->GetPressureIn(donorZone, iSpan), donorZone, iSpan); target_solution->SetTurboVelocityIn(donor_solution->GetTurboVelocityIn(donorZone, iSpan), donorZone, iSpan); @@ -135,4 +135,5 @@ void CMixingPlaneInterface::SetAverageValues(CSolver *donor_solution, CSolver *t target_solution->SetNuOut(donor_solution->GetNuOut(donorZone, iSpan), donorZone, iSpan); } + if (rank == MASTER_NODE) cout << "break" << endl; } From b02c5f8ce98d6cb8bae6b8983340acb44b64009a Mon Sep 17 00:00:00 2001 From: EvertBunschoten Date: Thu, 29 Aug 2024 16:50:46 +0200 Subject: [PATCH 247/287] Updated residuals according to regression test output --- TestCases/tutorials.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index bd99ff6e6c6..b4c8534d8a1 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.867150, -9.366438, -10.286384, -2.229279] + cht_CR.test_vals = [ -8.857438, -9.377593, -10.097769, -2.122358] cht_CR.multizone = True test_list.append(cht_CR) From e1eba7930945a976bd8d881fcaafa713c717af54 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 4 Sep 2024 12:29:54 +0200 Subject: [PATCH 248/287] Fixed MP bug added additional outputs --- SU2_CFD/include/output/CTurboOutput.hpp | 10 ++++++++-- SU2_CFD/src/interfaces/CInterface.cpp | 8 +++----- SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp | 1 - SU2_CFD/src/output/CFlowCompOutput.cpp | 4 ++++ SU2_CFD/src/output/CFlowOutput.cpp | 4 ++++ SU2_CFD/src/output/CTurboOutput.cpp | 11 ++++++++--- 6 files changed, 27 insertions(+), 11 deletions(-) diff --git a/SU2_CFD/include/output/CTurboOutput.hpp b/SU2_CFD/include/output/CTurboOutput.hpp index cc7e2356f07..5a1741530cd 100644 --- a/SU2_CFD/include/output/CTurboOutput.hpp +++ b/SU2_CFD/include/output/CTurboOutput.hpp @@ -87,7 +87,7 @@ class CTurbomachineryCombinedPrimitiveStates { class CTurbomachineryState { private: su2double Density, Pressure, Entropy, Enthalpy, Temperature, TotalTemperature, TotalPressure, TotalEnthalpy; - su2double AbsFlowAngle, FlowAngle, MassFlow, Rothalpy, TotalRelPressure; + su2double AbsFlowAngle, FlowAngle, MassFlow, Rothalpy, TangVelocity, TotalRelPressure; vector Velocity, RelVelocity, Mach, RelMach; su2double Area, Radius; @@ -124,6 +124,8 @@ class CTurbomachineryState { const su2double& GetRothalpy() const { return Rothalpy; } + const su2double& GetTangVelocity() const { return TangVelocity; } + const vector& GetVelocity() const { return Velocity; } const vector& GetMach() const { return Mach; } @@ -207,7 +209,7 @@ class CPropellorBladePerformance : public CTurbomachineryBladePerformance { */ class CTurbomachineryStagePerformance { protected: - su2double TotalStaticEfficiency, TotalTotalEfficiency, NormEntropyGen, TotalStaticPressureRatio, TotalTotalPressureRatio, EulerianWork; + su2double TotalStaticEfficiency, TotalTotalEfficiency, NormEntropyGen, TotalStaticPressureRatio, TotalTotalPressureRatio, EulerianWork, TotalPressureLoss, KineticEnergyLoss; CFluidModel& fluidModel; public: @@ -232,6 +234,10 @@ class CTurbomachineryStagePerformance { su2double GetTotalStaticPressureRatio() const { return TotalStaticPressureRatio; } su2double GetTotalTotalPressureRatio() const { return TotalTotalPressureRatio; } + + su2double GetTotalPressureLoss() const { return TotalPressureLoss; } + + su2double GetKineticEnergyLoss() const { return KineticEnergyLoss; } }; /*! diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index d79c2d316d3..a17caf6efc5 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -248,7 +248,7 @@ void CInterface::PreprocessAverage(CGeometry *donor_geometry, CGeometry *target_ Donor_Flag= -1; for (int iSize=0; iSize 0.0){ + if(BuffMarkerDonor[iSize] >= 0.0){ Marker_Donor = BuffMarkerDonor[iSize]; Donor_Flag = BuffDonorFlag[iSize]; break; @@ -273,8 +273,8 @@ void CInterface::PreprocessAverage(CGeometry *donor_geometry, CGeometry *target_ break; } /*--- If the tag hasn't matched any tag within the Flow markers ---*/ - Marker_Target = -1; - + Marker_Target = -1; + Target_Flag = -1; } if (Marker_Target != -1 && Marker_Donor != -1){ @@ -633,6 +633,4 @@ void CInterface::AllgatherAverage(CSolver *donor_solution, CSolver *target_solut delete [] avgNuTarget; delete [] avgKineTarget; delete [] avgOmegaTarget; - - } diff --git a/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp b/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp index a3579422c72..d1bbcf2ff0b 100644 --- a/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp +++ b/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp @@ -135,5 +135,4 @@ void CMixingPlaneInterface::SetAverageValues(CSolver *donor_solution, CSolver *t target_solution->SetNuOut(donor_solution->GetNuOut(donorZone, iSpan), donorZone, iSpan); } - if (rank == MASTER_NODE) cout << "break" << endl; } diff --git a/SU2_CFD/src/output/CFlowCompOutput.cpp b/SU2_CFD/src/output/CFlowCompOutput.cpp index 1666191e07f..8108765de02 100644 --- a/SU2_CFD/src/output/CFlowCompOutput.cpp +++ b/SU2_CFD/src/output/CFlowCompOutput.cpp @@ -604,6 +604,8 @@ void CFlowCompOutput::LoadTurboHistoryData(std::shared_ptrGetOutletState().GetMachValue()); SetHistoryOutputValue("AbsFlowAngleIn_" + tag.str(), BladePerf->GetInletState().GetAbsFlowAngle()*180/PI_NUMBER); SetHistoryOutputValue("AbsFlowAngleOut_" + tag.str(), BladePerf->GetOutletState().GetAbsFlowAngle()*180/PI_NUMBER); + SetHistoryOutputValue("KineticEnergyLoss_" + tag.str(), BladePerf->GetKineticEnergyLoss()); + SetHistoryOutputValue("TotPressureLoss_" + tag.str(), BladePerf->GetTotalPressureLoss()); } SetHistoryOutputValue("EntropyGeneration", TurboStagePerf->GetNormEntropyGen()*100); SetHistoryOutputValue("EulerianWork", TurboStagePerf->GetEulerianWork()); @@ -611,6 +613,8 @@ void CFlowCompOutput::LoadTurboHistoryData(std::shared_ptrGetTotalTotalEfficiency()*100); SetHistoryOutputValue("PressureRatioTS", TurboStagePerf->GetTotalStaticPressureRatio()); SetHistoryOutputValue("PressureRatioTT", TurboStagePerf->GetTotalTotalPressureRatio()); + SetHistoryOutputValue("KineticEnergyLoss_Stage", TurboStagePerf->GetKineticEnergyLoss()); + SetHistoryOutputValue("TotPressureLoss_Stage", TurboStagePerf->GetTotalPressureLoss()); } void CFlowCompOutput::WriteTurboSpanwisePerformance(std::shared_ptr TurboPerf, CGeometry *geometry, CConfig **config, unsigned short val_iZone) { diff --git a/SU2_CFD/src/output/CFlowOutput.cpp b/SU2_CFD/src/output/CFlowOutput.cpp index b658eb5b1a7..7c7d5632445 100644 --- a/SU2_CFD/src/output/CFlowOutput.cpp +++ b/SU2_CFD/src/output/CFlowOutput.cpp @@ -4078,6 +4078,8 @@ void CFlowOutput::AddTurboOutput(unsigned short nZone){ AddHistoryOutput("MachOut_" + tag, "MachOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Total-to-Static efficiency " + tag, HistoryFieldType::DEFAULT); AddHistoryOutput("AbsFlowAngleIn_" + tag, "AbsFlowAngleIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Absolute flow angle in " + tag, HistoryFieldType::DEFAULT); AddHistoryOutput("AbsFlowAngleOut_" + tag, "AbsFlowAngleOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Absolute flow angle out " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("KineticEnergyLoss_" + tag, "KELC_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Blade Kinetic Energy Loss Coefficient", HistoryFieldType::DEFAULT); + AddHistoryOutput("TotPressureLoss_" + tag, "TPLC_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Blade Pressure Loss Coefficient", HistoryFieldType::DEFAULT); } //Adds turbomachinery machine performance variables AddHistoryOutput("EntropyGeneration", "EntropyGen", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); @@ -4086,4 +4088,6 @@ void CFlowOutput::AddTurboOutput(unsigned short nZone){ AddHistoryOutput("TotalTotalEfficiency", "TotTotEff", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine total-to-total efficiency", HistoryFieldType::DEFAULT); AddHistoryOutput("PressureRatioTS", "PRTS", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine total-to-static pressure ratio", HistoryFieldType::DEFAULT); AddHistoryOutput("PressureRatioTT", "PRTT", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine total-to-toal pressure ratio", HistoryFieldType::DEFAULT); + AddHistoryOutput("KineticEnergyLoss_Stage", "KELC_all", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine Kinetic Energy Loss Coefficient", HistoryFieldType::DEFAULT); + AddHistoryOutput("TotPressureLoss_Stage", "TPLC_all", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine Pressure Loss Coefficient", HistoryFieldType::DEFAULT); } diff --git a/SU2_CFD/src/output/CTurboOutput.cpp b/SU2_CFD/src/output/CTurboOutput.cpp index b0e61f10e25..59430179231 100644 --- a/SU2_CFD/src/output/CTurboOutput.cpp +++ b/SU2_CFD/src/output/CTurboOutput.cpp @@ -60,7 +60,7 @@ void CTurbomachineryState::ComputeState(CFluidModel& fluidModel, const CTurbomac Pressure = primitiveState.GetPressure(); std::vector velocity = primitiveState.GetVelocity(); Velocity.assign(velocity.begin(), velocity.end()); - su2double tangVel = primitiveState.GetTangVelocity(); + TangVelocity = primitiveState.GetTangVelocity(); /*--- Compute static TD quantities ---*/ fluidModel.SetTDState_Prho(Pressure, Density); @@ -81,9 +81,9 @@ void CTurbomachineryState::ComputeState(CFluidModel& fluidModel, const CTurbomac std::for_each(Mach.begin(), Mach.end(), [&](su2double& el) { el /= soundSpeed; }); /*--- Compute relative kinematic quantities ---*/ - su2double tangVel2 = tangVel * tangVel; + su2double tangVel2 = TangVelocity * TangVelocity; RelVelocity.assign(Velocity.begin(), Velocity.end()); - RelVelocity[1] -= tangVel; + RelVelocity[1] -= TangVelocity; su2double relVel2 = GetRelVelocityValue(); FlowAngle = atan(RelVelocity[1] / RelVelocity[0]); RelMach.assign(RelVelocity.begin(), RelVelocity.end()); @@ -244,6 +244,8 @@ void CTurbomachineryStagePerformance::ComputeTurbineStagePerformance(const CTurb fluidModel.SetTDState_Ps(OutState.GetPressure(), InState.GetEntropy()); su2double enthalpyOutIs = fluidModel.GetStaticEnergy() + OutState.GetPressure() / fluidModel.GetDensity(); su2double totEnthalpyOutIs = enthalpyOutIs + 0.5 * OutState.GetVelocityValue() * OutState.GetVelocityValue(); + su2double tangVel = OutState.GetTangVelocity(); + su2double relVelOutIs2 = 2 * (OutState.GetRothalpy() - enthalpyOutIs) + tangVel * tangVel; /*--- Compute turbine stage performance ---*/ NormEntropyGen = (OutState.GetEntropy() - InState.GetEntropy()) / InState.GetEntropy(); @@ -252,6 +254,9 @@ void CTurbomachineryStagePerformance::ComputeTurbineStagePerformance(const CTurb TotalTotalEfficiency = EulerianWork / (InState.GetTotalEnthalpy() - totEnthalpyOutIs); TotalStaticPressureRatio = InState.GetTotalPressure() / OutState.GetPressure(); TotalTotalPressureRatio = InState.GetTotalPressure() / OutState.GetTotalPressure(); + TotalPressureLoss = (InState.GetTotalRelPressure() - OutState.GetTotalRelPressure()) / + (OutState.GetTotalRelPressure() - OutState.GetPressure()); + KineticEnergyLoss = 2 * (OutState.GetEnthalpy() - enthalpyOutIs) / relVelOutIs2; } void CTurbomachineryStagePerformance::ComputeCompressorStagePerformance(const CTurbomachineryState& InState, From 05f9d231bdd407d4b6c450cf88efa077bb094119 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 4 Sep 2024 14:37:35 +0200 Subject: [PATCH 249/287] Revert "Merge remote-tracking branch 'origin/feature_mz_adjoint_for_turbo' into pr/2209" This reverts commit 6b4c180b479bd34e37f9dfb21685d4ef887aaa47, reversing changes made to fd6d5cb5ef52e27ea46cec70168dfbbd602cd238. This was a big mistake! I need to remerge develop after this. --- Common/include/CConfig.hpp | 17 +- Common/include/geometry/CGeometry.hpp | 24 +- .../include/geometry/CMultiGridGeometry.hpp | 3 +- Common/include/geometry/CPhysicalGeometry.hpp | 9 +- Common/include/geometry/dual_grid/CPoint.hpp | 8 +- .../meshreader/CCGNSMeshReaderFVM.hpp | 9 +- Common/include/option_structure.hpp | 25 - Common/src/CConfig.cpp | 28 +- Common/src/geometry/CGeometry.cpp | 182 ++++-- Common/src/geometry/CMultiGridGeometry.cpp | 121 ++-- Common/src/geometry/CPhysicalGeometry.cpp | 8 +- .../src/grid_movement/CVolumetricMovement.cpp | 2 +- .../gradients/computeGradientsGreenGauss.hpp | 139 +++-- .../computeGradientsLeastSquares.hpp | 20 +- .../gradients/correctGradientsSymmetry.hpp | 146 ----- SU2_CFD/include/interfaces/CInterface.hpp | 41 +- .../include/numerics/flow/convection/hllc.hpp | 4 +- .../numerics/turbulent/turb_sources.hpp | 81 +-- SU2_CFD/include/solvers/CEulerSolver.hpp | 34 +- .../include/solvers/CFVMFlowSolverBase.hpp | 19 +- .../include/solvers/CFVMFlowSolverBase.inl | 402 +++++++++---- SU2_CFD/include/solvers/CScalarSolver.inl | 10 +- SU2_CFD/include/solvers/CSolver.hpp | 59 +- SU2_CFD/include/solvers/CSpeciesSolver.hpp | 13 +- SU2_CFD/include/solvers/CTurbSASolver.hpp | 17 +- SU2_CFD/include/solvers/CTurbSSTSolver.hpp | 17 +- SU2_CFD/include/variables/CEulerVariable.hpp | 4 +- SU2_CFD/include/variables/CVariable.hpp | 10 - SU2_CFD/src/drivers/CDriver.cpp | 44 +- SU2_CFD/src/drivers/CMultizoneDriver.cpp | 16 +- SU2_CFD/src/integration/CIntegration.cpp | 15 +- SU2_CFD/src/interfaces/CInterface.cpp | 11 +- .../src/iteration/CDiscAdjFluidIteration.cpp | 4 - SU2_CFD/src/numerics/flow/convection/fds.cpp | 2 +- SU2_CFD/src/numerics/flow/convection/hllc.cpp | 83 ++- SU2_CFD/src/numerics/flow/convection/roe.cpp | 6 +- SU2_CFD/src/solvers/CAdjEulerSolver.cpp | 10 +- SU2_CFD/src/solvers/CAdjNSSolver.cpp | 14 +- SU2_CFD/src/solvers/CAdjTurbSolver.cpp | 8 +- SU2_CFD/src/solvers/CEulerSolver.cpp | 565 +++++++++++------- SU2_CFD/src/solvers/CNEMONSSolver.cpp | 2 +- SU2_CFD/src/solvers/CRadP1Solver.cpp | 10 +- SU2_CFD/src/solvers/CSolver.cpp | 61 +- SU2_CFD/src/solvers/CSpeciesSolver.cpp | 59 +- SU2_CFD/src/solvers/CTransLMSolver.cpp | 4 +- SU2_CFD/src/solvers/CTurbSASolver.cpp | 68 ++- SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 92 ++- TestCases/TestCase.py | 2 +- .../naca0012/of_grad_cd.dat.ref | 76 +-- .../naca0012/of_grad_cd_disc.dat.ref | 76 +-- .../naca0012/of_grad_directdiff.dat.ref | 6 +- .../wedge/of_grad_combo.dat.ref | 8 +- .../disc_adj_fsi/dyn_fsi/grad_dv.opt.ref | 16 +- TestCases/disc_adj_heat/disc_adj_heat.cfg | 2 +- TestCases/euler/bluntbody/blunt.cfg | 2 +- TestCases/euler/channel/inv_channel_RK.cfg | 2 +- TestCases/euler/naca0012/inv_NACA0012_Roe.cfg | 8 +- TestCases/euler/wedge/inv_wedge_HLLC.cfg | 2 +- TestCases/fixed_cl/naca0012/inv_NACA0012.cfg | 12 +- .../lam_prem_ch4_cfd.cfg | 13 +- .../lam_prem_ch4_cht_cfd_fluid.cfg | 7 +- .../lam_prem_ch4_cht_cfd_master.cfg | 2 +- TestCases/hybrid_regression.py | 98 +-- TestCases/hybrid_regression_AD.py | 22 +- .../incomp_euler/naca0012/incomp_NACA0012.cfg | 8 +- TestCases/incomp_euler/nozzle/inv_nozzle.cfg | 6 +- .../incomp_navierstokes/sphere/sphere.cfg | 104 ---- .../chtPinArray_2d/of_grad_findiff.csv.ref | 2 +- .../chtPinArray_3d/configMaster.cfg | 2 +- .../multiple_ffd/naca0012/of_grad_cd.dat.ref | 4 +- .../naca0012/of_grad_directdiff.dat.ref | 4 +- .../navierstokes/cylinder/lam_cylinder.cfg | 2 +- .../navierstokes/flatplate/lam_flatplate.cfg | 12 +- TestCases/nicf/edge/edge_PPR.cfg | 15 +- TestCases/nicf/edge/edge_VW.cfg | 16 +- TestCases/parallel_regression.py | 238 ++++---- TestCases/parallel_regression_AD.py | 24 +- .../translating_NACA0012/config.cfg | 20 +- .../translating_NACA0012/forces_0.csv.ref | 400 ++++++------- .../forces_0.csv.ref | 400 ++++++------- ...b_SST_flatplate_compressibility_Sarkar.cfg | 150 ----- ...b_SST_flatplate_compressibility_Wilcox.cfg | 150 ----- TestCases/rotating/naca0012/rot_NACA0012.cfg | 2 +- TestCases/serial_regression.py | 178 +++--- TestCases/serial_regression_AD.py | 30 +- ...iveVenturi_mixingmodel_heatcapacity_H2.cfg | 2 +- ...Venturi_mixingmodel_heatcapacity_H2_ND.cfg | 6 +- TestCases/tutorials.py | 40 +- .../user_defined_functions/lam_flatplate.cfg | 2 +- TestCases/vandv.py | 18 +- UnitTests/SU2_CFD/gradients.cpp | 4 +- config_template.cfg | 8 +- 92 files changed, 2194 insertions(+), 2533 deletions(-) delete mode 100644 SU2_CFD/include/gradients/correctGradientsSymmetry.hpp delete mode 100644 TestCases/incomp_navierstokes/sphere/sphere.cfg delete mode 100644 TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg delete mode 100644 TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 474deacf6a5..0bec4282207 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -884,8 +884,6 @@ class CConfig { ReThetaT_FreeStream, /*!< \brief Freestream Transition Momentum Thickness Reynolds Number (for LM transition model) of the fluid. */ NuFactor_FreeStream, /*!< \brief Ratio of turbulent to laminar viscosity. */ NuFactor_Engine, /*!< \brief Ratio of turbulent to laminar viscosity at the engine. */ - KFactor_LowerLimit, /*!< \Non dimensional coefficient for lower limit of K in SST model. */ - OmegaFactor_LowerLimit, /*!< \Non dimensional coefficient for lower limit of omega in SST model. */ SecondaryFlow_ActDisk, /*!< \brief Ratio of turbulent to laminar viscosity at the actuator disk. */ Initial_BCThrust, /*!< \brief Ratio of turbulent to laminar viscosity at the actuator disk. */ Pressure_FreeStream, /*!< \brief Total pressure of the fluid. */ @@ -2016,18 +2014,6 @@ class CConfig { */ su2double GetNuFactor_FreeStream(void) const { return NuFactor_FreeStream; } - /*! - * \brief Get the k constant factor define a lower limit by multiplication with values in SST turbulence model. - * \return Non-dimensionalized freestream intensity. - */ - su2double GetKFactor_LowerLimit(void) const { return KFactor_LowerLimit; } - - /*! - * \brief Get the w constant factor define a lower limit by multiplication with values in SST turbulencemodel. - * \return Non-dimensionalized freestream intensity. - */ - su2double GetOmegaFactor_LowerLimit(void) const { return OmegaFactor_LowerLimit; } - /*! * \brief Get the value of the non-dimensionalized engine turbulence intensity. * \return Non-dimensionalized engine intensity. @@ -4348,7 +4334,8 @@ class CConfig { array GetNewtonKrylovDblParam(void) const { return NK_DblParam; } /*! - * \brief Returns the Roe kappa (multipler of the dissipation term). + * \brief Get the relaxation coefficient of the linear solver for the implicit formulation. + * \return relaxation coefficient of the linear solver for the implicit formulation. */ su2double GetRoe_Kappa(void) const { return Roe_Kappa; } diff --git a/Common/include/geometry/CGeometry.hpp b/Common/include/geometry/CGeometry.hpp index 015aaf1fdc2..582679ca6af 100644 --- a/Common/include/geometry/CGeometry.hpp +++ b/Common/include/geometry/CGeometry.hpp @@ -240,10 +240,8 @@ class CGeometry { unsigned long* nVertex{nullptr}; /*!< \brief Number of vertex for each marker. */ unsigned long* nElem_Bound{nullptr}; /*!< \brief Number of elements of the boundary. */ string* Tag_to_Marker{nullptr}; /*!< \brief Names of boundary markers. */ - - /*!< \brief Corrected normals on nodes with shared symmetry markers. */ - vector>> symmetryNormals; - + vector + bound_is_straight; /*!< \brief Bool if boundary-marker is straight(2D)/plane(3D) for each local marker. */ vector SurfaceAreaCfgFile; /*!< \brief Total Surface area for all markers. */ /*--- Partitioning-specific variables ---*/ @@ -821,12 +819,6 @@ class CGeometry { */ inline virtual void SetBoundControlVolume(const CConfig* config, unsigned short action) {} - /*! - * \brief Computes modified normals at intersecting symmetry planes. - * \param[in] config - Definition of the particular problem. - */ - void ComputeModifiedSymmetryNormals(const CConfig* config); - /*! * \brief A virtual member. * \param[in] config_filename - Name of the file where the tecplot information is going to be stored. @@ -944,10 +936,9 @@ class CGeometry { /*! * \brief A virtual member. * \param[in] fine_grid - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. * \param[in] action - Allocate or not the new elements. */ - inline virtual void SetBoundControlVolume(const CGeometry* fine_grid, const CConfig* config, unsigned short action) {} + inline virtual void SetBoundControlVolume(const CGeometry* fine_grid, unsigned short action) {} /*! * \brief A virtual member. @@ -1014,6 +1005,15 @@ class CGeometry { */ su2double GetSurfaceArea(const CConfig* config, unsigned short val_marker) const; + /*! + * \brief Check if a boundary is straight(2D) / plane(3D) for EULER_WALL and SYMMETRY_PLANE + * only and store the information in bound_is_straight. For all other boundary types + * this will return false and could therfore be wrong. Used ultimately for BC_Slip_Wall. + * \param[in] config - Definition of the particular problem. + * \param[in] print_on_screen - Boolean whether to print result on screen. + */ + void ComputeSurf_Straightness(CConfig* config, bool print_on_screen); + /*! * \brief Find and store all vertices on a sharp corner in the geometry. * \param[in] config - Definition of the particular problem. diff --git a/Common/include/geometry/CMultiGridGeometry.hpp b/Common/include/geometry/CMultiGridGeometry.hpp index 541aaa88d6d..1a7f7f9ab58 100644 --- a/Common/include/geometry/CMultiGridGeometry.hpp +++ b/Common/include/geometry/CMultiGridGeometry.hpp @@ -104,10 +104,9 @@ class CMultiGridGeometry final : public CGeometry { /*! * \brief Set boundary vertex structure of the agglomerated control volume. * \param[in] fine_grid - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. * \param[in] action - Allocate or not the new elements. */ - void SetBoundControlVolume(const CGeometry* fine_grid, const CConfig* config, unsigned short action) override; + void SetBoundControlVolume(const CGeometry* fine_grid, unsigned short action) override; /*! * \brief Set a representative coordinates of the agglomerated control volume. diff --git a/Common/include/geometry/CPhysicalGeometry.hpp b/Common/include/geometry/CPhysicalGeometry.hpp index 070bf015ab8..10e781cb85e 100644 --- a/Common/include/geometry/CPhysicalGeometry.hpp +++ b/Common/include/geometry/CPhysicalGeometry.hpp @@ -208,13 +208,10 @@ class CPhysicalGeometry final : public CGeometry { * \brief Routine to launch non-blocking sends and recvs amongst all processors. * \param[in] bufSend - Buffer of data to be sent. * \param[in] nElemSend - Array containing the number of elements to send to other processors in cumulative storage - * format. - * \param[in] sendReq - Array of MPI send requests. - * \param[in] bufRecv - Buffer of data to be received. + * format. \param[in] sendReq - Array of MPI send requests. \param[in] bufRecv - Buffer of data to be received. * \param[in] nElemSend - Array containing the number of elements to receive from other processors in cumulative - * storage format. - * \param[in] sendReq - Array of MPI recv requests. - * \param[in] countPerElem - Pieces of data per element communicated. + * storage format. \param[in] sendReq - Array of MPI recv requests. \param[in] countPerElem - Pieces of data per + * element communicated. */ void InitiateCommsAll(void* bufSend, const int* nElemSend, SU2_MPI::Request* sendReq, void* bufRecv, const int* nElemRecv, SU2_MPI::Request* recvReq, unsigned short countPerElem, diff --git a/Common/include/geometry/dual_grid/CPoint.hpp b/Common/include/geometry/dual_grid/CPoint.hpp index c297b1b5df9..9c73fdeaa9a 100644 --- a/Common/include/geometry/dual_grid/CPoint.hpp +++ b/Common/include/geometry/dual_grid/CPoint.hpp @@ -314,8 +314,10 @@ class CPoint { * \return Index of the vertex. */ inline long GetVertex(unsigned long iPoint, unsigned long iMarker) const { - if (Boundary(iPoint)) return Vertex[iPoint][iMarker]; - return -1; + if (Boundary(iPoint)) + return Vertex[iPoint][iMarker]; + else + return -1; } /*! @@ -367,7 +369,7 @@ class CPoint { inline bool GetPhysicalBoundary(unsigned long iPoint) const { return PhysicalBoundary(iPoint); } /*! - * \brief Set if a point belong to the solid wall boundary. + * \brief Set if a point belong to the boundary. * \param[in] iPoint - Index of the point. * \param[in] boundary - TRUE if the point belong to the physical boundary; otherwise FALSE. */ diff --git a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp index 3b072222d41..7ef5ef88206 100644 --- a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp @@ -121,13 +121,10 @@ class CCGNSMeshReaderFVM : public CMeshReaderFVM { * \brief Routine to launch non-blocking sends and recvs amongst all processors. * \param[in] bufSend - Buffer of data to be sent. * \param[in] nElemSend - Array containing the number of elements to send to other processors in cumulative storage - * format. - * \param[in] sendReq - Array of MPI send requests. - * \param[in] bufRecv - Buffer of data to be received. + * format. \param[in] sendReq - Array of MPI send requests. \param[in] bufRecv - Buffer of data to be received. * \param[in] nElemSend - Array containing the number of elements to receive from other processors in cumulative - * storage format. - * \param[in] sendReq - Array of MPI recv requests. - * \param[in] countPerElem - Pieces of data per element communicated. + * storage format. \param[in] sendReq - Array of MPI recv requests. \param[in] countPerElem - Pieces of data per + * element communicated. */ void InitiateCommsAll(void* bufSend, const int* nElemSend, SU2_MPI::Request* sendReq, void* bufRecv, const int* nElemRecv, SU2_MPI::Request* recvReq, unsigned short countPerElem, diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 7d36d111bda..ab32f398e76 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -991,9 +991,6 @@ enum class SST_OPTIONS { 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. */ }; static const MapType SST_Options_Map = { MakePair("NONE", SST_OPTIONS::NONE) @@ -1006,9 +1003,6 @@ static const MapType SST_Options_Map = { 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("DIMENSIONLESS_LIMIT", SST_OPTIONS::DLL) }; /*! @@ -1020,9 +1014,6 @@ struct SST_ParsedOptions { bool sust = false; /*!< \brief Bool for SST model with sustaining terms. */ bool uq = false; /*!< \brief Bool for using uncertainty quantification. */ 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 dll = false; /*!< \brief Bool dimensionless lower limit. */ }; /*! @@ -1058,9 +1049,6 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne const bool sst_v = IsPresent(SST_OPTIONS::V); const bool sst_kl = IsPresent(SST_OPTIONS::KL); 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_dll = IsPresent(SST_OPTIONS::DLL); if (sst_1994 && sst_2003) { SU2_MPI::Error("Two versions (1994 and 2003) selected for SST_OPTIONS. Please choose only one.", CURRENT_FUNCTION); @@ -1081,22 +1069,9 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne SSTParsedOptions.production = SST_OPTIONS::UQ; } - // Parse compressibility options - if (sst_compWilcox && sst_compSarkar) { - 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; - } - SSTParsedOptions.sust = sst_sust; SSTParsedOptions.modified = sst_m; SSTParsedOptions.uq = sst_uq; - SSTParsedOptions.compWilcox = sst_compWilcox; - SSTParsedOptions.compSarkar = sst_compSarkar; - SSTParsedOptions.dll = sst_dll; - return SSTParsedOptions; } diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index ad75b0f928b..9ffe757462a 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1421,10 +1421,6 @@ void CConfig::SetConfig_Options() { /* DESCRIPTION: */ addDoubleOption("FREESTREAM_NU_FACTOR", NuFactor_FreeStream, 3.0); /* DESCRIPTION: */ - addDoubleOption("LOWER_LIMIT_K_FACTOR", KFactor_LowerLimit, 1.0e-15); - /* DESCRIPTION: */ - addDoubleOption("LOWER_LIMIT_OMEGA_FACTOR", OmegaFactor_LowerLimit, 1e-05); - /* DESCRIPTION: */ addDoubleOption("ENGINE_NU_FACTOR", NuFactor_Engine, 3.0); /* DESCRIPTION: */ addDoubleOption("ACTDISK_SECONDARY_FLOW", SecondaryFlow_ActDisk, 0.0); @@ -3482,12 +3478,9 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i saParsedOptions = ParseSAOptions(SA_Options, nSA_Options, rank); } - if (Kind_Solver == MAIN_SOLVER::INC_RANS && sstParsedOptions.compSarkar){ - SU2_MPI::Error("COMPRESSIBILITY-SARKAR only supported for SOLVER= RANS", CURRENT_FUNCTION); - } - - if (Kind_Solver == MAIN_SOLVER::INC_RANS && sstParsedOptions.compWilcox){ - SU2_MPI::Error("COMPRESSIBILITY-WILCOX only supported for SOLVER= RANS", CURRENT_FUNCTION); + /*--- Check if turbulence model can be used for AXISYMMETRIC case---*/ + if (Axisymmetric && Kind_Turb_Model != TURB_MODEL::NONE && Kind_Turb_Model != TURB_MODEL::SST){ + SU2_MPI::Error("Axisymmetry is currently only supported for KIND_TURB_MODEL chosen as SST", CURRENT_FUNCTION); } /*--- Postprocess LM_OPTIONS into structure. ---*/ @@ -6222,7 +6215,7 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { if (sstParsedOptions.version == SST_OPTIONS::V1994) cout << "-1994"; else cout << "-2003"; if (sstParsedOptions.modified) cout << "m"; - if (sstParsedOptions.sust) cout << " with sustaining terms,"; + if (sstParsedOptions.sust) cout << " with sustaining terms, and"; switch (sstParsedOptions.production) { case SST_OPTIONS::KL: @@ -6235,23 +6228,10 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { cout << "\nperturbing the Reynold's Stress Matrix towards " << eig_val_comp << " component turbulence"; if (uq_permute) cout << " (permuting eigenvectors)"; break; - case SST_OPTIONS::COMP_Wilcox: - cout << " with compressibility correction of Wilcox"; - break; - case SST_OPTIONS::COMP_Sarkar: - cout << " with compressibility correction of Sarkar"; - break; default: cout << " with no production modification"; break; } - - if (sstParsedOptions.dll){ - cout << "\nusing non dimensional lower limits relative to infinity values clipping by Coefficients:" ; - cout << " C_w= " << OmegaFactor_LowerLimit << " and C_k= " <SetControlVolume(geometry_container[iMesh - 1], UPDATE); - geometry_container[iMesh]->SetBoundControlVolume(geometry_container[iMesh - 1], config, UPDATE); + geometry_container[iMesh]->SetBoundControlVolume(geometry_container[iMesh - 1], UPDATE); geometry_container[iMesh]->SetCoord(geometry_container[iMesh - 1]); } @@ -2453,71 +2453,123 @@ su2double CGeometry::GetSurfaceArea(const CConfig* config, unsigned short val_ma return 0.0; } -void CGeometry::ComputeModifiedSymmetryNormals(const CConfig* config) { - /* Check how many symmetry planes there are and use the first (lowest ID) as the basis to orthogonalize against. - * All nodes that are shared by multiple symmetries have to get a corrected normal. */ - symmetryNormals.resize(nMarker); - std::vector symMarkers; - - for (auto iMarker = 0u; iMarker < nMarker; ++iMarker) { - if ((config->GetMarker_All_KindBC(iMarker) == SYMMETRY_PLANE) || - (config->GetMarker_All_KindBC(iMarker) == EULER_WALL)) { - symMarkers.push_back(iMarker); - } - } - - /*--- Loop over all markers and find nodes on symmetry planes that are shared with other symmetries. ---*/ - /*--- The first symmetry does not need a corrected normal vector, hence start at 1. ---*/ - for (size_t i = 1; i < symMarkers.size(); ++i) { - const auto iMarker = symMarkers[i]; - - for (auto iVertex = 0ul; iVertex < nVertex[iMarker]; iVertex++) { - const auto iPoint = vertex[iMarker][iVertex]->GetNode(); - - /*--- Halo points do not need to be considered. ---*/ - if (!nodes->GetDomain(iPoint)) continue; - - /*--- Get the vertex normal on the current symmetry. ---*/ - std::array iNormal = {}; - vertex[iMarker][iVertex]->GetNormal(iNormal.data()); - - /*--- Loop over previous symmetries and if this point shares them, make this normal orthogonal to them. ---*/ - bool isShared = false; - - for (size_t j = 0; j < i; ++j) { - const auto jMarker = symMarkers[j]; - const auto jVertex = nodes->GetVertex(iPoint, jMarker); - if (jVertex < 0) continue; - - isShared = true; - - std::array jNormal = {}; - const auto it = symmetryNormals[jMarker].find(jVertex); - - if (it != symmetryNormals[jMarker].end()) { - jNormal = it->second; - } else { - vertex[jMarker][jVertex]->GetNormal(jNormal.data()); - const su2double area = GeometryToolbox::Norm(nDim, jNormal.data()); - for (auto iDim = 0u; iDim < nDim; iDim++) jNormal[iDim] /= area; - } - - const auto proj = GeometryToolbox::DotProduct(nDim, jNormal.data(), iNormal.data()); - for (auto iDim = 0u; iDim < nDim; iDim++) iNormal[iDim] -= proj * jNormal[iDim]; - } - - if (!isShared) continue; +void CGeometry::ComputeSurf_Straightness(CConfig* config, bool print_on_screen) { + bool RefUnitNormal_defined; + unsigned short iDim, iMarker, iMarker_Global, nMarker_Global = config->GetnMarker_CfgFile(); + unsigned long iVertex; + constexpr passivedouble epsilon = 1.0e-6; + su2double Area; + string Local_TagBound, Global_TagBound; + + vector Normal(nDim), UnitNormal(nDim), RefUnitNormal(nDim); + + /*--- Assume now that this boundary marker is straight. As soon as one + AreaElement is found that is not aligend with a Reference then it is + certain that the boundary marker is not straight and one can stop + searching. Another possibility is that this process doesn't own + any nodes of that boundary, in that case we also have to assume the + boundary is straight. + Any boundary type other than SYMMETRY_PLANE or EULER_WALL gets + the value false (or see cases specified in the conditional below) + which could be wrong. ---*/ + bound_is_straight.resize(nMarker); + fill(bound_is_straight.begin(), bound_is_straight.end(), true); + + /*--- Loop over all local markers ---*/ + for (iMarker = 0; iMarker < nMarker; iMarker++) { + Local_TagBound = config->GetMarker_All_TagBound(iMarker); + + /*--- Marker has to be Symmetry or Euler. Additionally marker can't be a + moving surface and Grid Movement Elasticity is forbidden as well. All + other GridMovements are rigid. ---*/ + if ((config->GetMarker_All_KindBC(iMarker) == SYMMETRY_PLANE || + config->GetMarker_All_KindBC(iMarker) == EULER_WALL) && + !config->GetMarker_Moving_Bool(Local_TagBound) && !config->GetMarker_Deform_Mesh_Bool(Local_TagBound)) { + /*--- Loop over all global markers, and find the local-global pair via + matching unique string tags. ---*/ + for (iMarker_Global = 0; iMarker_Global < nMarker_Global; iMarker_Global++) { + Global_TagBound = config->GetMarker_CfgFile_TagBound(iMarker_Global); + if (Local_TagBound == Global_TagBound) { + RefUnitNormal_defined = false; + iVertex = 0; + + while (bound_is_straight[iMarker] && iVertex < nVertex[iMarker]) { + vertex[iMarker][iVertex]->GetNormal(Normal.data()); + UnitNormal = Normal; + + /*--- Compute unit normal. ---*/ + Area = 0.0; + for (iDim = 0; iDim < nDim; iDim++) Area += Normal[iDim] * Normal[iDim]; + Area = sqrt(Area); + + /*--- Negate for outward convention. ---*/ + for (iDim = 0; iDim < nDim; iDim++) UnitNormal[iDim] /= -Area; + + /*--- Check if unit normal is within tolerance of the Reference unit normal. + Reference unit normal = first unit normal found. ---*/ + if (RefUnitNormal_defined) { + for (iDim = 0; iDim < nDim; iDim++) { + if (abs(RefUnitNormal[iDim] - UnitNormal[iDim]) > epsilon) { + bound_is_straight[iMarker] = false; + break; + } + } + } else { + RefUnitNormal = UnitNormal; // deep copy of values + RefUnitNormal_defined = true; + } - /*--- Normalize. If the norm is close to zero it means the normal is a linear combination of previous - * normals, in this case we don't need to store the corrected normal, using the original in the gradient - * correction will have no effect since previous corrections will remove components in this direction). ---*/ - const su2double area = GeometryToolbox::Norm(nDim, iNormal.data()); - if (area > EPS) { - for (auto iDim = 0u; iDim < nDim; iDim++) iNormal[iDim] /= area; - symmetryNormals[iMarker][iVertex] = iNormal; - } - } - } + iVertex++; + } // while iVertex + } // if Local == Global + } // for iMarker_Global + } else { + /*--- Enforce default value: false ---*/ + bound_is_straight[iMarker] = false; + } // if sym or euler ... + } // for iMarker + + /*--- Communicate results and print on screen. ---*/ + if (print_on_screen) { + /*--- Additional vector which can later be MPI::Allreduce(d) to pring the results + on screen as nMarker (local) can vary across ranks. Default 'true' as it can + happen that a local rank does not contain an element of each surface marker. ---*/ + vector bound_is_straight_Global(nMarker_Global, true); + /*--- Match local with global tag bound and fill a Global Marker vector. ---*/ + for (iMarker = 0; iMarker < nMarker; iMarker++) { + Local_TagBound = config->GetMarker_All_TagBound(iMarker); + for (iMarker_Global = 0; iMarker_Global < nMarker_Global; iMarker_Global++) { + Global_TagBound = config->GetMarker_CfgFile_TagBound(iMarker_Global); + + if (Local_TagBound == Global_TagBound) bound_is_straight_Global[iMarker_Global] = bound_is_straight[iMarker]; + + } // for iMarker_Global + } // for iMarker + + vector Buff_Send_isStraight(nMarker_Global), Buff_Recv_isStraight(nMarker_Global); + + /*--- Cast to int as std::vector can be a special construct. MPI handling using + is more straight-forward. ---*/ + for (iMarker_Global = 0; iMarker_Global < nMarker_Global; iMarker_Global++) + Buff_Send_isStraight[iMarker_Global] = static_cast(bound_is_straight_Global[iMarker_Global]); + + /*--- Product of type (bool) is equivalnt to a 'logical and' ---*/ + SU2_MPI::Allreduce(Buff_Send_isStraight.data(), Buff_Recv_isStraight.data(), nMarker_Global, MPI_INT, MPI_PROD, + SU2_MPI::GetComm()); + + /*--- Print results on screen. ---*/ + if (rank == MASTER_NODE) { + for (iMarker_Global = 0; iMarker_Global < nMarker_Global; iMarker_Global++) { + if (config->GetMarker_CfgFile_KindBC(config->GetMarker_CfgFile_TagBound(iMarker_Global)) == SYMMETRY_PLANE || + config->GetMarker_CfgFile_KindBC(config->GetMarker_CfgFile_TagBound(iMarker_Global)) == EULER_WALL) { + cout << "Boundary marker " << config->GetMarker_CfgFile_TagBound(iMarker_Global) << " is"; + if (!static_cast(Buff_Recv_isStraight[iMarker_Global])) cout << " NOT"; + if (nDim == 2) cout << " a single straight." << endl; + if (nDim == 3) cout << " a single plane." << endl; + } // if sym or euler + } // for iMarker_Global + } // if rank==MASTER + } // if print_on_scren } void CGeometry::ComputeSurf_Curvature(CConfig* config) { diff --git a/Common/src/geometry/CMultiGridGeometry.cpp b/Common/src/geometry/CMultiGridGeometry.cpp index 00cc4ebf009..5ae064d778f 100644 --- a/Common/src/geometry/CMultiGridGeometry.cpp +++ b/Common/src/geometry/CMultiGridGeometry.cpp @@ -108,27 +108,17 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry* fine_grid, CConfig* config, un This can be improved. If there is only a marker, it is a good candidate for agglomeration ---*/ - if (counter == 1) { - agglomerate_seed = true; + if (counter == 1) agglomerate_seed = true; - /*--- Euler walls can be curved and agglomerating them leads to difficulties ---*/ - if (config->GetMarker_All_KindBC(marker_seed) == EULER_WALL) agglomerate_seed = false; - } - /*--- If there are two markers, we will agglomerate if any of the + /*--- If there are two markers, we will aglomerate if any of the markers is SEND_RECEIVE ---*/ if (counter == 2) { agglomerate_seed = (config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) || (config->GetMarker_All_KindBC(copy_marker[1]) == SEND_RECEIVE); - - /* --- Euler walls can also not be agglomerated when the point has 2 markers ---*/ - if ((config->GetMarker_All_KindBC(copy_marker[0]) == EULER_WALL) || - (config->GetMarker_All_KindBC(copy_marker[1]) == EULER_WALL)) { - agglomerate_seed = false; - } } - /*--- If there are more than 2 markers, the aglomeration will be discarded ---*/ + /*--- If there are more than 2 markers, the aglomeration will be discarted ---*/ if (counter > 2) agglomerate_seed = false; @@ -230,7 +220,7 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry* fine_grid, CConfig* config, un const auto iPoint = MGQueue_InnerCV.NextCV(); iteration++; - /*--- If the element has not been previously agglomerated, belongs to the physical domain, + /*--- If the element has not being previously agglomerated, belongs to the physical domain, and satisfies several geometrical criteria then the seed CV is accepted for agglomeration. ---*/ if ((!fine_grid->nodes->GetAgglomerate(iPoint)) && (fine_grid->nodes->GetDomain(iPoint)) && @@ -448,6 +438,7 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry* fine_grid, CConfig* config, un /*--- Be careful, it is possible that a node changes the agglomeration configuration, the priority is always when receiving the information. ---*/ + fine_grid->nodes->SetParent_CV(iPoint_Fine, iPoint_Coarse); nodes->SetChildren_CV(iPoint_Coarse, nChildren_MPI[iPoint_Coarse], iPoint_Fine); nChildren_MPI[iPoint_Coarse]++; @@ -510,7 +501,7 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark const CConfig* config) const { bool agglomerate_CV = false; - /*--- Basic condition, the point has not been previously agglomerated, it belongs to the domain, + /*--- Basic condition, the point has not being previously agglomerated, it belongs to the domain, and has passed some basic geometrical checks. ---*/ if ((!fine_grid->nodes->GetAgglomerate(CVPoint)) && (fine_grid->nodes->GetDomain(CVPoint)) && @@ -520,7 +511,6 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark if (fine_grid->nodes->GetBoundary(CVPoint)) { /*--- Identify the markers of the vertex that we want to agglomerate ---*/ - // count number of markers on the agglomeration candidate int counter = 0; unsigned short copy_marker[3] = {}; for (auto jMarker = 0u; jMarker < fine_grid->GetnMarker() && counter < 3; jMarker++) { @@ -536,22 +526,13 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark /*--- Only one marker in the vertex that is going to be aglomerated ---*/ if (counter == 1) { - /*--- We agglomerate if there is only one marker and it is the same marker as the seed marker ---*/ - // note that this should be the same marker id, not just the same marker type + /*--- We agglomerate if there is only a marker and is the same marker as the seed marker ---*/ + if (copy_marker[0] == marker_seed) agglomerate_CV = true; /*--- If there is only one marker, but the marker is the SEND_RECEIVE ---*/ - if (config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) { - agglomerate_CV = true; - } - - if ((config->GetMarker_All_KindBC(marker_seed) == SYMMETRY_PLANE) || - (config->GetMarker_All_KindBC(marker_seed) == EULER_WALL)) { - if (config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) { - agglomerate_CV = false; - } - } + if (config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) agglomerate_CV = true; } /*--- If there are two markers in the vertex that is going to be aglomerated ---*/ @@ -560,25 +541,20 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark /*--- First we verify that the seed is a physical boundary ---*/ if (config->GetMarker_All_KindBC(marker_seed) != SEND_RECEIVE) { - /*--- Then we check that one of the markers is equal to the seed marker, and the other is send/receive ---*/ + /*--- Then we check that one of the marker is equal to the seed marker, and the other is send/receive ---*/ if (((copy_marker[0] == marker_seed) && (config->GetMarker_All_KindBC(copy_marker[1]) == SEND_RECEIVE)) || - ((config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) && (copy_marker[1] == marker_seed))) { + ((config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) && (copy_marker[1] == marker_seed))) agglomerate_CV = true; - } } } + } - /*--- If the element belongs to the domain, it is always agglomerated. ---*/ + + /*--- If the element belongs to the domain, it is allways aglomerated. ---*/ + else { agglomerate_CV = true; - - // actually, for symmetry (and possibly other cells) we only agglomerate cells that are on the marker - // at this point, the seed was on the boundary and the CV was not. so we check if the seed is a symmetry - if ((config->GetMarker_All_KindBC(marker_seed) == SYMMETRY_PLANE) || - (config->GetMarker_All_KindBC(marker_seed) == EULER_WALL)) { - agglomerate_CV = false; - } } } @@ -924,47 +900,44 @@ void CMultiGridGeometry::SetControlVolume(const CGeometry* fine_grid, unsigned s END_SU2_OMP_SAFE_GLOBAL_ACCESS } -void CMultiGridGeometry::SetBoundControlVolume(const CGeometry* fine_grid, const CConfig* config, - unsigned short action) { - unsigned long iCoarsePoint, iFinePoint, FineVertex, iVertex; - su2double Normal[MAXNDIM] = {0.0}, Area, *NormalFace = nullptr; +void CMultiGridGeometry::SetBoundControlVolume(const CGeometry* fine_grid, unsigned short action) { + BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { + unsigned long iCoarsePoint, iFinePoint, FineVertex, iVertex; + unsigned short iMarker, iChildren, iDim; + su2double *Normal, Area, *NormalFace = nullptr; - if (action != ALLOCATE) { - SU2_OMP_FOR_DYN(1) - for (auto iMarker = 0; iMarker < nMarker; iMarker++) - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) vertex[iMarker][iVertex]->SetZeroValues(); - END_SU2_OMP_FOR - } + Normal = new su2double[nDim]; - SU2_OMP_FOR_DYN(1) - for (auto iMarker = 0; iMarker < nMarker; iMarker++) { - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { - iCoarsePoint = vertex[iMarker][iVertex]->GetNode(); - for (auto iChildren = 0; iChildren < nodes->GetnChildren_CV(iCoarsePoint); iChildren++) { - iFinePoint = nodes->GetChildren_CV(iCoarsePoint, iChildren); - if (fine_grid->nodes->GetVertex(iFinePoint, iMarker) != -1) { - FineVertex = fine_grid->nodes->GetVertex(iFinePoint, iMarker); - fine_grid->vertex[iMarker][FineVertex]->GetNormal(Normal); - vertex[iMarker][iVertex]->AddNormal(Normal); + if (action != ALLOCATE) { + for (iMarker = 0; iMarker < nMarker; iMarker++) + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) vertex[iMarker][iVertex]->SetZeroValues(); + } + + for (iMarker = 0; iMarker < nMarker; iMarker++) + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { + iCoarsePoint = vertex[iMarker][iVertex]->GetNode(); + for (iChildren = 0; iChildren < nodes->GetnChildren_CV(iCoarsePoint); iChildren++) { + iFinePoint = nodes->GetChildren_CV(iCoarsePoint, iChildren); + if (fine_grid->nodes->GetVertex(iFinePoint, iMarker) != -1) { + FineVertex = fine_grid->nodes->GetVertex(iFinePoint, iMarker); + fine_grid->vertex[iMarker][FineVertex]->GetNormal(Normal); + vertex[iMarker][iVertex]->AddNormal(Normal); + } } } - } - } - END_SU2_OMP_FOR - /*--- Check if there is a normal with null area ---*/ - SU2_OMP_FOR_DYN(1) - for (auto iMarker = 0; iMarker < nMarker; iMarker++) { - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { - NormalFace = vertex[iMarker][iVertex]->GetNormal(); - Area = GeometryToolbox::Norm(nDim, NormalFace); - if (Area == 0.0) - for (auto iDim = 0; iDim < nDim; iDim++) NormalFace[iDim] = EPS * EPS; - } - } - END_SU2_OMP_FOR + delete[] Normal; - SU2_OMP_SAFE_GLOBAL_ACCESS(ComputeModifiedSymmetryNormals(config);) + /*--- Check if there is a normal with null area ---*/ + for (iMarker = 0; iMarker < nMarker; iMarker++) + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { + NormalFace = vertex[iMarker][iVertex]->GetNormal(); + Area = GeometryToolbox::Norm(nDim, NormalFace); + if (Area == 0.0) + for (iDim = 0; iDim < nDim; iDim++) NormalFace[iDim] = EPS * EPS; + } + } + END_SU2_OMP_SAFE_GLOBAL_ACCESS } void CMultiGridGeometry::SetCoord(const CGeometry* fine_grid) { diff --git a/Common/src/geometry/CPhysicalGeometry.cpp b/Common/src/geometry/CPhysicalGeometry.cpp index a069424c666..29f10a492b3 100644 --- a/Common/src/geometry/CPhysicalGeometry.cpp +++ b/Common/src/geometry/CPhysicalGeometry.cpp @@ -4124,7 +4124,7 @@ void CPhysicalGeometry::Check_IntElem_Orientation(const CConfig* config) { if (tria_flip + quad_flip + tet_flip + hexa_flip + pyram_flip + prism_flip + quad_error + pyram_error + prism_error + hexa_error == 0) { - cout << "All volume elements are correctly oriented." << endl; + cout << "All volume elements are correctly orientend." << endl; } } } @@ -4260,7 +4260,7 @@ void CPhysicalGeometry::Check_BoundElem_Orientation(const CConfig* config) { } if (line_flip + tria_flip + quad_flip + quad_error == 0) { - cout << "All surface elements are correctly oriented." << endl; + cout << "All surface elements are correctly orientend." << endl; } } } @@ -7283,8 +7283,6 @@ void CPhysicalGeometry::SetBoundControlVolume(const CConfig* config, unsigned sh } } END_SU2_OMP_FOR - - SU2_OMP_SAFE_GLOBAL_ACCESS(ComputeModifiedSymmetryNormals(config);) } void CPhysicalGeometry::VisualizeControlVolume(const CConfig* config) const { @@ -9560,7 +9558,7 @@ su2double CPhysicalGeometry::Compute_Length(su2double* Plane_P0, su2double* Plan su2double DeltaZ, DeltaX; /*--- Not that in a symmetry plane configuration there is an extra edge that connects - the two extremes, and we really don't know the curve orientation. We will evaluate + the two extremes, and we really don't now the curve orientation. We will evaluate both distance and picked the smallest one ---*/ Length_Value = 0.0; diff --git a/Common/src/grid_movement/CVolumetricMovement.cpp b/Common/src/grid_movement/CVolumetricMovement.cpp index efd2a6f2b74..a3f91fa36c1 100644 --- a/Common/src/grid_movement/CVolumetricMovement.cpp +++ b/Common/src/grid_movement/CVolumetricMovement.cpp @@ -98,7 +98,7 @@ void CVolumetricMovement::UpdateMultiGrid(CGeometry** geometry, CConfig* config) for (iMGlevel = 1; iMGlevel <= nMGlevel; iMGlevel++) { iMGfine = iMGlevel - 1; geometry[iMGlevel]->SetControlVolume(geometry[iMGfine], UPDATE); - geometry[iMGlevel]->SetBoundControlVolume(geometry[iMGfine], config, UPDATE); + geometry[iMGlevel]->SetBoundControlVolume(geometry[iMGfine], UPDATE); geometry[iMGlevel]->SetCoord(geometry[iMGfine]); if (config->GetGrid_Movement()) geometry[iMGlevel]->SetRestricted_GridVelocity(geometry[iMGfine]); } diff --git a/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp b/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp index f03668cafa1..5d0abbb8537 100644 --- a/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp +++ b/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp @@ -27,12 +27,7 @@ * License along with SU2. If not, see . */ -#include -#include - #include "../../../Common/include/parallelization/omp_structure.hpp" -#include "../../../Common/include/toolboxes/geometry_toolbox.hpp" -#include "correctGradientsSymmetry.hpp" namespace detail { @@ -54,13 +49,19 @@ namespace detail { * \param[in] field - Generic object implementing operator (iPoint, iVar). * \param[in] varBegin - Index of first variable for which to compute the gradient. * \param[in] varEnd - Index of last variable for which to compute the gradient. - * \param[in] idxVel - Index of velocity, or -1 if no velocity present. * \param[out] gradient - Generic object implementing operator (iPoint, iVar, iDim). */ -template -void computeGradientsGreenGauss(CSolver* solver, MPI_QUANTITIES kindMpiComm, PERIODIC_QUANTITIES kindPeriodicComm, - CGeometry& geometry, const CConfig& config, const FieldType& field, - const size_t varBegin, const size_t varEnd, const int idxVel, GradientType& gradient) { +template +void computeGradientsGreenGauss(CSolver* solver, + MPI_QUANTITIES kindMpiComm, + PERIODIC_QUANTITIES kindPeriodicComm, + CGeometry& geometry, + const CConfig& config, + const FieldType& field, + size_t varBegin, + size_t varEnd, + GradientType& gradient) +{ const size_t nPointDomain = geometry.GetnPointDomain(); #ifdef HAVE_OMP @@ -69,12 +70,11 @@ void computeGradientsGreenGauss(CSolver* solver, MPI_QUANTITIES kindMpiComm, PER const auto chunkSize = computeStaticChunkSize(nPointDomain, omp_get_max_threads(), OMP_MAX_CHUNK); #endif - static constexpr size_t MAXNVAR = 20; - /*--- For each (non-halo) volume integrate over its faces (edges). ---*/ SU2_OMP_FOR_DYN(chunkSize) - for (size_t iPoint = 0; iPoint < nPointDomain; ++iPoint) { + for (size_t iPoint = 0; iPoint < nPointDomain; ++iPoint) + { auto nodes = geometry.nodes; /*--- Cannot preaccumulate if hybrid parallel due to shared reading. ---*/ @@ -82,59 +82,69 @@ void computeGradientsGreenGauss(CSolver* solver, MPI_QUANTITIES kindMpiComm, PER AD::SetPreaccIn(nodes->GetVolume(iPoint)); AD::SetPreaccIn(nodes->GetPeriodicVolume(iPoint)); - for (size_t iVar = varBegin; iVar < varEnd; ++iVar) AD::SetPreaccIn(field(iPoint, iVar)); + for (size_t iVar = varBegin; iVar < varEnd; ++iVar) + AD::SetPreaccIn(field(iPoint,iVar)); /*--- Clear the gradient. --*/ for (size_t iVar = varBegin; iVar < varEnd; ++iVar) - for (size_t iDim = 0; iDim < nDim; ++iDim) gradient(iPoint, iVar, iDim) = 0.0; + for (size_t iDim = 0; iDim < nDim; ++iDim) + gradient(iPoint, iVar, iDim) = 0.0; /*--- Handle averaging and division by volume in one constant. ---*/ - su2double halfOnVol = 0.5 / (nodes->GetVolume(iPoint) + nodes->GetPeriodicVolume(iPoint)); + su2double halfOnVol = 0.5 / (nodes->GetVolume(iPoint)+nodes->GetPeriodicVolume(iPoint)); /*--- Add a contribution due to each neighbor. ---*/ - for (size_t iNeigh = 0; iNeigh < nodes->GetnPoint(iPoint); ++iNeigh) { - size_t iEdge = nodes->GetEdge(iPoint, iNeigh); - size_t jPoint = nodes->GetPoint(iPoint, iNeigh); + for (size_t iNeigh = 0; iNeigh < nodes->GetnPoint(iPoint); ++iNeigh) + { + size_t iEdge = nodes->GetEdge(iPoint,iNeigh); + size_t jPoint = nodes->GetPoint(iPoint,iNeigh); /*--- Determine if edge points inwards or outwards of iPoint. * If inwards we need to flip the area vector. ---*/ - su2double dir = (iPoint < jPoint) ? 1.0 : -1.0; + su2double dir = (iPoint < jPoint)? 1.0 : -1.0; su2double weight = dir * halfOnVol; const auto area = geometry.edges->GetNormal(iEdge); AD::SetPreaccIn(area, nDim); - for (size_t iVar = varBegin; iVar < varEnd; ++iVar) { - AD::SetPreaccIn(field(jPoint, iVar)); - su2double flux = weight * (field(iPoint, iVar) + field(jPoint, iVar)); + for (size_t iVar = varBegin; iVar < varEnd; ++iVar) + { + AD::SetPreaccIn(field(jPoint,iVar)); + + su2double flux = weight * (field(iPoint,iVar) + field(jPoint,iVar)); - for (size_t iDim = 0; iDim < nDim; ++iDim) gradient(iPoint, iVar, iDim) += flux * area[iDim]; + for (size_t iDim = 0; iDim < nDim; ++iDim) + gradient(iPoint, iVar, iDim) += flux * area[iDim]; } + } for (size_t iVar = varBegin; iVar < varEnd; ++iVar) - for (size_t iDim = 0; iDim < nDim; ++iDim) AD::SetPreaccOut(gradient(iPoint, iVar, iDim)); + for (size_t iDim = 0; iDim < nDim; ++iDim) + AD::SetPreaccOut(gradient(iPoint,iVar,iDim)); AD::EndPreacc(); } END_SU2_OMP_FOR - su2double flux[MAXNVAR] = {0.0}; + /*--- Add boundary fluxes. ---*/ - /*--- Add edges of markers that contribute to the gradients ---*/ - for (size_t iMarker = 0; iMarker < geometry.GetnMarker(); ++iMarker) { + for (size_t iMarker = 0; iMarker < geometry.GetnMarker(); ++iMarker) + { if ((config.GetMarker_All_KindBC(iMarker) != INTERNAL_BOUNDARY) && (config.GetMarker_All_KindBC(iMarker) != NEARFIELD_BOUNDARY) && - (config.GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) { + (config.GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) + { /*--- Work is shared in inner loop as two markers * may try to update the same point. ---*/ SU2_OMP_FOR_STAT(32) - for (size_t iVertex = 0; iVertex < geometry.GetnVertex(iMarker); ++iVertex) { + for (size_t iVertex = 0; iVertex < geometry.GetnVertex(iMarker); ++iVertex) + { size_t iPoint = geometry.vertex[iMarker][iVertex]->GetNode(); auto nodes = geometry.nodes; @@ -143,25 +153,20 @@ void computeGradientsGreenGauss(CSolver* solver, MPI_QUANTITIES kindMpiComm, PER if (!nodes->GetDomain(iPoint)) continue; su2double volume = nodes->GetVolume(iPoint) + nodes->GetPeriodicVolume(iPoint); + const auto area = geometry.vertex[iMarker][iVertex]->GetNormal(); for (size_t iVar = varBegin; iVar < varEnd; iVar++) - flux[iVar] = field(iPoint,iVar) / volume; - - for (size_t iVar = varBegin; iVar < varEnd; iVar++) { - for (size_t iDim = 0; iDim < nDim; iDim++) { - gradient(iPoint, iVar, iDim) -= flux[iVar] * area[iDim]; - } - } // loop over variables - } // vertices - END_SU2_OMP_FOR - } //found right marker - } // iMarkers - + { + su2double flux = field(iPoint,iVar) / volume; - /*--- Compute the corrections for symmetry planes and Euler walls. ---*/ - - correctGradientsSymmetry(geometry, config, varBegin, varEnd, idxVel, gradient); + for (size_t iDim = 0; iDim < nDim; iDim++) + gradient(iPoint, iVar, iDim) -= flux * area[iDim]; + } + } + END_SU2_OMP_FOR + } + } /*--- If no solver was provided we do not communicate ---*/ @@ -169,7 +174,8 @@ void computeGradientsGreenGauss(CSolver* solver, MPI_QUANTITIES kindMpiComm, PER /*--- Account for periodic contributions. ---*/ - for (size_t iPeriodic = 1; iPeriodic <= config.GetnMarker_Periodic() / 2; ++iPeriodic) { + for (size_t iPeriodic = 1; iPeriodic <= config.GetnMarker_Periodic()/2; ++iPeriodic) + { solver->InitiatePeriodicComms(&geometry, &config, iPeriodic, kindPeriodicComm); solver->CompletePeriodicComms(&geometry, &config, iPeriodic, kindPeriodicComm); } @@ -178,30 +184,35 @@ void computeGradientsGreenGauss(CSolver* solver, MPI_QUANTITIES kindMpiComm, PER solver->InitiateComms(&geometry, &config, kindMpiComm); solver->CompleteComms(&geometry, &config, kindMpiComm); -} -} // namespace detail - +} +} // end namespace /*! * \brief Instantiations for 2D and 3D. * \ingroup FvmAlgos */ -template -void computeGradientsGreenGauss(CSolver* solver, MPI_QUANTITIES kindMpiComm, PERIODIC_QUANTITIES kindPeriodicComm, - CGeometry& geometry, const CConfig& config, const FieldType& field, - const size_t varBegin, const size_t varEnd, const int idxVel, GradientType& gradient) { +template +void computeGradientsGreenGauss(CSolver* solver, + MPI_QUANTITIES kindMpiComm, + PERIODIC_QUANTITIES kindPeriodicComm, + CGeometry& geometry, + const CConfig& config, + const FieldType& field, + size_t varBegin, + size_t varEnd, + GradientType& gradient) { switch (geometry.GetnDim()) { - case 2: - detail::computeGradientsGreenGauss<2>(solver, kindMpiComm, kindPeriodicComm, geometry, config, field, varBegin, - varEnd, idxVel, gradient); - break; - case 3: - detail::computeGradientsGreenGauss<3>(solver, kindMpiComm, kindPeriodicComm, geometry, config, field, varBegin, - varEnd, idxVel, gradient); - break; - default: - SU2_MPI::Error("Too many dimensions to compute gradients.", CURRENT_FUNCTION); - break; + case 2: + detail::computeGradientsGreenGauss<2>(solver, kindMpiComm, kindPeriodicComm, geometry, + config, field, varBegin, varEnd, gradient); + break; + case 3: + detail::computeGradientsGreenGauss<3>(solver, kindMpiComm, kindPeriodicComm, geometry, + config, field, varBegin, varEnd, gradient); + break; + default: + SU2_MPI::Error("Too many dimensions to compute gradients.", CURRENT_FUNCTION); + break; } } diff --git a/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp b/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp index ef476e7a3df..29daee7f06e 100644 --- a/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp +++ b/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp @@ -28,7 +28,6 @@ #include "../../../Common/include/parallelization/omp_structure.hpp" #include "../../../Common/include/toolboxes/geometry_toolbox.hpp" -#include "correctGradientsSymmetry.hpp" namespace detail { @@ -176,7 +175,6 @@ FORCEINLINE void solveLeastSquares(size_t iPoint, * \param[in] field - Generic object implementing operator (iPoint, iVar). * \param[in] varBegin - Index of first variable for which to compute the gradient. * \param[in] varEnd - Index of last variable for which to compute the gradient. - * \param[in] idxVel - Index to velocity, -1 if no velocity is present in the solver. * \param[out] gradient - Generic object implementing operator (iPoint, iVar, iDim). * \param[out] Rmatrix - Generic object implementing operator (iPoint, iDim, iDim). */ @@ -188,9 +186,8 @@ void computeGradientsLeastSquares(CSolver* solver, const CConfig& config, bool weighted, const FieldType& field, - const size_t varBegin, - const size_t varEnd, - const int idxVel, + size_t varBegin, + size_t varEnd, GradientType& gradient, RMatrixType& Rmatrix) { @@ -315,10 +312,6 @@ void computeGradientsLeastSquares(CSolver* solver, END_SU2_OMP_FOR } - /* --- compute the corrections for symmetry planes and Euler walls. --- */ - - correctGradientsSymmetry(geometry, config, varBegin, varEnd, idxVel, gradient); - /*--- If no solver was provided we do not communicate ---*/ if (solver != nullptr) @@ -344,19 +337,18 @@ void computeGradientsLeastSquares(CSolver* solver, const CConfig& config, bool weighted, const FieldType& field, - const size_t varBegin, - const size_t varEnd, - const int idxVel, + size_t varBegin, + size_t varEnd, GradientType& gradient, RMatrixType& Rmatrix) { switch (geometry.GetnDim()) { case 2: detail::computeGradientsLeastSquares<2>(solver, kindMpiComm, kindPeriodicComm, geometry, config, - weighted, field, varBegin, varEnd, idxVel, gradient, Rmatrix); + weighted, field, varBegin, varEnd, gradient, Rmatrix); break; case 3: detail::computeGradientsLeastSquares<3>(solver, kindMpiComm, kindPeriodicComm, geometry, config, - weighted, field, varBegin, varEnd, idxVel, gradient, Rmatrix); + weighted, field, varBegin, varEnd, gradient, Rmatrix); break; default: SU2_MPI::Error("Too many dimensions to compute gradients.", CURRENT_FUNCTION); diff --git a/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp b/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp deleted file mode 100644 index a17ce827184..00000000000 --- a/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp +++ /dev/null @@ -1,146 +0,0 @@ -/*! - * \file correctGradientsSymmetry.hpp - * \brief Implements the symmetry boundary conditions for the gradient computations. - * \author N. Beishuizen - * \version 8.0.1 "Harrier" - * - * SU2 Project Website: https://su2code.github.io - * - * The SU2 Project is maintained by the SU2 Foundation - * (http://su2foundation.org) - * - * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) - * - * SU2 is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * SU2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SU2. If not, see . - */ - -#pragma once - -#include -#include - -#include "../../../Common/include/parallelization/omp_structure.hpp" -#include "../../../Common/include/toolboxes/geometry_toolbox.hpp" - -namespace detail { -/*! - * \brief Correct the gradient on a symmetry plane. - * \ingroup FvmAlgos - * \param[in] varBegin - Start of the variables. - * \param[in] varEnd - End of the variables. - * \param[in] idxVel - Variable index where velocity gradients start (-1 if all variables are scalars). - * \param[in] n - Normal direction. - * \param[in, out] gradients - The gradients to be modified. - */ -template -inline void correctGradient(const size_t varBegin, const size_t varEnd, const int idxVel, const Scalar* n, - Matrix&& gradients) { - - /*--- First we correct the part that involves velocities. ---*/ - - if (idxVel >= static_cast(varBegin) && idxVel + nDim <= varEnd) { - /*--- Normal gradient of velocity components and gradient of normal velocity. ---*/ - su2double normalGrad[nDim] = {}, gradNormalVel[nDim] = {}; - - for (size_t iDim = 0; iDim < nDim; iDim++) { - normalGrad[iDim] = GeometryToolbox::DotProduct(nDim, gradients[idxVel + iDim], n); - - for (size_t jDim = 0; jDim < nDim; jDim++) { - gradNormalVel[jDim] += n[iDim] * gradients[idxVel + iDim][jDim]; - } - } - - /*--- Normal gradient of the normal velocity. ---*/ - const su2double normalGradNormalVel = GeometryToolbox::DotProduct(nDim, n, gradNormalVel); - - /*--- Remove the tangential projection (I - n.n^T) of the normal gradients. - * And the normal projection (n.n^T) of the tangential gradients. - * dV = dV - (I - n.n^T) dV n.n^T - n.n^T dV (I - n.n^T) ---*/ - - for (size_t iDim = 0; iDim < nDim; iDim++) { - for (size_t jDim = 0; jDim < nDim; jDim++) { - gradients[idxVel + iDim][jDim] -= normalGrad[iDim] * n[jDim] + n[iDim] * gradNormalVel[jDim]; - gradients[idxVel + iDim][jDim] += 2 * n[iDim] * normalGradNormalVel * n[jDim]; - } - } - } - - /*--- Remove the normal component for all scalars (excluding velocities). ---*/ - - for (auto iVar = varBegin; iVar < varEnd; iVar++) { - if (idxVel != -1 && static_cast(iVar) >= idxVel && iVar < idxVel + nDim) continue; - - const su2double normalGrad = GeometryToolbox::DotProduct(nDim, n, gradients[iVar]); - for (size_t iDim = 0; iDim < nDim; iDim++) { - gradients[iVar][iDim] -= normalGrad * n[iDim]; - } - } -} -} - -/*! - * \brief Correct gradients on symmetry and Euler (slip) markers to respect the conditions: - * 1. n.grad(phi) = 0 - * 2. n.grad(v.t) = 0 - * 3. t.grad(v.n) = 0 - * \note See Blazek eq. 8.40. - * \ingroup FvmAlgos - * \param[in] geometry - Geometric grid properties. - * \param[in] config - Configuration of the problem, used to identify types of boundaries. - * \param[in] varBegin - Index of first variable for which to compute the gradient. - * \param[in] varEnd - Index of last variable for which to compute the gradient. - * \param[in] idxVel - Index to velocity, -1 if no velocity is present in the solver. - * \param[in,out] gradient - Generic object implementing operator (iPoint, iVar, iDim). - */ -template -void correctGradientsSymmetry(CGeometry& geometry, const CConfig& config, const size_t varBegin, - const size_t varEnd, const int idxVel, GradientType& gradient) { - - /*--- Check how many symmetry planes there are. ---*/ - std::vector symMarkers; - for (auto iMarker = 0u; iMarker < geometry.GetnMarker(); ++iMarker) { - if (config.GetMarker_All_KindBC(iMarker) == SYMMETRY_PLANE || - config.GetMarker_All_KindBC(iMarker) == EULER_WALL) { - symMarkers.push_back(iMarker); - } - } - - for (const auto iMarker : symMarkers) { - SU2_OMP_FOR_STAT(32) - for (size_t iVertex = 0; iVertex < geometry.GetnVertex(iMarker); ++iVertex) { - - const auto iPoint = geometry.vertex[iMarker][iVertex]->GetNode(); - - /*--- Get the normal of the current symmetry. This may be the original normal of the vertex - * or a modified normal if there are intersecting symmetries. ---*/ - - su2double unitNormal[nDim] = {}; - const auto it = geometry.symmetryNormals[iMarker].find(iVertex); - - if (it != geometry.symmetryNormals[iMarker].end()) { - for (auto iDim = 0u; iDim < nDim; iDim++) unitNormal[iDim] = it->second[iDim]; - } else { - geometry.vertex[iMarker][iVertex]->GetNormal(unitNormal); - const su2double area = GeometryToolbox::Norm(nDim, unitNormal); - for (auto iDim = 0u; iDim < nDim; iDim++) unitNormal[iDim] /= area; - } - - detail::correctGradient(varBegin, varEnd, idxVel, unitNormal, gradient[iPoint]); - - } // loop over vertices - END_SU2_OMP_FOR - } // markers - -} - diff --git a/SU2_CFD/include/interfaces/CInterface.hpp b/SU2_CFD/include/interfaces/CInterface.hpp index 996fa800cff..9ec0599827e 100644 --- a/SU2_CFD/include/interfaces/CInterface.hpp +++ b/SU2_CFD/include/interfaces/CInterface.hpp @@ -159,14 +159,14 @@ class CInterface { const CConfig *target_config, unsigned long Marker_Target, unsigned long Vertex_Target, unsigned long Point_Target) = 0; - // /*! - // * \brief A virtual member. - // * \param[in] target_solution - Solution from the target mesh. - // * \param[in] target_solution - Solution from the target mesh. - // * \param[in] donor_zone - Index of the donorZone. - // */ - // inline virtual void SetAverageValues(CSolver *donor_solution, CSolver *target_solution, - // unsigned short donorZone) { } + /*! + * \brief A virtual member. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_zone - Index of the donorZone. + */ + inline virtual void SetAverageValues(CSolver *donor_solution, CSolver *target_solution, + unsigned short donorZone) { } /*! * \brief A virtual member. @@ -185,15 +185,6 @@ class CInterface { */ inline virtual void SetSpanWiseLevels(const CConfig *donor_config, const CConfig *target_config) { } - /*! - * \brief A virtual member. - * \param[in] target_solution - Solution from the target mesh. - * \param[in] target_solution - Solution from the target mesh. - * \param[in] donor_zone - Index of the donorZone. - */ - inline virtual void SetAverageValues(CSolver *donor_solution, CSolver *target_solution, - unsigned short donorZone) { } - /*! * \brief Transfer pre-processing for the mixing plane inteface. * \param[in] donor_geometry - Geometry of the donor mesh. @@ -216,10 +207,16 @@ class CInterface { void AllgatherAverage(CSolver *donor_solution, CSolver *target_solution, CGeometry *donor_geometry, CGeometry *target_geometry, const CConfig *donor_config, const CConfig *target_config, unsigned short iMarkerInt); - + /*! - * \brief Set the contact resistance value for the solid-to-solid heat transfer interface. - * \param[in] val_contact_resistance - Contact resistance value in m^2/W + * \brief Interpolate data and scatter it into different processors, for matching meshes. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] target_config - Definition of the problem at the target mesh. */ - inline virtual void SetContactResistance(su2double val_contact_resistance) {}; -}; \ No newline at end of file + void GatherAverageValues(CSolver *donor_solution, CSolver *target_solution, unsigned short donorZone); + +}; diff --git a/SU2_CFD/include/numerics/flow/convection/hllc.hpp b/SU2_CFD/include/numerics/flow/convection/hllc.hpp index 62d46a7d211..5cac798825e 100644 --- a/SU2_CFD/include/numerics/flow/convection/hllc.hpp +++ b/SU2_CFD/include/numerics/flow/convection/hllc.hpp @@ -49,7 +49,7 @@ class CUpwHLLC_Flow final : public CNumerics { su2double sq_velRoe, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeProjVelocity, ProjInterfaceVel; - su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho; + su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho, kappa; su2double Omega, RHO, OmegaSM; su2double *dSm_dU, *dPI_dU, *drhoStar_dU, *dpStar_dU, *dEStar_dU; @@ -102,7 +102,7 @@ class CUpwGeneralHLLC_Flow final : public CNumerics { su2double sq_velRoe, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeProjVelocity, ProjInterfaceVel; su2double Kappa_i, Kappa_j, Chi_i, Chi_j, RoeKappa, RoeChi, RoeKappaStaticEnthalpy; - su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho; + su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho, kappa; su2double Omega, RHO, OmegaSM; su2double *dSm_dU, *dPI_dU, *drhoStar_dU, *dpStar_dU, *dEStar_dU; diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index ce75b38f115..bdf9d0c6fc4 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -77,41 +77,9 @@ class CSourceBase_TurbSA : public CNumerics { const FlowIndices idx; /*!< \brief Object to manage the access to the flow primitives. */ const SA_ParsedOptions options; /*!< \brief Struct with SA options. */ - const bool axisymmetric = false; bool transition_LM; - /*! - * \brief Add contribution from diffusion due to axisymmetric formulation to 2D residual - */ - inline void ResidualAxisymmetricDiffusion(su2double sigma) { - if (Coord_i[1] < EPS) return; - - const su2double yinv = 1.0 / Coord_i[1]; - const su2double& nue = ScalarVar_i[0]; - - const auto& density = V_i[idx.Density()]; - const auto& laminar_viscosity = V_i[idx.LaminarViscosity()]; - - const su2double nu = laminar_viscosity/density; - - su2double nu_e; - - if (options.version == SA_OPTIONS::NEG && nue < 0.0) { - const su2double cn1 = 16.0; - const su2double Xi = nue / nu; - const su2double fn = (cn1 + Xi*Xi*Xi) / (cn1 - Xi*Xi*Xi); - nu_e = nu + fn * nue; - } else { - nu_e = nu + nue; - } - - /* Diffusion source term */ - const su2double dv_axi = (1.0/sigma)*nu_e*ScalarVar_Grad_i[0][1]; - - Residual += yinv * dv_axi * Volume; - } - public: /*! * \brief Constructor of the class. @@ -122,7 +90,6 @@ class CSourceBase_TurbSA : public CNumerics { : CNumerics(nDim, 1, config), idx(nDim, config->GetnSpecies()), options(config->GetSAParsedOptions()), - axisymmetric(config->GetAxisymmetric()), transition_LM(config->GetKind_Trans_Model() == TURB_TRANS_MODEL::LM) { /*--- Setup the Jacobian pointer, we need to return su2double** but we know * the Jacobian is 1x1 so we use this trick to avoid heap allocation. ---*/ @@ -250,9 +217,6 @@ class CSourceBase_TurbSA : public CNumerics { SourceTerms::get(ScalarVar_i[0], var, Production, Destruction, CrossProduction, Jacobian_i[0]); Residual = (Production - Destruction + CrossProduction) * Volume; - - if (axisymmetric) ResidualAxisymmetricDiffusion(var.sigma); - Jacobian_i[0] *= Volume; } @@ -556,19 +520,6 @@ class CCompressibilityCorrection final : public ParentClass { const su2double d_CompCorrection = 2.0 * c5 * ScalarVar_i[0] / pow(sound_speed, 2) * aux_cc * Volume; const su2double CompCorrection = 0.5 * ScalarVar_i[0] * d_CompCorrection; - /*--- Axisymmetric contribution ---*/ - if (this->axisymmetric && this->Coord_i[1] > EPS) { - const su2double yinv = 1.0 / this->Coord_i[1]; - const su2double nue = ScalarVar_i[0]; - const su2double v = V_i[idx.Velocity() + 1]; - - const su2double d_axiCorrection = 2.0 * c5 * nue * pow(v * yinv / sound_speed, 2) * Volume; - const su2double axiCorrection = 0.5 * nue * d_axiCorrection; - - this->Residual -= axiCorrection; - this->Jacobian_i[0] -= d_axiCorrection; - } - this->Residual -= CompCorrection; this->Jacobian_i[0] -= d_CompCorrection; @@ -789,7 +740,6 @@ class CSourcePieceWise_TurbSST final : public CNumerics { AD::SetPreaccIn(Vorticity_i, 3); AD::SetPreaccIn(V_i[idx.Density()], V_i[idx.LaminarViscosity()], V_i[idx.EddyViscosity()]); AD::SetPreaccIn(V_i[idx.Velocity() + 1]); - AD::SetPreaccIn(V_i[idx.SoundSpeed()]); Density_i = V_i[idx.Density()]; Laminar_Viscosity_i = V_i[idx.LaminarViscosity()]; @@ -828,8 +778,6 @@ class CSourcePieceWise_TurbSST final : public CNumerics { const su2double VorticityMag = GeometryToolbox::Norm(3, Vorticity_i); su2double P_Base = 0; - su2double zetaFMt = 0.0; - const su2double Mt = sqrt(2.0 * ScalarVar_i[0]) / V_i[idx.SoundSpeed()]; /*--- Apply production term modifications ---*/ switch (sstParsedOptions.production) { @@ -847,20 +795,6 @@ class CSourcePieceWise_TurbSST final : public CNumerics { P_Base = sqrt(StrainMag_i*VorticityMag); break; - case SST_OPTIONS::COMP_Wilcox: - P_Base = StrainMag_i; - if (Mt >= 0.25) { - zetaFMt = 2.0 * (Mt * Mt - 0.25 * 0.25); - } - break; - - case SST_OPTIONS::COMP_Sarkar: - P_Base = StrainMag_i; - if (Mt >= 0.25) { - zetaFMt = 0.5 * (Mt * Mt); - } - break; - default: /*--- Base production term for SST-1994 and SST-2003 ---*/ P_Base = StrainMag_i; @@ -897,15 +831,10 @@ class CSourcePieceWise_TurbSST final : public CNumerics { pw = max(pw, sust_w); } - if (sstParsedOptions.production == SST_OPTIONS::COMP_Sarkar) { - const su2double Dilatation_Sarkar = -0.15 * pk * Mt + 0.2 * beta_star * (1.0 +zetaFMt) * Density_i * ScalarVar_i[1] * ScalarVar_i[0] * Mt * Mt; - pk += Dilatation_Sarkar; - } - /*--- 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 dk = beta_star * Density_i * ScalarVar_i[1] * ScalarVar_i[0]; + su2double dw = beta_blended * Density_i * ScalarVar_i[1] * ScalarVar_i[1]; /*--- LM model coupling with production and dissipation term for k transport equation---*/ if (config->GetKind_Trans_Model() == TURB_TRANS_MODEL::LM) { @@ -933,10 +862,10 @@ class CSourcePieceWise_TurbSST final : public CNumerics { /*--- Implicit part ---*/ - Jacobian_i[0][0] = -beta_star * ScalarVar_i[1] * Volume * (1.0 + zetaFMt); - Jacobian_i[0][1] = -beta_star * ScalarVar_i[0] * Volume * (1.0 + zetaFMt); + Jacobian_i[0][0] = -beta_star * ScalarVar_i[1] * Volume; + Jacobian_i[0][1] = -beta_star * ScalarVar_i[0] * Volume; 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); + Jacobian_i[1][1] = -2.0 * beta_blended * ScalarVar_i[1] * Volume; } AD::SetPreaccOut(Residual, nVar); diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index 87700590937..d498b84c225 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -590,7 +590,7 @@ class CEulerSolver : public CFVMFlowSolverBaseGetnMarker(); iMarker++) { if ((config->GetMarker_All_KindBC(iMarker) != INTERNAL_BOUNDARY) && - (config->GetMarker_All_KindBC(iMarker) != SYMMETRY_PLANE) && - (config->GetMarker_All_KindBC(iMarker) != EULER_WALL) && (config->GetMarker_All_KindBC(iMarker) != NEARFIELD_BOUNDARY) && (config->GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) { @@ -669,8 +667,6 @@ class CFVMFlowSolverBase : public CSolver { for (unsigned short iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) { if ((config->GetMarker_All_KindBC(iMarker) != INTERNAL_BOUNDARY) && - (config->GetMarker_All_KindBC(iMarker) != SYMMETRY_PLANE) && - (config->GetMarker_All_KindBC(iMarker) != EULER_WALL) && (config->GetMarker_All_KindBC(iMarker) != NEARFIELD_BOUNDARY) && (config->GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) { @@ -1099,21 +1095,22 @@ class CFVMFlowSolverBase : public CSolver { /*! * \brief Store of a set of provided inlet profile values at a vertex. * \param[in] val_inlet - vector containing the inlet values for the current vertex. - * \param[in] iMarker - Index of the surface marker. + * \param[in] iMarker - Surface marker where the coefficient is computed. * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. */ void SetInletAtVertex(const su2double* val_inlet, unsigned short iMarker, unsigned long iVertex) final; /*! - * \brief Get the set of values imposed at an inlet. - * \param[in] iMarker - Index of the surface marker. - * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. + * \brief Get the set of value imposed at an inlet. + * \param[in] val_inlet - vector returning the inlet values for the current vertex. + * \param[in] val_inlet_point - Node index where the inlet is being set. + * \param[in] val_kind_marker - Enumerated type for the particular inlet type. * \param[in] geometry - Geometrical definition of the problem. - * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. + * \param config - Definition of the particular problem. * \return Value of the face area at the vertex. */ - su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, - const CGeometry* geometry, su2double* val_inlet) const final; + su2double GetInletAtVertex(su2double* val_inlet, unsigned long val_inlet_point, unsigned short val_kind_marker, + string val_marker, const CGeometry* geometry, const CConfig* config) const final; /*! * \author T. Kattmann diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl index f60db438e18..eb3edb511db 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl @@ -386,7 +386,7 @@ void CFVMFlowSolverBase::SetPrimitive_Gradient_GG(CGeometry* geometry, con const auto comm = reconstruction? MPI_QUANTITIES::PRIMITIVE_GRAD_REC : MPI_QUANTITIES::PRIMITIVE_GRADIENT; const auto commPer = reconstruction? PERIODIC_PRIM_GG_R : PERIODIC_PRIM_GG; - computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, prim_idx.Velocity(), gradient); + computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, gradient); } template @@ -411,7 +411,7 @@ void CFVMFlowSolverBase::SetPrimitive_Gradient_LS(CGeometry* geometry, con const auto comm = reconstruction? MPI_QUANTITIES::PRIMITIVE_GRAD_REC : MPI_QUANTITIES::PRIMITIVE_GRADIENT; computeGradientsLeastSquares(this, comm, commPer, *geometry, *config, weighted, - primitives, 0, nPrimVarGrad, prim_idx.Velocity(), gradient, rmatrix); + primitives, 0, nPrimVarGrad, gradient, rmatrix); } template @@ -722,48 +722,73 @@ void CFVMFlowSolverBase::SetInletAtVertex(const su2double* val_inlet, unsi } template -su2double CFVMFlowSolverBase::GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, - const CGeometry* geometry, su2double* val_inlet) const { - const auto T_position = nDim; - const auto P_position = nDim + 1; - const auto FlowDir_position = nDim + 2; - val_inlet[T_position] = Inlet_Ttotal[iMarker][iVertex]; - val_inlet[P_position] = Inlet_Ptotal[iMarker][iVertex]; - for (unsigned short iDim = 0; iDim < nDim; iDim++) { - val_inlet[FlowDir_position + iDim] = Inlet_FlowDir[iMarker][iVertex][iDim]; +su2double CFVMFlowSolverBase::GetInletAtVertex(su2double* val_inlet, unsigned long val_inlet_point, + unsigned short val_kind_marker, string val_marker, + const CGeometry* geometry, const CConfig* config) const { + /*--- Local variables ---*/ + + unsigned short iMarker, iDim; + unsigned long iPoint, iVertex; + su2double Area = 0.0; + su2double Normal[3] = {0.0, 0.0, 0.0}; + + /*--- Alias positions within inlet file for readability ---*/ + + unsigned short T_position = nDim; + unsigned short P_position = nDim + 1; + unsigned short FlowDir_position = nDim + 2; + + if (val_kind_marker == INLET_FLOW) { + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) && + (config->GetMarker_All_TagBound(iMarker) == val_marker)) { + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + + if (iPoint == val_inlet_point) { + /*-- Compute boundary face area for this vertex. ---*/ + + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + Area = GeometryToolbox::Norm(nDim, Normal); + + /*--- Access and store the inlet variables for this vertex. ---*/ + + val_inlet[T_position] = Inlet_Ttotal[iMarker][iVertex]; + val_inlet[P_position] = Inlet_Ptotal[iMarker][iVertex]; + for (iDim = 0; iDim < nDim; iDim++) { + val_inlet[FlowDir_position + iDim] = Inlet_FlowDir[iMarker][iVertex][iDim]; + } + + /*--- Exit once we find the point. ---*/ + + return Area; + } + } + } + } } - /*--- Compute boundary face area for this vertex. ---*/ + /*--- If we don't find a match, then the child point is not on the + current inlet boundary marker. Return zero area so this point does + not contribute to the restriction operator and continue. ---*/ - su2double Normal[MAXNDIM] = {0.0}; - geometry->vertex[iMarker][iVertex]->GetNormal(Normal); - return GeometryToolbox::Norm(nDim, Normal); + return Area; } template void CFVMFlowSolverBase::SetUniformInlet(const CConfig* config, unsigned short iMarker) { if (config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) { - const string Marker_Tag = config->GetMarker_All_TagBound(iMarker); - const su2double p_total = config->GetInletPtotal(Marker_Tag); - const su2double t_total = config->GetInletTtotal(Marker_Tag); - const su2double* flow_dir = config->GetInletFlowDir(Marker_Tag); + string Marker_Tag = config->GetMarker_All_TagBound(iMarker); + su2double p_total = config->GetInletPtotal(Marker_Tag); + su2double t_total = config->GetInletTtotal(Marker_Tag); + auto flow_dir = config->GetInletFlowDir(Marker_Tag); for (unsigned long iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { Inlet_Ttotal[iMarker][iVertex] = t_total; Inlet_Ptotal[iMarker][iVertex] = p_total; for (unsigned short iDim = 0; iDim < nDim; iDim++) Inlet_FlowDir[iMarker][iVertex][iDim] = flow_dir[iDim]; } - } else if (config->GetMarker_All_KindBC(iMarker) == SUPERSONIC_INLET) { - const string Marker_Tag = config->GetMarker_All_TagBound(iMarker); - const su2double p = config->GetInlet_Pressure(Marker_Tag); - const su2double t = config->GetInlet_Temperature(Marker_Tag); - const su2double* vel = config->GetInlet_Velocity(Marker_Tag); - for (unsigned long iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { - Inlet_Ttotal[iMarker][iVertex] = t; - Inlet_Ptotal[iMarker][iVertex] = p; - for (unsigned short iDim = 0; iDim < nDim; iDim++) Inlet_FlowDir[iMarker][iVertex][iDim] = vel[iDim]; - } } else { /*--- For now, non-inlets just get set to zero. In the future, we can do more customization for other boundary types here. ---*/ @@ -1064,7 +1089,7 @@ void CFVMFlowSolverBase::PushSolutionBackInTime(unsigned long TimeIter, bo CSolver*** solver_container, CGeometry** geometry, CConfig* config) { /*--- Push back the initial condition to previous solution containers - for a 1st-order restart or when simply initializing to freestream. ---*/ + for a 1st-order restart or when simply intitializing to freestream. ---*/ for (unsigned short iMesh = 0; iMesh <= config->GetnMGLevels(); iMesh++) { solver_container[iMesh][FLOW_SOL]->GetNodes()->Set_Solution_time_n(); @@ -1107,127 +1132,248 @@ void CFVMFlowSolverBase::PushSolutionBackInTime(unsigned long TimeIter, bo } } -template -void CFVMFlowSolverBase::BC_Sym_Plane(CGeometry* geometry, CSolver** solver_container, CNumerics* conv_numerics, - CNumerics* visc_numerics, CConfig* config, unsigned short val_marker) { - const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); - const auto iVel = prim_idx.Velocity(); +template +void CFVMFlowSolverBase::BC_Sym_Plane(CGeometry* geometry, CSolver** solver_container, CNumerics* conv_numerics, + CNumerics* visc_numerics, CConfig* config, unsigned short val_marker) { + unsigned short iDim, iVar; + unsigned long iVertex, iPoint; - /*--- Blazek chapter 8.: - * The components of the momentum residual normal to the symmetry plane are zeroed out. - * The gradients have already been corrected acording to Eq. (8.40). - * Contrary to Blazek we keep some scalar fluxes computed on the boundary to improve stability (see below). ---*/ + bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); + bool viscous = config->GetViscous(); + bool preprocessed = false; - /*--- Loop over all the vertices on this boundary marker. ---*/ + /*--- Allocation of variables necessary for convective fluxes. ---*/ + su2double Area, ProjVelocity_i, *V_reflected, *V_domain, Normal[MAXNDIM] = {0.0}, UnitNormal[MAXNDIM] = {0.0}; - 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(); + /*--- Allocation of variables necessary for viscous fluxes. ---*/ + su2double ProjGradient, ProjNormVelGrad, ProjTangVelGrad, TangentialNorm, + Tangential[MAXNDIM] = {0.0}, GradNormVel[MAXNDIM] = {0.0}, GradTangVel[MAXNDIM] = {0.0}; - /*--- Halo points do not need to be considered. ---*/ - if (!geometry->nodes->GetDomain(iPoint)) continue; + /*--- Allocation of primitive gradient arrays for viscous fluxes. ---*/ + su2activematrix Grad_Reflected(nPrimVarGrad, nDim); - /*--- Get the normal of the current symmetry. This may be the original normal of the vertex - * or a modified normal if there are intersecting symmetries. ---*/ - - su2double Normal[MAXNDIM] = {}, UnitNormal[MAXNDIM] = {}; - geometry->vertex[val_marker][iVertex]->GetNormal(Normal); - const auto it = geometry->symmetryNormals[val_marker].find(iVertex); + /*--- Loop over all the vertices on this boundary marker. ---*/ - if (it != geometry->symmetryNormals[val_marker].end()) { - for (auto iDim = 0u; iDim < nDim; iDim++) UnitNormal[iDim] = it->second[iDim]; - } else { - const su2double Area = GeometryToolbox::Norm(nDim, Normal); - for (auto iDim = 0u; iDim < nDim; iDim++) UnitNormal[iDim] = Normal[iDim] / Area; - } + SU2_OMP_FOR_DYN(OMP_MIN_SIZE) + for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { + if (!preprocessed || geometry->bound_is_straight[val_marker] != true) { + /*----------------------------------------------------------------------------------------------*/ + /*--- Preprocessing: ---*/ + /*--- Compute the unit normal and (in case of viscous flow) a corresponding unit tangential ---*/ + /*--- to that normal. On a straight(2D)/plane(3D) boundary these two vectors are constant. ---*/ + /*--- This circumstance is checked in geometry->ComputeSurf_Straightness(...) and stored ---*/ + /*--- such that the recomputation does not occur for each node. On true symmetry planes, the ---*/ + /*--- normal is constant but this routines is used for Symmetry, Euler-Wall in inviscid flow ---*/ + /*--- and Euler Wall in viscous flow as well. In the latter curvy boundaries are likely to ---*/ + /*--- happen. In doubt, the conditional above which checks straightness can be thrown out ---*/ + /*--- such that the recomputation is done for each node (which comes with a tiny performance ---*/ + /*--- penalty). ---*/ + /*----------------------------------------------------------------------------------------------*/ + + preprocessed = true; + + /*--- Normal vector for a random vertex (zero) on this marker (negate for outward convention). ---*/ + geometry->vertex[val_marker][iVertex]->GetNormal(Normal); + for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; + + /*--- Compute unit normal, to be used for unit tangential, projected velocity and velocity + component gradients. ---*/ + Area = GeometryToolbox::Norm(nDim, Normal); - su2double* V_reflected = GetCharacPrimVar(val_marker, iVertex); + for (iDim = 0; iDim < nDim; iDim++) UnitNormal[iDim] = -Normal[iDim] / Area; - /*--- Grid movement ---*/ - if (dynamic_grid) - conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint), geometry->nodes->GetGridVel(iPoint)); + /*--- Preprocessing: Compute unit tangential, the direction is arbitrary as long as + t*n=0 && |t|_2 = 1 ---*/ + if (viscous) { + switch (nDim) { + case 2: { + Tangential[0] = -UnitNormal[1]; + Tangential[1] = UnitNormal[0]; + break; + } + case 3: { + /*--- n = ai + bj + ck, if |b| > |c| ---*/ + if (abs(UnitNormal[1]) > abs(UnitNormal[2])) { + /*--- t = bi + (c-a)j - bk ---*/ + Tangential[0] = UnitNormal[1]; + Tangential[1] = UnitNormal[2] - UnitNormal[0]; + Tangential[2] = -UnitNormal[1]; + } else { + /*--- t = ci - cj + (b-a)k ---*/ + Tangential[0] = UnitNormal[2]; + Tangential[1] = -UnitNormal[2]; + Tangential[2] = UnitNormal[1] - UnitNormal[0]; + } + /*--- Make it a unit vector. ---*/ + TangentialNorm = sqrt(pow(Tangential[0], 2) + pow(Tangential[1], 2) + pow(Tangential[2], 2)); + Tangential[0] = Tangential[0] / TangentialNorm; + Tangential[1] = Tangential[1] / TangentialNorm; + Tangential[2] = Tangential[2] / TangentialNorm; + break; + } + } // switch + } // if viscous + } // if bound_is_straight + + iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); + + /*--- Check if the node belongs to the domain (i.e., not a halo node) ---*/ + if (geometry->nodes->GetDomain(iPoint)) { + /*-------------------------------------------------------------------------------*/ + /*--- Step 1: For the convective fluxes, create a reflected state of the ---*/ + /*--- Primitive variables by copying all interior values to the ---*/ + /*--- reflected. Only the velocity is mirrored along the symmetry ---*/ + /*--- axis. Based on the Upwind_Residual routine. ---*/ + /*-------------------------------------------------------------------------------*/ + + /*--- Allocate the reflected state at the symmetry boundary. ---*/ + 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). ---*/ + geometry->vertex[val_marker][iVertex]->GetNormal(Normal); + for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; + conv_numerics->SetNormal(Normal); + + /*--- Get current solution at this boundary node ---*/ + V_domain = nodes->GetPrimitive(iPoint); + + /*--- Set the reflected state based on the boundary node. Scalars are copied and + the velocity is mirrored along the symmetry boundary, i.e. the velocity in + normal direction is substracted twice. ---*/ + for (iVar = 0; iVar < nPrimVar; iVar++) V_reflected[iVar] = nodes->GetPrimitive(iPoint, iVar); + + /*--- Compute velocity in normal direction (ProjVelcity_i=(v*n)) und substract twice from + velocity in normal direction: v_r = v - 2 (v*n)n ---*/ + 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); + } - /*--- 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 (iDim = 0; iDim < nDim; iDim++) + V_reflected[iDim + 1] = nodes->GetVelocity(iPoint, iDim) - 2.0 * ProjVelocity_i * UnitNormal[iDim]; - for (auto iVar = 0u; iVar < nPrimVar; iVar++) - V_reflected[iVar] = nodes->GetPrimitive(iPoint, iVar); + /*--- Set Primitive and Secondary for numerics class. ---*/ + conv_numerics->SetPrimitive(V_domain, V_reflected); + conv_numerics->SetSecondary(nodes->GetSecondary(iPoint), nodes->GetSecondary(iPoint)); - 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); + /*--- Compute the residual using an upwind scheme. ---*/ - for (auto iDim = 0u; iDim < nDim; iDim++) - V_reflected[iDim + iVel] = nodes->GetVelocity(iPoint, iDim) - ProjVelocity_i * UnitNormal[iDim]; + auto residual = conv_numerics->ComputeResidual(config); - /*--- Get current solution at this boundary node ---*/ - const su2double* V_domain = nodes->GetPrimitive(iPoint); + /*--- Update residual value ---*/ + LinSysRes.AddBlock(iPoint, residual); - /*--- Set Primitive and Secondary for numerics class. ---*/ - conv_numerics->SetPrimitive(V_domain, V_reflected); - conv_numerics->SetSecondary(nodes->GetSecondary(iPoint), nodes->GetSecondary(iPoint)); + /*--- Jacobian contribution for implicit integration. ---*/ + if (implicit) { + Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); + } - /*--- Compute the residual using an upwind scheme. ---*/ - auto residual = conv_numerics->ComputeResidual(config); + if (viscous) { + /*-------------------------------------------------------------------------------*/ + /*--- Step 2: The viscous fluxes of the Navier-Stokes equations depend on the ---*/ + /*--- Primitive variables and their gradients. The viscous numerics ---*/ + /*--- container is filled just as the convective numerics container, ---*/ + /*--- but the primitive gradients of the reflected state have to be ---*/ + /*--- determined additionally such that symmetry at the boundary is ---*/ + /*--- enforced. Based on the Viscous_Residual routine. ---*/ + /*-------------------------------------------------------------------------------*/ + + /*--- Set the normal vector and the coordinates. ---*/ + visc_numerics->SetCoord(geometry->nodes->GetCoord(iPoint), geometry->nodes->GetCoord(iPoint)); + visc_numerics->SetNormal(Normal); + + /*--- Set the primitive and Secondary variables. ---*/ + visc_numerics->SetPrimitive(V_domain, V_reflected); + visc_numerics->SetSecondary(nodes->GetSecondary(iPoint), nodes->GetSecondary(iPoint)); + + /*--- For viscous Fluxes also the gradients of the primitives need to be determined. + 1. The gradients of scalars are mirrored along the sym plane just as velocity for the primitives + 2. The gradients of the velocity components need more attention, i.e. the gradient of the + normal velocity in tangential direction is mirrored and the gradient of the tangential velocity in + normal direction is mirrored. ---*/ + + /*--- Get gradients of primitives of boundary cell ---*/ + for (iVar = 0; iVar < nPrimVarGrad; iVar++) + for (iDim = 0; iDim < nDim; iDim++) + Grad_Reflected[iVar][iDim] = nodes->GetGradient_Primitive(iPoint, iVar, iDim); - /*--- 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]; - } + /*--- Reflect the gradients for all scalars including the velocity components. + The gradients of the velocity components are set later with the + correct values: grad(V)_r = grad(V) - 2 [grad(V)*n]n, V beeing any primitive ---*/ + for (iVar = 0; iVar < nPrimVarGrad; iVar++) { + if (iVar == 0 || iVar > nDim) { // Exclude velocity component gradients - /*--- 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). ---*/ + /*--- Compute projected part of the gradient in a dot product ---*/ + ProjGradient = 0.0; + for (iDim = 0; iDim < nDim; iDim++) ProjGradient += Grad_Reflected[iVar][iDim] * UnitNormal[iDim]; - su2double* solutionOld = nodes->GetSolution_Old(iPoint); + for (iDim = 0; iDim < nDim; iDim++) + Grad_Reflected[iVar][iDim] = Grad_Reflected[iVar][iDim] - 2.0 * ProjGradient * UnitNormal[iDim]; + } + } - su2double gridVel[MAXNVAR] = {}; - if (dynamic_grid) { - for (auto iDim = 0u; iDim < nDim; iDim++) { - gridVel[iDim] = geometry->nodes->GetGridVel(iPoint)[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); + /*--- Compute gradients of normal and tangential velocity: + grad(v*n) = grad(v_x) n_x + grad(v_y) n_y (+ grad(v_z) n_z) + grad(v*t) = grad(v_x) t_x + grad(v_y) t_y (+ grad(v_z) t_z) ---*/ + for (iVar = 0; iVar < nDim; iVar++) { // counts gradient components + GradNormVel[iVar] = 0.0; + GradTangVel[iVar] = 0.0; + for (iDim = 0; iDim < nDim; iDim++) { // counts sum with unit normal/tangential + GradNormVel[iVar] += Grad_Reflected[iDim + 1][iVar] * UnitNormal[iDim]; + GradTangVel[iVar] += Grad_Reflected[iDim + 1][iVar] * Tangential[iDim]; + } } - } - } - su2double vp = 0.0; - for (auto iDim = 0u; iDim < nDim; iDim++) { - vp += (solutionOld[iVel + iDim] - gridVel[iDim]) * UnitNormal[iDim]; - } - for (auto iDim = 0u; iDim < nDim; iDim++) { - solutionOld[iVel + iDim] -= vp * UnitNormal[iDim]; - } - /*--- Keep only the tangential part of the momentum residuals. ---*/ - su2double normalRes = 0.0; - for (auto iDim = 0u; iDim < nDim; iDim++) { - normalRes += LinSysRes(iPoint, iVel + iDim) * UnitNormal[iDim]; - } - for (auto iDim = 0u; iDim < nDim; iDim++) { - LinSysRes(iPoint, iVel + iDim) -= normalRes * UnitNormal[iDim]; - } + /*--- Refelect gradients in tangential and normal direction by substracting the normal/tangential + component twice, just as done with velocity above. + grad(v*n)_r = grad(v*n) - 2 {grad([v*n])*t}t + grad(v*t)_r = grad(v*t) - 2 {grad([v*t])*n}n ---*/ + ProjNormVelGrad = 0.0; + ProjTangVelGrad = 0.0; + for (iDim = 0; iDim < nDim; iDim++) { + ProjNormVelGrad += GradNormVel[iDim] * Tangential[iDim]; // grad([v*n])*t + ProjTangVelGrad += GradTangVel[iDim] * UnitNormal[iDim]; // grad([v*t])*n + } - /*--- Jacobian contribution for implicit integration. ---*/ - if (implicit) { - Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); - } + for (iDim = 0; iDim < nDim; iDim++) { + GradNormVel[iDim] = GradNormVel[iDim] - 2.0 * ProjNormVelGrad * Tangential[iDim]; + GradTangVel[iDim] = GradTangVel[iDim] - 2.0 * ProjTangVelGrad * UnitNormal[iDim]; + } - /*--- Correction for multigrid. ---*/ - normalRes = 0.0; - su2double* Res_TruncError = nodes->GetResTruncError(iPoint); - for (auto iDim = 0u; iDim < nDim; iDim++) { - normalRes += Res_TruncError[iVel + iDim] * UnitNormal[iDim]; - } - for (auto iDim = 0u; iDim < nDim; iDim++) { - Res_TruncError[iVel + iDim] -= normalRes * UnitNormal[iDim]; - } - } + /*--- Transfer reflected gradients back into the Cartesian Coordinate system: + grad(v_x)_r = grad(v*n)_r n_x + grad(v*t)_r t_x + grad(v_y)_r = grad(v*n)_r n_y + grad(v*t)_r t_y + ( grad(v_z)_r = grad(v*n)_r n_z + grad(v*t)_r t_z ) ---*/ + for (iVar = 0; iVar < nDim; iVar++) // loops over the velocity component gradients + for (iDim = 0; iDim < nDim; iDim++) // loops over the entries of the above + Grad_Reflected[iVar + 1][iDim] = + GradNormVel[iDim] * UnitNormal[iVar] + GradTangVel[iDim] * Tangential[iVar]; + + /*--- Set the primitive gradients of the boundary and reflected state. ---*/ + visc_numerics->SetPrimVarGradient(nodes->GetGradient_Primitive(iPoint), CMatrixView(Grad_Reflected)); + + /*--- Turbulent kinetic energy. ---*/ + if (config->GetKind_Turb_Model() == TURB_MODEL::SST) + visc_numerics->SetTurbKineticEnergy(solver_container[TURB_SOL]->GetNodes()->GetSolution(iPoint, 0), + solver_container[TURB_SOL]->GetNodes()->GetSolution(iPoint, 0)); + + /*--- Compute and update residual. Note that the viscous shear stress tensor is computed in the + following routine based upon the velocity-component gradients. ---*/ + auto residual = visc_numerics->ComputeResidual(config); + + LinSysRes.SubtractBlock(iPoint, residual); + + /*--- Jacobian contribution for implicit integration. ---*/ + if (implicit) Jacobian.SubtractBlock2Diag(iPoint, residual.jacobian_i); + } // if viscous + } // if GetDomain + } // for iVertex END_SU2_OMP_FOR } diff --git a/SU2_CFD/include/solvers/CScalarSolver.inl b/SU2_CFD/include/solvers/CScalarSolver.inl index 63936187185..1777fa2e289 100644 --- a/SU2_CFD/include/solvers/CScalarSolver.inl +++ b/SU2_CFD/include/solvers/CScalarSolver.inl @@ -111,15 +111,15 @@ void CScalarSolver::CommonPreprocessing(CGeometry *geometry, const if (config->GetReconstructionGradientRequired()) { switch(config->GetKind_Gradient_Method_Recon()) { - case GREEN_GAUSS: SetSolution_Gradient_GG(geometry, config, -1, true); break; - case LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, -1, true); break; - case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, -1, true); break; + case GREEN_GAUSS: SetSolution_Gradient_GG(geometry, config, true); break; + case LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, true); break; + case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, true); break; } } switch(config->GetKind_Gradient_Method()) { - case GREEN_GAUSS: SetSolution_Gradient_GG(geometry, config, -1); break; - case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, -1); break; + case GREEN_GAUSS: SetSolution_Gradient_GG(geometry, config); break; + case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config); break; } if (limiter && muscl) SetSolution_Limiter(geometry, config); diff --git a/SU2_CFD/include/solvers/CSolver.hpp b/SU2_CFD/include/solvers/CSolver.hpp index 29c9b9d9d20..3c1062def94 100644 --- a/SU2_CFD/include/solvers/CSolver.hpp +++ b/SU2_CFD/include/solvers/CSolver.hpp @@ -543,19 +543,17 @@ class CSolver { * \brief Compute the Green-Gauss gradient of the solution. * \param[in] geometry - Geometrical definition of the problem. * \param[in] config - Definition of the particular problem. - * \param[in] idxVel - Index to velocity, -1 if no velocity is present in the solver. * \param[in] reconstruction - indicator that the gradient being computed is for upwind reconstruction. */ - void SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction = false); + void SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config, bool reconstruction = false); /*! * \brief Compute the Least Squares gradient of the solution. * \param[in] geometry - Geometrical definition of the problem. * \param[in] config - Definition of the particular problem. - * \param[in] idxVel - Index to velocity, -1 if no velocity is present in the solver. * \param[in] reconstruction - indicator that the gradient being computed is for upwind reconstruction. */ - void SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction = false); + void SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config, bool reconstruction = false); /*! * \brief Compute the Least Squares gradient of the grid velocity. @@ -1089,38 +1087,6 @@ class CSolver { CConfig *config, unsigned short val_marker) { } - /*! - * - * \brief Generalized handling of calculation of total inlet boundary condition inputs - * \param[in] conv_numerics - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] val_marker - Surface marker where the boundary condition is applied. - * \param[in] iSpan - Current spanwise position - * \param[in] SpanwisePosition - Spanwise position where flow quantaties are evaluated - */ - inline virtual void BC_Giles_Total_Inlet(CNumerics *conv_numerics, - CConfig *config, - unsigned short val_marker, - su2double *&c_avg, - su2double *&R, - su2double **&R_c_inv, - su2double **&R_c, - unsigned short iSpan, - unsigned short SpanwisePosition) { } - - /*! - * - * \brief Generalized handling of calculation of mixing plane boundary condition inputs - * \param[in] conv_numerics - Description of the numerical method. - * \param[in] val_marker - Surface marker where the boundary condition is applied. - * \param[in] SpanwisePosition - Spanwise position where flow quantaties are evaluated - */ - inline virtual void BC_Giles_Mixing(CNumerics *conv_numerics, - unsigned short val_marker, - su2double *&deltaprim, - su2double *&c_avg, - unsigned short SpanwisePosition) { } - /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. @@ -2927,7 +2893,7 @@ class CSolver { * \param[in] config - Definition of the particular problem. * \param[in] iMarker - Surface marker where the coefficient is computed. */ - inline virtual void SetUniformInlet(const CConfig* config, unsigned short iMarker) {} + inline virtual void SetUniformInlet(const CConfig* config, unsigned short iMarker) {}; /*! * \brief A virtual member @@ -2937,18 +2903,23 @@ class CSolver { */ inline virtual void SetInletAtVertex(const su2double *val_inlet, unsigned short iMarker, - unsigned long iVertex) { } + unsigned long iVertex) { }; /*! - * \brief Get the set of values imposed at an inlet. - * \param[in] iMarker - Index of the surface marker. - * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. + * \brief A virtual member + * \param[in] val_inlet - vector returning the inlet values for the current vertex. + * \param[in] val_inlet_point - Node index where the inlet is being set. + * \param[in] val_kind_marker - Enumerated type for the particular inlet type. * \param[in] geometry - Geometrical definition of the problem. - * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. + * \param config - Definition of the particular problem. * \return Value of the face area at the vertex. */ - inline virtual su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, - const CGeometry* geometry, su2double* val_inlet) const { return 0; } + inline virtual su2double GetInletAtVertex(su2double *val_inlet, + unsigned long val_inlet_point, + unsigned short val_kind_marker, + string val_marker, + const CGeometry *geometry, + const CConfig *config) const { return 0; } /*! * \brief Update the multi-grid structure for the customized boundary conditions. diff --git a/SU2_CFD/include/solvers/CSpeciesSolver.hpp b/SU2_CFD/include/solvers/CSpeciesSolver.hpp index 8b838cd0e61..4fbb9419117 100644 --- a/SU2_CFD/include/solvers/CSpeciesSolver.hpp +++ b/SU2_CFD/include/solvers/CSpeciesSolver.hpp @@ -113,15 +113,16 @@ class CSpeciesSolver : public CScalarSolver { void SetInletAtVertex(const su2double* val_inlet, unsigned short iMarker, unsigned long iVertex) override; /*! - * \brief Get the set of values imposed at an inlet. - * \param[in] iMarker - Index of the surface marker. - * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. + * \brief Get the set of value imposed at an inlet. + * \param[in] val_inlet - vector returning the inlet values for the current vertex. + * \param[in] val_inlet_point - Node index where the inlet is being set. + * \param[in] val_kind_marker - Enumerated type for the particular inlet type. * \param[in] geometry - Geometrical definition of the problem. - * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. + * \param config - Definition of the particular problem. * \return Value of the face area at the vertex. */ - su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, - const CGeometry* geometry, su2double* val_inlet) const override; + su2double GetInletAtVertex(su2double* val_inlet, unsigned long val_inlet_point, unsigned short val_kind_marker, + string val_marker, const CGeometry* geometry, const CConfig* config) const override; /*! * \brief Set a uniform inlet profile diff --git a/SU2_CFD/include/solvers/CTurbSASolver.hpp b/SU2_CFD/include/solvers/CTurbSASolver.hpp index 1bf7d929d0e..c79649799cc 100644 --- a/SU2_CFD/include/solvers/CTurbSASolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSASolver.hpp @@ -345,15 +345,20 @@ class CTurbSASolver final : public CTurbSolver { unsigned long iVertex) override; /*! - * \brief Get the set of values imposed at an inlet. - * \param[in] iMarker - Index of the surface marker. - * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. + * \brief Get the set of value imposed at an inlet. + * \param[in] val_inlet - vector returning the inlet values for the current vertex. + * \param[in] val_inlet_point - Node index where the inlet is being set. + * \param[in] val_kind_marker - Enumerated type for the particular inlet type. * \param[in] geometry - Geometrical definition of the problem. - * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. + * \param config - Definition of the particular problem. * \return Value of the face area at the vertex. */ - su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, - const CGeometry* geometry, su2double* val_inlet) const override; + su2double GetInletAtVertex(su2double *val_inlet, + unsigned long val_inlet_point, + unsigned short val_kind_marker, + string val_marker, + const CGeometry *geometry, + const CConfig *config) const override; /*! * \brief Set a uniform inlet profile diff --git a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp index 4ab59ec73a8..bdb4227a191 100644 --- a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp @@ -269,15 +269,20 @@ class CTurbSSTSolver final : public CTurbSolver { unsigned long iVertex) override; /*! - * \brief Get the set of values imposed at an inlet. - * \param[in] iMarker - Index of the surface marker. - * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. + * \brief Get the set of value imposed at an inlet. + * \param[in] val_inlet - vector returning the inlet values for the current vertex. + * \param[in] val_inlet_point - Node index where the inlet is being set. + * \param[in] val_kind_marker - Enumerated type for the particular inlet type. * \param[in] geometry - Geometrical definition of the problem. - * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. + * \param config - Definition of the particular problem. * \return Value of the face area at the vertex. */ - su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, - const CGeometry* geometry, su2double* val_inlet) const override; + su2double GetInletAtVertex(su2double *val_inlet, + unsigned long val_inlet_point, + unsigned short val_kind_marker, + string val_marker, + const CGeometry *geometry, + const CConfig *config) const override; /*! * \brief Set a uniform inlet profile diff --git a/SU2_CFD/include/variables/CEulerVariable.hpp b/SU2_CFD/include/variables/CEulerVariable.hpp index 4dc91781c4b..d2880fce420 100644 --- a/SU2_CFD/include/variables/CEulerVariable.hpp +++ b/SU2_CFD/include/variables/CEulerVariable.hpp @@ -237,7 +237,7 @@ class CEulerVariable : public CFlowVariable { * \return Value of the velocity for the dimension iDim. */ inline su2double GetVelocity(unsigned long iPoint, unsigned long iDim) const final { - return Primitive(iPoint, iDim+indices.Velocity()); + return Primitive(iPoint,iDim+indices.Velocity()); } /*! @@ -256,7 +256,7 @@ class CEulerVariable : public CFlowVariable { inline su2double GetProjVel(unsigned long iPoint, const su2double *val_vector) const final { su2double ProjVel = 0.0; for (unsigned long iDim = 0; iDim < nDim; iDim++) - ProjVel += Primitive(iPoint, iDim+indices.Velocity())*val_vector[iDim]; + ProjVel += Primitive(iPoint,iDim+indices.Velocity())*val_vector[iDim]; return ProjVel; } diff --git a/SU2_CFD/include/variables/CVariable.hpp b/SU2_CFD/include/variables/CVariable.hpp index 920f5680915..358824ae8d7 100644 --- a/SU2_CFD/include/variables/CVariable.hpp +++ b/SU2_CFD/include/variables/CVariable.hpp @@ -702,16 +702,6 @@ class CVariable { val_trunc_error[iVar] = Res_TruncError(iPoint, iVar); } - /*! - * \brief Set the truncation error. - * \param[in] iPoint - Point index. - * \param[in] val_trunc_error - Pointer to the truncation error. - */ - inline void SetResTruncError(unsigned long iPoint, su2double *val_trunc_error) { - for (unsigned long iVar = 0; iVar < nVar; iVar++) - Res_TruncError(iPoint, iVar) = val_trunc_error[iVar]; - } - /*! * \brief Set the gradient of the solution. * \param[in] iPoint - Point index. diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index 0c3c4a10c4e..645e79ff47b 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -679,6 +679,20 @@ void CDriver::InitializeGeometry(CConfig* config, CGeometry **&geometry, bool du } #endif + /*--- Check if Euler & Symmetry markers are straight/plane. This information + is used in the Euler & Symmetry boundary routines. ---*/ + if((config_container[iZone]->GetnMarker_Euler() != 0 || + config_container[iZone]->GetnMarker_SymWall() != 0) && + !fem_solver) { + + if (rank == MASTER_NODE) + cout << "Checking if Euler & Symmetry markers are straight/plane:" << endl; + + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) + geometry_container[iZone][iInst][iMesh]->ComputeSurf_Straightness(config_container[iZone], (iMesh==MESH_0) ); + + } + /*--- Keep a reference to the main (ZONE_0, INST_0, MESH_0) geometry. ---*/ main_geometry = geometry_container[ZONE_0][INST_0][MESH_0]; @@ -830,7 +844,7 @@ void CDriver::InitializeGeometryFVM(CConfig *config, CGeometry **&geometry) { /*--- Create the control volume structures ---*/ geometry[iMGlevel]->SetControlVolume(geometry[iMGlevel-1], ALLOCATE); - geometry[iMGlevel]->SetBoundControlVolume(geometry[iMGlevel-1], config, ALLOCATE); + geometry[iMGlevel]->SetBoundControlVolume(geometry[iMGlevel-1], ALLOCATE); geometry[iMGlevel]->SetCoord(geometry[iMGlevel-1]); /*--- Find closest neighbor to a surface point ---*/ @@ -1052,27 +1066,27 @@ void CDriver::PreprocessInlet(CSolver ***solver, CGeometry **geometry, CConfig * /*--- Use LoadInletProfile() routines for the particular solver. ---*/ if (rank == MASTER_NODE) { - cout << "\nReading inlet profile from file: " << config->GetInlet_FileName() << endl; + cout << endl; + cout << "Reading inlet profile from file: "; + cout << config->GetInlet_FileName() << endl; } - for (const auto marker_type : {INLET_FLOW, SUPERSONIC_INLET}) { - if (solver[MESH_0][FLOW_SOL]) { - solver[MESH_0][FLOW_SOL]->LoadInletProfile(geometry, solver, config, val_iter, FLOW_SOL, marker_type); - } - if (solver[MESH_0][TURB_SOL]) { - solver[MESH_0][TURB_SOL]->LoadInletProfile(geometry, solver, config, val_iter, TURB_SOL, marker_type); - } - if (solver[MESH_0][SPECIES_SOL]) { - solver[MESH_0][SPECIES_SOL]->LoadInletProfile(geometry, solver, config, val_iter, SPECIES_SOL, marker_type); - } + if (solver[MESH_0][FLOW_SOL]) { + solver[MESH_0][FLOW_SOL]->LoadInletProfile(geometry, solver, config, val_iter, FLOW_SOL, INLET_FLOW); + } + if (solver[MESH_0][TURB_SOL]) { + solver[MESH_0][TURB_SOL]->LoadInletProfile(geometry, solver, config, val_iter, TURB_SOL, INLET_FLOW); + } + if (solver[MESH_0][SPECIES_SOL]) { + solver[MESH_0][SPECIES_SOL]->LoadInletProfile(geometry, solver, config, val_iter, SPECIES_SOL, INLET_FLOW); } /*--- Exit if profiles were requested for a solver that is not available. ---*/ if (!config->GetFluidProblem()) { - SU2_MPI::Error("Inlet profile specification via file (C++) has not been \n" - "implemented yet for this solver.\n" - "Please set SPECIFIED_INLET_PROFILE= NO and try again.", CURRENT_FUNCTION); + SU2_MPI::Error(string("Inlet profile specification via file (C++) has not been \n") + + string("implemented yet for this solver.\n") + + string("Please set SPECIFIED_INLET_PROFILE= NO and try again."), CURRENT_FUNCTION); } } else { diff --git a/SU2_CFD/src/drivers/CMultizoneDriver.cpp b/SU2_CFD/src/drivers/CMultizoneDriver.cpp index 368a598e514..07069b4d0ab 100644 --- a/SU2_CFD/src/drivers/CMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CMultizoneDriver.cpp @@ -589,19 +589,19 @@ bool CMultizoneDriver::TransferData(unsigned short donorZone, unsigned short tar { const auto nMarkerInt = config_container[donorZone]->GetnMarker_MixingPlaneInterface() / 2; - /*--- Transfer the average value from the donorZone to the targetZone ---*/ - /*--- Loops over the mixing planes defined in the config file to find the correct mixing plane for the donor-target combination ---*/ + /*--- Transfer the average value from the donorZone to the targetZone ---*/ for (auto iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++) { interface_container[donorZone][targetZone]->AllgatherAverage(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL],solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], geometry_container[donorZone][INST_0][MESH_0],geometry_container[targetZone][INST_0][MESH_0], config_container[donorZone], config_container[targetZone], iMarkerInt ); } - /*--- Set average value donorZone->targetZone ---*/ - interface_container[donorZone][targetZone]->SetAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL],solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], donorZone); - - /*--- Set average geometrical properties FROM donorZone IN targetZone ---*/ - geometry_container[targetZone][INST_0][MESH_0]->SetAvgTurboGeoValues(config_container[iZone],geometry_container[iZone][INST_0][MESH_0], iZone); + for (donorZone = 0; donorZone < nZone; donorZone++) { + if (interface_types[donorZone][targetZone]==MIXING_PLANE) { + interface_container[donorZone][targetZone]->GatherAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL],solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], donorZone); + geometry_container[targetZone][INST_0][MESH_0]->SetAvgTurboGeoValues(config_container[iZone],geometry_container[iZone][INST_0][MESH_0], iZone); + } + } break; } @@ -623,7 +623,7 @@ bool CMultizoneDriver::TransferData(unsigned short donorZone, unsigned short tar void CMultizoneDriver::SetTurboPerformance() { for (auto donorZone = 1u; donorZone < nZone; donorZone++) { - interface_container[donorZone][ZONE_0]->SetAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL], + interface_container[donorZone][ZONE_0]->GatherAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL], solver_container[ZONE_0][INST_0][MESH_0][FLOW_SOL], donorZone); } diff --git a/SU2_CFD/src/integration/CIntegration.cpp b/SU2_CFD/src/integration/CIntegration.cpp index 65406ae4e16..f53d50639cc 100644 --- a/SU2_CFD/src/integration/CIntegration.cpp +++ b/SU2_CFD/src/integration/CIntegration.cpp @@ -91,7 +91,7 @@ void CIntegration::Space_Integration(CGeometry *geometry, BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { if (config->GetBoolTurbomachinery()){ - /*--- Average quantities at the inflow and outflow boundaries ---*/ + /*--- Average quantities at the inflow and outflow boundaries ---*/ solver_container[MainSolver]->TurboAverageProcess(solver_container, geometry,config,INFLOW); solver_container[MainSolver]->TurboAverageProcess(solver_container, geometry, config, OUTFLOW); } @@ -103,6 +103,9 @@ void CIntegration::Space_Integration(CGeometry *geometry, for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { KindBC = config->GetMarker_All_KindBC(iMarker); switch (KindBC) { + case EULER_WALL: + solver_container[MainSolver]->BC_Euler_Wall(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); + break; case ACTDISK_INLET: solver_container[MainSolver]->BC_ActDisk_Inlet(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); break; @@ -141,6 +144,9 @@ void CIntegration::Space_Integration(CGeometry *geometry, case FAR_FIELD: solver_container[MainSolver]->BC_Far_Field(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); break; + case SYMMETRY_PLANE: + solver_container[MainSolver]->BC_Sym_Plane(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); + break; } } @@ -189,13 +195,6 @@ void CIntegration::Space_Integration(CGeometry *geometry, solver_container[MainSolver]->BC_Periodic(geometry, solver_container, conv_bound_numerics, config); } - - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if (config->GetMarker_All_KindBC(iMarker)==SYMMETRY_PLANE) - solver_container[MainSolver]->BC_Sym_Plane(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); - else if (config->GetMarker_All_KindBC(iMarker)==EULER_WALL) - solver_container[MainSolver]->BC_Euler_Wall(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); - } //AD::ResumePreaccumulation(pausePreacc); } diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index 3ae5d0787b4..bad7c06dae1 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -291,7 +291,7 @@ void CInterface::PreprocessAverage(CGeometry *donor_geometry, CGeometry *target_ for(iSpan = 1; iSpan SpanValuesDonor[jSpan]){ @@ -639,3 +639,12 @@ void CInterface::AllgatherAverage(CSolver *donor_solution, CSolver *target_solut delete [] avgKineTarget; delete [] avgOmegaTarget; } + +void CInterface::GatherAverageValues(CSolver *donor_solution, CSolver *target_solution, unsigned short donorZone){ + + + /*--- here we made the strong assumption that the mesh zone order + * follows the same order of the turbomachinery markers ---*/ + SetAverageValues(donor_solution, target_solution, donorZone); + +} diff --git a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp index 24fd1602e6e..27173f3357e 100644 --- a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp @@ -471,10 +471,6 @@ void CDiscAdjFluidIteration::SetDependencies(CSolver***** solver, CGeometry**** solvers0[FLOW_SOL]->InitiateComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); solvers0[FLOW_SOL]->CompleteComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); - if (config[iZone]->GetBoolTurbomachinery()) { - solvers0[FLOW_SOL]->TurboAverageProcess(solvers0, geometry0, config[iZone], INFLOW); - solvers0[FLOW_SOL]->TurboAverageProcess(solvers0, geometry0, config[iZone], OUTFLOW); - } if (turbulent && !config[iZone]->GetFrozen_Visc_Disc()) { solvers0[TURB_SOL]->Postprocessing(geometry0, solvers0, config[iZone], MESH_0); diff --git a/SU2_CFD/src/numerics/flow/convection/fds.cpp b/SU2_CFD/src/numerics/flow/convection/fds.cpp index eeffeb1cb57..4a83dfe275d 100644 --- a/SU2_CFD/src/numerics/flow/convection/fds.cpp +++ b/SU2_CFD/src/numerics/flow/convection/fds.cpp @@ -104,7 +104,7 @@ CNumerics::ResidualType<> CUpwFDSInc_Flow::ComputeResidual(const CConfig *config Area = GeometryToolbox::Norm(nDim, Normal); - /*--- Compute the unit normal vector ---*/ + /*--- Compute and unitary normal vector ---*/ for (iDim = 0; iDim < nDim; iDim++) { UnitNormal[iDim] = Normal[iDim]/Area; diff --git a/SU2_CFD/src/numerics/flow/convection/hllc.cpp b/SU2_CFD/src/numerics/flow/convection/hllc.cpp index d94b44759a7..d574f929b20 100644 --- a/SU2_CFD/src/numerics/flow/convection/hllc.cpp +++ b/SU2_CFD/src/numerics/flow/convection/hllc.cpp @@ -31,7 +31,7 @@ CUpwHLLC_Flow::CUpwHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, const CConfig* config) : CNumerics(val_nDim, val_nVar, config) { implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - + kappa = config->GetRoe_Kappa(); /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */ dynamic_grid = config->GetDynamic_Grid(); @@ -114,19 +114,30 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) Density_j = V_j[nDim+2]; Enthalpy_j = V_j[nDim+3]; - sq_vel_i = GeometryToolbox::SquaredNorm(nDim, Velocity_i); - sq_vel_j = GeometryToolbox::SquaredNorm(nDim, Velocity_j); + + sq_vel_i = 0.0; + sq_vel_j = 0.0; + + for (iDim = 0; iDim < nDim; iDim++) { + sq_vel_i += Velocity_i[iDim] * Velocity_i[iDim]; + sq_vel_j += Velocity_j[iDim] * Velocity_j[iDim]; + } Energy_i = Enthalpy_i - Pressure_i / Density_i; Energy_j = Enthalpy_j - Pressure_j / Density_j; - SoundSpeed_i = sqrt((Enthalpy_i - 0.5 * sq_vel_i) * Gamma_Minus_One); - SoundSpeed_j = sqrt((Enthalpy_j - 0.5 * sq_vel_j) * Gamma_Minus_One); + SoundSpeed_i = sqrt( (Enthalpy_i - 0.5 * sq_vel_i) * Gamma_Minus_One ); + SoundSpeed_j = sqrt( (Enthalpy_j - 0.5 * sq_vel_j) * Gamma_Minus_One ); /*--- Projected velocities ---*/ - ProjVelocity_i = GeometryToolbox::DotProduct(nDim, Velocity_i, UnitNormal); - ProjVelocity_j = GeometryToolbox::DotProduct(nDim, Velocity_j, UnitNormal); + ProjVelocity_i = 0; + ProjVelocity_j = 0; + + for (iDim = 0; iDim < nDim; iDim++) { + ProjVelocity_i += Velocity_i[iDim] * UnitNormal[iDim]; + ProjVelocity_j += Velocity_j[iDim] * UnitNormal[iDim]; + } /*--- Projected Grid Velocity ---*/ @@ -135,7 +146,7 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) if (dynamic_grid) { for (iDim = 0; iDim < nDim; iDim++) - ProjInterfaceVel += 0.5 * (GridVel_i[iDim] + GridVel_j[iDim]) * UnitNormal[iDim]; + ProjInterfaceVel += 0.5 * ( GridVel_i[iDim] + GridVel_j[iDim] )*UnitNormal[iDim]; SoundSpeed_i -= ProjInterfaceVel; SoundSpeed_j += ProjInterfaceVel; @@ -148,11 +159,14 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) Rrho = ( sqrt(Density_i) + sqrt(Density_j) ); + sq_velRoe = 0.0; + RoeProjVelocity = - ProjInterfaceVel; + for (iDim = 0; iDim < nDim; iDim++) { RoeVelocity[iDim] = ( Velocity_i[iDim] * sqrt(Density_i) + Velocity_j[iDim] * sqrt(Density_j) ) / Rrho; + sq_velRoe += RoeVelocity[iDim] * RoeVelocity[iDim]; + RoeProjVelocity += RoeVelocity[iDim] * UnitNormal[iDim]; } - sq_velRoe = GeometryToolbox::SquaredNorm(nDim, RoeVelocity); - RoeProjVelocity = GeometryToolbox::DotProduct(nDim, RoeVelocity, UnitNormal) - ProjInterfaceVel; /*--- Mean Roe variables iPoint and jPoint ---*/ @@ -161,8 +175,10 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Roe-averaged speed of sound ---*/ + //RoeSoundSpeed2 = Gamma_Minus_One * ( RoeEnthalpy - 0.5 * sq_velRoe ); RoeSoundSpeed = sqrt( Gamma_Minus_One * ( RoeEnthalpy - 0.5 * sq_velRoe ) ) - ProjInterfaceVel; + /*--- Speed of sound at L and R ---*/ sL = min( RoeProjVelocity - RoeSoundSpeed, ProjVelocity_i - SoundSpeed_i); @@ -198,8 +214,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) IntermediateState[0] = rhoSL * Density_i; for (iDim = 0; iDim < nDim; iDim++) - IntermediateState[iDim+1] = rhoSL * Density_i * Velocity_i[iDim] + (pStar - Pressure_i) * UnitNormal[iDim] / (sL - sM); - IntermediateState[nVar-1] = rhoSL * Density_i * Energy_i - (Pressure_i * ProjVelocity_i - pStar * sM) / (sL - sM); + IntermediateState[iDim+1] = rhoSL * ( Density_i * Velocity_i[iDim] + ( pStar - Pressure_i ) / ( sL - ProjVelocity_i ) * UnitNormal[iDim] ) ; + IntermediateState[nVar-1] = rhoSL * ( Density_i * Energy_i - ( Pressure_i * ProjVelocity_i - pStar * sM) / ( sL - ProjVelocity_i ) ); Flux[0] = sM * IntermediateState[0]; @@ -227,8 +243,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) IntermediateState[0] = rhoSR * Density_j; for (iDim = 0; iDim < nDim; iDim++) - IntermediateState[iDim+1] = rhoSR * Density_j * Velocity_j[iDim] + (pStar - Pressure_j) * UnitNormal[iDim] / (sR - sM); - IntermediateState[nVar-1] = rhoSR * Density_j * Energy_j - (Pressure_j * ProjVelocity_j - pStar * sM) / (sR - sM); + IntermediateState[iDim+1] = rhoSR * ( Density_j * Velocity_j[iDim] + ( pStar - Pressure_j ) / ( sR - ProjVelocity_j ) * UnitNormal[iDim] ) ; + IntermediateState[nVar-1] = rhoSR * ( Density_j * Energy_j - ( Pressure_j * ProjVelocity_j - pStar * sM ) / ( sR - ProjVelocity_j ) ); Flux[0] = sM * IntermediateState[0]; @@ -238,12 +254,14 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) } } - for (iVar = 0; iVar < nVar; iVar++) Flux[iVar] *= Area; - /*--- Return early if the Jacobians do not need to be computed. ---*/ + for (iVar = 0; iVar < nVar; iVar++) + Flux[iVar] *= Area; - if (!implicit) return ResidualType<>(Flux, Jacobian_i, Jacobian_j); + /*--- Return early if the Jacobians do not need to be computed. ---*/ + if (implicit) + { if (sM > 0.0) { if (sL > 0.0) { @@ -519,20 +537,27 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) } } - /*--- Scale Jacobians by area (from Flux *= Area). ---*/ + + /*--- Jacobians of the inviscid flux, scale = k because Flux ~ 0.5*(fc_i+fc_j)*Normal ---*/ + + Area *= kappa; + for (iVar = 0; iVar < nVar; iVar++) { for (jVar = 0; jVar < nVar; jVar++) { - Jacobian_i[iVar][jVar] *= Area; - Jacobian_j[iVar][jVar] *= Area; + Jacobian_i[iVar][jVar] *= Area; + Jacobian_j[iVar][jVar] *= Area; } } + } // end if implicit + return ResidualType<>(Flux, Jacobian_i, Jacobian_j); + } CUpwGeneralHLLC_Flow::CUpwGeneralHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, const CConfig* config) : CNumerics(val_nDim, val_nVar, config) { implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - + kappa = config->GetRoe_Kappa(); /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */ dynamic_grid = config->GetDynamic_Grid(); @@ -767,12 +792,13 @@ CNumerics::ResidualType<> CUpwGeneralHLLC_Flow::ComputeResidual(const CConfig* c } } - for (iVar = 0; iVar < nVar; iVar++) Flux[iVar] *= Area; + for (iVar = 0; iVar < nVar; iVar++) + Flux[iVar] *= Area; /*--- Return early if the Jacobians do not need to be computed. ---*/ - if (!implicit) return ResidualType<>(Flux, Jacobian_i, Jacobian_j); - + if (implicit) + { if (sM > 0.0) { if (sL > 0.0) { @@ -1064,14 +1090,21 @@ CNumerics::ResidualType<> CUpwGeneralHLLC_Flow::ComputeResidual(const CConfig* c } } - /*--- Scale Jacobians by area (from Flux *= Area). ---*/ + + /*--- Jacobians of the inviscid flux, scale = kappa because Flux ~ 0.5*(fc_i+fc_j)*Normal ---*/ + + Area *= kappa; + for (iVar = 0; iVar < nVar; iVar++) { for (jVar = 0; jVar < nVar; jVar++) { Jacobian_i[iVar][jVar] *= Area; Jacobian_j[iVar][jVar] *= Area; } } + } // end if implicit + return ResidualType<>(Flux, Jacobian_i, Jacobian_j); + } void CUpwGeneralHLLC_Flow::VinokurMontagne() { diff --git a/SU2_CFD/src/numerics/flow/convection/roe.cpp b/SU2_CFD/src/numerics/flow/convection/roe.cpp index 7b122119009..07c69f2030d 100644 --- a/SU2_CFD/src/numerics/flow/convection/roe.cpp +++ b/SU2_CFD/src/numerics/flow/convection/roe.cpp @@ -34,7 +34,7 @@ CUpwRoeBase_Flow::CUpwRoeBase_Flow(unsigned short val_nDim, unsigned short val_n implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */ dynamic_grid = config->GetDynamic_Grid(); - kappa = config->GetRoe_Kappa(); + kappa = config->GetRoe_Kappa(); // 1 is unstable Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; @@ -109,7 +109,7 @@ CNumerics::ResidualType<> CUpwRoeBase_Flow::ComputeResidual(const CConfig* confi AD::SetPreaccIn(Dissipation_i); AD::SetPreaccIn(Dissipation_j); } - /*--- Face area (norm of the normal vector) and unit normal ---*/ + /*--- Face area (norm or the normal vector) and unit normal ---*/ Area = GeometryToolbox::Norm(nDim, Normal); @@ -683,7 +683,7 @@ CUpwGeneralRoe_Flow::CUpwGeneralRoe_Flow(unsigned short val_nDim, unsigned short implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */ dynamic_grid = config->GetDynamic_Grid(); - kappa = config->GetRoe_Kappa(); + kappa = config->GetRoe_Kappa(); // 1 is unstable Flux = new su2double [nVar]; diff --git a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp index b72305e0be2..17128c7fec8 100644 --- a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp @@ -952,11 +952,11 @@ void CAdjEulerSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contai /*--- Gradient computation for MUSCL reconstruction. ---*/ if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS) - SetSolution_Gradient_GG(geometry, config, 1, true); + SetSolution_Gradient_GG(geometry, config, true); if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES) - SetSolution_Gradient_LS(geometry, config, 1, true); + SetSolution_Gradient_LS(geometry, config, true); if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES) - SetSolution_Gradient_LS(geometry, config, 1, true); + SetSolution_Gradient_LS(geometry, config, true); /*--- Limiter computation ---*/ @@ -970,8 +970,8 @@ void CAdjEulerSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contai if ((center_jst) && (iMesh == MESH_0)) { SetCentered_Dissipation_Sensor(geometry, config); SetUndivided_Laplacian(geometry, config); - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, 1); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, 1); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config); } } diff --git a/SU2_CFD/src/solvers/CAdjNSSolver.cpp b/SU2_CFD/src/solvers/CAdjNSSolver.cpp index 3a219b06ea9..c07425a2bdc 100644 --- a/SU2_CFD/src/solvers/CAdjNSSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjNSSolver.cpp @@ -345,14 +345,14 @@ void CAdjNSSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container if (config->GetReconstructionGradientRequired()) { if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS) - SetSolution_Gradient_GG(geometry, config, 1, true); + SetSolution_Gradient_GG(geometry, config, true); if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES) - SetSolution_Gradient_LS(geometry, config, 1, true); + SetSolution_Gradient_LS(geometry, config, true); if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES) - SetSolution_Gradient_LS(geometry, config, 1, true); + SetSolution_Gradient_LS(geometry, config, true); } - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, 1); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, 1); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config); /*--- Limiter computation (upwind reconstruction) ---*/ @@ -361,8 +361,8 @@ void CAdjNSSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container /*--- Compute gradients adj for viscous term coupling ---*/ if ((config->GetKind_Solver() == MAIN_SOLVER::ADJ_RANS) && (!config->GetFrozen_Visc_Cont())) { - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) solver_container[ADJTURB_SOL]->SetSolution_Gradient_GG(geometry, config, 1); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) solver_container[ADJTURB_SOL]->SetSolution_Gradient_LS(geometry, config, 1); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) solver_container[ADJTURB_SOL]->SetSolution_Gradient_GG(geometry, config); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) solver_container[ADJTURB_SOL]->SetSolution_Gradient_LS(geometry, config); } /*--- Artificial dissipation for centered schemes ---*/ diff --git a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp index cb4a194ca95..3d5b6eb7024 100644 --- a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp @@ -257,12 +257,12 @@ void CAdjTurbSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contain Jacobian.SetValZero(); /*--- Gradient of the adjoint turbulent variables ---*/ - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, -1); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, -1); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config); /*--- Gradient of the turbulent variables ---*/ - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) solver_container[TURB_SOL]->SetSolution_Gradient_GG(geometry, config, -1); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) solver_container[TURB_SOL]->SetSolution_Gradient_LS(geometry, config, -1); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) solver_container[TURB_SOL]->SetSolution_Gradient_GG(geometry, config); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) solver_container[TURB_SOL]->SetSolution_Gradient_LS(geometry, config); } diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index b9e290adfc2..8e4c9a01147 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -6120,60 +6120,81 @@ void CEulerSolver::PreprocessBC_Giles(CGeometry *geometry, CConfig *config, CNum void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { - /*--- Initialisation of data structures ---*/ - - su2double *Normal = new su2double[nDim], - *turboNormal = new su2double[nDim], - *UnitNormal = new su2double[nDim], - *turboVelocity = new su2double[nDim], - *Velocity_i = new su2double[nDim], - *Velocity_b = new su2double[nDim], - *AverageTurboMach = new su2double[nDim], - *S_boundary = new su2double[8], - *delta_c = new su2double[nVar], - *cj = new su2double[nVar], - **R_Matrix = new su2double*[nVar], - *dcjs = new su2double[nVar], - *c_avg = new su2double[nVar], - **R_c = new su2double*[nVar-1], - **R_c_inv = new su2double*[nVar-1], - *R = new su2double[nVar-1], - *deltaprim = new su2double[nVar]; - - for (auto iVar = 0; iVar < nVar; iVar++) + unsigned short iDim, iVar, jVar, iSpan; + unsigned long iPoint, Point_Normal, oldVertex, k, kend, kend_max, iVertex; + su2double *UnitNormal, *turboVelocity, *turboNormal; + + su2double *Velocity_b, Velocity2_b, Enthalpy_b, Energy_b, Density_b, Pressure_b, Temperature_b; + su2double *Velocity_i, Velocity2_i, Energy_i, StaticEnergy_i, Density_i, Pressure_i; + su2double Pressure_e; + su2double *V_boundary, *V_domain, *S_boundary, *S_domain; + unsigned short iZone = config->GetiZone(); + bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); + string Marker_Tag = config->GetMarker_All_TagBound(val_marker); + bool viscous = config->GetViscous(); + unsigned short nSpanWiseSections = geometry->GetnSpanWiseSections(config->GetMarker_All_TurbomachineryFlag(val_marker)); + su2double relfacAvgCfg = config->GetGiles_RelaxFactorAverage(Marker_Tag); + su2double relfacFouCfg = config->GetGiles_RelaxFactorFourier(Marker_Tag); + su2double *Normal; + su2double TwoPiThetaFreq_Pitch, pitch,theta; + const su2double *SpanWiseValues = nullptr, *FlowDir; + su2double spanPercent, extrarelfacAvg = 0.0, deltaSpan = 0.0, relfacAvg, relfacFou, coeffrelfacAvg = 0.0; + unsigned short Turbo_Flag; + + Normal = new su2double[nDim]; + turboNormal = new su2double[nDim]; + UnitNormal = new su2double[nDim]; + turboVelocity = new su2double[nDim]; + Velocity_i = new su2double[nDim]; + Velocity_b = new su2double[nDim]; + + + su2double AverageSoundSpeed, *AverageTurboMach, AverageEntropy, AverageEnthalpy; + AverageTurboMach = new su2double[nDim]; + S_boundary = new su2double[8]; + + su2double AvgMach , *cj, GilesBeta, *delta_c, **R_Matrix, *deltaprim, **R_c_inv,**R_c, alphaIn_BC, gammaIn_BC = 0, + P_Total, T_Total, Enthalpy_BC, Entropy_BC, *R, *c_avg,*dcjs, Beta_inf2, c2js_Re, c3js_Re, cOutjs_Re, avgVel2 =0.0; + + long freq; + + delta_c = new su2double[nVar]; + deltaprim = new su2double[nVar]; + cj = new su2double[nVar]; + R_Matrix = new su2double*[nVar]; + R_c = new su2double*[nVar-1]; + R_c_inv = new su2double*[nVar-1]; + R = new su2double[nVar-1]; + c_avg = new su2double[nVar]; + dcjs = new su2double[nVar]; + + for (iVar = 0; iVar < nVar; iVar++) { R_Matrix[iVar] = new su2double[nVar]; c_avg[iVar] = 0.0; dcjs[iVar] = 0.0; } - for (auto iVar = 0; iVar < nVar-1; iVar++) + for (iVar = 0; iVar < nVar-1; iVar++) { R_c[iVar] = new su2double[nVar-1]; R_c_inv[iVar] = new su2double[nVar-1]; } - auto const I = complex(0.0,1.0); - - /*--- Compute coeff for under relaxation of Avg and Fourier Coefficient for hub and shroud---*/ - auto const Marker_Tag = config->GetMarker_All_TagBound(val_marker); - su2double relfacAvgCfg = config->GetGiles_RelaxFactorAverage(Marker_Tag); - - unsigned short nSpanWiseSections = geometry->GetnSpanWiseSections(config->GetMarker_All_TurbomachineryFlag(val_marker)); - const su2double *SpanWiseValues = nullptr; - - su2double extrarelfacAvg = 0.0, deltaSpan = 0.0, relfacAvg, relfacFou = config->GetGiles_RelaxFactorFourier(Marker_Tag), coeffrelfacAvg = 0.0; + complex I, c2ks, c2js, c3ks, c3js, cOutks, cOutjs, Beta_inf; + I = complex(0.0,1.0); + /*--- Compute coeff for under relaxation of Avg and Fourier Coefficient for hub and shroud---*/ if (nDim == 3){ extrarelfacAvg = config->GetExtraRelFacGiles(0); - auto const spanPercent = config->GetExtraRelFacGiles(1); - auto const Turbo_Flag = config->GetMarker_All_TurbomachineryFlag(val_marker); + spanPercent = config->GetExtraRelFacGiles(1); + Turbo_Flag = config->GetMarker_All_TurbomachineryFlag(val_marker); SpanWiseValues = geometry->GetSpanWiseValue(Turbo_Flag); deltaSpan = SpanWiseValues[nSpanWiseSections-1]*spanPercent; coeffrelfacAvg = (relfacAvgCfg - extrarelfacAvg)/deltaSpan; } - for (unsigned short iSpan= 0; iSpan < nSpanWiseSections ; iSpan++){ + for (iSpan= 0; iSpan < nSpanWiseSections ; iSpan++){ /*--- Compute under relaxation for the Hub and Shroud Avg and Fourier Coefficient---*/ if(nDim == 3){ if(SpanWiseValues[iSpan] <= SpanWiseValues[0] + deltaSpan){ @@ -6186,16 +6207,18 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } else{ relfacAvg = relfacAvgCfg; + relfacFou = relfacFouCfg; } } else{ { relfacAvg = relfacAvgCfg; + relfacFou = relfacFouCfg; } } GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan]); - auto AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); + AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); AverageTurboMach[0] = AverageTurboVelocity[val_marker][iSpan][0]/AverageSoundSpeed; AverageTurboMach[1] = AverageTurboVelocity[val_marker][iSpan][1]/AverageSoundSpeed; @@ -6203,32 +6226,167 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu AverageTurboMach[1] -= geometry->GetAverageTangGridVel(val_marker,iSpan)/AverageSoundSpeed; } - auto const kend = geometry->GetnFreqSpan(val_marker, iSpan); - auto const kend_max = geometry->GetnFreqSpanMax(config->GetMarker_All_TurbomachineryFlag(val_marker)); - conv_numerics->GetRMatrix(AverageSoundSpeed, AverageDensity[val_marker][iSpan], R_Matrix); + AvgMach = AverageTurboMach[0]*AverageTurboMach[0] + AverageTurboMach[1]*AverageTurboMach[1]; - su2double Pressure_e; //Useful to pass by reference + kend = geometry->GetnFreqSpan(val_marker, iSpan); + kend_max = geometry->GetnFreqSpanMax(config->GetMarker_All_TurbomachineryFlag(val_marker)); + conv_numerics->GetRMatrix(AverageSoundSpeed, AverageDensity[val_marker][iSpan], R_Matrix); switch(config->GetKind_Data_Giles(Marker_Tag)){ case TOTAL_CONDITIONS_PT: - BC_Giles_Total_Inlet(conv_numerics, config, val_marker, c_avg, R, R_c_inv, R_c, iSpan, iSpan); + /*--- Retrieve the specified total conditions for this inlet. ---*/ + P_Total = config->GetGiles_Var1(Marker_Tag); + T_Total = config->GetGiles_Var2(Marker_Tag); + FlowDir = config->GetGiles_FlowDir(Marker_Tag); + alphaIn_BC = atan(FlowDir[1]/FlowDir[0]); + + gammaIn_BC = 0; + if (nDim == 3){ + gammaIn_BC = FlowDir[2]; //atan(FlowDir[2]/FlowDir[0]); + } + + /*--- Non-dim. the inputs---*/ + P_Total /= config->GetPressure_Ref(); + T_Total /= config->GetTemperature_Ref(); + + /* --- Computes the total state --- */ + GetFluidModel()->SetTDState_PT(P_Total, T_Total); + Enthalpy_BC = GetFluidModel()->GetStaticEnergy()+ GetFluidModel()->GetPressure()/GetFluidModel()->GetDensity(); + Entropy_BC = GetFluidModel()->GetEntropy(); + + + /* --- Computes the inverse matrix R_c --- */ + conv_numerics->ComputeResJacobianGiles(GetFluidModel(), AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan], + AverageTurboVelocity[val_marker][iSpan], alphaIn_BC, gammaIn_BC, R_c, R_c_inv); + + GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan]); + AverageEnthalpy = GetFluidModel()->GetStaticEnergy() + AveragePressure[val_marker][iSpan]/AverageDensity[val_marker][iSpan]; + AverageEntropy = GetFluidModel()->GetEntropy(); + + avgVel2 = 0.0; + for (iDim = 0; iDim < nDim; iDim++) avgVel2 += AverageVelocity[val_marker][iSpan][iDim]*AverageVelocity[val_marker][iSpan][iDim]; + if (nDim == 2){ + R[0] = -(AverageEntropy - Entropy_BC); + R[1] = -(AverageTurboVelocity[val_marker][iSpan][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][iSpan][0]); + R[2] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); + } + + else{ + R[0] = -(AverageEntropy - Entropy_BC); + R[1] = -(AverageTurboVelocity[val_marker][iSpan][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][iSpan][0]); + R[2] = -(AverageTurboVelocity[val_marker][iSpan][2] - tan(gammaIn_BC)*AverageTurboVelocity[val_marker][iSpan][0]); + R[3] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); + + } + /* --- Compute the avg component c_avg = R_c^-1 * R --- */ + for (iVar = 0; iVar < nVar-1; iVar++){ + c_avg[iVar] = 0.0; + for (jVar = 0; jVar < nVar-1; jVar++){ + c_avg[iVar] += R_c_inv[iVar][jVar]*R[jVar]; + } + } break; case TOTAL_CONDITIONS_PT_1D: - BC_Giles_Total_Inlet(conv_numerics, config, val_marker, c_avg, R, R_c_inv, R_c, iSpan, nSpanWiseSections); + /*--- Retrieve the specified total conditions for this inlet. ---*/ + P_Total = config->GetGiles_Var1(Marker_Tag); + T_Total = config->GetGiles_Var2(Marker_Tag); + FlowDir = config->GetGiles_FlowDir(Marker_Tag); + alphaIn_BC = atan(FlowDir[1]/FlowDir[0]); + + gammaIn_BC = 0; + if (nDim == 3){ + // Review definition of angle + gammaIn_BC = FlowDir[2]; //atan(FlowDir[2]/FlowDir[0]); + } + + /*--- Non-dim. the inputs---*/ + P_Total /= config->GetPressure_Ref(); + T_Total /= config->GetTemperature_Ref(); + + /* --- Computes the total state --- */ + GetFluidModel()->SetTDState_PT(P_Total, T_Total); + Enthalpy_BC = GetFluidModel()->GetStaticEnergy()+ GetFluidModel()->GetPressure()/GetFluidModel()->GetDensity(); + Entropy_BC = GetFluidModel()->GetEntropy(); + + + /* --- Computes the inverse matrix R_c --- */ + conv_numerics->ComputeResJacobianGiles(GetFluidModel(), AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan], + AverageTurboVelocity[val_marker][iSpan], alphaIn_BC, gammaIn_BC, R_c, R_c_inv); + + GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][nSpanWiseSections], AverageDensity[val_marker][nSpanWiseSections]); + AverageEnthalpy = GetFluidModel()->GetStaticEnergy() + AveragePressure[val_marker][nSpanWiseSections]/AverageDensity[val_marker][nSpanWiseSections]; + AverageEntropy = GetFluidModel()->GetEntropy(); + + + avgVel2 = 0.0; + for (iDim = 0; iDim < nDim; iDim++) avgVel2 += AverageVelocity[val_marker][iSpan][iDim]*AverageVelocity[val_marker][iSpan][iDim]; + if (nDim == 2){ + R[0] = -(AverageEntropy - Entropy_BC); + R[1] = -(AverageTurboVelocity[val_marker][nSpanWiseSections][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][nSpanWiseSections][0]); + R[2] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); + } + + else{ + R[0] = -(AverageEntropy - Entropy_BC); + R[1] = -(AverageTurboVelocity[val_marker][nSpanWiseSections][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][nSpanWiseSections][0]); + R[2] = -(AverageTurboVelocity[val_marker][nSpanWiseSections][2] - tan(gammaIn_BC)*AverageTurboVelocity[val_marker][nSpanWiseSections][0]); + R[3] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); + + } + /* --- Compute the avg component c_avg = R_c^-1 * R --- */ + for (iVar = 0; iVar < nVar-1; iVar++){ + c_avg[iVar] = 0.0; + for (jVar = 0; jVar < nVar-1; jVar++){ + c_avg[iVar] += R_c_inv[iVar][jVar]*R[jVar]; + } + } break; case MIXING_IN: case MIXING_OUT: - BC_Giles_Mixing(conv_numerics, val_marker, deltaprim, c_avg, iSpan); + /* --- Compute average jump of primitive at the mixing-plane interface--- */ + deltaprim[0] = ExtAverageDensity[val_marker][iSpan] - AverageDensity[val_marker][iSpan]; + deltaprim[1] = ExtAverageTurboVelocity[val_marker][iSpan][0] - AverageTurboVelocity[val_marker][iSpan][0]; + deltaprim[2] = ExtAverageTurboVelocity[val_marker][iSpan][1] - AverageTurboVelocity[val_marker][iSpan][1]; + if (nDim == 2){ + deltaprim[3] = ExtAveragePressure[val_marker][iSpan] - AveragePressure[val_marker][iSpan]; + } + else + { + deltaprim[3] = ExtAverageTurboVelocity[val_marker][iSpan][2] - AverageTurboVelocity[val_marker][iSpan][2]; + deltaprim[4] = ExtAveragePressure[val_marker][iSpan] - AveragePressure[val_marker][iSpan]; + } + + + /* --- Compute average jump of charachteristic variable at the mixing-plane interface--- */ + GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan]); + AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); + conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][iSpan], deltaprim, c_avg); break; case MIXING_IN_1D: case MIXING_OUT_1D: - BC_Giles_Mixing(conv_numerics, val_marker, deltaprim, c_avg, nSpanWiseSections); + /* --- Compute average jump of primitive at the mixing-plane interface--- */ + deltaprim[0] = ExtAverageDensity[val_marker][nSpanWiseSections] - AverageDensity[val_marker][nSpanWiseSections]; + deltaprim[1] = ExtAverageTurboVelocity[val_marker][nSpanWiseSections][0] - AverageTurboVelocity[val_marker][nSpanWiseSections][0]; + deltaprim[2] = ExtAverageTurboVelocity[val_marker][nSpanWiseSections][1] - AverageTurboVelocity[val_marker][nSpanWiseSections][1]; + if (nDim == 2){ + deltaprim[3] = ExtAveragePressure[val_marker][nSpanWiseSections] - AveragePressure[val_marker][nSpanWiseSections]; + } + else + { + deltaprim[3] = ExtAverageTurboVelocity[val_marker][nSpanWiseSections][2] - AverageTurboVelocity[val_marker][nSpanWiseSections][2]; + deltaprim[4] = ExtAveragePressure[val_marker][nSpanWiseSections] - AveragePressure[val_marker][nSpanWiseSections]; + } + + /* --- Compute average jump of charachteristic variable at the mixing-plane interface--- */ + GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][nSpanWiseSections], AverageDensity[val_marker][nSpanWiseSections]); + AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); + conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][nSpanWiseSections], deltaprim, c_avg); break; @@ -6237,8 +6395,6 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_e /= config->GetPressure_Ref(); /* --- Compute avg characteristic jump --- */ - c_avg[nDim+1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); - c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); break; @@ -6247,8 +6403,6 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_e /= config->GetPressure_Ref(); /* --- Compute avg characteristic jump --- */ - c_avg[nDim+1] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); - c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); break; @@ -6272,66 +6426,67 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } - auto const iZone = config->GetiZone(); - /*--- Loop over all the vertices on this boundary marker ---*/ SU2_OMP_FOR_DYN(OMP_MIN_SIZE) - for (unsigned long iVertex = 0; iVertex < geometry->GetnVertexSpan(val_marker,iSpan); iVertex++) { + for (iVertex = 0; iVertex < geometry->GetnVertexSpan(val_marker,iSpan); iVertex++) { /*--- using the other vertex information for retrieving some information ---*/ - auto oldVertex = geometry->turbovertex[val_marker][iSpan][iVertex]->GetOldVertex(); - auto V_boundary= GetCharacPrimVar(val_marker, oldVertex); + oldVertex = geometry->turbovertex[val_marker][iSpan][iVertex]->GetOldVertex(); + V_boundary= GetCharacPrimVar(val_marker, oldVertex); /*--- Index of the closest interior node ---*/ - auto Point_Normal = geometry->vertex[val_marker][oldVertex]->GetNormal_Neighbor(); + Point_Normal = geometry->vertex[val_marker][oldVertex]->GetNormal_Neighbor(); /*--- Normal vector for this vertex (negate for outward convention), * this normal is scaled with the area of the face of the element ---*/ geometry->vertex[val_marker][oldVertex]->GetNormal(Normal); - for (unsigned short iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; + for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; conv_numerics->SetNormal(Normal); /*--- find the node related to the vertex ---*/ - auto iPoint = geometry->turbovertex[val_marker][iSpan][iVertex]->GetNode(); + iPoint = geometry->turbovertex[val_marker][iSpan][iVertex]->GetNode(); /*--- Normalize Normal vector for this vertex (already for outward convention) ---*/ geometry->turbovertex[val_marker][iSpan][iVertex]->GetNormal(UnitNormal); geometry->turbovertex[val_marker][iSpan][iVertex]->GetTurboNormal(turboNormal); /*--- Retrieve solution at this boundary node ---*/ - auto V_domain = nodes->GetPrimitive(iPoint); + V_domain = nodes->GetPrimitive(iPoint); /*--- Retrieve domain Secondary variables ---*/ - auto S_domain = nodes->GetSecondary(iPoint); + S_domain = nodes->GetSecondary(iPoint); /*--- Compute the internal state u_i ---*/ - su2double Velocity2_i = 0; - for (unsigned short iDim = 0; iDim < nDim; iDim++) + Velocity2_i = 0; + for (iDim = 0; iDim < nDim; iDim++) { Velocity_i[iDim] = nodes->GetVelocity(iPoint,iDim); Velocity2_i += Velocity_i[iDim]*Velocity_i[iDim]; } - auto Density_i = nodes->GetDensity(iPoint); + Density_i = nodes->GetDensity(iPoint); - auto Energy_i = nodes->GetEnergy(iPoint); - auto StaticEnergy_i = Energy_i - 0.5*Velocity2_i; + Energy_i = nodes->GetEnergy(iPoint); + StaticEnergy_i = Energy_i - 0.5*Velocity2_i; GetFluidModel()->SetTDState_rhoe(Density_i, StaticEnergy_i); - auto Pressure_i = GetFluidModel()->GetPressure(); + Pressure_i = GetFluidModel()->GetPressure(); ComputeTurboVelocity(Velocity_i, turboNormal, turboVelocity, config->GetMarker_All_TurbomachineryFlag(val_marker),config->GetKind_TurboMachinery(iZone)); - deltaprim[0] = Density_i - AverageDensity[val_marker][iSpan]; - deltaprim[1] = turboVelocity[0] - AverageTurboVelocity[val_marker][iSpan][0]; - deltaprim[2] = turboVelocity[1] - AverageTurboVelocity[val_marker][iSpan][1]; if (nDim == 2){ + deltaprim[0] = Density_i - AverageDensity[val_marker][iSpan]; + deltaprim[1] = turboVelocity[0] - AverageTurboVelocity[val_marker][iSpan][0]; + deltaprim[2] = turboVelocity[1] - AverageTurboVelocity[val_marker][iSpan][1]; deltaprim[3] = Pressure_i - AveragePressure[val_marker][iSpan]; } else{ + deltaprim[0] = Density_i - AverageDensity[val_marker][iSpan]; + deltaprim[1] = turboVelocity[0] - AverageTurboVelocity[val_marker][iSpan][0]; + deltaprim[2] = turboVelocity[1] - AverageTurboVelocity[val_marker][iSpan][1]; deltaprim[3] = turboVelocity[2] - AverageTurboVelocity[val_marker][iSpan][2]; deltaprim[4] = Pressure_i - AveragePressure[val_marker][iSpan]; } @@ -6341,13 +6496,8 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][iSpan], deltaprim, cj); - auto pitch = geometry->GetMaxAngularCoord(val_marker, iSpan) - geometry->GetMinAngularCoord(val_marker,iSpan); - auto theta = geometry->turbovertex[val_marker][iSpan][iVertex]->GetRelAngularCoord(); - - auto const AvgMach = AverageTurboMach[0]*AverageTurboMach[0] + AverageTurboMach[1]*AverageTurboMach[1]; - auto Beta_inf= I*complex(sqrt(1.0 - AvgMach)); - su2double TwoPiThetaFreq_Pitch; - long freq; + pitch = geometry->GetMaxAngularCoord(val_marker, iSpan) - geometry->GetMinAngularCoord(val_marker,iSpan); + theta = geometry->turbovertex[val_marker][iSpan][iVertex]->GetRelAngularCoord(); switch(config->GetKind_Data_Giles(Marker_Tag)) { @@ -6357,18 +6507,11 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu case TOTAL_CONDITIONS_PT: case MIXING_IN:case TOTAL_CONDITIONS_PT_1D: case MIXING_IN_1D: if(config->GetSpatialFourier()){ - - /* --- Initial definition of variables ---*/ - auto c2js = complex(0.0,0.0); - auto c3js = complex(0.0,0.0); - auto c2ks = complex(0.0,0.0); - auto c3ks = complex(0.0,0.0); - auto c2js_Re = c2js.real(); - auto c3js_Re = c3js.real(); - su2double Beta_inf2; - if (AvgMach <= 1.0){ - for(unsigned long k=0; k < 2*kend_max+1; k++){ + Beta_inf= I*complex(sqrt(1.0 - AvgMach)); + c2js = complex(0.0,0.0); + c3js = complex(0.0,0.0); + for(k=0; k < 2*kend_max+1; k++){ freq = k - kend_max; if(freq >= (long)(-kend) && freq <= (long)(kend) && AverageTurboMach[0] > config->GetAverageMachLimit()){ TwoPiThetaFreq_Pitch = 2*PI_NUMBER*freq*theta/pitch; @@ -6387,10 +6530,16 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu c2js_Re = c2js.real(); c3js_Re = c3js.real(); - dcjs[0] = 0.0 - cj[0]; - dcjs[1] = c2js_Re - cj[1]; - dcjs[2] = 0.0 - cj[2]; - dcjs[nDim] = c3js_Re - cj[nDim]; // Overwrites previous value in 2D case + if (nDim == 2){ + dcjs[0] = 0.0 - cj[0]; + dcjs[1] = c2js_Re - cj[1]; + dcjs[2] = c3js_Re - cj[2]; + }else{ + dcjs[0] = 0.0 - cj[0]; + dcjs[1] = c2js_Re - cj[1]; + dcjs[2] = 0.0 - cj[2]; + dcjs[3] = c3js_Re - cj[3]; + } }else{ if (AverageTurboVelocity[val_marker][iSpan][1] >= 0.0){ @@ -6398,21 +6547,40 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu }else{ Beta_inf2= sqrt(AvgMach-1.0); } + if (nDim == 2){ + c2js_Re = -cj[3]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + c3js_Re = cj[3]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + c3js_Re *= (Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + }else{ + c2js_Re = -cj[4]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + c3js_Re = cj[4]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + c3js_Re *= (Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + } - c2js_Re = -cj[nDim+1]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - c3js_Re = cj[nDim+1]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - c3js_Re *= (Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - dcjs[0] = 0.0 - cj[0]; - dcjs[1] = c2js_Re - cj[1]; - dcjs[2] = 0.0 - cj[2]; - dcjs[nDim] = c3js_Re - cj[nDim]; + if (nDim == 2){ + dcjs[0] = 0.0 - cj[0]; + dcjs[1] = c2js_Re - cj[1]; + dcjs[2] = c3js_Re - cj[2]; + }else{ + dcjs[0] = 0.0 - cj[0]; + dcjs[1] = c2js_Re - cj[1]; + dcjs[2] = 0.0 - cj[2]; + dcjs[3] = c3js_Re - cj[3]; + } + } + } + else{ + if (nDim == 2){ + dcjs[0] = 0.0; + dcjs[1] = 0.0; + dcjs[2] = 0.0; + }else{ + dcjs[0] = 0.0; + dcjs[1] = 0.0; + dcjs[2] = 0.0; + dcjs[3] = 0.0; } - }else{ - dcjs[0] = 0.0; - dcjs[1] = 0.0; - dcjs[2] = 0.0; - dcjs[nDim] = 0.0; } /* --- Impose Inlet BC Reflecting--- */ delta_c[0] = relfacAvg*c_avg[0] + relfacFou*dcjs[0]; @@ -6431,7 +6599,6 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu /* --- implementation of Giles BC---*/ if(config->GetSpatialFourier()){ - su2double GilesBeta, cOutjs_Re; if (AvgMach > 1.0){ /* --- supersonic Giles implementation ---*/ if (AverageTurboVelocity[val_marker][iSpan][1] >= 0.0){ @@ -6455,9 +6622,9 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu }else{ /* --- subsonic Giles implementation ---*/ - auto cOutjs = complex(0.0,0.0); - auto cOutks = complex(0.0,0.0); - for(unsigned long k=0; k < 2*kend_max+1; k++){ + Beta_inf= I*complex(sqrt(1.0 - AvgMach)); + cOutjs = complex(0.0,0.0); + for(k=0; k < 2*kend_max+1; k++){ freq = k - kend_max; if(freq >= (long)(-kend) && freq <= (long)(kend) && AverageTurboMach[0] > config->GetAverageMachLimit()){ TwoPiThetaFreq_Pitch = 2*PI_NUMBER*freq*theta/pitch; @@ -6472,25 +6639,41 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } cOutjs_Re = cOutjs.real(); - dcjs[nDim+1] = cOutjs_Re - cj[nDim+1]; + if (nDim == 2){ + dcjs[3] = cOutjs_Re - cj[3]; + } + else{ + dcjs[4] = cOutjs_Re - cj[4]; + } } } else{ - dcjs[nDim+1] = 0.0; + if (nDim == 2){ + dcjs[3] = 0.0; + } + else{ + dcjs[4] = 0.0; + } } /* --- Impose Outlet BC Non-Reflecting --- */ delta_c[0] = cj[0]; delta_c[1] = cj[1]; delta_c[2] = cj[2]; - delta_c[3] = cj[3]; - delta_c[nDim+1] = relfacAvg*c_avg[nDim+1] + relfacFou*dcjs[nDim+1]; + if (nDim == 2){ + delta_c[3] = relfacAvg*c_avg[3] + relfacFou*dcjs[3]; + } + else{ + delta_c[3] = cj[3]; + delta_c[4] = relfacAvg*c_avg[4] + relfacFou*dcjs[4]; + } + /*--- Automatically impose supersonic autoflow ---*/ if (abs(AverageTurboMach[0]) > 1.0000){ delta_c[0] = 0.0; delta_c[1] = 0.0; delta_c[2] = 0.0; - delta_c[3] = 0.0; + delta_c[2] = 0.0; if (nDim == 3)delta_c[4] = 0.0; } @@ -6502,25 +6685,31 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } /*--- Compute primitive jump from characteristic variables ---*/ - for (unsigned short iVar = 0; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) { deltaprim[iVar]=0.0; - for (unsigned short jVar = 0; jVar < nVar; jVar++) + for (jVar = 0; jVar < nVar; jVar++) { deltaprim[iVar] += R_Matrix[iVar][jVar]*delta_c[jVar]; } } /*--- retrieve boundary variables ---*/ - su2double Density_b = AverageDensity[val_marker][iSpan] + deltaprim[0]; + Density_b = AverageDensity[val_marker][iSpan] + deltaprim[0]; turboVelocity[0] = AverageTurboVelocity[val_marker][iSpan][0] + deltaprim[1]; turboVelocity[1] = AverageTurboVelocity[val_marker][iSpan][1] + deltaprim[2]; - turboVelocity[nDim-1] = AverageTurboVelocity[val_marker][iSpan][nDim-1] + deltaprim[nDim]; - su2double Pressure_b = AveragePressure[val_marker][iSpan] + deltaprim[nDim+1]; + if(nDim == 2){ + Pressure_b = AveragePressure[val_marker][iSpan] + deltaprim[3]; + } + else{ + turboVelocity[2] = AverageTurboVelocity[val_marker][iSpan][2] + deltaprim[3]; + Pressure_b = AveragePressure[val_marker][iSpan] + deltaprim[4]; + } + ComputeBackVelocity(turboVelocity, turboNormal, Velocity_b, config->GetMarker_All_TurbomachineryFlag(val_marker), config->GetKind_TurboMachinery(iZone)); - su2double Velocity2_b = 0.0; - for (unsigned short iDim = 0; iDim < nDim; iDim++) { + Velocity2_b = 0.0; + for (iDim = 0; iDim < nDim; iDim++) { Velocity2_b+= Velocity_b[iDim]*Velocity_b[iDim]; } @@ -6528,20 +6717,20 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_b = Pressure_i; Density_b = Density_i; Velocity2_b = 0.0; - for (unsigned short iDim = 0; iDim < nDim; iDim++) { + for (iDim = 0; iDim < nDim; iDim++) { Velocity_b[iDim] = Velocity_i[iDim]; Velocity2_b+= Velocity_b[iDim]*Velocity_b[iDim]; } } GetFluidModel()->SetTDState_Prho(Pressure_b, Density_b); - su2double Energy_b = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_b; - su2double Temperature_b= GetFluidModel()->GetTemperature(); - su2double Enthalpy_b = Energy_b + Pressure_b/Density_b; + Energy_b = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_b; + Temperature_b= GetFluidModel()->GetTemperature(); + Enthalpy_b = Energy_b + Pressure_b/Density_b; /*--- Primitive variables, using the derived quantities ---*/ V_boundary[0] = Temperature_b; - for (unsigned short iDim = 0; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) V_boundary[iDim+1] = Velocity_b[iDim]; V_boundary[nDim+1] = Pressure_b; V_boundary[nDim+2] = Density_b; @@ -6569,12 +6758,12 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu LinSysRes.AddBlock(iPoint, residual); /*--- Jacobian contribution for implicit integration ---*/ - if (config->GetKind_TimeIntScheme() == EULER_IMPLICIT) + if (implicit) Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); /*--- Viscous contribution ---*/ - if (config->GetViscous()) { + if (viscous) { /*--- Set laminar and eddy viscosity at the infinity ---*/ @@ -6628,7 +6817,7 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu /*--- Jacobian contribution for implicit integration ---*/ - if (config->GetKind_TimeIntScheme() == EULER_IMPLICIT) + if (implicit) Jacobian.SubtractBlock2Diag(iPoint, residual.jacobian_i); } @@ -6650,11 +6839,11 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu delete [] delta_c; delete [] deltaprim; delete [] cj; - for (unsigned short iVar = 0; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) { delete [] R_Matrix[iVar]; } - for (unsigned short iVar = 0; iVar < nVar-1; iVar++) + for (iVar = 0; iVar < nVar-1; iVar++) { delete [] R_c_inv[iVar]; delete [] R_c[iVar]; @@ -6672,73 +6861,6 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu delete [] turboVelocity; } -void CEulerSolver::BC_Giles_Total_Inlet( CNumerics *conv_numerics, CConfig *config, unsigned short val_marker, - su2double *&c_avg, su2double *&R, su2double **&R_c_inv, su2double **&R_c, unsigned short iSpan, unsigned short SpanwisePosition) { - - /*--- Calculates boundry condition for quasi-3D and 1D total boundary conditions ---*/ - - /*--- Retrieve the specified boundary conditions. ---*/ - auto const Marker_Tag = config->GetMarker_All_TagBound(val_marker); - auto P_Total = config->GetGiles_Var1(Marker_Tag); - auto T_Total = config->GetGiles_Var2(Marker_Tag); - auto const FlowDir = config->GetGiles_FlowDir(Marker_Tag); - auto const alphaIn_BC = atan(FlowDir[1]/FlowDir[0]); - - su2double gammaIn_BC = 0; - if (nDim == 3){ - gammaIn_BC = FlowDir[2]; //atan(FlowDir[2]/FlowDir[0]); - } - - /*--- Non-dim. the inputs---*/ - P_Total /= config->GetPressure_Ref(); - T_Total /= config->GetTemperature_Ref(); - - /* --- Computes the total state --- */ - GetFluidModel()->SetTDState_PT(P_Total, T_Total); - auto const Enthalpy_BC = GetFluidModel()->GetStaticEnergy()+ GetFluidModel()->GetPressure()/GetFluidModel()->GetDensity(); - auto const Entropy_BC = GetFluidModel()->GetEntropy(); - - /* --- Computes the inverse matrix R_c --- */ - conv_numerics->ComputeResJacobianGiles(GetFluidModel(), AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan], - AverageTurboVelocity[val_marker][iSpan], alphaIn_BC, gammaIn_BC, R_c, R_c_inv); - - GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][SpanwisePosition], AverageDensity[val_marker][SpanwisePosition]); - auto AverageEnthalpy = GetFluidModel()->GetStaticEnergy() + AveragePressure[val_marker][SpanwisePosition]/AverageDensity[val_marker][SpanwisePosition]; - auto AverageEntropy = GetFluidModel()->GetEntropy(); - - - su2double avgVel2 = 0.0; - for (unsigned short iDim = 0; iDim < nDim; iDim++) avgVel2 += AverageVelocity[val_marker][iSpan][iDim]*AverageVelocity[val_marker][iSpan][iDim]; - - R[0] = -(AverageEntropy - Entropy_BC); - R[1] = -(AverageTurboVelocity[val_marker][SpanwisePosition][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][SpanwisePosition][0]); - R[2] = -(AverageTurboVelocity[val_marker][SpanwisePosition][2] - tan(gammaIn_BC)*AverageTurboVelocity[val_marker][SpanwisePosition][0]); - R[nDim] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); - - /* --- Compute the avg component c_avg = R_c^-1 * R --- */ - for (unsigned short iVar = 0; iVar < nVar-1; iVar++){ - c_avg[iVar] = 0.0; - for (unsigned short jVar = 0; jVar < nVar-1; jVar++){ - c_avg[iVar] += R_c_inv[iVar][jVar]*R[jVar]; - } - } -} - -void CEulerSolver::BC_Giles_Mixing(CNumerics *conv_numerics, unsigned short val_marker, su2double *&deltaprim, su2double *&c_avg, unsigned short SpanwisePosition) { - - /* --- Compute average jump of primitive at the mixing-plane interface--- */ - deltaprim[0] = ExtAverageDensity[val_marker][SpanwisePosition] - AverageDensity[val_marker][SpanwisePosition]; - deltaprim[1] = ExtAverageTurboVelocity[val_marker][SpanwisePosition][0] - AverageTurboVelocity[val_marker][SpanwisePosition][0]; - deltaprim[2] = ExtAverageTurboVelocity[val_marker][SpanwisePosition][1] - AverageTurboVelocity[val_marker][SpanwisePosition][1]; - deltaprim[3] = ExtAverageTurboVelocity[val_marker][SpanwisePosition][2] - AverageTurboVelocity[val_marker][SpanwisePosition][2]; - deltaprim[nDim+1] = ExtAveragePressure[val_marker][SpanwisePosition] - AveragePressure[val_marker][SpanwisePosition]; - - /* --- Compute average jump of charachteristic variable at the mixing-plane interface--- */ - GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][SpanwisePosition], AverageDensity[val_marker][SpanwisePosition]); - auto const AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); - conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][SpanwisePosition], deltaprim, c_avg); -} - void CEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { @@ -7224,36 +7346,41 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST); /*--- Supersonic inlet flow: there are no outgoing characteristics, - so all flow variables can be imposed at the inlet. ---*/ + so all flow variables can be imposed at the inlet. + First, retrieve the specified values for the primitive variables. ---*/ - 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(); + const su2double Temperature = config->GetInlet_Temperature(Marker_Tag) / config->GetTemperature_Ref(); + const su2double Pressure = config->GetInlet_Pressure(Marker_Tag) / config->GetPressure_Ref(); + const auto* Vel = config->GetInlet_Velocity(Marker_Tag); - if (!geometry->nodes->GetDomain(iPoint)) continue; + su2double Velocity[MAXNDIM] = {0.0}; + for (unsigned short iDim = 0; iDim < nDim; iDim++) + Velocity[iDim] = Vel[iDim] / config->GetVelocity_Ref(); - /*--- Retrieve the inlet profile, note that total conditions are reused as static. ---*/ + /*--- Density at the inlet from the gas law ---*/ - const su2double Temperature = Inlet_Ttotal[val_marker][iVertex] / config->GetTemperature_Ref(); - const su2double Pressure = Inlet_Ptotal[val_marker][iVertex] / config->GetPressure_Ref(); - su2double Velocity[MAXNDIM] = {0.0}; - for (unsigned short iDim = 0; iDim < nDim; iDim++) { - Velocity[iDim] = Inlet_FlowDir[val_marker][iVertex][iDim] / config->GetVelocity_Ref(); - } + const su2double Density = Pressure / (Gas_Constant * Temperature); + + /*--- Compute the energy from the specified state ---*/ - /*--- Density at the inlet from the gas law. ---*/ + const su2double Velocity2 = GeometryToolbox::SquaredNorm(int(MAXNDIM), Velocity); + su2double Energy = Pressure / (Density * Gamma_Minus_One) + 0.5 * Velocity2; + if (tkeNeeded) Energy += GetTke_Inf(); - const su2double Density = Pressure / (Gas_Constant * Temperature); + /*--- Loop over all the vertices on this boundary marker ---*/ - /*--- Compute the energy from the specified state. ---*/ + 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(); - const su2double Velocity2 = GeometryToolbox::SquaredNorm(int(MAXNDIM), Velocity); - su2double Energy = Pressure / (Density * Gamma_Minus_One) + 0.5 * Velocity2; - if (tkeNeeded) Energy += GetTke_Inf(); + if (!geometry->nodes->GetDomain(iPoint)) continue; - /*--- Primitive variables, using the derived quantities. ---*/ + /*--- Allocate the value at the inlet ---*/ auto* V_inlet = GetCharacPrimVar(val_marker, iVertex); + + /*--- Primitive variables, using the derived quantities ---*/ + V_inlet[prim_idx.Temperature()] = Temperature; V_inlet[prim_idx.Pressure()] = Pressure; V_inlet[prim_idx.Density()] = Density; @@ -7261,17 +7388,17 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con for (unsigned short iDim = 0; iDim < nDim; iDim++) V_inlet[iDim+prim_idx.Velocity()] = Velocity[iDim]; - /*--- Current solution at this boundary node. ---*/ + /*--- Current solution at this boundary node ---*/ - const auto* V_domain = nodes->GetPrimitive(iPoint); + auto* V_domain = nodes->GetPrimitive(iPoint); - /*--- Normal vector for this vertex (negate for outward convention). ---*/ + /*--- Normal vector for this vertex (negate for outward convention) ---*/ su2double Normal[MAXNDIM] = {0.0}; geometry->vertex[val_marker][iVertex]->GetNormal(Normal); for (unsigned short iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; - /*--- Set various quantities in the solver class. ---*/ + /*--- Set various quantities in the solver class ---*/ conv_numerics->SetNormal(Normal); conv_numerics->SetPrimitive(V_domain, V_inlet); @@ -7280,13 +7407,13 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint), geometry->nodes->GetGridVel(iPoint)); - /*--- Compute the residual using an upwind scheme. ---*/ + /*--- Compute the residual using an upwind scheme ---*/ auto residual = conv_numerics->ComputeResidual(config); LinSysRes.AddBlock(iPoint, residual); - /*--- Jacobian contribution for implicit integration. ---*/ + /*--- Jacobian contribution for implicit integration ---*/ if (implicit) Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); diff --git a/SU2_CFD/src/solvers/CNEMONSSolver.cpp b/SU2_CFD/src/solvers/CNEMONSSolver.cpp index 5b12013cee2..b30b99edebe 100644 --- a/SU2_CFD/src/solvers/CNEMONSSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMONSSolver.cpp @@ -166,7 +166,7 @@ void CNEMONSSolver::SetPrimitive_Gradient_GG(CGeometry *geometry, const CConfig const auto& primitives = nodes->GetPrimitive_Aux(); - computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, prim_idx.Velocity(), gradient); + computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, gradient); } void CNEMONSSolver::Viscous_Residual(CGeometry *geometry, diff --git a/SU2_CFD/src/solvers/CRadP1Solver.cpp b/SU2_CFD/src/solvers/CRadP1Solver.cpp index 21e5458a81c..d102e3b1d9a 100644 --- a/SU2_CFD/src/solvers/CRadP1Solver.cpp +++ b/SU2_CFD/src/solvers/CRadP1Solver.cpp @@ -150,12 +150,12 @@ void CRadP1Solver::Preprocessing(CGeometry *geometry, CSolver **solver_container /*--- Compute the Solution gradients ---*/ if (config->GetReconstructionGradientRequired()) { - if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, -1, true); - if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, -1, true); - if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, -1, true); + if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, true); + if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, true); + if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, true); } - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, -1); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, -1); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config); } diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index bfbd4edad58..b9d03fe3ee2 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -2097,7 +2097,7 @@ void CSolver::SetAuxVar_Gradient_GG(CGeometry *geometry, const CConfig *config) auto& gradient = base_nodes->GetAuxVarGradient(); computeGradientsGreenGauss(this, MPI_QUANTITIES::AUXVAR_GRADIENT, PERIODIC_NONE, *geometry, - *config, solution, 0, base_nodes->GetnAuxVar(), -1, gradient); + *config, solution, 0, base_nodes->GetnAuxVar(), gradient); } void CSolver::SetAuxVar_Gradient_LS(CGeometry *geometry, const CConfig *config) { @@ -2108,19 +2108,20 @@ void CSolver::SetAuxVar_Gradient_LS(CGeometry *geometry, const CConfig *config) auto& rmatrix = base_nodes->GetRmatrix(); computeGradientsLeastSquares(this, MPI_QUANTITIES::AUXVAR_GRADIENT, PERIODIC_NONE, *geometry, *config, - weighted, solution, 0, base_nodes->GetnAuxVar(), -1, gradient, rmatrix); + weighted, solution, 0, base_nodes->GetnAuxVar(), gradient, rmatrix); } -void CSolver::SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction) { +void CSolver::SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config, bool reconstruction) { const auto& solution = base_nodes->GetSolution(); auto& gradient = reconstruction? base_nodes->GetGradient_Reconstruction() : base_nodes->GetGradient(); const auto comm = reconstruction? MPI_QUANTITIES::SOLUTION_GRAD_REC : MPI_QUANTITIES::SOLUTION_GRADIENT; const auto commPer = reconstruction? PERIODIC_SOL_GG_R : PERIODIC_SOL_GG; - computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, solution, 0, nVar, idxVel, gradient); + + computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, solution, 0, nVar, gradient); } -void CSolver::SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction) { +void CSolver::SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config, bool reconstruction) { /*--- Set a flag for unweighted or weighted least-squares. ---*/ bool weighted; @@ -2140,7 +2141,7 @@ void CSolver::SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config auto& gradient = reconstruction? base_nodes->GetGradient_Reconstruction() : base_nodes->GetGradient(); const auto comm = reconstruction? MPI_QUANTITIES::SOLUTION_GRAD_REC : MPI_QUANTITIES::SOLUTION_GRADIENT; - computeGradientsLeastSquares(this, comm, commPer, *geometry, *config, weighted, solution, 0, nVar, idxVel, gradient, rmatrix); + computeGradientsLeastSquares(this, comm, commPer, *geometry, *config, weighted, solution, 0, nVar, gradient, rmatrix); } void CSolver::SetUndivided_Laplacian(CGeometry *geometry, const CConfig *config) { @@ -2239,7 +2240,7 @@ void CSolver::SetGridVel_Gradient(CGeometry *geometry, const CConfig *config) co auto rmatrix = CVectorOfMatrix(nPoint,nDim,nDim); computeGradientsLeastSquares(nullptr, MPI_QUANTITIES::GRID_VELOCITY, PERIODIC_NONE, *geometry, *config, - true, gridVel, 0, nDim, 0, gridVelGrad, rmatrix); + true, gridVel, 0, nDim, gridVelGrad, rmatrix); } void CSolver::SetSolution_Limiter(CGeometry *geometry, const CConfig *config) { @@ -3588,26 +3589,15 @@ void CSolver::LoadInletProfile(CGeometry **geometry, /*--- Skip if this is the wrong type of marker. ---*/ if (config->GetMarker_All_KindBC(iMarker) != KIND_MARKER) continue; - const string Marker_Tag = config->GetMarker_All_TagBound(iMarker); - + string Marker_Tag = config->GetMarker_All_TagBound(iMarker); + su2double p_total = config->GetInletPtotal(Marker_Tag); + su2double t_total = config->GetInletTtotal(Marker_Tag); + auto flow_dir = config->GetInletFlowDir(Marker_Tag); std::stringstream columnName,columnValue; + columnValue << setprecision(15); columnValue << std::scientific; - su2double p_total, t_total; - const su2double* flow_dir = nullptr; - - if (KIND_MARKER == INLET_FLOW) { - p_total = config->GetInletPtotal(Marker_Tag); - t_total = config->GetInletTtotal(Marker_Tag); - flow_dir = config->GetInletFlowDir(Marker_Tag); - } else if (KIND_MARKER == SUPERSONIC_INLET) { - p_total = config->GetInlet_Pressure(Marker_Tag); - t_total = config->GetInlet_Temperature(Marker_Tag); - flow_dir = config->GetInlet_Velocity(Marker_Tag); - } else { - SU2_MPI::Error("Unsupported type of inlet.", CURRENT_FUNCTION); - } columnValue << t_total << "\t" << p_total <<"\t"; for (unsigned short iDim = 0; iDim < nDim; iDim++) { columnValue << flow_dir[iDim] <<"\t"; @@ -3616,9 +3606,7 @@ void CSolver::LoadInletProfile(CGeometry **geometry, columnName << "# COORD-X " << setw(24) << "COORD-Y " << setw(24); if(nDim==3) columnName << "COORD-Z " << setw(24); - if (KIND_MARKER == SUPERSONIC_INLET) { - columnName << "TEMPERATURE" << setw(24) << "PRESSURE " << setw(24); - } else if (config->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE) { + if (config->GetKind_Regime()==ENUM_REGIME::COMPRESSIBLE){ switch (config->GetKind_Inlet()) { /*--- compressible conditions ---*/ case INLET_TYPE::TOTAL_CONDITIONS: @@ -3629,8 +3617,7 @@ void CSolver::LoadInletProfile(CGeometry **geometry, break; default: SU2_MPI::Error("Unsupported INLET_TYPE.", CURRENT_FUNCTION); - break; - } + break; } } else { switch (config->GetKind_Inc_Inlet(Marker_Tag)) { /*--- incompressible conditions ---*/ @@ -3688,16 +3675,10 @@ void CSolver::LoadInletProfile(CGeometry **geometry, } - /*--- There are no markers of this type. ---*/ - - const unsigned short has_names = !columnNames.empty(); - unsigned short any_has_names; - SU2_MPI::Allreduce(&has_names, &any_has_names, 1, MPI_UNSIGNED_SHORT, MPI_MAX, SU2_MPI::GetComm()); - if (!any_has_names) return; /*--- Read the profile data from an ASCII file. ---*/ - CMarkerProfileReaderFVM profileReader(geometry[MESH_0], config, profile_filename, KIND_MARKER, nCol_InletFile, columnNames, columnValues); + CMarkerProfileReaderFVM profileReader(geometry[MESH_0], config, profile_filename, KIND_MARKER, nCol_InletFile, columnNames,columnValues); /*--- Load data from the restart into correct containers. ---*/ @@ -3933,7 +3914,7 @@ void CSolver::LoadInletProfile(CGeometry **geometry, const auto Marker_Tag = config->GetMarker_All_TagBound(iMarker); - /*--- Check the number of columns and allocate temp array. ---*/ + /* Check the number of columns and allocate temp array. */ unsigned short nColumns = 0; for (auto jMarker = 0ul; jMarker < profileReader.GetNumberOfProfiles(); jMarker++) { @@ -3967,10 +3948,12 @@ void CSolver::LoadInletProfile(CGeometry **geometry, the averaging. ---*/ for (auto iChildren = 0u; iChildren < geometry[iMesh]->nodes->GetnChildren_CV(iPoint); iChildren++) { - const auto Area_Children = - solver[iMesh-1][KIND_SOLVER]->GetInletAtVertex(iMarker, iVertex, geometry[iMesh-1], Inlet_Fine.data()); + const auto Point_Fine = geometry[iMesh]->nodes->GetChildren_CV(iPoint, iChildren); + + auto Area_Children = solver[iMesh-1][KIND_SOLVER]->GetInletAtVertex(Inlet_Fine.data(), Point_Fine, KIND_MARKER, + Marker_Tag, geometry[iMesh-1], config); for (auto iVar = 0u; iVar < nColumns; iVar++) - Inlet_Values[iVar] += Inlet_Fine[iVar] * Area_Children / Area_Parent; + Inlet_Values[iVar] += Inlet_Fine[iVar]*Area_Children/Area_Parent; } /*--- Set the boundary area-averaged inlet values for the coarse point. ---*/ diff --git a/SU2_CFD/src/solvers/CSpeciesSolver.cpp b/SU2_CFD/src/solvers/CSpeciesSolver.cpp index 832c9014511..3c7ac895708 100644 --- a/SU2_CFD/src/solvers/CSpeciesSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesSolver.cpp @@ -415,16 +415,59 @@ void CSpeciesSolver::SetInletAtVertex(const su2double *val_inlet, } -su2double CSpeciesSolver::GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, - const CGeometry* geometry, su2double* val_inlet) const { - for (unsigned short iVar = 0; iVar < nVar; iVar++) - val_inlet[Inlet_Position + iVar] = Inlet_SpeciesVars[iMarker][iVertex][iVar]; +su2double CSpeciesSolver::GetInletAtVertex(su2double *val_inlet, + unsigned long val_inlet_point, + unsigned short val_kind_marker, + string val_marker, + const CGeometry *geometry, + const CConfig *config) const { + /*--- Local variables ---*/ + + unsigned short iMarker; + unsigned long iPoint, iVertex; + su2double Area = 0.0; + su2double Normal[3] = {0.0,0.0,0.0}; + + /*--- Alias positions within inlet file for readability ---*/ + + if (val_kind_marker == INLET_FLOW) { + + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) && + (config->GetMarker_All_TagBound(iMarker) == val_marker)) { + + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { + + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + + if (iPoint == val_inlet_point) { + + /*-- Compute boundary face area for this vertex. ---*/ + + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + Area = GeometryToolbox::Norm(nDim, Normal); + + /*--- Access and store the inlet variables for this vertex. ---*/ + for (unsigned short iVar = 0; iVar < nVar; iVar++) + val_inlet[Inlet_Position + iVar] = Inlet_SpeciesVars[iMarker][iVertex][iVar]; + + /*--- Exit once we find the point. ---*/ + + return Area; + + } + } + } + } + + } + + /*--- If we don't find a match, then the child point is not on the + current inlet boundary marker. Return zero area so this point does + not contribute to the restriction operator and continue. ---*/ - /*--- Compute boundary face area for this vertex. ---*/ + return Area; - su2double Normal[MAXNDIM] = {0.0}; - geometry->vertex[iMarker][iVertex]->GetNormal(Normal); - return GeometryToolbox::Norm(nDim, Normal); } void CSpeciesSolver::SetUniformInlet(const CConfig* config, unsigned short iMarker) { diff --git a/SU2_CFD/src/solvers/CTransLMSolver.cpp b/SU2_CFD/src/solvers/CTransLMSolver.cpp index 902a67925c4..1fdf2a47de1 100644 --- a/SU2_CFD/src/solvers/CTransLMSolver.cpp +++ b/SU2_CFD/src/solvers/CTransLMSolver.cpp @@ -185,10 +185,10 @@ void CTransLMSolver::Postprocessing(CGeometry *geometry, CSolver **solver_contai /*--- Compute LM model gradients. ---*/ if (config->GetKind_Gradient_Method() == GREEN_GAUSS) { - SetSolution_Gradient_GG(geometry, config, -1); + SetSolution_Gradient_GG(geometry, config); } if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { - SetSolution_Gradient_LS(geometry, config, -1); + SetSolution_Gradient_LS(geometry, config); } AD::StartNoSharedReading(); diff --git a/SU2_CFD/src/solvers/CTurbSASolver.cpp b/SU2_CFD/src/solvers/CTurbSASolver.cpp index 40e19bd024c..f53596e9901 100644 --- a/SU2_CFD/src/solvers/CTurbSASolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSASolver.cpp @@ -308,8 +308,6 @@ void CTurbSASolver::Viscous_Residual(const unsigned long iEdge, const CGeometry* void CTurbSASolver::Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container, CConfig *config, unsigned short iMesh) { - bool axisymmetric = config->GetAxisymmetric(); - const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); const bool harmonic_balance = (config->GetTime_Marching() == TIME_MARCHING::HARMONIC_BALANCE); const bool transition_BC = config->GetSAParsedOptions().bc; @@ -385,11 +383,6 @@ void CTurbSASolver::Source_Residual(CGeometry *geometry, CSolver **solver_contai numerics->SetIntermittency(solver_container[TRANS_SOL]->GetNodes()->GetSolution(iPoint, 0)); } - if (axisymmetric) { - /*--- Set y coordinate ---*/ - numerics->SetCoord(geometry->nodes->GetCoord(iPoint), geometry->nodes->GetCoord(iPoint)); - } - /*--- Compute the source term ---*/ auto residual = numerics->ComputeResidual(config); @@ -1528,16 +1521,61 @@ void CTurbSASolver::SetInletAtVertex(const su2double *val_inlet, } -su2double CTurbSASolver::GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, - const CGeometry* geometry, su2double* val_inlet) const { - const auto position = nDim + 2 + nDim; - val_inlet[position] = Inlet_TurbVars[iMarker][iVertex][0]; +su2double CTurbSASolver::GetInletAtVertex(su2double *val_inlet, + unsigned long val_inlet_point, + unsigned short val_kind_marker, + string val_marker, + const CGeometry *geometry, + const CConfig *config) const { + /*--- Local variables ---*/ + + unsigned short iMarker; + unsigned long iPoint, iVertex; + su2double Area = 0.0; + su2double Normal[3] = {0.0,0.0,0.0}; + + /*--- Alias positions within inlet file for readability ---*/ + + if (val_kind_marker == INLET_FLOW) { + + unsigned short position = nDim+2+nDim; + + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) && + (config->GetMarker_All_TagBound(iMarker) == val_marker)) { + + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++){ + + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + + if (iPoint == val_inlet_point) { + + /*-- Compute boundary face area for this vertex. ---*/ + + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + Area = GeometryToolbox::Norm(nDim, Normal); + + /*--- Access and store the inlet variables for this vertex. ---*/ + + val_inlet[position] = Inlet_TurbVars[iMarker][iVertex][0]; + + /*--- Exit once we find the point. ---*/ + + return Area; + + } + } + } + } + + } + + /*--- If we don't find a match, then the child point is not on the + current inlet boundary marker. Return zero area so this point does + not contribute to the restriction operator and continue. ---*/ - /*--- Compute boundary face area for this vertex. ---*/ + return Area; - su2double Normal[MAXNDIM] = {0.0}; - geometry->vertex[iMarker][iVertex]->GetNormal(Normal); - return GeometryToolbox::Norm(nDim, Normal); } void CTurbSASolver::SetUniformInlet(const CConfig* config, unsigned short iMarker) { diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index 63c29102175..555f8e77155 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -97,6 +97,7 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh constants[5] = 0.0828; //beta_2 constants[6] = 0.09; //betaStar constants[7] = 0.31; //a1 + if (sstParsedOptions.version == SST_OPTIONS::V1994){ 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 @@ -107,6 +108,12 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh constants[9] = 0.44; //gamma_2 constants[10] = 10.0; // production limiter constant } + /*--- Initialize lower and upper limits---*/ + lowerlimit[0] = 1.0e-10; + upperlimit[0] = 1.0e10; + + lowerlimit[1] = 1.0e-4; + upperlimit[1] = 1.0e15; /*--- Far-field flow state quantities and initialization. ---*/ su2double rhoInf, *VelInf, muLamInf, Intensity, viscRatio, muT_Inf; @@ -125,22 +132,6 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh Solution_Inf[0] = kine_Inf; Solution_Inf[1] = omega_Inf; - /*--- Constants to use for lower limit of turbulence variable. ---*/ - su2double Ck = config->GetKFactor_LowerLimit(); - su2double Cw = config->GetOmegaFactor_LowerLimit(); - - /*--- Initialize lower and upper limits. ---*/ - if (sstParsedOptions.dll) { - lowerlimit[0] = Ck * kine_Inf; - lowerlimit[1] = Cw * omega_Inf; - } else { - lowerlimit[0] = 1.0e-10; - lowerlimit[1] = 1.0e-4; - } - - upperlimit[0] = 1.0e10; - upperlimit[1] = 1.0e15; - /*--- Eddy viscosity, initialized without stress limiter at the infinity ---*/ muT_Inf = rhoInf*kine_Inf/omega_Inf; @@ -209,10 +200,10 @@ void CTurbSSTSolver::Postprocessing(CGeometry *geometry, CSolver **solver_contai /*--- Compute turbulence gradients. ---*/ if (config->GetKind_Gradient_Method() == GREEN_GAUSS) { - SetSolution_Gradient_GG(geometry, config, -1); + SetSolution_Gradient_GG(geometry, config); } if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { - SetSolution_Gradient_LS(geometry, config, -1); + SetSolution_Gradient_LS(geometry, config); } AD::StartNoSharedReading(); @@ -1001,18 +992,63 @@ void CTurbSSTSolver::SetInletAtVertex(const su2double *val_inlet, } -su2double CTurbSSTSolver::GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, - const CGeometry* geometry, su2double* val_inlet) const { - const auto tke_position = nDim + 2 + nDim; - const auto omega_position = tke_position + 1; - val_inlet[tke_position] = Inlet_TurbVars[iMarker][iVertex][0]; - val_inlet[omega_position] = Inlet_TurbVars[iMarker][iVertex][1]; +su2double CTurbSSTSolver::GetInletAtVertex(su2double *val_inlet, + unsigned long val_inlet_point, + unsigned short val_kind_marker, + string val_marker, + const CGeometry *geometry, + const CConfig *config) const { + /*--- Local variables ---*/ + + unsigned short iMarker; + unsigned long iPoint, iVertex; + su2double Area = 0.0; + su2double Normal[3] = {0.0,0.0,0.0}; + + /*--- Alias positions within inlet file for readability ---*/ + + if (val_kind_marker == INLET_FLOW) { + + unsigned short tke_position = nDim+2+nDim; + unsigned short omega_position = nDim+2+nDim+1; + + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) && + (config->GetMarker_All_TagBound(iMarker) == val_marker)) { + + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++){ + + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + + if (iPoint == val_inlet_point) { + + /*-- Compute boundary face area for this vertex. ---*/ + + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + Area = GeometryToolbox::Norm(nDim, Normal); + + /*--- Access and store the inlet variables for this vertex. ---*/ + + val_inlet[tke_position] = Inlet_TurbVars[iMarker][iVertex][0]; + val_inlet[omega_position] = Inlet_TurbVars[iMarker][iVertex][1]; + + /*--- Exit once we find the point. ---*/ + + return Area; + + } + } + } + } + + } + + /*--- If we don't find a match, then the child point is not on the + current inlet boundary marker. Return zero area so this point does + not contribute to the restriction operator and continue. ---*/ - /*--- Compute boundary face area for this vertex. ---*/ + return Area; - su2double Normal[MAXNDIM] = {0.0}; - geometry->vertex[iMarker][iVertex]->GetNormal(Normal); - return GeometryToolbox::Norm(nDim, Normal); } void CTurbSSTSolver::SetUniformInlet(const CConfig* config, unsigned short iMarker) { diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 1170ae71e05..0818c6074a0 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -361,7 +361,7 @@ def run_filediff(self, with_tsan=False, with_asan=False): # Assert that both files have the same number of lines if len(fromlines) != len(tolines): - diff = ["ERROR: Number of lines in " + fromfile + " and " + tofile + " differ: " + len(fromlines) + " vs " + len(tolines) + "."] + diff = ["ERROR: Number of lines in " + fromfile + " and " + tofile + " differ."] passed = False # Loop through all lines diff --git a/TestCases/cont_adj_euler/naca0012/of_grad_cd.dat.ref b/TestCases/cont_adj_euler/naca0012/of_grad_cd.dat.ref index c9cda259729..2f88439a0b9 100644 --- a/TestCases/cont_adj_euler/naca0012/of_grad_cd.dat.ref +++ b/TestCases/cont_adj_euler/naca0012/of_grad_cd.dat.ref @@ -1,39 +1,39 @@ VARIABLES="VARIABLE" , "GRADIENT" , "FINDIFF_STEP" - 0 , -0.346339 , 0.0001 - 1 , -0.248052 , 0.0001 - 2 , -0.1713 , 0.0001 - 3 , -0.122543 , 0.0001 - 4 , -0.101101 , 0.0001 - 5 , -0.104377 , 0.0001 - 6 , -0.127816 , 0.0001 - 7 , -0.164567 , 0.0001 - 8 , -0.206037 , 0.0001 - 9 , -0.24378 , 0.0001 - 10 , -0.272396 , 0.0001 - 11 , -0.292059 , 0.0001 - 12 , -0.308757 , 0.0001 - 13 , -0.331226 , 0.0001 - 14 , -0.366529 , 0.0001 - 15 , -0.418919 , 0.0001 - 16 , -0.495353 , 0.0001 - 17 , -0.619083 , 0.0001 - 18 , -0.889061 , 0.0001 - 19 , 0.118474 , 0.0001 - 20 , 0.849882 , 0.0001 - 21 , 1.3251 , 0.0001 - 22 , 1.53508 , 0.0001 - 23 , 1.51368 , 0.0001 - 24 , 1.31908 , 0.0001 - 25 , 1.02001 , 0.0001 - 26 , 0.68317 , 0.0001 - 27 , 0.363758 , 0.0001 - 28 , 0.100704 , 0.0001 - 29 , -0.0830333 , 0.0001 - 30 , -0.176826 , 0.0001 - 31 , -0.178825 , 0.0001 - 32 , -0.096525 , 0.0001 - 33 , 0.0472928 , 0.0001 - 34 , 0.21134 , 0.0001 - 35 , 0.355622 , 0.0001 - 36 , 0.490104 , 0.0001 - 37 , 0.718618 , 0.0001 + 0 , 0.00534068 , 0.0001 + 1 , 0.024277 , 0.0001 + 2 , 0.0299625 , 0.0001 + 3 , 0.0234274 , 0.0001 + 4 , 0.00339532 , 0.0001 + 5 , -0.0308111 , 0.0001 + 6 , -0.0775489 , 0.0001 + 7 , -0.132033 , 0.0001 + 8 , -0.186824 , 0.0001 + 9 , -0.233924 , 0.0001 + 10 , -0.268068 , 0.0001 + 11 , -0.289743 , 0.0001 + 12 , -0.305716 , 0.0001 + 13 , -0.325863 , 0.0001 + 14 , -0.358209 , 0.0001 + 15 , -0.407234 , 0.0001 + 16 , -0.47926 , 0.0001 + 17 , -0.595838 , 0.0001 + 18 , -0.850012 , 0.0001 + 19 , 0.565996 , 0.0001 + 20 , 1.14457 , 0.0001 + 21 , 1.50247 , 0.0001 + 22 , 1.62875 , 0.0001 + 23 , 1.54948 , 0.0001 + 24 , 1.31563 , 0.0001 + 25 , 0.989959 , 0.0001 + 26 , 0.634653 , 0.0001 + 27 , 0.301875 , 0.0001 + 28 , 0.0291654 , 0.0001 + 29 , -0.160196 , 0.0001 + 30 , -0.253741 , 0.0001 + 31 , -0.247195 , 0.0001 + 32 , -0.147396 , 0.0001 + 33 , 0.0181901 , 0.0001 + 34 , 0.197238 , 0.0001 + 35 , 0.341451 , 0.0001 + 36 , 0.467151 , 0.0001 + 37 , 0.682825 , 0.0001 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..272a21372a2 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 , -2656.96 , 0.001 + 1 , -12995.9 , 0.001 + 2 , -21781.3 , 0.001 + 3 , -27675.3 , 0.001 + 4 , -30437.9 , 0.001 + 5 , -30443.9 , 0.001 + 6 , -28343.1 , 0.001 + 7 , -24794.2 , 0.001 + 8 , -20329.4 , 0.001 + 9 , -15376.6 , 0.001 + 10 , -10418.0 , 0.001 + 11 , -6201.67 , 0.001 + 12 , -3878.08 , 0.001 + 13 , -4910.93 , 0.001 + 14 , -10573.5 , 0.001 + 15 , -20610.7 , 0.001 + 16 , -30110.4 , 0.001 + 17 , -26294.5 , 0.001 + 18 , -62393.8 , 0.001 + 19 , -2797.26 , 0.001 + 20 , -832.067 , 0.001 + 21 , -668.081 , 0.001 + 22 , -1773.25 , 0.001 + 23 , -5718.86 , 0.001 + 24 , -13717.8 , 0.001 + 25 , -25699.0 , 0.001 + 26 , -40061.9 , 0.001 + 27 , -53729.8 , 0.001 + 28 , -62415.6 , 0.001 + 29 , -61293.4 , 0.001 + 30 , -46505.9 , 0.001 + 31 , -17841.7 , 0.001 + 32 , 18183.8 , 0.001 + 33 , 48447.5 , 0.001 + 34 , 62322.0 , 0.001 + 35 , 64139.5 , 0.001 + 36 , 54568.2 , 0.001 + 37 , 64856.8 , 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..4992e46a279 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.2253591473 , -105.6097088 , 0.2588459007 , -1.5322178 , 0.0 , -1.537499867 , 0.0 , 0.0 , 1.202899757 , 0.0 + 1 , 0.3835809166 , -173.3502205 , 0.4363886002 , -2.415957492 , 0.0 , -2.424902327 , 0.0 , 0.0 , 1.053347497 , 0.0 + 2 , 0.5151776249 , -228.9760041 , 0.5835870252 , -3.129538494 , 0.0 , -3.141524632 , 0.0 , 0.0 , 0.6540715539 , 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 51bda5370df..0d54e740402 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.00767644 , 0.0001 - 1 , 0.00498358 , 0.0001 - 2 , 0.00246134 , 0.0001 - 3 , 0.000893054 , 0.0001 + 0 , 0.00766235 , 0.0001 + 1 , 0.00499567 , 0.0001 + 2 , 0.00249665 , 0.0001 + 3 , 0.000904607 , 0.0001 diff --git a/TestCases/disc_adj_fsi/dyn_fsi/grad_dv.opt.ref b/TestCases/disc_adj_fsi/dyn_fsi/grad_dv.opt.ref index d0a338410ba..b2e428bed5a 100644 --- a/TestCases/disc_adj_fsi/dyn_fsi/grad_dv.opt.ref +++ b/TestCases/disc_adj_fsi/dyn_fsi/grad_dv.opt.ref @@ -1,9 +1,9 @@ INDEX GRAD -0 -5.239274142145693e-03 -1 -2.822866261832595e-03 -2 -1.251166631047082e-03 -3 -4.746312021502222e-04 -4 -4.726421390156573e-04 -5 -1.242307153964931e-03 -6 -2.797799332331688e-03 -7 -5.181304648315885e-03 +0 -3.461460667601000e-03 +1 -1.841786311588663e-03 +2 -7.915536257748967e-04 +3 -2.739622082729717e-04 +4 -2.734869133461104e-04 +5 -7.881162428890206e-04 +6 -1.828978290516677e-03 +7 -3.427219398258316e-03 diff --git a/TestCases/disc_adj_heat/disc_adj_heat.cfg b/TestCases/disc_adj_heat/disc_adj_heat.cfg index cb258ec6333..85e7d30e98c 100644 --- a/TestCases/disc_adj_heat/disc_adj_heat.cfg +++ b/TestCases/disc_adj_heat/disc_adj_heat.cfg @@ -208,6 +208,6 @@ SURFACE_FILENAME= surface_flow SURFACE_ADJ_FILENAME= surface_adjoint -OUTPUT_WRT_FREQ= 100 +OUTPUT_WRT_FREQ= 1 SCREEN_OUTPUT= (INNER_ITER, RMS_ADJ_PRESSURE, RMS_ADJ_NU_TILDE, RMS_ADJ_HEAT, SENS_VEL_IN, SENS_PRESS_OUT) diff --git a/TestCases/euler/bluntbody/blunt.cfg b/TestCases/euler/bluntbody/blunt.cfg index a76c6be19ba..f9ece1cbae4 100644 --- a/TestCases/euler/bluntbody/blunt.cfg +++ b/TestCases/euler/bluntbody/blunt.cfg @@ -43,7 +43,7 @@ MARKER_MONITORING = ( wall ) % ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 6.0 +CFL_NUMBER= 3.0 CFL_ADAPT= NO CFL_ADAPT_PARAM= ( 1.1, 0.9, 5.0, 50.0 ) ITER= 2500 diff --git a/TestCases/euler/channel/inv_channel_RK.cfg b/TestCases/euler/channel/inv_channel_RK.cfg index 8e20a09f14c..ee2b3513e14 100644 --- a/TestCases/euler/channel/inv_channel_RK.cfg +++ b/TestCases/euler/channel/inv_channel_RK.cfg @@ -44,7 +44,7 @@ MARKER_MONITORING= ( upper_wall, lower_wall ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 2.5 +CFL_NUMBER= 2.0 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/euler/naca0012/inv_NACA0012_Roe.cfg b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg index 087bca16ebc..6215d0870ae 100644 --- a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg +++ b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg @@ -41,11 +41,11 @@ MARKER_MONITORING= ( airfoil ) % ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 20.0 +CFL_NUMBER= 4.0 CFL_ADAPT= NO CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) -ITER= 1000 +ITER= 110 LINEAR_SOLVER= BCGSTAB LINEAR_SOLVER_ERROR= 1E-6 LINEAR_SOLVER_ITER= 5 @@ -57,8 +57,8 @@ MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 2, 2 ) MG_POST_SMOOTH= ( 1, 1, 1, 1 ) MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1 ) -MG_DAMP_RESTRICTION= 0.80 -MG_DAMP_PROLONGATION= 0.80 +MG_DAMP_RESTRICTION= 1.0 +MG_DAMP_PROLONGATION= 1.0 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % diff --git a/TestCases/euler/wedge/inv_wedge_HLLC.cfg b/TestCases/euler/wedge/inv_wedge_HLLC.cfg index 77c20175c22..30120e792dd 100644 --- a/TestCases/euler/wedge/inv_wedge_HLLC.cfg +++ b/TestCases/euler/wedge/inv_wedge_HLLC.cfg @@ -42,7 +42,7 @@ MARKER_MONITORING= ( upper, lower ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 4.0 +CFL_NUMBER= 1.0 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/fixed_cl/naca0012/inv_NACA0012.cfg b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg index a66afe95074..5842e3848dc 100644 --- a/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg +++ b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg @@ -55,7 +55,7 @@ MARKER_DESIGNING = ( airfoil ) % NUM_METHOD_GRAD= GREEN_GAUSS OBJECTIVE_FUNCTION= DRAG -CFL_NUMBER=1000 +CFL_NUMBER= 5.0 ITER= 1000 % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% @@ -115,15 +115,15 @@ CONV_CAUCHY_EPS= 1E-6 MESH_FILENAME= mesh_NACA0012_inv.su2 MESH_FORMAT= SU2 MESH_OUT_FILENAME= mesh_out.su2 -SOLUTION_FILENAME= solution_flow -SOLUTION_ADJ_FILENAME= solution_adj +SOLUTION_FILENAME= solution_flow.dat +SOLUTION_ADJ_FILENAME= solution_adj.dat TABULAR_FORMAT= CSV CONV_FILENAME= history -RESTART_FILENAME= restart_flow -RESTART_ADJ_FILENAME= restart_adj +RESTART_FILENAME= restart_flow.dat +RESTART_ADJ_FILENAME= restart_adj.dat VOLUME_FILENAME= flow VOLUME_ADJ_FILENAME= adjoint -GRAD_OBJFUNC_FILENAME= of_grad +GRAD_OBJFUNC_FILENAME= of_grad.dat SURFACE_FILENAME= surface_flow SURFACE_ADJ_FILENAME= surface_adjoint OUTPUT_WRT_FREQ= 250 diff --git a/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg b/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg index f2b6bd919aa..1b927581780 100644 --- a/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg +++ b/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg @@ -37,16 +37,15 @@ KIND_SCALAR_MODEL= FLAMELET DIFFUSIVITY_MODEL= FLAMELET VISCOSITY_MODEL= FLAMELET CONDUCTIVITY_MODEL= FLAMELET -FLAME_INIT_METHOD= FLAME_FRONT FLAME_INIT= (0.0032, 0.00, 0.00, 1.0, 0.1, 0.0, 1.0e-3, 0.1) % # progvar, enthalpy SPECIES_INIT = (0.0, -210000, 0.0, 0.0) -CONV_NUM_METHOD_SPECIES= BOUNDED_SCALAR +CONV_NUM_METHOD_SPECIES= SCALAR_UPWIND MUSCL_SPECIES= YES SLOPE_LIMITER_SPECIES= NONE TIME_DISCRE_SPECIES= EULER_IMPLICIT % SCALAR CLIPPING -SPECIES_CLIPPING= NO +SPECIES_CLIPPING= YES SPECIES_CLIPPING_MIN= 0 -2e6 0 0 SPECIES_CLIPPING_MAX= 1 2e6 1 1 % @@ -86,9 +85,9 @@ MARKER_ANALYZE_AVERAGE = AREA % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 50 +CFL_NUMBER= 350 CFL_ADAPT= NO -ITER= 10000 +ITER= 100 OUTPUT_WRT_FREQ= 100 % % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% @@ -127,8 +126,8 @@ MESH_FILENAME = mesh_structured.cgns MESH_OUT_FILENAME= mesh_out.su2 SOLUTION_FILENAME= solution RESTART_FILENAME= restart -OUTPUT_FILES = (RESTART,PARAVIEW,PARAVIEW_MULTIBLOCK) -%OUTPUT_FILES = (RESTART) +%OUTPUT_FILES = (RESTART,PARAVIEW,PARAVIEW_MULTIBLOCK) +OUTPUT_FILES = (RESTART) TABULAR_FORMAT = CSV CONV_FILENAME= history VOLUME_FILENAME= ch4_flame_cfd diff --git a/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_fluid.cfg b/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_fluid.cfg index adf9a65020f..e0828cc4d44 100644 --- a/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_fluid.cfg +++ b/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_fluid.cfg @@ -19,7 +19,7 @@ HISTORY_OUTPUT= RMS_RES AERO_COEFF FLOW_COEFF FLOW_COEFF_SURF VOLUME_OUTPUT= SOLUTION PRIMITIVE SOURCE RESIDUAL LOOKUP -OUTPUT_FILES= (RESTART_ASCII, PARAVIEW) +OUTPUT_FILES= (RESTART_ASCII) INNER_ITER= 1 @@ -55,7 +55,6 @@ FLUID_MODEL= FLUID_FLAMELET FILENAMES_INTERPOLATOR= (fgm_ch4.drg) CONTROLLING_VARIABLE_NAMES= (ProgressVariable, EnthalpyTot) CONTROLLING_VARIABLE_SOURCE_NAMES= (ProdRateTot_PV, NULL) -FLAME_INIT_METHOD= NONE FLAME_INIT= (0.004, 0.0, 0.0, 1.0, 0.0, 0.0, 0.2e-3, 1.0) % -------------------- SPECIES TRANSPORT ---------------------------------------% @@ -89,8 +88,8 @@ VISCOSITY_MODEL= FLAMELET % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% -NUM_METHOD_GRAD= GREEN_GAUSS -%NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +%NUM_METHOD_GRAD= GREEN_GAUSS +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES CFL_NUMBER= 25 CFL_ADAPT= NO diff --git a/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_master.cfg b/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_master.cfg index 9a674d7a8e5..1ca70ab9d79 100644 --- a/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_master.cfg +++ b/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_master.cfg @@ -37,7 +37,7 @@ RESTART_ADJ_FILENAME= restart_adj TIME_DOMAIN= NO OUTER_ITER= 10 -OUTPUT_WRT_FREQ= 100 +OUTPUT_WRT_FREQ= 500 SCREEN_WRT_FREQ_INNER= 1 SCREEN_WRT_FREQ_OUTER= 1 diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index c893649c1dd..bd7635e1413 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.667328, 2.797437, 0.018714, 0.006906] 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.444945, -3.941041, 0.318999, 0.022365] + naca0012.test_vals = [-4.023999, -3.515034, 0.339426, 0.022217] 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 = [-0.942862, 4.784581, -0.208106, 0.036665] test_list.append(wedge) # ONERA M6 Wing @@ -75,7 +75,7 @@ def main(): oneram6.cfg_dir = "euler/oneram6" oneram6.cfg_file = "inv_ONERAM6.cfg" oneram6.test_iter = 10 - oneram6.test_vals = [0.280800, 0.008623] + oneram6.test_vals = [0.281703, 0.011821] test_list.append(oneram6) # Fixed CL NACA0012 @@ -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 = [-7.374806, -1.872330, 0.300000, 0.019471] 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.540010, 6.916656, 0.000027, 1.869004] 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.700620, -2.229886, 0.001084, 0.036235, 2.361500, -2.325300, -1.823400, -1.823400] + flatplate.test_vals = [-9.154123, -3.663185, 0.001112, 0.036277, 2.361500, -2.325300, -2.278800, -2.278800] flatplate.test_vals_aarch64 = [-9.154130, -3.663197, 0.001112, 0.036277, 2.361500, -2.325300, -2.278800, -2.278800] test_list.append(flatplate) @@ -112,7 +112,7 @@ def main(): cylinder.cfg_dir = "navierstokes/cylinder" cylinder.cfg_file = "lam_cylinder.cfg" cylinder.test_iter = 25 - cylinder.test_vals = [-8.265865, -2.783635, -0.019914, 1.614879, -0.010191] + cylinder.test_vals = [-6.765429, -1.297425, 0.019571, 0.310233, 0.123270] cylinder.test_vals_aarch64 = [-6.765429, -1.297425, 0.019571, 0.310231, 0.123270] test_list.append(cylinder) @@ -121,8 +121,8 @@ def main(): cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 - cylinder_lowmach.test_vals = [-6.830996, -1.368850, -0.143956, 73.963354, 0.002457] - cylinder_lowmach.test_vals_aarch64 = [-6.830996, -1.368850, -0.143956, 73.963354, 0.002457] + cylinder_lowmach.test_vals = [-6.850130, -1.388096, -0.056036, 108.140809, 0.007988] + cylinder_lowmach.test_vals_aarch64 = [-6.850130, -1.388096, -0.056036, 108.140813, 0.007988] test_list.append(cylinder_lowmach) # 2D Poiseuille flow (body force driven with periodic inlet / outlet) @@ -139,8 +139,8 @@ 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.485957, -7.612048, -0.000000, 2.085796] - poiseuille_profile.test_vals_aarch64 = [-12.485957, -7.612048, -0.000000, 2.085796] + poiseuille_profile.test_vals = [-12.494728, -7.712546, -0.000000, 2.085796] + poiseuille_profile.test_vals_aarch64 = [-12.494717, -7.711274, -0.000000, 2.085796] test_list.append(poiseuille_profile) # 2D Rotational Periodic @@ -185,7 +185,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.156553, -6.736064, -0.176184, 0.057478] + turb_flatplate.test_vals = [-4.157358, -6.736289, -0.176258, 0.057431] test_list.append(turb_flatplate) # ONERA M6 Wing @@ -193,7 +193,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.392863, -6.689822, 0.230745, 0.158812, -33786.000000] + turb_oneram6.test_vals = [-2.388836, -6.689426, 0.230320, 0.157640, -32539.000000] test_list.append(turb_oneram6) # NACA0012 (SA, FUN3D finest grid results: CL=1.0983, CD=0.01242) @@ -255,7 +255,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.155957, -6.610384, -9.237797, -4.532605, -2019.700000] + axi_rans_air_nozzle_restart.test_vals = [-12.060634, -6.992273, -8.808757, -4.097753, -2019.800000] test_list.append(axi_rans_air_nozzle_restart) ################################# @@ -329,7 +329,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.589740, 0.790168, 0.937052, 3.922578] test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil @@ -349,7 +349,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 = [-4.858287, -3.810487, 0.491850, 0.007002] test_list.append(inc_euler_naca0012) # C-D nozzle with pressure inlet and mass flow outlet @@ -357,8 +357,8 @@ 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_aarch64 = [-5.624385, -4.988472, -0.000096, 0.137032] + inc_nozzle.test_vals = [-5.971249, -4.910844, -0.000196, 0.121635] + inc_nozzle.test_vals_aarch64 = [-5.971248, -4.910844, -0.000196, 0.121635] test_list.append(inc_nozzle) ############################# @@ -395,7 +395,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.437996, -3.086189, -0.015600, 1.142212] inc_lam_bend.test_vals_aarch64 = [-3.437996, -3.086188, -0.015600, 1.142213] test_list.append(inc_lam_bend) @@ -424,7 +424,7 @@ def main(): inc_weakly_coupled.cfg_dir = "disc_adj_heat" inc_weakly_coupled.cfg_file = "primal.cfg" inc_weakly_coupled.test_iter = 10 - inc_weakly_coupled.test_vals = [-18.894811, -17.879327, -18.412938, -17.855948, -18.343462, -15.659612, 5.545700] + inc_weakly_coupled.test_vals = [-16.498562, -15.335587, -15.570565, -12.867787, -18.185331, -13.071436, 5.545800] test_list.append(inc_weakly_coupled) ###################################### @@ -467,7 +467,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.977520, 3.481804, -0.012402, -0.007454] sine_gust.unsteady = True test_list.append(sine_gust) @@ -476,7 +476,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.418805, 0.002013, -0.001504, 0.000445, -0.000558] + cosine_gust.test_vals = [-2.418813, 0.004650, -0.001878, -0.000637, -0.000271] cosine_gust.unsteady = True cosine_gust.enabled_with_tsan = False test_list.append(cosine_gust) @@ -486,7 +486,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.844778, 0.000846, -0.000408] gust_mesh_defo.unsteady = True gust_mesh_defo.enabled_with_tsan = False test_list.append(gust_mesh_defo) @@ -496,8 +496,8 @@ 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_aarch64 = [0.074170, 0.027590, -0.001579, -0.000160] + aeroelastic.test_vals = [0.074432, 0.033108, -0.001650, -0.000127] + aeroelastic.test_vals_aarch64 = [0.074836, 0.033102, -0.001650, -0.000127] aeroelastic.unsteady = True aeroelastic.enabled_on_cpu_arch = ["x86_64"] # Requires AVX-capable architecture aeroelastic.enabled_with_tsan = False @@ -508,7 +508,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.714785, -5.882681, -0.215041, 0.023758, -617.440000] + ddes_flatplate.test_vals = [-2.714757, -5.882779, -0.215005, 0.023783, -618.130000] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) @@ -526,7 +526,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.665126, -3.793497, -3.716496, -3.148290] unst_deforming_naca0012.unsteady = True unst_deforming_naca0012.enabled_with_tsan = False test_list.append(unst_deforming_naca0012) @@ -539,17 +539,17 @@ def main(): edge_VW = TestCase('edge_VW') 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_iter = 100 + edge_VW.test_vals = [-5.040246, 1.124521, -0.000009, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR edge_PPR = TestCase('edge_PPR') edge_PPR.cfg_dir = "nicf/edge" edge_PPR.cfg_file = "edge_PPR.cfg" - edge_PPR.test_iter = 40 - edge_PPR.test_vals = [-6.922907, -0.757793, -0.000034, 0.000000] - edge_PPR.test_vals_aarch64 = [-8.573595, -2.391849, -0.000034, 0.000000] + edge_PPR.test_iter = 100 + edge_PPR.test_vals = [-5.401604, 0.738202, -0.000035, 0.000000] + edge_PPR.test_vals_aarch64 = [-5.401642, 0.738164, -0.000035, 0.000000] test_list.append(edge_PPR) ###################################### @@ -561,7 +561,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.614627, -3.001324, -14.336143, -8.776079, -11.382919, -5.852328, 73273.000000, 73273.000000, 0.019884, 82.491000] + Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage @@ -569,7 +569,7 @@ def main(): axial_stage2D.cfg_dir = "turbomachinery/axial_stage_2D" axial_stage2D.cfg_file = "Axial_stage2D.cfg" axial_stage2D.test_iter = 20 - axial_stage2D.test_vals = [0.983739, 1.534333, -2.888521, 2.606770, -2.418339, 3.087275, 106380.000000, 106380.000000, 5.732600, 64.711000] + axial_stage2D.test_vals = [0.983739, 1.534333, -2.888521, 2.606770, -2.418339, 3.087275, 106380, 106380, 5.7325, 64.711] axial_stage2D.test_vals_aarch64 = [0.983739, 1.534333, -2.888521, 2.606770, -2.418339, 3.087275, 106380, 106380, 5.7325, 64.711] test_list.append(axial_stage2D) @@ -578,7 +578,7 @@ def main(): transonic_stator_restart.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator_restart.cfg_file = "transonic_stator_restart.cfg" transonic_stator_restart.test_iter = 20 - transonic_stator_restart.test_vals = [-5.007735, -3.099310, -2.751696, 1.091966, -3.542819, 2.163237, -471630.000000, 94.866000, -0.035738] + transonic_stator_restart.test_vals = [-5.007735, -3.099310, -2.751696, 1.091966, -3.542819, 2.163237, -471630, 94.866, -0.035738] transonic_stator_restart.test_vals_aarch64 = [-5.007735, -3.099310, -2.751696, 1.091966, -3.542819, 2.163237, -471630, 94.866, -0.035738] test_list.append(transonic_stator_restart) @@ -591,7 +591,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.185381, -10.631535] + uniform_flow.test_vals = [5.000000, 0.000000, -0.188748, -10.631533] uniform_flow.unsteady = True uniform_flow.multizone = True test_list.append(uniform_flow) @@ -601,7 +601,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.419762, 0.352170, 0.404385] + channel_2D.test_vals = [2.000000, 0.000000, 0.397975, 0.352765, 0.405420] channel_2D.unsteady = True channel_2D.multizone = True test_list.append(channel_2D) @@ -611,8 +611,8 @@ 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.623108, 0.505077, 0.412801] - channel_3D.test_vals_aarch64 = [2.000000, 0.000000, 0.620558, 0.504323, 0.412729] + channel_3D.test_vals = [2.000000, 0.000000, 0.620170, 0.505179, 0.415317] + channel_3D.test_vals_aarch64 = [2.000000, 0.000000, 0.620189, 0.505311, 0.415246] channel_3D.unsteady = True channel_3D.multizone = True channel_3D.enabled_with_tsan = False @@ -623,7 +623,7 @@ def main(): pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 - pipe.test_vals = [0.116650, 0.481386, 0.648698, 0.982997, 1.018359] + pipe.test_vals = [0.150024, 0.491949, 0.677759, 0.963991, 1.006947] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) @@ -633,7 +633,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.777568, 1.134807, 1.224137] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) @@ -643,7 +643,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.207949, 1.036083] + supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.214344, 1.663912] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) @@ -694,7 +694,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.729243, -4.153954] + fsi2d.test_vals = [4.000000, 0.000000, -3.743227, -4.133479] fsi2d.multizone= True fsi2d.unsteady = True fsi2d.enabled_with_tsan = False @@ -705,7 +705,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 = [-5.425896, -5.797242, 0.000000, 6.000000] + stat_fsi.test_vals = [-5.397954, -5.719688, 0.000000, 10.000000] stat_fsi.test_vals_aarch64 = [-5.423016, -5.753459, 0.000000, 10.000000] stat_fsi.multizone = True test_list.append(stat_fsi) @@ -715,8 +715,8 @@ 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.330441, -4.057994, 0.000000, 103.000000] - dyn_fsi.test_vals_aarch64 = [-4.332167, -4.057742, 0.000000, 102.000000] + dyn_fsi.test_vals = [-4.355806, -4.060582, 0.000000, 103.000000] + dyn_fsi.test_vals_aarch64 = [-4.355806, -4.060582, 0.000000, 103.000000] dyn_fsi.multizone = True dyn_fsi.unsteady = True test_list.append(dyn_fsi) @@ -726,8 +726,8 @@ 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.463348, -4.232710, 0.000000, 37.000000] - stat_fsi_restart.test_vals_aarch64 = [-3.442878, -4.228058, 0.000000, 37.000000] + stat_fsi_restart.test_vals = [-3.474078, -4.242240, 0.000000, 36.000000] + stat_fsi_restart.test_vals_aarch64 = [-3.474081, -4.242372, 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 0669ff42a30..5bf0befa263 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.561506, -8.926634, -0.000000, 0.005587] 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.764562, -3.719982, -0.000000, 0.000000] + discadj_cylinder3D.test_vals = [-3.730673, -3.832084, -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.087876, -3.481506, 0.068878, 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.092007, -2.652751, 0.000000] test_list.append(discadj_incomp_NACA0012) ##################################### @@ -123,7 +123,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.845995, -1.031096, 0.000000] + discadj_incomp_turb_NACA0012_sa.test_vals = [10.000000, -3.845995, -1.031097, 0.000000] test_list.append(discadj_incomp_turb_NACA0012_sa) # Adjoint Incompressible Turbulent NACA 0012 SST @@ -143,7 +143,7 @@ def main(): discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder" discadj_cylinder.cfg_file = "cylinder.cfg" discadj_cylinder.test_iter = 9 - discadj_cylinder.test_vals = [3.746907, -1.544883, -0.008321, 0.000014] + discadj_cylinder.test_vals = [3.746907, -1.544882, -0.008321, 0.000014] discadj_cylinder.unsteady = True discadj_cylinder.enabled_with_tsan = False test_list.append(discadj_cylinder) @@ -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.219713, -1.645717, -0.007513, 0.000013] discadj_pitchingNACA0012.unsteady = True discadj_pitchingNACA0012.enabled_with_tsan = False test_list.append(discadj_pitchingNACA0012) @@ -199,7 +199,7 @@ def main(): discadj_trans_stator.cfg_dir = "disc_adj_turbomachinery/transonic_stator_2D" discadj_trans_stator.cfg_file = "transonic_stator.cfg" discadj_trans_stator.test_iter = 79 - discadj_trans_stator.test_vals = [79.000000, 0.770094, 0.383191, 0.472139, -0.996477, 2.153270, -4.444323] + discadj_trans_stator.test_vals = [79, 0.770065, 0.383137, 0.472153, -0.996484, 2.153296, -4.444301] discadj_trans_stator.test_vals_aarch64 = [79, 0.769987, 0.383135, 0.472391, -0.996504, 2.153296, -4.444301] discadj_trans_stator.enabled_with_tsan = False test_list.append(discadj_trans_stator) @@ -238,7 +238,7 @@ def main(): pywrapper_FEA_AD_FlowLoad.cfg_dir = "py_wrapper/disc_adj_fea/flow_load_sens" pywrapper_FEA_AD_FlowLoad.cfg_file = "configAD_fem.cfg" pywrapper_FEA_AD_FlowLoad.test_iter = 100 - pywrapper_FEA_AD_FlowLoad.test_vals = [-0.132037, -0.554472, -0.000364, -0.003101] + pywrapper_FEA_AD_FlowLoad.test_vals = [-0.131415, -0.551701, -0.000364, -0.003101] #last 4 columns pywrapper_FEA_AD_FlowLoad.test_vals_aarch64 = [-0.131745, -0.553214, -0.000364, -0.003101] pywrapper_FEA_AD_FlowLoad.command = TestCase.Command(exec = "python", param = "run_adjoint.py --parallel -f") pywrapper_FEA_AD_FlowLoad.timeout = 1600 @@ -253,8 +253,8 @@ 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_aarch64 = [30.000000, -2.499079, 1.440068, 0.000000] + pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.521422, 1.372295, 0.000000] #last 4 columns + pywrapper_CFD_AD_MeshDisp.test_vals_aarch64 = [30.000000, -2.516536, 1.386443, 0.000000] pywrapper_CFD_AD_MeshDisp.command = TestCase.Command(exec = "python", param = "run_adjoint.py --parallel -f") pywrapper_CFD_AD_MeshDisp.timeout = 1600 pywrapper_CFD_AD_MeshDisp.tol = 1e-2 diff --git a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg index 300dd64a5b5..3b7da053aef 100644 --- a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg +++ b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg @@ -43,7 +43,7 @@ MARKER_MONITORING= ( airfoil ) % ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% % NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 200.0 +CFL_NUMBER= 3.0 CFL_ADAPT= NO CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) @@ -51,13 +51,13 @@ ITER= 9999 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % -MGLEVEL= 3 +MGLEVEL= 2 MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) MG_POST_SMOOTH= ( 1, 1, 1, 1 ) MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1 ) -MG_DAMP_RESTRICTION= 0.9 -MG_DAMP_PROLONGATION= 0.9 +MG_DAMP_RESTRICTION= 0.85 +MG_DAMP_PROLONGATION= 0.85 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % diff --git a/TestCases/incomp_euler/nozzle/inv_nozzle.cfg b/TestCases/incomp_euler/nozzle/inv_nozzle.cfg index 9633d08fba5..0c793b2c903 100644 --- a/TestCases/incomp_euler/nozzle/inv_nozzle.cfg +++ b/TestCases/incomp_euler/nozzle/inv_nozzle.cfg @@ -46,7 +46,7 @@ MARKER_ANALYZE_AVERAGE = AREA % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 500 +CFL_NUMBER= 15.0 % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% % @@ -61,8 +61,8 @@ LINEAR_SOLVER_ITER= 5 MGLEVEL= 3 MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) -MG_POST_SMOOTH= ( 1, 1, 1, 0 ) -MG_CORRECTION_SMOOTH= ( 1, 1, 1, 0 ) +MG_POST_SMOOTH= ( 0, 0, 0, 0 ) +MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) MG_DAMP_RESTRICTION= 0.95 MG_DAMP_PROLONGATION= 0.95 diff --git a/TestCases/incomp_navierstokes/sphere/sphere.cfg b/TestCases/incomp_navierstokes/sphere/sphere.cfg deleted file mode 100644 index 7f5ed6dd2fc..00000000000 --- a/TestCases/incomp_navierstokes/sphere/sphere.cfg +++ /dev/null @@ -1,104 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% SU2 configuration file % -% Case description: laminar flow around a sphere % -% Author: Nijso Beishuizen % -% Institution: Technische Universiteit Eindhoven % -% Date: 2024.05.05 % -% File Version 8.0.1 "Harrier" % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -SOLVER= INC_NAVIER_STOKES -KIND_TURB_MODEL= NONE -RESTART_SOL= YES -INC_NONDIM= DIMENSIONAL - -% ---------------- INCOMPRESSIBLE FLOW CONDITION DEFINITION -------------------% -% Re = rho*V*D/mu = 1*1*2.0/2.0 = 1.0 -INC_DENSITY_MODEL= CONSTANT -INC_ENERGY_EQUATION= NO -INC_DENSITY_INIT= 1.0 - -INC_VELOCITY_INIT= (1.0, 0.0, 0.0 ) -INC_VELOCITY_REF = 1 -INC_DENSITY_REF = 1.0 - -% --------------------------- VISCOSITY MODEL ---------------------------------% -% -VISCOSITY_MODEL= CONSTANT_VISCOSITY -MU_CONSTANT= 2.0 -% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% -% -REF_ORIGIN_MOMENT_X = 0.25 -REF_ORIGIN_MOMENT_Y = 0.00 -REF_ORIGIN_MOMENT_Z = 0.00 -% sphere is 1/40 of a complete sphere -% area = pi*r^2 = 3.14159 -% 1/40 slice = 0.07854 -REF_AREA= 0.07854 - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% -MARKER_HEATFLUX= ( wall, 0.0 ) -MARKER_SYM= ( symmetry_left, symmetry_right ) -MARKER_FAR= ( farfield ) -MARKER_PLOTTING= ( wall ) -MARKER_MONITORING= ( wall ) - -% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% -% -NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 10.0 -CFL_ADAPT= NO -ITER=50000 -VENKAT_LIMITER_COEFF= 0.01 - -% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% -% -LINEAR_SOLVER= FGMRES -LINEAR_SOLVER_PREC= ILU -LINEAR_SOLVER_ERROR= 1E-05 -LINEAR_SOLVER_ITER= 5 - -% -------------------------- MULTIGRID PARAMETERS -----------------------------% -% -MGLEVEL= 1 -MGCYCLE= V_CYCLE -MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) -MG_POST_SMOOTH= ( 1, 1, 1, 1 ) -MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1 ) -MG_DAMP_RESTRICTION= 0.6 -MG_DAMP_PROLONGATION= 0.6 - -% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% -% -CONV_NUM_METHOD_FLOW= FDS -MUSCL_FLOW= YES -SLOPE_LIMITER_FLOW= NONE -JST_SENSOR_COEFF= ( 0.5, 0.04 ) -TIME_DISCRE_FLOW= EULER_IMPLICIT - -% --------------------------- CONVERGENCE PARAMETERS --------------------------% -% -CONV_RESIDUAL_MINVAL= -10 -CONV_STARTITER= 10 -CONV_CAUCHY_ELEMS= 100 -CONV_CAUCHY_EPS= 1E-6 - -% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% -% -MESH_FILENAME= slice_2syms.su2 -MESH_FORMAT= SU2 -SOLUTION_FILENAME= solution_flow.dat -TABULAR_FORMAT= CSV -CONV_FILENAME= history -RESTART_FILENAME= restart_flow.dat -VOLUME_FILENAME= flow -SURFACE_FILENAME= surface_flow -OUTPUT_WRT_FREQ= 100 -WRT_VOLUME_OVERWRITE= YES -SCREEN_OUTPUT= ( INNER_ITER, RMS_PRESSURE, RMS_VELOCITY-X, RMS_VELOCITY-Y, RMS_VELOCITY-Z, LIFT, DRAG) -VOLUME_OUTPUT= ( SOLUTION,PRIMITIVE,RESIDUAL,MULTIGRID, RANK ) diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref index 2634fca1ff5..f959a481490 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref @@ -1,2 +1,2 @@ "VARIABLE" , "AVG_DENSITY[0]", "AVG_ENTHALPY[0]", "AVG_NORMALVEL[0]", "DRAG[0]" , "EFFICIENCY[0]" , "FORCE_X[0]" , "FORCE_Y[0]" , "FORCE_Z[0]" , "LIFT[0]" , "MOMENT_X[0]" , "MOMENT_Y[0]" , "MOMENT_Z[0]" , "SIDEFORCE[0]" , "SURFACE_MACH[0]", "SURFACE_MASSFLOW[0]", "SURFACE_MOM_DISTORTION[0]", "SURFACE_PRESSURE_DROP[0]", "SURFACE_SECONDARY[0]", "SURFACE_SECOND_OVER_UNIFORM[0]", "SURFACE_STATIC_PRESSURE[0]", "SURFACE_STATIC_TEMPERATURE[0]", "SURFACE_TOTAL_PRESSURE[0]", "SURFACE_TOTAL_TEMPERATURE[0]", "SURFACE_UNIFORMITY[0]", "AVG_TEMPERATURE[1]", "MAXIMUM_HEATFLUX[1]", "TOTAL_HEATFLUX[1]", "FINDIFF_STEP" -0 , 0.0 , -300000.0026077032, -3.3306691000000184e-08, 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , -0.01999999887924986, 0.0 , -0.9000000009140585 , 0.0 , 0.9379999998948563 , 1.649999997743734 , 419.99999780273356 , -69.99999868639861 , 358.9999998609983 , -69.99999868639861 , -0.6000000052353016 , -380.0000001774606, 0.0 , -430.00000005122274, 1e-08 +0 , 0.0 , -199999.9862164259, -5.551100000002363e-08, 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , -0.02000000026702864, 5.550999999230055e-08, -0.6560000001543109 , 0.0 , 0.6520000012111282 , 1.1399999999550658 , 319.9999980552093 , -39.999997625272954 , 260.999999568412 , -39.999997625272954 , -0.4999999969612645 , -269.99999818144715, 0.0 , -560.0000008598727, 1e-08 diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg index d7c2698fc10..8ff23f71359 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg @@ -22,7 +22,7 @@ OUTER_ITER = 31 % CONV_RESIDUAL_MINVAL= -26 SCREEN_OUTPUT= (OUTER_ITER, BGS_PRESSURE[0], BGS_TEMPERATURE[0], BGS_TEMPERATURE[1], STREAMWISE_MASSFLOW[0], STREAMWISE_DP[0], AVG_TEMPERATURE[1], TOTAL_HEATFLUX[0] ) -SCREEN_WRT_FREQ_OUTER= 10 +SCREEN_WRT_FREQ_OUTER= 100 % HISTORY_OUTPUT= ( ITER, RMS_RES[0], RMS_RES[1], STREAMWISE_PERIODIC[0], FLOW_COEFF[0], HEAT[1] ) % diff --git a/TestCases/multiple_ffd/naca0012/of_grad_cd.dat.ref b/TestCases/multiple_ffd/naca0012/of_grad_cd.dat.ref index bce05aa9bf6..81759ef4cd7 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.0779208 , 0.001 - 1 , -0.115959 , 0.001 + 0 , 0.0767137 , 0.001 + 1 , -0.113024 , 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 74adba36fa1..da2e3f10472 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.06149476303 , -0.608748249 , 0.05888315926 , 0.1203589365 , 0.0 , 0.119045765 , 0.0 , 0.0 , 0.009719951712 , 0.0 - 1 , -0.08536237383 , 8.303168487 , -0.09097907726 , 0.2564786779 , 0.0 , 0.2584023411 , 0.0 , 0.0 , 0.004460595335 , 0.0 + 0 , 0.05685349197 , -0.4081397694 , 0.05417489043 , 0.1233787706 , 0.0 , 0.1221675908 , 0.0 , 0.0 , 0.009249264651 , 0.0 + 1 , -0.08020555475 , 8.976256797 , -0.08614647972 , 0.2713937953 , 0.0 , 0.2732084865 , 0.0 , 0.0 , 0.00847918122 , 0.0 diff --git a/TestCases/navierstokes/cylinder/lam_cylinder.cfg b/TestCases/navierstokes/cylinder/lam_cylinder.cfg index eb03eb6c121..8c0efd53259 100644 --- a/TestCases/navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/navierstokes/cylinder/lam_cylinder.cfg @@ -42,7 +42,7 @@ MARKER_MONITORING= ( cylinder ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 500.0 +CFL_NUMBER= 4.0 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/navierstokes/flatplate/lam_flatplate.cfg b/TestCases/navierstokes/flatplate/lam_flatplate.cfg index 75541961acc..34f572d5598 100644 --- a/TestCases/navierstokes/flatplate/lam_flatplate.cfg +++ b/TestCases/navierstokes/flatplate/lam_flatplate.cfg @@ -46,7 +46,7 @@ MARKER_ANALYZE= (inlet, outlet) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 1000 +CFL_NUMBER= 10000 CFL_ADAPT= NO % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% @@ -60,11 +60,11 @@ LINEAR_SOLVER_ITER= 3 % MGLEVEL= 3 MGCYCLE= V_CYCLE -MG_PRE_SMOOTH= ( 1, 2, 3, 0 ) -MG_POST_SMOOTH= ( 1, 1, 1, 0 ) +MG_PRE_SMOOTH= ( 1, 1, 1, 2 ) +MG_POST_SMOOTH= ( 0, 1, 1, 0 ) MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) -MG_DAMP_RESTRICTION= 0.8 -MG_DAMP_PROLONGATION= 0.8 +MG_DAMP_RESTRICTION= 0.75 +MG_DAMP_PROLONGATION= 0.75 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % @@ -78,7 +78,7 @@ TIME_DISCRE_FLOW= EULER_IMPLICIT CONV_FIELD= RMS_DENSITY CONV_RESIDUAL_MINVAL= -12 CONV_STARTITER= 10 -ITER= 5000 +ITER= 500 % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % diff --git a/TestCases/nicf/edge/edge_PPR.cfg b/TestCases/nicf/edge/edge_PPR.cfg index 34fdba91303..759187d1229 100644 --- a/TestCases/nicf/edge/edge_PPR.cfg +++ b/TestCases/nicf/edge/edge_PPR.cfg @@ -10,7 +10,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% +% SOLVER= EULER MATH_PROBLEM= DIRECT RESTART_SOL= NO @@ -50,11 +50,11 @@ MARKER_MONITORING= ( WALL1 ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 2.5 -CFL_ADAPT= YES -CFL_ADAPT_PARAM= ( 0.9, 1.1, 1.0, 200.0 ) +CFL_NUMBER= 10 +CFL_ADAPT= NO +CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) -ITER= 51 +ITER= 500 % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% % @@ -65,8 +65,8 @@ LINEAR_SOLVER_ITER= 10 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % -MGLEVEL= 3 -MGCYCLE= W_CYCLE +MGLEVEL= 2 +MGCYCLE= V_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) MG_POST_SMOOTH= ( 0, 0, 0, 0 ) MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) @@ -83,7 +83,6 @@ JST_SENSOR_COEFF= ( 0.5, 0.02 ) TIME_DISCRE_FLOW= EULER_IMPLICIT % --------------------------- CONVERGENCE PARAMETERS --------------------------% -% CONV_RESIDUAL_MINVAL= -12 CONV_STARTITER= 10 CONV_CAUCHY_ELEMS= 100 diff --git a/TestCases/nicf/edge/edge_VW.cfg b/TestCases/nicf/edge/edge_VW.cfg index add439803e6..2646c8efb40 100644 --- a/TestCases/nicf/edge/edge_VW.cfg +++ b/TestCases/nicf/edge/edge_VW.cfg @@ -51,9 +51,9 @@ MARKER_MONITORING= ( WALL1 ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 2.0 -CFL_ADAPT= YES -CFL_ADAPT_PARAM= ( 0.9, 1.1, 1.0, 200.0 ) +CFL_NUMBER= 10 +CFL_ADAPT= NO +CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) ITER= 500 @@ -66,13 +66,13 @@ LINEAR_SOLVER_ITER= 10 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % -MGLEVEL= 3 -MGCYCLE= W_CYCLE +MGLEVEL= 2 +MGCYCLE= V_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) -MG_POST_SMOOTH= ( 1, 1, 1, 1 ) +MG_POST_SMOOTH= ( 0, 0, 0, 0 ) MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) -MG_DAMP_RESTRICTION= 0.85 -MG_DAMP_PROLONGATION= 0.85 +MG_DAMP_RESTRICTION= 0.9 +MG_DAMP_PROLONGATION= 0.9 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 0137b08806c..05cca0d50fb 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 = [-15.313265, -15.180884, -15.291808, -8.488238, -15.010141, -15.920950] 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 = [-11.054149, -12.276393, -11.299388, -13.877670, -6.291548] 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 = [-10.072805, -11.301138, -4.658971, -13.158224, -11.087511] 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.003106, -9.843748, -3.289857, -11.338273] cfd_flamelet_h2.new_output = True test_list.append(cfd_flamelet_h2) @@ -112,8 +112,8 @@ def main(): invwedge_a.cfg_dir = "nonequilibrium/invwedge" invwedge_a.cfg_file = "invwedge_ausm.cfg" invwedge_a.test_iter = 10 - invwedge_a.test_vals = [-1.069675, -1.594438, -18.299923, -18.627316, -18.573325, 2.245721, 1.874105, 5.290285, 0.847729] - invwedge_a.test_vals_aarch64 = [-1.070904, -1.595667, -18.299980, -18.627372, -18.573382, 2.244654, 1.871030, 5.289134, 0.846502] + invwedge_a.test_vals = [-1.042842, -1.567605, -18.301264, -18.628631, -18.574668, 2.275192, 1.879772, 5.319421, 0.873699] + invwedge_a.test_vals_aarch64 = [-1.042842, -1.567605, -18.301374, -18.628734, -18.574780, 2.275192, 1.879772, 5.319421, 0.873699] test_list.append(invwedge_a) # Inviscid single wedge, ausm+-up2, implicit @@ -121,8 +121,8 @@ def main(): invwedge_ap2.cfg_dir = "nonequilibrium/invwedge" invwedge_ap2.cfg_file = "invwedge_ausmplusup2.cfg" invwedge_ap2.test_iter = 10 - invwedge_ap2.test_vals = [-0.982059, -1.506822, -16.735977, -17.063993, -17.009083, 2.354326, 1.482256, 5.373931, 0.927155] - invwedge_ap2.test_vals_aarch64 = [-0.982059, -1.506822, -16.735977, -17.063993, -17.009083, 2.354326, 1.482256, 5.373931, 0.927155] + invwedge_ap2.test_vals = [-0.952589, -1.477352, -16.736014, -17.064021, -17.009120, 2.387086, 1.287286, 5.403046, 0.956402] + invwedge_ap2.test_vals_aarch64 = [-0.952589, -1.477352, -16.736014, -17.064021, -17.009120, 2.387086, 1.287286, 5.403046, 0.956402] test_list.append(invwedge_ap2) # Inviscid single wedge, msw, implicit @@ -130,8 +130,8 @@ def main(): invwedge_msw.cfg_dir = "nonequilibrium/invwedge" invwedge_msw.cfg_file = "invwedge_msw.cfg" invwedge_msw.test_iter = 10 - invwedge_msw.test_vals = [-1.212335, -1.737098, -18.299220, -18.626618, -18.572623, 2.106171, 1.651949, 5.143958, 0.704444] - invwedge_msw.test_vals_aarch64 = [-1.224649, -1.749412, -18.299151, -18.626550, -18.572552, 2.094106, 1.635779, 5.131012, 0.692821] + invwedge_msw.test_vals = [-1.165957, -1.690720, -18.298756, -18.626164, -18.572159, 2.151638, 1.721236, 5.193813, 0.751584] + invwedge_msw.test_vals_aarch64 = [-1.165957, -1.690720, -18.301301, -18.628685, -18.574704, 2.151638, 1.721236, 5.193813, 0.751584] test_list.append(invwedge_msw) # Inviscid single wedge, roe, implicit @@ -139,8 +139,8 @@ def main(): invwedge_roe.cfg_dir = "nonequilibrium/invwedge" invwedge_roe.cfg_file = "invwedge_roe.cfg" invwedge_roe.test_iter = 10 - invwedge_roe.test_vals = [-1.062496, -1.587259, -17.208314, -17.538065, -17.481444, 2.255933, 1.853450, 5.293725, 0.890784] - invwedge_roe.test_vals_aarch64 = [-1.069128, -1.593891, -17.208222, -17.537969, -17.481352, 2.249020, 1.852904, 5.287143, 0.879852] + invwedge_roe.test_vals = [-1.038582, -1.563344, -18.300307, -18.627706, -18.573706, 2.278987, 1.861307, 5.323753, 0.874900] + invwedge_roe.test_vals_aarch64 = [-1.038582, -1.563344, -18.299879, -18.627263, -18.573276, 2.278987, 1.861307, 5.323753, 0.874900] test_list.append(invwedge_roe) # Inviscid single wedge, lax, implicit @@ -148,8 +148,8 @@ def main(): invwedge_lax.cfg_dir = "nonequilibrium/invwedge" invwedge_lax.cfg_file = "invwedge_lax.cfg" invwedge_lax.test_iter = 10 - invwedge_lax.test_vals = [-0.877280, -1.402043, -32.000000, -32.000000, -24.952631, 2.451869, 1.857084, 5.486158, 1.051580] - invwedge_lax.test_vals_aarch64 = [-0.877280, -1.402043, -32.000000, -32.000000, -24.952631, 2.451869, 1.857084, 5.486158, 1.051580] + invwedge_lax.test_vals = [-1.075662, -1.600425, -32.000000, -32.000000, -24.972431, 2.252952, 1.725158, 5.282140, 0.848823] + invwedge_lax.test_vals_aarch64 = [-1.075662, -1.600425, -32.000000, -32.000000, -24.972431, 2.252952, 1.725158, 5.282140, 0.848823] test_list.append(invwedge_lax) # Inviscid single wedge, implicit, AUSM+M scheme @@ -157,8 +157,8 @@ def main(): invwedge_ausm_m.cfg_dir = "nonequilibrium/invwedge" invwedge_ausm_m.cfg_file = "invwedge_am.cfg" invwedge_ausm_m.test_iter = 10 - invwedge_ausm_m.test_vals = [-1.173033, -1.697796, -16.739586, -17.063491, -17.012692, 2.124519, 1.963804, 5.182881, 0.747539] - invwedge_ausm_m.test_vals_aarch64 = [-1.171654, -1.696417, -16.739585, -17.063491, -17.012691, 2.125633, 1.966511, 5.184281, 0.749068] + invwedge_ausm_m.test_vals = [-1.055083, -1.579845, -16.739725, -17.063618, -17.012831, 2.265430, 1.797602, 5.302740, 0.856548] + invwedge_ausm_m.test_vals_aarch64 = [-1.055079, -1.579842, -16.739725, -17.063618, -17.012831, 2.265433, 1.797600, 5.302743, 0.856551] test_list.append(invwedge_ausm_m) # Inviscid single wedge, implicit, NEMO supersonic inlet @@ -166,8 +166,8 @@ def main(): invwedge_ss_inlet.cfg_dir = "nonequilibrium/invwedge" invwedge_ss_inlet.cfg_file = "invwedge_ss_inlet.cfg" invwedge_ss_inlet.test_iter = 10 - invwedge_ss_inlet.test_vals = [-1.068592, -1.593355, -18.250183, -18.579524, -18.523255, 2.246972, 1.874197, 5.291273, 0.848771] - invwedge_ss_inlet.test_vals_aarch64 = [-1.069892, -1.594654, -18.250175, -18.579516, -18.523248, 2.245827, 1.871123, 5.290054, 0.847476] + invwedge_ss_inlet.test_vals = [-1.042718, -1.567481, -18.250175, -18.579516, -18.523248, 2.275305, 1.880068, 5.319548, 0.873821] + invwedge_ss_inlet.test_vals_aarch64 = [-1.042718, -1.567481, -18.250175, -18.579516, -18.523248, 2.275305, 1.880068, 5.319548, 0.873821] test_list.append(invwedge_ss_inlet) # Viscous single cone - axisymmetric @@ -175,8 +175,8 @@ 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_aarch64 = [-5.222267, -5.746523, -20.560279, -20.510152, -20.409102, 1.255758, -3.208380, -0.016014, 0.093462, 32633.000000] + visc_cone.test_vals = [-5.222212, -5.746462, -20.559802, -20.510196, -20.439814, 1.255865, -3.208363, -0.016006, 0.093455, 32633.000000] + visc_cone.test_vals_aarch64 = [-5.222267, -5.746522, -20.559799, -20.510195, -20.440311, 1.255761, -3.208360, -0.016014, 0.093462, 32634.000000] test_list.append(visc_cone) # Viscous single wedge with Mutation++ @@ -192,7 +192,7 @@ def main(): super_cat.cfg_dir = "nonequilibrium/visc_wedge" super_cat.cfg_file = "super_cat.cfg" super_cat.test_iter = 10 - super_cat.test_vals = [-5.232595, -5.757889, -20.641415, -20.640623, -20.541670, 1.246866, -3.205258, -0.028372, 0.250647, 32440.000000] + super_cat.test_vals = [-5.232590, -5.757884, -20.641547, -20.640244, -20.539243, 1.246889, -3.205235, -0.028406, 0.250857, 32459.000000] test_list.append(super_cat) # Viscous single wedge - partially catalytic walls @@ -200,7 +200,7 @@ def main(): partial_cat.cfg_dir = "nonequilibrium/visc_wedge" partial_cat.cfg_file = "partial_cat.cfg" partial_cat.test_iter = 10 - partial_cat.test_vals = [-5.210302, -5.735065, -20.880448, -20.825971, -23.475263, 1.806201, -2.813952, -0.078400, 0.495606, 29020.000000] + partial_cat.test_vals = [-5.210300, -5.735063, -20.880374, -20.825890, -23.475263, 1.806281, -2.813924, -0.078469, 0.496017, 29021.000000] test_list.append(partial_cat) # Viscous cylinder, ionization, Gupta-Yos @@ -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.647975, 2.818090, 0.022280, 0.004644] 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.322128, -3.813578, 0.321660, 0.022547] + naca0012.test_vals = [-4.014140, -3.537888, 0.333403, 0.021227] 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 = [-0.944740, 4.782451, -0.208522, 0.036742] 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 = [-9.277150, -8.694005, 0.281703, 0.011821] 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 = [-7.379831, -1.886302, 0.300000, 0.019471] test_list.append(fixedCL_naca0012) # Polar sweep of the inviscid NACA0012 @@ -262,8 +262,8 @@ 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_aarch64 = [-1.083394, 4.386134, 0.001588, 0.033513] + polar_naca0012.test_vals = [-1.217981, 4.256386, 0.009084, 0.016823] + polar_naca0012.test_vals_aarch64 = [-1.718925, 3.711429, 0.009217, 0.007784] polar_naca0012.command = TestCase.Command(exec = "compute_polar.py", param = "-i 11") # flaky test on arm64 polar_naca0012.enabled_on_cpu_arch = ["x86_64"] @@ -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.540009, 6.916653, 0.000000, 1.868976] 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.076215, -0.391987, -0.000701, 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.399623, -7.788893, -0.081064, 0.056474] 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.621750, -2.149876, 0.001084, 0.036232, 2.361500, -2.325300, -1.815200, -1.815200] + flatplate.test_vals = [-9.336395, -3.849426, 0.001112, 0.036276, 2.361500, -2.325300, -2.279700, -2.279700] 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.664134, -1.190073, -0.954366, 0.000641, -0.000633, 0.000548, -0.001181, 596.940000, 300.020000, 296.920000, 22.201000, 0.525750, 37.278000, 2.347900] + flatplate_udobj.test_vals = [-6.653802, -1.181430, -0.794887, 0.000611, -0.000369, 0.000736, -0.001104, 596.690000, 299.800000, 296.890000, 21.492000, 0.563990, 37.148000, 2.278700] test_list.append(flatplate_udobj) # Laminar cylinder (steady) @@ -319,7 +319,7 @@ def main(): cylinder.cfg_dir = "navierstokes/cylinder" cylinder.cfg_file = "lam_cylinder.cfg" cylinder.test_iter = 25 - cylinder.test_vals = [-8.421986, -2.931138, -0.003382, 1.607685, -0.009905] + cylinder.test_vals = [-6.754517, -1.286785, -0.213640, 0.706519, 0.158870] test_list.append(cylinder) # Laminar cylinder (low Mach correction) @@ -327,7 +327,7 @@ def main(): cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 - cylinder_lowmach.test_vals = [-6.841604, -1.379532, -1.266739, 76.118218, 0.000274] + cylinder_lowmach.test_vals = [-6.858484, -1.396528, -1.854558, 110.033249, 0.001951] test_list.append(cylinder_lowmach) # 2D Poiseuille flow (body force driven with periodic inlet / outlet) @@ -344,8 +344,8 @@ 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.483967, -7.577331, -0.000000, 2.085796] - poiseuille_profile.test_vals_aarch64 = [-12.483967, -7.577331, -0.000000, 2.085796] + poiseuille_profile.test_vals = [-12.492939, -7.672950, -0.000000, 2.085796] + poiseuille_profile.test_vals_aarch64 = [-12.492864, -7.671632, -0.000000, 2.085796] test_list.append(poiseuille_profile) ########################## @@ -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.147387, -6.728398, -0.176234, 0.057709] + turb_flatplate.test_vals = [-4.147727, -6.728308, -0.176232, 0.057717] test_list.append(turb_flatplate) # Flat plate (compressible) with species inlet @@ -389,31 +389,15 @@ 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.120225, -0.634021, -1.706720, 1.363240, -3.250204, 9.000000, -6.697079, 5.000000, -6.978731, 10.000000, -6.013196, 0.996237, 0.996237] + turb_flatplate_species.test_vals = [-4.147727, -0.634899, -1.770894, 1.334987, -3.250340, 9.000000, -6.700853, 5.000000, -6.991055, 10.000000, -6.033829, 0.996033, 0.996033] test_list.append(turb_flatplate_species) - # Flat plate SST compressibility correction Wilcox - turb_flatplate_CC_Wilcox = TestCase('turb_flatplate_CC_Wilcox') - 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.974212, 1.440458, 5.038402, -4.051125, 8.521136] - test_list.append(turb_flatplate_CC_Wilcox) - - # Flat plate SST compressibility correction Sarkar - turb_flatplate_CC_Sarkar = TestCase('turb_flatplate_CC_Sarkar') - 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.974212, 1.440458, 5.038402, -4.051128, 8.521136] - test_list.append(turb_flatplate_CC_Sarkar) - # ONERA M6 Wing turb_oneram6 = TestCase('turb_oneram6') turb_oneram6.cfg_dir = "rans/oneram6" turb_oneram6.cfg_file = "turb_ONERAM6.cfg" turb_oneram6.test_iter = 10 - turb_oneram6.test_vals = [-2.392865, -6.689822, 0.230746, 0.158811, -33786.000000] + turb_oneram6.test_vals = [-2.388839, -6.689426, 0.230321, 0.157640, -32539.000000] turb_oneram6.timeout = 3200 test_list.append(turb_oneram6) @@ -422,7 +406,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.266212, -6.628059, 0.228692, 0.142105, -28396.000000] + turb_oneram6_vc.test_vals = [-2.262387, -6.626454, 0.228392, 0.140799, -27107.000000] turb_oneram6_vc.timeout = 3200 test_list.append(turb_oneram6_vc) @@ -431,7 +415,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.803402, -4.393783, -11.445194, 0.218505, 0.048793, 4.000000, -0.607076, 25.924000] + turb_oneram6_nk.test_vals = [-4.892252, -4.514006, -11.432306, 0.221025, 0.045570, 2.000000, -0.899460, 31.384000] turb_oneram6_nk.timeout = 600 turb_oneram6_nk.tol = 0.0001 test_list.append(turb_oneram6_nk) @@ -530,7 +514,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.150822, -6.604726, -9.187292, -4.518261, -2019.700000] + axi_rans_air_nozzle_restart.test_vals = [-12.063597, -7.006585, -8.702557, -4.039824, -2019.8] axi_rans_air_nozzle_restart.tol = 0.0001 test_list.append(axi_rans_air_nozzle_restart) @@ -558,7 +542,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 = [-4.801273, -3.773079, 0.495236, 0.007346] test_list.append(inc_euler_naca0012) # C-D nozzle with pressure inlet and mass flow outlet @@ -566,7 +550,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 = [-5.982321, -4.953536, 0.000454, 0.121390] test_list.append(inc_nozzle) ############################# @@ -581,14 +565,6 @@ def main(): inc_lam_cylinder.test_vals = [-4.004072, -3.194881, -0.076553, 7.780048] test_list.append(inc_lam_cylinder) - # Laminar sphere, Re=1. Last column: Cd=24/Re - inc_lam_sphere = TestCase('inc_lam_sphere') - 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, -8.032107, 0.121003, 25.782687] - test_list.append(inc_lam_sphere) - # Buoyancy-driven cavity inc_buoyancy = TestCase('inc_buoyancy') inc_buoyancy.cfg_dir = "incomp_navierstokes/buoyancy_cavity" @@ -610,7 +586,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.447746, -3.085237, -0.020816, 1.147373] test_list.append(inc_lam_bend) # 3D laminar channnel with 1 cell in flow direction, streamwise periodic @@ -626,7 +602,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.242651, -7.341179, -7.407346, -0.152603, -1667.300000] test_list.append(inc_heatTransfer_BC) ############################ @@ -777,7 +753,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 = [-7.994740, -13.240225, 0.000046, 0.007987] test_list.append(schubauer_klebanoff_transition) ##################################### @@ -789,7 +765,7 @@ def main(): contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012" contadj_naca0012.cfg_file = "inv_NACA0012.cfg" contadj_naca0012.test_iter = 5 - contadj_naca0012.test_vals = [-9.662585, -14.998832, -0.726250, 0.020280] + contadj_naca0012.test_vals = [-9.300816, -14.587365, 0.300920, 0.019552] test_list.append(contadj_naca0012) # Inviscid ONERA M6 @@ -797,7 +773,7 @@ def main(): contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6" contadj_oneram6.cfg_file = "inv_ONERAM6.cfg" contadj_oneram6.test_iter = 10 - contadj_oneram6.test_vals = [-12.032190, -12.587083, -1.086100, 0.007556] + contadj_oneram6.test_vals = [-12.130993, -12.702085, 0.685900, 0.007594] test_list.append(contadj_oneram6) # Inviscid WEDGE: tests averaged outflow total pressure adjoint @@ -805,7 +781,7 @@ def main(): contadj_wedge.cfg_dir = "cont_adj_euler/wedge" contadj_wedge.cfg_file = "inv_wedge_ROE.cfg" contadj_wedge.test_iter = 10 - contadj_wedge.test_vals = [2.872064, -2.756210, 1010800.000000, 0.000000] + contadj_wedge.test_vals = [2.872691, -2.755572, 853010.000000, -0.000000] test_list.append(contadj_wedge) # Inviscid fixed CL NACA0012 @@ -813,7 +789,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.275856, -5.200511, 0.342710, 0.000105] test_list.append(contadj_fixed_CL_naca0012) ################################### @@ -929,7 +905,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.589739, 0.790169, 0.937053, 3.922579] test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil @@ -950,7 +926,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.698005, 2.845328, -0.079439, 0.002128] test_list.append(rot_naca0012) # Lid-driven cavity @@ -987,7 +963,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.977520, 3.481804, -0.012377, -0.007389] sine_gust.unsteady = True test_list.append(sine_gust) @@ -996,7 +972,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.076550, 0.033042, -0.001650, -0.000127] aeroelastic.unsteady = True test_list.append(aeroelastic) @@ -1005,7 +981,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.714785, -5.882679, -0.215041, 0.023758, -617.450000] + ddes_flatplate.test_vals = [-2.714757, -5.882779, -0.215005, 0.023783, -618.130000] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) @@ -1023,7 +999,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 = [0.000008, -8.876477, -8.249920, -6.294138, -5.468911, -3.398657, 0.002075, -0.324341] + flatplate_unsteady.test_vals = [7.9509e-06, -8.868859, -8.231652, -6.283262, -5.466675, -3.391163, 0.002078, -0.343642] flatplate_unsteady.unsteady = True test_list.append(flatplate_unsteady) @@ -1035,16 +1011,16 @@ def main(): edge_VW = TestCase('edge_VW') 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_iter = 100 + edge_VW.test_vals = [-5.048044, 1.115667, -0.000009, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR edge_PPR = TestCase('edge_PPR') 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_iter = 100 + edge_PPR.test_vals = [-5.400790, 0.739723, -0.000035, 0.000000] test_list.append(edge_PPR) # Rarefaction Q1D nozzle, include CoolProp fluid model @@ -1052,7 +1028,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.424953, -1.582877, 3.442422, 0.000000, 0.000000] + coolprop_fluidModel.test_vals = [-4.525459, -1.578697, 3.443116, 0.000000, 0.000000] coolprop_fluidModel.enabled_on_cpu_arch = ["x86_64"] test_list.append(coolprop_fluidModel) @@ -1061,7 +1037,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.428098, -1.314332, 4.630872, 0.000000, 0.000000] + coolprop_transportModel.test_vals = [-4.527922, -1.308648, 4.630717, 0.000000, 0.000000] coolprop_transportModel.enabled_on_cpu_arch = ["x86_64"] test_list.append(coolprop_transportModel) @@ -1070,7 +1046,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 = [-2.632817, 0.155922, 4.690917, 0.000000, 0.000000] + datadriven_fluidModel.test_vals = [-2.623890, 0.145236, 4.688439, 0.000000, 0.000000] test_list.append(datadriven_fluidModel) ###################################### @@ -1121,7 +1097,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.185381, -10.631539] + uniform_flow.test_vals = [5.000000, 0.000000, -0.188747, -10.631538] uniform_flow.unsteady = True uniform_flow.multizone = True test_list.append(uniform_flow) @@ -1131,7 +1107,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.419792, 0.352177, 0.404446] + channel_2D.test_vals = [2.000000, 0.000000, 0.398011, 0.352778, 0.405461] channel_2D.test_vals_aarch64 = [2.000000, 0.000000, 0.398036, 0.352783, 0.405462] channel_2D.timeout = 100 channel_2D.unsteady = True @@ -1143,7 +1119,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.623113, 0.505078, 0.412774] + channel_3D.test_vals = [2.000000, 0.000000, 0.620176, 0.505161, 0.415248] channel_3D.test_vals_aarch64 = [2.000000, 0.000000, 0.620182, 0.505302, 0.415257] channel_3D.unsteady = True channel_3D.multizone = True @@ -1154,7 +1130,7 @@ def main(): pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 - pipe.test_vals = [0.116649, 0.481389, 0.648696, 0.982990, 1.018349] + pipe.test_vals = [0.150024, 0.491953, 0.677755, 0.963980, 1.006936] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) @@ -1164,7 +1140,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.777572, 1.134804, 1.224137] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) @@ -1174,7 +1150,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.207949, 1.036090] + supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.214350, 1.663914] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) @@ -1238,7 +1214,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.729224, -4.153951] + fsi2d.test_vals = [4.000000, 0.000000, -3.743210, -4.133483] fsi2d.command = TestCase.Command(exec = "parallel_computation_fsi.py", param = "-f") fsi2d.multizone= True fsi2d.unsteady = True @@ -1249,7 +1225,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.311842, -4.950580, 0.000000, 8.000000] + stat_fsi.test_vals = [-3.296605, -4.934646, 0.000000, 7.000000] stat_fsi.multizone = True test_list.append(stat_fsi) @@ -1258,7 +1234,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.330462, -4.058005, 0.000000, 97.000000] + dyn_fsi.test_vals = [-4.355829, -4.060587, 5.3837e-08, 98] dyn_fsi.multizone = True dyn_fsi.unsteady = True test_list.append(dyn_fsi) @@ -1268,7 +1244,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.445617, -4.243213, 0.000000, 28.000000] + stat_fsi_restart.test_vals = [-3.435926, -4.264912, 0.000000, 28.000000] stat_fsi_restart.multizone = True test_list.append(stat_fsi_restart) @@ -1325,7 +1301,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.088580, -0.764276, -1.086940, -0.747450, 208.023676, 344.680000, -0.000000, -0.747450, 0.747450] + sp_pinArray_cht_2d_dp_hf.test_vals = [0.104306, -1.005859, -1.028870, -0.753282, 208.023676, 353.490000, -0.000000, -0.753280, 0.753280] sp_pinArray_cht_2d_dp_hf.multizone = True test_list.append(sp_pinArray_cht_2d_dp_hf) @@ -1334,8 +1310,8 @@ 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.627413, -3.083567, -4.577909, -0.009725, 104.632413, 418.370000, 0.000000] - sp_pinArray_3d_cht_mf_hf_tp.test_vals_aarch64 = [-1.622914, -3.081114, -4.576282, -0.009725, 104.632412, 418.370000, 0.000000] + sp_pinArray_3d_cht_mf_hf_tp.test_vals = [-5.128577, -5.425081, -6.788413, -0.009675, 104.655438, 419.210000, 0.0] + sp_pinArray_3d_cht_mf_hf_tp.test_vals_aarch64 = [-5.128577, -5.425081, -6.788413, -0.009675, 104.655438, 419.210000, 0.0] sp_pinArray_3d_cht_mf_hf_tp.multizone = True test_list.append(sp_pinArray_3d_cht_mf_hf_tp) @@ -1349,7 +1325,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 = [-9.569885, -8.966579, 0.335418, 0.023332] + pywrapper_naca0012.test_vals = [-6.747210, -6.149915, 0.333445, 0.021241] pywrapper_naca0012.command = TestCase.Command("mpirun -np 2", "SU2_CFD.py", "--parallel -f") test_list.append(pywrapper_naca0012) @@ -1380,7 +1356,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.076550, 0.033042, -0.001650, -0.000127] pywrapper_aeroelastic.command = TestCase.Command("mpirun -np 2", "SU2_CFD.py", "--parallel -f") pywrapper_aeroelastic.unsteady = True test_list.append(pywrapper_aeroelastic) @@ -1400,7 +1376,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.729224, -4.153951] + pywrapper_fsi2d.test_vals = [4.000000, 0.000000, -3.743210, -4.133483] 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 @@ -1411,7 +1387,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, 44.000000, -0.589089, -2.800967, -2.603174, -6.722478, 0.000209] + pywrapper_unsteadyFSI.test_vals = [0, 31, 5, 58, -1.756780, -2.828276, -7.652558, -6.863929, 1.5618e-04] pywrapper_unsteadyFSI.command = TestCase.Command("mpirun -np 2", "python", "run.py") pywrapper_unsteadyFSI.unsteady = True pywrapper_unsteadyFSI.multizone = True @@ -1442,7 +1418,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.037857, -1.603573, -2.074205, 2.424288, 7.765352, -0.220502] + pywrapper_deformingBump.test_vals = [0.500000, 0.000000, -2.554360, -1.084594, -0.024882, 2.907803, 8.785498, -0.363585] pywrapper_deformingBump.command = TestCase.Command("mpirun -np 2", "python", "run.py") pywrapper_deformingBump.unsteady = True test_list.append(pywrapper_deformingBump) @@ -1514,7 +1490,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.407755, -4.557255, -4.635502, -5.642910, -0.059627, -5.546376, 5.000000, -1.879995, 5.000000, -4.898985, 5.000000, -1.169389, 0.000551, 0.000483, 0.000068, 0.000000] + species2_primitiveVenturi_mixingmodel.test_vals = [-5.359429, -4.504612, -4.480004, -5.629196, -0.059934, -5.596051, 5.000000, -1.870943, 5.000000, -4.915279, 5.000000, -1.183531, 0.000429, 0.000393, 0.000036, 0.000000] test_list.append(species2_primitiveVenturi_mixingmodel) # 2 species (1 eq) primitive venturi mixing using mixing model and bounded scalar transport @@ -1522,7 +1498,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.392378, -4.492373, -4.576491, -5.759780, -0.137797, -5.677531, 5.000000, -1.895013, 5.000000, -4.806816, 5.000000, -1.697769, 0.000275, 0.000275, 0.000000, 0.000000] + species2_primitiveVenturi_mixingmodel_boundedscalar.test_vals = [-5.336209, -4.445047, -4.432074, -5.785385, -0.127631, -5.672217, 5.000000, -1.944369, 5.000000, -4.878272, 5.000000, -1.806657, 0.000272, 0.000272, 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 @@ -1530,7 +1506,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.857397, -3.646605, -3.737462, -7.602922, -5.008846, 5.000000, -1.756226, 5.000000, -3.163353, 5.000000, -2.189723, 2.476808, 0.976999, 0.609280, 0.890529] + species2_primitiveVenturi_mixingmodel_viscosity.test_vals = [-4.843481, -3.585988, -3.486593, -7.560545, -5.094245, 5.000000, -1.898097, 5.000000, -3.328995, 5.000000, -2.113241, 2.482221, 0.974142, 0.607219, 0.900860] test_list.append(species2_primitiveVenturi_mixingmodel_viscosity) # 2 species (1 eq) primitive venturi mixing using mixing model including heat capacity and mass diffusivity @@ -1538,7 +1514,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.688779, -4.556193, -4.513326, -6.563666, 2.298459, -5.423525, 30.000000, -6.903871, 13.000000, -8.224587, 8.000000, -9.119625, 2.078869, 1.000000, 0.600000, 0.478869] + species2_primitiveVenturi_mixingmodel_heatcapacity_H2.test_vals = [-6.118333, -4.985699, -4.918326, -7.249080, 2.445213, -5.624080, 30.000000, -5.681895, 12.000000, -8.186475, 10.000000, -8.853067, 2.083524, 1.000000, 0.600000, 0.483524] 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 @@ -1546,7 +1522,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.287504, -4.852957, -4.798004, -7.501815, 1.991002, -5.023713, 10.000000, -2.696121, 3.000000, -5.182457, 5.000000, -5.561055, 2.078843, 1.000000, 0.600000, 0.478843] + species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.test_vals = [-5.724191, -5.290524, -5.223195, -8.252900, 2.140394, -5.229908, 30.000000, -5.681850, 12.000000, -8.186296, 10.000000, -8.852858, 2.083526, 1.000000, 0.600000, 0.483526] test_list.append(species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND) # 2 species (1 eq) primitive venturi mixing @@ -1554,7 +1530,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.643794, -4.798953, -4.858719, -5.648947, -1.195985, -5.564607, 5.000000, -0.958960, 5.000000, -2.515334, 5.000000, -0.796944, 0.000210, 0.000206, 0.000004, 0.000000] + species2_primitiveVenturi.test_vals = [-5.641112, -4.724266, -4.677148, -5.470711, -1.121455, -5.713132, 5.000000, -0.830412, 5.000000, -2.668654, 5.000000, -0.454161, 0.000092, 0.000091, 0.000001, 0.000000] test_list.append(species2_primitiveVenturi) # 2 species (1 eq) primitive venturi mixing with bounded scalar transport @@ -1562,7 +1538,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.283533, -4.417193, -4.478360, -5.669526, -0.952767, -5.618596, 5.000000, -1.996975, 5.000000, -4.017868, 5.000000, -1.747496, 0.000423, 0.000423, 0.000000, 0.000000] + species_primitiveVenturi_boundedscalar.test_vals = [-5.278467, -4.368236, -4.350556, -5.693359, -0.978845, -5.618393, 5.000000, -1.804015, 5.000000, -4.057089, 5.000000, -2.003816, 0.000415, 0.000415, 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 @@ -1570,7 +1546,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.105910, -1.680056, -1.599493, -0.672401, 1.441091, -3.759601, 23.000000, -5.201473, 11.000000, -5.312651, 4.000000, -6.525448, 2.000000, 1.000000, 0.000000, 1.000000] + species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.test_vals = [-4.026294, -1.649804, -1.404882, -0.746005, 1.609256, -3.767237, 23.000000, -5.082019, 10.000000, -5.056739, 4.000000, -6.480965, 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. @@ -1579,7 +1555,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.714428, -4.869589, -4.929349, -5.719577, -1.266622, -5.824037, -5.944720, 5.000000, -0.958918, 5.000000, -2.515337, 5.000000, -0.523677] + species3_primitiveVenturi_inletFile.test_vals = [-5.711734, -4.794814, -4.747694, -5.541323, -1.192017, -5.951964, -6.096677, 5.000000, -0.830172, 5.000000, -2.668819, 5.000000, -0.516308] test_list.append(species3_primitiveVenturi_inletFile) # rectangle passive transport validation @@ -1587,7 +1563,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.559189, -16.315116, -16.908670, -4.257599, 10, -4.523292, 8, -5.19335, 0.18661, 0] 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) @@ -1596,7 +1572,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 = [-6.111017, -5.720050] + species3_multizone_restart.test_vals = [-6.175178, -5.763030] species3_multizone_restart.multizone = True test_list.append(species3_multizone_restart) @@ -1640,14 +1616,14 @@ def main(): cfd_flamelet_ch4_cht = TestCase('cfd_flamelet_ch4_cht') cfd_flamelet_ch4_cht.cfg_dir = "flamelet/03_laminar_premixed_ch4_flame_cht_cfd" cfd_flamelet_ch4_cht.cfg_file = "lam_prem_ch4_cht_cfd_master.cfg" - cfd_flamelet_ch4_cht.test_iter = 5 + cfd_flamelet_ch4_cht.test_iter = 10 cfd_flamelet_ch4_cht.command = TestCase.Command("mpirun -n 2", "SU2_CFD") cfd_flamelet_ch4_cht.timeout = 1600 cfd_flamelet_ch4_cht.reference_file = "restart_0.csv.ref" cfd_flamelet_ch4_cht.test_file = "restart_0.csv" cfd_flamelet_ch4_cht.multizone = True cfd_flamelet_ch4_cht.comp_threshold = 1e-6 - cfd_flamelet_ch4_cht.tol_file_percent = 1.0 + cfd_flamelet_ch4_cht.tol_file_percent = 0.1 pass_list.append(cfd_flamelet_ch4_cht.run_filediff()) test_list.append(cfd_flamelet_ch4_cht) @@ -1854,18 +1830,16 @@ def main(): test_list.append(naca0012_cst) # 2D FD streamwise periodic cht, avg temp obj func - fd_sp_pinArray_cht_2d_dp_hf = TestCase('fd_sp_pinArray_cht_2d_dp_hf') - fd_sp_pinArray_cht_2d_dp_hf.cfg_dir = "incomp_navierstokes/streamwise_periodic/chtPinArray_2d" - fd_sp_pinArray_cht_2d_dp_hf.cfg_file = "FD_configMaster.cfg" - fd_sp_pinArray_cht_2d_dp_hf.test_iter = 100 - fd_sp_pinArray_cht_2d_dp_hf.command = TestCase.Command(exec = "finite_differences.py", param = "-z 2 -n 2 -f") - fd_sp_pinArray_cht_2d_dp_hf.timeout = 1600 - fd_sp_pinArray_cht_2d_dp_hf.comp_threshold = 1e-6 - fd_sp_pinArray_cht_2d_dp_hf.tol_file_percent = 0.2 - fd_sp_pinArray_cht_2d_dp_hf.reference_file = "of_grad_findiff.csv.ref" + fd_sp_pinArray_cht_2d_dp_hf = TestCase('fd_sp_pinArray_cht_2d_dp_hf') + fd_sp_pinArray_cht_2d_dp_hf.cfg_dir = "incomp_navierstokes/streamwise_periodic/chtPinArray_2d" + fd_sp_pinArray_cht_2d_dp_hf.cfg_file = "FD_configMaster.cfg" + fd_sp_pinArray_cht_2d_dp_hf.test_iter = 100 + fd_sp_pinArray_cht_2d_dp_hf.command = TestCase.Command(exec = "finite_differences.py", param = "-z 2 -n 2 -f") + fd_sp_pinArray_cht_2d_dp_hf.timeout = 1600 + fd_sp_pinArray_cht_2d_dp_hf.reference_file = "of_grad_findiff.csv.ref" fd_sp_pinArray_cht_2d_dp_hf.reference_file_aarch64 = "of_grad_findiff_aarch64.csv.ref" - fd_sp_pinArray_cht_2d_dp_hf.test_file = "FINDIFF/of_grad_findiff.csv" - fd_sp_pinArray_cht_2d_dp_hf.multizone = True + fd_sp_pinArray_cht_2d_dp_hf.test_file = "FINDIFF/of_grad_findiff.csv" + fd_sp_pinArray_cht_2d_dp_hf.multizone = True pass_list.append(fd_sp_pinArray_cht_2d_dp_hf.run_filediff()) test_list.append(fd_sp_pinArray_cht_2d_dp_hf) diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py index a4aa0f57252..59576fdc410 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.561506, -8.926634, -0.000000, 0.005587] 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.768909, -3.725727, 0.000000, 0.000000] + discadj_cylinder3D.test_vals = [-3.734502, -3.839637, 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.111181, -3.501516, 6.8705e-02, 0] 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.181093, 2.471539, -5487700.0, 8.3604] 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.095412, -2.690483, 0.000000] test_list.append(discadj_incomp_NACA0012) ##################################### @@ -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.550040, 4.937865, 7.377284, 2.748846] + discadj_axisymmetric_rans_nozzle.test_vals = [9.516464, 5.022130, 7.370705, 2.744551] 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.223480, -1.639387, -0.007591, 0.000013] 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 = [-2.117791, 0.784475, 0.000000, -0.574700] + discadj_heat.test_vals = [-2.226539, 0.605868, 0.000000, -6.256400] discadj_heat.test_vals_aarch64 = [-2.226539, 0.605868, 0.000000, -6.256400] test_list.append(discadj_heat) @@ -277,7 +277,7 @@ def main(): discadj_fsi2.cfg_dir = "disc_adj_fsi/Airfoil_2d" discadj_fsi2.cfg_file = "config.cfg" discadj_fsi2.test_iter = 8 - discadj_fsi2.test_vals = [-2.402639, 2.740269, -1.270185, -1.273900, 3.860200] + discadj_fsi2.test_vals = [-4.349377, 0.192713, -1.303589, 0.75407, 2.3244] discadj_fsi2.test_vals_aarch64 = [-4.349372, 0.190601, -1.303589, 0.754070, 2.324400] discadj_fsi2.tol = 0.00001 test_list.append(discadj_fsi2) @@ -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.706292, -4.062398, -4.137374] + da_sp_pinArray_cht_2d_dp_hf.test_vals = [-4.743218, -4.059800, -4.138231] 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.600710, -1.298285, -1.430286, -18.503417, -0.870017, -5.768271, -19.069555, -47.953298] + da_sp_pinArray_cht_2d_mf.test_vals = [-4.611237, -1.290668, -1.453678, -18.507826, -0.859013, -5.755971, -19.067984, -47.993931] da_sp_pinArray_cht_2d_mf.multizone = True test_list.append(da_sp_pinArray_cht_2d_mf) @@ -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.520972485907894, 1.3848377455328362, 0.000000] #last 4 columns 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/py_wrapper/translating_NACA0012/config.cfg b/TestCases/py_wrapper/translating_NACA0012/config.cfg index a7880927239..8446a5405a1 100644 --- a/TestCases/py_wrapper/translating_NACA0012/config.cfg +++ b/TestCases/py_wrapper/translating_NACA0012/config.cfg @@ -43,33 +43,27 @@ MARKER_DEFORM_MESH= ( airfoil ) % DISCRETIZATION METHODS % CONV_NUM_METHOD_FLOW= ROE -MUSCL_FLOW= NO -NUM_METHOD_GRAD= GREEN_GAUSS +MUSCL_FLOW= YES +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES SLOPE_LIMITER_FLOW= VENKATAKRISHNAN_WANG VENKAT_LIMITER_COEFF= 0.1 % SOLUTION ACCELERATION % -CFL_NUMBER= 1000 +CFL_NUMBER= 1e3 CFL_ADAPT= NO % MGLEVEL= 3 MGCYCLE= W_CYCLE -MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) -MG_POST_SMOOTH= ( 0, 0, 0, 0 ) -MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) -MG_DAMP_RESTRICTION= 0.7 -MG_DAMP_PROLONGATION= 0.7 - % LINEAR_SOLVER= FGMRES LINEAR_SOLVER_PREC= ILU -LINEAR_SOLVER_ERROR= 1.0e-6 -LINEAR_SOLVER_ITER= 25 +LINEAR_SOLVER_ERROR= 0.1 +LINEAR_SOLVER_ITER= 10 % CONVERGENCE PARAMETERS % -ITER= 2500 +ITER= 250 CONV_FIELD= RMS_DENSITY CONV_RESIDUAL_MINVAL= -9 @@ -77,5 +71,5 @@ CONV_RESIDUAL_MINVAL= -9 % MESH_FILENAME= ../../euler/naca0012/mesh_NACA0012_inv.su2 MESH_FORMAT= SU2 -SCREEN_OUTPUT= (INNER_ITER, RMS_RES, LIFT, DRAG, MOMENT_X, MOMENT_Y, MOMENT_Z, LINSOL_RES, LINSOL_ITER) +SCREEN_OUTPUT= (INNER_ITER, RMS_RES, LIFT, DRAG, MOMENT_X, MOMENT_Y, MOMENT_Z) HISTORY_OUTPUT= (INNER_ITER, RMS_RES, AERO_COEFF) diff --git a/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref b/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref index 56ad73bb9aa..aa9112983d0 100644 --- a/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref +++ b/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref @@ -1,200 +1,200 @@ -199, -0.85, -0.00, 0.00 -0, -2.66, 18.33, 0.00 -1, -3.73, 25.70, 0.00 -2, -4.53, 31.27, 0.00 -3, -5.24, 36.23, 0.00 -4, -5.81, 40.33, 0.00 -5, -6.25, 43.55, 0.00 -6, -6.60, 46.13, 0.00 -7, -6.83, 47.96, 0.00 -8, -6.95, 49.09, 0.00 -9, -6.97, 49.54, 0.00 -10, -6.90, 49.35, 0.00 -11, -6.74, 48.57, 0.00 -12, -6.50, 47.14, 0.00 -13, -6.17, 45.13, 0.00 -14, -5.76, 42.53, 0.00 -15, -5.29, 39.38, 0.00 -16, -4.75, 35.75, 0.00 -17, -4.16, 31.65, 0.00 -18, -3.53, 27.09, 0.00 -19, -2.85, 22.14, 0.00 -20, -2.14, 16.79, 0.00 -21, -1.39, 11.10, 0.00 -22, -0.63, 5.06, 0.00 -23, 0.16, -1.33, 0.00 -24, 0.98, -8.10, 0.00 -25, 1.82, -15.27, 0.00 -26, 2.68, -22.82, 0.00 -27, 3.56, -30.76, 0.00 -28, 4.45, -39.00, 0.00 -29, 5.32, -47.44, 0.00 -30, 6.19, -56.07, 0.00 -31, 7.05, -64.97, 0.00 -32, 7.91, -74.28, 0.00 -33, 8.78, -83.97, 0.00 -34, 9.63, -93.91, 0.00 -35, 10.46, -104.09, 0.00 -36, 11.25, -114.37, 0.00 -37, 12.00, -124.73, 0.00 -38, 12.71, -135.28, 0.00 -39, 13.38, -145.98, 0.00 -40, 13.99, -156.79, 0.00 -41, 14.55, -167.72, 0.00 -42, 15.06, -178.80, 0.00 -43, 15.48, -189.92, 0.00 -44, 15.83, -201.03, 0.00 -45, 16.07, -211.97, 0.00 -46, 16.22, -222.82, 0.00 -47, 16.27, -233.68, 0.00 -48, 16.23, -244.83, 0.00 -49, 16.13, -256.65, 0.00 -50, 15.93, -269.12, 0.00 -51, 15.62, -282.01, 0.00 -52, 15.14, -294.70, 0.00 -53, 14.49, -307.24, 0.00 -54, 13.68, -319.91, 0.00 -55, 12.67, -332.16, 0.00 -56, 11.42, -342.95, 0.00 -57, 9.91, -351.31, 0.00 -58, 8.15, -356.48, 0.00 -59, 6.19, -358.24, 0.00 -60, 4.07, -357.17, 0.00 -61, 1.85, -353.80, 0.00 -62, -0.43, -348.10, 0.00 -63, -2.73, -340.32, 0.00 -64, -5.01, -331.03, 0.00 -65, -7.24, -320.26, 0.00 -66, -9.38, -308.18, 0.00 -67, -11.42, -295.32, 0.00 -68, -13.34, -281.72, 0.00 -69, -15.11, -267.62, 0.00 -70, -16.72, -253.15, 0.00 -71, -18.14, -238.20, 0.00 -72, -19.34, -222.69, 0.00 -73, -20.27, -206.50, 0.00 -74, -20.91, -189.85, 0.00 -75, -21.24, -172.83, 0.00 -76, -21.19, -155.22, 0.00 -77, -20.73, -137.21, 0.00 -78, -19.84, -118.97, 0.00 -79, -18.47, -100.51, 0.00 -80, -16.59, -82.08, 0.00 -81, -14.17, -63.76, 0.00 -82, -11.16, -45.67, 0.00 -83, -7.51, -27.92, 0.00 -84, -3.16, -10.66, 0.00 -85, 1.96, 5.99, 0.00 -86, 7.98, 21.97, 0.00 -87, 15.01, 37.12, 0.00 -88, 23.22, 51.25, 0.00 -89, 32.70, 63.95, 0.00 -90, 43.60, 74.81, 0.00 -91, 56.10, 83.39, 0.00 -92, 70.04, 88.70, 0.00 -93, 85.41, 90.05, 0.00 -94, 101.82, 86.49, 0.00 -95, 118.17, 76.97, 0.00 -96, 133.74, 61.30, 0.00 -97, 147.39, 39.89, 0.00 -98, 111.90, 15.02, 0.00 -99, 71.22, -0.00, 0.00 -100, 109.26, -14.66, 0.00 -101, 137.60, -37.24, 0.00 -102, 115.95, -53.15, 0.00 -103, 93.75, -61.06, 0.00 -104, 72.27, -61.39, 0.00 -105, 52.36, -55.20, 0.00 -106, 34.79, -44.05, 0.00 -107, 19.66, -29.23, 0.00 -108, 6.81, -11.68, 0.00 -109, -3.93, 7.68, 0.00 -110, -12.86, 28.37, 0.00 -111, -20.21, 49.96, 0.00 -112, -26.23, 72.22, 0.00 -113, -31.05, 94.79, 0.00 -114, -34.88, 117.65, 0.00 -115, -37.90, 140.89, 0.00 -116, -40.20, 164.49, 0.00 -117, -41.88, 188.42, 0.00 -118, -43.00, 212.71, 0.00 -119, -43.62, 237.42, 0.00 -120, -43.64, 261.69, 0.00 -121, -43.10, 285.24, 0.00 -122, -42.11, 308.46, 0.00 -123, -40.72, 331.35, 0.00 -124, -38.94, 353.54, 0.00 -125, -36.84, 375.42, 0.00 -126, -34.48, 397.10, 0.00 -127, -31.85, 418.29, 0.00 -128, -28.97, 438.71, 0.00 -129, -25.85, 458.00, 0.00 -130, -22.55, 476.33, 0.00 -131, -19.10, 493.80, 0.00 -132, -15.54, 510.37, 0.00 -133, -11.90, 526.39, 0.00 -134, -8.20, 541.54, 0.00 -135, -4.46, 556.04, 0.00 -136, -0.70, 570.26, 0.00 -137, 3.05, 583.60, 0.00 -138, 6.79, 596.04, 0.00 -139, 10.50, 608.18, 0.00 -140, 14.17, 619.60, 0.00 -141, 17.77, 629.84, 0.00 -142, 21.29, 639.37, 0.00 -143, 24.72, 648.06, 0.00 -144, 28.03, 655.33, 0.00 -145, 31.19, 661.08, 0.00 -146, 34.20, 665.74, 0.00 -147, 37.05, 669.08, 0.00 -148, 39.71, 670.85, 0.00 -149, 42.17, 671.22, 0.00 -150, 44.38, 669.34, 0.00 -151, 46.26, 664.42, 0.00 -152, 47.51, 652.70, 0.00 -153, 46.78, 616.94, 0.00 -154, 39.70, 504.23, 0.00 -155, 24.94, 305.93, 0.00 -156, 16.44, 195.28, 0.00 -157, 13.94, 160.59, 0.00 -158, 13.18, 147.63, 0.00 -159, 12.74, 138.97, 0.00 -160, 12.29, 130.81, 0.00 -161, 11.80, 122.63, 0.00 -162, 11.26, 114.42, 0.00 -163, 10.66, 106.07, 0.00 -164, 10.01, 97.60, 0.00 -165, 9.32, 89.11, 0.00 -166, 8.57, 80.48, 0.00 -167, 7.78, 71.77, 0.00 -168, 6.96, 63.07, 0.00 -169, 6.10, 54.40, 0.00 -170, 5.22, 45.80, 0.00 -171, 4.33, 37.37, 0.00 -172, 3.44, 29.24, 0.00 -173, 2.56, 21.44, 0.00 -174, 1.69, 13.95, 0.00 -175, 0.83, 6.81, 0.00 -176, 0.01, 0.05, 0.00 -177, -0.80, -6.35, 0.00 -178, -1.58, -12.38, 0.00 -179, -2.32, -18.05, 0.00 -180, -3.04, -23.33, 0.00 -181, -3.71, -28.22, 0.00 -182, -4.34, -32.66, 0.00 -183, -4.92, -36.62, 0.00 -184, -5.43, -40.09, 0.00 -185, -5.87, -42.98, 0.00 -186, -6.24, -45.27, 0.00 -187, -6.52, -46.94, 0.00 -188, -6.70, -47.94, 0.00 -189, -6.80, -48.33, 0.00 -190, -6.80, -48.04, 0.00 -191, -6.70, -47.05, 0.00 -192, -6.48, -45.33, 0.00 -193, -6.15, -42.84, 0.00 -194, -5.72, -39.70, 0.00 -195, -5.15, -35.65, 0.00 -196, -4.45, -30.72, 0.00 -197, -3.65, -25.15, 0.00 -198, -2.59, -17.80, 0.00 +199, -1.01, -0.00, 0.00 +0, -2.07, 14.25, 0.00 +1, -3.62, 24.97, 0.00 +2, -4.84, 33.38, 0.00 +3, -5.85, 40.49, 0.00 +4, -6.69, 46.42, 0.00 +5, -7.36, 51.26, 0.00 +6, -7.92, 55.36, 0.00 +7, -8.34, 58.59, 0.00 +8, -8.64, 61.04, 0.00 +9, -8.83, 62.73, 0.00 +10, -8.91, 63.73, 0.00 +11, -8.90, 64.10, 0.00 +12, -8.79, 63.80, 0.00 +13, -8.59, 62.88, 0.00 +14, -8.31, 61.35, 0.00 +15, -7.95, 59.25, 0.00 +16, -7.53, 56.67, 0.00 +17, -7.05, 53.55, 0.00 +18, -6.50, 49.94, 0.00 +19, -5.90, 45.87, 0.00 +20, -5.26, 41.32, 0.00 +21, -4.57, 36.38, 0.00 +22, -3.85, 31.01, 0.00 +23, -3.09, 25.23, 0.00 +24, -2.31, 19.12, 0.00 +25, -1.51, 12.63, 0.00 +26, -0.68, 5.79, 0.00 +27, 0.16, -1.36, 0.00 +28, 1.01, -8.84, 0.00 +29, 1.86, -16.61, 0.00 +30, 2.72, -24.66, 0.00 +31, 3.58, -32.98, 0.00 +32, 4.43, -41.60, 0.00 +33, 5.28, -50.47, 0.00 +34, 6.11, -59.56, 0.00 +35, 6.93, -68.92, 0.00 +36, 7.73, -78.52, 0.00 +37, 8.50, -88.30, 0.00 +38, 9.24, -98.33, 0.00 +39, 9.95, -108.57, 0.00 +40, 10.62, -118.95, 0.00 +41, 11.24, -129.51, 0.00 +42, 11.81, -140.28, 0.00 +43, 12.33, -151.21, 0.00 +44, 12.78, -162.28, 0.00 +45, 13.15, -173.40, 0.00 +46, 13.44, -184.61, 0.00 +47, 13.64, -195.87, 0.00 +48, 13.73, -207.12, 0.00 +49, 13.72, -218.38, 0.00 +50, 13.58, -229.47, 0.00 +51, 13.30, -240.10, 0.00 +52, 12.85, -250.14, 0.00 +53, 12.31, -261.02, 0.00 +54, 11.62, -271.62, 0.00 +55, 10.32, -270.49, 0.00 +56, 8.26, -248.20, 0.00 +57, 6.94, -245.94, 0.00 +58, 7.97, -348.31, 0.00 +59, 7.61, -440.57, 0.00 +60, 5.11, -448.31, 0.00 +61, 2.28, -436.77, 0.00 +62, -0.53, -428.04, 0.00 +63, -3.36, -418.60, 0.00 +64, -6.17, -407.62, 0.00 +65, -8.93, -395.29, 0.00 +66, -11.62, -381.67, 0.00 +67, -14.20, -367.12, 0.00 +68, -16.64, -351.56, 0.00 +69, -18.92, -335.22, 0.00 +70, -21.01, -318.22, 0.00 +71, -22.89, -300.56, 0.00 +72, -24.52, -282.37, 0.00 +73, -25.88, -263.71, 0.00 +74, -26.96, -244.77, 0.00 +75, -27.72, -225.59, 0.00 +76, -28.12, -205.99, 0.00 +77, -28.13, -186.20, 0.00 +78, -27.76, -166.42, 0.00 +79, -26.92, -146.54, 0.00 +80, -25.62, -126.74, 0.00 +81, -23.79, -107.06, 0.00 +82, -21.39, -87.53, 0.00 +83, -18.36, -68.27, 0.00 +84, -14.63, -49.34, 0.00 +85, -10.10, -30.83, 0.00 +86, -4.66, -12.84, 0.00 +87, 1.82, 4.49, 0.00 +88, 9.54, 21.04, 0.00 +89, 18.64, 36.46, 0.00 +90, 29.42, 50.48, 0.00 +91, 42.11, 62.60, 0.00 +92, 56.77, 71.89, 0.00 +93, 73.41, 77.41, 0.00 +94, 91.92, 78.09, 0.00 +95, 111.10, 72.36, 0.00 +96, 128.91, 59.09, 0.00 +97, 142.62, 38.60, 0.00 +98, 108.87, 14.61, 0.00 +99, 70.25, -0.00, 0.00 +100, 103.25, -13.86, 0.00 +101, 123.24, -33.35, 0.00 +102, 98.16, -44.99, 0.00 +103, 72.48, -47.21, 0.00 +104, 48.60, -41.28, 0.00 +105, 27.56, -29.06, 0.00 +106, 9.78, -12.38, 0.00 +107, -4.77, 7.09, 0.00 +108, -16.59, 28.46, 0.00 +109, -26.11, 51.06, 0.00 +110, -33.64, 74.25, 0.00 +111, -39.61, 97.94, 0.00 +112, -44.31, 122.01, 0.00 +113, -47.92, 146.26, 0.00 +114, -50.63, 170.78, 0.00 +115, -52.57, 195.45, 0.00 +116, -53.80, 220.12, 0.00 +117, -54.43, 244.90, 0.00 +118, -54.50, 269.61, 0.00 +119, -54.06, 294.24, 0.00 +120, -53.18, 318.89, 0.00 +121, -51.86, 343.20, 0.00 +122, -50.17, 367.52, 0.00 +123, -48.12, 391.59, 0.00 +124, -45.70, 414.97, 0.00 +125, -43.01, 438.21, 0.00 +126, -40.06, 461.35, 0.00 +127, -36.86, 484.02, 0.00 +128, -33.42, 506.10, 0.00 +129, -29.77, 527.50, 0.00 +130, -25.96, 548.39, 0.00 +131, -22.00, 568.76, 0.00 +132, -17.91, 588.36, 0.00 +133, -13.73, 607.39, 0.00 +134, -9.47, 625.38, 0.00 +135, -5.15, 642.54, 0.00 +136, -0.81, 659.27, 0.00 +137, 3.53, 674.87, 0.00 +138, 7.85, 689.30, 0.00 +139, 12.15, 703.23, 0.00 +140, 16.38, 716.18, 0.00 +141, 20.53, 727.67, 0.00 +142, 24.59, 738.40, 0.00 +143, 28.55, 748.36, 0.00 +144, 32.38, 757.04, 0.00 +145, 36.06, 764.43, 0.00 +146, 39.61, 771.02, 0.00 +147, 43.00, 776.59, 0.00 +148, 46.22, 780.89, 0.00 +149, 49.29, 784.46, 0.00 +150, 52.17, 786.78, 0.00 +151, 54.87, 788.13, 0.00 +152, 57.40, 788.54, 0.00 +153, 59.77, 788.13, 0.00 +154, 61.95, 786.74, 0.00 +155, 63.49, 778.73, 0.00 +156, 67.16, 797.62, 0.00 +157, 62.16, 716.24, 0.00 +158, 1.28, 14.32, 0.00 +159, -2.99, -32.64, 0.00 +160, 0.35, 3.75, 0.00 +161, -0.04, -0.41, 0.00 +162, 0.11, 1.11, 0.00 +163, 0.13, 1.27, 0.00 +164, 0.00, 0.00, 0.00 +165, -0.22, -2.15, 0.00 +166, -0.53, -5.01, 0.00 +167, -0.91, -8.41, 0.00 +168, -1.35, -12.19, 0.00 +169, -1.83, -16.27, 0.00 +170, -2.34, -20.53, 0.00 +171, -2.88, -24.89, 0.00 +172, -3.44, -29.28, 0.00 +173, -4.01, -33.68, 0.00 +174, -4.59, -37.96, 0.00 +175, -5.16, -42.10, 0.00 +176, -5.72, -46.12, 0.00 +177, -6.27, -49.88, 0.00 +178, -6.79, -53.37, 0.00 +179, -7.28, -56.59, 0.00 +180, -7.74, -59.45, 0.00 +181, -8.15, -61.97, 0.00 +182, -8.52, -64.08, 0.00 +183, -8.82, -65.74, 0.00 +184, -9.08, -67.01, 0.00 +185, -9.26, -67.76, 0.00 +186, -9.37, -67.96, 0.00 +187, -9.39, -67.62, 0.00 +188, -9.32, -66.63, 0.00 +189, -9.16, -65.08, 0.00 +190, -8.90, -62.89, 0.00 +191, -8.54, -59.98, 0.00 +192, -8.06, -56.33, 0.00 +193, -7.45, -51.85, 0.00 +194, -6.73, -46.69, 0.00 +195, -5.85, -40.49, 0.00 +196, -4.79, -33.08, 0.00 +197, -3.55, -24.47, 0.00 +198, -1.91, -13.14, 0.00 diff --git a/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref b/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref index 2e4f90bda43..de783b9af84 100644 --- a/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref +++ b/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref @@ -1,200 +1,200 @@ -199, -1.01, -0.00, 0.00 -0, -2.98, 20.50, 0.00 -1, -3.99, 27.46, 0.00 -2, -5.22, 36.06, 0.00 -3, -6.10, 42.20, 0.00 -4, -6.90, 47.88, 0.00 -5, -7.54, 52.52, 0.00 -6, -8.08, 56.52, 0.00 -7, -8.50, 59.69, 0.00 -8, -8.79, 62.11, 0.00 -9, -8.98, 63.80, 0.00 -10, -9.06, 64.81, 0.00 -11, -9.06, 65.22, 0.00 -12, -8.95, 64.94, 0.00 -13, -8.75, 64.06, 0.00 -14, -8.48, 62.56, 0.00 -15, -8.12, 60.48, 0.00 -16, -7.70, 57.92, 0.00 -17, -7.21, 54.81, 0.00 -18, -6.66, 51.20, 0.00 -19, -6.07, 47.12, 0.00 -20, -5.42, 42.57, 0.00 -21, -4.73, 37.59, 0.00 -22, -4.00, 32.19, 0.00 -23, -3.23, 26.37, 0.00 -24, -2.44, 20.21, 0.00 -25, -1.63, 13.66, 0.00 -26, -0.79, 6.76, 0.00 -27, 0.05, -0.45, 0.00 -28, 0.91, -7.99, 0.00 -29, 1.77, -15.81, 0.00 -30, 2.64, -23.91, 0.00 -31, 3.50, -32.27, 0.00 -32, 4.36, -40.90, 0.00 -33, 5.20, -49.76, 0.00 -34, 6.03, -58.80, 0.00 -35, 6.84, -68.06, 0.00 -36, 7.63, -77.50, 0.00 -37, 8.37, -87.04, 0.00 -38, 9.09, -96.70, 0.00 -39, 9.76, -106.43, 0.00 -40, 10.37, -116.12, 0.00 -41, 10.91, -125.73, 0.00 -42, 11.39, -135.21, 0.00 -43, 11.77, -144.39, 0.00 -44, 12.05, -153.08, 0.00 -45, 12.21, -161.05, 0.00 -46, 12.22, -167.88, 0.00 -47, 12.01, -172.51, 0.00 -48, 11.61, -175.12, 0.00 -49, 11.25, -179.01, 0.00 -50, 10.12, -170.90, 0.00 -51, 6.24, -112.75, 0.00 -52, 6.61, -128.63, 0.00 -53, 20.84, -441.83, 0.00 -54, 25.65, -599.65, 0.00 -55, 21.77, -570.80, 0.00 -56, 18.66, -560.26, 0.00 -57, 15.64, -554.49, 0.00 -58, 12.51, -546.85, 0.00 -59, 9.28, -537.57, 0.00 -60, 6.01, -527.15, 0.00 -61, 2.70, -515.89, 0.00 -62, -0.62, -503.33, 0.00 -63, -3.92, -489.55, 0.00 -64, -7.19, -475.11, 0.00 -65, -10.39, -459.75, 0.00 -66, -13.50, -443.31, 0.00 -67, -16.49, -426.20, 0.00 -68, -19.33, -408.27, 0.00 -69, -22.00, -389.78, 0.00 -70, -24.49, -370.85, 0.00 -71, -26.76, -351.39, 0.00 -72, -28.78, -331.47, 0.00 -73, -30.52, -311.04, 0.00 -74, -31.97, -290.33, 0.00 -75, -33.11, -269.42, 0.00 -76, -33.86, -248.08, 0.00 -77, -34.24, -226.61, 0.00 -78, -34.22, -205.20, 0.00 -79, -33.74, -183.64, 0.00 -80, -32.78, -162.19, 0.00 -81, -31.29, -140.79, 0.00 -82, -29.21, -119.49, 0.00 -83, -26.48, -98.43, 0.00 -84, -23.02, -77.63, 0.00 -85, -18.75, -57.22, 0.00 -86, -13.54, -37.28, 0.00 -87, -7.23, -17.89, 0.00 -88, 0.32, 0.71, 0.00 -89, 9.35, 18.28, 0.00 -90, 20.02, 34.35, 0.00 -91, 32.65, 48.54, 0.00 -92, 47.34, 59.96, 0.00 -93, 64.24, 67.74, 0.00 -94, 83.11, 70.60, 0.00 -95, 102.71, 66.90, 0.00 -96, 121.38, 55.64, 0.00 -97, 137.08, 37.10, 0.00 -98, 106.89, 14.34, 0.00 -99, 69.93, -0.00, 0.00 -100, 104.81, -14.06, 0.00 -101, 129.39, -35.02, 0.00 -102, 108.98, -49.95, 0.00 -103, 86.90, -56.60, 0.00 -104, 64.97, -55.19, 0.00 -105, 44.71, -47.14, 0.00 -106, 27.08, -34.30, 0.00 -107, 12.21, -18.16, 0.00 -108, -0.23, 0.39, 0.00 -109, -10.50, 20.54, 0.00 -110, -18.96, 41.85, 0.00 -111, -25.82, 63.84, 0.00 -112, -31.39, 86.44, 0.00 -113, -35.84, 109.39, 0.00 -114, -39.33, 132.66, 0.00 -115, -42.01, 156.16, 0.00 -116, -43.95, 179.80, 0.00 -117, -45.26, 203.64, 0.00 -118, -45.98, 227.47, 0.00 -119, -46.16, 251.27, 0.00 -120, -45.89, 275.14, 0.00 -121, -45.14, 298.74, 0.00 -122, -44.00, 322.34, 0.00 -123, -42.49, 345.71, 0.00 -124, -40.58, 368.50, 0.00 -125, -38.39, 391.21, 0.00 -126, -35.94, 413.88, 0.00 -127, -33.21, 436.09, 0.00 -128, -30.22, 457.70, 0.00 -129, -27.02, 478.65, 0.00 -130, -23.62, 499.09, 0.00 -131, -20.08, 519.03, 0.00 -132, -16.39, 538.22, 0.00 -133, -12.59, 556.86, 0.00 -134, -8.70, 574.51, 0.00 -135, -4.74, 591.34, 0.00 -136, -0.75, 607.73, 0.00 -137, 3.26, 623.00, 0.00 -138, 7.26, 637.13, 0.00 -139, 11.24, 650.73, 0.00 -140, 15.17, 663.34, 0.00 -141, 19.03, 674.54, 0.00 -142, 22.81, 684.95, 0.00 -143, 26.50, 694.58, 0.00 -144, 30.06, 702.94, 0.00 -145, 33.49, 710.01, 0.00 -146, 36.79, 716.23, 0.00 -147, 39.95, 721.39, 0.00 -148, 42.93, 725.31, 0.00 -149, 45.77, 728.51, 0.00 -150, 48.44, 730.59, 0.00 -151, 50.61, 726.85, 0.00 -152, 53.86, 739.83, 0.00 -153, 53.31, 702.96, 0.00 -154, 8.15, 103.49, 0.00 -155, -2.34, -28.69, 0.00 -156, 3.10, 36.88, 0.00 -157, 3.81, 43.93, 0.00 -158, 3.88, 43.46, 0.00 -159, 4.18, 45.56, 0.00 -160, 4.24, 45.15, 0.00 -161, 4.13, 42.94, 0.00 -162, 3.90, 39.62, 0.00 -163, 3.56, 35.42, 0.00 -164, 3.14, 30.58, 0.00 -165, 2.64, 25.27, 0.00 -166, 2.09, 19.60, 0.00 -167, 1.48, 13.68, 0.00 -168, 0.84, 7.64, 0.00 -169, 0.17, 1.53, 0.00 -170, -0.52, -4.58, 0.00 -171, -1.23, -10.62, 0.00 -172, -1.94, -16.53, 0.00 -173, -2.66, -22.30, 0.00 -174, -3.37, -27.85, 0.00 -175, -4.06, -33.13, 0.00 -176, -4.74, -38.17, 0.00 -177, -5.39, -42.87, 0.00 -178, -6.01, -47.21, 0.00 -179, -6.59, -51.20, 0.00 -180, -7.13, -54.76, 0.00 -181, -7.62, -57.90, 0.00 -182, -8.05, -60.58, 0.00 -183, -8.42, -62.75, 0.00 -184, -8.74, -64.48, 0.00 -185, -8.97, -65.65, 0.00 -186, -9.13, -66.23, 0.00 -187, -9.20, -66.23, 0.00 -188, -9.17, -65.58, 0.00 -189, -9.06, -64.33, 0.00 -190, -8.84, -62.44, 0.00 -191, -8.52, -59.84, 0.00 -192, -8.08, -56.51, 0.00 -193, -7.52, -52.37, 0.00 -194, -6.86, -47.60, 0.00 -195, -6.05, -41.82, 0.00 -196, -5.16, -35.60, 0.00 -197, -3.91, -26.94, 0.00 -198, -2.89, -19.92, 0.00 +199, -1.02, -0.00, 0.00 +0, -2.05, 14.11, 0.00 +1, -3.63, 25.02, 0.00 +2, -4.85, 33.50, 0.00 +3, -5.88, 40.69, 0.00 +4, -6.73, 46.67, 0.00 +5, -7.41, 51.56, 0.00 +6, -7.97, 55.71, 0.00 +7, -8.40, 58.99, 0.00 +8, -8.71, 61.49, 0.00 +9, -8.90, 63.22, 0.00 +10, -8.98, 64.25, 0.00 +11, -8.98, 64.66, 0.00 +12, -8.87, 64.38, 0.00 +13, -8.68, 63.48, 0.00 +14, -8.39, 61.96, 0.00 +15, -8.03, 59.85, 0.00 +16, -7.61, 57.27, 0.00 +17, -7.12, 54.13, 0.00 +18, -6.57, 50.50, 0.00 +19, -5.97, 46.39, 0.00 +20, -5.32, 41.81, 0.00 +21, -4.63, 36.81, 0.00 +22, -3.90, 31.39, 0.00 +23, -3.13, 25.55, 0.00 +24, -2.34, 19.36, 0.00 +25, -1.53, 12.80, 0.00 +26, -0.69, 5.88, 0.00 +27, 0.16, -1.35, 0.00 +28, 1.02, -8.91, 0.00 +29, 1.88, -16.75, 0.00 +30, 2.74, -24.86, 0.00 +31, 3.61, -33.24, 0.00 +32, 4.46, -41.89, 0.00 +33, 5.31, -50.77, 0.00 +34, 6.14, -59.83, 0.00 +35, 6.95, -69.11, 0.00 +36, 7.73, -78.56, 0.00 +37, 8.48, -88.13, 0.00 +38, 9.19, -97.82, 0.00 +39, 9.86, -107.57, 0.00 +40, 10.47, -117.28, 0.00 +41, 11.01, -126.92, 0.00 +42, 11.49, -136.42, 0.00 +43, 11.87, -145.62, 0.00 +44, 12.15, -154.31, 0.00 +45, 12.30, -162.22, 0.00 +46, 12.31, -169.04, 0.00 +47, 12.11, -173.89, 0.00 +48, 11.66, -175.88, 0.00 +49, 11.13, -177.08, 0.00 +50, 10.20, -172.29, 0.00 +51, 6.86, -123.94, 0.00 +52, 5.97, -116.29, 0.00 +53, 21.77, -461.42, 0.00 +54, 26.12, -610.78, 0.00 +55, 21.89, -573.85, 0.00 +56, 18.71, -561.76, 0.00 +57, 15.72, -557.10, 0.00 +58, 12.57, -549.52, 0.00 +59, 9.33, -540.36, 0.00 +60, 6.04, -530.05, 0.00 +61, 2.71, -518.89, 0.00 +62, -0.62, -506.43, 0.00 +63, -3.95, -492.74, 0.00 +64, -7.24, -478.42, 0.00 +65, -10.47, -463.16, 0.00 +66, -13.60, -446.83, 0.00 +67, -16.63, -429.81, 0.00 +68, -19.50, -411.99, 0.00 +69, -22.22, -393.60, 0.00 +70, -24.75, -374.77, 0.00 +71, -27.06, -355.42, 0.00 +72, -29.14, -335.60, 0.00 +73, -30.94, -315.27, 0.00 +74, -32.45, -294.65, 0.00 +75, -33.65, -273.85, 0.00 +76, -34.49, -252.64, 0.00 +77, -34.95, -231.28, 0.00 +78, -35.02, -209.98, 0.00 +79, -34.64, -188.53, 0.00 +80, -33.79, -167.17, 0.00 +81, -32.42, -145.88, 0.00 +82, -30.48, -124.69, 0.00 +83, -27.91, -103.76, 0.00 +84, -24.63, -83.06, 0.00 +85, -20.55, -62.73, 0.00 +86, -15.56, -42.84, 0.00 +87, -9.50, -23.48, 0.00 +88, -2.17, -4.79, 0.00 +89, 6.62, 12.94, 0.00 +90, 17.16, 29.44, 0.00 +91, 29.73, 44.19, 0.00 +92, 44.58, 56.46, 0.00 +93, 61.71, 65.06, 0.00 +94, 81.10, 68.89, 0.00 +95, 101.88, 66.36, 0.00 +96, 122.09, 55.96, 0.00 +97, 139.13, 37.65, 0.00 +98, 108.84, 14.60, 0.00 +99, 71.28, -0.00, 0.00 +100, 106.29, -14.26, 0.00 +101, 130.33, -35.27, 0.00 +102, 108.14, -49.57, 0.00 +103, 84.37, -54.95, 0.00 +104, 61.43, -52.19, 0.00 +105, 40.94, -43.16, 0.00 +106, 23.22, -29.41, 0.00 +107, 8.42, -12.52, 0.00 +108, -3.78, 6.48, 0.00 +109, -13.76, 26.90, 0.00 +110, -21.85, 48.23, 0.00 +111, -28.39, 70.19, 0.00 +112, -33.65, 92.65, 0.00 +113, -37.82, 115.44, 0.00 +114, -41.08, 138.55, 0.00 +115, -43.55, 161.90, 0.00 +116, -45.31, 185.37, 0.00 +117, -46.46, 209.03, 0.00 +118, -47.03, 232.69, 0.00 +119, -47.10, 256.34, 0.00 +120, -46.71, 280.06, 0.00 +121, -45.86, 303.51, 0.00 +122, -44.63, 326.98, 0.00 +123, -43.04, 350.21, 0.00 +124, -41.06, 372.86, 0.00 +125, -38.81, 395.46, 0.00 +126, -36.30, 418.02, 0.00 +127, -33.51, 440.10, 0.00 +128, -30.48, 461.60, 0.00 +129, -27.23, 482.42, 0.00 +130, -23.80, 502.74, 0.00 +131, -20.21, 522.54, 0.00 +132, -16.49, 541.62, 0.00 +133, -12.66, 560.14, 0.00 +134, -8.74, 577.66, 0.00 +135, -4.77, 594.37, 0.00 +136, -0.75, 610.64, 0.00 +137, 3.27, 625.80, 0.00 +138, 7.29, 639.80, 0.00 +139, 11.28, 653.28, 0.00 +140, 15.23, 665.78, 0.00 +141, 19.09, 676.85, 0.00 +142, 22.88, 687.16, 0.00 +143, 26.58, 696.67, 0.00 +144, 30.15, 704.91, 0.00 +145, 33.58, 711.87, 0.00 +146, 36.88, 717.99, 0.00 +147, 40.04, 723.07, 0.00 +148, 43.03, 726.92, 0.00 +149, 45.86, 729.95, 0.00 +150, 48.47, 730.99, 0.00 +151, 50.57, 726.34, 0.00 +152, 54.71, 751.52, 0.00 +153, 52.81, 696.43, 0.00 +154, 5.64, 71.68, 0.00 +155, -0.65, -7.95, 0.00 +156, 3.46, 41.08, 0.00 +157, 3.63, 41.77, 0.00 +158, 4.01, 44.95, 0.00 +159, 4.28, 46.74, 0.00 +160, 4.32, 46.00, 0.00 +161, 4.21, 43.77, 0.00 +162, 3.98, 40.43, 0.00 +163, 3.64, 36.21, 0.00 +164, 3.22, 31.35, 0.00 +165, 2.72, 26.01, 0.00 +166, 2.16, 20.31, 0.00 +167, 1.56, 14.37, 0.00 +168, 0.92, 8.30, 0.00 +169, 0.24, 2.16, 0.00 +170, -0.45, -3.98, 0.00 +171, -1.16, -10.05, 0.00 +172, -1.88, -15.99, 0.00 +173, -2.60, -21.79, 0.00 +174, -3.31, -27.36, 0.00 +175, -4.00, -32.68, 0.00 +176, -4.69, -37.76, 0.00 +177, -5.34, -42.49, 0.00 +178, -5.96, -46.87, 0.00 +179, -6.55, -50.90, 0.00 +180, -7.09, -54.49, 0.00 +181, -7.59, -57.67, 0.00 +182, -8.03, -60.38, 0.00 +183, -8.40, -62.58, 0.00 +184, -8.72, -64.34, 0.00 +185, -8.96, -65.53, 0.00 +186, -9.11, -66.13, 0.00 +187, -9.18, -66.13, 0.00 +188, -9.15, -65.46, 0.00 +189, -9.04, -64.19, 0.00 +190, -8.81, -62.24, 0.00 +191, -8.48, -59.55, 0.00 +192, -8.02, -56.09, 0.00 +193, -7.44, -51.78, 0.00 +194, -6.74, -46.74, 0.00 +195, -5.87, -40.64, 0.00 +196, -4.83, -33.31, 0.00 +197, -3.59, -24.74, 0.00 +198, -1.96, -13.51, 0.00 diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg deleted file mode 100644 index 9630355c8d5..00000000000 --- a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg +++ /dev/null @@ -1,150 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% SU2 configuration file % -% Case description: Turbulent flow over flat plate(2DZPH) % -% Author: Sunoh. Kang % -% Institution: Pusan National University % -% Date: 2024.04.30 % -% File Version 8.0.1 "Harrier" % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -SOLVER= RANS -KIND_TURB_MODEL= SST -SST_OPTIONS= V2003m, COMPRESSIBILITY-SARKAR -MATH_PROBLEM= DIRECT -RESTART_SOL= NO - -% ------------------------ COMPRESSIBLE FREE-STREAM DEFINITION ----------------% -% -MACH_NUMBER= 5.0 -AOA= 0.000 -INIT_OPTION= TD_CONDITIONS -FREESTREAM_OPTION= TEMPERATURE_FS -FREESTREAM_TEMPERATURE= 300.3333 -FREESTREAM_PRESSURE= 13753.90558 -FREESTREAM_TURBULENCEINTENSITY = 0.00002 -FREESTREAM_TURB2LAMVISCRATIO = 0.009 -REF_DIMENSIONALIZATION= DIMENSIONAL -REYNOLDS_NUMBER= 15E6 - -% ---- IDEAL GAS, POLYTPOPIC, VAN DER WALLS AND PENG ROBINSOPN CNSTANTS ------ % -% -FLUID_MODEL= IDEAL_GAS -GAMMA_VALUE= 1.4 -GAS_CONSTANT= 287.058 -ACENTRIC_FACTOR= 0.035 -SPECIFIC_HEAT_CP= 1004.703 -THERMAL_EXPANSION_COEFF= 0.00347 -MOLECULAR_WEIGHT= 28.96 - -% --------------------------- VISCOSITY MODEL ---------------------------------% -% - -VISCOSITY_MODEL= SUTHERLAND -MU_REF= 1.716E-5 -MU_T_REF= 273.15 -SUTHERLAND_CONSTANT= 110.4 - -% ------------------------ THERMAL CONDUCTIVITY MODEL -------------------------% -% - -CONDUCTIVITY_MODEL= CONSTANT_PRANDTL -PRANDTL_LAM= 0.72 -TURBULENT_CONDUCTIVITY_MODEL= CONSTANT_PRANDTL_TURB -PRANDTL_TURB= 0.9 - -% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% -% - -REF_ORIGIN_MOMENT_X = 0.00 -REF_ORIGIN_MOMENT_Y = 0.00 -REF_ORIGIN_MOMENT_Z = 0.00 -REF_LENGTH= 1.0 -REF_AREA= 1.0 - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% - -MARKER_PLOTTING = ( wall ) -MARKER_SUPERSONIC_INLET= ( inlet, 300.3333 , 13753.90558 , 1737.082226 , 0.0 , 0.0 ) -MARKER_FAR= ( farfield ) -MARKER_SYM= ( symmetry ) -MARKER_SUPERSONIC_OUTLET= (outlet, 34384.76396) -MARKER_ISOTHERMAL= ( wall, 327.36297) - -% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% -% - -NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 0.5 -CFL_ADAPT= YES -CFL_ADAPT_PARAM= ( 0.1, 1.5, 0.5, 50.0 ) - -% --------- SLOPE LIMITER DEFINITION, DISSIPATION SENSOR DEFINITION -----------------% -% - -MUSCL_FLOW= YES -SLOPE_LIMITER_FLOW= VENKATAKRISHNAN_WANG -SLOPE_LIMITER_TURB= NONE -VENKAT_LIMITER_COEFF= 0.05 -JST_SENSOR_COEFF= (0.5, 0.02) - -% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% -% - -LINEAR_SOLVER= FGMRES -LINEAR_SOLVER_PREC= LU_SGS -LINEAR_SOLVER_ERROR= 1E-6 -LINEAR_SOLVER_ITER= 5 - -% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% -% - -CONV_NUM_METHOD_FLOW= AUSM -TIME_DISCRE_FLOW= EULER_IMPLICIT - -% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% -% - -CONV_NUM_METHOD_TURB= SCALAR_UPWIND -TIME_DISCRE_TURB= EULER_IMPLICIT - -% ------------------------- SCREEN/HISTORY VOLUME OUTPUT --------------------------% -% - -SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_MOMENTUM-X, RMS_MOMENTUM-Y, RMS_ENERGY, RMS_TKE, RMS_DISSIPATION) -SCREEN_WRT_FREQ_INNER= 1 -SCREEN_WRT_FREQ_OUTER= 1 -SCREEN_WRT_FREQ_TIME= 1 -HISTORY_WRT_FREQ_INNER= 1 -HISTORY_WRT_FREQ_OUTER= 1 -HISTORY_WRT_FREQ_TIME= 1 -OUTPUT_WRT_FREQ= 1000 - -% ------------------------- INPUT/OUTPUT FILE INFORMATION --------------------------% -% - -MESH_FILENAME= mesh_flatplate_turb_137x97.su2 -MESH_FORMAT= SU2 -MESH_OUT_FILENAME= mesh_out.su2 -SOLUTION_FILENAME= restart_flow.dat -SOLUTION_ADJ_FILENAME= solution_adj.dat -OUTPUT_FILES= (RESTART, PARAVIEW, SURFACE_PARAVIEW, TECPLOT, SURFACE_TECPLOT, CSV, SURFACE_CSV ) -CONV_FILENAME= history -BREAKDOWN_FILENAME= forces_breakdown.dat -RESTART_FILENAME= restart_flow.dat -RESTART_ADJ_FILENAME= restart_adj.dat - -% ------------------------------- SOLVER CONTROL ------------------------------% -% - -ITER= 100 -OUTER_ITER= 1 -TIME_ITER= 100 -CONV_RESIDUAL_MINVAL= -14 -CONV_STARTITER= 10 -CONV_CAUCHY_ELEMS= 100 -CONV_CAUCHY_EPS= 1E-10 diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg deleted file mode 100644 index bec9c121e3a..00000000000 --- a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg +++ /dev/null @@ -1,150 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% SU2 configuration file % -% Case description: Turbulent flow over flat plate(2DZPH) % -% Author: Sunoh. Kang % -% Institution: Pusan National University % -% Date: 2024.04.30 % -% File Version 8.0.1 "Harrier" % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -SOLVER= RANS -KIND_TURB_MODEL= SST -SST_OPTIONS= V2003m, COMPRESSIBILITY-WILCOX -MATH_PROBLEM= DIRECT -RESTART_SOL= NO - -% ------------------------ COMPRESSIBLE FREE-STREAM DEFINITION ----------------% -% -MACH_NUMBER= 5.0 -AOA= 0.000 -INIT_OPTION= TD_CONDITIONS -FREESTREAM_OPTION= TEMPERATURE_FS -FREESTREAM_TEMPERATURE= 300.3333 -FREESTREAM_PRESSURE= 13753.90558 -FREESTREAM_TURBULENCEINTENSITY = 0.00002 -FREESTREAM_TURB2LAMVISCRATIO = 0.009 -REF_DIMENSIONALIZATION= DIMENSIONAL -REYNOLDS_NUMBER= 15E6 - -% ---- IDEAL GAS, POLYTPOPIC, VAN DER WALLS AND PENG ROBINSOPN CNSTANTS ------ % -% -FLUID_MODEL= IDEAL_GAS -GAMMA_VALUE= 1.4 -GAS_CONSTANT= 287.058 -ACENTRIC_FACTOR= 0.035 -SPECIFIC_HEAT_CP= 1004.703 -THERMAL_EXPANSION_COEFF= 0.00347 -MOLECULAR_WEIGHT= 28.96 - -% --------------------------- VISCOSITY MODEL ---------------------------------% -% - -VISCOSITY_MODEL= SUTHERLAND -MU_REF= 1.716E-5 -MU_T_REF= 273.15 -SUTHERLAND_CONSTANT= 110.4 - -% ------------------------ THERMAL CONDUCTIVITY MODEL -------------------------% -% - -CONDUCTIVITY_MODEL= CONSTANT_PRANDTL -PRANDTL_LAM= 0.72 -TURBULENT_CONDUCTIVITY_MODEL= CONSTANT_PRANDTL_TURB -PRANDTL_TURB= 0.9 - -% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% -% - -REF_ORIGIN_MOMENT_X = 0.00 -REF_ORIGIN_MOMENT_Y = 0.00 -REF_ORIGIN_MOMENT_Z = 0.00 -REF_LENGTH= 1.0 -REF_AREA= 1.0 - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% - -MARKER_PLOTTING = ( wall ) -MARKER_SUPERSONIC_INLET= ( inlet, 300.3333 , 13753.90558 , 1737.082226 , 0.0 , 0.0 ) -MARKER_FAR= ( farfield ) -MARKER_SYM= ( symmetry ) -MARKER_SUPERSONIC_OUTLET= (outlet, 34384.76396) -MARKER_ISOTHERMAL= ( wall, 327.36297) - -% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% -% - -NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 0.5 -CFL_ADAPT= YES -CFL_ADAPT_PARAM= ( 0.1, 1.5, 0.5, 50.0 ) - -% --------- SLOPE LIMITER DEFINITION, DISSIPATION SENSOR DEFINITION -----------------% -% - -MUSCL_FLOW= YES -SLOPE_LIMITER_FLOW= VENKATAKRISHNAN_WANG -SLOPE_LIMITER_TURB= NONE -VENKAT_LIMITER_COEFF= 0.05 -JST_SENSOR_COEFF= (0.5, 0.02) - -% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% -% - -LINEAR_SOLVER= FGMRES -LINEAR_SOLVER_PREC= LU_SGS -LINEAR_SOLVER_ERROR= 1E-6 -LINEAR_SOLVER_ITER= 5 - -% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% -% - -CONV_NUM_METHOD_FLOW= AUSM -TIME_DISCRE_FLOW= EULER_IMPLICIT - -% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% -% - -CONV_NUM_METHOD_TURB= SCALAR_UPWIND -TIME_DISCRE_TURB= EULER_IMPLICIT - -% ------------------------- SCREEN/HISTORY VOLUME OUTPUT --------------------------% -% - -SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_MOMENTUM-X, RMS_MOMENTUM-Y, RMS_ENERGY, RMS_TKE, RMS_DISSIPATION) -SCREEN_WRT_FREQ_INNER= 1 -SCREEN_WRT_FREQ_OUTER= 1 -SCREEN_WRT_FREQ_TIME= 1 -HISTORY_WRT_FREQ_INNER= 1 -HISTORY_WRT_FREQ_OUTER= 1 -HISTORY_WRT_FREQ_TIME= 1 -OUTPUT_WRT_FREQ= 1000 - -% ------------------------- INPUT/OUTPUT FILE INFORMATION --------------------------% -% - -MESH_FILENAME= mesh_flatplate_turb_137x97.su2 -MESH_FORMAT= SU2 -MESH_OUT_FILENAME= mesh_out.su2 -SOLUTION_FILENAME= restart_flow.dat -SOLUTION_ADJ_FILENAME= solution_adj.dat -OUTPUT_FILES= (RESTART, PARAVIEW, SURFACE_PARAVIEW, TECPLOT, SURFACE_TECPLOT, CSV, SURFACE_CSV ) -CONV_FILENAME= history -BREAKDOWN_FILENAME= forces_breakdown.dat -RESTART_FILENAME= restart_flow.dat -RESTART_ADJ_FILENAME= restart_adj.dat - -% ------------------------------- SOLVER CONTROL ------------------------------% -% - -ITER= 100 -OUTER_ITER= 1 -TIME_ITER= 100 -CONV_RESIDUAL_MINVAL= -14 -CONV_STARTITER= 10 -CONV_CAUCHY_ELEMS= 100 -CONV_CAUCHY_EPS= 1E-10 diff --git a/TestCases/rotating/naca0012/rot_NACA0012.cfg b/TestCases/rotating/naca0012/rot_NACA0012.cfg index 35c932c33b5..a103c5fbcf6 100644 --- a/TestCases/rotating/naca0012/rot_NACA0012.cfg +++ b/TestCases/rotating/naca0012/rot_NACA0012.cfg @@ -131,7 +131,7 @@ VOLUME_ADJ_FILENAME= adjoint GRAD_OBJFUNC_FILENAME= of_grad.dat SURFACE_FILENAME= surface_flow SURFACE_ADJ_FILENAME= surface_adjoint -OUTPUT_WRT_FREQ= 100 +OUTPUT_WRT_FREQ= 1 % --------------------- OPTIMAL SHAPE DESIGN DEFINITION -----------------------% % diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 080b41053b7..fcdacb032a7 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -64,7 +64,7 @@ def main(): invwedge.cfg_dir = "nonequilibrium/invwedge" invwedge.cfg_file = "invwedge_ausm.cfg" invwedge.test_iter = 10 - invwedge.test_vals = [-1.073699, -1.598462, -18.299911, -18.627322, -18.573334, 2.241760, 1.868575, 5.286072, 0.843741] + invwedge.test_vals = [-1.046323, -1.571086, -18.301251, -18.628639, -18.574676, 2.271778, 1.875687, 5.315769, 0.870008] invwedge.test_vals_aarch64 = [-1.046323, -1.571086, -18.301361, -18.628744, -18.574788, 2.271778, 1.875687, 5.315769, 0.870008] test_list.append(invwedge) @@ -73,7 +73,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.215239, -5.739373, -20.560910, -20.517094, -20.406632, 1.262779, -3.205484, -0.015695, 0.093205, 32641.000000] + visc_cone.test_vals = [-5.215236, -5.739371, -20.556662, -20.517023, -20.436970, 1.262783, -3.205463, -0.015695, 0.093205, 32656.000000] visc_cone.test_vals_aarch64 = [-5.215229, -5.739368, -20.556662, -20.517022, -20.437459, 1.262784, -3.205455, -0.015696, 0.093207, 32656.000000] test_list.append(visc_cone) @@ -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.475872, 3.046370, -0.203974, 0.036018] 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.444941, -3.941038, 0.318998, 0.022365] + naca0012.test_vals = [-4.023999, -3.515034, 0.339426, 0.022217] 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 = [-0.942862, 4.784581, -0.208106, 0.036665] 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 = [-9.279396, -8.697739, 0.281703, 0.011821] 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 = [-7.382410, -1.879887, 0.300000, 0.019471] test_list.append(fixedCL_naca0012) # Polar sweep of the inviscid NACA0012 @@ -135,8 +135,8 @@ 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_aarch64 = [-1.063447, 4.401847, 0.000291, 0.031696] + polar_naca0012.test_vals = [-1.243326, 4.224483, 0.016432, 0.016145] + polar_naca0012.test_vals_aarch64 = [-1.811046, 3.612379, 0.012330, 0.009194] polar_naca0012.command = TestCase.Command(exec = "compute_polar.py", param = "-n 1 -i 11") # flaky test on arm64 polar_naca0012.enabled_on_cpu_arch = ["x86_64"] @@ -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.540009, 6.916653, -0.000000, 1.868975] test_list.append(bluntbody) ########################## @@ -165,8 +165,8 @@ def main(): flatplate = TestCase('flatplate') flatplate.cfg_dir = "navierstokes/flatplate" flatplate.cfg_file = "lam_flatplate.cfg" - flatplate.test_iter = 20 - flatplate.test_vals = [-5.122306, 0.357174, 0.001311, 0.028230, 2.361600, -2.333300, -2.629100, -2.629100] + flatplate.test_iter = 100 + flatplate.test_vals = [-9.856258, -4.371983, 0.001112, 0.036277, 2.361500, -2.325300, -2.279500, -2.279500] test_list.append(flatplate) # Laminar cylinder (steady) @@ -174,7 +174,7 @@ def main(): cylinder.cfg_dir = "navierstokes/cylinder" cylinder.cfg_file = "lam_cylinder.cfg" cylinder.test_iter = 25 - cylinder.test_vals = [-8.363068, -2.882163, -0.017777, 1.607222, -0.010064] + cylinder.test_vals = [-6.765430, -1.297426, 0.019508, 0.310015, 0.123250] test_list.append(cylinder) # Laminar cylinder (low Mach correction) @@ -182,7 +182,7 @@ def main(): cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 - cylinder_lowmach.test_vals = [-6.830989, -1.368842, -0.143838, 73.962440, 0.002454] + cylinder_lowmach.test_vals = [-6.850123, -1.388088, -0.056090, 108.140176, 0.007983] test_list.append(cylinder_lowmach) # 2D Poiseuille flow (body force driven with periodic inlet / outlet) @@ -198,8 +198,8 @@ 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.485974, -7.612341, -0.000000, 2.085796] - poiseuille_profile.test_vals_aarch64 = [-12.485974, -7.612341, -0.000000, 2.085796] + poiseuille_profile.test_vals = [-12.494681, -7.711642, -0.000000, 2.085796] + poiseuille_profile.test_vals_aarch64 = [-12.494684, -7.711379, -0.000000, 2.085796] #last 4 columns test_list.append(poiseuille_profile) ########################## @@ -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.156553, -6.736064, -0.176184, 0.057478] + turb_flatplate.test_vals = [-4.157358, -6.736289, -0.176258, 0.057431] 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.177397, -1.880811, -1.943377, 1.263787, -1.254740, 1.538892, 10.000000, -2.097623, 0.074673, 0.002932] + turb_wallfunction_flatplate_sst.test_vals = [-4.181412, -1.864638, -1.966031, 1.259921, -1.487159, 1.544166, 10.000000, -2.130777, 0.073950, 0.002971] 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.414833, -2.031596, -2.120806, 1.007586, -5.386444, 10.000000, -1.635112, 0.068983, 0.002640] + turb_wallfunction_flatplate_sa.test_vals = [-4.435719, -2.044696, -2.114266, 0.980115, -5.393813, 10.000000, -1.589802, 0.069744, 0.002686] 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.392867, -6.689823, 0.230746, 0.158811, -33786.000000] + turb_oneram6.test_vals = [-2.388841, -6.689427, 0.230321, 0.157640, -32539.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.151701, -6.605756, -9.188910, -4.516059, -2019.700000] + axi_rans_air_nozzle_restart.test_vals = [-12.063377, -7.005051, -8.705733, -4.036815, -2019.8] axi_rans_air_nozzle_restart.test_vals_aarch64 = [-12.063354, -7.004772, -8.705740, -4.036824, -2019.800000] 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 = [-4.858287, -3.810487, 0.491850, 0.007002] 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 = [-5.971283, -4.911145, -0.000201, 0.121631] 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.455147, -3.082194, -0.018579, 1.169947] 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.507362, -5.693894, -6.434063, -4.223774, -7.008049, -1.954102, 10.000000, -3.047554, 0.001081, 0.003644, 0.618140] + inc_turb_wallfunction_flatplate_sst.test_vals = [-6.560775, -5.700721, -6.304284, -4.230488, -7.179831, -1.956057, 10.000000, -2.918240, 0.000887, 0.003680, 0.518450] 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.561303, -5.718581, -6.306403, -4.230225, -9.586904, 10.000000, -2.927392, 0.000858, 0.003792] 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.029786, -13.240213, 0.000053, 0.007986] test_list.append(schubauer_klebanoff_transition) ##################################### @@ -577,7 +577,7 @@ def main(): contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012" contadj_naca0012.cfg_file = "inv_NACA0012.cfg" contadj_naca0012.test_iter = 5 - contadj_naca0012.test_vals = [-9.748339, -15.067997, -0.726250, 0.020280] + contadj_naca0012.test_vals = [-9.289565, -14.563859, 0.300920, 0.019552] contadj_naca0012.tol = 0.001 test_list.append(contadj_naca0012) @@ -586,7 +586,7 @@ def main(): contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6" contadj_oneram6.cfg_file = "inv_ONERAM6.cfg" contadj_oneram6.test_iter = 10 - contadj_oneram6.test_vals = [-12.034680, -12.592674, -1.086100, 0.007556] + contadj_oneram6.test_vals = [-12.133160, -12.706697, 0.685900, 0.007594] test_list.append(contadj_oneram6) # Inviscid WEDGE: tests averaged outflow total pressure adjoint @@ -594,7 +594,7 @@ def main(): contadj_wedge.cfg_dir = "cont_adj_euler/wedge" contadj_wedge.cfg_file = "inv_wedge_ROE.cfg" contadj_wedge.test_iter = 10 - contadj_wedge.test_vals = [2.872064, -2.756210, 1010800.000000, 0.000000] + contadj_wedge.test_vals = [2.872691, -2.755572, 853000.000000, 0.000000] test_list.append(contadj_wedge) # Inviscid fixed CL NACA0012 @@ -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.293213, -5.201710, 0.360590, -0.000022] test_list.append(contadj_fixedCL_naca0012) ################################### @@ -725,7 +725,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.589739, 0.790169, 0.937053, 3.922579] test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil @@ -745,7 +745,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.688979, 2.857521, -0.079219, 0.002135] test_list.append(rot_naca0012) # Lid-driven cavity @@ -753,7 +753,7 @@ def main(): cavity.cfg_dir = "moving_wall/cavity" cavity.cfg_file = "lam_cavity.cfg" cavity.test_iter = 25 - cavity.test_vals = [-5.627868, -0.164405, 0.053283, 2.545817] + cavity.test_vals = [ -5.627868, -0.164405, 0.053283, 2.545817] test_list.append(cavity) # Spinning cylinder @@ -782,7 +782,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.977520, 3.481804, -0.012277, -0.007309] sine_gust.unsteady = True test_list.append(sine_gust) @@ -791,7 +791,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.074836, 0.033102, -0.001650, -0.000127] aeroelastic.unsteady = True test_list.append(aeroelastic) @@ -800,7 +800,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.714785, -5.882680, -0.215041, 0.023758, -617.450000] + ddes_flatplate.test_vals = [-2.714757, -5.882779, -0.215005, 0.023783, -618.130000] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) @@ -818,7 +818,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.665129, -3.793590, -3.716505, -3.148308] unst_deforming_naca0012.unsteady = True test_list.append(unst_deforming_naca0012) @@ -839,7 +839,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.711552, 5.490479, -0.000975, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR @@ -847,7 +847,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 = [-1.670439, 4.522842, 0.001027, 0.000000] test_list.append(edge_PPR) @@ -868,7 +868,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273.000000, 73273.000000, 0.019884, 82.491000] + Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage @@ -876,7 +876,7 @@ def main(): axial_stage2D.cfg_dir = "turbomachinery/axial_stage_2D" axial_stage2D.cfg_file = "Axial_stage2D.cfg" axial_stage2D.test_iter = 20 - axial_stage2D.test_vals = [0.983751, 1.534480, -2.888520, 2.606773, -2.418421, 3.087187, 106380.000000, 106380.000000, 5.732500, 64.711000] + axial_stage2D.test_vals = [0.983751, 1.534480, -2.888520, 2.606773, -2.418421, 3.087187, 106380, 106380, 5.7325, 64.711] axial_stage2D.test_vals_aarch64 = [0.983751, 1.534480, -2.888520, 2.606773, -2.418421, 3.087187, 106380, 106380, 5.7325, 64.711] test_list.append(axial_stage2D) @@ -885,7 +885,7 @@ def main(): transonic_stator_restart.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator_restart.cfg_file = "transonic_stator_restart.cfg" transonic_stator_restart.test_iter = 20 - transonic_stator_restart.test_vals = [-5.008547, -3.102420, -2.752033, 1.091152, -3.543849, 2.169844, -471630.000000, 94.866000, -0.035806] + transonic_stator_restart.test_vals = [-5.008547, -3.102420, -2.752033, 1.091152, -3.543849, 2.169844, -471630, 94.866, -0.035806] transonic_stator_restart.test_vals_aarch64 = [-5.008547, -3.102420, -2.752033, 1.091152, -3.543849, 2.169844, -471630, 94.866, -0.035806] test_list.append(transonic_stator_restart) @@ -906,7 +906,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.202697, -13.249572] + uniform_flow.test_vals = [2.000000, 0.000000, -0.205134, -13.251542] uniform_flow.test_vals_aarch64 = [2.000000, 0.000000, -0.205134, -13.250720] #last 4 columns uniform_flow.tol = 0.000001 uniform_flow.unsteady = True @@ -918,7 +918,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.419778, 0.352185, 0.404395] + channel_2D.test_vals = [2.000000, 0.000000, 0.397995, 0.352789, 0.405474] channel_2D.test_vals_aarch64 = [2.000000, 0.000000, 0.398053, 0.352788, 0.405474] #last 5 columns channel_2D.timeout = 100 channel_2D.unsteady = True @@ -930,7 +930,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.657678, 0.767752, 0.692208] + channel_3D.test_vals = [1.000000, 0.000000, 0.661408, 0.769988, 0.696033] channel_3D.test_vals_aarch64 = [1.000000, 0.000000, 0.661408, 0.769902, 0.695663] #last 5 columns channel_3D.unsteady = True channel_3D.multizone = True @@ -941,7 +941,7 @@ def main(): pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 - pipe.test_vals = [0.481390, 0.648695, 0.982990, 1.018349] + pipe.test_vals = [0.491954, 0.677756, 0.963981, 1.006936] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) @@ -951,7 +951,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.777574, 1.134794, 1.224127] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) @@ -961,7 +961,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.207949, 1.036092] + supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.214359, 1.663910] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) @@ -1039,7 +1039,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.729228, -4.153949] + fsi2d.test_vals = [4.000000, 0.000000, -3.743214, -4.133482] fsi2d.multizone = True fsi2d.unsteady = True test_list.append(fsi2d) @@ -1049,7 +1049,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.345064, -4.996078, 0.000000, 7.000000] + stat_fsi.test_vals = [-3.326934, -4.981505, 0.000000, 7.000000] stat_fsi.multizone = True test_list.append(stat_fsi) @@ -1058,7 +1058,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.404628, -4.288921, 0.000000, 27.000000] + stat_fsi_restart.test_vals = [-3.407486, -4.339837, 0.000000, 27.000000] stat_fsi_restart.multizone = True test_list.append(stat_fsi_restart) @@ -1067,7 +1067,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.330444, -4.058003, 0.000000, 86.000000] + dyn_fsi.test_vals = [-4.355809, -4.060588, 0.000000, 87.000000] dyn_fsi.test_vals_aarch64 = [-4.355809, -4.060588, 0.000000, 86.000000] #last 4 columns dyn_fsi.multizone = True dyn_fsi.unsteady = True @@ -1079,7 +1079,7 @@ def main(): airfoilRBF.cfg_file = "config.cfg" airfoilRBF.test_iter = 1 - airfoilRBF.test_vals = [1.000000, -2.581853, -5.085822] + airfoilRBF.test_vals = [1.000000, -2.786186, -4.977944] airfoilRBF.tol = 0.0001 airfoilRBF.multizone = True test_list.append(airfoilRBF) @@ -1210,7 +1210,7 @@ def main(): naca0012_geo = TestCase('naca0012_geo') naca0012_geo.cfg_dir = "optimization_euler/steady_naca0012" naca0012_geo.cfg_file = "inv_NACA0012_adv.cfg" - naca0012_geo.test_vals = [1.000000, 62.045500, 0.120011, 0.000000] + naca0012_geo.test_vals = [1.0000, 62.0455, 0.120011, 0.0000] #chord, LE radius, ToC, Alpha naca0012_geo.command = TestCase.Command(exec = "SU2_GEO") naca0012_geo.timeout = 1600 naca0012_geo.tol = 0.00001 @@ -1226,7 +1226,7 @@ def main(): intersect_def.cfg_dir = "deformation/intersection_prevention" intersect_def.cfg_file = "def_intersect.cfg" intersect_def.test_iter = 10 - intersect_def.test_vals = [0.000112] + intersect_def.test_vals = [0.000112] #residual intersect_def.command = TestCase.Command(exec = "SU2_DEF") intersect_def.timeout = 1600 intersect_def.tol = 1e-04 @@ -1239,10 +1239,10 @@ def main(): naca0012_def.cfg_dir = "deformation/naca0012" naca0012_def.cfg_file = "def_NACA0012.cfg" naca0012_def.test_iter = 10 - naca0012_def.test_vals = [0.0034470] + naca0012_def.test_vals = [0.00344658] #residual naca0012_def.command = TestCase.Command(exec = "SU2_DEF") naca0012_def.timeout = 1600 - naca0012_def.tol = 1e-06 + naca0012_def.tol = 1e-08 pass_list.append(naca0012_def.run_def(args.tsan, args.asan)) test_list.append(naca0012_def) @@ -1252,10 +1252,10 @@ def main(): naca0012_def_file.cfg_dir = "deformation/naca0012" naca0012_def_file.cfg_file = "surface_file_NACA0012.cfg" naca0012_def_file.test_iter = 10 - naca0012_def_file.test_vals = [0.0034470] + naca0012_def_file.test_vals = [0.00344658] #residual naca0012_def_file.command = TestCase.Command(exec = "SU2_DEF") naca0012_def_file.timeout = 1600 - naca0012_def_file.tol = 1e-6 + naca0012_def_file.tol = 1e-8 pass_list.append(naca0012_def_file.run_def(args.tsan, args.asan)) test_list.append(naca0012_def_file) @@ -1265,10 +1265,10 @@ def main(): rae2822_def.cfg_dir = "deformation/rae2822" rae2822_def.cfg_file = "def_RAE2822.cfg" rae2822_def.test_iter = 10 - rae2822_def.test_vals = [0.0000000] + rae2822_def.test_vals = [7.94218e-09] #residual rae2822_def.command = TestCase.Command(exec = "SU2_DEF") rae2822_def.timeout = 1600 - rae2822_def.tol = 1e-06 + rae2822_def.tol = 1e-13 pass_list.append(rae2822_def.run_def(args.tsan, args.asan)) test_list.append(rae2822_def) @@ -1278,10 +1278,10 @@ def main(): naca4412_def.cfg_dir = "deformation/naca4412" naca4412_def.cfg_file = "def_NACA4412.cfg" naca4412_def.test_iter = 10 - naca4412_def.test_vals = [0.0000000] + naca4412_def.test_vals = [8.855370e-13] #residual naca4412_def.command = TestCase.Command(exec = "SU2_DEF") naca4412_def.timeout = 1600 - naca4412_def.tol = 1e-06 + naca4412_def.tol = 1e-12 pass_list.append(naca4412_def.run_def(args.tsan, args.asan)) test_list.append(naca4412_def) @@ -1291,10 +1291,10 @@ def main(): brick_tets_def.cfg_dir = "deformation/brick_tets" brick_tets_def.cfg_file = "def_brick_tets.cfg" brick_tets_def.test_iter = 10 - brick_tets_def.test_vals = [0.0008970] + brick_tets_def.test_vals = [8.973010e-04] #residual brick_tets_def.command = TestCase.Command(exec = "SU2_DEF") brick_tets_def.timeout = 1600 - brick_tets_def.tol = 1e-06 + brick_tets_def.tol = 1e-09 pass_list.append(brick_tets_def.run_def(args.tsan, args.asan)) test_list.append(brick_tets_def) @@ -1304,10 +1304,10 @@ def main(): brick_hex_def.cfg_dir = "deformation/brick_hex" brick_hex_def.cfg_file = "def_brick_hex.cfg" brick_hex_def.test_iter = 10 - brick_hex_def.test_vals = [0.0002080] + brick_hex_def.test_vals = [2.082100e-04] #residual brick_hex_def.command = TestCase.Command(exec = "SU2_DEF") brick_hex_def.timeout = 1600 - brick_hex_def.tol = 1e-06 + brick_hex_def.tol = 1e-09 pass_list.append(brick_hex_def.run_def(args.tsan, args.asan)) test_list.append(brick_hex_def) @@ -1317,10 +1317,10 @@ def main(): brick_pyra_def.cfg_dir = "deformation/brick_pyra" brick_pyra_def.cfg_file = "def_brick_pyra.cfg" brick_pyra_def.test_iter = 10 - brick_pyra_def.test_vals = [0.0015010] + brick_pyra_def.test_vals = [0.00150063] #residual brick_pyra_def.command = TestCase.Command(exec = "SU2_DEF") brick_pyra_def.timeout = 1600 - brick_pyra_def.tol = 1e-06 + brick_pyra_def.tol = 1e-08 pass_list.append(brick_pyra_def.run_def(args.tsan, args.asan)) test_list.append(brick_pyra_def) @@ -1330,10 +1330,10 @@ def main(): brick_prism_def.cfg_dir = "deformation/brick_prism" brick_prism_def.cfg_file = "def_brick_prism.cfg" brick_prism_def.test_iter = 10 - brick_prism_def.test_vals = [0.0021210] + brick_prism_def.test_vals = [0.00212069] #residual brick_prism_def.command = TestCase.Command(exec = "SU2_DEF") brick_prism_def.timeout = 1600 - brick_prism_def.tol = 1e-06 + brick_prism_def.tol = 1e-08 pass_list.append(brick_prism_def.run_def(args.tsan, args.asan)) test_list.append(brick_prism_def) @@ -1343,10 +1343,10 @@ def main(): brick_prism_rans_def.cfg_dir = "deformation/brick_prism_rans" brick_prism_rans_def.cfg_file = "def_brick_prism_rans.cfg" brick_prism_rans_def.test_iter = 10 - brick_prism_rans_def.test_vals = [0.0000000] + brick_prism_rans_def.test_vals = [4.8066e-08] #residual brick_prism_rans_def.command = TestCase.Command(exec = "SU2_DEF") brick_prism_rans_def.timeout = 1600 - brick_prism_rans_def.tol = 1e-06 + brick_prism_rans_def.tol = 1e-12 pass_list.append(brick_prism_rans_def.run_def(args.tsan, args.asan)) test_list.append(brick_prism_rans_def) @@ -1356,10 +1356,10 @@ def main(): brick_hex_rans_def.cfg_dir = "deformation/brick_hex_rans" brick_hex_rans_def.cfg_file = "def_brick_hex_rans.cfg" brick_hex_rans_def.test_iter = 10 - brick_hex_rans_def.test_vals = [0.0000000] + brick_hex_rans_def.test_vals = [2.260750e-07] #residual brick_hex_rans_def.command = TestCase.Command(exec = "SU2_DEF") brick_hex_rans_def.timeout = 1600 - brick_hex_rans_def.tol = 1e-06 + brick_hex_rans_def.tol = 1e-12 pass_list.append(brick_hex_rans_def.run_def(args.tsan, args.asan)) test_list.append(brick_hex_rans_def) @@ -1369,10 +1369,10 @@ def main(): cylinder_ffd_def.cfg_dir = "deformation/cylindrical_ffd" cylinder_ffd_def.cfg_file = "def_cylindrical.cfg" cylinder_ffd_def.test_iter = 10 - cylinder_ffd_def.test_vals = [0.0004700] + cylinder_ffd_def.test_vals = [0.000470133] #residual cylinder_ffd_def.command = TestCase.Command(exec = "SU2_DEF") cylinder_ffd_def.timeout = 1600 - cylinder_ffd_def.tol = 1e-06 + cylinder_ffd_def.tol = 1e-09 pass_list.append(cylinder_ffd_def.run_def(args.tsan, args.asan)) test_list.append(cylinder_ffd_def) @@ -1382,10 +1382,10 @@ def main(): sphere_ffd_def.cfg_dir = "deformation/spherical_ffd" sphere_ffd_def.cfg_file = "def_spherical.cfg" sphere_ffd_def.test_iter = 10 - sphere_ffd_def.test_vals = [0.0035670] + sphere_ffd_def.test_vals = [0.00356699] #residual sphere_ffd_def.command = TestCase.Command(exec = "SU2_DEF") sphere_ffd_def.timeout = 1600 - sphere_ffd_def.tol = 1e-06 + sphere_ffd_def.tol = 1e-08 pass_list.append(sphere_ffd_def.run_def(args.tsan, args.asan)) test_list.append(sphere_ffd_def) @@ -1395,10 +1395,10 @@ def main(): sphere_ffd_def_bspline.cfg_dir = "deformation/spherical_ffd" sphere_ffd_def_bspline.cfg_file = "def_spherical_bspline.cfg" sphere_ffd_def_bspline.test_iter = 10 - sphere_ffd_def_bspline.test_vals = [0.0020680] + sphere_ffd_def_bspline.test_vals = [0.00206808] #residual sphere_ffd_def_bspline.command = TestCase.Command(exec = "SU2_DEF") sphere_ffd_def_bspline.timeout = 1600 - sphere_ffd_def_bspline.tol = 1e-06 + sphere_ffd_def_bspline.tol = 1e-08 pass_list.append(sphere_ffd_def_bspline.run_def(args.tsan, args.asan)) test_list.append(sphere_ffd_def_bspline) @@ -1425,7 +1425,7 @@ def main(): shape_opt_euler_py.cfg_dir = "optimization_euler/steady_naca0012" shape_opt_euler_py.cfg_file = "inv_NACA0012_adv.cfg" shape_opt_euler_py.test_iter = 1 - shape_opt_euler_py.test_vals = [1.000000, 1.000000, 0.000021, 0.003643] + shape_opt_euler_py.test_vals = [1, 1, 2.134974E-05, 0.003847] #last 4 columns shape_opt_euler_py.command = TestCase.Command(exec = "shape_optimization.py", param = "-g CONTINUOUS_ADJOINT -f") shape_opt_euler_py.timeout = 1600 shape_opt_euler_py.tol = 0.00001 @@ -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.117740, 4.438036] + opt_multiobj1surf_py.test_vals = [1.000000, 1.000000, 30.428280, 2.039416] 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.005219, 0.000369] + opt_2surf1obj_py.test_vals = [1.000000, 1.000000, 2.005694, 0.000185] 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.444941, -3.941038, 0.318998, 0.022365] + pywrapper_naca0012.test_vals = [-4.023999, -3.515034, 0.339426, 0.022217] 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.074836, 0.033102, -0.001650, -0.000127] 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.729228, -4.153949] + pywrapper_fsi2d.test_vals = [4.000000, 0.000000, -3.743214, -4.133482] 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.120494, -1.540195, -3.566114, 1.342509, -0.748827, 0.161349, -0.013214, 0.516000, -0.529220] + pywrapper_custom_inlet.test_vals = [-4.124164, -1.544359, -3.808866, 1.338411, -0.752679, 0.161436, -1.2391e-02, 5.1662e-01, -5.2901e-01] 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 6faaeff53af..ac268040cd5 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.561506, -8.926634, -0.000000, 0.005587] 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.771233, -3.727282, -0.000000, 0.000000] + discadj_cylinder3D.test_vals = [-3.737675, -3.842311, -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.087863, -3.481496, 6.8879e-02, 0] 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.092007, -2.652750, 0.000000] test_list.append(discadj_incomp_NACA0012) ##################################### @@ -110,7 +110,7 @@ def main(): discadj_incomp_cylinder.cfg_dir = "disc_adj_incomp_navierstokes/cylinder" discadj_incomp_cylinder.cfg_file = "heated_cylinder.cfg" discadj_incomp_cylinder.test_iter = 20 - discadj_incomp_cylinder.test_vals = [20.000000, -2.373367, -2.368305, 0.000000] + discadj_incomp_cylinder.test_vals = [20.000000, -2.373367, -2.368305, 0.000000] #last 4 columns test_list.append(discadj_incomp_cylinder) ####################################################### @@ -122,7 +122,7 @@ def main(): discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder" discadj_cylinder.cfg_file = "cylinder.cfg" discadj_cylinder.test_iter = 9 - discadj_cylinder.test_vals = [3.746909, -1.544883, -0.008321, 0.000014] + discadj_cylinder.test_vals = [3.746909, -1.544883, -0.008321, 0.000014] #last 4 columns discadj_cylinder.unsteady = True test_list.append(discadj_cylinder) @@ -135,7 +135,7 @@ def main(): discadj_DT_1ST_cylinder.cfg_dir = "disc_adj_rans/cylinder_DT_1ST" discadj_DT_1ST_cylinder.cfg_file = "cylinder.cfg" discadj_DT_1ST_cylinder.test_iter = 9 - discadj_DT_1ST_cylinder.test_vals = [3.698168, -1.607050, -0.002159, 0.000028] + discadj_DT_1ST_cylinder.test_vals = [3.698168, -1.607050, -0.002159, 0.000028] #last 4 columns discadj_DT_1ST_cylinder.unsteady = True test_list.append(discadj_DT_1ST_cylinder) @@ -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.218846, -1.645199, -0.007645, 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.958006, -1.841808, 1081.700000, 0.000004] unst_deforming_naca0012.unsteady = True test_list.append(unst_deforming_naca0012) @@ -170,7 +170,7 @@ def main(): discadj_fea.cfg_dir = "disc_adj_fea" discadj_fea.cfg_file = "configAD_fem.cfg" discadj_fea.test_iter = 4 - discadj_fea.test_vals = [-2.849844, -3.238713, -0.000364, -8.708700] + discadj_fea.test_vals = [-2.849781, -3.238667, -0.000364, -8.708700] discadj_fea.tol = 0.00007 test_list.append(discadj_fea) @@ -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 = [-2.122406, 0.693852, 0.000000, -0.869010] + discadj_heat.test_vals = [-2.227530, 0.577932, 0.000000, -7.754000] test_list.append(discadj_heat) ################################### @@ -195,7 +195,7 @@ def main(): discadj_fsi.cfg_dir = "disc_adj_fsi" discadj_fsi.cfg_file = "config.cfg" discadj_fsi.test_iter = 6 - discadj_fsi.test_vals = [6.000000, -1.965877, -3.084381, 0.000440, -1.063100] + discadj_fsi.test_vals = [6.000000, -1.965877, -3.084381, 0.000440, -1.063100] #last 5 columns test_list.append(discadj_fsi) ################################### @@ -207,7 +207,7 @@ def main(): discadj_cht.cfg_dir = "coupled_cht/disc_adj_incomp_2d" discadj_cht.cfg_file = "cht_2d_3cylinders.cfg" discadj_cht.test_iter = 10 - discadj_cht.test_vals = [-2.955506, -3.085551, -3.085518, -3.085513] + discadj_cht.test_vals = [-2.955506, -3.085551, -3.085518, -3.085513] #last 4 columns test_list.append(discadj_cht) ###################################### @@ -323,7 +323,7 @@ def main(): pywrapper_FEA_AD_FlowLoad.cfg_dir = "py_wrapper/disc_adj_fea/flow_load_sens" pywrapper_FEA_AD_FlowLoad.cfg_file = "configAD_fem.cfg" pywrapper_FEA_AD_FlowLoad.test_iter = 100 - pywrapper_FEA_AD_FlowLoad.test_vals = [-0.139456, -0.585986, -0.000364, -0.003101] + pywrapper_FEA_AD_FlowLoad.test_vals = [-0.13945587401579657, -0.585985886606256, -0.00036377840086080753, -0.0031005670174756375] #last 4 columns pywrapper_FEA_AD_FlowLoad.command = TestCase.Command(exec = "python", param = "run_adjoint.py -f") pywrapper_FEA_AD_FlowLoad.timeout = 1600 pywrapper_FEA_AD_FlowLoad.tol = 0.000001 @@ -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.518695, 1.390150, 0.000000] #last 4 columns 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/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg index 7ce89091193..239ae7647de 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg @@ -81,7 +81,7 @@ MARKER_OUTLET= ( outlet, 0.0 ) % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES % -CFL_NUMBER= 80 +CFL_NUMBER= 150 CFL_REDUCTION_SPECIES= 0.1 CFL_REDUCTION_TURB= 1.0 % diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg index f851455c179..1ba87a48301 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg @@ -82,7 +82,7 @@ MARKER_OUTLET= ( outlet, 0.0 ) % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES % -CFL_NUMBER= 80 +CFL_NUMBER= 150 CFL_REDUCTION_SPECIES= 0.1 CFL_REDUCTION_TURB= 1.0 % @@ -93,8 +93,8 @@ ITER= 1000 % LINEAR_SOLVER= FGMRES LINEAR_SOLVER_PREC= ILU -LINEAR_SOLVER_ERROR= 1E-5 -LINEAR_SOLVER_ITER= 10 +LINEAR_SOLVER_ERROR= 1E-8 +LINEAR_SOLVER_ITER= 30 % % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index b4c8534d8a1..6406f452631 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -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.625757, 1.445108, -0.750969, 241.762883] 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.666547, 1.396426, -0.709267, 208.023676] test_list.append(sp_pinArray_2d_dp_hf_tp) ### Species Transport @@ -98,7 +98,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.082040, -5.293756, -5.131970, -5.933415, -1.606563, -6.274241, -6.408477, 5.000000, -0.811535, 5.000000, -2.344697, 5.000000, -0.388358, 1.647440, 0.499101, 0.600978, 0.547361] test_list.append(species3_primitiveVenturi) # 3 species (2 eq) primitive venturi mixing @@ -106,8 +106,8 @@ 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_aarch64 = [-7.865411, -7.548131, -7.347978, -7.217536, -11.822422, -10.968444, -10.193225] + DAspecies3_primitiveVenturi.test_vals = [-8.443103, -7.715615, -7.706589, -7.428740, -12.067471, -12.205189, -11.368995] + DAspecies3_primitiveVenturi.test_vals_aarch64 = [-8.443103, -7.715615, -7.706589, -7.428740, -12.067471, -12.205189, -11.368995] DAspecies3_primitiveVenturi.command = TestCase.Command("mpirun -n 2", "SU2_CFD_AD") test_list.append(DAspecies3_primitiveVenturi) @@ -125,7 +125,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.579462, -13.203791, -13.601782, -12.616876, -14.005299, -10.817605, 15.000000, -2.296083] + sudo_tutorial.test_vals = [-13.618610, -12.647974, -12.296537, -11.658760, -13.136523, -9.550829, 15.000000, -2.369703] sudo_tutorial.command = TestCase.Command("mpirun -n 2", "SU2_CFD") test_list.append(sudo_tutorial) @@ -136,7 +136,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.905856, -10.449512, -11.035999, -4.331440, -11.882740] test_list.append(premixed_hydrogen) ### Compressible Flow @@ -146,7 +146,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.005439, 0.012998] test_list.append(tutorial_inv_bump) # Inviscid Wedge @@ -154,7 +154,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.291747, 0.052515] tutorial_inv_wedge.no_restart = True test_list.append(tutorial_inv_wedge) @@ -163,7 +163,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.504789, -4.895776, 0.249157, 0.118834] + tutorial_inv_onera.test_vals = [-5.204928, -4.597762, 0.247451, 0.085770] tutorial_inv_onera.no_restart = True test_list.append(tutorial_inv_onera) @@ -181,7 +181,7 @@ def main(): tutorial_lam_flatplate.cfg_dir = "../Tutorials/compressible_flow/Laminar_Flat_Plate" tutorial_lam_flatplate.cfg_file = "lam_flatplate.cfg" tutorial_lam_flatplate.test_iter = 0 - tutorial_lam_flatplate.test_vals = [-2.821818, 2.657591, -0.400044, 0.029365] #last 4 columns + tutorial_lam_flatplate.test_vals = [-2.821818, 2.657591, -0.400044, 0.029413] #last 4 columns tutorial_lam_flatplate.no_restart = True test_list.append(tutorial_lam_flatplate) @@ -190,7 +190,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.429375, 0.201236] tutorial_turb_flatplate.no_restart = True test_list.append(tutorial_turb_flatplate) @@ -208,8 +208,8 @@ 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.837399, -2.092246, -3.983493, -0.302381, -1.920868, 1.667180, -3.496278, 0.391608] - 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.test_vals = [-5.837186, -2.092246, -3.982633, -0.302219, -1.921235, 1.667190, -3.496277, 0.391605] + tutorial_trans_flatplate_T3A.test_vals_aarch64 = [-5.837191, -2.092246, -3.982640, -0.302224, -1.922554, 1.667190, -3.496277, 0.391605] tutorial_trans_flatplate_T3A.no_restart = True test_list.append(tutorial_trans_flatplate_T3A) @@ -218,8 +218,8 @@ 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.063700, -1.945073, -3.946836, -0.549147, -3.863792, 2.664440, -2.517610, 1.112977] - 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.test_vals = [-6.063600, -1.945057, -3.946760, -0.549063, -3.863792, 2.664453, -2.517606, 1.112979] + tutorial_trans_flatplate_T3Am.test_vals_aarch64 = [-6.063598, -1.945057, -3.946744, -0.549062, -3.863792, 2.664453, -2.517606, 1.112979] tutorial_trans_flatplate_T3Am.no_restart = True test_list.append(tutorial_trans_flatplate_T3Am) @@ -246,7 +246,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.524476, 0.327954, 0.097349] test_list.append(tutorial_turb_oneram6) # NICD Nozzle @@ -254,7 +254,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.124123, 3.687027, 0.000000, 0.000000] + tutorial_nicfd_nozzle.test_vals = [-2.187397, -2.338457, 3.617301, 0.000000, 0.000000] tutorial_nicfd_nozzle.no_restart = True test_list.append(tutorial_nicfd_nozzle) @@ -284,7 +284,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.135070, 0.208565] tutorial_design_inv_naca0012.no_restart = True test_list.append(tutorial_design_inv_naca0012) @@ -302,7 +302,7 @@ def main(): tutorial_design_multiobj.cfg_dir = "../Tutorials/design/Multi_Objective_Shape_Design" tutorial_design_multiobj.cfg_file = "inv_wedge_ROE_multiobj_combo.cfg" tutorial_design_multiobj.test_iter = 0 - tutorial_design_multiobj.test_vals = [2.657333, -3.020635, 370220.000000, 0.000000] + tutorial_design_multiobj.test_vals = [2.657333, -3.020635, 324840.000000, 0.000000] #last 4 columns tutorial_design_multiobj.no_restart = True test_list.append(tutorial_design_multiobj) diff --git a/TestCases/user_defined_functions/lam_flatplate.cfg b/TestCases/user_defined_functions/lam_flatplate.cfg index c3d55cd45c0..35cdc97b9c9 100644 --- a/TestCases/user_defined_functions/lam_flatplate.cfg +++ b/TestCases/user_defined_functions/lam_flatplate.cfg @@ -114,7 +114,7 @@ SLOPE_LIMITER_FLOW= NONE % CONV_RESIDUAL_MINVAL= -11 CONV_STARTITER= 0 -INNER_ITER= 21 +INNER_ITER= 1000 % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % diff --git a/TestCases/vandv.py b/TestCases/vandv.py index 06c74d893f8..16ea373e8c1 100644 --- a/TestCases/vandv.py +++ b/TestCases/vandv.py @@ -54,8 +54,8 @@ 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.027926, -10.276119, -11.311717, -8.137517, -10.520065, -5.127385, 0.002775] - flatplate_sst1994m.test_vals_aarch64 = [-13.028095, -11.271115, -11.532461, -8.387610, -11.417974, -5.116988, 0.002808] + flatplate_sst1994m.test_vals = [-13.023358, -9.956752, -11.099910, -7.933220, -10.206577, -5.132343, 0.002808] + flatplate_sst1994m.test_vals_aarch64 = [-13.022835, -9.956652, -11.102384, -7.928197, -10.206580, -5.132317, 0.002808] test_list.append(flatplate_sst1994m) # bump in channel - sst-v1994m @@ -63,8 +63,8 @@ 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.022054, -9.882710, -10.557148, -7.605034, -10.172437, -5.549948, 0.004904] - bump_sst1994m.test_vals_aarch64 = [-13.034665, -10.510699, -10.627802, -7.661320, -10.680337, -5.749566, 0.004972] + bump_sst1994m.test_vals = [-12.986182, -10.719941, -10.556276, -7.606531, -10.774915, -5.605156, 0.004972] + bump_sst1994m.test_vals_aarch64 = [-13.039365, -10.729085, -10.609923, -7.682911, -10.774915, -5.605087, 0.004972] test_list.append(bump_sst1994m) # SWBLI SA @@ -72,8 +72,8 @@ 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.564511, -10.836187, -11.792765, -10.383947, -15.718717, 0.002212, -2.993991, 1.340100] - swbli_sa.test_vals_aarch64 = [-11.564511, -10.836187, -11.792765, -10.383947, -15.718717, 0.002212, -2.993991, 1.340100] + swbli_sa.test_vals = [-11.530796, -10.915564, -12.034495, -10.538719, -15.922522, 0.002233, -3.359164, 1.340100] + swbli_sa.test_vals_aarch64 = [-11.530796, -10.915564, -12.034495, -10.538719, -15.922522, 0.002233, -3.359164, 1.340100] test_list.append(swbli_sa) @@ -82,7 +82,7 @@ def main(): swbli_sst.cfg_dir = "vandv/rans/swbli" swbli_sst.cfg_file = "config_sst.cfg" swbli_sst.test_iter = 5 - swbli_sst.test_vals = [-11.528112, -10.961624, -11.903226, -10.630539, -11.117619, -4.573066, 0.002318, -2.905628, -4.037947, 1.340100] + swbli_sst.test_vals = [-11.527743, -11.150388, -11.944923, -10.750834, -11.116769, -4.030059, 0.002339, -2.730391, -4.067274, 1.276300] test_list.append(swbli_sst) ########################## @@ -94,8 +94,8 @@ 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.169907, -13.518707, -15.442566, -12.021165, -9.660040, -15.289842, 5.000000, -2.746249, 5.000000, -4.836800, 5.000000, -3.966350, 0.000259, 0.000000, 0.000000, 0.000259, 4047.400000, 3946.800000, 49.161000, 51.433000] - 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] + sandiajet_sst.test_vals = [-16.249917, -13.835991, -14.303372, -13.276035, -10.074262, -14.027223, 5, -1.672359, 5, -4.938477, 5, -3.462217, 2.5859e-04, 2.8215e-32, 4.5010e-68, 2.5859e-04, 4.0474e+03, 3.9468e+03, 4.9170e+01, 5.1441e+01] + sandiajet_sst.test_vals_aarch64 = [-16.249289, -13.833785, -14.303058, -13.276559, -10.267928, -14.027240, 5, -1.676412, 5, -4.815216, 5, -3.462247, 0.000259, 0, 0, 0.000259, 4047.4, 3946.8, 49.17, 51.441] test_list.append(sandiajet_sst) ################# diff --git a/UnitTests/SU2_CFD/gradients.cpp b/UnitTests/SU2_CFD/gradients.cpp index af3ad8a2fee..2f69d407d3a 100644 --- a/UnitTests/SU2_CFD/gradients.cpp +++ b/UnitTests/SU2_CFD/gradients.cpp @@ -133,7 +133,7 @@ void testGreenGauss() { C3DDoubleMatrix gradient(field.geometry->GetnPoint(), field.nVar, field.geometry->GetnDim()); computeGradientsGreenGauss(nullptr, MPI_QUANTITIES::SOLUTION, PERIODIC_NONE, *field.geometry.get(), - *field.config.get(), field, 0, field.nVar, -1, gradient); + *field.config.get(), field, 0, field.nVar, gradient); check(field, gradient); } @@ -145,7 +145,7 @@ void testLeastSquares(bool weighted) { C3DDoubleMatrix gradient(field.geometry->GetnPoint(), field.nVar, nDim); computeGradientsLeastSquares(nullptr, MPI_QUANTITIES::SOLUTION, PERIODIC_NONE, *field.geometry.get(), - *field.config.get(), weighted, field, 0, field.nVar, -1, gradient, R); + *field.config.get(), weighted, field, 0, field.nVar, gradient, R); check(field, gradient); } diff --git a/config_template.cfg b/config_template.cfg index 00334732b30..74832ef98db 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -21,7 +21,7 @@ SOLVER= EULER % Specify turbulence model (NONE, SA, SST) KIND_TURB_MODEL= NONE % -% Specify versions/corrections of the SST model (V2003m, V1994m, VORTICITY, KATO_LAUNDER, UQ, SUSTAINING, COMPRESSIBILITY-WILCOX, COMPRESSIBILITY-SARKAR, DIMENSIONLESS_LIMIT) +% Specify versions/corrections of the SST model (V2003m, V1994m, VORTICITY, KATO_LAUNDER, UQ, SUSTAINING) SST_OPTIONS= NONE % % Specify versions/corrections of the SA model (NEGATIVE, EDWARDS, WITHFT2, QCR2000, COMPRESSIBILITY, ROTATION, BCM, EXPERIMENTAL) @@ -1567,7 +1567,7 @@ CONV_NUM_METHOD_FLOW= ROE % Roe Low Dissipation function for Hybrid RANS/LES simulations (FD, NTS, NTS_DUCROS) ROE_LOW_DISSIPATION= FD % -% Roe dissipation coefficient +% Roe coefficient ROE_KAPPA= 0.5 % % Minimum value for beta for the Roe-Turkel preconditioner @@ -1801,10 +1801,6 @@ TIME_DISCRE_TURB= EULER_IMPLICIT % Reduction factor of the CFL coefficient in the turbulence problem CFL_REDUCTION_TURB= 1.0 -% Control lower limit constants of the SST model (C*phi_infinity) -LOWER_LIMIT_K_FACTOR= 1e-15 -LOWER_LIMIT_OMEGA_FACTOR= 1e-5 - % --------------------- HEAT NUMERICAL METHOD DEFINITION ----------------------% % % Value of the thermal diffusivity From 9db6939723251991b6de2fc716f42e369c7ecf97 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 4 Sep 2024 15:16:05 +0200 Subject: [PATCH 250/287] Changes for comments and reversion error fix --- Common/src/CConfig.cpp | 4 +++- SU2_CFD/include/interfaces/CInterface.hpp | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 9ffe757462a..d0a66d0763a 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -6050,8 +6050,10 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { if (Marker_MixingPlaneInterface != nullptr){ // Necessary in cases where no mixing plane interfaces are defined if (Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] != 0) { //Is a mixing plane /*--- Find which list position this marker is in turbomachinery markers ---*/ - const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); + const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; + /*--- Assert that we find the marker within the turbomachienry markers ---*/ + assert(target != &Marker_Turbomachinery[nMarker_Turbomachinery*2]); /*--- Assign the correct interface ---*/ SetKind_TurboInterface(target_index - 1, TURBO_INTERFACE_KIND::MIXING_PLANE); // Need to subtract 1 from index as to not consider the inlet an interface } diff --git a/SU2_CFD/include/interfaces/CInterface.hpp b/SU2_CFD/include/interfaces/CInterface.hpp index 9ec0599827e..a86db24b12a 100644 --- a/SU2_CFD/include/interfaces/CInterface.hpp +++ b/SU2_CFD/include/interfaces/CInterface.hpp @@ -219,4 +219,9 @@ class CInterface { */ void GatherAverageValues(CSolver *donor_solution, CSolver *target_solution, unsigned short donorZone); + /*! + * \brief Set the contact resistance value for the solid-to-solid heat transfer interface. + * \param[in] val_contact_resistance - Contact resistance value in m^2/W + */ + inline virtual void SetContactResistance(su2double val_contact_resistance) {}; }; From d1064010667c8dd86368afe1f1b786d6d39c57b0 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 4 Sep 2024 17:20:26 +0200 Subject: [PATCH 251/287] Some changes after discussions --- Common/src/CConfig.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index d0a66d0763a..c90b6b79518 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -6050,16 +6050,16 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { if (Marker_MixingPlaneInterface != nullptr){ // Necessary in cases where no mixing plane interfaces are defined if (Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] != 0) { //Is a mixing plane /*--- Find which list position this marker is in turbomachinery markers ---*/ - const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2], Marker_CfgFile_TagBound[iMarker_CfgFile]); + const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; /*--- Assert that we find the marker within the turbomachienry markers ---*/ - assert(target != &Marker_Turbomachinery[nMarker_Turbomachinery*2]); + assert(target != &Marker_Turbomachinery[nMarker_Turbomachinery*2-1]); /*--- Assign the correct interface ---*/ SetKind_TurboInterface(target_index - 1, TURBO_INTERFACE_KIND::MIXING_PLANE); // Need to subtract 1 from index as to not consider the inlet an interface } } - if (Marker_Fluid_InterfaceBound != nullptr){ // Necessary in cases where no fluid interfaces are defined - if (Marker_CfgFile_KindBC[iMarker_CfgFile] == BC_TYPE::FLUID_INTERFACE) { //Is a fluid interface + if (Marker_Fluid_InterfaceBound != nullptr){ // No fluid interfaces are defined in the config file (nullptr if no interfaces defined) + if (Marker_CfgFile_KindBC[iMarker_CfgFile] == BC_TYPE::FLUID_INTERFACE) { // iMarker_CfgFile is a fluid interface const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; SetKind_TurboInterface(target_index-1, TURBO_INTERFACE_KIND::FROZEN_ROTOR); From ef3416af29fa5e607f4e6033dd8e7767c5cf820a Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 4 Sep 2024 17:55:40 +0200 Subject: [PATCH 252/287] This hopefully resolves the merge error I was having --- Common/include/CConfig.hpp | 17 +- Common/include/geometry/CGeometry.hpp | 24 +- .../include/geometry/CMultiGridGeometry.hpp | 3 +- Common/include/geometry/CPhysicalGeometry.hpp | 9 +- Common/include/geometry/dual_grid/CPoint.hpp | 8 +- .../meshreader/CCGNSMeshReaderFVM.hpp | 9 +- Common/include/option_structure.hpp | 25 + Common/src/CConfig.cpp | 28 +- Common/src/geometry/CGeometry.cpp | 182 ++---- Common/src/geometry/CMultiGridGeometry.cpp | 121 ++-- Common/src/geometry/CPhysicalGeometry.cpp | 8 +- .../src/grid_movement/CVolumetricMovement.cpp | 2 +- .../gradients/computeGradientsGreenGauss.hpp | 139 ++--- .../computeGradientsLeastSquares.hpp | 20 +- .../gradients/correctGradientsSymmetry.hpp | 146 +++++ SU2_CFD/include/interfaces/CInterface.hpp | 27 +- .../include/numerics/flow/convection/hllc.hpp | 4 +- .../numerics/turbulent/turb_sources.hpp | 81 ++- SU2_CFD/include/solvers/CEulerSolver.hpp | 34 +- .../include/solvers/CFVMFlowSolverBase.hpp | 19 +- .../include/solvers/CFVMFlowSolverBase.inl | 402 ++++--------- SU2_CFD/include/solvers/CScalarSolver.inl | 10 +- SU2_CFD/include/solvers/CSolver.hpp | 59 +- SU2_CFD/include/solvers/CSpeciesSolver.hpp | 13 +- SU2_CFD/include/solvers/CTurbSASolver.hpp | 17 +- SU2_CFD/include/solvers/CTurbSSTSolver.hpp | 17 +- SU2_CFD/include/variables/CEulerVariable.hpp | 4 +- SU2_CFD/include/variables/CVariable.hpp | 10 + SU2_CFD/src/drivers/CDriver.cpp | 44 +- SU2_CFD/src/drivers/CMultizoneDriver.cpp | 16 +- SU2_CFD/src/integration/CIntegration.cpp | 15 +- SU2_CFD/src/interfaces/CInterface.cpp | 11 +- .../src/iteration/CDiscAdjFluidIteration.cpp | 4 + SU2_CFD/src/numerics/flow/convection/fds.cpp | 2 +- SU2_CFD/src/numerics/flow/convection/hllc.cpp | 83 +-- SU2_CFD/src/numerics/flow/convection/roe.cpp | 6 +- SU2_CFD/src/solvers/CAdjEulerSolver.cpp | 10 +- SU2_CFD/src/solvers/CAdjNSSolver.cpp | 14 +- SU2_CFD/src/solvers/CAdjTurbSolver.cpp | 8 +- SU2_CFD/src/solvers/CEulerSolver.cpp | 565 +++++++----------- SU2_CFD/src/solvers/CNEMONSSolver.cpp | 2 +- SU2_CFD/src/solvers/CRadP1Solver.cpp | 10 +- SU2_CFD/src/solvers/CSolver.cpp | 61 +- SU2_CFD/src/solvers/CSpeciesSolver.cpp | 59 +- SU2_CFD/src/solvers/CTransLMSolver.cpp | 4 +- SU2_CFD/src/solvers/CTurbSASolver.cpp | 68 +-- SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 92 +-- TestCases/TestCase.py | 2 +- .../naca0012/of_grad_cd.dat.ref | 76 +-- .../naca0012/of_grad_cd_disc.dat.ref | 76 +-- .../naca0012/of_grad_directdiff.dat.ref | 6 +- .../wedge/of_grad_combo.dat.ref | 8 +- .../disc_adj_fsi/dyn_fsi/grad_dv.opt.ref | 16 +- TestCases/disc_adj_heat/disc_adj_heat.cfg | 2 +- TestCases/euler/bluntbody/blunt.cfg | 2 +- TestCases/euler/channel/inv_channel_RK.cfg | 2 +- TestCases/euler/naca0012/inv_NACA0012_Roe.cfg | 8 +- TestCases/euler/wedge/inv_wedge_HLLC.cfg | 2 +- TestCases/fixed_cl/naca0012/inv_NACA0012.cfg | 12 +- .../lam_prem_ch4_cfd.cfg | 13 +- .../lam_prem_ch4_cht_cfd_fluid.cfg | 7 +- .../lam_prem_ch4_cht_cfd_master.cfg | 2 +- TestCases/hybrid_regression.py | 98 +-- TestCases/hybrid_regression_AD.py | 22 +- .../incomp_euler/naca0012/incomp_NACA0012.cfg | 8 +- TestCases/incomp_euler/nozzle/inv_nozzle.cfg | 6 +- .../incomp_navierstokes/sphere/sphere.cfg | 104 ++++ .../chtPinArray_2d/of_grad_findiff.csv.ref | 2 +- .../chtPinArray_3d/configMaster.cfg | 2 +- .../multiple_ffd/naca0012/of_grad_cd.dat.ref | 4 +- .../naca0012/of_grad_directdiff.dat.ref | 4 +- .../navierstokes/cylinder/lam_cylinder.cfg | 2 +- .../navierstokes/flatplate/lam_flatplate.cfg | 12 +- TestCases/nicf/edge/edge_PPR.cfg | 15 +- TestCases/nicf/edge/edge_VW.cfg | 16 +- TestCases/parallel_regression.py | 238 ++++---- TestCases/parallel_regression_AD.py | 24 +- .../translating_NACA0012/config.cfg | 20 +- .../translating_NACA0012/forces_0.csv.ref | 400 ++++++------- .../forces_0.csv.ref | 400 ++++++------- ...b_SST_flatplate_compressibility_Sarkar.cfg | 150 +++++ ...b_SST_flatplate_compressibility_Wilcox.cfg | 150 +++++ TestCases/rotating/naca0012/rot_NACA0012.cfg | 2 +- TestCases/serial_regression.py | 178 +++--- TestCases/serial_regression_AD.py | 30 +- ...iveVenturi_mixingmodel_heatcapacity_H2.cfg | 2 +- ...Venturi_mixingmodel_heatcapacity_H2_ND.cfg | 6 +- TestCases/tutorials.py | 40 +- .../user_defined_functions/lam_flatplate.cfg | 2 +- TestCases/vandv.py | 18 +- UnitTests/SU2_CFD/gradients.cpp | 4 +- config_template.cfg | 8 +- externals/codi | 2 +- subprojects/MLPCpp | 2 +- 94 files changed, 2531 insertions(+), 2186 deletions(-) create mode 100644 SU2_CFD/include/gradients/correctGradientsSymmetry.hpp create mode 100644 TestCases/incomp_navierstokes/sphere/sphere.cfg create mode 100644 TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg create mode 100644 TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 0bec4282207..474deacf6a5 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -884,6 +884,8 @@ class CConfig { ReThetaT_FreeStream, /*!< \brief Freestream Transition Momentum Thickness Reynolds Number (for LM transition model) of the fluid. */ NuFactor_FreeStream, /*!< \brief Ratio of turbulent to laminar viscosity. */ NuFactor_Engine, /*!< \brief Ratio of turbulent to laminar viscosity at the engine. */ + KFactor_LowerLimit, /*!< \Non dimensional coefficient for lower limit of K in SST model. */ + OmegaFactor_LowerLimit, /*!< \Non dimensional coefficient for lower limit of omega in SST model. */ SecondaryFlow_ActDisk, /*!< \brief Ratio of turbulent to laminar viscosity at the actuator disk. */ Initial_BCThrust, /*!< \brief Ratio of turbulent to laminar viscosity at the actuator disk. */ Pressure_FreeStream, /*!< \brief Total pressure of the fluid. */ @@ -2014,6 +2016,18 @@ class CConfig { */ su2double GetNuFactor_FreeStream(void) const { return NuFactor_FreeStream; } + /*! + * \brief Get the k constant factor define a lower limit by multiplication with values in SST turbulence model. + * \return Non-dimensionalized freestream intensity. + */ + su2double GetKFactor_LowerLimit(void) const { return KFactor_LowerLimit; } + + /*! + * \brief Get the w constant factor define a lower limit by multiplication with values in SST turbulencemodel. + * \return Non-dimensionalized freestream intensity. + */ + su2double GetOmegaFactor_LowerLimit(void) const { return OmegaFactor_LowerLimit; } + /*! * \brief Get the value of the non-dimensionalized engine turbulence intensity. * \return Non-dimensionalized engine intensity. @@ -4334,8 +4348,7 @@ class CConfig { array GetNewtonKrylovDblParam(void) const { return NK_DblParam; } /*! - * \brief Get the relaxation coefficient of the linear solver for the implicit formulation. - * \return relaxation coefficient of the linear solver for the implicit formulation. + * \brief Returns the Roe kappa (multipler of the dissipation term). */ su2double GetRoe_Kappa(void) const { return Roe_Kappa; } diff --git a/Common/include/geometry/CGeometry.hpp b/Common/include/geometry/CGeometry.hpp index 582679ca6af..015aaf1fdc2 100644 --- a/Common/include/geometry/CGeometry.hpp +++ b/Common/include/geometry/CGeometry.hpp @@ -240,8 +240,10 @@ class CGeometry { unsigned long* nVertex{nullptr}; /*!< \brief Number of vertex for each marker. */ unsigned long* nElem_Bound{nullptr}; /*!< \brief Number of elements of the boundary. */ string* Tag_to_Marker{nullptr}; /*!< \brief Names of boundary markers. */ - vector - bound_is_straight; /*!< \brief Bool if boundary-marker is straight(2D)/plane(3D) for each local marker. */ + + /*!< \brief Corrected normals on nodes with shared symmetry markers. */ + vector>> symmetryNormals; + vector SurfaceAreaCfgFile; /*!< \brief Total Surface area for all markers. */ /*--- Partitioning-specific variables ---*/ @@ -819,6 +821,12 @@ class CGeometry { */ inline virtual void SetBoundControlVolume(const CConfig* config, unsigned short action) {} + /*! + * \brief Computes modified normals at intersecting symmetry planes. + * \param[in] config - Definition of the particular problem. + */ + void ComputeModifiedSymmetryNormals(const CConfig* config); + /*! * \brief A virtual member. * \param[in] config_filename - Name of the file where the tecplot information is going to be stored. @@ -936,9 +944,10 @@ class CGeometry { /*! * \brief A virtual member. * \param[in] fine_grid - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. * \param[in] action - Allocate or not the new elements. */ - inline virtual void SetBoundControlVolume(const CGeometry* fine_grid, unsigned short action) {} + inline virtual void SetBoundControlVolume(const CGeometry* fine_grid, const CConfig* config, unsigned short action) {} /*! * \brief A virtual member. @@ -1005,15 +1014,6 @@ class CGeometry { */ su2double GetSurfaceArea(const CConfig* config, unsigned short val_marker) const; - /*! - * \brief Check if a boundary is straight(2D) / plane(3D) for EULER_WALL and SYMMETRY_PLANE - * only and store the information in bound_is_straight. For all other boundary types - * this will return false and could therfore be wrong. Used ultimately for BC_Slip_Wall. - * \param[in] config - Definition of the particular problem. - * \param[in] print_on_screen - Boolean whether to print result on screen. - */ - void ComputeSurf_Straightness(CConfig* config, bool print_on_screen); - /*! * \brief Find and store all vertices on a sharp corner in the geometry. * \param[in] config - Definition of the particular problem. diff --git a/Common/include/geometry/CMultiGridGeometry.hpp b/Common/include/geometry/CMultiGridGeometry.hpp index 1a7f7f9ab58..541aaa88d6d 100644 --- a/Common/include/geometry/CMultiGridGeometry.hpp +++ b/Common/include/geometry/CMultiGridGeometry.hpp @@ -104,9 +104,10 @@ class CMultiGridGeometry final : public CGeometry { /*! * \brief Set boundary vertex structure of the agglomerated control volume. * \param[in] fine_grid - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. * \param[in] action - Allocate or not the new elements. */ - void SetBoundControlVolume(const CGeometry* fine_grid, unsigned short action) override; + void SetBoundControlVolume(const CGeometry* fine_grid, const CConfig* config, unsigned short action) override; /*! * \brief Set a representative coordinates of the agglomerated control volume. diff --git a/Common/include/geometry/CPhysicalGeometry.hpp b/Common/include/geometry/CPhysicalGeometry.hpp index 10e781cb85e..070bf015ab8 100644 --- a/Common/include/geometry/CPhysicalGeometry.hpp +++ b/Common/include/geometry/CPhysicalGeometry.hpp @@ -208,10 +208,13 @@ class CPhysicalGeometry final : public CGeometry { * \brief Routine to launch non-blocking sends and recvs amongst all processors. * \param[in] bufSend - Buffer of data to be sent. * \param[in] nElemSend - Array containing the number of elements to send to other processors in cumulative storage - * format. \param[in] sendReq - Array of MPI send requests. \param[in] bufRecv - Buffer of data to be received. + * format. + * \param[in] sendReq - Array of MPI send requests. + * \param[in] bufRecv - Buffer of data to be received. * \param[in] nElemSend - Array containing the number of elements to receive from other processors in cumulative - * storage format. \param[in] sendReq - Array of MPI recv requests. \param[in] countPerElem - Pieces of data per - * element communicated. + * storage format. + * \param[in] sendReq - Array of MPI recv requests. + * \param[in] countPerElem - Pieces of data per element communicated. */ void InitiateCommsAll(void* bufSend, const int* nElemSend, SU2_MPI::Request* sendReq, void* bufRecv, const int* nElemRecv, SU2_MPI::Request* recvReq, unsigned short countPerElem, diff --git a/Common/include/geometry/dual_grid/CPoint.hpp b/Common/include/geometry/dual_grid/CPoint.hpp index 9c73fdeaa9a..c297b1b5df9 100644 --- a/Common/include/geometry/dual_grid/CPoint.hpp +++ b/Common/include/geometry/dual_grid/CPoint.hpp @@ -314,10 +314,8 @@ class CPoint { * \return Index of the vertex. */ inline long GetVertex(unsigned long iPoint, unsigned long iMarker) const { - if (Boundary(iPoint)) - return Vertex[iPoint][iMarker]; - else - return -1; + if (Boundary(iPoint)) return Vertex[iPoint][iMarker]; + return -1; } /*! @@ -369,7 +367,7 @@ class CPoint { inline bool GetPhysicalBoundary(unsigned long iPoint) const { return PhysicalBoundary(iPoint); } /*! - * \brief Set if a point belong to the boundary. + * \brief Set if a point belong to the solid wall boundary. * \param[in] iPoint - Index of the point. * \param[in] boundary - TRUE if the point belong to the physical boundary; otherwise FALSE. */ diff --git a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp index 7ef5ef88206..3b072222d41 100644 --- a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp @@ -121,10 +121,13 @@ class CCGNSMeshReaderFVM : public CMeshReaderFVM { * \brief Routine to launch non-blocking sends and recvs amongst all processors. * \param[in] bufSend - Buffer of data to be sent. * \param[in] nElemSend - Array containing the number of elements to send to other processors in cumulative storage - * format. \param[in] sendReq - Array of MPI send requests. \param[in] bufRecv - Buffer of data to be received. + * format. + * \param[in] sendReq - Array of MPI send requests. + * \param[in] bufRecv - Buffer of data to be received. * \param[in] nElemSend - Array containing the number of elements to receive from other processors in cumulative - * storage format. \param[in] sendReq - Array of MPI recv requests. \param[in] countPerElem - Pieces of data per - * element communicated. + * storage format. + * \param[in] sendReq - Array of MPI recv requests. + * \param[in] countPerElem - Pieces of data per element communicated. */ void InitiateCommsAll(void* bufSend, const int* nElemSend, SU2_MPI::Request* sendReq, void* bufRecv, const int* nElemRecv, SU2_MPI::Request* recvReq, unsigned short countPerElem, diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index ab32f398e76..7d36d111bda 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -991,6 +991,9 @@ enum class SST_OPTIONS { 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. */ }; static const MapType SST_Options_Map = { MakePair("NONE", SST_OPTIONS::NONE) @@ -1003,6 +1006,9 @@ static const MapType SST_Options_Map = { 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("DIMENSIONLESS_LIMIT", SST_OPTIONS::DLL) }; /*! @@ -1014,6 +1020,9 @@ struct SST_ParsedOptions { bool sust = false; /*!< \brief Bool for SST model with sustaining terms. */ bool uq = false; /*!< \brief Bool for using uncertainty quantification. */ 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 dll = false; /*!< \brief Bool dimensionless lower limit. */ }; /*! @@ -1049,6 +1058,9 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne const bool sst_v = IsPresent(SST_OPTIONS::V); const bool sst_kl = IsPresent(SST_OPTIONS::KL); 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_dll = IsPresent(SST_OPTIONS::DLL); if (sst_1994 && sst_2003) { SU2_MPI::Error("Two versions (1994 and 2003) selected for SST_OPTIONS. Please choose only one.", CURRENT_FUNCTION); @@ -1069,9 +1081,22 @@ inline SST_ParsedOptions ParseSSTOptions(const SST_OPTIONS *SST_Options, unsigne SSTParsedOptions.production = SST_OPTIONS::UQ; } + // Parse compressibility options + if (sst_compWilcox && sst_compSarkar) { + 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; + } + SSTParsedOptions.sust = sst_sust; SSTParsedOptions.modified = sst_m; SSTParsedOptions.uq = sst_uq; + SSTParsedOptions.compWilcox = sst_compWilcox; + SSTParsedOptions.compSarkar = sst_compSarkar; + SSTParsedOptions.dll = sst_dll; + return SSTParsedOptions; } diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index c90b6b79518..4c6d8797ee6 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1421,6 +1421,10 @@ void CConfig::SetConfig_Options() { /* DESCRIPTION: */ addDoubleOption("FREESTREAM_NU_FACTOR", NuFactor_FreeStream, 3.0); /* DESCRIPTION: */ + addDoubleOption("LOWER_LIMIT_K_FACTOR", KFactor_LowerLimit, 1.0e-15); + /* DESCRIPTION: */ + addDoubleOption("LOWER_LIMIT_OMEGA_FACTOR", OmegaFactor_LowerLimit, 1e-05); + /* DESCRIPTION: */ addDoubleOption("ENGINE_NU_FACTOR", NuFactor_Engine, 3.0); /* DESCRIPTION: */ addDoubleOption("ACTDISK_SECONDARY_FLOW", SecondaryFlow_ActDisk, 0.0); @@ -3478,9 +3482,12 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i saParsedOptions = ParseSAOptions(SA_Options, nSA_Options, rank); } - /*--- Check if turbulence model can be used for AXISYMMETRIC case---*/ - if (Axisymmetric && Kind_Turb_Model != TURB_MODEL::NONE && Kind_Turb_Model != TURB_MODEL::SST){ - SU2_MPI::Error("Axisymmetry is currently only supported for KIND_TURB_MODEL chosen as SST", CURRENT_FUNCTION); + if (Kind_Solver == MAIN_SOLVER::INC_RANS && sstParsedOptions.compSarkar){ + SU2_MPI::Error("COMPRESSIBILITY-SARKAR only supported for SOLVER= RANS", CURRENT_FUNCTION); + } + + if (Kind_Solver == MAIN_SOLVER::INC_RANS && sstParsedOptions.compWilcox){ + SU2_MPI::Error("COMPRESSIBILITY-WILCOX only supported for SOLVER= RANS", CURRENT_FUNCTION); } /*--- Postprocess LM_OPTIONS into structure. ---*/ @@ -6217,7 +6224,7 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { if (sstParsedOptions.version == SST_OPTIONS::V1994) cout << "-1994"; else cout << "-2003"; if (sstParsedOptions.modified) cout << "m"; - if (sstParsedOptions.sust) cout << " with sustaining terms, and"; + if (sstParsedOptions.sust) cout << " with sustaining terms,"; switch (sstParsedOptions.production) { case SST_OPTIONS::KL: @@ -6230,10 +6237,23 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { cout << "\nperturbing the Reynold's Stress Matrix towards " << eig_val_comp << " component turbulence"; if (uq_permute) cout << " (permuting eigenvectors)"; break; + case SST_OPTIONS::COMP_Wilcox: + cout << " with compressibility correction of Wilcox"; + break; + case SST_OPTIONS::COMP_Sarkar: + cout << " with compressibility correction of Sarkar"; + break; default: cout << " with no production modification"; break; } + + if (sstParsedOptions.dll){ + cout << "\nusing non dimensional lower limits relative to infinity values clipping by Coefficients:" ; + cout << " C_w= " << OmegaFactor_LowerLimit << " and C_k= " <SetControlVolume(geometry_container[iMesh - 1], UPDATE); - geometry_container[iMesh]->SetBoundControlVolume(geometry_container[iMesh - 1], UPDATE); + geometry_container[iMesh]->SetBoundControlVolume(geometry_container[iMesh - 1], config, UPDATE); geometry_container[iMesh]->SetCoord(geometry_container[iMesh - 1]); } @@ -2453,123 +2453,71 @@ su2double CGeometry::GetSurfaceArea(const CConfig* config, unsigned short val_ma return 0.0; } -void CGeometry::ComputeSurf_Straightness(CConfig* config, bool print_on_screen) { - bool RefUnitNormal_defined; - unsigned short iDim, iMarker, iMarker_Global, nMarker_Global = config->GetnMarker_CfgFile(); - unsigned long iVertex; - constexpr passivedouble epsilon = 1.0e-6; - su2double Area; - string Local_TagBound, Global_TagBound; - - vector Normal(nDim), UnitNormal(nDim), RefUnitNormal(nDim); - - /*--- Assume now that this boundary marker is straight. As soon as one - AreaElement is found that is not aligend with a Reference then it is - certain that the boundary marker is not straight and one can stop - searching. Another possibility is that this process doesn't own - any nodes of that boundary, in that case we also have to assume the - boundary is straight. - Any boundary type other than SYMMETRY_PLANE or EULER_WALL gets - the value false (or see cases specified in the conditional below) - which could be wrong. ---*/ - bound_is_straight.resize(nMarker); - fill(bound_is_straight.begin(), bound_is_straight.end(), true); - - /*--- Loop over all local markers ---*/ - for (iMarker = 0; iMarker < nMarker; iMarker++) { - Local_TagBound = config->GetMarker_All_TagBound(iMarker); - - /*--- Marker has to be Symmetry or Euler. Additionally marker can't be a - moving surface and Grid Movement Elasticity is forbidden as well. All - other GridMovements are rigid. ---*/ - if ((config->GetMarker_All_KindBC(iMarker) == SYMMETRY_PLANE || - config->GetMarker_All_KindBC(iMarker) == EULER_WALL) && - !config->GetMarker_Moving_Bool(Local_TagBound) && !config->GetMarker_Deform_Mesh_Bool(Local_TagBound)) { - /*--- Loop over all global markers, and find the local-global pair via - matching unique string tags. ---*/ - for (iMarker_Global = 0; iMarker_Global < nMarker_Global; iMarker_Global++) { - Global_TagBound = config->GetMarker_CfgFile_TagBound(iMarker_Global); - if (Local_TagBound == Global_TagBound) { - RefUnitNormal_defined = false; - iVertex = 0; - - while (bound_is_straight[iMarker] && iVertex < nVertex[iMarker]) { - vertex[iMarker][iVertex]->GetNormal(Normal.data()); - UnitNormal = Normal; - - /*--- Compute unit normal. ---*/ - Area = 0.0; - for (iDim = 0; iDim < nDim; iDim++) Area += Normal[iDim] * Normal[iDim]; - Area = sqrt(Area); - - /*--- Negate for outward convention. ---*/ - for (iDim = 0; iDim < nDim; iDim++) UnitNormal[iDim] /= -Area; - - /*--- Check if unit normal is within tolerance of the Reference unit normal. - Reference unit normal = first unit normal found. ---*/ - if (RefUnitNormal_defined) { - for (iDim = 0; iDim < nDim; iDim++) { - if (abs(RefUnitNormal[iDim] - UnitNormal[iDim]) > epsilon) { - bound_is_straight[iMarker] = false; - break; - } - } - } else { - RefUnitNormal = UnitNormal; // deep copy of values - RefUnitNormal_defined = true; - } +void CGeometry::ComputeModifiedSymmetryNormals(const CConfig* config) { + /* Check how many symmetry planes there are and use the first (lowest ID) as the basis to orthogonalize against. + * All nodes that are shared by multiple symmetries have to get a corrected normal. */ + symmetryNormals.resize(nMarker); + std::vector symMarkers; - iVertex++; - } // while iVertex - } // if Local == Global - } // for iMarker_Global - } else { - /*--- Enforce default value: false ---*/ - bound_is_straight[iMarker] = false; - } // if sym or euler ... - } // for iMarker - - /*--- Communicate results and print on screen. ---*/ - if (print_on_screen) { - /*--- Additional vector which can later be MPI::Allreduce(d) to pring the results - on screen as nMarker (local) can vary across ranks. Default 'true' as it can - happen that a local rank does not contain an element of each surface marker. ---*/ - vector bound_is_straight_Global(nMarker_Global, true); - /*--- Match local with global tag bound and fill a Global Marker vector. ---*/ - for (iMarker = 0; iMarker < nMarker; iMarker++) { - Local_TagBound = config->GetMarker_All_TagBound(iMarker); - for (iMarker_Global = 0; iMarker_Global < nMarker_Global; iMarker_Global++) { - Global_TagBound = config->GetMarker_CfgFile_TagBound(iMarker_Global); - - if (Local_TagBound == Global_TagBound) bound_is_straight_Global[iMarker_Global] = bound_is_straight[iMarker]; - - } // for iMarker_Global - } // for iMarker - - vector Buff_Send_isStraight(nMarker_Global), Buff_Recv_isStraight(nMarker_Global); - - /*--- Cast to int as std::vector can be a special construct. MPI handling using - is more straight-forward. ---*/ - for (iMarker_Global = 0; iMarker_Global < nMarker_Global; iMarker_Global++) - Buff_Send_isStraight[iMarker_Global] = static_cast(bound_is_straight_Global[iMarker_Global]); - - /*--- Product of type (bool) is equivalnt to a 'logical and' ---*/ - SU2_MPI::Allreduce(Buff_Send_isStraight.data(), Buff_Recv_isStraight.data(), nMarker_Global, MPI_INT, MPI_PROD, - SU2_MPI::GetComm()); - - /*--- Print results on screen. ---*/ - if (rank == MASTER_NODE) { - for (iMarker_Global = 0; iMarker_Global < nMarker_Global; iMarker_Global++) { - if (config->GetMarker_CfgFile_KindBC(config->GetMarker_CfgFile_TagBound(iMarker_Global)) == SYMMETRY_PLANE || - config->GetMarker_CfgFile_KindBC(config->GetMarker_CfgFile_TagBound(iMarker_Global)) == EULER_WALL) { - cout << "Boundary marker " << config->GetMarker_CfgFile_TagBound(iMarker_Global) << " is"; - if (!static_cast(Buff_Recv_isStraight[iMarker_Global])) cout << " NOT"; - if (nDim == 2) cout << " a single straight." << endl; - if (nDim == 3) cout << " a single plane." << endl; - } // if sym or euler - } // for iMarker_Global - } // if rank==MASTER - } // if print_on_scren + for (auto iMarker = 0u; iMarker < nMarker; ++iMarker) { + if ((config->GetMarker_All_KindBC(iMarker) == SYMMETRY_PLANE) || + (config->GetMarker_All_KindBC(iMarker) == EULER_WALL)) { + symMarkers.push_back(iMarker); + } + } + + /*--- Loop over all markers and find nodes on symmetry planes that are shared with other symmetries. ---*/ + /*--- The first symmetry does not need a corrected normal vector, hence start at 1. ---*/ + for (size_t i = 1; i < symMarkers.size(); ++i) { + const auto iMarker = symMarkers[i]; + + for (auto iVertex = 0ul; iVertex < nVertex[iMarker]; iVertex++) { + const auto iPoint = vertex[iMarker][iVertex]->GetNode(); + + /*--- Halo points do not need to be considered. ---*/ + if (!nodes->GetDomain(iPoint)) continue; + + /*--- Get the vertex normal on the current symmetry. ---*/ + std::array iNormal = {}; + vertex[iMarker][iVertex]->GetNormal(iNormal.data()); + + /*--- Loop over previous symmetries and if this point shares them, make this normal orthogonal to them. ---*/ + bool isShared = false; + + for (size_t j = 0; j < i; ++j) { + const auto jMarker = symMarkers[j]; + const auto jVertex = nodes->GetVertex(iPoint, jMarker); + if (jVertex < 0) continue; + + isShared = true; + + std::array jNormal = {}; + const auto it = symmetryNormals[jMarker].find(jVertex); + + if (it != symmetryNormals[jMarker].end()) { + jNormal = it->second; + } else { + vertex[jMarker][jVertex]->GetNormal(jNormal.data()); + const su2double area = GeometryToolbox::Norm(nDim, jNormal.data()); + for (auto iDim = 0u; iDim < nDim; iDim++) jNormal[iDim] /= area; + } + + const auto proj = GeometryToolbox::DotProduct(nDim, jNormal.data(), iNormal.data()); + for (auto iDim = 0u; iDim < nDim; iDim++) iNormal[iDim] -= proj * jNormal[iDim]; + } + + if (!isShared) continue; + + /*--- Normalize. If the norm is close to zero it means the normal is a linear combination of previous + * normals, in this case we don't need to store the corrected normal, using the original in the gradient + * correction will have no effect since previous corrections will remove components in this direction). ---*/ + const su2double area = GeometryToolbox::Norm(nDim, iNormal.data()); + if (area > EPS) { + for (auto iDim = 0u; iDim < nDim; iDim++) iNormal[iDim] /= area; + symmetryNormals[iMarker][iVertex] = iNormal; + } + } + } } void CGeometry::ComputeSurf_Curvature(CConfig* config) { diff --git a/Common/src/geometry/CMultiGridGeometry.cpp b/Common/src/geometry/CMultiGridGeometry.cpp index 5ae064d778f..00cc4ebf009 100644 --- a/Common/src/geometry/CMultiGridGeometry.cpp +++ b/Common/src/geometry/CMultiGridGeometry.cpp @@ -108,17 +108,27 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry* fine_grid, CConfig* config, un This can be improved. If there is only a marker, it is a good candidate for agglomeration ---*/ - if (counter == 1) agglomerate_seed = true; + if (counter == 1) { + agglomerate_seed = true; - /*--- If there are two markers, we will aglomerate if any of the + /*--- Euler walls can be curved and agglomerating them leads to difficulties ---*/ + if (config->GetMarker_All_KindBC(marker_seed) == EULER_WALL) agglomerate_seed = false; + } + /*--- If there are two markers, we will agglomerate if any of the markers is SEND_RECEIVE ---*/ if (counter == 2) { agglomerate_seed = (config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) || (config->GetMarker_All_KindBC(copy_marker[1]) == SEND_RECEIVE); + + /* --- Euler walls can also not be agglomerated when the point has 2 markers ---*/ + if ((config->GetMarker_All_KindBC(copy_marker[0]) == EULER_WALL) || + (config->GetMarker_All_KindBC(copy_marker[1]) == EULER_WALL)) { + agglomerate_seed = false; + } } - /*--- If there are more than 2 markers, the aglomeration will be discarted ---*/ + /*--- If there are more than 2 markers, the aglomeration will be discarded ---*/ if (counter > 2) agglomerate_seed = false; @@ -220,7 +230,7 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry* fine_grid, CConfig* config, un const auto iPoint = MGQueue_InnerCV.NextCV(); iteration++; - /*--- If the element has not being previously agglomerated, belongs to the physical domain, + /*--- If the element has not been previously agglomerated, belongs to the physical domain, and satisfies several geometrical criteria then the seed CV is accepted for agglomeration. ---*/ if ((!fine_grid->nodes->GetAgglomerate(iPoint)) && (fine_grid->nodes->GetDomain(iPoint)) && @@ -438,7 +448,6 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry* fine_grid, CConfig* config, un /*--- Be careful, it is possible that a node changes the agglomeration configuration, the priority is always when receiving the information. ---*/ - fine_grid->nodes->SetParent_CV(iPoint_Fine, iPoint_Coarse); nodes->SetChildren_CV(iPoint_Coarse, nChildren_MPI[iPoint_Coarse], iPoint_Fine); nChildren_MPI[iPoint_Coarse]++; @@ -501,7 +510,7 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark const CConfig* config) const { bool agglomerate_CV = false; - /*--- Basic condition, the point has not being previously agglomerated, it belongs to the domain, + /*--- Basic condition, the point has not been previously agglomerated, it belongs to the domain, and has passed some basic geometrical checks. ---*/ if ((!fine_grid->nodes->GetAgglomerate(CVPoint)) && (fine_grid->nodes->GetDomain(CVPoint)) && @@ -511,6 +520,7 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark if (fine_grid->nodes->GetBoundary(CVPoint)) { /*--- Identify the markers of the vertex that we want to agglomerate ---*/ + // count number of markers on the agglomeration candidate int counter = 0; unsigned short copy_marker[3] = {}; for (auto jMarker = 0u; jMarker < fine_grid->GetnMarker() && counter < 3; jMarker++) { @@ -526,13 +536,22 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark /*--- Only one marker in the vertex that is going to be aglomerated ---*/ if (counter == 1) { - /*--- We agglomerate if there is only a marker and is the same marker as the seed marker ---*/ - + /*--- We agglomerate if there is only one marker and it is the same marker as the seed marker ---*/ + // note that this should be the same marker id, not just the same marker type if (copy_marker[0] == marker_seed) agglomerate_CV = true; /*--- If there is only one marker, but the marker is the SEND_RECEIVE ---*/ - if (config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) agglomerate_CV = true; + if (config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) { + agglomerate_CV = true; + } + + if ((config->GetMarker_All_KindBC(marker_seed) == SYMMETRY_PLANE) || + (config->GetMarker_All_KindBC(marker_seed) == EULER_WALL)) { + if (config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) { + agglomerate_CV = false; + } + } } /*--- If there are two markers in the vertex that is going to be aglomerated ---*/ @@ -541,20 +560,25 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark /*--- First we verify that the seed is a physical boundary ---*/ if (config->GetMarker_All_KindBC(marker_seed) != SEND_RECEIVE) { - /*--- Then we check that one of the marker is equal to the seed marker, and the other is send/receive ---*/ + /*--- Then we check that one of the markers is equal to the seed marker, and the other is send/receive ---*/ if (((copy_marker[0] == marker_seed) && (config->GetMarker_All_KindBC(copy_marker[1]) == SEND_RECEIVE)) || - ((config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) && (copy_marker[1] == marker_seed))) + ((config->GetMarker_All_KindBC(copy_marker[0]) == SEND_RECEIVE) && (copy_marker[1] == marker_seed))) { agglomerate_CV = true; + } } } - } - - /*--- If the element belongs to the domain, it is allways aglomerated. ---*/ - + /*--- If the element belongs to the domain, it is always agglomerated. ---*/ else { agglomerate_CV = true; + + // actually, for symmetry (and possibly other cells) we only agglomerate cells that are on the marker + // at this point, the seed was on the boundary and the CV was not. so we check if the seed is a symmetry + if ((config->GetMarker_All_KindBC(marker_seed) == SYMMETRY_PLANE) || + (config->GetMarker_All_KindBC(marker_seed) == EULER_WALL)) { + agglomerate_CV = false; + } } } @@ -900,44 +924,47 @@ void CMultiGridGeometry::SetControlVolume(const CGeometry* fine_grid, unsigned s END_SU2_OMP_SAFE_GLOBAL_ACCESS } -void CMultiGridGeometry::SetBoundControlVolume(const CGeometry* fine_grid, unsigned short action) { - BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { - unsigned long iCoarsePoint, iFinePoint, FineVertex, iVertex; - unsigned short iMarker, iChildren, iDim; - su2double *Normal, Area, *NormalFace = nullptr; - - Normal = new su2double[nDim]; +void CMultiGridGeometry::SetBoundControlVolume(const CGeometry* fine_grid, const CConfig* config, + unsigned short action) { + unsigned long iCoarsePoint, iFinePoint, FineVertex, iVertex; + su2double Normal[MAXNDIM] = {0.0}, Area, *NormalFace = nullptr; - if (action != ALLOCATE) { - for (iMarker = 0; iMarker < nMarker; iMarker++) - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) vertex[iMarker][iVertex]->SetZeroValues(); - } + if (action != ALLOCATE) { + SU2_OMP_FOR_DYN(1) + for (auto iMarker = 0; iMarker < nMarker; iMarker++) + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) vertex[iMarker][iVertex]->SetZeroValues(); + END_SU2_OMP_FOR + } - for (iMarker = 0; iMarker < nMarker; iMarker++) - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { - iCoarsePoint = vertex[iMarker][iVertex]->GetNode(); - for (iChildren = 0; iChildren < nodes->GetnChildren_CV(iCoarsePoint); iChildren++) { - iFinePoint = nodes->GetChildren_CV(iCoarsePoint, iChildren); - if (fine_grid->nodes->GetVertex(iFinePoint, iMarker) != -1) { - FineVertex = fine_grid->nodes->GetVertex(iFinePoint, iMarker); - fine_grid->vertex[iMarker][FineVertex]->GetNormal(Normal); - vertex[iMarker][iVertex]->AddNormal(Normal); - } + SU2_OMP_FOR_DYN(1) + for (auto iMarker = 0; iMarker < nMarker; iMarker++) { + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { + iCoarsePoint = vertex[iMarker][iVertex]->GetNode(); + for (auto iChildren = 0; iChildren < nodes->GetnChildren_CV(iCoarsePoint); iChildren++) { + iFinePoint = nodes->GetChildren_CV(iCoarsePoint, iChildren); + if (fine_grid->nodes->GetVertex(iFinePoint, iMarker) != -1) { + FineVertex = fine_grid->nodes->GetVertex(iFinePoint, iMarker); + fine_grid->vertex[iMarker][FineVertex]->GetNormal(Normal); + vertex[iMarker][iVertex]->AddNormal(Normal); } } + } + } + END_SU2_OMP_FOR - delete[] Normal; - - /*--- Check if there is a normal with null area ---*/ - for (iMarker = 0; iMarker < nMarker; iMarker++) - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { - NormalFace = vertex[iMarker][iVertex]->GetNormal(); - Area = GeometryToolbox::Norm(nDim, NormalFace); - if (Area == 0.0) - for (iDim = 0; iDim < nDim; iDim++) NormalFace[iDim] = EPS * EPS; - } + /*--- Check if there is a normal with null area ---*/ + SU2_OMP_FOR_DYN(1) + for (auto iMarker = 0; iMarker < nMarker; iMarker++) { + for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { + NormalFace = vertex[iMarker][iVertex]->GetNormal(); + Area = GeometryToolbox::Norm(nDim, NormalFace); + if (Area == 0.0) + for (auto iDim = 0; iDim < nDim; iDim++) NormalFace[iDim] = EPS * EPS; + } } - END_SU2_OMP_SAFE_GLOBAL_ACCESS + END_SU2_OMP_FOR + + SU2_OMP_SAFE_GLOBAL_ACCESS(ComputeModifiedSymmetryNormals(config);) } void CMultiGridGeometry::SetCoord(const CGeometry* fine_grid) { diff --git a/Common/src/geometry/CPhysicalGeometry.cpp b/Common/src/geometry/CPhysicalGeometry.cpp index 29f10a492b3..a069424c666 100644 --- a/Common/src/geometry/CPhysicalGeometry.cpp +++ b/Common/src/geometry/CPhysicalGeometry.cpp @@ -4124,7 +4124,7 @@ void CPhysicalGeometry::Check_IntElem_Orientation(const CConfig* config) { if (tria_flip + quad_flip + tet_flip + hexa_flip + pyram_flip + prism_flip + quad_error + pyram_error + prism_error + hexa_error == 0) { - cout << "All volume elements are correctly orientend." << endl; + cout << "All volume elements are correctly oriented." << endl; } } } @@ -4260,7 +4260,7 @@ void CPhysicalGeometry::Check_BoundElem_Orientation(const CConfig* config) { } if (line_flip + tria_flip + quad_flip + quad_error == 0) { - cout << "All surface elements are correctly orientend." << endl; + cout << "All surface elements are correctly oriented." << endl; } } } @@ -7283,6 +7283,8 @@ void CPhysicalGeometry::SetBoundControlVolume(const CConfig* config, unsigned sh } } END_SU2_OMP_FOR + + SU2_OMP_SAFE_GLOBAL_ACCESS(ComputeModifiedSymmetryNormals(config);) } void CPhysicalGeometry::VisualizeControlVolume(const CConfig* config) const { @@ -9558,7 +9560,7 @@ su2double CPhysicalGeometry::Compute_Length(su2double* Plane_P0, su2double* Plan su2double DeltaZ, DeltaX; /*--- Not that in a symmetry plane configuration there is an extra edge that connects - the two extremes, and we really don't now the curve orientation. We will evaluate + the two extremes, and we really don't know the curve orientation. We will evaluate both distance and picked the smallest one ---*/ Length_Value = 0.0; diff --git a/Common/src/grid_movement/CVolumetricMovement.cpp b/Common/src/grid_movement/CVolumetricMovement.cpp index a3f91fa36c1..efd2a6f2b74 100644 --- a/Common/src/grid_movement/CVolumetricMovement.cpp +++ b/Common/src/grid_movement/CVolumetricMovement.cpp @@ -98,7 +98,7 @@ void CVolumetricMovement::UpdateMultiGrid(CGeometry** geometry, CConfig* config) for (iMGlevel = 1; iMGlevel <= nMGlevel; iMGlevel++) { iMGfine = iMGlevel - 1; geometry[iMGlevel]->SetControlVolume(geometry[iMGfine], UPDATE); - geometry[iMGlevel]->SetBoundControlVolume(geometry[iMGfine], UPDATE); + geometry[iMGlevel]->SetBoundControlVolume(geometry[iMGfine], config, UPDATE); geometry[iMGlevel]->SetCoord(geometry[iMGfine]); if (config->GetGrid_Movement()) geometry[iMGlevel]->SetRestricted_GridVelocity(geometry[iMGfine]); } diff --git a/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp b/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp index 5d0abbb8537..f03668cafa1 100644 --- a/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp +++ b/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp @@ -27,7 +27,12 @@ * License along with SU2. If not, see . */ +#include +#include + #include "../../../Common/include/parallelization/omp_structure.hpp" +#include "../../../Common/include/toolboxes/geometry_toolbox.hpp" +#include "correctGradientsSymmetry.hpp" namespace detail { @@ -49,19 +54,13 @@ namespace detail { * \param[in] field - Generic object implementing operator (iPoint, iVar). * \param[in] varBegin - Index of first variable for which to compute the gradient. * \param[in] varEnd - Index of last variable for which to compute the gradient. + * \param[in] idxVel - Index of velocity, or -1 if no velocity present. * \param[out] gradient - Generic object implementing operator (iPoint, iVar, iDim). */ -template -void computeGradientsGreenGauss(CSolver* solver, - MPI_QUANTITIES kindMpiComm, - PERIODIC_QUANTITIES kindPeriodicComm, - CGeometry& geometry, - const CConfig& config, - const FieldType& field, - size_t varBegin, - size_t varEnd, - GradientType& gradient) -{ +template +void computeGradientsGreenGauss(CSolver* solver, MPI_QUANTITIES kindMpiComm, PERIODIC_QUANTITIES kindPeriodicComm, + CGeometry& geometry, const CConfig& config, const FieldType& field, + const size_t varBegin, const size_t varEnd, const int idxVel, GradientType& gradient) { const size_t nPointDomain = geometry.GetnPointDomain(); #ifdef HAVE_OMP @@ -70,11 +69,12 @@ void computeGradientsGreenGauss(CSolver* solver, const auto chunkSize = computeStaticChunkSize(nPointDomain, omp_get_max_threads(), OMP_MAX_CHUNK); #endif + static constexpr size_t MAXNVAR = 20; + /*--- For each (non-halo) volume integrate over its faces (edges). ---*/ SU2_OMP_FOR_DYN(chunkSize) - for (size_t iPoint = 0; iPoint < nPointDomain; ++iPoint) - { + for (size_t iPoint = 0; iPoint < nPointDomain; ++iPoint) { auto nodes = geometry.nodes; /*--- Cannot preaccumulate if hybrid parallel due to shared reading. ---*/ @@ -82,69 +82,59 @@ void computeGradientsGreenGauss(CSolver* solver, AD::SetPreaccIn(nodes->GetVolume(iPoint)); AD::SetPreaccIn(nodes->GetPeriodicVolume(iPoint)); - for (size_t iVar = varBegin; iVar < varEnd; ++iVar) - AD::SetPreaccIn(field(iPoint,iVar)); + for (size_t iVar = varBegin; iVar < varEnd; ++iVar) AD::SetPreaccIn(field(iPoint, iVar)); /*--- Clear the gradient. --*/ for (size_t iVar = varBegin; iVar < varEnd; ++iVar) - for (size_t iDim = 0; iDim < nDim; ++iDim) - gradient(iPoint, iVar, iDim) = 0.0; + for (size_t iDim = 0; iDim < nDim; ++iDim) gradient(iPoint, iVar, iDim) = 0.0; /*--- Handle averaging and division by volume in one constant. ---*/ - su2double halfOnVol = 0.5 / (nodes->GetVolume(iPoint)+nodes->GetPeriodicVolume(iPoint)); + su2double halfOnVol = 0.5 / (nodes->GetVolume(iPoint) + nodes->GetPeriodicVolume(iPoint)); /*--- Add a contribution due to each neighbor. ---*/ - for (size_t iNeigh = 0; iNeigh < nodes->GetnPoint(iPoint); ++iNeigh) - { - size_t iEdge = nodes->GetEdge(iPoint,iNeigh); - size_t jPoint = nodes->GetPoint(iPoint,iNeigh); + for (size_t iNeigh = 0; iNeigh < nodes->GetnPoint(iPoint); ++iNeigh) { + size_t iEdge = nodes->GetEdge(iPoint, iNeigh); + size_t jPoint = nodes->GetPoint(iPoint, iNeigh); /*--- Determine if edge points inwards or outwards of iPoint. * If inwards we need to flip the area vector. ---*/ - su2double dir = (iPoint < jPoint)? 1.0 : -1.0; + su2double dir = (iPoint < jPoint) ? 1.0 : -1.0; su2double weight = dir * halfOnVol; const auto area = geometry.edges->GetNormal(iEdge); AD::SetPreaccIn(area, nDim); - for (size_t iVar = varBegin; iVar < varEnd; ++iVar) - { - AD::SetPreaccIn(field(jPoint,iVar)); - - su2double flux = weight * (field(iPoint,iVar) + field(jPoint,iVar)); + for (size_t iVar = varBegin; iVar < varEnd; ++iVar) { + AD::SetPreaccIn(field(jPoint, iVar)); + su2double flux = weight * (field(iPoint, iVar) + field(jPoint, iVar)); - for (size_t iDim = 0; iDim < nDim; ++iDim) - gradient(iPoint, iVar, iDim) += flux * area[iDim]; + for (size_t iDim = 0; iDim < nDim; ++iDim) gradient(iPoint, iVar, iDim) += flux * area[iDim]; } - } for (size_t iVar = varBegin; iVar < varEnd; ++iVar) - for (size_t iDim = 0; iDim < nDim; ++iDim) - AD::SetPreaccOut(gradient(iPoint,iVar,iDim)); + for (size_t iDim = 0; iDim < nDim; ++iDim) AD::SetPreaccOut(gradient(iPoint, iVar, iDim)); AD::EndPreacc(); } END_SU2_OMP_FOR - /*--- Add boundary fluxes. ---*/ + su2double flux[MAXNVAR] = {0.0}; - for (size_t iMarker = 0; iMarker < geometry.GetnMarker(); ++iMarker) - { + /*--- Add edges of markers that contribute to the gradients ---*/ + for (size_t iMarker = 0; iMarker < geometry.GetnMarker(); ++iMarker) { if ((config.GetMarker_All_KindBC(iMarker) != INTERNAL_BOUNDARY) && (config.GetMarker_All_KindBC(iMarker) != NEARFIELD_BOUNDARY) && - (config.GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) - { + (config.GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) { /*--- Work is shared in inner loop as two markers * may try to update the same point. ---*/ SU2_OMP_FOR_STAT(32) - for (size_t iVertex = 0; iVertex < geometry.GetnVertex(iMarker); ++iVertex) - { + for (size_t iVertex = 0; iVertex < geometry.GetnVertex(iMarker); ++iVertex) { size_t iPoint = geometry.vertex[iMarker][iVertex]->GetNode(); auto nodes = geometry.nodes; @@ -153,20 +143,25 @@ void computeGradientsGreenGauss(CSolver* solver, if (!nodes->GetDomain(iPoint)) continue; su2double volume = nodes->GetVolume(iPoint) + nodes->GetPeriodicVolume(iPoint); - const auto area = geometry.vertex[iMarker][iVertex]->GetNormal(); for (size_t iVar = varBegin; iVar < varEnd; iVar++) - { - su2double flux = field(iPoint,iVar) / volume; - - for (size_t iDim = 0; iDim < nDim; iDim++) - gradient(iPoint, iVar, iDim) -= flux * area[iDim]; - } - } + flux[iVar] = field(iPoint,iVar) / volume; + + for (size_t iVar = varBegin; iVar < varEnd; iVar++) { + for (size_t iDim = 0; iDim < nDim; iDim++) { + gradient(iPoint, iVar, iDim) -= flux[iVar] * area[iDim]; + } + } // loop over variables + } // vertices END_SU2_OMP_FOR - } - } + } //found right marker + } // iMarkers + + + /*--- Compute the corrections for symmetry planes and Euler walls. ---*/ + + correctGradientsSymmetry(geometry, config, varBegin, varEnd, idxVel, gradient); /*--- If no solver was provided we do not communicate ---*/ @@ -174,8 +169,7 @@ void computeGradientsGreenGauss(CSolver* solver, /*--- Account for periodic contributions. ---*/ - for (size_t iPeriodic = 1; iPeriodic <= config.GetnMarker_Periodic()/2; ++iPeriodic) - { + for (size_t iPeriodic = 1; iPeriodic <= config.GetnMarker_Periodic() / 2; ++iPeriodic) { solver->InitiatePeriodicComms(&geometry, &config, iPeriodic, kindPeriodicComm); solver->CompletePeriodicComms(&geometry, &config, iPeriodic, kindPeriodicComm); } @@ -184,35 +178,30 @@ void computeGradientsGreenGauss(CSolver* solver, solver->InitiateComms(&geometry, &config, kindMpiComm); solver->CompleteComms(&geometry, &config, kindMpiComm); - } -} // end namespace +} // namespace detail + + /*! * \brief Instantiations for 2D and 3D. * \ingroup FvmAlgos */ -template -void computeGradientsGreenGauss(CSolver* solver, - MPI_QUANTITIES kindMpiComm, - PERIODIC_QUANTITIES kindPeriodicComm, - CGeometry& geometry, - const CConfig& config, - const FieldType& field, - size_t varBegin, - size_t varEnd, - GradientType& gradient) { +template +void computeGradientsGreenGauss(CSolver* solver, MPI_QUANTITIES kindMpiComm, PERIODIC_QUANTITIES kindPeriodicComm, + CGeometry& geometry, const CConfig& config, const FieldType& field, + const size_t varBegin, const size_t varEnd, const int idxVel, GradientType& gradient) { switch (geometry.GetnDim()) { - case 2: - detail::computeGradientsGreenGauss<2>(solver, kindMpiComm, kindPeriodicComm, geometry, - config, field, varBegin, varEnd, gradient); - break; - case 3: - detail::computeGradientsGreenGauss<3>(solver, kindMpiComm, kindPeriodicComm, geometry, - config, field, varBegin, varEnd, gradient); - break; - default: - SU2_MPI::Error("Too many dimensions to compute gradients.", CURRENT_FUNCTION); - break; + case 2: + detail::computeGradientsGreenGauss<2>(solver, kindMpiComm, kindPeriodicComm, geometry, config, field, varBegin, + varEnd, idxVel, gradient); + break; + case 3: + detail::computeGradientsGreenGauss<3>(solver, kindMpiComm, kindPeriodicComm, geometry, config, field, varBegin, + varEnd, idxVel, gradient); + break; + default: + SU2_MPI::Error("Too many dimensions to compute gradients.", CURRENT_FUNCTION); + break; } } diff --git a/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp b/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp index 29daee7f06e..ef476e7a3df 100644 --- a/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp +++ b/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp @@ -28,6 +28,7 @@ #include "../../../Common/include/parallelization/omp_structure.hpp" #include "../../../Common/include/toolboxes/geometry_toolbox.hpp" +#include "correctGradientsSymmetry.hpp" namespace detail { @@ -175,6 +176,7 @@ FORCEINLINE void solveLeastSquares(size_t iPoint, * \param[in] field - Generic object implementing operator (iPoint, iVar). * \param[in] varBegin - Index of first variable for which to compute the gradient. * \param[in] varEnd - Index of last variable for which to compute the gradient. + * \param[in] idxVel - Index to velocity, -1 if no velocity is present in the solver. * \param[out] gradient - Generic object implementing operator (iPoint, iVar, iDim). * \param[out] Rmatrix - Generic object implementing operator (iPoint, iDim, iDim). */ @@ -186,8 +188,9 @@ void computeGradientsLeastSquares(CSolver* solver, const CConfig& config, bool weighted, const FieldType& field, - size_t varBegin, - size_t varEnd, + const size_t varBegin, + const size_t varEnd, + const int idxVel, GradientType& gradient, RMatrixType& Rmatrix) { @@ -312,6 +315,10 @@ void computeGradientsLeastSquares(CSolver* solver, END_SU2_OMP_FOR } + /* --- compute the corrections for symmetry planes and Euler walls. --- */ + + correctGradientsSymmetry(geometry, config, varBegin, varEnd, idxVel, gradient); + /*--- If no solver was provided we do not communicate ---*/ if (solver != nullptr) @@ -337,18 +344,19 @@ void computeGradientsLeastSquares(CSolver* solver, const CConfig& config, bool weighted, const FieldType& field, - size_t varBegin, - size_t varEnd, + const size_t varBegin, + const size_t varEnd, + const int idxVel, GradientType& gradient, RMatrixType& Rmatrix) { switch (geometry.GetnDim()) { case 2: detail::computeGradientsLeastSquares<2>(solver, kindMpiComm, kindPeriodicComm, geometry, config, - weighted, field, varBegin, varEnd, gradient, Rmatrix); + weighted, field, varBegin, varEnd, idxVel, gradient, Rmatrix); break; case 3: detail::computeGradientsLeastSquares<3>(solver, kindMpiComm, kindPeriodicComm, geometry, config, - weighted, field, varBegin, varEnd, gradient, Rmatrix); + weighted, field, varBegin, varEnd, idxVel, gradient, Rmatrix); break; default: SU2_MPI::Error("Too many dimensions to compute gradients.", CURRENT_FUNCTION); diff --git a/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp b/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp new file mode 100644 index 00000000000..a17ce827184 --- /dev/null +++ b/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp @@ -0,0 +1,146 @@ +/*! + * \file correctGradientsSymmetry.hpp + * \brief Implements the symmetry boundary conditions for the gradient computations. + * \author N. Beishuizen + * \version 8.0.1 "Harrier" + * + * SU2 Project Website: https://su2code.github.io + * + * The SU2 Project is maintained by the SU2 Foundation + * (http://su2foundation.org) + * + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +#include +#include + +#include "../../../Common/include/parallelization/omp_structure.hpp" +#include "../../../Common/include/toolboxes/geometry_toolbox.hpp" + +namespace detail { +/*! + * \brief Correct the gradient on a symmetry plane. + * \ingroup FvmAlgos + * \param[in] varBegin - Start of the variables. + * \param[in] varEnd - End of the variables. + * \param[in] idxVel - Variable index where velocity gradients start (-1 if all variables are scalars). + * \param[in] n - Normal direction. + * \param[in, out] gradients - The gradients to be modified. + */ +template +inline void correctGradient(const size_t varBegin, const size_t varEnd, const int idxVel, const Scalar* n, + Matrix&& gradients) { + + /*--- First we correct the part that involves velocities. ---*/ + + if (idxVel >= static_cast(varBegin) && idxVel + nDim <= varEnd) { + /*--- Normal gradient of velocity components and gradient of normal velocity. ---*/ + su2double normalGrad[nDim] = {}, gradNormalVel[nDim] = {}; + + for (size_t iDim = 0; iDim < nDim; iDim++) { + normalGrad[iDim] = GeometryToolbox::DotProduct(nDim, gradients[idxVel + iDim], n); + + for (size_t jDim = 0; jDim < nDim; jDim++) { + gradNormalVel[jDim] += n[iDim] * gradients[idxVel + iDim][jDim]; + } + } + + /*--- Normal gradient of the normal velocity. ---*/ + const su2double normalGradNormalVel = GeometryToolbox::DotProduct(nDim, n, gradNormalVel); + + /*--- Remove the tangential projection (I - n.n^T) of the normal gradients. + * And the normal projection (n.n^T) of the tangential gradients. + * dV = dV - (I - n.n^T) dV n.n^T - n.n^T dV (I - n.n^T) ---*/ + + for (size_t iDim = 0; iDim < nDim; iDim++) { + for (size_t jDim = 0; jDim < nDim; jDim++) { + gradients[idxVel + iDim][jDim] -= normalGrad[iDim] * n[jDim] + n[iDim] * gradNormalVel[jDim]; + gradients[idxVel + iDim][jDim] += 2 * n[iDim] * normalGradNormalVel * n[jDim]; + } + } + } + + /*--- Remove the normal component for all scalars (excluding velocities). ---*/ + + for (auto iVar = varBegin; iVar < varEnd; iVar++) { + if (idxVel != -1 && static_cast(iVar) >= idxVel && iVar < idxVel + nDim) continue; + + const su2double normalGrad = GeometryToolbox::DotProduct(nDim, n, gradients[iVar]); + for (size_t iDim = 0; iDim < nDim; iDim++) { + gradients[iVar][iDim] -= normalGrad * n[iDim]; + } + } +} +} + +/*! + * \brief Correct gradients on symmetry and Euler (slip) markers to respect the conditions: + * 1. n.grad(phi) = 0 + * 2. n.grad(v.t) = 0 + * 3. t.grad(v.n) = 0 + * \note See Blazek eq. 8.40. + * \ingroup FvmAlgos + * \param[in] geometry - Geometric grid properties. + * \param[in] config - Configuration of the problem, used to identify types of boundaries. + * \param[in] varBegin - Index of first variable for which to compute the gradient. + * \param[in] varEnd - Index of last variable for which to compute the gradient. + * \param[in] idxVel - Index to velocity, -1 if no velocity is present in the solver. + * \param[in,out] gradient - Generic object implementing operator (iPoint, iVar, iDim). + */ +template +void correctGradientsSymmetry(CGeometry& geometry, const CConfig& config, const size_t varBegin, + const size_t varEnd, const int idxVel, GradientType& gradient) { + + /*--- Check how many symmetry planes there are. ---*/ + std::vector symMarkers; + for (auto iMarker = 0u; iMarker < geometry.GetnMarker(); ++iMarker) { + if (config.GetMarker_All_KindBC(iMarker) == SYMMETRY_PLANE || + config.GetMarker_All_KindBC(iMarker) == EULER_WALL) { + symMarkers.push_back(iMarker); + } + } + + for (const auto iMarker : symMarkers) { + SU2_OMP_FOR_STAT(32) + for (size_t iVertex = 0; iVertex < geometry.GetnVertex(iMarker); ++iVertex) { + + const auto iPoint = geometry.vertex[iMarker][iVertex]->GetNode(); + + /*--- Get the normal of the current symmetry. This may be the original normal of the vertex + * or a modified normal if there are intersecting symmetries. ---*/ + + su2double unitNormal[nDim] = {}; + const auto it = geometry.symmetryNormals[iMarker].find(iVertex); + + if (it != geometry.symmetryNormals[iMarker].end()) { + for (auto iDim = 0u; iDim < nDim; iDim++) unitNormal[iDim] = it->second[iDim]; + } else { + geometry.vertex[iMarker][iVertex]->GetNormal(unitNormal); + const su2double area = GeometryToolbox::Norm(nDim, unitNormal); + for (auto iDim = 0u; iDim < nDim; iDim++) unitNormal[iDim] /= area; + } + + detail::correctGradient(varBegin, varEnd, idxVel, unitNormal, gradient[iPoint]); + + } // loop over vertices + END_SU2_OMP_FOR + } // markers + +} + diff --git a/SU2_CFD/include/interfaces/CInterface.hpp b/SU2_CFD/include/interfaces/CInterface.hpp index a86db24b12a..9c10f8c4dfe 100644 --- a/SU2_CFD/include/interfaces/CInterface.hpp +++ b/SU2_CFD/include/interfaces/CInterface.hpp @@ -159,14 +159,14 @@ class CInterface { const CConfig *target_config, unsigned long Marker_Target, unsigned long Vertex_Target, unsigned long Point_Target) = 0; - /*! - * \brief A virtual member. - * \param[in] target_solution - Solution from the target mesh. - * \param[in] target_solution - Solution from the target mesh. - * \param[in] donor_zone - Index of the donorZone. - */ - inline virtual void SetAverageValues(CSolver *donor_solution, CSolver *target_solution, - unsigned short donorZone) { } + // /*! + // * \brief A virtual member. + // * \param[in] target_solution - Solution from the target mesh. + // * \param[in] target_solution - Solution from the target mesh. + // * \param[in] donor_zone - Index of the donorZone. + // */ + // inline virtual void SetAverageValues(CSolver *donor_solution, CSolver *target_solution, + // unsigned short donorZone) { } /*! * \brief A virtual member. @@ -185,6 +185,15 @@ class CInterface { */ inline virtual void SetSpanWiseLevels(const CConfig *donor_config, const CConfig *target_config) { } + /*! + * \brief A virtual member. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_zone - Index of the donorZone. + */ + inline virtual void SetAverageValues(CSolver *donor_solution, CSolver *target_solution, + unsigned short donorZone) { } + /*! * \brief Transfer pre-processing for the mixing plane inteface. * \param[in] donor_geometry - Geometry of the donor mesh. @@ -207,7 +216,7 @@ class CInterface { void AllgatherAverage(CSolver *donor_solution, CSolver *target_solution, CGeometry *donor_geometry, CGeometry *target_geometry, const CConfig *donor_config, const CConfig *target_config, unsigned short iMarkerInt); - + /*! * \brief Interpolate data and scatter it into different processors, for matching meshes. * \param[in] donor_solution - Solution from the donor mesh. diff --git a/SU2_CFD/include/numerics/flow/convection/hllc.hpp b/SU2_CFD/include/numerics/flow/convection/hllc.hpp index 5cac798825e..62d46a7d211 100644 --- a/SU2_CFD/include/numerics/flow/convection/hllc.hpp +++ b/SU2_CFD/include/numerics/flow/convection/hllc.hpp @@ -49,7 +49,7 @@ class CUpwHLLC_Flow final : public CNumerics { su2double sq_velRoe, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeProjVelocity, ProjInterfaceVel; - su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho, kappa; + su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho; su2double Omega, RHO, OmegaSM; su2double *dSm_dU, *dPI_dU, *drhoStar_dU, *dpStar_dU, *dEStar_dU; @@ -102,7 +102,7 @@ class CUpwGeneralHLLC_Flow final : public CNumerics { su2double sq_velRoe, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeProjVelocity, ProjInterfaceVel; su2double Kappa_i, Kappa_j, Chi_i, Chi_j, RoeKappa, RoeChi, RoeKappaStaticEnthalpy; - su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho, kappa; + su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho; su2double Omega, RHO, OmegaSM; su2double *dSm_dU, *dPI_dU, *drhoStar_dU, *dpStar_dU, *dEStar_dU; diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index bdf9d0c6fc4..ce75b38f115 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -77,9 +77,41 @@ class CSourceBase_TurbSA : public CNumerics { const FlowIndices idx; /*!< \brief Object to manage the access to the flow primitives. */ const SA_ParsedOptions options; /*!< \brief Struct with SA options. */ + const bool axisymmetric = false; bool transition_LM; + /*! + * \brief Add contribution from diffusion due to axisymmetric formulation to 2D residual + */ + inline void ResidualAxisymmetricDiffusion(su2double sigma) { + if (Coord_i[1] < EPS) return; + + const su2double yinv = 1.0 / Coord_i[1]; + const su2double& nue = ScalarVar_i[0]; + + const auto& density = V_i[idx.Density()]; + const auto& laminar_viscosity = V_i[idx.LaminarViscosity()]; + + const su2double nu = laminar_viscosity/density; + + su2double nu_e; + + if (options.version == SA_OPTIONS::NEG && nue < 0.0) { + const su2double cn1 = 16.0; + const su2double Xi = nue / nu; + const su2double fn = (cn1 + Xi*Xi*Xi) / (cn1 - Xi*Xi*Xi); + nu_e = nu + fn * nue; + } else { + nu_e = nu + nue; + } + + /* Diffusion source term */ + const su2double dv_axi = (1.0/sigma)*nu_e*ScalarVar_Grad_i[0][1]; + + Residual += yinv * dv_axi * Volume; + } + public: /*! * \brief Constructor of the class. @@ -90,6 +122,7 @@ class CSourceBase_TurbSA : public CNumerics { : CNumerics(nDim, 1, config), idx(nDim, config->GetnSpecies()), options(config->GetSAParsedOptions()), + axisymmetric(config->GetAxisymmetric()), transition_LM(config->GetKind_Trans_Model() == TURB_TRANS_MODEL::LM) { /*--- Setup the Jacobian pointer, we need to return su2double** but we know * the Jacobian is 1x1 so we use this trick to avoid heap allocation. ---*/ @@ -217,6 +250,9 @@ class CSourceBase_TurbSA : public CNumerics { SourceTerms::get(ScalarVar_i[0], var, Production, Destruction, CrossProduction, Jacobian_i[0]); Residual = (Production - Destruction + CrossProduction) * Volume; + + if (axisymmetric) ResidualAxisymmetricDiffusion(var.sigma); + Jacobian_i[0] *= Volume; } @@ -520,6 +556,19 @@ class CCompressibilityCorrection final : public ParentClass { const su2double d_CompCorrection = 2.0 * c5 * ScalarVar_i[0] / pow(sound_speed, 2) * aux_cc * Volume; const su2double CompCorrection = 0.5 * ScalarVar_i[0] * d_CompCorrection; + /*--- Axisymmetric contribution ---*/ + if (this->axisymmetric && this->Coord_i[1] > EPS) { + const su2double yinv = 1.0 / this->Coord_i[1]; + const su2double nue = ScalarVar_i[0]; + const su2double v = V_i[idx.Velocity() + 1]; + + const su2double d_axiCorrection = 2.0 * c5 * nue * pow(v * yinv / sound_speed, 2) * Volume; + const su2double axiCorrection = 0.5 * nue * d_axiCorrection; + + this->Residual -= axiCorrection; + this->Jacobian_i[0] -= d_axiCorrection; + } + this->Residual -= CompCorrection; this->Jacobian_i[0] -= d_CompCorrection; @@ -740,6 +789,7 @@ class CSourcePieceWise_TurbSST final : public CNumerics { AD::SetPreaccIn(Vorticity_i, 3); AD::SetPreaccIn(V_i[idx.Density()], V_i[idx.LaminarViscosity()], V_i[idx.EddyViscosity()]); AD::SetPreaccIn(V_i[idx.Velocity() + 1]); + AD::SetPreaccIn(V_i[idx.SoundSpeed()]); Density_i = V_i[idx.Density()]; Laminar_Viscosity_i = V_i[idx.LaminarViscosity()]; @@ -778,6 +828,8 @@ class CSourcePieceWise_TurbSST final : public CNumerics { const su2double VorticityMag = GeometryToolbox::Norm(3, Vorticity_i); su2double P_Base = 0; + su2double zetaFMt = 0.0; + const su2double Mt = sqrt(2.0 * ScalarVar_i[0]) / V_i[idx.SoundSpeed()]; /*--- Apply production term modifications ---*/ switch (sstParsedOptions.production) { @@ -795,6 +847,20 @@ class CSourcePieceWise_TurbSST final : public CNumerics { P_Base = sqrt(StrainMag_i*VorticityMag); break; + case SST_OPTIONS::COMP_Wilcox: + P_Base = StrainMag_i; + if (Mt >= 0.25) { + zetaFMt = 2.0 * (Mt * Mt - 0.25 * 0.25); + } + break; + + case SST_OPTIONS::COMP_Sarkar: + P_Base = StrainMag_i; + if (Mt >= 0.25) { + zetaFMt = 0.5 * (Mt * Mt); + } + break; + default: /*--- Base production term for SST-1994 and SST-2003 ---*/ P_Base = StrainMag_i; @@ -831,10 +897,15 @@ class CSourcePieceWise_TurbSST final : public CNumerics { pw = max(pw, sust_w); } + if (sstParsedOptions.production == SST_OPTIONS::COMP_Sarkar) { + const su2double Dilatation_Sarkar = -0.15 * pk * Mt + 0.2 * beta_star * (1.0 +zetaFMt) * Density_i * ScalarVar_i[1] * ScalarVar_i[0] * Mt * Mt; + pk += Dilatation_Sarkar; + } + /*--- Dissipation ---*/ - su2double dk = beta_star * Density_i * ScalarVar_i[1] * ScalarVar_i[0]; - su2double dw = beta_blended * Density_i * ScalarVar_i[1] * ScalarVar_i[1]; + 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); /*--- LM model coupling with production and dissipation term for k transport equation---*/ if (config->GetKind_Trans_Model() == TURB_TRANS_MODEL::LM) { @@ -862,10 +933,10 @@ class CSourcePieceWise_TurbSST final : public CNumerics { /*--- Implicit part ---*/ - Jacobian_i[0][0] = -beta_star * ScalarVar_i[1] * Volume; - Jacobian_i[0][1] = -beta_star * ScalarVar_i[0] * Volume; + Jacobian_i[0][0] = -beta_star * ScalarVar_i[1] * Volume * (1.0 + zetaFMt); + 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; + Jacobian_i[1][1] = -2.0 * beta_blended * ScalarVar_i[1] * Volume * (1.0 - 0.09/beta_blended * zetaFMt); } AD::SetPreaccOut(Residual, nVar); diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index d498b84c225..87700590937 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -590,7 +590,7 @@ class CEulerSolver : public CFVMFlowSolverBaseGetnMarker(); iMarker++) { if ((config->GetMarker_All_KindBC(iMarker) != INTERNAL_BOUNDARY) && + (config->GetMarker_All_KindBC(iMarker) != SYMMETRY_PLANE) && + (config->GetMarker_All_KindBC(iMarker) != EULER_WALL) && (config->GetMarker_All_KindBC(iMarker) != NEARFIELD_BOUNDARY) && (config->GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) { @@ -667,6 +669,8 @@ class CFVMFlowSolverBase : public CSolver { for (unsigned short iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) { if ((config->GetMarker_All_KindBC(iMarker) != INTERNAL_BOUNDARY) && + (config->GetMarker_All_KindBC(iMarker) != SYMMETRY_PLANE) && + (config->GetMarker_All_KindBC(iMarker) != EULER_WALL) && (config->GetMarker_All_KindBC(iMarker) != NEARFIELD_BOUNDARY) && (config->GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) { @@ -1095,22 +1099,21 @@ class CFVMFlowSolverBase : public CSolver { /*! * \brief Store of a set of provided inlet profile values at a vertex. * \param[in] val_inlet - vector containing the inlet values for the current vertex. - * \param[in] iMarker - Surface marker where the coefficient is computed. + * \param[in] iMarker - Index of the surface marker. * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. */ void SetInletAtVertex(const su2double* val_inlet, unsigned short iMarker, unsigned long iVertex) final; /*! - * \brief Get the set of value imposed at an inlet. - * \param[in] val_inlet - vector returning the inlet values for the current vertex. - * \param[in] val_inlet_point - Node index where the inlet is being set. - * \param[in] val_kind_marker - Enumerated type for the particular inlet type. + * \brief Get the set of values imposed at an inlet. + * \param[in] iMarker - Index of the surface marker. + * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. * \param[in] geometry - Geometrical definition of the problem. - * \param config - Definition of the particular problem. + * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. * \return Value of the face area at the vertex. */ - su2double GetInletAtVertex(su2double* val_inlet, unsigned long val_inlet_point, unsigned short val_kind_marker, - string val_marker, const CGeometry* geometry, const CConfig* config) const final; + su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const final; /*! * \author T. Kattmann diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl index eb3edb511db..f60db438e18 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl @@ -386,7 +386,7 @@ void CFVMFlowSolverBase::SetPrimitive_Gradient_GG(CGeometry* geometry, con const auto comm = reconstruction? MPI_QUANTITIES::PRIMITIVE_GRAD_REC : MPI_QUANTITIES::PRIMITIVE_GRADIENT; const auto commPer = reconstruction? PERIODIC_PRIM_GG_R : PERIODIC_PRIM_GG; - computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, gradient); + computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, prim_idx.Velocity(), gradient); } template @@ -411,7 +411,7 @@ void CFVMFlowSolverBase::SetPrimitive_Gradient_LS(CGeometry* geometry, con const auto comm = reconstruction? MPI_QUANTITIES::PRIMITIVE_GRAD_REC : MPI_QUANTITIES::PRIMITIVE_GRADIENT; computeGradientsLeastSquares(this, comm, commPer, *geometry, *config, weighted, - primitives, 0, nPrimVarGrad, gradient, rmatrix); + primitives, 0, nPrimVarGrad, prim_idx.Velocity(), gradient, rmatrix); } template @@ -722,73 +722,48 @@ void CFVMFlowSolverBase::SetInletAtVertex(const su2double* val_inlet, unsi } template -su2double CFVMFlowSolverBase::GetInletAtVertex(su2double* val_inlet, unsigned long val_inlet_point, - unsigned short val_kind_marker, string val_marker, - const CGeometry* geometry, const CConfig* config) const { - /*--- Local variables ---*/ - - unsigned short iMarker, iDim; - unsigned long iPoint, iVertex; - su2double Area = 0.0; - su2double Normal[3] = {0.0, 0.0, 0.0}; - - /*--- Alias positions within inlet file for readability ---*/ - - unsigned short T_position = nDim; - unsigned short P_position = nDim + 1; - unsigned short FlowDir_position = nDim + 2; - - if (val_kind_marker == INLET_FLOW) { - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) && - (config->GetMarker_All_TagBound(iMarker) == val_marker)) { - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - - if (iPoint == val_inlet_point) { - /*-- Compute boundary face area for this vertex. ---*/ - - geometry->vertex[iMarker][iVertex]->GetNormal(Normal); - Area = GeometryToolbox::Norm(nDim, Normal); - - /*--- Access and store the inlet variables for this vertex. ---*/ - - val_inlet[T_position] = Inlet_Ttotal[iMarker][iVertex]; - val_inlet[P_position] = Inlet_Ptotal[iMarker][iVertex]; - for (iDim = 0; iDim < nDim; iDim++) { - val_inlet[FlowDir_position + iDim] = Inlet_FlowDir[iMarker][iVertex][iDim]; - } - - /*--- Exit once we find the point. ---*/ - - return Area; - } - } - } - } +su2double CFVMFlowSolverBase::GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const { + const auto T_position = nDim; + const auto P_position = nDim + 1; + const auto FlowDir_position = nDim + 2; + val_inlet[T_position] = Inlet_Ttotal[iMarker][iVertex]; + val_inlet[P_position] = Inlet_Ptotal[iMarker][iVertex]; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { + val_inlet[FlowDir_position + iDim] = Inlet_FlowDir[iMarker][iVertex][iDim]; } - /*--- If we don't find a match, then the child point is not on the - current inlet boundary marker. Return zero area so this point does - not contribute to the restriction operator and continue. ---*/ + /*--- Compute boundary face area for this vertex. ---*/ - return Area; + su2double Normal[MAXNDIM] = {0.0}; + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + return GeometryToolbox::Norm(nDim, Normal); } template void CFVMFlowSolverBase::SetUniformInlet(const CConfig* config, unsigned short iMarker) { if (config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) { - string Marker_Tag = config->GetMarker_All_TagBound(iMarker); - su2double p_total = config->GetInletPtotal(Marker_Tag); - su2double t_total = config->GetInletTtotal(Marker_Tag); - auto flow_dir = config->GetInletFlowDir(Marker_Tag); + const string Marker_Tag = config->GetMarker_All_TagBound(iMarker); + const su2double p_total = config->GetInletPtotal(Marker_Tag); + const su2double t_total = config->GetInletTtotal(Marker_Tag); + const su2double* flow_dir = config->GetInletFlowDir(Marker_Tag); for (unsigned long iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { Inlet_Ttotal[iMarker][iVertex] = t_total; Inlet_Ptotal[iMarker][iVertex] = p_total; for (unsigned short iDim = 0; iDim < nDim; iDim++) Inlet_FlowDir[iMarker][iVertex][iDim] = flow_dir[iDim]; } + } else if (config->GetMarker_All_KindBC(iMarker) == SUPERSONIC_INLET) { + const string Marker_Tag = config->GetMarker_All_TagBound(iMarker); + const su2double p = config->GetInlet_Pressure(Marker_Tag); + const su2double t = config->GetInlet_Temperature(Marker_Tag); + const su2double* vel = config->GetInlet_Velocity(Marker_Tag); + for (unsigned long iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { + Inlet_Ttotal[iMarker][iVertex] = t; + Inlet_Ptotal[iMarker][iVertex] = p; + for (unsigned short iDim = 0; iDim < nDim; iDim++) Inlet_FlowDir[iMarker][iVertex][iDim] = vel[iDim]; + } } else { /*--- For now, non-inlets just get set to zero. In the future, we can do more customization for other boundary types here. ---*/ @@ -1089,7 +1064,7 @@ void CFVMFlowSolverBase::PushSolutionBackInTime(unsigned long TimeIter, bo CSolver*** solver_container, CGeometry** geometry, CConfig* config) { /*--- Push back the initial condition to previous solution containers - for a 1st-order restart or when simply intitializing to freestream. ---*/ + for a 1st-order restart or when simply initializing to freestream. ---*/ for (unsigned short iMesh = 0; iMesh <= config->GetnMGLevels(); iMesh++) { solver_container[iMesh][FLOW_SOL]->GetNodes()->Set_Solution_time_n(); @@ -1132,248 +1107,127 @@ void CFVMFlowSolverBase::PushSolutionBackInTime(unsigned long TimeIter, bo } } -template -void CFVMFlowSolverBase::BC_Sym_Plane(CGeometry* geometry, CSolver** solver_container, CNumerics* conv_numerics, - CNumerics* visc_numerics, CConfig* config, unsigned short val_marker) { - unsigned short iDim, iVar; - unsigned long iVertex, iPoint; +template +void CFVMFlowSolverBase::BC_Sym_Plane(CGeometry* geometry, CSolver** solver_container, CNumerics* conv_numerics, + CNumerics* visc_numerics, CConfig* config, unsigned short val_marker) { + const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); + const auto iVel = prim_idx.Velocity(); - bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); - bool viscous = config->GetViscous(); - bool preprocessed = false; + /*--- Blazek chapter 8.: + * The components of the momentum residual normal to the symmetry plane are zeroed out. + * The gradients have already been corrected acording to Eq. (8.40). + * Contrary to Blazek we keep some scalar fluxes computed on the boundary to improve stability (see below). ---*/ - /*--- Allocation of variables necessary for convective fluxes. ---*/ - su2double Area, ProjVelocity_i, *V_reflected, *V_domain, Normal[MAXNDIM] = {0.0}, UnitNormal[MAXNDIM] = {0.0}; + /*--- Loop over all the vertices on this boundary marker. ---*/ - /*--- Allocation of variables necessary for viscous fluxes. ---*/ - su2double ProjGradient, ProjNormVelGrad, ProjTangVelGrad, TangentialNorm, - Tangential[MAXNDIM] = {0.0}, GradNormVel[MAXNDIM] = {0.0}, GradTangVel[MAXNDIM] = {0.0}; + 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(); - /*--- Allocation of primitive gradient arrays for viscous fluxes. ---*/ - su2activematrix Grad_Reflected(nPrimVarGrad, nDim); + /*--- Halo points do not need to be considered. ---*/ + if (!geometry->nodes->GetDomain(iPoint)) continue; - /*--- Loop over all the vertices on this boundary marker. ---*/ + /*--- Get the normal of the current symmetry. This may be the original normal of the vertex + * or a modified normal if there are intersecting symmetries. ---*/ - SU2_OMP_FOR_DYN(OMP_MIN_SIZE) - for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { - if (!preprocessed || geometry->bound_is_straight[val_marker] != true) { - /*----------------------------------------------------------------------------------------------*/ - /*--- Preprocessing: ---*/ - /*--- Compute the unit normal and (in case of viscous flow) a corresponding unit tangential ---*/ - /*--- to that normal. On a straight(2D)/plane(3D) boundary these two vectors are constant. ---*/ - /*--- This circumstance is checked in geometry->ComputeSurf_Straightness(...) and stored ---*/ - /*--- such that the recomputation does not occur for each node. On true symmetry planes, the ---*/ - /*--- normal is constant but this routines is used for Symmetry, Euler-Wall in inviscid flow ---*/ - /*--- and Euler Wall in viscous flow as well. In the latter curvy boundaries are likely to ---*/ - /*--- happen. In doubt, the conditional above which checks straightness can be thrown out ---*/ - /*--- such that the recomputation is done for each node (which comes with a tiny performance ---*/ - /*--- penalty). ---*/ - /*----------------------------------------------------------------------------------------------*/ - - preprocessed = true; - - /*--- Normal vector for a random vertex (zero) on this marker (negate for outward convention). ---*/ - geometry->vertex[val_marker][iVertex]->GetNormal(Normal); - for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; - - /*--- Compute unit normal, to be used for unit tangential, projected velocity and velocity - component gradients. ---*/ - Area = GeometryToolbox::Norm(nDim, Normal); + su2double Normal[MAXNDIM] = {}, UnitNormal[MAXNDIM] = {}; + geometry->vertex[val_marker][iVertex]->GetNormal(Normal); + const auto it = geometry->symmetryNormals[val_marker].find(iVertex); - for (iDim = 0; iDim < nDim; iDim++) UnitNormal[iDim] = -Normal[iDim] / Area; + if (it != geometry->symmetryNormals[val_marker].end()) { + for (auto iDim = 0u; iDim < nDim; iDim++) UnitNormal[iDim] = it->second[iDim]; + } else { + const su2double Area = GeometryToolbox::Norm(nDim, Normal); + for (auto iDim = 0u; iDim < nDim; iDim++) UnitNormal[iDim] = Normal[iDim] / Area; + } - /*--- Preprocessing: Compute unit tangential, the direction is arbitrary as long as - t*n=0 && |t|_2 = 1 ---*/ - if (viscous) { - switch (nDim) { - case 2: { - Tangential[0] = -UnitNormal[1]; - Tangential[1] = UnitNormal[0]; - break; - } - case 3: { - /*--- n = ai + bj + ck, if |b| > |c| ---*/ - if (abs(UnitNormal[1]) > abs(UnitNormal[2])) { - /*--- t = bi + (c-a)j - bk ---*/ - Tangential[0] = UnitNormal[1]; - Tangential[1] = UnitNormal[2] - UnitNormal[0]; - Tangential[2] = -UnitNormal[1]; - } else { - /*--- t = ci - cj + (b-a)k ---*/ - Tangential[0] = UnitNormal[2]; - Tangential[1] = -UnitNormal[2]; - Tangential[2] = UnitNormal[1] - UnitNormal[0]; - } - /*--- Make it a unit vector. ---*/ - TangentialNorm = sqrt(pow(Tangential[0], 2) + pow(Tangential[1], 2) + pow(Tangential[2], 2)); - Tangential[0] = Tangential[0] / TangentialNorm; - Tangential[1] = Tangential[1] / TangentialNorm; - Tangential[2] = Tangential[2] / TangentialNorm; - break; - } - } // switch - } // if viscous - } // if bound_is_straight - - iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); - - /*--- Check if the node belongs to the domain (i.e., not a halo node) ---*/ - if (geometry->nodes->GetDomain(iPoint)) { - /*-------------------------------------------------------------------------------*/ - /*--- Step 1: For the convective fluxes, create a reflected state of the ---*/ - /*--- Primitive variables by copying all interior values to the ---*/ - /*--- reflected. Only the velocity is mirrored along the symmetry ---*/ - /*--- axis. Based on the Upwind_Residual routine. ---*/ - /*-------------------------------------------------------------------------------*/ - - /*--- Allocate the reflected state at the symmetry boundary. ---*/ - 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). ---*/ - geometry->vertex[val_marker][iVertex]->GetNormal(Normal); - for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; - conv_numerics->SetNormal(Normal); - - /*--- Get current solution at this boundary node ---*/ - V_domain = nodes->GetPrimitive(iPoint); - - /*--- Set the reflected state based on the boundary node. Scalars are copied and - the velocity is mirrored along the symmetry boundary, i.e. the velocity in - normal direction is substracted twice. ---*/ - for (iVar = 0; iVar < nPrimVar; iVar++) V_reflected[iVar] = nodes->GetPrimitive(iPoint, iVar); - - /*--- Compute velocity in normal direction (ProjVelcity_i=(v*n)) und substract twice from - velocity in normal direction: v_r = v - 2 (v*n)n ---*/ - 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); - } + su2double* V_reflected = GetCharacPrimVar(val_marker, iVertex); - for (iDim = 0; iDim < nDim; iDim++) - V_reflected[iDim + 1] = nodes->GetVelocity(iPoint, iDim) - 2.0 * ProjVelocity_i * UnitNormal[iDim]; + /*--- Grid movement ---*/ + if (dynamic_grid) + conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint), geometry->nodes->GetGridVel(iPoint)); - /*--- Set Primitive and Secondary for numerics class. ---*/ - conv_numerics->SetPrimitive(V_domain, V_reflected); - conv_numerics->SetSecondary(nodes->GetSecondary(iPoint), nodes->GetSecondary(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); - /*--- Compute the residual using an upwind scheme. ---*/ + for (auto iVar = 0u; iVar < nPrimVar; iVar++) + V_reflected[iVar] = nodes->GetPrimitive(iPoint, iVar); - auto residual = conv_numerics->ComputeResidual(config); + 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); - /*--- Update residual value ---*/ - LinSysRes.AddBlock(iPoint, residual); + for (auto iDim = 0u; iDim < nDim; iDim++) + V_reflected[iDim + iVel] = nodes->GetVelocity(iPoint, iDim) - ProjVelocity_i * UnitNormal[iDim]; - /*--- Jacobian contribution for implicit integration. ---*/ - if (implicit) { - Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); - } + /*--- Get current solution at this boundary node ---*/ + const su2double* V_domain = nodes->GetPrimitive(iPoint); - if (viscous) { - /*-------------------------------------------------------------------------------*/ - /*--- Step 2: The viscous fluxes of the Navier-Stokes equations depend on the ---*/ - /*--- Primitive variables and their gradients. The viscous numerics ---*/ - /*--- container is filled just as the convective numerics container, ---*/ - /*--- but the primitive gradients of the reflected state have to be ---*/ - /*--- determined additionally such that symmetry at the boundary is ---*/ - /*--- enforced. Based on the Viscous_Residual routine. ---*/ - /*-------------------------------------------------------------------------------*/ - - /*--- Set the normal vector and the coordinates. ---*/ - visc_numerics->SetCoord(geometry->nodes->GetCoord(iPoint), geometry->nodes->GetCoord(iPoint)); - visc_numerics->SetNormal(Normal); - - /*--- Set the primitive and Secondary variables. ---*/ - visc_numerics->SetPrimitive(V_domain, V_reflected); - visc_numerics->SetSecondary(nodes->GetSecondary(iPoint), nodes->GetSecondary(iPoint)); - - /*--- For viscous Fluxes also the gradients of the primitives need to be determined. - 1. The gradients of scalars are mirrored along the sym plane just as velocity for the primitives - 2. The gradients of the velocity components need more attention, i.e. the gradient of the - normal velocity in tangential direction is mirrored and the gradient of the tangential velocity in - normal direction is mirrored. ---*/ - - /*--- Get gradients of primitives of boundary cell ---*/ - for (iVar = 0; iVar < nPrimVarGrad; iVar++) - for (iDim = 0; iDim < nDim; iDim++) - Grad_Reflected[iVar][iDim] = nodes->GetGradient_Primitive(iPoint, iVar, iDim); + /*--- Set Primitive and Secondary for numerics class. ---*/ + conv_numerics->SetPrimitive(V_domain, V_reflected); + conv_numerics->SetSecondary(nodes->GetSecondary(iPoint), nodes->GetSecondary(iPoint)); - /*--- Reflect the gradients for all scalars including the velocity components. - The gradients of the velocity components are set later with the - correct values: grad(V)_r = grad(V) - 2 [grad(V)*n]n, V beeing any primitive ---*/ - for (iVar = 0; iVar < nPrimVarGrad; iVar++) { - if (iVar == 0 || iVar > nDim) { // Exclude velocity component gradients + /*--- Compute the residual using an upwind scheme. ---*/ + auto residual = conv_numerics->ComputeResidual(config); - /*--- Compute projected part of the gradient in a dot product ---*/ - ProjGradient = 0.0; - for (iDim = 0; iDim < nDim; iDim++) ProjGradient += Grad_Reflected[iVar][iDim] * UnitNormal[iDim]; + /*--- 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]; + } - for (iDim = 0; iDim < nDim; iDim++) - Grad_Reflected[iVar][iDim] = Grad_Reflected[iVar][iDim] - 2.0 * ProjGradient * UnitNormal[iDim]; - } - } + /*--- 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). ---*/ - /*--- Compute gradients of normal and tangential velocity: - grad(v*n) = grad(v_x) n_x + grad(v_y) n_y (+ grad(v_z) n_z) - grad(v*t) = grad(v_x) t_x + grad(v_y) t_y (+ grad(v_z) t_z) ---*/ - for (iVar = 0; iVar < nDim; iVar++) { // counts gradient components - GradNormVel[iVar] = 0.0; - GradTangVel[iVar] = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { // counts sum with unit normal/tangential - GradNormVel[iVar] += Grad_Reflected[iDim + 1][iVar] * UnitNormal[iDim]; - GradTangVel[iVar] += Grad_Reflected[iDim + 1][iVar] * Tangential[iDim]; - } - } + su2double* solutionOld = nodes->GetSolution_Old(iPoint); - /*--- Refelect gradients in tangential and normal direction by substracting the normal/tangential - component twice, just as done with velocity above. - grad(v*n)_r = grad(v*n) - 2 {grad([v*n])*t}t - grad(v*t)_r = grad(v*t) - 2 {grad([v*t])*n}n ---*/ - ProjNormVelGrad = 0.0; - ProjTangVelGrad = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { - ProjNormVelGrad += GradNormVel[iDim] * Tangential[iDim]; // grad([v*n])*t - ProjTangVelGrad += GradTangVel[iDim] * UnitNormal[iDim]; // grad([v*t])*n + su2double gridVel[MAXNVAR] = {}; + if (dynamic_grid) { + for (auto iDim = 0u; iDim < nDim; iDim++) { + gridVel[iDim] = geometry->nodes->GetGridVel(iPoint)[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); } + } + } + su2double vp = 0.0; + for (auto iDim = 0u; iDim < nDim; iDim++) { + vp += (solutionOld[iVel + iDim] - gridVel[iDim]) * UnitNormal[iDim]; + } + for (auto iDim = 0u; iDim < nDim; iDim++) { + solutionOld[iVel + iDim] -= vp * UnitNormal[iDim]; + } - for (iDim = 0; iDim < nDim; iDim++) { - GradNormVel[iDim] = GradNormVel[iDim] - 2.0 * ProjNormVelGrad * Tangential[iDim]; - GradTangVel[iDim] = GradTangVel[iDim] - 2.0 * ProjTangVelGrad * UnitNormal[iDim]; - } + /*--- Keep only the tangential part of the momentum residuals. ---*/ + su2double normalRes = 0.0; + for (auto iDim = 0u; iDim < nDim; iDim++) { + normalRes += LinSysRes(iPoint, iVel + iDim) * UnitNormal[iDim]; + } + for (auto iDim = 0u; iDim < nDim; iDim++) { + LinSysRes(iPoint, iVel + iDim) -= normalRes * UnitNormal[iDim]; + } + + /*--- Jacobian contribution for implicit integration. ---*/ + if (implicit) { + Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); + } - /*--- Transfer reflected gradients back into the Cartesian Coordinate system: - grad(v_x)_r = grad(v*n)_r n_x + grad(v*t)_r t_x - grad(v_y)_r = grad(v*n)_r n_y + grad(v*t)_r t_y - ( grad(v_z)_r = grad(v*n)_r n_z + grad(v*t)_r t_z ) ---*/ - for (iVar = 0; iVar < nDim; iVar++) // loops over the velocity component gradients - for (iDim = 0; iDim < nDim; iDim++) // loops over the entries of the above - Grad_Reflected[iVar + 1][iDim] = - GradNormVel[iDim] * UnitNormal[iVar] + GradTangVel[iDim] * Tangential[iVar]; - - /*--- Set the primitive gradients of the boundary and reflected state. ---*/ - visc_numerics->SetPrimVarGradient(nodes->GetGradient_Primitive(iPoint), CMatrixView(Grad_Reflected)); - - /*--- Turbulent kinetic energy. ---*/ - if (config->GetKind_Turb_Model() == TURB_MODEL::SST) - visc_numerics->SetTurbKineticEnergy(solver_container[TURB_SOL]->GetNodes()->GetSolution(iPoint, 0), - solver_container[TURB_SOL]->GetNodes()->GetSolution(iPoint, 0)); - - /*--- Compute and update residual. Note that the viscous shear stress tensor is computed in the - following routine based upon the velocity-component gradients. ---*/ - auto residual = visc_numerics->ComputeResidual(config); - - LinSysRes.SubtractBlock(iPoint, residual); - - /*--- Jacobian contribution for implicit integration. ---*/ - if (implicit) Jacobian.SubtractBlock2Diag(iPoint, residual.jacobian_i); - } // if viscous - } // if GetDomain - } // for iVertex + /*--- Correction for multigrid. ---*/ + normalRes = 0.0; + su2double* Res_TruncError = nodes->GetResTruncError(iPoint); + for (auto iDim = 0u; iDim < nDim; iDim++) { + normalRes += Res_TruncError[iVel + iDim] * UnitNormal[iDim]; + } + for (auto iDim = 0u; iDim < nDim; iDim++) { + Res_TruncError[iVel + iDim] -= normalRes * UnitNormal[iDim]; + } + } END_SU2_OMP_FOR } diff --git a/SU2_CFD/include/solvers/CScalarSolver.inl b/SU2_CFD/include/solvers/CScalarSolver.inl index 1777fa2e289..63936187185 100644 --- a/SU2_CFD/include/solvers/CScalarSolver.inl +++ b/SU2_CFD/include/solvers/CScalarSolver.inl @@ -111,15 +111,15 @@ void CScalarSolver::CommonPreprocessing(CGeometry *geometry, const if (config->GetReconstructionGradientRequired()) { switch(config->GetKind_Gradient_Method_Recon()) { - case GREEN_GAUSS: SetSolution_Gradient_GG(geometry, config, true); break; - case LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, true); break; - case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, true); break; + case GREEN_GAUSS: SetSolution_Gradient_GG(geometry, config, -1, true); break; + case LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, -1, true); break; + case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, -1, true); break; } } switch(config->GetKind_Gradient_Method()) { - case GREEN_GAUSS: SetSolution_Gradient_GG(geometry, config); break; - case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config); break; + case GREEN_GAUSS: SetSolution_Gradient_GG(geometry, config, -1); break; + case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, -1); break; } if (limiter && muscl) SetSolution_Limiter(geometry, config); diff --git a/SU2_CFD/include/solvers/CSolver.hpp b/SU2_CFD/include/solvers/CSolver.hpp index 3c1062def94..29c9b9d9d20 100644 --- a/SU2_CFD/include/solvers/CSolver.hpp +++ b/SU2_CFD/include/solvers/CSolver.hpp @@ -543,17 +543,19 @@ class CSolver { * \brief Compute the Green-Gauss gradient of the solution. * \param[in] geometry - Geometrical definition of the problem. * \param[in] config - Definition of the particular problem. + * \param[in] idxVel - Index to velocity, -1 if no velocity is present in the solver. * \param[in] reconstruction - indicator that the gradient being computed is for upwind reconstruction. */ - void SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config, bool reconstruction = false); + void SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction = false); /*! * \brief Compute the Least Squares gradient of the solution. * \param[in] geometry - Geometrical definition of the problem. * \param[in] config - Definition of the particular problem. + * \param[in] idxVel - Index to velocity, -1 if no velocity is present in the solver. * \param[in] reconstruction - indicator that the gradient being computed is for upwind reconstruction. */ - void SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config, bool reconstruction = false); + void SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction = false); /*! * \brief Compute the Least Squares gradient of the grid velocity. @@ -1087,6 +1089,38 @@ class CSolver { CConfig *config, unsigned short val_marker) { } + /*! + * + * \brief Generalized handling of calculation of total inlet boundary condition inputs + * \param[in] conv_numerics - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + * \param[in] val_marker - Surface marker where the boundary condition is applied. + * \param[in] iSpan - Current spanwise position + * \param[in] SpanwisePosition - Spanwise position where flow quantaties are evaluated + */ + inline virtual void BC_Giles_Total_Inlet(CNumerics *conv_numerics, + CConfig *config, + unsigned short val_marker, + su2double *&c_avg, + su2double *&R, + su2double **&R_c_inv, + su2double **&R_c, + unsigned short iSpan, + unsigned short SpanwisePosition) { } + + /*! + * + * \brief Generalized handling of calculation of mixing plane boundary condition inputs + * \param[in] conv_numerics - Description of the numerical method. + * \param[in] val_marker - Surface marker where the boundary condition is applied. + * \param[in] SpanwisePosition - Spanwise position where flow quantaties are evaluated + */ + inline virtual void BC_Giles_Mixing(CNumerics *conv_numerics, + unsigned short val_marker, + su2double *&deltaprim, + su2double *&c_avg, + unsigned short SpanwisePosition) { } + /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. @@ -2893,7 +2927,7 @@ class CSolver { * \param[in] config - Definition of the particular problem. * \param[in] iMarker - Surface marker where the coefficient is computed. */ - inline virtual void SetUniformInlet(const CConfig* config, unsigned short iMarker) {}; + inline virtual void SetUniformInlet(const CConfig* config, unsigned short iMarker) {} /*! * \brief A virtual member @@ -2903,23 +2937,18 @@ class CSolver { */ inline virtual void SetInletAtVertex(const su2double *val_inlet, unsigned short iMarker, - unsigned long iVertex) { }; + unsigned long iVertex) { } /*! - * \brief A virtual member - * \param[in] val_inlet - vector returning the inlet values for the current vertex. - * \param[in] val_inlet_point - Node index where the inlet is being set. - * \param[in] val_kind_marker - Enumerated type for the particular inlet type. + * \brief Get the set of values imposed at an inlet. + * \param[in] iMarker - Index of the surface marker. + * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. * \param[in] geometry - Geometrical definition of the problem. - * \param config - Definition of the particular problem. + * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. * \return Value of the face area at the vertex. */ - inline virtual su2double GetInletAtVertex(su2double *val_inlet, - unsigned long val_inlet_point, - unsigned short val_kind_marker, - string val_marker, - const CGeometry *geometry, - const CConfig *config) const { return 0; } + inline virtual su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const { return 0; } /*! * \brief Update the multi-grid structure for the customized boundary conditions. diff --git a/SU2_CFD/include/solvers/CSpeciesSolver.hpp b/SU2_CFD/include/solvers/CSpeciesSolver.hpp index 4fbb9419117..8b838cd0e61 100644 --- a/SU2_CFD/include/solvers/CSpeciesSolver.hpp +++ b/SU2_CFD/include/solvers/CSpeciesSolver.hpp @@ -113,16 +113,15 @@ class CSpeciesSolver : public CScalarSolver { void SetInletAtVertex(const su2double* val_inlet, unsigned short iMarker, unsigned long iVertex) override; /*! - * \brief Get the set of value imposed at an inlet. - * \param[in] val_inlet - vector returning the inlet values for the current vertex. - * \param[in] val_inlet_point - Node index where the inlet is being set. - * \param[in] val_kind_marker - Enumerated type for the particular inlet type. + * \brief Get the set of values imposed at an inlet. + * \param[in] iMarker - Index of the surface marker. + * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. * \param[in] geometry - Geometrical definition of the problem. - * \param config - Definition of the particular problem. + * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. * \return Value of the face area at the vertex. */ - su2double GetInletAtVertex(su2double* val_inlet, unsigned long val_inlet_point, unsigned short val_kind_marker, - string val_marker, const CGeometry* geometry, const CConfig* config) const override; + su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const override; /*! * \brief Set a uniform inlet profile diff --git a/SU2_CFD/include/solvers/CTurbSASolver.hpp b/SU2_CFD/include/solvers/CTurbSASolver.hpp index c79649799cc..1bf7d929d0e 100644 --- a/SU2_CFD/include/solvers/CTurbSASolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSASolver.hpp @@ -345,20 +345,15 @@ class CTurbSASolver final : public CTurbSolver { unsigned long iVertex) override; /*! - * \brief Get the set of value imposed at an inlet. - * \param[in] val_inlet - vector returning the inlet values for the current vertex. - * \param[in] val_inlet_point - Node index where the inlet is being set. - * \param[in] val_kind_marker - Enumerated type for the particular inlet type. + * \brief Get the set of values imposed at an inlet. + * \param[in] iMarker - Index of the surface marker. + * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. * \param[in] geometry - Geometrical definition of the problem. - * \param config - Definition of the particular problem. + * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. * \return Value of the face area at the vertex. */ - su2double GetInletAtVertex(su2double *val_inlet, - unsigned long val_inlet_point, - unsigned short val_kind_marker, - string val_marker, - const CGeometry *geometry, - const CConfig *config) const override; + su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const override; /*! * \brief Set a uniform inlet profile diff --git a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp index bdb4227a191..4ab59ec73a8 100644 --- a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp @@ -269,20 +269,15 @@ class CTurbSSTSolver final : public CTurbSolver { unsigned long iVertex) override; /*! - * \brief Get the set of value imposed at an inlet. - * \param[in] val_inlet - vector returning the inlet values for the current vertex. - * \param[in] val_inlet_point - Node index where the inlet is being set. - * \param[in] val_kind_marker - Enumerated type for the particular inlet type. + * \brief Get the set of values imposed at an inlet. + * \param[in] iMarker - Index of the surface marker. + * \param[in] iVertex - Vertex of the marker iMarker where the inlet is being set. * \param[in] geometry - Geometrical definition of the problem. - * \param config - Definition of the particular problem. + * \param[in,out] val_inlet - vector returning the inlet values for the current vertex. * \return Value of the face area at the vertex. */ - su2double GetInletAtVertex(su2double *val_inlet, - unsigned long val_inlet_point, - unsigned short val_kind_marker, - string val_marker, - const CGeometry *geometry, - const CConfig *config) const override; + su2double GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const override; /*! * \brief Set a uniform inlet profile diff --git a/SU2_CFD/include/variables/CEulerVariable.hpp b/SU2_CFD/include/variables/CEulerVariable.hpp index d2880fce420..4dc91781c4b 100644 --- a/SU2_CFD/include/variables/CEulerVariable.hpp +++ b/SU2_CFD/include/variables/CEulerVariable.hpp @@ -237,7 +237,7 @@ class CEulerVariable : public CFlowVariable { * \return Value of the velocity for the dimension iDim. */ inline su2double GetVelocity(unsigned long iPoint, unsigned long iDim) const final { - return Primitive(iPoint,iDim+indices.Velocity()); + return Primitive(iPoint, iDim+indices.Velocity()); } /*! @@ -256,7 +256,7 @@ class CEulerVariable : public CFlowVariable { inline su2double GetProjVel(unsigned long iPoint, const su2double *val_vector) const final { su2double ProjVel = 0.0; for (unsigned long iDim = 0; iDim < nDim; iDim++) - ProjVel += Primitive(iPoint,iDim+indices.Velocity())*val_vector[iDim]; + ProjVel += Primitive(iPoint, iDim+indices.Velocity())*val_vector[iDim]; return ProjVel; } diff --git a/SU2_CFD/include/variables/CVariable.hpp b/SU2_CFD/include/variables/CVariable.hpp index 358824ae8d7..920f5680915 100644 --- a/SU2_CFD/include/variables/CVariable.hpp +++ b/SU2_CFD/include/variables/CVariable.hpp @@ -702,6 +702,16 @@ class CVariable { val_trunc_error[iVar] = Res_TruncError(iPoint, iVar); } + /*! + * \brief Set the truncation error. + * \param[in] iPoint - Point index. + * \param[in] val_trunc_error - Pointer to the truncation error. + */ + inline void SetResTruncError(unsigned long iPoint, su2double *val_trunc_error) { + for (unsigned long iVar = 0; iVar < nVar; iVar++) + Res_TruncError(iPoint, iVar) = val_trunc_error[iVar]; + } + /*! * \brief Set the gradient of the solution. * \param[in] iPoint - Point index. diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index 645e79ff47b..0c3c4a10c4e 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -679,20 +679,6 @@ void CDriver::InitializeGeometry(CConfig* config, CGeometry **&geometry, bool du } #endif - /*--- Check if Euler & Symmetry markers are straight/plane. This information - is used in the Euler & Symmetry boundary routines. ---*/ - if((config_container[iZone]->GetnMarker_Euler() != 0 || - config_container[iZone]->GetnMarker_SymWall() != 0) && - !fem_solver) { - - if (rank == MASTER_NODE) - cout << "Checking if Euler & Symmetry markers are straight/plane:" << endl; - - for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) - geometry_container[iZone][iInst][iMesh]->ComputeSurf_Straightness(config_container[iZone], (iMesh==MESH_0) ); - - } - /*--- Keep a reference to the main (ZONE_0, INST_0, MESH_0) geometry. ---*/ main_geometry = geometry_container[ZONE_0][INST_0][MESH_0]; @@ -844,7 +830,7 @@ void CDriver::InitializeGeometryFVM(CConfig *config, CGeometry **&geometry) { /*--- Create the control volume structures ---*/ geometry[iMGlevel]->SetControlVolume(geometry[iMGlevel-1], ALLOCATE); - geometry[iMGlevel]->SetBoundControlVolume(geometry[iMGlevel-1], ALLOCATE); + geometry[iMGlevel]->SetBoundControlVolume(geometry[iMGlevel-1], config, ALLOCATE); geometry[iMGlevel]->SetCoord(geometry[iMGlevel-1]); /*--- Find closest neighbor to a surface point ---*/ @@ -1066,27 +1052,27 @@ void CDriver::PreprocessInlet(CSolver ***solver, CGeometry **geometry, CConfig * /*--- Use LoadInletProfile() routines for the particular solver. ---*/ if (rank == MASTER_NODE) { - cout << endl; - cout << "Reading inlet profile from file: "; - cout << config->GetInlet_FileName() << endl; + cout << "\nReading inlet profile from file: " << config->GetInlet_FileName() << endl; } - if (solver[MESH_0][FLOW_SOL]) { - solver[MESH_0][FLOW_SOL]->LoadInletProfile(geometry, solver, config, val_iter, FLOW_SOL, INLET_FLOW); - } - if (solver[MESH_0][TURB_SOL]) { - solver[MESH_0][TURB_SOL]->LoadInletProfile(geometry, solver, config, val_iter, TURB_SOL, INLET_FLOW); - } - if (solver[MESH_0][SPECIES_SOL]) { - solver[MESH_0][SPECIES_SOL]->LoadInletProfile(geometry, solver, config, val_iter, SPECIES_SOL, INLET_FLOW); + for (const auto marker_type : {INLET_FLOW, SUPERSONIC_INLET}) { + if (solver[MESH_0][FLOW_SOL]) { + solver[MESH_0][FLOW_SOL]->LoadInletProfile(geometry, solver, config, val_iter, FLOW_SOL, marker_type); + } + if (solver[MESH_0][TURB_SOL]) { + solver[MESH_0][TURB_SOL]->LoadInletProfile(geometry, solver, config, val_iter, TURB_SOL, marker_type); + } + if (solver[MESH_0][SPECIES_SOL]) { + solver[MESH_0][SPECIES_SOL]->LoadInletProfile(geometry, solver, config, val_iter, SPECIES_SOL, marker_type); + } } /*--- Exit if profiles were requested for a solver that is not available. ---*/ if (!config->GetFluidProblem()) { - SU2_MPI::Error(string("Inlet profile specification via file (C++) has not been \n") + - string("implemented yet for this solver.\n") + - string("Please set SPECIFIED_INLET_PROFILE= NO and try again."), CURRENT_FUNCTION); + SU2_MPI::Error("Inlet profile specification via file (C++) has not been \n" + "implemented yet for this solver.\n" + "Please set SPECIFIED_INLET_PROFILE= NO and try again.", CURRENT_FUNCTION); } } else { diff --git a/SU2_CFD/src/drivers/CMultizoneDriver.cpp b/SU2_CFD/src/drivers/CMultizoneDriver.cpp index 07069b4d0ab..368a598e514 100644 --- a/SU2_CFD/src/drivers/CMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CMultizoneDriver.cpp @@ -589,19 +589,19 @@ bool CMultizoneDriver::TransferData(unsigned short donorZone, unsigned short tar { const auto nMarkerInt = config_container[donorZone]->GetnMarker_MixingPlaneInterface() / 2; - /*--- Transfer the average value from the donorZone to the targetZone ---*/ + /*--- Transfer the average value from the donorZone to the targetZone ---*/ + /*--- Loops over the mixing planes defined in the config file to find the correct mixing plane for the donor-target combination ---*/ for (auto iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++) { interface_container[donorZone][targetZone]->AllgatherAverage(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL],solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], geometry_container[donorZone][INST_0][MESH_0],geometry_container[targetZone][INST_0][MESH_0], config_container[donorZone], config_container[targetZone], iMarkerInt ); } - for (donorZone = 0; donorZone < nZone; donorZone++) { - if (interface_types[donorZone][targetZone]==MIXING_PLANE) { - interface_container[donorZone][targetZone]->GatherAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL],solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], donorZone); - geometry_container[targetZone][INST_0][MESH_0]->SetAvgTurboGeoValues(config_container[iZone],geometry_container[iZone][INST_0][MESH_0], iZone); - } - } + /*--- Set average value donorZone->targetZone ---*/ + interface_container[donorZone][targetZone]->SetAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL],solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], donorZone); + + /*--- Set average geometrical properties FROM donorZone IN targetZone ---*/ + geometry_container[targetZone][INST_0][MESH_0]->SetAvgTurboGeoValues(config_container[iZone],geometry_container[iZone][INST_0][MESH_0], iZone); break; } @@ -623,7 +623,7 @@ bool CMultizoneDriver::TransferData(unsigned short donorZone, unsigned short tar void CMultizoneDriver::SetTurboPerformance() { for (auto donorZone = 1u; donorZone < nZone; donorZone++) { - interface_container[donorZone][ZONE_0]->GatherAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL], + interface_container[donorZone][ZONE_0]->SetAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL], solver_container[ZONE_0][INST_0][MESH_0][FLOW_SOL], donorZone); } diff --git a/SU2_CFD/src/integration/CIntegration.cpp b/SU2_CFD/src/integration/CIntegration.cpp index f53d50639cc..65406ae4e16 100644 --- a/SU2_CFD/src/integration/CIntegration.cpp +++ b/SU2_CFD/src/integration/CIntegration.cpp @@ -91,7 +91,7 @@ void CIntegration::Space_Integration(CGeometry *geometry, BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { if (config->GetBoolTurbomachinery()){ - /*--- Average quantities at the inflow and outflow boundaries ---*/ + /*--- Average quantities at the inflow and outflow boundaries ---*/ solver_container[MainSolver]->TurboAverageProcess(solver_container, geometry,config,INFLOW); solver_container[MainSolver]->TurboAverageProcess(solver_container, geometry, config, OUTFLOW); } @@ -103,9 +103,6 @@ void CIntegration::Space_Integration(CGeometry *geometry, for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { KindBC = config->GetMarker_All_KindBC(iMarker); switch (KindBC) { - case EULER_WALL: - solver_container[MainSolver]->BC_Euler_Wall(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); - break; case ACTDISK_INLET: solver_container[MainSolver]->BC_ActDisk_Inlet(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); break; @@ -144,9 +141,6 @@ void CIntegration::Space_Integration(CGeometry *geometry, case FAR_FIELD: solver_container[MainSolver]->BC_Far_Field(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); break; - case SYMMETRY_PLANE: - solver_container[MainSolver]->BC_Sym_Plane(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); - break; } } @@ -195,6 +189,13 @@ void CIntegration::Space_Integration(CGeometry *geometry, solver_container[MainSolver]->BC_Periodic(geometry, solver_container, conv_bound_numerics, config); } + + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + if (config->GetMarker_All_KindBC(iMarker)==SYMMETRY_PLANE) + solver_container[MainSolver]->BC_Sym_Plane(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); + else if (config->GetMarker_All_KindBC(iMarker)==EULER_WALL) + solver_container[MainSolver]->BC_Euler_Wall(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); + } //AD::ResumePreaccumulation(pausePreacc); } diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index bad7c06dae1..3ae5d0787b4 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -291,7 +291,7 @@ void CInterface::PreprocessAverage(CGeometry *donor_geometry, CGeometry *target_ for(iSpan = 1; iSpan SpanValuesDonor[jSpan]){ @@ -639,12 +639,3 @@ void CInterface::AllgatherAverage(CSolver *donor_solution, CSolver *target_solut delete [] avgKineTarget; delete [] avgOmegaTarget; } - -void CInterface::GatherAverageValues(CSolver *donor_solution, CSolver *target_solution, unsigned short donorZone){ - - - /*--- here we made the strong assumption that the mesh zone order - * follows the same order of the turbomachinery markers ---*/ - SetAverageValues(donor_solution, target_solution, donorZone); - -} diff --git a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp index 27173f3357e..24fd1602e6e 100644 --- a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp @@ -471,6 +471,10 @@ void CDiscAdjFluidIteration::SetDependencies(CSolver***** solver, CGeometry**** solvers0[FLOW_SOL]->InitiateComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); solvers0[FLOW_SOL]->CompleteComms(geometry0, config[iZone], MPI_QUANTITIES::SOLUTION); + if (config[iZone]->GetBoolTurbomachinery()) { + solvers0[FLOW_SOL]->TurboAverageProcess(solvers0, geometry0, config[iZone], INFLOW); + solvers0[FLOW_SOL]->TurboAverageProcess(solvers0, geometry0, config[iZone], OUTFLOW); + } if (turbulent && !config[iZone]->GetFrozen_Visc_Disc()) { solvers0[TURB_SOL]->Postprocessing(geometry0, solvers0, config[iZone], MESH_0); diff --git a/SU2_CFD/src/numerics/flow/convection/fds.cpp b/SU2_CFD/src/numerics/flow/convection/fds.cpp index 4a83dfe275d..eeffeb1cb57 100644 --- a/SU2_CFD/src/numerics/flow/convection/fds.cpp +++ b/SU2_CFD/src/numerics/flow/convection/fds.cpp @@ -104,7 +104,7 @@ CNumerics::ResidualType<> CUpwFDSInc_Flow::ComputeResidual(const CConfig *config Area = GeometryToolbox::Norm(nDim, Normal); - /*--- Compute and unitary normal vector ---*/ + /*--- Compute the unit normal vector ---*/ for (iDim = 0; iDim < nDim; iDim++) { UnitNormal[iDim] = Normal[iDim]/Area; diff --git a/SU2_CFD/src/numerics/flow/convection/hllc.cpp b/SU2_CFD/src/numerics/flow/convection/hllc.cpp index d574f929b20..d94b44759a7 100644 --- a/SU2_CFD/src/numerics/flow/convection/hllc.cpp +++ b/SU2_CFD/src/numerics/flow/convection/hllc.cpp @@ -31,7 +31,7 @@ CUpwHLLC_Flow::CUpwHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, const CConfig* config) : CNumerics(val_nDim, val_nVar, config) { implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - kappa = config->GetRoe_Kappa(); + /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */ dynamic_grid = config->GetDynamic_Grid(); @@ -114,30 +114,19 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) Density_j = V_j[nDim+2]; Enthalpy_j = V_j[nDim+3]; - - sq_vel_i = 0.0; - sq_vel_j = 0.0; - - for (iDim = 0; iDim < nDim; iDim++) { - sq_vel_i += Velocity_i[iDim] * Velocity_i[iDim]; - sq_vel_j += Velocity_j[iDim] * Velocity_j[iDim]; - } + sq_vel_i = GeometryToolbox::SquaredNorm(nDim, Velocity_i); + sq_vel_j = GeometryToolbox::SquaredNorm(nDim, Velocity_j); Energy_i = Enthalpy_i - Pressure_i / Density_i; Energy_j = Enthalpy_j - Pressure_j / Density_j; - SoundSpeed_i = sqrt( (Enthalpy_i - 0.5 * sq_vel_i) * Gamma_Minus_One ); - SoundSpeed_j = sqrt( (Enthalpy_j - 0.5 * sq_vel_j) * Gamma_Minus_One ); + SoundSpeed_i = sqrt((Enthalpy_i - 0.5 * sq_vel_i) * Gamma_Minus_One); + SoundSpeed_j = sqrt((Enthalpy_j - 0.5 * sq_vel_j) * Gamma_Minus_One); /*--- Projected velocities ---*/ - ProjVelocity_i = 0; - ProjVelocity_j = 0; - - for (iDim = 0; iDim < nDim; iDim++) { - ProjVelocity_i += Velocity_i[iDim] * UnitNormal[iDim]; - ProjVelocity_j += Velocity_j[iDim] * UnitNormal[iDim]; - } + ProjVelocity_i = GeometryToolbox::DotProduct(nDim, Velocity_i, UnitNormal); + ProjVelocity_j = GeometryToolbox::DotProduct(nDim, Velocity_j, UnitNormal); /*--- Projected Grid Velocity ---*/ @@ -146,7 +135,7 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) if (dynamic_grid) { for (iDim = 0; iDim < nDim; iDim++) - ProjInterfaceVel += 0.5 * ( GridVel_i[iDim] + GridVel_j[iDim] )*UnitNormal[iDim]; + ProjInterfaceVel += 0.5 * (GridVel_i[iDim] + GridVel_j[iDim]) * UnitNormal[iDim]; SoundSpeed_i -= ProjInterfaceVel; SoundSpeed_j += ProjInterfaceVel; @@ -159,14 +148,11 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) Rrho = ( sqrt(Density_i) + sqrt(Density_j) ); - sq_velRoe = 0.0; - RoeProjVelocity = - ProjInterfaceVel; - for (iDim = 0; iDim < nDim; iDim++) { RoeVelocity[iDim] = ( Velocity_i[iDim] * sqrt(Density_i) + Velocity_j[iDim] * sqrt(Density_j) ) / Rrho; - sq_velRoe += RoeVelocity[iDim] * RoeVelocity[iDim]; - RoeProjVelocity += RoeVelocity[iDim] * UnitNormal[iDim]; } + sq_velRoe = GeometryToolbox::SquaredNorm(nDim, RoeVelocity); + RoeProjVelocity = GeometryToolbox::DotProduct(nDim, RoeVelocity, UnitNormal) - ProjInterfaceVel; /*--- Mean Roe variables iPoint and jPoint ---*/ @@ -175,10 +161,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) /*--- Roe-averaged speed of sound ---*/ - //RoeSoundSpeed2 = Gamma_Minus_One * ( RoeEnthalpy - 0.5 * sq_velRoe ); RoeSoundSpeed = sqrt( Gamma_Minus_One * ( RoeEnthalpy - 0.5 * sq_velRoe ) ) - ProjInterfaceVel; - /*--- Speed of sound at L and R ---*/ sL = min( RoeProjVelocity - RoeSoundSpeed, ProjVelocity_i - SoundSpeed_i); @@ -214,8 +198,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) IntermediateState[0] = rhoSL * Density_i; for (iDim = 0; iDim < nDim; iDim++) - IntermediateState[iDim+1] = rhoSL * ( Density_i * Velocity_i[iDim] + ( pStar - Pressure_i ) / ( sL - ProjVelocity_i ) * UnitNormal[iDim] ) ; - IntermediateState[nVar-1] = rhoSL * ( Density_i * Energy_i - ( Pressure_i * ProjVelocity_i - pStar * sM) / ( sL - ProjVelocity_i ) ); + IntermediateState[iDim+1] = rhoSL * Density_i * Velocity_i[iDim] + (pStar - Pressure_i) * UnitNormal[iDim] / (sL - sM); + IntermediateState[nVar-1] = rhoSL * Density_i * Energy_i - (Pressure_i * ProjVelocity_i - pStar * sM) / (sL - sM); Flux[0] = sM * IntermediateState[0]; @@ -243,8 +227,8 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) IntermediateState[0] = rhoSR * Density_j; for (iDim = 0; iDim < nDim; iDim++) - IntermediateState[iDim+1] = rhoSR * ( Density_j * Velocity_j[iDim] + ( pStar - Pressure_j ) / ( sR - ProjVelocity_j ) * UnitNormal[iDim] ) ; - IntermediateState[nVar-1] = rhoSR * ( Density_j * Energy_j - ( Pressure_j * ProjVelocity_j - pStar * sM ) / ( sR - ProjVelocity_j ) ); + IntermediateState[iDim+1] = rhoSR * Density_j * Velocity_j[iDim] + (pStar - Pressure_j) * UnitNormal[iDim] / (sR - sM); + IntermediateState[nVar-1] = rhoSR * Density_j * Energy_j - (Pressure_j * ProjVelocity_j - pStar * sM) / (sR - sM); Flux[0] = sM * IntermediateState[0]; @@ -254,14 +238,12 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) } } - - for (iVar = 0; iVar < nVar; iVar++) - Flux[iVar] *= Area; + for (iVar = 0; iVar < nVar; iVar++) Flux[iVar] *= Area; /*--- Return early if the Jacobians do not need to be computed. ---*/ - if (implicit) - { + if (!implicit) return ResidualType<>(Flux, Jacobian_i, Jacobian_j); + if (sM > 0.0) { if (sL > 0.0) { @@ -537,27 +519,20 @@ CNumerics::ResidualType<> CUpwHLLC_Flow::ComputeResidual(const CConfig* config) } } - - /*--- Jacobians of the inviscid flux, scale = k because Flux ~ 0.5*(fc_i+fc_j)*Normal ---*/ - - Area *= kappa; - + /*--- Scale Jacobians by area (from Flux *= Area). ---*/ for (iVar = 0; iVar < nVar; iVar++) { for (jVar = 0; jVar < nVar; jVar++) { - Jacobian_i[iVar][jVar] *= Area; - Jacobian_j[iVar][jVar] *= Area; + Jacobian_i[iVar][jVar] *= Area; + Jacobian_j[iVar][jVar] *= Area; } } - } // end if implicit - return ResidualType<>(Flux, Jacobian_i, Jacobian_j); - } CUpwGeneralHLLC_Flow::CUpwGeneralHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, const CConfig* config) : CNumerics(val_nDim, val_nVar, config) { implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - kappa = config->GetRoe_Kappa(); + /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */ dynamic_grid = config->GetDynamic_Grid(); @@ -792,13 +767,12 @@ CNumerics::ResidualType<> CUpwGeneralHLLC_Flow::ComputeResidual(const CConfig* c } } - for (iVar = 0; iVar < nVar; iVar++) - Flux[iVar] *= Area; + for (iVar = 0; iVar < nVar; iVar++) Flux[iVar] *= Area; /*--- Return early if the Jacobians do not need to be computed. ---*/ - if (implicit) - { + if (!implicit) return ResidualType<>(Flux, Jacobian_i, Jacobian_j); + if (sM > 0.0) { if (sL > 0.0) { @@ -1090,21 +1064,14 @@ CNumerics::ResidualType<> CUpwGeneralHLLC_Flow::ComputeResidual(const CConfig* c } } - - /*--- Jacobians of the inviscid flux, scale = kappa because Flux ~ 0.5*(fc_i+fc_j)*Normal ---*/ - - Area *= kappa; - + /*--- Scale Jacobians by area (from Flux *= Area). ---*/ for (iVar = 0; iVar < nVar; iVar++) { for (jVar = 0; jVar < nVar; jVar++) { Jacobian_i[iVar][jVar] *= Area; Jacobian_j[iVar][jVar] *= Area; } } - } // end if implicit - return ResidualType<>(Flux, Jacobian_i, Jacobian_j); - } void CUpwGeneralHLLC_Flow::VinokurMontagne() { diff --git a/SU2_CFD/src/numerics/flow/convection/roe.cpp b/SU2_CFD/src/numerics/flow/convection/roe.cpp index 07c69f2030d..7b122119009 100644 --- a/SU2_CFD/src/numerics/flow/convection/roe.cpp +++ b/SU2_CFD/src/numerics/flow/convection/roe.cpp @@ -34,7 +34,7 @@ CUpwRoeBase_Flow::CUpwRoeBase_Flow(unsigned short val_nDim, unsigned short val_n implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */ dynamic_grid = config->GetDynamic_Grid(); - kappa = config->GetRoe_Kappa(); // 1 is unstable + kappa = config->GetRoe_Kappa(); Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; @@ -109,7 +109,7 @@ CNumerics::ResidualType<> CUpwRoeBase_Flow::ComputeResidual(const CConfig* confi AD::SetPreaccIn(Dissipation_i); AD::SetPreaccIn(Dissipation_j); } - /*--- Face area (norm or the normal vector) and unit normal ---*/ + /*--- Face area (norm of the normal vector) and unit normal ---*/ Area = GeometryToolbox::Norm(nDim, Normal); @@ -683,7 +683,7 @@ CUpwGeneralRoe_Flow::CUpwGeneralRoe_Flow(unsigned short val_nDim, unsigned short implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */ dynamic_grid = config->GetDynamic_Grid(); - kappa = config->GetRoe_Kappa(); // 1 is unstable + kappa = config->GetRoe_Kappa(); Flux = new su2double [nVar]; diff --git a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp index 17128c7fec8..b72305e0be2 100644 --- a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp @@ -952,11 +952,11 @@ void CAdjEulerSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contai /*--- Gradient computation for MUSCL reconstruction. ---*/ if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS) - SetSolution_Gradient_GG(geometry, config, true); + SetSolution_Gradient_GG(geometry, config, 1, true); if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES) - SetSolution_Gradient_LS(geometry, config, true); + SetSolution_Gradient_LS(geometry, config, 1, true); if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES) - SetSolution_Gradient_LS(geometry, config, true); + SetSolution_Gradient_LS(geometry, config, 1, true); /*--- Limiter computation ---*/ @@ -970,8 +970,8 @@ void CAdjEulerSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contai if ((center_jst) && (iMesh == MESH_0)) { SetCentered_Dissipation_Sensor(geometry, config); SetUndivided_Laplacian(geometry, config); - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, 1); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, 1); } } diff --git a/SU2_CFD/src/solvers/CAdjNSSolver.cpp b/SU2_CFD/src/solvers/CAdjNSSolver.cpp index c07425a2bdc..3a219b06ea9 100644 --- a/SU2_CFD/src/solvers/CAdjNSSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjNSSolver.cpp @@ -345,14 +345,14 @@ void CAdjNSSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container if (config->GetReconstructionGradientRequired()) { if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS) - SetSolution_Gradient_GG(geometry, config, true); + SetSolution_Gradient_GG(geometry, config, 1, true); if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES) - SetSolution_Gradient_LS(geometry, config, true); + SetSolution_Gradient_LS(geometry, config, 1, true); if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES) - SetSolution_Gradient_LS(geometry, config, true); + SetSolution_Gradient_LS(geometry, config, 1, true); } - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, 1); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, 1); /*--- Limiter computation (upwind reconstruction) ---*/ @@ -361,8 +361,8 @@ void CAdjNSSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container /*--- Compute gradients adj for viscous term coupling ---*/ if ((config->GetKind_Solver() == MAIN_SOLVER::ADJ_RANS) && (!config->GetFrozen_Visc_Cont())) { - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) solver_container[ADJTURB_SOL]->SetSolution_Gradient_GG(geometry, config); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) solver_container[ADJTURB_SOL]->SetSolution_Gradient_LS(geometry, config); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) solver_container[ADJTURB_SOL]->SetSolution_Gradient_GG(geometry, config, 1); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) solver_container[ADJTURB_SOL]->SetSolution_Gradient_LS(geometry, config, 1); } /*--- Artificial dissipation for centered schemes ---*/ diff --git a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp index 3d5b6eb7024..cb4a194ca95 100644 --- a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp @@ -257,12 +257,12 @@ void CAdjTurbSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contain Jacobian.SetValZero(); /*--- Gradient of the adjoint turbulent variables ---*/ - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, -1); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, -1); /*--- Gradient of the turbulent variables ---*/ - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) solver_container[TURB_SOL]->SetSolution_Gradient_GG(geometry, config); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) solver_container[TURB_SOL]->SetSolution_Gradient_LS(geometry, config); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) solver_container[TURB_SOL]->SetSolution_Gradient_GG(geometry, config, -1); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) solver_container[TURB_SOL]->SetSolution_Gradient_LS(geometry, config, -1); } diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 8e4c9a01147..b9e290adfc2 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -6120,81 +6120,60 @@ void CEulerSolver::PreprocessBC_Giles(CGeometry *geometry, CConfig *config, CNum void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { - unsigned short iDim, iVar, jVar, iSpan; - unsigned long iPoint, Point_Normal, oldVertex, k, kend, kend_max, iVertex; - su2double *UnitNormal, *turboVelocity, *turboNormal; - - su2double *Velocity_b, Velocity2_b, Enthalpy_b, Energy_b, Density_b, Pressure_b, Temperature_b; - su2double *Velocity_i, Velocity2_i, Energy_i, StaticEnergy_i, Density_i, Pressure_i; - su2double Pressure_e; - su2double *V_boundary, *V_domain, *S_boundary, *S_domain; - unsigned short iZone = config->GetiZone(); - bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); - string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - bool viscous = config->GetViscous(); - unsigned short nSpanWiseSections = geometry->GetnSpanWiseSections(config->GetMarker_All_TurbomachineryFlag(val_marker)); - su2double relfacAvgCfg = config->GetGiles_RelaxFactorAverage(Marker_Tag); - su2double relfacFouCfg = config->GetGiles_RelaxFactorFourier(Marker_Tag); - su2double *Normal; - su2double TwoPiThetaFreq_Pitch, pitch,theta; - const su2double *SpanWiseValues = nullptr, *FlowDir; - su2double spanPercent, extrarelfacAvg = 0.0, deltaSpan = 0.0, relfacAvg, relfacFou, coeffrelfacAvg = 0.0; - unsigned short Turbo_Flag; - - Normal = new su2double[nDim]; - turboNormal = new su2double[nDim]; - UnitNormal = new su2double[nDim]; - turboVelocity = new su2double[nDim]; - Velocity_i = new su2double[nDim]; - Velocity_b = new su2double[nDim]; - - - su2double AverageSoundSpeed, *AverageTurboMach, AverageEntropy, AverageEnthalpy; - AverageTurboMach = new su2double[nDim]; - S_boundary = new su2double[8]; - - su2double AvgMach , *cj, GilesBeta, *delta_c, **R_Matrix, *deltaprim, **R_c_inv,**R_c, alphaIn_BC, gammaIn_BC = 0, - P_Total, T_Total, Enthalpy_BC, Entropy_BC, *R, *c_avg,*dcjs, Beta_inf2, c2js_Re, c3js_Re, cOutjs_Re, avgVel2 =0.0; - - long freq; - - delta_c = new su2double[nVar]; - deltaprim = new su2double[nVar]; - cj = new su2double[nVar]; - R_Matrix = new su2double*[nVar]; - R_c = new su2double*[nVar-1]; - R_c_inv = new su2double*[nVar-1]; - R = new su2double[nVar-1]; - c_avg = new su2double[nVar]; - dcjs = new su2double[nVar]; - - for (iVar = 0; iVar < nVar; iVar++) + /*--- Initialisation of data structures ---*/ + + su2double *Normal = new su2double[nDim], + *turboNormal = new su2double[nDim], + *UnitNormal = new su2double[nDim], + *turboVelocity = new su2double[nDim], + *Velocity_i = new su2double[nDim], + *Velocity_b = new su2double[nDim], + *AverageTurboMach = new su2double[nDim], + *S_boundary = new su2double[8], + *delta_c = new su2double[nVar], + *cj = new su2double[nVar], + **R_Matrix = new su2double*[nVar], + *dcjs = new su2double[nVar], + *c_avg = new su2double[nVar], + **R_c = new su2double*[nVar-1], + **R_c_inv = new su2double*[nVar-1], + *R = new su2double[nVar-1], + *deltaprim = new su2double[nVar]; + + for (auto iVar = 0; iVar < nVar; iVar++) { R_Matrix[iVar] = new su2double[nVar]; c_avg[iVar] = 0.0; dcjs[iVar] = 0.0; } - for (iVar = 0; iVar < nVar-1; iVar++) + for (auto iVar = 0; iVar < nVar-1; iVar++) { R_c[iVar] = new su2double[nVar-1]; R_c_inv[iVar] = new su2double[nVar-1]; } - - complex I, c2ks, c2js, c3ks, c3js, cOutks, cOutjs, Beta_inf; - I = complex(0.0,1.0); + auto const I = complex(0.0,1.0); /*--- Compute coeff for under relaxation of Avg and Fourier Coefficient for hub and shroud---*/ + auto const Marker_Tag = config->GetMarker_All_TagBound(val_marker); + su2double relfacAvgCfg = config->GetGiles_RelaxFactorAverage(Marker_Tag); + + unsigned short nSpanWiseSections = geometry->GetnSpanWiseSections(config->GetMarker_All_TurbomachineryFlag(val_marker)); + + const su2double *SpanWiseValues = nullptr; + + su2double extrarelfacAvg = 0.0, deltaSpan = 0.0, relfacAvg, relfacFou = config->GetGiles_RelaxFactorFourier(Marker_Tag), coeffrelfacAvg = 0.0; + if (nDim == 3){ extrarelfacAvg = config->GetExtraRelFacGiles(0); - spanPercent = config->GetExtraRelFacGiles(1); - Turbo_Flag = config->GetMarker_All_TurbomachineryFlag(val_marker); + auto const spanPercent = config->GetExtraRelFacGiles(1); + auto const Turbo_Flag = config->GetMarker_All_TurbomachineryFlag(val_marker); SpanWiseValues = geometry->GetSpanWiseValue(Turbo_Flag); deltaSpan = SpanWiseValues[nSpanWiseSections-1]*spanPercent; coeffrelfacAvg = (relfacAvgCfg - extrarelfacAvg)/deltaSpan; } - for (iSpan= 0; iSpan < nSpanWiseSections ; iSpan++){ + for (unsigned short iSpan= 0; iSpan < nSpanWiseSections ; iSpan++){ /*--- Compute under relaxation for the Hub and Shroud Avg and Fourier Coefficient---*/ if(nDim == 3){ if(SpanWiseValues[iSpan] <= SpanWiseValues[0] + deltaSpan){ @@ -6207,18 +6186,16 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } else{ relfacAvg = relfacAvgCfg; - relfacFou = relfacFouCfg; } } else{ { relfacAvg = relfacAvgCfg; - relfacFou = relfacFouCfg; } } GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan]); - AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); + auto AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); AverageTurboMach[0] = AverageTurboVelocity[val_marker][iSpan][0]/AverageSoundSpeed; AverageTurboMach[1] = AverageTurboVelocity[val_marker][iSpan][1]/AverageSoundSpeed; @@ -6226,167 +6203,32 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu AverageTurboMach[1] -= geometry->GetAverageTangGridVel(val_marker,iSpan)/AverageSoundSpeed; } - AvgMach = AverageTurboMach[0]*AverageTurboMach[0] + AverageTurboMach[1]*AverageTurboMach[1]; - - kend = geometry->GetnFreqSpan(val_marker, iSpan); - kend_max = geometry->GetnFreqSpanMax(config->GetMarker_All_TurbomachineryFlag(val_marker)); + auto const kend = geometry->GetnFreqSpan(val_marker, iSpan); + auto const kend_max = geometry->GetnFreqSpanMax(config->GetMarker_All_TurbomachineryFlag(val_marker)); conv_numerics->GetRMatrix(AverageSoundSpeed, AverageDensity[val_marker][iSpan], R_Matrix); + su2double Pressure_e; //Useful to pass by reference + switch(config->GetKind_Data_Giles(Marker_Tag)){ case TOTAL_CONDITIONS_PT: - /*--- Retrieve the specified total conditions for this inlet. ---*/ - P_Total = config->GetGiles_Var1(Marker_Tag); - T_Total = config->GetGiles_Var2(Marker_Tag); - FlowDir = config->GetGiles_FlowDir(Marker_Tag); - alphaIn_BC = atan(FlowDir[1]/FlowDir[0]); - - gammaIn_BC = 0; - if (nDim == 3){ - gammaIn_BC = FlowDir[2]; //atan(FlowDir[2]/FlowDir[0]); - } - - /*--- Non-dim. the inputs---*/ - P_Total /= config->GetPressure_Ref(); - T_Total /= config->GetTemperature_Ref(); - - /* --- Computes the total state --- */ - GetFluidModel()->SetTDState_PT(P_Total, T_Total); - Enthalpy_BC = GetFluidModel()->GetStaticEnergy()+ GetFluidModel()->GetPressure()/GetFluidModel()->GetDensity(); - Entropy_BC = GetFluidModel()->GetEntropy(); - - - /* --- Computes the inverse matrix R_c --- */ - conv_numerics->ComputeResJacobianGiles(GetFluidModel(), AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan], - AverageTurboVelocity[val_marker][iSpan], alphaIn_BC, gammaIn_BC, R_c, R_c_inv); - - GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan]); - AverageEnthalpy = GetFluidModel()->GetStaticEnergy() + AveragePressure[val_marker][iSpan]/AverageDensity[val_marker][iSpan]; - AverageEntropy = GetFluidModel()->GetEntropy(); - - avgVel2 = 0.0; - for (iDim = 0; iDim < nDim; iDim++) avgVel2 += AverageVelocity[val_marker][iSpan][iDim]*AverageVelocity[val_marker][iSpan][iDim]; - if (nDim == 2){ - R[0] = -(AverageEntropy - Entropy_BC); - R[1] = -(AverageTurboVelocity[val_marker][iSpan][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][iSpan][0]); - R[2] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); - } - - else{ - R[0] = -(AverageEntropy - Entropy_BC); - R[1] = -(AverageTurboVelocity[val_marker][iSpan][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][iSpan][0]); - R[2] = -(AverageTurboVelocity[val_marker][iSpan][2] - tan(gammaIn_BC)*AverageTurboVelocity[val_marker][iSpan][0]); - R[3] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); - - } - /* --- Compute the avg component c_avg = R_c^-1 * R --- */ - for (iVar = 0; iVar < nVar-1; iVar++){ - c_avg[iVar] = 0.0; - for (jVar = 0; jVar < nVar-1; jVar++){ - c_avg[iVar] += R_c_inv[iVar][jVar]*R[jVar]; - } - } + BC_Giles_Total_Inlet(conv_numerics, config, val_marker, c_avg, R, R_c_inv, R_c, iSpan, iSpan); break; case TOTAL_CONDITIONS_PT_1D: - /*--- Retrieve the specified total conditions for this inlet. ---*/ - P_Total = config->GetGiles_Var1(Marker_Tag); - T_Total = config->GetGiles_Var2(Marker_Tag); - FlowDir = config->GetGiles_FlowDir(Marker_Tag); - alphaIn_BC = atan(FlowDir[1]/FlowDir[0]); - - gammaIn_BC = 0; - if (nDim == 3){ - // Review definition of angle - gammaIn_BC = FlowDir[2]; //atan(FlowDir[2]/FlowDir[0]); - } - - /*--- Non-dim. the inputs---*/ - P_Total /= config->GetPressure_Ref(); - T_Total /= config->GetTemperature_Ref(); - - /* --- Computes the total state --- */ - GetFluidModel()->SetTDState_PT(P_Total, T_Total); - Enthalpy_BC = GetFluidModel()->GetStaticEnergy()+ GetFluidModel()->GetPressure()/GetFluidModel()->GetDensity(); - Entropy_BC = GetFluidModel()->GetEntropy(); - - - /* --- Computes the inverse matrix R_c --- */ - conv_numerics->ComputeResJacobianGiles(GetFluidModel(), AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan], - AverageTurboVelocity[val_marker][iSpan], alphaIn_BC, gammaIn_BC, R_c, R_c_inv); - - GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][nSpanWiseSections], AverageDensity[val_marker][nSpanWiseSections]); - AverageEnthalpy = GetFluidModel()->GetStaticEnergy() + AveragePressure[val_marker][nSpanWiseSections]/AverageDensity[val_marker][nSpanWiseSections]; - AverageEntropy = GetFluidModel()->GetEntropy(); - - - avgVel2 = 0.0; - for (iDim = 0; iDim < nDim; iDim++) avgVel2 += AverageVelocity[val_marker][iSpan][iDim]*AverageVelocity[val_marker][iSpan][iDim]; - if (nDim == 2){ - R[0] = -(AverageEntropy - Entropy_BC); - R[1] = -(AverageTurboVelocity[val_marker][nSpanWiseSections][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][nSpanWiseSections][0]); - R[2] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); - } - - else{ - R[0] = -(AverageEntropy - Entropy_BC); - R[1] = -(AverageTurboVelocity[val_marker][nSpanWiseSections][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][nSpanWiseSections][0]); - R[2] = -(AverageTurboVelocity[val_marker][nSpanWiseSections][2] - tan(gammaIn_BC)*AverageTurboVelocity[val_marker][nSpanWiseSections][0]); - R[3] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); - - } - /* --- Compute the avg component c_avg = R_c^-1 * R --- */ - for (iVar = 0; iVar < nVar-1; iVar++){ - c_avg[iVar] = 0.0; - for (jVar = 0; jVar < nVar-1; jVar++){ - c_avg[iVar] += R_c_inv[iVar][jVar]*R[jVar]; - } - } + BC_Giles_Total_Inlet(conv_numerics, config, val_marker, c_avg, R, R_c_inv, R_c, iSpan, nSpanWiseSections); break; case MIXING_IN: case MIXING_OUT: - /* --- Compute average jump of primitive at the mixing-plane interface--- */ - deltaprim[0] = ExtAverageDensity[val_marker][iSpan] - AverageDensity[val_marker][iSpan]; - deltaprim[1] = ExtAverageTurboVelocity[val_marker][iSpan][0] - AverageTurboVelocity[val_marker][iSpan][0]; - deltaprim[2] = ExtAverageTurboVelocity[val_marker][iSpan][1] - AverageTurboVelocity[val_marker][iSpan][1]; - if (nDim == 2){ - deltaprim[3] = ExtAveragePressure[val_marker][iSpan] - AveragePressure[val_marker][iSpan]; - } - else - { - deltaprim[3] = ExtAverageTurboVelocity[val_marker][iSpan][2] - AverageTurboVelocity[val_marker][iSpan][2]; - deltaprim[4] = ExtAveragePressure[val_marker][iSpan] - AveragePressure[val_marker][iSpan]; - } - - - /* --- Compute average jump of charachteristic variable at the mixing-plane interface--- */ - GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan]); - AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); - conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][iSpan], deltaprim, c_avg); + BC_Giles_Mixing(conv_numerics, val_marker, deltaprim, c_avg, iSpan); break; case MIXING_IN_1D: case MIXING_OUT_1D: - /* --- Compute average jump of primitive at the mixing-plane interface--- */ - deltaprim[0] = ExtAverageDensity[val_marker][nSpanWiseSections] - AverageDensity[val_marker][nSpanWiseSections]; - deltaprim[1] = ExtAverageTurboVelocity[val_marker][nSpanWiseSections][0] - AverageTurboVelocity[val_marker][nSpanWiseSections][0]; - deltaprim[2] = ExtAverageTurboVelocity[val_marker][nSpanWiseSections][1] - AverageTurboVelocity[val_marker][nSpanWiseSections][1]; - if (nDim == 2){ - deltaprim[3] = ExtAveragePressure[val_marker][nSpanWiseSections] - AveragePressure[val_marker][nSpanWiseSections]; - } - else - { - deltaprim[3] = ExtAverageTurboVelocity[val_marker][nSpanWiseSections][2] - AverageTurboVelocity[val_marker][nSpanWiseSections][2]; - deltaprim[4] = ExtAveragePressure[val_marker][nSpanWiseSections] - AveragePressure[val_marker][nSpanWiseSections]; - } - - /* --- Compute average jump of charachteristic variable at the mixing-plane interface--- */ - GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][nSpanWiseSections], AverageDensity[val_marker][nSpanWiseSections]); - AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); - conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][nSpanWiseSections], deltaprim, c_avg); + BC_Giles_Mixing(conv_numerics, val_marker, deltaprim, c_avg, nSpanWiseSections); break; @@ -6395,6 +6237,8 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_e /= config->GetPressure_Ref(); /* --- Compute avg characteristic jump --- */ + c_avg[nDim+1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); + c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); break; @@ -6403,6 +6247,8 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_e /= config->GetPressure_Ref(); /* --- Compute avg characteristic jump --- */ + c_avg[nDim+1] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); + c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); break; @@ -6426,67 +6272,66 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } + auto const iZone = config->GetiZone(); + /*--- Loop over all the vertices on this boundary marker ---*/ SU2_OMP_FOR_DYN(OMP_MIN_SIZE) - for (iVertex = 0; iVertex < geometry->GetnVertexSpan(val_marker,iSpan); iVertex++) { + for (unsigned long iVertex = 0; iVertex < geometry->GetnVertexSpan(val_marker,iSpan); iVertex++) { /*--- using the other vertex information for retrieving some information ---*/ - oldVertex = geometry->turbovertex[val_marker][iSpan][iVertex]->GetOldVertex(); - V_boundary= GetCharacPrimVar(val_marker, oldVertex); + auto oldVertex = geometry->turbovertex[val_marker][iSpan][iVertex]->GetOldVertex(); + auto V_boundary= GetCharacPrimVar(val_marker, oldVertex); /*--- Index of the closest interior node ---*/ - Point_Normal = geometry->vertex[val_marker][oldVertex]->GetNormal_Neighbor(); + auto Point_Normal = geometry->vertex[val_marker][oldVertex]->GetNormal_Neighbor(); /*--- Normal vector for this vertex (negate for outward convention), * this normal is scaled with the area of the face of the element ---*/ geometry->vertex[val_marker][oldVertex]->GetNormal(Normal); - for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; + for (unsigned short iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; conv_numerics->SetNormal(Normal); /*--- find the node related to the vertex ---*/ - iPoint = geometry->turbovertex[val_marker][iSpan][iVertex]->GetNode(); + auto iPoint = geometry->turbovertex[val_marker][iSpan][iVertex]->GetNode(); /*--- Normalize Normal vector for this vertex (already for outward convention) ---*/ geometry->turbovertex[val_marker][iSpan][iVertex]->GetNormal(UnitNormal); geometry->turbovertex[val_marker][iSpan][iVertex]->GetTurboNormal(turboNormal); /*--- Retrieve solution at this boundary node ---*/ - V_domain = nodes->GetPrimitive(iPoint); + auto V_domain = nodes->GetPrimitive(iPoint); /*--- Retrieve domain Secondary variables ---*/ - S_domain = nodes->GetSecondary(iPoint); + auto S_domain = nodes->GetSecondary(iPoint); /*--- Compute the internal state u_i ---*/ - Velocity2_i = 0; - for (iDim = 0; iDim < nDim; iDim++) + su2double Velocity2_i = 0; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { Velocity_i[iDim] = nodes->GetVelocity(iPoint,iDim); Velocity2_i += Velocity_i[iDim]*Velocity_i[iDim]; } - Density_i = nodes->GetDensity(iPoint); + auto Density_i = nodes->GetDensity(iPoint); - Energy_i = nodes->GetEnergy(iPoint); - StaticEnergy_i = Energy_i - 0.5*Velocity2_i; + auto Energy_i = nodes->GetEnergy(iPoint); + auto StaticEnergy_i = Energy_i - 0.5*Velocity2_i; GetFluidModel()->SetTDState_rhoe(Density_i, StaticEnergy_i); - Pressure_i = GetFluidModel()->GetPressure(); + auto Pressure_i = GetFluidModel()->GetPressure(); ComputeTurboVelocity(Velocity_i, turboNormal, turboVelocity, config->GetMarker_All_TurbomachineryFlag(val_marker),config->GetKind_TurboMachinery(iZone)); + deltaprim[0] = Density_i - AverageDensity[val_marker][iSpan]; + deltaprim[1] = turboVelocity[0] - AverageTurboVelocity[val_marker][iSpan][0]; + deltaprim[2] = turboVelocity[1] - AverageTurboVelocity[val_marker][iSpan][1]; if (nDim == 2){ - deltaprim[0] = Density_i - AverageDensity[val_marker][iSpan]; - deltaprim[1] = turboVelocity[0] - AverageTurboVelocity[val_marker][iSpan][0]; - deltaprim[2] = turboVelocity[1] - AverageTurboVelocity[val_marker][iSpan][1]; deltaprim[3] = Pressure_i - AveragePressure[val_marker][iSpan]; } else{ - deltaprim[0] = Density_i - AverageDensity[val_marker][iSpan]; - deltaprim[1] = turboVelocity[0] - AverageTurboVelocity[val_marker][iSpan][0]; - deltaprim[2] = turboVelocity[1] - AverageTurboVelocity[val_marker][iSpan][1]; deltaprim[3] = turboVelocity[2] - AverageTurboVelocity[val_marker][iSpan][2]; deltaprim[4] = Pressure_i - AveragePressure[val_marker][iSpan]; } @@ -6496,8 +6341,13 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][iSpan], deltaprim, cj); - pitch = geometry->GetMaxAngularCoord(val_marker, iSpan) - geometry->GetMinAngularCoord(val_marker,iSpan); - theta = geometry->turbovertex[val_marker][iSpan][iVertex]->GetRelAngularCoord(); + auto pitch = geometry->GetMaxAngularCoord(val_marker, iSpan) - geometry->GetMinAngularCoord(val_marker,iSpan); + auto theta = geometry->turbovertex[val_marker][iSpan][iVertex]->GetRelAngularCoord(); + + auto const AvgMach = AverageTurboMach[0]*AverageTurboMach[0] + AverageTurboMach[1]*AverageTurboMach[1]; + auto Beta_inf= I*complex(sqrt(1.0 - AvgMach)); + su2double TwoPiThetaFreq_Pitch; + long freq; switch(config->GetKind_Data_Giles(Marker_Tag)) { @@ -6507,11 +6357,18 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu case TOTAL_CONDITIONS_PT: case MIXING_IN:case TOTAL_CONDITIONS_PT_1D: case MIXING_IN_1D: if(config->GetSpatialFourier()){ + + /* --- Initial definition of variables ---*/ + auto c2js = complex(0.0,0.0); + auto c3js = complex(0.0,0.0); + auto c2ks = complex(0.0,0.0); + auto c3ks = complex(0.0,0.0); + auto c2js_Re = c2js.real(); + auto c3js_Re = c3js.real(); + su2double Beta_inf2; + if (AvgMach <= 1.0){ - Beta_inf= I*complex(sqrt(1.0 - AvgMach)); - c2js = complex(0.0,0.0); - c3js = complex(0.0,0.0); - for(k=0; k < 2*kend_max+1; k++){ + for(unsigned long k=0; k < 2*kend_max+1; k++){ freq = k - kend_max; if(freq >= (long)(-kend) && freq <= (long)(kend) && AverageTurboMach[0] > config->GetAverageMachLimit()){ TwoPiThetaFreq_Pitch = 2*PI_NUMBER*freq*theta/pitch; @@ -6530,16 +6387,10 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu c2js_Re = c2js.real(); c3js_Re = c3js.real(); - if (nDim == 2){ - dcjs[0] = 0.0 - cj[0]; - dcjs[1] = c2js_Re - cj[1]; - dcjs[2] = c3js_Re - cj[2]; - }else{ - dcjs[0] = 0.0 - cj[0]; - dcjs[1] = c2js_Re - cj[1]; - dcjs[2] = 0.0 - cj[2]; - dcjs[3] = c3js_Re - cj[3]; - } + dcjs[0] = 0.0 - cj[0]; + dcjs[1] = c2js_Re - cj[1]; + dcjs[2] = 0.0 - cj[2]; + dcjs[nDim] = c3js_Re - cj[nDim]; // Overwrites previous value in 2D case }else{ if (AverageTurboVelocity[val_marker][iSpan][1] >= 0.0){ @@ -6547,40 +6398,21 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu }else{ Beta_inf2= sqrt(AvgMach-1.0); } - if (nDim == 2){ - c2js_Re = -cj[3]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - c3js_Re = cj[3]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - c3js_Re *= (Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - }else{ - c2js_Re = -cj[4]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - c3js_Re = cj[4]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - c3js_Re *= (Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - } + c2js_Re = -cj[nDim+1]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + c3js_Re = cj[nDim+1]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + c3js_Re *= (Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - if (nDim == 2){ - dcjs[0] = 0.0 - cj[0]; - dcjs[1] = c2js_Re - cj[1]; - dcjs[2] = c3js_Re - cj[2]; - }else{ - dcjs[0] = 0.0 - cj[0]; - dcjs[1] = c2js_Re - cj[1]; - dcjs[2] = 0.0 - cj[2]; - dcjs[3] = c3js_Re - cj[3]; - } - } - } - else{ - if (nDim == 2){ - dcjs[0] = 0.0; - dcjs[1] = 0.0; - dcjs[2] = 0.0; - }else{ - dcjs[0] = 0.0; - dcjs[1] = 0.0; - dcjs[2] = 0.0; - dcjs[3] = 0.0; + dcjs[0] = 0.0 - cj[0]; + dcjs[1] = c2js_Re - cj[1]; + dcjs[2] = 0.0 - cj[2]; + dcjs[nDim] = c3js_Re - cj[nDim]; } + }else{ + dcjs[0] = 0.0; + dcjs[1] = 0.0; + dcjs[2] = 0.0; + dcjs[nDim] = 0.0; } /* --- Impose Inlet BC Reflecting--- */ delta_c[0] = relfacAvg*c_avg[0] + relfacFou*dcjs[0]; @@ -6599,6 +6431,7 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu /* --- implementation of Giles BC---*/ if(config->GetSpatialFourier()){ + su2double GilesBeta, cOutjs_Re; if (AvgMach > 1.0){ /* --- supersonic Giles implementation ---*/ if (AverageTurboVelocity[val_marker][iSpan][1] >= 0.0){ @@ -6622,9 +6455,9 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu }else{ /* --- subsonic Giles implementation ---*/ - Beta_inf= I*complex(sqrt(1.0 - AvgMach)); - cOutjs = complex(0.0,0.0); - for(k=0; k < 2*kend_max+1; k++){ + auto cOutjs = complex(0.0,0.0); + auto cOutks = complex(0.0,0.0); + for(unsigned long k=0; k < 2*kend_max+1; k++){ freq = k - kend_max; if(freq >= (long)(-kend) && freq <= (long)(kend) && AverageTurboMach[0] > config->GetAverageMachLimit()){ TwoPiThetaFreq_Pitch = 2*PI_NUMBER*freq*theta/pitch; @@ -6639,41 +6472,25 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } cOutjs_Re = cOutjs.real(); - if (nDim == 2){ - dcjs[3] = cOutjs_Re - cj[3]; - } - else{ - dcjs[4] = cOutjs_Re - cj[4]; - } + dcjs[nDim+1] = cOutjs_Re - cj[nDim+1]; } } else{ - if (nDim == 2){ - dcjs[3] = 0.0; - } - else{ - dcjs[4] = 0.0; - } + dcjs[nDim+1] = 0.0; } /* --- Impose Outlet BC Non-Reflecting --- */ delta_c[0] = cj[0]; delta_c[1] = cj[1]; delta_c[2] = cj[2]; - if (nDim == 2){ - delta_c[3] = relfacAvg*c_avg[3] + relfacFou*dcjs[3]; - } - else{ - delta_c[3] = cj[3]; - delta_c[4] = relfacAvg*c_avg[4] + relfacFou*dcjs[4]; - } - + delta_c[3] = cj[3]; + delta_c[nDim+1] = relfacAvg*c_avg[nDim+1] + relfacFou*dcjs[nDim+1]; /*--- Automatically impose supersonic autoflow ---*/ if (abs(AverageTurboMach[0]) > 1.0000){ delta_c[0] = 0.0; delta_c[1] = 0.0; delta_c[2] = 0.0; - delta_c[2] = 0.0; + delta_c[3] = 0.0; if (nDim == 3)delta_c[4] = 0.0; } @@ -6685,31 +6502,25 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } /*--- Compute primitive jump from characteristic variables ---*/ - for (iVar = 0; iVar < nVar; iVar++) + for (unsigned short iVar = 0; iVar < nVar; iVar++) { deltaprim[iVar]=0.0; - for (jVar = 0; jVar < nVar; jVar++) + for (unsigned short jVar = 0; jVar < nVar; jVar++) { deltaprim[iVar] += R_Matrix[iVar][jVar]*delta_c[jVar]; } } /*--- retrieve boundary variables ---*/ - Density_b = AverageDensity[val_marker][iSpan] + deltaprim[0]; + su2double Density_b = AverageDensity[val_marker][iSpan] + deltaprim[0]; turboVelocity[0] = AverageTurboVelocity[val_marker][iSpan][0] + deltaprim[1]; turboVelocity[1] = AverageTurboVelocity[val_marker][iSpan][1] + deltaprim[2]; - if(nDim == 2){ - Pressure_b = AveragePressure[val_marker][iSpan] + deltaprim[3]; - } - else{ - turboVelocity[2] = AverageTurboVelocity[val_marker][iSpan][2] + deltaprim[3]; - Pressure_b = AveragePressure[val_marker][iSpan] + deltaprim[4]; - } - + turboVelocity[nDim-1] = AverageTurboVelocity[val_marker][iSpan][nDim-1] + deltaprim[nDim]; + su2double Pressure_b = AveragePressure[val_marker][iSpan] + deltaprim[nDim+1]; ComputeBackVelocity(turboVelocity, turboNormal, Velocity_b, config->GetMarker_All_TurbomachineryFlag(val_marker), config->GetKind_TurboMachinery(iZone)); - Velocity2_b = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { + su2double Velocity2_b = 0.0; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { Velocity2_b+= Velocity_b[iDim]*Velocity_b[iDim]; } @@ -6717,20 +6528,20 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_b = Pressure_i; Density_b = Density_i; Velocity2_b = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { + for (unsigned short iDim = 0; iDim < nDim; iDim++) { Velocity_b[iDim] = Velocity_i[iDim]; Velocity2_b+= Velocity_b[iDim]*Velocity_b[iDim]; } } GetFluidModel()->SetTDState_Prho(Pressure_b, Density_b); - Energy_b = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_b; - Temperature_b= GetFluidModel()->GetTemperature(); - Enthalpy_b = Energy_b + Pressure_b/Density_b; + su2double Energy_b = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_b; + su2double Temperature_b= GetFluidModel()->GetTemperature(); + su2double Enthalpy_b = Energy_b + Pressure_b/Density_b; /*--- Primitive variables, using the derived quantities ---*/ V_boundary[0] = Temperature_b; - for (iDim = 0; iDim < nDim; iDim++) + for (unsigned short iDim = 0; iDim < nDim; iDim++) V_boundary[iDim+1] = Velocity_b[iDim]; V_boundary[nDim+1] = Pressure_b; V_boundary[nDim+2] = Density_b; @@ -6758,12 +6569,12 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu LinSysRes.AddBlock(iPoint, residual); /*--- Jacobian contribution for implicit integration ---*/ - if (implicit) + if (config->GetKind_TimeIntScheme() == EULER_IMPLICIT) Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); /*--- Viscous contribution ---*/ - if (viscous) { + if (config->GetViscous()) { /*--- Set laminar and eddy viscosity at the infinity ---*/ @@ -6817,7 +6628,7 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu /*--- Jacobian contribution for implicit integration ---*/ - if (implicit) + if (config->GetKind_TimeIntScheme() == EULER_IMPLICIT) Jacobian.SubtractBlock2Diag(iPoint, residual.jacobian_i); } @@ -6839,11 +6650,11 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu delete [] delta_c; delete [] deltaprim; delete [] cj; - for (iVar = 0; iVar < nVar; iVar++) + for (unsigned short iVar = 0; iVar < nVar; iVar++) { delete [] R_Matrix[iVar]; } - for (iVar = 0; iVar < nVar-1; iVar++) + for (unsigned short iVar = 0; iVar < nVar-1; iVar++) { delete [] R_c_inv[iVar]; delete [] R_c[iVar]; @@ -6861,6 +6672,73 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu delete [] turboVelocity; } +void CEulerSolver::BC_Giles_Total_Inlet( CNumerics *conv_numerics, CConfig *config, unsigned short val_marker, + su2double *&c_avg, su2double *&R, su2double **&R_c_inv, su2double **&R_c, unsigned short iSpan, unsigned short SpanwisePosition) { + + /*--- Calculates boundry condition for quasi-3D and 1D total boundary conditions ---*/ + + /*--- Retrieve the specified boundary conditions. ---*/ + auto const Marker_Tag = config->GetMarker_All_TagBound(val_marker); + auto P_Total = config->GetGiles_Var1(Marker_Tag); + auto T_Total = config->GetGiles_Var2(Marker_Tag); + auto const FlowDir = config->GetGiles_FlowDir(Marker_Tag); + auto const alphaIn_BC = atan(FlowDir[1]/FlowDir[0]); + + su2double gammaIn_BC = 0; + if (nDim == 3){ + gammaIn_BC = FlowDir[2]; //atan(FlowDir[2]/FlowDir[0]); + } + + /*--- Non-dim. the inputs---*/ + P_Total /= config->GetPressure_Ref(); + T_Total /= config->GetTemperature_Ref(); + + /* --- Computes the total state --- */ + GetFluidModel()->SetTDState_PT(P_Total, T_Total); + auto const Enthalpy_BC = GetFluidModel()->GetStaticEnergy()+ GetFluidModel()->GetPressure()/GetFluidModel()->GetDensity(); + auto const Entropy_BC = GetFluidModel()->GetEntropy(); + + /* --- Computes the inverse matrix R_c --- */ + conv_numerics->ComputeResJacobianGiles(GetFluidModel(), AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan], + AverageTurboVelocity[val_marker][iSpan], alphaIn_BC, gammaIn_BC, R_c, R_c_inv); + + GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][SpanwisePosition], AverageDensity[val_marker][SpanwisePosition]); + auto AverageEnthalpy = GetFluidModel()->GetStaticEnergy() + AveragePressure[val_marker][SpanwisePosition]/AverageDensity[val_marker][SpanwisePosition]; + auto AverageEntropy = GetFluidModel()->GetEntropy(); + + + su2double avgVel2 = 0.0; + for (unsigned short iDim = 0; iDim < nDim; iDim++) avgVel2 += AverageVelocity[val_marker][iSpan][iDim]*AverageVelocity[val_marker][iSpan][iDim]; + + R[0] = -(AverageEntropy - Entropy_BC); + R[1] = -(AverageTurboVelocity[val_marker][SpanwisePosition][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][SpanwisePosition][0]); + R[2] = -(AverageTurboVelocity[val_marker][SpanwisePosition][2] - tan(gammaIn_BC)*AverageTurboVelocity[val_marker][SpanwisePosition][0]); + R[nDim] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); + + /* --- Compute the avg component c_avg = R_c^-1 * R --- */ + for (unsigned short iVar = 0; iVar < nVar-1; iVar++){ + c_avg[iVar] = 0.0; + for (unsigned short jVar = 0; jVar < nVar-1; jVar++){ + c_avg[iVar] += R_c_inv[iVar][jVar]*R[jVar]; + } + } +} + +void CEulerSolver::BC_Giles_Mixing(CNumerics *conv_numerics, unsigned short val_marker, su2double *&deltaprim, su2double *&c_avg, unsigned short SpanwisePosition) { + + /* --- Compute average jump of primitive at the mixing-plane interface--- */ + deltaprim[0] = ExtAverageDensity[val_marker][SpanwisePosition] - AverageDensity[val_marker][SpanwisePosition]; + deltaprim[1] = ExtAverageTurboVelocity[val_marker][SpanwisePosition][0] - AverageTurboVelocity[val_marker][SpanwisePosition][0]; + deltaprim[2] = ExtAverageTurboVelocity[val_marker][SpanwisePosition][1] - AverageTurboVelocity[val_marker][SpanwisePosition][1]; + deltaprim[3] = ExtAverageTurboVelocity[val_marker][SpanwisePosition][2] - AverageTurboVelocity[val_marker][SpanwisePosition][2]; + deltaprim[nDim+1] = ExtAveragePressure[val_marker][SpanwisePosition] - AveragePressure[val_marker][SpanwisePosition]; + + /* --- Compute average jump of charachteristic variable at the mixing-plane interface--- */ + GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][SpanwisePosition], AverageDensity[val_marker][SpanwisePosition]); + auto const AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); + conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][SpanwisePosition], deltaprim, c_avg); +} + void CEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { @@ -7346,41 +7224,36 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST); /*--- Supersonic inlet flow: there are no outgoing characteristics, - so all flow variables can be imposed at the inlet. - First, retrieve the specified values for the primitive variables. ---*/ - - const su2double Temperature = config->GetInlet_Temperature(Marker_Tag) / config->GetTemperature_Ref(); - const su2double Pressure = config->GetInlet_Pressure(Marker_Tag) / config->GetPressure_Ref(); - const auto* Vel = config->GetInlet_Velocity(Marker_Tag); + so all flow variables can be imposed at the inlet. ---*/ - su2double Velocity[MAXNDIM] = {0.0}; - for (unsigned short iDim = 0; iDim < nDim; iDim++) - Velocity[iDim] = Vel[iDim] / config->GetVelocity_Ref(); + 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(); - /*--- Density at the inlet from the gas law ---*/ + if (!geometry->nodes->GetDomain(iPoint)) continue; - const su2double Density = Pressure / (Gas_Constant * Temperature); + /*--- Retrieve the inlet profile, note that total conditions are reused as static. ---*/ - /*--- Compute the energy from the specified state ---*/ + const su2double Temperature = Inlet_Ttotal[val_marker][iVertex] / config->GetTemperature_Ref(); + const su2double Pressure = Inlet_Ptotal[val_marker][iVertex] / config->GetPressure_Ref(); + su2double Velocity[MAXNDIM] = {0.0}; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { + Velocity[iDim] = Inlet_FlowDir[val_marker][iVertex][iDim] / config->GetVelocity_Ref(); + } - const su2double Velocity2 = GeometryToolbox::SquaredNorm(int(MAXNDIM), Velocity); - su2double Energy = Pressure / (Density * Gamma_Minus_One) + 0.5 * Velocity2; - if (tkeNeeded) Energy += GetTke_Inf(); + /*--- Density at the inlet from the gas law. ---*/ - /*--- Loop over all the vertices on this boundary marker ---*/ + const su2double Density = Pressure / (Gas_Constant * Temperature); - 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(); + /*--- Compute the energy from the specified state. ---*/ - if (!geometry->nodes->GetDomain(iPoint)) continue; + const su2double Velocity2 = GeometryToolbox::SquaredNorm(int(MAXNDIM), Velocity); + su2double Energy = Pressure / (Density * Gamma_Minus_One) + 0.5 * Velocity2; + if (tkeNeeded) Energy += GetTke_Inf(); - /*--- Allocate the value at the inlet ---*/ + /*--- Primitive variables, using the derived quantities. ---*/ auto* V_inlet = GetCharacPrimVar(val_marker, iVertex); - - /*--- Primitive variables, using the derived quantities ---*/ - V_inlet[prim_idx.Temperature()] = Temperature; V_inlet[prim_idx.Pressure()] = Pressure; V_inlet[prim_idx.Density()] = Density; @@ -7388,17 +7261,17 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con for (unsigned short iDim = 0; iDim < nDim; iDim++) V_inlet[iDim+prim_idx.Velocity()] = Velocity[iDim]; - /*--- Current solution at this boundary node ---*/ + /*--- Current solution at this boundary node. ---*/ - auto* V_domain = nodes->GetPrimitive(iPoint); + const auto* V_domain = nodes->GetPrimitive(iPoint); - /*--- Normal vector for this vertex (negate for outward convention) ---*/ + /*--- Normal vector for this vertex (negate for outward convention). ---*/ su2double Normal[MAXNDIM] = {0.0}; geometry->vertex[val_marker][iVertex]->GetNormal(Normal); for (unsigned short iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; - /*--- Set various quantities in the solver class ---*/ + /*--- Set various quantities in the solver class. ---*/ conv_numerics->SetNormal(Normal); conv_numerics->SetPrimitive(V_domain, V_inlet); @@ -7407,13 +7280,13 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint), geometry->nodes->GetGridVel(iPoint)); - /*--- Compute the residual using an upwind scheme ---*/ + /*--- Compute the residual using an upwind scheme. ---*/ auto residual = conv_numerics->ComputeResidual(config); LinSysRes.AddBlock(iPoint, residual); - /*--- Jacobian contribution for implicit integration ---*/ + /*--- Jacobian contribution for implicit integration. ---*/ if (implicit) Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); diff --git a/SU2_CFD/src/solvers/CNEMONSSolver.cpp b/SU2_CFD/src/solvers/CNEMONSSolver.cpp index b30b99edebe..5b12013cee2 100644 --- a/SU2_CFD/src/solvers/CNEMONSSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMONSSolver.cpp @@ -166,7 +166,7 @@ void CNEMONSSolver::SetPrimitive_Gradient_GG(CGeometry *geometry, const CConfig const auto& primitives = nodes->GetPrimitive_Aux(); - computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, gradient); + computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, primitives, 0, nPrimVarGrad, prim_idx.Velocity(), gradient); } void CNEMONSSolver::Viscous_Residual(CGeometry *geometry, diff --git a/SU2_CFD/src/solvers/CRadP1Solver.cpp b/SU2_CFD/src/solvers/CRadP1Solver.cpp index d102e3b1d9a..21e5458a81c 100644 --- a/SU2_CFD/src/solvers/CRadP1Solver.cpp +++ b/SU2_CFD/src/solvers/CRadP1Solver.cpp @@ -150,12 +150,12 @@ void CRadP1Solver::Preprocessing(CGeometry *geometry, CSolver **solver_container /*--- Compute the Solution gradients ---*/ if (config->GetReconstructionGradientRequired()) { - if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, true); - if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, true); - if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, true); + if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, -1, true); + if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, -1, true); + if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, -1, true); } - if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config); - if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config); + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config, -1); + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config, -1); } diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index b9d03fe3ee2..bfbd4edad58 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -2097,7 +2097,7 @@ void CSolver::SetAuxVar_Gradient_GG(CGeometry *geometry, const CConfig *config) auto& gradient = base_nodes->GetAuxVarGradient(); computeGradientsGreenGauss(this, MPI_QUANTITIES::AUXVAR_GRADIENT, PERIODIC_NONE, *geometry, - *config, solution, 0, base_nodes->GetnAuxVar(), gradient); + *config, solution, 0, base_nodes->GetnAuxVar(), -1, gradient); } void CSolver::SetAuxVar_Gradient_LS(CGeometry *geometry, const CConfig *config) { @@ -2108,20 +2108,19 @@ void CSolver::SetAuxVar_Gradient_LS(CGeometry *geometry, const CConfig *config) auto& rmatrix = base_nodes->GetRmatrix(); computeGradientsLeastSquares(this, MPI_QUANTITIES::AUXVAR_GRADIENT, PERIODIC_NONE, *geometry, *config, - weighted, solution, 0, base_nodes->GetnAuxVar(), gradient, rmatrix); + weighted, solution, 0, base_nodes->GetnAuxVar(), -1, gradient, rmatrix); } -void CSolver::SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config, bool reconstruction) { +void CSolver::SetSolution_Gradient_GG(CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction) { const auto& solution = base_nodes->GetSolution(); auto& gradient = reconstruction? base_nodes->GetGradient_Reconstruction() : base_nodes->GetGradient(); const auto comm = reconstruction? MPI_QUANTITIES::SOLUTION_GRAD_REC : MPI_QUANTITIES::SOLUTION_GRADIENT; const auto commPer = reconstruction? PERIODIC_SOL_GG_R : PERIODIC_SOL_GG; - - computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, solution, 0, nVar, gradient); + computeGradientsGreenGauss(this, comm, commPer, *geometry, *config, solution, 0, nVar, idxVel, gradient); } -void CSolver::SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config, bool reconstruction) { +void CSolver::SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction) { /*--- Set a flag for unweighted or weighted least-squares. ---*/ bool weighted; @@ -2141,7 +2140,7 @@ void CSolver::SetSolution_Gradient_LS(CGeometry *geometry, const CConfig *config auto& gradient = reconstruction? base_nodes->GetGradient_Reconstruction() : base_nodes->GetGradient(); const auto comm = reconstruction? MPI_QUANTITIES::SOLUTION_GRAD_REC : MPI_QUANTITIES::SOLUTION_GRADIENT; - computeGradientsLeastSquares(this, comm, commPer, *geometry, *config, weighted, solution, 0, nVar, gradient, rmatrix); + computeGradientsLeastSquares(this, comm, commPer, *geometry, *config, weighted, solution, 0, nVar, idxVel, gradient, rmatrix); } void CSolver::SetUndivided_Laplacian(CGeometry *geometry, const CConfig *config) { @@ -2240,7 +2239,7 @@ void CSolver::SetGridVel_Gradient(CGeometry *geometry, const CConfig *config) co auto rmatrix = CVectorOfMatrix(nPoint,nDim,nDim); computeGradientsLeastSquares(nullptr, MPI_QUANTITIES::GRID_VELOCITY, PERIODIC_NONE, *geometry, *config, - true, gridVel, 0, nDim, gridVelGrad, rmatrix); + true, gridVel, 0, nDim, 0, gridVelGrad, rmatrix); } void CSolver::SetSolution_Limiter(CGeometry *geometry, const CConfig *config) { @@ -3589,15 +3588,26 @@ void CSolver::LoadInletProfile(CGeometry **geometry, /*--- Skip if this is the wrong type of marker. ---*/ if (config->GetMarker_All_KindBC(iMarker) != KIND_MARKER) continue; - string Marker_Tag = config->GetMarker_All_TagBound(iMarker); - su2double p_total = config->GetInletPtotal(Marker_Tag); - su2double t_total = config->GetInletTtotal(Marker_Tag); - auto flow_dir = config->GetInletFlowDir(Marker_Tag); - std::stringstream columnName,columnValue; + const string Marker_Tag = config->GetMarker_All_TagBound(iMarker); + std::stringstream columnName,columnValue; columnValue << setprecision(15); columnValue << std::scientific; + su2double p_total, t_total; + const su2double* flow_dir = nullptr; + + if (KIND_MARKER == INLET_FLOW) { + p_total = config->GetInletPtotal(Marker_Tag); + t_total = config->GetInletTtotal(Marker_Tag); + flow_dir = config->GetInletFlowDir(Marker_Tag); + } else if (KIND_MARKER == SUPERSONIC_INLET) { + p_total = config->GetInlet_Pressure(Marker_Tag); + t_total = config->GetInlet_Temperature(Marker_Tag); + flow_dir = config->GetInlet_Velocity(Marker_Tag); + } else { + SU2_MPI::Error("Unsupported type of inlet.", CURRENT_FUNCTION); + } columnValue << t_total << "\t" << p_total <<"\t"; for (unsigned short iDim = 0; iDim < nDim; iDim++) { columnValue << flow_dir[iDim] <<"\t"; @@ -3606,7 +3616,9 @@ void CSolver::LoadInletProfile(CGeometry **geometry, columnName << "# COORD-X " << setw(24) << "COORD-Y " << setw(24); if(nDim==3) columnName << "COORD-Z " << setw(24); - if (config->GetKind_Regime()==ENUM_REGIME::COMPRESSIBLE){ + if (KIND_MARKER == SUPERSONIC_INLET) { + columnName << "TEMPERATURE" << setw(24) << "PRESSURE " << setw(24); + } else if (config->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE) { switch (config->GetKind_Inlet()) { /*--- compressible conditions ---*/ case INLET_TYPE::TOTAL_CONDITIONS: @@ -3617,7 +3629,8 @@ void CSolver::LoadInletProfile(CGeometry **geometry, break; default: SU2_MPI::Error("Unsupported INLET_TYPE.", CURRENT_FUNCTION); - break; } + break; + } } else { switch (config->GetKind_Inc_Inlet(Marker_Tag)) { /*--- incompressible conditions ---*/ @@ -3675,10 +3688,16 @@ void CSolver::LoadInletProfile(CGeometry **geometry, } + /*--- There are no markers of this type. ---*/ + + const unsigned short has_names = !columnNames.empty(); + unsigned short any_has_names; + SU2_MPI::Allreduce(&has_names, &any_has_names, 1, MPI_UNSIGNED_SHORT, MPI_MAX, SU2_MPI::GetComm()); + if (!any_has_names) return; /*--- Read the profile data from an ASCII file. ---*/ - CMarkerProfileReaderFVM profileReader(geometry[MESH_0], config, profile_filename, KIND_MARKER, nCol_InletFile, columnNames,columnValues); + CMarkerProfileReaderFVM profileReader(geometry[MESH_0], config, profile_filename, KIND_MARKER, nCol_InletFile, columnNames, columnValues); /*--- Load data from the restart into correct containers. ---*/ @@ -3914,7 +3933,7 @@ void CSolver::LoadInletProfile(CGeometry **geometry, const auto Marker_Tag = config->GetMarker_All_TagBound(iMarker); - /* Check the number of columns and allocate temp array. */ + /*--- Check the number of columns and allocate temp array. ---*/ unsigned short nColumns = 0; for (auto jMarker = 0ul; jMarker < profileReader.GetNumberOfProfiles(); jMarker++) { @@ -3948,12 +3967,10 @@ void CSolver::LoadInletProfile(CGeometry **geometry, the averaging. ---*/ for (auto iChildren = 0u; iChildren < geometry[iMesh]->nodes->GetnChildren_CV(iPoint); iChildren++) { - const auto Point_Fine = geometry[iMesh]->nodes->GetChildren_CV(iPoint, iChildren); - - auto Area_Children = solver[iMesh-1][KIND_SOLVER]->GetInletAtVertex(Inlet_Fine.data(), Point_Fine, KIND_MARKER, - Marker_Tag, geometry[iMesh-1], config); + const auto Area_Children = + solver[iMesh-1][KIND_SOLVER]->GetInletAtVertex(iMarker, iVertex, geometry[iMesh-1], Inlet_Fine.data()); for (auto iVar = 0u; iVar < nColumns; iVar++) - Inlet_Values[iVar] += Inlet_Fine[iVar]*Area_Children/Area_Parent; + Inlet_Values[iVar] += Inlet_Fine[iVar] * Area_Children / Area_Parent; } /*--- Set the boundary area-averaged inlet values for the coarse point. ---*/ diff --git a/SU2_CFD/src/solvers/CSpeciesSolver.cpp b/SU2_CFD/src/solvers/CSpeciesSolver.cpp index 3c7ac895708..832c9014511 100644 --- a/SU2_CFD/src/solvers/CSpeciesSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesSolver.cpp @@ -415,59 +415,16 @@ void CSpeciesSolver::SetInletAtVertex(const su2double *val_inlet, } -su2double CSpeciesSolver::GetInletAtVertex(su2double *val_inlet, - unsigned long val_inlet_point, - unsigned short val_kind_marker, - string val_marker, - const CGeometry *geometry, - const CConfig *config) const { - /*--- Local variables ---*/ - - unsigned short iMarker; - unsigned long iPoint, iVertex; - su2double Area = 0.0; - su2double Normal[3] = {0.0,0.0,0.0}; - - /*--- Alias positions within inlet file for readability ---*/ - - if (val_kind_marker == INLET_FLOW) { - - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) && - (config->GetMarker_All_TagBound(iMarker) == val_marker)) { - - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) { - - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - - if (iPoint == val_inlet_point) { - - /*-- Compute boundary face area for this vertex. ---*/ - - geometry->vertex[iMarker][iVertex]->GetNormal(Normal); - Area = GeometryToolbox::Norm(nDim, Normal); - - /*--- Access and store the inlet variables for this vertex. ---*/ - for (unsigned short iVar = 0; iVar < nVar; iVar++) - val_inlet[Inlet_Position + iVar] = Inlet_SpeciesVars[iMarker][iVertex][iVar]; - - /*--- Exit once we find the point. ---*/ - - return Area; - - } - } - } - } - - } - - /*--- If we don't find a match, then the child point is not on the - current inlet boundary marker. Return zero area so this point does - not contribute to the restriction operator and continue. ---*/ +su2double CSpeciesSolver::GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const { + for (unsigned short iVar = 0; iVar < nVar; iVar++) + val_inlet[Inlet_Position + iVar] = Inlet_SpeciesVars[iMarker][iVertex][iVar]; - return Area; + /*--- Compute boundary face area for this vertex. ---*/ + su2double Normal[MAXNDIM] = {0.0}; + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + return GeometryToolbox::Norm(nDim, Normal); } void CSpeciesSolver::SetUniformInlet(const CConfig* config, unsigned short iMarker) { diff --git a/SU2_CFD/src/solvers/CTransLMSolver.cpp b/SU2_CFD/src/solvers/CTransLMSolver.cpp index 1fdf2a47de1..902a67925c4 100644 --- a/SU2_CFD/src/solvers/CTransLMSolver.cpp +++ b/SU2_CFD/src/solvers/CTransLMSolver.cpp @@ -185,10 +185,10 @@ void CTransLMSolver::Postprocessing(CGeometry *geometry, CSolver **solver_contai /*--- Compute LM model gradients. ---*/ if (config->GetKind_Gradient_Method() == GREEN_GAUSS) { - SetSolution_Gradient_GG(geometry, config); + SetSolution_Gradient_GG(geometry, config, -1); } if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { - SetSolution_Gradient_LS(geometry, config); + SetSolution_Gradient_LS(geometry, config, -1); } AD::StartNoSharedReading(); diff --git a/SU2_CFD/src/solvers/CTurbSASolver.cpp b/SU2_CFD/src/solvers/CTurbSASolver.cpp index f53596e9901..40e19bd024c 100644 --- a/SU2_CFD/src/solvers/CTurbSASolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSASolver.cpp @@ -308,6 +308,8 @@ void CTurbSASolver::Viscous_Residual(const unsigned long iEdge, const CGeometry* void CTurbSASolver::Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container, CConfig *config, unsigned short iMesh) { + bool axisymmetric = config->GetAxisymmetric(); + const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); const bool harmonic_balance = (config->GetTime_Marching() == TIME_MARCHING::HARMONIC_BALANCE); const bool transition_BC = config->GetSAParsedOptions().bc; @@ -383,6 +385,11 @@ void CTurbSASolver::Source_Residual(CGeometry *geometry, CSolver **solver_contai numerics->SetIntermittency(solver_container[TRANS_SOL]->GetNodes()->GetSolution(iPoint, 0)); } + if (axisymmetric) { + /*--- Set y coordinate ---*/ + numerics->SetCoord(geometry->nodes->GetCoord(iPoint), geometry->nodes->GetCoord(iPoint)); + } + /*--- Compute the source term ---*/ auto residual = numerics->ComputeResidual(config); @@ -1521,61 +1528,16 @@ void CTurbSASolver::SetInletAtVertex(const su2double *val_inlet, } -su2double CTurbSASolver::GetInletAtVertex(su2double *val_inlet, - unsigned long val_inlet_point, - unsigned short val_kind_marker, - string val_marker, - const CGeometry *geometry, - const CConfig *config) const { - /*--- Local variables ---*/ - - unsigned short iMarker; - unsigned long iPoint, iVertex; - su2double Area = 0.0; - su2double Normal[3] = {0.0,0.0,0.0}; - - /*--- Alias positions within inlet file for readability ---*/ - - if (val_kind_marker == INLET_FLOW) { - - unsigned short position = nDim+2+nDim; - - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) && - (config->GetMarker_All_TagBound(iMarker) == val_marker)) { - - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++){ - - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - - if (iPoint == val_inlet_point) { - - /*-- Compute boundary face area for this vertex. ---*/ - - geometry->vertex[iMarker][iVertex]->GetNormal(Normal); - Area = GeometryToolbox::Norm(nDim, Normal); - - /*--- Access and store the inlet variables for this vertex. ---*/ - - val_inlet[position] = Inlet_TurbVars[iMarker][iVertex][0]; - - /*--- Exit once we find the point. ---*/ - - return Area; - - } - } - } - } - - } - - /*--- If we don't find a match, then the child point is not on the - current inlet boundary marker. Return zero area so this point does - not contribute to the restriction operator and continue. ---*/ +su2double CTurbSASolver::GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const { + const auto position = nDim + 2 + nDim; + val_inlet[position] = Inlet_TurbVars[iMarker][iVertex][0]; - return Area; + /*--- Compute boundary face area for this vertex. ---*/ + su2double Normal[MAXNDIM] = {0.0}; + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + return GeometryToolbox::Norm(nDim, Normal); } void CTurbSASolver::SetUniformInlet(const CConfig* config, unsigned short iMarker) { diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index 555f8e77155..63c29102175 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -97,7 +97,6 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh constants[5] = 0.0828; //beta_2 constants[6] = 0.09; //betaStar constants[7] = 0.31; //a1 - if (sstParsedOptions.version == SST_OPTIONS::V1994){ 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 @@ -108,12 +107,6 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh constants[9] = 0.44; //gamma_2 constants[10] = 10.0; // production limiter constant } - /*--- Initialize lower and upper limits---*/ - lowerlimit[0] = 1.0e-10; - upperlimit[0] = 1.0e10; - - lowerlimit[1] = 1.0e-4; - upperlimit[1] = 1.0e15; /*--- Far-field flow state quantities and initialization. ---*/ su2double rhoInf, *VelInf, muLamInf, Intensity, viscRatio, muT_Inf; @@ -132,6 +125,22 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh Solution_Inf[0] = kine_Inf; Solution_Inf[1] = omega_Inf; + /*--- Constants to use for lower limit of turbulence variable. ---*/ + su2double Ck = config->GetKFactor_LowerLimit(); + su2double Cw = config->GetOmegaFactor_LowerLimit(); + + /*--- Initialize lower and upper limits. ---*/ + if (sstParsedOptions.dll) { + lowerlimit[0] = Ck * kine_Inf; + lowerlimit[1] = Cw * omega_Inf; + } else { + lowerlimit[0] = 1.0e-10; + lowerlimit[1] = 1.0e-4; + } + + upperlimit[0] = 1.0e10; + upperlimit[1] = 1.0e15; + /*--- Eddy viscosity, initialized without stress limiter at the infinity ---*/ muT_Inf = rhoInf*kine_Inf/omega_Inf; @@ -200,10 +209,10 @@ void CTurbSSTSolver::Postprocessing(CGeometry *geometry, CSolver **solver_contai /*--- Compute turbulence gradients. ---*/ if (config->GetKind_Gradient_Method() == GREEN_GAUSS) { - SetSolution_Gradient_GG(geometry, config); + SetSolution_Gradient_GG(geometry, config, -1); } if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { - SetSolution_Gradient_LS(geometry, config); + SetSolution_Gradient_LS(geometry, config, -1); } AD::StartNoSharedReading(); @@ -992,63 +1001,18 @@ void CTurbSSTSolver::SetInletAtVertex(const su2double *val_inlet, } -su2double CTurbSSTSolver::GetInletAtVertex(su2double *val_inlet, - unsigned long val_inlet_point, - unsigned short val_kind_marker, - string val_marker, - const CGeometry *geometry, - const CConfig *config) const { - /*--- Local variables ---*/ - - unsigned short iMarker; - unsigned long iPoint, iVertex; - su2double Area = 0.0; - su2double Normal[3] = {0.0,0.0,0.0}; - - /*--- Alias positions within inlet file for readability ---*/ - - if (val_kind_marker == INLET_FLOW) { - - unsigned short tke_position = nDim+2+nDim; - unsigned short omega_position = nDim+2+nDim+1; - - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - if ((config->GetMarker_All_KindBC(iMarker) == INLET_FLOW) && - (config->GetMarker_All_TagBound(iMarker) == val_marker)) { - - for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++){ - - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - - if (iPoint == val_inlet_point) { - - /*-- Compute boundary face area for this vertex. ---*/ - - geometry->vertex[iMarker][iVertex]->GetNormal(Normal); - Area = GeometryToolbox::Norm(nDim, Normal); - - /*--- Access and store the inlet variables for this vertex. ---*/ - - val_inlet[tke_position] = Inlet_TurbVars[iMarker][iVertex][0]; - val_inlet[omega_position] = Inlet_TurbVars[iMarker][iVertex][1]; - - /*--- Exit once we find the point. ---*/ - - return Area; - - } - } - } - } - - } - - /*--- If we don't find a match, then the child point is not on the - current inlet boundary marker. Return zero area so this point does - not contribute to the restriction operator and continue. ---*/ +su2double CTurbSSTSolver::GetInletAtVertex(unsigned short iMarker, unsigned long iVertex, + const CGeometry* geometry, su2double* val_inlet) const { + const auto tke_position = nDim + 2 + nDim; + const auto omega_position = tke_position + 1; + val_inlet[tke_position] = Inlet_TurbVars[iMarker][iVertex][0]; + val_inlet[omega_position] = Inlet_TurbVars[iMarker][iVertex][1]; - return Area; + /*--- Compute boundary face area for this vertex. ---*/ + su2double Normal[MAXNDIM] = {0.0}; + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + return GeometryToolbox::Norm(nDim, Normal); } void CTurbSSTSolver::SetUniformInlet(const CConfig* config, unsigned short iMarker) { diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 0818c6074a0..1170ae71e05 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -361,7 +361,7 @@ def run_filediff(self, with_tsan=False, with_asan=False): # Assert that both files have the same number of lines if len(fromlines) != len(tolines): - diff = ["ERROR: Number of lines in " + fromfile + " and " + tofile + " differ."] + diff = ["ERROR: Number of lines in " + fromfile + " and " + tofile + " differ: " + len(fromlines) + " vs " + len(tolines) + "."] passed = False # Loop through all lines diff --git a/TestCases/cont_adj_euler/naca0012/of_grad_cd.dat.ref b/TestCases/cont_adj_euler/naca0012/of_grad_cd.dat.ref index 2f88439a0b9..c9cda259729 100644 --- a/TestCases/cont_adj_euler/naca0012/of_grad_cd.dat.ref +++ b/TestCases/cont_adj_euler/naca0012/of_grad_cd.dat.ref @@ -1,39 +1,39 @@ VARIABLES="VARIABLE" , "GRADIENT" , "FINDIFF_STEP" - 0 , 0.00534068 , 0.0001 - 1 , 0.024277 , 0.0001 - 2 , 0.0299625 , 0.0001 - 3 , 0.0234274 , 0.0001 - 4 , 0.00339532 , 0.0001 - 5 , -0.0308111 , 0.0001 - 6 , -0.0775489 , 0.0001 - 7 , -0.132033 , 0.0001 - 8 , -0.186824 , 0.0001 - 9 , -0.233924 , 0.0001 - 10 , -0.268068 , 0.0001 - 11 , -0.289743 , 0.0001 - 12 , -0.305716 , 0.0001 - 13 , -0.325863 , 0.0001 - 14 , -0.358209 , 0.0001 - 15 , -0.407234 , 0.0001 - 16 , -0.47926 , 0.0001 - 17 , -0.595838 , 0.0001 - 18 , -0.850012 , 0.0001 - 19 , 0.565996 , 0.0001 - 20 , 1.14457 , 0.0001 - 21 , 1.50247 , 0.0001 - 22 , 1.62875 , 0.0001 - 23 , 1.54948 , 0.0001 - 24 , 1.31563 , 0.0001 - 25 , 0.989959 , 0.0001 - 26 , 0.634653 , 0.0001 - 27 , 0.301875 , 0.0001 - 28 , 0.0291654 , 0.0001 - 29 , -0.160196 , 0.0001 - 30 , -0.253741 , 0.0001 - 31 , -0.247195 , 0.0001 - 32 , -0.147396 , 0.0001 - 33 , 0.0181901 , 0.0001 - 34 , 0.197238 , 0.0001 - 35 , 0.341451 , 0.0001 - 36 , 0.467151 , 0.0001 - 37 , 0.682825 , 0.0001 + 0 , -0.346339 , 0.0001 + 1 , -0.248052 , 0.0001 + 2 , -0.1713 , 0.0001 + 3 , -0.122543 , 0.0001 + 4 , -0.101101 , 0.0001 + 5 , -0.104377 , 0.0001 + 6 , -0.127816 , 0.0001 + 7 , -0.164567 , 0.0001 + 8 , -0.206037 , 0.0001 + 9 , -0.24378 , 0.0001 + 10 , -0.272396 , 0.0001 + 11 , -0.292059 , 0.0001 + 12 , -0.308757 , 0.0001 + 13 , -0.331226 , 0.0001 + 14 , -0.366529 , 0.0001 + 15 , -0.418919 , 0.0001 + 16 , -0.495353 , 0.0001 + 17 , -0.619083 , 0.0001 + 18 , -0.889061 , 0.0001 + 19 , 0.118474 , 0.0001 + 20 , 0.849882 , 0.0001 + 21 , 1.3251 , 0.0001 + 22 , 1.53508 , 0.0001 + 23 , 1.51368 , 0.0001 + 24 , 1.31908 , 0.0001 + 25 , 1.02001 , 0.0001 + 26 , 0.68317 , 0.0001 + 27 , 0.363758 , 0.0001 + 28 , 0.100704 , 0.0001 + 29 , -0.0830333 , 0.0001 + 30 , -0.176826 , 0.0001 + 31 , -0.178825 , 0.0001 + 32 , -0.096525 , 0.0001 + 33 , 0.0472928 , 0.0001 + 34 , 0.21134 , 0.0001 + 35 , 0.355622 , 0.0001 + 36 , 0.490104 , 0.0001 + 37 , 0.718618 , 0.0001 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 272a21372a2..6da6f45e3ee 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.96 , 0.001 - 1 , -12995.9 , 0.001 - 2 , -21781.3 , 0.001 - 3 , -27675.3 , 0.001 - 4 , -30437.9 , 0.001 - 5 , -30443.9 , 0.001 - 6 , -28343.1 , 0.001 - 7 , -24794.2 , 0.001 - 8 , -20329.4 , 0.001 - 9 , -15376.6 , 0.001 - 10 , -10418.0 , 0.001 - 11 , -6201.67 , 0.001 - 12 , -3878.08 , 0.001 - 13 , -4910.93 , 0.001 - 14 , -10573.5 , 0.001 - 15 , -20610.7 , 0.001 - 16 , -30110.4 , 0.001 - 17 , -26294.5 , 0.001 - 18 , -62393.8 , 0.001 - 19 , -2797.26 , 0.001 - 20 , -832.067 , 0.001 - 21 , -668.081 , 0.001 - 22 , -1773.25 , 0.001 - 23 , -5718.86 , 0.001 - 24 , -13717.8 , 0.001 - 25 , -25699.0 , 0.001 - 26 , -40061.9 , 0.001 - 27 , -53729.8 , 0.001 - 28 , -62415.6 , 0.001 - 29 , -61293.4 , 0.001 - 30 , -46505.9 , 0.001 - 31 , -17841.7 , 0.001 - 32 , 18183.8 , 0.001 - 33 , 48447.5 , 0.001 - 34 , 62322.0 , 0.001 - 35 , 64139.5 , 0.001 - 36 , 54568.2 , 0.001 - 37 , 64856.8 , 0.001 + 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 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 4992e46a279..1b4c963eeac 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.2253591473 , -105.6097088 , 0.2588459007 , -1.5322178 , 0.0 , -1.537499867 , 0.0 , 0.0 , 1.202899757 , 0.0 - 1 , 0.3835809166 , -173.3502205 , 0.4363886002 , -2.415957492 , 0.0 , -2.424902327 , 0.0 , 0.0 , 1.053347497 , 0.0 - 2 , 0.5151776249 , -228.9760041 , 0.5835870252 , -3.129538494 , 0.0 , -3.141524632 , 0.0 , 0.0 , 0.6540715539 , 0.0 + 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 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 0d54e740402..51bda5370df 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.00766235 , 0.0001 - 1 , 0.00499567 , 0.0001 - 2 , 0.00249665 , 0.0001 - 3 , 0.000904607 , 0.0001 + 0 , 0.00767644 , 0.0001 + 1 , 0.00498358 , 0.0001 + 2 , 0.00246134 , 0.0001 + 3 , 0.000893054 , 0.0001 diff --git a/TestCases/disc_adj_fsi/dyn_fsi/grad_dv.opt.ref b/TestCases/disc_adj_fsi/dyn_fsi/grad_dv.opt.ref index b2e428bed5a..d0a338410ba 100644 --- a/TestCases/disc_adj_fsi/dyn_fsi/grad_dv.opt.ref +++ b/TestCases/disc_adj_fsi/dyn_fsi/grad_dv.opt.ref @@ -1,9 +1,9 @@ INDEX GRAD -0 -3.461460667601000e-03 -1 -1.841786311588663e-03 -2 -7.915536257748967e-04 -3 -2.739622082729717e-04 -4 -2.734869133461104e-04 -5 -7.881162428890206e-04 -6 -1.828978290516677e-03 -7 -3.427219398258316e-03 +0 -5.239274142145693e-03 +1 -2.822866261832595e-03 +2 -1.251166631047082e-03 +3 -4.746312021502222e-04 +4 -4.726421390156573e-04 +5 -1.242307153964931e-03 +6 -2.797799332331688e-03 +7 -5.181304648315885e-03 diff --git a/TestCases/disc_adj_heat/disc_adj_heat.cfg b/TestCases/disc_adj_heat/disc_adj_heat.cfg index 85e7d30e98c..cb258ec6333 100644 --- a/TestCases/disc_adj_heat/disc_adj_heat.cfg +++ b/TestCases/disc_adj_heat/disc_adj_heat.cfg @@ -208,6 +208,6 @@ SURFACE_FILENAME= surface_flow SURFACE_ADJ_FILENAME= surface_adjoint -OUTPUT_WRT_FREQ= 1 +OUTPUT_WRT_FREQ= 100 SCREEN_OUTPUT= (INNER_ITER, RMS_ADJ_PRESSURE, RMS_ADJ_NU_TILDE, RMS_ADJ_HEAT, SENS_VEL_IN, SENS_PRESS_OUT) diff --git a/TestCases/euler/bluntbody/blunt.cfg b/TestCases/euler/bluntbody/blunt.cfg index f9ece1cbae4..a76c6be19ba 100644 --- a/TestCases/euler/bluntbody/blunt.cfg +++ b/TestCases/euler/bluntbody/blunt.cfg @@ -43,7 +43,7 @@ MARKER_MONITORING = ( wall ) % ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 3.0 +CFL_NUMBER= 6.0 CFL_ADAPT= NO CFL_ADAPT_PARAM= ( 1.1, 0.9, 5.0, 50.0 ) ITER= 2500 diff --git a/TestCases/euler/channel/inv_channel_RK.cfg b/TestCases/euler/channel/inv_channel_RK.cfg index ee2b3513e14..8e20a09f14c 100644 --- a/TestCases/euler/channel/inv_channel_RK.cfg +++ b/TestCases/euler/channel/inv_channel_RK.cfg @@ -44,7 +44,7 @@ MARKER_MONITORING= ( upper_wall, lower_wall ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 2.0 +CFL_NUMBER= 2.5 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/euler/naca0012/inv_NACA0012_Roe.cfg b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg index 6215d0870ae..087bca16ebc 100644 --- a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg +++ b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg @@ -41,11 +41,11 @@ MARKER_MONITORING= ( airfoil ) % ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 4.0 +CFL_NUMBER= 20.0 CFL_ADAPT= NO CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) -ITER= 110 +ITER= 1000 LINEAR_SOLVER= BCGSTAB LINEAR_SOLVER_ERROR= 1E-6 LINEAR_SOLVER_ITER= 5 @@ -57,8 +57,8 @@ MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 2, 2 ) MG_POST_SMOOTH= ( 1, 1, 1, 1 ) MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1 ) -MG_DAMP_RESTRICTION= 1.0 -MG_DAMP_PROLONGATION= 1.0 +MG_DAMP_RESTRICTION= 0.80 +MG_DAMP_PROLONGATION= 0.80 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % diff --git a/TestCases/euler/wedge/inv_wedge_HLLC.cfg b/TestCases/euler/wedge/inv_wedge_HLLC.cfg index 30120e792dd..77c20175c22 100644 --- a/TestCases/euler/wedge/inv_wedge_HLLC.cfg +++ b/TestCases/euler/wedge/inv_wedge_HLLC.cfg @@ -42,7 +42,7 @@ MARKER_MONITORING= ( upper, lower ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 1.0 +CFL_NUMBER= 4.0 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/fixed_cl/naca0012/inv_NACA0012.cfg b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg index 5842e3848dc..a66afe95074 100644 --- a/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg +++ b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg @@ -55,7 +55,7 @@ MARKER_DESIGNING = ( airfoil ) % NUM_METHOD_GRAD= GREEN_GAUSS OBJECTIVE_FUNCTION= DRAG -CFL_NUMBER= 5.0 +CFL_NUMBER=1000 ITER= 1000 % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% @@ -115,15 +115,15 @@ CONV_CAUCHY_EPS= 1E-6 MESH_FILENAME= mesh_NACA0012_inv.su2 MESH_FORMAT= SU2 MESH_OUT_FILENAME= mesh_out.su2 -SOLUTION_FILENAME= solution_flow.dat -SOLUTION_ADJ_FILENAME= solution_adj.dat +SOLUTION_FILENAME= solution_flow +SOLUTION_ADJ_FILENAME= solution_adj TABULAR_FORMAT= CSV CONV_FILENAME= history -RESTART_FILENAME= restart_flow.dat -RESTART_ADJ_FILENAME= restart_adj.dat +RESTART_FILENAME= restart_flow +RESTART_ADJ_FILENAME= restart_adj VOLUME_FILENAME= flow VOLUME_ADJ_FILENAME= adjoint -GRAD_OBJFUNC_FILENAME= of_grad.dat +GRAD_OBJFUNC_FILENAME= of_grad SURFACE_FILENAME= surface_flow SURFACE_ADJ_FILENAME= surface_adjoint OUTPUT_WRT_FREQ= 250 diff --git a/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg b/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg index 1b927581780..f2b6bd919aa 100644 --- a/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg +++ b/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg @@ -37,15 +37,16 @@ KIND_SCALAR_MODEL= FLAMELET DIFFUSIVITY_MODEL= FLAMELET VISCOSITY_MODEL= FLAMELET CONDUCTIVITY_MODEL= FLAMELET +FLAME_INIT_METHOD= FLAME_FRONT FLAME_INIT= (0.0032, 0.00, 0.00, 1.0, 0.1, 0.0, 1.0e-3, 0.1) % # progvar, enthalpy SPECIES_INIT = (0.0, -210000, 0.0, 0.0) -CONV_NUM_METHOD_SPECIES= SCALAR_UPWIND +CONV_NUM_METHOD_SPECIES= BOUNDED_SCALAR MUSCL_SPECIES= YES SLOPE_LIMITER_SPECIES= NONE TIME_DISCRE_SPECIES= EULER_IMPLICIT % SCALAR CLIPPING -SPECIES_CLIPPING= YES +SPECIES_CLIPPING= NO SPECIES_CLIPPING_MIN= 0 -2e6 0 0 SPECIES_CLIPPING_MAX= 1 2e6 1 1 % @@ -85,9 +86,9 @@ MARKER_ANALYZE_AVERAGE = AREA % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 350 +CFL_NUMBER= 50 CFL_ADAPT= NO -ITER= 100 +ITER= 10000 OUTPUT_WRT_FREQ= 100 % % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% @@ -126,8 +127,8 @@ MESH_FILENAME = mesh_structured.cgns MESH_OUT_FILENAME= mesh_out.su2 SOLUTION_FILENAME= solution RESTART_FILENAME= restart -%OUTPUT_FILES = (RESTART,PARAVIEW,PARAVIEW_MULTIBLOCK) -OUTPUT_FILES = (RESTART) +OUTPUT_FILES = (RESTART,PARAVIEW,PARAVIEW_MULTIBLOCK) +%OUTPUT_FILES = (RESTART) TABULAR_FORMAT = CSV CONV_FILENAME= history VOLUME_FILENAME= ch4_flame_cfd diff --git a/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_fluid.cfg b/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_fluid.cfg index e0828cc4d44..adf9a65020f 100644 --- a/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_fluid.cfg +++ b/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_fluid.cfg @@ -19,7 +19,7 @@ HISTORY_OUTPUT= RMS_RES AERO_COEFF FLOW_COEFF FLOW_COEFF_SURF VOLUME_OUTPUT= SOLUTION PRIMITIVE SOURCE RESIDUAL LOOKUP -OUTPUT_FILES= (RESTART_ASCII) +OUTPUT_FILES= (RESTART_ASCII, PARAVIEW) INNER_ITER= 1 @@ -55,6 +55,7 @@ FLUID_MODEL= FLUID_FLAMELET FILENAMES_INTERPOLATOR= (fgm_ch4.drg) CONTROLLING_VARIABLE_NAMES= (ProgressVariable, EnthalpyTot) CONTROLLING_VARIABLE_SOURCE_NAMES= (ProdRateTot_PV, NULL) +FLAME_INIT_METHOD= NONE FLAME_INIT= (0.004, 0.0, 0.0, 1.0, 0.0, 0.0, 0.2e-3, 1.0) % -------------------- SPECIES TRANSPORT ---------------------------------------% @@ -88,8 +89,8 @@ VISCOSITY_MODEL= FLAMELET % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% -%NUM_METHOD_GRAD= GREEN_GAUSS -NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +NUM_METHOD_GRAD= GREEN_GAUSS +%NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES CFL_NUMBER= 25 CFL_ADAPT= NO diff --git a/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_master.cfg b/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_master.cfg index 1ca70ab9d79..9a674d7a8e5 100644 --- a/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_master.cfg +++ b/TestCases/flamelet/03_laminar_premixed_ch4_flame_cht_cfd/lam_prem_ch4_cht_cfd_master.cfg @@ -37,7 +37,7 @@ RESTART_ADJ_FILENAME= restart_adj TIME_DOMAIN= NO OUTER_ITER= 10 -OUTPUT_WRT_FREQ= 500 +OUTPUT_WRT_FREQ= 100 SCREEN_WRT_FREQ_INNER= 1 SCREEN_WRT_FREQ_OUTER= 1 diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index bd7635e1413..c893649c1dd 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.667328, 2.797437, 0.018714, 0.006906] + channel.test_vals = [-2.965605, 2.459083, 0.016007, 0.042277] 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.023999, -3.515034, 0.339426, 0.022217] + naca0012.test_vals = [-4.444945, -3.941041, 0.318999, 0.022365] 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 = [-0.942862, 4.784581, -0.208106, 0.036665] + wedge.test_vals = [-1.368091, 4.302736, -0.243433, 0.042906] test_list.append(wedge) # ONERA M6 Wing @@ -75,7 +75,7 @@ def main(): oneram6.cfg_dir = "euler/oneram6" oneram6.cfg_file = "inv_ONERAM6.cfg" oneram6.test_iter = 10 - oneram6.test_vals = [0.281703, 0.011821] + oneram6.test_vals = [0.280800, 0.008623] test_list.append(oneram6) # Fixed CL NACA0012 @@ -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 = [-7.374806, -1.872330, 0.300000, 0.019471] + fixedCL_naca0012.test_vals = [-3.905038, 1.628019, 0.301067, 0.019483] 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.540010, 6.916656, 0.000027, 1.869004] + bluntbody.test_vals = [0.491773, 6.855541, 0.000298, 1.791791] 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 = [-9.154123, -3.663185, 0.001112, 0.036277, 2.361500, -2.325300, -2.278800, -2.278800] + flatplate.test_vals = [-7.700620, -2.229886, 0.001084, 0.036235, 2.361500, -2.325300, -1.823400, -1.823400] flatplate.test_vals_aarch64 = [-9.154130, -3.663197, 0.001112, 0.036277, 2.361500, -2.325300, -2.278800, -2.278800] test_list.append(flatplate) @@ -112,7 +112,7 @@ def main(): cylinder.cfg_dir = "navierstokes/cylinder" cylinder.cfg_file = "lam_cylinder.cfg" cylinder.test_iter = 25 - cylinder.test_vals = [-6.765429, -1.297425, 0.019571, 0.310233, 0.123270] + cylinder.test_vals = [-8.265865, -2.783635, -0.019914, 1.614879, -0.010191] cylinder.test_vals_aarch64 = [-6.765429, -1.297425, 0.019571, 0.310231, 0.123270] test_list.append(cylinder) @@ -121,8 +121,8 @@ def main(): cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 - cylinder_lowmach.test_vals = [-6.850130, -1.388096, -0.056036, 108.140809, 0.007988] - cylinder_lowmach.test_vals_aarch64 = [-6.850130, -1.388096, -0.056036, 108.140813, 0.007988] + cylinder_lowmach.test_vals = [-6.830996, -1.368850, -0.143956, 73.963354, 0.002457] + cylinder_lowmach.test_vals_aarch64 = [-6.830996, -1.368850, -0.143956, 73.963354, 0.002457] test_list.append(cylinder_lowmach) # 2D Poiseuille flow (body force driven with periodic inlet / outlet) @@ -139,8 +139,8 @@ 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.494728, -7.712546, -0.000000, 2.085796] - poiseuille_profile.test_vals_aarch64 = [-12.494717, -7.711274, -0.000000, 2.085796] + poiseuille_profile.test_vals = [-12.485957, -7.612048, -0.000000, 2.085796] + poiseuille_profile.test_vals_aarch64 = [-12.485957, -7.612048, -0.000000, 2.085796] test_list.append(poiseuille_profile) # 2D Rotational Periodic @@ -185,7 +185,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.157358, -6.736289, -0.176258, 0.057431] + turb_flatplate.test_vals = [-4.156553, -6.736064, -0.176184, 0.057478] test_list.append(turb_flatplate) # ONERA M6 Wing @@ -193,7 +193,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.388836, -6.689426, 0.230320, 0.157640, -32539.000000] + turb_oneram6.test_vals = [-2.392863, -6.689822, 0.230745, 0.158812, -33786.000000] test_list.append(turb_oneram6) # NACA0012 (SA, FUN3D finest grid results: CL=1.0983, CD=0.01242) @@ -255,7 +255,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.060634, -6.992273, -8.808757, -4.097753, -2019.800000] + axi_rans_air_nozzle_restart.test_vals = [-12.155957, -6.610384, -9.237797, -4.532605, -2019.700000] test_list.append(axi_rans_air_nozzle_restart) ################################# @@ -329,7 +329,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.589740, 0.790168, 0.937052, 3.922578] + harmonic_balance.test_vals = [-1.554985, 0.831796, 0.935728, 3.960209] test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil @@ -349,7 +349,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 = [-4.858287, -3.810487, 0.491850, 0.007002] + inc_euler_naca0012.test_vals = [-7.104363, -6.354829, 0.531976, 0.008467] test_list.append(inc_euler_naca0012) # C-D nozzle with pressure inlet and mass flow outlet @@ -357,8 +357,8 @@ 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 = [-5.971249, -4.910844, -0.000196, 0.121635] - inc_nozzle.test_vals_aarch64 = [-5.971248, -4.910844, -0.000196, 0.121635] + inc_nozzle.test_vals = [-6.363748, -5.564772, -0.003840, 0.126592] + inc_nozzle.test_vals_aarch64 = [-5.624385, -4.988472, -0.000096, 0.137032] test_list.append(inc_nozzle) ############################# @@ -395,7 +395,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.437996, -3.086189, -0.015600, 1.142212] + inc_lam_bend.test_vals = [-3.547250, -3.225803, -0.015148, 1.006543] inc_lam_bend.test_vals_aarch64 = [-3.437996, -3.086188, -0.015600, 1.142213] test_list.append(inc_lam_bend) @@ -424,7 +424,7 @@ def main(): inc_weakly_coupled.cfg_dir = "disc_adj_heat" inc_weakly_coupled.cfg_file = "primal.cfg" inc_weakly_coupled.test_iter = 10 - inc_weakly_coupled.test_vals = [-16.498562, -15.335587, -15.570565, -12.867787, -18.185331, -13.071436, 5.545800] + inc_weakly_coupled.test_vals = [-18.894811, -17.879327, -18.412938, -17.855948, -18.343462, -15.659612, 5.545700] test_list.append(inc_weakly_coupled) ###################################### @@ -467,7 +467,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.977520, 3.481804, -0.012402, -0.007454] + sine_gust.test_vals = [-1.977514, 3.481817, -0.010400, -0.008115] sine_gust.unsteady = True test_list.append(sine_gust) @@ -476,7 +476,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.418813, 0.004650, -0.001878, -0.000637, -0.000271] + cosine_gust.test_vals = [-2.418805, 0.002013, -0.001504, 0.000445, -0.000558] cosine_gust.unsteady = True cosine_gust.enabled_with_tsan = False test_list.append(cosine_gust) @@ -486,7 +486,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.844778, 0.000846, -0.000408] + gust_mesh_defo.test_vals = [-1.844761, 0.001116, -0.000265] gust_mesh_defo.unsteady = True gust_mesh_defo.enabled_with_tsan = False test_list.append(gust_mesh_defo) @@ -496,8 +496,8 @@ def main(): aeroelastic.cfg_dir = "aeroelastic" aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" aeroelastic.test_iter = 2 - aeroelastic.test_vals = [0.074432, 0.033108, -0.001650, -0.000127] - aeroelastic.test_vals_aarch64 = [0.074836, 0.033102, -0.001650, -0.000127] + aeroelastic.test_vals = [0.074058, 0.027628, -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 aeroelastic.enabled_with_tsan = False @@ -508,7 +508,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.714757, -5.882779, -0.215005, 0.023783, -618.130000] + ddes_flatplate.test_vals = [-2.714785, -5.882681, -0.215041, 0.023758, -617.440000] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) @@ -526,7 +526,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.665126, -3.793497, -3.716496, -3.148290] + unst_deforming_naca0012.test_vals = [-3.665202, -3.793253, -3.716498, -3.148334] unst_deforming_naca0012.unsteady = True unst_deforming_naca0012.enabled_with_tsan = False test_list.append(unst_deforming_naca0012) @@ -539,17 +539,17 @@ def main(): edge_VW = TestCase('edge_VW') edge_VW.cfg_dir = "nicf/edge" edge_VW.cfg_file = "edge_VW.cfg" - edge_VW.test_iter = 100 - edge_VW.test_vals = [-5.040246, 1.124521, -0.000009, 0.000000] + edge_VW.test_iter = 40 + edge_VW.test_vals = [-5.759815, 0.398128, -0.000009, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR edge_PPR = TestCase('edge_PPR') edge_PPR.cfg_dir = "nicf/edge" edge_PPR.cfg_file = "edge_PPR.cfg" - edge_PPR.test_iter = 100 - edge_PPR.test_vals = [-5.401604, 0.738202, -0.000035, 0.000000] - edge_PPR.test_vals_aarch64 = [-5.401642, 0.738164, -0.000035, 0.000000] + edge_PPR.test_iter = 40 + edge_PPR.test_vals = [-6.922907, -0.757793, -0.000034, 0.000000] + edge_PPR.test_vals_aarch64 = [-8.573595, -2.391849, -0.000034, 0.000000] test_list.append(edge_PPR) ###################################### @@ -561,7 +561,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273, 73273, 0.019884, 82.491] + Jones_tc_restart.test_vals = [-6.614627, -3.001324, -14.336143, -8.776079, -11.382919, -5.852328, 73273.000000, 73273.000000, 0.019884, 82.491000] test_list.append(Jones_tc_restart) # 2D axial stage @@ -569,7 +569,7 @@ def main(): axial_stage2D.cfg_dir = "turbomachinery/axial_stage_2D" axial_stage2D.cfg_file = "Axial_stage2D.cfg" axial_stage2D.test_iter = 20 - axial_stage2D.test_vals = [0.983739, 1.534333, -2.888521, 2.606770, -2.418339, 3.087275, 106380, 106380, 5.7325, 64.711] + axial_stage2D.test_vals = [0.983739, 1.534333, -2.888521, 2.606770, -2.418339, 3.087275, 106380.000000, 106380.000000, 5.732600, 64.711000] axial_stage2D.test_vals_aarch64 = [0.983739, 1.534333, -2.888521, 2.606770, -2.418339, 3.087275, 106380, 106380, 5.7325, 64.711] test_list.append(axial_stage2D) @@ -578,7 +578,7 @@ def main(): transonic_stator_restart.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator_restart.cfg_file = "transonic_stator_restart.cfg" transonic_stator_restart.test_iter = 20 - transonic_stator_restart.test_vals = [-5.007735, -3.099310, -2.751696, 1.091966, -3.542819, 2.163237, -471630, 94.866, -0.035738] + transonic_stator_restart.test_vals = [-5.007735, -3.099310, -2.751696, 1.091966, -3.542819, 2.163237, -471630.000000, 94.866000, -0.035738] transonic_stator_restart.test_vals_aarch64 = [-5.007735, -3.099310, -2.751696, 1.091966, -3.542819, 2.163237, -471630, 94.866, -0.035738] test_list.append(transonic_stator_restart) @@ -591,7 +591,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.188748, -10.631533] + uniform_flow.test_vals = [5.000000, 0.000000, -0.185381, -10.631535] uniform_flow.unsteady = True uniform_flow.multizone = True test_list.append(uniform_flow) @@ -601,7 +601,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.397975, 0.352765, 0.405420] + channel_2D.test_vals = [2.000000, 0.000000, 0.419762, 0.352170, 0.404385] channel_2D.unsteady = True channel_2D.multizone = True test_list.append(channel_2D) @@ -611,8 +611,8 @@ 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.620170, 0.505179, 0.415317] - channel_3D.test_vals_aarch64 = [2.000000, 0.000000, 0.620189, 0.505311, 0.415246] + channel_3D.test_vals = [2.000000, 0.000000, 0.623108, 0.505077, 0.412801] + channel_3D.test_vals_aarch64 = [2.000000, 0.000000, 0.620558, 0.504323, 0.412729] channel_3D.unsteady = True channel_3D.multizone = True channel_3D.enabled_with_tsan = False @@ -623,7 +623,7 @@ def main(): pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 - pipe.test_vals = [0.150024, 0.491949, 0.677759, 0.963991, 1.006947] + pipe.test_vals = [0.116650, 0.481386, 0.648698, 0.982997, 1.018359] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) @@ -633,7 +633,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.777568, 1.134807, 1.224137] + rotating_cylinders.test_vals = [3.000000, 0.000000, 0.719776, 1.111045, 1.154066] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) @@ -643,7 +643,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.214344, 1.663912] + supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.207949, 1.036083] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) @@ -694,7 +694,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.743227, -4.133479] + fsi2d.test_vals = [4.000000, 0.000000, -3.729243, -4.153954] fsi2d.multizone= True fsi2d.unsteady = True fsi2d.enabled_with_tsan = False @@ -705,7 +705,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 = [-5.397954, -5.719688, 0.000000, 10.000000] + stat_fsi.test_vals = [-5.425896, -5.797242, 0.000000, 6.000000] stat_fsi.test_vals_aarch64 = [-5.423016, -5.753459, 0.000000, 10.000000] stat_fsi.multizone = True test_list.append(stat_fsi) @@ -715,8 +715,8 @@ 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.355806, -4.060582, 0.000000, 103.000000] - dyn_fsi.test_vals_aarch64 = [-4.355806, -4.060582, 0.000000, 103.000000] + dyn_fsi.test_vals = [-4.330441, -4.057994, 0.000000, 103.000000] + dyn_fsi.test_vals_aarch64 = [-4.332167, -4.057742, 0.000000, 102.000000] dyn_fsi.multizone = True dyn_fsi.unsteady = True test_list.append(dyn_fsi) @@ -726,8 +726,8 @@ 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.474078, -4.242240, 0.000000, 36.000000] - stat_fsi_restart.test_vals_aarch64 = [-3.474081, -4.242372, 0.000000, 37.000000] + stat_fsi_restart.test_vals = [-3.463348, -4.232710, 0.000000, 37.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 5bf0befa263..0669ff42a30 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.561506, -8.926634, -0.000000, 0.005587] + discadj_naca0012.test_vals = [-3.560691, -8.925239, -0.000000, 0.005559] 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.730673, -3.832084, -0.000000, 0.000000] + discadj_cylinder3D.test_vals = [-3.764562, -3.719982, -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.087876, -3.481506, 0.068878, 0.000000] + discadj_arina2k.test_vals = [-3.534954, -3.773310, 0.027244, 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.092007, -2.652751, 0.000000] + discadj_incomp_NACA0012.test_vals = [20.000000, -4.087948, -2.655204, 0.000000] test_list.append(discadj_incomp_NACA0012) ##################################### @@ -123,7 +123,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.845995, -1.031097, 0.000000] + discadj_incomp_turb_NACA0012_sa.test_vals = [10.000000, -3.845995, -1.031096, 0.000000] test_list.append(discadj_incomp_turb_NACA0012_sa) # Adjoint Incompressible Turbulent NACA 0012 SST @@ -143,7 +143,7 @@ def main(): discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder" discadj_cylinder.cfg_file = "cylinder.cfg" discadj_cylinder.test_iter = 9 - discadj_cylinder.test_vals = [3.746907, -1.544882, -0.008321, 0.000014] + discadj_cylinder.test_vals = [3.746907, -1.544883, -0.008321, 0.000014] discadj_cylinder.unsteady = True discadj_cylinder.enabled_with_tsan = False test_list.append(discadj_cylinder) @@ -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.219713, -1.645717, -0.007513, 0.000013] + discadj_pitchingNACA0012.test_vals = [-1.221198, -1.647772, -0.007510, 0.000013] discadj_pitchingNACA0012.unsteady = True discadj_pitchingNACA0012.enabled_with_tsan = False test_list.append(discadj_pitchingNACA0012) @@ -199,7 +199,7 @@ def main(): discadj_trans_stator.cfg_dir = "disc_adj_turbomachinery/transonic_stator_2D" discadj_trans_stator.cfg_file = "transonic_stator.cfg" discadj_trans_stator.test_iter = 79 - discadj_trans_stator.test_vals = [79, 0.770065, 0.383137, 0.472153, -0.996484, 2.153296, -4.444301] + discadj_trans_stator.test_vals = [79.000000, 0.770094, 0.383191, 0.472139, -0.996477, 2.153270, -4.444323] discadj_trans_stator.test_vals_aarch64 = [79, 0.769987, 0.383135, 0.472391, -0.996504, 2.153296, -4.444301] discadj_trans_stator.enabled_with_tsan = False test_list.append(discadj_trans_stator) @@ -238,7 +238,7 @@ def main(): pywrapper_FEA_AD_FlowLoad.cfg_dir = "py_wrapper/disc_adj_fea/flow_load_sens" pywrapper_FEA_AD_FlowLoad.cfg_file = "configAD_fem.cfg" pywrapper_FEA_AD_FlowLoad.test_iter = 100 - pywrapper_FEA_AD_FlowLoad.test_vals = [-0.131415, -0.551701, -0.000364, -0.003101] #last 4 columns + pywrapper_FEA_AD_FlowLoad.test_vals = [-0.132037, -0.554472, -0.000364, -0.003101] pywrapper_FEA_AD_FlowLoad.test_vals_aarch64 = [-0.131745, -0.553214, -0.000364, -0.003101] pywrapper_FEA_AD_FlowLoad.command = TestCase.Command(exec = "python", param = "run_adjoint.py --parallel -f") pywrapper_FEA_AD_FlowLoad.timeout = 1600 @@ -253,8 +253,8 @@ 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.521422, 1.372295, 0.000000] #last 4 columns - pywrapper_CFD_AD_MeshDisp.test_vals_aarch64 = [30.000000, -2.516536, 1.386443, 0.000000] + pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.505480, 1.403813, 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 pywrapper_CFD_AD_MeshDisp.tol = 1e-2 diff --git a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg index 3b7da053aef..300dd64a5b5 100644 --- a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg +++ b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg @@ -43,7 +43,7 @@ MARKER_MONITORING= ( airfoil ) % ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% % NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 3.0 +CFL_NUMBER= 200.0 CFL_ADAPT= NO CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) @@ -51,13 +51,13 @@ ITER= 9999 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % -MGLEVEL= 2 +MGLEVEL= 3 MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) MG_POST_SMOOTH= ( 1, 1, 1, 1 ) MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1 ) -MG_DAMP_RESTRICTION= 0.85 -MG_DAMP_PROLONGATION= 0.85 +MG_DAMP_RESTRICTION= 0.9 +MG_DAMP_PROLONGATION= 0.9 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % diff --git a/TestCases/incomp_euler/nozzle/inv_nozzle.cfg b/TestCases/incomp_euler/nozzle/inv_nozzle.cfg index 0c793b2c903..9633d08fba5 100644 --- a/TestCases/incomp_euler/nozzle/inv_nozzle.cfg +++ b/TestCases/incomp_euler/nozzle/inv_nozzle.cfg @@ -46,7 +46,7 @@ MARKER_ANALYZE_AVERAGE = AREA % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 15.0 +CFL_NUMBER= 500 % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% % @@ -61,8 +61,8 @@ LINEAR_SOLVER_ITER= 5 MGLEVEL= 3 MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) -MG_POST_SMOOTH= ( 0, 0, 0, 0 ) -MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) +MG_POST_SMOOTH= ( 1, 1, 1, 0 ) +MG_CORRECTION_SMOOTH= ( 1, 1, 1, 0 ) MG_DAMP_RESTRICTION= 0.95 MG_DAMP_PROLONGATION= 0.95 diff --git a/TestCases/incomp_navierstokes/sphere/sphere.cfg b/TestCases/incomp_navierstokes/sphere/sphere.cfg new file mode 100644 index 00000000000..7f5ed6dd2fc --- /dev/null +++ b/TestCases/incomp_navierstokes/sphere/sphere.cfg @@ -0,0 +1,104 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: laminar flow around a sphere % +% Author: Nijso Beishuizen % +% Institution: Technische Universiteit Eindhoven % +% Date: 2024.05.05 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= INC_NAVIER_STOKES +KIND_TURB_MODEL= NONE +RESTART_SOL= YES +INC_NONDIM= DIMENSIONAL + +% ---------------- INCOMPRESSIBLE FLOW CONDITION DEFINITION -------------------% +% Re = rho*V*D/mu = 1*1*2.0/2.0 = 1.0 +INC_DENSITY_MODEL= CONSTANT +INC_ENERGY_EQUATION= NO +INC_DENSITY_INIT= 1.0 + +INC_VELOCITY_INIT= (1.0, 0.0, 0.0 ) +INC_VELOCITY_REF = 1 +INC_DENSITY_REF = 1.0 + +% --------------------------- VISCOSITY MODEL ---------------------------------% +% +VISCOSITY_MODEL= CONSTANT_VISCOSITY +MU_CONSTANT= 2.0 +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +REF_ORIGIN_MOMENT_X = 0.25 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +% sphere is 1/40 of a complete sphere +% area = pi*r^2 = 3.14159 +% 1/40 slice = 0.07854 +REF_AREA= 0.07854 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +MARKER_HEATFLUX= ( wall, 0.0 ) +MARKER_SYM= ( symmetry_left, symmetry_right ) +MARKER_FAR= ( farfield ) +MARKER_PLOTTING= ( wall ) +MARKER_MONITORING= ( wall ) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +NUM_METHOD_GRAD= GREEN_GAUSS +CFL_NUMBER= 10.0 +CFL_ADAPT= NO +ITER=50000 +VENKAT_LIMITER_COEFF= 0.01 + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= ILU +LINEAR_SOLVER_ERROR= 1E-05 +LINEAR_SOLVER_ITER= 5 + +% -------------------------- MULTIGRID PARAMETERS -----------------------------% +% +MGLEVEL= 1 +MGCYCLE= V_CYCLE +MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) +MG_POST_SMOOTH= ( 1, 1, 1, 1 ) +MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1 ) +MG_DAMP_RESTRICTION= 0.6 +MG_DAMP_PROLONGATION= 0.6 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +CONV_NUM_METHOD_FLOW= FDS +MUSCL_FLOW= YES +SLOPE_LIMITER_FLOW= NONE +JST_SENSOR_COEFF= ( 0.5, 0.04 ) +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +CONV_RESIDUAL_MINVAL= -10 +CONV_STARTITER= 10 +CONV_CAUCHY_ELEMS= 100 +CONV_CAUCHY_EPS= 1E-6 + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +MESH_FILENAME= slice_2syms.su2 +MESH_FORMAT= SU2 +SOLUTION_FILENAME= solution_flow.dat +TABULAR_FORMAT= CSV +CONV_FILENAME= history +RESTART_FILENAME= restart_flow.dat +VOLUME_FILENAME= flow +SURFACE_FILENAME= surface_flow +OUTPUT_WRT_FREQ= 100 +WRT_VOLUME_OVERWRITE= YES +SCREEN_OUTPUT= ( INNER_ITER, RMS_PRESSURE, RMS_VELOCITY-X, RMS_VELOCITY-Y, RMS_VELOCITY-Z, LIFT, DRAG) +VOLUME_OUTPUT= ( SOLUTION,PRIMITIVE,RESIDUAL,MULTIGRID, RANK ) diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref index f959a481490..2634fca1ff5 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref @@ -1,2 +1,2 @@ "VARIABLE" , "AVG_DENSITY[0]", "AVG_ENTHALPY[0]", "AVG_NORMALVEL[0]", "DRAG[0]" , "EFFICIENCY[0]" , "FORCE_X[0]" , "FORCE_Y[0]" , "FORCE_Z[0]" , "LIFT[0]" , "MOMENT_X[0]" , "MOMENT_Y[0]" , "MOMENT_Z[0]" , "SIDEFORCE[0]" , "SURFACE_MACH[0]", "SURFACE_MASSFLOW[0]", "SURFACE_MOM_DISTORTION[0]", "SURFACE_PRESSURE_DROP[0]", "SURFACE_SECONDARY[0]", "SURFACE_SECOND_OVER_UNIFORM[0]", "SURFACE_STATIC_PRESSURE[0]", "SURFACE_STATIC_TEMPERATURE[0]", "SURFACE_TOTAL_PRESSURE[0]", "SURFACE_TOTAL_TEMPERATURE[0]", "SURFACE_UNIFORMITY[0]", "AVG_TEMPERATURE[1]", "MAXIMUM_HEATFLUX[1]", "TOTAL_HEATFLUX[1]", "FINDIFF_STEP" -0 , 0.0 , -199999.9862164259, -5.551100000002363e-08, 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , -0.02000000026702864, 5.550999999230055e-08, -0.6560000001543109 , 0.0 , 0.6520000012111282 , 1.1399999999550658 , 319.9999980552093 , -39.999997625272954 , 260.999999568412 , -39.999997625272954 , -0.4999999969612645 , -269.99999818144715, 0.0 , -560.0000008598727, 1e-08 +0 , 0.0 , -300000.0026077032, -3.3306691000000184e-08, 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , -0.01999999887924986, 0.0 , -0.9000000009140585 , 0.0 , 0.9379999998948563 , 1.649999997743734 , 419.99999780273356 , -69.99999868639861 , 358.9999998609983 , -69.99999868639861 , -0.6000000052353016 , -380.0000001774606, 0.0 , -430.00000005122274, 1e-08 diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg index 8ff23f71359..d7c2698fc10 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg @@ -22,7 +22,7 @@ OUTER_ITER = 31 % CONV_RESIDUAL_MINVAL= -26 SCREEN_OUTPUT= (OUTER_ITER, BGS_PRESSURE[0], BGS_TEMPERATURE[0], BGS_TEMPERATURE[1], STREAMWISE_MASSFLOW[0], STREAMWISE_DP[0], AVG_TEMPERATURE[1], TOTAL_HEATFLUX[0] ) -SCREEN_WRT_FREQ_OUTER= 100 +SCREEN_WRT_FREQ_OUTER= 10 % HISTORY_OUTPUT= ( ITER, RMS_RES[0], RMS_RES[1], STREAMWISE_PERIODIC[0], FLOW_COEFF[0], HEAT[1] ) % diff --git a/TestCases/multiple_ffd/naca0012/of_grad_cd.dat.ref b/TestCases/multiple_ffd/naca0012/of_grad_cd.dat.ref index 81759ef4cd7..bce05aa9bf6 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.0767137 , 0.001 - 1 , -0.113024 , 0.001 + 0 , 0.0779208 , 0.001 + 1 , -0.115959 , 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 da2e3f10472..74adba36fa1 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.05685349197 , -0.4081397694 , 0.05417489043 , 0.1233787706 , 0.0 , 0.1221675908 , 0.0 , 0.0 , 0.009249264651 , 0.0 - 1 , -0.08020555475 , 8.976256797 , -0.08614647972 , 0.2713937953 , 0.0 , 0.2732084865 , 0.0 , 0.0 , 0.00847918122 , 0.0 + 0 , 0.06149476303 , -0.608748249 , 0.05888315926 , 0.1203589365 , 0.0 , 0.119045765 , 0.0 , 0.0 , 0.009719951712 , 0.0 + 1 , -0.08536237383 , 8.303168487 , -0.09097907726 , 0.2564786779 , 0.0 , 0.2584023411 , 0.0 , 0.0 , 0.004460595335 , 0.0 diff --git a/TestCases/navierstokes/cylinder/lam_cylinder.cfg b/TestCases/navierstokes/cylinder/lam_cylinder.cfg index 8c0efd53259..eb03eb6c121 100644 --- a/TestCases/navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/navierstokes/cylinder/lam_cylinder.cfg @@ -42,7 +42,7 @@ MARKER_MONITORING= ( cylinder ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 4.0 +CFL_NUMBER= 500.0 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/navierstokes/flatplate/lam_flatplate.cfg b/TestCases/navierstokes/flatplate/lam_flatplate.cfg index 34f572d5598..75541961acc 100644 --- a/TestCases/navierstokes/flatplate/lam_flatplate.cfg +++ b/TestCases/navierstokes/flatplate/lam_flatplate.cfg @@ -46,7 +46,7 @@ MARKER_ANALYZE= (inlet, outlet) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -CFL_NUMBER= 10000 +CFL_NUMBER= 1000 CFL_ADAPT= NO % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% @@ -60,11 +60,11 @@ LINEAR_SOLVER_ITER= 3 % MGLEVEL= 3 MGCYCLE= V_CYCLE -MG_PRE_SMOOTH= ( 1, 1, 1, 2 ) -MG_POST_SMOOTH= ( 0, 1, 1, 0 ) +MG_PRE_SMOOTH= ( 1, 2, 3, 0 ) +MG_POST_SMOOTH= ( 1, 1, 1, 0 ) MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) -MG_DAMP_RESTRICTION= 0.75 -MG_DAMP_PROLONGATION= 0.75 +MG_DAMP_RESTRICTION= 0.8 +MG_DAMP_PROLONGATION= 0.8 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % @@ -78,7 +78,7 @@ TIME_DISCRE_FLOW= EULER_IMPLICIT CONV_FIELD= RMS_DENSITY CONV_RESIDUAL_MINVAL= -12 CONV_STARTITER= 10 -ITER= 500 +ITER= 5000 % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % diff --git a/TestCases/nicf/edge/edge_PPR.cfg b/TestCases/nicf/edge/edge_PPR.cfg index 759187d1229..34fdba91303 100644 --- a/TestCases/nicf/edge/edge_PPR.cfg +++ b/TestCases/nicf/edge/edge_PPR.cfg @@ -10,7 +10,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% +% SOLVER= EULER MATH_PROBLEM= DIRECT RESTART_SOL= NO @@ -50,11 +50,11 @@ MARKER_MONITORING= ( WALL1 ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 10 -CFL_ADAPT= NO -CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) +CFL_NUMBER= 2.5 +CFL_ADAPT= YES +CFL_ADAPT_PARAM= ( 0.9, 1.1, 1.0, 200.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) -ITER= 500 +ITER= 51 % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% % @@ -65,8 +65,8 @@ LINEAR_SOLVER_ITER= 10 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % -MGLEVEL= 2 -MGCYCLE= V_CYCLE +MGLEVEL= 3 +MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) MG_POST_SMOOTH= ( 0, 0, 0, 0 ) MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) @@ -83,6 +83,7 @@ JST_SENSOR_COEFF= ( 0.5, 0.02 ) TIME_DISCRE_FLOW= EULER_IMPLICIT % --------------------------- CONVERGENCE PARAMETERS --------------------------% +% CONV_RESIDUAL_MINVAL= -12 CONV_STARTITER= 10 CONV_CAUCHY_ELEMS= 100 diff --git a/TestCases/nicf/edge/edge_VW.cfg b/TestCases/nicf/edge/edge_VW.cfg index 2646c8efb40..add439803e6 100644 --- a/TestCases/nicf/edge/edge_VW.cfg +++ b/TestCases/nicf/edge/edge_VW.cfg @@ -51,9 +51,9 @@ MARKER_MONITORING= ( WALL1 ) % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % NUM_METHOD_GRAD= GREEN_GAUSS -CFL_NUMBER= 10 -CFL_ADAPT= NO -CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) +CFL_NUMBER= 2.0 +CFL_ADAPT= YES +CFL_ADAPT_PARAM= ( 0.9, 1.1, 1.0, 200.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) ITER= 500 @@ -66,13 +66,13 @@ LINEAR_SOLVER_ITER= 10 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % -MGLEVEL= 2 -MGCYCLE= V_CYCLE +MGLEVEL= 3 +MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) -MG_POST_SMOOTH= ( 0, 0, 0, 0 ) +MG_POST_SMOOTH= ( 1, 1, 1, 1 ) MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) -MG_DAMP_RESTRICTION= 0.9 -MG_DAMP_PROLONGATION= 0.9 +MG_DAMP_RESTRICTION= 0.85 +MG_DAMP_PROLONGATION= 0.85 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 05cca0d50fb..0137b08806c 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 = [-15.313265, -15.180884, -15.291808, -8.488238, -15.010141, -15.920950] + cfd_flamelet_ch4.test_vals = [-13.665072, -12.593885, -14.249600, -6.069756, -14.816937, -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 = [-11.054149, -12.276393, -11.299388, -13.877670, -6.291548] + cfd_flamelet_ch4_axi.test_vals = [-10.935396, -11.476692, -11.302574, -12.734435, -6.110559] 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 = [-10.072805, -11.301138, -4.658971, -13.158224, -11.087511] + cfd_flamelet_ch4_partial_premix.test_vals = [-9.641526, -11.303947, -3.675920, -13.158386, -11.087893] 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 = [-10.003106, -9.843748, -3.289857, -11.338273] + cfd_flamelet_h2.test_vals = [-9.999540, -9.843936, -3.290033, -11.338454] cfd_flamelet_h2.new_output = True test_list.append(cfd_flamelet_h2) @@ -112,8 +112,8 @@ def main(): invwedge_a.cfg_dir = "nonequilibrium/invwedge" invwedge_a.cfg_file = "invwedge_ausm.cfg" invwedge_a.test_iter = 10 - invwedge_a.test_vals = [-1.042842, -1.567605, -18.301264, -18.628631, -18.574668, 2.275192, 1.879772, 5.319421, 0.873699] - invwedge_a.test_vals_aarch64 = [-1.042842, -1.567605, -18.301374, -18.628734, -18.574780, 2.275192, 1.879772, 5.319421, 0.873699] + invwedge_a.test_vals = [-1.069675, -1.594438, -18.299923, -18.627316, -18.573325, 2.245721, 1.874105, 5.290285, 0.847729] + invwedge_a.test_vals_aarch64 = [-1.070904, -1.595667, -18.299980, -18.627372, -18.573382, 2.244654, 1.871030, 5.289134, 0.846502] test_list.append(invwedge_a) # Inviscid single wedge, ausm+-up2, implicit @@ -121,8 +121,8 @@ def main(): invwedge_ap2.cfg_dir = "nonequilibrium/invwedge" invwedge_ap2.cfg_file = "invwedge_ausmplusup2.cfg" invwedge_ap2.test_iter = 10 - invwedge_ap2.test_vals = [-0.952589, -1.477352, -16.736014, -17.064021, -17.009120, 2.387086, 1.287286, 5.403046, 0.956402] - invwedge_ap2.test_vals_aarch64 = [-0.952589, -1.477352, -16.736014, -17.064021, -17.009120, 2.387086, 1.287286, 5.403046, 0.956402] + invwedge_ap2.test_vals = [-0.982059, -1.506822, -16.735977, -17.063993, -17.009083, 2.354326, 1.482256, 5.373931, 0.927155] + invwedge_ap2.test_vals_aarch64 = [-0.982059, -1.506822, -16.735977, -17.063993, -17.009083, 2.354326, 1.482256, 5.373931, 0.927155] test_list.append(invwedge_ap2) # Inviscid single wedge, msw, implicit @@ -130,8 +130,8 @@ def main(): invwedge_msw.cfg_dir = "nonequilibrium/invwedge" invwedge_msw.cfg_file = "invwedge_msw.cfg" invwedge_msw.test_iter = 10 - invwedge_msw.test_vals = [-1.165957, -1.690720, -18.298756, -18.626164, -18.572159, 2.151638, 1.721236, 5.193813, 0.751584] - invwedge_msw.test_vals_aarch64 = [-1.165957, -1.690720, -18.301301, -18.628685, -18.574704, 2.151638, 1.721236, 5.193813, 0.751584] + invwedge_msw.test_vals = [-1.212335, -1.737098, -18.299220, -18.626618, -18.572623, 2.106171, 1.651949, 5.143958, 0.704444] + invwedge_msw.test_vals_aarch64 = [-1.224649, -1.749412, -18.299151, -18.626550, -18.572552, 2.094106, 1.635779, 5.131012, 0.692821] test_list.append(invwedge_msw) # Inviscid single wedge, roe, implicit @@ -139,8 +139,8 @@ def main(): invwedge_roe.cfg_dir = "nonequilibrium/invwedge" invwedge_roe.cfg_file = "invwedge_roe.cfg" invwedge_roe.test_iter = 10 - invwedge_roe.test_vals = [-1.038582, -1.563344, -18.300307, -18.627706, -18.573706, 2.278987, 1.861307, 5.323753, 0.874900] - invwedge_roe.test_vals_aarch64 = [-1.038582, -1.563344, -18.299879, -18.627263, -18.573276, 2.278987, 1.861307, 5.323753, 0.874900] + invwedge_roe.test_vals = [-1.062496, -1.587259, -17.208314, -17.538065, -17.481444, 2.255933, 1.853450, 5.293725, 0.890784] + invwedge_roe.test_vals_aarch64 = [-1.069128, -1.593891, -17.208222, -17.537969, -17.481352, 2.249020, 1.852904, 5.287143, 0.879852] test_list.append(invwedge_roe) # Inviscid single wedge, lax, implicit @@ -148,8 +148,8 @@ def main(): invwedge_lax.cfg_dir = "nonequilibrium/invwedge" invwedge_lax.cfg_file = "invwedge_lax.cfg" invwedge_lax.test_iter = 10 - invwedge_lax.test_vals = [-1.075662, -1.600425, -32.000000, -32.000000, -24.972431, 2.252952, 1.725158, 5.282140, 0.848823] - invwedge_lax.test_vals_aarch64 = [-1.075662, -1.600425, -32.000000, -32.000000, -24.972431, 2.252952, 1.725158, 5.282140, 0.848823] + invwedge_lax.test_vals = [-0.877280, -1.402043, -32.000000, -32.000000, -24.952631, 2.451869, 1.857084, 5.486158, 1.051580] + invwedge_lax.test_vals_aarch64 = [-0.877280, -1.402043, -32.000000, -32.000000, -24.952631, 2.451869, 1.857084, 5.486158, 1.051580] test_list.append(invwedge_lax) # Inviscid single wedge, implicit, AUSM+M scheme @@ -157,8 +157,8 @@ def main(): invwedge_ausm_m.cfg_dir = "nonequilibrium/invwedge" invwedge_ausm_m.cfg_file = "invwedge_am.cfg" invwedge_ausm_m.test_iter = 10 - invwedge_ausm_m.test_vals = [-1.055083, -1.579845, -16.739725, -17.063618, -17.012831, 2.265430, 1.797602, 5.302740, 0.856548] - invwedge_ausm_m.test_vals_aarch64 = [-1.055079, -1.579842, -16.739725, -17.063618, -17.012831, 2.265433, 1.797600, 5.302743, 0.856551] + invwedge_ausm_m.test_vals = [-1.173033, -1.697796, -16.739586, -17.063491, -17.012692, 2.124519, 1.963804, 5.182881, 0.747539] + invwedge_ausm_m.test_vals_aarch64 = [-1.171654, -1.696417, -16.739585, -17.063491, -17.012691, 2.125633, 1.966511, 5.184281, 0.749068] test_list.append(invwedge_ausm_m) # Inviscid single wedge, implicit, NEMO supersonic inlet @@ -166,8 +166,8 @@ def main(): invwedge_ss_inlet.cfg_dir = "nonequilibrium/invwedge" invwedge_ss_inlet.cfg_file = "invwedge_ss_inlet.cfg" invwedge_ss_inlet.test_iter = 10 - invwedge_ss_inlet.test_vals = [-1.042718, -1.567481, -18.250175, -18.579516, -18.523248, 2.275305, 1.880068, 5.319548, 0.873821] - invwedge_ss_inlet.test_vals_aarch64 = [-1.042718, -1.567481, -18.250175, -18.579516, -18.523248, 2.275305, 1.880068, 5.319548, 0.873821] + invwedge_ss_inlet.test_vals = [-1.068592, -1.593355, -18.250183, -18.579524, -18.523255, 2.246972, 1.874197, 5.291273, 0.848771] + invwedge_ss_inlet.test_vals_aarch64 = [-1.069892, -1.594654, -18.250175, -18.579516, -18.523248, 2.245827, 1.871123, 5.290054, 0.847476] test_list.append(invwedge_ss_inlet) # Viscous single cone - axisymmetric @@ -175,8 +175,8 @@ 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.222212, -5.746462, -20.559802, -20.510196, -20.439814, 1.255865, -3.208363, -0.016006, 0.093455, 32633.000000] - visc_cone.test_vals_aarch64 = [-5.222267, -5.746522, -20.559799, -20.510195, -20.440311, 1.255761, -3.208360, -0.016014, 0.093462, 32634.000000] + 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_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) # Viscous single wedge with Mutation++ @@ -192,7 +192,7 @@ def main(): super_cat.cfg_dir = "nonequilibrium/visc_wedge" super_cat.cfg_file = "super_cat.cfg" super_cat.test_iter = 10 - super_cat.test_vals = [-5.232590, -5.757884, -20.641547, -20.640244, -20.539243, 1.246889, -3.205235, -0.028406, 0.250857, 32459.000000] + super_cat.test_vals = [-5.232595, -5.757889, -20.641415, -20.640623, -20.541670, 1.246866, -3.205258, -0.028372, 0.250647, 32440.000000] test_list.append(super_cat) # Viscous single wedge - partially catalytic walls @@ -200,7 +200,7 @@ def main(): partial_cat.cfg_dir = "nonequilibrium/visc_wedge" partial_cat.cfg_file = "partial_cat.cfg" partial_cat.test_iter = 10 - partial_cat.test_vals = [-5.210300, -5.735063, -20.880374, -20.825890, -23.475263, 1.806281, -2.813924, -0.078469, 0.496017, 29021.000000] + partial_cat.test_vals = [-5.210302, -5.735065, -20.880448, -20.825971, -23.475263, 1.806201, -2.813952, -0.078400, 0.495606, 29020.000000] test_list.append(partial_cat) # Viscous cylinder, ionization, Gupta-Yos @@ -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.647975, 2.818090, 0.022280, 0.004644] + channel.test_vals = [-2.904385, 2.536048, 0.020906, 0.042348] 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.014140, -3.537888, 0.333403, 0.021227] + naca0012.test_vals = [-4.322128, -3.813578, 0.321660, 0.022547] 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 = [-0.944740, 4.782451, -0.208522, 0.036742] + wedge.test_vals = [-1.377543, 4.293870, -0.243566, 0.042930] 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 = [-9.277150, -8.694005, 0.281703, 0.011821] + oneram6.test_vals = [-11.512364, -10.982009, 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 = [-7.379831, -1.886302, 0.300000, 0.019471] + fixedCL_naca0012.test_vals = [-3.856871, 1.676974, 0.301113, 0.019487] test_list.append(fixedCL_naca0012) # Polar sweep of the inviscid NACA0012 @@ -262,8 +262,8 @@ def main(): polar_naca0012.cfg_file = "inv_NACA0012.cfg" polar_naca0012.polar = True polar_naca0012.test_iter = 10 - polar_naca0012.test_vals = [-1.217981, 4.256386, 0.009084, 0.016823] - polar_naca0012.test_vals_aarch64 = [-1.718925, 3.711429, 0.009217, 0.007784] + polar_naca0012.test_vals = [-1.086730, 4.382703, 0.001762, 0.033013] + 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 polar_naca0012.enabled_on_cpu_arch = ["x86_64"] @@ -274,7 +274,7 @@ def main(): bluntbody.cfg_dir = "euler/bluntbody" bluntbody.cfg_file = "blunt.cfg" bluntbody.test_iter = 20 - bluntbody.test_vals = [0.540009, 6.916653, 0.000000, 1.868976] + bluntbody.test_vals = [0.493672, 6.857839, -0.000002, 1.791404] 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.076215, -0.391987, -0.000701, 67775.000000] + ea_naca64206.test_vals = [-1.188459, -0.522783, -0.003147, 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.399623, -7.788893, -0.081064, 0.056474] + ramp.test_vals = [-13.648694, -8.010920, -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 = [-9.336395, -3.849426, 0.001112, 0.036276, 2.361500, -2.325300, -2.279700, -2.279700] + flatplate.test_vals = [-7.621750, -2.149876, 0.001084, 0.036232, 2.361500, -2.325300, -1.815200, -1.815200] 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.653802, -1.181430, -0.794887, 0.000611, -0.000369, 0.000736, -0.001104, 596.690000, 299.800000, 296.890000, 21.492000, 0.563990, 37.148000, 2.278700] + flatplate_udobj.test_vals = [-6.664134, -1.190073, -0.954366, 0.000641, -0.000633, 0.000548, -0.001181, 596.940000, 300.020000, 296.920000, 22.201000, 0.525750, 37.278000, 2.347900] test_list.append(flatplate_udobj) # Laminar cylinder (steady) @@ -319,7 +319,7 @@ def main(): cylinder.cfg_dir = "navierstokes/cylinder" cylinder.cfg_file = "lam_cylinder.cfg" cylinder.test_iter = 25 - cylinder.test_vals = [-6.754517, -1.286785, -0.213640, 0.706519, 0.158870] + cylinder.test_vals = [-8.421986, -2.931138, -0.003382, 1.607685, -0.009905] test_list.append(cylinder) # Laminar cylinder (low Mach correction) @@ -327,7 +327,7 @@ def main(): cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 - cylinder_lowmach.test_vals = [-6.858484, -1.396528, -1.854558, 110.033249, 0.001951] + cylinder_lowmach.test_vals = [-6.841604, -1.379532, -1.266739, 76.118218, 0.000274] test_list.append(cylinder_lowmach) # 2D Poiseuille flow (body force driven with periodic inlet / outlet) @@ -344,8 +344,8 @@ 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.492939, -7.672950, -0.000000, 2.085796] - poiseuille_profile.test_vals_aarch64 = [-12.492864, -7.671632, -0.000000, 2.085796] + poiseuille_profile.test_vals = [-12.483967, -7.577331, -0.000000, 2.085796] + poiseuille_profile.test_vals_aarch64 = [-12.483967, -7.577331, -0.000000, 2.085796] test_list.append(poiseuille_profile) ########################## @@ -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.147727, -6.728308, -0.176232, 0.057717] + turb_flatplate.test_vals = [-4.147387, -6.728398, -0.176234, 0.057709] test_list.append(turb_flatplate) # Flat plate (compressible) with species inlet @@ -389,15 +389,31 @@ 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.147727, -0.634899, -1.770894, 1.334987, -3.250340, 9.000000, -6.700853, 5.000000, -6.991055, 10.000000, -6.033829, 0.996033, 0.996033] + turb_flatplate_species.test_vals = [-4.120225, -0.634021, -1.706720, 1.363240, -3.250204, 9.000000, -6.697079, 5.000000, -6.978731, 10.000000, -6.013196, 0.996237, 0.996237] test_list.append(turb_flatplate_species) + # Flat plate SST compressibility correction Wilcox + turb_flatplate_CC_Wilcox = TestCase('turb_flatplate_CC_Wilcox') + 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.974212, 1.440458, 5.038402, -4.051125, 8.521136] + test_list.append(turb_flatplate_CC_Wilcox) + + # Flat plate SST compressibility correction Sarkar + turb_flatplate_CC_Sarkar = TestCase('turb_flatplate_CC_Sarkar') + 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.974212, 1.440458, 5.038402, -4.051128, 8.521136] + test_list.append(turb_flatplate_CC_Sarkar) + # ONERA M6 Wing turb_oneram6 = TestCase('turb_oneram6') turb_oneram6.cfg_dir = "rans/oneram6" turb_oneram6.cfg_file = "turb_ONERAM6.cfg" turb_oneram6.test_iter = 10 - turb_oneram6.test_vals = [-2.388839, -6.689426, 0.230321, 0.157640, -32539.000000] + turb_oneram6.test_vals = [-2.392865, -6.689822, 0.230746, 0.158811, -33786.000000] turb_oneram6.timeout = 3200 test_list.append(turb_oneram6) @@ -406,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.262387, -6.626454, 0.228392, 0.140799, -27107.000000] + turb_oneram6_vc.test_vals = [-2.266212, -6.628059, 0.228692, 0.142105, -28396.000000] turb_oneram6_vc.timeout = 3200 test_list.append(turb_oneram6_vc) @@ -415,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.892252, -4.514006, -11.432306, 0.221025, 0.045570, 2.000000, -0.899460, 31.384000] + turb_oneram6_nk.test_vals = [-4.803402, -4.393783, -11.445194, 0.218505, 0.048793, 4.000000, -0.607076, 25.924000] turb_oneram6_nk.timeout = 600 turb_oneram6_nk.tol = 0.0001 test_list.append(turb_oneram6_nk) @@ -514,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.063597, -7.006585, -8.702557, -4.039824, -2019.8] + axi_rans_air_nozzle_restart.test_vals = [-12.150822, -6.604726, -9.187292, -4.518261, -2019.700000] axi_rans_air_nozzle_restart.tol = 0.0001 test_list.append(axi_rans_air_nozzle_restart) @@ -542,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 = [-4.801273, -3.773079, 0.495236, 0.007346] + inc_euler_naca0012.test_vals = [-7.141428, -6.403478, 0.531992, 0.008466] test_list.append(inc_euler_naca0012) # C-D nozzle with pressure inlet and mass flow outlet @@ -550,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 = [-5.982321, -4.953536, 0.000454, 0.121390] + inc_nozzle.test_vals = [-6.308730, -5.512525, -0.004405, 0.126629] test_list.append(inc_nozzle) ############################# @@ -565,6 +581,14 @@ def main(): inc_lam_cylinder.test_vals = [-4.004072, -3.194881, -0.076553, 7.780048] test_list.append(inc_lam_cylinder) + # Laminar sphere, Re=1. Last column: Cd=24/Re + inc_lam_sphere = TestCase('inc_lam_sphere') + 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, -8.032107, 0.121003, 25.782687] + test_list.append(inc_lam_sphere) + # Buoyancy-driven cavity inc_buoyancy = TestCase('inc_buoyancy') inc_buoyancy.cfg_dir = "incomp_navierstokes/buoyancy_cavity" @@ -586,7 +610,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.447746, -3.085237, -0.020816, 1.147373] + inc_lam_bend.test_vals = [-3.550744, -3.220213, -0.017606, 1.015086] test_list.append(inc_lam_bend) # 3D laminar channnel with 1 cell in flow direction, streamwise periodic @@ -602,7 +626,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.242651, -7.341179, -7.407346, -0.152603, -1667.300000] + inc_heatTransfer_BC.test_vals = [-8.201114, -7.405807, -7.555676, -0.113666, -1671.700000] test_list.append(inc_heatTransfer_BC) ############################ @@ -753,7 +777,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 = [-7.994740, -13.240225, 0.000046, 0.007987] + schubauer_klebanoff_transition.test_vals = [-8.058933, -13.242001, 0.000048, 0.007993] test_list.append(schubauer_klebanoff_transition) ##################################### @@ -765,7 +789,7 @@ def main(): contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012" contadj_naca0012.cfg_file = "inv_NACA0012.cfg" contadj_naca0012.test_iter = 5 - contadj_naca0012.test_vals = [-9.300816, -14.587365, 0.300920, 0.019552] + contadj_naca0012.test_vals = [-9.662585, -14.998832, -0.726250, 0.020280] test_list.append(contadj_naca0012) # Inviscid ONERA M6 @@ -773,7 +797,7 @@ def main(): contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6" contadj_oneram6.cfg_file = "inv_ONERAM6.cfg" contadj_oneram6.test_iter = 10 - contadj_oneram6.test_vals = [-12.130993, -12.702085, 0.685900, 0.007594] + contadj_oneram6.test_vals = [-12.032190, -12.587083, -1.086100, 0.007556] test_list.append(contadj_oneram6) # Inviscid WEDGE: tests averaged outflow total pressure adjoint @@ -781,7 +805,7 @@ def main(): contadj_wedge.cfg_dir = "cont_adj_euler/wedge" contadj_wedge.cfg_file = "inv_wedge_ROE.cfg" contadj_wedge.test_iter = 10 - contadj_wedge.test_vals = [2.872691, -2.755572, 853010.000000, -0.000000] + contadj_wedge.test_vals = [2.872064, -2.756210, 1010800.000000, 0.000000] test_list.append(contadj_wedge) # Inviscid fixed CL NACA0012 @@ -789,7 +813,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.275856, -5.200511, 0.342710, 0.000105] + contadj_fixed_CL_naca0012.test_vals = [0.748438, -4.810920, -0.520110, -0.000292] test_list.append(contadj_fixed_CL_naca0012) ################################### @@ -905,7 +929,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.589739, 0.790169, 0.937053, 3.922579] + harmonic_balance.test_vals = [-1.554985, 0.831796, 0.935729, 3.960210] test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil @@ -926,7 +950,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.698005, 2.845328, -0.079439, 0.002128] + rot_naca0012.test_vals = [-2.709459, 2.836670, -0.081188, 0.002156] test_list.append(rot_naca0012) # Lid-driven cavity @@ -963,7 +987,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.977520, 3.481804, -0.012377, -0.007389] + sine_gust.test_vals = [-1.977514, 3.481817, -0.010609, -0.007956] sine_gust.unsteady = True test_list.append(sine_gust) @@ -972,7 +996,7 @@ def main(): aeroelastic.cfg_dir = "aeroelastic" aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" aeroelastic.test_iter = 2 - aeroelastic.test_vals = [0.076550, 0.033042, -0.001650, -0.000127] + aeroelastic.test_vals = [0.075176, 0.027496, -0.001643, -0.000126] aeroelastic.unsteady = True test_list.append(aeroelastic) @@ -981,7 +1005,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.714757, -5.882779, -0.215005, 0.023783, -618.130000] + ddes_flatplate.test_vals = [-2.714785, -5.882679, -0.215041, 0.023758, -617.450000] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) @@ -999,7 +1023,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 = [7.9509e-06, -8.868859, -8.231652, -6.283262, -5.466675, -3.391163, 0.002078, -0.343642] + flatplate_unsteady.test_vals = [0.000008, -8.876477, -8.249920, -6.294138, -5.468911, -3.398657, 0.002075, -0.324341] flatplate_unsteady.unsteady = True test_list.append(flatplate_unsteady) @@ -1011,16 +1035,16 @@ def main(): edge_VW = TestCase('edge_VW') edge_VW.cfg_dir = "nicf/edge" edge_VW.cfg_file = "edge_VW.cfg" - edge_VW.test_iter = 100 - edge_VW.test_vals = [-5.048044, 1.115667, -0.000009, 0.000000] + edge_VW.test_iter = 50 + edge_VW.test_vals = [-8.107432, -1.914195, -0.000009, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR edge_PPR = TestCase('edge_PPR') edge_PPR.cfg_dir = "nicf/edge" edge_PPR.cfg_file = "edge_PPR.cfg" - edge_PPR.test_iter = 100 - edge_PPR.test_vals = [-5.400790, 0.739723, -0.000035, 0.000000] + edge_PPR.test_iter = 50 + edge_PPR.test_vals = [-8.611983, -2.441992, -0.000034, 0.000000] test_list.append(edge_PPR) # Rarefaction Q1D nozzle, include CoolProp fluid model @@ -1028,7 +1052,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.525459, -1.578697, 3.443116, 0.000000, 0.000000] + coolprop_fluidModel.test_vals = [-4.424953, -1.582877, 3.442422, 0.000000, 0.000000] coolprop_fluidModel.enabled_on_cpu_arch = ["x86_64"] test_list.append(coolprop_fluidModel) @@ -1037,7 +1061,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.527922, -1.308648, 4.630717, 0.000000, 0.000000] + coolprop_transportModel.test_vals = [-4.428098, -1.314332, 4.630872, 0.000000, 0.000000] coolprop_transportModel.enabled_on_cpu_arch = ["x86_64"] test_list.append(coolprop_transportModel) @@ -1046,7 +1070,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 = [-2.623890, 0.145236, 4.688439, 0.000000, 0.000000] + datadriven_fluidModel.test_vals = [-2.632817, 0.155922, 4.690917, 0.000000, 0.000000] test_list.append(datadriven_fluidModel) ###################################### @@ -1097,7 +1121,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.188747, -10.631538] + uniform_flow.test_vals = [5.000000, 0.000000, -0.185381, -10.631539] uniform_flow.unsteady = True uniform_flow.multizone = True test_list.append(uniform_flow) @@ -1107,7 +1131,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.398011, 0.352778, 0.405461] + channel_2D.test_vals = [2.000000, 0.000000, 0.419792, 0.352177, 0.404446] channel_2D.test_vals_aarch64 = [2.000000, 0.000000, 0.398036, 0.352783, 0.405462] channel_2D.timeout = 100 channel_2D.unsteady = True @@ -1119,7 +1143,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.620176, 0.505161, 0.415248] + channel_3D.test_vals = [2.000000, 0.000000, 0.623113, 0.505078, 0.412774] channel_3D.test_vals_aarch64 = [2.000000, 0.000000, 0.620182, 0.505302, 0.415257] channel_3D.unsteady = True channel_3D.multizone = True @@ -1130,7 +1154,7 @@ def main(): pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 - pipe.test_vals = [0.150024, 0.491953, 0.677755, 0.963980, 1.006936] + pipe.test_vals = [0.116649, 0.481389, 0.648696, 0.982990, 1.018349] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) @@ -1140,7 +1164,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.777572, 1.134804, 1.224137] + rotating_cylinders.test_vals = [3.000000, 0.000000, 0.719777, 1.111044, 1.154071] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) @@ -1150,7 +1174,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.214350, 1.663914] + supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.207949, 1.036090] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) @@ -1214,7 +1238,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.743210, -4.133483] + fsi2d.test_vals = [4.000000, 0.000000, -3.729224, -4.153951] fsi2d.command = TestCase.Command(exec = "parallel_computation_fsi.py", param = "-f") fsi2d.multizone= True fsi2d.unsteady = True @@ -1225,7 +1249,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.296605, -4.934646, 0.000000, 7.000000] + stat_fsi.test_vals = [-3.311842, -4.950580, 0.000000, 8.000000] stat_fsi.multizone = True test_list.append(stat_fsi) @@ -1234,7 +1258,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.355829, -4.060587, 5.3837e-08, 98] + dyn_fsi.test_vals = [-4.330462, -4.058005, 0.000000, 97.000000] dyn_fsi.multizone = True dyn_fsi.unsteady = True test_list.append(dyn_fsi) @@ -1244,7 +1268,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.435926, -4.264912, 0.000000, 28.000000] + stat_fsi_restart.test_vals = [-3.445617, -4.243213, 0.000000, 28.000000] stat_fsi_restart.multizone = True test_list.append(stat_fsi_restart) @@ -1301,7 +1325,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.104306, -1.005859, -1.028870, -0.753282, 208.023676, 353.490000, -0.000000, -0.753280, 0.753280] + sp_pinArray_cht_2d_dp_hf.test_vals = [0.088580, -0.764276, -1.086940, -0.747450, 208.023676, 344.680000, -0.000000, -0.747450, 0.747450] sp_pinArray_cht_2d_dp_hf.multizone = True test_list.append(sp_pinArray_cht_2d_dp_hf) @@ -1310,8 +1334,8 @@ 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 = [-5.128577, -5.425081, -6.788413, -0.009675, 104.655438, 419.210000, 0.0] - sp_pinArray_3d_cht_mf_hf_tp.test_vals_aarch64 = [-5.128577, -5.425081, -6.788413, -0.009675, 104.655438, 419.210000, 0.0] + sp_pinArray_3d_cht_mf_hf_tp.test_vals = [-1.627413, -3.083567, -4.577909, -0.009725, 104.632413, 418.370000, 0.000000] + sp_pinArray_3d_cht_mf_hf_tp.test_vals_aarch64 = [-1.622914, -3.081114, -4.576282, -0.009725, 104.632412, 418.370000, 0.000000] sp_pinArray_3d_cht_mf_hf_tp.multizone = True test_list.append(sp_pinArray_3d_cht_mf_hf_tp) @@ -1325,7 +1349,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 = [-6.747210, -6.149915, 0.333445, 0.021241] + pywrapper_naca0012.test_vals = [-9.569885, -8.966579, 0.335418, 0.023332] pywrapper_naca0012.command = TestCase.Command("mpirun -np 2", "SU2_CFD.py", "--parallel -f") test_list.append(pywrapper_naca0012) @@ -1356,7 +1380,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.076550, 0.033042, -0.001650, -0.000127] + pywrapper_aeroelastic.test_vals = [0.075176, 0.027496, -0.001643, -0.000126] pywrapper_aeroelastic.command = TestCase.Command("mpirun -np 2", "SU2_CFD.py", "--parallel -f") pywrapper_aeroelastic.unsteady = True test_list.append(pywrapper_aeroelastic) @@ -1376,7 +1400,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.743210, -4.133483] + pywrapper_fsi2d.test_vals = [4.000000, 0.000000, -3.729224, -4.153951] 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 @@ -1387,7 +1411,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, 31, 5, 58, -1.756780, -2.828276, -7.652558, -6.863929, 1.5618e-04] + pywrapper_unsteadyFSI.test_vals = [0.000000, 49.000000, 5.000000, 44.000000, -0.589089, -2.800967, -2.603174, -6.722478, 0.000209] pywrapper_unsteadyFSI.command = TestCase.Command("mpirun -np 2", "python", "run.py") pywrapper_unsteadyFSI.unsteady = True pywrapper_unsteadyFSI.multizone = True @@ -1418,7 +1442,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, -2.554360, -1.084594, -0.024882, 2.907803, 8.785498, -0.363585] + pywrapper_deformingBump.test_vals = [0.500000, 0.000000, -3.037857, -1.603573, -2.074205, 2.424288, 7.765352, -0.220502] pywrapper_deformingBump.command = TestCase.Command("mpirun -np 2", "python", "run.py") pywrapper_deformingBump.unsteady = True test_list.append(pywrapper_deformingBump) @@ -1490,7 +1514,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.359429, -4.504612, -4.480004, -5.629196, -0.059934, -5.596051, 5.000000, -1.870943, 5.000000, -4.915279, 5.000000, -1.183531, 0.000429, 0.000393, 0.000036, 0.000000] + species2_primitiveVenturi_mixingmodel.test_vals = [ -5.407755, -4.557255, -4.635502, -5.642910, -0.059627, -5.546376, 5.000000, -1.879995, 5.000000, -4.898985, 5.000000, -1.169389, 0.000551, 0.000483, 0.000068, 0.000000] test_list.append(species2_primitiveVenturi_mixingmodel) # 2 species (1 eq) primitive venturi mixing using mixing model and bounded scalar transport @@ -1498,7 +1522,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.336209, -4.445047, -4.432074, -5.785385, -0.127631, -5.672217, 5.000000, -1.944369, 5.000000, -4.878272, 5.000000, -1.806657, 0.000272, 0.000272, 0.000000, 0.000000] + species2_primitiveVenturi_mixingmodel_boundedscalar.test_vals = [-5.392378, -4.492373, -4.576491, -5.759780, -0.137797, -5.677531, 5.000000, -1.895013, 5.000000, -4.806816, 5.000000, -1.697769, 0.000275, 0.000275, 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 @@ -1506,7 +1530,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.843481, -3.585988, -3.486593, -7.560545, -5.094245, 5.000000, -1.898097, 5.000000, -3.328995, 5.000000, -2.113241, 2.482221, 0.974142, 0.607219, 0.900860] + species2_primitiveVenturi_mixingmodel_viscosity.test_vals = [-4.857397, -3.646605, -3.737462, -7.602922, -5.008846, 5.000000, -1.756226, 5.000000, -3.163353, 5.000000, -2.189723, 2.476808, 0.976999, 0.609280, 0.890529] test_list.append(species2_primitiveVenturi_mixingmodel_viscosity) # 2 species (1 eq) primitive venturi mixing using mixing model including heat capacity and mass diffusivity @@ -1514,7 +1538,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 = [-6.118333, -4.985699, -4.918326, -7.249080, 2.445213, -5.624080, 30.000000, -5.681895, 12.000000, -8.186475, 10.000000, -8.853067, 2.083524, 1.000000, 0.600000, 0.483524] + species2_primitiveVenturi_mixingmodel_heatcapacity_H2.test_vals = [-5.688779, -4.556193, -4.513326, -6.563666, 2.298459, -5.423525, 30.000000, -6.903871, 13.000000, -8.224587, 8.000000, -9.119625, 2.078869, 1.000000, 0.600000, 0.478869] 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 @@ -1522,7 +1546,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.724191, -5.290524, -5.223195, -8.252900, 2.140394, -5.229908, 30.000000, -5.681850, 12.000000, -8.186296, 10.000000, -8.852858, 2.083526, 1.000000, 0.600000, 0.483526] + species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.test_vals = [-5.287504, -4.852957, -4.798004, -7.501815, 1.991002, -5.023713, 10.000000, -2.696121, 3.000000, -5.182457, 5.000000, -5.561055, 2.078843, 1.000000, 0.600000, 0.478843] test_list.append(species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND) # 2 species (1 eq) primitive venturi mixing @@ -1530,7 +1554,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.641112, -4.724266, -4.677148, -5.470711, -1.121455, -5.713132, 5.000000, -0.830412, 5.000000, -2.668654, 5.000000, -0.454161, 0.000092, 0.000091, 0.000001, 0.000000] + species2_primitiveVenturi.test_vals = [-5.643794, -4.798953, -4.858719, -5.648947, -1.195985, -5.564607, 5.000000, -0.958960, 5.000000, -2.515334, 5.000000, -0.796944, 0.000210, 0.000206, 0.000004, 0.000000] test_list.append(species2_primitiveVenturi) # 2 species (1 eq) primitive venturi mixing with bounded scalar transport @@ -1538,7 +1562,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.278467, -4.368236, -4.350556, -5.693359, -0.978845, -5.618393, 5.000000, -1.804015, 5.000000, -4.057089, 5.000000, -2.003816, 0.000415, 0.000415, 0.000000, 0.000000] + species_primitiveVenturi_boundedscalar.test_vals = [-5.283533, -4.417193, -4.478360, -5.669526, -0.952767, -5.618596, 5.000000, -1.996975, 5.000000, -4.017868, 5.000000, -1.747496, 0.000423, 0.000423, 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 @@ -1546,7 +1570,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.026294, -1.649804, -1.404882, -0.746005, 1.609256, -3.767237, 23.000000, -5.082019, 10.000000, -5.056739, 4.000000, -6.480965, 2.000000, 1.000000, 0.000000, 1.000000] + species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.test_vals = [-4.105910, -1.680056, -1.599493, -0.672401, 1.441091, -3.759601, 23.000000, -5.201473, 11.000000, -5.312651, 4.000000, -6.525448, 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. @@ -1555,7 +1579,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.711734, -4.794814, -4.747694, -5.541323, -1.192017, -5.951964, -6.096677, 5.000000, -0.830172, 5.000000, -2.668819, 5.000000, -0.516308] + species3_primitiveVenturi_inletFile.test_vals = [-5.714428, -4.869589, -4.929349, -5.719577, -1.266622, -5.824037, -5.944720, 5.000000, -0.958918, 5.000000, -2.515337, 5.000000, -0.523677] test_list.append(species3_primitiveVenturi_inletFile) # rectangle passive transport validation @@ -1563,7 +1587,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.559189, -16.315116, -16.908670, -4.257599, 10, -4.523292, 8, -5.19335, 0.18661, 0] + 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_aarch64 = [-16.538551, -16.312552, -16.882823, -4.257599, 10, -4.585464, 8, -5.19335, 0.18661, 0] test_list.append(species_passive_val) @@ -1572,7 +1596,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 = [-6.175178, -5.763030] + species3_multizone_restart.test_vals = [-6.111017, -5.720050] species3_multizone_restart.multizone = True test_list.append(species3_multizone_restart) @@ -1616,14 +1640,14 @@ def main(): cfd_flamelet_ch4_cht = TestCase('cfd_flamelet_ch4_cht') cfd_flamelet_ch4_cht.cfg_dir = "flamelet/03_laminar_premixed_ch4_flame_cht_cfd" cfd_flamelet_ch4_cht.cfg_file = "lam_prem_ch4_cht_cfd_master.cfg" - cfd_flamelet_ch4_cht.test_iter = 10 + cfd_flamelet_ch4_cht.test_iter = 5 cfd_flamelet_ch4_cht.command = TestCase.Command("mpirun -n 2", "SU2_CFD") cfd_flamelet_ch4_cht.timeout = 1600 cfd_flamelet_ch4_cht.reference_file = "restart_0.csv.ref" cfd_flamelet_ch4_cht.test_file = "restart_0.csv" cfd_flamelet_ch4_cht.multizone = True cfd_flamelet_ch4_cht.comp_threshold = 1e-6 - cfd_flamelet_ch4_cht.tol_file_percent = 0.1 + cfd_flamelet_ch4_cht.tol_file_percent = 1.0 pass_list.append(cfd_flamelet_ch4_cht.run_filediff()) test_list.append(cfd_flamelet_ch4_cht) @@ -1830,16 +1854,18 @@ def main(): test_list.append(naca0012_cst) # 2D FD streamwise periodic cht, avg temp obj func - fd_sp_pinArray_cht_2d_dp_hf = TestCase('fd_sp_pinArray_cht_2d_dp_hf') - fd_sp_pinArray_cht_2d_dp_hf.cfg_dir = "incomp_navierstokes/streamwise_periodic/chtPinArray_2d" - fd_sp_pinArray_cht_2d_dp_hf.cfg_file = "FD_configMaster.cfg" - fd_sp_pinArray_cht_2d_dp_hf.test_iter = 100 - fd_sp_pinArray_cht_2d_dp_hf.command = TestCase.Command(exec = "finite_differences.py", param = "-z 2 -n 2 -f") - fd_sp_pinArray_cht_2d_dp_hf.timeout = 1600 - fd_sp_pinArray_cht_2d_dp_hf.reference_file = "of_grad_findiff.csv.ref" + fd_sp_pinArray_cht_2d_dp_hf = TestCase('fd_sp_pinArray_cht_2d_dp_hf') + fd_sp_pinArray_cht_2d_dp_hf.cfg_dir = "incomp_navierstokes/streamwise_periodic/chtPinArray_2d" + fd_sp_pinArray_cht_2d_dp_hf.cfg_file = "FD_configMaster.cfg" + fd_sp_pinArray_cht_2d_dp_hf.test_iter = 100 + fd_sp_pinArray_cht_2d_dp_hf.command = TestCase.Command(exec = "finite_differences.py", param = "-z 2 -n 2 -f") + fd_sp_pinArray_cht_2d_dp_hf.timeout = 1600 + fd_sp_pinArray_cht_2d_dp_hf.comp_threshold = 1e-6 + fd_sp_pinArray_cht_2d_dp_hf.tol_file_percent = 0.2 + fd_sp_pinArray_cht_2d_dp_hf.reference_file = "of_grad_findiff.csv.ref" fd_sp_pinArray_cht_2d_dp_hf.reference_file_aarch64 = "of_grad_findiff_aarch64.csv.ref" - fd_sp_pinArray_cht_2d_dp_hf.test_file = "FINDIFF/of_grad_findiff.csv" - fd_sp_pinArray_cht_2d_dp_hf.multizone = True + fd_sp_pinArray_cht_2d_dp_hf.test_file = "FINDIFF/of_grad_findiff.csv" + fd_sp_pinArray_cht_2d_dp_hf.multizone = True pass_list.append(fd_sp_pinArray_cht_2d_dp_hf.run_filediff()) test_list.append(fd_sp_pinArray_cht_2d_dp_hf) diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py index 59576fdc410..a4aa0f57252 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.561506, -8.926634, -0.000000, 0.005587] + discadj_naca0012.test_vals = [-3.560692, -8.925239, -0.000000, 0.005559] 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.734502, -3.839637, 0.000000, 0.000000] + discadj_cylinder3D.test_vals = [-3.768909, -3.725727, 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.111181, -3.501516, 6.8705e-02, 0] + discadj_arina2k.test_vals = [-3.540396, -3.828299, 0.027959, 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.181093, 2.471539, -5487700.0, 8.3604] + ea_naca64206.test_vals = [3.127605, 2.411805, -5505700.000000, 10.591000] 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.095412, -2.690483, 0.000000] + discadj_incomp_NACA0012.test_vals = [20.000000, -4.093433, -2.686134, 0.000000] test_list.append(discadj_incomp_NACA0012) ##################################### @@ -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.516464, 5.022130, 7.370705, 2.744551] + discadj_axisymmetric_rans_nozzle.test_vals = [9.550040, 4.937865, 7.377284, 2.748846] 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.223480, -1.639387, -0.007591, 0.000013] + discadj_pitchingNACA0012.test_vals = [-1.227073, -1.648410, -0.007541, 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 = [-2.226539, 0.605868, 0.000000, -6.256400] + discadj_heat.test_vals = [-2.117791, 0.784475, 0.000000, -0.574700] discadj_heat.test_vals_aarch64 = [-2.226539, 0.605868, 0.000000, -6.256400] test_list.append(discadj_heat) @@ -277,7 +277,7 @@ def main(): discadj_fsi2.cfg_dir = "disc_adj_fsi/Airfoil_2d" discadj_fsi2.cfg_file = "config.cfg" discadj_fsi2.test_iter = 8 - discadj_fsi2.test_vals = [-4.349377, 0.192713, -1.303589, 0.75407, 2.3244] + discadj_fsi2.test_vals = [-2.402639, 2.740269, -1.270185, -1.273900, 3.860200] discadj_fsi2.test_vals_aarch64 = [-4.349372, 0.190601, -1.303589, 0.754070, 2.324400] discadj_fsi2.tol = 0.00001 test_list.append(discadj_fsi2) @@ -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.743218, -4.059800, -4.138231] + da_sp_pinArray_cht_2d_dp_hf.test_vals = [-4.706292, -4.062398, -4.137374] 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.611237, -1.290668, -1.453678, -18.507826, -0.859013, -5.755971, -19.067984, -47.993931] + da_sp_pinArray_cht_2d_mf.test_vals = [-4.600710, -1.298285, -1.430286, -18.503417, -0.870017, -5.768271, -19.069555, -47.953298] da_sp_pinArray_cht_2d_mf.multizone = True test_list.append(da_sp_pinArray_cht_2d_mf) @@ -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.520972485907894, 1.3848377455328362, 0.000000] #last 4 columns + pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.506016, 1.407249, 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/py_wrapper/translating_NACA0012/config.cfg b/TestCases/py_wrapper/translating_NACA0012/config.cfg index 8446a5405a1..a7880927239 100644 --- a/TestCases/py_wrapper/translating_NACA0012/config.cfg +++ b/TestCases/py_wrapper/translating_NACA0012/config.cfg @@ -43,27 +43,33 @@ MARKER_DEFORM_MESH= ( airfoil ) % DISCRETIZATION METHODS % CONV_NUM_METHOD_FLOW= ROE -MUSCL_FLOW= YES -NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +MUSCL_FLOW= NO +NUM_METHOD_GRAD= GREEN_GAUSS SLOPE_LIMITER_FLOW= VENKATAKRISHNAN_WANG VENKAT_LIMITER_COEFF= 0.1 % SOLUTION ACCELERATION % -CFL_NUMBER= 1e3 +CFL_NUMBER= 1000 CFL_ADAPT= NO % MGLEVEL= 3 MGCYCLE= W_CYCLE +MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) +MG_POST_SMOOTH= ( 0, 0, 0, 0 ) +MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) +MG_DAMP_RESTRICTION= 0.7 +MG_DAMP_PROLONGATION= 0.7 + % LINEAR_SOLVER= FGMRES LINEAR_SOLVER_PREC= ILU -LINEAR_SOLVER_ERROR= 0.1 -LINEAR_SOLVER_ITER= 10 +LINEAR_SOLVER_ERROR= 1.0e-6 +LINEAR_SOLVER_ITER= 25 % CONVERGENCE PARAMETERS % -ITER= 250 +ITER= 2500 CONV_FIELD= RMS_DENSITY CONV_RESIDUAL_MINVAL= -9 @@ -71,5 +77,5 @@ CONV_RESIDUAL_MINVAL= -9 % MESH_FILENAME= ../../euler/naca0012/mesh_NACA0012_inv.su2 MESH_FORMAT= SU2 -SCREEN_OUTPUT= (INNER_ITER, RMS_RES, LIFT, DRAG, MOMENT_X, MOMENT_Y, MOMENT_Z) +SCREEN_OUTPUT= (INNER_ITER, RMS_RES, LIFT, DRAG, MOMENT_X, MOMENT_Y, MOMENT_Z, LINSOL_RES, LINSOL_ITER) HISTORY_OUTPUT= (INNER_ITER, RMS_RES, AERO_COEFF) diff --git a/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref b/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref index aa9112983d0..56ad73bb9aa 100644 --- a/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref +++ b/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref @@ -1,200 +1,200 @@ -199, -1.01, -0.00, 0.00 -0, -2.07, 14.25, 0.00 -1, -3.62, 24.97, 0.00 -2, -4.84, 33.38, 0.00 -3, -5.85, 40.49, 0.00 -4, -6.69, 46.42, 0.00 -5, -7.36, 51.26, 0.00 -6, -7.92, 55.36, 0.00 -7, -8.34, 58.59, 0.00 -8, -8.64, 61.04, 0.00 -9, -8.83, 62.73, 0.00 -10, -8.91, 63.73, 0.00 -11, -8.90, 64.10, 0.00 -12, -8.79, 63.80, 0.00 -13, -8.59, 62.88, 0.00 -14, -8.31, 61.35, 0.00 -15, -7.95, 59.25, 0.00 -16, -7.53, 56.67, 0.00 -17, -7.05, 53.55, 0.00 -18, -6.50, 49.94, 0.00 -19, -5.90, 45.87, 0.00 -20, -5.26, 41.32, 0.00 -21, -4.57, 36.38, 0.00 -22, -3.85, 31.01, 0.00 -23, -3.09, 25.23, 0.00 -24, -2.31, 19.12, 0.00 -25, -1.51, 12.63, 0.00 -26, -0.68, 5.79, 0.00 -27, 0.16, -1.36, 0.00 -28, 1.01, -8.84, 0.00 -29, 1.86, -16.61, 0.00 -30, 2.72, -24.66, 0.00 -31, 3.58, -32.98, 0.00 -32, 4.43, -41.60, 0.00 -33, 5.28, -50.47, 0.00 -34, 6.11, -59.56, 0.00 -35, 6.93, -68.92, 0.00 -36, 7.73, -78.52, 0.00 -37, 8.50, -88.30, 0.00 -38, 9.24, -98.33, 0.00 -39, 9.95, -108.57, 0.00 -40, 10.62, -118.95, 0.00 -41, 11.24, -129.51, 0.00 -42, 11.81, -140.28, 0.00 -43, 12.33, -151.21, 0.00 -44, 12.78, -162.28, 0.00 -45, 13.15, -173.40, 0.00 -46, 13.44, -184.61, 0.00 -47, 13.64, -195.87, 0.00 -48, 13.73, -207.12, 0.00 -49, 13.72, -218.38, 0.00 -50, 13.58, -229.47, 0.00 -51, 13.30, -240.10, 0.00 -52, 12.85, -250.14, 0.00 -53, 12.31, -261.02, 0.00 -54, 11.62, -271.62, 0.00 -55, 10.32, -270.49, 0.00 -56, 8.26, -248.20, 0.00 -57, 6.94, -245.94, 0.00 -58, 7.97, -348.31, 0.00 -59, 7.61, -440.57, 0.00 -60, 5.11, -448.31, 0.00 -61, 2.28, -436.77, 0.00 -62, -0.53, -428.04, 0.00 -63, -3.36, -418.60, 0.00 -64, -6.17, -407.62, 0.00 -65, -8.93, -395.29, 0.00 -66, -11.62, -381.67, 0.00 -67, -14.20, -367.12, 0.00 -68, -16.64, -351.56, 0.00 -69, -18.92, -335.22, 0.00 -70, -21.01, -318.22, 0.00 -71, -22.89, -300.56, 0.00 -72, -24.52, -282.37, 0.00 -73, -25.88, -263.71, 0.00 -74, -26.96, -244.77, 0.00 -75, -27.72, -225.59, 0.00 -76, -28.12, -205.99, 0.00 -77, -28.13, -186.20, 0.00 -78, -27.76, -166.42, 0.00 -79, -26.92, -146.54, 0.00 -80, -25.62, -126.74, 0.00 -81, -23.79, -107.06, 0.00 -82, -21.39, -87.53, 0.00 -83, -18.36, -68.27, 0.00 -84, -14.63, -49.34, 0.00 -85, -10.10, -30.83, 0.00 -86, -4.66, -12.84, 0.00 -87, 1.82, 4.49, 0.00 -88, 9.54, 21.04, 0.00 -89, 18.64, 36.46, 0.00 -90, 29.42, 50.48, 0.00 -91, 42.11, 62.60, 0.00 -92, 56.77, 71.89, 0.00 -93, 73.41, 77.41, 0.00 -94, 91.92, 78.09, 0.00 -95, 111.10, 72.36, 0.00 -96, 128.91, 59.09, 0.00 -97, 142.62, 38.60, 0.00 -98, 108.87, 14.61, 0.00 -99, 70.25, -0.00, 0.00 -100, 103.25, -13.86, 0.00 -101, 123.24, -33.35, 0.00 -102, 98.16, -44.99, 0.00 -103, 72.48, -47.21, 0.00 -104, 48.60, -41.28, 0.00 -105, 27.56, -29.06, 0.00 -106, 9.78, -12.38, 0.00 -107, -4.77, 7.09, 0.00 -108, -16.59, 28.46, 0.00 -109, -26.11, 51.06, 0.00 -110, -33.64, 74.25, 0.00 -111, -39.61, 97.94, 0.00 -112, -44.31, 122.01, 0.00 -113, -47.92, 146.26, 0.00 -114, -50.63, 170.78, 0.00 -115, -52.57, 195.45, 0.00 -116, -53.80, 220.12, 0.00 -117, -54.43, 244.90, 0.00 -118, -54.50, 269.61, 0.00 -119, -54.06, 294.24, 0.00 -120, -53.18, 318.89, 0.00 -121, -51.86, 343.20, 0.00 -122, -50.17, 367.52, 0.00 -123, -48.12, 391.59, 0.00 -124, -45.70, 414.97, 0.00 -125, -43.01, 438.21, 0.00 -126, -40.06, 461.35, 0.00 -127, -36.86, 484.02, 0.00 -128, -33.42, 506.10, 0.00 -129, -29.77, 527.50, 0.00 -130, -25.96, 548.39, 0.00 -131, -22.00, 568.76, 0.00 -132, -17.91, 588.36, 0.00 -133, -13.73, 607.39, 0.00 -134, -9.47, 625.38, 0.00 -135, -5.15, 642.54, 0.00 -136, -0.81, 659.27, 0.00 -137, 3.53, 674.87, 0.00 -138, 7.85, 689.30, 0.00 -139, 12.15, 703.23, 0.00 -140, 16.38, 716.18, 0.00 -141, 20.53, 727.67, 0.00 -142, 24.59, 738.40, 0.00 -143, 28.55, 748.36, 0.00 -144, 32.38, 757.04, 0.00 -145, 36.06, 764.43, 0.00 -146, 39.61, 771.02, 0.00 -147, 43.00, 776.59, 0.00 -148, 46.22, 780.89, 0.00 -149, 49.29, 784.46, 0.00 -150, 52.17, 786.78, 0.00 -151, 54.87, 788.13, 0.00 -152, 57.40, 788.54, 0.00 -153, 59.77, 788.13, 0.00 -154, 61.95, 786.74, 0.00 -155, 63.49, 778.73, 0.00 -156, 67.16, 797.62, 0.00 -157, 62.16, 716.24, 0.00 -158, 1.28, 14.32, 0.00 -159, -2.99, -32.64, 0.00 -160, 0.35, 3.75, 0.00 -161, -0.04, -0.41, 0.00 -162, 0.11, 1.11, 0.00 -163, 0.13, 1.27, 0.00 -164, 0.00, 0.00, 0.00 -165, -0.22, -2.15, 0.00 -166, -0.53, -5.01, 0.00 -167, -0.91, -8.41, 0.00 -168, -1.35, -12.19, 0.00 -169, -1.83, -16.27, 0.00 -170, -2.34, -20.53, 0.00 -171, -2.88, -24.89, 0.00 -172, -3.44, -29.28, 0.00 -173, -4.01, -33.68, 0.00 -174, -4.59, -37.96, 0.00 -175, -5.16, -42.10, 0.00 -176, -5.72, -46.12, 0.00 -177, -6.27, -49.88, 0.00 -178, -6.79, -53.37, 0.00 -179, -7.28, -56.59, 0.00 -180, -7.74, -59.45, 0.00 -181, -8.15, -61.97, 0.00 -182, -8.52, -64.08, 0.00 -183, -8.82, -65.74, 0.00 -184, -9.08, -67.01, 0.00 -185, -9.26, -67.76, 0.00 -186, -9.37, -67.96, 0.00 -187, -9.39, -67.62, 0.00 -188, -9.32, -66.63, 0.00 -189, -9.16, -65.08, 0.00 -190, -8.90, -62.89, 0.00 -191, -8.54, -59.98, 0.00 -192, -8.06, -56.33, 0.00 -193, -7.45, -51.85, 0.00 -194, -6.73, -46.69, 0.00 -195, -5.85, -40.49, 0.00 -196, -4.79, -33.08, 0.00 -197, -3.55, -24.47, 0.00 -198, -1.91, -13.14, 0.00 +199, -0.85, -0.00, 0.00 +0, -2.66, 18.33, 0.00 +1, -3.73, 25.70, 0.00 +2, -4.53, 31.27, 0.00 +3, -5.24, 36.23, 0.00 +4, -5.81, 40.33, 0.00 +5, -6.25, 43.55, 0.00 +6, -6.60, 46.13, 0.00 +7, -6.83, 47.96, 0.00 +8, -6.95, 49.09, 0.00 +9, -6.97, 49.54, 0.00 +10, -6.90, 49.35, 0.00 +11, -6.74, 48.57, 0.00 +12, -6.50, 47.14, 0.00 +13, -6.17, 45.13, 0.00 +14, -5.76, 42.53, 0.00 +15, -5.29, 39.38, 0.00 +16, -4.75, 35.75, 0.00 +17, -4.16, 31.65, 0.00 +18, -3.53, 27.09, 0.00 +19, -2.85, 22.14, 0.00 +20, -2.14, 16.79, 0.00 +21, -1.39, 11.10, 0.00 +22, -0.63, 5.06, 0.00 +23, 0.16, -1.33, 0.00 +24, 0.98, -8.10, 0.00 +25, 1.82, -15.27, 0.00 +26, 2.68, -22.82, 0.00 +27, 3.56, -30.76, 0.00 +28, 4.45, -39.00, 0.00 +29, 5.32, -47.44, 0.00 +30, 6.19, -56.07, 0.00 +31, 7.05, -64.97, 0.00 +32, 7.91, -74.28, 0.00 +33, 8.78, -83.97, 0.00 +34, 9.63, -93.91, 0.00 +35, 10.46, -104.09, 0.00 +36, 11.25, -114.37, 0.00 +37, 12.00, -124.73, 0.00 +38, 12.71, -135.28, 0.00 +39, 13.38, -145.98, 0.00 +40, 13.99, -156.79, 0.00 +41, 14.55, -167.72, 0.00 +42, 15.06, -178.80, 0.00 +43, 15.48, -189.92, 0.00 +44, 15.83, -201.03, 0.00 +45, 16.07, -211.97, 0.00 +46, 16.22, -222.82, 0.00 +47, 16.27, -233.68, 0.00 +48, 16.23, -244.83, 0.00 +49, 16.13, -256.65, 0.00 +50, 15.93, -269.12, 0.00 +51, 15.62, -282.01, 0.00 +52, 15.14, -294.70, 0.00 +53, 14.49, -307.24, 0.00 +54, 13.68, -319.91, 0.00 +55, 12.67, -332.16, 0.00 +56, 11.42, -342.95, 0.00 +57, 9.91, -351.31, 0.00 +58, 8.15, -356.48, 0.00 +59, 6.19, -358.24, 0.00 +60, 4.07, -357.17, 0.00 +61, 1.85, -353.80, 0.00 +62, -0.43, -348.10, 0.00 +63, -2.73, -340.32, 0.00 +64, -5.01, -331.03, 0.00 +65, -7.24, -320.26, 0.00 +66, -9.38, -308.18, 0.00 +67, -11.42, -295.32, 0.00 +68, -13.34, -281.72, 0.00 +69, -15.11, -267.62, 0.00 +70, -16.72, -253.15, 0.00 +71, -18.14, -238.20, 0.00 +72, -19.34, -222.69, 0.00 +73, -20.27, -206.50, 0.00 +74, -20.91, -189.85, 0.00 +75, -21.24, -172.83, 0.00 +76, -21.19, -155.22, 0.00 +77, -20.73, -137.21, 0.00 +78, -19.84, -118.97, 0.00 +79, -18.47, -100.51, 0.00 +80, -16.59, -82.08, 0.00 +81, -14.17, -63.76, 0.00 +82, -11.16, -45.67, 0.00 +83, -7.51, -27.92, 0.00 +84, -3.16, -10.66, 0.00 +85, 1.96, 5.99, 0.00 +86, 7.98, 21.97, 0.00 +87, 15.01, 37.12, 0.00 +88, 23.22, 51.25, 0.00 +89, 32.70, 63.95, 0.00 +90, 43.60, 74.81, 0.00 +91, 56.10, 83.39, 0.00 +92, 70.04, 88.70, 0.00 +93, 85.41, 90.05, 0.00 +94, 101.82, 86.49, 0.00 +95, 118.17, 76.97, 0.00 +96, 133.74, 61.30, 0.00 +97, 147.39, 39.89, 0.00 +98, 111.90, 15.02, 0.00 +99, 71.22, -0.00, 0.00 +100, 109.26, -14.66, 0.00 +101, 137.60, -37.24, 0.00 +102, 115.95, -53.15, 0.00 +103, 93.75, -61.06, 0.00 +104, 72.27, -61.39, 0.00 +105, 52.36, -55.20, 0.00 +106, 34.79, -44.05, 0.00 +107, 19.66, -29.23, 0.00 +108, 6.81, -11.68, 0.00 +109, -3.93, 7.68, 0.00 +110, -12.86, 28.37, 0.00 +111, -20.21, 49.96, 0.00 +112, -26.23, 72.22, 0.00 +113, -31.05, 94.79, 0.00 +114, -34.88, 117.65, 0.00 +115, -37.90, 140.89, 0.00 +116, -40.20, 164.49, 0.00 +117, -41.88, 188.42, 0.00 +118, -43.00, 212.71, 0.00 +119, -43.62, 237.42, 0.00 +120, -43.64, 261.69, 0.00 +121, -43.10, 285.24, 0.00 +122, -42.11, 308.46, 0.00 +123, -40.72, 331.35, 0.00 +124, -38.94, 353.54, 0.00 +125, -36.84, 375.42, 0.00 +126, -34.48, 397.10, 0.00 +127, -31.85, 418.29, 0.00 +128, -28.97, 438.71, 0.00 +129, -25.85, 458.00, 0.00 +130, -22.55, 476.33, 0.00 +131, -19.10, 493.80, 0.00 +132, -15.54, 510.37, 0.00 +133, -11.90, 526.39, 0.00 +134, -8.20, 541.54, 0.00 +135, -4.46, 556.04, 0.00 +136, -0.70, 570.26, 0.00 +137, 3.05, 583.60, 0.00 +138, 6.79, 596.04, 0.00 +139, 10.50, 608.18, 0.00 +140, 14.17, 619.60, 0.00 +141, 17.77, 629.84, 0.00 +142, 21.29, 639.37, 0.00 +143, 24.72, 648.06, 0.00 +144, 28.03, 655.33, 0.00 +145, 31.19, 661.08, 0.00 +146, 34.20, 665.74, 0.00 +147, 37.05, 669.08, 0.00 +148, 39.71, 670.85, 0.00 +149, 42.17, 671.22, 0.00 +150, 44.38, 669.34, 0.00 +151, 46.26, 664.42, 0.00 +152, 47.51, 652.70, 0.00 +153, 46.78, 616.94, 0.00 +154, 39.70, 504.23, 0.00 +155, 24.94, 305.93, 0.00 +156, 16.44, 195.28, 0.00 +157, 13.94, 160.59, 0.00 +158, 13.18, 147.63, 0.00 +159, 12.74, 138.97, 0.00 +160, 12.29, 130.81, 0.00 +161, 11.80, 122.63, 0.00 +162, 11.26, 114.42, 0.00 +163, 10.66, 106.07, 0.00 +164, 10.01, 97.60, 0.00 +165, 9.32, 89.11, 0.00 +166, 8.57, 80.48, 0.00 +167, 7.78, 71.77, 0.00 +168, 6.96, 63.07, 0.00 +169, 6.10, 54.40, 0.00 +170, 5.22, 45.80, 0.00 +171, 4.33, 37.37, 0.00 +172, 3.44, 29.24, 0.00 +173, 2.56, 21.44, 0.00 +174, 1.69, 13.95, 0.00 +175, 0.83, 6.81, 0.00 +176, 0.01, 0.05, 0.00 +177, -0.80, -6.35, 0.00 +178, -1.58, -12.38, 0.00 +179, -2.32, -18.05, 0.00 +180, -3.04, -23.33, 0.00 +181, -3.71, -28.22, 0.00 +182, -4.34, -32.66, 0.00 +183, -4.92, -36.62, 0.00 +184, -5.43, -40.09, 0.00 +185, -5.87, -42.98, 0.00 +186, -6.24, -45.27, 0.00 +187, -6.52, -46.94, 0.00 +188, -6.70, -47.94, 0.00 +189, -6.80, -48.33, 0.00 +190, -6.80, -48.04, 0.00 +191, -6.70, -47.05, 0.00 +192, -6.48, -45.33, 0.00 +193, -6.15, -42.84, 0.00 +194, -5.72, -39.70, 0.00 +195, -5.15, -35.65, 0.00 +196, -4.45, -30.72, 0.00 +197, -3.65, -25.15, 0.00 +198, -2.59, -17.80, 0.00 diff --git a/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref b/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref index de783b9af84..2e4f90bda43 100644 --- a/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref +++ b/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref @@ -1,200 +1,200 @@ -199, -1.02, -0.00, 0.00 -0, -2.05, 14.11, 0.00 -1, -3.63, 25.02, 0.00 -2, -4.85, 33.50, 0.00 -3, -5.88, 40.69, 0.00 -4, -6.73, 46.67, 0.00 -5, -7.41, 51.56, 0.00 -6, -7.97, 55.71, 0.00 -7, -8.40, 58.99, 0.00 -8, -8.71, 61.49, 0.00 -9, -8.90, 63.22, 0.00 -10, -8.98, 64.25, 0.00 -11, -8.98, 64.66, 0.00 -12, -8.87, 64.38, 0.00 -13, -8.68, 63.48, 0.00 -14, -8.39, 61.96, 0.00 -15, -8.03, 59.85, 0.00 -16, -7.61, 57.27, 0.00 -17, -7.12, 54.13, 0.00 -18, -6.57, 50.50, 0.00 -19, -5.97, 46.39, 0.00 -20, -5.32, 41.81, 0.00 -21, -4.63, 36.81, 0.00 -22, -3.90, 31.39, 0.00 -23, -3.13, 25.55, 0.00 -24, -2.34, 19.36, 0.00 -25, -1.53, 12.80, 0.00 -26, -0.69, 5.88, 0.00 -27, 0.16, -1.35, 0.00 -28, 1.02, -8.91, 0.00 -29, 1.88, -16.75, 0.00 -30, 2.74, -24.86, 0.00 -31, 3.61, -33.24, 0.00 -32, 4.46, -41.89, 0.00 -33, 5.31, -50.77, 0.00 -34, 6.14, -59.83, 0.00 -35, 6.95, -69.11, 0.00 -36, 7.73, -78.56, 0.00 -37, 8.48, -88.13, 0.00 -38, 9.19, -97.82, 0.00 -39, 9.86, -107.57, 0.00 -40, 10.47, -117.28, 0.00 -41, 11.01, -126.92, 0.00 -42, 11.49, -136.42, 0.00 -43, 11.87, -145.62, 0.00 -44, 12.15, -154.31, 0.00 -45, 12.30, -162.22, 0.00 -46, 12.31, -169.04, 0.00 -47, 12.11, -173.89, 0.00 -48, 11.66, -175.88, 0.00 -49, 11.13, -177.08, 0.00 -50, 10.20, -172.29, 0.00 -51, 6.86, -123.94, 0.00 -52, 5.97, -116.29, 0.00 -53, 21.77, -461.42, 0.00 -54, 26.12, -610.78, 0.00 -55, 21.89, -573.85, 0.00 -56, 18.71, -561.76, 0.00 -57, 15.72, -557.10, 0.00 -58, 12.57, -549.52, 0.00 -59, 9.33, -540.36, 0.00 -60, 6.04, -530.05, 0.00 -61, 2.71, -518.89, 0.00 -62, -0.62, -506.43, 0.00 -63, -3.95, -492.74, 0.00 -64, -7.24, -478.42, 0.00 -65, -10.47, -463.16, 0.00 -66, -13.60, -446.83, 0.00 -67, -16.63, -429.81, 0.00 -68, -19.50, -411.99, 0.00 -69, -22.22, -393.60, 0.00 -70, -24.75, -374.77, 0.00 -71, -27.06, -355.42, 0.00 -72, -29.14, -335.60, 0.00 -73, -30.94, -315.27, 0.00 -74, -32.45, -294.65, 0.00 -75, -33.65, -273.85, 0.00 -76, -34.49, -252.64, 0.00 -77, -34.95, -231.28, 0.00 -78, -35.02, -209.98, 0.00 -79, -34.64, -188.53, 0.00 -80, -33.79, -167.17, 0.00 -81, -32.42, -145.88, 0.00 -82, -30.48, -124.69, 0.00 -83, -27.91, -103.76, 0.00 -84, -24.63, -83.06, 0.00 -85, -20.55, -62.73, 0.00 -86, -15.56, -42.84, 0.00 -87, -9.50, -23.48, 0.00 -88, -2.17, -4.79, 0.00 -89, 6.62, 12.94, 0.00 -90, 17.16, 29.44, 0.00 -91, 29.73, 44.19, 0.00 -92, 44.58, 56.46, 0.00 -93, 61.71, 65.06, 0.00 -94, 81.10, 68.89, 0.00 -95, 101.88, 66.36, 0.00 -96, 122.09, 55.96, 0.00 -97, 139.13, 37.65, 0.00 -98, 108.84, 14.60, 0.00 -99, 71.28, -0.00, 0.00 -100, 106.29, -14.26, 0.00 -101, 130.33, -35.27, 0.00 -102, 108.14, -49.57, 0.00 -103, 84.37, -54.95, 0.00 -104, 61.43, -52.19, 0.00 -105, 40.94, -43.16, 0.00 -106, 23.22, -29.41, 0.00 -107, 8.42, -12.52, 0.00 -108, -3.78, 6.48, 0.00 -109, -13.76, 26.90, 0.00 -110, -21.85, 48.23, 0.00 -111, -28.39, 70.19, 0.00 -112, -33.65, 92.65, 0.00 -113, -37.82, 115.44, 0.00 -114, -41.08, 138.55, 0.00 -115, -43.55, 161.90, 0.00 -116, -45.31, 185.37, 0.00 -117, -46.46, 209.03, 0.00 -118, -47.03, 232.69, 0.00 -119, -47.10, 256.34, 0.00 -120, -46.71, 280.06, 0.00 -121, -45.86, 303.51, 0.00 -122, -44.63, 326.98, 0.00 -123, -43.04, 350.21, 0.00 -124, -41.06, 372.86, 0.00 -125, -38.81, 395.46, 0.00 -126, -36.30, 418.02, 0.00 -127, -33.51, 440.10, 0.00 -128, -30.48, 461.60, 0.00 -129, -27.23, 482.42, 0.00 -130, -23.80, 502.74, 0.00 -131, -20.21, 522.54, 0.00 -132, -16.49, 541.62, 0.00 -133, -12.66, 560.14, 0.00 -134, -8.74, 577.66, 0.00 -135, -4.77, 594.37, 0.00 -136, -0.75, 610.64, 0.00 -137, 3.27, 625.80, 0.00 -138, 7.29, 639.80, 0.00 -139, 11.28, 653.28, 0.00 -140, 15.23, 665.78, 0.00 -141, 19.09, 676.85, 0.00 -142, 22.88, 687.16, 0.00 -143, 26.58, 696.67, 0.00 -144, 30.15, 704.91, 0.00 -145, 33.58, 711.87, 0.00 -146, 36.88, 717.99, 0.00 -147, 40.04, 723.07, 0.00 -148, 43.03, 726.92, 0.00 -149, 45.86, 729.95, 0.00 -150, 48.47, 730.99, 0.00 -151, 50.57, 726.34, 0.00 -152, 54.71, 751.52, 0.00 -153, 52.81, 696.43, 0.00 -154, 5.64, 71.68, 0.00 -155, -0.65, -7.95, 0.00 -156, 3.46, 41.08, 0.00 -157, 3.63, 41.77, 0.00 -158, 4.01, 44.95, 0.00 -159, 4.28, 46.74, 0.00 -160, 4.32, 46.00, 0.00 -161, 4.21, 43.77, 0.00 -162, 3.98, 40.43, 0.00 -163, 3.64, 36.21, 0.00 -164, 3.22, 31.35, 0.00 -165, 2.72, 26.01, 0.00 -166, 2.16, 20.31, 0.00 -167, 1.56, 14.37, 0.00 -168, 0.92, 8.30, 0.00 -169, 0.24, 2.16, 0.00 -170, -0.45, -3.98, 0.00 -171, -1.16, -10.05, 0.00 -172, -1.88, -15.99, 0.00 -173, -2.60, -21.79, 0.00 -174, -3.31, -27.36, 0.00 -175, -4.00, -32.68, 0.00 -176, -4.69, -37.76, 0.00 -177, -5.34, -42.49, 0.00 -178, -5.96, -46.87, 0.00 -179, -6.55, -50.90, 0.00 -180, -7.09, -54.49, 0.00 -181, -7.59, -57.67, 0.00 -182, -8.03, -60.38, 0.00 -183, -8.40, -62.58, 0.00 -184, -8.72, -64.34, 0.00 -185, -8.96, -65.53, 0.00 -186, -9.11, -66.13, 0.00 -187, -9.18, -66.13, 0.00 -188, -9.15, -65.46, 0.00 -189, -9.04, -64.19, 0.00 -190, -8.81, -62.24, 0.00 -191, -8.48, -59.55, 0.00 -192, -8.02, -56.09, 0.00 -193, -7.44, -51.78, 0.00 -194, -6.74, -46.74, 0.00 -195, -5.87, -40.64, 0.00 -196, -4.83, -33.31, 0.00 -197, -3.59, -24.74, 0.00 -198, -1.96, -13.51, 0.00 +199, -1.01, -0.00, 0.00 +0, -2.98, 20.50, 0.00 +1, -3.99, 27.46, 0.00 +2, -5.22, 36.06, 0.00 +3, -6.10, 42.20, 0.00 +4, -6.90, 47.88, 0.00 +5, -7.54, 52.52, 0.00 +6, -8.08, 56.52, 0.00 +7, -8.50, 59.69, 0.00 +8, -8.79, 62.11, 0.00 +9, -8.98, 63.80, 0.00 +10, -9.06, 64.81, 0.00 +11, -9.06, 65.22, 0.00 +12, -8.95, 64.94, 0.00 +13, -8.75, 64.06, 0.00 +14, -8.48, 62.56, 0.00 +15, -8.12, 60.48, 0.00 +16, -7.70, 57.92, 0.00 +17, -7.21, 54.81, 0.00 +18, -6.66, 51.20, 0.00 +19, -6.07, 47.12, 0.00 +20, -5.42, 42.57, 0.00 +21, -4.73, 37.59, 0.00 +22, -4.00, 32.19, 0.00 +23, -3.23, 26.37, 0.00 +24, -2.44, 20.21, 0.00 +25, -1.63, 13.66, 0.00 +26, -0.79, 6.76, 0.00 +27, 0.05, -0.45, 0.00 +28, 0.91, -7.99, 0.00 +29, 1.77, -15.81, 0.00 +30, 2.64, -23.91, 0.00 +31, 3.50, -32.27, 0.00 +32, 4.36, -40.90, 0.00 +33, 5.20, -49.76, 0.00 +34, 6.03, -58.80, 0.00 +35, 6.84, -68.06, 0.00 +36, 7.63, -77.50, 0.00 +37, 8.37, -87.04, 0.00 +38, 9.09, -96.70, 0.00 +39, 9.76, -106.43, 0.00 +40, 10.37, -116.12, 0.00 +41, 10.91, -125.73, 0.00 +42, 11.39, -135.21, 0.00 +43, 11.77, -144.39, 0.00 +44, 12.05, -153.08, 0.00 +45, 12.21, -161.05, 0.00 +46, 12.22, -167.88, 0.00 +47, 12.01, -172.51, 0.00 +48, 11.61, -175.12, 0.00 +49, 11.25, -179.01, 0.00 +50, 10.12, -170.90, 0.00 +51, 6.24, -112.75, 0.00 +52, 6.61, -128.63, 0.00 +53, 20.84, -441.83, 0.00 +54, 25.65, -599.65, 0.00 +55, 21.77, -570.80, 0.00 +56, 18.66, -560.26, 0.00 +57, 15.64, -554.49, 0.00 +58, 12.51, -546.85, 0.00 +59, 9.28, -537.57, 0.00 +60, 6.01, -527.15, 0.00 +61, 2.70, -515.89, 0.00 +62, -0.62, -503.33, 0.00 +63, -3.92, -489.55, 0.00 +64, -7.19, -475.11, 0.00 +65, -10.39, -459.75, 0.00 +66, -13.50, -443.31, 0.00 +67, -16.49, -426.20, 0.00 +68, -19.33, -408.27, 0.00 +69, -22.00, -389.78, 0.00 +70, -24.49, -370.85, 0.00 +71, -26.76, -351.39, 0.00 +72, -28.78, -331.47, 0.00 +73, -30.52, -311.04, 0.00 +74, -31.97, -290.33, 0.00 +75, -33.11, -269.42, 0.00 +76, -33.86, -248.08, 0.00 +77, -34.24, -226.61, 0.00 +78, -34.22, -205.20, 0.00 +79, -33.74, -183.64, 0.00 +80, -32.78, -162.19, 0.00 +81, -31.29, -140.79, 0.00 +82, -29.21, -119.49, 0.00 +83, -26.48, -98.43, 0.00 +84, -23.02, -77.63, 0.00 +85, -18.75, -57.22, 0.00 +86, -13.54, -37.28, 0.00 +87, -7.23, -17.89, 0.00 +88, 0.32, 0.71, 0.00 +89, 9.35, 18.28, 0.00 +90, 20.02, 34.35, 0.00 +91, 32.65, 48.54, 0.00 +92, 47.34, 59.96, 0.00 +93, 64.24, 67.74, 0.00 +94, 83.11, 70.60, 0.00 +95, 102.71, 66.90, 0.00 +96, 121.38, 55.64, 0.00 +97, 137.08, 37.10, 0.00 +98, 106.89, 14.34, 0.00 +99, 69.93, -0.00, 0.00 +100, 104.81, -14.06, 0.00 +101, 129.39, -35.02, 0.00 +102, 108.98, -49.95, 0.00 +103, 86.90, -56.60, 0.00 +104, 64.97, -55.19, 0.00 +105, 44.71, -47.14, 0.00 +106, 27.08, -34.30, 0.00 +107, 12.21, -18.16, 0.00 +108, -0.23, 0.39, 0.00 +109, -10.50, 20.54, 0.00 +110, -18.96, 41.85, 0.00 +111, -25.82, 63.84, 0.00 +112, -31.39, 86.44, 0.00 +113, -35.84, 109.39, 0.00 +114, -39.33, 132.66, 0.00 +115, -42.01, 156.16, 0.00 +116, -43.95, 179.80, 0.00 +117, -45.26, 203.64, 0.00 +118, -45.98, 227.47, 0.00 +119, -46.16, 251.27, 0.00 +120, -45.89, 275.14, 0.00 +121, -45.14, 298.74, 0.00 +122, -44.00, 322.34, 0.00 +123, -42.49, 345.71, 0.00 +124, -40.58, 368.50, 0.00 +125, -38.39, 391.21, 0.00 +126, -35.94, 413.88, 0.00 +127, -33.21, 436.09, 0.00 +128, -30.22, 457.70, 0.00 +129, -27.02, 478.65, 0.00 +130, -23.62, 499.09, 0.00 +131, -20.08, 519.03, 0.00 +132, -16.39, 538.22, 0.00 +133, -12.59, 556.86, 0.00 +134, -8.70, 574.51, 0.00 +135, -4.74, 591.34, 0.00 +136, -0.75, 607.73, 0.00 +137, 3.26, 623.00, 0.00 +138, 7.26, 637.13, 0.00 +139, 11.24, 650.73, 0.00 +140, 15.17, 663.34, 0.00 +141, 19.03, 674.54, 0.00 +142, 22.81, 684.95, 0.00 +143, 26.50, 694.58, 0.00 +144, 30.06, 702.94, 0.00 +145, 33.49, 710.01, 0.00 +146, 36.79, 716.23, 0.00 +147, 39.95, 721.39, 0.00 +148, 42.93, 725.31, 0.00 +149, 45.77, 728.51, 0.00 +150, 48.44, 730.59, 0.00 +151, 50.61, 726.85, 0.00 +152, 53.86, 739.83, 0.00 +153, 53.31, 702.96, 0.00 +154, 8.15, 103.49, 0.00 +155, -2.34, -28.69, 0.00 +156, 3.10, 36.88, 0.00 +157, 3.81, 43.93, 0.00 +158, 3.88, 43.46, 0.00 +159, 4.18, 45.56, 0.00 +160, 4.24, 45.15, 0.00 +161, 4.13, 42.94, 0.00 +162, 3.90, 39.62, 0.00 +163, 3.56, 35.42, 0.00 +164, 3.14, 30.58, 0.00 +165, 2.64, 25.27, 0.00 +166, 2.09, 19.60, 0.00 +167, 1.48, 13.68, 0.00 +168, 0.84, 7.64, 0.00 +169, 0.17, 1.53, 0.00 +170, -0.52, -4.58, 0.00 +171, -1.23, -10.62, 0.00 +172, -1.94, -16.53, 0.00 +173, -2.66, -22.30, 0.00 +174, -3.37, -27.85, 0.00 +175, -4.06, -33.13, 0.00 +176, -4.74, -38.17, 0.00 +177, -5.39, -42.87, 0.00 +178, -6.01, -47.21, 0.00 +179, -6.59, -51.20, 0.00 +180, -7.13, -54.76, 0.00 +181, -7.62, -57.90, 0.00 +182, -8.05, -60.58, 0.00 +183, -8.42, -62.75, 0.00 +184, -8.74, -64.48, 0.00 +185, -8.97, -65.65, 0.00 +186, -9.13, -66.23, 0.00 +187, -9.20, -66.23, 0.00 +188, -9.17, -65.58, 0.00 +189, -9.06, -64.33, 0.00 +190, -8.84, -62.44, 0.00 +191, -8.52, -59.84, 0.00 +192, -8.08, -56.51, 0.00 +193, -7.52, -52.37, 0.00 +194, -6.86, -47.60, 0.00 +195, -6.05, -41.82, 0.00 +196, -5.16, -35.60, 0.00 +197, -3.91, -26.94, 0.00 +198, -2.89, -19.92, 0.00 diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg new file mode 100644 index 00000000000..9630355c8d5 --- /dev/null +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg @@ -0,0 +1,150 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Turbulent flow over flat plate(2DZPH) % +% Author: Sunoh. Kang % +% Institution: Pusan National University % +% Date: 2024.04.30 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= RANS +KIND_TURB_MODEL= SST +SST_OPTIONS= V2003m, COMPRESSIBILITY-SARKAR +MATH_PROBLEM= DIRECT +RESTART_SOL= NO + +% ------------------------ COMPRESSIBLE FREE-STREAM DEFINITION ----------------% +% +MACH_NUMBER= 5.0 +AOA= 0.000 +INIT_OPTION= TD_CONDITIONS +FREESTREAM_OPTION= TEMPERATURE_FS +FREESTREAM_TEMPERATURE= 300.3333 +FREESTREAM_PRESSURE= 13753.90558 +FREESTREAM_TURBULENCEINTENSITY = 0.00002 +FREESTREAM_TURB2LAMVISCRATIO = 0.009 +REF_DIMENSIONALIZATION= DIMENSIONAL +REYNOLDS_NUMBER= 15E6 + +% ---- IDEAL GAS, POLYTPOPIC, VAN DER WALLS AND PENG ROBINSOPN CNSTANTS ------ % +% +FLUID_MODEL= IDEAL_GAS +GAMMA_VALUE= 1.4 +GAS_CONSTANT= 287.058 +ACENTRIC_FACTOR= 0.035 +SPECIFIC_HEAT_CP= 1004.703 +THERMAL_EXPANSION_COEFF= 0.00347 +MOLECULAR_WEIGHT= 28.96 + +% --------------------------- VISCOSITY MODEL ---------------------------------% +% + +VISCOSITY_MODEL= SUTHERLAND +MU_REF= 1.716E-5 +MU_T_REF= 273.15 +SUTHERLAND_CONSTANT= 110.4 + +% ------------------------ THERMAL CONDUCTIVITY MODEL -------------------------% +% + +CONDUCTIVITY_MODEL= CONSTANT_PRANDTL +PRANDTL_LAM= 0.72 +TURBULENT_CONDUCTIVITY_MODEL= CONSTANT_PRANDTL_TURB +PRANDTL_TURB= 0.9 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% + +REF_ORIGIN_MOMENT_X = 0.00 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +REF_LENGTH= 1.0 +REF_AREA= 1.0 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% + +MARKER_PLOTTING = ( wall ) +MARKER_SUPERSONIC_INLET= ( inlet, 300.3333 , 13753.90558 , 1737.082226 , 0.0 , 0.0 ) +MARKER_FAR= ( farfield ) +MARKER_SYM= ( symmetry ) +MARKER_SUPERSONIC_OUTLET= (outlet, 34384.76396) +MARKER_ISOTHERMAL= ( wall, 327.36297) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% + +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +CFL_NUMBER= 0.5 +CFL_ADAPT= YES +CFL_ADAPT_PARAM= ( 0.1, 1.5, 0.5, 50.0 ) + +% --------- SLOPE LIMITER DEFINITION, DISSIPATION SENSOR DEFINITION -----------------% +% + +MUSCL_FLOW= YES +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN_WANG +SLOPE_LIMITER_TURB= NONE +VENKAT_LIMITER_COEFF= 0.05 +JST_SENSOR_COEFF= (0.5, 0.02) + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% + +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= LU_SGS +LINEAR_SOLVER_ERROR= 1E-6 +LINEAR_SOLVER_ITER= 5 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% + +CONV_NUM_METHOD_FLOW= AUSM +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% +% + +CONV_NUM_METHOD_TURB= SCALAR_UPWIND +TIME_DISCRE_TURB= EULER_IMPLICIT + +% ------------------------- SCREEN/HISTORY VOLUME OUTPUT --------------------------% +% + +SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_MOMENTUM-X, RMS_MOMENTUM-Y, RMS_ENERGY, RMS_TKE, RMS_DISSIPATION) +SCREEN_WRT_FREQ_INNER= 1 +SCREEN_WRT_FREQ_OUTER= 1 +SCREEN_WRT_FREQ_TIME= 1 +HISTORY_WRT_FREQ_INNER= 1 +HISTORY_WRT_FREQ_OUTER= 1 +HISTORY_WRT_FREQ_TIME= 1 +OUTPUT_WRT_FREQ= 1000 + +% ------------------------- INPUT/OUTPUT FILE INFORMATION --------------------------% +% + +MESH_FILENAME= mesh_flatplate_turb_137x97.su2 +MESH_FORMAT= SU2 +MESH_OUT_FILENAME= mesh_out.su2 +SOLUTION_FILENAME= restart_flow.dat +SOLUTION_ADJ_FILENAME= solution_adj.dat +OUTPUT_FILES= (RESTART, PARAVIEW, SURFACE_PARAVIEW, TECPLOT, SURFACE_TECPLOT, CSV, SURFACE_CSV ) +CONV_FILENAME= history +BREAKDOWN_FILENAME= forces_breakdown.dat +RESTART_FILENAME= restart_flow.dat +RESTART_ADJ_FILENAME= restart_adj.dat + +% ------------------------------- SOLVER CONTROL ------------------------------% +% + +ITER= 100 +OUTER_ITER= 1 +TIME_ITER= 100 +CONV_RESIDUAL_MINVAL= -14 +CONV_STARTITER= 10 +CONV_CAUCHY_ELEMS= 100 +CONV_CAUCHY_EPS= 1E-10 diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg new file mode 100644 index 00000000000..bec9c121e3a --- /dev/null +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg @@ -0,0 +1,150 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Turbulent flow over flat plate(2DZPH) % +% Author: Sunoh. Kang % +% Institution: Pusan National University % +% Date: 2024.04.30 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= RANS +KIND_TURB_MODEL= SST +SST_OPTIONS= V2003m, COMPRESSIBILITY-WILCOX +MATH_PROBLEM= DIRECT +RESTART_SOL= NO + +% ------------------------ COMPRESSIBLE FREE-STREAM DEFINITION ----------------% +% +MACH_NUMBER= 5.0 +AOA= 0.000 +INIT_OPTION= TD_CONDITIONS +FREESTREAM_OPTION= TEMPERATURE_FS +FREESTREAM_TEMPERATURE= 300.3333 +FREESTREAM_PRESSURE= 13753.90558 +FREESTREAM_TURBULENCEINTENSITY = 0.00002 +FREESTREAM_TURB2LAMVISCRATIO = 0.009 +REF_DIMENSIONALIZATION= DIMENSIONAL +REYNOLDS_NUMBER= 15E6 + +% ---- IDEAL GAS, POLYTPOPIC, VAN DER WALLS AND PENG ROBINSOPN CNSTANTS ------ % +% +FLUID_MODEL= IDEAL_GAS +GAMMA_VALUE= 1.4 +GAS_CONSTANT= 287.058 +ACENTRIC_FACTOR= 0.035 +SPECIFIC_HEAT_CP= 1004.703 +THERMAL_EXPANSION_COEFF= 0.00347 +MOLECULAR_WEIGHT= 28.96 + +% --------------------------- VISCOSITY MODEL ---------------------------------% +% + +VISCOSITY_MODEL= SUTHERLAND +MU_REF= 1.716E-5 +MU_T_REF= 273.15 +SUTHERLAND_CONSTANT= 110.4 + +% ------------------------ THERMAL CONDUCTIVITY MODEL -------------------------% +% + +CONDUCTIVITY_MODEL= CONSTANT_PRANDTL +PRANDTL_LAM= 0.72 +TURBULENT_CONDUCTIVITY_MODEL= CONSTANT_PRANDTL_TURB +PRANDTL_TURB= 0.9 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% + +REF_ORIGIN_MOMENT_X = 0.00 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +REF_LENGTH= 1.0 +REF_AREA= 1.0 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% + +MARKER_PLOTTING = ( wall ) +MARKER_SUPERSONIC_INLET= ( inlet, 300.3333 , 13753.90558 , 1737.082226 , 0.0 , 0.0 ) +MARKER_FAR= ( farfield ) +MARKER_SYM= ( symmetry ) +MARKER_SUPERSONIC_OUTLET= (outlet, 34384.76396) +MARKER_ISOTHERMAL= ( wall, 327.36297) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% + +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +CFL_NUMBER= 0.5 +CFL_ADAPT= YES +CFL_ADAPT_PARAM= ( 0.1, 1.5, 0.5, 50.0 ) + +% --------- SLOPE LIMITER DEFINITION, DISSIPATION SENSOR DEFINITION -----------------% +% + +MUSCL_FLOW= YES +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN_WANG +SLOPE_LIMITER_TURB= NONE +VENKAT_LIMITER_COEFF= 0.05 +JST_SENSOR_COEFF= (0.5, 0.02) + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% + +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= LU_SGS +LINEAR_SOLVER_ERROR= 1E-6 +LINEAR_SOLVER_ITER= 5 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% + +CONV_NUM_METHOD_FLOW= AUSM +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% +% + +CONV_NUM_METHOD_TURB= SCALAR_UPWIND +TIME_DISCRE_TURB= EULER_IMPLICIT + +% ------------------------- SCREEN/HISTORY VOLUME OUTPUT --------------------------% +% + +SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_MOMENTUM-X, RMS_MOMENTUM-Y, RMS_ENERGY, RMS_TKE, RMS_DISSIPATION) +SCREEN_WRT_FREQ_INNER= 1 +SCREEN_WRT_FREQ_OUTER= 1 +SCREEN_WRT_FREQ_TIME= 1 +HISTORY_WRT_FREQ_INNER= 1 +HISTORY_WRT_FREQ_OUTER= 1 +HISTORY_WRT_FREQ_TIME= 1 +OUTPUT_WRT_FREQ= 1000 + +% ------------------------- INPUT/OUTPUT FILE INFORMATION --------------------------% +% + +MESH_FILENAME= mesh_flatplate_turb_137x97.su2 +MESH_FORMAT= SU2 +MESH_OUT_FILENAME= mesh_out.su2 +SOLUTION_FILENAME= restart_flow.dat +SOLUTION_ADJ_FILENAME= solution_adj.dat +OUTPUT_FILES= (RESTART, PARAVIEW, SURFACE_PARAVIEW, TECPLOT, SURFACE_TECPLOT, CSV, SURFACE_CSV ) +CONV_FILENAME= history +BREAKDOWN_FILENAME= forces_breakdown.dat +RESTART_FILENAME= restart_flow.dat +RESTART_ADJ_FILENAME= restart_adj.dat + +% ------------------------------- SOLVER CONTROL ------------------------------% +% + +ITER= 100 +OUTER_ITER= 1 +TIME_ITER= 100 +CONV_RESIDUAL_MINVAL= -14 +CONV_STARTITER= 10 +CONV_CAUCHY_ELEMS= 100 +CONV_CAUCHY_EPS= 1E-10 diff --git a/TestCases/rotating/naca0012/rot_NACA0012.cfg b/TestCases/rotating/naca0012/rot_NACA0012.cfg index a103c5fbcf6..35c932c33b5 100644 --- a/TestCases/rotating/naca0012/rot_NACA0012.cfg +++ b/TestCases/rotating/naca0012/rot_NACA0012.cfg @@ -131,7 +131,7 @@ VOLUME_ADJ_FILENAME= adjoint GRAD_OBJFUNC_FILENAME= of_grad.dat SURFACE_FILENAME= surface_flow SURFACE_ADJ_FILENAME= surface_adjoint -OUTPUT_WRT_FREQ= 1 +OUTPUT_WRT_FREQ= 100 % --------------------- OPTIMAL SHAPE DESIGN DEFINITION -----------------------% % diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index fcdacb032a7..080b41053b7 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -64,7 +64,7 @@ def main(): invwedge.cfg_dir = "nonequilibrium/invwedge" invwedge.cfg_file = "invwedge_ausm.cfg" invwedge.test_iter = 10 - invwedge.test_vals = [-1.046323, -1.571086, -18.301251, -18.628639, -18.574676, 2.271778, 1.875687, 5.315769, 0.870008] + invwedge.test_vals = [-1.073699, -1.598462, -18.299911, -18.627322, -18.573334, 2.241760, 1.868575, 5.286072, 0.843741] invwedge.test_vals_aarch64 = [-1.046323, -1.571086, -18.301361, -18.628744, -18.574788, 2.271778, 1.875687, 5.315769, 0.870008] test_list.append(invwedge) @@ -73,7 +73,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.215236, -5.739371, -20.556662, -20.517023, -20.436970, 1.262783, -3.205463, -0.015695, 0.093205, 32656.000000] + visc_cone.test_vals = [-5.215239, -5.739373, -20.560910, -20.517094, -20.406632, 1.262779, -3.205484, -0.015695, 0.093205, 32641.000000] visc_cone.test_vals_aarch64 = [-5.215229, -5.739368, -20.556662, -20.517022, -20.437459, 1.262784, -3.205455, -0.015696, 0.093207, 32656.000000] test_list.append(visc_cone) @@ -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.475872, 3.046370, -0.203974, 0.036018] + channel.test_vals = [-2.691364, 2.781660, -0.009405, 0.011874] 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.023999, -3.515034, 0.339426, 0.022217] + naca0012.test_vals = [-4.444941, -3.941038, 0.318998, 0.022365] 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 = [-0.942862, 4.784581, -0.208106, 0.036665] + wedge.test_vals = [-1.368091, 4.302736, -0.243433, 0.042906] 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 = [-9.279396, -8.697739, 0.281703, 0.011821] + oneram6.test_vals = [-11.510606, -10.980023, 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 = [-7.382410, -1.879887, 0.300000, 0.019471] + fixedCL_naca0012.test_vals = [-3.848561, 1.688373, 0.301145, 0.019489] test_list.append(fixedCL_naca0012) # Polar sweep of the inviscid NACA0012 @@ -135,8 +135,8 @@ def main(): polar_naca0012.cfg_file = "inv_NACA0012.cfg" polar_naca0012.polar = True polar_naca0012.test_iter = 10 - polar_naca0012.test_vals = [-1.243326, 4.224483, 0.016432, 0.016145] - polar_naca0012.test_vals_aarch64 = [-1.811046, 3.612379, 0.012330, 0.009194] + polar_naca0012.test_vals = [-1.067859, 4.397227, 0.000060, 0.031134] + 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 polar_naca0012.enabled_on_cpu_arch = ["x86_64"] @@ -147,7 +147,7 @@ def main(): bluntbody.cfg_dir = "euler/bluntbody" bluntbody.cfg_file = "blunt.cfg" bluntbody.test_iter = 20 - bluntbody.test_vals = [0.540009, 6.916653, -0.000000, 1.868975] + bluntbody.test_vals = [0.493297, 6.857373, -0.000026, 1.791394] test_list.append(bluntbody) ########################## @@ -165,8 +165,8 @@ def main(): flatplate = TestCase('flatplate') flatplate.cfg_dir = "navierstokes/flatplate" flatplate.cfg_file = "lam_flatplate.cfg" - flatplate.test_iter = 100 - flatplate.test_vals = [-9.856258, -4.371983, 0.001112, 0.036277, 2.361500, -2.325300, -2.279500, -2.279500] + flatplate.test_iter = 20 + flatplate.test_vals = [-5.122306, 0.357174, 0.001311, 0.028230, 2.361600, -2.333300, -2.629100, -2.629100] test_list.append(flatplate) # Laminar cylinder (steady) @@ -174,7 +174,7 @@ def main(): cylinder.cfg_dir = "navierstokes/cylinder" cylinder.cfg_file = "lam_cylinder.cfg" cylinder.test_iter = 25 - cylinder.test_vals = [-6.765430, -1.297426, 0.019508, 0.310015, 0.123250] + cylinder.test_vals = [-8.363068, -2.882163, -0.017777, 1.607222, -0.010064] test_list.append(cylinder) # Laminar cylinder (low Mach correction) @@ -182,7 +182,7 @@ def main(): cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 - cylinder_lowmach.test_vals = [-6.850123, -1.388088, -0.056090, 108.140176, 0.007983] + cylinder_lowmach.test_vals = [-6.830989, -1.368842, -0.143838, 73.962440, 0.002454] test_list.append(cylinder_lowmach) # 2D Poiseuille flow (body force driven with periodic inlet / outlet) @@ -198,8 +198,8 @@ 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.494681, -7.711642, -0.000000, 2.085796] - poiseuille_profile.test_vals_aarch64 = [-12.494684, -7.711379, -0.000000, 2.085796] #last 4 columns + poiseuille_profile.test_vals = [-12.485974, -7.612341, -0.000000, 2.085796] + poiseuille_profile.test_vals_aarch64 = [-12.485974, -7.612341, -0.000000, 2.085796] test_list.append(poiseuille_profile) ########################## @@ -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.157358, -6.736289, -0.176258, 0.057431] + turb_flatplate.test_vals = [-4.156553, -6.736064, -0.176184, 0.057478] 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.181412, -1.864638, -1.966031, 1.259921, -1.487159, 1.544166, 10.000000, -2.130777, 0.073950, 0.002971] + turb_wallfunction_flatplate_sst.test_vals = [-4.177397, -1.880811, -1.943377, 1.263787, -1.254740, 1.538892, 10.000000, -2.097623, 0.074673, 0.002932] 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.435719, -2.044696, -2.114266, 0.980115, -5.393813, 10.000000, -1.589802, 0.069744, 0.002686] + turb_wallfunction_flatplate_sa.test_vals = [-4.414833, -2.031596, -2.120806, 1.007586, -5.386444, 10.000000, -1.635112, 0.068983, 0.002640] 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.388841, -6.689427, 0.230321, 0.157640, -32539.000000] + turb_oneram6.test_vals = [-2.392867, -6.689823, 0.230746, 0.158811, -33786.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.063377, -7.005051, -8.705733, -4.036815, -2019.8] + axi_rans_air_nozzle_restart.test_vals = [-12.151701, -6.605756, -9.188910, -4.516059, -2019.700000] axi_rans_air_nozzle_restart.test_vals_aarch64 = [-12.063354, -7.004772, -8.705740, -4.036824, -2019.800000] 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 = [-4.858287, -3.810487, 0.491850, 0.007002] + inc_euler_naca0012.test_vals = [-7.128795, -6.375403, 0.531980, 0.008467] 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 = [-5.971283, -4.911145, -0.000201, 0.121631] + inc_nozzle.test_vals = [-6.363763, -5.566528, -0.005348, 0.126610] 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.455147, -3.082194, -0.018579, 1.169947] + inc_lam_bend.test_vals = [-3.558881, -3.234611, -0.016265, 1.024052] 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.560775, -5.700721, -6.304284, -4.230488, -7.179831, -1.956057, 10.000000, -2.918240, 0.000887, 0.003680, 0.518450] + inc_turb_wallfunction_flatplate_sst.test_vals = [-6.507362, -5.693894, -6.434063, -4.223774, -7.008049, -1.954102, 10.000000, -3.047554, 0.001081, 0.003644, 0.618140] 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.561303, -5.718581, -6.306403, -4.230225, -9.586904, 10.000000, -2.927392, 0.000858, 0.003792] + 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] 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.029786, -13.240213, 0.000053, 0.007986] + schubauer_klebanoff_transition.test_vals = [-8.087369, -13.241874, 0.000055, 0.007992] test_list.append(schubauer_klebanoff_transition) ##################################### @@ -577,7 +577,7 @@ def main(): contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012" contadj_naca0012.cfg_file = "inv_NACA0012.cfg" contadj_naca0012.test_iter = 5 - contadj_naca0012.test_vals = [-9.289565, -14.563859, 0.300920, 0.019552] + contadj_naca0012.test_vals = [-9.748339, -15.067997, -0.726250, 0.020280] contadj_naca0012.tol = 0.001 test_list.append(contadj_naca0012) @@ -586,7 +586,7 @@ def main(): contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6" contadj_oneram6.cfg_file = "inv_ONERAM6.cfg" contadj_oneram6.test_iter = 10 - contadj_oneram6.test_vals = [-12.133160, -12.706697, 0.685900, 0.007594] + contadj_oneram6.test_vals = [-12.034680, -12.592674, -1.086100, 0.007556] test_list.append(contadj_oneram6) # Inviscid WEDGE: tests averaged outflow total pressure adjoint @@ -594,7 +594,7 @@ def main(): contadj_wedge.cfg_dir = "cont_adj_euler/wedge" contadj_wedge.cfg_file = "inv_wedge_ROE.cfg" contadj_wedge.test_iter = 10 - contadj_wedge.test_vals = [2.872691, -2.755572, 853000.000000, 0.000000] + contadj_wedge.test_vals = [2.872064, -2.756210, 1010800.000000, 0.000000] test_list.append(contadj_wedge) # Inviscid fixed CL NACA0012 @@ -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.293213, -5.201710, 0.360590, -0.000022] + contadj_fixedCL_naca0012.test_vals = [0.755070, -4.794630, -0.525290, -0.000238] test_list.append(contadj_fixedCL_naca0012) ################################### @@ -725,7 +725,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.589739, 0.790169, 0.937053, 3.922579] + harmonic_balance.test_vals = [-1.554985, 0.831796, 0.935729, 3.960210] test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil @@ -745,7 +745,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.688979, 2.857521, -0.079219, 0.002135] + rot_naca0012.test_vals = [-2.738864, 2.811401, -0.080279, 0.002160] test_list.append(rot_naca0012) # Lid-driven cavity @@ -753,7 +753,7 @@ def main(): cavity.cfg_dir = "moving_wall/cavity" cavity.cfg_file = "lam_cavity.cfg" cavity.test_iter = 25 - cavity.test_vals = [ -5.627868, -0.164405, 0.053283, 2.545817] + cavity.test_vals = [-5.627868, -0.164405, 0.053283, 2.545817] test_list.append(cavity) # Spinning cylinder @@ -782,7 +782,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.977520, 3.481804, -0.012277, -0.007309] + sine_gust.test_vals = [-1.977514, 3.481817, -0.010465, -0.007859] sine_gust.unsteady = True test_list.append(sine_gust) @@ -791,7 +791,7 @@ def main(): aeroelastic.cfg_dir = "aeroelastic" aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" aeroelastic.test_iter = 2 - aeroelastic.test_vals = [0.074836, 0.033102, -0.001650, -0.000127] + aeroelastic.test_vals = [0.074291, 0.027620, -0.001641, -0.000128] aeroelastic.unsteady = True test_list.append(aeroelastic) @@ -800,7 +800,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.714757, -5.882779, -0.215005, 0.023783, -618.130000] + ddes_flatplate.test_vals = [-2.714785, -5.882680, -0.215041, 0.023758, -617.450000] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) @@ -818,7 +818,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.665129, -3.793590, -3.716505, -3.148308] + unst_deforming_naca0012.test_vals = [-3.665187, -3.793258, -3.716457, -3.148323] unst_deforming_naca0012.unsteady = True test_list.append(unst_deforming_naca0012) @@ -839,7 +839,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.711552, 5.490479, -0.000975, 0.000000] + edge_VW.test_vals = [-0.768929, 5.433202, -0.000628, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR @@ -847,7 +847,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 = [-1.670439, 4.522842, 0.001027, 0.000000] + edge_PPR.test_vals = [-2.017812, 4.174560, 0.000019, 0.000000] test_list.append(edge_PPR) @@ -868,7 +868,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273, 73273, 0.019884, 82.491] + Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273.000000, 73273.000000, 0.019884, 82.491000] test_list.append(Jones_tc_restart) # 2D axial stage @@ -876,7 +876,7 @@ def main(): axial_stage2D.cfg_dir = "turbomachinery/axial_stage_2D" axial_stage2D.cfg_file = "Axial_stage2D.cfg" axial_stage2D.test_iter = 20 - axial_stage2D.test_vals = [0.983751, 1.534480, -2.888520, 2.606773, -2.418421, 3.087187, 106380, 106380, 5.7325, 64.711] + axial_stage2D.test_vals = [0.983751, 1.534480, -2.888520, 2.606773, -2.418421, 3.087187, 106380.000000, 106380.000000, 5.732500, 64.711000] axial_stage2D.test_vals_aarch64 = [0.983751, 1.534480, -2.888520, 2.606773, -2.418421, 3.087187, 106380, 106380, 5.7325, 64.711] test_list.append(axial_stage2D) @@ -885,7 +885,7 @@ def main(): transonic_stator_restart.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator_restart.cfg_file = "transonic_stator_restart.cfg" transonic_stator_restart.test_iter = 20 - transonic_stator_restart.test_vals = [-5.008547, -3.102420, -2.752033, 1.091152, -3.543849, 2.169844, -471630, 94.866, -0.035806] + transonic_stator_restart.test_vals = [-5.008547, -3.102420, -2.752033, 1.091152, -3.543849, 2.169844, -471630.000000, 94.866000, -0.035806] transonic_stator_restart.test_vals_aarch64 = [-5.008547, -3.102420, -2.752033, 1.091152, -3.543849, 2.169844, -471630, 94.866, -0.035806] test_list.append(transonic_stator_restart) @@ -906,7 +906,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.205134, -13.251542] + uniform_flow.test_vals = [2.000000, 0.000000, -0.202697, -13.249572] uniform_flow.test_vals_aarch64 = [2.000000, 0.000000, -0.205134, -13.250720] #last 4 columns uniform_flow.tol = 0.000001 uniform_flow.unsteady = True @@ -918,7 +918,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.397995, 0.352789, 0.405474] + channel_2D.test_vals = [2.000000, 0.000000, 0.419778, 0.352185, 0.404395] channel_2D.test_vals_aarch64 = [2.000000, 0.000000, 0.398053, 0.352788, 0.405474] #last 5 columns channel_2D.timeout = 100 channel_2D.unsteady = True @@ -930,7 +930,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.661408, 0.769988, 0.696033] + channel_3D.test_vals = [1.000000, 0.000000, 0.657678, 0.767752, 0.692208] channel_3D.test_vals_aarch64 = [1.000000, 0.000000, 0.661408, 0.769902, 0.695663] #last 5 columns channel_3D.unsteady = True channel_3D.multizone = True @@ -941,7 +941,7 @@ def main(): pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 - pipe.test_vals = [0.491954, 0.677756, 0.963981, 1.006936] + pipe.test_vals = [0.481390, 0.648695, 0.982990, 1.018349] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) @@ -951,7 +951,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.777574, 1.134794, 1.224127] + rotating_cylinders.test_vals = [3.000000, 0.000000, 0.719778, 1.111044, 1.154068] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) @@ -961,7 +961,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.214359, 1.663910] + supersonic_vortex_shedding.test_vals = [5.000000, 0.000000, 1.207949, 1.036092] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) @@ -1039,7 +1039,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.743214, -4.133482] + fsi2d.test_vals = [4.000000, 0.000000, -3.729228, -4.153949] fsi2d.multizone = True fsi2d.unsteady = True test_list.append(fsi2d) @@ -1049,7 +1049,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.326934, -4.981505, 0.000000, 7.000000] + stat_fsi.test_vals = [-3.345064, -4.996078, 0.000000, 7.000000] stat_fsi.multizone = True test_list.append(stat_fsi) @@ -1058,7 +1058,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.407486, -4.339837, 0.000000, 27.000000] + stat_fsi_restart.test_vals = [-3.404628, -4.288921, 0.000000, 27.000000] stat_fsi_restart.multizone = True test_list.append(stat_fsi_restart) @@ -1067,7 +1067,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.355809, -4.060588, 0.000000, 87.000000] + dyn_fsi.test_vals = [-4.330444, -4.058003, 0.000000, 86.000000] dyn_fsi.test_vals_aarch64 = [-4.355809, -4.060588, 0.000000, 86.000000] #last 4 columns dyn_fsi.multizone = True dyn_fsi.unsteady = True @@ -1079,7 +1079,7 @@ def main(): airfoilRBF.cfg_file = "config.cfg" airfoilRBF.test_iter = 1 - airfoilRBF.test_vals = [1.000000, -2.786186, -4.977944] + airfoilRBF.test_vals = [1.000000, -2.581853, -5.085822] airfoilRBF.tol = 0.0001 airfoilRBF.multizone = True test_list.append(airfoilRBF) @@ -1210,7 +1210,7 @@ def main(): naca0012_geo = TestCase('naca0012_geo') naca0012_geo.cfg_dir = "optimization_euler/steady_naca0012" naca0012_geo.cfg_file = "inv_NACA0012_adv.cfg" - naca0012_geo.test_vals = [1.0000, 62.0455, 0.120011, 0.0000] #chord, LE radius, ToC, Alpha + naca0012_geo.test_vals = [1.000000, 62.045500, 0.120011, 0.000000] naca0012_geo.command = TestCase.Command(exec = "SU2_GEO") naca0012_geo.timeout = 1600 naca0012_geo.tol = 0.00001 @@ -1226,7 +1226,7 @@ def main(): intersect_def.cfg_dir = "deformation/intersection_prevention" intersect_def.cfg_file = "def_intersect.cfg" intersect_def.test_iter = 10 - intersect_def.test_vals = [0.000112] #residual + intersect_def.test_vals = [0.000112] intersect_def.command = TestCase.Command(exec = "SU2_DEF") intersect_def.timeout = 1600 intersect_def.tol = 1e-04 @@ -1239,10 +1239,10 @@ def main(): naca0012_def.cfg_dir = "deformation/naca0012" naca0012_def.cfg_file = "def_NACA0012.cfg" naca0012_def.test_iter = 10 - naca0012_def.test_vals = [0.00344658] #residual + naca0012_def.test_vals = [0.0034470] naca0012_def.command = TestCase.Command(exec = "SU2_DEF") naca0012_def.timeout = 1600 - naca0012_def.tol = 1e-08 + naca0012_def.tol = 1e-06 pass_list.append(naca0012_def.run_def(args.tsan, args.asan)) test_list.append(naca0012_def) @@ -1252,10 +1252,10 @@ def main(): naca0012_def_file.cfg_dir = "deformation/naca0012" naca0012_def_file.cfg_file = "surface_file_NACA0012.cfg" naca0012_def_file.test_iter = 10 - naca0012_def_file.test_vals = [0.00344658] #residual + naca0012_def_file.test_vals = [0.0034470] naca0012_def_file.command = TestCase.Command(exec = "SU2_DEF") naca0012_def_file.timeout = 1600 - naca0012_def_file.tol = 1e-8 + naca0012_def_file.tol = 1e-6 pass_list.append(naca0012_def_file.run_def(args.tsan, args.asan)) test_list.append(naca0012_def_file) @@ -1265,10 +1265,10 @@ def main(): rae2822_def.cfg_dir = "deformation/rae2822" rae2822_def.cfg_file = "def_RAE2822.cfg" rae2822_def.test_iter = 10 - rae2822_def.test_vals = [7.94218e-09] #residual + rae2822_def.test_vals = [0.0000000] rae2822_def.command = TestCase.Command(exec = "SU2_DEF") rae2822_def.timeout = 1600 - rae2822_def.tol = 1e-13 + rae2822_def.tol = 1e-06 pass_list.append(rae2822_def.run_def(args.tsan, args.asan)) test_list.append(rae2822_def) @@ -1278,10 +1278,10 @@ def main(): naca4412_def.cfg_dir = "deformation/naca4412" naca4412_def.cfg_file = "def_NACA4412.cfg" naca4412_def.test_iter = 10 - naca4412_def.test_vals = [8.855370e-13] #residual + naca4412_def.test_vals = [0.0000000] naca4412_def.command = TestCase.Command(exec = "SU2_DEF") naca4412_def.timeout = 1600 - naca4412_def.tol = 1e-12 + naca4412_def.tol = 1e-06 pass_list.append(naca4412_def.run_def(args.tsan, args.asan)) test_list.append(naca4412_def) @@ -1291,10 +1291,10 @@ def main(): brick_tets_def.cfg_dir = "deformation/brick_tets" brick_tets_def.cfg_file = "def_brick_tets.cfg" brick_tets_def.test_iter = 10 - brick_tets_def.test_vals = [8.973010e-04] #residual + brick_tets_def.test_vals = [0.0008970] brick_tets_def.command = TestCase.Command(exec = "SU2_DEF") brick_tets_def.timeout = 1600 - brick_tets_def.tol = 1e-09 + brick_tets_def.tol = 1e-06 pass_list.append(brick_tets_def.run_def(args.tsan, args.asan)) test_list.append(brick_tets_def) @@ -1304,10 +1304,10 @@ def main(): brick_hex_def.cfg_dir = "deformation/brick_hex" brick_hex_def.cfg_file = "def_brick_hex.cfg" brick_hex_def.test_iter = 10 - brick_hex_def.test_vals = [2.082100e-04] #residual + brick_hex_def.test_vals = [0.0002080] brick_hex_def.command = TestCase.Command(exec = "SU2_DEF") brick_hex_def.timeout = 1600 - brick_hex_def.tol = 1e-09 + brick_hex_def.tol = 1e-06 pass_list.append(brick_hex_def.run_def(args.tsan, args.asan)) test_list.append(brick_hex_def) @@ -1317,10 +1317,10 @@ def main(): brick_pyra_def.cfg_dir = "deformation/brick_pyra" brick_pyra_def.cfg_file = "def_brick_pyra.cfg" brick_pyra_def.test_iter = 10 - brick_pyra_def.test_vals = [0.00150063] #residual + brick_pyra_def.test_vals = [0.0015010] brick_pyra_def.command = TestCase.Command(exec = "SU2_DEF") brick_pyra_def.timeout = 1600 - brick_pyra_def.tol = 1e-08 + brick_pyra_def.tol = 1e-06 pass_list.append(brick_pyra_def.run_def(args.tsan, args.asan)) test_list.append(brick_pyra_def) @@ -1330,10 +1330,10 @@ def main(): brick_prism_def.cfg_dir = "deformation/brick_prism" brick_prism_def.cfg_file = "def_brick_prism.cfg" brick_prism_def.test_iter = 10 - brick_prism_def.test_vals = [0.00212069] #residual + brick_prism_def.test_vals = [0.0021210] brick_prism_def.command = TestCase.Command(exec = "SU2_DEF") brick_prism_def.timeout = 1600 - brick_prism_def.tol = 1e-08 + brick_prism_def.tol = 1e-06 pass_list.append(brick_prism_def.run_def(args.tsan, args.asan)) test_list.append(brick_prism_def) @@ -1343,10 +1343,10 @@ def main(): brick_prism_rans_def.cfg_dir = "deformation/brick_prism_rans" brick_prism_rans_def.cfg_file = "def_brick_prism_rans.cfg" brick_prism_rans_def.test_iter = 10 - brick_prism_rans_def.test_vals = [4.8066e-08] #residual + brick_prism_rans_def.test_vals = [0.0000000] brick_prism_rans_def.command = TestCase.Command(exec = "SU2_DEF") brick_prism_rans_def.timeout = 1600 - brick_prism_rans_def.tol = 1e-12 + brick_prism_rans_def.tol = 1e-06 pass_list.append(brick_prism_rans_def.run_def(args.tsan, args.asan)) test_list.append(brick_prism_rans_def) @@ -1356,10 +1356,10 @@ def main(): brick_hex_rans_def.cfg_dir = "deformation/brick_hex_rans" brick_hex_rans_def.cfg_file = "def_brick_hex_rans.cfg" brick_hex_rans_def.test_iter = 10 - brick_hex_rans_def.test_vals = [2.260750e-07] #residual + brick_hex_rans_def.test_vals = [0.0000000] brick_hex_rans_def.command = TestCase.Command(exec = "SU2_DEF") brick_hex_rans_def.timeout = 1600 - brick_hex_rans_def.tol = 1e-12 + brick_hex_rans_def.tol = 1e-06 pass_list.append(brick_hex_rans_def.run_def(args.tsan, args.asan)) test_list.append(brick_hex_rans_def) @@ -1369,10 +1369,10 @@ def main(): cylinder_ffd_def.cfg_dir = "deformation/cylindrical_ffd" cylinder_ffd_def.cfg_file = "def_cylindrical.cfg" cylinder_ffd_def.test_iter = 10 - cylinder_ffd_def.test_vals = [0.000470133] #residual + cylinder_ffd_def.test_vals = [0.0004700] cylinder_ffd_def.command = TestCase.Command(exec = "SU2_DEF") cylinder_ffd_def.timeout = 1600 - cylinder_ffd_def.tol = 1e-09 + cylinder_ffd_def.tol = 1e-06 pass_list.append(cylinder_ffd_def.run_def(args.tsan, args.asan)) test_list.append(cylinder_ffd_def) @@ -1382,10 +1382,10 @@ def main(): sphere_ffd_def.cfg_dir = "deformation/spherical_ffd" sphere_ffd_def.cfg_file = "def_spherical.cfg" sphere_ffd_def.test_iter = 10 - sphere_ffd_def.test_vals = [0.00356699] #residual + sphere_ffd_def.test_vals = [0.0035670] sphere_ffd_def.command = TestCase.Command(exec = "SU2_DEF") sphere_ffd_def.timeout = 1600 - sphere_ffd_def.tol = 1e-08 + sphere_ffd_def.tol = 1e-06 pass_list.append(sphere_ffd_def.run_def(args.tsan, args.asan)) test_list.append(sphere_ffd_def) @@ -1395,10 +1395,10 @@ def main(): sphere_ffd_def_bspline.cfg_dir = "deformation/spherical_ffd" sphere_ffd_def_bspline.cfg_file = "def_spherical_bspline.cfg" sphere_ffd_def_bspline.test_iter = 10 - sphere_ffd_def_bspline.test_vals = [0.00206808] #residual + sphere_ffd_def_bspline.test_vals = [0.0020680] sphere_ffd_def_bspline.command = TestCase.Command(exec = "SU2_DEF") sphere_ffd_def_bspline.timeout = 1600 - sphere_ffd_def_bspline.tol = 1e-08 + sphere_ffd_def_bspline.tol = 1e-06 pass_list.append(sphere_ffd_def_bspline.run_def(args.tsan, args.asan)) test_list.append(sphere_ffd_def_bspline) @@ -1425,7 +1425,7 @@ def main(): shape_opt_euler_py.cfg_dir = "optimization_euler/steady_naca0012" shape_opt_euler_py.cfg_file = "inv_NACA0012_adv.cfg" shape_opt_euler_py.test_iter = 1 - shape_opt_euler_py.test_vals = [1, 1, 2.134974E-05, 0.003847] #last 4 columns + shape_opt_euler_py.test_vals = [1.000000, 1.000000, 0.000021, 0.003643] shape_opt_euler_py.command = TestCase.Command(exec = "shape_optimization.py", param = "-g CONTINUOUS_ADJOINT -f") shape_opt_euler_py.timeout = 1600 shape_opt_euler_py.tol = 0.00001 @@ -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, 30.428280, 2.039416] + opt_multiobj1surf_py.test_vals = [1.000000, 1.000000, 36.117740, 4.438036] 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.005694, 0.000185] + opt_2surf1obj_py.test_vals = [1.000000, 1.000000, 2.005219, 0.000369] 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.023999, -3.515034, 0.339426, 0.022217] + pywrapper_naca0012.test_vals = [-4.444941, -3.941038, 0.318998, 0.022365] 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.074836, 0.033102, -0.001650, -0.000127] + pywrapper_aeroelastic.test_vals = [0.074291, 0.027620, -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.743214, -4.133482] + pywrapper_fsi2d.test_vals = [4.000000, 0.000000, -3.729228, -4.153949] 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.124164, -1.544359, -3.808866, 1.338411, -0.752679, 0.161436, -1.2391e-02, 5.1662e-01, -5.2901e-01] + pywrapper_custom_inlet.test_vals = [-4.120494, -1.540195, -3.566114, 1.342509, -0.748827, 0.161349, -0.013214, 0.516000, -0.529220] 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 ac268040cd5..6faaeff53af 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.561506, -8.926634, -0.000000, 0.005587] + discadj_naca0012.test_vals = [-3.560691, -8.925239, -0.000000, 0.005559] 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.737675, -3.842311, -0.000000, 0.000000] + discadj_cylinder3D.test_vals = [-3.771233, -3.727282, -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.087863, -3.481496, 6.8879e-02, 0] + discadj_arina2k.test_vals = [-3.534947, -3.773294, 0.027242, 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.092007, -2.652750, 0.000000] + discadj_incomp_NACA0012.test_vals = [20.000000, -4.087948, -2.655204, 0.000000] test_list.append(discadj_incomp_NACA0012) ##################################### @@ -110,7 +110,7 @@ def main(): discadj_incomp_cylinder.cfg_dir = "disc_adj_incomp_navierstokes/cylinder" discadj_incomp_cylinder.cfg_file = "heated_cylinder.cfg" discadj_incomp_cylinder.test_iter = 20 - discadj_incomp_cylinder.test_vals = [20.000000, -2.373367, -2.368305, 0.000000] #last 4 columns + discadj_incomp_cylinder.test_vals = [20.000000, -2.373367, -2.368305, 0.000000] test_list.append(discadj_incomp_cylinder) ####################################################### @@ -122,7 +122,7 @@ def main(): discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder" discadj_cylinder.cfg_file = "cylinder.cfg" discadj_cylinder.test_iter = 9 - discadj_cylinder.test_vals = [3.746909, -1.544883, -0.008321, 0.000014] #last 4 columns + discadj_cylinder.test_vals = [3.746909, -1.544883, -0.008321, 0.000014] discadj_cylinder.unsteady = True test_list.append(discadj_cylinder) @@ -135,7 +135,7 @@ def main(): discadj_DT_1ST_cylinder.cfg_dir = "disc_adj_rans/cylinder_DT_1ST" discadj_DT_1ST_cylinder.cfg_file = "cylinder.cfg" discadj_DT_1ST_cylinder.test_iter = 9 - discadj_DT_1ST_cylinder.test_vals = [3.698168, -1.607050, -0.002159, 0.000028] #last 4 columns + discadj_DT_1ST_cylinder.test_vals = [3.698168, -1.607050, -0.002159, 0.000028] discadj_DT_1ST_cylinder.unsteady = True test_list.append(discadj_DT_1ST_cylinder) @@ -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.218846, -1.645199, -0.007645, 0.000013] + discadj_pitchingNACA0012.test_vals = [-1.220016, -1.646770, -0.007597, 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.958006, -1.841808, 1081.700000, 0.000004] + unst_deforming_naca0012.test_vals = [-1.959357, -1.843601, 2729.700000, 0.000004] unst_deforming_naca0012.unsteady = True test_list.append(unst_deforming_naca0012) @@ -170,7 +170,7 @@ def main(): discadj_fea.cfg_dir = "disc_adj_fea" discadj_fea.cfg_file = "configAD_fem.cfg" discadj_fea.test_iter = 4 - discadj_fea.test_vals = [-2.849781, -3.238667, -0.000364, -8.708700] + discadj_fea.test_vals = [-2.849844, -3.238713, -0.000364, -8.708700] discadj_fea.tol = 0.00007 test_list.append(discadj_fea) @@ -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 = [-2.227530, 0.577932, 0.000000, -7.754000] + discadj_heat.test_vals = [-2.122406, 0.693852, 0.000000, -0.869010] test_list.append(discadj_heat) ################################### @@ -195,7 +195,7 @@ def main(): discadj_fsi.cfg_dir = "disc_adj_fsi" discadj_fsi.cfg_file = "config.cfg" discadj_fsi.test_iter = 6 - discadj_fsi.test_vals = [6.000000, -1.965877, -3.084381, 0.000440, -1.063100] #last 5 columns + discadj_fsi.test_vals = [6.000000, -1.965877, -3.084381, 0.000440, -1.063100] test_list.append(discadj_fsi) ################################### @@ -207,7 +207,7 @@ def main(): discadj_cht.cfg_dir = "coupled_cht/disc_adj_incomp_2d" discadj_cht.cfg_file = "cht_2d_3cylinders.cfg" discadj_cht.test_iter = 10 - discadj_cht.test_vals = [-2.955506, -3.085551, -3.085518, -3.085513] #last 4 columns + discadj_cht.test_vals = [-2.955506, -3.085551, -3.085518, -3.085513] test_list.append(discadj_cht) ###################################### @@ -323,7 +323,7 @@ def main(): pywrapper_FEA_AD_FlowLoad.cfg_dir = "py_wrapper/disc_adj_fea/flow_load_sens" pywrapper_FEA_AD_FlowLoad.cfg_file = "configAD_fem.cfg" pywrapper_FEA_AD_FlowLoad.test_iter = 100 - pywrapper_FEA_AD_FlowLoad.test_vals = [-0.13945587401579657, -0.585985886606256, -0.00036377840086080753, -0.0031005670174756375] #last 4 columns + pywrapper_FEA_AD_FlowLoad.test_vals = [-0.139456, -0.585986, -0.000364, -0.003101] pywrapper_FEA_AD_FlowLoad.command = TestCase.Command(exec = "python", param = "run_adjoint.py -f") pywrapper_FEA_AD_FlowLoad.timeout = 1600 pywrapper_FEA_AD_FlowLoad.tol = 0.000001 @@ -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.518695, 1.390150, 0.000000] #last 4 columns + pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.505330, 1.409290, 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/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg index 239ae7647de..7ce89091193 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg @@ -81,7 +81,7 @@ MARKER_OUTLET= ( outlet, 0.0 ) % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES % -CFL_NUMBER= 150 +CFL_NUMBER= 80 CFL_REDUCTION_SPECIES= 0.1 CFL_REDUCTION_TURB= 1.0 % diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg index 1ba87a48301..f851455c179 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg @@ -82,7 +82,7 @@ MARKER_OUTLET= ( outlet, 0.0 ) % NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES % -CFL_NUMBER= 150 +CFL_NUMBER= 80 CFL_REDUCTION_SPECIES= 0.1 CFL_REDUCTION_TURB= 1.0 % @@ -93,8 +93,8 @@ ITER= 1000 % LINEAR_SOLVER= FGMRES LINEAR_SOLVER_PREC= ILU -LINEAR_SOLVER_ERROR= 1E-8 -LINEAR_SOLVER_ITER= 30 +LINEAR_SOLVER_ERROR= 1E-5 +LINEAR_SOLVER_ITER= 10 % % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index 6406f452631..b4c8534d8a1 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -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.625757, 1.445108, -0.750969, 241.762883] + sp_pinArray_2d_mf_hf.test_vals = [-4.613682, 1.471278, -0.748987, 241.667177] 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.666547, 1.396426, -0.709267, 208.023676] + sp_pinArray_2d_dp_hf_tp.test_vals = [-4.640621, 1.436697, -0.707302, 208.023676] test_list.append(sp_pinArray_2d_dp_hf_tp) ### Species Transport @@ -98,7 +98,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 = [-6.082040, -5.293756, -5.131970, -5.933415, -1.606563, -6.274241, -6.408477, 5.000000, -0.811535, 5.000000, -2.344697, 5.000000, -0.388358, 1.647440, 0.499101, 0.600978, 0.547361] + 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] test_list.append(species3_primitiveVenturi) # 3 species (2 eq) primitive venturi mixing @@ -106,8 +106,8 @@ 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 = [-8.443103, -7.715615, -7.706589, -7.428740, -12.067471, -12.205189, -11.368995] - DAspecies3_primitiveVenturi.test_vals_aarch64 = [-8.443103, -7.715615, -7.706589, -7.428740, -12.067471, -12.205189, -11.368995] + DAspecies3_primitiveVenturi.test_vals = [-7.584508, -7.211527, -6.740742, -6.896386, -11.472089, -10.865347, -10.096770] + 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) @@ -125,7 +125,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 = [-13.618610, -12.647974, -12.296537, -11.658760, -13.136523, -9.550829, 15.000000, -2.369703] + sudo_tutorial.test_vals = [-14.579462, -13.203791, -13.601782, -12.616876, -14.005299, -10.817605, 15.000000, -2.296083] sudo_tutorial.command = TestCase.Command("mpirun -n 2", "SU2_CFD") test_list.append(sudo_tutorial) @@ -136,7 +136,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.905856, -10.449512, -11.035999, -4.331440, -11.882740] + premixed_hydrogen.test_vals = [-9.809794, -10.369804, -11.044267, -4.332945, -11.883789] test_list.append(premixed_hydrogen) ### Compressible Flow @@ -146,7 +146,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.437425, 4.075857, 0.005439, 0.012998] + tutorial_inv_bump.test_vals = [-1.548003, 3.983585, 0.020973, 0.071064] test_list.append(tutorial_inv_bump) # Inviscid Wedge @@ -154,7 +154,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.481460, 5.253008, -0.291747, 0.052515] + tutorial_inv_wedge.test_vals = [-0.864206, 4.850246, -0.245674, 0.043209] tutorial_inv_wedge.no_restart = True test_list.append(tutorial_inv_wedge) @@ -163,7 +163,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.204928, -4.597762, 0.247451, 0.085770] + tutorial_inv_onera.test_vals = [-5.504789, -4.895776, 0.249157, 0.118834] tutorial_inv_onera.no_restart = True test_list.append(tutorial_inv_onera) @@ -181,7 +181,7 @@ def main(): tutorial_lam_flatplate.cfg_dir = "../Tutorials/compressible_flow/Laminar_Flat_Plate" tutorial_lam_flatplate.cfg_file = "lam_flatplate.cfg" tutorial_lam_flatplate.test_iter = 0 - tutorial_lam_flatplate.test_vals = [-2.821818, 2.657591, -0.400044, 0.029413] #last 4 columns + tutorial_lam_flatplate.test_vals = [-2.821818, 2.657591, -0.400044, 0.029365] #last 4 columns tutorial_lam_flatplate.no_restart = True test_list.append(tutorial_lam_flatplate) @@ -190,7 +190,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.429375, 0.201236] + tutorial_turb_flatplate.test_vals = [-2.258584, -4.901015, -0.429373, 0.201034] tutorial_turb_flatplate.no_restart = True test_list.append(tutorial_turb_flatplate) @@ -208,8 +208,8 @@ 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.837186, -2.092246, -3.982633, -0.302219, -1.921235, 1.667190, -3.496277, 0.391605] - tutorial_trans_flatplate_T3A.test_vals_aarch64 = [-5.837191, -2.092246, -3.982640, -0.302224, -1.922554, 1.667190, -3.496277, 0.391605] + tutorial_trans_flatplate_T3A.test_vals = [-5.837399, -2.092246, -3.983493, -0.302381, -1.920868, 1.667180, -3.496278, 0.391608] + 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) @@ -218,8 +218,8 @@ 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.063600, -1.945057, -3.946760, -0.549063, -3.863792, 2.664453, -2.517606, 1.112979] - tutorial_trans_flatplate_T3Am.test_vals_aarch64 = [-6.063598, -1.945057, -3.946744, -0.549062, -3.863792, 2.664453, -2.517606, 1.112979] + tutorial_trans_flatplate_T3Am.test_vals = [-6.063700, -1.945073, -3.946836, -0.549147, -3.863792, 2.664440, -2.517610, 1.112977] + 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) @@ -246,7 +246,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.524476, 0.327954, 0.097349] + tutorial_turb_oneram6.test_vals = [-4.564441, -11.524295, 0.327905, 0.097340] test_list.append(tutorial_turb_oneram6) # NICD Nozzle @@ -254,7 +254,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.187397, -2.338457, 3.617301, 0.000000, 0.000000] + tutorial_nicfd_nozzle.test_vals = [-2.056675, -2.124123, 3.687027, 0.000000, 0.000000] tutorial_nicfd_nozzle.no_restart = True test_list.append(tutorial_nicfd_nozzle) @@ -284,7 +284,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.585391, -2.989014, 0.135070, 0.208565] + tutorial_design_inv_naca0012.test_vals = [-3.918503, -3.332494, 0.134359, 0.218097] tutorial_design_inv_naca0012.no_restart = True test_list.append(tutorial_design_inv_naca0012) @@ -302,7 +302,7 @@ def main(): tutorial_design_multiobj.cfg_dir = "../Tutorials/design/Multi_Objective_Shape_Design" tutorial_design_multiobj.cfg_file = "inv_wedge_ROE_multiobj_combo.cfg" tutorial_design_multiobj.test_iter = 0 - tutorial_design_multiobj.test_vals = [2.657333, -3.020635, 324840.000000, 0.000000] #last 4 columns + tutorial_design_multiobj.test_vals = [2.657333, -3.020635, 370220.000000, 0.000000] tutorial_design_multiobj.no_restart = True test_list.append(tutorial_design_multiobj) diff --git a/TestCases/user_defined_functions/lam_flatplate.cfg b/TestCases/user_defined_functions/lam_flatplate.cfg index 35cdc97b9c9..c3d55cd45c0 100644 --- a/TestCases/user_defined_functions/lam_flatplate.cfg +++ b/TestCases/user_defined_functions/lam_flatplate.cfg @@ -114,7 +114,7 @@ SLOPE_LIMITER_FLOW= NONE % CONV_RESIDUAL_MINVAL= -11 CONV_STARTITER= 0 -INNER_ITER= 1000 +INNER_ITER= 21 % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % diff --git a/TestCases/vandv.py b/TestCases/vandv.py index 16ea373e8c1..06c74d893f8 100644 --- a/TestCases/vandv.py +++ b/TestCases/vandv.py @@ -54,8 +54,8 @@ 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.023358, -9.956752, -11.099910, -7.933220, -10.206577, -5.132343, 0.002808] - flatplate_sst1994m.test_vals_aarch64 = [-13.022835, -9.956652, -11.102384, -7.928197, -10.206580, -5.132317, 0.002808] + flatplate_sst1994m.test_vals = [-13.027926, -10.276119, -11.311717, -8.137517, -10.520065, -5.127385, 0.002775] + flatplate_sst1994m.test_vals_aarch64 = [-13.028095, -11.271115, -11.532461, -8.387610, -11.417974, -5.116988, 0.002808] test_list.append(flatplate_sst1994m) # bump in channel - sst-v1994m @@ -63,8 +63,8 @@ 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 = [-12.986182, -10.719941, -10.556276, -7.606531, -10.774915, -5.605156, 0.004972] - bump_sst1994m.test_vals_aarch64 = [-13.039365, -10.729085, -10.609923, -7.682911, -10.774915, -5.605087, 0.004972] + bump_sst1994m.test_vals = [-13.022054, -9.882710, -10.557148, -7.605034, -10.172437, -5.549948, 0.004904] + bump_sst1994m.test_vals_aarch64 = [-13.034665, -10.510699, -10.627802, -7.661320, -10.680337, -5.749566, 0.004972] test_list.append(bump_sst1994m) # SWBLI SA @@ -72,8 +72,8 @@ 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.530796, -10.915564, -12.034495, -10.538719, -15.922522, 0.002233, -3.359164, 1.340100] - swbli_sa.test_vals_aarch64 = [-11.530796, -10.915564, -12.034495, -10.538719, -15.922522, 0.002233, -3.359164, 1.340100] + swbli_sa.test_vals = [-11.564511, -10.836187, -11.792765, -10.383947, -15.718717, 0.002212, -2.993991, 1.340100] + swbli_sa.test_vals_aarch64 = [-11.564511, -10.836187, -11.792765, -10.383947, -15.718717, 0.002212, -2.993991, 1.340100] test_list.append(swbli_sa) @@ -82,7 +82,7 @@ def main(): swbli_sst.cfg_dir = "vandv/rans/swbli" swbli_sst.cfg_file = "config_sst.cfg" swbli_sst.test_iter = 5 - swbli_sst.test_vals = [-11.527743, -11.150388, -11.944923, -10.750834, -11.116769, -4.030059, 0.002339, -2.730391, -4.067274, 1.276300] + swbli_sst.test_vals = [-11.528112, -10.961624, -11.903226, -10.630539, -11.117619, -4.573066, 0.002318, -2.905628, -4.037947, 1.340100] test_list.append(swbli_sst) ########################## @@ -94,8 +94,8 @@ 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 = [-16.249917, -13.835991, -14.303372, -13.276035, -10.074262, -14.027223, 5, -1.672359, 5, -4.938477, 5, -3.462217, 2.5859e-04, 2.8215e-32, 4.5010e-68, 2.5859e-04, 4.0474e+03, 3.9468e+03, 4.9170e+01, 5.1441e+01] - sandiajet_sst.test_vals_aarch64 = [-16.249289, -13.833785, -14.303058, -13.276559, -10.267928, -14.027240, 5, -1.676412, 5, -4.815216, 5, -3.462247, 0.000259, 0, 0, 0.000259, 4047.4, 3946.8, 49.17, 51.441] + sandiajet_sst.test_vals = [-17.169907, -13.518707, -15.442566, -12.021165, -9.660040, -15.289842, 5.000000, -2.746249, 5.000000, -4.836800, 5.000000, -3.966350, 0.000259, 0.000000, 0.000000, 0.000259, 4047.400000, 3946.800000, 49.161000, 51.433000] + 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/UnitTests/SU2_CFD/gradients.cpp b/UnitTests/SU2_CFD/gradients.cpp index 2f69d407d3a..af3ad8a2fee 100644 --- a/UnitTests/SU2_CFD/gradients.cpp +++ b/UnitTests/SU2_CFD/gradients.cpp @@ -133,7 +133,7 @@ void testGreenGauss() { C3DDoubleMatrix gradient(field.geometry->GetnPoint(), field.nVar, field.geometry->GetnDim()); computeGradientsGreenGauss(nullptr, MPI_QUANTITIES::SOLUTION, PERIODIC_NONE, *field.geometry.get(), - *field.config.get(), field, 0, field.nVar, gradient); + *field.config.get(), field, 0, field.nVar, -1, gradient); check(field, gradient); } @@ -145,7 +145,7 @@ void testLeastSquares(bool weighted) { C3DDoubleMatrix gradient(field.geometry->GetnPoint(), field.nVar, nDim); computeGradientsLeastSquares(nullptr, MPI_QUANTITIES::SOLUTION, PERIODIC_NONE, *field.geometry.get(), - *field.config.get(), weighted, field, 0, field.nVar, gradient, R); + *field.config.get(), weighted, field, 0, field.nVar, -1, gradient, R); check(field, gradient); } diff --git a/config_template.cfg b/config_template.cfg index 74832ef98db..00334732b30 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -21,7 +21,7 @@ SOLVER= EULER % Specify turbulence model (NONE, SA, SST) KIND_TURB_MODEL= NONE % -% Specify versions/corrections of the SST model (V2003m, V1994m, VORTICITY, KATO_LAUNDER, UQ, SUSTAINING) +% Specify versions/corrections of the SST model (V2003m, V1994m, VORTICITY, KATO_LAUNDER, UQ, SUSTAINING, COMPRESSIBILITY-WILCOX, COMPRESSIBILITY-SARKAR, DIMENSIONLESS_LIMIT) SST_OPTIONS= NONE % % Specify versions/corrections of the SA model (NEGATIVE, EDWARDS, WITHFT2, QCR2000, COMPRESSIBILITY, ROTATION, BCM, EXPERIMENTAL) @@ -1567,7 +1567,7 @@ CONV_NUM_METHOD_FLOW= ROE % Roe Low Dissipation function for Hybrid RANS/LES simulations (FD, NTS, NTS_DUCROS) ROE_LOW_DISSIPATION= FD % -% Roe coefficient +% Roe dissipation coefficient ROE_KAPPA= 0.5 % % Minimum value for beta for the Roe-Turkel preconditioner @@ -1801,6 +1801,10 @@ TIME_DISCRE_TURB= EULER_IMPLICIT % Reduction factor of the CFL coefficient in the turbulence problem CFL_REDUCTION_TURB= 1.0 +% Control lower limit constants of the SST model (C*phi_infinity) +LOWER_LIMIT_K_FACTOR= 1e-15 +LOWER_LIMIT_OMEGA_FACTOR= 1e-5 + % --------------------- HEAT NUMERICAL METHOD DEFINITION ----------------------% % % Value of the thermal diffusivity diff --git a/externals/codi b/externals/codi index c6b039e5c9e..9ca6c382806 160000 --- a/externals/codi +++ b/externals/codi @@ -1 +1 @@ -Subproject commit c6b039e5c9edb7675f90ffc725f9dd8e66571264 +Subproject commit 9ca6c38280610b3ea5337ca3e5b5085ee1c66b59 diff --git a/subprojects/MLPCpp b/subprojects/MLPCpp index c19c53ea2b8..665c45b7d35 160000 --- a/subprojects/MLPCpp +++ b/subprojects/MLPCpp @@ -1 +1 @@ -Subproject commit c19c53ea2b85ccfb185f1c6c87044dc0b5bc7ae0 +Subproject commit 665c45b7d3533c977eb1f637918d5b8b75c07d3b From 7f50852c9bdc5e1d9c60a275b928e9d1e809e70e Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 4 Sep 2024 18:03:17 +0200 Subject: [PATCH 253/287] submodule updates --- externals/codi | 2 +- subprojects/MLPCpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/externals/codi b/externals/codi index 9ca6c382806..c6b039e5c9e 160000 --- a/externals/codi +++ b/externals/codi @@ -1 +1 @@ -Subproject commit 9ca6c38280610b3ea5337ca3e5b5085ee1c66b59 +Subproject commit c6b039e5c9edb7675f90ffc725f9dd8e66571264 diff --git a/subprojects/MLPCpp b/subprojects/MLPCpp index 665c45b7d35..c19c53ea2b8 160000 --- a/subprojects/MLPCpp +++ b/subprojects/MLPCpp @@ -1 +1 @@ -Subproject commit 665c45b7d3533c977eb1f637918d5b8b75c07d3b +Subproject commit c19c53ea2b85ccfb185f1c6c87044dc0b5bc7ae0 From 56a19e0e580cc0ba263b38b977d5bb39afdbe134 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Wed, 4 Sep 2024 17:48:12 +0100 Subject: [PATCH 254/287] fix branch --- .github/workflows/regression.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index cd916ffcfe5..2502204b64c 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -209,7 +209,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t feature_solid-solid_cht -c develop -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: From 4c7327d3f1ec3257ba38d569997aa6fa3041e32c Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 4 Sep 2024 18:54:30 +0200 Subject: [PATCH 255/287] Revert changes in Giles BC that have persisted --- SU2_CFD/include/solvers/CEulerSolver.hpp | 34 +- SU2_CFD/include/solvers/CSolver.hpp | 32 -- SU2_CFD/src/solvers/CEulerSolver.cpp | 526 ++++++++++++++--------- 3 files changed, 331 insertions(+), 261 deletions(-) diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index 87700590937..d498b84c225 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -590,7 +590,7 @@ class CEulerSolver : public CFVMFlowSolverBaseGetiZone(); + bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); + string Marker_Tag = config->GetMarker_All_TagBound(val_marker); + bool viscous = config->GetViscous(); + unsigned short nSpanWiseSections = geometry->GetnSpanWiseSections(config->GetMarker_All_TurbomachineryFlag(val_marker)); + su2double relfacAvgCfg = config->GetGiles_RelaxFactorAverage(Marker_Tag); + su2double relfacFouCfg = config->GetGiles_RelaxFactorFourier(Marker_Tag); + su2double *Normal; + su2double TwoPiThetaFreq_Pitch, pitch,theta; + const su2double *SpanWiseValues = nullptr, *FlowDir; + su2double spanPercent, extrarelfacAvg = 0.0, deltaSpan = 0.0, relfacAvg, relfacFou, coeffrelfacAvg = 0.0; + unsigned short Turbo_Flag; + + Normal = new su2double[nDim]; + turboNormal = new su2double[nDim]; + UnitNormal = new su2double[nDim]; + turboVelocity = new su2double[nDim]; + Velocity_i = new su2double[nDim]; + Velocity_b = new su2double[nDim]; + + + su2double AverageSoundSpeed, *AverageTurboMach, AverageEntropy, AverageEnthalpy; + AverageTurboMach = new su2double[nDim]; + S_boundary = new su2double[8]; + + su2double AvgMach , *cj, GilesBeta, *delta_c, **R_Matrix, *deltaprim, **R_c_inv,**R_c, alphaIn_BC, gammaIn_BC = 0, + P_Total, T_Total, Enthalpy_BC, Entropy_BC, *R, *c_avg,*dcjs, Beta_inf2, c2js_Re, c3js_Re, cOutjs_Re, avgVel2 =0.0; + + long freq; + + delta_c = new su2double[nVar]; + deltaprim = new su2double[nVar]; + cj = new su2double[nVar]; + R_Matrix = new su2double*[nVar]; + R_c = new su2double*[nVar-1]; + R_c_inv = new su2double*[nVar-1]; + R = new su2double[nVar-1]; + c_avg = new su2double[nVar]; + dcjs = new su2double[nVar]; + + for (iVar = 0; iVar < nVar; iVar++) { R_Matrix[iVar] = new su2double[nVar]; c_avg[iVar] = 0.0; dcjs[iVar] = 0.0; } - for (auto iVar = 0; iVar < nVar-1; iVar++) + for (iVar = 0; iVar < nVar-1; iVar++) { R_c[iVar] = new su2double[nVar-1]; R_c_inv[iVar] = new su2double[nVar-1]; } - auto const I = complex(0.0,1.0); - - /*--- Compute coeff for under relaxation of Avg and Fourier Coefficient for hub and shroud---*/ - auto const Marker_Tag = config->GetMarker_All_TagBound(val_marker); - su2double relfacAvgCfg = config->GetGiles_RelaxFactorAverage(Marker_Tag); - - unsigned short nSpanWiseSections = geometry->GetnSpanWiseSections(config->GetMarker_All_TurbomachineryFlag(val_marker)); - - const su2double *SpanWiseValues = nullptr; - su2double extrarelfacAvg = 0.0, deltaSpan = 0.0, relfacAvg, relfacFou = config->GetGiles_RelaxFactorFourier(Marker_Tag), coeffrelfacAvg = 0.0; + complex I, c2ks, c2js, c3ks, c3js, cOutks, cOutjs, Beta_inf; + I = complex(0.0,1.0); + /*--- Compute coeff for under relaxation of Avg and Fourier Coefficient for hub and shroud---*/ if (nDim == 3){ extrarelfacAvg = config->GetExtraRelFacGiles(0); - auto const spanPercent = config->GetExtraRelFacGiles(1); - auto const Turbo_Flag = config->GetMarker_All_TurbomachineryFlag(val_marker); + spanPercent = config->GetExtraRelFacGiles(1); + Turbo_Flag = config->GetMarker_All_TurbomachineryFlag(val_marker); SpanWiseValues = geometry->GetSpanWiseValue(Turbo_Flag); deltaSpan = SpanWiseValues[nSpanWiseSections-1]*spanPercent; coeffrelfacAvg = (relfacAvgCfg - extrarelfacAvg)/deltaSpan; } - for (unsigned short iSpan= 0; iSpan < nSpanWiseSections ; iSpan++){ + for (iSpan= 0; iSpan < nSpanWiseSections ; iSpan++){ /*--- Compute under relaxation for the Hub and Shroud Avg and Fourier Coefficient---*/ if(nDim == 3){ if(SpanWiseValues[iSpan] <= SpanWiseValues[0] + deltaSpan){ @@ -6186,16 +6207,18 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } else{ relfacAvg = relfacAvgCfg; + relfacFou = relfacFouCfg; } } else{ { relfacAvg = relfacAvgCfg; + relfacFou = relfacFouCfg; } } GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan]); - auto AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); + AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); AverageTurboMach[0] = AverageTurboVelocity[val_marker][iSpan][0]/AverageSoundSpeed; AverageTurboMach[1] = AverageTurboVelocity[val_marker][iSpan][1]/AverageSoundSpeed; @@ -6203,32 +6226,167 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu AverageTurboMach[1] -= geometry->GetAverageTangGridVel(val_marker,iSpan)/AverageSoundSpeed; } - auto const kend = geometry->GetnFreqSpan(val_marker, iSpan); - auto const kend_max = geometry->GetnFreqSpanMax(config->GetMarker_All_TurbomachineryFlag(val_marker)); - conv_numerics->GetRMatrix(AverageSoundSpeed, AverageDensity[val_marker][iSpan], R_Matrix); + AvgMach = AverageTurboMach[0]*AverageTurboMach[0] + AverageTurboMach[1]*AverageTurboMach[1]; - su2double Pressure_e; //Useful to pass by reference + kend = geometry->GetnFreqSpan(val_marker, iSpan); + kend_max = geometry->GetnFreqSpanMax(config->GetMarker_All_TurbomachineryFlag(val_marker)); + conv_numerics->GetRMatrix(AverageSoundSpeed, AverageDensity[val_marker][iSpan], R_Matrix); switch(config->GetKind_Data_Giles(Marker_Tag)){ case TOTAL_CONDITIONS_PT: - BC_Giles_Total_Inlet(conv_numerics, config, val_marker, c_avg, R, R_c_inv, R_c, iSpan, iSpan); + /*--- Retrieve the specified total conditions for this inlet. ---*/ + P_Total = config->GetGiles_Var1(Marker_Tag); + T_Total = config->GetGiles_Var2(Marker_Tag); + FlowDir = config->GetGiles_FlowDir(Marker_Tag); + alphaIn_BC = atan(FlowDir[1]/FlowDir[0]); + + gammaIn_BC = 0; + if (nDim == 3){ + gammaIn_BC = FlowDir[2]; //atan(FlowDir[2]/FlowDir[0]); + } + + /*--- Non-dim. the inputs---*/ + P_Total /= config->GetPressure_Ref(); + T_Total /= config->GetTemperature_Ref(); + + /* --- Computes the total state --- */ + GetFluidModel()->SetTDState_PT(P_Total, T_Total); + Enthalpy_BC = GetFluidModel()->GetStaticEnergy()+ GetFluidModel()->GetPressure()/GetFluidModel()->GetDensity(); + Entropy_BC = GetFluidModel()->GetEntropy(); + + + /* --- Computes the inverse matrix R_c --- */ + conv_numerics->ComputeResJacobianGiles(GetFluidModel(), AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan], + AverageTurboVelocity[val_marker][iSpan], alphaIn_BC, gammaIn_BC, R_c, R_c_inv); + + GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan]); + AverageEnthalpy = GetFluidModel()->GetStaticEnergy() + AveragePressure[val_marker][iSpan]/AverageDensity[val_marker][iSpan]; + AverageEntropy = GetFluidModel()->GetEntropy(); + + avgVel2 = 0.0; + for (iDim = 0; iDim < nDim; iDim++) avgVel2 += AverageVelocity[val_marker][iSpan][iDim]*AverageVelocity[val_marker][iSpan][iDim]; + if (nDim == 2){ + R[0] = -(AverageEntropy - Entropy_BC); + R[1] = -(AverageTurboVelocity[val_marker][iSpan][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][iSpan][0]); + R[2] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); + } + + else{ + R[0] = -(AverageEntropy - Entropy_BC); + R[1] = -(AverageTurboVelocity[val_marker][iSpan][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][iSpan][0]); + R[2] = -(AverageTurboVelocity[val_marker][iSpan][2] - tan(gammaIn_BC)*AverageTurboVelocity[val_marker][iSpan][0]); + R[3] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); + + } + /* --- Compute the avg component c_avg = R_c^-1 * R --- */ + for (iVar = 0; iVar < nVar-1; iVar++){ + c_avg[iVar] = 0.0; + for (jVar = 0; jVar < nVar-1; jVar++){ + c_avg[iVar] += R_c_inv[iVar][jVar]*R[jVar]; + } + } break; case TOTAL_CONDITIONS_PT_1D: - BC_Giles_Total_Inlet(conv_numerics, config, val_marker, c_avg, R, R_c_inv, R_c, iSpan, nSpanWiseSections); + /*--- Retrieve the specified total conditions for this inlet. ---*/ + P_Total = config->GetGiles_Var1(Marker_Tag); + T_Total = config->GetGiles_Var2(Marker_Tag); + FlowDir = config->GetGiles_FlowDir(Marker_Tag); + alphaIn_BC = atan(FlowDir[1]/FlowDir[0]); + + gammaIn_BC = 0; + if (nDim == 3){ + // Review definition of angle + gammaIn_BC = FlowDir[2]; //atan(FlowDir[2]/FlowDir[0]); + } + + /*--- Non-dim. the inputs---*/ + P_Total /= config->GetPressure_Ref(); + T_Total /= config->GetTemperature_Ref(); + + /* --- Computes the total state --- */ + GetFluidModel()->SetTDState_PT(P_Total, T_Total); + Enthalpy_BC = GetFluidModel()->GetStaticEnergy()+ GetFluidModel()->GetPressure()/GetFluidModel()->GetDensity(); + Entropy_BC = GetFluidModel()->GetEntropy(); + + + /* --- Computes the inverse matrix R_c --- */ + conv_numerics->ComputeResJacobianGiles(GetFluidModel(), AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan], + AverageTurboVelocity[val_marker][iSpan], alphaIn_BC, gammaIn_BC, R_c, R_c_inv); + + GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][nSpanWiseSections], AverageDensity[val_marker][nSpanWiseSections]); + AverageEnthalpy = GetFluidModel()->GetStaticEnergy() + AveragePressure[val_marker][nSpanWiseSections]/AverageDensity[val_marker][nSpanWiseSections]; + AverageEntropy = GetFluidModel()->GetEntropy(); + + + avgVel2 = 0.0; + for (iDim = 0; iDim < nDim; iDim++) avgVel2 += AverageVelocity[val_marker][iSpan][iDim]*AverageVelocity[val_marker][iSpan][iDim]; + if (nDim == 2){ + R[0] = -(AverageEntropy - Entropy_BC); + R[1] = -(AverageTurboVelocity[val_marker][nSpanWiseSections][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][nSpanWiseSections][0]); + R[2] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); + } + + else{ + R[0] = -(AverageEntropy - Entropy_BC); + R[1] = -(AverageTurboVelocity[val_marker][nSpanWiseSections][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][nSpanWiseSections][0]); + R[2] = -(AverageTurboVelocity[val_marker][nSpanWiseSections][2] - tan(gammaIn_BC)*AverageTurboVelocity[val_marker][nSpanWiseSections][0]); + R[3] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); + + } + /* --- Compute the avg component c_avg = R_c^-1 * R --- */ + for (iVar = 0; iVar < nVar-1; iVar++){ + c_avg[iVar] = 0.0; + for (jVar = 0; jVar < nVar-1; jVar++){ + c_avg[iVar] += R_c_inv[iVar][jVar]*R[jVar]; + } + } break; case MIXING_IN: case MIXING_OUT: - BC_Giles_Mixing(conv_numerics, val_marker, deltaprim, c_avg, iSpan); + /* --- Compute average jump of primitive at the mixing-plane interface--- */ + deltaprim[0] = ExtAverageDensity[val_marker][iSpan] - AverageDensity[val_marker][iSpan]; + deltaprim[1] = ExtAverageTurboVelocity[val_marker][iSpan][0] - AverageTurboVelocity[val_marker][iSpan][0]; + deltaprim[2] = ExtAverageTurboVelocity[val_marker][iSpan][1] - AverageTurboVelocity[val_marker][iSpan][1]; + if (nDim == 2){ + deltaprim[3] = ExtAveragePressure[val_marker][iSpan] - AveragePressure[val_marker][iSpan]; + } + else + { + deltaprim[3] = ExtAverageTurboVelocity[val_marker][iSpan][2] - AverageTurboVelocity[val_marker][iSpan][2]; + deltaprim[4] = ExtAveragePressure[val_marker][iSpan] - AveragePressure[val_marker][iSpan]; + } + + + /* --- Compute average jump of charachteristic variable at the mixing-plane interface--- */ + GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan]); + AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); + conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][iSpan], deltaprim, c_avg); break; case MIXING_IN_1D: case MIXING_OUT_1D: - BC_Giles_Mixing(conv_numerics, val_marker, deltaprim, c_avg, nSpanWiseSections); + /* --- Compute average jump of primitive at the mixing-plane interface--- */ + deltaprim[0] = ExtAverageDensity[val_marker][nSpanWiseSections] - AverageDensity[val_marker][nSpanWiseSections]; + deltaprim[1] = ExtAverageTurboVelocity[val_marker][nSpanWiseSections][0] - AverageTurboVelocity[val_marker][nSpanWiseSections][0]; + deltaprim[2] = ExtAverageTurboVelocity[val_marker][nSpanWiseSections][1] - AverageTurboVelocity[val_marker][nSpanWiseSections][1]; + if (nDim == 2){ + deltaprim[3] = ExtAveragePressure[val_marker][nSpanWiseSections] - AveragePressure[val_marker][nSpanWiseSections]; + } + else + { + deltaprim[3] = ExtAverageTurboVelocity[val_marker][nSpanWiseSections][2] - AverageTurboVelocity[val_marker][nSpanWiseSections][2]; + deltaprim[4] = ExtAveragePressure[val_marker][nSpanWiseSections] - AveragePressure[val_marker][nSpanWiseSections]; + } + + /* --- Compute average jump of charachteristic variable at the mixing-plane interface--- */ + GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][nSpanWiseSections], AverageDensity[val_marker][nSpanWiseSections]); + AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); + conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][nSpanWiseSections], deltaprim, c_avg); break; @@ -6237,9 +6395,13 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_e /= config->GetPressure_Ref(); /* --- Compute avg characteristic jump --- */ - c_avg[nDim+1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); - - c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); + if (nDim == 2){ + c_avg[3] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); + } + else + { + c_avg[4] = -2.0*(AveragePressure[val_marker][iSpan]-Pressure_e); + } break; case STATIC_PRESSURE_1D: @@ -6247,9 +6409,13 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_e /= config->GetPressure_Ref(); /* --- Compute avg characteristic jump --- */ - c_avg[nDim+1] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); - - c_avg[nDim + 1] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); + if (nDim == 2){ + c_avg[3] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); + } + else + { + c_avg[4] = -2.0*(AveragePressure[val_marker][nSpanWiseSections]-Pressure_e); + } break; case RADIAL_EQUILIBRIUM: @@ -6272,66 +6438,67 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } - auto const iZone = config->GetiZone(); - /*--- Loop over all the vertices on this boundary marker ---*/ SU2_OMP_FOR_DYN(OMP_MIN_SIZE) - for (unsigned long iVertex = 0; iVertex < geometry->GetnVertexSpan(val_marker,iSpan); iVertex++) { + for (iVertex = 0; iVertex < geometry->GetnVertexSpan(val_marker,iSpan); iVertex++) { /*--- using the other vertex information for retrieving some information ---*/ - auto oldVertex = geometry->turbovertex[val_marker][iSpan][iVertex]->GetOldVertex(); - auto V_boundary= GetCharacPrimVar(val_marker, oldVertex); + oldVertex = geometry->turbovertex[val_marker][iSpan][iVertex]->GetOldVertex(); + V_boundary= GetCharacPrimVar(val_marker, oldVertex); /*--- Index of the closest interior node ---*/ - auto Point_Normal = geometry->vertex[val_marker][oldVertex]->GetNormal_Neighbor(); + Point_Normal = geometry->vertex[val_marker][oldVertex]->GetNormal_Neighbor(); /*--- Normal vector for this vertex (negate for outward convention), * this normal is scaled with the area of the face of the element ---*/ geometry->vertex[val_marker][oldVertex]->GetNormal(Normal); - for (unsigned short iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; + for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; conv_numerics->SetNormal(Normal); /*--- find the node related to the vertex ---*/ - auto iPoint = geometry->turbovertex[val_marker][iSpan][iVertex]->GetNode(); + iPoint = geometry->turbovertex[val_marker][iSpan][iVertex]->GetNode(); /*--- Normalize Normal vector for this vertex (already for outward convention) ---*/ geometry->turbovertex[val_marker][iSpan][iVertex]->GetNormal(UnitNormal); geometry->turbovertex[val_marker][iSpan][iVertex]->GetTurboNormal(turboNormal); /*--- Retrieve solution at this boundary node ---*/ - auto V_domain = nodes->GetPrimitive(iPoint); + V_domain = nodes->GetPrimitive(iPoint); /*--- Retrieve domain Secondary variables ---*/ - auto S_domain = nodes->GetSecondary(iPoint); + S_domain = nodes->GetSecondary(iPoint); /*--- Compute the internal state u_i ---*/ - su2double Velocity2_i = 0; - for (unsigned short iDim = 0; iDim < nDim; iDim++) + Velocity2_i = 0; + for (iDim = 0; iDim < nDim; iDim++) { Velocity_i[iDim] = nodes->GetVelocity(iPoint,iDim); Velocity2_i += Velocity_i[iDim]*Velocity_i[iDim]; } - auto Density_i = nodes->GetDensity(iPoint); + Density_i = nodes->GetDensity(iPoint); - auto Energy_i = nodes->GetEnergy(iPoint); - auto StaticEnergy_i = Energy_i - 0.5*Velocity2_i; + Energy_i = nodes->GetEnergy(iPoint); + StaticEnergy_i = Energy_i - 0.5*Velocity2_i; GetFluidModel()->SetTDState_rhoe(Density_i, StaticEnergy_i); - auto Pressure_i = GetFluidModel()->GetPressure(); + Pressure_i = GetFluidModel()->GetPressure(); ComputeTurboVelocity(Velocity_i, turboNormal, turboVelocity, config->GetMarker_All_TurbomachineryFlag(val_marker),config->GetKind_TurboMachinery(iZone)); - deltaprim[0] = Density_i - AverageDensity[val_marker][iSpan]; - deltaprim[1] = turboVelocity[0] - AverageTurboVelocity[val_marker][iSpan][0]; - deltaprim[2] = turboVelocity[1] - AverageTurboVelocity[val_marker][iSpan][1]; if (nDim == 2){ + deltaprim[0] = Density_i - AverageDensity[val_marker][iSpan]; + deltaprim[1] = turboVelocity[0] - AverageTurboVelocity[val_marker][iSpan][0]; + deltaprim[2] = turboVelocity[1] - AverageTurboVelocity[val_marker][iSpan][1]; deltaprim[3] = Pressure_i - AveragePressure[val_marker][iSpan]; } else{ + deltaprim[0] = Density_i - AverageDensity[val_marker][iSpan]; + deltaprim[1] = turboVelocity[0] - AverageTurboVelocity[val_marker][iSpan][0]; + deltaprim[2] = turboVelocity[1] - AverageTurboVelocity[val_marker][iSpan][1]; deltaprim[3] = turboVelocity[2] - AverageTurboVelocity[val_marker][iSpan][2]; deltaprim[4] = Pressure_i - AveragePressure[val_marker][iSpan]; } @@ -6341,13 +6508,8 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][iSpan], deltaprim, cj); - auto pitch = geometry->GetMaxAngularCoord(val_marker, iSpan) - geometry->GetMinAngularCoord(val_marker,iSpan); - auto theta = geometry->turbovertex[val_marker][iSpan][iVertex]->GetRelAngularCoord(); - - auto const AvgMach = AverageTurboMach[0]*AverageTurboMach[0] + AverageTurboMach[1]*AverageTurboMach[1]; - auto Beta_inf= I*complex(sqrt(1.0 - AvgMach)); - su2double TwoPiThetaFreq_Pitch; - long freq; + pitch = geometry->GetMaxAngularCoord(val_marker, iSpan) - geometry->GetMinAngularCoord(val_marker,iSpan); + theta = geometry->turbovertex[val_marker][iSpan][iVertex]->GetRelAngularCoord(); switch(config->GetKind_Data_Giles(Marker_Tag)) { @@ -6357,18 +6519,11 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu case TOTAL_CONDITIONS_PT: case MIXING_IN:case TOTAL_CONDITIONS_PT_1D: case MIXING_IN_1D: if(config->GetSpatialFourier()){ - - /* --- Initial definition of variables ---*/ - auto c2js = complex(0.0,0.0); - auto c3js = complex(0.0,0.0); - auto c2ks = complex(0.0,0.0); - auto c3ks = complex(0.0,0.0); - auto c2js_Re = c2js.real(); - auto c3js_Re = c3js.real(); - su2double Beta_inf2; - if (AvgMach <= 1.0){ - for(unsigned long k=0; k < 2*kend_max+1; k++){ + Beta_inf= I*complex(sqrt(1.0 - AvgMach)); + c2js = complex(0.0,0.0); + c3js = complex(0.0,0.0); + for(k=0; k < 2*kend_max+1; k++){ freq = k - kend_max; if(freq >= (long)(-kend) && freq <= (long)(kend) && AverageTurboMach[0] > config->GetAverageMachLimit()){ TwoPiThetaFreq_Pitch = 2*PI_NUMBER*freq*theta/pitch; @@ -6387,10 +6542,16 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu c2js_Re = c2js.real(); c3js_Re = c3js.real(); - dcjs[0] = 0.0 - cj[0]; - dcjs[1] = c2js_Re - cj[1]; - dcjs[2] = 0.0 - cj[2]; - dcjs[nDim] = c3js_Re - cj[nDim]; // Overwrites previous value in 2D case + if (nDim == 2){ + dcjs[0] = 0.0 - cj[0]; + dcjs[1] = c2js_Re - cj[1]; + dcjs[2] = c3js_Re - cj[2]; + }else{ + dcjs[0] = 0.0 - cj[0]; + dcjs[1] = c2js_Re - cj[1]; + dcjs[2] = 0.0 - cj[2]; + dcjs[3] = c3js_Re - cj[3]; + } }else{ if (AverageTurboVelocity[val_marker][iSpan][1] >= 0.0){ @@ -6398,21 +6559,40 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu }else{ Beta_inf2= sqrt(AvgMach-1.0); } + if (nDim == 2){ + c2js_Re = -cj[3]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + c3js_Re = cj[3]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + c3js_Re *= (Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + }else{ + c2js_Re = -cj[4]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + c3js_Re = cj[4]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + c3js_Re *= (Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); + } - c2js_Re = -cj[nDim+1]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - c3js_Re = cj[nDim+1]*(Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - c3js_Re *= (Beta_inf2 + AverageTurboMach[1])/( 1.0 + AverageTurboMach[0]); - dcjs[0] = 0.0 - cj[0]; - dcjs[1] = c2js_Re - cj[1]; - dcjs[2] = 0.0 - cj[2]; - dcjs[nDim] = c3js_Re - cj[nDim]; + if (nDim == 2){ + dcjs[0] = 0.0 - cj[0]; + dcjs[1] = c2js_Re - cj[1]; + dcjs[2] = c3js_Re - cj[2]; + }else{ + dcjs[0] = 0.0 - cj[0]; + dcjs[1] = c2js_Re - cj[1]; + dcjs[2] = 0.0 - cj[2]; + dcjs[3] = c3js_Re - cj[3]; + } + } + } + else{ + if (nDim == 2){ + dcjs[0] = 0.0; + dcjs[1] = 0.0; + dcjs[2] = 0.0; + }else{ + dcjs[0] = 0.0; + dcjs[1] = 0.0; + dcjs[2] = 0.0; + dcjs[3] = 0.0; } - }else{ - dcjs[0] = 0.0; - dcjs[1] = 0.0; - dcjs[2] = 0.0; - dcjs[nDim] = 0.0; } /* --- Impose Inlet BC Reflecting--- */ delta_c[0] = relfacAvg*c_avg[0] + relfacFou*dcjs[0]; @@ -6431,7 +6611,6 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu /* --- implementation of Giles BC---*/ if(config->GetSpatialFourier()){ - su2double GilesBeta, cOutjs_Re; if (AvgMach > 1.0){ /* --- supersonic Giles implementation ---*/ if (AverageTurboVelocity[val_marker][iSpan][1] >= 0.0){ @@ -6455,9 +6634,9 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu }else{ /* --- subsonic Giles implementation ---*/ - auto cOutjs = complex(0.0,0.0); - auto cOutks = complex(0.0,0.0); - for(unsigned long k=0; k < 2*kend_max+1; k++){ + Beta_inf= I*complex(sqrt(1.0 - AvgMach)); + cOutjs = complex(0.0,0.0); + for(k=0; k < 2*kend_max+1; k++){ freq = k - kend_max; if(freq >= (long)(-kend) && freq <= (long)(kend) && AverageTurboMach[0] > config->GetAverageMachLimit()){ TwoPiThetaFreq_Pitch = 2*PI_NUMBER*freq*theta/pitch; @@ -6472,25 +6651,41 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } cOutjs_Re = cOutjs.real(); - dcjs[nDim+1] = cOutjs_Re - cj[nDim+1]; + if (nDim == 2){ + dcjs[3] = cOutjs_Re - cj[3]; + } + else{ + dcjs[4] = cOutjs_Re - cj[4]; + } } } else{ - dcjs[nDim+1] = 0.0; + if (nDim == 2){ + dcjs[3] = 0.0; + } + else{ + dcjs[4] = 0.0; + } } /* --- Impose Outlet BC Non-Reflecting --- */ delta_c[0] = cj[0]; delta_c[1] = cj[1]; delta_c[2] = cj[2]; - delta_c[3] = cj[3]; - delta_c[nDim+1] = relfacAvg*c_avg[nDim+1] + relfacFou*dcjs[nDim+1]; + if (nDim == 2){ + delta_c[3] = relfacAvg*c_avg[3] + relfacFou*dcjs[3]; + } + else{ + delta_c[3] = cj[3]; + delta_c[4] = relfacAvg*c_avg[4] + relfacFou*dcjs[4]; + } + /*--- Automatically impose supersonic autoflow ---*/ if (abs(AverageTurboMach[0]) > 1.0000){ delta_c[0] = 0.0; delta_c[1] = 0.0; delta_c[2] = 0.0; - delta_c[3] = 0.0; + delta_c[2] = 0.0; if (nDim == 3)delta_c[4] = 0.0; } @@ -6502,25 +6697,31 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu } /*--- Compute primitive jump from characteristic variables ---*/ - for (unsigned short iVar = 0; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) { deltaprim[iVar]=0.0; - for (unsigned short jVar = 0; jVar < nVar; jVar++) + for (jVar = 0; jVar < nVar; jVar++) { deltaprim[iVar] += R_Matrix[iVar][jVar]*delta_c[jVar]; } } /*--- retrieve boundary variables ---*/ - su2double Density_b = AverageDensity[val_marker][iSpan] + deltaprim[0]; + Density_b = AverageDensity[val_marker][iSpan] + deltaprim[0]; turboVelocity[0] = AverageTurboVelocity[val_marker][iSpan][0] + deltaprim[1]; turboVelocity[1] = AverageTurboVelocity[val_marker][iSpan][1] + deltaprim[2]; - turboVelocity[nDim-1] = AverageTurboVelocity[val_marker][iSpan][nDim-1] + deltaprim[nDim]; - su2double Pressure_b = AveragePressure[val_marker][iSpan] + deltaprim[nDim+1]; + if(nDim == 2){ + Pressure_b = AveragePressure[val_marker][iSpan] + deltaprim[3]; + } + else{ + turboVelocity[2] = AverageTurboVelocity[val_marker][iSpan][2] + deltaprim[3]; + Pressure_b = AveragePressure[val_marker][iSpan] + deltaprim[4]; + } + ComputeBackVelocity(turboVelocity, turboNormal, Velocity_b, config->GetMarker_All_TurbomachineryFlag(val_marker), config->GetKind_TurboMachinery(iZone)); - su2double Velocity2_b = 0.0; - for (unsigned short iDim = 0; iDim < nDim; iDim++) { + Velocity2_b = 0.0; + for (iDim = 0; iDim < nDim; iDim++) { Velocity2_b+= Velocity_b[iDim]*Velocity_b[iDim]; } @@ -6528,20 +6729,20 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu Pressure_b = Pressure_i; Density_b = Density_i; Velocity2_b = 0.0; - for (unsigned short iDim = 0; iDim < nDim; iDim++) { + for (iDim = 0; iDim < nDim; iDim++) { Velocity_b[iDim] = Velocity_i[iDim]; Velocity2_b+= Velocity_b[iDim]*Velocity_b[iDim]; } } GetFluidModel()->SetTDState_Prho(Pressure_b, Density_b); - su2double Energy_b = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_b; - su2double Temperature_b= GetFluidModel()->GetTemperature(); - su2double Enthalpy_b = Energy_b + Pressure_b/Density_b; + Energy_b = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_b; + Temperature_b= GetFluidModel()->GetTemperature(); + Enthalpy_b = Energy_b + Pressure_b/Density_b; /*--- Primitive variables, using the derived quantities ---*/ V_boundary[0] = Temperature_b; - for (unsigned short iDim = 0; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) V_boundary[iDim+1] = Velocity_b[iDim]; V_boundary[nDim+1] = Pressure_b; V_boundary[nDim+2] = Density_b; @@ -6569,12 +6770,12 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu LinSysRes.AddBlock(iPoint, residual); /*--- Jacobian contribution for implicit integration ---*/ - if (config->GetKind_TimeIntScheme() == EULER_IMPLICIT) + if (implicit) Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i); /*--- Viscous contribution ---*/ - if (config->GetViscous()) { + if (viscous) { /*--- Set laminar and eddy viscosity at the infinity ---*/ @@ -6628,7 +6829,7 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu /*--- Jacobian contribution for implicit integration ---*/ - if (config->GetKind_TimeIntScheme() == EULER_IMPLICIT) + if (implicit) Jacobian.SubtractBlock2Diag(iPoint, residual.jacobian_i); } @@ -6650,11 +6851,11 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu delete [] delta_c; delete [] deltaprim; delete [] cj; - for (unsigned short iVar = 0; iVar < nVar; iVar++) + for (iVar = 0; iVar < nVar; iVar++) { delete [] R_Matrix[iVar]; } - for (unsigned short iVar = 0; iVar < nVar-1; iVar++) + for (iVar = 0; iVar < nVar-1; iVar++) { delete [] R_c_inv[iVar]; delete [] R_c[iVar]; @@ -6672,73 +6873,6 @@ void CEulerSolver::BC_Giles(CGeometry *geometry, CSolver **solver_container, CNu delete [] turboVelocity; } -void CEulerSolver::BC_Giles_Total_Inlet( CNumerics *conv_numerics, CConfig *config, unsigned short val_marker, - su2double *&c_avg, su2double *&R, su2double **&R_c_inv, su2double **&R_c, unsigned short iSpan, unsigned short SpanwisePosition) { - - /*--- Calculates boundry condition for quasi-3D and 1D total boundary conditions ---*/ - - /*--- Retrieve the specified boundary conditions. ---*/ - auto const Marker_Tag = config->GetMarker_All_TagBound(val_marker); - auto P_Total = config->GetGiles_Var1(Marker_Tag); - auto T_Total = config->GetGiles_Var2(Marker_Tag); - auto const FlowDir = config->GetGiles_FlowDir(Marker_Tag); - auto const alphaIn_BC = atan(FlowDir[1]/FlowDir[0]); - - su2double gammaIn_BC = 0; - if (nDim == 3){ - gammaIn_BC = FlowDir[2]; //atan(FlowDir[2]/FlowDir[0]); - } - - /*--- Non-dim. the inputs---*/ - P_Total /= config->GetPressure_Ref(); - T_Total /= config->GetTemperature_Ref(); - - /* --- Computes the total state --- */ - GetFluidModel()->SetTDState_PT(P_Total, T_Total); - auto const Enthalpy_BC = GetFluidModel()->GetStaticEnergy()+ GetFluidModel()->GetPressure()/GetFluidModel()->GetDensity(); - auto const Entropy_BC = GetFluidModel()->GetEntropy(); - - /* --- Computes the inverse matrix R_c --- */ - conv_numerics->ComputeResJacobianGiles(GetFluidModel(), AveragePressure[val_marker][iSpan], AverageDensity[val_marker][iSpan], - AverageTurboVelocity[val_marker][iSpan], alphaIn_BC, gammaIn_BC, R_c, R_c_inv); - - GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][SpanwisePosition], AverageDensity[val_marker][SpanwisePosition]); - auto AverageEnthalpy = GetFluidModel()->GetStaticEnergy() + AveragePressure[val_marker][SpanwisePosition]/AverageDensity[val_marker][SpanwisePosition]; - auto AverageEntropy = GetFluidModel()->GetEntropy(); - - - su2double avgVel2 = 0.0; - for (unsigned short iDim = 0; iDim < nDim; iDim++) avgVel2 += AverageVelocity[val_marker][iSpan][iDim]*AverageVelocity[val_marker][iSpan][iDim]; - - R[0] = -(AverageEntropy - Entropy_BC); - R[1] = -(AverageTurboVelocity[val_marker][SpanwisePosition][1] - tan(alphaIn_BC)*AverageTurboVelocity[val_marker][SpanwisePosition][0]); - R[2] = -(AverageTurboVelocity[val_marker][SpanwisePosition][2] - tan(gammaIn_BC)*AverageTurboVelocity[val_marker][SpanwisePosition][0]); - R[nDim] = -(AverageEnthalpy + 0.5*avgVel2 - Enthalpy_BC); - - /* --- Compute the avg component c_avg = R_c^-1 * R --- */ - for (unsigned short iVar = 0; iVar < nVar-1; iVar++){ - c_avg[iVar] = 0.0; - for (unsigned short jVar = 0; jVar < nVar-1; jVar++){ - c_avg[iVar] += R_c_inv[iVar][jVar]*R[jVar]; - } - } -} - -void CEulerSolver::BC_Giles_Mixing(CNumerics *conv_numerics, unsigned short val_marker, su2double *&deltaprim, su2double *&c_avg, unsigned short SpanwisePosition) { - - /* --- Compute average jump of primitive at the mixing-plane interface--- */ - deltaprim[0] = ExtAverageDensity[val_marker][SpanwisePosition] - AverageDensity[val_marker][SpanwisePosition]; - deltaprim[1] = ExtAverageTurboVelocity[val_marker][SpanwisePosition][0] - AverageTurboVelocity[val_marker][SpanwisePosition][0]; - deltaprim[2] = ExtAverageTurboVelocity[val_marker][SpanwisePosition][1] - AverageTurboVelocity[val_marker][SpanwisePosition][1]; - deltaprim[3] = ExtAverageTurboVelocity[val_marker][SpanwisePosition][2] - AverageTurboVelocity[val_marker][SpanwisePosition][2]; - deltaprim[nDim+1] = ExtAveragePressure[val_marker][SpanwisePosition] - AveragePressure[val_marker][SpanwisePosition]; - - /* --- Compute average jump of charachteristic variable at the mixing-plane interface--- */ - GetFluidModel()->SetTDState_Prho(AveragePressure[val_marker][SpanwisePosition], AverageDensity[val_marker][SpanwisePosition]); - auto const AverageSoundSpeed = GetFluidModel()->GetSoundSpeed(); - conv_numerics->GetCharJump(AverageSoundSpeed, AverageDensity[val_marker][SpanwisePosition], deltaprim, c_avg); -} - void CEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { From 62858433a6ed0ace412d040178cd9af0a32d764e Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Thu, 5 Sep 2024 10:55:38 +0100 Subject: [PATCH 256/287] remove unused config --- .../inv_channel_engine_inflow.cfg | 222 ------------------ 1 file changed, 222 deletions(-) delete mode 100644 TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg diff --git a/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg b/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg deleted file mode 100644 index d0bb330728d..00000000000 --- a/TestCases/engine/marker_engine_inflow/inv_channel_engine_inflow.cfg +++ /dev/null @@ -1,222 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% SU2 configuration file % -% Case description: Inviscid, internal flow over a bump in a channel with % -% prescribed Mach number for outlet BC % -% Author: Thomas D. Economon , Berke C. Deveci % -% Institution: Stanford University % -% Date: 2024.05.28 % -% File Version 8.0.1 "Harrier" % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -% Physical governing equations (EULER, NAVIER_STOKES, NS_PLASMA) -% -SOLVER= EULER -% -% Mathematical problem (DIRECT, CONTINUOUS_ADJOINT) -MATH_PROBLEM= DIRECT -% -% Restart solution (NO, YES) -RESTART_SOL= NO - -% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% -% -% Mach number (non-dimensional, based on the free-stream values) -MACH_NUMBER= 0.1 -% -% Angle of attack (degrees, only for compressible flows) -AOA= 0.0 -% -% Side-slip angle (degrees, only for compressible flows) -SIDESLIP_ANGLE= 0.0 -% -% Free-stream pressure (101325.0 N/m^2 by default) -FREESTREAM_PRESSURE= 101300.0 -% -% Free-stream temperature (288.15 K by default) -FREESTREAM_TEMPERATURE= 288.0 - -% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% -% -% Reference origin for moment computation -REF_ORIGIN_MOMENT_X = 0.25 -REF_ORIGIN_MOMENT_Y = 0.00 -REF_ORIGIN_MOMENT_Z = 0.00 -% -% Reference length for pitching, rolling, and yawing non-dimensional moment -REF_LENGTH= 1.0 -% -% Reference area for force coefficients (0 implies automatic calculation) -REF_AREA= 1.0 - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% -% Euler wall boundary marker(s) (NONE = no marker) -MARKER_EULER= ( upper_wall, lower_wall ) -% -% Inlet boundary type (TOTAL_CONDITIONS, MASS_FLOW) -INLET_TYPE= TOTAL_CONDITIONS -% -% Inlet boundary marker(s) (NONE = no marker) -% Format: ( inlet marker, total temperature, total pressure, flow_direction_x, -% flow_direction_y, flow_direction_z, ... ) where flow_direction is -% a unit vector. -% Default: Mach ~ 0.1 -MARKER_INLET= ( inlet, 288.6, 102010.0, 1.0, 0.0, 0.0 ) -% Comment above line and uncomment next for Mach ~ 0.7 (transonic) -%MARKER_INLET= ( inlet, 316.224, 140513.23, 1.0, 0.0, 0.0 ) -% -% Engine inflow boundary marker(s) (NONE = no marker) -% Format: (engine inflow marker, fan face Mach, ... ) -MARKER_ENGINE_INFLOW= ( outlet, 0.1) -ENGINE_INFLOW_TYPE= FAN_FACE_MACH -% Damping factor for the engine inflow. -DAMP_ENGINE_INFLOW= 0.2 -% Evaluation frequency for engine marker values -BC_EVAL_FREQ = 1 - -% ------------------------ SURFACES IDENTIFICATION ----------------------------% -% -% Marker(s) of the surface to be plotted or designed -MARKER_PLOTTING= ( lower_wall ) -% -% Marker(s) of the surface where the functional (Cd, Cl, etc.) will be evaluated -MARKER_MONITORING= ( upper_wall, lower_wall ) - -% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% -% -% Numerical method for spatial gradients (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES) -NUM_METHOD_GRAD= GREEN_GAUSS -% -% Courant-Friedrichs-Lewy condition of the finest grid -CFL_NUMBER= 50.0 -% -% Adaptive CFL number (NO, YES) -CFL_ADAPT= YES -% -% Parameters of the adaptive CFL number (factor down, factor up, CFL min value, -% CFL max value ) -CFL_ADAPT_PARAM= ( 0.1, 2.0, 50.0, 1e10 ) -% -% Runge-Kutta alpha coefficients -RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) -% -% Number of total iterations -ITER= 999999 - -% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% -% -% Linear solver for implicit formulations (BCGSTAB, FGMRES) -LINEAR_SOLVER= FGMRES -% -% Preconditioner of the Krylov linear solver (ILU, JACOBI, LINELET, LU_SGS) -LINEAR_SOLVER_PREC= ILU -% -% Minimum error of the linear solver for implicit formulations -LINEAR_SOLVER_ERROR= 1E-10 -% -% Max number of iterations of the linear solver for the implicit formulation -LINEAR_SOLVER_ITER= 20 - -% -------------------------- MULTIGRID PARAMETERS -----------------------------% -% -% Multi-Grid Levels (0 = no multi-grid) -MGLEVEL= 3 -% -% Multi-grid cycle (V_CYCLE, W_CYCLE, FULLMG_CYCLE) -MGCYCLE= W_CYCLE -% -% Multi-grid pre-smoothing level -MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) -% -% Multi-grid post-smoothing level -MG_POST_SMOOTH= ( 0, 0, 0, 0 ) -% -% Jacobi implicit smoothing of the correction -MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) -% -% Damping factor for the residual restriction -MG_DAMP_RESTRICTION= 1.0 -% -% Damping factor for the correction prolongation -MG_DAMP_PROLONGATION= 1.0 - -% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% -% -% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, -% TURKEL_PREC, MSW) -CONV_NUM_METHOD_FLOW= JST -% -% 2nd and 4th order artificial dissipation coefficients -JST_SENSOR_COEFF= ( 0.5, 0.02 ) -% -% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) -TIME_DISCRE_FLOW= EULER_IMPLICIT - -% --------------------------- CONVERGENCE PARAMETERS --------------------------% -% -% Convergence criteria (CAUCHY, RESIDUAL) -CONV_FIELD= RMS_DENSITY -% -% Min value of the residual (log10 of the residual) -CONV_RESIDUAL_MINVAL= -10 -% -% Start convergence criteria at iteration number -CONV_STARTITER= 10 -% -% Number of elements to apply the criteria -CONV_CAUCHY_ELEMS= 100 -% -% Epsilon to control the series convergence -CONV_CAUCHY_EPS= 1E-10 - -% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% -% -% Mesh input file -MESH_FILENAME= ../../euler/channel/mesh_channel_256x128.su2 -% -% Mesh input file format (SU2, CGNS, NETCDF_ASCII) -MESH_FORMAT= SU2 -% -% Mesh output file -MESH_OUT_FILENAME= mesh_out.su2 -% -% Restart flow input file -SOLUTION_FILENAME= solution_flow.dat -% -% Restart adjoint input file -SOLUTION_ADJ_FILENAME= solution_adj.dat -% -% Output file format (PARAVIEW, TECPLOT, STL) -TABULAR_FORMAT= CSV -% -% Output file convergence history (w/o extension) -CONV_FILENAME= history -% -% Output file restart flow -RESTART_FILENAME= restart_flow.dat -% -% Output file restart adjoint -RESTART_ADJ_FILENAME= restart_adj.dat -% -% Output file flow (w/o extension) variables -VOLUME_FILENAME= flow -% -% Output file adjoint (w/o extension) variables -VOLUME_ADJ_FILENAME= adjoint -% -% Output objective function gradient (using continuous adjoint) -GRAD_OBJFUNC_FILENAME= of_grad.dat -% -% Output file surface flow coefficient (w/o extension) -SURFACE_FILENAME= surface_flow -% -% Output file surface adjoint coefficient (w/o extension) -SURFACE_ADJ_FILENAME= surface_adjoint -% -% -% Screen output -SCREEN_OUTPUT= (INNER_ITER, WALL_TIME, RMS_DENSITY, RMS_ENERGY, LIFT, DRAG) From a4120381f717c73cdcae6d9e1e86f463d28c3ede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Thu, 5 Sep 2024 14:31:17 +0200 Subject: [PATCH 257/287] Fix loop variable privatization. --- SU2_CFD/src/python_wrapper_structure.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/src/python_wrapper_structure.cpp b/SU2_CFD/src/python_wrapper_structure.cpp index a0018371443..86933d11341 100644 --- a/SU2_CFD/src/python_wrapper_structure.cpp +++ b/SU2_CFD/src/python_wrapper_structure.cpp @@ -111,7 +111,7 @@ void CSinglezoneDriver::SetInitialMesh() { DynamicMeshUpdate(0); SU2_OMP_PARALLEL { - for (iMesh = 0u; iMesh <= main_config->GetnMGLevels(); iMesh++) { + for (auto iMesh = 0u; iMesh <= main_config->GetnMGLevels(); iMesh++) { SU2_OMP_FOR_STAT(roundUpDiv(geometry_container[selected_zone][INST_0][iMesh]->GetnPoint(), omp_get_max_threads())) for (auto iPoint = 0ul; iPoint < geometry_container[selected_zone][INST_0][iMesh]->GetnPoint(); iPoint++) { /*--- Overwrite fictitious velocities. ---*/ From c5872c4ded8f6c14e3cdc4488abf138418ca1af9 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Thu, 5 Sep 2024 16:04:55 +0200 Subject: [PATCH 258/287] Resolving releasing resources warning --- Common/include/option_structure.inl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Common/include/option_structure.inl b/Common/include/option_structure.inl index 01ed6de9bf9..40a2a26dbc5 100644 --- a/Common/include/option_structure.inl +++ b/Common/include/option_structure.inl @@ -1618,7 +1618,11 @@ class COptionTurboPerformance : public COptionBase { this->name = option_field_name; } - ~COptionTurboPerformance() override{}; + ~COptionTurboPerformance() override{ + delete[] *markers; + delete[] *marker_turboIn; + delete[] *marker_turboOut; + }; string SetValue(const vector& option_value) override { COptionBase::SetValue(option_value); const int mod_num = 2; From 52d8ca921e806b7424ff4b3fe6e3b6d63d7195f3 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Thu, 5 Sep 2024 16:24:00 +0200 Subject: [PATCH 259/287] Actually releasing resources --- Common/include/option_structure.inl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Common/include/option_structure.inl b/Common/include/option_structure.inl index 40a2a26dbc5..00318abbed3 100644 --- a/Common/include/option_structure.inl +++ b/Common/include/option_structure.inl @@ -1619,9 +1619,9 @@ class COptionTurboPerformance : public COptionBase { } ~COptionTurboPerformance() override{ - delete[] *markers; - delete[] *marker_turboIn; - delete[] *marker_turboOut; + delete[] markers; + delete[] marker_turboIn; + delete[] marker_turboOut; }; string SetValue(const vector& option_value) override { COptionBase::SetValue(option_value); From bfcc97cbbbb4ec6458e5158ef4448d097a917acd Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Thu, 5 Sep 2024 17:31:33 +0200 Subject: [PATCH 260/287] release --- Common/include/option_structure.inl | 6 +----- Common/src/CConfig.cpp | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Common/include/option_structure.inl b/Common/include/option_structure.inl index 00318abbed3..01ed6de9bf9 100644 --- a/Common/include/option_structure.inl +++ b/Common/include/option_structure.inl @@ -1618,11 +1618,7 @@ class COptionTurboPerformance : public COptionBase { this->name = option_field_name; } - ~COptionTurboPerformance() override{ - delete[] markers; - delete[] marker_turboIn; - delete[] marker_turboOut; - }; + ~COptionTurboPerformance() override{}; string SetValue(const vector& option_value) override { COptionBase::SetValue(option_value); const int mod_num = 2; diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 4e89974f902..a71cc0a0ded 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -8295,9 +8295,9 @@ CConfig::~CConfig() { delete [] RelaxFactorFourier; delete [] nSpan_iZones; - delete [] Marker_Turbomachinery; delete [] Marker_TurboBoundIn; delete [] Marker_TurboBoundOut; + delete [] Marker_Turbomachinery; delete [] Marker_Riemann; delete [] Marker_Giles; From b8a682f58f7b7105412d70d208eaecb3d815feae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Bl=C3=BChdorn?= Date: Fri, 6 Sep 2024 00:15:40 +0200 Subject: [PATCH 261/287] AD tool updates. --- externals/codi | 2 +- externals/medi | 2 +- externals/opdi | 2 +- meson_scripts/init.py | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/externals/codi b/externals/codi index c6b039e5c9e..762ba7698e3 160000 --- a/externals/codi +++ b/externals/codi @@ -1 +1 @@ -Subproject commit c6b039e5c9edb7675f90ffc725f9dd8e66571264 +Subproject commit 762ba7698e3ceaa1b17aa299421ddd418f00b823 diff --git a/externals/medi b/externals/medi index ab3a7688f6d..7d550831e0e 160000 --- a/externals/medi +++ b/externals/medi @@ -1 +1 @@ -Subproject commit ab3a7688f6d518f8d940eb61a341d89f51922ba4 +Subproject commit 7d550831e0e233a85b9d9af9c181d7ecb2929946 diff --git a/externals/opdi b/externals/opdi index 8c897988172..a6b9655c240 160000 --- a/externals/opdi +++ b/externals/opdi @@ -1 +1 @@ -Subproject commit 8c89798817253abb017d857a0ae7f0520187645c +Subproject commit a6b9655c240af2a35454a61727e5bbbbaa3a425f diff --git a/meson_scripts/init.py b/meson_scripts/init.py index bc58f9a9564..2fde106706a 100755 --- a/meson_scripts/init.py +++ b/meson_scripts/init.py @@ -55,11 +55,11 @@ def init_submodules( # This information of the modules is used if projects was not cloned using git # The sha tag must be maintained manually to point to the correct commit - sha_version_codi = "c6b039e5c9edb7675f90ffc725f9dd8e66571264" + sha_version_codi = "762ba7698e3ceaa1b17aa299421ddd418f00b823" github_repo_codi = "https://github.com/scicompkl/CoDiPack" - sha_version_medi = "ab3a7688f6d518f8d940eb61a341d89f51922ba4" + sha_version_medi = "7d550831e0e233a85b9d9af9c181d7ecb2929946" github_repo_medi = "https://github.com/SciCompKL/MeDiPack" - sha_version_opdi = "8c89798817253abb017d857a0ae7f0520187645c" + sha_version_opdi = "a6b9655c240af2a35454a61727e5bbbbaa3a425f" github_repo_opdi = "https://github.com/SciCompKL/OpDiLib" sha_version_meson = "41c650a040d50e0912d268af7a903a9ce1456dfa" github_repo_meson = "https://github.com/mesonbuild/meson" From c2edeefacc58464ae3503be82325881353c62a62 Mon Sep 17 00:00:00 2001 From: rois1995 Date: Fri, 6 Sep 2024 10:41:06 +0200 Subject: [PATCH 262/287] - Get back to TMR value of CRot --- SU2_CFD/include/numerics/turbulent/turb_sources.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index ce75b38f115..99159f9de3b 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -48,7 +48,7 @@ struct CSAVariables { const su2double cb2_sigma = cb2 / sigma; const su2double cw1 = cb1 / k2 + (1 + cb2) / sigma; const su2double cr1 = 0.5; - const su2double CRot = 1.0; + const su2double CRot = 2.0; const su2double c2 = 0.7, c3 = 0.9; /*--- List of auxiliary functions ---*/ From 597904ff7b9992f426defcf6599fb886131b6173 Mon Sep 17 00:00:00 2001 From: rois1995 Date: Fri, 6 Sep 2024 12:56:04 +0200 Subject: [PATCH 263/287] - changes to the production terms of SA to accomodate neg-R combination --- .../numerics/turbulent/turb_sources.hpp | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index 99159f9de3b..13c20e0afad 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -52,7 +52,7 @@ struct CSAVariables { const su2double c2 = 0.7, c3 = 0.9; /*--- List of auxiliary functions ---*/ - su2double ft2, d_ft2, r, d_r, g, d_g, glim, fw, d_fw, Ji, d_Ji, S, Shat, d_Shat, fv1, d_fv1, fv2, d_fv2; + su2double ft2, d_ft2, r, d_r, g, d_g, glim, fw, d_fw, Ji, d_Ji, S, Shat, d_Shat, fv1, d_fv1, fv2, d_fv2, Prod; /*--- List of helpers ---*/ su2double Omega, dist_i_2, inv_k2_d2, inv_Shat, g_6, norm2_Grad; @@ -151,20 +151,7 @@ class CSourceBase_TurbSA : public CNumerics { Residual = 0.0; Jacobian_i[0] = 0.0; - /*--- Evaluate Omega with a rotational correction term. ---*/ - - Omega::get(Vorticity_i, nDim, PrimVar_Grad_i + idx.Velocity(), var); - - /*--- Dacles-Mariani et. al. rotation correction ("-R"). ---*/ - if (options.rot) { - var.Omega += var.CRot * min(0.0, StrainMag_i - var.Omega); - /*--- Do not allow negative production for SA-neg. ---*/ - if (ScalarVar_i[0] < 0) var.Omega = abs(var.Omega); - } - if (dist_i > 1e-10) { - /*--- Vorticity ---*/ - var.S = var.Omega; var.dist_i_2 = pow(dist_i, 2); const su2double nu = laminar_viscosity / density; @@ -188,12 +175,30 @@ class CSourceBase_TurbSA : public CNumerics { var.fv2 = 1 - ScalarVar_i[0] / (nu + ScalarVar_i[0] * var.fv1); var.d_fv2 = -(1 / nu - Ji_2 * var.d_fv1) / pow(1 + var.Ji * var.fv1, 2); - /*--- Compute ft2 term ---*/ - ft2::get(var); + /*--- Evaluate Omega with a rotational correction term. ---*/ + + Omega::get(Vorticity_i, nDim, PrimVar_Grad_i + idx.Velocity(), var); + + /*--- Vorticity ---*/ + var.S = var.Omega; /*--- Compute modified vorticity ---*/ ModVort::get(ScalarVar_i[0], nu, var); var.inv_Shat = 1.0 / var.Shat; + var.Prod = var.SHat; + + /*--- Dacles-Mariani et. al. rotation correction ("-R"). ---*/ + if (options.rot) { + if (ScalarVar_i[0] > 0) { + var.Prod = var.Shat + var.CRot * min(0.0, StrainMag_i - var.Omega); + } else { + /*--- Do not allow negative production for SA-neg. ---*/ + var.Prod = abs(var.Omega + var.CRot * min(0.0, StrainMag_i - var.Omega)); + } + } + + /*--- Compute ft2 term ---*/ + ft2::get(var); /*--- Compute auxiliary function r ---*/ rFunc::get(ScalarVar_i[0], var); @@ -383,7 +388,7 @@ struct Neg { // Baseline solution Bsl::get(nue, nu, var); } else { - var.Shat = 1.0e-10; + var.Shat = var.Omega; var.d_Shat = 0.0; } /*--- Don't check whether Sbar <>= -cv2*S. @@ -447,8 +452,8 @@ struct Bsl { static void ComputeProduction(const su2double& nue, const CSAVariables& var, su2double& production, su2double& jacobian) { const su2double factor = var.intermittency * var.cb1; - production = factor * (1.0 - var.ft2) * var.Shat * nue; - jacobian += factor * (-var.Shat * nue * var.d_ft2 + (1.0 - var.ft2) * (nue * var.d_Shat + var.Shat)); + production = factor * (1.0 - var.ft2) * var.Prod * nue; + jacobian += factor * (-var.Prod * nue * var.d_ft2 + (1.0 - var.ft2) * (nue * var.d_Shat + var.Prod)); } static void ComputeDestruction(const su2double& nue, const CSAVariables& var, su2double& destruction, @@ -481,7 +486,7 @@ struct Neg { static void ComputeProduction(const su2double& nue, const CSAVariables& var, su2double& production, su2double& jacobian) { - const su2double dP_dnu = var.intermittency * var.cb1 * (1.0 - var.ct3) * var.S; + const su2double dP_dnu = var.intermittency * var.cb1 * (1.0 - var.ct3) * var.Prod; production = dP_dnu * nue; jacobian += dP_dnu; } From 9970f76553afa8c0d2f2bbc0b73c8bdd734b3e61 Mon Sep 17 00:00:00 2001 From: rois1995 Date: Fri, 6 Sep 2024 13:03:35 +0200 Subject: [PATCH 264/287] - fix compiling error --- SU2_CFD/include/numerics/turbulent/turb_sources.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index 13c20e0afad..a95557a553d 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -185,7 +185,7 @@ class CSourceBase_TurbSA : public CNumerics { /*--- Compute modified vorticity ---*/ ModVort::get(ScalarVar_i[0], nu, var); var.inv_Shat = 1.0 / var.Shat; - var.Prod = var.SHat; + var.Prod = var.Shat; /*--- Dacles-Mariani et. al. rotation correction ("-R"). ---*/ if (options.rot) { From e88aa022be2f303d68d66a00cab0da7ab018532c Mon Sep 17 00:00:00 2001 From: rois1995 Date: Fri, 6 Sep 2024 15:03:18 +0200 Subject: [PATCH 265/287] - Files cleanup --- SU2_CFD/include/numerics/turbulent/turb_sources.hpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index a95557a553d..b9009e053a5 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -189,12 +189,10 @@ class CSourceBase_TurbSA : public CNumerics { /*--- Dacles-Mariani et. al. rotation correction ("-R"). ---*/ if (options.rot) { - if (ScalarVar_i[0] > 0) { - var.Prod = var.Shat + var.CRot * min(0.0, StrainMag_i - var.Omega); - } else { + var.Prod += var.CRot * min(0.0, StrainMag_i - var.Omega); + /*--- Do not allow negative production for SA-neg. ---*/ - var.Prod = abs(var.Omega + var.CRot * min(0.0, StrainMag_i - var.Omega)); - } + if (ScalarVar_i[0] < 0) var.Prod = abs(var.Prod); } /*--- Compute ft2 term ---*/ @@ -239,7 +237,6 @@ class CSourceBase_TurbSA : public CNumerics { } else if (transition_LM){ var.intermittency = intermittency_eff_i; - //var.intermittency = 1.0; // Is wrong the reference from NASA? // Original max(min(gamma, 0.5), 1.0) always gives 1 as result. var.interDestrFactor = min(max(intermittency_i, 0.5), 1.0); From 0b217d21d2db03442ccc1885d0f0decb2c19d742 Mon Sep 17 00:00:00 2001 From: rois1995 Date: Fri, 6 Sep 2024 18:40:37 +0200 Subject: [PATCH 266/287] - Removed var.S --- .../numerics/turbulent/turb_sources.hpp | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index b9009e053a5..f59da30719b 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -52,7 +52,7 @@ struct CSAVariables { const su2double c2 = 0.7, c3 = 0.9; /*--- List of auxiliary functions ---*/ - su2double ft2, d_ft2, r, d_r, g, d_g, glim, fw, d_fw, Ji, d_Ji, S, Shat, d_Shat, fv1, d_fv1, fv2, d_fv2, Prod; + su2double ft2, d_ft2, r, d_r, g, d_g, glim, fw, d_fw, Ji, d_Ji, Shat, d_Shat, fv1, d_fv1, fv2, d_fv2, Prod; /*--- List of helpers ---*/ su2double Omega, dist_i_2, inv_k2_d2, inv_Shat, g_6, norm2_Grad; @@ -179,9 +179,6 @@ class CSourceBase_TurbSA : public CNumerics { Omega::get(Vorticity_i, nDim, PrimVar_Grad_i + idx.Velocity(), var); - /*--- Vorticity ---*/ - var.S = var.Omega; - /*--- Compute modified vorticity ---*/ ModVort::get(ScalarVar_i[0], nu, var); var.inv_Shat = 1.0 / var.Shat; @@ -190,7 +187,6 @@ class CSourceBase_TurbSA : public CNumerics { /*--- Dacles-Mariani et. al. rotation correction ("-R"). ---*/ if (options.rot) { var.Prod += var.CRot * min(0.0, StrainMag_i - var.Omega); - /*--- Do not allow negative production for SA-neg. ---*/ if (ScalarVar_i[0] < 0) var.Prod = abs(var.Prod); } @@ -349,12 +345,12 @@ struct Bsl { /*--- Limiting of \hat{S} based on "Modifications and Clarifications for the Implementation of the Spalart-Allmaras Turbulence Model" * Note 1 option c in https://turbmodels.larc.nasa.gov/spalart.html ---*/ - if (Sbar >= - c2 * var.S) { - var.Shat = var.S + Sbar; + if (Sbar >= - c2 * var.Omega) { + var.Shat = var.Omega + Sbar; } else { - const su2double Num = var.S * (c2 * c2 * var.S + c3 * Sbar); - const su2double Den = (c3 - 2 * c2) * var.S - Sbar; - var.Shat = var.S + Num / Den; + const su2double Num = var.Omega * (c2 * c2 * var.Omega + c3 * Sbar); + const su2double Den = (c3 - 2 * c2) * var.Omega - Sbar; + var.Shat = var.Omega + Num / Den; } if (var.Shat <= 1e-10) { var.Shat = 1e-10; @@ -368,12 +364,12 @@ struct Bsl { /*! \brief Edward. */ struct Edw { static void get(const su2double& nue, const su2double& nu, CSAVariables& var) { - var.Shat = max(var.S * ((1.0 / max(var.Ji, 1.0e-16)) + var.fv1), 1.0e-16); + var.Shat = max(var.Omega * ((1.0 / max(var.Ji, 1.0e-16)) + var.fv1), 1.0e-16); var.Shat = max(var.Shat, 1.0e-10); if (var.Shat <= 1.0e-10) { var.d_Shat = 0.0; } else { - var.d_Shat = -var.S * pow(var.Ji, -2) / nu + var.S * var.d_fv1; + var.d_Shat = -var.Omega * pow(var.Ji, -2) / nu + var.Omega * var.d_fv1; } } }; From b2cfab0d9640e8e076b3997cf0be197d7c83e6f7 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 11 Sep 2024 17:35:17 +0200 Subject: [PATCH 267/287] Added test case, additional turbo outputs and fixed formatting --- SU2_CFD/src/interfaces/CInterface.cpp | 3 +- SU2_CFD/src/output/CFlowCompOutput.cpp | 4 + SU2_CFD/src/output/CFlowOutput.cpp | 4 + TestCases/hybrid_regression.py | 9 ++ TestCases/parallel_regression.py | 9 ++ TestCases/serial_regression.py | 9 ++ .../multi_interface/multi_interface.cfg | 151 ++++++++++++++++++ .../turbomachinery/multi_interface/zone_1.cfg | 6 + .../turbomachinery/multi_interface/zone_2.cfg | 6 + .../turbomachinery/multi_interface/zone_3.cfg | 6 + 10 files changed, 206 insertions(+), 1 deletion(-) create mode 100644 TestCases/turbomachinery/multi_interface/multi_interface.cfg create mode 100644 TestCases/turbomachinery/multi_interface/zone_1.cfg create mode 100644 TestCases/turbomachinery/multi_interface/zone_2.cfg create mode 100644 TestCases/turbomachinery/multi_interface/zone_3.cfg diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index 3ae5d0787b4..04a680cf7b2 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -300,7 +300,7 @@ void CInterface::PreprocessAverage(CGeometry *donor_geometry, CGeometry *target_ } if(test2 < dist2){ dist2 = test2; - tSpan =jSpan; + tSpan = jSpan; } } @@ -317,6 +317,7 @@ void CInterface::PreprocessAverage(CGeometry *donor_geometry, CGeometry *target_ SpanLevelDonor[iSpan] = kSpan; SpanValueCoeffTarget[iSpan] = (SpanValuesTarget[iSpan] - SpanValuesDonor[kSpan]) /(SpanValuesDonor[kSpan + 1] - SpanValuesDonor[kSpan]); + cout << SpanValueCoeffTarget[iSpan] << endl; break; default: SU2_MPI::Error("MixingPlane interface option not implemented yet", CURRENT_FUNCTION); diff --git a/SU2_CFD/src/output/CFlowCompOutput.cpp b/SU2_CFD/src/output/CFlowCompOutput.cpp index 8108765de02..fe7c9fbf397 100644 --- a/SU2_CFD/src/output/CFlowCompOutput.cpp +++ b/SU2_CFD/src/output/CFlowCompOutput.cpp @@ -592,6 +592,10 @@ void CFlowCompOutput::LoadTurboHistoryData(std::shared_ptrGetOutletState().GetTotalPressure()); SetHistoryOutputValue("PressureIn_" + tag.str(), BladePerf->GetInletState().GetPressure()); SetHistoryOutputValue("PressureOut_" + tag.str(), BladePerf->GetOutletState().GetPressure()); + SetHistoryOutputValue("TotalTemperatureIn_" + tag.str(), BladePerf->GetInletState().GetTotalTemperature()); + SetHistoryOutputValue("TotalTemperatureOut_" + tag.str(), BladePerf->GetOutletState().GetTotalTemperature()); + SetHistoryOutputValue("TemperatureIn_" + tag.str(), BladePerf->GetInletState().GetTemperature()); + SetHistoryOutputValue("TemperatureOut_" + tag.str(), BladePerf->GetOutletState().GetTemperature()); SetHistoryOutputValue("DensityIn_" + tag.str(), BladePerf->GetInletState().GetDensity()); SetHistoryOutputValue("DensityOut_" + tag.str(), BladePerf->GetOutletState().GetDensity()); SetHistoryOutputValue("NormalVelocityIn_" + tag.str(), BladePerf->GetInletState().GetVelocity()[0]); diff --git a/SU2_CFD/src/output/CFlowOutput.cpp b/SU2_CFD/src/output/CFlowOutput.cpp index 7c7d5632445..895419f264d 100644 --- a/SU2_CFD/src/output/CFlowOutput.cpp +++ b/SU2_CFD/src/output/CFlowOutput.cpp @@ -4066,6 +4066,10 @@ void CFlowOutput::AddTurboOutput(unsigned short nZone){ AddHistoryOutput("TotalPressureOut_" + tag, "TotPressureOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Flow angle in " + tag, HistoryFieldType::DEFAULT); AddHistoryOutput("PressureIn_" + tag, "PressureIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Pressure ratio " + tag, HistoryFieldType::DEFAULT); AddHistoryOutput("PressureOut_" + tag, "PressureOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Flow angle in " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("TotalTemperatureIn_" + tag, "TotTemperatureIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Temperature ratio " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("TotalTemperatureOut_" + tag, "TotTemperatureOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Flow angle in " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("TemperatureIn_" + tag, "TemperatureIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Temperature ratio " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("TemperatureOut_" + tag, "TemperatureOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Flow angle in " + tag, HistoryFieldType::DEFAULT); AddHistoryOutput("DensityIn_" + tag, "DensityIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Flow angle out " + tag, HistoryFieldType::DEFAULT); AddHistoryOutput("DensityOut_" + tag, "DensityOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Absolute flow angle in " + tag, HistoryFieldType::DEFAULT); AddHistoryOutput("NormalVelocityIn_" + tag, "NormalVelocityIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Absolute flow angle out " + tag, HistoryFieldType::DEFAULT); diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index c893649c1dd..67cbc339a46 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -582,6 +582,15 @@ def main(): transonic_stator_restart.test_vals_aarch64 = [-5.007735, -3.099310, -2.751696, 1.091966, -3.542819, 2.163237, -471630, 94.866, -0.035738] test_list.append(transonic_stator_restart) + # Multiple turbomachinery interface restart + multi_interface = TestCase('multi_interface') + multi_interface.cfg_dir = "turbomachinery/multi_interface" + multi_interface.cfg_file = "mutl_interface_rst.cfg" + multi_interface.test_iter = 5 + multi_interface.test_vals = [-8.642669, -8.899958, -9.349881] + multi_interface.test_vals_aarch64 = [-8.642669, -8.899958, -9.349881] + test_list.append(multi_interface) + ###################################### ### Sliding Mesh ### ###################################### diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 0137b08806c..c73fbd31804 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1112,6 +1112,15 @@ def main(): transonic_stator_restart.test_vals_aarch64 = [-5.011834, -3.091110, -2.757795, 1.087934, -3.544707, 2.166101, -471630, 94.868, -0.035888] test_list.append(transonic_stator_restart) + # Multiple turbomachinery interface restart + multi_interface = TestCase('multi_interface') + multi_interface.cfg_dir = "turbomachinery/multi_interface" + multi_interface.cfg_file = "mutl_interface_rst.cfg" + multi_interface.test_iter = 5 + multi_interface.test_vals = [-8.642669, -8.899958, -9.349881] + multi_interface.test_vals_aarch64 = [-8.642669, -8.899958, -9.349881] + test_list.append(multi_interface) + ###################################### ### Sliding Mesh ### ###################################### diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 080b41053b7..870b0a2154b 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -889,6 +889,15 @@ def main(): transonic_stator_restart.test_vals_aarch64 = [-5.008547, -3.102420, -2.752033, 1.091152, -3.543849, 2.169844, -471630, 94.866, -0.035806] test_list.append(transonic_stator_restart) + # Multiple turbomachinery interface restart + multi_interface = TestCase('multi_interface') + multi_interface.cfg_dir = "turbomachinery/multi_interface" + multi_interface.cfg_file = "mutl_interface_rst.cfg" + multi_interface.test_iter = 5 + multi_interface.test_vals = [-8.642669, -8.899958, -9.349881] + multi_interface.test_vals_aarch64 = [-8.642669, -8.899958, -9.349881] + test_list.append(multi_interface) + ###################################### ### Sliding Mesh ### diff --git a/TestCases/turbomachinery/multi_interface/multi_interface.cfg b/TestCases/turbomachinery/multi_interface/multi_interface.cfg new file mode 100644 index 00000000000..d2f56da2fc4 --- /dev/null +++ b/TestCases/turbomachinery/multi_interface/multi_interface.cfg @@ -0,0 +1,151 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Quarter Concentirc Cylinder Channel w/ % +% Different Interface Methods % +% Author: J. Kelly % +% Institution: University of Liverpool % +% Date: Sep 5th, 2024 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +MULTIZONE= YES +CONFIG_LIST=(zone_1.cfg,zone_2.cfg,zone_3.cfg) +NZONES=3 +% +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= RANS +KIND_TURB_MODEL= SA +MATH_PROBLEM= DIRECT +RESTART_SOL= YES +% +% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% +% +MACH_NUMBER= 0.35 +AOA= 0.0 +FREESTREAM_PRESSURE= 100.0E+03 +FREESTREAM_TEMPERATURE= 300.0 +FREESTREAM_DENSITY= 1.205 +FREESTREAM_OPTION= TEMPERATURE_FS +FREESTREAM_TURBULENCEINTENSITY = 0.05 +FREESTREAM_TURB2LAMVISCRATIO = 100.0 +INIT_OPTION= TD_CONDITIONS +% +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +REF_ORIGIN_MOMENT_X = 0.00 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +REF_LENGTH= 1.0 +REF_AREA= 1.0 +REF_DIMENSIONALIZATION= DIMENSIONAL +% +% ------------------------------ EQUATION OF STATE ----------------------------% +% +FLUID_MODEL= STANDARD_AIR +% +% --------------------------- VISCOSITY MODEL ---------------------------------% +% +VISCOSITY_MODEL= SUTHERLAND +MU_REF= 1.716E-5 +MU_T_REF= 273.15 +SUTHERLAND_CONSTANT= 110.4 +% +% --------------------------- THERMAL CONDUCTIVITY MODEL ----------------------% +% +CONDUCTIVITY_MODEL= CONSTANT_PRANDTL +% +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +MARKER_HEATFLUX= (HUB1, 0.0, SHROUD1, 0.0, HUB2, 0.0, SHROUD2, 0.0, HUB3, 0.0, SHROUD3, 0.0) +MARKER_PERIODIC= (PER1, PER2, 0.0, 0.0, 0.0, 0.0, 0.0, 90.0, 0.0, 0.0, 0.0, PER4, PER3, 0.0, 0.0, 0.0, 0.0, 0.0, 90.0, 0.0, 0.0, 0.0, PER6, PER5, 0.0, 0.0, 0.0, 0.0, 0.0, 90.0, 0.0, 0.0, 0.0) +% +%-------- INFLOW/OUTFLOW BOUNDARY CONDITION SPECIFIC FOR TURBOMACHINERY --------% +% +MARKER_TURBOMACHINERY= (INFLOW, OUTMIX_0, INMIX_1, OUTMIX_1, INMIX_2, OUTFLOW) +MARKER_ZONE_INTERFACE= (OUTMIX_0, INMIX_1, OUTMIX_1, INMIX_2) +MARKER_FLUID_INTERFACE= (OUTMIX_0, INMIX_1) +MARKER_MIXINGPLANE_INTERFACE= (OUTMIX_1, INMIX_2) +MARKER_GILES= (INFLOW, TOTAL_CONDITIONS_PT, 104E+03, 300, 1.0, 0.0, 0.0, 1.0, 0.0, OUTMIX_1, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, INMIX_2, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, OUTFLOW, STATIC_PRESSURE_1D, 90.0E+03, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) +GILES_EXTRA_RELAXFACTOR= (0.05, 0.05) +SPATIAL_FOURIER= NO +% +%---------------------------- TURBOMACHINERY SIMULATION -----------------------------% +% +TURBOMACHINERY_KIND= AXIAL, AXIAL, AXIAL +TURBO_PERF_KIND= (TURBINE, TURBINE, TURBINE) +MIXINGPLANE_INTERFACE_KIND= LINEAR_INTERPOLATION +TURBULENT_MIXINGPLANE= YES +RAMP_OUTLET_PRESSURE= NO +AVERAGE_PROCESS_KIND= MIXEDOUT +PERFORMANCE_AVERAGE_PROCESS_KIND= MIXEDOUT +MIXEDOUT_COEFF= (1.0, 1.0E-05, 100) +AVERAGE_MACH_LIMIT= 0.05 +% +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +CFL_NUMBER= 2.0 +CFL_ADAPT= YES +CFL_ADAPT_PARAM= ( 0.99, 1.01, 1.0, 20, 1E-4) +% +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= LU_SGS +LINEAR_SOLVER_ERROR= 1E-4 +LINEAR_SOLVER_ITER= 5 +% +% ----------------------- SLOPE LIMITER DEFINITION ----------------------------% +% +VENKAT_LIMITER_COEFF= 0.01 +LIMITER_ITER= 999999 +% +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +CONV_NUM_METHOD_FLOW= ROE +MUSCL_FLOW= NO +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN_WANG +TIME_DISCRE_FLOW= EULER_IMPLICIT +% +% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% +% +CONV_NUM_METHOD_TURB= SCALAR_UPWIND +MUSCL_TURB= NO +SLOPE_LIMITER_TURB= VENKATAKRISHNAN +TIME_DISCRE_TURB= EULER_IMPLICIT +CFL_REDUCTION_TURB= 1.0 +% +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +OUTER_ITER= 10 +CONV_FIELD= RMS_DENSITY +CONV_RESIDUAL_MINVAL= -10 +CONV_STARTITER= 0 +CONV_CAUCHY_ELEMS= 999 +CONV_CAUCHY_EPS= 1E-6 +SCREEN_OUTPUT= (OUTER_ITER, RMS_DENSITY[0], RMS_DENSITY[1], RMS_DENSITY[2]) +OUTPUT_FILES= RESTART +% +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +MESH_FILENAME= three_zone_quarter_cyl.su2 +MESH_FORMAT= SU2 +MESH_OUT_FILENAME= mesh_out.su2 +SOLUTION_FILENAME= restart_flow.dat +SOLUTION_ADJ_FILENAME= solution_adj.dat +TABULAR_FORMAT= TECPLOT +CONV_FILENAME= history +RESTART_FILENAME= restart_flow.dat +RESTART_ADJ_FILENAME= restart_adj.dat +VOLUME_FILENAME= flow +VOLUME_ADJ_FILENAME= adjoint +GRAD_OBJFUNC_FILENAME= of_grad.dat +SURFACE_FILENAME= surface_flow +SURFACE_ADJ_FILENAME= surface_adjoint +OUTPUT_WRT_FREQ= 100 +HISTORY_WRT_FREQ_OUTER= 1 +WRT_ZONE_CONV= NO +WRT_ZONE_HIST= YES diff --git a/TestCases/turbomachinery/multi_interface/zone_1.cfg b/TestCases/turbomachinery/multi_interface/zone_1.cfg new file mode 100644 index 00000000000..3d7a019754a --- /dev/null +++ b/TestCases/turbomachinery/multi_interface/zone_1.cfg @@ -0,0 +1,6 @@ +% ----------------------- DYNAMIC MESH DEFINITION -----------------------------% +% +% +% Type of dynamic mesh (NONE, ROTATING_FRAME) +GRID_MOVEMENT= NONE +% diff --git a/TestCases/turbomachinery/multi_interface/zone_2.cfg b/TestCases/turbomachinery/multi_interface/zone_2.cfg new file mode 100644 index 00000000000..3d7a019754a --- /dev/null +++ b/TestCases/turbomachinery/multi_interface/zone_2.cfg @@ -0,0 +1,6 @@ +% ----------------------- DYNAMIC MESH DEFINITION -----------------------------% +% +% +% Type of dynamic mesh (NONE, ROTATING_FRAME) +GRID_MOVEMENT= NONE +% diff --git a/TestCases/turbomachinery/multi_interface/zone_3.cfg b/TestCases/turbomachinery/multi_interface/zone_3.cfg new file mode 100644 index 00000000000..3d7a019754a --- /dev/null +++ b/TestCases/turbomachinery/multi_interface/zone_3.cfg @@ -0,0 +1,6 @@ +% ----------------------- DYNAMIC MESH DEFINITION -----------------------------% +% +% +% Type of dynamic mesh (NONE, ROTATING_FRAME) +GRID_MOVEMENT= NONE +% From 1951aaad100177a2eb8a12565713761131620003 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 11 Sep 2024 17:41:14 +0200 Subject: [PATCH 268/287] Removing some debugging code --- SU2_CFD/src/interfaces/CInterface.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index 04a680cf7b2..b9617c4c16e 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -317,7 +317,6 @@ void CInterface::PreprocessAverage(CGeometry *donor_geometry, CGeometry *target_ SpanLevelDonor[iSpan] = kSpan; SpanValueCoeffTarget[iSpan] = (SpanValuesTarget[iSpan] - SpanValuesDonor[kSpan]) /(SpanValuesDonor[kSpan + 1] - SpanValuesDonor[kSpan]); - cout << SpanValueCoeffTarget[iSpan] << endl; break; default: SU2_MPI::Error("MixingPlane interface option not implemented yet", CURRENT_FUNCTION); From 384686a28f8e51b3f1c013c5b69d10a1ff16114a Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 11 Sep 2024 18:18:43 +0200 Subject: [PATCH 269/287] typo --- TestCases/hybrid_regression.py | 2 +- TestCases/parallel_regression.py | 2 +- TestCases/serial_regression.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index 67cbc339a46..1882a0c260a 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -585,7 +585,7 @@ def main(): # Multiple turbomachinery interface restart multi_interface = TestCase('multi_interface') multi_interface.cfg_dir = "turbomachinery/multi_interface" - multi_interface.cfg_file = "mutl_interface_rst.cfg" + multi_interface.cfg_file = "multi_interface_rst.cfg" multi_interface.test_iter = 5 multi_interface.test_vals = [-8.642669, -8.899958, -9.349881] multi_interface.test_vals_aarch64 = [-8.642669, -8.899958, -9.349881] diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index c73fbd31804..c66cf38752c 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1115,7 +1115,7 @@ def main(): # Multiple turbomachinery interface restart multi_interface = TestCase('multi_interface') multi_interface.cfg_dir = "turbomachinery/multi_interface" - multi_interface.cfg_file = "mutl_interface_rst.cfg" + multi_interface.cfg_file = "multi_interface_rst.cfg" multi_interface.test_iter = 5 multi_interface.test_vals = [-8.642669, -8.899958, -9.349881] multi_interface.test_vals_aarch64 = [-8.642669, -8.899958, -9.349881] diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 870b0a2154b..c576fbf1419 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -892,7 +892,7 @@ def main(): # Multiple turbomachinery interface restart multi_interface = TestCase('multi_interface') multi_interface.cfg_dir = "turbomachinery/multi_interface" - multi_interface.cfg_file = "mutl_interface_rst.cfg" + multi_interface.cfg_file = "multi_interface_rst.cfg" multi_interface.test_iter = 5 multi_interface.test_vals = [-8.642669, -8.899958, -9.349881] multi_interface.test_vals_aarch64 = [-8.642669, -8.899958, -9.349881] From 21770104e1666adcb2e522d7badeb3bef1f0fe4c Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Wed, 11 Sep 2024 18:54:50 +0200 Subject: [PATCH 270/287] rename --- .../{multi_interface.cfg => multi_interface_rst.cfg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename TestCases/turbomachinery/multi_interface/{multi_interface.cfg => multi_interface_rst.cfg} (100%) diff --git a/TestCases/turbomachinery/multi_interface/multi_interface.cfg b/TestCases/turbomachinery/multi_interface/multi_interface_rst.cfg similarity index 100% rename from TestCases/turbomachinery/multi_interface/multi_interface.cfg rename to TestCases/turbomachinery/multi_interface/multi_interface_rst.cfg From f6c3535a9e7a7ffe31bd9fae724cbc6e6103e890 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Thu, 12 Sep 2024 16:28:50 +0200 Subject: [PATCH 271/287] Update reg test values --- TestCases/hybrid_regression.py | 2 +- TestCases/parallel_regression.py | 4 ++-- TestCases/serial_regression.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index 1882a0c260a..f15f182ffea 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -561,7 +561,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.614627, -3.001324, -14.336143, -8.776079, -11.382919, -5.852328, 73273.000000, 73273.000000, 0.019884, 82.491000] + Jones_tc_restart.test_vals = [-10.466650, -2.871708, -19.174914, -13.475478, -11.582397, -6.306168, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index c66cf38752c..4e1a08ba19d 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1083,7 +1083,7 @@ def main(): Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 Aachen_3D_restart.enabled_with_asan = False - Aachen_3D_restart.test_vals = [-9.853215, -8.891480, -9.610418, -8.028579, -7.792957, -4.384186] + Aachen_3D_restart.test_vals = [-9.829186, -8.875103, -9.609509, -8.075211, -7.759491, -4.360714] test_list.append(Aachen_3D_restart) # Jones APU Turbocharger restart @@ -1091,7 +1091,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273, 73273, 0.019884, 82.491] + Jones_tc_restart.test_vals = [-10.466650, -2.871708, -19.174914, -13.475478, -11.582397, -6.306168, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index c576fbf1419..facec67a89f 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -860,7 +860,7 @@ def main(): Aachen_3D_restart.cfg_dir = "turbomachinery/Aachen_turbine" Aachen_3D_restart.cfg_file = "aachen_3D_MP_restart.cfg" Aachen_3D_restart.test_iter = 5 - Aachen_3D_restart.test_vals = [-9.853207, -8.891479, -9.610411, -8.028566, -7.792947, -4.384177] + Aachen_3D_restart.test_vals = [-9.829185, -8.875103, -9.609505, -8.075194, -7.759490, -4.360713] test_list.append(Aachen_3D_restart) # Jones APU Turbocharger restart @@ -868,7 +868,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.614623, -3.001323, -14.336147, -8.776081, -11.382919, -5.852327, 73273.000000, 73273.000000, 0.019884, 82.491000] + Jones_tc_restart.test_vals = [-10.466650, -2.871708, -19.174914, -13.475478, -11.582397, -6.306168, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage From 6b57e55a584637c51a9ad668a53ff7506adbc0c8 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Fri, 13 Sep 2024 16:35:17 +0200 Subject: [PATCH 272/287] Update Github workflows --- .github/workflows/regression.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 2502204b64c..5b0ff1a7a9c 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -209,7 +209,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t develop -c featire_resolve_merge_turbo_interfaces -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: From 2483e103ed8a69b9ba2f492059cbab949d17de0c Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Fri, 13 Sep 2024 16:35:41 +0200 Subject: [PATCH 273/287] Update Github workflows --- .github/workflows/regression.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 5b0ff1a7a9c..742c9bd527c 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -209,7 +209,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c featire_resolve_merge_turbo_interfaces -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t develop -c feature_resolve_merge_turbo_interfaces -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: From 1b4b9d6d1f0e2b8515df4826ce58335df2247ef4 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Fri, 13 Sep 2024 17:15:10 +0200 Subject: [PATCH 274/287] Update reg test values to match gh calcs --- TestCases/hybrid_regression.py | 6 +++--- TestCases/parallel_regression.py | 4 ++-- TestCases/serial_regression.py | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index f15f182ffea..1a854f3c9eb 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -561,7 +561,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-10.466650, -2.871708, -19.174914, -13.475478, -11.582397, -6.306168, 73273, 73273, 0.019884, 82.491] + Jones_tc_restart.test_vals = [-10.467045, -2.871699, -19.172763, -13.469399, -11.582395, -6.306163, 73273.000000, 73273.000000, 0.019884, 82.491000] test_list.append(Jones_tc_restart) # 2D axial stage @@ -587,8 +587,8 @@ def main(): multi_interface.cfg_dir = "turbomachinery/multi_interface" multi_interface.cfg_file = "multi_interface_rst.cfg" multi_interface.test_iter = 5 - multi_interface.test_vals = [-8.642669, -8.899958, -9.349881] - multi_interface.test_vals_aarch64 = [-8.642669, -8.899958, -9.349881] + multi_interface.test_vals = [-8.632374, -8.895124, -9.350417] + multi_interface.test_vals_aarch64 = [-8.632374, -8.895124, -9.350417] test_list.append(multi_interface) ###################################### diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 4e1a08ba19d..dc55ad31503 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1117,8 +1117,8 @@ def main(): multi_interface.cfg_dir = "turbomachinery/multi_interface" multi_interface.cfg_file = "multi_interface_rst.cfg" multi_interface.test_iter = 5 - multi_interface.test_vals = [-8.642669, -8.899958, -9.349881] - multi_interface.test_vals_aarch64 = [-8.642669, -8.899958, -9.349881] + multi_interface.test_vals = [-8.632374, -8.895124, -9.350417] + multi_interface.test_vals_aarch64 = [-8.632374, -8.895124, -9.350417] test_list.append(multi_interface) ###################################### diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index facec67a89f..7f77d69b72e 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -868,7 +868,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-10.466650, -2.871708, -19.174914, -13.475478, -11.582397, -6.306168, 73273, 73273, 0.019884, 82.491] + Jones_tc_restart.test_vals = [-10.466956, -2.871703, -19.232556, -13.525730, -11.582397, -6.306167, 73273.000000, 73273.000000, 0.019884, 82.491000] test_list.append(Jones_tc_restart) # 2D axial stage @@ -894,8 +894,8 @@ def main(): multi_interface.cfg_dir = "turbomachinery/multi_interface" multi_interface.cfg_file = "multi_interface_rst.cfg" multi_interface.test_iter = 5 - multi_interface.test_vals = [-8.642669, -8.899958, -9.349881] - multi_interface.test_vals_aarch64 = [-8.642669, -8.899958, -9.349881] + multi_interface.test_vals = [-8.632374, -8.895124, -9.350417] + multi_interface.test_vals_aarch64 = [-8.632374, -8.895124, -9.350417] test_list.append(multi_interface) From ee45af5fd8c9ebf38d994a4084f64501a3040df0 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Sat, 14 Sep 2024 12:39:24 +0200 Subject: [PATCH 275/287] Asan, Tsan workflows --- .github/workflows/regression.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 742c9bd527c..fd9465bba2d 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -255,7 +255,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2-tsan:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} -a "--tsan" + args: -b ${{github.ref}} -t develop -c feature_resolve_merge_turbo_interfaces -s ${{matrix.testscript}} -a "--tsan" - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2-tsan:240320-1536 with: @@ -300,7 +300,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2-asan:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} -a "--asan" + args: -b ${{github.ref}} -t develop -c feature_resolve_merge_turbo_interfaces -s ${{matrix.testscript}} -a "--asan" - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2-asan:240320-1536 with: From 213a9476f01488dfe1ad11819348a9eab9eb26eb Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sun, 15 Sep 2024 13:48:39 +0100 Subject: [PATCH 276/287] cleanup --- SU2_CFD/src/output/COutput.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/SU2_CFD/src/output/COutput.cpp b/SU2_CFD/src/output/COutput.cpp index 6afd642ec06..991ccb3408f 100644 --- a/SU2_CFD/src/output/COutput.cpp +++ b/SU2_CFD/src/output/COutput.cpp @@ -50,11 +50,13 @@ #include "../../include/output/filewriter/CSU2BinaryFileWriter.hpp" #include "../../include/output/filewriter/CSU2MeshFileWriter.hpp" -volatile sig_atomic_t stop; +namespace { +volatile sig_atomic_t STOP; -void signalHandler( int signum ) { - cout << "Interrupt signal (" << signum << ") received, saving files and exiting.\n"; - stop = 1; +void signalHandler(int signum) { + std::cout << "Interrupt signal (" << signum << ") received, saving files and exiting.\n"; + STOP = 1; +} } COutput::COutput(const CConfig *config, unsigned short ndim, bool fem_output): @@ -179,7 +181,11 @@ COutput::COutput(const CConfig *config, unsigned short ndim, bool fem_output): volumeDataSorter = nullptr; surfaceDataSorter = nullptr; - headerNeeded = false; + headerNeeded = false; + + /*--- Setup a signal handler for SIGTERM. ---*/ + + signal(SIGTERM, signalHandler); } COutput::~COutput() { @@ -243,7 +249,7 @@ void COutput::SetHistoryOutput(CGeometry ****geometry, CSolver *****solver, CCon if (config[ZONE_0]->GetMultizone_Problem()) Iter = OuterIter; - + /*--- Turbomachinery Performance Screen summary output---*/ if (Iter%100 == 0 && rank == MASTER_NODE) { SetTurboPerformance_Output(TurboPerf, config[val_iZone], TimeIter, OuterIter, InnerIter); @@ -881,9 +887,6 @@ void COutput::PrintConvergenceSummary(){ bool COutput::ConvergenceMonitoring(CConfig *config, unsigned long Iteration) { - /*--- Setup a signal handler for SIGTERM.---*/ - signal(SIGTERM, signalHandler); - convergence = true; for (auto iField_Conv = 0ul; iField_Conv < convFields.size(); iField_Conv++) { @@ -960,8 +963,8 @@ bool COutput::ConvergenceMonitoring(CConfig *config, unsigned long Iteration) { if (convFields.empty() || Iteration < config->GetStartConv_Iter()) convergence = false; - /*--- If a SIGTERM signal is sent to one of the processes, we set convergence to true ---*/ - if (stop == 1) convergence = true; + /*--- If a SIGTERM signal is sent to one of the processes, we set convergence to true. ---*/ + if (STOP) convergence = true; /*--- Apply the same convergence criteria to all processors. ---*/ From 8e561ee771c97c9a6601f52e4ae23c5248aff4b7 Mon Sep 17 00:00:00 2001 From: Cristopher Morales <98025159+Cristopher-Morales@users.noreply.github.com> Date: Mon, 16 Sep 2024 22:33:30 +0200 Subject: [PATCH 277/287] Extending CFL adapt to include species transport (#2298) * extending CFL adapt to include species transport * add underrelaxation factor for the last species that is not computed during simulations * removing underrelaxation factor for species transport * adding CFLSpeciesReduction factor --- SU2_CFD/src/solvers/CSolver.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index bfbd4edad58..f8327c868bd 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -1730,6 +1730,7 @@ void CSolver::AdaptCFLNumber(CGeometry **geometry, CSolver *solverFlow = solver_container[iMesh][FLOW_SOL]; CSolver *solverTurb = solver_container[iMesh][TURB_SOL]; + CSolver *solverSpecies = solver_container[iMesh][SPECIES_SOL]; /* Compute the reduction factor for CFLs on the coarse levels. */ @@ -1744,10 +1745,12 @@ void CSolver::AdaptCFLNumber(CGeometry **geometry, solver residual within the specified number of linear iterations. */ su2double linResTurb = 0.0; + su2double linResSpecies = 0.0; if ((iMesh == MESH_0) && solverTurb) linResTurb = solverTurb->GetResLinSolver(); + if ((iMesh == MESH_0) && solverSpecies) linResSpecies = solverSpecies->GetResLinSolver(); - /* Max linear residual between flow and turbulence. */ - const su2double linRes = max(solverFlow->GetResLinSolver(), linResTurb); + /* Max linear residual between flow and turbulence/species transport. */ + const su2double linRes = max(solverFlow->GetResLinSolver(), max(linResTurb, linResSpecies)); /* Tolerance limited to an acceptable value. */ const su2double linTol = max(acceptableLinTol, config->GetLinear_Solver_Error()); @@ -1779,6 +1782,11 @@ void CSolver::AdaptCFLNumber(CGeometry **geometry, New_Func += log10(solverTurb->GetRes_RMS(iVar)); } } + if ((iMesh == MESH_0) && solverSpecies) { + for (unsigned short iVar = 0; iVar < solverSpecies->GetnVar(); iVar++) { + New_Func += log10(solverSpecies->GetRes_RMS(iVar)); + } + } /* Compute the difference in the nonlinear residuals between the current and previous iterations, taking care with very low initial @@ -1822,6 +1830,7 @@ void CSolver::AdaptCFLNumber(CGeometry **geometry, su2double myCFLMin = 1e30, myCFLMax = 0.0, myCFLSum = 0.0; const su2double CFLTurbReduction = config->GetCFLRedCoeff_Turb(); + const su2double CFLSpeciesReduction = config->GetCFLRedCoeff_Species(); SU2_OMP_MASTER if ((iMesh == MESH_0) && fullComms) { @@ -1888,6 +1897,9 @@ void CSolver::AdaptCFLNumber(CGeometry **geometry, if ((iMesh == MESH_0) && solverTurb) { solverTurb->GetNodes()->SetLocalCFL(iPoint, CFL * CFLTurbReduction); } + if ((iMesh == MESH_0) && solverSpecies) { + solverSpecies->GetNodes()->SetLocalCFL(iPoint, CFL * CFLSpeciesReduction); + } /* Store min and max CFL for reporting on the fine grid. */ From 7e3647ed019863e46754e97aa9ad8a025bc8d9ee Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 17 Sep 2024 14:07:41 +0200 Subject: [PATCH 278/287] Changes for comments --- Common/include/option_structure.hpp | 2 +- SU2_CFD/include/interfaces/CInterface.hpp | 11 +---------- SU2_CFD/src/solvers/CEulerSolver.cpp | 2 +- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 7d36d111bda..923f12cab37 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1867,7 +1867,7 @@ static const MapType TurboPerfKind_Map = { }; /*! - * \brief Types onf Turbomachinery interfaces + * \brief Types of Turbomachinery interfaces. */ enum class TURBO_INTERFACE_KIND{ MIXING_PLANE = ENUM_TRANSFER::MIXING_PLANE, diff --git a/SU2_CFD/include/interfaces/CInterface.hpp b/SU2_CFD/include/interfaces/CInterface.hpp index 9c10f8c4dfe..a3ffc31c0fb 100644 --- a/SU2_CFD/include/interfaces/CInterface.hpp +++ b/SU2_CFD/include/interfaces/CInterface.hpp @@ -159,15 +159,6 @@ class CInterface { const CConfig *target_config, unsigned long Marker_Target, unsigned long Vertex_Target, unsigned long Point_Target) = 0; - // /*! - // * \brief A virtual member. - // * \param[in] target_solution - Solution from the target mesh. - // * \param[in] target_solution - Solution from the target mesh. - // * \param[in] donor_zone - Index of the donorZone. - // */ - // inline virtual void SetAverageValues(CSolver *donor_solution, CSolver *target_solution, - // unsigned short donorZone) { } - /*! * \brief A virtual member. * \param[in] donor_geometry - Geometry of the target mesh. @@ -216,7 +207,7 @@ class CInterface { void AllgatherAverage(CSolver *donor_solution, CSolver *target_solution, CGeometry *donor_geometry, CGeometry *target_geometry, const CConfig *donor_config, const CConfig *target_config, unsigned short iMarkerInt); - + /*! * \brief Interpolate data and scatter it into different processors, for matching meshes. * \param[in] donor_solution - Solution from the donor mesh. diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 3f3cd6e384b..f2a9a43b7e8 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -8975,7 +8975,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC TotalMassPressure += Area*(Density*TurboVelocity[0] )*Pressure; TotalMassDensity += Area*(Density*TurboVelocity[0] )*Density; - + for (auto iDim = 0u; iDim < nDim; iDim++) { TotalVelocity[iDim] += Velocity[iDim]; TotalAreaVelocity[iDim] += Area*Velocity[iDim]; From 1560c6b70d072075d1ba52e4aa7762bc13c3175b Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Mon, 23 Sep 2024 17:23:43 +0200 Subject: [PATCH 279/287] Fix heap buffer overflow error --- Common/include/CConfig.hpp | 22 ++++++++++++++++++++++ Common/src/CConfig.cpp | 20 ++++++++++++++++++++ Common/src/geometry/CPhysicalGeometry.cpp | 3 +++ SU2_CFD/src/solvers/CEulerSolver.cpp | 2 +- 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 51d5907bd8c..4c4c50fe0ac 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -749,6 +749,7 @@ class CConfig { *Marker_All_Turbomachinery, /*!< \brief Global index for Turbomachinery markers using the grid information. */ *Marker_All_TurbomachineryFlag, /*!< \brief Global index for Turbomachinery markers flag using the grid information. */ *Marker_All_MixingPlaneInterface, /*!< \brief Global index for MixingPlane interface markers using the grid information. */ + *Marker_All_Giles, /*!< \brief Global index for Giles markers using the grid information. */ *Marker_All_DV, /*!< \brief Global index for design variable markers using the grid information. */ *Marker_All_Moving, /*!< \brief Global index for moving surfaces using the grid information. */ *Marker_All_Deform_Mesh, /*!< \brief Global index for deformable markers at the boundary. */ @@ -766,6 +767,7 @@ class CConfig { *Marker_CfgFile_Turbomachinery, /*!< \brief Global index for Turbomachinery using the config information. */ *Marker_CfgFile_TurbomachineryFlag, /*!< \brief Global index for Turbomachinery flag using the config information. */ *Marker_CfgFile_MixingPlaneInterface, /*!< \brief Global index for MixingPlane interface using the config information. */ + *Marker_CfgFile_Giles, /*!< \brief Global index for Giles markers flag using the config information. */ *Marker_CfgFile_Moving, /*!< \brief Global index for moving surfaces using the config information. */ *Marker_CfgFile_Deform_Mesh, /*!< \brief Global index for deformable markers at the boundary. */ *Marker_CfgFile_Deform_Mesh_Sym_Plane, /*!< \brief Global index for markers with symmetric deformations. */ @@ -3516,6 +3518,13 @@ class CConfig { */ void SetMarker_All_MixingPlaneInterface(unsigned short val_marker, unsigned short val_mixpla_interface) { Marker_All_MixingPlaneInterface[val_marker] = val_mixpla_interface; } + /*! + * \brief Set if a marker val_marker is part of the Giles boundary (read from the config file). + * \param[in] val_marker - Index of the marker in which we are interested. + * \param[in] val_giles - 0 if not part of the Giles boundary or greater than 1 if it is part. + */ + void SetMarker_All_Giles(unsigned short val_marker, unsigned short val_giles) { Marker_All_Giles[val_marker] = val_giles; } + /*! * \brief Set if a marker val_marker is going to be affected by design variables val_moving * (read from the config file). @@ -3662,6 +3671,13 @@ class CConfig { */ unsigned short GetMarker_All_TurbomachineryFlag(unsigned short val_marker) const { return Marker_All_TurbomachineryFlag[val_marker]; } +/*! + * \brief Get the Giles boundary information for a marker val_marker. + * \param[in] val_marker value of the marker on the grid. + * \return 0 if is not part of the MixingPlane Interface and greater than 1 if it is part. + */ + unsigned short GetMarker_All_Giles(unsigned short val_marker) const { return Marker_All_Giles[val_marker]; } + /*! * \brief Get the number of FSI interface markers val_marker. * \param[in] void. @@ -6412,6 +6428,12 @@ class CConfig { */ unsigned short GetMarker_CfgFile_MixingPlaneInterface(const string& val_marker) const; + /*! + * \brief Get the Giles boundary information from the config definition for the marker val_marker. + * \return Plotting information of the boundary in the config information for the marker val_marker. + */ + unsigned short GetMarker_CfgFile_Giles(const string& val_marker) const; + /*! * \brief Get the DV information from the config definition for the marker val_marker. * \return DV information of the boundary in the config information for the marker val_marker. diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index a71cc0a0ded..0081879521a 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -5664,6 +5664,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { Marker_All_Turbomachinery = new unsigned short[nMarker_All] (); // Store whether the boundary is in needed for Turbomachinery computations. Marker_All_TurbomachineryFlag = new unsigned short[nMarker_All] (); // Store whether the boundary has a flag for Turbomachinery computations. Marker_All_MixingPlaneInterface = new unsigned short[nMarker_All] (); // Store whether the boundary has a in the MixingPlane interface. + Marker_All_Giles = new unsigned short[nMarker_All] (); // Store whether the boundary has is a Giles boundary. Marker_All_SobolevBC = new unsigned short[nMarker_All] (); // Store wether the boundary should apply to the gradient smoothing. for (iMarker_All = 0; iMarker_All < nMarker_All; iMarker_All++) { @@ -5689,6 +5690,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { Marker_CfgFile_Turbomachinery = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_TurbomachineryFlag = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_MixingPlaneInterface = new unsigned short[nMarker_CfgFile] (); + Marker_CfgFile_Giles = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_PyCustom = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_SobolevBC = new unsigned short[nMarker_CfgFile] (); @@ -6035,6 +6037,17 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { } } + /*--- Idenftification fo Giles Markers ---*/ + // This is seperate from MP and Turbomachinery Markers as all mixing plane markers are Giles, + // but not all Giles markers are mixing plane + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { + Marker_CfgFile_Giles[iMarker_CfgFile] = NO; + for (iMarker_Giles = 0; iMarker_Giles < nMarker_Giles; iMarker_Giles++) { + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_Giles[iMarker_Giles]) + Marker_CfgFile_Giles[iMarker_CfgFile] = YES; + } + } + /*--- Identification of MixingPlane interface markers ---*/ for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { @@ -7970,6 +7983,13 @@ unsigned short CConfig::GetMarker_CfgFile_MixingPlaneInterface(const string& val return Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile]; } +unsigned short CConfig::GetMarker_CfgFile_Giles(const string& val_marker) const { + unsigned short iMarker_CfgFile; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == val_marker) break; + return Marker_CfgFile_Giles[iMarker_CfgFile]; +} + unsigned short CConfig::GetMarker_CfgFile_DV(const string& val_marker) const { unsigned short iMarker_CfgFile; for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) diff --git a/Common/src/geometry/CPhysicalGeometry.cpp b/Common/src/geometry/CPhysicalGeometry.cpp index a069424c666..b9b0a0f36cb 100644 --- a/Common/src/geometry/CPhysicalGeometry.cpp +++ b/Common/src/geometry/CPhysicalGeometry.cpp @@ -3370,6 +3370,7 @@ void CPhysicalGeometry::SetBoundaries(CConfig* config) { config->SetMarker_All_PerBound(iMarker, config->GetMarker_CfgFile_PerBound(Marker_Tag)); config->SetMarker_All_Turbomachinery(iMarker, config->GetMarker_CfgFile_Turbomachinery(Marker_Tag)); config->SetMarker_All_TurbomachineryFlag(iMarker, config->GetMarker_CfgFile_TurbomachineryFlag(Marker_Tag)); + config->SetMarker_All_Giles(iMarker, config->GetMarker_CfgFile_Giles(Marker_Tag)); config->SetMarker_All_MixingPlaneInterface(iMarker, config->GetMarker_CfgFile_MixingPlaneInterface(Marker_Tag)); config->SetMarker_All_SobolevBC(iMarker, config->GetMarker_CfgFile_SobolevBC(Marker_Tag)); @@ -3394,6 +3395,7 @@ void CPhysicalGeometry::SetBoundaries(CConfig* config) { config->SetMarker_All_PerBound(iMarker, NO); config->SetMarker_All_Turbomachinery(iMarker, NO); config->SetMarker_All_TurbomachineryFlag(iMarker, NO); + config->SetMarker_All_Giles(iMarker, NO); config->SetMarker_All_MixingPlaneInterface(iMarker, NO); config->SetMarker_All_SobolevBC(iMarker, NO); @@ -3764,6 +3766,7 @@ void CPhysicalGeometry::LoadUnpartitionedSurfaceElements(CConfig* config, CMeshR config->SetMarker_All_SendRecv(iMarker, NONE); config->SetMarker_All_Turbomachinery(iMarker, config->GetMarker_CfgFile_Turbomachinery(Marker_Tag)); config->SetMarker_All_TurbomachineryFlag(iMarker, config->GetMarker_CfgFile_TurbomachineryFlag(Marker_Tag)); + config->SetMarker_All_Giles(iMarker, config->GetMarker_CfgFile_Giles(Marker_Tag)); config->SetMarker_All_MixingPlaneInterface(iMarker, config->GetMarker_CfgFile_MixingPlaneInterface(Marker_Tag)); config->SetMarker_All_SobolevBC(iMarker, config->GetMarker_CfgFile_SobolevBC(Marker_Tag)); } diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index f2a9a43b7e8..286a84e21c7 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -9269,7 +9269,7 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC if (config->GetMarker_All_Turbomachinery(iMarker) == iMarkerTP){ if (config->GetMarker_All_TurbomachineryFlag(iMarker) == marker_flag){ auto Marker_Tag = config->GetMarker_All_TagBound(iMarker); - if(config->GetBoolGiles() || config->GetBoolRiemann()){ + if(config->GetMarker_All_Giles(iMarker) || config->GetBoolRiemann()){ // May have to implement something similar for Riemann? if(config->GetBoolRiemann()){ if(config->GetKind_Data_Riemann(Marker_Tag) == RADIAL_EQUILIBRIUM){ RadialEquilibriumPressure[iMarker][nSpanWiseSections/2] = config->GetRiemann_Var1(Marker_Tag)/config->GetPressure_Ref(); From a0d961b4fd6f23822418bf7312d9bd070a8e9d48 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Mon, 23 Sep 2024 17:25:43 +0200 Subject: [PATCH 280/287] Clearing resources --- Common/src/CConfig.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 0081879521a..d2002f53d5c 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -8177,6 +8177,9 @@ CConfig::~CConfig() { delete[] Marker_CfgFile_TurbomachineryFlag; delete[] Marker_All_TurbomachineryFlag; + delete[] Marker_CfgFile_Giles; + delete[] Marker_All_Giles; + delete[] Marker_CfgFile_MixingPlaneInterface; delete[] Marker_All_MixingPlaneInterface; From c85ad361f8241cae4be62800ece89149fcc0b7ed Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Mon, 23 Sep 2024 17:26:51 +0200 Subject: [PATCH 281/287] formatting --- Common/src/CConfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index d2002f53d5c..c4eae90905f 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -5690,7 +5690,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { Marker_CfgFile_Turbomachinery = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_TurbomachineryFlag = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_MixingPlaneInterface = new unsigned short[nMarker_CfgFile] (); - Marker_CfgFile_Giles = new unsigned short[nMarker_CfgFile] (); + Marker_CfgFile_Giles = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_PyCustom = new unsigned short[nMarker_CfgFile] (); Marker_CfgFile_SobolevBC = new unsigned short[nMarker_CfgFile] (); From 7e2f13a9a590d75aefed60cd33636be7c62b2e13 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Mon, 23 Sep 2024 17:49:44 +0200 Subject: [PATCH 282/287] Update cfg file option for consistency --- .../turbomachinery/multi_interface/multi_interface_rst.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/turbomachinery/multi_interface/multi_interface_rst.cfg b/TestCases/turbomachinery/multi_interface/multi_interface_rst.cfg index d2f56da2fc4..a52301e7153 100644 --- a/TestCases/turbomachinery/multi_interface/multi_interface_rst.cfg +++ b/TestCases/turbomachinery/multi_interface/multi_interface_rst.cfg @@ -134,7 +134,7 @@ OUTPUT_FILES= RESTART MESH_FILENAME= three_zone_quarter_cyl.su2 MESH_FORMAT= SU2 MESH_OUT_FILENAME= mesh_out.su2 -SOLUTION_FILENAME= restart_flow.dat +SOLUTION_FILENAME= solution_flow.dat SOLUTION_ADJ_FILENAME= solution_adj.dat TABULAR_FORMAT= TECPLOT CONV_FILENAME= history From 1ea89f011c6af61c5f2d52c44f4bc4ad88ef6df4 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Mon, 23 Sep 2024 19:31:05 +0200 Subject: [PATCH 283/287] Update APU reg test --- TestCases/hybrid_regression.py | 2 +- TestCases/parallel_regression.py | 2 +- TestCases/serial_regression.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index 1a854f3c9eb..af200ef7603 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -561,7 +561,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-10.467045, -2.871699, -19.172763, -13.469399, -11.582395, -6.306163, 73273.000000, 73273.000000, 0.019884, 82.491000] + Jones_tc_restart.test_vals = [-10.467026, -2.871699, -19.214627, -13.508254, -11.582396, -6.306163, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index dc55ad31503..4047b6b39ba 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -1091,7 +1091,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-10.466650, -2.871708, -19.174914, -13.475478, -11.582397, -6.306168, 73273, 73273, 0.019884, 82.491] + Jones_tc_restart.test_vals = [-10.467612, -2.871708, -19.345651, -13.625871, -11.582397, -6.306168, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 7f77d69b72e..08b45e3b3ff 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -868,7 +868,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-10.466956, -2.871703, -19.232556, -13.525730, -11.582397, -6.306167, 73273.000000, 73273.000000, 0.019884, 82.491000] + Jones_tc_restart.test_vals = [-10.466644, -2.871703, -19.193464, -13.487820, -11.582397, -6.306167, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage From d0e98e132257d7470c31fcf8a87e94b972081669 Mon Sep 17 00:00:00 2001 From: Cristopher Morales <98025159+Cristopher-Morales@users.noreply.github.com> Date: Mon, 23 Sep 2024 19:50:23 +0200 Subject: [PATCH 284/287] Removing unnecessary variables for CFluidScalar constructor (#2357) * cleaning constructor fluid mixture * formatting --- SU2_CFD/include/fluid/CFluidScalar.hpp | 3 +-- SU2_CFD/src/fluid/CFluidScalar.cpp | 5 +---- SU2_CFD/src/solvers/CIncEulerSolver.cpp | 4 ++-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/SU2_CFD/include/fluid/CFluidScalar.hpp b/SU2_CFD/include/fluid/CFluidScalar.hpp index 9f5c9108c51..e3295d99b6d 100644 --- a/SU2_CFD/include/fluid/CFluidScalar.hpp +++ b/SU2_CFD/include/fluid/CFluidScalar.hpp @@ -41,7 +41,6 @@ class CFluidScalar final : public CFluidModel { private: const int n_species_mixture; /*!< \brief Number of species in mixture. */ su2double Gas_Constant; /*!< \brief Specific gas constant. */ - const su2double Gamma; /*!< \brief Ratio of specific heats of the gas. */ const su2double Pressure_Thermodynamic; /*!< \brief Constant pressure thermodynamic. */ const su2double GasConstant_Ref; /*!< \brief Gas constant reference needed for Nondimensional problems. */ const su2double Prandtl_Number; /*!< \brief Prandlt number.*/ @@ -106,7 +105,7 @@ class CFluidScalar final : public CFluidModel { /*! * \brief Constructor of the class. */ - CFluidScalar(su2double val_Cp, su2double val_gas_constant, su2double val_operating_pressure, const CConfig* config); + CFluidScalar(su2double val_operating_pressure, const CConfig* config); /*! * \brief Set viscosity model. diff --git a/SU2_CFD/src/fluid/CFluidScalar.cpp b/SU2_CFD/src/fluid/CFluidScalar.cpp index 991e29bd562..5e3a2e2f998 100644 --- a/SU2_CFD/src/fluid/CFluidScalar.cpp +++ b/SU2_CFD/src/fluid/CFluidScalar.cpp @@ -41,12 +41,9 @@ #include "../../include/fluid/CPolynomialViscosity.hpp" #include "../../include/fluid/CSutherland.hpp" -CFluidScalar::CFluidScalar(su2double val_Cp, su2double val_gas_constant, su2double value_pressure_operating, - const CConfig* config) +CFluidScalar::CFluidScalar(su2double value_pressure_operating, const CConfig* config) : CFluidModel(), n_species_mixture(config->GetnSpecies() + 1), - Gas_Constant(val_gas_constant), - Gamma(config->GetGamma()), Pressure_Thermodynamic(value_pressure_operating), GasConstant_Ref(config->GetGas_Constant_Ref()), Prandtl_Number(config->GetPrandtl_Turb()), diff --git a/SU2_CFD/src/solvers/CIncEulerSolver.cpp b/SU2_CFD/src/solvers/CIncEulerSolver.cpp index 5b81394bd9a..215445d2c5e 100644 --- a/SU2_CFD/src/solvers/CIncEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CIncEulerSolver.cpp @@ -325,7 +325,7 @@ void CIncEulerSolver::SetNondimensionalization(CConfig *config, unsigned short i config->SetGas_Constant(UNIVERSAL_GAS_CONSTANT / (config->GetMolecular_Weight() / 1000.0)); Pressure_Thermodynamic = config->GetPressure_Thermodynamic(); - auxFluidModel = new CFluidScalar(config->GetSpecific_Heat_Cp(), config->GetGas_Constant(), Pressure_Thermodynamic, config); + auxFluidModel = new CFluidScalar(Pressure_Thermodynamic, config); auxFluidModel->SetTDState_T(Temperature_FreeStream, config->GetSpecies_Init()); break; @@ -482,7 +482,7 @@ void CIncEulerSolver::SetNondimensionalization(CConfig *config, unsigned short i break; case FLUID_MIXTURE: - fluidModel = new CFluidScalar(Specific_Heat_CpND, Gas_ConstantND, Pressure_ThermodynamicND, config); + fluidModel = new CFluidScalar(Pressure_ThermodynamicND, config); fluidModel->SetTDState_T(Temperature_FreeStreamND, config->GetSpecies_Init()); break; From 0e6bb4a04cdb144ca22d27c2bef9ffab0e38fbb5 Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 24 Sep 2024 12:55:23 +0200 Subject: [PATCH 285/287] Update regression workflow --- .github/workflows/regression.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index fd9465bba2d..2502204b64c 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -209,7 +209,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c feature_resolve_merge_turbo_interfaces -s ${{matrix.testscript}} + args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536 with: @@ -255,7 +255,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2-tsan:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c feature_resolve_merge_turbo_interfaces -s ${{matrix.testscript}} -a "--tsan" + args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} -a "--tsan" - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2-tsan:240320-1536 with: @@ -300,7 +300,7 @@ jobs: uses: docker://ghcr.io/su2code/su2/test-su2-asan:240320-1536 with: # -t -c - args: -b ${{github.ref}} -t develop -c feature_resolve_merge_turbo_interfaces -s ${{matrix.testscript}} -a "--asan" + args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} -a "--asan" - name: Cleanup uses: docker://ghcr.io/su2code/su2/test-su2-asan:240320-1536 with: From f34b5bff58e92152833017cc07db939b13758d6c Mon Sep 17 00:00:00 2001 From: Josh Kelly Date: Tue, 24 Sep 2024 15:58:52 +0200 Subject: [PATCH 286/287] Changes for comments --- Common/include/CConfig.hpp | 5 ----- Common/src/CConfig.cpp | 8 ++++---- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 4c4c50fe0ac..ff713cc20d6 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -5360,11 +5360,6 @@ class CConfig { */ TURBO_INTERFACE_KIND GetKind_TurboInterface(unsigned short interfaceIndex) const { return Kind_TurboInterface[interfaceIndex]; } - /*! - * \brief Sets marker kind for an interface marker in turbomachinery problem - */ - void SetKind_TurboInterface(unsigned short interfaceIndex, TURBO_INTERFACE_KIND TurboInterfaceKind) {Kind_TurboInterface[interfaceIndex] = TurboInterfaceKind ;} - /*! * \brief get outlet bounds name for Turbomachinery performance calculation. * \return name of the bound. diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index c4eae90905f..276c66ebf60 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -6072,19 +6072,19 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { if (Marker_MixingPlaneInterface != nullptr){ // Necessary in cases where no mixing plane interfaces are defined if (Marker_CfgFile_MixingPlaneInterface[iMarker_CfgFile] != 0) { //Is a mixing plane /*--- Find which list position this marker is in turbomachinery markers ---*/ - const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); + const auto* target = std::find(Marker_Turbomachinery, &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; /*--- Assert that we find the marker within the turbomachienry markers ---*/ assert(target != &Marker_Turbomachinery[nMarker_Turbomachinery*2-1]); /*--- Assign the correct interface ---*/ - SetKind_TurboInterface(target_index - 1, TURBO_INTERFACE_KIND::MIXING_PLANE); // Need to subtract 1 from index as to not consider the inlet an interface + Kind_TurboInterface[target_index-1] = TURBO_INTERFACE_KIND::MIXING_PLANE; // Need to subtract 1 from index as to not consider the inlet an interface } } if (Marker_Fluid_InterfaceBound != nullptr){ // No fluid interfaces are defined in the config file (nullptr if no interfaces defined) if (Marker_CfgFile_KindBC[iMarker_CfgFile] == BC_TYPE::FLUID_INTERFACE) { // iMarker_CfgFile is a fluid interface - const auto* target = std::find(&Marker_Turbomachinery[0], &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); + const auto* target = std::find(Marker_Turbomachinery, &Marker_Turbomachinery[nMarker_Turbomachinery*2-1], Marker_CfgFile_TagBound[iMarker_CfgFile]); const auto target_index = target - Marker_Turbomachinery; - SetKind_TurboInterface(target_index-1, TURBO_INTERFACE_KIND::FROZEN_ROTOR); + Kind_TurboInterface[target_index-1] = TURBO_INTERFACE_KIND::FROZEN_ROTOR; } } } From dce3cc32b389ca813fa679996cab1154f164ef10 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Sat, 28 Sep 2024 14:07:40 +0000 Subject: [PATCH 287/287] Changing version number to 8.1.0 --- Common/include/CConfig.hpp | 2 +- Common/include/adt/CADTBaseClass.hpp | 2 +- Common/include/adt/CADTComparePointClass.hpp | 2 +- Common/include/adt/CADTElemClass.hpp | 4 ++-- Common/include/adt/CADTNodeClass.hpp | 2 +- Common/include/adt/CADTPointsOnlyClass.hpp | 2 +- Common/include/adt/CBBoxTargetClass.hpp | 4 ++-- Common/include/basic_types/ad_structure.hpp | 2 +- .../basic_types/datatype_structure.hpp | 2 +- Common/include/code_config.hpp | 2 +- Common/include/containers/C2DContainer.hpp | 2 +- .../containers/CFastFindAndEraseQueue.hpp | 2 +- Common/include/containers/CFileReaderLUT.hpp | 2 +- Common/include/containers/CLookUpTable.hpp | 2 +- .../containers/CPyWrapperMatrixView.hpp | 2 +- Common/include/containers/CTrapezoidalMap.hpp | 4 ++-- Common/include/containers/CVertexMap.hpp | 2 +- .../containers/container_decorators.hpp | 2 +- Common/include/fem/fem_cgns_elements.hpp | 2 +- .../fem/fem_gauss_jacobi_quadrature.hpp | 4 ++-- Common/include/fem/fem_geometry_structure.hpp | 24 +++++++++---------- Common/include/fem/fem_standard_element.hpp | 10 ++++---- .../fem/geometry_structure_fem_part.hpp | 2 +- Common/include/geometry/CDummyGeometry.hpp | 2 +- Common/include/geometry/CGeometry.hpp | 2 +- .../include/geometry/CMultiGridGeometry.hpp | 2 +- Common/include/geometry/CMultiGridQueue.hpp | 2 +- Common/include/geometry/CPhysicalGeometry.hpp | 2 +- .../include/geometry/dual_grid/CDualGrid.hpp | 2 +- Common/include/geometry/dual_grid/CEdge.hpp | 2 +- Common/include/geometry/dual_grid/CPoint.hpp | 2 +- .../geometry/dual_grid/CTurboVertex.hpp | 2 +- Common/include/geometry/dual_grid/CVertex.hpp | 2 +- Common/include/geometry/elements/CElement.hpp | 4 ++-- .../geometry/elements/CElementProperty.hpp | 6 ++--- .../geometry/elements/CGaussVariable.hpp | 4 ++-- .../geometry/meshreader/CBoxMeshReaderFVM.hpp | 2 +- .../meshreader/CCGNSMeshReaderFVM.hpp | 2 +- .../geometry/meshreader/CMeshReaderFVM.hpp | 2 +- .../meshreader/CRectangularMeshReaderFVM.hpp | 2 +- .../meshreader/CSU2ASCIIMeshReaderFVM.hpp | 2 +- .../geometry/primal_grid/CHexahedron.hpp | 2 +- Common/include/geometry/primal_grid/CLine.hpp | 2 +- .../geometry/primal_grid/CPrimalGrid.hpp | 2 +- .../primal_grid/CPrimalGridBoundFEM.hpp | 4 ++-- .../geometry/primal_grid/CPrimalGridFEM.hpp | 4 ++-- .../include/geometry/primal_grid/CPrism.hpp | 2 +- .../include/geometry/primal_grid/CPyramid.hpp | 2 +- .../geometry/primal_grid/CQuadrilateral.hpp | 2 +- .../geometry/primal_grid/CTetrahedron.hpp | 2 +- .../geometry/primal_grid/CTriangle.hpp | 2 +- .../geometry/primal_grid/CVertexMPI.hpp | 2 +- Common/include/graph_coloring_structure.hpp | 4 ++-- .../grid_movement/CBSplineBlending.hpp | 2 +- .../include/grid_movement/CBezierBlending.hpp | 2 +- .../grid_movement/CFreeFormBlending.hpp | 2 +- .../include/grid_movement/CFreeFormDefBox.hpp | 2 +- .../include/grid_movement/CGridMovement.hpp | 2 +- .../grid_movement/CSurfaceMovement.hpp | 2 +- .../grid_movement/CVolumetricMovement.hpp | 2 +- .../interface_interpolation/CInterpolator.hpp | 2 +- .../CInterpolatorFactory.hpp | 2 +- .../CIsoparametric.hpp | 2 +- .../interface_interpolation/CMirror.hpp | 2 +- .../CNearestNeighbor.hpp | 2 +- .../CRadialBasisFunction.hpp | 2 +- .../interface_interpolation/CSlidingMesh.hpp | 2 +- .../linear_algebra/CMatrixVectorProduct.hpp | 2 +- .../include/linear_algebra/CPastixWrapper.hpp | 2 +- .../linear_algebra/CPreconditioner.hpp | 2 +- Common/include/linear_algebra/CSysMatrix.hpp | 2 +- Common/include/linear_algebra/CSysMatrix.inl | 2 +- Common/include/linear_algebra/CSysSolve.hpp | 2 +- Common/include/linear_algebra/CSysSolve_b.hpp | 2 +- Common/include/linear_algebra/CSysVector.hpp | 2 +- .../include/linear_algebra/blas_structure.hpp | 4 ++-- .../linear_algebra/vector_expressions.hpp | 2 +- Common/include/option_structure.hpp | 2 +- Common/include/option_structure.inl | 2 +- .../include/parallelization/mpi_structure.cpp | 2 +- .../include/parallelization/mpi_structure.hpp | 2 +- .../include/parallelization/omp_structure.cpp | 2 +- .../include/parallelization/omp_structure.hpp | 2 +- .../parallelization/special_vectorization.hpp | 2 +- .../include/parallelization/vectorization.hpp | 2 +- Common/include/toolboxes/C1DInterpolation.hpp | 2 +- .../include/toolboxes/CLinearPartitioner.hpp | 2 +- .../toolboxes/CQuasiNewtonInvLeastSquares.hpp | 2 +- Common/include/toolboxes/CSquareMatrixCM.hpp | 2 +- Common/include/toolboxes/CSymmetricMatrix.hpp | 2 +- .../include/toolboxes/MMS/CIncTGVSolution.hpp | 2 +- .../toolboxes/MMS/CInviscidVortexSolution.hpp | 2 +- .../toolboxes/MMS/CMMSIncEulerSolution.hpp | 2 +- .../toolboxes/MMS/CMMSIncNSSolution.hpp | 2 +- .../MMS/CMMSNSTwoHalfCirclesSolution.hpp | 2 +- .../MMS/CMMSNSTwoHalfSpheresSolution.hpp | 2 +- .../toolboxes/MMS/CMMSNSUnitQuadSolution.hpp | 2 +- .../MMS/CMMSNSUnitQuadSolutionWallBC.hpp | 2 +- .../toolboxes/MMS/CNSUnitQuadSolution.hpp | 2 +- .../toolboxes/MMS/CRinglebSolution.hpp | 2 +- Common/include/toolboxes/MMS/CTGVSolution.hpp | 2 +- .../toolboxes/MMS/CUserDefinedSolution.hpp | 2 +- .../toolboxes/MMS/CVerificationSolution.hpp | 2 +- .../include/toolboxes/allocation_toolbox.hpp | 2 +- Common/include/toolboxes/geometry_toolbox.hpp | 2 +- Common/include/toolboxes/graph_toolbox.hpp | 2 +- Common/include/toolboxes/ndflattener.hpp | 2 +- Common/include/toolboxes/printing_toolbox.hpp | 2 +- Common/include/wall_model.hpp | 4 ++-- Common/src/CConfig.cpp | 4 ++-- Common/src/adt/CADTBaseClass.cpp | 2 +- Common/src/adt/CADTElemClass.cpp | 2 +- Common/src/adt/CADTPointsOnlyClass.cpp | 2 +- Common/src/basic_types/ad_structure.cpp | 2 +- Common/src/containers/CFileReaderLUT.cpp | 2 +- Common/src/containers/CLookUpTable.cpp | 2 +- Common/src/containers/CTrapezoidalMap.cpp | 2 +- Common/src/fem/fem_cgns_elements.cpp | 2 +- .../src/fem/fem_gauss_jacobi_quadrature.cpp | 2 +- Common/src/fem/fem_geometry_structure.cpp | 2 +- Common/src/fem/fem_integration_rules.cpp | 2 +- Common/src/fem/fem_standard_element.cpp | 2 +- Common/src/fem/fem_wall_distance.cpp | 2 +- Common/src/fem/fem_work_estimate_metis.cpp | 2 +- .../src/fem/geometry_structure_fem_part.cpp | 2 +- Common/src/geometry/CDummyGeometry.cpp | 2 +- Common/src/geometry/CGeometry.cpp | 2 +- Common/src/geometry/CMultiGridGeometry.cpp | 2 +- Common/src/geometry/CMultiGridQueue.cpp | 2 +- Common/src/geometry/CPhysicalGeometry.cpp | 2 +- Common/src/geometry/dual_grid/CDualGrid.cpp | 2 +- Common/src/geometry/dual_grid/CEdge.cpp | 2 +- Common/src/geometry/dual_grid/CPoint.cpp | 2 +- .../src/geometry/dual_grid/CTurboVertex.cpp | 2 +- Common/src/geometry/dual_grid/CVertex.cpp | 2 +- Common/src/geometry/elements/CElement.cpp | 2 +- Common/src/geometry/elements/CHEXA8.cpp | 2 +- Common/src/geometry/elements/CLINE.cpp | 2 +- Common/src/geometry/elements/CPRISM6.cpp | 2 +- Common/src/geometry/elements/CPYRAM5.cpp | 2 +- Common/src/geometry/elements/CPYRAM6.cpp | 2 +- Common/src/geometry/elements/CQUAD4.cpp | 2 +- Common/src/geometry/elements/CTETRA1.cpp | 2 +- Common/src/geometry/elements/CTETRA4.cpp | 2 +- Common/src/geometry/elements/CTRIA1.cpp | 2 +- Common/src/geometry/elements/CTRIA3.cpp | 2 +- .../geometry/meshreader/CBoxMeshReaderFVM.cpp | 2 +- .../meshreader/CCGNSMeshReaderFVM.cpp | 2 +- .../geometry/meshreader/CMeshReaderFVM.cpp | 2 +- .../meshreader/CRectangularMeshReaderFVM.cpp | 2 +- .../meshreader/CSU2ASCIIMeshReaderFVM.cpp | 2 +- .../src/geometry/primal_grid/CHexahedron.cpp | 2 +- Common/src/geometry/primal_grid/CLine.cpp | 2 +- .../src/geometry/primal_grid/CPrimalGrid.cpp | 2 +- .../primal_grid/CPrimalGridBoundFEM.cpp | 2 +- .../geometry/primal_grid/CPrimalGridFEM.cpp | 2 +- Common/src/geometry/primal_grid/CPrism.cpp | 2 +- Common/src/geometry/primal_grid/CPyramid.cpp | 2 +- .../geometry/primal_grid/CQuadrilateral.cpp | 2 +- .../src/geometry/primal_grid/CTetrahedron.cpp | 2 +- Common/src/geometry/primal_grid/CTriangle.cpp | 2 +- .../src/geometry/primal_grid/CVertexMPI.cpp | 2 +- Common/src/graph_coloring_structure.cpp | 2 +- Common/src/grid_movement/CBSplineBlending.cpp | 2 +- Common/src/grid_movement/CBezierBlending.cpp | 2 +- .../src/grid_movement/CFreeFormBlending.cpp | 2 +- Common/src/grid_movement/CFreeFormDefBox.cpp | 2 +- Common/src/grid_movement/CGridMovement.cpp | 2 +- Common/src/grid_movement/CSurfaceMovement.cpp | 2 +- .../src/grid_movement/CVolumetricMovement.cpp | 2 +- .../interface_interpolation/CInterpolator.cpp | 2 +- .../CInterpolatorFactory.cpp | 2 +- .../CIsoparametric.cpp | 2 +- .../src/interface_interpolation/CMirror.cpp | 2 +- .../CNearestNeighbor.cpp | 2 +- .../CRadialBasisFunction.cpp | 2 +- .../interface_interpolation/CSlidingMesh.cpp | 2 +- Common/src/linear_algebra/CPastixWrapper.cpp | 2 +- Common/src/linear_algebra/CSysMatrix.cpp | 2 +- Common/src/linear_algebra/CSysSolve.cpp | 2 +- Common/src/linear_algebra/CSysSolve_b.cpp | 2 +- Common/src/linear_algebra/CSysVector.cpp | 2 +- Common/src/linear_algebra/blas_structure.cpp | 2 +- Common/src/toolboxes/C1DInterpolation.cpp | 2 +- Common/src/toolboxes/CLinearPartitioner.cpp | 2 +- Common/src/toolboxes/CSquareMatrixCM.cpp | 2 +- Common/src/toolboxes/CSymmetricMatrix.cpp | 2 +- Common/src/toolboxes/MMS/CIncTGVSolution.cpp | 2 +- .../toolboxes/MMS/CInviscidVortexSolution.cpp | 2 +- .../toolboxes/MMS/CMMSIncEulerSolution.cpp | 2 +- .../src/toolboxes/MMS/CMMSIncNSSolution.cpp | 2 +- .../MMS/CMMSNSTwoHalfCirclesSolution.cpp | 2 +- .../MMS/CMMSNSTwoHalfSpheresSolution.cpp | 2 +- .../toolboxes/MMS/CMMSNSUnitQuadSolution.cpp | 2 +- .../MMS/CMMSNSUnitQuadSolutionWallBC.cpp | 2 +- .../src/toolboxes/MMS/CNSUnitQuadSolution.cpp | 2 +- Common/src/toolboxes/MMS/CRinglebSolution.cpp | 2 +- Common/src/toolboxes/MMS/CTGVSolution.cpp | 2 +- .../toolboxes/MMS/CUserDefinedSolution.cpp | 2 +- .../toolboxes/MMS/CVerificationSolution.cpp | 2 +- .../CMMSIncEulerSolution.py | 2 +- .../CreateMMSSourceTerms/CMMSIncNSSolution.py | 2 +- Common/src/toolboxes/printing_toolbox.cpp | 2 +- Common/src/wall_model.cpp | 2 +- Docs/docmain.hpp | 4 ++-- QuickStart/inv_NACA0012.cfg | 2 +- README.md | 2 +- SU2_CFD/include/CMarkerProfileReaderFVM.hpp | 2 +- SU2_CFD/include/SU2_CFD.hpp | 2 +- SU2_CFD/include/definition_structure.hpp | 2 +- .../drivers/CDiscAdjMultizoneDriver.hpp | 2 +- .../drivers/CDiscAdjSinglezoneDriver.hpp | 4 ++-- SU2_CFD/include/drivers/CDriver.hpp | 2 +- SU2_CFD/include/drivers/CDriverBase.hpp | 2 +- SU2_CFD/include/drivers/CDummyDriver.hpp | 2 +- SU2_CFD/include/drivers/CMultizoneDriver.hpp | 4 ++-- SU2_CFD/include/drivers/CSinglezoneDriver.hpp | 4 ++-- SU2_CFD/include/fluid/CConductivityModel.hpp | 2 +- .../include/fluid/CConstantConductivity.hpp | 2 +- .../fluid/CConstantConductivityRANS.hpp | 2 +- SU2_CFD/include/fluid/CConstantDensity.hpp | 2 +- .../include/fluid/CConstantDiffusivity.hpp | 2 +- .../fluid/CConstantLewisDiffusivity.hpp | 2 +- SU2_CFD/include/fluid/CConstantPrandtl.hpp | 2 +- .../include/fluid/CConstantPrandtlRANS.hpp | 2 +- SU2_CFD/include/fluid/CConstantSchmidt.hpp | 2 +- SU2_CFD/include/fluid/CConstantViscosity.hpp | 2 +- SU2_CFD/include/fluid/CCoolProp.hpp | 2 +- .../include/fluid/CCoolPropConductivity.hpp | 2 +- SU2_CFD/include/fluid/CCoolPropViscosity.hpp | 2 +- SU2_CFD/include/fluid/CDataDrivenFluid.hpp | 2 +- SU2_CFD/include/fluid/CDiffusivityModel.hpp | 2 +- SU2_CFD/include/fluid/CFluidFlamelet.hpp | 2 +- SU2_CFD/include/fluid/CFluidModel.hpp | 2 +- SU2_CFD/include/fluid/CFluidScalar.hpp | 2 +- SU2_CFD/include/fluid/CIdealGas.hpp | 2 +- SU2_CFD/include/fluid/CIncIdealGas.hpp | 2 +- .../include/fluid/CIncIdealGasPolynomial.hpp | 2 +- SU2_CFD/include/fluid/CMutationTCLib.hpp | 2 +- SU2_CFD/include/fluid/CNEMOGas.hpp | 2 +- SU2_CFD/include/fluid/CPengRobinson.hpp | 2 +- .../include/fluid/CPolynomialConductivity.hpp | 2 +- .../fluid/CPolynomialConductivityRANS.hpp | 2 +- .../include/fluid/CPolynomialViscosity.hpp | 2 +- SU2_CFD/include/fluid/CSU2TCLib.hpp | 2 +- SU2_CFD/include/fluid/CSutherland.hpp | 2 +- SU2_CFD/include/fluid/CVanDerWaalsGas.hpp | 2 +- SU2_CFD/include/fluid/CViscosityModel.hpp | 2 +- .../gradients/computeGradientsGreenGauss.hpp | 2 +- .../computeGradientsLeastSquares.hpp | 2 +- .../gradients/correctGradientsSymmetry.hpp | 2 +- .../integration/CFEM_DG_Integration.hpp | 4 ++-- SU2_CFD/include/integration/CIntegration.hpp | 2 +- .../integration/CIntegrationFactory.hpp | 2 +- .../integration/CMultiGridIntegration.hpp | 2 +- .../integration/CNewtonIntegration.hpp | 2 +- .../integration/CSingleGridIntegration.hpp | 2 +- .../integration/CStructuralIntegration.hpp | 2 +- SU2_CFD/include/interfaces/CInterface.hpp | 4 ++-- .../cfd/CConservativeVarsInterface.hpp | 2 +- .../interfaces/cfd/CMixingPlaneInterface.hpp | 2 +- .../interfaces/cfd/CSlidingInterface.hpp | 2 +- .../cht/CConjugateHeatInterface.hpp | 2 +- .../fsi/CDiscAdjFlowTractionInterface.hpp | 2 +- .../fsi/CDisplacementsInterface.hpp | 2 +- .../interfaces/fsi/CFlowTractionInterface.hpp | 2 +- .../include/iteration/CAdjFluidIteration.hpp | 2 +- .../iteration/CDiscAdjFEAIteration.hpp | 2 +- .../iteration/CDiscAdjFluidIteration.hpp | 2 +- .../iteration/CDiscAdjHeatIteration.hpp | 2 +- SU2_CFD/include/iteration/CFEAIteration.hpp | 4 ++-- .../include/iteration/CFEMFluidIteration.hpp | 4 ++-- SU2_CFD/include/iteration/CFluidIteration.hpp | 2 +- SU2_CFD/include/iteration/CHeatIteration.hpp | 2 +- SU2_CFD/include/iteration/CIteration.hpp | 2 +- .../include/iteration/CIterationFactory.hpp | 2 +- SU2_CFD/include/iteration/CTurboIteration.hpp | 2 +- SU2_CFD/include/limiters/CLimiterDetails.hpp | 2 +- SU2_CFD/include/limiters/computeLimiters.hpp | 2 +- .../include/limiters/computeLimiters_impl.hpp | 2 +- SU2_CFD/include/numerics/CGradSmoothing.hpp | 2 +- SU2_CFD/include/numerics/CNumerics.hpp | 2 +- .../include/numerics/NEMO/CNEMONumerics.hpp | 2 +- .../include/numerics/NEMO/NEMO_diffusion.hpp | 6 ++--- .../include/numerics/NEMO/NEMO_sources.hpp | 4 ++-- .../numerics/NEMO/convection/ausm_slau.hpp | 2 +- .../include/numerics/NEMO/convection/lax.hpp | 2 +- .../include/numerics/NEMO/convection/msw.hpp | 4 ++-- .../include/numerics/NEMO/convection/roe.hpp | 4 ++-- .../continuous_adjoint/adj_convection.hpp | 2 +- .../continuous_adjoint/adj_diffusion.hpp | 2 +- .../continuous_adjoint/adj_sources.hpp | 2 +- .../numerics/elasticity/CFEAElasticity.hpp | 4 ++-- .../elasticity/CFEALinearElasticity.hpp | 6 ++--- .../elasticity/CFEANonlinearElasticity.hpp | 4 ++-- .../numerics/elasticity/nonlinear_models.hpp | 10 ++++---- .../numerics/flow/convection/ausm_slau.hpp | 2 +- .../numerics/flow/convection/centered.hpp | 2 +- .../include/numerics/flow/convection/fds.hpp | 2 +- .../include/numerics/flow/convection/fvs.hpp | 2 +- .../include/numerics/flow/convection/hllc.hpp | 6 ++--- .../include/numerics/flow/convection/roe.hpp | 6 ++--- .../include/numerics/flow/flow_diffusion.hpp | 2 +- .../include/numerics/flow/flow_sources.hpp | 6 ++--- SU2_CFD/include/numerics/heat.hpp | 6 ++--- SU2_CFD/include/numerics/radiation.hpp | 2 +- .../numerics/scalar/scalar_convection.hpp | 2 +- .../numerics/scalar/scalar_diffusion.hpp | 2 +- .../numerics/scalar/scalar_sources.hpp | 2 +- .../numerics/species/species_convection.hpp | 2 +- .../numerics/species/species_diffusion.hpp | 2 +- .../numerics/species/species_sources.hpp | 2 +- SU2_CFD/include/numerics/template.hpp | 2 +- .../turbulent/transition/trans_convection.hpp | 2 +- .../transition/trans_correlations.hpp | 2 +- .../turbulent/transition/trans_diffusion.hpp | 2 +- .../turbulent/transition/trans_sources.hpp | 2 +- .../numerics/turbulent/turb_convection.hpp | 2 +- .../numerics/turbulent/turb_diffusion.hpp | 2 +- .../numerics/turbulent/turb_sources.hpp | 2 +- .../include/numerics_simd/CNumericsSIMD.cpp | 2 +- .../include/numerics_simd/CNumericsSIMD.hpp | 2 +- .../flow/convection/centered.hpp | 2 +- .../numerics_simd/flow/convection/common.hpp | 2 +- .../numerics_simd/flow/convection/roe.hpp | 2 +- .../numerics_simd/flow/diffusion/common.hpp | 2 +- .../flow/diffusion/viscous_fluxes.hpp | 2 +- .../include/numerics_simd/flow/variables.hpp | 2 +- SU2_CFD/include/numerics_simd/util.hpp | 2 +- .../include/output/CAdjElasticityOutput.hpp | 2 +- SU2_CFD/include/output/CAdjFlowCompOutput.hpp | 2 +- SU2_CFD/include/output/CAdjFlowIncOutput.hpp | 2 +- SU2_CFD/include/output/CAdjFlowOutput.hpp | 2 +- SU2_CFD/include/output/CAdjHeatOutput.hpp | 2 +- SU2_CFD/include/output/CBaselineOutput.hpp | 2 +- SU2_CFD/include/output/CElasticityOutput.hpp | 2 +- SU2_CFD/include/output/CFVMOutput.hpp | 2 +- SU2_CFD/include/output/CFlowCompFEMOutput.hpp | 2 +- SU2_CFD/include/output/CFlowCompOutput.hpp | 2 +- SU2_CFD/include/output/CFlowIncOutput.hpp | 2 +- SU2_CFD/include/output/CFlowOutput.hpp | 2 +- SU2_CFD/include/output/CHeatOutput.hpp | 2 +- SU2_CFD/include/output/CMeshOutput.hpp | 2 +- SU2_CFD/include/output/CMultizoneOutput.hpp | 2 +- SU2_CFD/include/output/CNEMOCompOutput.hpp | 2 +- SU2_CFD/include/output/COutput.hpp | 2 +- SU2_CFD/include/output/COutputFactory.hpp | 2 +- .../output/filewriter/CCGNSFileWriter.hpp | 2 +- .../output/filewriter/CCSVFileWriter.hpp | 2 +- .../output/filewriter/CFEMDataSorter.hpp | 2 +- .../output/filewriter/CFVMDataSorter.hpp | 2 +- .../include/output/filewriter/CFileWriter.hpp | 2 +- .../output/filewriter/CParallelDataSorter.hpp | 2 +- .../filewriter/CParaviewBinaryFileWriter.hpp | 2 +- .../output/filewriter/CParaviewFileWriter.hpp | 2 +- .../filewriter/CParaviewVTMFileWriter.hpp | 2 +- .../filewriter/CParaviewXMLFileWriter.hpp | 2 +- .../output/filewriter/CSTLFileWriter.hpp | 4 ++-- .../filewriter/CSU2BinaryFileWriter.hpp | 2 +- .../output/filewriter/CSU2FileWriter.hpp | 2 +- .../output/filewriter/CSU2MeshFileWriter.hpp | 2 +- .../filewriter/CSurfaceFEMDataSorter.hpp | 2 +- .../filewriter/CSurfaceFVMDataSorter.hpp | 2 +- .../filewriter/CTecplotBinaryFileWriter.hpp | 2 +- .../output/filewriter/CTecplotFileWriter.hpp | 2 +- .../include/output/tools/CWindowingTools.hpp | 2 +- SU2_CFD/include/sgs_model.hpp | 10 ++++---- SU2_CFD/include/sgs_model.inl | 2 +- SU2_CFD/include/solvers/CAdjEulerSolver.hpp | 2 +- SU2_CFD/include/solvers/CAdjNSSolver.hpp | 2 +- SU2_CFD/include/solvers/CAdjTurbSolver.hpp | 2 +- SU2_CFD/include/solvers/CBaselineSolver.hpp | 2 +- .../include/solvers/CBaselineSolver_FEM.hpp | 4 ++-- SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp | 2 +- .../include/solvers/CDiscAdjMeshSolver.hpp | 2 +- SU2_CFD/include/solvers/CDiscAdjSolver.hpp | 2 +- SU2_CFD/include/solvers/CEulerSolver.hpp | 2 +- SU2_CFD/include/solvers/CFEASolver.hpp | 2 +- SU2_CFD/include/solvers/CFEASolverBase.hpp | 2 +- .../include/solvers/CFEM_DG_EulerSolver.hpp | 4 ++-- SU2_CFD/include/solvers/CFEM_DG_NSSolver.hpp | 4 ++-- .../include/solvers/CFVMFlowSolverBase.hpp | 2 +- .../include/solvers/CFVMFlowSolverBase.inl | 2 +- .../solvers/CGradientSmoothingSolver.hpp | 2 +- SU2_CFD/include/solvers/CHeatSolver.hpp | 4 ++-- SU2_CFD/include/solvers/CIncEulerSolver.hpp | 2 +- SU2_CFD/include/solvers/CIncNSSolver.hpp | 2 +- SU2_CFD/include/solvers/CMeshSolver.hpp | 2 +- SU2_CFD/include/solvers/CNEMOEulerSolver.hpp | 4 ++-- SU2_CFD/include/solvers/CNEMONSSolver.hpp | 2 +- SU2_CFD/include/solvers/CNSSolver.hpp | 2 +- SU2_CFD/include/solvers/CRadP1Solver.hpp | 2 +- SU2_CFD/include/solvers/CRadSolver.hpp | 2 +- SU2_CFD/include/solvers/CScalarSolver.hpp | 2 +- SU2_CFD/include/solvers/CScalarSolver.inl | 2 +- SU2_CFD/include/solvers/CSolver.hpp | 2 +- SU2_CFD/include/solvers/CSolverFactory.hpp | 2 +- .../solvers/CSpeciesFlameletSolver.hpp | 2 +- SU2_CFD/include/solvers/CSpeciesSolver.hpp | 2 +- SU2_CFD/include/solvers/CTemplateSolver.hpp | 2 +- SU2_CFD/include/solvers/CTransLMSolver.hpp | 2 +- SU2_CFD/include/solvers/CTurbSASolver.hpp | 2 +- SU2_CFD/include/solvers/CTurbSSTSolver.hpp | 2 +- SU2_CFD/include/solvers/CTurbSolver.hpp | 2 +- SU2_CFD/include/task_definition.hpp | 4 ++-- SU2_CFD/include/task_definition.inl | 2 +- .../include/variables/CAdjEulerVariable.hpp | 2 +- SU2_CFD/include/variables/CAdjNSVariable.hpp | 2 +- .../include/variables/CAdjTurbVariable.hpp | 2 +- .../include/variables/CBaselineVariable.hpp | 2 +- .../variables/CDiscAdjFEABoundVariable.hpp | 4 ++-- .../variables/CDiscAdjMeshBoundVariable.hpp | 2 +- .../include/variables/CDiscAdjVariable.hpp | 2 +- SU2_CFD/include/variables/CEulerVariable.hpp | 2 +- .../include/variables/CFEABoundVariable.hpp | 4 ++-- SU2_CFD/include/variables/CFEAVariable.hpp | 4 ++-- SU2_CFD/include/variables/CFlowVariable.hpp | 2 +- SU2_CFD/include/variables/CHeatVariable.hpp | 4 ++-- .../include/variables/CIncEulerVariable.hpp | 2 +- SU2_CFD/include/variables/CIncNSVariable.hpp | 2 +- .../include/variables/CMeshBoundVariable.hpp | 2 +- SU2_CFD/include/variables/CMeshElement.hpp | 2 +- SU2_CFD/include/variables/CMeshVariable.hpp | 2 +- .../include/variables/CNEMOEulerVariable.hpp | 2 +- SU2_CFD/include/variables/CNEMONSVariable.hpp | 2 +- SU2_CFD/include/variables/CNSVariable.hpp | 2 +- .../include/variables/CPrimitiveIndices.hpp | 2 +- SU2_CFD/include/variables/CRadP1Variable.hpp | 2 +- SU2_CFD/include/variables/CRadVariable.hpp | 2 +- SU2_CFD/include/variables/CScalarVariable.hpp | 2 +- .../variables/CSobolevSmoothingVariable.hpp | 2 +- .../variables/CSpeciesFlameletVariable.hpp | 2 +- .../include/variables/CSpeciesVariable.hpp | 2 +- .../include/variables/CTransLMVariable.hpp | 2 +- SU2_CFD/include/variables/CTurbSAVariable.hpp | 2 +- .../include/variables/CTurbSSTVariable.hpp | 2 +- SU2_CFD/include/variables/CTurbVariable.hpp | 2 +- SU2_CFD/include/variables/CVariable.hpp | 2 +- SU2_CFD/src/CMarkerProfileReaderFVM.cpp | 2 +- SU2_CFD/src/SU2_CFD.cpp | 4 ++-- SU2_CFD/src/definition_structure.cpp | 2 +- .../src/drivers/CDiscAdjMultizoneDriver.cpp | 2 +- .../src/drivers/CDiscAdjSinglezoneDriver.cpp | 2 +- SU2_CFD/src/drivers/CDriver.cpp | 2 +- SU2_CFD/src/drivers/CDriverBase.cpp | 2 +- SU2_CFD/src/drivers/CDummyDriver.cpp | 2 +- SU2_CFD/src/drivers/CMultizoneDriver.cpp | 2 +- SU2_CFD/src/drivers/CSinglezoneDriver.cpp | 2 +- SU2_CFD/src/fluid/CCoolProp.cpp | 2 +- SU2_CFD/src/fluid/CDataDrivenFluid.cpp | 2 +- SU2_CFD/src/fluid/CFluidFlamelet.cpp | 2 +- SU2_CFD/src/fluid/CFluidModel.cpp | 2 +- SU2_CFD/src/fluid/CFluidScalar.cpp | 2 +- SU2_CFD/src/fluid/CIdealGas.cpp | 2 +- SU2_CFD/src/fluid/CMutationTCLib.cpp | 2 +- SU2_CFD/src/fluid/CNEMOGas.cpp | 2 +- SU2_CFD/src/fluid/CPengRobinson.cpp | 2 +- SU2_CFD/src/fluid/CSU2TCLib.cpp | 2 +- SU2_CFD/src/fluid/CVanDerWaalsGas.cpp | 2 +- .../src/integration/CFEM_DG_Integration.cpp | 2 +- SU2_CFD/src/integration/CIntegration.cpp | 2 +- .../src/integration/CIntegrationFactory.cpp | 2 +- .../src/integration/CMultiGridIntegration.cpp | 2 +- .../src/integration/CNewtonIntegration.cpp | 2 +- .../integration/CSingleGridIntegration.cpp | 2 +- .../integration/CStructuralIntegration.cpp | 2 +- SU2_CFD/src/interfaces/CInterface.cpp | 2 +- .../cfd/CConservativeVarsInterface.cpp | 2 +- .../interfaces/cfd/CMixingPlaneInterface.cpp | 2 +- .../src/interfaces/cfd/CSlidingInterface.cpp | 2 +- .../cht/CConjugateHeatInterface.cpp | 2 +- .../fsi/CDiscAdjFlowTractionInterface.cpp | 2 +- .../fsi/CDisplacementsInterface.cpp | 2 +- .../interfaces/fsi/CFlowTractionInterface.cpp | 2 +- SU2_CFD/src/iteration/CAdjFluidIteration.cpp | 2 +- .../src/iteration/CDiscAdjFEAIteration.cpp | 2 +- .../src/iteration/CDiscAdjFluidIteration.cpp | 2 +- .../src/iteration/CDiscAdjHeatIteration.cpp | 2 +- SU2_CFD/src/iteration/CFEAIteration.cpp | 2 +- SU2_CFD/src/iteration/CFEMFluidIteration.cpp | 2 +- SU2_CFD/src/iteration/CFluidIteration.cpp | 2 +- SU2_CFD/src/iteration/CHeatIteration.cpp | 2 +- SU2_CFD/src/iteration/CIteration.cpp | 2 +- SU2_CFD/src/iteration/CIterationFactory.cpp | 2 +- SU2_CFD/src/iteration/CTurboIteration.cpp | 2 +- SU2_CFD/src/limiters/CLimiterDetails.cpp | 2 +- SU2_CFD/src/numerics/CGradSmoothing.cpp | 2 +- SU2_CFD/src/numerics/CNumerics.cpp | 2 +- SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp | 2 +- SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp | 2 +- SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp | 2 +- .../numerics/NEMO/convection/ausm_slau.cpp | 2 +- SU2_CFD/src/numerics/NEMO/convection/lax.cpp | 2 +- SU2_CFD/src/numerics/NEMO/convection/msw.cpp | 2 +- SU2_CFD/src/numerics/NEMO/convection/roe.cpp | 2 +- .../continuous_adjoint/adj_convection.cpp | 2 +- .../continuous_adjoint/adj_diffusion.cpp | 2 +- .../continuous_adjoint/adj_sources.cpp | 2 +- .../numerics/elasticity/CFEAElasticity.cpp | 2 +- .../elasticity/CFEALinearElasticity.cpp | 2 +- .../elasticity/CFEANonlinearElasticity.cpp | 2 +- .../numerics/elasticity/nonlinear_models.cpp | 2 +- .../numerics/flow/convection/ausm_slau.cpp | 2 +- .../src/numerics/flow/convection/centered.cpp | 2 +- SU2_CFD/src/numerics/flow/convection/fds.cpp | 2 +- SU2_CFD/src/numerics/flow/convection/fvs.cpp | 2 +- SU2_CFD/src/numerics/flow/convection/hllc.cpp | 2 +- SU2_CFD/src/numerics/flow/convection/roe.cpp | 2 +- SU2_CFD/src/numerics/flow/flow_diffusion.cpp | 2 +- SU2_CFD/src/numerics/flow/flow_sources.cpp | 2 +- SU2_CFD/src/numerics/radiation.cpp | 2 +- .../src/numerics/scalar/scalar_sources.cpp | 2 +- .../src/numerics/species/species_sources.cpp | 2 +- SU2_CFD/src/numerics/template.cpp | 2 +- SU2_CFD/src/output/CAdjElasticityOutput.cpp | 2 +- SU2_CFD/src/output/CAdjFlowCompOutput.cpp | 2 +- SU2_CFD/src/output/CAdjFlowIncOutput.cpp | 2 +- SU2_CFD/src/output/CAdjFlowOutput.cpp | 2 +- SU2_CFD/src/output/CAdjHeatOutput.cpp | 2 +- SU2_CFD/src/output/CBaselineOutput.cpp | 2 +- SU2_CFD/src/output/CElasticityOutput.cpp | 2 +- SU2_CFD/src/output/CFVMOutput.cpp | 2 +- SU2_CFD/src/output/CFlowCompFEMOutput.cpp | 2 +- SU2_CFD/src/output/CFlowCompOutput.cpp | 2 +- SU2_CFD/src/output/CFlowIncOutput.cpp | 2 +- SU2_CFD/src/output/CFlowOutput.cpp | 4 ++-- SU2_CFD/src/output/CHeatOutput.cpp | 2 +- SU2_CFD/src/output/CMeshOutput.cpp | 2 +- SU2_CFD/src/output/CMultizoneOutput.cpp | 2 +- SU2_CFD/src/output/CNEMOCompOutput.cpp | 2 +- SU2_CFD/src/output/COutput.cpp | 2 +- SU2_CFD/src/output/COutputFactory.cpp | 2 +- SU2_CFD/src/output/CTurboOutput.cpp | 2 +- .../src/output/filewriter/CCGNSFileWriter.cpp | 2 +- .../src/output/filewriter/CCSVFileWriter.cpp | 2 +- .../src/output/filewriter/CFEMDataSorter.cpp | 2 +- .../src/output/filewriter/CFVMDataSorter.cpp | 2 +- .../output/filewriter/CParallelDataSorter.cpp | 2 +- .../output/filewriter/CParallelFileWriter.cpp | 2 +- .../filewriter/CParaviewBinaryFileWriter.cpp | 2 +- .../output/filewriter/CParaviewFileWriter.cpp | 2 +- .../filewriter/CParaviewVTMFileWriter.cpp | 2 +- .../filewriter/CParaviewXMLFileWriter.cpp | 2 +- .../src/output/filewriter/CSTLFileWriter.cpp | 2 +- .../filewriter/CSU2BinaryFileWriter.cpp | 2 +- .../src/output/filewriter/CSU2FileWriter.cpp | 2 +- .../output/filewriter/CSU2MeshFileWriter.cpp | 2 +- .../filewriter/CSurfaceFEMDataSorter.cpp | 2 +- .../filewriter/CSurfaceFVMDataSorter.cpp | 2 +- .../filewriter/CTecplotBinaryFileWriter.cpp | 2 +- .../output/filewriter/CTecplotFileWriter.cpp | 2 +- SU2_CFD/src/output/tools/CWindowingTools.cpp | 2 +- SU2_CFD/src/python_wrapper_structure.cpp | 2 +- SU2_CFD/src/solvers/CAdjEulerSolver.cpp | 2 +- SU2_CFD/src/solvers/CAdjNSSolver.cpp | 2 +- SU2_CFD/src/solvers/CAdjTurbSolver.cpp | 2 +- SU2_CFD/src/solvers/CBaselineSolver.cpp | 2 +- SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp | 2 +- SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp | 2 +- SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp | 2 +- SU2_CFD/src/solvers/CDiscAdjSolver.cpp | 2 +- SU2_CFD/src/solvers/CEulerSolver.cpp | 4 ++-- SU2_CFD/src/solvers/CFEASolver.cpp | 2 +- SU2_CFD/src/solvers/CFEASolverBase.cpp | 2 +- SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp | 2 +- SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp | 2 +- .../src/solvers/CGradientSmoothingSolver.cpp | 2 +- SU2_CFD/src/solvers/CHeatSolver.cpp | 2 +- SU2_CFD/src/solvers/CIncEulerSolver.cpp | 2 +- SU2_CFD/src/solvers/CIncNSSolver.cpp | 2 +- SU2_CFD/src/solvers/CMeshSolver.cpp | 2 +- SU2_CFD/src/solvers/CNEMOEulerSolver.cpp | 2 +- SU2_CFD/src/solvers/CNEMONSSolver.cpp | 2 +- SU2_CFD/src/solvers/CNSSolver.cpp | 2 +- SU2_CFD/src/solvers/CRadP1Solver.cpp | 2 +- SU2_CFD/src/solvers/CRadSolver.cpp | 2 +- SU2_CFD/src/solvers/CSolver.cpp | 2 +- SU2_CFD/src/solvers/CSolverFactory.cpp | 2 +- .../src/solvers/CSpeciesFlameletSolver.cpp | 2 +- SU2_CFD/src/solvers/CSpeciesSolver.cpp | 2 +- SU2_CFD/src/solvers/CTemplateSolver.cpp | 2 +- SU2_CFD/src/solvers/CTransLMSolver.cpp | 2 +- SU2_CFD/src/solvers/CTurbSASolver.cpp | 2 +- SU2_CFD/src/solvers/CTurbSSTSolver.cpp | 2 +- SU2_CFD/src/solvers/CTurbSolver.cpp | 2 +- SU2_CFD/src/variables/CAdjEulerVariable.cpp | 2 +- SU2_CFD/src/variables/CAdjNSVariable.cpp | 2 +- SU2_CFD/src/variables/CAdjTurbVariable.cpp | 2 +- SU2_CFD/src/variables/CBaselineVariable.cpp | 2 +- .../variables/CDiscAdjFEABoundVariable.cpp | 2 +- .../variables/CDiscAdjMeshBoundVariable.cpp | 2 +- SU2_CFD/src/variables/CDiscAdjVariable.cpp | 2 +- SU2_CFD/src/variables/CEulerVariable.cpp | 2 +- SU2_CFD/src/variables/CFEABoundVariable.cpp | 2 +- SU2_CFD/src/variables/CFEAVariable.cpp | 2 +- SU2_CFD/src/variables/CFlowVariable.cpp | 2 +- SU2_CFD/src/variables/CHeatVariable.cpp | 2 +- SU2_CFD/src/variables/CIncEulerVariable.cpp | 2 +- SU2_CFD/src/variables/CIncNSVariable.cpp | 2 +- SU2_CFD/src/variables/CMeshBoundVariable.cpp | 2 +- SU2_CFD/src/variables/CMeshElement.cpp | 2 +- SU2_CFD/src/variables/CMeshVariable.cpp | 2 +- SU2_CFD/src/variables/CNEMOEulerVariable.cpp | 2 +- SU2_CFD/src/variables/CNEMONSVariable.cpp | 2 +- SU2_CFD/src/variables/CNSVariable.cpp | 2 +- SU2_CFD/src/variables/CRadP1Variable.cpp | 2 +- SU2_CFD/src/variables/CRadVariable.cpp | 2 +- SU2_CFD/src/variables/CScalarVariable.cpp | 2 +- .../variables/CSobolevSmoothingVariable.cpp | 2 +- .../variables/CSpeciesFlameletVariable.cpp | 2 +- SU2_CFD/src/variables/CSpeciesVariable.cpp | 2 +- SU2_CFD/src/variables/CTransLMVariable.cpp | 2 +- SU2_CFD/src/variables/CTurbSAVariable.cpp | 2 +- SU2_CFD/src/variables/CTurbSSTVariable.cpp | 2 +- SU2_CFD/src/variables/CTurbVariable.cpp | 2 +- SU2_CFD/src/variables/CVariable.cpp | 2 +- .../include/drivers/CDeformationDriver.hpp | 2 +- .../drivers/CDiscAdjDeformationDriver.hpp | 2 +- SU2_DEF/src/SU2_DEF.cpp | 2 +- SU2_DEF/src/drivers/CDeformationDriver.cpp | 2 +- .../src/drivers/CDiscAdjDeformationDriver.cpp | 2 +- SU2_DOT/src/SU2_DOT.cpp | 2 +- SU2_GEO/include/SU2_GEO.hpp | 2 +- SU2_GEO/src/SU2_GEO.cpp | 2 +- SU2_PY/FSI_tools/FSIInterface.py | 2 +- SU2_PY/FSI_tools/FSI_config.py | 2 +- SU2_PY/OptimalPropeller.py | 2 +- SU2_PY/SU2/eval/design.py | 2 +- SU2_PY/SU2/eval/functions.py | 2 +- SU2_PY/SU2/eval/gradients.py | 2 +- SU2_PY/SU2/io/config.py | 2 +- SU2_PY/SU2/io/config_options.py | 2 +- SU2_PY/SU2/io/data.py | 2 +- SU2_PY/SU2/io/filelock.py | 2 +- SU2_PY/SU2/io/redirect.py | 2 +- SU2_PY/SU2/io/state.py | 2 +- SU2_PY/SU2/io/tools.py | 2 +- SU2_PY/SU2/opt/project.py | 2 +- SU2_PY/SU2/opt/scipy_tools.py | 2 +- SU2_PY/SU2/run/adjoint.py | 2 +- SU2_PY/SU2/run/deform.py | 2 +- SU2_PY/SU2/run/direct.py | 2 +- SU2_PY/SU2/run/geometry.py | 2 +- SU2_PY/SU2/run/interface.py | 2 +- SU2_PY/SU2/run/merge.py | 2 +- SU2_PY/SU2/run/projection.py | 2 +- SU2_PY/SU2/util/filter_adjoint.py | 2 +- SU2_PY/SU2/util/plot.py | 2 +- SU2_PY/SU2/util/polarSweepLib.py | 2 +- SU2_PY/SU2/util/which.py | 2 +- SU2_PY/SU2_CFD.py | 2 +- SU2_PY/SU2_Nastran/pysu2_nastran.py | 2 +- SU2_PY/change_version_number.py | 6 ++--- SU2_PY/compute_polar.py | 2 +- SU2_PY/compute_uncertainty.py | 2 +- SU2_PY/continuous_adjoint.py | 2 +- SU2_PY/direct_differentiation.py | 2 +- SU2_PY/discrete_adjoint.py | 2 +- SU2_PY/finite_differences.py | 2 +- SU2_PY/fsi_computation.py | 2 +- SU2_PY/merge_solution.py | 2 +- SU2_PY/mesh_deformation.py | 2 +- SU2_PY/parallel_computation.py | 2 +- SU2_PY/parallel_computation_fsi.py | 2 +- SU2_PY/parse_config.py | 2 +- SU2_PY/profiling.py | 2 +- SU2_PY/pySU2/pySU2.i | 2 +- SU2_PY/pySU2/pySU2ad.i | 2 +- SU2_PY/set_ffd_design_var.py | 2 +- SU2_PY/shape_optimization.py | 4 ++-- SU2_PY/topology_optimization.py | 2 +- SU2_PY/updateHistoryMap.py | 2 +- SU2_SOL/include/SU2_SOL.hpp | 2 +- SU2_SOL/src/SU2_SOL.cpp | 2 +- TestCases/TestCase.py | 2 +- .../aeroelastic/aeroelastic_NACA64A010.cfg | 2 +- .../air_nozzle/air_nozzle_restart.cfg | 2 +- TestCases/cgns_writer/config.cfg | 2 +- .../cont_adj_euler/naca0012/inv_NACA0012.cfg | 2 +- .../naca0012/inv_NACA0012_FD.cfg | 2 +- .../naca0012/inv_NACA0012_discadj.cfg | 2 +- .../cont_adj_euler/oneram6/inv_ONERAM6.cfg | 2 +- .../cont_adj_euler/wedge/inv_wedge_ROE.cfg | 2 +- .../wedge/inv_wedge_ROE_multiobj.cfg | 2 +- .../cylinder/lam_cylinder.cfg | 2 +- .../naca0012_sub/lam_NACA0012.cfg | 2 +- .../naca0012_trans/lam_NACA0012.cfg | 2 +- .../cont_adj_rans/naca0012/turb_nasa.cfg | 2 +- .../naca0012/turb_nasa_binary.cfg | 2 +- .../cont_adj_rans/oneram6/turb_ONERAM6.cfg | 2 +- .../cont_adj_rans/rae2822/turb_SA_RAE2822.cfg | 2 +- .../control_surface/inv_ONERAM6_moving.cfg | 2 +- .../control_surface/inv_ONERAM6_setting.cfg | 2 +- .../coupled_cht/comp_2d/cht_2d_3cylinders.cfg | 2 +- .../disc_adj_incomp_2d/cht_2d_3cylinders.cfg | 2 +- .../incomp_2d/cht_2d_3cylinders.cfg | 2 +- .../incomp_2d_unsteady/cht_2d_3cylinders.cfg | 2 +- TestCases/ddes/flatplate/ddes_flatplate.cfg | 2 +- .../deformation/brick_hex/def_brick_hex.cfg | 2 +- .../brick_hex_rans/def_brick_hex_rans.cfg | 2 +- .../brick_prism/def_brick_prism.cfg | 2 +- .../brick_prism_rans/def_brick_prism_rans.cfg | 2 +- .../deformation/brick_pyra/def_brick_pyra.cfg | 2 +- .../deformation/brick_tets/def_brick_tets.cfg | 2 +- .../cylindrical_ffd/def_cylindrical.cfg | 2 +- .../intersection_prevention/def_intersect.cfg | 2 +- .../deformation/naca0012/def_NACA0012.cfg | 2 +- .../naca0012/surface_file_NACA0012.cfg | 2 +- .../deformation/naca4412/def_NACA4412.cfg | 2 +- TestCases/deformation/rae2822/def_RAE2822.cfg | 2 +- .../spherical_ffd/def_spherical.cfg | 2 +- .../spherical_ffd/def_spherical_bspline.cfg | 2 +- .../disc_adj_euler/arina2k/Arina2KRS.cfg | 2 +- .../cylinder3D/inv_cylinder3D.cfg | 2 +- .../disc_adj_euler/oneram6/inv_ONERAM6.cfg | 2 +- TestCases/disc_adj_fea/configAD_fem.cfg | 2 +- TestCases/disc_adj_fsi/configFEA.cfg | 2 +- TestCases/disc_adj_fsi/configFlow.cfg | 2 +- TestCases/disc_adj_heat/disc_adj_heat.cfg | 2 +- TestCases/disc_adj_heat/primal.cfg | 2 +- .../naca0012/incomp_NACA0012_disc.cfg | 2 +- .../cylinder/heated_cylinder.cfg | 2 +- .../naca0012/turb_naca0012_sa.cfg | 2 +- .../naca0012/turb_naca0012_sst.cfg | 2 +- TestCases/disc_adj_rans/cylinder/cylinder.cfg | 2 +- .../cylinder/cylinder_Windowing.cfg | 2 +- .../cylinder/cylinder_Windowing_AD.cfg | 2 +- .../cylinder_DT_1ST/cylinder.cfg | 2 +- TestCases/disc_adj_rans/naca0012/naca0012.cfg | 2 +- .../naca0012/turb_NACA0012_sa.cfg | 2 +- .../naca0012/turb_NACA0012_sst.cfg | 2 +- .../transonic_stator_2D/transonic_stator.cfg | 2 +- TestCases/euler/CRM/inv_CRM_JST.cfg | 2 +- TestCases/euler/biparabolic/BIPARABOLIC.cfg | 2 +- TestCases/euler/bluntbody/blunt.cfg | 2 +- TestCases/euler/channel/inv_channel.cfg | 2 +- TestCases/euler/channel/inv_channel_RK.cfg | 2 +- TestCases/euler/naca0012/inv_NACA0012.cfg | 2 +- TestCases/euler/naca0012/inv_NACA0012_Roe.cfg | 2 +- TestCases/euler/oneram6/inv_ONERAM6.cfg | 2 +- TestCases/euler/ramp/inv_ramp.cfg | 2 +- TestCases/euler/wedge/inv_wedge_HLLC.cfg | 2 +- TestCases/fea_fsi/Airfoil_RBF/config.cfg | 2 +- TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg | 2 +- TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg | 2 +- .../fea_fsi/DynBeam_2d/configBeam_2d.cfg | 2 +- TestCases/fea_fsi/MixElemsKnowles/config.cfg | 2 +- TestCases/fea_fsi/SquareCyl_Beam/config.cfg | 2 +- .../fea_fsi/StatBeam_3d/configBeam_3d.cfg | 2 +- TestCases/fea_topology/config.cfg | 2 +- TestCases/fixed_cl/naca0012/inv_NACA0012.cfg | 2 +- .../naca0012/inv_NACA0012_ContAdj.cfg | 2 +- .../lam_prem_ch4_cfd.cfg | 2 +- .../lam_prem_ch4_hx_ad.cfg | 2 +- .../lam_prem_ch4_hx_dot.cfg | 2 +- .../lam_prem_ch4_cfd_axi.cfg | 2 +- .../lam_partial_prem_ch4_cfd.cfg | 2 +- .../naca0012/inv_NACA0012_gradsmooth.cfg | 2 +- .../oneram6/ONERAM6_gradsmooth.cfg | 2 +- TestCases/gust/cosine_gust_zdir.cfg | 2 +- TestCases/gust/gust_with_mesh_deformation.cfg | 2 +- TestCases/gust/inv_gust_NACA0012.cfg | 2 +- TestCases/harmonic_balance/HB.cfg | 2 +- .../hb_rans_preconditioning/davis.cfg | 2 +- .../fem_NACA0012.cfg | 2 +- .../NACA0012_5thOrder/fem_NACA0012.cfg | 2 +- .../NACA0012_5thOrder/fem_NACA0012_reg.cfg | 2 +- .../Sphere_4thOrder_Hexa/fem_Sphere.cfg | 2 +- .../Sphere_4thOrder_Tet/fem_Sphere.cfg | 2 +- .../nPoly1/fem_SubsonicChannel.cfg | 2 +- .../nPoly1/fem_SubsonicChannel_Farfield.cfg | 2 +- .../nPoly2/fem_SubsonicChannel.cfg | 2 +- .../nPoly2/fem_SubsonicChannel_Farfield.cfg | 2 +- .../nPoly4/fem_SubsonicChannel.cfg | 2 +- .../nPoly4/fem_SubsonicChannel_Farfield.cfg | 2 +- .../nPoly3/fem_Cylinder_reg.cfg | 2 +- .../FlatPlate/nPoly4/lam_flatplate_reg.cfg | 2 +- .../nPoly3_QuadDominant/fem_Sphere_reg.cfg | 2 +- .../fem_Sphere_reg_ADER.cfg | 2 +- .../nPoly4/fem_unst_cylinder.cfg | 2 +- .../nPoly4/fem_unst_cylinder_ADER.cfg | 2 +- TestCases/hybrid_regression.py | 2 +- TestCases/hybrid_regression_AD.py | 2 +- .../incomp_euler/naca0012/incomp_NACA0012.cfg | 2 +- TestCases/incomp_euler/nozzle/inv_nozzle.cfg | 2 +- .../buoyancy_cavity/lam_buoyancy_cavity.cfg | 2 +- .../cylinder/incomp_cylinder.cfg | 2 +- .../cylinder/poly_cylinder.cfg | 2 +- .../incomp_navierstokes/sphere/sphere.cfg | 2 +- .../chtPinArray_2d/BC_HeatTransfer.cfg | 2 +- .../chtPinArray_2d/DA_configMaster.cfg | 2 +- .../chtPinArray_2d/FD_configMaster.cfg | 2 +- .../chtPinArray_2d/configFluid.cfg | 2 +- .../chtPinArray_2d/configMaster.cfg | 2 +- .../chtPinArray_2d/configSolid.cfg | 2 +- .../chtPinArray_3d/configFluid.cfg | 2 +- .../chtPinArray_3d/configMaster.cfg | 2 +- .../chtPinArray_3d/configSolid.cfg | 2 +- .../dp-adjoint_chtPinArray_2d/configFluid.cfg | 2 +- .../configMaster.cfg | 2 +- .../dp-adjoint_chtPinArray_2d/configSolid.cfg | 2 +- .../pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg | 2 +- TestCases/incomp_rans/naca0012/naca0012.cfg | 2 +- .../naca0012/naca0012_SST_SUST.cfg | 2 +- .../rough_flatplate_incomp.cfg | 2 +- TestCases/mms/dg_ringleb/ringleb_dg.cfg | 2 +- .../mms/fvm_incomp_euler/inv_mms_jst.cfg | 2 +- .../fvm_incomp_navierstokes/lam_mms_fds.cfg | 2 +- .../mms/fvm_navierstokes/lam_mms_roe.cfg | 2 +- TestCases/moving_wall/cavity/lam_cavity.cfg | 2 +- .../spinning_cylinder/spinning_cylinder.cfg | 2 +- .../naca0012/inv_NACA0012_ffd.cfg | 2 +- .../cylinder/cylinder_lowmach.cfg | 2 +- .../navierstokes/cylinder/lam_cylinder.cfg | 2 +- .../navierstokes/flatplate/lam_flatplate.cfg | 2 +- .../flatplate/lam_flatplate_unst.cfg | 2 +- .../navierstokes/naca0012/lam_NACA0012.cfg | 2 +- .../poiseuille/lam_poiseuille.cfg | 2 +- .../poiseuille/profile_poiseuille.cfg | 2 +- TestCases/nicf/LS89/turb_SA_PR.cfg | 2 +- TestCases/nicf/LS89/turb_SST_PR.cfg | 2 +- TestCases/nicf/coolprop/fluidModel.cfg | 2 +- TestCases/nicf/coolprop/transportModel.cfg | 2 +- .../nicf/datadriven/datadriven_nozzle.cfg | 2 +- TestCases/nicf/edge/edge_PPR.cfg | 2 +- TestCases/nicf/edge/edge_VW.cfg | 2 +- .../nonequilibrium/invwedge/invwedge_ausm.cfg | 2 +- .../invwedge/invwedge_ausmplusup2.cfg | 2 +- .../nonequilibrium/invwedge/invwedge_lax.cfg | 2 +- .../nonequilibrium/invwedge/invwedge_msw.cfg | 2 +- .../nonequilibrium/invwedge/invwedge_roe.cfg | 2 +- .../invwedge/invwedge_ss_inlet.cfg | 2 +- .../finitechemistry/thermalbath.cfg | 2 +- .../thermalbath/frozen/thermalbath_frozen.cfg | 2 +- .../visc_wedge/axi_visccone.cfg | 2 +- .../nonequilibrium/visc_wedge/partial_cat.cfg | 2 +- .../nonequilibrium/visc_wedge/super_cat.cfg | 2 +- .../viscwedge_mpp/viscwedge_mpp.cfg | 2 +- .../equivalentarea_naca64206/NACA64206.cfg | 2 +- .../inv_wedge_ROE_2surf_1obj.cfg | 2 +- .../inv_wedge_ROE_multiobj.cfg | 2 +- .../inv_wedge_ROE_multiobj_1surf.cfg | 2 +- .../inv_wedge_ROE_multiobj_combo.cfg | 2 +- .../inv_NACA0012_multipoint.cfg | 2 +- .../pitching_NACA64A010.cfg | 2 +- .../pitching_oneram6/pitching_ONERAM6.cfg | 2 +- .../rotating_naca0012/rotating_NACA0012.cfg | 2 +- .../steady_inverse_design/inv_NACA0012.cfg | 2 +- .../steady_naca0012/inv_NACA0012_adv.cfg | 2 +- .../steady_naca0012/inv_NACA0012_basic.cfg | 2 +- .../steady_oneram6/inv_ONERAM6_adv.cfg | 2 +- .../steady_oneram6/inv_ONERAM6_basic.cfg | 2 +- .../optimization_rans/naca0012/naca0012.cfg | 2 +- .../pitching_naca64a010/turb_NACA64A010.cfg | 2 +- .../pitching_oneram6/turb_ONERAM6.cfg | 2 +- .../steady_oneram6/turb_ONERAM6.cfg | 2 +- .../steady_rae2822/turb_SA_RAE2822.cfg | 2 +- TestCases/parallel_regression.py | 2 +- TestCases/parallel_regression_AD.py | 2 +- TestCases/pastix_support/config.cfg | 2 +- TestCases/pastix_support/readme.txt | 2 +- TestCases/polar/naca0012/inv_NACA0012.cfg | 2 +- .../py_wrapper/custom_heat_flux/run_ad.py | 2 +- TestCases/py_wrapper/custom_inlet/run.py | 2 +- .../py_wrapper/custom_load_fea/config.cfg | 2 +- TestCases/py_wrapper/custom_load_fea/run.py | 2 +- .../py_wrapper/custom_load_fea/run_ad.py | 2 +- .../deforming_bump_in_channel/run.py | 2 +- .../flow_load_sens/run_adjoint.py | 2 +- .../mesh_disp_sens/run_adjoint.py | 2 +- TestCases/py_wrapper/dyn_fsi/run.py | 2 +- .../flatPlate_rigidMotion_Conf.cfg | 2 +- .../launch_flatPlate_rigidMotion.py | 2 +- .../launch_unsteady_CHT_FlatPlate.py | 2 +- .../unsteady_CHT_FlatPlate_Conf.cfg | 2 +- TestCases/py_wrapper/wavy_wall/run_steady.py | 2 +- .../radiation/p1adjoint/configp1adjoint.cfg | 2 +- TestCases/radiation/p1model/configp1.cfg | 2 +- .../actuatordisk_bem/actuatordisk_bem.cfg | 2 +- .../propeller_variable_load.cfg | 2 +- .../rans/flatplate/turb_SA_flatplate.cfg | 2 +- .../flatplate/turb_SA_flatplate_species.cfg | 2 +- .../rans/flatplate/turb_SST_flatplate.cfg | 2 +- ...b_SST_flatplate_compressibility_Sarkar.cfg | 2 +- ...b_SST_flatplate_compressibility_Wilcox.cfg | 2 +- TestCases/rans/naca0012/turb_NACA0012_sa.cfg | 2 +- TestCases/rans/naca0012/turb_NACA0012_sst.cfg | 2 +- .../naca0012/turb_NACA0012_sst_1994-KLm.cfg | 2 +- .../naca0012/turb_NACA0012_sst_2003-Vm.cfg | 2 +- .../rans/naca0012/turb_NACA0012_sst_2003m.cfg | 2 +- .../turb_NACA0012_sst_expliciteuler.cfg | 2 +- .../turb_NACA0012_sst_fixedvalues.cfg | 2 +- .../turb_NACA0012_sst_multigrid_restart.cfg | 2 +- .../rans/naca0012/turb_NACA0012_sst_sust.cfg | 2 +- TestCases/rans/oneram6/turb_ONERAM6.cfg | 2 +- TestCases/rans/oneram6/turb_ONERAM6_nk.cfg | 2 +- TestCases/rans/oneram6/turb_ONERAM6_vc.cfg | 2 +- TestCases/rans/propeller/propeller.cfg | 2 +- TestCases/rans/rae2822/turb_SA_RAE2822.cfg | 2 +- TestCases/rans/rae2822/turb_SST_RAE2822.cfg | 2 +- .../rans/rae2822/turb_SST_SUST_RAE2822.cfg | 2 +- .../rans/restart_directdiff_naca/naca0012.cfg | 2 +- TestCases/rans/s809/trans_s809.cfg | 2 +- TestCases/rans/s809/turb_S809.cfg | 2 +- TestCases/rans/vki_turbine/turb_vki.cfg | 2 +- .../rans_uq/naca0012/turb_NACA0012_uq.cfg | 2 +- .../rans_uq/naca0012/turb_NACA0012_uq_1c.cfg | 2 +- .../rans_uq/naca0012/turb_NACA0012_uq_2c.cfg | 2 +- .../rans_uq/naca0012/turb_NACA0012_uq_3c.cfg | 2 +- .../naca0012/turb_NACA0012_uq_p1c1.cfg | 2 +- .../naca0012/turb_NACA0012_uq_p1c2.cfg | 2 +- .../caradonna_tung/rot_caradonna_tung.cfg | 2 +- TestCases/rotating/naca0012/rot_NACA0012.cfg | 2 +- TestCases/serial_regression.py | 2 +- TestCases/serial_regression_AD.py | 2 +- .../sliding_interface/bars_SST_2D/bars.cfg | 2 +- .../sliding_interface/bars_SST_2D/zone_1.cfg | 2 +- .../sliding_interface/bars_SST_2D/zone_2.cfg | 2 +- .../sliding_interface/bars_SST_2D/zone_3.cfg | 2 +- .../channel_2D/channel_2D_NN.cfg | 2 +- .../channel_2D/channel_2D_WA.cfg | 2 +- .../sliding_interface/channel_2D/zone_2.cfg | 2 +- .../sliding_interface/channel_2D/zone_3.cfg | 2 +- .../channel_3D/channel_3D_NN.cfg | 2 +- .../channel_3D/channel_3D_WA.cfg | 2 +- .../sliding_interface/channel_3D/zone_1.cfg | 2 +- .../sliding_interface/channel_3D/zone_2.cfg | 2 +- .../sliding_interface/channel_3D/zone_3.cfg | 2 +- .../incompressible_steady/config.cfg | 2 +- .../incompressible_steady/configCircle.cfg | 2 +- .../incompressible_steady/configOut.cfg | 2 +- .../incompressible_unsteady/config.cfg | 2 +- .../incompressible_unsteady/configCircle.cfg | 2 +- .../incompressible_unsteady/configOut.cfg | 2 +- TestCases/sliding_interface/pipe/pipe_NN.cfg | 2 +- TestCases/sliding_interface/pipe/pipe_WA.cfg | 2 +- TestCases/sliding_interface/pipe/zone_1.cfg | 2 +- TestCases/sliding_interface/pipe/zone_2.cfg | 2 +- TestCases/sliding_interface/pipe/zone_3.cfg | 2 +- TestCases/sliding_interface/pipe/zone_4.cfg | 2 +- TestCases/sliding_interface/pipe/zone_5.cfg | 2 +- .../rotating_cylinders/rot_cylinders_NN.cfg | 2 +- .../rotating_cylinders/rot_cylinders_WA.cfg | 2 +- .../single_stage/single_stage_NN.cfg | 2 +- .../single_stage/single_stage_WA.cfg | 2 +- .../sliding_interface/single_stage/zone_1.cfg | 2 +- .../sliding_interface/single_stage/zone_2.cfg | 2 +- .../sup_vor_shed_NN.cfg | 2 +- .../sup_vor_shed_WA.cfg | 2 +- .../supersonic_vortex_shedding/zone_1.cfg | 2 +- .../supersonic_vortex_shedding/zone_2.cfg | 2 +- .../uniform_flow/uniform_NN.cfg | 2 +- .../uniform_flow/uniform_WA.cfg | 2 +- .../sliding_interface/uniform_flow/zone_1.cfg | 2 +- .../sliding_interface/uniform_flow/zone_2.cfg | 2 +- .../periodic_pins/configSolid.cfg | 2 +- .../multizone/configMaster.cfg | 2 +- .../passive_transport.cfg | 2 +- .../species2_primitiveVenturi.cfg | 2 +- ...pecies2_primitiveVenturi_boundedscalar.cfg | 2 +- .../species2_primitiveVenturi_mixingmodel.cfg | 2 +- ...eVenturi_mixingmodel_TURBULENT_MARKERS.cfg | 2 +- ...itiveVenturi_mixingmodel_boundedscalar.cfg | 2 +- ...iveVenturi_mixingmodel_heatcapacity_H2.cfg | 2 +- ...Venturi_mixingmodel_heatcapacity_H2_ND.cfg | 2 +- ...primitiveVenturi_mixingmodel_viscosity.cfg | 2 +- .../species3_primitiveVenturi_inletFile.cfg | 2 +- .../transitional_BC_model_ConfigFile.cfg | 2 +- .../transitional_BC_model_ConfigFile.cfg | 2 +- .../transitional_BC_model_ConfigFile.cfg | 2 +- .../APU_turbocharger/Jones_restart.cfg | 2 +- .../axial_stage_2D/Axial_stage2D.cfg | 2 +- .../turbomachinery/axial_stage_2D/zone_1.cfg | 2 +- .../turbomachinery/axial_stage_2D/zone_2.cfg | 2 +- .../centrifugal_blade/centrifugal_blade.cfg | 2 +- .../centrifugal_stage/centrifugal_stage.cfg | 2 +- .../multi_interface/multi_interface_rst.cfg | 2 +- .../transonic_stator_restart.cfg | 2 +- TestCases/tutorials.py | 2 +- .../pitching_NACA64A010.cfg | 2 +- .../turb_NACA64A010.cfg | 2 +- .../plunging_naca0012/plunging_NACA0012.cfg | 2 +- .../unsteady/square_cylinder/turb_square.cfg | 2 +- .../user_defined_functions/lam_flatplate.cfg | 2 +- TestCases/vandv.py | 2 +- .../sandia_jet/validation.cfg | 2 +- .../compressible_SA/turb_SA_flatplate.cfg | 2 +- .../compressible_SST/turb_SST_flatplate.cfg | 2 +- .../incompressible_SA/turb_SA_flatplate.cfg | 2 +- .../incompressible_SST/turb_SST_flatplate.cfg | 2 +- .../Common/containers/CLookupTable_tests.cpp | 2 +- UnitTests/Common/geometry/CGeometry_test.cpp | 2 +- .../geometry/dual_grid/CDualGrid_tests.cpp | 2 +- .../primal_grid/CPrimalGrid_tests.cpp | 2 +- UnitTests/Common/simple_ad_test.cpp | 2 +- UnitTests/Common/simple_directdiff_test.cpp | 2 +- .../toolboxes/C1DInterpolation_tests.cpp | 2 +- .../CQuasiNewtonInvLeastSquares_tests.cpp | 2 +- .../CLookUp_ANN_tests.cpp | 2 +- .../Common/toolboxes/ndflattener_tests.cpp | 2 +- UnitTests/Common/vectorization.cpp | 2 +- UnitTests/SU2_CFD/gradients.cpp | 2 +- .../SU2_CFD/numerics/CNumerics_tests.cpp | 2 +- UnitTests/SU2_CFD/windowing.cpp | 2 +- UnitTests/UnitQuadTestCase.hpp | 2 +- UnitTests/test_driver.cpp | 2 +- config_template.cfg | 2 +- meson.build | 4 ++-- meson.py | 2 +- meson_scripts/init.py | 2 +- preconfigure.py | 2 +- su2omp.syntax.json | 2 +- 1012 files changed, 1092 insertions(+), 1092 deletions(-) diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index ff713cc20d6..b14ffd6f2de 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -3,7 +3,7 @@ * \brief All the information about the definition of the physical problem. * The subroutines and functions are in the CConfig.cpp file. * \author F. Palacios, T. Economon, B. Tracey - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/adt/CADTBaseClass.hpp b/Common/include/adt/CADTBaseClass.hpp index fa0623c000f..bed3b53cc1c 100644 --- a/Common/include/adt/CADTBaseClass.hpp +++ b/Common/include/adt/CADTBaseClass.hpp @@ -2,7 +2,7 @@ * \file CADTBaseClass.hpp * \brief Base class for storing an ADT in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/adt/CADTComparePointClass.hpp b/Common/include/adt/CADTComparePointClass.hpp index 2e6f0a144dd..6e3e06878f6 100644 --- a/Common/include/adt/CADTComparePointClass.hpp +++ b/Common/include/adt/CADTComparePointClass.hpp @@ -2,7 +2,7 @@ * \file CADTComparePointClass.hpp * \brief subroutines for comparing two points in an alternating digital tree (ADT). * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/adt/CADTElemClass.hpp b/Common/include/adt/CADTElemClass.hpp index f20fabc982d..a85744c7fa7 100644 --- a/Common/include/adt/CADTElemClass.hpp +++ b/Common/include/adt/CADTElemClass.hpp @@ -2,7 +2,7 @@ * \file CADTElemClass.hpp * \brief Class for storing an ADT of (linear) elements in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -36,7 +36,7 @@ * \ingroup ADT * \brief Class for storing an ADT of (linear) elements in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CADTElemClass : public CADTBaseClass { private: diff --git a/Common/include/adt/CADTNodeClass.hpp b/Common/include/adt/CADTNodeClass.hpp index 21cdfefde36..9e8a252d2b2 100644 --- a/Common/include/adt/CADTNodeClass.hpp +++ b/Common/include/adt/CADTNodeClass.hpp @@ -2,7 +2,7 @@ * \file CADTNodeClass.hpp * \brief Class for storing the information needed in a node of an ADT. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/adt/CADTPointsOnlyClass.hpp b/Common/include/adt/CADTPointsOnlyClass.hpp index 0d24ed38d63..fabec0d4b8c 100644 --- a/Common/include/adt/CADTPointsOnlyClass.hpp +++ b/Common/include/adt/CADTPointsOnlyClass.hpp @@ -2,7 +2,7 @@ * \file CADTPointsOnlyClass.hpp * \brief Class for storing an ADT of only points in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/adt/CBBoxTargetClass.hpp b/Common/include/adt/CBBoxTargetClass.hpp index b772affb35d..9f78a2529b5 100644 --- a/Common/include/adt/CBBoxTargetClass.hpp +++ b/Common/include/adt/CBBoxTargetClass.hpp @@ -3,7 +3,7 @@ * \brief Class for storing the information of a possible bounding box candidate during a minimum distance search. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -35,7 +35,7 @@ * \brief Class for storing the information of a possible bounding box candidate during a minimum distance search. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ struct CBBoxTargetClass { unsigned long boundingBoxID; /*!< \brief Corresponding bounding box ID. */ diff --git a/Common/include/basic_types/ad_structure.hpp b/Common/include/basic_types/ad_structure.hpp index c44374f7eb7..de902141e89 100644 --- a/Common/include/basic_types/ad_structure.hpp +++ b/Common/include/basic_types/ad_structure.hpp @@ -2,7 +2,7 @@ * \file ad_structure.hpp * \brief Main routines for the algorithmic differentiation (AD) structure. * \author T. Albring, J. Blühdorn - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/basic_types/datatype_structure.hpp b/Common/include/basic_types/datatype_structure.hpp index 729181a0b92..1698cea3f43 100644 --- a/Common/include/basic_types/datatype_structure.hpp +++ b/Common/include/basic_types/datatype_structure.hpp @@ -2,7 +2,7 @@ * \file datatype_structure.hpp * \brief Headers for generalized datatypes, defines an interface for AD types. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/code_config.hpp b/Common/include/code_config.hpp index 53e18639950..cbbf2c53153 100644 --- a/Common/include/code_config.hpp +++ b/Common/include/code_config.hpp @@ -2,7 +2,7 @@ * \file code_config.hpp * \brief Header file for collecting common macros, definitions and type configurations. * \author T. Albring, P. Gomes, J. Blühdorn - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/containers/C2DContainer.hpp b/Common/include/containers/C2DContainer.hpp index 633c6b7defe..8eb62eb01e1 100644 --- a/Common/include/containers/C2DContainer.hpp +++ b/Common/include/containers/C2DContainer.hpp @@ -2,7 +2,7 @@ * \file C2DContainer.hpp * \brief A templated vector/matrix object. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/containers/CFastFindAndEraseQueue.hpp b/Common/include/containers/CFastFindAndEraseQueue.hpp index 7bcc3afbe32..d41713ca0d7 100644 --- a/Common/include/containers/CFastFindAndEraseQueue.hpp +++ b/Common/include/containers/CFastFindAndEraseQueue.hpp @@ -3,7 +3,7 @@ * \brief A queue-type container (push back, pop front), but with * fast deletion of arbitrary items (possibly in the middle). * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/containers/CFileReaderLUT.hpp b/Common/include/containers/CFileReaderLUT.hpp index f673b064c01..3a92543318d 100644 --- a/Common/include/containers/CFileReaderLUT.hpp +++ b/Common/include/containers/CFileReaderLUT.hpp @@ -2,7 +2,7 @@ * \file CFileReaderLUT.hpp * \brief reading lookup table for tabulated fluid properties * \author D. Mayer, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/containers/CLookUpTable.hpp b/Common/include/containers/CLookUpTable.hpp index 230b009fc92..37052044530 100644 --- a/Common/include/containers/CLookUpTable.hpp +++ b/Common/include/containers/CLookUpTable.hpp @@ -2,7 +2,7 @@ * \file CLookupTable.hpp * \brief tabulation of fluid properties * \author D. Mayer, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/containers/CPyWrapperMatrixView.hpp b/Common/include/containers/CPyWrapperMatrixView.hpp index fe72265eab2..bd02adaf747 100644 --- a/Common/include/containers/CPyWrapperMatrixView.hpp +++ b/Common/include/containers/CPyWrapperMatrixView.hpp @@ -2,7 +2,7 @@ * \file CPyWrapperMatrixView.hpp * \brief Simple matrix views to use with the python wrapper. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/containers/CTrapezoidalMap.hpp b/Common/include/containers/CTrapezoidalMap.hpp index 2225a9b718c..98bc41b0caa 100644 --- a/Common/include/containers/CTrapezoidalMap.hpp +++ b/Common/include/containers/CTrapezoidalMap.hpp @@ -2,7 +2,7 @@ * \file CTrapezoidalMap.hpp * \brief Implementation of the trapezoidal map for tabulation and lookup of fluid properties * \author D. Mayer, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -38,7 +38,7 @@ * \ingroup LookUpInterp * \brief Construction of trapezoidal map for tabulated lookup * \author: D. Mayer, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CTrapezoidalMap { protected: diff --git a/Common/include/containers/CVertexMap.hpp b/Common/include/containers/CVertexMap.hpp index d7efec6e6db..fd25c090f30 100644 --- a/Common/include/containers/CVertexMap.hpp +++ b/Common/include/containers/CVertexMap.hpp @@ -2,7 +2,7 @@ * \file CVertexMap.hpp * \brief An index to index lookup vector. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/containers/container_decorators.hpp b/Common/include/containers/container_decorators.hpp index fc0ec3a1dc1..593a18cd2c3 100644 --- a/Common/include/containers/container_decorators.hpp +++ b/Common/include/containers/container_decorators.hpp @@ -3,7 +3,7 @@ * \brief Collection of small classes that decorate C2DContainer to * augment its functionality, e.g. give it extra dimensions. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/fem/fem_cgns_elements.hpp b/Common/include/fem/fem_cgns_elements.hpp index 5c4420f445d..f3debaeb0ea 100644 --- a/Common/include/fem/fem_cgns_elements.hpp +++ b/Common/include/fem/fem_cgns_elements.hpp @@ -4,7 +4,7 @@ * with high order elements. * The functions are in the cgns_elements.cpp file. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/fem/fem_gauss_jacobi_quadrature.hpp b/Common/include/fem/fem_gauss_jacobi_quadrature.hpp index 8f240bccda1..2b20d9ed860 100644 --- a/Common/include/fem/fem_gauss_jacobi_quadrature.hpp +++ b/Common/include/fem/fem_gauss_jacobi_quadrature.hpp @@ -6,7 +6,7 @@ All the functions in this class are based on the program JACOBI_RULE of John Burkardt. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -95,7 +95,7 @@ using namespace std; * \brief Class used to determine the quadrature points of the Gauss Jacobi integration rules. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CGaussJacobiQuadrature { public: diff --git a/Common/include/fem/fem_geometry_structure.hpp b/Common/include/fem/fem_geometry_structure.hpp index 1454352b3f0..4d3e9cc367d 100644 --- a/Common/include/fem/fem_geometry_structure.hpp +++ b/Common/include/fem/fem_geometry_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for creating the geometrical structure for the FEM solver. * The subroutines and functions are in the fem_geometry_structure.cpp file. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -41,7 +41,7 @@ using namespace std; /*! * \class CLong3T * \brief Help class used to store three longs as one entity. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ struct CLong3T { long long0 = 0; /*!< \brief First long to store in this class. */ @@ -63,7 +63,7 @@ struct CLong3T { * \class CReorderElements * \brief Class, used to reorder the owned elements after the partitioning. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CReorderElements { private: @@ -131,7 +131,7 @@ class CReorderElements { * \brief Functor, used for a different sorting of the faces than the < operator * of CFaceOfElement. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CVolumeElementFEM; // Forward declaration to avoid problems. class CSortFaces { @@ -169,7 +169,7 @@ class CSortFaces { * \brief Functor, used for a different sorting of the faces than the < operator * of CSurfaceElementFEM. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ struct CSurfaceElementFEM; // Forward declaration to avoid problems. struct CSortBoundaryFaces { @@ -185,7 +185,7 @@ struct CSortBoundaryFaces { * \class CVolumeElementFEM * \brief Class to store a volume element for the FEM solver. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CVolumeElementFEM { public: @@ -276,7 +276,7 @@ class CVolumeElementFEM { * \class CPointFEM * \brief Class to a point for the FEM solver. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ struct CPointFEM { unsigned long globalID; /*!< \brief The global ID of this point in the grid. */ @@ -300,7 +300,7 @@ struct CPointFEM { * \class CInternalFaceElementFEM * \brief Class to store an internal face for the FEM solver. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ struct CInternalFaceElementFEM { unsigned short VTK_Type; /*!< \brief Element type using the VTK convention. */ @@ -344,7 +344,7 @@ struct CInternalFaceElementFEM { * \class CSurfaceElementFEM * \brief Class to store a surface element for the FEM solver. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ struct CSurfaceElementFEM { unsigned short VTK_Type; /*!< \brief Element type using the VTK convention. */ @@ -405,7 +405,7 @@ struct CSurfaceElementFEM { * \class CBoundaryFEM * \brief Class to store a boundary for the FEM solver. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ struct CBoundaryFEM { string markerTag; /*!< \brief Marker tag of this boundary. */ @@ -428,7 +428,7 @@ struct CBoundaryFEM { * \class CMeshFEM * \brief Base class for the FEM solver. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CMeshFEM : public CGeometry { protected: @@ -693,7 +693,7 @@ class CMeshFEM : public CGeometry { * \class CMeshFEM_DG * \brief Class which contains all the variables for the DG FEM solver. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CMeshFEM_DG : public CMeshFEM { protected: diff --git a/Common/include/fem/fem_standard_element.hpp b/Common/include/fem/fem_standard_element.hpp index a4c5c0ac9ec..b074dac7d0b 100644 --- a/Common/include/fem/fem_standard_element.hpp +++ b/Common/include/fem/fem_standard_element.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main functions for the FEM standard elements. * The functions are in the fem_standard_element.cpp file. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -40,7 +40,7 @@ using namespace std; * \class CFEMStandardElementBase * \brief Base class for a FEM standard element. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEMStandardElementBase { protected: @@ -668,7 +668,7 @@ class CFEMStandardElementBase { * \class CFEMStandardElement * \brief Class to define a FEM standard element. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEMStandardElement : public CFEMStandardElementBase { private: @@ -1101,7 +1101,7 @@ class CFEMStandardElement : public CFEMStandardElementBase { * \class CFEMStandardInternalFace * \brief Class to define a FEM standard internal face. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEMStandardInternalFace : public CFEMStandardElementBase { private: @@ -1434,7 +1434,7 @@ class CFEMStandardInternalFace : public CFEMStandardElementBase { * \class CFEMStandardBoundaryFace * \brief Class to define a FEM standard boundary face. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEMStandardBoundaryFace : public CFEMStandardElementBase { private: diff --git a/Common/include/fem/geometry_structure_fem_part.hpp b/Common/include/fem/geometry_structure_fem_part.hpp index 770f55b0a42..4cf2ab12d1f 100644 --- a/Common/include/fem/geometry_structure_fem_part.hpp +++ b/Common/include/fem/geometry_structure_fem_part.hpp @@ -2,7 +2,7 @@ * \file geometry_structure_fem_part.hpp * \brief Helper classes for the Fluid FEM solver. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/CDummyGeometry.hpp b/Common/include/geometry/CDummyGeometry.hpp index a4ff8402d66..0a50819d6c8 100644 --- a/Common/include/geometry/CDummyGeometry.hpp +++ b/Common/include/geometry/CDummyGeometry.hpp @@ -2,7 +2,7 @@ * \file CDummyGeometry.hpp * \brief Headers of the dummy geometry class used in "dry run" mode. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/CGeometry.hpp b/Common/include/geometry/CGeometry.hpp index 015aaf1fdc2..738618ba2cd 100644 --- a/Common/include/geometry/CGeometry.hpp +++ b/Common/include/geometry/CGeometry.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for creating the geometrical structure. * The subroutines and functions are in the CGeometry.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/CMultiGridGeometry.hpp b/Common/include/geometry/CMultiGridGeometry.hpp index 541aaa88d6d..c3e897f7f31 100644 --- a/Common/include/geometry/CMultiGridGeometry.hpp +++ b/Common/include/geometry/CMultiGridGeometry.hpp @@ -2,7 +2,7 @@ * \file CMultiGridGeometry.hpp * \brief Headers of the multigrid geometry class. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/CMultiGridQueue.hpp b/Common/include/geometry/CMultiGridQueue.hpp index a76f27265cf..0e48f938517 100644 --- a/Common/include/geometry/CMultiGridQueue.hpp +++ b/Common/include/geometry/CMultiGridQueue.hpp @@ -3,7 +3,7 @@ * \brief Header of the multigrid queue class for the FVM solver. * The subroutines and functions are in the CMultiGridQueue.cpp file. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/CPhysicalGeometry.hpp b/Common/include/geometry/CPhysicalGeometry.hpp index 070bf015ab8..8214e4ea7f0 100644 --- a/Common/include/geometry/CPhysicalGeometry.hpp +++ b/Common/include/geometry/CPhysicalGeometry.hpp @@ -2,7 +2,7 @@ * \file CPhysicalGeometry.hpp * \brief Headers of the physical geometry class used to read meshes from file. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/dual_grid/CDualGrid.hpp b/Common/include/geometry/dual_grid/CDualGrid.hpp index c33fa3f376a..cee0b4f6878 100644 --- a/Common/include/geometry/dual_grid/CDualGrid.hpp +++ b/Common/include/geometry/dual_grid/CDualGrid.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for doing the complete dual grid structure. * The subroutines and functions are in the CDualGrid.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/dual_grid/CEdge.hpp b/Common/include/geometry/dual_grid/CEdge.hpp index 8e5d84b6c34..d6b38d59cd3 100644 --- a/Common/include/geometry/dual_grid/CEdge.hpp +++ b/Common/include/geometry/dual_grid/CEdge.hpp @@ -2,7 +2,7 @@ * \file CEdge.hpp * \brief Declaration of the edge class CEdge.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/dual_grid/CPoint.hpp b/Common/include/geometry/dual_grid/CPoint.hpp index c297b1b5df9..17d540a2a7b 100644 --- a/Common/include/geometry/dual_grid/CPoint.hpp +++ b/Common/include/geometry/dual_grid/CPoint.hpp @@ -3,7 +3,7 @@ * \brief Declaration of the point class that stores geometric and adjacency * information for dual control volumes. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/dual_grid/CTurboVertex.hpp b/Common/include/geometry/dual_grid/CTurboVertex.hpp index 09e7852753f..605d7d0ca42 100644 --- a/Common/include/geometry/dual_grid/CTurboVertex.hpp +++ b/Common/include/geometry/dual_grid/CTurboVertex.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for doing the complete dual grid structure. * The subroutines and functions are in the CTurboVertex.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/dual_grid/CVertex.hpp b/Common/include/geometry/dual_grid/CVertex.hpp index 19294112395..56c195c6e3f 100644 --- a/Common/include/geometry/dual_grid/CVertex.hpp +++ b/Common/include/geometry/dual_grid/CVertex.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for doing the complete dual grid structure. * The subroutines and functions are in the CVertex.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/elements/CElement.hpp b/Common/include/geometry/elements/CElement.hpp index 4c67008569a..535323ec0c0 100644 --- a/Common/include/geometry/elements/CElement.hpp +++ b/Common/include/geometry/elements/CElement.hpp @@ -3,7 +3,7 @@ * \brief Main header of the Finite Element structure declaring the abstract * interface and the available finite element types. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -900,7 +900,7 @@ class CPYRAM5 final : public CElementWithKnownSizes<5, 5, 3> { * \ingroup FemAlgos * \brief Prism element with 6 Gauss Points * \author R. Sanchez, F. Palacios, A. Bueno, T. Economon, S. Padron. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CPRISM6 final : public CElementWithKnownSizes<6, 6, 3> { private: diff --git a/Common/include/geometry/elements/CElementProperty.hpp b/Common/include/geometry/elements/CElementProperty.hpp index 64110715d6c..6414af96a25 100644 --- a/Common/include/geometry/elements/CElementProperty.hpp +++ b/Common/include/geometry/elements/CElementProperty.hpp @@ -2,7 +2,7 @@ * \file CElementProperty.hpp * \brief Light classes to define finite element properties. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -32,7 +32,7 @@ * \ingroup Elasticity_Equations * \brief Base class for defining element properties. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CProperty { protected: @@ -106,7 +106,7 @@ class CProperty { * \ingroup Elasticity_Equations * \brief Class for defining element properties for the structural solver. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CElementProperty final : public CProperty { private: diff --git a/Common/include/geometry/elements/CGaussVariable.hpp b/Common/include/geometry/elements/CGaussVariable.hpp index b88a70be367..cbbf0106d63 100644 --- a/Common/include/geometry/elements/CGaussVariable.hpp +++ b/Common/include/geometry/elements/CGaussVariable.hpp @@ -2,7 +2,7 @@ * \file CGaussVariable.hpp * \brief Light-weight class to store Gaussian point information. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -33,7 +33,7 @@ * \class CGaussVariable * \ingroup FemAlgos * \brief Main class for defining the gaussian points. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CGaussVariable { protected: diff --git a/Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp index 4ffc37200ab..4c97369ec35 100644 --- a/Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CBoxMeshReaderFVM. * The implementations are in the CBoxMeshReaderFVM.cpp file. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp index 3b072222d41..6199cb540d5 100644 --- a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CCGNSMeshReaderFVM. * The implementations are in the CCGNSMeshReaderFVM.cpp file. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/meshreader/CMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CMeshReaderFVM.hpp index e3f295b00d3..7980acf39fd 100644 --- a/Common/include/geometry/meshreader/CMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CMeshReaderFVM.hpp @@ -4,7 +4,7 @@ * \brief Header file for the class CMeshReaderFVM. * The implementations are in the CMeshReaderFVM.cpp file. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/meshreader/CRectangularMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CRectangularMeshReaderFVM.hpp index 3f029b75102..54f393b88d8 100644 --- a/Common/include/geometry/meshreader/CRectangularMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CRectangularMeshReaderFVM.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CRectangularMeshReaderFVM. * The implementations are in the CRectangularMeshReaderFVM.cpp file. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/meshreader/CSU2ASCIIMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CSU2ASCIIMeshReaderFVM.hpp index ff745cc7595..1be0177b435 100644 --- a/Common/include/geometry/meshreader/CSU2ASCIIMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CSU2ASCIIMeshReaderFVM.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CSU2ASCIIMeshReaderFVM. * The implementations are in the CSU2ASCIIMeshReaderFVM.cpp file. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/primal_grid/CHexahedron.hpp b/Common/include/geometry/primal_grid/CHexahedron.hpp index a4e0644ff20..edb4f6ca94f 100644 --- a/Common/include/geometry/primal_grid/CHexahedron.hpp +++ b/Common/include/geometry/primal_grid/CHexahedron.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CHexahedron.cpp file. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/primal_grid/CLine.hpp b/Common/include/geometry/primal_grid/CLine.hpp index 93c9c732fce..9720184d85b 100644 --- a/Common/include/geometry/primal_grid/CLine.hpp +++ b/Common/include/geometry/primal_grid/CLine.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CLine.cpp file. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/primal_grid/CPrimalGrid.hpp b/Common/include/geometry/primal_grid/CPrimalGrid.hpp index ebcdc55c5bf..b27332b0417 100644 --- a/Common/include/geometry/primal_grid/CPrimalGrid.hpp +++ b/Common/include/geometry/primal_grid/CPrimalGrid.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the primal_grid_structure.cpp file. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/primal_grid/CPrimalGridBoundFEM.hpp b/Common/include/geometry/primal_grid/CPrimalGridBoundFEM.hpp index 382982d05f1..fd7db594f6f 100644 --- a/Common/include/geometry/primal_grid/CPrimalGridBoundFEM.hpp +++ b/Common/include/geometry/primal_grid/CPrimalGridBoundFEM.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CPrimalGridBoundFEM.cpp file. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -33,7 +33,7 @@ /*! * \class CPrimalGridBoundFEM * \brief Class to define primal grid boundary element for the FEM solver. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CPrimalGridBoundFEM final : public CPrimalGrid { private: diff --git a/Common/include/geometry/primal_grid/CPrimalGridFEM.hpp b/Common/include/geometry/primal_grid/CPrimalGridFEM.hpp index fe6a71aa8e2..81c214c78ff 100644 --- a/Common/include/geometry/primal_grid/CPrimalGridFEM.hpp +++ b/Common/include/geometry/primal_grid/CPrimalGridFEM.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CPrimalGridFEM.cpp file. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -34,7 +34,7 @@ /*! * \class CPrimalGridFEM * \brief Class to define primal grid element for the FEM solver. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CPrimalGridFEM final : public CPrimalGrid { private: diff --git a/Common/include/geometry/primal_grid/CPrism.hpp b/Common/include/geometry/primal_grid/CPrism.hpp index de10df4aeb9..08b2b05bebc 100644 --- a/Common/include/geometry/primal_grid/CPrism.hpp +++ b/Common/include/geometry/primal_grid/CPrism.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CPrism.cpp file. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/primal_grid/CPyramid.hpp b/Common/include/geometry/primal_grid/CPyramid.hpp index c2dda35bd6c..11184b5d0e0 100644 --- a/Common/include/geometry/primal_grid/CPyramid.hpp +++ b/Common/include/geometry/primal_grid/CPyramid.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CPyramid.cpp file. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/primal_grid/CQuadrilateral.hpp b/Common/include/geometry/primal_grid/CQuadrilateral.hpp index 23738f4dee7..50d0c253b4a 100644 --- a/Common/include/geometry/primal_grid/CQuadrilateral.hpp +++ b/Common/include/geometry/primal_grid/CQuadrilateral.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CQuadrilateral.cpp file. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/primal_grid/CTetrahedron.hpp b/Common/include/geometry/primal_grid/CTetrahedron.hpp index 3cca03b13f5..833cd26bbc6 100644 --- a/Common/include/geometry/primal_grid/CTetrahedron.hpp +++ b/Common/include/geometry/primal_grid/CTetrahedron.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CTetrahedron.cpp file. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/primal_grid/CTriangle.hpp b/Common/include/geometry/primal_grid/CTriangle.hpp index 693c12cbd1c..a6425764694 100644 --- a/Common/include/geometry/primal_grid/CTriangle.hpp +++ b/Common/include/geometry/primal_grid/CTriangle.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CTriangle.cpp file. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/geometry/primal_grid/CVertexMPI.hpp b/Common/include/geometry/primal_grid/CVertexMPI.hpp index 1445cac9a81..66b7dc2a2d5 100644 --- a/Common/include/geometry/primal_grid/CVertexMPI.hpp +++ b/Common/include/geometry/primal_grid/CVertexMPI.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the primal_grid_structure.cpp file. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/graph_coloring_structure.hpp b/Common/include/graph_coloring_structure.hpp index 56d93acf2f4..c42c5f99048 100644 --- a/Common/include/graph_coloring_structure.hpp +++ b/Common/include/graph_coloring_structure.hpp @@ -4,7 +4,7 @@ * coloring of a given graph. The functions are in the * graph_coloring_structure.cpp file. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -41,7 +41,7 @@ using namespace std; * \ingroup Graph * \brief Class, which provides distributed graph coloring algorithms. * \author: E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CGraphColoringStructure { public: diff --git a/Common/include/grid_movement/CBSplineBlending.hpp b/Common/include/grid_movement/CBSplineBlending.hpp index deaa96e28b8..fd8d9065a73 100644 --- a/Common/include/grid_movement/CBSplineBlending.hpp +++ b/Common/include/grid_movement/CBSplineBlending.hpp @@ -3,7 +3,7 @@ * \brief Headers of the CBSplineBlending class. * Defines blending using uniform BSplines * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/grid_movement/CBezierBlending.hpp b/Common/include/grid_movement/CBezierBlending.hpp index a702a240e9a..3f0e4be1cc7 100644 --- a/Common/include/grid_movement/CBezierBlending.hpp +++ b/Common/include/grid_movement/CBezierBlending.hpp @@ -3,7 +3,7 @@ * \brief Headers of the CBezierBlending class. * Defines blending using Bernsteinpolynomials (Bezier Curves) * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/grid_movement/CFreeFormBlending.hpp b/Common/include/grid_movement/CFreeFormBlending.hpp index 48f82b1b913..6d9c6057cee 100644 --- a/Common/include/grid_movement/CFreeFormBlending.hpp +++ b/Common/include/grid_movement/CFreeFormBlending.hpp @@ -3,7 +3,7 @@ * \brief Headers of the CFreeFormBlending class. * It is the parent class for the FFD blending function * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/grid_movement/CFreeFormDefBox.hpp b/Common/include/grid_movement/CFreeFormDefBox.hpp index 7794635fbef..42a4b3eddfc 100644 --- a/Common/include/grid_movement/CFreeFormDefBox.hpp +++ b/Common/include/grid_movement/CFreeFormDefBox.hpp @@ -2,7 +2,7 @@ * \file CFreeFormDefBox.hpp * \brief Headers of the CFreeFormDefBox class. * \author F. Palacios & A. Galdran. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/grid_movement/CGridMovement.hpp b/Common/include/grid_movement/CGridMovement.hpp index 16c977ccaf5..f241c721637 100644 --- a/Common/include/grid_movement/CGridMovement.hpp +++ b/Common/include/grid_movement/CGridMovement.hpp @@ -2,7 +2,7 @@ * \file CGridMovement.hpp * \brief Headers of the CGridMovement class * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/grid_movement/CSurfaceMovement.hpp b/Common/include/grid_movement/CSurfaceMovement.hpp index 324bb327d63..9d5eacbba34 100644 --- a/Common/include/grid_movement/CSurfaceMovement.hpp +++ b/Common/include/grid_movement/CSurfaceMovement.hpp @@ -2,7 +2,7 @@ * \file CSurfaceMovement.hpp * \brief Headers of the CSurfaceMovement class. * \author F. Palacios, T. Economon. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/grid_movement/CVolumetricMovement.hpp b/Common/include/grid_movement/CVolumetricMovement.hpp index 95f324bb902..ce4a90f748f 100644 --- a/Common/include/grid_movement/CVolumetricMovement.hpp +++ b/Common/include/grid_movement/CVolumetricMovement.hpp @@ -2,7 +2,7 @@ * \file CVolumetricMovement.hpp * \brief Headers of the CVolumetricMovement class. * \author F. Palacios, A. Bueno, T. Economon, S. Padron. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/interface_interpolation/CInterpolator.hpp b/Common/include/interface_interpolation/CInterpolator.hpp index c3867a5566b..354e5fdb17d 100644 --- a/Common/include/interface_interpolation/CInterpolator.hpp +++ b/Common/include/interface_interpolation/CInterpolator.hpp @@ -2,7 +2,7 @@ * \file CInterpolator.hpp * \brief Base class for multiphysics interpolation. * \author H. Kline - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/interface_interpolation/CInterpolatorFactory.hpp b/Common/include/interface_interpolation/CInterpolatorFactory.hpp index dcc1810eccc..4419e00ffc8 100644 --- a/Common/include/interface_interpolation/CInterpolatorFactory.hpp +++ b/Common/include/interface_interpolation/CInterpolatorFactory.hpp @@ -1,7 +1,7 @@ /*! * \file CInterpolatorFactory.hpp * \brief Factory to generate interpolator objects. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/interface_interpolation/CIsoparametric.hpp b/Common/include/interface_interpolation/CIsoparametric.hpp index d3874cd8b12..fe4a19b1ebd 100644 --- a/Common/include/interface_interpolation/CIsoparametric.hpp +++ b/Common/include/interface_interpolation/CIsoparametric.hpp @@ -2,7 +2,7 @@ * \file CIsoparametric.hpp * \brief Isoparametric interpolation using FE shape functions. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/interface_interpolation/CMirror.hpp b/Common/include/interface_interpolation/CMirror.hpp index b49748b55e7..da545292ab7 100644 --- a/Common/include/interface_interpolation/CMirror.hpp +++ b/Common/include/interface_interpolation/CMirror.hpp @@ -2,7 +2,7 @@ * \file CMirror.hpp * \brief Mirror interpolation for the conservative (work-wise) approach in FSI problems. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/interface_interpolation/CNearestNeighbor.hpp b/Common/include/interface_interpolation/CNearestNeighbor.hpp index 1199ef16efc..7744fdbf104 100644 --- a/Common/include/interface_interpolation/CNearestNeighbor.hpp +++ b/Common/include/interface_interpolation/CNearestNeighbor.hpp @@ -2,7 +2,7 @@ * \file CNearestNeighbor.hpp * \brief Nearest Neighbor interpolation class. * \author H. Kline - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/interface_interpolation/CRadialBasisFunction.hpp b/Common/include/interface_interpolation/CRadialBasisFunction.hpp index d2d875c6bbb..0ba29551e23 100644 --- a/Common/include/interface_interpolation/CRadialBasisFunction.hpp +++ b/Common/include/interface_interpolation/CRadialBasisFunction.hpp @@ -2,7 +2,7 @@ * \file CRadialBasisFunction.hpp * \brief Radial basis function interpolation. * \author Joel Ho, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/interface_interpolation/CSlidingMesh.hpp b/Common/include/interface_interpolation/CSlidingMesh.hpp index 561613e5c4c..76aca29dfb1 100644 --- a/Common/include/interface_interpolation/CSlidingMesh.hpp +++ b/Common/include/interface_interpolation/CSlidingMesh.hpp @@ -2,7 +2,7 @@ * \file CSlidingMesh.hpp * \brief Sliding mesh interpolation. * \author H. Kline - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/linear_algebra/CMatrixVectorProduct.hpp b/Common/include/linear_algebra/CMatrixVectorProduct.hpp index 21e88dfb920..3a2078edd03 100644 --- a/Common/include/linear_algebra/CMatrixVectorProduct.hpp +++ b/Common/include/linear_algebra/CMatrixVectorProduct.hpp @@ -3,7 +3,7 @@ * \brief Headers for the classes related to sparse matrix-vector product wrappers. * The actual operations are currently implemented mostly by CSysMatrix. * \author F. Palacios, J. Hicken, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/linear_algebra/CPastixWrapper.hpp b/Common/include/linear_algebra/CPastixWrapper.hpp index 30d53025888..d98e22d3320 100644 --- a/Common/include/linear_algebra/CPastixWrapper.hpp +++ b/Common/include/linear_algebra/CPastixWrapper.hpp @@ -3,7 +3,7 @@ * \brief An interface to the INRIA solver PaStiX * (http://pastix.gforge.inria.fr/files/README-txt.html) * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/linear_algebra/CPreconditioner.hpp b/Common/include/linear_algebra/CPreconditioner.hpp index 56c5cd2a6da..c0f0255c0ab 100644 --- a/Common/include/linear_algebra/CPreconditioner.hpp +++ b/Common/include/linear_algebra/CPreconditioner.hpp @@ -3,7 +3,7 @@ * \brief Classes related to linear preconditioner wrappers. * The actual operations are currently implemented mostly by CSysMatrix. * \author F. Palacios, J. Hicken, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/linear_algebra/CSysMatrix.hpp b/Common/include/linear_algebra/CSysMatrix.hpp index 02747f8be07..815d52e0708 100644 --- a/Common/include/linear_algebra/CSysMatrix.hpp +++ b/Common/include/linear_algebra/CSysMatrix.hpp @@ -3,7 +3,7 @@ * \brief Declaration of the block-sparse matrix class. * The implemtation is in CSysMatrix.cpp. * \author F. Palacios, A. Bueno, T. Economon, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/linear_algebra/CSysMatrix.inl b/Common/include/linear_algebra/CSysMatrix.inl index e68d067f87c..1247d5ba51e 100644 --- a/Common/include/linear_algebra/CSysMatrix.inl +++ b/Common/include/linear_algebra/CSysMatrix.inl @@ -5,7 +5,7 @@ * of the .cpp file and so they are hidden to avoid triggering * recompilation of other units when changes are made here. * \author F. Palacios, A. Bueno, T. Economon, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/linear_algebra/CSysSolve.hpp b/Common/include/linear_algebra/CSysSolve.hpp index 5dabace2eb1..2fa23b36317 100644 --- a/Common/include/linear_algebra/CSysSolve.hpp +++ b/Common/include/linear_algebra/CSysSolve.hpp @@ -3,7 +3,7 @@ * \brief Headers for the classes related to linear solvers (CG, FGMRES, etc) * The subroutines and functions are in the CSysSolve.cpp file. * \author J. Hicken, F. Palacios, T. Economon, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/linear_algebra/CSysSolve_b.hpp b/Common/include/linear_algebra/CSysSolve_b.hpp index d292e782543..2986eace8d0 100644 --- a/Common/include/linear_algebra/CSysSolve_b.hpp +++ b/Common/include/linear_algebra/CSysSolve_b.hpp @@ -2,7 +2,7 @@ * \file CSysSolve_b.hpp * \brief Routines for the linear solver used in the reverse sweep of AD. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/linear_algebra/CSysVector.hpp b/Common/include/linear_algebra/CSysVector.hpp index 877f812f9b7..42b249b11ca 100644 --- a/Common/include/linear_algebra/CSysVector.hpp +++ b/Common/include/linear_algebra/CSysVector.hpp @@ -3,7 +3,7 @@ * \brief Declararion and inlines of the vector class used in the * solution of large, distributed, sparse linear systems. * \author P. Gomes, F. Palacios, J. Hicken, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/linear_algebra/blas_structure.hpp b/Common/include/linear_algebra/blas_structure.hpp index f236a44cff6..cf4ec42ef2a 100644 --- a/Common/include/linear_algebra/blas_structure.hpp +++ b/Common/include/linear_algebra/blas_structure.hpp @@ -4,7 +4,7 @@ operations, which are typically found in the BLAS libraries. The functions are in the blass_structure.cpp file. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -41,7 +41,7 @@ class CConfig; * \ingroup BLAS * \brief Class, which serves as an interface to the BLAS functionalities needed. * \author: E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CBlasStructure { public: diff --git a/Common/include/linear_algebra/vector_expressions.hpp b/Common/include/linear_algebra/vector_expressions.hpp index 2b458ac8303..cfa06f65296 100644 --- a/Common/include/linear_algebra/vector_expressions.hpp +++ b/Common/include/linear_algebra/vector_expressions.hpp @@ -2,7 +2,7 @@ * \file vector_expressions.hpp * \brief Expression templates for vector types with coefficient-wise operations. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 923f12cab37..ddf570ab697 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -2,7 +2,7 @@ * \file option_structure.hpp * \brief Defines classes for referencing options for easy input in CConfig * \author J. Hicken, B. Tracey - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/option_structure.inl b/Common/include/option_structure.inl index 01ed6de9bf9..3aa95f7bf19 100644 --- a/Common/include/option_structure.inl +++ b/Common/include/option_structure.inl @@ -3,7 +3,7 @@ * \brief Template derived classes from COption, defined here as we * only include them where needed to reduce compilation time. * \author J. Hicken, B. Tracey - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/parallelization/mpi_structure.cpp b/Common/include/parallelization/mpi_structure.cpp index 25d418eaf09..4f75596268f 100644 --- a/Common/include/parallelization/mpi_structure.cpp +++ b/Common/include/parallelization/mpi_structure.cpp @@ -2,7 +2,7 @@ * \file mpi_structure.cpp * \brief Main subroutines for the mpi structures. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/parallelization/mpi_structure.hpp b/Common/include/parallelization/mpi_structure.hpp index b212d770e8f..9db47a561e1 100644 --- a/Common/include/parallelization/mpi_structure.hpp +++ b/Common/include/parallelization/mpi_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the mpi interface for generalized datatypes. * The subroutines and functions are in the mpi_structure.cpp file. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/parallelization/omp_structure.cpp b/Common/include/parallelization/omp_structure.cpp index 4e5d662f435..3cb3ceef67b 100644 --- a/Common/include/parallelization/omp_structure.cpp +++ b/Common/include/parallelization/omp_structure.cpp @@ -3,7 +3,7 @@ * \brief Source file counterpart for omp_structure.hpp. * \note Contains OpDiLib initialization, finalization and includes the OpDiLib source file. * \author J. Blühdorn - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/parallelization/omp_structure.hpp b/Common/include/parallelization/omp_structure.hpp index 79bd6c9fd26..13baa854d74 100644 --- a/Common/include/parallelization/omp_structure.hpp +++ b/Common/include/parallelization/omp_structure.hpp @@ -13,7 +13,7 @@ * defined here with suitable fallback versions to limit the spread of * compiler tricks in other areas of the code. * \author P. Gomes, J. Blühdorn - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/parallelization/special_vectorization.hpp b/Common/include/parallelization/special_vectorization.hpp index 48674c60335..d0a99e68eb9 100644 --- a/Common/include/parallelization/special_vectorization.hpp +++ b/Common/include/parallelization/special_vectorization.hpp @@ -2,7 +2,7 @@ * \file special_vectorization.hpp * \brief Code generator header to create specializations of simd::Array. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/parallelization/vectorization.hpp b/Common/include/parallelization/vectorization.hpp index 9f6db32a912..50316359fc8 100644 --- a/Common/include/parallelization/vectorization.hpp +++ b/Common/include/parallelization/vectorization.hpp @@ -2,7 +2,7 @@ * \file vectorization.hpp * \brief Implementation of a portable SIMD type. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/C1DInterpolation.hpp b/Common/include/toolboxes/C1DInterpolation.hpp index 3b6a083243f..d00915043cf 100644 --- a/Common/include/toolboxes/C1DInterpolation.hpp +++ b/Common/include/toolboxes/C1DInterpolation.hpp @@ -2,7 +2,7 @@ * \file C1DInterpolation.hpp * \brief Classes for 1D interpolation. * \author Aman Baig, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/CLinearPartitioner.hpp b/Common/include/toolboxes/CLinearPartitioner.hpp index bf568f2ba03..54380012f62 100644 --- a/Common/include/toolboxes/CLinearPartitioner.hpp +++ b/Common/include/toolboxes/CLinearPartitioner.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CLinearPartitioner. * The implementations are in the CLinearPartitioner.cpp file. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/CQuasiNewtonInvLeastSquares.hpp b/Common/include/toolboxes/CQuasiNewtonInvLeastSquares.hpp index 950335e93d7..8e76fc611b1 100644 --- a/Common/include/toolboxes/CQuasiNewtonInvLeastSquares.hpp +++ b/Common/include/toolboxes/CQuasiNewtonInvLeastSquares.hpp @@ -7,7 +7,7 @@ * \note Based on the IQN-ILS method, see DOI 10.1007/s11831-013-9085-5 and * references therein. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/CSquareMatrixCM.hpp b/Common/include/toolboxes/CSquareMatrixCM.hpp index 82ab533f882..c162fa78e77 100644 --- a/Common/include/toolboxes/CSquareMatrixCM.hpp +++ b/Common/include/toolboxes/CSquareMatrixCM.hpp @@ -3,7 +3,7 @@ * \brief Dense general square matrix, used for example in DG standard elements * in Column Major order storage. * \author Edwin van der Weide, Pedro Gomes. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/CSymmetricMatrix.hpp b/Common/include/toolboxes/CSymmetricMatrix.hpp index d4ddbd8d246..cc361c8128c 100644 --- a/Common/include/toolboxes/CSymmetricMatrix.hpp +++ b/Common/include/toolboxes/CSymmetricMatrix.hpp @@ -2,7 +2,7 @@ * \file CSymmetricMatrix.hpp * \brief Dense symmetric matrix, used for example in RBF interpolation. * \author Joel Ho, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CIncTGVSolution.hpp b/Common/include/toolboxes/MMS/CIncTGVSolution.hpp index de8a24771a2..f5fc18476bc 100644 --- a/Common/include/toolboxes/MMS/CIncTGVSolution.hpp +++ b/Common/include/toolboxes/MMS/CIncTGVSolution.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CIncTGVSolution. * The implementations are in the CIncTGVSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CInviscidVortexSolution.hpp b/Common/include/toolboxes/MMS/CInviscidVortexSolution.hpp index f0ed7bbd121..903da8081f2 100644 --- a/Common/include/toolboxes/MMS/CInviscidVortexSolution.hpp +++ b/Common/include/toolboxes/MMS/CInviscidVortexSolution.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CInviscidVortexSolution. * The implementations are in the CInviscidVortexSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CMMSIncEulerSolution.hpp b/Common/include/toolboxes/MMS/CMMSIncEulerSolution.hpp index f15dcda7478..6a524cf139b 100644 --- a/Common/include/toolboxes/MMS/CMMSIncEulerSolution.hpp +++ b/Common/include/toolboxes/MMS/CMMSIncEulerSolution.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CMMSIncEulerSolution. * The implementations are in the CMMSIncEulerSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CMMSIncNSSolution.hpp b/Common/include/toolboxes/MMS/CMMSIncNSSolution.hpp index 176aefab105..243e853e9a9 100644 --- a/Common/include/toolboxes/MMS/CMMSIncNSSolution.hpp +++ b/Common/include/toolboxes/MMS/CMMSIncNSSolution.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CMMSIncNSSolution. * The implementations are in the CMMSIncNSSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.hpp b/Common/include/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.hpp index f119dada9ca..8fb3cd1db8e 100644 --- a/Common/include/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.hpp +++ b/Common/include/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CMMSNSTwoHalfCirclesSolution. * The implementations are in the CMMSNSTwoHalfCirclesSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.hpp b/Common/include/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.hpp index e1887e38de4..296e9206a14 100644 --- a/Common/include/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.hpp +++ b/Common/include/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CMMSNSTwoHalfSpheresSolution. * The implementations are in the CMMSNSTwoHalfSpheresSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolution.hpp b/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolution.hpp index 8f850bbb36f..d563aaf3376 100644 --- a/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolution.hpp +++ b/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolution.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CMMSNSUnitQuadSolution. * The implementations are in the CMMSNSUnitQuadSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.hpp b/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.hpp index 7ffbbb528fc..51ecfca646a 100644 --- a/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.hpp +++ b/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CMMSNSUnitQuadSolutionWallBC. * The implementations are in the CMMSNSUnitQuadSolutionWallBC.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CNSUnitQuadSolution.hpp b/Common/include/toolboxes/MMS/CNSUnitQuadSolution.hpp index c01234c11b9..c70f9c22574 100644 --- a/Common/include/toolboxes/MMS/CNSUnitQuadSolution.hpp +++ b/Common/include/toolboxes/MMS/CNSUnitQuadSolution.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CNSUnitQuadSolution.hpp. * The implementations are in the CNSUnitQuadSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CRinglebSolution.hpp b/Common/include/toolboxes/MMS/CRinglebSolution.hpp index ef31b41ec5d..0a1ba2627fe 100644 --- a/Common/include/toolboxes/MMS/CRinglebSolution.hpp +++ b/Common/include/toolboxes/MMS/CRinglebSolution.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CRinglebSolution.hpp. * The implementations are in the CRinglebSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CTGVSolution.hpp b/Common/include/toolboxes/MMS/CTGVSolution.hpp index 9f6703b4365..2e7961318a0 100644 --- a/Common/include/toolboxes/MMS/CTGVSolution.hpp +++ b/Common/include/toolboxes/MMS/CTGVSolution.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CTGVSolution. * The implementations are in the CTGVSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CUserDefinedSolution.hpp b/Common/include/toolboxes/MMS/CUserDefinedSolution.hpp index 39fcac11b48..c4efb5c4324 100644 --- a/Common/include/toolboxes/MMS/CUserDefinedSolution.hpp +++ b/Common/include/toolboxes/MMS/CUserDefinedSolution.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CUserDefinedSolution. * The implementations are in the CUserDefinedSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/MMS/CVerificationSolution.hpp b/Common/include/toolboxes/MMS/CVerificationSolution.hpp index fa7dc6abb29..0e70f3e276f 100644 --- a/Common/include/toolboxes/MMS/CVerificationSolution.hpp +++ b/Common/include/toolboxes/MMS/CVerificationSolution.hpp @@ -3,7 +3,7 @@ * \brief Header file for the base class CVerificationSolution. * The implementations are in the CVerificationSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/allocation_toolbox.hpp b/Common/include/toolboxes/allocation_toolbox.hpp index 15ce1b43f9d..b3476950179 100644 --- a/Common/include/toolboxes/allocation_toolbox.hpp +++ b/Common/include/toolboxes/allocation_toolbox.hpp @@ -5,7 +5,7 @@ * \note These are "kernel" functions, only to be used with good reason, * always try to use higher level container classes. * \author P. Gomes, D. Kavolis - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/geometry_toolbox.hpp b/Common/include/toolboxes/geometry_toolbox.hpp index ce0baf55bf6..773f1d553dc 100644 --- a/Common/include/toolboxes/geometry_toolbox.hpp +++ b/Common/include/toolboxes/geometry_toolbox.hpp @@ -1,7 +1,7 @@ /*! * \file geometry_toolbox.hpp * \brief Collection of common lightweight geometry-oriented methods. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/graph_toolbox.hpp b/Common/include/toolboxes/graph_toolbox.hpp index 761a59add3d..27779d7f2f8 100644 --- a/Common/include/toolboxes/graph_toolbox.hpp +++ b/Common/include/toolboxes/graph_toolbox.hpp @@ -2,7 +2,7 @@ * \file graph_toolbox.hpp * \brief Functions and classes to build/represent sparse graphs or sparse patterns. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/ndflattener.hpp b/Common/include/toolboxes/ndflattener.hpp index 578de73f5fa..5c21dcd1073 100644 --- a/Common/include/toolboxes/ndflattener.hpp +++ b/Common/include/toolboxes/ndflattener.hpp @@ -2,7 +2,7 @@ * \file ndflattener.hpp * \brief Flatten pointer-to-pointer-... arrays for MPI communication * \author M. Aehle - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/toolboxes/printing_toolbox.hpp b/Common/include/toolboxes/printing_toolbox.hpp index 5f515049dad..6b4466f4408 100644 --- a/Common/include/toolboxes/printing_toolbox.hpp +++ b/Common/include/toolboxes/printing_toolbox.hpp @@ -2,7 +2,7 @@ * \file printing_toolbox.hpp * \brief Header file for the printing toolbox. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/include/wall_model.hpp b/Common/include/wall_model.hpp index 1c7ee45c2b0..9edb7ded85a 100644 --- a/Common/include/wall_model.hpp +++ b/Common/include/wall_model.hpp @@ -2,7 +2,7 @@ * \file wall_model.hpp * \brief Headers for the wall model functions for large eddy simulations. * \author E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -42,7 +42,7 @@ class CFluidModel; * \class CWallModel * \brief Base class for defining the LES wall model. * \author: E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CWallModel { public: diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 276c66ebf60..4777616f550 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -2,7 +2,7 @@ * \file CConfig.cpp * \brief Main file for managing the config file * \author F. Palacios, T. Economon, B. Tracey, H. Kline - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -3266,7 +3266,7 @@ void CConfig::SetHeader(SU2_COMPONENT val_software) const{ cout << "\n"; cout << "-------------------------------------------------------------------------\n"; cout << "| ___ _ _ ___ |\n"; - cout << "| / __| | | |_ ) Release 8.0.1 \"Harrier\" |\n"; + cout << "| / __| | | |_ ) Release 8.1.0 \"Harrier\" |\n"; cout << "| \\__ \\ |_| |/ / |\n"; switch (val_software) { case SU2_COMPONENT::SU2_CFD: cout << "| |___/\\___//___| Suite (Computational Fluid Dynamics Code) |\n"; break; diff --git a/Common/src/adt/CADTBaseClass.cpp b/Common/src/adt/CADTBaseClass.cpp index 7427bbd54b9..dcbbf67c322 100644 --- a/Common/src/adt/CADTBaseClass.cpp +++ b/Common/src/adt/CADTBaseClass.cpp @@ -2,7 +2,7 @@ * \file CADTBaseClass.cpp * \brief Base class for storing an ADT in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/adt/CADTElemClass.cpp b/Common/src/adt/CADTElemClass.cpp index 378d8933377..6d8b0cfcb50 100644 --- a/Common/src/adt/CADTElemClass.cpp +++ b/Common/src/adt/CADTElemClass.cpp @@ -2,7 +2,7 @@ * \file CADTElemClass.cpp * \brief Class for storing an ADT of (linear) elements in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/adt/CADTPointsOnlyClass.cpp b/Common/src/adt/CADTPointsOnlyClass.cpp index a427a26b6a2..82835a86cf4 100644 --- a/Common/src/adt/CADTPointsOnlyClass.cpp +++ b/Common/src/adt/CADTPointsOnlyClass.cpp @@ -2,7 +2,7 @@ * \file CADTPointsOnlyClass.cpp * \brief Class for storing an ADT of only points in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/basic_types/ad_structure.cpp b/Common/src/basic_types/ad_structure.cpp index bd71817b57f..62e75a84397 100644 --- a/Common/src/basic_types/ad_structure.cpp +++ b/Common/src/basic_types/ad_structure.cpp @@ -2,7 +2,7 @@ * \file ad_structure.cpp * \brief Main subroutines for the algorithmic differentiation (AD) structure. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/containers/CFileReaderLUT.cpp b/Common/src/containers/CFileReaderLUT.cpp index 55a496697a1..93bceaaca8a 100644 --- a/Common/src/containers/CFileReaderLUT.cpp +++ b/Common/src/containers/CFileReaderLUT.cpp @@ -2,7 +2,7 @@ * \file CFileReaderLUT.cpp * \brief reading lookup table for tabulated fluid properties * \author D. Mayer, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/containers/CLookUpTable.cpp b/Common/src/containers/CLookUpTable.cpp index 16c042efba7..b96fcddaa55 100644 --- a/Common/src/containers/CLookUpTable.cpp +++ b/Common/src/containers/CLookUpTable.cpp @@ -2,7 +2,7 @@ * \file CLookupTable.cpp * \brief tabulation of fluid properties * \author D. Mayer, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/containers/CTrapezoidalMap.cpp b/Common/src/containers/CTrapezoidalMap.cpp index e5494437362..17b7e329a9e 100644 --- a/Common/src/containers/CTrapezoidalMap.cpp +++ b/Common/src/containers/CTrapezoidalMap.cpp @@ -2,7 +2,7 @@ * \file CTrapezoidalMap.cpp * \brief Implementation of the trapezoidal map for tabulation and lookup of fluid properties * \author D. Mayer, T. Economon, N. Beishuizen - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/fem/fem_cgns_elements.cpp b/Common/src/fem/fem_cgns_elements.cpp index 118bdab3202..e4df7f0393b 100644 --- a/Common/src/fem/fem_cgns_elements.cpp +++ b/Common/src/fem/fem_cgns_elements.cpp @@ -2,7 +2,7 @@ * \file fem_cgns_elements.cpp * \brief CGNS element definitions and conversions to the SU2 standard. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/fem/fem_gauss_jacobi_quadrature.cpp b/Common/src/fem/fem_gauss_jacobi_quadrature.cpp index 647f324eecd..0731d763e4f 100644 --- a/Common/src/fem/fem_gauss_jacobi_quadrature.cpp +++ b/Common/src/fem/fem_gauss_jacobi_quadrature.cpp @@ -4,7 +4,7 @@ quadrature rules. All the functions in this file are based on the program JACOBI_RULE of John Burkardt. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/fem/fem_geometry_structure.cpp b/Common/src/fem/fem_geometry_structure.cpp index e707346c995..e671a2d0265 100644 --- a/Common/src/fem/fem_geometry_structure.cpp +++ b/Common/src/fem/fem_geometry_structure.cpp @@ -2,7 +2,7 @@ * \file fem_geometry_structure.cpp * \brief Functions for creating the primal grid for the FEM solver. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/fem/fem_integration_rules.cpp b/Common/src/fem/fem_integration_rules.cpp index 3b37b8b1369..79ccc4dc2ff 100644 --- a/Common/src/fem/fem_integration_rules.cpp +++ b/Common/src/fem/fem_integration_rules.cpp @@ -2,7 +2,7 @@ * \file fem_integration_rules.cpp * \brief FEM integration rules for the standard elements. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/fem/fem_standard_element.cpp b/Common/src/fem/fem_standard_element.cpp index 37b5801c08b..b24c7cacfaf 100644 --- a/Common/src/fem/fem_standard_element.cpp +++ b/Common/src/fem/fem_standard_element.cpp @@ -2,7 +2,7 @@ * \file fem_standard_element.cpp * \brief Functions for the FEM standard elements. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/fem/fem_wall_distance.cpp b/Common/src/fem/fem_wall_distance.cpp index 09b916f4456..e87a708d2c2 100644 --- a/Common/src/fem/fem_wall_distance.cpp +++ b/Common/src/fem/fem_wall_distance.cpp @@ -2,7 +2,7 @@ * \file fem_wall_distance.cpp * \brief Main subroutines for computing the wall distance for the FEM solver. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/fem/fem_work_estimate_metis.cpp b/Common/src/fem/fem_work_estimate_metis.cpp index 86d323d5c6e..02841cc459a 100644 --- a/Common/src/fem/fem_work_estimate_metis.cpp +++ b/Common/src/fem/fem_work_estimate_metis.cpp @@ -3,7 +3,7 @@ * \brief This file contains the implementation of the member functions WorkEstimateMetis for the FEM standard elements. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/fem/geometry_structure_fem_part.cpp b/Common/src/fem/geometry_structure_fem_part.cpp index a334aba6bde..d9536a67903 100644 --- a/Common/src/fem/geometry_structure_fem_part.cpp +++ b/Common/src/fem/geometry_structure_fem_part.cpp @@ -2,7 +2,7 @@ * \file geometry_structure_fem_part.cpp * \brief Main subroutines for distributin the grid for the Fluid FEM solver. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/CDummyGeometry.cpp b/Common/src/geometry/CDummyGeometry.cpp index d4cea5303d0..f77e5961b5b 100644 --- a/Common/src/geometry/CDummyGeometry.cpp +++ b/Common/src/geometry/CDummyGeometry.cpp @@ -2,7 +2,7 @@ * \file CDummyGeometry.hpp * \brief Implementation of the dummy geometry class used in "dry run" mode. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/CGeometry.cpp b/Common/src/geometry/CGeometry.cpp index b1c77372141..cf1a6948c5f 100644 --- a/Common/src/geometry/CGeometry.cpp +++ b/Common/src/geometry/CGeometry.cpp @@ -2,7 +2,7 @@ * \file CGeometry.cpp * \brief Implementation of the base geometry class. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/CMultiGridGeometry.cpp b/Common/src/geometry/CMultiGridGeometry.cpp index 00cc4ebf009..8c5bfddf39e 100644 --- a/Common/src/geometry/CMultiGridGeometry.cpp +++ b/Common/src/geometry/CMultiGridGeometry.cpp @@ -2,7 +2,7 @@ * \file CMultiGridGeometry.cpp * \brief Implementation of the multigrid geometry class. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/CMultiGridQueue.cpp b/Common/src/geometry/CMultiGridQueue.cpp index dc7b99273bb..bc77395b94a 100644 --- a/Common/src/geometry/CMultiGridQueue.cpp +++ b/Common/src/geometry/CMultiGridQueue.cpp @@ -2,7 +2,7 @@ * \file CMultiGridQueue.cpp * \brief Implementation of the multigrid queue class for the FVM solver. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/CPhysicalGeometry.cpp b/Common/src/geometry/CPhysicalGeometry.cpp index b9b0a0f36cb..6e34e715be5 100644 --- a/Common/src/geometry/CPhysicalGeometry.cpp +++ b/Common/src/geometry/CPhysicalGeometry.cpp @@ -2,7 +2,7 @@ * \file CPhysicalGeometry.cpp * \brief Implementation of the physical geometry class. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/dual_grid/CDualGrid.cpp b/Common/src/geometry/dual_grid/CDualGrid.cpp index d7b9e8e9f82..3d3bab552ad 100644 --- a/Common/src/geometry/dual_grid/CDualGrid.cpp +++ b/Common/src/geometry/dual_grid/CDualGrid.cpp @@ -2,7 +2,7 @@ * \file CDualGrid.cpp * \brief Main classes for defining the dual grid * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/dual_grid/CEdge.cpp b/Common/src/geometry/dual_grid/CEdge.cpp index 9d6240a0c2e..8e166575b7f 100644 --- a/Common/src/geometry/dual_grid/CEdge.cpp +++ b/Common/src/geometry/dual_grid/CEdge.cpp @@ -2,7 +2,7 @@ * \file CEdge.cpp * \brief Implementation of the edge class. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/dual_grid/CPoint.cpp b/Common/src/geometry/dual_grid/CPoint.cpp index f11b7dd8945..35c45a826b4 100644 --- a/Common/src/geometry/dual_grid/CPoint.cpp +++ b/Common/src/geometry/dual_grid/CPoint.cpp @@ -2,7 +2,7 @@ * \file CPoint.cpp * \brief Main classes for defining the points of the dual grid * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/dual_grid/CTurboVertex.cpp b/Common/src/geometry/dual_grid/CTurboVertex.cpp index 5c931cf5438..bc07e827ee0 100644 --- a/Common/src/geometry/dual_grid/CTurboVertex.cpp +++ b/Common/src/geometry/dual_grid/CTurboVertex.cpp @@ -2,7 +2,7 @@ * \file CTurboVertex.cpp * \brief Main classes for defining the turbo vertices of the dual grid * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/dual_grid/CVertex.cpp b/Common/src/geometry/dual_grid/CVertex.cpp index 9423f2444a7..a3e2b58aef4 100644 --- a/Common/src/geometry/dual_grid/CVertex.cpp +++ b/Common/src/geometry/dual_grid/CVertex.cpp @@ -2,7 +2,7 @@ * \file CVertex.cpp * \brief Main classes for defining the vertices of the dual grid * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/elements/CElement.cpp b/Common/src/geometry/elements/CElement.cpp index 4dc82bcbdc1..c42a3707562 100644 --- a/Common/src/geometry/elements/CElement.cpp +++ b/Common/src/geometry/elements/CElement.cpp @@ -2,7 +2,7 @@ * \file CElement.cpp * \brief Definition of the Finite Element structure (elements) * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/elements/CHEXA8.cpp b/Common/src/geometry/elements/CHEXA8.cpp index f224f9d4336..d7066e3a7be 100644 --- a/Common/src/geometry/elements/CHEXA8.cpp +++ b/Common/src/geometry/elements/CHEXA8.cpp @@ -2,7 +2,7 @@ * \file CHEXA8.cpp * \brief Definition of 8-node hexa element with 8 Gauss points. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/elements/CLINE.cpp b/Common/src/geometry/elements/CLINE.cpp index 013bddb1138..b4030a55d1f 100644 --- a/Common/src/geometry/elements/CLINE.cpp +++ b/Common/src/geometry/elements/CLINE.cpp @@ -2,7 +2,7 @@ * \file CLINE.cpp * \brief Definition of the 2-node line element with two Gauss points. * \author T. Dick - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/elements/CPRISM6.cpp b/Common/src/geometry/elements/CPRISM6.cpp index 7da15e8f459..d4e12dd8fd7 100644 --- a/Common/src/geometry/elements/CPRISM6.cpp +++ b/Common/src/geometry/elements/CPRISM6.cpp @@ -2,7 +2,7 @@ * \file CPRISM6.cpp * \brief Definition of the 6-node triangular prism element with 6 Gauss points. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/elements/CPYRAM5.cpp b/Common/src/geometry/elements/CPYRAM5.cpp index c1f31a4c562..ea6981adb92 100644 --- a/Common/src/geometry/elements/CPYRAM5.cpp +++ b/Common/src/geometry/elements/CPYRAM5.cpp @@ -2,7 +2,7 @@ * \file CPYRAM5.cpp * \brief Definition of 5-node pyramid element with 5 Gauss points. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/elements/CPYRAM6.cpp b/Common/src/geometry/elements/CPYRAM6.cpp index d50237c9824..c0a4a72a848 100644 --- a/Common/src/geometry/elements/CPYRAM6.cpp +++ b/Common/src/geometry/elements/CPYRAM6.cpp @@ -2,7 +2,7 @@ * \file CPYRAM6.cpp * \brief Definition of 5-node pyramid element with 6 Gauss points. * \author T.Dick - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/elements/CQUAD4.cpp b/Common/src/geometry/elements/CQUAD4.cpp index 588211a0860..07725a3af19 100644 --- a/Common/src/geometry/elements/CQUAD4.cpp +++ b/Common/src/geometry/elements/CQUAD4.cpp @@ -2,7 +2,7 @@ * \file CQUAD4.cpp * \brief Definition of the 4-node quadrilateral element with 4 Gauss points. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/elements/CTETRA1.cpp b/Common/src/geometry/elements/CTETRA1.cpp index bca60b148fd..320cb53ca06 100644 --- a/Common/src/geometry/elements/CTETRA1.cpp +++ b/Common/src/geometry/elements/CTETRA1.cpp @@ -2,7 +2,7 @@ * \file CTETRA1.cpp * \brief Definition of 4-node tetra element with 1 Gauss point. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/elements/CTETRA4.cpp b/Common/src/geometry/elements/CTETRA4.cpp index bfa5000b5fa..7a1126db024 100644 --- a/Common/src/geometry/elements/CTETRA4.cpp +++ b/Common/src/geometry/elements/CTETRA4.cpp @@ -2,7 +2,7 @@ * \file CTETRA4.cpp * \brief Definition of 4-node tetrahedral element with 4 Gauss point. * \author T. Dick - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/elements/CTRIA1.cpp b/Common/src/geometry/elements/CTRIA1.cpp index 8f5ffe9c488..bbfbc70d841 100644 --- a/Common/src/geometry/elements/CTRIA1.cpp +++ b/Common/src/geometry/elements/CTRIA1.cpp @@ -2,7 +2,7 @@ * \file CTRIA1.cpp * \brief Definition of the 3-node triangular element with one Gauss point. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/elements/CTRIA3.cpp b/Common/src/geometry/elements/CTRIA3.cpp index 74ba392fd07..64db08bc07f 100644 --- a/Common/src/geometry/elements/CTRIA3.cpp +++ b/Common/src/geometry/elements/CTRIA3.cpp @@ -2,7 +2,7 @@ * \file CTRIA3.cpp * \brief Definition of the 3-node triangular element with three Gauss points. * \author T. Dick - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/meshreader/CBoxMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CBoxMeshReaderFVM.cpp index a2ecea4d894..e4ee811eaec 100644 --- a/Common/src/geometry/meshreader/CBoxMeshReaderFVM.cpp +++ b/Common/src/geometry/meshreader/CBoxMeshReaderFVM.cpp @@ -3,7 +3,7 @@ * \brief Reads a 3D box grid into linear partitions for the * finite volume solver (FVM). * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp index 5ff6e20db45..cdd06c285d6 100644 --- a/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp +++ b/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp @@ -3,7 +3,7 @@ * \brief Class that reads a single zone of a CGNS mesh file from disk into * linear partitions across all ranks. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/meshreader/CMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CMeshReaderFVM.cpp index 2448345f14a..17069bf7b25 100644 --- a/Common/src/geometry/meshreader/CMeshReaderFVM.cpp +++ b/Common/src/geometry/meshreader/CMeshReaderFVM.cpp @@ -3,7 +3,7 @@ * \brief Helper class that provides the counts for each rank in a linear * partitioning given the global count as input. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/meshreader/CRectangularMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CRectangularMeshReaderFVM.cpp index 42e08210541..5b89744bf2a 100644 --- a/Common/src/geometry/meshreader/CRectangularMeshReaderFVM.cpp +++ b/Common/src/geometry/meshreader/CRectangularMeshReaderFVM.cpp @@ -3,7 +3,7 @@ * \brief Reads a 2D rectangular grid into linear partitions for the * finite volume solver (FVM). * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/meshreader/CSU2ASCIIMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CSU2ASCIIMeshReaderFVM.cpp index 9be5dfbc053..e0ebfcc5acb 100644 --- a/Common/src/geometry/meshreader/CSU2ASCIIMeshReaderFVM.cpp +++ b/Common/src/geometry/meshreader/CSU2ASCIIMeshReaderFVM.cpp @@ -3,7 +3,7 @@ * \brief Reads a native SU2 ASCII grid into linear partitions for the * finite volume solver (FVM). * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/primal_grid/CHexahedron.cpp b/Common/src/geometry/primal_grid/CHexahedron.cpp index bc479ad2afb..024da3dac1b 100644 --- a/Common/src/geometry/primal_grid/CHexahedron.cpp +++ b/Common/src/geometry/primal_grid/CHexahedron.cpp @@ -2,7 +2,7 @@ * \file CHexahedron.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/primal_grid/CLine.cpp b/Common/src/geometry/primal_grid/CLine.cpp index c567219bb30..50d265dbbd8 100644 --- a/Common/src/geometry/primal_grid/CLine.cpp +++ b/Common/src/geometry/primal_grid/CLine.cpp @@ -2,7 +2,7 @@ * \file CLine.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/primal_grid/CPrimalGrid.cpp b/Common/src/geometry/primal_grid/CPrimalGrid.cpp index 829a6d8cacb..f2eea19db9d 100644 --- a/Common/src/geometry/primal_grid/CPrimalGrid.cpp +++ b/Common/src/geometry/primal_grid/CPrimalGrid.cpp @@ -2,7 +2,7 @@ * \file CPrimalGrid.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/primal_grid/CPrimalGridBoundFEM.cpp b/Common/src/geometry/primal_grid/CPrimalGridBoundFEM.cpp index a36e7a21782..cebb3aa2ebf 100644 --- a/Common/src/geometry/primal_grid/CPrimalGridBoundFEM.cpp +++ b/Common/src/geometry/primal_grid/CPrimalGridBoundFEM.cpp @@ -2,7 +2,7 @@ * \file CPrimalGridBoundFEM.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/primal_grid/CPrimalGridFEM.cpp b/Common/src/geometry/primal_grid/CPrimalGridFEM.cpp index 13eca23441a..1d1405ddbb8 100644 --- a/Common/src/geometry/primal_grid/CPrimalGridFEM.cpp +++ b/Common/src/geometry/primal_grid/CPrimalGridFEM.cpp @@ -2,7 +2,7 @@ * \file CPrimalGridFEM.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/primal_grid/CPrism.cpp b/Common/src/geometry/primal_grid/CPrism.cpp index a34fd6f312a..4480ad04227 100644 --- a/Common/src/geometry/primal_grid/CPrism.cpp +++ b/Common/src/geometry/primal_grid/CPrism.cpp @@ -2,7 +2,7 @@ * \file CPrism.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/primal_grid/CPyramid.cpp b/Common/src/geometry/primal_grid/CPyramid.cpp index 395aab2ba3b..56bb3c03ec2 100644 --- a/Common/src/geometry/primal_grid/CPyramid.cpp +++ b/Common/src/geometry/primal_grid/CPyramid.cpp @@ -2,7 +2,7 @@ * \file CPyramid.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/primal_grid/CQuadrilateral.cpp b/Common/src/geometry/primal_grid/CQuadrilateral.cpp index fa18ba61572..40a4eaa1777 100644 --- a/Common/src/geometry/primal_grid/CQuadrilateral.cpp +++ b/Common/src/geometry/primal_grid/CQuadrilateral.cpp @@ -2,7 +2,7 @@ * \file CQuadrilateral.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/primal_grid/CTetrahedron.cpp b/Common/src/geometry/primal_grid/CTetrahedron.cpp index e7c6b09a9c4..5e7ca71f484 100644 --- a/Common/src/geometry/primal_grid/CTetrahedron.cpp +++ b/Common/src/geometry/primal_grid/CTetrahedron.cpp @@ -2,7 +2,7 @@ * \file CTetrahedron.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/primal_grid/CTriangle.cpp b/Common/src/geometry/primal_grid/CTriangle.cpp index 326a1bf9464..585ba1a2e9d 100644 --- a/Common/src/geometry/primal_grid/CTriangle.cpp +++ b/Common/src/geometry/primal_grid/CTriangle.cpp @@ -2,7 +2,7 @@ * \file CTriangle.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/geometry/primal_grid/CVertexMPI.cpp b/Common/src/geometry/primal_grid/CVertexMPI.cpp index a1ce2de1b10..37b66e400fd 100644 --- a/Common/src/geometry/primal_grid/CVertexMPI.cpp +++ b/Common/src/geometry/primal_grid/CVertexMPI.cpp @@ -2,7 +2,7 @@ * \file CVertexMPI.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/graph_coloring_structure.cpp b/Common/src/graph_coloring_structure.cpp index 5ae2efefc8a..2e8b88a9c90 100644 --- a/Common/src/graph_coloring_structure.cpp +++ b/Common/src/graph_coloring_structure.cpp @@ -2,7 +2,7 @@ * \file graph_coloring_structure.cpp * \brief Functions used to carry out the coloring of a given graph. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/grid_movement/CBSplineBlending.cpp b/Common/src/grid_movement/CBSplineBlending.cpp index e7f79e6bf9c..f86d757ae10 100644 --- a/Common/src/grid_movement/CBSplineBlending.cpp +++ b/Common/src/grid_movement/CBSplineBlending.cpp @@ -2,7 +2,7 @@ * \file CBSplineBlending.cpp * \brief Subroutines for B-Spline blening for FFDs * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/grid_movement/CBezierBlending.cpp b/Common/src/grid_movement/CBezierBlending.cpp index e3440d61fd8..c4bca57fc19 100644 --- a/Common/src/grid_movement/CBezierBlending.cpp +++ b/Common/src/grid_movement/CBezierBlending.cpp @@ -2,7 +2,7 @@ * \file CBezierBlending.cpp * \brief Subroutines for Bezier blending for FFDs * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/grid_movement/CFreeFormBlending.cpp b/Common/src/grid_movement/CFreeFormBlending.cpp index 78cffdc6f83..bb678e0bc7e 100644 --- a/Common/src/grid_movement/CFreeFormBlending.cpp +++ b/Common/src/grid_movement/CFreeFormBlending.cpp @@ -2,7 +2,7 @@ * \file CFreeFormBlending.cpp * \brief Parent class for FFD Blending functions * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/grid_movement/CFreeFormDefBox.cpp b/Common/src/grid_movement/CFreeFormDefBox.cpp index 6cfd9cc8c85..8f9cad34bce 100644 --- a/Common/src/grid_movement/CFreeFormDefBox.cpp +++ b/Common/src/grid_movement/CFreeFormDefBox.cpp @@ -2,7 +2,7 @@ * \file CFreeFormDefBox.cpp * \brief Subroutines for handling Free-Form Deformation Boxes * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/grid_movement/CGridMovement.cpp b/Common/src/grid_movement/CGridMovement.cpp index f055d0a2d25..76dedec7abf 100644 --- a/Common/src/grid_movement/CGridMovement.cpp +++ b/Common/src/grid_movement/CGridMovement.cpp @@ -2,7 +2,7 @@ * \file CGridMovement.cpp * \brief Parent class for grid movement classes * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/grid_movement/CSurfaceMovement.cpp b/Common/src/grid_movement/CSurfaceMovement.cpp index 5c29534fb39..a349c6f103d 100644 --- a/Common/src/grid_movement/CSurfaceMovement.cpp +++ b/Common/src/grid_movement/CSurfaceMovement.cpp @@ -2,7 +2,7 @@ * \file CSurfaceMovement.cpp * \brief Subroutines for moving mesh surface elements * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/grid_movement/CVolumetricMovement.cpp b/Common/src/grid_movement/CVolumetricMovement.cpp index efd2a6f2b74..7a60d2f81ec 100644 --- a/Common/src/grid_movement/CVolumetricMovement.cpp +++ b/Common/src/grid_movement/CVolumetricMovement.cpp @@ -2,7 +2,7 @@ * \file CVolumetricMovement.cpp * \brief Subroutines for moving mesh volume elements * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/interface_interpolation/CInterpolator.cpp b/Common/src/interface_interpolation/CInterpolator.cpp index a9fac5a343a..f8eb835b6b9 100644 --- a/Common/src/interface_interpolation/CInterpolator.cpp +++ b/Common/src/interface_interpolation/CInterpolator.cpp @@ -2,7 +2,7 @@ * \file CInterpolator.cpp * \brief Definition of the base class for interface interpolation. * \author H. Kline - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/interface_interpolation/CInterpolatorFactory.cpp b/Common/src/interface_interpolation/CInterpolatorFactory.cpp index c7a077bbdd2..186ed038bae 100644 --- a/Common/src/interface_interpolation/CInterpolatorFactory.cpp +++ b/Common/src/interface_interpolation/CInterpolatorFactory.cpp @@ -1,7 +1,7 @@ /*! * \file CInterpolatorFactory.cpp * \brief Factory to generate interpolator objects. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/interface_interpolation/CIsoparametric.cpp b/Common/src/interface_interpolation/CIsoparametric.cpp index 31f1b6ed5f2..f1d15deb00c 100644 --- a/Common/src/interface_interpolation/CIsoparametric.cpp +++ b/Common/src/interface_interpolation/CIsoparametric.cpp @@ -2,7 +2,7 @@ * \file CIsoparametric.cpp * \brief Implementation isoparametric interpolation (using FE shape functions). * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/interface_interpolation/CMirror.cpp b/Common/src/interface_interpolation/CMirror.cpp index 2c6fcfcb6fb..007a657c5a9 100644 --- a/Common/src/interface_interpolation/CMirror.cpp +++ b/Common/src/interface_interpolation/CMirror.cpp @@ -2,7 +2,7 @@ * \file CMirror.cpp * \brief Implementation of mirror interpolation (conservative approach in FSI problems). * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/interface_interpolation/CNearestNeighbor.cpp b/Common/src/interface_interpolation/CNearestNeighbor.cpp index 82c85aac010..1f9ac4af72e 100644 --- a/Common/src/interface_interpolation/CNearestNeighbor.cpp +++ b/Common/src/interface_interpolation/CNearestNeighbor.cpp @@ -2,7 +2,7 @@ * \file CNearestNeighbor.cpp * \brief Implementation of nearest neighbor interpolation. * \author H. Kline - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/interface_interpolation/CRadialBasisFunction.cpp b/Common/src/interface_interpolation/CRadialBasisFunction.cpp index a88d057f0ee..84348fda30a 100644 --- a/Common/src/interface_interpolation/CRadialBasisFunction.cpp +++ b/Common/src/interface_interpolation/CRadialBasisFunction.cpp @@ -2,7 +2,7 @@ * \file CRadialBasisFunction.cpp * \brief Implementation of RBF interpolation. * \author Joel Ho, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/interface_interpolation/CSlidingMesh.cpp b/Common/src/interface_interpolation/CSlidingMesh.cpp index 0cdcc1f5147..01d4d156fa9 100644 --- a/Common/src/interface_interpolation/CSlidingMesh.cpp +++ b/Common/src/interface_interpolation/CSlidingMesh.cpp @@ -2,7 +2,7 @@ * \file CSlidingMesh.cpp * \brief Implementation of sliding mesh interpolation. * \author H. Kline - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/linear_algebra/CPastixWrapper.cpp b/Common/src/linear_algebra/CPastixWrapper.cpp index 936e202e5f7..a2a65d11d6e 100644 --- a/Common/src/linear_algebra/CPastixWrapper.cpp +++ b/Common/src/linear_algebra/CPastixWrapper.cpp @@ -3,7 +3,7 @@ * \brief An interface to the INRIA solver PaStiX * (http://pastix.gforge.inria.fr/files/README-txt.html) * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/linear_algebra/CSysMatrix.cpp b/Common/src/linear_algebra/CSysMatrix.cpp index 280d05b6b7f..4196f638678 100644 --- a/Common/src/linear_algebra/CSysMatrix.cpp +++ b/Common/src/linear_algebra/CSysMatrix.cpp @@ -2,7 +2,7 @@ * \file CSysMatrix.cpp * \brief Implementation of the sparse matrix class. * \author F. Palacios, A. Bueno, T. Economon, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/linear_algebra/CSysSolve.cpp b/Common/src/linear_algebra/CSysSolve.cpp index 4195e0e2aed..be5307f2b0e 100644 --- a/Common/src/linear_algebra/CSysSolve.cpp +++ b/Common/src/linear_algebra/CSysSolve.cpp @@ -2,7 +2,7 @@ * \file CSysSolve.cpp * \brief Main classes required for solving linear systems of equations * \author J. Hicken, F. Palacios, T. Economon, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/linear_algebra/CSysSolve_b.cpp b/Common/src/linear_algebra/CSysSolve_b.cpp index 69f69472c3e..7b63e06a953 100644 --- a/Common/src/linear_algebra/CSysSolve_b.cpp +++ b/Common/src/linear_algebra/CSysSolve_b.cpp @@ -2,7 +2,7 @@ * \file CSysSolve_b.cpp * \brief Routines for the linear solver used in the reverse sweep of AD. * \author T. Albring, J. Blühdorn - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/linear_algebra/CSysVector.cpp b/Common/src/linear_algebra/CSysVector.cpp index d33a5863b01..ac568786907 100644 --- a/Common/src/linear_algebra/CSysVector.cpp +++ b/Common/src/linear_algebra/CSysVector.cpp @@ -2,7 +2,7 @@ * \file CSysVector.cpp * \brief Implementation and explicit instantiations of CSysVector. * \author P. Gomes, F. Palacios, J. Hicken, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/linear_algebra/blas_structure.cpp b/Common/src/linear_algebra/blas_structure.cpp index e58e2202c33..6548888bba9 100644 --- a/Common/src/linear_algebra/blas_structure.cpp +++ b/Common/src/linear_algebra/blas_structure.cpp @@ -3,7 +3,7 @@ * \brief Implementation of the functions that either simulate BLAS functionality or interface to an actual BLAS implementation. * \author E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/C1DInterpolation.cpp b/Common/src/toolboxes/C1DInterpolation.cpp index a39d4f4fc59..0282f628791 100644 --- a/Common/src/toolboxes/C1DInterpolation.cpp +++ b/Common/src/toolboxes/C1DInterpolation.cpp @@ -2,7 +2,7 @@ * \file C1DInterpolation.cpp * \brief Classes for 1D interpolation. * \author Aman Baig, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/CLinearPartitioner.cpp b/Common/src/toolboxes/CLinearPartitioner.cpp index a6a0b25de95..f663e3e5ef5 100644 --- a/Common/src/toolboxes/CLinearPartitioner.cpp +++ b/Common/src/toolboxes/CLinearPartitioner.cpp @@ -3,7 +3,7 @@ * \brief Helper class that provides the counts for each rank in a linear * partitioning given the global count as input. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/CSquareMatrixCM.cpp b/Common/src/toolboxes/CSquareMatrixCM.cpp index 29fb853ea1a..aa9384c9a6b 100644 --- a/Common/src/toolboxes/CSquareMatrixCM.cpp +++ b/Common/src/toolboxes/CSquareMatrixCM.cpp @@ -2,7 +2,7 @@ * \file CSquareMatrixCM.cpp * \brief Implementation of dense matrix helper class in Column Major order (see hpp). * \author Edwin van der Weide, Pedro Gomes. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/CSymmetricMatrix.cpp b/Common/src/toolboxes/CSymmetricMatrix.cpp index be50c4c2791..a7577300109 100644 --- a/Common/src/toolboxes/CSymmetricMatrix.cpp +++ b/Common/src/toolboxes/CSymmetricMatrix.cpp @@ -2,7 +2,7 @@ * \file CSymmetricMatrix.cpp * \brief Implementation of dense symmetric matrix helper class (see hpp). * \author Joel Ho, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CIncTGVSolution.cpp b/Common/src/toolboxes/MMS/CIncTGVSolution.cpp index 9bf35cb3362..04304ed8df5 100644 --- a/Common/src/toolboxes/MMS/CIncTGVSolution.cpp +++ b/Common/src/toolboxes/MMS/CIncTGVSolution.cpp @@ -2,7 +2,7 @@ * \file CIncTGVSolution.cpp * \brief Implementations of the member functions of CIncTGVSolution. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CInviscidVortexSolution.cpp b/Common/src/toolboxes/MMS/CInviscidVortexSolution.cpp index fc9e42dc628..bd746837b0f 100644 --- a/Common/src/toolboxes/MMS/CInviscidVortexSolution.cpp +++ b/Common/src/toolboxes/MMS/CInviscidVortexSolution.cpp @@ -2,7 +2,7 @@ * \file CInviscidVortexSolution.cpp * \brief Implementations of the member functions of CInviscidVortexSolution. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CMMSIncEulerSolution.cpp b/Common/src/toolboxes/MMS/CMMSIncEulerSolution.cpp index c6ddf8ca4a4..18081082d0a 100644 --- a/Common/src/toolboxes/MMS/CMMSIncEulerSolution.cpp +++ b/Common/src/toolboxes/MMS/CMMSIncEulerSolution.cpp @@ -2,7 +2,7 @@ * \file CMMSIncEulerSolution.cpp * \brief Implementations of the member functions of CMMSIncEulerSolution. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CMMSIncNSSolution.cpp b/Common/src/toolboxes/MMS/CMMSIncNSSolution.cpp index 61ba159a264..171afbc52d2 100644 --- a/Common/src/toolboxes/MMS/CMMSIncNSSolution.cpp +++ b/Common/src/toolboxes/MMS/CMMSIncNSSolution.cpp @@ -2,7 +2,7 @@ * \file CMMSIncNSSolution.cpp * \brief Implementations of the member functions of CMMSIncNSSolution. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.cpp b/Common/src/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.cpp index 4057cba7c85..9bb4611dcfb 100644 --- a/Common/src/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.cpp +++ b/Common/src/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.cpp @@ -2,7 +2,7 @@ * \file CMMSNSTwoHalfCirclesSolution.cpp * \brief Implementations of the member functions of CMMSNSTwoHalfCirclesSolution. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.cpp b/Common/src/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.cpp index 3ff44f17fa0..aa534eb3600 100644 --- a/Common/src/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.cpp +++ b/Common/src/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.cpp @@ -2,7 +2,7 @@ * \file CMMSNSTwoHalfSpheresSolution.cpp * \brief Implementations of the member functions of CMMSNSTwoHalfSpheresSolution. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolution.cpp b/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolution.cpp index e3646dcf645..fd9e8722ce8 100644 --- a/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolution.cpp +++ b/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolution.cpp @@ -2,7 +2,7 @@ * \file CMMSNSUnitQuadSolution.cpp * \brief Implementations of the member functions of CMMSNSUnitQuadSolution. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.cpp b/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.cpp index a91579eb993..f57b238ba21 100644 --- a/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.cpp +++ b/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.cpp @@ -2,7 +2,7 @@ * \file CMMSNSUnitQuadSolutionWallBC.cpp * \brief Implementations of the member functions of CMMSNSUnitQuadSolutionWallBC. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CNSUnitQuadSolution.cpp b/Common/src/toolboxes/MMS/CNSUnitQuadSolution.cpp index 9b90807b15e..f65a0cbac44 100644 --- a/Common/src/toolboxes/MMS/CNSUnitQuadSolution.cpp +++ b/Common/src/toolboxes/MMS/CNSUnitQuadSolution.cpp @@ -2,7 +2,7 @@ * \file CNSUnitQuadSolution.cpp * \brief Implementations of the member functions of CNSUnitQuadSolution. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CRinglebSolution.cpp b/Common/src/toolboxes/MMS/CRinglebSolution.cpp index 764035b0849..f42ac0a3cd1 100644 --- a/Common/src/toolboxes/MMS/CRinglebSolution.cpp +++ b/Common/src/toolboxes/MMS/CRinglebSolution.cpp @@ -2,7 +2,7 @@ * \file CRinglebSolution.cpp * \brief Implementations of the member functions of CRinglebSolution. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CTGVSolution.cpp b/Common/src/toolboxes/MMS/CTGVSolution.cpp index 9d9932928ff..830a6dd998d 100644 --- a/Common/src/toolboxes/MMS/CTGVSolution.cpp +++ b/Common/src/toolboxes/MMS/CTGVSolution.cpp @@ -2,7 +2,7 @@ * \file CTGVSolution.cpp * \brief Implementations of the member functions of CTGVSolution. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CUserDefinedSolution.cpp b/Common/src/toolboxes/MMS/CUserDefinedSolution.cpp index d245c9a6bcd..a113de21da7 100644 --- a/Common/src/toolboxes/MMS/CUserDefinedSolution.cpp +++ b/Common/src/toolboxes/MMS/CUserDefinedSolution.cpp @@ -2,7 +2,7 @@ * \file CUserDefinedSolution.cpp * \brief Implementations of the member functions of CUserDefinedSolution. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CVerificationSolution.cpp b/Common/src/toolboxes/MMS/CVerificationSolution.cpp index a3630fb825a..617160e8e55 100644 --- a/Common/src/toolboxes/MMS/CVerificationSolution.cpp +++ b/Common/src/toolboxes/MMS/CVerificationSolution.cpp @@ -2,7 +2,7 @@ * \file CVerificationSolution.cpp * \brief Implementations of the member functions of CVerificationSolution. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncEulerSolution.py b/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncEulerSolution.py index 404106ab1f3..0750bf901d0 100755 --- a/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncEulerSolution.py +++ b/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncEulerSolution.py @@ -4,7 +4,7 @@ # \brief Python script that generates the source terms for a # manufactured solution for the incompressible Euler eqns. # \author T. Economon -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncNSSolution.py b/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncNSSolution.py index edf12b5e831..39d42a63934 100755 --- a/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncNSSolution.py +++ b/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncNSSolution.py @@ -4,7 +4,7 @@ # \brief Python script that generates the source terms for a # manufactured solution for the incompressible Navier-Stokes eqns. # \author T. Economon -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/Common/src/toolboxes/printing_toolbox.cpp b/Common/src/toolboxes/printing_toolbox.cpp index 251bb886689..c9375032f78 100644 --- a/Common/src/toolboxes/printing_toolbox.cpp +++ b/Common/src/toolboxes/printing_toolbox.cpp @@ -2,7 +2,7 @@ * \file printing_toolbox.cpp * \brief Printing tools * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Common/src/wall_model.cpp b/Common/src/wall_model.cpp index 1f5968bb7cf..b483887810f 100644 --- a/Common/src/wall_model.cpp +++ b/Common/src/wall_model.cpp @@ -3,7 +3,7 @@ * \brief File, which contains the implementation for the wall model functions * for large eddy simulations. * \author E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/Docs/docmain.hpp b/Docs/docmain.hpp index 5fefea50075..ca1eded8d22 100644 --- a/Docs/docmain.hpp +++ b/Docs/docmain.hpp @@ -2,7 +2,7 @@ * \file docmain.hpp * \brief This file contains documentation for Doxygen and does not have any significance with respect to C++. * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -26,7 +26,7 @@ */ /*! - * \mainpage SU2 version 8.0.1 "Harrier" + * \mainpage SU2 version 8.1.0 "Harrier" * SU2 suite is an open-source collection of C++ based software tools * to perform PDE analysis and PDE constrained optimization. The toolset is designed with * computational fluid dynamics and aerodynamic shape optimization in mind, but is extensible to diff --git a/QuickStart/inv_NACA0012.cfg b/QuickStart/inv_NACA0012.cfg index 27047c9f60a..1d2616746f0 100644 --- a/QuickStart/inv_NACA0012.cfg +++ b/QuickStart/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/README.md b/README.md index dd3b86878a4..7a40a9c081e 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

-# SU2 (ver. 8.0.1 "Harrier"): The Open-Source CFD Code +# SU2 (ver. 8.1.0 "Harrier"): The Open-Source CFD Code Computational analysis tools have revolutionized the way we design engineering systems, but most established codes are proprietary, unavailable, or prohibitively expensive for many users. The SU2 team is changing this, making multiphysics analysis and design optimization freely available as open-source software and involving everyone in its creation and development. diff --git a/SU2_CFD/include/CMarkerProfileReaderFVM.hpp b/SU2_CFD/include/CMarkerProfileReaderFVM.hpp index 3205f7ad731..69f3ed9ecc6 100644 --- a/SU2_CFD/include/CMarkerProfileReaderFVM.hpp +++ b/SU2_CFD/include/CMarkerProfileReaderFVM.hpp @@ -3,7 +3,7 @@ * \brief Header file for the class CMarkerProfileReaderFVM. * The implementations are in the CMarkerProfileReaderFVM.cpp file. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/SU2_CFD.hpp b/SU2_CFD/include/SU2_CFD.hpp index 92a45263657..4d97180d928 100644 --- a/SU2_CFD/include/SU2_CFD.hpp +++ b/SU2_CFD/include/SU2_CFD.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_CFD. * The subroutines and functions are in the SU2_CFD.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/definition_structure.hpp b/SU2_CFD/include/definition_structure.hpp index f06947b45de..b4d437f1f9c 100644 --- a/SU2_CFD/include/definition_structure.hpp +++ b/SU2_CFD/include/definition_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines used by SU2_CFD. * The subroutines and functions are in the definition_structure.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/drivers/CDiscAdjMultizoneDriver.hpp b/SU2_CFD/include/drivers/CDiscAdjMultizoneDriver.hpp index 13da05669bd..7022220fc07 100644 --- a/SU2_CFD/include/drivers/CDiscAdjMultizoneDriver.hpp +++ b/SU2_CFD/include/drivers/CDiscAdjMultizoneDriver.hpp @@ -2,7 +2,7 @@ * \class CDiscAdjMultizoneDriver.hpp * \brief Class for driving adjoint multi-zone problems. * \author O. Burghardt, P. Gomes, T. Albring, R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp b/SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp index baeb0f8cf1e..d1c28c63beb 100644 --- a/SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp +++ b/SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for driving single or multi-zone problems. * The subroutines and functions are in the driver_structure.cpp file. * \author T. Economon, H. Kline, R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -34,7 +34,7 @@ * \ingroup DiscAdj * \brief Class for driving single-zone adjoint solvers. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CDiscAdjSinglezoneDriver : public CSinglezoneDriver { protected: diff --git a/SU2_CFD/include/drivers/CDriver.hpp b/SU2_CFD/include/drivers/CDriver.hpp index c5e78bd9037..2f79be415b3 100644 --- a/SU2_CFD/include/drivers/CDriver.hpp +++ b/SU2_CFD/include/drivers/CDriver.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for driving single or multi-zone problems. * The subroutines and functions are in the driver_structure.cpp file. * \author T. Economon, H. Kline, R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/drivers/CDriverBase.hpp b/SU2_CFD/include/drivers/CDriverBase.hpp index c9c296ce57c..eaa6857c911 100644 --- a/SU2_CFD/include/drivers/CDriverBase.hpp +++ b/SU2_CFD/include/drivers/CDriverBase.hpp @@ -2,7 +2,7 @@ * \file CDriverBase.hpp * \brief Base class for all drivers. * \author H. Patel, A. Gastaldi - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/drivers/CDummyDriver.hpp b/SU2_CFD/include/drivers/CDummyDriver.hpp index 652602b3b89..7f95cd1ee3b 100644 --- a/SU2_CFD/include/drivers/CDummyDriver.hpp +++ b/SU2_CFD/include/drivers/CDummyDriver.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for driving single or multi-zone problems. * The subroutines and functions are in the driver_structure.cpp file. * \author T. Economon, H. Kline, R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/drivers/CMultizoneDriver.hpp b/SU2_CFD/include/drivers/CMultizoneDriver.hpp index 23e88879f36..89dcef1eae9 100644 --- a/SU2_CFD/include/drivers/CMultizoneDriver.hpp +++ b/SU2_CFD/include/drivers/CMultizoneDriver.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for driving single or multi-zone problems. * The subroutines and functions are in the driver_structure.cpp file. * \author T. Economon, H. Kline, R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -35,7 +35,7 @@ * \ingroup Drivers * \brief Class for driving zone-specific iterations. * \author R. Sanchez, O. Burghardt - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CMultizoneDriver : public CDriver { protected: diff --git a/SU2_CFD/include/drivers/CSinglezoneDriver.hpp b/SU2_CFD/include/drivers/CSinglezoneDriver.hpp index 626ca3b9b4c..55895617346 100644 --- a/SU2_CFD/include/drivers/CSinglezoneDriver.hpp +++ b/SU2_CFD/include/drivers/CSinglezoneDriver.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for driving single or multi-zone problems. * The subroutines and functions are in the driver_structure.cpp file. * \author T. Economon, H. Kline, R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -34,7 +34,7 @@ * \ingroup Drivers * \brief Class for driving single-zone solvers. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CSinglezoneDriver : public CDriver { protected: diff --git a/SU2_CFD/include/fluid/CConductivityModel.hpp b/SU2_CFD/include/fluid/CConductivityModel.hpp index 8c7866d2072..7ffd6fb6a3c 100644 --- a/SU2_CFD/include/fluid/CConductivityModel.hpp +++ b/SU2_CFD/include/fluid/CConductivityModel.hpp @@ -2,7 +2,7 @@ * \file CConductivityModel.hpp * \brief Defines an interface class for thermal conductivity models. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CConstantConductivity.hpp b/SU2_CFD/include/fluid/CConstantConductivity.hpp index 2e0d23b33f4..2e4b17836d8 100644 --- a/SU2_CFD/include/fluid/CConstantConductivity.hpp +++ b/SU2_CFD/include/fluid/CConstantConductivity.hpp @@ -2,7 +2,7 @@ * \file CConstantConductivity.hpp * \brief Defines a constant laminar thermal conductivity model. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CConstantConductivityRANS.hpp b/SU2_CFD/include/fluid/CConstantConductivityRANS.hpp index 8f03972001e..1ccc9414545 100644 --- a/SU2_CFD/include/fluid/CConstantConductivityRANS.hpp +++ b/SU2_CFD/include/fluid/CConstantConductivityRANS.hpp @@ -2,7 +2,7 @@ * \file CConstantConductivityRANS.hpp * \brief Defines a constant conductivity model for RANS problems. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CConstantDensity.hpp b/SU2_CFD/include/fluid/CConstantDensity.hpp index d662025a6e0..edda854daab 100644 --- a/SU2_CFD/include/fluid/CConstantDensity.hpp +++ b/SU2_CFD/include/fluid/CConstantDensity.hpp @@ -2,7 +2,7 @@ * \file CConstantDensity.hpp * \brief Defines the incompressible constant density model. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CConstantDiffusivity.hpp b/SU2_CFD/include/fluid/CConstantDiffusivity.hpp index d9f5418dedd..4d0253855ad 100644 --- a/SU2_CFD/include/fluid/CConstantDiffusivity.hpp +++ b/SU2_CFD/include/fluid/CConstantDiffusivity.hpp @@ -2,7 +2,7 @@ * \file CConstantDiffusivity.hpp * \brief Defines constant mass diffusivity. * \author T. Economon, Cristopher Morales Ubal - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp b/SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp index 74d8a42ea62..b17932685d0 100644 --- a/SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp +++ b/SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp @@ -2,7 +2,7 @@ * \file CConstantLewisDiffusivity.hpp * \brief Defines Constant Lewis mass diffusivity. * \author M.Heimgartner, C.Morales - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CConstantPrandtl.hpp b/SU2_CFD/include/fluid/CConstantPrandtl.hpp index e55618530d5..148b0462f38 100644 --- a/SU2_CFD/include/fluid/CConstantPrandtl.hpp +++ b/SU2_CFD/include/fluid/CConstantPrandtl.hpp @@ -2,7 +2,7 @@ * \file CConstantPrandtl.hpp * \brief Defines a non-constant laminar Prandtl number thermal conductivity model. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CConstantPrandtlRANS.hpp b/SU2_CFD/include/fluid/CConstantPrandtlRANS.hpp index c1f1befb535..879cf5abe38 100644 --- a/SU2_CFD/include/fluid/CConstantPrandtlRANS.hpp +++ b/SU2_CFD/include/fluid/CConstantPrandtlRANS.hpp @@ -2,7 +2,7 @@ * \file CConstantPrandtlRANS.hpp * \brief Defines a non-constant effective thermal conductivity for RANS problems using Prandtl numbers. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CConstantSchmidt.hpp b/SU2_CFD/include/fluid/CConstantSchmidt.hpp index 420972a6d27..5867ea934ec 100644 --- a/SU2_CFD/include/fluid/CConstantSchmidt.hpp +++ b/SU2_CFD/include/fluid/CConstantSchmidt.hpp @@ -2,7 +2,7 @@ * \file CConstantSchmidt.hpp * \brief Defines a mass diffusivity model with constant Schmidt numbers. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CConstantViscosity.hpp b/SU2_CFD/include/fluid/CConstantViscosity.hpp index e2bcd1663dc..2f39f389cbb 100644 --- a/SU2_CFD/include/fluid/CConstantViscosity.hpp +++ b/SU2_CFD/include/fluid/CConstantViscosity.hpp @@ -2,7 +2,7 @@ * \file CConstantViscosity.hpp * \brief Defines a constant laminar viscosity model. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CCoolProp.hpp b/SU2_CFD/include/fluid/CCoolProp.hpp index ab4fed6a832..b7e05367781 100644 --- a/SU2_CFD/include/fluid/CCoolProp.hpp +++ b/SU2_CFD/include/fluid/CCoolProp.hpp @@ -2,7 +2,7 @@ * \file CCoolProp.hpp * \brief Defines the state-of-the-art fluid model from CoolProp library. * \author P. Yan, G. Gori, A. Guardone - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CCoolPropConductivity.hpp b/SU2_CFD/include/fluid/CCoolPropConductivity.hpp index df965b52bde..4b0fc401374 100644 --- a/SU2_CFD/include/fluid/CCoolPropConductivity.hpp +++ b/SU2_CFD/include/fluid/CCoolPropConductivity.hpp @@ -2,7 +2,7 @@ * \file CCoolPropConductivity.hpp * \brief Defines laminar thermal conductivity model from CoolProp. * \author P.YAn, G. Gori, A. Guardone - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CCoolPropViscosity.hpp b/SU2_CFD/include/fluid/CCoolPropViscosity.hpp index 2e66dc2be88..88726f40451 100644 --- a/SU2_CFD/include/fluid/CCoolPropViscosity.hpp +++ b/SU2_CFD/include/fluid/CCoolPropViscosity.hpp @@ -2,7 +2,7 @@ * \file CCoolPropViscosity.hpp * \brief Defines CoolPropviscosity model. * \author P.Yan, G. Gori, A. Guardone, - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CDataDrivenFluid.hpp b/SU2_CFD/include/fluid/CDataDrivenFluid.hpp index 1a524326c8a..57a68ea8d71 100644 --- a/SU2_CFD/include/fluid/CDataDrivenFluid.hpp +++ b/SU2_CFD/include/fluid/CDataDrivenFluid.hpp @@ -3,7 +3,7 @@ * \brief Defines a template fluid model class using multilayer perceptrons * for theromodynamic state definition * \author E.C.Bunschoten - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CDiffusivityModel.hpp b/SU2_CFD/include/fluid/CDiffusivityModel.hpp index 7355309414a..34c45252e59 100644 --- a/SU2_CFD/include/fluid/CDiffusivityModel.hpp +++ b/SU2_CFD/include/fluid/CDiffusivityModel.hpp @@ -2,7 +2,7 @@ * \file CDiffusivityModel.hpp * \brief Interface class for defining mass diffusivity models. * \author T. Economon, C. Morales - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CFluidFlamelet.hpp b/SU2_CFD/include/fluid/CFluidFlamelet.hpp index 49273b2a9e6..f95072f30ce 100644 --- a/SU2_CFD/include/fluid/CFluidFlamelet.hpp +++ b/SU2_CFD/include/fluid/CFluidFlamelet.hpp @@ -2,7 +2,7 @@ * \file CFluidFlamelet.hpp * \brief Defines the flamelet fluid model * \author D. Mayer, T. Economon, N. Beishuizen, E. Bunschoten - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CFluidModel.hpp b/SU2_CFD/include/fluid/CFluidModel.hpp index 29f0becdb0d..30766e7b543 100644 --- a/SU2_CFD/include/fluid/CFluidModel.hpp +++ b/SU2_CFD/include/fluid/CFluidModel.hpp @@ -2,7 +2,7 @@ * \file CFluidModel.hpp * \brief Defines the main fluid model class for thermophysical properties. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CFluidScalar.hpp b/SU2_CFD/include/fluid/CFluidScalar.hpp index e3295d99b6d..206de692ae0 100644 --- a/SU2_CFD/include/fluid/CFluidScalar.hpp +++ b/SU2_CFD/include/fluid/CFluidScalar.hpp @@ -2,7 +2,7 @@ * \file CFluidScalar.hpp * \brief Defines the multicomponent incompressible Ideal Gas model for mixtures. * \author T. Economon, Mark Heimgartner, Cristopher Morales Ubal - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CIdealGas.hpp b/SU2_CFD/include/fluid/CIdealGas.hpp index 0caad89c4b3..9355b242913 100644 --- a/SU2_CFD/include/fluid/CIdealGas.hpp +++ b/SU2_CFD/include/fluid/CIdealGas.hpp @@ -2,7 +2,7 @@ * \file CIdealGas.hpp * \brief Defines the ideal gas model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CIncIdealGas.hpp b/SU2_CFD/include/fluid/CIncIdealGas.hpp index 6bc359e0f94..42d6138f6d2 100644 --- a/SU2_CFD/include/fluid/CIncIdealGas.hpp +++ b/SU2_CFD/include/fluid/CIncIdealGas.hpp @@ -2,7 +2,7 @@ * \file CIncIdealGas.hpp * \brief Defines the incompressible Ideal Gas model. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CIncIdealGasPolynomial.hpp b/SU2_CFD/include/fluid/CIncIdealGasPolynomial.hpp index 62bf3193b33..dbbca6a9af8 100644 --- a/SU2_CFD/include/fluid/CIncIdealGasPolynomial.hpp +++ b/SU2_CFD/include/fluid/CIncIdealGasPolynomial.hpp @@ -2,7 +2,7 @@ * \file CIncIdealGasPolynomial.hpp * \brief Defines the incompressible Ideal Gas model with polynomial Cp. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CMutationTCLib.hpp b/SU2_CFD/include/fluid/CMutationTCLib.hpp index c8b39b94916..f41314d1b9d 100644 --- a/SU2_CFD/include/fluid/CMutationTCLib.hpp +++ b/SU2_CFD/include/fluid/CMutationTCLib.hpp @@ -2,7 +2,7 @@ * \file CMutationTCLib.hpp * \brief Defines the class for the link to Mutation++ ThermoChemistry library. * \author C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CNEMOGas.hpp b/SU2_CFD/include/fluid/CNEMOGas.hpp index 631a3d49d90..cedf8c08fde 100644 --- a/SU2_CFD/include/fluid/CNEMOGas.hpp +++ b/SU2_CFD/include/fluid/CNEMOGas.hpp @@ -2,7 +2,7 @@ * \file CNEMOGas.hpp * \brief Defines the nonequilibrium gas model. * \author C. Garbacz, W. Maier, S. R. Copeland - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CPengRobinson.hpp b/SU2_CFD/include/fluid/CPengRobinson.hpp index f16df3cacdf..89391d05cb5 100644 --- a/SU2_CFD/include/fluid/CPengRobinson.hpp +++ b/SU2_CFD/include/fluid/CPengRobinson.hpp @@ -2,7 +2,7 @@ * \file CPengRobinson.hpp * \brief Defines the Peng-Robinson model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CPolynomialConductivity.hpp b/SU2_CFD/include/fluid/CPolynomialConductivity.hpp index 09ae993cc81..993d376b73d 100644 --- a/SU2_CFD/include/fluid/CPolynomialConductivity.hpp +++ b/SU2_CFD/include/fluid/CPolynomialConductivity.hpp @@ -2,7 +2,7 @@ * \file CPolynomialConductivity.hpp * \brief Defines a non-constant laminar thermal conductivity using a polynomial function of temperature. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CPolynomialConductivityRANS.hpp b/SU2_CFD/include/fluid/CPolynomialConductivityRANS.hpp index a6cd95dca80..2788f75b2d2 100644 --- a/SU2_CFD/include/fluid/CPolynomialConductivityRANS.hpp +++ b/SU2_CFD/include/fluid/CPolynomialConductivityRANS.hpp @@ -3,7 +3,7 @@ * \brief Defines a non-constant thermal conductivity using a polynomial function of temperature * for RANS problems with the addition of a turbulent component based on a turbulent Prandtl number. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CPolynomialViscosity.hpp b/SU2_CFD/include/fluid/CPolynomialViscosity.hpp index 63d0cb97bd9..576a845fa7e 100644 --- a/SU2_CFD/include/fluid/CPolynomialViscosity.hpp +++ b/SU2_CFD/include/fluid/CPolynomialViscosity.hpp @@ -2,7 +2,7 @@ * \file CPolynomialViscosity.hpp * \brief Defines a laminar viscosity model as a polynomial function of temperature. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CSU2TCLib.hpp b/SU2_CFD/include/fluid/CSU2TCLib.hpp index b63aa9a2cf6..ed65af868e3 100644 --- a/SU2_CFD/include/fluid/CSU2TCLib.hpp +++ b/SU2_CFD/include/fluid/CSU2TCLib.hpp @@ -2,7 +2,7 @@ * \file CSU2TCLib.hpp * \brief Defines the classes for different user defined ThermoChemistry libraries. * \author C. Garbacz, W. Maier, S. R. Copeland - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CSutherland.hpp b/SU2_CFD/include/fluid/CSutherland.hpp index 6ab2d1e21b6..5db3dc2d5b8 100644 --- a/SU2_CFD/include/fluid/CSutherland.hpp +++ b/SU2_CFD/include/fluid/CSutherland.hpp @@ -2,7 +2,7 @@ * \file CSutherland.hpp * \brief Defines Sutherland's Law for laminar viscosity. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CVanDerWaalsGas.hpp b/SU2_CFD/include/fluid/CVanDerWaalsGas.hpp index 30f63deadc9..bc94b1e9d42 100644 --- a/SU2_CFD/include/fluid/CVanDerWaalsGas.hpp +++ b/SU2_CFD/include/fluid/CVanDerWaalsGas.hpp @@ -2,7 +2,7 @@ * \file CVanDerWaalsGas.hpp * \brief Declaration of the Polytropic Van der Waals model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/fluid/CViscosityModel.hpp b/SU2_CFD/include/fluid/CViscosityModel.hpp index 6b8fa253e62..1d3a36354d3 100644 --- a/SU2_CFD/include/fluid/CViscosityModel.hpp +++ b/SU2_CFD/include/fluid/CViscosityModel.hpp @@ -2,7 +2,7 @@ * \file CViscosityModel.hpp * \brief Interface class for defining laminar viscosity models. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp b/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp index f03668cafa1..b330197bec1 100644 --- a/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp +++ b/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp @@ -4,7 +4,7 @@ * \note This allows the same implementation to be used for conservative * and primitive variables of any solver. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp b/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp index ef476e7a3df..278e7493a06 100644 --- a/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp +++ b/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp @@ -3,7 +3,7 @@ * \brief Generic implementation of Least-Squares gradient computation. * \note This allows the same implementation to be used for conservative * and primitive variables of any solver. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp b/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp index a17ce827184..e42346ed5f3 100644 --- a/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp +++ b/SU2_CFD/include/gradients/correctGradientsSymmetry.hpp @@ -2,7 +2,7 @@ * \file correctGradientsSymmetry.hpp * \brief Implements the symmetry boundary conditions for the gradient computations. * \author N. Beishuizen - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/integration/CFEM_DG_Integration.hpp b/SU2_CFD/include/integration/CFEM_DG_Integration.hpp index 1b1395f8ca5..388710147b2 100644 --- a/SU2_CFD/include/integration/CFEM_DG_Integration.hpp +++ b/SU2_CFD/include/integration/CFEM_DG_Integration.hpp @@ -2,7 +2,7 @@ * \file CFEM_DG_Integration.hpp * \brief Declaration of class for integration with the FEM DG solver. * \author E. van der Weide, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -32,7 +32,7 @@ * \ingroup Drivers * \brief Class for integration with the FEM DG solver. * \author E. van der Weide, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEM_DG_Integration final : public CIntegration { public: diff --git a/SU2_CFD/include/integration/CIntegration.hpp b/SU2_CFD/include/integration/CIntegration.hpp index b35dc23be9c..5d83b7a38d2 100644 --- a/SU2_CFD/include/integration/CIntegration.hpp +++ b/SU2_CFD/include/integration/CIntegration.hpp @@ -2,7 +2,7 @@ * \file CIntegration.hpp * \brief Declaration of the main routines to orchestrate space and time integration. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/integration/CIntegrationFactory.hpp b/SU2_CFD/include/integration/CIntegrationFactory.hpp index c5531335298..19bdcb57325 100644 --- a/SU2_CFD/include/integration/CIntegrationFactory.hpp +++ b/SU2_CFD/include/integration/CIntegrationFactory.hpp @@ -2,7 +2,7 @@ * \file CIntegrationFactory.hpp * \brief Headers of the CIntegrationFactory class * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/integration/CMultiGridIntegration.hpp b/SU2_CFD/include/integration/CMultiGridIntegration.hpp index 1648f50b55a..e3da86dd1d5 100644 --- a/SU2_CFD/include/integration/CMultiGridIntegration.hpp +++ b/SU2_CFD/include/integration/CMultiGridIntegration.hpp @@ -2,7 +2,7 @@ * \file CMultiGridIntegration.hpp * \brief Declaration of class for time integration using a multigrid method. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/integration/CNewtonIntegration.hpp b/SU2_CFD/include/integration/CNewtonIntegration.hpp index a3e52b857de..28e7a0394ce 100644 --- a/SU2_CFD/include/integration/CNewtonIntegration.hpp +++ b/SU2_CFD/include/integration/CNewtonIntegration.hpp @@ -2,7 +2,7 @@ * \file CNewtonIntegration.hpp * \brief Newton-Krylov integration. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/integration/CSingleGridIntegration.hpp b/SU2_CFD/include/integration/CSingleGridIntegration.hpp index cc257378473..12e6efc1473 100644 --- a/SU2_CFD/include/integration/CSingleGridIntegration.hpp +++ b/SU2_CFD/include/integration/CSingleGridIntegration.hpp @@ -2,7 +2,7 @@ * \file CSingleGridIntegration.hpp * \brief Declaration of class for numerical integration of fine grid-only problems. * \author A. Bueno. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/integration/CStructuralIntegration.hpp b/SU2_CFD/include/integration/CStructuralIntegration.hpp index 5958c72dee2..edfdce9b70c 100644 --- a/SU2_CFD/include/integration/CStructuralIntegration.hpp +++ b/SU2_CFD/include/integration/CStructuralIntegration.hpp @@ -2,7 +2,7 @@ * \file CStructuralIntegration.hpp * \brief Declaration of class for numerical integration of structural problems. * \author R. Sanchez. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/interfaces/CInterface.hpp b/SU2_CFD/include/interfaces/CInterface.hpp index a3ffc31c0fb..d8c1f5c03ea 100644 --- a/SU2_CFD/include/interfaces/CInterface.hpp +++ b/SU2_CFD/include/interfaces/CInterface.hpp @@ -3,7 +3,7 @@ * \brief Declarations and inlines of the transfer structure. * The subroutines and functions are in the physics folders. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -51,7 +51,7 @@ using namespace std; * \ingroup Interfaces * \brief Main class for defining the physical transfer of information. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CInterface { diff --git a/SU2_CFD/include/interfaces/cfd/CConservativeVarsInterface.hpp b/SU2_CFD/include/interfaces/cfd/CConservativeVarsInterface.hpp index d500d5ed6f6..de031558f81 100644 --- a/SU2_CFD/include/interfaces/cfd/CConservativeVarsInterface.hpp +++ b/SU2_CFD/include/interfaces/cfd/CConservativeVarsInterface.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer conservative variables * from a generic zone into another one. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/interfaces/cfd/CMixingPlaneInterface.hpp b/SU2_CFD/include/interfaces/cfd/CMixingPlaneInterface.hpp index c7d25c6af97..3a363764a26 100644 --- a/SU2_CFD/include/interfaces/cfd/CMixingPlaneInterface.hpp +++ b/SU2_CFD/include/interfaces/cfd/CMixingPlaneInterface.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer average variables * needed for MixingPlane computation from a generic zone into another one. * \author S. Vitale - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/interfaces/cfd/CSlidingInterface.hpp b/SU2_CFD/include/interfaces/cfd/CSlidingInterface.hpp index b033178f516..4c784440ca5 100644 --- a/SU2_CFD/include/interfaces/cfd/CSlidingInterface.hpp +++ b/SU2_CFD/include/interfaces/cfd/CSlidingInterface.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer conservative variables * from a generic zone into another * \author G. Gori Politecnico di Milano - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp b/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp index 982733d5e36..044f568854f 100644 --- a/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp +++ b/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer temperature and heatflux * density for conjugate heat interfaces between structure and fluid zones. * \author O. Burghardt - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/interfaces/fsi/CDiscAdjFlowTractionInterface.hpp b/SU2_CFD/include/interfaces/fsi/CDiscAdjFlowTractionInterface.hpp index 4b611e012b1..e60b9044d5b 100644 --- a/SU2_CFD/include/interfaces/fsi/CDiscAdjFlowTractionInterface.hpp +++ b/SU2_CFD/include/interfaces/fsi/CDiscAdjFlowTractionInterface.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer flow tractions * from a fluid zone into a structural zone in a discrete adjoint simulation. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/interfaces/fsi/CDisplacementsInterface.hpp b/SU2_CFD/include/interfaces/fsi/CDisplacementsInterface.hpp index 50f29102d54..42cb9c18f7d 100644 --- a/SU2_CFD/include/interfaces/fsi/CDisplacementsInterface.hpp +++ b/SU2_CFD/include/interfaces/fsi/CDisplacementsInterface.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer boundary displacements * from a structural zone into a fluid zone. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/interfaces/fsi/CFlowTractionInterface.hpp b/SU2_CFD/include/interfaces/fsi/CFlowTractionInterface.hpp index b27392d6c21..08d2958a243 100644 --- a/SU2_CFD/include/interfaces/fsi/CFlowTractionInterface.hpp +++ b/SU2_CFD/include/interfaces/fsi/CFlowTractionInterface.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer flow tractions * from a fluid zone into a structural zone. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/iteration/CAdjFluidIteration.hpp b/SU2_CFD/include/iteration/CAdjFluidIteration.hpp index 76845d1d955..75829093c71 100644 --- a/SU2_CFD/include/iteration/CAdjFluidIteration.hpp +++ b/SU2_CFD/include/iteration/CAdjFluidIteration.hpp @@ -3,7 +3,7 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp b/SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp index 399d89400b0..357b9b09491 100644 --- a/SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp +++ b/SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp @@ -3,7 +3,7 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/iteration/CDiscAdjFluidIteration.hpp b/SU2_CFD/include/iteration/CDiscAdjFluidIteration.hpp index f7bd46740cb..e9046e5a287 100644 --- a/SU2_CFD/include/iteration/CDiscAdjFluidIteration.hpp +++ b/SU2_CFD/include/iteration/CDiscAdjFluidIteration.hpp @@ -3,7 +3,7 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/iteration/CDiscAdjHeatIteration.hpp b/SU2_CFD/include/iteration/CDiscAdjHeatIteration.hpp index 28d8a34a776..7c04b683816 100644 --- a/SU2_CFD/include/iteration/CDiscAdjHeatIteration.hpp +++ b/SU2_CFD/include/iteration/CDiscAdjHeatIteration.hpp @@ -3,7 +3,7 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/iteration/CFEAIteration.hpp b/SU2_CFD/include/iteration/CFEAIteration.hpp index 6c1f96413fb..94814f6dea2 100644 --- a/SU2_CFD/include/iteration/CFEAIteration.hpp +++ b/SU2_CFD/include/iteration/CFEAIteration.hpp @@ -3,7 +3,7 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -35,7 +35,7 @@ * \ingroup Drivers * \brief Class for driving an iteration of structural analysis. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEAIteration : public CIteration { public: diff --git a/SU2_CFD/include/iteration/CFEMFluidIteration.hpp b/SU2_CFD/include/iteration/CFEMFluidIteration.hpp index de2c6548105..f90718385f6 100644 --- a/SU2_CFD/include/iteration/CFEMFluidIteration.hpp +++ b/SU2_CFD/include/iteration/CFEMFluidIteration.hpp @@ -3,7 +3,7 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -35,7 +35,7 @@ * \ingroup Drivers * \brief Class for driving an iteration of the finite element flow system. * \author T. Economon, E. van der Weide - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEMFluidIteration : public CFluidIteration { public: diff --git a/SU2_CFD/include/iteration/CFluidIteration.hpp b/SU2_CFD/include/iteration/CFluidIteration.hpp index 7ce8cec5151..346f763581c 100644 --- a/SU2_CFD/include/iteration/CFluidIteration.hpp +++ b/SU2_CFD/include/iteration/CFluidIteration.hpp @@ -3,7 +3,7 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/iteration/CHeatIteration.hpp b/SU2_CFD/include/iteration/CHeatIteration.hpp index 7afc845572b..5b61be204e5 100644 --- a/SU2_CFD/include/iteration/CHeatIteration.hpp +++ b/SU2_CFD/include/iteration/CHeatIteration.hpp @@ -3,7 +3,7 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/iteration/CIteration.hpp b/SU2_CFD/include/iteration/CIteration.hpp index 9b85c8f755e..bd8df8ef50e 100644 --- a/SU2_CFD/include/iteration/CIteration.hpp +++ b/SU2_CFD/include/iteration/CIteration.hpp @@ -3,7 +3,7 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/iteration/CIterationFactory.hpp b/SU2_CFD/include/iteration/CIterationFactory.hpp index 4eeba024bc2..ea1214a7883 100644 --- a/SU2_CFD/include/iteration/CIterationFactory.hpp +++ b/SU2_CFD/include/iteration/CIterationFactory.hpp @@ -3,7 +3,7 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/iteration/CTurboIteration.hpp b/SU2_CFD/include/iteration/CTurboIteration.hpp index 37970fc5041..876be3e755a 100644 --- a/SU2_CFD/include/iteration/CTurboIteration.hpp +++ b/SU2_CFD/include/iteration/CTurboIteration.hpp @@ -3,7 +3,7 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/limiters/CLimiterDetails.hpp b/SU2_CFD/include/limiters/CLimiterDetails.hpp index cdd7b7990d6..7651c51425a 100644 --- a/SU2_CFD/include/limiters/CLimiterDetails.hpp +++ b/SU2_CFD/include/limiters/CLimiterDetails.hpp @@ -3,7 +3,7 @@ * \brief A class template that allows defining limiters via * specialization of particular details. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/limiters/computeLimiters.hpp b/SU2_CFD/include/limiters/computeLimiters.hpp index fe92064fd04..e9bc261d30f 100644 --- a/SU2_CFD/include/limiters/computeLimiters.hpp +++ b/SU2_CFD/include/limiters/computeLimiters.hpp @@ -2,7 +2,7 @@ * \file computeLimiters.hpp * \brief Compute limiters wrapper function. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/limiters/computeLimiters_impl.hpp b/SU2_CFD/include/limiters/computeLimiters_impl.hpp index ec835610f65..0c9fc51b79c 100644 --- a/SU2_CFD/include/limiters/computeLimiters_impl.hpp +++ b/SU2_CFD/include/limiters/computeLimiters_impl.hpp @@ -4,7 +4,7 @@ * \note Common methods are derived by defining small details * via specialization of CLimiterDetails. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/CGradSmoothing.hpp b/SU2_CFD/include/numerics/CGradSmoothing.hpp index ecdab99d869..7ebe74b326d 100644 --- a/SU2_CFD/include/numerics/CGradSmoothing.hpp +++ b/SU2_CFD/include/numerics/CGradSmoothing.hpp @@ -2,7 +2,7 @@ * \file CGradSmoothing.hpp * \brief Declarations and inlines of the numerics class for gradient smoothing. * \author T.Dick - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/CNumerics.hpp b/SU2_CFD/include/numerics/CNumerics.hpp index 450112df8f7..535335947ca 100644 --- a/SU2_CFD/include/numerics/CNumerics.hpp +++ b/SU2_CFD/include/numerics/CNumerics.hpp @@ -3,7 +3,7 @@ * \brief Declaration of the base numerics class, the * implementation is in the CNumerics.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/NEMO/CNEMONumerics.hpp b/SU2_CFD/include/numerics/NEMO/CNEMONumerics.hpp index d015dde0a0b..cf243f31bc5 100644 --- a/SU2_CFD/include/numerics/NEMO/CNEMONumerics.hpp +++ b/SU2_CFD/include/numerics/NEMO/CNEMONumerics.hpp @@ -2,7 +2,7 @@ * \file CNEMONumerics.hpp * \brief Base class template NEMO numerics. * \author C. Garbacz, W. Maier, S. R. Copeland - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp b/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp index de6295d5d0d..334e64f3d39 100644 --- a/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp +++ b/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp @@ -2,7 +2,7 @@ * \file NEMO_diffusion.hpp * \brief Declarations of numerics classes for viscous flux computation. * \author S.R. Copeland, W. Maier, C. Garbacz. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -34,7 +34,7 @@ * \brief Class for computing viscous term using the average of gradients. * \ingroup ViscDiscr * \author S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CAvgGrad_NEMO : public CNEMONumerics { private: @@ -90,7 +90,7 @@ class CAvgGrad_NEMO : public CNEMONumerics { * \brief Class for computing viscous term using the average of gradients. * \ingroup ViscDiscr * \author C. Garbacz, W. Maier, S.R. Copeland. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CAvgGradCorrected_NEMO : public CNEMONumerics { private: diff --git a/SU2_CFD/include/numerics/NEMO/NEMO_sources.hpp b/SU2_CFD/include/numerics/NEMO/NEMO_sources.hpp index 400b248f908..08209418ad5 100644 --- a/SU2_CFD/include/numerics/NEMO/NEMO_sources.hpp +++ b/SU2_CFD/include/numerics/NEMO/NEMO_sources.hpp @@ -2,7 +2,7 @@ * \file NEMO_sources.hpp * \brief Declarations of numerics classes for source-term integration. * \author C. Garbacz, W. Maier, S. Copeland. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -34,7 +34,7 @@ * \brief Class for two-temperature model source terms. * \ingroup SourceDiscr * \author C. Garbacz, W. Maier, S. Copeland. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CSource_NEMO : public CNEMONumerics { private: diff --git a/SU2_CFD/include/numerics/NEMO/convection/ausm_slau.hpp b/SU2_CFD/include/numerics/NEMO/convection/ausm_slau.hpp index 09c2e05ea54..4b6b4000a18 100644 --- a/SU2_CFD/include/numerics/NEMO/convection/ausm_slau.hpp +++ b/SU2_CFD/include/numerics/NEMO/convection/ausm_slau.hpp @@ -2,7 +2,7 @@ * \file ausm_slau.hpp * \brief Declaration of numerics classes for the AUSM and SLAU family of schemes in NEMO. * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/NEMO/convection/lax.hpp b/SU2_CFD/include/numerics/NEMO/convection/lax.hpp index 5be38a758af..3414a92911b 100644 --- a/SU2_CFD/include/numerics/NEMO/convection/lax.hpp +++ b/SU2_CFD/include/numerics/NEMO/convection/lax.hpp @@ -2,7 +2,7 @@ * \file lax.hpp * \brief Declaration of numerics classes for Lax centered scheme. * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/NEMO/convection/msw.hpp b/SU2_CFD/include/numerics/NEMO/convection/msw.hpp index 4f53500eb61..62354bc1705 100644 --- a/SU2_CFD/include/numerics/NEMO/convection/msw.hpp +++ b/SU2_CFD/include/numerics/NEMO/convection/msw.hpp @@ -2,7 +2,7 @@ * \file msw.hpp * \brief Declaration of numerics classes for modified Steger-Warming scheme. * \author ADL Stanford, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -34,7 +34,7 @@ * \brief Class for solving a flux-vector splitting method by Steger & Warming, modified version. * \ingroup ConvDiscr * \author ADL Stanford, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CUpwMSW_NEMO : public CNEMONumerics { private: diff --git a/SU2_CFD/include/numerics/NEMO/convection/roe.hpp b/SU2_CFD/include/numerics/NEMO/convection/roe.hpp index 27ca543c8a8..e91e828eb45 100644 --- a/SU2_CFD/include/numerics/NEMO/convection/roe.hpp +++ b/SU2_CFD/include/numerics/NEMO/convection/roe.hpp @@ -2,7 +2,7 @@ * \file roe.hpp * \brief Declarations of numerics classes for Roe-type schemes in NEMO. * \author S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -34,7 +34,7 @@ * \brief Class for evaluating the Riemann problem using Roe's scheme for a two-temperature model. * \ingroup ConvDiscr * \author S. R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CUpwRoe_NEMO : public CNEMONumerics { private: diff --git a/SU2_CFD/include/numerics/continuous_adjoint/adj_convection.hpp b/SU2_CFD/include/numerics/continuous_adjoint/adj_convection.hpp index 9588d5f3284..6ee5075b42a 100644 --- a/SU2_CFD/include/numerics/continuous_adjoint/adj_convection.hpp +++ b/SU2_CFD/include/numerics/continuous_adjoint/adj_convection.hpp @@ -3,7 +3,7 @@ * \brief Declarations of numerics classes for continuous adjoint * convective discretization. Implemented in adj_convection.cpp. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/continuous_adjoint/adj_diffusion.hpp b/SU2_CFD/include/numerics/continuous_adjoint/adj_diffusion.hpp index 0e098b4124c..ae79e291178 100644 --- a/SU2_CFD/include/numerics/continuous_adjoint/adj_diffusion.hpp +++ b/SU2_CFD/include/numerics/continuous_adjoint/adj_diffusion.hpp @@ -3,7 +3,7 @@ * \brief Declarations of numerics classes for continuous adjoint * diffusion discretization. Implemented in adj_diffusion.cpp. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/continuous_adjoint/adj_sources.hpp b/SU2_CFD/include/numerics/continuous_adjoint/adj_sources.hpp index f104a623edd..789ff7b57d2 100644 --- a/SU2_CFD/include/numerics/continuous_adjoint/adj_sources.hpp +++ b/SU2_CFD/include/numerics/continuous_adjoint/adj_sources.hpp @@ -3,7 +3,7 @@ * \brief Declarations of numerics classes for continuous adjoint * source term integration. Implemented in adj_sources.cpp. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/elasticity/CFEAElasticity.hpp b/SU2_CFD/include/numerics/elasticity/CFEAElasticity.hpp index 49f79f340bc..11470fd0fba 100644 --- a/SU2_CFD/include/numerics/elasticity/CFEAElasticity.hpp +++ b/SU2_CFD/include/numerics/elasticity/CFEAElasticity.hpp @@ -2,7 +2,7 @@ * \file CFEAElasticity.hpp * \brief Declaration and inlines of the base class for elasticity problems. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -38,7 +38,7 @@ * The methods we override in this class with an empty implementation are here just to better * document the public interface of this class hierarchy. * \author R.Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEAElasticity : public CNumerics { diff --git a/SU2_CFD/include/numerics/elasticity/CFEALinearElasticity.hpp b/SU2_CFD/include/numerics/elasticity/CFEALinearElasticity.hpp index bd4086bf9fd..6d836702ce9 100644 --- a/SU2_CFD/include/numerics/elasticity/CFEALinearElasticity.hpp +++ b/SU2_CFD/include/numerics/elasticity/CFEALinearElasticity.hpp @@ -2,7 +2,7 @@ * \file CFEALinearElasticity.hpp * \brief Declaration and inlines of the linear elasticity FE numerics class. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -35,7 +35,7 @@ * \brief Class for computing the stiffness matrix of a linear, elastic problem. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEALinearElasticity : public CFEAElasticity { protected: @@ -90,7 +90,7 @@ class CFEALinearElasticity : public CFEAElasticity { * \brief Particular case of linear elasticity used for mesh deformation. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEAMeshElasticity final : public CFEALinearElasticity { diff --git a/SU2_CFD/include/numerics/elasticity/CFEANonlinearElasticity.hpp b/SU2_CFD/include/numerics/elasticity/CFEANonlinearElasticity.hpp index 388418c64cd..0e57f54e529 100644 --- a/SU2_CFD/include/numerics/elasticity/CFEANonlinearElasticity.hpp +++ b/SU2_CFD/include/numerics/elasticity/CFEANonlinearElasticity.hpp @@ -2,7 +2,7 @@ * \file CFEANonlinearElasticity.hpp * \brief Declaration and inlines of the nonlinear elasticity FE numerics class. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -37,7 +37,7 @@ * Compute_Plane_Stress_Term and Compute_Stress_Tensor. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEANonlinearElasticity : public CFEAElasticity { diff --git a/SU2_CFD/include/numerics/elasticity/nonlinear_models.hpp b/SU2_CFD/include/numerics/elasticity/nonlinear_models.hpp index c817990d57b..a36eee0a67d 100644 --- a/SU2_CFD/include/numerics/elasticity/nonlinear_models.hpp +++ b/SU2_CFD/include/numerics/elasticity/nonlinear_models.hpp @@ -2,7 +2,7 @@ * \file nonlinear_models.hpp * \brief Declarations of nonlinear constitutive models. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -35,7 +35,7 @@ * \brief Class for computing the constitutive and stress tensors for a neo-Hookean material model, compressible. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEM_NeoHookean_Comp final : public CFEANonlinearElasticity { @@ -83,7 +83,7 @@ class CFEM_NeoHookean_Comp final : public CFEANonlinearElasticity { * \brief Constitutive and stress tensors for a Knowles stored-energy function, nearly incompressible. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEM_Knowles_NearInc final : public CFEANonlinearElasticity { @@ -134,7 +134,7 @@ class CFEM_Knowles_NearInc final : public CFEANonlinearElasticity { * \brief Class for computing the constitutive and stress tensors for a dielectric elastomer. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEM_DielectricElastomer final : public CFEANonlinearElasticity { @@ -182,7 +182,7 @@ class CFEM_DielectricElastomer final : public CFEANonlinearElasticity { * \brief Class for computing the constitutive and stress tensors for a nearly-incompressible ideal DE. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEM_IdealDE final : public CFEANonlinearElasticity { diff --git a/SU2_CFD/include/numerics/flow/convection/ausm_slau.hpp b/SU2_CFD/include/numerics/flow/convection/ausm_slau.hpp index 8eb1b67dd65..b328f961f24 100644 --- a/SU2_CFD/include/numerics/flow/convection/ausm_slau.hpp +++ b/SU2_CFD/include/numerics/flow/convection/ausm_slau.hpp @@ -3,7 +3,7 @@ * \brief Declaration of numerics classes for the AUSM family of schemes, * including SLAU. The implementation is in ausm.cpp. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/flow/convection/centered.hpp b/SU2_CFD/include/numerics/flow/convection/centered.hpp index b5884f95747..3898698f166 100644 --- a/SU2_CFD/include/numerics/flow/convection/centered.hpp +++ b/SU2_CFD/include/numerics/flow/convection/centered.hpp @@ -3,7 +3,7 @@ * \brief Declaration of numerics classes for centered schemes, * the implementation is in centered.cpp. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/flow/convection/fds.hpp b/SU2_CFD/include/numerics/flow/convection/fds.hpp index 61c6a331b2b..e72db06db6a 100644 --- a/SU2_CFD/include/numerics/flow/convection/fds.hpp +++ b/SU2_CFD/include/numerics/flow/convection/fds.hpp @@ -3,7 +3,7 @@ * \brief Declarations of classes for Flux-Difference-Spliting schemes, * the implementations are in fds.cpp * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/flow/convection/fvs.hpp b/SU2_CFD/include/numerics/flow/convection/fvs.hpp index c39a7a838fe..241712b5c6e 100644 --- a/SU2_CFD/include/numerics/flow/convection/fvs.hpp +++ b/SU2_CFD/include/numerics/flow/convection/fvs.hpp @@ -3,7 +3,7 @@ * \brief Declarations of classes for Flux-Vector-Spliting schemes, * the implementations are in fvs.cpp. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/flow/convection/hllc.hpp b/SU2_CFD/include/numerics/flow/convection/hllc.hpp index 62d46a7d211..d1634a88bf2 100644 --- a/SU2_CFD/include/numerics/flow/convection/hllc.hpp +++ b/SU2_CFD/include/numerics/flow/convection/hllc.hpp @@ -2,7 +2,7 @@ * \file hllc.hpp * \brief Declaration of HLLC numerics classes, implemented in hllc.cpp. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -34,7 +34,7 @@ * \brief Class for solving an approximate Riemann HLLC. * \ingroup ConvDiscr * \author G. Gori, Politecnico di Milano - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CUpwHLLC_Flow final : public CNumerics { private: @@ -86,7 +86,7 @@ class CUpwHLLC_Flow final : public CNumerics { * \brief Class for solving an approximate Riemann HLLC. * \ingroup ConvDiscr * \author G. Gori, Politecnico di Milano - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CUpwGeneralHLLC_Flow final : public CNumerics { private: diff --git a/SU2_CFD/include/numerics/flow/convection/roe.hpp b/SU2_CFD/include/numerics/flow/convection/roe.hpp index 1035aaf08fd..d3a137f6dc1 100644 --- a/SU2_CFD/include/numerics/flow/convection/roe.hpp +++ b/SU2_CFD/include/numerics/flow/convection/roe.hpp @@ -3,7 +3,7 @@ * \brief Declarations of numerics classes for Roe-type schemes, * implemented in roe.cpp. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -119,7 +119,7 @@ class CUpwRoe_Flow final : public CUpwRoeBase_Flow { * \brief Class for solving an approximate Riemann solver of L2Roe for the flow equations. * \ingroup ConvDiscr * \author E. Molina, A. Bueno, F. Palacios, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CUpwL2Roe_Flow final : public CUpwRoeBase_Flow { private: @@ -149,7 +149,7 @@ class CUpwL2Roe_Flow final : public CUpwRoeBase_Flow { * \brief Class for solving an approximate Riemann solver of LMRoe for the flow equations. * \ingroup ConvDiscr * \author E. Molina, A. Bueno, F. Palacios, P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CUpwLMRoe_Flow final : public CUpwRoeBase_Flow { private: diff --git a/SU2_CFD/include/numerics/flow/flow_diffusion.hpp b/SU2_CFD/include/numerics/flow/flow_diffusion.hpp index a78c23bd270..654bc91e6ac 100644 --- a/SU2_CFD/include/numerics/flow/flow_diffusion.hpp +++ b/SU2_CFD/include/numerics/flow/flow_diffusion.hpp @@ -2,7 +2,7 @@ * \file flow_diffusion.hpp * \brief Declarations of numerics classes for viscous flux computation. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/flow/flow_sources.hpp b/SU2_CFD/include/numerics/flow/flow_sources.hpp index ab9bedc8037..e4cb64e4b54 100644 --- a/SU2_CFD/include/numerics/flow/flow_sources.hpp +++ b/SU2_CFD/include/numerics/flow/flow_sources.hpp @@ -2,7 +2,7 @@ * \file flow_sources.hpp * \brief Declarations of numerics classes for source-term integration. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -177,7 +177,7 @@ class CSourceBodyForce final : public CSourceBase_Flow { * \brief Class for the source term integration of a body force in the incompressible solver. * \ingroup SourceDiscr * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CSourceIncBodyForce final : public CSourceBase_Flow { su2double Body_Force_Vector[3]; @@ -204,7 +204,7 @@ class CSourceIncBodyForce final : public CSourceBase_Flow { * \brief Class for the source term integration of the Boussinesq approximation for incompressible flow. * \ingroup SourceDiscr * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CSourceBoussinesq final : public CSourceBase_Flow { su2double Gravity_Vector[3]; diff --git a/SU2_CFD/include/numerics/heat.hpp b/SU2_CFD/include/numerics/heat.hpp index 52b0bd8e5a1..cfea4441d53 100644 --- a/SU2_CFD/include/numerics/heat.hpp +++ b/SU2_CFD/include/numerics/heat.hpp @@ -2,7 +2,7 @@ * \file heat.hpp * \brief Declarations of numerics classes for heat transfer problems. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -36,7 +36,7 @@ * \brief Class for doing a scalar upwind solver for the heat convection equation. * \ingroup ConvDiscr * \author O. Burghardt. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CUpwSca_Heat final : public CUpwScalar> { public: @@ -70,7 +70,7 @@ class CUpwSca_Heat final : public CUpwScalar { public: diff --git a/SU2_CFD/include/numerics/radiation.hpp b/SU2_CFD/include/numerics/radiation.hpp index f55ea3ddac9..6a926be2f2b 100644 --- a/SU2_CFD/include/numerics/radiation.hpp +++ b/SU2_CFD/include/numerics/radiation.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the classes used to compute * residual terms in radiation problems. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/scalar/scalar_convection.hpp b/SU2_CFD/include/numerics/scalar/scalar_convection.hpp index d25647404c1..3e44479ac17 100644 --- a/SU2_CFD/include/numerics/scalar/scalar_convection.hpp +++ b/SU2_CFD/include/numerics/scalar/scalar_convection.hpp @@ -3,7 +3,7 @@ * \brief Declarations of numerics classes for discretization of * convective fluxes in scalar problems. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp b/SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp index 2723ba046e7..4e588c59d6c 100644 --- a/SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp +++ b/SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp @@ -3,7 +3,7 @@ * \brief Declarations of numerics classes for discretization of * viscous fluxes in scalar problems. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/scalar/scalar_sources.hpp b/SU2_CFD/include/numerics/scalar/scalar_sources.hpp index 1fa42a0bb95..08453f59f63 100644 --- a/SU2_CFD/include/numerics/scalar/scalar_sources.hpp +++ b/SU2_CFD/include/numerics/scalar/scalar_sources.hpp @@ -1,7 +1,7 @@ /*! * \file scalar_sources.hpp * \brief Declarations of numerics classes for integration of source terms in scalar problems. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/species/species_convection.hpp b/SU2_CFD/include/numerics/species/species_convection.hpp index 3bc627b4508..d3384f29367 100644 --- a/SU2_CFD/include/numerics/species/species_convection.hpp +++ b/SU2_CFD/include/numerics/species/species_convection.hpp @@ -3,7 +3,7 @@ * \brief Declarations of numerics classes for discretization of * convective fluxes in species problems. * \author T. Kattmann - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/species/species_diffusion.hpp b/SU2_CFD/include/numerics/species/species_diffusion.hpp index 8cbd6dcc995..5a914dfc528 100644 --- a/SU2_CFD/include/numerics/species/species_diffusion.hpp +++ b/SU2_CFD/include/numerics/species/species_diffusion.hpp @@ -3,7 +3,7 @@ * \brief Declarations of numerics classes for discretization of * viscous fluxes in species problems. * \author T. Kattmann - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/species/species_sources.hpp b/SU2_CFD/include/numerics/species/species_sources.hpp index fc50eef1279..fb95e414699 100644 --- a/SU2_CFD/include/numerics/species/species_sources.hpp +++ b/SU2_CFD/include/numerics/species/species_sources.hpp @@ -3,7 +3,7 @@ * \brief Declarations of numerics classes for integration of source * terms in species problems. * \author T. Kattmann - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/template.hpp b/SU2_CFD/include/numerics/template.hpp index dc705789cb1..6bce5fbe987 100644 --- a/SU2_CFD/include/numerics/template.hpp +++ b/SU2_CFD/include/numerics/template.hpp @@ -5,7 +5,7 @@ * new schemes in SU2, in practice you should look for a similar * scheme and try to re-use functionality (not by copy-paste). * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/turbulent/transition/trans_convection.hpp b/SU2_CFD/include/numerics/turbulent/transition/trans_convection.hpp index 669c3a3dfa4..82912d00c74 100644 --- a/SU2_CFD/include/numerics/turbulent/transition/trans_convection.hpp +++ b/SU2_CFD/include/numerics/turbulent/transition/trans_convection.hpp @@ -3,7 +3,7 @@ * \brief Delarations of numerics classes for discretization of * convective fluxes in transition problems. * \author S. Kang - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/turbulent/transition/trans_correlations.hpp b/SU2_CFD/include/numerics/turbulent/transition/trans_correlations.hpp index b8102120701..617258174c9 100644 --- a/SU2_CFD/include/numerics/turbulent/transition/trans_correlations.hpp +++ b/SU2_CFD/include/numerics/turbulent/transition/trans_correlations.hpp @@ -1,7 +1,7 @@ /*! * \file trans_correlations.hpp * \brief Numerics class for the LM model's correlation functions. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/turbulent/transition/trans_diffusion.hpp b/SU2_CFD/include/numerics/turbulent/transition/trans_diffusion.hpp index 50153606860..372d89b253c 100644 --- a/SU2_CFD/include/numerics/turbulent/transition/trans_diffusion.hpp +++ b/SU2_CFD/include/numerics/turbulent/transition/trans_diffusion.hpp @@ -3,7 +3,7 @@ * \brief Declarations of numerics classes for discretization of * viscous fluxes in transition problems. * \author S. Kang - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/turbulent/transition/trans_sources.hpp b/SU2_CFD/include/numerics/turbulent/transition/trans_sources.hpp index c1388c2df9c..4030e35bab9 100644 --- a/SU2_CFD/include/numerics/turbulent/transition/trans_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/transition/trans_sources.hpp @@ -1,7 +1,7 @@ /*! * \file trans_sources.hpp * \brief Numerics classes for integration of source terms in transition problems. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/turbulent/turb_convection.hpp b/SU2_CFD/include/numerics/turbulent/turb_convection.hpp index e219190e05f..96b3bc3c703 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_convection.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_convection.hpp @@ -3,7 +3,7 @@ * \brief Declarations of numerics classes for discretization of * convective fluxes in turbulence problems. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/turbulent/turb_diffusion.hpp b/SU2_CFD/include/numerics/turbulent/turb_diffusion.hpp index 355a8cde58d..d4f53c0606d 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_diffusion.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_diffusion.hpp @@ -3,7 +3,7 @@ * \brief Declarations of numerics classes for discretization of * viscous fluxes in turbulence problems. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index f59da30719b..c9464b1dfc3 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -1,7 +1,7 @@ /*! * \file turb_sources.hpp * \brief Numerics classes for integration of source terms in turbulence problems. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics_simd/CNumericsSIMD.cpp b/SU2_CFD/include/numerics_simd/CNumericsSIMD.cpp index 43cc3dc424d..8e9c22224af 100644 --- a/SU2_CFD/include/numerics_simd/CNumericsSIMD.cpp +++ b/SU2_CFD/include/numerics_simd/CNumericsSIMD.cpp @@ -4,7 +4,7 @@ * \note This should be the only cpp for this family of classes * (which are all templates). All compilation takes place here. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics_simd/CNumericsSIMD.hpp b/SU2_CFD/include/numerics_simd/CNumericsSIMD.hpp index d5702990213..ad838437d5f 100644 --- a/SU2_CFD/include/numerics_simd/CNumericsSIMD.hpp +++ b/SU2_CFD/include/numerics_simd/CNumericsSIMD.hpp @@ -2,7 +2,7 @@ * \file CNumericsSIMD.hpp * \brief Vectorized (SIMD) numerics classes. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp b/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp index ae5c23c259c..4e73ab5b752 100644 --- a/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp +++ b/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp @@ -2,7 +2,7 @@ * \file centered.hpp * \brief Centered convective schemes. * \author P. Gomes, F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics_simd/flow/convection/common.hpp b/SU2_CFD/include/numerics_simd/flow/convection/common.hpp index e1807f99f6b..6cd97b1bdf4 100644 --- a/SU2_CFD/include/numerics_simd/flow/convection/common.hpp +++ b/SU2_CFD/include/numerics_simd/flow/convection/common.hpp @@ -2,7 +2,7 @@ * \file common.hpp * \brief Common convection-related methods. * \author P. Gomes, F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp b/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp index d128ae4cbca..e1fb9843412 100644 --- a/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp +++ b/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp @@ -2,7 +2,7 @@ * \file roe.hpp * \brief Roe-family of convective schemes. * \author P. Gomes, A. Bueno, F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp b/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp index 77b4d41fce9..279a623c0c7 100644 --- a/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp +++ b/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp @@ -2,7 +2,7 @@ * \file common.hpp * \brief Helper functions for viscous methods. * \author P. Gomes, C. Pederson, A. Bueno, F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * 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 9b34873fcdd..73bfaac1537 100644 --- a/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp +++ b/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp @@ -2,7 +2,7 @@ * \file viscous_fluxes.hpp * \brief Decorator classes for computation of viscous fluxes. * \author P. Gomes, C. Pederson, A. Bueno, F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics_simd/flow/variables.hpp b/SU2_CFD/include/numerics_simd/flow/variables.hpp index 17e6f4a090f..086adbf27dc 100644 --- a/SU2_CFD/include/numerics_simd/flow/variables.hpp +++ b/SU2_CFD/include/numerics_simd/flow/variables.hpp @@ -2,7 +2,7 @@ * \file variables.hpp * \brief Collection of types to store physical variables. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/numerics_simd/util.hpp b/SU2_CFD/include/numerics_simd/util.hpp index d1bdfacf046..3af8c1d5e98 100644 --- a/SU2_CFD/include/numerics_simd/util.hpp +++ b/SU2_CFD/include/numerics_simd/util.hpp @@ -2,7 +2,7 @@ * \file util.hpp * \brief Generic auxiliary functions. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CAdjElasticityOutput.hpp b/SU2_CFD/include/output/CAdjElasticityOutput.hpp index 5f44a509697..fe4509849cf 100644 --- a/SU2_CFD/include/output/CAdjElasticityOutput.hpp +++ b/SU2_CFD/include/output/CAdjElasticityOutput.hpp @@ -2,7 +2,7 @@ * \file CAdjElasticityOutput.hpp * \brief Headers of the adjoint elasticity output class. * \author T. Albring, R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CAdjFlowCompOutput.hpp b/SU2_CFD/include/output/CAdjFlowCompOutput.hpp index 01787e3e6e1..9ab730cf2bd 100644 --- a/SU2_CFD/include/output/CAdjFlowCompOutput.hpp +++ b/SU2_CFD/include/output/CAdjFlowCompOutput.hpp @@ -2,7 +2,7 @@ * \file CAdjFlowCompOutput.hpp * \brief Headers of the adjoint compressible flow output. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CAdjFlowIncOutput.hpp b/SU2_CFD/include/output/CAdjFlowIncOutput.hpp index 02b5ddf9433..c64b95f8b69 100644 --- a/SU2_CFD/include/output/CAdjFlowIncOutput.hpp +++ b/SU2_CFD/include/output/CAdjFlowIncOutput.hpp @@ -2,7 +2,7 @@ * \file CAdjFlowIncOutput.hpp * \brief Headers of the adjoint incompressible flow output. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CAdjFlowOutput.hpp b/SU2_CFD/include/output/CAdjFlowOutput.hpp index 6bc4f4e1d93..f6d6201276d 100644 --- a/SU2_CFD/include/output/CAdjFlowOutput.hpp +++ b/SU2_CFD/include/output/CAdjFlowOutput.hpp @@ -2,7 +2,7 @@ * \file CAdjFlowOutput.hpp * \brief Headers of the adjoint flow output. * \author T. Kattmann - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CAdjHeatOutput.hpp b/SU2_CFD/include/output/CAdjHeatOutput.hpp index 61b2409477c..cd451c91c71 100644 --- a/SU2_CFD/include/output/CAdjHeatOutput.hpp +++ b/SU2_CFD/include/output/CAdjHeatOutput.hpp @@ -2,7 +2,7 @@ * \file CAdjHeatOutput.hpp * \brief Headers of the adjoint heat output. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CBaselineOutput.hpp b/SU2_CFD/include/output/CBaselineOutput.hpp index c9328904522..3550ab95fa3 100644 --- a/SU2_CFD/include/output/CBaselineOutput.hpp +++ b/SU2_CFD/include/output/CBaselineOutput.hpp @@ -2,7 +2,7 @@ * \file CBaselineOutput.hpp * \brief Headers of the baseline output. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CElasticityOutput.hpp b/SU2_CFD/include/output/CElasticityOutput.hpp index 486c0934dc6..ca65cab7a9c 100644 --- a/SU2_CFD/include/output/CElasticityOutput.hpp +++ b/SU2_CFD/include/output/CElasticityOutput.hpp @@ -2,7 +2,7 @@ * \file CElasticityOutput.hpp * \brief Headers of the elasticity output. * \author F. Palacios, T. Economon, M. Colonno - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CFVMOutput.hpp b/SU2_CFD/include/output/CFVMOutput.hpp index c351c8f3981..8cebc03c652 100644 --- a/SU2_CFD/include/output/CFVMOutput.hpp +++ b/SU2_CFD/include/output/CFVMOutput.hpp @@ -2,7 +2,7 @@ * \file CFVMOutput.hpp * \brief Headers of the Finite Volume Method output. * \author T. Kattmann - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CFlowCompFEMOutput.hpp b/SU2_CFD/include/output/CFlowCompFEMOutput.hpp index 2204247cf14..9e7ecba4ed8 100644 --- a/SU2_CFD/include/output/CFlowCompFEMOutput.hpp +++ b/SU2_CFD/include/output/CFlowCompFEMOutput.hpp @@ -2,7 +2,7 @@ * \file CFlowCompFEMOutput.hpp * \brief Headers of the compressible FEM flow output. * \author R. Sanchez, T. Albring. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CFlowCompOutput.hpp b/SU2_CFD/include/output/CFlowCompOutput.hpp index f56ffb1e4b7..c7644a37f27 100644 --- a/SU2_CFD/include/output/CFlowCompOutput.hpp +++ b/SU2_CFD/include/output/CFlowCompOutput.hpp @@ -2,7 +2,7 @@ * \file CFlowCompOutput.hpp * \brief Headers of the compressible flow output. * \author R. Sanchez, T. Albring. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CFlowIncOutput.hpp b/SU2_CFD/include/output/CFlowIncOutput.hpp index f1d88002683..fe7d7874427 100644 --- a/SU2_CFD/include/output/CFlowIncOutput.hpp +++ b/SU2_CFD/include/output/CFlowIncOutput.hpp @@ -2,7 +2,7 @@ * \file CFlowIncOutput.hpp * \brief Headers of the incompressible flow output. * \author T. Albring, R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CFlowOutput.hpp b/SU2_CFD/include/output/CFlowOutput.hpp index a6925c28e94..9a216072352 100644 --- a/SU2_CFD/include/output/CFlowOutput.hpp +++ b/SU2_CFD/include/output/CFlowOutput.hpp @@ -2,7 +2,7 @@ * \file CFlowOutput.hpp * \brief Headers of the flow output. * \author F. Palacios, T. Economon, M. Colonno - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CHeatOutput.hpp b/SU2_CFD/include/output/CHeatOutput.hpp index 97c75b76a5c..04babb1b7c3 100644 --- a/SU2_CFD/include/output/CHeatOutput.hpp +++ b/SU2_CFD/include/output/CHeatOutput.hpp @@ -2,7 +2,7 @@ * \file CHeatOutput.hpp * \brief Headers of the heat output. * \author R. Sanchez, T. Albring. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CMeshOutput.hpp b/SU2_CFD/include/output/CMeshOutput.hpp index d7d0625de70..4ca9ca04999 100644 --- a/SU2_CFD/include/output/CMeshOutput.hpp +++ b/SU2_CFD/include/output/CMeshOutput.hpp @@ -2,7 +2,7 @@ * \file CMeshOutput.hpp * \brief Headers of the mesh output. * \author R. Sanchez, T. Albring. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CMultizoneOutput.hpp b/SU2_CFD/include/output/CMultizoneOutput.hpp index e3debededda..a56eb09b1c8 100644 --- a/SU2_CFD/include/output/CMultizoneOutput.hpp +++ b/SU2_CFD/include/output/CMultizoneOutput.hpp @@ -2,7 +2,7 @@ * \file CMultizoneOutput.hpp * \brief Headers of the main subroutines for screen and history output in multizone problems. * \author R. Sanchez, T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/CNEMOCompOutput.hpp b/SU2_CFD/include/output/CNEMOCompOutput.hpp index 008c0473aed..6f22adb312e 100644 --- a/SU2_CFD/include/output/CNEMOCompOutput.hpp +++ b/SU2_CFD/include/output/CNEMOCompOutput.hpp @@ -2,7 +2,7 @@ * \file CNEMOCompOutput.hpp * \brief Headers of the compressible flow output. * \author R. Sanchez, W. Maier. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/COutput.hpp b/SU2_CFD/include/output/COutput.hpp index 477ebf341a4..a549a6c5541 100644 --- a/SU2_CFD/include/output/COutput.hpp +++ b/SU2_CFD/include/output/COutput.hpp @@ -2,7 +2,7 @@ * \file COutput.hpp * \brief Headers of the output class. * \author T.Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/COutputFactory.hpp b/SU2_CFD/include/output/COutputFactory.hpp index 5b9e4eee5df..28b81040f14 100644 --- a/SU2_CFD/include/output/COutputFactory.hpp +++ b/SU2_CFD/include/output/COutputFactory.hpp @@ -2,7 +2,7 @@ * \file COutputFactory.hpp * \brief Headers of the output class. * \author T.Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CCGNSFileWriter.hpp b/SU2_CFD/include/output/filewriter/CCGNSFileWriter.hpp index c13e8bce7b1..696a211c133 100644 --- a/SU2_CFD/include/output/filewriter/CCGNSFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CCGNSFileWriter.hpp @@ -2,7 +2,7 @@ * \file CCGNSFileWriter.hpp * \brief Headers for CGNS file writer class. * \author G. Baldan - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CCSVFileWriter.hpp b/SU2_CFD/include/output/filewriter/CCSVFileWriter.hpp index 5e35cea6038..b14a03bfb7b 100644 --- a/SU2_CFD/include/output/filewriter/CCSVFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CCSVFileWriter.hpp @@ -2,7 +2,7 @@ * \file CCSVFileWriter.hpp * \brief Headers fo the CSV file writer class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CFEMDataSorter.hpp b/SU2_CFD/include/output/filewriter/CFEMDataSorter.hpp index c6ade1de686..2f1168f04dd 100644 --- a/SU2_CFD/include/output/filewriter/CFEMDataSorter.hpp +++ b/SU2_CFD/include/output/filewriter/CFEMDataSorter.hpp @@ -2,7 +2,7 @@ * \file CFEMDataSorter.hpp * \brief Headers fo the FEM data sorter class. * \author T. Albring, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CFVMDataSorter.hpp b/SU2_CFD/include/output/filewriter/CFVMDataSorter.hpp index 45a6441b6ce..b0abc84b212 100644 --- a/SU2_CFD/include/output/filewriter/CFVMDataSorter.hpp +++ b/SU2_CFD/include/output/filewriter/CFVMDataSorter.hpp @@ -2,7 +2,7 @@ * \file CFVMDataSorter.hpp * \brief Headers fo the FVM data sorter class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CFileWriter.hpp b/SU2_CFD/include/output/filewriter/CFileWriter.hpp index 6749b03682f..bc8aa3ee85b 100644 --- a/SU2_CFD/include/output/filewriter/CFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CFileWriter.hpp @@ -2,7 +2,7 @@ * \file CFileWriter.hpp * \brief Headers fo the file writer class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CParallelDataSorter.hpp b/SU2_CFD/include/output/filewriter/CParallelDataSorter.hpp index 13e0619dd1b..da2f6a1f3bf 100644 --- a/SU2_CFD/include/output/filewriter/CParallelDataSorter.hpp +++ b/SU2_CFD/include/output/filewriter/CParallelDataSorter.hpp @@ -2,7 +2,7 @@ * \file CParallelDataSorter.hpp * \brief Headers fo the data sorter class. * \author T. Albring, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CParaviewBinaryFileWriter.hpp b/SU2_CFD/include/output/filewriter/CParaviewBinaryFileWriter.hpp index 18fdb6325b3..a3b6d111a27 100644 --- a/SU2_CFD/include/output/filewriter/CParaviewBinaryFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CParaviewBinaryFileWriter.hpp @@ -2,7 +2,7 @@ * \file CParaviewBinaryFileWriter.hpp * \brief Headers fo paraview binary file writer class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CParaviewFileWriter.hpp b/SU2_CFD/include/output/filewriter/CParaviewFileWriter.hpp index 9b890050dea..66a6710f54c 100644 --- a/SU2_CFD/include/output/filewriter/CParaviewFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CParaviewFileWriter.hpp @@ -2,7 +2,7 @@ * \file CParaviewFileWriter.hpp * \brief Headers fo the paraview file writer class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CParaviewVTMFileWriter.hpp b/SU2_CFD/include/output/filewriter/CParaviewVTMFileWriter.hpp index 18c0919eaef..ce2e047d3bf 100644 --- a/SU2_CFD/include/output/filewriter/CParaviewVTMFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CParaviewVTMFileWriter.hpp @@ -2,7 +2,7 @@ * \file CParaviewVTMFileWriter.hpp * \brief Headers fo paraview binary file writer class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CParaviewXMLFileWriter.hpp b/SU2_CFD/include/output/filewriter/CParaviewXMLFileWriter.hpp index 2a2b352f043..1a551a8c4fa 100644 --- a/SU2_CFD/include/output/filewriter/CParaviewXMLFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CParaviewXMLFileWriter.hpp @@ -2,7 +2,7 @@ * \file CParaviewXMLFileWriter.hpp * \brief Headers fo paraview binary file writer class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CSTLFileWriter.hpp b/SU2_CFD/include/output/filewriter/CSTLFileWriter.hpp index 52c67948501..ccfe151f77a 100644 --- a/SU2_CFD/include/output/filewriter/CSTLFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CSTLFileWriter.hpp @@ -2,7 +2,7 @@ * \file CSTLFileWriter.hpp * \brief Headers fo the STL file writer class. * \author T. Kattmann, T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -33,7 +33,7 @@ * \class CSTLFileWriter * \brief Class for writing STL output files. * \author T. Kattmann, T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CSTLFileWriter final : public CFileWriter{ private: diff --git a/SU2_CFD/include/output/filewriter/CSU2BinaryFileWriter.hpp b/SU2_CFD/include/output/filewriter/CSU2BinaryFileWriter.hpp index 3e4d8cd974a..43f4d52cfb2 100644 --- a/SU2_CFD/include/output/filewriter/CSU2BinaryFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CSU2BinaryFileWriter.hpp @@ -2,7 +2,7 @@ * \file CSU2BinaryFileWriter.hpp * \brief Headers fo the SU2 binary file writer class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CSU2FileWriter.hpp b/SU2_CFD/include/output/filewriter/CSU2FileWriter.hpp index 132e831fe18..aae32d38364 100644 --- a/SU2_CFD/include/output/filewriter/CSU2FileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CSU2FileWriter.hpp @@ -2,7 +2,7 @@ * \file CSU2FileWriter.hpp * \brief Headers fo the CSV file writer class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CSU2MeshFileWriter.hpp b/SU2_CFD/include/output/filewriter/CSU2MeshFileWriter.hpp index dcc745a7d09..71719a1e83b 100644 --- a/SU2_CFD/include/output/filewriter/CSU2MeshFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CSU2MeshFileWriter.hpp @@ -2,7 +2,7 @@ * \file CSU2MeshFileWriter.hpp * \brief Headers fo the CSV file writer class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CSurfaceFEMDataSorter.hpp b/SU2_CFD/include/output/filewriter/CSurfaceFEMDataSorter.hpp index bf03326c7bb..109d978e59c 100644 --- a/SU2_CFD/include/output/filewriter/CSurfaceFEMDataSorter.hpp +++ b/SU2_CFD/include/output/filewriter/CSurfaceFEMDataSorter.hpp @@ -2,7 +2,7 @@ * \file CSurfaceFEMDataSorter.hpp * \brief Headers fo the surface FEM data sorter class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CSurfaceFVMDataSorter.hpp b/SU2_CFD/include/output/filewriter/CSurfaceFVMDataSorter.hpp index 6948f6c910a..8d73e050976 100644 --- a/SU2_CFD/include/output/filewriter/CSurfaceFVMDataSorter.hpp +++ b/SU2_CFD/include/output/filewriter/CSurfaceFVMDataSorter.hpp @@ -2,7 +2,7 @@ * \file CSurfaceFVMDataSorter.hpp * \brief Headers for the surface FVM data sorter class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CTecplotBinaryFileWriter.hpp b/SU2_CFD/include/output/filewriter/CTecplotBinaryFileWriter.hpp index 092bff7e3f6..bdd155cb9b8 100644 --- a/SU2_CFD/include/output/filewriter/CTecplotBinaryFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CTecplotBinaryFileWriter.hpp @@ -2,7 +2,7 @@ * \file CTecplotBinaryFileWriter.hpp * \brief Headers fo the tecplot binary writer class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/filewriter/CTecplotFileWriter.hpp b/SU2_CFD/include/output/filewriter/CTecplotFileWriter.hpp index b728476e41b..365253ce776 100644 --- a/SU2_CFD/include/output/filewriter/CTecplotFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CTecplotFileWriter.hpp @@ -2,7 +2,7 @@ * \file CTecplotFileWriter.hpp * \brief Headers fo the tecplot ASCII writer class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/output/tools/CWindowingTools.hpp b/SU2_CFD/include/output/tools/CWindowingTools.hpp index b4052f06ede..d9add3fb9d4 100644 --- a/SU2_CFD/include/output/tools/CWindowingTools.hpp +++ b/SU2_CFD/include/output/tools/CWindowingTools.hpp @@ -2,7 +2,7 @@ * \file signal_processing_toolbox.hpp * \brief Header file for the signal processing toolbox. * \author S. Schotthöfer - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/sgs_model.hpp b/SU2_CFD/include/sgs_model.hpp index e47be518476..16d82e5d815 100644 --- a/SU2_CFD/include/sgs_model.hpp +++ b/SU2_CFD/include/sgs_model.hpp @@ -2,7 +2,7 @@ * \file sgs_model.hpp * \brief Headers of the LES subgrid scale models of the SU2 solvers. * \author E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -38,7 +38,7 @@ using namespace std; * \class CSGSModel * \brief Base class for defining the LES subgrid scale model. * \author: E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CSGSModel { @@ -224,7 +224,7 @@ class CSGSModel { * \class CSmagorinskyModel * \brief Derived class for defining the Smagorinsky SGS model. * \author: E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CSmagorinskyModel : public CSGSModel { @@ -413,7 +413,7 @@ class CSmagorinskyModel : public CSGSModel { * \class CWALEModel * \brief Derived class for defining the WALE SGS model. * \author: E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CWALEModel : public CSGSModel { @@ -601,7 +601,7 @@ class CWALEModel : public CSGSModel { * \class CVremanModel * \brief Derived class for defining the WALE SGS model. * \author: E. van der Weide, T. Economon, P. Urbanczyk, E. Molina - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CVremanModel : public CSGSModel { diff --git a/SU2_CFD/include/sgs_model.inl b/SU2_CFD/include/sgs_model.inl index 57f7d0c04cf..507afc4b3e9 100644 --- a/SU2_CFD/include/sgs_model.inl +++ b/SU2_CFD/include/sgs_model.inl @@ -2,7 +2,7 @@ * \file sgs_model.inl * \brief In-Line subroutines of the sgs_model.hpp file. * \author E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CAdjEulerSolver.hpp b/SU2_CFD/include/solvers/CAdjEulerSolver.hpp index e644c56f66b..04f3bcd23e8 100644 --- a/SU2_CFD/include/solvers/CAdjEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CAdjEulerSolver.hpp @@ -2,7 +2,7 @@ * \file CAdjEulerSolver.hpp * \brief Headers of the CAdjEulerSolver class * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CAdjNSSolver.hpp b/SU2_CFD/include/solvers/CAdjNSSolver.hpp index e833ac06427..94e1798db10 100644 --- a/SU2_CFD/include/solvers/CAdjNSSolver.hpp +++ b/SU2_CFD/include/solvers/CAdjNSSolver.hpp @@ -2,7 +2,7 @@ * \file CAdjNSSolver.hpp * \brief Headers of the CAdjNSSolver class * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CAdjTurbSolver.hpp b/SU2_CFD/include/solvers/CAdjTurbSolver.hpp index a39162bfa0e..cb9485fb1f7 100644 --- a/SU2_CFD/include/solvers/CAdjTurbSolver.hpp +++ b/SU2_CFD/include/solvers/CAdjTurbSolver.hpp @@ -2,7 +2,7 @@ * \file CAdjTurbSolver.hpp * \brief Headers of the CAdjTurbSolver class * \author F. Palacios, A. Bueno. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CBaselineSolver.hpp b/SU2_CFD/include/solvers/CBaselineSolver.hpp index bf402218091..808ab322d1a 100644 --- a/SU2_CFD/include/solvers/CBaselineSolver.hpp +++ b/SU2_CFD/include/solvers/CBaselineSolver.hpp @@ -2,7 +2,7 @@ * \file CBaslineSolver.hpp * \brief Headers of the CBaselineSolver class * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CBaselineSolver_FEM.hpp b/SU2_CFD/include/solvers/CBaselineSolver_FEM.hpp index 49c78a71033..428d77bb615 100644 --- a/SU2_CFD/include/solvers/CBaselineSolver_FEM.hpp +++ b/SU2_CFD/include/solvers/CBaselineSolver_FEM.hpp @@ -2,7 +2,7 @@ * \file CBaslineSolver_FEM.hpp * \brief Headers of the CBaselineSolver class * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -31,7 +31,7 @@ * \class CBaselineSolver_FEM * \brief Main class for defining a baseline solution from a restart file for the DG-FEM solver output. * \author T. Economon. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CBaselineSolver_FEM final : public CSolver { protected: diff --git a/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp b/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp index 6329fe2bbfc..09a443cef17 100644 --- a/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp +++ b/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp @@ -2,7 +2,7 @@ * \file CDiscAdjFEASolver.hpp * \brief Headers of the CDiscAdjFEASolver class * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp b/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp index af02b61780c..c7ce146f472 100644 --- a/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp +++ b/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to compute the * the discrete adjoint of the linear-elastic mesh solver. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CDiscAdjSolver.hpp b/SU2_CFD/include/solvers/CDiscAdjSolver.hpp index 0df0830513f..84af2e4a755 100644 --- a/SU2_CFD/include/solvers/CDiscAdjSolver.hpp +++ b/SU2_CFD/include/solvers/CDiscAdjSolver.hpp @@ -2,7 +2,7 @@ * \file CDiscAdjSolver.hpp * \brief Headers of the CDiscAdjSolver class * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index d498b84c225..83c4cbe18e6 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -2,7 +2,7 @@ * \file CEulerSolver.hpp * \brief Headers of the CEulerSolver class * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CFEASolver.hpp b/SU2_CFD/include/solvers/CFEASolver.hpp index bef3820465e..4d8bf74be8e 100644 --- a/SU2_CFD/include/solvers/CFEASolver.hpp +++ b/SU2_CFD/include/solvers/CFEASolver.hpp @@ -2,7 +2,7 @@ * \file CFEASolver.hpp * \brief Finite element solver for elasticity problems. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CFEASolverBase.hpp b/SU2_CFD/include/solvers/CFEASolverBase.hpp index fb45ee79e2f..aea19629221 100644 --- a/SU2_CFD/include/solvers/CFEASolverBase.hpp +++ b/SU2_CFD/include/solvers/CFEASolverBase.hpp @@ -2,7 +2,7 @@ * \file CFEASolver.hpp * \brief Base class template for all FEA solvers using the SU2 internal finite elements. * \author T. Dick - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CFEM_DG_EulerSolver.hpp b/SU2_CFD/include/solvers/CFEM_DG_EulerSolver.hpp index bc62e7779a1..ecb25504b57 100644 --- a/SU2_CFD/include/solvers/CFEM_DG_EulerSolver.hpp +++ b/SU2_CFD/include/solvers/CFEM_DG_EulerSolver.hpp @@ -2,7 +2,7 @@ * \file CFEM_DG_EulerSolver.hpp * \brief Headers of the CFEM_DG_EulerSolver class * \author E. van der Weide, T. Economon, J. Alonso - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -35,7 +35,7 @@ * \brief Main class for defining the Euler Discontinuous Galerkin finite element flow solver. * \ingroup Euler_Equations * \author E. van der Weide, T. Economon, J. Alonso - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEM_DG_EulerSolver : public CSolver { protected: diff --git a/SU2_CFD/include/solvers/CFEM_DG_NSSolver.hpp b/SU2_CFD/include/solvers/CFEM_DG_NSSolver.hpp index 87a307fb0be..4ad477801cc 100644 --- a/SU2_CFD/include/solvers/CFEM_DG_NSSolver.hpp +++ b/SU2_CFD/include/solvers/CFEM_DG_NSSolver.hpp @@ -2,7 +2,7 @@ * \file CFEM_DG_NSSolver.hpp * \brief Headers of the CFEM_DG_NSSolver class * \author E. van der Weide, T. Economon, J. Alonso - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -35,7 +35,7 @@ * \brief Main class for defining the Navier-Stokes Discontinuous Galerkin finite element flow solver. * \ingroup Navier_Stokes_Equations * \author E. van der Weide, T. Economon, J. Alonso - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEM_DG_NSSolver final : public CFEM_DG_EulerSolver { private: diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp index 30687edbcdc..2aa31880bae 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp @@ -1,7 +1,7 @@ /*! * \file CFVMFlowSolverBase.hpp * \brief Base class template for all FVM flow solvers. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl index f60db438e18..b54622a1525 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl @@ -1,7 +1,7 @@ /*! * \file CFVMFlowSolverBase.inl * \brief Base class template for all FVM flow solvers. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp b/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp index d3c60ebc1e7..eb34f5589cc 100644 --- a/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp +++ b/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp @@ -2,7 +2,7 @@ * \file CGradientSmoothingSolver.hpp * \brief SOlver class for Sobolev smoothing of sensitivities. * \author T. Dick - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CHeatSolver.hpp b/SU2_CFD/include/solvers/CHeatSolver.hpp index 627983ec096..61a750ebc42 100644 --- a/SU2_CFD/include/solvers/CHeatSolver.hpp +++ b/SU2_CFD/include/solvers/CHeatSolver.hpp @@ -2,7 +2,7 @@ * \file CHeatSolver.hpp * \brief Headers of the CHeatSolver class * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -34,7 +34,7 @@ * \class CHeatSolver * \brief Main class for defining the finite-volume heat solver. * \author O. Burghardt - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CHeatSolver final : public CScalarSolver { protected: diff --git a/SU2_CFD/include/solvers/CIncEulerSolver.hpp b/SU2_CFD/include/solvers/CIncEulerSolver.hpp index 6f96628ddc1..990c9b7095d 100644 --- a/SU2_CFD/include/solvers/CIncEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CIncEulerSolver.hpp @@ -2,7 +2,7 @@ * \file CIncEulerSolver.hpp * \brief Headers of the CIncEulerSolver class * \author F. Palacios, T. Economon, T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CIncNSSolver.hpp b/SU2_CFD/include/solvers/CIncNSSolver.hpp index f64c10f7d9b..b41ae738a7f 100644 --- a/SU2_CFD/include/solvers/CIncNSSolver.hpp +++ b/SU2_CFD/include/solvers/CIncNSSolver.hpp @@ -2,7 +2,7 @@ * \file CIncNSSolver.hpp * \brief Headers of the CIncNSSolver class * \author F. Palacios, T. Economon, T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CMeshSolver.hpp b/SU2_CFD/include/solvers/CMeshSolver.hpp index 8e812326dbb..af0fd6aaf5a 100644 --- a/SU2_CFD/include/solvers/CMeshSolver.hpp +++ b/SU2_CFD/include/solvers/CMeshSolver.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to compute the deformation of * the volumetric numerical grid using the linear elasticity solver. * \author Ruben Sanchez, based on CVolumetricMovement developments (F. Palacios, A. Bueno, T. Economon, S. Padron) - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CNEMOEulerSolver.hpp b/SU2_CFD/include/solvers/CNEMOEulerSolver.hpp index 90e97407792..325ccd371f7 100644 --- a/SU2_CFD/include/solvers/CNEMOEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CNEMOEulerSolver.hpp @@ -2,7 +2,7 @@ * \file CNEMOEulerSolver.hpp * \brief Headers of the CNEMOEulerSolver class * \author S. R. Copeland, F. Palacios, W. Maier. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -36,7 +36,7 @@ * \brief Main class for defining the NEMO Euler's flow solver. * \ingroup Euler_Equations * \author S. R. Copeland, F. Palacios, W. Maier. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CNEMOEulerSolver : public CFVMFlowSolverBase { protected: diff --git a/SU2_CFD/include/solvers/CNEMONSSolver.hpp b/SU2_CFD/include/solvers/CNEMONSSolver.hpp index 933687a802d..09ae0eb37e9 100644 --- a/SU2_CFD/include/solvers/CNEMONSSolver.hpp +++ b/SU2_CFD/include/solvers/CNEMONSSolver.hpp @@ -2,7 +2,7 @@ * \file CNEMONSSolver.hpp * \brief Headers of the CNEMONSSolver class * \author S. R. Copeland, F. Palacios, W. Maier. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CNSSolver.hpp b/SU2_CFD/include/solvers/CNSSolver.hpp index 8de4ba7b1aa..070ee7a81bb 100644 --- a/SU2_CFD/include/solvers/CNSSolver.hpp +++ b/SU2_CFD/include/solvers/CNSSolver.hpp @@ -2,7 +2,7 @@ * \file CNSSolver.hpp * \brief Headers of the CNSSolver class * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CRadP1Solver.hpp b/SU2_CFD/include/solvers/CRadP1Solver.hpp index 05f7a714193..c9b1e4ccb3d 100644 --- a/SU2_CFD/include/solvers/CRadP1Solver.hpp +++ b/SU2_CFD/include/solvers/CRadP1Solver.hpp @@ -2,7 +2,7 @@ * \file CRadP1Solver.hpp * \brief Declaration and inlines of the class to compute a P1 radiation problem. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CRadSolver.hpp b/SU2_CFD/include/solvers/CRadSolver.hpp index 4c1dbb966ae..38e4ad48e20 100644 --- a/SU2_CFD/include/solvers/CRadSolver.hpp +++ b/SU2_CFD/include/solvers/CRadSolver.hpp @@ -2,7 +2,7 @@ * \file CRadSolver.hpp * \brief Declaration and inlines of the class to compute a generic radiation solver. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CScalarSolver.hpp b/SU2_CFD/include/solvers/CScalarSolver.hpp index ca4ce3e2483..12bc885887c 100644 --- a/SU2_CFD/include/solvers/CScalarSolver.hpp +++ b/SU2_CFD/include/solvers/CScalarSolver.hpp @@ -1,7 +1,7 @@ /*! * \file CScalarSolver.hpp * \brief Headers of the CScalarSolver class - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CScalarSolver.inl b/SU2_CFD/include/solvers/CScalarSolver.inl index 63936187185..1411de2ca78 100644 --- a/SU2_CFD/include/solvers/CScalarSolver.inl +++ b/SU2_CFD/include/solvers/CScalarSolver.inl @@ -1,7 +1,7 @@ /*! * \file CScalarSolver.inl * \brief Main subroutines of CScalarSolver class - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CSolver.hpp b/SU2_CFD/include/solvers/CSolver.hpp index 6c9194f31ae..b6c0d45d219 100644 --- a/SU2_CFD/include/solvers/CSolver.hpp +++ b/SU2_CFD/include/solvers/CSolver.hpp @@ -2,7 +2,7 @@ * \file CSolver.hpp * \brief Headers of the CSolver class which is inherited by all of the other solvers * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CSolverFactory.hpp b/SU2_CFD/include/solvers/CSolverFactory.hpp index f202b6ee7f8..7c454511ab4 100644 --- a/SU2_CFD/include/solvers/CSolverFactory.hpp +++ b/SU2_CFD/include/solvers/CSolverFactory.hpp @@ -2,7 +2,7 @@ * \file CSolverFactory.hpp * \brief Headers of the CSolverFactory class * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp b/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp index 1d1bd498230..cf336b7f458 100644 --- a/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp +++ b/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp @@ -2,7 +2,7 @@ * \file CSpeciesFlameletSolver.hpp * \brief Headers of the CSpeciesFlameletSolver class * \author D. Mayer, N. Beishuizen, T. Economon, E. Bunschoten - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CSpeciesSolver.hpp b/SU2_CFD/include/solvers/CSpeciesSolver.hpp index 8b838cd0e61..7236989afd4 100644 --- a/SU2_CFD/include/solvers/CSpeciesSolver.hpp +++ b/SU2_CFD/include/solvers/CSpeciesSolver.hpp @@ -2,7 +2,7 @@ * \file CSpeciesSolver.hpp * \brief Headers of the CSpeciesSolver class * \author T. Kattmann. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CTemplateSolver.hpp b/SU2_CFD/include/solvers/CTemplateSolver.hpp index b0459559fe6..cced6a60476 100644 --- a/SU2_CFD/include/solvers/CTemplateSolver.hpp +++ b/SU2_CFD/include/solvers/CTemplateSolver.hpp @@ -2,7 +2,7 @@ * \file CTemplateSolver.hpp * \brief Headers of the CTemplateSolver class * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CTransLMSolver.hpp b/SU2_CFD/include/solvers/CTransLMSolver.hpp index 98595abb266..7e47fc81395 100644 --- a/SU2_CFD/include/solvers/CTransLMSolver.hpp +++ b/SU2_CFD/include/solvers/CTransLMSolver.hpp @@ -2,7 +2,7 @@ * \file CTransLMSolver.hpp * \brief Headers of the CTransLMSolver class * \author A. Aranake - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CTurbSASolver.hpp b/SU2_CFD/include/solvers/CTurbSASolver.hpp index 1bf7d929d0e..ac9ca5f9b05 100644 --- a/SU2_CFD/include/solvers/CTurbSASolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSASolver.hpp @@ -2,7 +2,7 @@ * \file CTurbSASolver.hpp * \brief Headers of the CTurbSASolver class * \author A. Bueno. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp index 4ab59ec73a8..78aa7720095 100644 --- a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp @@ -2,7 +2,7 @@ * \file CTurbSSTSolver.hpp * \brief Headers of the CTurbSSTSolver class * \author A. Campos, F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/solvers/CTurbSolver.hpp b/SU2_CFD/include/solvers/CTurbSolver.hpp index a1b6103ca28..8040e53ad17 100644 --- a/SU2_CFD/include/solvers/CTurbSolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSolver.hpp @@ -2,7 +2,7 @@ * \file CTurbSolver.hpp * \brief Headers of the CTurbSolver class * \author A. Bueno. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/task_definition.hpp b/SU2_CFD/include/task_definition.hpp index bdbea4336df..afb117580f6 100644 --- a/SU2_CFD/include/task_definition.hpp +++ b/SU2_CFD/include/task_definition.hpp @@ -2,7 +2,7 @@ * \file task_definition.hpp * \brief Header of the task definition class for the SU2 solvers. * \author E. van der Weide, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -37,7 +37,7 @@ using namespace std; * \class CTaskDefinition * \brief Class for defining a task to be carried out * \author: E. van der Weide, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CTaskDefinition { diff --git a/SU2_CFD/include/task_definition.inl b/SU2_CFD/include/task_definition.inl index 1fb3c983136..d65f56c49e5 100644 --- a/SU2_CFD/include/task_definition.inl +++ b/SU2_CFD/include/task_definition.inl @@ -2,7 +2,7 @@ * \file task_definition.inl * \brief In-Line subroutines of the task_definition.hpp file. * \author E. van der Weide, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CAdjEulerVariable.hpp b/SU2_CFD/include/variables/CAdjEulerVariable.hpp index 3a675d2e082..defe6020c43 100644 --- a/SU2_CFD/include/variables/CAdjEulerVariable.hpp +++ b/SU2_CFD/include/variables/CAdjEulerVariable.hpp @@ -2,7 +2,7 @@ * \file CAdjEulerVariable.hpp * \brief Main class for defining the variables of the adjoint Euler solver. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CAdjNSVariable.hpp b/SU2_CFD/include/variables/CAdjNSVariable.hpp index 0e48f03abc9..c44eed9314a 100644 --- a/SU2_CFD/include/variables/CAdjNSVariable.hpp +++ b/SU2_CFD/include/variables/CAdjNSVariable.hpp @@ -2,7 +2,7 @@ * \file CAdjNSVariable.hpp * \brief Main class for defining the variables of the adjoint Navier-Stokes solver. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CAdjTurbVariable.hpp b/SU2_CFD/include/variables/CAdjTurbVariable.hpp index 9731d23f4ca..0f67d10ffe2 100644 --- a/SU2_CFD/include/variables/CAdjTurbVariable.hpp +++ b/SU2_CFD/include/variables/CAdjTurbVariable.hpp @@ -2,7 +2,7 @@ * \file CAdjTurbVariable.hpp * \brief Main class for defining the variables of the adjoint turbulence model. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CBaselineVariable.hpp b/SU2_CFD/include/variables/CBaselineVariable.hpp index f1955fe7ac3..30d3da2423a 100644 --- a/SU2_CFD/include/variables/CBaselineVariable.hpp +++ b/SU2_CFD/include/variables/CBaselineVariable.hpp @@ -2,7 +2,7 @@ * \file CBaselineVariable.hpp * \brief Main class for defining the variables of a baseline solution from a restart file (for output). * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CDiscAdjFEABoundVariable.hpp b/SU2_CFD/include/variables/CDiscAdjFEABoundVariable.hpp index 47cfd48ddbf..3e50639c02a 100644 --- a/SU2_CFD/include/variables/CDiscAdjFEABoundVariable.hpp +++ b/SU2_CFD/include/variables/CDiscAdjFEABoundVariable.hpp @@ -2,7 +2,7 @@ * \file CDiscAdjFEABoundVariable.hpp * \brief Main class for defining the variables of the adjoint FEA solver at the boundary. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -35,7 +35,7 @@ * \ingroup DiscAdj * \brief Main class for defining the variables on the FEA boundaries for adjoint applications. * \author R. Sanchez. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CDiscAdjFEABoundVariable final : public CDiscAdjVariable { private: diff --git a/SU2_CFD/include/variables/CDiscAdjMeshBoundVariable.hpp b/SU2_CFD/include/variables/CDiscAdjMeshBoundVariable.hpp index eaf27fc15e7..ce5ae4c47a4 100644 --- a/SU2_CFD/include/variables/CDiscAdjMeshBoundVariable.hpp +++ b/SU2_CFD/include/variables/CDiscAdjMeshBoundVariable.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class * to define the adjoint variables of the mesh movement. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CDiscAdjVariable.hpp b/SU2_CFD/include/variables/CDiscAdjVariable.hpp index fdf2d3a4f10..d35282aa733 100644 --- a/SU2_CFD/include/variables/CDiscAdjVariable.hpp +++ b/SU2_CFD/include/variables/CDiscAdjVariable.hpp @@ -2,7 +2,7 @@ * \file CDiscAdjVariable.hpp * \brief Main class for defining the variables of the adjoint solver. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CEulerVariable.hpp b/SU2_CFD/include/variables/CEulerVariable.hpp index 4dc91781c4b..68c9587a237 100644 --- a/SU2_CFD/include/variables/CEulerVariable.hpp +++ b/SU2_CFD/include/variables/CEulerVariable.hpp @@ -2,7 +2,7 @@ * \file CEulerVariable.hpp * \brief Class for defining the variables of the compressible Euler solver. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CFEABoundVariable.hpp b/SU2_CFD/include/variables/CFEABoundVariable.hpp index 37cc1d0dae4..9fa1e27e45f 100644 --- a/SU2_CFD/include/variables/CFEABoundVariable.hpp +++ b/SU2_CFD/include/variables/CFEABoundVariable.hpp @@ -2,7 +2,7 @@ * \file CFEABoundVariable.hpp * \brief Class for defining the variables on the FEA boundaries for FSI applications. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -37,7 +37,7 @@ * A map is constructed so that variables can be referenced by iPoint instead of iVertex. * \ingroup Structural Finite Element Analysis Variables * \author R. Sanchez. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEABoundVariable final : public CFEAVariable { protected: diff --git a/SU2_CFD/include/variables/CFEAVariable.hpp b/SU2_CFD/include/variables/CFEAVariable.hpp index bbd579b01cf..f3ea6364c25 100644 --- a/SU2_CFD/include/variables/CFEAVariable.hpp +++ b/SU2_CFD/include/variables/CFEAVariable.hpp @@ -2,7 +2,7 @@ * \file CFEAVariable.hpp * \brief Class for defining the variables of the FEM structural problem. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -34,7 +34,7 @@ * \brief Class for defining the variables of the FEM structural problem. * \ingroup Structural Finite Element Analysis Variables * \author F. Palacios, R. Sanchez. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CFEAVariable : public CVariable { protected: diff --git a/SU2_CFD/include/variables/CFlowVariable.hpp b/SU2_CFD/include/variables/CFlowVariable.hpp index 5a28c16ea6b..95d59c083ad 100644 --- a/SU2_CFD/include/variables/CFlowVariable.hpp +++ b/SU2_CFD/include/variables/CFlowVariable.hpp @@ -1,7 +1,7 @@ /*! * \file CFlowVariable.hpp * \brief Class for defining the common variables of flow solvers. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CHeatVariable.hpp b/SU2_CFD/include/variables/CHeatVariable.hpp index 5fa5ada0ca3..d6d4795db64 100644 --- a/SU2_CFD/include/variables/CHeatVariable.hpp +++ b/SU2_CFD/include/variables/CHeatVariable.hpp @@ -2,7 +2,7 @@ * \file CHeatVariable.hpp * \brief Class for defining the variables of the finite-volume heat equation solver. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -33,7 +33,7 @@ * \class CHeatVariable * \brief Class for defining the variables of the finite-volume heat equation solver. * \author O. Burghardt - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" */ class CHeatVariable final : public CScalarVariable { public: diff --git a/SU2_CFD/include/variables/CIncEulerVariable.hpp b/SU2_CFD/include/variables/CIncEulerVariable.hpp index 618d2b6af65..7f398351f04 100644 --- a/SU2_CFD/include/variables/CIncEulerVariable.hpp +++ b/SU2_CFD/include/variables/CIncEulerVariable.hpp @@ -2,7 +2,7 @@ * \file CIncEulerVariable.hpp * \brief Class for defining the variables of the incompressible Euler solver. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CIncNSVariable.hpp b/SU2_CFD/include/variables/CIncNSVariable.hpp index d69e0a81a22..138026140b5 100644 --- a/SU2_CFD/include/variables/CIncNSVariable.hpp +++ b/SU2_CFD/include/variables/CIncNSVariable.hpp @@ -3,7 +3,7 @@ * \brief Class for defining the variables of the incompressible Navier-Stokes solver. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CMeshBoundVariable.hpp b/SU2_CFD/include/variables/CMeshBoundVariable.hpp index c8f46df9507..deebf41eb8e 100644 --- a/SU2_CFD/include/variables/CMeshBoundVariable.hpp +++ b/SU2_CFD/include/variables/CMeshBoundVariable.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class * to define the variables of the mesh movement at the moving boundaries. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CMeshElement.hpp b/SU2_CFD/include/variables/CMeshElement.hpp index 348d47e14a4..bec06d07944 100644 --- a/SU2_CFD/include/variables/CMeshElement.hpp +++ b/SU2_CFD/include/variables/CMeshElement.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class * to define the variables of the mesh movement. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CMeshVariable.hpp b/SU2_CFD/include/variables/CMeshVariable.hpp index 636aac28dce..fc153cd6da6 100644 --- a/SU2_CFD/include/variables/CMeshVariable.hpp +++ b/SU2_CFD/include/variables/CMeshVariable.hpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class * to define the variables of the mesh movement. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CNEMOEulerVariable.hpp b/SU2_CFD/include/variables/CNEMOEulerVariable.hpp index 5f90300960e..e29df07dc6b 100644 --- a/SU2_CFD/include/variables/CNEMOEulerVariable.hpp +++ b/SU2_CFD/include/variables/CNEMOEulerVariable.hpp @@ -2,7 +2,7 @@ * \file CNEMOEulerVariable.hpp * \brief Class for defining the variables of the compressible NEMO Euler solver. * \author C. Garbacz, W. Maier, S.R. Copeland - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CNEMONSVariable.hpp b/SU2_CFD/include/variables/CNEMONSVariable.hpp index 4f99a411259..c7a550ea0d5 100644 --- a/SU2_CFD/include/variables/CNEMONSVariable.hpp +++ b/SU2_CFD/include/variables/CNEMONSVariable.hpp @@ -2,7 +2,7 @@ * \file CNEMONSVariable.hpp * \brief Class for defining the variables of the compressible NEMO Navier-Stokes solver. * \author C. Garbacz, W. Maier, S.R. Copeland. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CNSVariable.hpp b/SU2_CFD/include/variables/CNSVariable.hpp index f33279800e6..c3a8f6aba2c 100644 --- a/SU2_CFD/include/variables/CNSVariable.hpp +++ b/SU2_CFD/include/variables/CNSVariable.hpp @@ -2,7 +2,7 @@ * \file CNSVariable.hpp * \brief Class for defining the variables of the compressible Navier-Stokes solver. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CPrimitiveIndices.hpp b/SU2_CFD/include/variables/CPrimitiveIndices.hpp index 65d3fa4c26e..866b7a15f89 100644 --- a/SU2_CFD/include/variables/CPrimitiveIndices.hpp +++ b/SU2_CFD/include/variables/CPrimitiveIndices.hpp @@ -1,7 +1,7 @@ /*! * \file CPrimitiveIndices.hpp * \brief Abstract representation of flow primitive variable indices that tries to be efficient. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CRadP1Variable.hpp b/SU2_CFD/include/variables/CRadP1Variable.hpp index 32779a4bf91..8eb562a7c50 100644 --- a/SU2_CFD/include/variables/CRadP1Variable.hpp +++ b/SU2_CFD/include/variables/CRadP1Variable.hpp @@ -2,7 +2,7 @@ * \file CRadP1Variable.hpp * \brief Class for defining the variables of the P1 radiation model. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CRadVariable.hpp b/SU2_CFD/include/variables/CRadVariable.hpp index 5b90b765447..9b1a7021324 100644 --- a/SU2_CFD/include/variables/CRadVariable.hpp +++ b/SU2_CFD/include/variables/CRadVariable.hpp @@ -2,7 +2,7 @@ * \file CRadVariable.hpp * \brief Class for defining the variables of the radiation solver. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CScalarVariable.hpp b/SU2_CFD/include/variables/CScalarVariable.hpp index fd9a142712b..ad27f09518e 100644 --- a/SU2_CFD/include/variables/CScalarVariable.hpp +++ b/SU2_CFD/include/variables/CScalarVariable.hpp @@ -2,7 +2,7 @@ * \file CScalarVariable.hpp * \brief Base class for defining the shared variables of scalar solvers. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CSobolevSmoothingVariable.hpp b/SU2_CFD/include/variables/CSobolevSmoothingVariable.hpp index 22c85228a45..6366d250d07 100644 --- a/SU2_CFD/include/variables/CSobolevSmoothingVariable.hpp +++ b/SU2_CFD/include/variables/CSobolevSmoothingVariable.hpp @@ -2,7 +2,7 @@ * \file CSobolevSmoothingVariable.hpp * \brief Class for defining the variables of the gradient smoothing. * \author T.Dick - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CSpeciesFlameletVariable.hpp b/SU2_CFD/include/variables/CSpeciesFlameletVariable.hpp index e765ceaa56e..a1eac80ae48 100644 --- a/SU2_CFD/include/variables/CSpeciesFlameletVariable.hpp +++ b/SU2_CFD/include/variables/CSpeciesFlameletVariable.hpp @@ -2,7 +2,7 @@ * \file CSpeciesFlameletVariable.hpp * \brief Base class for defining the variables of the flamelet transport model. * \author D. Mayer, T. Economon, N. Beishuizen - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CSpeciesVariable.hpp b/SU2_CFD/include/variables/CSpeciesVariable.hpp index 37deee63ccf..faeca8fa719 100644 --- a/SU2_CFD/include/variables/CSpeciesVariable.hpp +++ b/SU2_CFD/include/variables/CSpeciesVariable.hpp @@ -2,7 +2,7 @@ * \file CSpeciesVariable.hpp * \brief Base class for defining the variables of the species transport model. * \author T. Kattmann - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CTransLMVariable.hpp b/SU2_CFD/include/variables/CTransLMVariable.hpp index 96b556f5450..94b8b801613 100644 --- a/SU2_CFD/include/variables/CTransLMVariable.hpp +++ b/SU2_CFD/include/variables/CTransLMVariable.hpp @@ -2,7 +2,7 @@ * \file CTransLMVariable.hpp * \brief Declaration of the variables of the transition model. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CTurbSAVariable.hpp b/SU2_CFD/include/variables/CTurbSAVariable.hpp index f7f7c4ea512..f0e5ac2957a 100644 --- a/SU2_CFD/include/variables/CTurbSAVariable.hpp +++ b/SU2_CFD/include/variables/CTurbSAVariable.hpp @@ -2,7 +2,7 @@ * \file CTurbSAVariable.hpp * \brief Declaration of the variables of the SA turbulence model. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CTurbSSTVariable.hpp b/SU2_CFD/include/variables/CTurbSSTVariable.hpp index 8735ddc6de6..dcc4772100e 100644 --- a/SU2_CFD/include/variables/CTurbSSTVariable.hpp +++ b/SU2_CFD/include/variables/CTurbSSTVariable.hpp @@ -2,7 +2,7 @@ * \file CTurbSSTVariable.hpp * \brief Declaration of the variables of the SST turbulence model. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CTurbVariable.hpp b/SU2_CFD/include/variables/CTurbVariable.hpp index eb74e40dbf1..48f2087b2bf 100644 --- a/SU2_CFD/include/variables/CTurbVariable.hpp +++ b/SU2_CFD/include/variables/CTurbVariable.hpp @@ -2,7 +2,7 @@ * \file CTurbVariable.hpp * \brief Base class for defining the variables of the turbulence model. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/include/variables/CVariable.hpp b/SU2_CFD/include/variables/CVariable.hpp index 920f5680915..bc855bc5dca 100644 --- a/SU2_CFD/include/variables/CVariable.hpp +++ b/SU2_CFD/include/variables/CVariable.hpp @@ -4,7 +4,7 @@ variables, function definitions in file CVariable.cpp. All variables are children of at least this class. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/CMarkerProfileReaderFVM.cpp b/SU2_CFD/src/CMarkerProfileReaderFVM.cpp index b6b1e36479f..6b77ff3b905 100644 --- a/SU2_CFD/src/CMarkerProfileReaderFVM.cpp +++ b/SU2_CFD/src/CMarkerProfileReaderFVM.cpp @@ -2,7 +2,7 @@ * \file CMarkerProfileReaderFVM.cpp * \brief Class that handles the reading of marker profile files. * \author T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 353a744c891..33bb1a93d15 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -2,7 +2,7 @@ * \file SU2_CFD.cpp * \brief Main file of the SU2 Computational Fluid Dynamics code * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -47,7 +47,7 @@ int main(int argc, char *argv[]) { /*--- Command line parsing ---*/ - CLI::App app{"SU2 v8.0.1 \"Harrier\", The Open-Source CFD Code"}; + CLI::App app{"SU2 v8.1.0 \"Harrier\", The Open-Source CFD Code"}; app.add_flag("-d,--dryrun", dry_run, "Enable dry run mode.\n" "Only execute preprocessing steps using a dummy geometry."); app.add_option("-t,--threads", num_threads, "Number of OpenMP threads per MPI rank."); diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index 2351a0f6180..a34e3fe269d 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -2,7 +2,7 @@ * \file definition_structure.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp b/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp index 14d84721fd7..6e5519a63f2 100644 --- a/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp @@ -2,7 +2,7 @@ * \file CDiscAdjMultizoneDriver.cpp * \brief The main subroutines for driving adjoint multi-zone problems * \author O. Burghardt, P. Gomes, T. Albring, R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp b/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp index c0b2d7c94b3..de39415300c 100644 --- a/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp +++ b/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp @@ -2,7 +2,7 @@ * \file driver_adjoint_singlezone.cpp * \brief The main subroutines for driving adjoint single-zone problems. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index 0c3c4a10c4e..015e808b626 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -2,7 +2,7 @@ * \file CDriver.cpp * \brief The main subroutines for driving single or multi-zone problems. * \author T. Economon, H. Kline, R. Sanchez, F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/drivers/CDriverBase.cpp b/SU2_CFD/src/drivers/CDriverBase.cpp index 602e89e3ace..53483856b5d 100644 --- a/SU2_CFD/src/drivers/CDriverBase.cpp +++ b/SU2_CFD/src/drivers/CDriverBase.cpp @@ -2,7 +2,7 @@ * \file CDriverBase.hpp * \brief Base class template for all drivers. * \author H. Patel, A. Gastaldi - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/drivers/CDummyDriver.cpp b/SU2_CFD/src/drivers/CDummyDriver.cpp index 12df347f406..bf040979f07 100644 --- a/SU2_CFD/src/drivers/CDummyDriver.cpp +++ b/SU2_CFD/src/drivers/CDummyDriver.cpp @@ -2,7 +2,7 @@ * \file CDummyDriver.cpp * \brief Dummy driver class for running the preprocessing without geometry preprocessing. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/drivers/CMultizoneDriver.cpp b/SU2_CFD/src/drivers/CMultizoneDriver.cpp index 368a598e514..d5e2fbbafbb 100644 --- a/SU2_CFD/src/drivers/CMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CMultizoneDriver.cpp @@ -2,7 +2,7 @@ * \file driver_structure.cpp * \brief The main subroutines for driving multi-zone problems. * \author R. Sanchez, O. Burghardt - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/drivers/CSinglezoneDriver.cpp b/SU2_CFD/src/drivers/CSinglezoneDriver.cpp index 627ea9c41f7..ed4d46f370e 100644 --- a/SU2_CFD/src/drivers/CSinglezoneDriver.cpp +++ b/SU2_CFD/src/drivers/CSinglezoneDriver.cpp @@ -2,7 +2,7 @@ * \file driver_direct_singlezone.cpp * \brief The main subroutines for driving single-zone problems. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/fluid/CCoolProp.cpp b/SU2_CFD/src/fluid/CCoolProp.cpp index bfa4c3f11b8..85dd490e264 100644 --- a/SU2_CFD/src/fluid/CCoolProp.cpp +++ b/SU2_CFD/src/fluid/CCoolProp.cpp @@ -2,7 +2,7 @@ * \file CCoolProp.cpp * \brief Source of the fluid model from CoolProp. * \author P. Yan, G. Gori, A. Guardone - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/fluid/CDataDrivenFluid.cpp b/SU2_CFD/src/fluid/CDataDrivenFluid.cpp index 09f187f2d1d..f4c81091df0 100644 --- a/SU2_CFD/src/fluid/CDataDrivenFluid.cpp +++ b/SU2_CFD/src/fluid/CDataDrivenFluid.cpp @@ -2,7 +2,7 @@ * \file CDataDrivenFluid.cpp * \brief Source of the data-driven fluid model class * \author E.C.Bunschoten M.Mayer A.Capiello - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index 18dbcd2a43a..a458a3fd97c 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -2,7 +2,7 @@ * \file CfluidFlamelet.cpp * \brief Main subroutines of CFluidFlamelet class * \author D. Mayer, T. Economon, N. Beishuizen, E. Bunschoten - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/fluid/CFluidModel.cpp b/SU2_CFD/src/fluid/CFluidModel.cpp index 74801064945..ed561279989 100644 --- a/SU2_CFD/src/fluid/CFluidModel.cpp +++ b/SU2_CFD/src/fluid/CFluidModel.cpp @@ -2,7 +2,7 @@ * \file CFluidModel.cpp * \brief Source of the fluid model base class containing thermo-physical subroutines. * \author S.Vitale, M.Pini, G.Gori, A.Guardone, P.Colonna, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/fluid/CFluidScalar.cpp b/SU2_CFD/src/fluid/CFluidScalar.cpp index 5e3a2e2f998..a57ddc7797e 100644 --- a/SU2_CFD/src/fluid/CFluidScalar.cpp +++ b/SU2_CFD/src/fluid/CFluidScalar.cpp @@ -2,7 +2,7 @@ * \file CFluidScalar.cpp * \brief Defines the multicomponent incompressible Ideal Gas model for mixtures. * \author T. Economon, Mark Heimgartner, Cristopher Morales Ubal - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/fluid/CIdealGas.cpp b/SU2_CFD/src/fluid/CIdealGas.cpp index f7b02a7cf1b..6dad90cf55b 100644 --- a/SU2_CFD/src/fluid/CIdealGas.cpp +++ b/SU2_CFD/src/fluid/CIdealGas.cpp @@ -2,7 +2,7 @@ * \file CIdealGas.cpp * \brief Source of the ideal gas model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/fluid/CMutationTCLib.cpp b/SU2_CFD/src/fluid/CMutationTCLib.cpp index a301e8f335e..113c0de4ba1 100644 --- a/SU2_CFD/src/fluid/CMutationTCLib.cpp +++ b/SU2_CFD/src/fluid/CMutationTCLib.cpp @@ -2,7 +2,7 @@ * \file CMutationTCLib.cpp * \brief Source of the Mutation++ 2T nonequilibrium gas model. * \author C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/fluid/CNEMOGas.cpp b/SU2_CFD/src/fluid/CNEMOGas.cpp index b567389c6a7..befe1c87028 100644 --- a/SU2_CFD/src/fluid/CNEMOGas.cpp +++ b/SU2_CFD/src/fluid/CNEMOGas.cpp @@ -2,7 +2,7 @@ * \file CNEMOGas.cpp * \brief Source of the nonequilibrium gas model. * \author C. Garbacz, W. Maier, S. R. Copeland - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/fluid/CPengRobinson.cpp b/SU2_CFD/src/fluid/CPengRobinson.cpp index 2ebcb6f0c45..65fcd4066fc 100644 --- a/SU2_CFD/src/fluid/CPengRobinson.cpp +++ b/SU2_CFD/src/fluid/CPengRobinson.cpp @@ -2,7 +2,7 @@ * \file CPengRobinson.cpp * \brief Source of the Peng-Robinson model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/fluid/CSU2TCLib.cpp b/SU2_CFD/src/fluid/CSU2TCLib.cpp index 84b16927f5e..158db010715 100644 --- a/SU2_CFD/src/fluid/CSU2TCLib.cpp +++ b/SU2_CFD/src/fluid/CSU2TCLib.cpp @@ -2,7 +2,7 @@ * \file CSU2TCLib.cpp * \brief Source of user defined 2T nonequilibrium gas model. * \author C. Garbacz, W. Maier, S. R. Copeland, J. Needels - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/fluid/CVanDerWaalsGas.cpp b/SU2_CFD/src/fluid/CVanDerWaalsGas.cpp index 65ed34fe64c..9b8b80759f0 100644 --- a/SU2_CFD/src/fluid/CVanDerWaalsGas.cpp +++ b/SU2_CFD/src/fluid/CVanDerWaalsGas.cpp @@ -2,7 +2,7 @@ * \file CVanDerWaalsGas.cpp * \brief Source of the Polytropic Van der Waals model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/integration/CFEM_DG_Integration.cpp b/SU2_CFD/src/integration/CFEM_DG_Integration.cpp index beee02eb40f..9ba7930a34c 100644 --- a/SU2_CFD/src/integration/CFEM_DG_Integration.cpp +++ b/SU2_CFD/src/integration/CFEM_DG_Integration.cpp @@ -2,7 +2,7 @@ * \file CFEM_DG_Integration.cpp * \brief Definition of time and space integration for the DG solver. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/integration/CIntegration.cpp b/SU2_CFD/src/integration/CIntegration.cpp index 65406ae4e16..a3af58d572b 100644 --- a/SU2_CFD/src/integration/CIntegration.cpp +++ b/SU2_CFD/src/integration/CIntegration.cpp @@ -2,7 +2,7 @@ * \file CIntegration.cpp * \brief Implementation of the base class for space and time integration. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/integration/CIntegrationFactory.cpp b/SU2_CFD/src/integration/CIntegrationFactory.cpp index 66f42daacaf..eb6f76350bf 100644 --- a/SU2_CFD/src/integration/CIntegrationFactory.cpp +++ b/SU2_CFD/src/integration/CIntegrationFactory.cpp @@ -2,7 +2,7 @@ * \file CIntegrationFactory.cpp * \brief Main subroutines for CIntegrationFactory . * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/integration/CMultiGridIntegration.cpp b/SU2_CFD/src/integration/CMultiGridIntegration.cpp index f8a7c1a9645..f2585a57f0e 100644 --- a/SU2_CFD/src/integration/CMultiGridIntegration.cpp +++ b/SU2_CFD/src/integration/CMultiGridIntegration.cpp @@ -2,7 +2,7 @@ * \file CMultiGridIntegration.cpp * \brief Implementation of the multigrid integration class. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/integration/CNewtonIntegration.cpp b/SU2_CFD/src/integration/CNewtonIntegration.cpp index 6e476429668..e65b95d4fc7 100644 --- a/SU2_CFD/src/integration/CNewtonIntegration.cpp +++ b/SU2_CFD/src/integration/CNewtonIntegration.cpp @@ -2,7 +2,7 @@ * \file CNewtonIntegration.cpp * \brief Newton-Krylov integration. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/integration/CSingleGridIntegration.cpp b/SU2_CFD/src/integration/CSingleGridIntegration.cpp index de70accb876..22f7e9203d3 100644 --- a/SU2_CFD/src/integration/CSingleGridIntegration.cpp +++ b/SU2_CFD/src/integration/CSingleGridIntegration.cpp @@ -2,7 +2,7 @@ * \file CSingleGridIntegration.cpp * \brief Single (fine) grid integration class implementation. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/integration/CStructuralIntegration.cpp b/SU2_CFD/src/integration/CStructuralIntegration.cpp index 7642484090e..ee688dd2075 100644 --- a/SU2_CFD/src/integration/CStructuralIntegration.cpp +++ b/SU2_CFD/src/integration/CStructuralIntegration.cpp @@ -2,7 +2,7 @@ * \file CStructuralIntegration.cpp * \brief Space and time integration for structural problems. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index b9617c4c16e..783d4180292 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -2,7 +2,7 @@ * \file CInterface.cpp * \brief Main subroutines for MPI transfer of information between zones * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/interfaces/cfd/CConservativeVarsInterface.cpp b/SU2_CFD/src/interfaces/cfd/CConservativeVarsInterface.cpp index 14215c87622..445ff7b13c8 100644 --- a/SU2_CFD/src/interfaces/cfd/CConservativeVarsInterface.cpp +++ b/SU2_CFD/src/interfaces/cfd/CConservativeVarsInterface.cpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer conservative variables * from a generic zone into another one. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp b/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp index d1bbcf2ff0b..63dfe96db5c 100644 --- a/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp +++ b/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer average variables * needed for MixingPlane computation from a generic zone into another one. * \author S. Vitale - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/interfaces/cfd/CSlidingInterface.cpp b/SU2_CFD/src/interfaces/cfd/CSlidingInterface.cpp index 48f300323c5..66dc3555fea 100644 --- a/SU2_CFD/src/interfaces/cfd/CSlidingInterface.cpp +++ b/SU2_CFD/src/interfaces/cfd/CSlidingInterface.cpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer conservative variables * from a generic zone into another * \author G. Gori Politecnico di Milano - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp index 908ea27ae7f..207cb9b602c 100644 --- a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp +++ b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer temperature and heatflux * density for conjugate heat interfaces between structure and fluid zones. * \author O. Burghardt - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/interfaces/fsi/CDiscAdjFlowTractionInterface.cpp b/SU2_CFD/src/interfaces/fsi/CDiscAdjFlowTractionInterface.cpp index 299e4111986..ecca5a93de2 100644 --- a/SU2_CFD/src/interfaces/fsi/CDiscAdjFlowTractionInterface.cpp +++ b/SU2_CFD/src/interfaces/fsi/CDiscAdjFlowTractionInterface.cpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer flow tractions * from a fluid zone into a structural zone in a discrete adjoint simulation. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/interfaces/fsi/CDisplacementsInterface.cpp b/SU2_CFD/src/interfaces/fsi/CDisplacementsInterface.cpp index cd13b3e1f35..a9f32d3126f 100644 --- a/SU2_CFD/src/interfaces/fsi/CDisplacementsInterface.cpp +++ b/SU2_CFD/src/interfaces/fsi/CDisplacementsInterface.cpp @@ -2,7 +2,7 @@ * \file CDisplacementsInterface.cpp * \brief Main subroutines for transferring boundary displacements. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp b/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp index f4395640df1..cc35fdc9cbc 100644 --- a/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp +++ b/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp @@ -3,7 +3,7 @@ * \brief Declaration and inlines of the class to transfer flow tractions * from a fluid zone into a structural zone. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/iteration/CAdjFluidIteration.cpp b/SU2_CFD/src/iteration/CAdjFluidIteration.cpp index f04d4b9b6c5..ce251ad75cb 100644 --- a/SU2_CFD/src/iteration/CAdjFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CAdjFluidIteration.cpp @@ -2,7 +2,7 @@ * \file CAdjFluidIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp index 53f1bff6945..2f62b6ddce6 100644 --- a/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp @@ -2,7 +2,7 @@ * \file CDiscAdjFEAIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp index 24fd1602e6e..d25e4a18ecb 100644 --- a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp @@ -2,7 +2,7 @@ * \file CDiscAdjFluidIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp index f0c14d4168a..010483fcb99 100644 --- a/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp @@ -2,7 +2,7 @@ * \file CDiscAdjHeatIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/iteration/CFEAIteration.cpp b/SU2_CFD/src/iteration/CFEAIteration.cpp index 8ff8deb14ef..2aa19d27de9 100644 --- a/SU2_CFD/src/iteration/CFEAIteration.cpp +++ b/SU2_CFD/src/iteration/CFEAIteration.cpp @@ -2,7 +2,7 @@ * \file CFEAIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/iteration/CFEMFluidIteration.cpp b/SU2_CFD/src/iteration/CFEMFluidIteration.cpp index d04f5163d26..88c2b638a3b 100644 --- a/SU2_CFD/src/iteration/CFEMFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFEMFluidIteration.cpp @@ -2,7 +2,7 @@ * \file CFEMFluidIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index bd60c38a961..4ca6c45a172 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -2,7 +2,7 @@ * \file CFluidIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/iteration/CHeatIteration.cpp b/SU2_CFD/src/iteration/CHeatIteration.cpp index 75519b7c432..4ea5d732daf 100644 --- a/SU2_CFD/src/iteration/CHeatIteration.cpp +++ b/SU2_CFD/src/iteration/CHeatIteration.cpp @@ -2,7 +2,7 @@ * \file CHeatIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/iteration/CIteration.cpp b/SU2_CFD/src/iteration/CIteration.cpp index c3194b6d07c..54fe1e00998 100644 --- a/SU2_CFD/src/iteration/CIteration.cpp +++ b/SU2_CFD/src/iteration/CIteration.cpp @@ -2,7 +2,7 @@ * \file iteration_structure.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/iteration/CIterationFactory.cpp b/SU2_CFD/src/iteration/CIterationFactory.cpp index 9265e5088a1..6b008776a26 100644 --- a/SU2_CFD/src/iteration/CIterationFactory.cpp +++ b/SU2_CFD/src/iteration/CIterationFactory.cpp @@ -2,7 +2,7 @@ * \file CAdjFluidIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/iteration/CTurboIteration.cpp b/SU2_CFD/src/iteration/CTurboIteration.cpp index c0352b60c70..b56ba3e1a3c 100644 --- a/SU2_CFD/src/iteration/CTurboIteration.cpp +++ b/SU2_CFD/src/iteration/CTurboIteration.cpp @@ -2,7 +2,7 @@ * \file CTurboIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/limiters/CLimiterDetails.cpp b/SU2_CFD/src/limiters/CLimiterDetails.cpp index abcbb242a5e..b20a550cae1 100644 --- a/SU2_CFD/src/limiters/CLimiterDetails.cpp +++ b/SU2_CFD/src/limiters/CLimiterDetails.cpp @@ -3,7 +3,7 @@ * \brief A class template that allows defining limiters via * specialization of particular details. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/CGradSmoothing.cpp b/SU2_CFD/src/numerics/CGradSmoothing.cpp index 480231e52be..4462541af82 100644 --- a/SU2_CFD/src/numerics/CGradSmoothing.cpp +++ b/SU2_CFD/src/numerics/CGradSmoothing.cpp @@ -2,7 +2,7 @@ * \file CGradSmoothing.cpp * \brief Numerics for gradient smoothing problems. * \author T.Dick - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/CNumerics.cpp b/SU2_CFD/src/numerics/CNumerics.cpp index 5cb0fd54313..2c36556f808 100644 --- a/SU2_CFD/src/numerics/CNumerics.cpp +++ b/SU2_CFD/src/numerics/CNumerics.cpp @@ -4,7 +4,7 @@ * Contains methods for common tasks, e.g. compute flux * Jacobians. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp b/SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp index 37772801a5f..d32e46bf353 100644 --- a/SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp +++ b/SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp @@ -4,7 +4,7 @@ * Contains methods for common tasks, e.g. compute flux * Jacobians. * \author S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp b/SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp index 14248f77e28..5a5f8340be8 100644 --- a/SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp +++ b/SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp @@ -3,7 +3,7 @@ * \brief Implementation of numerics classes for discretization * of viscous fluxes in fluid flow NEMO problems. * \author S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp index 00fc6d6ad41..149a7c287e0 100644 --- a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp +++ b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp @@ -3,7 +3,7 @@ * \brief Implementation of numerics classes for integration * of source terms in fluid flow NEMO problems. * \author C. Garbacz, W. Maier, S. Copeland. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/NEMO/convection/ausm_slau.cpp b/SU2_CFD/src/numerics/NEMO/convection/ausm_slau.cpp index 61acd0f1fe5..0e5a6726cb1 100644 --- a/SU2_CFD/src/numerics/NEMO/convection/ausm_slau.cpp +++ b/SU2_CFD/src/numerics/NEMO/convection/ausm_slau.cpp @@ -2,7 +2,7 @@ * \file ausm_slau.cpp * \brief Implementations of the AUSM-family of schemes in NEMO. * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/NEMO/convection/lax.cpp b/SU2_CFD/src/numerics/NEMO/convection/lax.cpp index c951cd98fb2..a49e6d70cc5 100644 --- a/SU2_CFD/src/numerics/NEMO/convection/lax.cpp +++ b/SU2_CFD/src/numerics/NEMO/convection/lax.cpp @@ -2,7 +2,7 @@ * \file lax.cpp * \brief Implementations of Lax centered scheme. * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/NEMO/convection/msw.cpp b/SU2_CFD/src/numerics/NEMO/convection/msw.cpp index c78afaa3cf4..af2d7b7541c 100644 --- a/SU2_CFD/src/numerics/NEMO/convection/msw.cpp +++ b/SU2_CFD/src/numerics/NEMO/convection/msw.cpp @@ -2,7 +2,7 @@ * \file msw.cpp * \brief Implementations of the modified Steger-Warming scheme. * \author ADL Stanford, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/NEMO/convection/roe.cpp b/SU2_CFD/src/numerics/NEMO/convection/roe.cpp index 64b722c153e..c084773e071 100644 --- a/SU2_CFD/src/numerics/NEMO/convection/roe.cpp +++ b/SU2_CFD/src/numerics/NEMO/convection/roe.cpp @@ -2,7 +2,7 @@ * \file roe.cpp * \brief Implementations of Roe-type schemes in NEMO. * \author S. R. Copeland, W. Maier, C. Garbacz - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/continuous_adjoint/adj_convection.cpp b/SU2_CFD/src/numerics/continuous_adjoint/adj_convection.cpp index cc8c0bf34d8..bcbfc96aa01 100644 --- a/SU2_CFD/src/numerics/continuous_adjoint/adj_convection.cpp +++ b/SU2_CFD/src/numerics/continuous_adjoint/adj_convection.cpp @@ -2,7 +2,7 @@ * \file adj_convection.cpp * \brief Implementation of adjoint convection numerics classes. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/continuous_adjoint/adj_diffusion.cpp b/SU2_CFD/src/numerics/continuous_adjoint/adj_diffusion.cpp index 1e0c461e89c..3cd5b743559 100644 --- a/SU2_CFD/src/numerics/continuous_adjoint/adj_diffusion.cpp +++ b/SU2_CFD/src/numerics/continuous_adjoint/adj_diffusion.cpp @@ -2,7 +2,7 @@ * \file adj_diffusion.cpp * \brief Implementation of adjoint diffusion numerics classes. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/continuous_adjoint/adj_sources.cpp b/SU2_CFD/src/numerics/continuous_adjoint/adj_sources.cpp index ec7c0572638..cd8d327336d 100644 --- a/SU2_CFD/src/numerics/continuous_adjoint/adj_sources.cpp +++ b/SU2_CFD/src/numerics/continuous_adjoint/adj_sources.cpp @@ -2,7 +2,7 @@ * \file adj_sources.cpp * \brief Implementation of adjoint source numerics classes. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/elasticity/CFEAElasticity.cpp b/SU2_CFD/src/numerics/elasticity/CFEAElasticity.cpp index 54755b3b047..44014591204 100644 --- a/SU2_CFD/src/numerics/elasticity/CFEAElasticity.cpp +++ b/SU2_CFD/src/numerics/elasticity/CFEAElasticity.cpp @@ -2,7 +2,7 @@ * \file CFEAElasticity.cpp * \brief Base class for all elasticity problems. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/elasticity/CFEALinearElasticity.cpp b/SU2_CFD/src/numerics/elasticity/CFEALinearElasticity.cpp index b6e618d8391..a6763bed0b8 100644 --- a/SU2_CFD/src/numerics/elasticity/CFEALinearElasticity.cpp +++ b/SU2_CFD/src/numerics/elasticity/CFEALinearElasticity.cpp @@ -2,7 +2,7 @@ * \file CFEALinearElasticity.cpp * \brief Classes for linear elasticity problems. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/elasticity/CFEANonlinearElasticity.cpp b/SU2_CFD/src/numerics/elasticity/CFEANonlinearElasticity.cpp index dab484d3fa8..0b8ed7cb855 100644 --- a/SU2_CFD/src/numerics/elasticity/CFEANonlinearElasticity.cpp +++ b/SU2_CFD/src/numerics/elasticity/CFEANonlinearElasticity.cpp @@ -3,7 +3,7 @@ * \brief This file contains the routines for setting the tangent matrix and * residual of a FEM nonlinear elastic structural problem. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/elasticity/nonlinear_models.cpp b/SU2_CFD/src/numerics/elasticity/nonlinear_models.cpp index 19d1d5317aa..d21fc228300 100644 --- a/SU2_CFD/src/numerics/elasticity/nonlinear_models.cpp +++ b/SU2_CFD/src/numerics/elasticity/nonlinear_models.cpp @@ -2,7 +2,7 @@ * \file nonlinear_models.cpp * \brief Definition of nonlinear constitutive models. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/flow/convection/ausm_slau.cpp b/SU2_CFD/src/numerics/flow/convection/ausm_slau.cpp index c068a3201c5..56107662912 100644 --- a/SU2_CFD/src/numerics/flow/convection/ausm_slau.cpp +++ b/SU2_CFD/src/numerics/flow/convection/ausm_slau.cpp @@ -2,7 +2,7 @@ * \file ausm_slau.cpp * \brief Implementations of the AUSM-family of schemes. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/flow/convection/centered.cpp b/SU2_CFD/src/numerics/flow/convection/centered.cpp index 29821bdb428..dab777872cf 100644 --- a/SU2_CFD/src/numerics/flow/convection/centered.cpp +++ b/SU2_CFD/src/numerics/flow/convection/centered.cpp @@ -2,7 +2,7 @@ * \file centered.cpp * \brief Implementations of centered schemes. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/flow/convection/fds.cpp b/SU2_CFD/src/numerics/flow/convection/fds.cpp index eeffeb1cb57..ae48e59f336 100644 --- a/SU2_CFD/src/numerics/flow/convection/fds.cpp +++ b/SU2_CFD/src/numerics/flow/convection/fds.cpp @@ -2,7 +2,7 @@ * \file fds.cpp * \brief Implementation of Flux-Difference-Splitting schemes. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/flow/convection/fvs.cpp b/SU2_CFD/src/numerics/flow/convection/fvs.cpp index 8dcbf1f57d8..933010d130f 100644 --- a/SU2_CFD/src/numerics/flow/convection/fvs.cpp +++ b/SU2_CFD/src/numerics/flow/convection/fvs.cpp @@ -2,7 +2,7 @@ * \file fvs.cpp * \brief Implementations of Flux-Vector-Splitting schemes. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/flow/convection/hllc.cpp b/SU2_CFD/src/numerics/flow/convection/hllc.cpp index d94b44759a7..57a04d74bcb 100644 --- a/SU2_CFD/src/numerics/flow/convection/hllc.cpp +++ b/SU2_CFD/src/numerics/flow/convection/hllc.cpp @@ -2,7 +2,7 @@ * \file hllc.cpp * \brief Implementations of HLLC schemes. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/flow/convection/roe.cpp b/SU2_CFD/src/numerics/flow/convection/roe.cpp index 7b122119009..c259c5e7882 100644 --- a/SU2_CFD/src/numerics/flow/convection/roe.cpp +++ b/SU2_CFD/src/numerics/flow/convection/roe.cpp @@ -2,7 +2,7 @@ * \file roe.cpp * \brief Implementations of Roe-type schemes. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/flow/flow_diffusion.cpp b/SU2_CFD/src/numerics/flow/flow_diffusion.cpp index 962445c2851..a2cdb893533 100644 --- a/SU2_CFD/src/numerics/flow/flow_diffusion.cpp +++ b/SU2_CFD/src/numerics/flow/flow_diffusion.cpp @@ -3,7 +3,7 @@ * \brief Implementation of numerics classes for discretization * of viscous fluxes in fluid flow problems. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/flow/flow_sources.cpp b/SU2_CFD/src/numerics/flow/flow_sources.cpp index 9ed1305f3ce..6f8359a5f58 100644 --- a/SU2_CFD/src/numerics/flow/flow_sources.cpp +++ b/SU2_CFD/src/numerics/flow/flow_sources.cpp @@ -3,7 +3,7 @@ * \brief Implementation of numerics classes for integration * of source terms in fluid flow problems. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/radiation.cpp b/SU2_CFD/src/numerics/radiation.cpp index 21d8b4fd36c..86a0793053e 100644 --- a/SU2_CFD/src/numerics/radiation.cpp +++ b/SU2_CFD/src/numerics/radiation.cpp @@ -3,7 +3,7 @@ * \brief This file contains the implementation of the numerical * methods for radiation. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/scalar/scalar_sources.cpp b/SU2_CFD/src/numerics/scalar/scalar_sources.cpp index 2be483b1076..3c549935d8d 100644 --- a/SU2_CFD/src/numerics/scalar/scalar_sources.cpp +++ b/SU2_CFD/src/numerics/scalar/scalar_sources.cpp @@ -1,7 +1,7 @@ /*! * \file scalar_sources.cpp * \brief Implementation of numerics classes for integration of scalar source-terms. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/species/species_sources.cpp b/SU2_CFD/src/numerics/species/species_sources.cpp index 4396d856172..04018580eb1 100644 --- a/SU2_CFD/src/numerics/species/species_sources.cpp +++ b/SU2_CFD/src/numerics/species/species_sources.cpp @@ -3,7 +3,7 @@ * \brief Implementation of numerics classes for integration of * species transport source-terms. * \author T. Kattmann - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/numerics/template.cpp b/SU2_CFD/src/numerics/template.cpp index 94925cea0c8..75875e40352 100644 --- a/SU2_CFD/src/numerics/template.cpp +++ b/SU2_CFD/src/numerics/template.cpp @@ -2,7 +2,7 @@ * \file template.cpp * \brief Empty implementation of numerics templates, see .hpp file. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CAdjElasticityOutput.cpp b/SU2_CFD/src/output/CAdjElasticityOutput.cpp index e510ed478cd..7466b506d60 100644 --- a/SU2_CFD/src/output/CAdjElasticityOutput.cpp +++ b/SU2_CFD/src/output/CAdjElasticityOutput.cpp @@ -2,7 +2,7 @@ * \file CAdjElasticityOutput.cpp * \brief Main subroutines for elasticity discrete adjoint output * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CAdjFlowCompOutput.cpp b/SU2_CFD/src/output/CAdjFlowCompOutput.cpp index d7cf9aacb40..108856156e7 100644 --- a/SU2_CFD/src/output/CAdjFlowCompOutput.cpp +++ b/SU2_CFD/src/output/CAdjFlowCompOutput.cpp @@ -2,7 +2,7 @@ * \file CAdjFlowCompOutput.cpp * \brief Main subroutines for flow discrete adjoint output * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CAdjFlowIncOutput.cpp b/SU2_CFD/src/output/CAdjFlowIncOutput.cpp index 6d90dc815a2..be86c12a494 100644 --- a/SU2_CFD/src/output/CAdjFlowIncOutput.cpp +++ b/SU2_CFD/src/output/CAdjFlowIncOutput.cpp @@ -2,7 +2,7 @@ * \file CAdjFlowIncOutput.cpp * \brief Main subroutines for flow discrete adjoint output * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CAdjFlowOutput.cpp b/SU2_CFD/src/output/CAdjFlowOutput.cpp index 7926f679698..481b63f6fb4 100644 --- a/SU2_CFD/src/output/CAdjFlowOutput.cpp +++ b/SU2_CFD/src/output/CAdjFlowOutput.cpp @@ -2,7 +2,7 @@ * \file CAdjFlowOutput.cpp * \brief Main subroutines for flow discrete adjoint output * \author T. Kattmann - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CAdjHeatOutput.cpp b/SU2_CFD/src/output/CAdjHeatOutput.cpp index 86d90bcef7e..578175fccad 100644 --- a/SU2_CFD/src/output/CAdjHeatOutput.cpp +++ b/SU2_CFD/src/output/CAdjHeatOutput.cpp @@ -2,7 +2,7 @@ * \file CAdjHeatOutput.cpp * \brief Main subroutines for flow discrete adjoint output * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CBaselineOutput.cpp b/SU2_CFD/src/output/CBaselineOutput.cpp index 3807cd45905..50b13bd6825 100644 --- a/SU2_CFD/src/output/CBaselineOutput.cpp +++ b/SU2_CFD/src/output/CBaselineOutput.cpp @@ -2,7 +2,7 @@ * \file CBaselineOutput.cpp * \brief Main subroutines for flow discrete adjoint output * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CElasticityOutput.cpp b/SU2_CFD/src/output/CElasticityOutput.cpp index a5570566ea2..ba285fde425 100644 --- a/SU2_CFD/src/output/CElasticityOutput.cpp +++ b/SU2_CFD/src/output/CElasticityOutput.cpp @@ -2,7 +2,7 @@ * \file CElasticityOutput.cpp * \brief Main subroutines for FEA output * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CFVMOutput.cpp b/SU2_CFD/src/output/CFVMOutput.cpp index 9a401608ad7..77964a7d3a2 100644 --- a/SU2_CFD/src/output/CFVMOutput.cpp +++ b/SU2_CFD/src/output/CFVMOutput.cpp @@ -2,7 +2,7 @@ * \file CFVMOutput.cpp * \brief Main subroutines for Finite Volume Method output * \author T. Kattmann - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CFlowCompFEMOutput.cpp b/SU2_CFD/src/output/CFlowCompFEMOutput.cpp index d4410a3113c..4516678bba6 100644 --- a/SU2_CFD/src/output/CFlowCompFEMOutput.cpp +++ b/SU2_CFD/src/output/CFlowCompFEMOutput.cpp @@ -2,7 +2,7 @@ * \file CFlowCompFEMOutput.cpp * \brief Main subroutines for compressible flow output * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CFlowCompOutput.cpp b/SU2_CFD/src/output/CFlowCompOutput.cpp index fe7c9fbf397..e460109c8b5 100644 --- a/SU2_CFD/src/output/CFlowCompOutput.cpp +++ b/SU2_CFD/src/output/CFlowCompOutput.cpp @@ -2,7 +2,7 @@ * \file CFlowCompOutput.cpp * \brief Main subroutines for compressible flow output * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CFlowIncOutput.cpp b/SU2_CFD/src/output/CFlowIncOutput.cpp index cd275b8f51e..eeffb6a3486 100644 --- a/SU2_CFD/src/output/CFlowIncOutput.cpp +++ b/SU2_CFD/src/output/CFlowIncOutput.cpp @@ -2,7 +2,7 @@ * \file CFlowIncOutput.cpp * \brief Main subroutines for incompressible flow output * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CFlowOutput.cpp b/SU2_CFD/src/output/CFlowOutput.cpp index 895419f264d..3c651269b02 100644 --- a/SU2_CFD/src/output/CFlowOutput.cpp +++ b/SU2_CFD/src/output/CFlowOutput.cpp @@ -2,7 +2,7 @@ * \file CFlowOutput.cpp * \brief Common functions for flow output. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -2601,7 +2601,7 @@ void CFlowOutput::WriteForcesBreakdown(const CConfig* config, const CSolver* flo file << "\n"; file << "-------------------------------------------------------------------------\n"; file << "| ___ _ _ ___ |\n"; - file << "| / __| | | |_ ) Release 8.0.1 \"Harrier\" |\n"; + file << "| / __| | | |_ ) Release 8.1.0 \"Harrier\" |\n"; file << "| \\__ \\ |_| |/ / |\n"; file << "| |___/\\___//___| Suite (Computational Fluid Dynamics Code) |\n"; file << "| |\n"; diff --git a/SU2_CFD/src/output/CHeatOutput.cpp b/SU2_CFD/src/output/CHeatOutput.cpp index 10f4dd2eeeb..f7acc239e9b 100644 --- a/SU2_CFD/src/output/CHeatOutput.cpp +++ b/SU2_CFD/src/output/CHeatOutput.cpp @@ -2,7 +2,7 @@ * \file CHeatOutput.cpp * \brief Main subroutines for the heat solver output * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CMeshOutput.cpp b/SU2_CFD/src/output/CMeshOutput.cpp index b7aba31eac4..672c04820f7 100644 --- a/SU2_CFD/src/output/CMeshOutput.cpp +++ b/SU2_CFD/src/output/CMeshOutput.cpp @@ -2,7 +2,7 @@ * \file CMeshOutput.cpp * \brief Main subroutines for the heat solver output * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CMultizoneOutput.cpp b/SU2_CFD/src/output/CMultizoneOutput.cpp index 1d4252be6fe..67a27b18826 100644 --- a/SU2_CFD/src/output/CMultizoneOutput.cpp +++ b/SU2_CFD/src/output/CMultizoneOutput.cpp @@ -2,7 +2,7 @@ * \file CMultizoneOutput.cpp * \brief Main subroutines for multizone output * \author R. Sanchez, T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CNEMOCompOutput.cpp b/SU2_CFD/src/output/CNEMOCompOutput.cpp index d6f71fbcfcb..7b75ac646d2 100644 --- a/SU2_CFD/src/output/CNEMOCompOutput.cpp +++ b/SU2_CFD/src/output/CNEMOCompOutput.cpp @@ -2,7 +2,7 @@ * \file CNEMOCompOutput.cpp * \brief Main subroutines for compressible flow output * \author W. Maier, R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/COutput.cpp b/SU2_CFD/src/output/COutput.cpp index 499d0d69fd5..adc6f942145 100644 --- a/SU2_CFD/src/output/COutput.cpp +++ b/SU2_CFD/src/output/COutput.cpp @@ -2,7 +2,7 @@ * \file COutput.cpp * \brief Main subroutines for output solver information * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/COutputFactory.cpp b/SU2_CFD/src/output/COutputFactory.cpp index 31df7854313..3c97e2a1da5 100644 --- a/SU2_CFD/src/output/COutputFactory.cpp +++ b/SU2_CFD/src/output/COutputFactory.cpp @@ -2,7 +2,7 @@ * \file COutputFactory.cpp * \brief Main subroutines for output solver information * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/CTurboOutput.cpp b/SU2_CFD/src/output/CTurboOutput.cpp index 59430179231..0633b3673dd 100644 --- a/SU2_CFD/src/output/CTurboOutput.cpp +++ b/SU2_CFD/src/output/CTurboOutput.cpp @@ -2,7 +2,7 @@ * \file CTurboOutput.cpp * \brief Source of the Turbomachinery Performance class * \author S. Vitale, N. Anand - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CCGNSFileWriter.cpp b/SU2_CFD/src/output/filewriter/CCGNSFileWriter.cpp index 355d60ee5b0..0586e8ee6ad 100644 --- a/SU2_CFD/src/output/filewriter/CCGNSFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CCGNSFileWriter.cpp @@ -2,7 +2,7 @@ * \file CCGNSFileWriter.cpp * \brief Filewriter class for CGNS format. * \author G. Baldan - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CCSVFileWriter.cpp b/SU2_CFD/src/output/filewriter/CCSVFileWriter.cpp index 0213b0706e2..9f2ce831e86 100644 --- a/SU2_CFD/src/output/filewriter/CCSVFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CCSVFileWriter.cpp @@ -2,7 +2,7 @@ * \file CCSVFileWriter.cpp * \brief CSV Writer output class * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CFEMDataSorter.cpp b/SU2_CFD/src/output/filewriter/CFEMDataSorter.cpp index 987f318cdd6..3fc1f60a9b2 100644 --- a/SU2_CFD/src/output/filewriter/CFEMDataSorter.cpp +++ b/SU2_CFD/src/output/filewriter/CFEMDataSorter.cpp @@ -2,7 +2,7 @@ * \file CFEMDataSorter.cpp * \brief Datasorter class for FEM solvers. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CFVMDataSorter.cpp b/SU2_CFD/src/output/filewriter/CFVMDataSorter.cpp index efe015bbe8d..d82d8e76e79 100644 --- a/SU2_CFD/src/output/filewriter/CFVMDataSorter.cpp +++ b/SU2_CFD/src/output/filewriter/CFVMDataSorter.cpp @@ -2,7 +2,7 @@ * \file CFVMDataSorter.cpp * \brief Datasorter class for FVM solvers. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CParallelDataSorter.cpp b/SU2_CFD/src/output/filewriter/CParallelDataSorter.cpp index 854ced3d1d2..0290c20b025 100644 --- a/SU2_CFD/src/output/filewriter/CParallelDataSorter.cpp +++ b/SU2_CFD/src/output/filewriter/CParallelDataSorter.cpp @@ -2,7 +2,7 @@ * \file CParallelDataSorter.cpp * \brief Datasorter base class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CParallelFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParallelFileWriter.cpp index 5f3c2a99e40..d6bb50f2e10 100644 --- a/SU2_CFD/src/output/filewriter/CParallelFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CParallelFileWriter.cpp @@ -2,7 +2,7 @@ * \file CParallelFileWriter.cpp * \brief Filewriter base class. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CParaviewBinaryFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParaviewBinaryFileWriter.cpp index 66e4e90bb86..1da72cf0307 100644 --- a/SU2_CFD/src/output/filewriter/CParaviewBinaryFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CParaviewBinaryFileWriter.cpp @@ -2,7 +2,7 @@ * \file CParaviewBinaryFileWriter.cpp * \brief Filewriter class for Paraview binary format. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CParaviewFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParaviewFileWriter.cpp index c61bcb5ec7c..a80e16aeddb 100644 --- a/SU2_CFD/src/output/filewriter/CParaviewFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CParaviewFileWriter.cpp @@ -2,7 +2,7 @@ * \file CParaviewFileWriter.cpp * \brief Filewriter class for Paraview ASCII format. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CParaviewVTMFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParaviewVTMFileWriter.cpp index 6ad1d4fb728..cd5eccaae7a 100644 --- a/SU2_CFD/src/output/filewriter/CParaviewVTMFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CParaviewVTMFileWriter.cpp @@ -2,7 +2,7 @@ * \file CParaviewVTMFileWriter.cpp * \brief Filewriter class for Paraview binary format. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CParaviewXMLFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParaviewXMLFileWriter.cpp index eb04fdd83d2..0897cae3f16 100644 --- a/SU2_CFD/src/output/filewriter/CParaviewXMLFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CParaviewXMLFileWriter.cpp @@ -2,7 +2,7 @@ * \file CParaviewXMLFileWriter.cpp * \brief Filewriter class for Paraview binary format. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CSTLFileWriter.cpp b/SU2_CFD/src/output/filewriter/CSTLFileWriter.cpp index afe8aa712bb..b3381c7e775 100644 --- a/SU2_CFD/src/output/filewriter/CSTLFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CSTLFileWriter.cpp @@ -2,7 +2,7 @@ * \file CSTLFileWriter.cpp * \brief STL Writer output class * \author T. Kattmann, T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CSU2BinaryFileWriter.cpp b/SU2_CFD/src/output/filewriter/CSU2BinaryFileWriter.cpp index 2a62c676ace..8e7a869f1bf 100644 --- a/SU2_CFD/src/output/filewriter/CSU2BinaryFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CSU2BinaryFileWriter.cpp @@ -2,7 +2,7 @@ * \file CSU2BinaryFileWriter.cpp * \brief Filewriter class SU2 native binary format. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CSU2FileWriter.cpp b/SU2_CFD/src/output/filewriter/CSU2FileWriter.cpp index 75fb7b57fb7..4c04cf0e70d 100644 --- a/SU2_CFD/src/output/filewriter/CSU2FileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CSU2FileWriter.cpp @@ -2,7 +2,7 @@ * \file CSU2FileWriter.cpp * \brief Filewriter class SU2 native ASCII (CSV) format. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CSU2MeshFileWriter.cpp b/SU2_CFD/src/output/filewriter/CSU2MeshFileWriter.cpp index 2a2c13b58fc..241df16c88b 100644 --- a/SU2_CFD/src/output/filewriter/CSU2MeshFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CSU2MeshFileWriter.cpp @@ -2,7 +2,7 @@ * \file CSU2MeshFileWriter.cpp * \brief Filewriter class SU2 native mesh format. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CSurfaceFEMDataSorter.cpp b/SU2_CFD/src/output/filewriter/CSurfaceFEMDataSorter.cpp index 66e920616d2..42dacb0ff15 100644 --- a/SU2_CFD/src/output/filewriter/CSurfaceFEMDataSorter.cpp +++ b/SU2_CFD/src/output/filewriter/CSurfaceFEMDataSorter.cpp @@ -2,7 +2,7 @@ * \file CSurfaceFEMDataSorter.cpp * \brief Datasorter for FEM surfaces. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CSurfaceFVMDataSorter.cpp b/SU2_CFD/src/output/filewriter/CSurfaceFVMDataSorter.cpp index e1d1c5e5b6c..5acf62ec4e8 100644 --- a/SU2_CFD/src/output/filewriter/CSurfaceFVMDataSorter.cpp +++ b/SU2_CFD/src/output/filewriter/CSurfaceFVMDataSorter.cpp @@ -2,7 +2,7 @@ * \file CSurfaceFVMDataSorter.cpp * \brief Datasorter for FVM surfaces. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CTecplotBinaryFileWriter.cpp b/SU2_CFD/src/output/filewriter/CTecplotBinaryFileWriter.cpp index c73200a55a3..11366fb565a 100644 --- a/SU2_CFD/src/output/filewriter/CTecplotBinaryFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CTecplotBinaryFileWriter.cpp @@ -2,7 +2,7 @@ * \file CTecplotBinaryFileWriter.cpp * \brief Filewriter class for Tecplot binary format. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/filewriter/CTecplotFileWriter.cpp b/SU2_CFD/src/output/filewriter/CTecplotFileWriter.cpp index e214e4f2193..0f7813a4872 100644 --- a/SU2_CFD/src/output/filewriter/CTecplotFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CTecplotFileWriter.cpp @@ -2,7 +2,7 @@ * \file CTecplotFileWriter.cpp * \brief Filewriter class for Tecplot ASCII format. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/output/tools/CWindowingTools.cpp b/SU2_CFD/src/output/tools/CWindowingTools.cpp index 7299644b6a7..be2a9b94685 100644 --- a/SU2_CFD/src/output/tools/CWindowingTools.cpp +++ b/SU2_CFD/src/output/tools/CWindowingTools.cpp @@ -2,7 +2,7 @@ * \file signal_processing_toolbox.cpp * \brief Signal processing tools * \author S. Schotthöfer - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/python_wrapper_structure.cpp b/SU2_CFD/src/python_wrapper_structure.cpp index 86933d11341..2a148a346d9 100644 --- a/SU2_CFD/src/python_wrapper_structure.cpp +++ b/SU2_CFD/src/python_wrapper_structure.cpp @@ -2,7 +2,7 @@ * \file python_wrapper_structure.cpp * \brief Driver subroutines that are used by the Python wrapper. Those routines are usually called from an external Python environment. * \author D. Thomas - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp index b72305e0be2..db5f2204770 100644 --- a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp @@ -2,7 +2,7 @@ * \file CAdjEulerSolver.cpp * \brief Main subroutines for solving Euler adjoint problems. * \author F. Palacios, T. Economon, H. Kline - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CAdjNSSolver.cpp b/SU2_CFD/src/solvers/CAdjNSSolver.cpp index 3a219b06ea9..54e6c717b27 100644 --- a/SU2_CFD/src/solvers/CAdjNSSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjNSSolver.cpp @@ -2,7 +2,7 @@ * \file CAdjNSSolver.cpp * \brief Main subroutines for solving Navier-Stokes adjoint problems. * \author F. Palacios, T. Economon, H. Kline - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp index cb4a194ca95..eeb81c4354f 100644 --- a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp @@ -2,7 +2,7 @@ * \file CAdjTurbVariable.cpp * \brief Main subroutines for solving turbulent adjoint problems. * \author F. Palacios, A. Bueno, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CBaselineSolver.cpp b/SU2_CFD/src/solvers/CBaselineSolver.cpp index 411cce58397..0a83d7fd608 100644 --- a/SU2_CFD/src/solvers/CBaselineSolver.cpp +++ b/SU2_CFD/src/solvers/CBaselineSolver.cpp @@ -2,7 +2,7 @@ * \file CBaselineSolver.cpp * \brief Main subroutines for CBaselineSolver class. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp b/SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp index 4fa16b48bb9..f9df6099ee6 100644 --- a/SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp +++ b/SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp @@ -2,7 +2,7 @@ * \file CBaselineSolver_FEM.cpp * \brief Main subroutines for CBaselineSolver_FEM class. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp b/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp index 2fb85e5ffa9..81952b4ea61 100644 --- a/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp +++ b/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp @@ -2,7 +2,7 @@ * \file CDiscAdjFEASolver.cpp * \brief Main subroutines for solving adjoint FEM elasticity problems. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp b/SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp index 98e1e20ef45..87b4df1a3c3 100644 --- a/SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp +++ b/SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp @@ -2,7 +2,7 @@ * \file CDiscAdjMeshSolver.cpp * \brief Main subroutines for solving the discrete adjoint mesh problem. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CDiscAdjSolver.cpp b/SU2_CFD/src/solvers/CDiscAdjSolver.cpp index 1b1989fed7d..eada9828e35 100644 --- a/SU2_CFD/src/solvers/CDiscAdjSolver.cpp +++ b/SU2_CFD/src/solvers/CDiscAdjSolver.cpp @@ -2,7 +2,7 @@ * \file CDiscAdjSolver.cpp * \brief Main subroutines for solving the discrete adjoint problem. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 286a84e21c7..489bacb8a49 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -2,7 +2,7 @@ * \file CEulerSolver.cpp * \brief Main subroutines for solving Finite-Volume Euler flow problems. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * @@ -4111,7 +4111,7 @@ void CEulerSolver::SetActDisk_BEM_VLAD(CGeometry *geometry, CSolver **solver_con * Institution: Computational and Theoretical Fluid Dynamics (CTFD), * CSIR - National Aerospace Laboratories, Bangalore * Academy of Scientific and Innovative Research, Ghaziabad - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * First release date : September 26 2023 * modified on: * diff --git a/SU2_CFD/src/solvers/CFEASolver.cpp b/SU2_CFD/src/solvers/CFEASolver.cpp index fd142988bce..4cd718d6ce1 100644 --- a/SU2_CFD/src/solvers/CFEASolver.cpp +++ b/SU2_CFD/src/solvers/CFEASolver.cpp @@ -2,7 +2,7 @@ * \file CFEASolver.cpp * \brief Main subroutines for solving direct FEM elasticity problems. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CFEASolverBase.cpp b/SU2_CFD/src/solvers/CFEASolverBase.cpp index b3146c6d207..29da6fd4a5a 100644 --- a/SU2_CFD/src/solvers/CFEASolverBase.cpp +++ b/SU2_CFD/src/solvers/CFEASolverBase.cpp @@ -2,7 +2,7 @@ * \file CFEASolverBase.cpp * \brief Common class template for FEA solvers * \author T. Dick - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp b/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp index 73b04c709eb..29c53116c84 100644 --- a/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp +++ b/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp @@ -2,7 +2,7 @@ * \file CFEM_DG_EulerSolver.cpp * \brief Main subroutines for solving finite element Euler flow problems * \author J. Alonso, E. van der Weide, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp b/SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp index efbe74b0aa1..4e2558a74a2 100644 --- a/SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp +++ b/SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp @@ -2,7 +2,7 @@ * \file CFEM_DG_NSSolver.cpp * \brief Main subroutines for solving finite element Navier-Stokes flow problems * \author J. Alonso, E. van der Weide, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp b/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp index 47a624faada..b4614596065 100644 --- a/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp +++ b/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp @@ -2,7 +2,7 @@ * \file CGradientSmoothing.cpp * \brief Main solver routines for the gradient smoothing problem. * \author T. Dick - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CHeatSolver.cpp b/SU2_CFD/src/solvers/CHeatSolver.cpp index 64ddb898e74..dbbb7191f17 100644 --- a/SU2_CFD/src/solvers/CHeatSolver.cpp +++ b/SU2_CFD/src/solvers/CHeatSolver.cpp @@ -2,7 +2,7 @@ * \file CHeatSolver.cpp * \brief Main subroutines for solving the heat equation * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CIncEulerSolver.cpp b/SU2_CFD/src/solvers/CIncEulerSolver.cpp index 215445d2c5e..127e546fd8a 100644 --- a/SU2_CFD/src/solvers/CIncEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CIncEulerSolver.cpp @@ -2,7 +2,7 @@ * \file CIncEulerSolver.cpp * \brief Main subroutines for solving incompressible flow (Euler, Navier-Stokes, etc.). * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CIncNSSolver.cpp b/SU2_CFD/src/solvers/CIncNSSolver.cpp index d8327f1297a..41cedcdb5f5 100644 --- a/SU2_CFD/src/solvers/CIncNSSolver.cpp +++ b/SU2_CFD/src/solvers/CIncNSSolver.cpp @@ -2,7 +2,7 @@ * \file CIncNSSolver.cpp * \brief Main subroutines for solving Navier-Stokes incompressible flow. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CMeshSolver.cpp b/SU2_CFD/src/solvers/CMeshSolver.cpp index e875dcab694..0335e1759d0 100644 --- a/SU2_CFD/src/solvers/CMeshSolver.cpp +++ b/SU2_CFD/src/solvers/CMeshSolver.cpp @@ -2,7 +2,7 @@ * \file CMeshSolver.cpp * \brief Main subroutines to solve moving meshes using a pseudo-linear elastic approach. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp index 776a3baaafd..1a41a04f66a 100644 --- a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp @@ -2,7 +2,7 @@ * \file CNEMOEulerSolver.cpp * \brief Headers of the CNEMOEulerSolver class * \author S. R. Copeland, F. Palacios, W. Maier, C. Garbacz, J. Needels - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CNEMONSSolver.cpp b/SU2_CFD/src/solvers/CNEMONSSolver.cpp index 5b12013cee2..01d63385739 100644 --- a/SU2_CFD/src/solvers/CNEMONSSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMONSSolver.cpp @@ -2,7 +2,7 @@ * \file CNEMONSSolver.cpp * \brief Headers of the CNEMONSSolver class * \author S. R. Copeland, F. Palacios, W. Maier. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CNSSolver.cpp b/SU2_CFD/src/solvers/CNSSolver.cpp index 29a336c1a26..127ff3f5b08 100644 --- a/SU2_CFD/src/solvers/CNSSolver.cpp +++ b/SU2_CFD/src/solvers/CNSSolver.cpp @@ -2,7 +2,7 @@ * \file CNSSolver.cpp * \brief Main subroutines for solving Finite-Volume Navier-Stokes flow problems. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CRadP1Solver.cpp b/SU2_CFD/src/solvers/CRadP1Solver.cpp index 21e5458a81c..a1983796f31 100644 --- a/SU2_CFD/src/solvers/CRadP1Solver.cpp +++ b/SU2_CFD/src/solvers/CRadP1Solver.cpp @@ -2,7 +2,7 @@ * \file CRadP1Solver.cpp * \brief Main subroutines for solving P1 radiation problems. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CRadSolver.cpp b/SU2_CFD/src/solvers/CRadSolver.cpp index 735983fa586..6a8dec783a8 100644 --- a/SU2_CFD/src/solvers/CRadSolver.cpp +++ b/SU2_CFD/src/solvers/CRadSolver.cpp @@ -2,7 +2,7 @@ * \file CRadP1Solver.cpp * \brief Main subroutines for solving generic radiation problems (P1, M1, discrete ordinates...) * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index f8327c868bd..3b8c9e0e3ce 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -2,7 +2,7 @@ * \file CSolver.cpp * \brief Main subroutines for CSolver class. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CSolverFactory.cpp b/SU2_CFD/src/solvers/CSolverFactory.cpp index c282c2a9a78..743775ad139 100644 --- a/SU2_CFD/src/solvers/CSolverFactory.cpp +++ b/SU2_CFD/src/solvers/CSolverFactory.cpp @@ -2,7 +2,7 @@ * \file CSolverFactory.cpp * \brief Main subroutines for CSolverFactoryclass. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index d41818a5bde..33ad74b3f38 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -2,7 +2,7 @@ * \file CSpeciesFlameletSolver.cpp * \brief Main subroutines of CSpeciesFlameletSolver class * \author D. Mayer, T. Economon, N. Beishuizen, E. Bunschoten - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CSpeciesSolver.cpp b/SU2_CFD/src/solvers/CSpeciesSolver.cpp index 832c9014511..9d7c4494c51 100644 --- a/SU2_CFD/src/solvers/CSpeciesSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesSolver.cpp @@ -2,7 +2,7 @@ * \file CSpeciesSolver.cpp * \brief Main subroutines of CSpeciesSolver class * \author T. Kattmann - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CTemplateSolver.cpp b/SU2_CFD/src/solvers/CTemplateSolver.cpp index abf2c1d86a7..5a10e76cc42 100644 --- a/SU2_CFD/src/solvers/CTemplateSolver.cpp +++ b/SU2_CFD/src/solvers/CTemplateSolver.cpp @@ -2,7 +2,7 @@ * \file CTemplateSolver.cpp * \brief Subroutines to be implemented for any new solvers * \author F. Palacios - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CTransLMSolver.cpp b/SU2_CFD/src/solvers/CTransLMSolver.cpp index 902a67925c4..ca0ea0cdacf 100644 --- a/SU2_CFD/src/solvers/CTransLMSolver.cpp +++ b/SU2_CFD/src/solvers/CTransLMSolver.cpp @@ -2,7 +2,7 @@ * \file CTransLMSolver.cpp * \brief Main subroutines for Langtry-Menter Transition model solver. * \author A. Aranake, S. Kang. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CTurbSASolver.cpp b/SU2_CFD/src/solvers/CTurbSASolver.cpp index 40e19bd024c..6b465e802fd 100644 --- a/SU2_CFD/src/solvers/CTurbSASolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSASolver.cpp @@ -2,7 +2,7 @@ * \file CTurbSASolver.cpp * \brief Main subroutines of CTurbSASolver class * \author F. Palacios, A. Bueno - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index 63c29102175..02b91c8ab2c 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -2,7 +2,7 @@ * \file CTurbSSTSolver.cpp * \brief Main subroutines of CTurbSSTSolver class * \author F. Palacios, A. Bueno - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/solvers/CTurbSolver.cpp b/SU2_CFD/src/solvers/CTurbSolver.cpp index d0744a7e223..2340369c0c7 100644 --- a/SU2_CFD/src/solvers/CTurbSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSolver.cpp @@ -2,7 +2,7 @@ * \file CTurbSolver.cpp * \brief Main subroutines of CTurbSolver class * \author F. Palacios, A. Bueno - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CAdjEulerVariable.cpp b/SU2_CFD/src/variables/CAdjEulerVariable.cpp index 896d6a935e5..ca29fe2e445 100644 --- a/SU2_CFD/src/variables/CAdjEulerVariable.cpp +++ b/SU2_CFD/src/variables/CAdjEulerVariable.cpp @@ -2,7 +2,7 @@ * \file CAdjEulerVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CAdjNSVariable.cpp b/SU2_CFD/src/variables/CAdjNSVariable.cpp index 3e1fef4a720..5ca1483853d 100644 --- a/SU2_CFD/src/variables/CAdjNSVariable.cpp +++ b/SU2_CFD/src/variables/CAdjNSVariable.cpp @@ -2,7 +2,7 @@ * \file CAdjNSVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CAdjTurbVariable.cpp b/SU2_CFD/src/variables/CAdjTurbVariable.cpp index b8092f1c32d..16e5806484c 100644 --- a/SU2_CFD/src/variables/CAdjTurbVariable.cpp +++ b/SU2_CFD/src/variables/CAdjTurbVariable.cpp @@ -2,7 +2,7 @@ * \file CAdjTurbVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CBaselineVariable.cpp b/SU2_CFD/src/variables/CBaselineVariable.cpp index 30870eb14ed..76874884088 100644 --- a/SU2_CFD/src/variables/CBaselineVariable.cpp +++ b/SU2_CFD/src/variables/CBaselineVariable.cpp @@ -2,7 +2,7 @@ * \file CBaselineVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CDiscAdjFEABoundVariable.cpp b/SU2_CFD/src/variables/CDiscAdjFEABoundVariable.cpp index 8b89892ca29..ec22f82b6f0 100644 --- a/SU2_CFD/src/variables/CDiscAdjFEABoundVariable.cpp +++ b/SU2_CFD/src/variables/CDiscAdjFEABoundVariable.cpp @@ -2,7 +2,7 @@ * \file CDiscAdjFEAVariable.cpp * \brief Definition of the variables for FEM adjoint elastic structural problems. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CDiscAdjMeshBoundVariable.cpp b/SU2_CFD/src/variables/CDiscAdjMeshBoundVariable.cpp index 39151c49039..c4ecb0e9f7a 100644 --- a/SU2_CFD/src/variables/CDiscAdjMeshBoundVariable.cpp +++ b/SU2_CFD/src/variables/CDiscAdjMeshBoundVariable.cpp @@ -2,7 +2,7 @@ * \file CDiscAdjMeshVariable.cpp * \brief Main subroutines for the discrete adjoint mesh variable structure. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CDiscAdjVariable.cpp b/SU2_CFD/src/variables/CDiscAdjVariable.cpp index a4a29700f6d..dea77867329 100644 --- a/SU2_CFD/src/variables/CDiscAdjVariable.cpp +++ b/SU2_CFD/src/variables/CDiscAdjVariable.cpp @@ -2,7 +2,7 @@ * \file CDiscAdjVariable.cpp * \brief Main subroutines for the discrete adjoint variable structure. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CEulerVariable.cpp b/SU2_CFD/src/variables/CEulerVariable.cpp index 9ee74babaf0..a3cc7e6e2c9 100644 --- a/SU2_CFD/src/variables/CEulerVariable.cpp +++ b/SU2_CFD/src/variables/CEulerVariable.cpp @@ -2,7 +2,7 @@ * \file CEulerVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CFEABoundVariable.cpp b/SU2_CFD/src/variables/CFEABoundVariable.cpp index e6ac5077394..fe3fefe0020 100644 --- a/SU2_CFD/src/variables/CFEABoundVariable.cpp +++ b/SU2_CFD/src/variables/CFEABoundVariable.cpp @@ -2,7 +2,7 @@ * \file CFEABoundVariable.cpp * \brief Definition of the variables for FEM elastic structural problems. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CFEAVariable.cpp b/SU2_CFD/src/variables/CFEAVariable.cpp index 558edcc8ead..7e486af3a21 100644 --- a/SU2_CFD/src/variables/CFEAVariable.cpp +++ b/SU2_CFD/src/variables/CFEAVariable.cpp @@ -2,7 +2,7 @@ * \file CFEAVariable.cpp * \brief Definition of the variables for FEM elastic structural problems. * \author R. Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CFlowVariable.cpp b/SU2_CFD/src/variables/CFlowVariable.cpp index c094bc4e043..db13f4f5521 100644 --- a/SU2_CFD/src/variables/CFlowVariable.cpp +++ b/SU2_CFD/src/variables/CFlowVariable.cpp @@ -1,7 +1,7 @@ /*! * \file CFlowVariable.cpp * \brief Definition of common solution fields for flow solvers. - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CHeatVariable.cpp b/SU2_CFD/src/variables/CHeatVariable.cpp index 6ed261ec015..c0784ad21d0 100644 --- a/SU2_CFD/src/variables/CHeatVariable.cpp +++ b/SU2_CFD/src/variables/CHeatVariable.cpp @@ -2,7 +2,7 @@ * \file CHeatVariable.cpp * \brief Definition of the variables for heat equation problems. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CIncEulerVariable.cpp b/SU2_CFD/src/variables/CIncEulerVariable.cpp index aeed1afeebd..929fcf84245 100644 --- a/SU2_CFD/src/variables/CIncEulerVariable.cpp +++ b/SU2_CFD/src/variables/CIncEulerVariable.cpp @@ -2,7 +2,7 @@ * \file CIncEulerVariable.cpp * \brief Definition of the variable classes for incompressible flow. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CIncNSVariable.cpp b/SU2_CFD/src/variables/CIncNSVariable.cpp index 7aee6086d05..cbcfa3b0aad 100644 --- a/SU2_CFD/src/variables/CIncNSVariable.cpp +++ b/SU2_CFD/src/variables/CIncNSVariable.cpp @@ -2,7 +2,7 @@ * \file CIncNSVariable.cpp * \brief Definition of the variable classes for incompressible flow. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CMeshBoundVariable.cpp b/SU2_CFD/src/variables/CMeshBoundVariable.cpp index 26b3b6996f5..dad56c1972a 100644 --- a/SU2_CFD/src/variables/CMeshBoundVariable.cpp +++ b/SU2_CFD/src/variables/CMeshBoundVariable.cpp @@ -2,7 +2,7 @@ * \file CMeshBoundVariable.cpp * \brief Definition of the boundary variables for mesh motion using a pseudo-elastic approach. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CMeshElement.cpp b/SU2_CFD/src/variables/CMeshElement.cpp index fed9a6cf0f0..d5d538e5a0b 100644 --- a/SU2_CFD/src/variables/CMeshElement.cpp +++ b/SU2_CFD/src/variables/CMeshElement.cpp @@ -2,7 +2,7 @@ * \file CMeshElement.cpp * \brief Definition of the mesh elements for mesh deformation using a pseudo-elastic approach. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CMeshVariable.cpp b/SU2_CFD/src/variables/CMeshVariable.cpp index bfe4a03f81a..5efc109e3af 100644 --- a/SU2_CFD/src/variables/CMeshVariable.cpp +++ b/SU2_CFD/src/variables/CMeshVariable.cpp @@ -2,7 +2,7 @@ * \file CMeshVariable.cpp * \brief Definition of the variables for mesh motion using a pseudo-elastic approach. * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CNEMOEulerVariable.cpp b/SU2_CFD/src/variables/CNEMOEulerVariable.cpp index 601d7cbea2b..8386ed3b616 100644 --- a/SU2_CFD/src/variables/CNEMOEulerVariable.cpp +++ b/SU2_CFD/src/variables/CNEMOEulerVariable.cpp @@ -2,7 +2,7 @@ * \file CNEMOEulerVariable.cpp * \brief Definition of the solution fields. * \author C. Garbacz, W. Maier, S.R. Copeland - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CNEMONSVariable.cpp b/SU2_CFD/src/variables/CNEMONSVariable.cpp index 0670cee10c7..c94d5408630 100644 --- a/SU2_CFD/src/variables/CNEMONSVariable.cpp +++ b/SU2_CFD/src/variables/CNEMONSVariable.cpp @@ -2,7 +2,7 @@ * \file CNEMONSVariable.cpp * \brief Definition of the solution fields. * \author C. Garbacz, W. Maier, S.R. Copeland - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CNSVariable.cpp b/SU2_CFD/src/variables/CNSVariable.cpp index 59032c525c5..5b67a0bdbb8 100644 --- a/SU2_CFD/src/variables/CNSVariable.cpp +++ b/SU2_CFD/src/variables/CNSVariable.cpp @@ -2,7 +2,7 @@ * \file CNSVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CRadP1Variable.cpp b/SU2_CFD/src/variables/CRadP1Variable.cpp index 5524e6c6112..bae525f40c2 100644 --- a/SU2_CFD/src/variables/CRadP1Variable.cpp +++ b/SU2_CFD/src/variables/CRadP1Variable.cpp @@ -2,7 +2,7 @@ * \file CRadP1Variable.cpp * \brief Definition of the P1 model variables * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CRadVariable.cpp b/SU2_CFD/src/variables/CRadVariable.cpp index 304cbb141fc..4f6d74f8812 100644 --- a/SU2_CFD/src/variables/CRadVariable.cpp +++ b/SU2_CFD/src/variables/CRadVariable.cpp @@ -2,7 +2,7 @@ * \file CRadVariable.cpp * \brief Definition of the radiation variables * \author Ruben Sanchez - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CScalarVariable.cpp b/SU2_CFD/src/variables/CScalarVariable.cpp index 49eff3f8ec3..08421ee0b65 100644 --- a/SU2_CFD/src/variables/CScalarVariable.cpp +++ b/SU2_CFD/src/variables/CScalarVariable.cpp @@ -2,7 +2,7 @@ * \file CScalarVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CSobolevSmoothingVariable.cpp b/SU2_CFD/src/variables/CSobolevSmoothingVariable.cpp index a9362930d80..ccf8a00702e 100644 --- a/SU2_CFD/src/variables/CSobolevSmoothingVariable.cpp +++ b/SU2_CFD/src/variables/CSobolevSmoothingVariable.cpp @@ -2,7 +2,7 @@ * \file CSobolevSmoothingVariable.cpp * \brief Definition of the variables for gradient smoothing problems. * \author T. Dick - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CSpeciesFlameletVariable.cpp b/SU2_CFD/src/variables/CSpeciesFlameletVariable.cpp index 3dd1b222750..9b8d9b56212 100644 --- a/SU2_CFD/src/variables/CSpeciesFlameletVariable.cpp +++ b/SU2_CFD/src/variables/CSpeciesFlameletVariable.cpp @@ -2,7 +2,7 @@ * \file CSpeciesFlameletVariable.cpp * \brief Definition of the variable fields for the flamelet class. * \author D. Mayer, T. Economon, N. Beishuizen - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CSpeciesVariable.cpp b/SU2_CFD/src/variables/CSpeciesVariable.cpp index 3372455937f..5715ae784ca 100644 --- a/SU2_CFD/src/variables/CSpeciesVariable.cpp +++ b/SU2_CFD/src/variables/CSpeciesVariable.cpp @@ -2,7 +2,7 @@ * \file CSpeciesVariable.cpp * \brief Definition of the solution fields. * \author T. Kattmann - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CTransLMVariable.cpp b/SU2_CFD/src/variables/CTransLMVariable.cpp index 551968b1c35..6ea1c088b84 100644 --- a/SU2_CFD/src/variables/CTransLMVariable.cpp +++ b/SU2_CFD/src/variables/CTransLMVariable.cpp @@ -2,7 +2,7 @@ * \file CTransLMVariable.cpp * \brief Definition of the solution fields. * \author A. Aranake, S. Kang - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CTurbSAVariable.cpp b/SU2_CFD/src/variables/CTurbSAVariable.cpp index ac5cee3dc3d..d7091f8be59 100644 --- a/SU2_CFD/src/variables/CTurbSAVariable.cpp +++ b/SU2_CFD/src/variables/CTurbSAVariable.cpp @@ -2,7 +2,7 @@ * \file CTurbSAVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CTurbSSTVariable.cpp b/SU2_CFD/src/variables/CTurbSSTVariable.cpp index 3b88c4b8f3f..d1fd98c8a14 100644 --- a/SU2_CFD/src/variables/CTurbSSTVariable.cpp +++ b/SU2_CFD/src/variables/CTurbSSTVariable.cpp @@ -2,7 +2,7 @@ * \file CTurbSSTVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CTurbVariable.cpp b/SU2_CFD/src/variables/CTurbVariable.cpp index 7fcc357c0ee..46b686766a7 100644 --- a/SU2_CFD/src/variables/CTurbVariable.cpp +++ b/SU2_CFD/src/variables/CTurbVariable.cpp @@ -2,7 +2,7 @@ * \file CTurbVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_CFD/src/variables/CVariable.cpp b/SU2_CFD/src/variables/CVariable.cpp index 9f307fd49f2..98ab867b2e9 100644 --- a/SU2_CFD/src/variables/CVariable.cpp +++ b/SU2_CFD/src/variables/CVariable.cpp @@ -2,7 +2,7 @@ * \file CVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_DEF/include/drivers/CDeformationDriver.hpp b/SU2_DEF/include/drivers/CDeformationDriver.hpp index fc5fecf3591..73c7a58e1cb 100644 --- a/SU2_DEF/include/drivers/CDeformationDriver.hpp +++ b/SU2_DEF/include/drivers/CDeformationDriver.hpp @@ -2,7 +2,7 @@ * \file CDeformationDriver.hpp * \brief Headers of the main subroutines for driving the mesh deformation. * \author A. Gastaldi, H. Patel - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_DEF/include/drivers/CDiscAdjDeformationDriver.hpp b/SU2_DEF/include/drivers/CDiscAdjDeformationDriver.hpp index 4300529cd98..7a999f50e9b 100644 --- a/SU2_DEF/include/drivers/CDiscAdjDeformationDriver.hpp +++ b/SU2_DEF/include/drivers/CDiscAdjDeformationDriver.hpp @@ -2,7 +2,7 @@ * \file CDiscAdjDeformationDriver.hpp * \brief Headers of the main subroutines for driving the projection of sensitivities. * \author T. Economon, H. Kline, R. Sanchez, A. Gastaldi, H. Patel - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_DEF/src/SU2_DEF.cpp b/SU2_DEF/src/SU2_DEF.cpp index 7417cc40422..28883b15ca6 100644 --- a/SU2_DEF/src/SU2_DEF.cpp +++ b/SU2_DEF/src/SU2_DEF.cpp @@ -2,7 +2,7 @@ * \file SU2_DEF.cpp * \brief Main file of Mesh Deformation Code (SU2_DEF). * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_DEF/src/drivers/CDeformationDriver.cpp b/SU2_DEF/src/drivers/CDeformationDriver.cpp index ed33ef219bc..551fc7f81f8 100644 --- a/SU2_DEF/src/drivers/CDeformationDriver.cpp +++ b/SU2_DEF/src/drivers/CDeformationDriver.cpp @@ -2,7 +2,7 @@ * \file CDeformationDriver.cpp * \brief Main subroutines for driving the mesh deformation. * \author A. Gastaldi, H. Patel - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_DEF/src/drivers/CDiscAdjDeformationDriver.cpp b/SU2_DEF/src/drivers/CDiscAdjDeformationDriver.cpp index 6e07e6b4108..f919f5af7d8 100644 --- a/SU2_DEF/src/drivers/CDiscAdjDeformationDriver.cpp +++ b/SU2_DEF/src/drivers/CDiscAdjDeformationDriver.cpp @@ -2,7 +2,7 @@ * \file CDiscAdjDeformationDriver.cpp * \brief Main subroutines for driving the projection of sensitivities. * \author T. Economon, H. Kline, R. Sanchez, A. Gastaldi, H. Patel - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 3e538d539aa..f40d88eea66 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -2,7 +2,7 @@ * \file SU2_DOT.cpp * \brief Main file of the Gradient Projection Code (SU2_DOT). * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_GEO/include/SU2_GEO.hpp b/SU2_GEO/include/SU2_GEO.hpp index 929edcdc591..fafa14a6737 100644 --- a/SU2_GEO/include/SU2_GEO.hpp +++ b/SU2_GEO/include/SU2_GEO.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_GEO. * The subroutines and functions are in the SU2_GEO.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_GEO/src/SU2_GEO.cpp b/SU2_GEO/src/SU2_GEO.cpp index 4e1d3bad9fe..3aadbd6499b 100644 --- a/SU2_GEO/src/SU2_GEO.cpp +++ b/SU2_GEO/src/SU2_GEO.cpp @@ -2,7 +2,7 @@ * \file SU2_GEO.cpp * \brief Main file of the Geometry Definition Code (SU2_GEO). * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_PY/FSI_tools/FSIInterface.py b/SU2_PY/FSI_tools/FSIInterface.py index 1c5b57051f2..61148d805c7 100644 --- a/SU2_PY/FSI_tools/FSIInterface.py +++ b/SU2_PY/FSI_tools/FSIInterface.py @@ -3,7 +3,7 @@ ## \file FSIInterface.py # \brief FSI interface class that handles fluid/solid solvers synchronisation and communication. # \authors Nicola Fonzi, Vittorio Cavalieri based on the work of David Thomas -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/FSI_tools/FSI_config.py b/SU2_PY/FSI_tools/FSI_config.py index 66b443f801e..c6092f81a12 100644 --- a/SU2_PY/FSI_tools/FSI_config.py +++ b/SU2_PY/FSI_tools/FSI_config.py @@ -3,7 +3,7 @@ ## \file FSI_config.py # \brief Python class for handling configuration file for FSI computation. # \authors Nicola Fonzi, Vittorio Cavalieri based on the work of David Thomas -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/OptimalPropeller.py b/SU2_PY/OptimalPropeller.py index 5070173db6a..c8127de730c 100644 --- a/SU2_PY/OptimalPropeller.py +++ b/SU2_PY/OptimalPropeller.py @@ -1,7 +1,7 @@ ## \file OptimalPropeller.py # \brief Python script for generating the ActuatorDisk.dat file. # \author E. Saetta, L. Russo, R. Tognaccini -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/eval/design.py b/SU2_PY/SU2/eval/design.py index 4fccc843ace..d4b41771a39 100644 --- a/SU2_PY/SU2/eval/design.py +++ b/SU2_PY/SU2/eval/design.py @@ -3,7 +3,7 @@ ## \file design.py # \brief python package for designs # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/eval/functions.py b/SU2_PY/SU2/eval/functions.py index 94ce20f0754..42dfeadf480 100644 --- a/SU2_PY/SU2/eval/functions.py +++ b/SU2_PY/SU2/eval/functions.py @@ -3,7 +3,7 @@ ## \file functions.py # \brief python package for functions # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/eval/gradients.py b/SU2_PY/SU2/eval/gradients.py index 64201e3158b..6d553ee041d 100644 --- a/SU2_PY/SU2/eval/gradients.py +++ b/SU2_PY/SU2/eval/gradients.py @@ -3,7 +3,7 @@ ## \file gradients.py # \brief python package for gradients # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/io/config.py b/SU2_PY/SU2/io/config.py index f60608c7552..aea9927b9a5 100755 --- a/SU2_PY/SU2/io/config.py +++ b/SU2_PY/SU2/io/config.py @@ -3,7 +3,7 @@ ## \file config.py # \brief python package for config # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/io/config_options.py b/SU2_PY/SU2/io/config_options.py index f5db7e1b916..f7ffe4de45e 100644 --- a/SU2_PY/SU2/io/config_options.py +++ b/SU2_PY/SU2/io/config_options.py @@ -1,7 +1,7 @@ # \file config_options.py # \brief python package for config # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/io/data.py b/SU2_PY/SU2/io/data.py index 264e7585f5b..00f27ef0469 100644 --- a/SU2_PY/SU2/io/data.py +++ b/SU2_PY/SU2/io/data.py @@ -3,7 +3,7 @@ ## \file data.py # \brief python package for data utility functions # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/io/filelock.py b/SU2_PY/SU2/io/filelock.py index d3bc8ffda84..19144f720ca 100644 --- a/SU2_PY/SU2/io/filelock.py +++ b/SU2_PY/SU2/io/filelock.py @@ -3,7 +3,7 @@ ## \file filelock.py # \brief python package for filelocking # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/io/redirect.py b/SU2_PY/SU2/io/redirect.py index 7efbc55c889..4dcb0c0d6a3 100644 --- a/SU2_PY/SU2/io/redirect.py +++ b/SU2_PY/SU2/io/redirect.py @@ -3,7 +3,7 @@ ## \file redirect.py # \brief python package for file redirection # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/io/state.py b/SU2_PY/SU2/io/state.py index 1026c5de8f3..74a5227729f 100644 --- a/SU2_PY/SU2/io/state.py +++ b/SU2_PY/SU2/io/state.py @@ -3,7 +3,7 @@ ## \file state.py # \brief python package for state # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/io/tools.py b/SU2_PY/SU2/io/tools.py index b10cb7b9f54..30316fc4738 100755 --- a/SU2_PY/SU2/io/tools.py +++ b/SU2_PY/SU2/io/tools.py @@ -3,7 +3,7 @@ ## \file tools.py # \brief file i/o functions # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/opt/project.py b/SU2_PY/SU2/opt/project.py index 17fac091970..aad8e26851a 100644 --- a/SU2_PY/SU2/opt/project.py +++ b/SU2_PY/SU2/opt/project.py @@ -3,7 +3,7 @@ ## \file project.py # \brief package for optimization projects # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/opt/scipy_tools.py b/SU2_PY/SU2/opt/scipy_tools.py index 1418314c2ca..3fbf876fffa 100644 --- a/SU2_PY/SU2/opt/scipy_tools.py +++ b/SU2_PY/SU2/opt/scipy_tools.py @@ -3,7 +3,7 @@ ## \file scipy_tools.py # \brief tools for interfacing with scipy # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/run/adjoint.py b/SU2_PY/SU2/run/adjoint.py index c9afa8de96a..9ac6d4f45f6 100644 --- a/SU2_PY/SU2/run/adjoint.py +++ b/SU2_PY/SU2/run/adjoint.py @@ -3,7 +3,7 @@ ## \file adjoint.py # \brief python package for running adjoint problems # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/run/deform.py b/SU2_PY/SU2/run/deform.py index 6724eb51da0..b5006c9ecbb 100644 --- a/SU2_PY/SU2/run/deform.py +++ b/SU2_PY/SU2/run/deform.py @@ -3,7 +3,7 @@ ## \file deform.py # \brief python package for deforming meshes # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/run/direct.py b/SU2_PY/SU2/run/direct.py index 4610d8f938f..4457a659de2 100644 --- a/SU2_PY/SU2/run/direct.py +++ b/SU2_PY/SU2/run/direct.py @@ -3,7 +3,7 @@ ## \file direct.py # \brief python package for running direct solutions # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/run/geometry.py b/SU2_PY/SU2/run/geometry.py index acd0caec0fb..5b0447e4695 100644 --- a/SU2_PY/SU2/run/geometry.py +++ b/SU2_PY/SU2/run/geometry.py @@ -3,7 +3,7 @@ ## \file geometry.py # \brief python package for running geometry analyses # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/run/interface.py b/SU2_PY/SU2/run/interface.py index 73dba4801a6..3645fa62687 100644 --- a/SU2_PY/SU2/run/interface.py +++ b/SU2_PY/SU2/run/interface.py @@ -3,7 +3,7 @@ ## \file interface.py # \brief python package interfacing with the SU2 suite # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/run/merge.py b/SU2_PY/SU2/run/merge.py index 027937dc252..c96d11dea81 100644 --- a/SU2_PY/SU2/run/merge.py +++ b/SU2_PY/SU2/run/merge.py @@ -1,7 +1,7 @@ ## \file merge.py # \brief python package for merging meshes # \author T. Economon, T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/run/projection.py b/SU2_PY/SU2/run/projection.py index f425b22f88f..4ebd8a7cd17 100644 --- a/SU2_PY/SU2/run/projection.py +++ b/SU2_PY/SU2/run/projection.py @@ -3,7 +3,7 @@ ## \file projection.py # \brief python package for running gradient projection # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/util/filter_adjoint.py b/SU2_PY/SU2/util/filter_adjoint.py index 3b9cd4dc87c..4b803d1bf72 100644 --- a/SU2_PY/SU2/util/filter_adjoint.py +++ b/SU2_PY/SU2/util/filter_adjoint.py @@ -3,7 +3,7 @@ ## \file filter_adjoint.py # \brief Applies various filters to the adjoint surface sensitivities of an airfoil # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/util/plot.py b/SU2_PY/SU2/util/plot.py index 73f1f00f649..1db3c80b7c7 100644 --- a/SU2_PY/SU2/util/plot.py +++ b/SU2_PY/SU2/util/plot.py @@ -3,7 +3,7 @@ ## \file plot.py # \brief python package for plotting # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/util/polarSweepLib.py b/SU2_PY/SU2/util/polarSweepLib.py index 30f785b8734..8b141c4a657 100755 --- a/SU2_PY/SU2/util/polarSweepLib.py +++ b/SU2_PY/SU2/util/polarSweepLib.py @@ -1,7 +1,7 @@ # \file polarSweepLib.py # \brief Functions library for compute_polar.py script. # \author E Arad -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2/util/which.py b/SU2_PY/SU2/util/which.py index 7aec152b10e..88216fd06fb 100644 --- a/SU2_PY/SU2/util/which.py +++ b/SU2_PY/SU2/util/which.py @@ -3,7 +3,7 @@ ## \file which.py # \brief looks for where a program is # \author T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2_CFD.py b/SU2_PY/SU2_CFD.py index 96e5fcbb1b8..b7917b89e05 100755 --- a/SU2_PY/SU2_CFD.py +++ b/SU2_PY/SU2_CFD.py @@ -3,7 +3,7 @@ ## \file SU2_CFD.py # \brief Python script to launch SU2_CFD through the Python Wrapper. # \author David Thomas -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/SU2_Nastran/pysu2_nastran.py b/SU2_PY/SU2_Nastran/pysu2_nastran.py index 4bba2dd5fce..8985b6d143a 100644 --- a/SU2_PY/SU2_Nastran/pysu2_nastran.py +++ b/SU2_PY/SU2_Nastran/pysu2_nastran.py @@ -3,7 +3,7 @@ ## \file pysu2_nastran.py # \brief Structural solver using Nastran models # \authors Nicola Fonzi, Vittorio Cavalieri, based on the work of David Thomas -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/change_version_number.py b/SU2_PY/change_version_number.py index 68cf39905c4..093015a34bb 100755 --- a/SU2_PY/change_version_number.py +++ b/SU2_PY/change_version_number.py @@ -3,7 +3,7 @@ ## \file change_version_number.py # \brief Python script for updating the version number of the SU2 suite. # \author A. Aranake -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # @@ -55,8 +55,8 @@ if not options.version: parser.error("new version number must be provided with -v option") -oldvers = '8.0.1 "Harrier"' -oldvers_q = r"8.0.1 \"Harrier\"" +oldvers = '8.1.0 "Harrier"' +oldvers_q = r"8.1.0 \"Harrier\"" newvers = str(options.version) + ' "' + str(options.releasename) + '"' newvers_q = str(options.version) + ' \\"' + str(options.releasename) + '\\"' # oldvers = 'Copyright 2012-2024, SU2' diff --git a/SU2_PY/compute_polar.py b/SU2_PY/compute_polar.py index 1a510e1b48c..af882723e16 100755 --- a/SU2_PY/compute_polar.py +++ b/SU2_PY/compute_polar.py @@ -3,7 +3,7 @@ ## \file Compute_polar.py # \brief Python script for performing polar sweep. # \author E Arad (based on T. Lukaczyk and F. Palacios script) -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/compute_uncertainty.py b/SU2_PY/compute_uncertainty.py index da97ab620e4..cd006078556 100755 --- a/SU2_PY/compute_uncertainty.py +++ b/SU2_PY/compute_uncertainty.py @@ -3,7 +3,7 @@ ## \file compute_uncertainty.py # \brief Python script for performing model-form UQ for SST turbulence model # \author J. Mukhopadhaya -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/continuous_adjoint.py b/SU2_PY/continuous_adjoint.py index 7cc98aa7269..8414a8af903 100755 --- a/SU2_PY/continuous_adjoint.py +++ b/SU2_PY/continuous_adjoint.py @@ -3,7 +3,7 @@ ## \file continuous_adjoint.py # \brief Python script for continuous adjoint computation using the SU2 suite. # \author F. Palacios, T. Economon, T. Lukaczyk -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/direct_differentiation.py b/SU2_PY/direct_differentiation.py index a348abe621d..5890020a306 100755 --- a/SU2_PY/direct_differentiation.py +++ b/SU2_PY/direct_differentiation.py @@ -3,7 +3,7 @@ ## \file direct_differentiation.py # \brief Python script for doing the direct differentiation computation using the SU2 suite. # \author F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/discrete_adjoint.py b/SU2_PY/discrete_adjoint.py index 0e3dd93addc..ba04772b5f5 100755 --- a/SU2_PY/discrete_adjoint.py +++ b/SU2_PY/discrete_adjoint.py @@ -3,7 +3,7 @@ ## \file discrete_adjoint.py # \brief Python script for doing the discrete adjoint computation using the SU2 suite. # \author F. Palacios, T. Economon, T. Lukaczyk -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/finite_differences.py b/SU2_PY/finite_differences.py index 78b0c6a1ea8..7319645d654 100755 --- a/SU2_PY/finite_differences.py +++ b/SU2_PY/finite_differences.py @@ -3,7 +3,7 @@ ## \file finite_differences.py # \brief Python script for doing the finite differences computation using the SU2 suite. # \author F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/fsi_computation.py b/SU2_PY/fsi_computation.py index 41c5ff20051..4b2e35c73ef 100755 --- a/SU2_PY/fsi_computation.py +++ b/SU2_PY/fsi_computation.py @@ -3,7 +3,7 @@ ## \file fsi_computation.py # \brief Python wrapper code for FSI computation by coupling a third-party structural solver to SU2. # \authors Nicola Fonzi, Vittorio Cavalieri based on the work of David Thomas -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/merge_solution.py b/SU2_PY/merge_solution.py index 3f1c177569d..eb75c1fc781 100755 --- a/SU2_PY/merge_solution.py +++ b/SU2_PY/merge_solution.py @@ -3,7 +3,7 @@ ## \file merge_solution.py # \brief Python script for merging of the solution files. # \author F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/mesh_deformation.py b/SU2_PY/mesh_deformation.py index 0b5619c697c..578c58b422d 100755 --- a/SU2_PY/mesh_deformation.py +++ b/SU2_PY/mesh_deformation.py @@ -3,7 +3,7 @@ ## \file mesh_deformation.py # \brief Python script for doing the parallel deformation using SU2_DEF. # \author F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/parallel_computation.py b/SU2_PY/parallel_computation.py index ea610f0671e..f44a63fa1c6 100755 --- a/SU2_PY/parallel_computation.py +++ b/SU2_PY/parallel_computation.py @@ -3,7 +3,7 @@ ## \file parallel_computation.py # \brief Python script for doing the continuous adjoint computation using the SU2 suite. # \author T. Economon, T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/parallel_computation_fsi.py b/SU2_PY/parallel_computation_fsi.py index f4ebd1451a4..b456cb0b3ec 100755 --- a/SU2_PY/parallel_computation_fsi.py +++ b/SU2_PY/parallel_computation_fsi.py @@ -3,7 +3,7 @@ ## \file parallel_computation_fsi.py # \brief Python script for running FSI simulations using the SU2 suite. # \author T. Economon, T. Lukaczyk, F. Palacios, H. Kline, R. Sanchez -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/parse_config.py b/SU2_PY/parse_config.py index 5e0ec1c2620..d727f8ec230 100755 --- a/SU2_PY/parse_config.py +++ b/SU2_PY/parse_config.py @@ -3,7 +3,7 @@ ## \file parse_config.py # \brief Builds a worksheet of all SU2.cpp options # \author A. Aranake, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/profiling.py b/SU2_PY/profiling.py index 021b68bdc4e..b82eeae8ba6 100755 --- a/SU2_PY/profiling.py +++ b/SU2_PY/profiling.py @@ -3,7 +3,7 @@ ## \file profiling.py # \brief Python script for postprocessing the SU2 custom profiling (profiling.csv) # \author T. Economon -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/pySU2/pySU2.i b/SU2_PY/pySU2/pySU2.i index c139d9c02ef..49bfda39274 100644 --- a/SU2_PY/pySU2/pySU2.i +++ b/SU2_PY/pySU2/pySU2.i @@ -4,7 +4,7 @@ # \file pySU2.i # \brief Configuration file for the Swig compilation of the Python wrapper. # \author D. Thomas -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/pySU2/pySU2ad.i b/SU2_PY/pySU2/pySU2ad.i index d970ffb5d2c..6a834bc1457 100644 --- a/SU2_PY/pySU2/pySU2ad.i +++ b/SU2_PY/pySU2/pySU2ad.i @@ -4,7 +4,7 @@ # \file pySU2ad.i # \brief Configuration file for the Swig compilation of the Python wrapper. # \author D. Thomas, R. Sanchez -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/set_ffd_design_var.py b/SU2_PY/set_ffd_design_var.py index e764ab8d283..0dc1a267231 100755 --- a/SU2_PY/set_ffd_design_var.py +++ b/SU2_PY/set_ffd_design_var.py @@ -3,7 +3,7 @@ ## \file set_ffd_design_var.py # \brief Python script for automatically generating a list of FFD variables. # \author T. Economon, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/shape_optimization.py b/SU2_PY/shape_optimization.py index dc50d9984c4..c513d3592e8 100755 --- a/SU2_PY/shape_optimization.py +++ b/SU2_PY/shape_optimization.py @@ -3,7 +3,7 @@ ## \file shape_optimization.py # \brief Python script for performing the shape optimization. # \author T. Economon, T. Lukaczyk, F. Palacios -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # @@ -106,7 +106,7 @@ def main(): "| ___ _ _ ___ |\n" ) sys.stdout.write( - '| / __| | | |_ ) Release 8.0.1 "Harrier" |\n' + '| / __| | | |_ ) Release 8.1.0 "Harrier" |\n' ) sys.stdout.write( "| \\__ \\ |_| |/ / |\n" diff --git a/SU2_PY/topology_optimization.py b/SU2_PY/topology_optimization.py index 83e91c5807b..aa099ba49d7 100755 --- a/SU2_PY/topology_optimization.py +++ b/SU2_PY/topology_optimization.py @@ -2,7 +2,7 @@ ## \file topology_optimization.py # \brief Python script to drive SU2 in topology optimization. -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_PY/updateHistoryMap.py b/SU2_PY/updateHistoryMap.py index 61a98a9a0ea..7c8eadac0b3 100644 --- a/SU2_PY/updateHistoryMap.py +++ b/SU2_PY/updateHistoryMap.py @@ -3,7 +3,7 @@ ## \file updateHistoryMap.py # \brief Python script for updating the historyMap.py file. # \author T. Albring -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/SU2_SOL/include/SU2_SOL.hpp b/SU2_SOL/include/SU2_SOL.hpp index 340c0dfaa6d..7e1c432f101 100644 --- a/SU2_SOL/include/SU2_SOL.hpp +++ b/SU2_SOL/include/SU2_SOL.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_SOL. * The subroutines and functions are in the SU2_SOL.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index d5342042960..0c1b63c7d74 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -2,7 +2,7 @@ * \file SU2_SOL.cpp * \brief Main file for the solution export/conversion code (SU2_SOL). * \author F. Palacios, T. Economon - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 1170ae71e05..81ab3fb6895 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -3,7 +3,7 @@ ## \file TestCase.py # \brief Python class for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg b/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg index 39a2c90ae61..e62e2f1e8d0 100644 --- a/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg +++ b/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Santiago Padron % % Institution: Stanford University % % Date: 07-09-15 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg b/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg index de7e93cd78e..680033e445b 100644 --- a/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg +++ b/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg @@ -4,7 +4,7 @@ % Case description: Axisymmetric supersonic converging-diverging air nozzle % % Author: Florian Dittmann % % Date: 2021.12.02 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/cgns_writer/config.cfg b/TestCases/cgns_writer/config.cfg index ec6fbda0190..cfd589236a7 100644 --- a/TestCases/cgns_writer/config.cfg +++ b/TestCases/cgns_writer/config.cfg @@ -5,7 +5,7 @@ % Author: Andrea Rausa % % Institution: Politecnico di Milano % % Date: 12/2/2023 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg index 723d9e59dd4..7a63c1ff189 100644 --- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg index 33fda8e7d94..a6972db3209 100644 --- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg index f92eb76c9dc..7fe83b2786d 100644 --- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg b/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg index 56c9c5ca08e..3d593c4d6f2 100644 --- a/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg +++ b/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2015.08.25 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg index d76bbb66340..4ad77fbde61 100644 --- a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg +++ b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE_multiobj.cfg b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE_multiobj.cfg index 6df6386c164..de2e39bcadf 100644 --- a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE_multiobj.cfg +++ b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE_multiobj.cfg @@ -6,7 +6,7 @@ % Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon % % Institution: Stanford University % % Date: 2018.01.07 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg b/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg index 8180c693495..7b03288992b 100644 --- a/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg b/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg index 8e7ed696399..a9f9f95722b 100644 --- a/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg +++ b/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Jul 18th, 2014 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg b/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg index 6e78240aa3d..f7379a3bd38 100644 --- a/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg +++ b/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Jul 18th, 2014 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg b/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg index 06a11c93442..ffbccb56e15 100644 --- a/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg +++ b/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/naca0012/turb_nasa_binary.cfg b/TestCases/cont_adj_rans/naca0012/turb_nasa_binary.cfg index 2f9ce184acb..727ee79f15e 100644 --- a/TestCases/cont_adj_rans/naca0012/turb_nasa_binary.cfg +++ b/TestCases/cont_adj_rans/naca0012/turb_nasa_binary.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg b/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg index 4e6b06a79be..2dcf0d6258c 100644 --- a/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg +++ b/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg b/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg index 84a65a361fd..893278e4a25 100644 --- a/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/control_surface/inv_ONERAM6_moving.cfg b/TestCases/control_surface/inv_ONERAM6_moving.cfg index 4ee5d0c2707..369c3c9cf58 100644 --- a/TestCases/control_surface/inv_ONERAM6_moving.cfg +++ b/TestCases/control_surface/inv_ONERAM6_moving.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 09.07.2011 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/control_surface/inv_ONERAM6_setting.cfg b/TestCases/control_surface/inv_ONERAM6_setting.cfg index 8201482471e..3a2e2a2b162 100644 --- a/TestCases/control_surface/inv_ONERAM6_setting.cfg +++ b/TestCases/control_surface/inv_ONERAM6_setting.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 09.07.2011 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/coupled_cht/comp_2d/cht_2d_3cylinders.cfg b/TestCases/coupled_cht/comp_2d/cht_2d_3cylinders.cfg index b4498076228..8158af7bbbd 100644 --- a/TestCases/coupled_cht/comp_2d/cht_2d_3cylinders.cfg +++ b/TestCases/coupled_cht/comp_2d/cht_2d_3cylinders.cfg @@ -5,7 +5,7 @@ % Author: O. Burghardt % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 6, 2020 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/coupled_cht/disc_adj_incomp_2d/cht_2d_3cylinders.cfg b/TestCases/coupled_cht/disc_adj_incomp_2d/cht_2d_3cylinders.cfg index 38fbfcb2318..87f05765669 100644 --- a/TestCases/coupled_cht/disc_adj_incomp_2d/cht_2d_3cylinders.cfg +++ b/TestCases/coupled_cht/disc_adj_incomp_2d/cht_2d_3cylinders.cfg @@ -5,7 +5,7 @@ % Author: O. Burghardt, T. Economon % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: August 8, 2019 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/coupled_cht/incomp_2d/cht_2d_3cylinders.cfg b/TestCases/coupled_cht/incomp_2d/cht_2d_3cylinders.cfg index f6d575ada78..7bd7663457a 100644 --- a/TestCases/coupled_cht/incomp_2d/cht_2d_3cylinders.cfg +++ b/TestCases/coupled_cht/incomp_2d/cht_2d_3cylinders.cfg @@ -5,7 +5,7 @@ % Author: O. Burghardt, T. Economon % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: August 8, 2019 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/coupled_cht/incomp_2d_unsteady/cht_2d_3cylinders.cfg b/TestCases/coupled_cht/incomp_2d_unsteady/cht_2d_3cylinders.cfg index a8b6e4ee981..690bb65253b 100644 --- a/TestCases/coupled_cht/incomp_2d_unsteady/cht_2d_3cylinders.cfg +++ b/TestCases/coupled_cht/incomp_2d_unsteady/cht_2d_3cylinders.cfg @@ -5,7 +5,7 @@ % Author: O. Burghardt, T. Economon % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: August 8, 2019 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/ddes/flatplate/ddes_flatplate.cfg b/TestCases/ddes/flatplate/ddes_flatplate.cfg index 3de41f50175..53f8255922e 100644 --- a/TestCases/ddes/flatplate/ddes_flatplate.cfg +++ b/TestCases/ddes/flatplate/ddes_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.10 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/brick_hex/def_brick_hex.cfg b/TestCases/deformation/brick_hex/def_brick_hex.cfg index efed7edf727..14dae41c5cf 100755 --- a/TestCases/deformation/brick_hex/def_brick_hex.cfg +++ b/TestCases/deformation/brick_hex/def_brick_hex.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.31 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/brick_hex_rans/def_brick_hex_rans.cfg b/TestCases/deformation/brick_hex_rans/def_brick_hex_rans.cfg index 54cab488292..0bee9a1cd21 100755 --- a/TestCases/deformation/brick_hex_rans/def_brick_hex_rans.cfg +++ b/TestCases/deformation/brick_hex_rans/def_brick_hex_rans.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.31 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/brick_prism/def_brick_prism.cfg b/TestCases/deformation/brick_prism/def_brick_prism.cfg index 3c3aa557c0d..3eb2e5944b0 100755 --- a/TestCases/deformation/brick_prism/def_brick_prism.cfg +++ b/TestCases/deformation/brick_prism/def_brick_prism.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.31 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/brick_prism_rans/def_brick_prism_rans.cfg b/TestCases/deformation/brick_prism_rans/def_brick_prism_rans.cfg index 5ed88afab3e..7330ddefc4a 100755 --- a/TestCases/deformation/brick_prism_rans/def_brick_prism_rans.cfg +++ b/TestCases/deformation/brick_prism_rans/def_brick_prism_rans.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.31 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/brick_pyra/def_brick_pyra.cfg b/TestCases/deformation/brick_pyra/def_brick_pyra.cfg index 45f18645df2..d7ceb2773e2 100755 --- a/TestCases/deformation/brick_pyra/def_brick_pyra.cfg +++ b/TestCases/deformation/brick_pyra/def_brick_pyra.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.31 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/brick_tets/def_brick_tets.cfg b/TestCases/deformation/brick_tets/def_brick_tets.cfg index 3c880fdc770..267f2c0dcbe 100755 --- a/TestCases/deformation/brick_tets/def_brick_tets.cfg +++ b/TestCases/deformation/brick_tets/def_brick_tets.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.31 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/cylindrical_ffd/def_cylindrical.cfg b/TestCases/deformation/cylindrical_ffd/def_cylindrical.cfg index 6a9e1f5abcc..8e5a4a79d8d 100644 --- a/TestCases/deformation/cylindrical_ffd/def_cylindrical.cfg +++ b/TestCases/deformation/cylindrical_ffd/def_cylindrical.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/intersection_prevention/def_intersect.cfg b/TestCases/deformation/intersection_prevention/def_intersect.cfg index df51acdcfad..18610d759b8 100644 --- a/TestCases/deformation/intersection_prevention/def_intersect.cfg +++ b/TestCases/deformation/intersection_prevention/def_intersect.cfg @@ -15,7 +15,7 @@ % Institution: % % Technische Universiteit Eindhoven % % Date: 2021.01.08 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% diff --git a/TestCases/deformation/naca0012/def_NACA0012.cfg b/TestCases/deformation/naca0012/def_NACA0012.cfg index 400cddbd6a0..839cf5b2580 100644 --- a/TestCases/deformation/naca0012/def_NACA0012.cfg +++ b/TestCases/deformation/naca0012/def_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/naca0012/surface_file_NACA0012.cfg b/TestCases/deformation/naca0012/surface_file_NACA0012.cfg index be89720657d..9250a248337 100644 --- a/TestCases/deformation/naca0012/surface_file_NACA0012.cfg +++ b/TestCases/deformation/naca0012/surface_file_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/naca4412/def_NACA4412.cfg b/TestCases/deformation/naca4412/def_NACA4412.cfg index 7fe4c9df8ea..33c0a8458b4 100644 --- a/TestCases/deformation/naca4412/def_NACA4412.cfg +++ b/TestCases/deformation/naca4412/def_NACA4412.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.06 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/rae2822/def_RAE2822.cfg b/TestCases/deformation/rae2822/def_RAE2822.cfg index c048953dfef..3e7ca39942c 100644 --- a/TestCases/deformation/rae2822/def_RAE2822.cfg +++ b/TestCases/deformation/rae2822/def_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/spherical_ffd/def_spherical.cfg b/TestCases/deformation/spherical_ffd/def_spherical.cfg index 7ebc42f92c9..900f745b5a5 100644 --- a/TestCases/deformation/spherical_ffd/def_spherical.cfg +++ b/TestCases/deformation/spherical_ffd/def_spherical.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/spherical_ffd/def_spherical_bspline.cfg b/TestCases/deformation/spherical_ffd/def_spherical_bspline.cfg index d0c7d7bcd73..3fb60f39270 100644 --- a/TestCases/deformation/spherical_ffd/def_spherical_bspline.cfg +++ b/TestCases/deformation/spherical_ffd/def_spherical_bspline.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_euler/arina2k/Arina2KRS.cfg b/TestCases/disc_adj_euler/arina2k/Arina2KRS.cfg index ad3325e8cb5..6e3e256a319 100644 --- a/TestCases/disc_adj_euler/arina2k/Arina2KRS.cfg +++ b/TestCases/disc_adj_euler/arina2k/Arina2KRS.cfg @@ -6,7 +6,7 @@ % Author: Jairo Paes Cavalcante Filho [Based on T. Economon & M. Pini work] % % Institution: University of São Paulo % % Date: 8-JUL-2018 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_euler/cylinder3D/inv_cylinder3D.cfg b/TestCases/disc_adj_euler/cylinder3D/inv_cylinder3D.cfg index 604147bdc1c..493593371b7 100644 --- a/TestCases/disc_adj_euler/cylinder3D/inv_cylinder3D.cfg +++ b/TestCases/disc_adj_euler/cylinder3D/inv_cylinder3D.cfg @@ -5,7 +5,7 @@ % Author: ___________________________________________________________________ % % Institution: ______________________________________________________________ % % Date: __________ % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_euler/oneram6/inv_ONERAM6.cfg b/TestCases/disc_adj_euler/oneram6/inv_ONERAM6.cfg index 065b07278f2..6d525632468 100644 --- a/TestCases/disc_adj_euler/oneram6/inv_ONERAM6.cfg +++ b/TestCases/disc_adj_euler/oneram6/inv_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios, Heather Kline % % Institution: Stanford University % % Date: 01.17.2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_fea/configAD_fem.cfg b/TestCases/disc_adj_fea/configAD_fem.cfg index a10d9b4246a..188c7e451bf 100644 --- a/TestCases/disc_adj_fea/configAD_fem.cfg +++ b/TestCases/disc_adj_fea/configAD_fem.cfg @@ -4,7 +4,7 @@ % Author: R.Sanchez % % Institution: Imperial College London % % Date: 2017.11.29 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER= ELASTICITY diff --git a/TestCases/disc_adj_fsi/configFEA.cfg b/TestCases/disc_adj_fsi/configFEA.cfg index e4aaef4a103..4c93a30bb76 100644 --- a/TestCases/disc_adj_fsi/configFEA.cfg +++ b/TestCases/disc_adj_fsi/configFEA.cfg @@ -4,7 +4,7 @@ % Author: R.Sanchez % % Institution: Imperial College London % % Date: 2017.11.29 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER= ELASTICITY diff --git a/TestCases/disc_adj_fsi/configFlow.cfg b/TestCases/disc_adj_fsi/configFlow.cfg index 4d0ea2ddac7..7fd45fb741a 100644 --- a/TestCases/disc_adj_fsi/configFlow.cfg +++ b/TestCases/disc_adj_fsi/configFlow.cfg @@ -4,7 +4,7 @@ % Author: R.Sanchez % % Institution: Imperial College London % % Date: 2017.11.29 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER= NAVIER_STOKES diff --git a/TestCases/disc_adj_heat/disc_adj_heat.cfg b/TestCases/disc_adj_heat/disc_adj_heat.cfg index cb258ec6333..ee8c4ad51ad 100644 --- a/TestCases/disc_adj_heat/disc_adj_heat.cfg +++ b/TestCases/disc_adj_heat/disc_adj_heat.cfg @@ -6,7 +6,7 @@ % Author: Ole Burghardt % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: November 26th, 2018 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_heat/primal.cfg b/TestCases/disc_adj_heat/primal.cfg index 921b74cfb7f..4bd8a0a9ae9 100644 --- a/TestCases/disc_adj_heat/primal.cfg +++ b/TestCases/disc_adj_heat/primal.cfg @@ -5,7 +5,7 @@ % Author: Ole Burghardt % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: November 26th, 2018 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_incomp_euler/naca0012/incomp_NACA0012_disc.cfg b/TestCases/disc_adj_incomp_euler/naca0012/incomp_NACA0012_disc.cfg index 30d4eb6a097..6b35257ca84 100644 --- a/TestCases/disc_adj_incomp_euler/naca0012/incomp_NACA0012_disc.cfg +++ b/TestCases/disc_adj_incomp_euler/naca0012/incomp_NACA0012_disc.cfg @@ -4,7 +4,7 @@ % Case description: Subsonic incompressible inviscid flow around a NACA0012 % % Author: Thomas D. Economon % % Date: 2018.10.30 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg b/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg index 0baafe8a912..2975973f8d0 100644 --- a/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg +++ b/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg @@ -4,7 +4,7 @@ % Case description: Steady incompressible laminar flow past a heated cylinder % % Author: Thomas D. Economon % % Date: 2018.06.10 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sa.cfg b/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sa.cfg index 51e29e14823..6db1724e57d 100755 --- a/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sa.cfg +++ b/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sa.cfg @@ -5,7 +5,7 @@ % http://turbmodels.larc.nasa.gov/naca0012_val_sa.html % % Author: Thomas D. Economon & Francisco Palacios % % Date: 2018.06.10 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sst.cfg b/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sst.cfg index 332959e21df..10406f8d60f 100755 --- a/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sst.cfg +++ b/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sst.cfg @@ -5,7 +5,7 @@ % http://turbmodels.larc.nasa.gov/naca0012_val_sst.html % % Author: Thomas D. Economon & Francisco Palacios % % Date: 2018.06.10 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/cylinder/cylinder.cfg b/TestCases/disc_adj_rans/cylinder/cylinder.cfg index 88ff1448323..97cbc9df7ab 100644 --- a/TestCases/disc_adj_rans/cylinder/cylinder.cfg +++ b/TestCases/disc_adj_rans/cylinder/cylinder.cfg @@ -5,7 +5,7 @@ % Author: Tim Albring % % Institution: TU Kaiserslautern % % Date: 2016.06.14 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/cylinder/cylinder_Windowing.cfg b/TestCases/disc_adj_rans/cylinder/cylinder_Windowing.cfg index 6a06d426604..030483833a8 100644 --- a/TestCases/disc_adj_rans/cylinder/cylinder_Windowing.cfg +++ b/TestCases/disc_adj_rans/cylinder/cylinder_Windowing.cfg @@ -5,7 +5,7 @@ % Author: Tim Albring % % Institution: TU Kaiserslautern % % Date: 2016.06.14 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/cylinder/cylinder_Windowing_AD.cfg b/TestCases/disc_adj_rans/cylinder/cylinder_Windowing_AD.cfg index 498166f02b8..32bfbddcf73 100644 --- a/TestCases/disc_adj_rans/cylinder/cylinder_Windowing_AD.cfg +++ b/TestCases/disc_adj_rans/cylinder/cylinder_Windowing_AD.cfg @@ -5,7 +5,7 @@ % Author: Tim Albring % % Institution: TU Kaiserslautern % % Date: 2016.06.14 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/cylinder_DT_1ST/cylinder.cfg b/TestCases/disc_adj_rans/cylinder_DT_1ST/cylinder.cfg index da9544dad61..586aa35c293 100644 --- a/TestCases/disc_adj_rans/cylinder_DT_1ST/cylinder.cfg +++ b/TestCases/disc_adj_rans/cylinder_DT_1ST/cylinder.cfg @@ -5,7 +5,7 @@ % Author: Tim Albring % % Institution: TU Kaiserslautern % % Date: 2016.06.14 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/naca0012/naca0012.cfg b/TestCases/disc_adj_rans/naca0012/naca0012.cfg index d43947219e2..9a84427b263 100644 --- a/TestCases/disc_adj_rans/naca0012/naca0012.cfg +++ b/TestCases/disc_adj_rans/naca0012/naca0012.cfg @@ -5,7 +5,7 @@ % Author: Steffen Schotthöfer % % Institution: TU Kaiserslautern % % Date: Mar 16, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg index 0cf3a202746..c3dc5d2824c 100644 --- a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg +++ b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg @@ -6,7 +6,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg index 5135e0b27a4..977ae827ec2 100644 --- a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg +++ b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg b/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg index 5519306524d..479586fc59f 100644 --- a/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg +++ b/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: 2017.03.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/CRM/inv_CRM_JST.cfg b/TestCases/euler/CRM/inv_CRM_JST.cfg index a401ca3a4a9..a7382b30413 100644 --- a/TestCases/euler/CRM/inv_CRM_JST.cfg +++ b/TestCases/euler/CRM/inv_CRM_JST.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/biparabolic/BIPARABOLIC.cfg b/TestCases/euler/biparabolic/BIPARABOLIC.cfg index 0ae1d7a53eb..e998281388a 100644 --- a/TestCases/euler/biparabolic/BIPARABOLIC.cfg +++ b/TestCases/euler/biparabolic/BIPARABOLIC.cfg @@ -5,7 +5,7 @@ % Author: Trent W. Lukaczyk % % Institution: Stanford University % % Date: 2012.08.16 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/bluntbody/blunt.cfg b/TestCases/euler/bluntbody/blunt.cfg index a76c6be19ba..3a89720ba25 100644 --- a/TestCases/euler/bluntbody/blunt.cfg +++ b/TestCases/euler/bluntbody/blunt.cfg @@ -5,7 +5,7 @@ % Author: Amit Sachdeva % % Institution: ADSG-VSSC % % Date: 2019.01.23 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/channel/inv_channel.cfg b/TestCases/euler/channel/inv_channel.cfg index 096688e6fd9..760c621729e 100644 --- a/TestCases/euler/channel/inv_channel.cfg +++ b/TestCases/euler/channel/inv_channel.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.09.29 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/channel/inv_channel_RK.cfg b/TestCases/euler/channel/inv_channel_RK.cfg index 8e20a09f14c..4c03659c199 100644 --- a/TestCases/euler/channel/inv_channel_RK.cfg +++ b/TestCases/euler/channel/inv_channel_RK.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/naca0012/inv_NACA0012.cfg b/TestCases/euler/naca0012/inv_NACA0012.cfg index a3d676a2773..cb57e61c307 100644 --- a/TestCases/euler/naca0012/inv_NACA0012.cfg +++ b/TestCases/euler/naca0012/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg index 087bca16ebc..58c5b4721ef 100644 --- a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg +++ b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/oneram6/inv_ONERAM6.cfg b/TestCases/euler/oneram6/inv_ONERAM6.cfg index ef6e0028a09..49438295f58 100644 --- a/TestCases/euler/oneram6/inv_ONERAM6.cfg +++ b/TestCases/euler/oneram6/inv_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2015.08.25 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/ramp/inv_ramp.cfg b/TestCases/euler/ramp/inv_ramp.cfg index 7aa109d1cf4..15f650bd859 100644 --- a/TestCases/euler/ramp/inv_ramp.cfg +++ b/TestCases/euler/ramp/inv_ramp.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon, Amit Sachdeva % % Institution: Stanford University % % Date: 2023.04.08 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/wedge/inv_wedge_HLLC.cfg b/TestCases/euler/wedge/inv_wedge_HLLC.cfg index 77c20175c22..be32ff4aaac 100644 --- a/TestCases/euler/wedge/inv_wedge_HLLC.cfg +++ b/TestCases/euler/wedge/inv_wedge_HLLC.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/fea_fsi/Airfoil_RBF/config.cfg b/TestCases/fea_fsi/Airfoil_RBF/config.cfg index 6d4d173b816..cb27f047bb0 100755 --- a/TestCases/fea_fsi/Airfoil_RBF/config.cfg +++ b/TestCases/fea_fsi/Airfoil_RBF/config.cfg @@ -3,7 +3,7 @@ % Case description: 2D airfoil FSI with radial basis function interp. % % Institution: Imperial College London % % Date: 2015.08.12 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER = MULTIPHYSICS diff --git a/TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg b/TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg index 1302baddd57..25489531a3b 100644 --- a/TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg +++ b/TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg @@ -2,7 +2,7 @@ % SU2 configuration file % % Case description: 2D airfoil FSI with radial basis function interp. % % Institution: Imperial College London % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Interface options ---------------------------------------------------- % diff --git a/TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg b/TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg index 3d64047489c..a345a5ce4ef 100644 --- a/TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg +++ b/TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg @@ -2,7 +2,7 @@ % SU2 configuration file % % Case description: 2D airfoil FSI with radial basis function interp. % % Institution: Imperial College London % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Interface options ---------------------------------------------------- % diff --git a/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg b/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg index b1bfd911ada..75416f23dc4 100644 --- a/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg +++ b/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg @@ -4,7 +4,7 @@ % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % % Date: 2016.02.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER= ELASTICITY diff --git a/TestCases/fea_fsi/MixElemsKnowles/config.cfg b/TestCases/fea_fsi/MixElemsKnowles/config.cfg index 1c5f46f1301..49564858721 100644 --- a/TestCases/fea_fsi/MixElemsKnowles/config.cfg +++ b/TestCases/fea_fsi/MixElemsKnowles/config.cfg @@ -4,7 +4,7 @@ % Case description: Tip-loaded 3D cantilever beam, mix of element types, % % nonlinear elasticity with Knowles material model. % % Institution: Imperial College London % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/fea_fsi/SquareCyl_Beam/config.cfg b/TestCases/fea_fsi/SquareCyl_Beam/config.cfg index deaf7faf43f..2eb29fd02b8 100644 --- a/TestCases/fea_fsi/SquareCyl_Beam/config.cfg +++ b/TestCases/fea_fsi/SquareCyl_Beam/config.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % % Date: 2016.06.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg b/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg index bf260358617..a6c9cde3c84 100644 --- a/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg +++ b/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg @@ -4,7 +4,7 @@ % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % % Date: 2016.02.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER= ELASTICITY diff --git a/TestCases/fea_topology/config.cfg b/TestCases/fea_topology/config.cfg index 2d003609721..5e8d0b60d8a 100644 --- a/TestCases/fea_topology/config.cfg +++ b/TestCases/fea_topology/config.cfg @@ -2,7 +2,7 @@ % SU2 configuration file % % Case description: 4 by 1 cantilever optim. for stiff. @ 50% material % % Institution: Imperial College London % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Optimization diff --git a/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg index a66afe95074..ccdc4708080 100644 --- a/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg +++ b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/fixed_cl/naca0012/inv_NACA0012_ContAdj.cfg b/TestCases/fixed_cl/naca0012/inv_NACA0012_ContAdj.cfg index eb7cb3939a4..5c513786fda 100644 --- a/TestCases/fixed_cl/naca0012/inv_NACA0012_ContAdj.cfg +++ b/TestCases/fixed_cl/naca0012/inv_NACA0012_ContAdj.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg b/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg index f2b6bd919aa..d2d8497b97d 100644 --- a/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg +++ b/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg @@ -4,7 +4,7 @@ % Author: Nijso Beishuizen % % Institution: Bosch Thermotechnology % % Date: 08/09/2021 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_ad.cfg b/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_ad.cfg index 6774d3acf72..ff52e8d58b6 100644 --- a/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_ad.cfg +++ b/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_ad.cfg @@ -11,7 +11,7 @@ % Institution b: Bosch Thermotechnology % % % % Date: 02/21/2023 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_dot.cfg b/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_dot.cfg index 30fdebdebcb..70f95d11916 100644 --- a/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_dot.cfg +++ b/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_dot.cfg @@ -11,7 +11,7 @@ % Institution b: Bosch Thermotechnology % % % % Date: 02/21/2023 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/flamelet/05_laminar_premixed_ch4_flame_cfd_axi/lam_prem_ch4_cfd_axi.cfg b/TestCases/flamelet/05_laminar_premixed_ch4_flame_cfd_axi/lam_prem_ch4_cfd_axi.cfg index 7163bb3e833..f9cf7c695eb 100644 --- a/TestCases/flamelet/05_laminar_premixed_ch4_flame_cfd_axi/lam_prem_ch4_cfd_axi.cfg +++ b/TestCases/flamelet/05_laminar_premixed_ch4_flame_cfd_axi/lam_prem_ch4_cfd_axi.cfg @@ -5,7 +5,7 @@ % Author: Nijso Beishuizen % % Institution: Bosch Thermotechnology % % Date: 08/09/2021 % -% File Version 8.0.1 "Harrier", % +% File Version 8.1.0 "Harrier", % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/flamelet/06_laminar_partial_premixed_ch4_flame_cfd/lam_partial_prem_ch4_cfd.cfg b/TestCases/flamelet/06_laminar_partial_premixed_ch4_flame_cfd/lam_partial_prem_ch4_cfd.cfg index 8d1eaf5884f..fc749929e70 100644 --- a/TestCases/flamelet/06_laminar_partial_premixed_ch4_flame_cfd/lam_partial_prem_ch4_cfd.cfg +++ b/TestCases/flamelet/06_laminar_partial_premixed_ch4_flame_cfd/lam_partial_prem_ch4_cfd.cfg @@ -4,7 +4,7 @@ % Author: Nijso Beishuizen % % Institution: Bosch Thermotechnology % % Date: 16/06/2023 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/grad_smooth/naca0012/inv_NACA0012_gradsmooth.cfg b/TestCases/grad_smooth/naca0012/inv_NACA0012_gradsmooth.cfg index 641944defc7..be7d48f96fc 100644 --- a/TestCases/grad_smooth/naca0012/inv_NACA0012_gradsmooth.cfg +++ b/TestCases/grad_smooth/naca0012/inv_NACA0012_gradsmooth.cfg @@ -4,7 +4,7 @@ % Case description: Sobolev smoothing for gradient on the NACA 0012 airfoil % % Author: Thomas Dick (TU Kaiserslautern) % % Date: 11.11.2021 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/grad_smooth/oneram6/ONERAM6_gradsmooth.cfg b/TestCases/grad_smooth/oneram6/ONERAM6_gradsmooth.cfg index d416d9fa02f..b58d050a63d 100644 --- a/TestCases/grad_smooth/oneram6/ONERAM6_gradsmooth.cfg +++ b/TestCases/grad_smooth/oneram6/ONERAM6_gradsmooth.cfg @@ -4,7 +4,7 @@ % Case description: Sobolev smoothing for gradient on the ONERA M6 wing % % Author: Thomas Dick (TU Kaiserslautern) % % Date: 11.11.2021 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/gust/cosine_gust_zdir.cfg b/TestCases/gust/cosine_gust_zdir.cfg index f4af2f82a91..91b1aa061bc 100644 --- a/TestCases/gust/cosine_gust_zdir.cfg +++ b/TestCases/gust/cosine_gust_zdir.cfg @@ -5,7 +5,7 @@ % Author: Arne Voß % % Institution: DLR % % Date: 25.05.2023 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/gust/gust_with_mesh_deformation.cfg b/TestCases/gust/gust_with_mesh_deformation.cfg index adb8b86afa2..962450178bd 100644 --- a/TestCases/gust/gust_with_mesh_deformation.cfg +++ b/TestCases/gust/gust_with_mesh_deformation.cfg @@ -5,7 +5,7 @@ % Author: Arne Voß % % Institution: DLR % % Date: 25.05.2023 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/gust/inv_gust_NACA0012.cfg b/TestCases/gust/inv_gust_NACA0012.cfg index a7aacaddc3a..b9e7f89c17e 100644 --- a/TestCases/gust/inv_gust_NACA0012.cfg +++ b/TestCases/gust/inv_gust_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Santiago Padron % % Institution: Stanford University % % Date: 06-26-2015 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/harmonic_balance/HB.cfg b/TestCases/harmonic_balance/HB.cfg index 060bee2483e..780e87ddfc5 100644 --- a/TestCases/harmonic_balance/HB.cfg +++ b/TestCases/harmonic_balance/HB.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.20.09 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/harmonic_balance/hb_rans_preconditioning/davis.cfg b/TestCases/harmonic_balance/hb_rans_preconditioning/davis.cfg index e84aa95f79d..baf7a19ee14 100644 --- a/TestCases/harmonic_balance/hb_rans_preconditioning/davis.cfg +++ b/TestCases/harmonic_balance/hb_rans_preconditioning/davis.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.20.09 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/NACA0012_3D_Hybrid_4thOrder/fem_NACA0012.cfg b/TestCases/hom_euler/NACA0012_3D_Hybrid_4thOrder/fem_NACA0012.cfg index 83342f46f2e..33cdf9e5436 100644 --- a/TestCases/hom_euler/NACA0012_3D_Hybrid_4thOrder/fem_NACA0012.cfg +++ b/TestCases/hom_euler/NACA0012_3D_Hybrid_4thOrder/fem_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012.cfg b/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012.cfg index 7181f908947..93423631c1c 100644 --- a/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012.cfg +++ b/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012_reg.cfg b/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012_reg.cfg index 452b22aaade..47488d80e4b 100644 --- a/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012_reg.cfg +++ b/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012_reg.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/Sphere_4thOrder_Hexa/fem_Sphere.cfg b/TestCases/hom_euler/Sphere_4thOrder_Hexa/fem_Sphere.cfg index 30ebc23af37..1d64cbe5c69 100644 --- a/TestCases/hom_euler/Sphere_4thOrder_Hexa/fem_Sphere.cfg +++ b/TestCases/hom_euler/Sphere_4thOrder_Hexa/fem_Sphere.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/Sphere_4thOrder_Tet/fem_Sphere.cfg b/TestCases/hom_euler/Sphere_4thOrder_Tet/fem_Sphere.cfg index 419a0ee75eb..c39ab160b29 100644 --- a/TestCases/hom_euler/Sphere_4thOrder_Tet/fem_Sphere.cfg +++ b/TestCases/hom_euler/Sphere_4thOrder_Tet/fem_Sphere.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel.cfg index f2f85bc4d59..94e6c85e7f1 100644 --- a/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel.cfg +++ b/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel_Farfield.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel_Farfield.cfg index 45bc5af1dfa..7c819091fac 100644 --- a/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel_Farfield.cfg +++ b/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel_Farfield.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel.cfg index 6036babd65a..524b82866c4 100644 --- a/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel.cfg +++ b/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel_Farfield.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel_Farfield.cfg index f0f06f23f39..348926b3ca6 100644 --- a/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel_Farfield.cfg +++ b/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel_Farfield.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel.cfg index 95967d915c5..f20a3ec149b 100644 --- a/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel.cfg +++ b/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel_Farfield.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel_Farfield.cfg index 88016cb065c..9e812bf8190 100644 --- a/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel_Farfield.cfg +++ b/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel_Farfield.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_navierstokes/CylinderViscous/nPoly3/fem_Cylinder_reg.cfg b/TestCases/hom_navierstokes/CylinderViscous/nPoly3/fem_Cylinder_reg.cfg index c3573e54b67..6d78d74cec5 100644 --- a/TestCases/hom_navierstokes/CylinderViscous/nPoly3/fem_Cylinder_reg.cfg +++ b/TestCases/hom_navierstokes/CylinderViscous/nPoly3/fem_Cylinder_reg.cfg @@ -5,7 +5,7 @@ % Author: Edwin van der Weide % % Institution: University of Twente % % Date: 2016.07.15 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_navierstokes/FlatPlate/nPoly4/lam_flatplate_reg.cfg b/TestCases/hom_navierstokes/FlatPlate/nPoly4/lam_flatplate_reg.cfg index 562f1b960d3..0b79f645a90 100644 --- a/TestCases/hom_navierstokes/FlatPlate/nPoly4/lam_flatplate_reg.cfg +++ b/TestCases/hom_navierstokes/FlatPlate/nPoly4/lam_flatplate_reg.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.30 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg.cfg b/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg.cfg index f00853bac70..55986785409 100644 --- a/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg.cfg +++ b/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg.cfg @@ -5,7 +5,7 @@ % Author: Edwin van der Weide % % Institution: University of Twente % % Date: 2016.07.15 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg_ADER.cfg b/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg_ADER.cfg index fe18b0cf63a..f50ff0984c7 100644 --- a/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg_ADER.cfg +++ b/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg_ADER.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder.cfg b/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder.cfg index 9d04015124b..7d0e27fbc0a 100644 --- a/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder.cfg +++ b/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder_ADER.cfg b/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder_ADER.cfg index 1042c16c768..84483bb96e2 100644 --- a/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder_ADER.cfg +++ b/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder_ADER.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index af200ef7603..23ccc566755 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -3,7 +3,7 @@ ## \file hybrid_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/hybrid_regression_AD.py b/TestCases/hybrid_regression_AD.py index 0669ff42a30..54809a89b26 100644 --- a/TestCases/hybrid_regression_AD.py +++ b/TestCases/hybrid_regression_AD.py @@ -3,7 +3,7 @@ ## \file hybrid_regression_AD.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg index 300dd64a5b5..b31b0a3c289 100644 --- a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg +++ b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 09/18/2011 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_euler/nozzle/inv_nozzle.cfg b/TestCases/incomp_euler/nozzle/inv_nozzle.cfg index 9633d08fba5..4bbe5fc04b7 100644 --- a/TestCases/incomp_euler/nozzle/inv_nozzle.cfg +++ b/TestCases/incomp_euler/nozzle/inv_nozzle.cfg @@ -4,7 +4,7 @@ % Case description: Inv. inc. nozzle with pressure inlet and mass flow outlet % % Author: Thomas D. Economon % % Date: 2018.11.30 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg b/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg index eb2922c6c91..d8112d91697 100644 --- a/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg +++ b/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg @@ -4,7 +4,7 @@ % Case description: Buoyancy-driven flow inside a cavity % % Author: Thomas D. Economon % % Date: 2018.06.10 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg b/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg index 1c39879c839..05d70caa765 100644 --- a/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg +++ b/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2012.03.14 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg b/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg index f6615b9cb9b..976a340530d 100644 --- a/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg +++ b/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg @@ -5,7 +5,7 @@ % custom fluid using polynomial fluid models. % % Author: Thomas D. Economon % % Date: 2018.12.02 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_navierstokes/sphere/sphere.cfg b/TestCases/incomp_navierstokes/sphere/sphere.cfg index 7f5ed6dd2fc..15944628701 100644 --- a/TestCases/incomp_navierstokes/sphere/sphere.cfg +++ b/TestCases/incomp_navierstokes/sphere/sphere.cfg @@ -5,7 +5,7 @@ % Author: Nijso Beishuizen % % Institution: Technische Universiteit Eindhoven % % Date: 2024.05.05 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg index e173a1b963d..b84153ef359 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/DA_configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/DA_configMaster.cfg index 7f466aec419..2de412e71a8 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/DA_configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/DA_configMaster.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/FD_configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/FD_configMaster.cfg index 78e73b6b8ac..842f7900b11 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/FD_configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/FD_configMaster.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configFluid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configFluid.cfg index d3e26391ff7..668d66270eb 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configFluid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configFluid.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configMaster.cfg index e3eb5f8c0fd..6a5aabd0d18 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configMaster.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg index b5bb0e5fdfd..8faa1c854d5 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configFluid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configFluid.cfg index 2f46bdc72db..2e4ba6e66e4 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configFluid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configFluid.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 07.06.2019 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg index d7c2698fc10..e61f6c47305 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg index 6322362ee9e..3c9cacda54d 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 07.06.2019 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configFluid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configFluid.cfg index bfa4ef2751f..1b82f8c7250 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configFluid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configFluid.cfg @@ -4,7 +4,7 @@ % Case description: Unit Cell flow around pin array (fluid) % % Author: T. Kattmann % % Date: 2022.02.10 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configMaster.cfg index d919bd1f527..7dcc07c0249 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configMaster.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: None % % Date: 2022.02.10 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configSolid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configSolid.cfg index bb25006785f..6f78e160a6c 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configSolid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configSolid.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: None % % Date: 2022.02.10 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg index 66852d2f4f8..d0d61377ed6 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.14 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_rans/naca0012/naca0012.cfg b/TestCases/incomp_rans/naca0012/naca0012.cfg index 8788151b612..20523cd298c 100644 --- a/TestCases/incomp_rans/naca0012/naca0012.cfg +++ b/TestCases/incomp_rans/naca0012/naca0012.cfg @@ -6,7 +6,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_rans/naca0012/naca0012_SST_SUST.cfg b/TestCases/incomp_rans/naca0012/naca0012_SST_SUST.cfg index e60d19dab49..07dd9dc1767 100644 --- a/TestCases/incomp_rans/naca0012/naca0012_SST_SUST.cfg +++ b/TestCases/incomp_rans/naca0012/naca0012_SST_SUST.cfg @@ -6,7 +6,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_rans/rough_flatplate/rough_flatplate_incomp.cfg b/TestCases/incomp_rans/rough_flatplate/rough_flatplate_incomp.cfg index a975c37c833..049d583819f 100644 --- a/TestCases/incomp_rans/rough_flatplate/rough_flatplate_incomp.cfg +++ b/TestCases/incomp_rans/rough_flatplate/rough_flatplate_incomp.cfg @@ -5,7 +5,7 @@ % pressure gradient % % Author: Akshay Koodly % % Date: 2020.07.07 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/mms/dg_ringleb/ringleb_dg.cfg b/TestCases/mms/dg_ringleb/ringleb_dg.cfg index 3225908ec46..4d279e69cf0 100644 --- a/TestCases/mms/dg_ringleb/ringleb_dg.cfg +++ b/TestCases/mms/dg_ringleb/ringleb_dg.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/mms/fvm_incomp_euler/inv_mms_jst.cfg b/TestCases/mms/fvm_incomp_euler/inv_mms_jst.cfg index db51abc1a30..40c0fe9385f 100755 --- a/TestCases/mms/fvm_incomp_euler/inv_mms_jst.cfg +++ b/TestCases/mms/fvm_incomp_euler/inv_mms_jst.cfg @@ -4,7 +4,7 @@ % Case description: Incompressible inviscid MMS test case % % Author: Thomas D. Economon % % Date: 2019.04.09 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg b/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg index 76a136f7b46..37fe5125df5 100755 --- a/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg +++ b/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg @@ -4,7 +4,7 @@ % Case description: Incompressible laminar MMS test case % % Author: Thomas D. Economon % % Date: 2019.04.09 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/mms/fvm_navierstokes/lam_mms_roe.cfg b/TestCases/mms/fvm_navierstokes/lam_mms_roe.cfg index 48190ff4095..30e8820f290 100755 --- a/TestCases/mms/fvm_navierstokes/lam_mms_roe.cfg +++ b/TestCases/mms/fvm_navierstokes/lam_mms_roe.cfg @@ -4,7 +4,7 @@ % Case description: Compressible laminar MMS test case % % Author: Thomas D. Economon % % Date: 2019.04.09 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/moving_wall/cavity/lam_cavity.cfg b/TestCases/moving_wall/cavity/lam_cavity.cfg index 6d722cfc501..310e6eef9e2 100644 --- a/TestCases/moving_wall/cavity/lam_cavity.cfg +++ b/TestCases/moving_wall/cavity/lam_cavity.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.10.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg b/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg index a91b8a7b3f6..f9c21e43cca 100644 --- a/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg +++ b/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.08.21 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/multiple_ffd/naca0012/inv_NACA0012_ffd.cfg b/TestCases/multiple_ffd/naca0012/inv_NACA0012_ffd.cfg index 2eb8dc4b2bf..588629caaad 100644 --- a/TestCases/multiple_ffd/naca0012/inv_NACA0012_ffd.cfg +++ b/TestCases/multiple_ffd/naca0012/inv_NACA0012_ffd.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios, Charanya Venkatesan-Crome % % Institution: Stanford University % % Date: 2018.07.23 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg b/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg index 1d09e8997c3..c7019c50790 100644 --- a/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg +++ b/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.30 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/cylinder/lam_cylinder.cfg b/TestCases/navierstokes/cylinder/lam_cylinder.cfg index eb03eb6c121..ae65dabb594 100644 --- a/TestCases/navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/navierstokes/cylinder/lam_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.30 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/flatplate/lam_flatplate.cfg b/TestCases/navierstokes/flatplate/lam_flatplate.cfg index 75541961acc..db98f0bfc1c 100644 --- a/TestCases/navierstokes/flatplate/lam_flatplate.cfg +++ b/TestCases/navierstokes/flatplate/lam_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.30 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/flatplate/lam_flatplate_unst.cfg b/TestCases/navierstokes/flatplate/lam_flatplate_unst.cfg index 649a2deae51..c62ce2570c6 100644 --- a/TestCases/navierstokes/flatplate/lam_flatplate_unst.cfg +++ b/TestCases/navierstokes/flatplate/lam_flatplate_unst.cfg @@ -2,7 +2,7 @@ % % % SU2 configuration file % % Case description: Test interp. restart, and auto time-step for dual-time % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/navierstokes/naca0012/lam_NACA0012.cfg b/TestCases/navierstokes/naca0012/lam_NACA0012.cfg index 7ee9335ef73..040b8caadcf 100644 --- a/TestCases/navierstokes/naca0012/lam_NACA0012.cfg +++ b/TestCases/navierstokes/naca0012/lam_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Sep 28, 2012 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg b/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg index 35b04ae0790..17ec04513b1 100644 --- a/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg +++ b/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2017.02.27 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg b/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg index d359fb8e155..156e159dc55 100644 --- a/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg +++ b/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Robert Bosch LLC % % Date: 2018.03.19 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/LS89/turb_SA_PR.cfg b/TestCases/nicf/LS89/turb_SA_PR.cfg index 8a2598faea0..2ed0bc26690 100644 --- a/TestCases/nicf/LS89/turb_SA_PR.cfg +++ b/TestCases/nicf/LS89/turb_SA_PR.cfg @@ -5,7 +5,7 @@ % Author: M. Pini, S. Vitale % % Institution: Delft University of Technology % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/LS89/turb_SST_PR.cfg b/TestCases/nicf/LS89/turb_SST_PR.cfg index 48387c1dad2..0199b3edb93 100644 --- a/TestCases/nicf/LS89/turb_SST_PR.cfg +++ b/TestCases/nicf/LS89/turb_SST_PR.cfg @@ -5,7 +5,7 @@ % Author: M. Pini, S. Vitale % % Institution: Delft University of Technology % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/coolprop/fluidModel.cfg b/TestCases/nicf/coolprop/fluidModel.cfg index 9c4b06cfbc9..c26f13949f3 100644 --- a/TestCases/nicf/coolprop/fluidModel.cfg +++ b/TestCases/nicf/coolprop/fluidModel.cfg @@ -6,7 +6,7 @@ % Author: Peng Yan, Alberto Guardone % % Institution: Politecnico di Milano % % Date: 2022.10.8 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/coolprop/transportModel.cfg b/TestCases/nicf/coolprop/transportModel.cfg index 5427fbc28d3..2326aa36ebd 100644 --- a/TestCases/nicf/coolprop/transportModel.cfg +++ b/TestCases/nicf/coolprop/transportModel.cfg @@ -6,7 +6,7 @@ % Author: Peng Yan, Alberto Guardone % % Institution: Politecnico di Milano % % Date: 2022.11.26 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/datadriven/datadriven_nozzle.cfg b/TestCases/nicf/datadriven/datadriven_nozzle.cfg index f47f151a18f..0e5326609f4 100644 --- a/TestCases/nicf/datadriven/datadriven_nozzle.cfg +++ b/TestCases/nicf/datadriven/datadriven_nozzle.cfg @@ -7,7 +7,7 @@ % Author: Evert Bunschoten % % Institution: Delft University of Technology % % Date: 2022.10.8 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/edge/edge_PPR.cfg b/TestCases/nicf/edge/edge_PPR.cfg index 34fdba91303..95a86eab7ea 100644 --- a/TestCases/nicf/edge/edge_PPR.cfg +++ b/TestCases/nicf/edge/edge_PPR.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.09.29 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/edge/edge_VW.cfg b/TestCases/nicf/edge/edge_VW.cfg index add439803e6..215e758df47 100644 --- a/TestCases/nicf/edge/edge_VW.cfg +++ b/TestCases/nicf/edge/edge_VW.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.09.29 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/invwedge/invwedge_ausm.cfg b/TestCases/nonequilibrium/invwedge/invwedge_ausm.cfg index 900a4e427ef..287cea51497 100644 --- a/TestCases/nonequilibrium/invwedge/invwedge_ausm.cfg +++ b/TestCases/nonequilibrium/invwedge/invwedge_ausm.cfg @@ -5,7 +5,7 @@ % Author: C. Garbacz % % Institution: Strathclyde University % % Date: 2020.11.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/invwedge/invwedge_ausmplusup2.cfg b/TestCases/nonequilibrium/invwedge/invwedge_ausmplusup2.cfg index 4828e12e966..ce928e65497 100644 --- a/TestCases/nonequilibrium/invwedge/invwedge_ausmplusup2.cfg +++ b/TestCases/nonequilibrium/invwedge/invwedge_ausmplusup2.cfg @@ -2,7 +2,7 @@ % % % SU2 configuration file % % Case description: Mach 5 inviscid flow over a 10deg wedge- AUSM+-Up2 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/invwedge/invwedge_lax.cfg b/TestCases/nonequilibrium/invwedge/invwedge_lax.cfg index 461c993dd3b..d0e2505af4b 100644 --- a/TestCases/nonequilibrium/invwedge/invwedge_lax.cfg +++ b/TestCases/nonequilibrium/invwedge/invwedge_lax.cfg @@ -2,7 +2,7 @@ % % % SU2 configuration file % % Case description: Mach 5 inviscid flow over a 10deg wedge-LAX % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/invwedge/invwedge_msw.cfg b/TestCases/nonequilibrium/invwedge/invwedge_msw.cfg index 3fdc413ef21..edbbde31ad7 100644 --- a/TestCases/nonequilibrium/invwedge/invwedge_msw.cfg +++ b/TestCases/nonequilibrium/invwedge/invwedge_msw.cfg @@ -2,7 +2,7 @@ % % % SU2 configuration file % % Case description: Mach 5 inviscid flow over a 10deg wedge-MSW % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/invwedge/invwedge_roe.cfg b/TestCases/nonequilibrium/invwedge/invwedge_roe.cfg index 8c8d27b89de..54ada41ed53 100644 --- a/TestCases/nonequilibrium/invwedge/invwedge_roe.cfg +++ b/TestCases/nonequilibrium/invwedge/invwedge_roe.cfg @@ -2,7 +2,7 @@ % % % SU2 configuration file % % Case description: Mach 5 inviscid flow over a 10deg wedge-ROE % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/invwedge/invwedge_ss_inlet.cfg b/TestCases/nonequilibrium/invwedge/invwedge_ss_inlet.cfg index adf656aa95f..37da8afc394 100644 --- a/TestCases/nonequilibrium/invwedge/invwedge_ss_inlet.cfg +++ b/TestCases/nonequilibrium/invwedge/invwedge_ss_inlet.cfg @@ -5,7 +5,7 @@ % Author: J. Needels % % Institution: Stanford University % % Date: 2022.1.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/thermalbath/finitechemistry/thermalbath.cfg b/TestCases/nonequilibrium/thermalbath/finitechemistry/thermalbath.cfg index 727f2225b25..4e21dc4b740 100644 --- a/TestCases/nonequilibrium/thermalbath/finitechemistry/thermalbath.cfg +++ b/TestCases/nonequilibrium/thermalbath/finitechemistry/thermalbath.cfg @@ -7,7 +7,7 @@ % Author: C. Garbacz % % Institution: Strathclyde University % % Date: 2019.04.10 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/thermalbath/frozen/thermalbath_frozen.cfg b/TestCases/nonequilibrium/thermalbath/frozen/thermalbath_frozen.cfg index 123c3187c6a..2b3364adbcf 100644 --- a/TestCases/nonequilibrium/thermalbath/frozen/thermalbath_frozen.cfg +++ b/TestCases/nonequilibrium/thermalbath/frozen/thermalbath_frozen.cfg @@ -6,7 +6,7 @@ % Author: C. Garbacz % % Institution: Strathclyde University % % Date: 2019.04.10 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/visc_wedge/axi_visccone.cfg b/TestCases/nonequilibrium/visc_wedge/axi_visccone.cfg index 62205204dc1..63ddf04461b 100644 --- a/TestCases/nonequilibrium/visc_wedge/axi_visccone.cfg +++ b/TestCases/nonequilibrium/visc_wedge/axi_visccone.cfg @@ -4,7 +4,7 @@ % Case description: Mach 5 viscous flow over a 10deg axisymmetric cone % % Author: C. Garbacz % % Institution: Strathclyde University % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/visc_wedge/partial_cat.cfg b/TestCases/nonequilibrium/visc_wedge/partial_cat.cfg index c5018a8496d..1bea1feddd2 100644 --- a/TestCases/nonequilibrium/visc_wedge/partial_cat.cfg +++ b/TestCases/nonequilibrium/visc_wedge/partial_cat.cfg @@ -5,7 +5,7 @@ % catalytic walls - gamma model, effeciency = 0.2 % % Author: J. Needels % % Institution: Stanford University % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/visc_wedge/super_cat.cfg b/TestCases/nonequilibrium/visc_wedge/super_cat.cfg index b3ab5ff54c3..0e3b8aa0c5c 100644 --- a/TestCases/nonequilibrium/visc_wedge/super_cat.cfg +++ b/TestCases/nonequilibrium/visc_wedge/super_cat.cfg @@ -5,7 +5,7 @@ % catalytic walls - gamma model, effeciency = 0.2 % % Author: J. Needels % % Institution: Stanford University % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/viscwedge_mpp/viscwedge_mpp.cfg b/TestCases/nonequilibrium/viscwedge_mpp/viscwedge_mpp.cfg index e53cea48620..eeffdfd15d5 100644 --- a/TestCases/nonequilibrium/viscwedge_mpp/viscwedge_mpp.cfg +++ b/TestCases/nonequilibrium/viscwedge_mpp/viscwedge_mpp.cfg @@ -5,7 +5,7 @@ % Author: C. Garbacz % % Institution: Strathclyde University % % Date: 2020.11.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/equivalentarea_naca64206/NACA64206.cfg b/TestCases/optimization_euler/equivalentarea_naca64206/NACA64206.cfg index f211202d8d9..cc9639fdbad 100644 --- a/TestCases/optimization_euler/equivalentarea_naca64206/NACA64206.cfg +++ b/TestCases/optimization_euler/equivalentarea_naca64206/NACA64206.cfg @@ -5,7 +5,7 @@ % Author: Yuki Utsumi % % Institution: Individual % % Date: 2021.08.07 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_2surf_1obj.cfg b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_2surf_1obj.cfg index 1ce5b6a5af2..7559c91646f 100644 --- a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_2surf_1obj.cfg +++ b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_2surf_1obj.cfg @@ -7,7 +7,7 @@ % Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon % % Institution: Stanford University % % Date: 2018.01.07 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj.cfg b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj.cfg index 28aaec3c659..f2f0982d0e0 100644 --- a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj.cfg +++ b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj.cfg @@ -8,7 +8,7 @@ % Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon % % Institution: Stanford University % % Date: 2018.01.07 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_1surf.cfg b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_1surf.cfg index f194a08ca24..003b135449e 100644 --- a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_1surf.cfg +++ b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_1surf.cfg @@ -8,7 +8,7 @@ % Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon % % Institution: Stanford University % % Date: 2018.01.07 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_combo.cfg b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_combo.cfg index a6a0e3f40da..ce705552bb2 100644 --- a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_combo.cfg +++ b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_combo.cfg @@ -10,7 +10,7 @@ % Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon % % Institution: Stanford University % % Date: 2018.01.07 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/multipoint_naca0012/inv_NACA0012_multipoint.cfg b/TestCases/optimization_euler/multipoint_naca0012/inv_NACA0012_multipoint.cfg index c1873813daa..70602c2d5ec 100644 --- a/TestCases/optimization_euler/multipoint_naca0012/inv_NACA0012_multipoint.cfg +++ b/TestCases/optimization_euler/multipoint_naca0012/inv_NACA0012_multipoint.cfg @@ -5,7 +5,7 @@ % Author: Indiana Stokes % % Institution: % % Date: 2017.07.03 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg b/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg index 6ba06a2fd1a..4e4f1c83587 100644 --- a/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg +++ b/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg b/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg index 96c2c7cfbe9..60bb8825cf2 100644 --- a/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg +++ b/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 09.07.2011 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg b/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg index 8f94866a5a1..72d30abf09f 100644 --- a/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg +++ b/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.06 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg b/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg index c54371af89e..afd6e525c7e 100644 --- a/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg +++ b/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg index bac4af6834b..feedaae8e70 100644 --- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg +++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2013.09.29 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg index b805a007637..fe5917fa1ce 100644 --- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg +++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2013.09.29 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg index a1b454dc4dd..617939543b0 100644 --- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg +++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios, Heather Kline % % Institution: Stanford University % % Date: 01.17.2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg index 1dfb759f260..9b54558d2df 100644 --- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg +++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios, Heather Kline % % Institution: Stanford University % % Date: 01.17.2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/naca0012/naca0012.cfg b/TestCases/optimization_rans/naca0012/naca0012.cfg index c01f1f3168c..763109d820a 100644 --- a/TestCases/optimization_rans/naca0012/naca0012.cfg +++ b/TestCases/optimization_rans/naca0012/naca0012.cfg @@ -5,7 +5,7 @@ % Author: Steffen Schotthöfer % % Institution: TU Kaiserslautern % % Date: Mar 16, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg b/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg index 1c748ac4691..4752ab6ed69 100644 --- a/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg +++ b/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg b/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg index 66a9151da78..08a1cb60419 100644 --- a/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg +++ b/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg b/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg index bfccebceefa..e03877b28b6 100644 --- a/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg +++ b/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg b/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg index 20c45bd7f4d..65242d649ae 100644 --- a/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 4047b6b39ba..d6aee618cb9 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -3,7 +3,7 @@ ## \file parallel_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py index a4aa0f57252..af50a43b1da 100644 --- a/TestCases/parallel_regression_AD.py +++ b/TestCases/parallel_regression_AD.py @@ -3,7 +3,7 @@ ## \file parallel_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/pastix_support/config.cfg b/TestCases/pastix_support/config.cfg index 7cb6cb32b34..e0b27aef6ac 100644 --- a/TestCases/pastix_support/config.cfg +++ b/TestCases/pastix_support/config.cfg @@ -2,7 +2,7 @@ % SU2 configuration file % % PaStiX options (http://pastix.gforge.inria.fr/files/README-txt.html) % % Institution: Imperial College London % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Intro: diff --git a/TestCases/pastix_support/readme.txt b/TestCases/pastix_support/readme.txt index 14227a32485..27b7e6907ce 100644 --- a/TestCases/pastix_support/readme.txt +++ b/TestCases/pastix_support/readme.txt @@ -2,7 +2,7 @@ % SU2 configuration file % % PaStiX support build instructions. % % Institution: Imperial College London % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % 1 - Download diff --git a/TestCases/polar/naca0012/inv_NACA0012.cfg b/TestCases/polar/naca0012/inv_NACA0012.cfg index 79089ee63fe..0edfa5b3bab 100644 --- a/TestCases/polar/naca0012/inv_NACA0012.cfg +++ b/TestCases/polar/naca0012/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/py_wrapper/custom_heat_flux/run_ad.py b/TestCases/py_wrapper/custom_heat_flux/run_ad.py index 69952306675..81018a97412 100644 --- a/TestCases/py_wrapper/custom_heat_flux/run_ad.py +++ b/TestCases/py_wrapper/custom_heat_flux/run_ad.py @@ -2,7 +2,7 @@ ## \file run.py # \brief Unsteady adjoint heat transfer case with custom heat flux. -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/py_wrapper/custom_inlet/run.py b/TestCases/py_wrapper/custom_inlet/run.py index cc804c4ec89..3f161dee594 100644 --- a/TestCases/py_wrapper/custom_inlet/run.py +++ b/TestCases/py_wrapper/custom_inlet/run.py @@ -2,7 +2,7 @@ ## \file run.py # \brief Unsteady inlet boundary conditions. -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/py_wrapper/custom_load_fea/config.cfg b/TestCases/py_wrapper/custom_load_fea/config.cfg index 60aafbe8eaa..fb364696104 100644 --- a/TestCases/py_wrapper/custom_load_fea/config.cfg +++ b/TestCases/py_wrapper/custom_load_fea/config.cfg @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % SU2 configuration file % % Case description: 2D Beam with custom load via Python wrapper % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER= ELASTICITY diff --git a/TestCases/py_wrapper/custom_load_fea/run.py b/TestCases/py_wrapper/custom_load_fea/run.py index 8b6ba89ccfb..ee9fd36e8a9 100755 --- a/TestCases/py_wrapper/custom_load_fea/run.py +++ b/TestCases/py_wrapper/custom_load_fea/run.py @@ -2,7 +2,7 @@ ## \file run.py # \brief FEA case with custom load. -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/py_wrapper/custom_load_fea/run_ad.py b/TestCases/py_wrapper/custom_load_fea/run_ad.py index 24e4cf051c7..dfb9fab4fab 100644 --- a/TestCases/py_wrapper/custom_load_fea/run_ad.py +++ b/TestCases/py_wrapper/custom_load_fea/run_ad.py @@ -2,7 +2,7 @@ ## \file run.py # \brief Unsteady adjoint FEA case with custom load. -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/py_wrapper/deforming_bump_in_channel/run.py b/TestCases/py_wrapper/deforming_bump_in_channel/run.py index 3d78b0071f2..1533ba0b587 100755 --- a/TestCases/py_wrapper/deforming_bump_in_channel/run.py +++ b/TestCases/py_wrapper/deforming_bump_in_channel/run.py @@ -2,7 +2,7 @@ ## \file run.py # \brief Deforming bump in channel. -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/py_wrapper/disc_adj_fea/flow_load_sens/run_adjoint.py b/TestCases/py_wrapper/disc_adj_fea/flow_load_sens/run_adjoint.py index ea8bd1d76ba..5865cb141fe 100755 --- a/TestCases/py_wrapper/disc_adj_fea/flow_load_sens/run_adjoint.py +++ b/TestCases/py_wrapper/disc_adj_fea/flow_load_sens/run_adjoint.py @@ -3,7 +3,7 @@ ## \file run_adjoint.py # \brief Python script to launch SU2_CFD_AD and compute the sensitivity of the FEA problem respect to flow loads. # \author Ruben Sanchez -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/py_wrapper/disc_adj_flow/mesh_disp_sens/run_adjoint.py b/TestCases/py_wrapper/disc_adj_flow/mesh_disp_sens/run_adjoint.py index 971a736966f..8dfa12dd0ed 100755 --- a/TestCases/py_wrapper/disc_adj_flow/mesh_disp_sens/run_adjoint.py +++ b/TestCases/py_wrapper/disc_adj_flow/mesh_disp_sens/run_adjoint.py @@ -3,7 +3,7 @@ ## \file run_adjoint.py # \brief Python script to launch SU2_CFD_AD # \author Ruben Sanchez -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/py_wrapper/dyn_fsi/run.py b/TestCases/py_wrapper/dyn_fsi/run.py index f5c59c79e61..912ec7305ee 100644 --- a/TestCases/py_wrapper/dyn_fsi/run.py +++ b/TestCases/py_wrapper/dyn_fsi/run.py @@ -2,7 +2,7 @@ ## \file run.py # \brief Unsteady FSI case with custom load. -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/py_wrapper/flatPlate_rigidMotion/flatPlate_rigidMotion_Conf.cfg b/TestCases/py_wrapper/flatPlate_rigidMotion/flatPlate_rigidMotion_Conf.cfg index ab4c281e7db..41ea8b1fed7 100644 --- a/TestCases/py_wrapper/flatPlate_rigidMotion/flatPlate_rigidMotion_Conf.cfg +++ b/TestCases/py_wrapper/flatPlate_rigidMotion/flatPlate_rigidMotion_Conf.cfg @@ -5,7 +5,7 @@ % Author: ___________________________________________________________________ % % Institution: ______________________________________________________________ % % Date: __________ % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py b/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py index 8b66256bd1a..0a892170466 100755 --- a/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py +++ b/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py @@ -3,7 +3,7 @@ ## \file flatPlate_rigidMotion.py # \brief Python script to launch SU2_CFD with customized unsteady boundary conditions using the Python wrapper. # \author David Thomas -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py b/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py index 4fb99cb7899..0252ae0d284 100755 --- a/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py +++ b/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py @@ -3,7 +3,7 @@ ## \file launch_unsteady_CHT_FlatPlate.py # \brief Python script to launch SU2_CFD with customized unsteady boundary conditions using the Python wrapper. # \author David Thomas -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/py_wrapper/flatPlate_unsteady_CHT/unsteady_CHT_FlatPlate_Conf.cfg b/TestCases/py_wrapper/flatPlate_unsteady_CHT/unsteady_CHT_FlatPlate_Conf.cfg index dbe698edfb8..e4b16142237 100644 --- a/TestCases/py_wrapper/flatPlate_unsteady_CHT/unsteady_CHT_FlatPlate_Conf.cfg +++ b/TestCases/py_wrapper/flatPlate_unsteady_CHT/unsteady_CHT_FlatPlate_Conf.cfg @@ -5,7 +5,7 @@ % Author: David THOMAS % % Institution: University of Liège % % Date: 12/12/2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/py_wrapper/wavy_wall/run_steady.py b/TestCases/py_wrapper/wavy_wall/run_steady.py index f63b7ede2ed..511aa585827 100644 --- a/TestCases/py_wrapper/wavy_wall/run_steady.py +++ b/TestCases/py_wrapper/wavy_wall/run_steady.py @@ -2,7 +2,7 @@ ## \file run.py # \brief Channel with wave-like motion on walls (steady state version). -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/radiation/p1adjoint/configp1adjoint.cfg b/TestCases/radiation/p1adjoint/configp1adjoint.cfg index d93b5bbfd90..93740e5ea95 100644 --- a/TestCases/radiation/p1adjoint/configp1adjoint.cfg +++ b/TestCases/radiation/p1adjoint/configp1adjoint.cfg @@ -4,7 +4,7 @@ % Case description: Coupled CFD-RHT adjoint problem % % Author: Ruben Sanchez (TU Kaiserslautern) % % Date: 2020-02-13 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/radiation/p1model/configp1.cfg b/TestCases/radiation/p1model/configp1.cfg index 85d00cda1eb..adab47b0a94 100644 --- a/TestCases/radiation/p1model/configp1.cfg +++ b/TestCases/radiation/p1model/configp1.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: 2019-01-29 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/actuatordisk_bem/actuatordisk_bem.cfg b/TestCases/rans/actuatordisk_bem/actuatordisk_bem.cfg index e3ef635bfe7..7ba0bedc5e1 100644 --- a/TestCases/rans/actuatordisk_bem/actuatordisk_bem.cfg +++ b/TestCases/rans/actuatordisk_bem/actuatordisk_bem.cfg @@ -8,7 +8,7 @@ % Academy of Scientific and Innovative Research, Ghaziabad % % Comments : % % Date: 23/09/2023 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg b/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg index d14c54cf397..b2b97b46c90 100644 --- a/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg +++ b/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg @@ -8,7 +8,7 @@ % Comments: Grid file and propeller data courtesy of Mauro Minervino, % % Centro Italiano Ricerche Aerospaziali (CIRA) % % Date: 07/08/2020 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/flatplate/turb_SA_flatplate.cfg b/TestCases/rans/flatplate/turb_SA_flatplate.cfg index d8a345ddcb6..b5a6509f5e6 100644 --- a/TestCases/rans/flatplate/turb_SA_flatplate.cfg +++ b/TestCases/rans/flatplate/turb_SA_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.10 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/flatplate/turb_SA_flatplate_species.cfg b/TestCases/rans/flatplate/turb_SA_flatplate_species.cfg index 38f13db5d6d..8a752f1f129 100644 --- a/TestCases/rans/flatplate/turb_SA_flatplate_species.cfg +++ b/TestCases/rans/flatplate/turb_SA_flatplate_species.cfg @@ -6,7 +6,7 @@ % Author: T. Kattmann % % Institution: Bosch Thermotechmniek B.V. % % Date: 2021.11.30 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/flatplate/turb_SST_flatplate.cfg b/TestCases/rans/flatplate/turb_SST_flatplate.cfg index fa2ca256375..580c0c45637 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.10 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg index 9630355c8d5..3f077b0d8c6 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Sarkar.cfg @@ -5,7 +5,7 @@ % Author: Sunoh. Kang % % Institution: Pusan National University % % Date: 2024.04.30 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg index bec9c121e3a..a8181da4d9d 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate_compressibility_Wilcox.cfg @@ -5,7 +5,7 @@ % Author: Sunoh. Kang % % Institution: Pusan National University % % Date: 2024.04.30 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sa.cfg b/TestCases/rans/naca0012/turb_NACA0012_sa.cfg index d8a95f53438..59b285d9c80 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sa.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sa.cfg @@ -6,7 +6,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst.cfg index ad49ff5411c..5412bb98b9d 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_1994-KLm.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_1994-KLm.cfg index c24b090c9de..e0eb272cafc 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_1994-KLm.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_1994-KLm.cfg @@ -3,7 +3,7 @@ % SU2 configuration file % % Case description: 2D NACA 0012 Airfoil Validation Case (compressible) % % SST-1994-KLm implementation % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_2003-Vm.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_2003-Vm.cfg index 918838d0d21..69133c5ed92 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_2003-Vm.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_2003-Vm.cfg @@ -3,7 +3,7 @@ % SU2 configuration file % % Case description: 2D NACA 0012 Airfoil Validation Case (compressible) % % SST-2003-Vm implementation % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_2003m.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_2003m.cfg index b8b44a9696d..144c602c6bc 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_2003m.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_2003m.cfg @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % SU2 configuration file, NACA0012 RANS SST-2003m % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_expliciteuler.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_expliciteuler.cfg index 94f781a0829..e7997ee4e24 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_expliciteuler.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_expliciteuler.cfg @@ -5,7 +5,7 @@ % Author: Max Aehle % % Institution: TU Kaiserslautern % % Date: Nov 17th, 2021 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_fixedvalues.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_fixedvalues.cfg index 2202ad7fc79..da1935ed267 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_fixedvalues.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_fixedvalues.cfg @@ -5,7 +5,7 @@ % Author: Max Aehle % % Institution: TU Kaiserslautern % % Date: Mar 17th, 2021 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_multigrid_restart.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_multigrid_restart.cfg index e4bc57be440..17febfd1bb0 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_multigrid_restart.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_multigrid_restart.cfg @@ -6,7 +6,7 @@ % Author: David E. Manosalvas % % Institution: Stanford University % % Date: 02.14.2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_sust.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_sust.cfg index 7ac380855ff..798a7383430 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_sust.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_sust.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/oneram6/turb_ONERAM6.cfg b/TestCases/rans/oneram6/turb_ONERAM6.cfg index e5e2c6dcd43..a43f3974459 100644 --- a/TestCases/rans/oneram6/turb_ONERAM6.cfg +++ b/TestCases/rans/oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.14 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/oneram6/turb_ONERAM6_nk.cfg b/TestCases/rans/oneram6/turb_ONERAM6_nk.cfg index b1d6c0acf29..c78c5970c71 100644 --- a/TestCases/rans/oneram6/turb_ONERAM6_nk.cfg +++ b/TestCases/rans/oneram6/turb_ONERAM6_nk.cfg @@ -2,7 +2,7 @@ % % % SU2 configuration file % % Case description: Turbulent flow, ONERA M6, Newton-Krylov solver % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/oneram6/turb_ONERAM6_vc.cfg b/TestCases/rans/oneram6/turb_ONERAM6_vc.cfg index d1d5cccf2c9..64d4ac7f14b 100644 --- a/TestCases/rans/oneram6/turb_ONERAM6_vc.cfg +++ b/TestCases/rans/oneram6/turb_ONERAM6_vc.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.14 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/propeller/propeller.cfg b/TestCases/rans/propeller/propeller.cfg index 66945ebf228..1645a1f08b4 100644 --- a/TestCases/rans/propeller/propeller.cfg +++ b/TestCases/rans/propeller/propeller.cfg @@ -5,7 +5,7 @@ % Author: % % Institution: % % Date: % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/rae2822/turb_SA_RAE2822.cfg b/TestCases/rans/rae2822/turb_SA_RAE2822.cfg index f8c549b89e9..24d2dfc8522 100644 --- a/TestCases/rans/rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/rans/rae2822/turb_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/rae2822/turb_SST_RAE2822.cfg b/TestCases/rans/rae2822/turb_SST_RAE2822.cfg index 3c042ebdf34..5c75477a75e 100644 --- a/TestCases/rans/rae2822/turb_SST_RAE2822.cfg +++ b/TestCases/rans/rae2822/turb_SST_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/rae2822/turb_SST_SUST_RAE2822.cfg b/TestCases/rans/rae2822/turb_SST_SUST_RAE2822.cfg index a57fbb7c55a..a8a666f6739 100644 --- a/TestCases/rans/rae2822/turb_SST_SUST_RAE2822.cfg +++ b/TestCases/rans/rae2822/turb_SST_SUST_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/restart_directdiff_naca/naca0012.cfg b/TestCases/rans/restart_directdiff_naca/naca0012.cfg index 5854371405d..9f6a9ec859e 100644 --- a/TestCases/rans/restart_directdiff_naca/naca0012.cfg +++ b/TestCases/rans/restart_directdiff_naca/naca0012.cfg @@ -5,7 +5,7 @@ % Author: Steffen Schotthöfer % % Institution: TU Kaiserslautern % % Date: Mar 16, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/s809/trans_s809.cfg b/TestCases/rans/s809/trans_s809.cfg index 7562b263402..5088cc7911c 100644 --- a/TestCases/rans/s809/trans_s809.cfg +++ b/TestCases/rans/s809/trans_s809.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/s809/turb_S809.cfg b/TestCases/rans/s809/turb_S809.cfg index cbb66fe170f..ed4d9bac92f 100644 --- a/TestCases/rans/s809/turb_S809.cfg +++ b/TestCases/rans/s809/turb_S809.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/vki_turbine/turb_vki.cfg b/TestCases/rans/vki_turbine/turb_vki.cfg index cbeeb7ae88e..f7ee0c45039 100644 --- a/TestCases/rans/vki_turbine/turb_vki.cfg +++ b/TestCases/rans/vki_turbine/turb_vki.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios, Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq.cfg index 0d175e25eab..12a6808e8f7 100644 --- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq.cfg +++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_1c.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_1c.cfg index ee9e6f19684..56db142c65f 100644 --- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_1c.cfg +++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_1c.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_2c.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_2c.cfg index 0001e71fbb0..c8f15955d09 100644 --- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_2c.cfg +++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_2c.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_3c.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_3c.cfg index 32c8a732469..929c2f0100a 100644 --- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_3c.cfg +++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_3c.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c1.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c1.cfg index 446c9321e1b..a69c41b1f5e 100644 --- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c1.cfg +++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c1.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c2.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c2.cfg index 9b312636764..195ad3f03a7 100644 --- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c2.cfg +++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c2.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg b/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg index 698524c4654..703d051feca 100644 --- a/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg +++ b/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2020.05.24 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rotating/naca0012/rot_NACA0012.cfg b/TestCases/rotating/naca0012/rot_NACA0012.cfg index 35c932c33b5..54fbc87e5ae 100644 --- a/TestCases/rotating/naca0012/rot_NACA0012.cfg +++ b/TestCases/rotating/naca0012/rot_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2020.06.06 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 08b45e3b3ff..e5825f786e1 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -3,7 +3,7 @@ ## \file serial_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/serial_regression_AD.py b/TestCases/serial_regression_AD.py index 6faaeff53af..09043e19eb8 100644 --- a/TestCases/serial_regression_AD.py +++ b/TestCases/serial_regression_AD.py @@ -3,7 +3,7 @@ ## \file serial_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/sliding_interface/bars_SST_2D/bars.cfg b/TestCases/sliding_interface/bars_SST_2D/bars.cfg index f98147eac76..6cd8d1857d4 100644 --- a/TestCases/sliding_interface/bars_SST_2D/bars.cfg +++ b/TestCases/sliding_interface/bars_SST_2D/bars.cfg @@ -5,7 +5,7 @@ % Author: A. Rubino % % Institution: Delft University of Technology % % Date: Feb 27th, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/bars_SST_2D/zone_1.cfg b/TestCases/sliding_interface/bars_SST_2D/zone_1.cfg index 563e6d61c0c..2da70905be7 100644 --- a/TestCases/sliding_interface/bars_SST_2D/zone_1.cfg +++ b/TestCases/sliding_interface/bars_SST_2D/zone_1.cfg @@ -5,7 +5,7 @@ % Author: A. Rubino % % Institution: Delft University of Technology % % Date: Feb 27th, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/bars_SST_2D/zone_2.cfg b/TestCases/sliding_interface/bars_SST_2D/zone_2.cfg index ad77d3df293..d6d0e532887 100644 --- a/TestCases/sliding_interface/bars_SST_2D/zone_2.cfg +++ b/TestCases/sliding_interface/bars_SST_2D/zone_2.cfg @@ -5,7 +5,7 @@ % Author: A. Rubino % % Institution: Delft University of Technology % % Date: Feb 27th, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/bars_SST_2D/zone_3.cfg b/TestCases/sliding_interface/bars_SST_2D/zone_3.cfg index 0c3fee7b488..09060c4cd6a 100644 --- a/TestCases/sliding_interface/bars_SST_2D/zone_3.cfg +++ b/TestCases/sliding_interface/bars_SST_2D/zone_3.cfg @@ -5,7 +5,7 @@ % Author: A. Rubino % % Institution: Delft University of Technology % % Date: Feb 27th, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_2D/channel_2D_NN.cfg b/TestCases/sliding_interface/channel_2D/channel_2D_NN.cfg index 9ee7fcf5bea..445d8e05407 100644 --- a/TestCases/sliding_interface/channel_2D/channel_2D_NN.cfg +++ b/TestCases/sliding_interface/channel_2D/channel_2D_NN.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_2D/channel_2D_WA.cfg b/TestCases/sliding_interface/channel_2D/channel_2D_WA.cfg index c377e26bea9..a579a274fd9 100644 --- a/TestCases/sliding_interface/channel_2D/channel_2D_WA.cfg +++ b/TestCases/sliding_interface/channel_2D/channel_2D_WA.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_2D/zone_2.cfg b/TestCases/sliding_interface/channel_2D/zone_2.cfg index 4bb31167d72..ac95b79f5ba 100644 --- a/TestCases/sliding_interface/channel_2D/zone_2.cfg +++ b/TestCases/sliding_interface/channel_2D/zone_2.cfg @@ -5,7 +5,7 @@ % Author: A. Rubino % % Institution: Delft University of Technology % % Date: Feb 27th, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/channel_2D/zone_3.cfg b/TestCases/sliding_interface/channel_2D/zone_3.cfg index 0c3fee7b488..09060c4cd6a 100644 --- a/TestCases/sliding_interface/channel_2D/zone_3.cfg +++ b/TestCases/sliding_interface/channel_2D/zone_3.cfg @@ -5,7 +5,7 @@ % Author: A. Rubino % % Institution: Delft University of Technology % % Date: Feb 27th, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_3D/channel_3D_NN.cfg b/TestCases/sliding_interface/channel_3D/channel_3D_NN.cfg index 74f17eb884c..b3283d02d2d 100644 --- a/TestCases/sliding_interface/channel_3D/channel_3D_NN.cfg +++ b/TestCases/sliding_interface/channel_3D/channel_3D_NN.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_3D/channel_3D_WA.cfg b/TestCases/sliding_interface/channel_3D/channel_3D_WA.cfg index d496284b02a..b5e63209694 100644 --- a/TestCases/sliding_interface/channel_3D/channel_3D_WA.cfg +++ b/TestCases/sliding_interface/channel_3D/channel_3D_WA.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_3D/zone_1.cfg b/TestCases/sliding_interface/channel_3D/zone_1.cfg index 2c7d8098f93..368d2ee7217 100644 --- a/TestCases/sliding_interface/channel_3D/zone_1.cfg +++ b/TestCases/sliding_interface/channel_3D/zone_1.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_3D/zone_2.cfg b/TestCases/sliding_interface/channel_3D/zone_2.cfg index 6b03c22c329..c72ef258837 100644 --- a/TestCases/sliding_interface/channel_3D/zone_2.cfg +++ b/TestCases/sliding_interface/channel_3D/zone_2.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/channel_3D/zone_3.cfg b/TestCases/sliding_interface/channel_3D/zone_3.cfg index dcd16289ede..e3d483a8694 100644 --- a/TestCases/sliding_interface/channel_3D/zone_3.cfg +++ b/TestCases/sliding_interface/channel_3D/zone_3.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/incompressible_steady/config.cfg b/TestCases/sliding_interface/incompressible_steady/config.cfg index 4e10a4329cc..190b4487671 100644 --- a/TestCases/sliding_interface/incompressible_steady/config.cfg +++ b/TestCases/sliding_interface/incompressible_steady/config.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 28th, 2018 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/incompressible_steady/configCircle.cfg b/TestCases/sliding_interface/incompressible_steady/configCircle.cfg index 329afabb911..f956988fccc 100644 --- a/TestCases/sliding_interface/incompressible_steady/configCircle.cfg +++ b/TestCases/sliding_interface/incompressible_steady/configCircle.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 28th, 2018 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/incompressible_steady/configOut.cfg b/TestCases/sliding_interface/incompressible_steady/configOut.cfg index f8c063451a7..9ce32d853df 100644 --- a/TestCases/sliding_interface/incompressible_steady/configOut.cfg +++ b/TestCases/sliding_interface/incompressible_steady/configOut.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 28th, 2018 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/incompressible_unsteady/config.cfg b/TestCases/sliding_interface/incompressible_unsteady/config.cfg index b6ab3f8c76d..e7b83d6b350 100644 --- a/TestCases/sliding_interface/incompressible_unsteady/config.cfg +++ b/TestCases/sliding_interface/incompressible_unsteady/config.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 28th, 2018 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/incompressible_unsteady/configCircle.cfg b/TestCases/sliding_interface/incompressible_unsteady/configCircle.cfg index 54bf0c90568..ccb1a958fc9 100644 --- a/TestCases/sliding_interface/incompressible_unsteady/configCircle.cfg +++ b/TestCases/sliding_interface/incompressible_unsteady/configCircle.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 28th, 2018 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/incompressible_unsteady/configOut.cfg b/TestCases/sliding_interface/incompressible_unsteady/configOut.cfg index 97d9e32fbb4..6501a9f25aa 100644 --- a/TestCases/sliding_interface/incompressible_unsteady/configOut.cfg +++ b/TestCases/sliding_interface/incompressible_unsteady/configOut.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 28th, 2018 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/pipe/pipe_NN.cfg b/TestCases/sliding_interface/pipe/pipe_NN.cfg index 4bf4a4fd950..fda92958f3d 100644 --- a/TestCases/sliding_interface/pipe/pipe_NN.cfg +++ b/TestCases/sliding_interface/pipe/pipe_NN.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/pipe/pipe_WA.cfg b/TestCases/sliding_interface/pipe/pipe_WA.cfg index 9e64f58ddb2..67b71f40fa3 100644 --- a/TestCases/sliding_interface/pipe/pipe_WA.cfg +++ b/TestCases/sliding_interface/pipe/pipe_WA.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/pipe/zone_1.cfg b/TestCases/sliding_interface/pipe/zone_1.cfg index d8d56c9f72a..40b0529d549 100644 --- a/TestCases/sliding_interface/pipe/zone_1.cfg +++ b/TestCases/sliding_interface/pipe/zone_1.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/pipe/zone_2.cfg b/TestCases/sliding_interface/pipe/zone_2.cfg index 966d976fc89..c16760fd894 100644 --- a/TestCases/sliding_interface/pipe/zone_2.cfg +++ b/TestCases/sliding_interface/pipe/zone_2.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/pipe/zone_3.cfg b/TestCases/sliding_interface/pipe/zone_3.cfg index a9a8a15073b..ecc56f7ab28 100644 --- a/TestCases/sliding_interface/pipe/zone_3.cfg +++ b/TestCases/sliding_interface/pipe/zone_3.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/pipe/zone_4.cfg b/TestCases/sliding_interface/pipe/zone_4.cfg index 0ba96b441fc..20c1efe5c58 100644 --- a/TestCases/sliding_interface/pipe/zone_4.cfg +++ b/TestCases/sliding_interface/pipe/zone_4.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/pipe/zone_5.cfg b/TestCases/sliding_interface/pipe/zone_5.cfg index 966d976fc89..c16760fd894 100644 --- a/TestCases/sliding_interface/pipe/zone_5.cfg +++ b/TestCases/sliding_interface/pipe/zone_5.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_NN.cfg b/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_NN.cfg index 7a1d763ba26..36610bbf822 100644 --- a/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_NN.cfg +++ b/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_NN.cfg @@ -5,7 +5,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_WA.cfg b/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_WA.cfg index 38a3064889f..20d8471f1f4 100644 --- a/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_WA.cfg +++ b/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_WA.cfg @@ -5,7 +5,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/single_stage/single_stage_NN.cfg b/TestCases/sliding_interface/single_stage/single_stage_NN.cfg index d8152fa336f..3c2b9acebac 100644 --- a/TestCases/sliding_interface/single_stage/single_stage_NN.cfg +++ b/TestCases/sliding_interface/single_stage/single_stage_NN.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/single_stage/single_stage_WA.cfg b/TestCases/sliding_interface/single_stage/single_stage_WA.cfg index 5f8789b2e0d..dac849121bc 100644 --- a/TestCases/sliding_interface/single_stage/single_stage_WA.cfg +++ b/TestCases/sliding_interface/single_stage/single_stage_WA.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/single_stage/zone_1.cfg b/TestCases/sliding_interface/single_stage/zone_1.cfg index 5c41c90aa92..39d26fb51ae 100644 --- a/TestCases/sliding_interface/single_stage/zone_1.cfg +++ b/TestCases/sliding_interface/single_stage/zone_1.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/single_stage/zone_2.cfg b/TestCases/sliding_interface/single_stage/zone_2.cfg index ece3a7a5b9f..b079f02ed19 100644 --- a/TestCases/sliding_interface/single_stage/zone_2.cfg +++ b/TestCases/sliding_interface/single_stage/zone_2.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_NN.cfg b/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_NN.cfg index 039712c1205..fa0d09e4f59 100644 --- a/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_NN.cfg +++ b/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_NN.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_WA.cfg b/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_WA.cfg index 13f603b10b1..384a0c178a8 100644 --- a/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_WA.cfg +++ b/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_WA.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/supersonic_vortex_shedding/zone_1.cfg b/TestCases/sliding_interface/supersonic_vortex_shedding/zone_1.cfg index a1be6a32758..2c8bcc6a617 100644 --- a/TestCases/sliding_interface/supersonic_vortex_shedding/zone_1.cfg +++ b/TestCases/sliding_interface/supersonic_vortex_shedding/zone_1.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/supersonic_vortex_shedding/zone_2.cfg b/TestCases/sliding_interface/supersonic_vortex_shedding/zone_2.cfg index 79bdcbaca12..93834285887 100644 --- a/TestCases/sliding_interface/supersonic_vortex_shedding/zone_2.cfg +++ b/TestCases/sliding_interface/supersonic_vortex_shedding/zone_2.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/uniform_flow/uniform_NN.cfg b/TestCases/sliding_interface/uniform_flow/uniform_NN.cfg index dc8853298c0..3fdd6df8a3f 100644 --- a/TestCases/sliding_interface/uniform_flow/uniform_NN.cfg +++ b/TestCases/sliding_interface/uniform_flow/uniform_NN.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/uniform_flow/uniform_WA.cfg b/TestCases/sliding_interface/uniform_flow/uniform_WA.cfg index aaa9c9e7643..850dd7c48a8 100644 --- a/TestCases/sliding_interface/uniform_flow/uniform_WA.cfg +++ b/TestCases/sliding_interface/uniform_flow/uniform_WA.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/uniform_flow/zone_1.cfg b/TestCases/sliding_interface/uniform_flow/zone_1.cfg index b02c6887dc0..da558f2b493 100644 --- a/TestCases/sliding_interface/uniform_flow/zone_1.cfg +++ b/TestCases/sliding_interface/uniform_flow/zone_1.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/uniform_flow/zone_2.cfg b/TestCases/sliding_interface/uniform_flow/zone_2.cfg index d0768c5a525..e4ee199e1e7 100644 --- a/TestCases/sliding_interface/uniform_flow/zone_2.cfg +++ b/TestCases/sliding_interface/uniform_flow/zone_2.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/solid_heat_conduction/periodic_pins/configSolid.cfg b/TestCases/solid_heat_conduction/periodic_pins/configSolid.cfg index 22b15c3d822..7563c764762 100644 --- a/TestCases/solid_heat_conduction/periodic_pins/configSolid.cfg +++ b/TestCases/solid_heat_conduction/periodic_pins/configSolid.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Bosch Thermotechniek B.V. % % Date: 2021.09.27 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/species_transport/multizone/configMaster.cfg b/TestCases/species_transport/multizone/configMaster.cfg index 657c5fb5bf4..7517375fab0 100644 --- a/TestCases/species_transport/multizone/configMaster.cfg +++ b/TestCases/species_transport/multizone/configMaster.cfg @@ -5,7 +5,7 @@ % Author: N. Beishuizen % % Institution: Technische Universiteit Eindhoven % % Date: November 1, 2022 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/species_transport/passive_transport_validation/passive_transport.cfg b/TestCases/species_transport/passive_transport_validation/passive_transport.cfg index 8da477701ca..503ce0052e4 100644 --- a/TestCases/species_transport/passive_transport_validation/passive_transport.cfg +++ b/TestCases/species_transport/passive_transport_validation/passive_transport.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Bosch Thermotechniek B.V % % Date: 2021.10.02 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi.cfg index 647145dda75..e2d3b8d1089 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Bosch Thermotechniek B.V. % % Date: 2021/10/14 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_boundedscalar.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_boundedscalar.cfg index 04098f3ef0f..766b40f267f 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_boundedscalar.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_boundedscalar.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Bosch Thermotechniek B.V. % % Date: 2021/10/14 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel.cfg index 281bcaf005d..502edbfcea9 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel.cfg @@ -7,7 +7,7 @@ % Author: Cristopher Morales Ubal % % Institution: Eindhoven University of Technology % % Date: 2022/06/15 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg index 1928352eab8..08e40714a1b 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg @@ -8,7 +8,7 @@ % Author: Cristopher Morales Ubal % % Institution: Eindhoven University of Technology % % Date: 2022/12/05 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_boundedscalar.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_boundedscalar.cfg index 6ef8fc5c6cd..aed44fe9fda 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_boundedscalar.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_boundedscalar.cfg @@ -7,7 +7,7 @@ % Author: Cristopher Morales Ubal % % Institution: Eindhoven University of Technology % % Date: 2022/06/15 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg index 7ce89091193..cfc84264296 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg @@ -8,7 +8,7 @@ % Author: Cristopher Morales Ubal % % Institution: Eindhoven University of Technology % % Date: 2022/09/12 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg index f851455c179..dbac08389e5 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg @@ -9,7 +9,7 @@ % Author: Cristopher Morales Ubal % % Institution: Eindhoven University of Technology % % Date: 2022/10/12 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_viscosity.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_viscosity.cfg index 3fbbe934937..68d8c37b0f1 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_viscosity.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_viscosity.cfg @@ -8,7 +8,7 @@ % Author: Cristopher Morales Ubal % % Institution: Eindhoven University of Technology % % Date: 2022/06/27 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi_inletFile.cfg b/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi_inletFile.cfg index 710636b587a..eed1a1fea21 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi_inletFile.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi_inletFile.cfg @@ -6,7 +6,7 @@ % Author: T. Kattmann % % Institution: Bosch Thermotechniek B.V. % % Date: 2021/10/14 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg b/TestCases/transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg index 9c58720551f..3da389783db 100644 --- a/TestCases/transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg +++ b/TestCases/transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg @@ -6,7 +6,7 @@ % Institution: TOBB University of Economics and Technology % % TAI-TUSAS Turkish Aerospace Industries % % Date: Oct 10th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/transition/Schubauer_Klebanoff/transitional_BC_model_ConfigFile.cfg b/TestCases/transition/Schubauer_Klebanoff/transitional_BC_model_ConfigFile.cfg index 205cd0ada11..1a67dafe7ed 100644 --- a/TestCases/transition/Schubauer_Klebanoff/transitional_BC_model_ConfigFile.cfg +++ b/TestCases/transition/Schubauer_Klebanoff/transitional_BC_model_ConfigFile.cfg @@ -6,7 +6,7 @@ % Institution: TOBB University of Economics and Technology % % TAI-TUSAS Turkish Aerospace Industries % % Date: Oct 10th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg b/TestCases/transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg index 6cf5496c161..4c0df3c73ce 100644 --- a/TestCases/transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg +++ b/TestCases/transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg @@ -6,7 +6,7 @@ % Institution: TOBB University of Economics and Technology % % TAI-TUSAS Turkish Aerospace Industries % % Date: Oct 10th, 2016 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg b/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg index f8e68d0a1e5..405bea3ae75 100755 --- a/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg +++ b/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: Jun 28th, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg b/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg index a7ded02ea2e..f53bdcf2baa 100755 --- a/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg +++ b/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: Feb 28th, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/turbomachinery/axial_stage_2D/zone_1.cfg b/TestCases/turbomachinery/axial_stage_2D/zone_1.cfg index 7ef05b4cd48..ae054490585 100644 --- a/TestCases/turbomachinery/axial_stage_2D/zone_1.cfg +++ b/TestCases/turbomachinery/axial_stage_2D/zone_1.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: Feb 28th, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/turbomachinery/axial_stage_2D/zone_2.cfg b/TestCases/turbomachinery/axial_stage_2D/zone_2.cfg index 9be09518b2d..a0934eb366d 100644 --- a/TestCases/turbomachinery/axial_stage_2D/zone_2.cfg +++ b/TestCases/turbomachinery/axial_stage_2D/zone_2.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: Feb 28th, 2017 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg b/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg index 2cb88b6ff08..08e2327e308 100755 --- a/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg +++ b/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg @@ -5,7 +5,7 @@ % Author:S. Vitale % % Institution: Delft University of Technology % % Date: Oct 26th, 2015 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg b/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg index f3a52180c86..ff14695c1e4 100755 --- a/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg +++ b/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: Oct 28th, 2015 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/turbomachinery/multi_interface/multi_interface_rst.cfg b/TestCases/turbomachinery/multi_interface/multi_interface_rst.cfg index a52301e7153..8d5c456d2a0 100644 --- a/TestCases/turbomachinery/multi_interface/multi_interface_rst.cfg +++ b/TestCases/turbomachinery/multi_interface/multi_interface_rst.cfg @@ -6,7 +6,7 @@ % Author: J. Kelly % % Institution: University of Liverpool % % Date: Sep 5th, 2024 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_restart.cfg b/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_restart.cfg index 69ca34a7a23..9ae4300d381 100644 --- a/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_restart.cfg +++ b/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_restart.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: 2017.03.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index b4c8534d8a1..59e0f298a53 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -3,7 +3,7 @@ ## \file parallel_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg b/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg index d18aa45c5bd..548202908aa 100644 --- a/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg +++ b/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg b/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg index 7e532c974fc..b950e270488 100644 --- a/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg +++ b/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg b/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg index 45b7603f1a9..6be90a4148a 100644 --- a/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg +++ b/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Jun 12, 2014 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/square_cylinder/turb_square.cfg b/TestCases/unsteady/square_cylinder/turb_square.cfg index b7dff380652..3e7fc3a7c56 100644 --- a/TestCases/unsteady/square_cylinder/turb_square.cfg +++ b/TestCases/unsteady/square_cylinder/turb_square.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.02.25 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/user_defined_functions/lam_flatplate.cfg b/TestCases/user_defined_functions/lam_flatplate.cfg index c3d55cd45c0..87723855106 100644 --- a/TestCases/user_defined_functions/lam_flatplate.cfg +++ b/TestCases/user_defined_functions/lam_flatplate.cfg @@ -4,7 +4,7 @@ % Case description: Test custom outputs and objective function. % % Author: P. Gomes % % Date: 5th Jan 2022 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/vandv.py b/TestCases/vandv.py index 06c74d893f8..ec07fbad290 100644 --- a/TestCases/vandv.py +++ b/TestCases/vandv.py @@ -6,7 +6,7 @@ # - Use the SU2 --dry_run mode for configs of large tests. # - Restart from converged results for medium problems. # - Run small cases (<20s) to convergence. -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/TestCases/vandv/species_transport/sandia_jet/validation.cfg b/TestCases/vandv/species_transport/sandia_jet/validation.cfg index e1a109974e4..7568c041e82 100644 --- a/TestCases/vandv/species_transport/sandia_jet/validation.cfg +++ b/TestCases/vandv/species_transport/sandia_jet/validation.cfg @@ -5,7 +5,7 @@ % Author: S.J.H. Bosmans % % Institution: TU Eindhoven (TU/e) % % Date: 2023/05/04 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/wallfunctions/flatplate/compressible_SA/turb_SA_flatplate.cfg b/TestCases/wallfunctions/flatplate/compressible_SA/turb_SA_flatplate.cfg index cdd6622fa65..b65cb882095 100644 --- a/TestCases/wallfunctions/flatplate/compressible_SA/turb_SA_flatplate.cfg +++ b/TestCases/wallfunctions/flatplate/compressible_SA/turb_SA_flatplate.cfg @@ -6,7 +6,7 @@ % Author: Nijso Beishuizen, T. Kattmann % % Institution: Bosch Thermotechnology % % Date: 2021.09.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/wallfunctions/flatplate/compressible_SST/turb_SST_flatplate.cfg b/TestCases/wallfunctions/flatplate/compressible_SST/turb_SST_flatplate.cfg index 44e300ddcda..28a11c941c9 100644 --- a/TestCases/wallfunctions/flatplate/compressible_SST/turb_SST_flatplate.cfg +++ b/TestCases/wallfunctions/flatplate/compressible_SST/turb_SST_flatplate.cfg @@ -6,7 +6,7 @@ % Author: Nijso Beishuizen, T. Kattmann % % Institution: Bosch Thermotechnology % % Date: 2021.09.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/wallfunctions/flatplate/incompressible_SA/turb_SA_flatplate.cfg b/TestCases/wallfunctions/flatplate/incompressible_SA/turb_SA_flatplate.cfg index 3eb3e5d4537..c31bc403b17 100644 --- a/TestCases/wallfunctions/flatplate/incompressible_SA/turb_SA_flatplate.cfg +++ b/TestCases/wallfunctions/flatplate/incompressible_SA/turb_SA_flatplate.cfg @@ -6,7 +6,7 @@ % Author: Nijso Beishuizen, T. Kattmann % % Institution: Bosch Thermotechnology % % Date: 2021.09.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/wallfunctions/flatplate/incompressible_SST/turb_SST_flatplate.cfg b/TestCases/wallfunctions/flatplate/incompressible_SST/turb_SST_flatplate.cfg index 10fa3988e72..bbb78a8df94 100644 --- a/TestCases/wallfunctions/flatplate/incompressible_SST/turb_SST_flatplate.cfg +++ b/TestCases/wallfunctions/flatplate/incompressible_SST/turb_SST_flatplate.cfg @@ -6,7 +6,7 @@ % Author: Nijso Beishuizen, T. Kattmann % % Institution: Bosch Thermotechnology % % Date: 2021.09.01 % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/UnitTests/Common/containers/CLookupTable_tests.cpp b/UnitTests/Common/containers/CLookupTable_tests.cpp index 7192d529398..f90ceb08f99 100644 --- a/UnitTests/Common/containers/CLookupTable_tests.cpp +++ b/UnitTests/Common/containers/CLookupTable_tests.cpp @@ -2,7 +2,7 @@ * \file CLookupTable_tests.cpp * \brief Unit tests for the lookup table. * \author N. Beishuizen - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/Common/geometry/CGeometry_test.cpp b/UnitTests/Common/geometry/CGeometry_test.cpp index bed8423a534..7ba54ab302d 100644 --- a/UnitTests/Common/geometry/CGeometry_test.cpp +++ b/UnitTests/Common/geometry/CGeometry_test.cpp @@ -2,7 +2,7 @@ * \file CGeometry_tests.cpp * \brief Unit tests for CGeometry. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/Common/geometry/dual_grid/CDualGrid_tests.cpp b/UnitTests/Common/geometry/dual_grid/CDualGrid_tests.cpp index 5817c87712d..aedc87aac41 100644 --- a/UnitTests/Common/geometry/dual_grid/CDualGrid_tests.cpp +++ b/UnitTests/Common/geometry/dual_grid/CDualGrid_tests.cpp @@ -2,7 +2,7 @@ * \file CDualGrid_tests.cpp * \brief Unit tests for the dual grid classes * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/Common/geometry/primal_grid/CPrimalGrid_tests.cpp b/UnitTests/Common/geometry/primal_grid/CPrimalGrid_tests.cpp index 59f03384969..67d7c7305b1 100644 --- a/UnitTests/Common/geometry/primal_grid/CPrimalGrid_tests.cpp +++ b/UnitTests/Common/geometry/primal_grid/CPrimalGrid_tests.cpp @@ -2,7 +2,7 @@ * \file CPrimalGrid_tests.cpp * \brief Unit tests for the primal grid classes * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/Common/simple_ad_test.cpp b/UnitTests/Common/simple_ad_test.cpp index 82fce9a2783..8be49be99c9 100644 --- a/UnitTests/Common/simple_ad_test.cpp +++ b/UnitTests/Common/simple_ad_test.cpp @@ -4,7 +4,7 @@ * basic functionality, this also serves as a regression test * to make sure that AD works within unit testing. * \author C. Pederson - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/Common/simple_directdiff_test.cpp b/UnitTests/Common/simple_directdiff_test.cpp index 2ae8f1540fe..9f8543b2902 100644 --- a/UnitTests/Common/simple_directdiff_test.cpp +++ b/UnitTests/Common/simple_directdiff_test.cpp @@ -4,7 +4,7 @@ * basic functionality, this also serves as a regression test * to make sure that DD works within unit testing. * \author C. Pederson - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/Common/toolboxes/C1DInterpolation_tests.cpp b/UnitTests/Common/toolboxes/C1DInterpolation_tests.cpp index ba3d64c912e..ca24201de85 100644 --- a/UnitTests/Common/toolboxes/C1DInterpolation_tests.cpp +++ b/UnitTests/Common/toolboxes/C1DInterpolation_tests.cpp @@ -2,7 +2,7 @@ * \file C1DInterpolation_tests.cpp * \brief Unit tests for splines and what not. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/Common/toolboxes/CQuasiNewtonInvLeastSquares_tests.cpp b/UnitTests/Common/toolboxes/CQuasiNewtonInvLeastSquares_tests.cpp index 13ca0b58773..e1001d36c9c 100644 --- a/UnitTests/Common/toolboxes/CQuasiNewtonInvLeastSquares_tests.cpp +++ b/UnitTests/Common/toolboxes/CQuasiNewtonInvLeastSquares_tests.cpp @@ -3,7 +3,7 @@ * \brief Unit tests for the CQuasiNewtonInvLeastSquares class. * Which should find the root of a n-d linear problem in n+1 iterations. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/Common/toolboxes/multilayer_perceptron/CLookUp_ANN_tests.cpp b/UnitTests/Common/toolboxes/multilayer_perceptron/CLookUp_ANN_tests.cpp index 967346935fd..3c4171741bb 100644 --- a/UnitTests/Common/toolboxes/multilayer_perceptron/CLookUp_ANN_tests.cpp +++ b/UnitTests/Common/toolboxes/multilayer_perceptron/CLookUp_ANN_tests.cpp @@ -2,7 +2,7 @@ * \file CLookUp_ANN_tests.cpp * \brief Unit tests for CLookUp_ANN and CIOMap classes. * \author E.C.Bunschoten - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/Common/toolboxes/ndflattener_tests.cpp b/UnitTests/Common/toolboxes/ndflattener_tests.cpp index 687a71e622e..61b5ababeb9 100644 --- a/UnitTests/Common/toolboxes/ndflattener_tests.cpp +++ b/UnitTests/Common/toolboxes/ndflattener_tests.cpp @@ -2,7 +2,7 @@ * \file ndflattener_tests.cpp * \brief Unit tests for NdFlattener template classes. * \author M. Aehle - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/Common/vectorization.cpp b/UnitTests/Common/vectorization.cpp index 5371047cda4..71f790f4672 100644 --- a/UnitTests/Common/vectorization.cpp +++ b/UnitTests/Common/vectorization.cpp @@ -2,7 +2,7 @@ * \file vectorization.cpp * \brief Unit tests for the SIMD type and associated expression templates. * \author P. Gomes - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/SU2_CFD/gradients.cpp b/UnitTests/SU2_CFD/gradients.cpp index af3ad8a2fee..948aa91879f 100644 --- a/UnitTests/SU2_CFD/gradients.cpp +++ b/UnitTests/SU2_CFD/gradients.cpp @@ -2,7 +2,7 @@ * \file gradients.cpp * \brief Unit tests for gradient calculation. * \author P. Gomes, T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/SU2_CFD/numerics/CNumerics_tests.cpp b/UnitTests/SU2_CFD/numerics/CNumerics_tests.cpp index fbf8dabfae3..f236ee7ea62 100644 --- a/UnitTests/SU2_CFD/numerics/CNumerics_tests.cpp +++ b/UnitTests/SU2_CFD/numerics/CNumerics_tests.cpp @@ -2,7 +2,7 @@ * \file CNumerics_tests.cpp * \brief Unit tests for the numerics classes. * \author C. Pederson - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/SU2_CFD/windowing.cpp b/UnitTests/SU2_CFD/windowing.cpp index 8166c785b55..5473738d039 100644 --- a/UnitTests/SU2_CFD/windowing.cpp +++ b/UnitTests/SU2_CFD/windowing.cpp @@ -2,7 +2,7 @@ * \file windowing.cpp * \brief Unit tests for windowed time-averaging. * \author C. Bauer - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/UnitQuadTestCase.hpp b/UnitTests/UnitQuadTestCase.hpp index a63f5a7777b..72a19c3538d 100644 --- a/UnitTests/UnitQuadTestCase.hpp +++ b/UnitTests/UnitQuadTestCase.hpp @@ -2,7 +2,7 @@ * \file UnitQuadTestCase.hpp * \brief Simple unit quad test to be used in unit tests. * \author T. Albring - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/UnitTests/test_driver.cpp b/UnitTests/test_driver.cpp index 12c2e7e7dd1..46bd1f15b03 100644 --- a/UnitTests/test_driver.cpp +++ b/UnitTests/test_driver.cpp @@ -2,7 +2,7 @@ * \file test_driver.cpp * \brief The main entry point for unit tests (the main()). * \author C. Pederson - * \version 8.0.1 "Harrier" + * \version 8.1.0 "Harrier" * * SU2 Project Website: https://su2code.github.io * diff --git a/config_template.cfg b/config_template.cfg index 4044a611957..ff9e9f11297 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -5,7 +5,7 @@ % Author: ___________________________________________________________________ % % Institution: ______________________________________________________________ % % Date: __________ % -% File Version 8.0.1 "Harrier" % +% File Version 8.1.0 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/meson.build b/meson.build index 66dde2dfc9d..e6886833f61 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('SU2', 'c', 'cpp', - version: '8.0.1 "Harrier"', + version: '8.1.0 "Harrier"', meson_version: '>=0.61.1', license: 'LGPL2', default_options: ['buildtype=release', @@ -326,7 +326,7 @@ endif message('''------------------------------------------------------------------------- | ___ _ _ ___ | - | / __| | | |_ ) Release 8.0.1 "Harrier" | + | / __| | | |_ ) Release 8.1.0 "Harrier" | | \__ \ |_| |/ / | | |___/\___//___| Meson Configuration Summary | | | diff --git a/meson.py b/meson.py index 6c6cd2d6cf5..f58dc31f998 100755 --- a/meson.py +++ b/meson.py @@ -3,7 +3,7 @@ ## \file meson.py # \brief An extended meson script for setting up the environment and running meson # \author T. Albring and F. Poli -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/meson_scripts/init.py b/meson_scripts/init.py index 2fde106706a..4ed6f053dc9 100755 --- a/meson_scripts/init.py +++ b/meson_scripts/init.py @@ -4,7 +4,7 @@ # \brief Initializes necessary dependencies for SU2 either using git or it # fetches zip files. # \author T. Albring and F. Poli -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/preconfigure.py b/preconfigure.py index fa64e336e74..51cb0599e6e 100755 --- a/preconfigure.py +++ b/preconfigure.py @@ -3,7 +3,7 @@ ## \file preconfigure.py # \brief An preconfigure script for setting up the build environment # \author T. Albring and F. Poli -# \version 8.0.1 "Harrier" +# \version 8.1.0 "Harrier" # # SU2 Project Website: https://su2code.github.io # diff --git a/su2omp.syntax.json b/su2omp.syntax.json index 1768cb25fb9..9bddb6fd63a 100644 --- a/su2omp.syntax.json +++ b/su2omp.syntax.json @@ -4,7 +4,7 @@ "\\file su2omp.syntax.json", "\\brief Definitions for the OpDiLib syntax checker", "\\author J. Blühdorn", - "\\version 8.0.1 \"Harrier\"", + "\\version 8.1.0 \"Harrier\"", "SU2 Project Website: https://su2code.github.io",