diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 3d6c73084312..e03822a909cb 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -87,6 +87,7 @@ jobs: - name: Run Tests in Container uses: docker://su2code/test-su2:20200303 with: + # -t -c args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} unit_tests: runs-on: ubuntu-latest diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 1b23f2cd5629..175f727e50fb 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -206,6 +206,7 @@ class CConfig { nMarker_Smoluchowski_Maxwell, /*!< \brief Number of smoluchowski/maxwell wall boundaries. */ nMarker_Isothermal, /*!< \brief Number of isothermal wall boundaries. */ nMarker_HeatFlux, /*!< \brief Number of constant heat flux wall boundaries. */ + nMarker_HeatTransfer, /*!< \brief Number of heat-transfer/convection wall boundaries. */ nMarker_EngineExhaust, /*!< \brief Number of nacelle exhaust flow markers. */ nMarker_EngineInflow, /*!< \brief Number of nacelle inflow flow markers. */ nMarker_Clamped, /*!< \brief Number of clamped markers in the FEM. */ @@ -254,6 +255,7 @@ class CConfig { *Marker_Smoluchowski_Maxwell, /*!< \brief Smoluchowski/Maxwell wall markers. */ *Marker_Isothermal, /*!< \brief Isothermal wall markers. */ *Marker_HeatFlux, /*!< \brief Constant heat flux wall markers. */ + *Marker_HeatTransfer, /*!< \brief Heat-transfer/convection markers. */ *Marker_RoughWall, /*!< \brief Constant heat flux wall markers. */ *Marker_EngineInflow, /*!< \brief Engine Inflow flow markers. */ *Marker_EngineExhaust, /*!< \brief Engine Exhaust flow markers. */ @@ -309,6 +311,8 @@ class CConfig { su2double *Engine_Area; /*!< \brief Specified engine area for nacelle boundaries. */ su2double *Outlet_Pressure; /*!< \brief Specified back pressures (static) for outlet boundaries. */ su2double *Isothermal_Temperature; /*!< \brief Specified isothermal wall temperatures (static). */ + su2double *HeatTransfer_Coeff; /*!< \brief Specified heat transfer coefficients. */ + su2double *HeatTransfer_WallTemp; /*!< \brief Specified temperatures at infinity alongside heat transfer coefficients. */ su2double *Wall_Catalycity; /*!< \brief Specified wall species mass-fractions for catalytic boundaries. */ su2double *Heat_Flux; /*!< \brief Specified wall heat fluxes. */ su2double *Roughness_Height; /*!< \brief Equivalent sand grain roughness for the marker according to config file. */ @@ -790,8 +794,8 @@ class CConfig { Acentric_Factor, /*!< \brief Acentric Factor for real fluid model. */ Mu_Constant, /*!< \brief Constant viscosity for ConstantViscosity model. */ Mu_ConstantND, /*!< \brief Non-dimensional constant viscosity for ConstantViscosity model. */ - Kt_Constant, /*!< \brief Constant thermal conductivity for ConstantConductivity model. */ - Kt_ConstantND, /*!< \brief Non-dimensional constant thermal conductivity for ConstantConductivity model. */ + Thermal_Conductivity_Constant, /*!< \brief Constant thermal conductivity for ConstantConductivity model. */ + Thermal_Conductivity_ConstantND, /*!< \brief Non-dimensional constant thermal conductivity for ConstantConductivity model. */ Mu_Ref, /*!< \brief Reference viscosity for Sutherland model. */ Mu_RefND, /*!< \brief Non-dimensional reference viscosity for Sutherland model. */ Mu_Temperature_Ref, /*!< \brief Reference temperature for Sutherland model. */ @@ -801,11 +805,7 @@ class CConfig { array CpPolyCoefficientsND{{0.0}}; /*!< \brief Definition of the non-dimensional temperature polynomial coefficients for specific heat Cp. */ array MuPolyCoefficientsND{{0.0}}; /*!< \brief Definition of the non-dimensional temperature polynomial coefficients for viscosity. */ array KtPolyCoefficientsND{{0.0}}; /*!< \brief Definition of the non-dimensional temperature polynomial coefficients for thermal conductivity. */ - su2double Thermal_Conductivity_Solid, /*!< \brief Thermal conductivity in solids. */ - Thermal_Diffusivity_Solid, /*!< \brief Thermal diffusivity in solids. */ - Temperature_Freestream_Solid, /*!< \brief Temperature in solids at freestream conditions. */ - Density_Solid, /*!< \brief Total density in solids. */ - Energy_FreeStream, /*!< \brief Free-stream total energy of the fluid. */ + su2double Energy_FreeStream, /*!< \brief Free-stream total energy of the fluid. */ ModVel_FreeStream, /*!< \brief Magnitude of the free-stream velocity of the fluid. */ ModVel_FreeStreamND, /*!< \brief Non-dimensional magnitude of the free-stream velocity of the fluid. */ Density_FreeStream, /*!< \brief Free-stream density of the fluid. */ @@ -1644,20 +1644,14 @@ class CConfig { su2double GetDensity_FreeStream(void) const { return Density_FreeStream; } /*! - * \brief Get the value of the solid density. - * \return Solid density. - */ - su2double GetDensity_Solid(void) const { return Density_Solid; } - - /*! - * \brief Get the value of the frestream temperature. - * \return Freestream temperature. + * \brief Get the magnitude of the free-stream velocity of the fluid. + * \return Magnitude of the free-stream velocity. */ su2double GetModVel_FreeStream(void) const { return ModVel_FreeStream; } /*! - * \brief Get the value of the frestream temperature. - * \return Freestream temperature. + * \brief Get the non-dimensional magnitude of the free-stream velocity of the fluid. + * \return Non-dimensional magnitude of the free-stream velocity. */ su2double GetModVel_FreeStreamND(void) const { return ModVel_FreeStreamND; } @@ -1685,23 +1679,11 @@ class CConfig { */ su2double GetwallModelB(void) const { return wallModelB; } - /*! - * \brief Get the value of the thermal conductivity for solids. - * \return Thermal conductivity (solid). - */ - su2double GetThermalConductivity_Solid(void) const { return Thermal_Conductivity_Solid; } - /*! * \brief Get the value of the thermal diffusivity for solids. * \return Thermal conductivity (solid). */ - su2double GetThermalDiffusivity_Solid(void) const { return Thermal_Diffusivity_Solid; } - - /*! - * \brief Get the temperature in solids at initial conditions. - * \return Freestream temperature (solid). - */ - su2double GetTemperature_Initial_Solid(void) const { return Temperature_Freestream_Solid; } + su2double GetThermalDiffusivity(void) const { return Thermal_Diffusivity; } /*! * \brief Get the value of the reference length for non-dimensionalization. @@ -1826,8 +1808,8 @@ class CConfig { su2double GetTemperature_FreeStreamND(void) const { return Temperature_FreeStreamND; } /*! - * \brief Get the value of the non-dimensionalized freestream temperature. - * \return Non-dimensionalized freestream temperature. + * \brief Get the value of the non-dimensionalized vibrational-electronic freestream temperature. + * \return Non-dimensionalized vibrational-electronic freestream temperature. */ su2double GetTemperature_ve_FreeStreamND(void) const { return Temperature_ve_FreeStreamND; } @@ -1948,12 +1930,6 @@ class CConfig { */ su2double GetRefArea(void) const { return RefArea; } - /*! - * \brief Get the wave speed. - * \return Value of the wave speed. - */ - su2double GetThermalDiffusivity(void) const { return Thermal_Diffusivity; } - /*! * \brief Get the thermal expansion coefficient. * \return Value of the thermal expansion coefficient. @@ -2272,91 +2248,91 @@ class CConfig { /*! * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \param[in] val_froude - Value of the Froude number. */ void SetFroude(su2double val_froude) { Froude = val_froude; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the Mach number. + * \param[in] val_mach - Value of the Mach number. */ void SetMach(su2double val_mach) { Mach = val_mach; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the Reynolds number. + * \param[in] val_reynolds - Value of the Reynolds number. */ void SetReynolds(su2double val_reynolds) { Reynolds = val_reynolds; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the reference length for nondimensionalization. + * \param[in] val_length_ref - Value of the reference length. */ void SetLength_Ref(su2double val_length_ref) { Length_Ref = val_length_ref; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the reference velocity for nondimensionalization. + * \param[in] val_velocity_ref - Value of the reference velocity. */ void SetVelocity_Ref(su2double val_velocity_ref) { Velocity_Ref = val_velocity_ref; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the reference pressure for nondimensionalization. + * \param[in] val_pressure_ref - Value of the reference pressure. */ void SetPressure_Ref(su2double val_pressure_ref) { Pressure_Ref = val_pressure_ref; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the reference pressure for nondimensionalization. + * \param[in] val_density_ref - Value of the reference pressure. */ void SetDensity_Ref(su2double val_density_ref) { Density_Ref = val_density_ref; } /*! - * \brief Set the reference temperature. - * \return Value of the Froude number. + * \brief Set the reference temperature for nondimensionalization. + * \param[in] val_temperature_ref - Value of the reference temperature. */ void SetTemperature_Ref(su2double val_temperature_ref) { Temperature_Ref = val_temperature_ref; } /*! * \brief Set the reference temperature. - * \return Value of the Froude number. + * \param[in] val_temperature_ve_ref - Value of the reference temperature. */ void SetTemperature_ve_Ref(su2double val_temperature_ve_ref) { Temperature_ve_Ref = val_temperature_ve_ref; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the reference time for nondimensionalization. + * \param[in] val_time_ref - Value of the reference time. */ void SetTime_Ref(su2double val_time_ref) { Time_Ref = val_time_ref; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the reference energy for nondimensionalization. + * \param[in] val_energy_ref - Value of the reference energy. */ void SetEnergy_Ref(su2double val_energy_ref) { Energy_Ref = val_energy_ref; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the reference Omega for nondimensionalization. + * \param[in] val_omega_ref - Value of the reference omega. */ void SetOmega_Ref(su2double val_omega_ref) { Omega_Ref = val_omega_ref; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the reference Force for nondimensionalization. + * \param[in] val_force_ref - Value of the reference Force. */ void SetForce_Ref(su2double val_force_ref) { Force_Ref = val_force_ref; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the reference gas-constant for nondimensionalization. + * \param[in] val_gas_constant_ref - Value of the reference gas-constant. */ void SetGas_Constant_Ref(su2double val_gas_constant_ref) { Gas_Constant_Ref = val_gas_constant_ref; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the gas-constant. + * \param[in] val_gas_constant - Value of the gas-constant. */ void SetGas_Constant(su2double val_gas_constant) { Gas_Constant = val_gas_constant; } @@ -2391,26 +2367,26 @@ class CConfig { void SetHeat_Flux_Ref(su2double val_heat_flux_ref) { Heat_Flux_Ref = val_heat_flux_ref; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the reference viscosity for nondimensionalization. + * \param[in] val_viscosity_ref - Value of the reference viscosity. */ void SetViscosity_Ref(su2double val_viscosity_ref) { Viscosity_Ref = val_viscosity_ref; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the reference conductivity for nondimensionalization. + * \param[in] val_conductivity_ref - Value of the reference conductivity. */ void SetConductivity_Ref(su2double val_conductivity_ref) { Conductivity_Ref = val_conductivity_ref; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the nondimensionalized freestream pressure. + * \param[in] val_pressure_freestreamnd - Value of the nondimensionalized freestream pressure. */ void SetPressure_FreeStreamND(su2double val_pressure_freestreamnd) { Pressure_FreeStreamND = val_pressure_freestreamnd; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the freestream pressure. + * \param[in] val_pressure_freestream - Value of the freestream pressure. */ void SetPressure_FreeStream(su2double val_pressure_freestream) { Pressure_FreeStream = val_pressure_freestream; } @@ -2427,62 +2403,62 @@ class CConfig { void SetPressure_Thermodynamic(su2double val_pressure_thermodynamic) { Pressure_Thermodynamic = val_pressure_thermodynamic; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the nondimensionalized freestream density. + * \param[in] val_density_freestreamnd - Value of the nondimensionalized freestream density. */ void SetDensity_FreeStreamND(su2double val_density_freestreamnd) { Density_FreeStreamND = val_density_freestreamnd; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the freestream density. + * \param[in] val_density_freestream - Value of the freestream density. */ void SetDensity_FreeStream(su2double val_density_freestream) { Density_FreeStream = val_density_freestream; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the freestream viscosity. + * \param[in] val_viscosity_freestream - Value of the freestream viscosity. */ void SetViscosity_FreeStream(su2double val_viscosity_freestream) { Viscosity_FreeStream = val_viscosity_freestream; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the magnitude of the free-stream velocity. + * \param[in] val_modvel_freestream - Magnitude of the free-stream velocity. */ void SetModVel_FreeStream(su2double val_modvel_freestream) { ModVel_FreeStream = val_modvel_freestream; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the non-dimensional magnitude of the free-stream velocity. + * \param[in] val_modvel_freestreamnd - Non-dimensional magnitude of the free-stream velocity. */ void SetModVel_FreeStreamND(su2double val_modvel_freestreamnd) { ModVel_FreeStreamND = val_modvel_freestreamnd; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the freestream temperature. + * \param[in] val_temperature_freestream - Value of the freestream temperature. */ void SetTemperature_FreeStream(su2double val_temperature_freestream) { Temperature_FreeStream = val_temperature_freestream; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the non-dimensional freestream temperature. + * \param[in] val_temperature_freestreamnd - Value of the non-dimensional freestream temperature. */ void SetTemperature_FreeStreamND(su2double val_temperature_freestreamnd) { Temperature_FreeStreamND = val_temperature_freestreamnd; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the freestream vibrational-electronic temperature. + * \param[in] val_temperature_ve_freestream - Value of the freestream vibrational-electronic temperature. */ void SetTemperature_ve_FreeStream(su2double val_temperature_ve_freestream) { Temperature_ve_FreeStream = val_temperature_ve_freestream; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the non-dimensional freestream vibrational-electronic temperature. + * \param[in] val_temperature_ve_freestreamnd - Value of the non-dimensional freestream vibrational-electronic temperature. */ void SetTemperature_ve_FreeStreamND(su2double val_temperature_ve_freestreamnd) { Temperature_ve_FreeStreamND = val_temperature_ve_freestreamnd; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the non-dimensional gas-constant. + * \param[in] val_gas_constantnd - Value of the non-dimensional gas-constant. */ void SetGas_ConstantND(su2double val_gas_constantnd) { Gas_ConstantND = val_gas_constantnd; } @@ -2494,62 +2470,63 @@ class CConfig { void SetVelocity_FreeStream(su2double val_velocity_freestream, unsigned short val_dim) { vel_inf[val_dim] = val_velocity_freestream; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the non-dimensional free-stream velocity. + * \param[in] val_velocity_freestreamnd - Value of the non-dimensional free-stream velocity component. + * \param[in] val_dim - Value of the current dimension. */ void SetVelocity_FreeStreamND(su2double val_velocity_freestreamnd, unsigned short val_dim) { Velocity_FreeStreamND[val_dim] = val_velocity_freestreamnd; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the non-dimensional free-stream viscosity. + * \param[in] val_viscosity_freestreamnd - Value of the non-dimensional free-stream viscosity. */ void SetViscosity_FreeStreamND(su2double val_viscosity_freestreamnd) { Viscosity_FreeStreamND = val_viscosity_freestreamnd; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the non-dimensional freestream turbulent kinetic energy. + * \param[in] val_tke_freestreamnd - Value of the non-dimensional freestream turbulent kinetic energy. */ void SetTke_FreeStreamND(su2double val_tke_freestreamnd) { Tke_FreeStreamND = val_tke_freestreamnd; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the non-dimensional freestream specific dissipation rate omega. + * \param[in] val_omega_freestreamnd - Value of the non-dimensional freestream specific dissipation rate omega. */ void SetOmega_FreeStreamND(su2double val_omega_freestreamnd) { Omega_FreeStreamND = val_omega_freestreamnd; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the freestream turbulent kinetic energy. + * \param[in] val_tke_freestream - Value of the freestream turbulent kinetic energy. */ void SetTke_FreeStream(su2double val_tke_freestream) { Tke_FreeStream = val_tke_freestream; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the freestream specific dissipation rate omega. + * \param[in] val_omega_freestream - Value of the freestream specific dissipation rate omega. */ void SetOmega_FreeStream(su2double val_omega_freestream) { Omega_FreeStream = val_omega_freestream; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the non-dimensional freestream energy. + * \param[in] val_energy_freestreamnd - Value of the non-dimensional freestream energy. */ void SetEnergy_FreeStreamND(su2double val_energy_freestreamnd) { Energy_FreeStreamND = val_energy_freestreamnd; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the freestream energy. + * \param[in] val_energy_freestream - Value of the freestream energy. */ void SetEnergy_FreeStream(su2double val_energy_freestream) { Energy_FreeStream = val_energy_freestream; } /*! * \brief Set the thermal diffusivity for solids. - * \return Value of the Froude number. + * \param[in] val_thermal_diffusivity - Value of the thermal diffusivity. */ - void SetThermalDiffusivity_Solid(su2double val_thermal_diffusivity) { Thermal_Diffusivity_Solid = val_thermal_diffusivity; } + void SetThermalDiffusivity(su2double val_thermal_diffusivity) { Thermal_Diffusivity = val_thermal_diffusivity; } /*! - * \brief Set the Froude number for free surface problems. - * \return Value of the Froude number. + * \brief Set the non-dimensional total time for unsteady simulations. + * \param[in] val_total_unsttimend - Value of the non-dimensional total time. */ void SetTotal_UnstTimeND(su2double val_total_unsttimend) { Total_UnstTimeND = val_total_unsttimend; } @@ -3743,13 +3720,14 @@ class CConfig { * \brief Get the value of the thermal conductivity. * \return Thermal conductivity. */ - su2double GetKt_Constant(void) const { return Kt_Constant; } + su2double GetThermal_Conductivity_Constant(void) const { return Thermal_Conductivity_Constant; } /*! * \brief Get the value of the non-dimensional thermal conductivity. * \return Non-dimensional thermal conductivity. */ - su2double GetKt_ConstantND(void) const { return Kt_ConstantND; } + su2double GetThermal_Conductivity_ConstantND(void) const { return Thermal_Conductivity_ConstantND; } + /*! * \brief Get the value of the reference viscosity for Sutherland model. @@ -3855,7 +3833,7 @@ class CConfig { /*! * \brief Set the value of the non-dimensional thermal conductivity. */ - void SetKt_ConstantND(su2double kt_const) { Kt_ConstantND = kt_const; } + void SetThermal_Conductivity_ConstantND(su2double therm_cond_const) { Thermal_Conductivity_ConstantND = therm_cond_const; } /*! * \brief Set the value of the non-dimensional reference viscosity for Sutherland model. @@ -6634,6 +6612,20 @@ class CConfig { */ su2double GetWall_HeatFlux(string val_index) const; + /*! + * \brief Get the heat transfer coefficient on a heat transfer boundary. + * \param[in] val_index - Index corresponding to the heat transfer boundary. + * \return The heat transfer coefficient. + */ + su2double GetWall_HeatTransfer_Coefficient(string val_index) const; + + /*! + * \brief Get the temperature at inifinty on a heat transfer boundary. + * \param[in] val_index - Index corresponding to the heat transfer boundary. + * \return The temperature at infinity. + */ + su2double GetWall_HeatTransfer_Temperature(string val_index) const; + /*! * \brief Get the wall function treatment for the given boundary marker. * \param[in] val_marker - String of the viscous wall marker. diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index d8cc598bb2fc..3951ac68d694 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1086,7 +1086,8 @@ enum BC_TYPE { ENGINE_EXHAUST = 22, /*!< \brief Boundary nacelle exhaust. */ RIEMANN_BOUNDARY= 24, /*!< \brief Riemann Boundary definition. */ ISOTHERMAL = 25, /*!< \brief No slip isothermal wall boundary condition. */ - HEAT_FLUX = 26, /*!< \brief No slip constant heat flux wall boundary condition. */ + HEAT_FLUX = 26, /*!< \brief No slip constant heat flux wall boundary condition. */ + HEAT_TRANSFER = 27, /*!< \brief No slip heat transfer boundary condition. */ ACTDISK_INLET = 32, /*!< \brief Actuator disk inlet boundary definition. */ ACTDISK_OUTLET = 33, /*!< \brief Actuator disk outlet boundary definition. */ CLAMPED_BOUNDARY = 34, /*!< \brief Clamped Boundary definition. */ diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index c5984d230f55..e271a37315ef 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -819,26 +819,26 @@ void CConfig::SetPointersNull(void) { /*--- Marker Pointers ---*/ - Marker_Euler = nullptr; Marker_FarField = nullptr; Marker_Custom = nullptr; - Marker_SymWall = nullptr; Marker_PerBound = nullptr; - Marker_PerDonor = nullptr; Marker_NearFieldBound = nullptr; - Marker_Deform_Mesh = nullptr; Marker_Deform_Mesh_Sym_Plane= nullptr; Marker_Fluid_Load = nullptr; - Marker_Inlet = nullptr; Marker_Outlet = nullptr; - Marker_Supersonic_Inlet = nullptr; Marker_Supersonic_Outlet= nullptr; Marker_Smoluchowski_Maxwell = nullptr; - Marker_Isothermal = nullptr; Marker_HeatFlux = nullptr; Marker_EngineInflow = nullptr; - Marker_Load = nullptr; Marker_Disp_Dir = nullptr; Marker_RoughWall = nullptr; - Marker_EngineExhaust = nullptr; Marker_Displacement = nullptr; Marker_Load = nullptr; - Marker_Load_Dir = nullptr; Marker_Load_Sine = nullptr; Marker_Clamped = nullptr; - Marker_FlowLoad = nullptr; Marker_Internal = nullptr; - Marker_All_TagBound = nullptr; Marker_CfgFile_TagBound = nullptr; Marker_All_KindBC = nullptr; - Marker_CfgFile_KindBC = nullptr; Marker_All_SendRecv = nullptr; Marker_All_PerBound = nullptr; - Marker_ZoneInterface = nullptr; Marker_All_ZoneInterface= nullptr; Marker_Riemann = nullptr; - Marker_Fluid_InterfaceBound = nullptr; Marker_CHTInterface = nullptr; Marker_Damper = nullptr; - Marker_Emissivity = nullptr; + Marker_Euler = nullptr; Marker_FarField = nullptr; Marker_Custom = nullptr; + Marker_SymWall = nullptr; Marker_PerBound = nullptr; + Marker_PerDonor = nullptr; Marker_NearFieldBound = nullptr; + Marker_Deform_Mesh = nullptr; Marker_Deform_Mesh_Sym_Plane= nullptr; Marker_Fluid_Load = nullptr; + Marker_Inlet = nullptr; Marker_Outlet = nullptr; + Marker_Supersonic_Inlet = nullptr; Marker_Supersonic_Outlet = nullptr; Marker_Smoluchowski_Maxwell= nullptr; + Marker_Isothermal = nullptr; Marker_HeatFlux = nullptr; Marker_EngineInflow = nullptr; + Marker_Load = nullptr; Marker_Disp_Dir = nullptr; Marker_RoughWall = nullptr; + Marker_EngineExhaust = nullptr; Marker_Displacement = nullptr; Marker_Load = nullptr; + Marker_Load_Dir = nullptr; Marker_Load_Sine = nullptr; Marker_Clamped = nullptr; + Marker_FlowLoad = nullptr; Marker_Internal = nullptr; + Marker_All_TagBound = nullptr; Marker_CfgFile_TagBound = nullptr; Marker_All_KindBC = nullptr; + Marker_CfgFile_KindBC = nullptr; Marker_All_SendRecv = nullptr; Marker_All_PerBound = nullptr; + Marker_ZoneInterface = nullptr; Marker_All_ZoneInterface = nullptr; Marker_Riemann = nullptr; + Marker_Fluid_InterfaceBound = nullptr; Marker_CHTInterface = nullptr; Marker_Damper = nullptr; + Marker_Emissivity = nullptr; Marker_HeatTransfer = nullptr; /*--- Boundary Condition settings ---*/ - Isothermal_Temperature = nullptr; + Isothermal_Temperature = nullptr; HeatTransfer_Coeff = nullptr; HeatTransfer_WallTemp = nullptr; Heat_Flux = nullptr; Displ_Value = nullptr; Load_Value = nullptr; FlowLoad_Value = nullptr; Damper_Constant = nullptr; Wall_Emissivity = nullptr; Roughness_Height = nullptr; @@ -867,11 +867,11 @@ void CConfig::SetPointersNull(void) { Engine_Power = nullptr; Engine_NetThrust = nullptr; Engine_GrossThrust = nullptr; Engine_Area = nullptr; EngineInflow_Target = nullptr; - Exhaust_Temperature_Target = nullptr; Exhaust_Temperature = nullptr; - Exhaust_Pressure_Target = nullptr; Inlet_Ttotal = nullptr; Inlet_Ptotal = nullptr; - Inlet_FlowDir = nullptr; Inlet_Temperature = nullptr; Inlet_Pressure = nullptr; - Inlet_Velocity = nullptr; Inflow_Mach = nullptr; Inflow_Pressure = nullptr; - Exhaust_Pressure = nullptr; Outlet_Pressure = nullptr; Isothermal_Temperature= nullptr; + Exhaust_Temperature_Target = nullptr; Exhaust_Temperature = nullptr; Exhaust_Pressure = nullptr; + Exhaust_Pressure_Target = nullptr; Inlet_Ttotal = nullptr; Inlet_Ptotal = nullptr; + Inlet_FlowDir = nullptr; Inlet_Temperature = nullptr; Inlet_Pressure = nullptr; + Inlet_Velocity = nullptr; Inflow_Mach = nullptr; Inflow_Pressure = nullptr; + Outlet_Pressure = nullptr; Isothermal_Temperature = nullptr; ElasticityMod = nullptr; PoissonRatio = nullptr; MaterialDensity = nullptr; @@ -1204,7 +1204,7 @@ void CConfig::SetConfig_Options() { /*--- Options related to Constant Thermal Conductivity Model ---*/ /* DESCRIPTION: default value for AIR */ - addDoubleOption("KT_CONSTANT", Kt_Constant , 0.0257); + addDoubleOption("THERMAL_CONDUCTIVITY_CONSTANT", Thermal_Conductivity_Constant , 0.0257); /*--- Options related to temperature polynomial coefficients for fluid models. ---*/ @@ -1280,12 +1280,6 @@ void CConfig::SetConfig_Options() { addDoubleArrayOption("FREESTREAM_VELOCITY", 3, vel_inf); /* DESCRIPTION: Free-stream viscosity (1.853E-5 Ns/m^2 (air), 0.798E-3 Ns/m^2 (water)) */ addDoubleOption("FREESTREAM_VISCOSITY", Viscosity_FreeStream, -1.0); - /* DESCRIPTION: Thermal conductivity used for heat equation */ - addDoubleOption("SOLID_THERMAL_CONDUCTIVITY", Thermal_Conductivity_Solid, 0.0); - /* DESCRIPTION: Solids temperature at freestream conditions */ - addDoubleOption("SOLID_TEMPERATURE_INIT", Temperature_Freestream_Solid, 288.15); - /* DESCRIPTION: Density used in solids */ - addDoubleOption("SOLID_DENSITY", Density_Solid, 2710.0); /* DESCRIPTION: */ addDoubleOption("FREESTREAM_INTERMITTENCY", Intermittency_FreeStream, 1.0); /* DESCRIPTION: */ @@ -1518,6 +1512,9 @@ void CConfig::SetConfig_Options() { /*!\brief MARKER_HEATFLUX \n DESCRIPTION: Specified heat flux wall boundary marker(s) Format: ( Heat flux marker, wall heat flux (static), ... ) \ingroup Config*/ addStringDoubleListOption("MARKER_HEATFLUX", nMarker_HeatFlux, Marker_HeatFlux, Heat_Flux); + /*!\brief MARKER_HEATTRANSFER DESCRIPTION: Heat flux with specified heat transfer coefficient boundary marker(s)\n + * Format: ( Heat transfer marker, heat transfer coefficient, wall temperature (static), ... ) \ingroup Config */ + addExhaustOption("MARKER_HEATTRANSFER", nMarker_HeatTransfer, Marker_HeatTransfer, HeatTransfer_Coeff, HeatTransfer_WallTemp); /*!\brief Smluchowski/Maxwell wall boundary marker(s) \n DESCRIPTION: Slip velocity and temperature jump wall boundary marker(s) Format: ( Heat flux marker, wall temperature (static), momentum accomodation coefficient, thermal accomodation coefficient ... ) \ingroup Config*/ addStringDoubleListOption("MARKER_SMOLUCHOWSKI_MAXWELL", nMarker_Smoluchowski_Maxwell, Marker_Smoluchowski_Maxwell, Isothermal_Temperature); //Missing TMAC and TAC @@ -2499,12 +2496,6 @@ void CConfig::SetConfig_Options() { /* Options: NO, YES \ingroup Config */ addEnumOption("CHT_COUPLING_METHOD", Kind_CHT_Coupling, CHT_Coupling_Map, CHT_COUPLING::DIRECT_TEMPERATURE_ROBIN_HEATFLUX); - /* DESCRIPTION: Thermal diffusivity constant */ - addDoubleOption("THERMAL_DIFFUSIVITY", Thermal_Diffusivity, 1.172E-5); - - /* DESCRIPTION: Thermal diffusivity constant */ - addDoubleOption("THERMAL_DIFFUSIVITY_SOLID", Thermal_Diffusivity_Solid, 1.172E-5); - /*!\par CONFIG_CATEGORY: Visualize Control Volumes \ingroup Config*/ /*--- options related to visualizing control volumes ---*/ @@ -2911,6 +2902,16 @@ void CConfig::SetConfig_Parsing(istream& config_buffer){ /*else if (!option_name.compare("CONV_CRITERIA")) newString.append(string("CONV_CRITERIA is deprecated. SU2 will choose the criteria automatically based on the CONV_FIELD.\n") + string("RESIDUAL for any RMS_* BGS_* value. CAUCHY for coefficients like DRAG etc.\n\n"));*/ + if (!option_name.compare("THERMAL_DIFFUSIVITY")) + newString.append("THERMAL_DIFFUSIVITY is deprecated. See the INC_ENERGY_EQUATION options instead.\n\n"); + if (!option_name.compare("THERMAL_DIFFUSIVITY_SOLID")) + newString.append("THERMAL_DIFFUSIVITY_SOLID is deprecated. Set THERMAL_CONDUCTIVITY_CONSTANT, MATERIAL_DENSITY and SPECIFIC_HEAT_CP instead.\n\n"); + if (!option_name.compare("SOLID_THERMAL_CONDUCTIVITY")) + newString.append("SOLID_THERMAL_CONDUCTIVITY is deprecated. Use THERMAL_CONDUCTIVITY_CONSTANT instead.\n\n"); + if (!option_name.compare("SOLID_DENSITY")) + newString.append("SOLID_DENSITY is deprecated. Use MATERIAL_DENSITY instead.\n\n"); + if (!option_name.compare("SOLID_TEMPERATURE_INIT")) + newString.append("SOLID_TEMPERATURE_INIT is deprecated. Use FREESTREAM_TEMPERATURE instead.\n\n"); else { /*--- Find the most likely candidate for the unrecognized option, based on the length of start and end character sequences shared by candidates and the option. ---*/ @@ -3577,7 +3578,7 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i if(fabs(Mu_S-110.4) < 1.0E-8) Mu_S *= 1.8; /* Correct the thermal conductivity, if it contains the default SI value. */ - if(fabs(Kt_Constant-0.0257) < 1.0E-10) Kt_Constant *= 0.577789317; + if(fabs(Thermal_Conductivity_Constant-0.0257) < 1.0E-10) Thermal_Conductivity_Constant *= 0.577789317; } /*--- Check for Measurement System ---*/ @@ -4694,10 +4695,10 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i } /*--- Check that if the wall roughness array are compatible and set deafult values if needed. ---*/ - if ((nMarker_HeatFlux > 0) || (nMarker_Isothermal > 0) || (nMarker_CHTInterface > 0)) { + if ((nMarker_HeatFlux > 0) || (nMarker_Isothermal > 0) || (nMarker_HeatTransfer) || (nMarker_CHTInterface > 0)) { /*--- The total number of wall markers. ---*/ - unsigned short nWall = nMarker_HeatFlux + nMarker_Isothermal + nMarker_CHTInterface; + unsigned short nWall = nMarker_HeatFlux + nMarker_Isothermal + nMarker_HeatTransfer + nMarker_CHTInterface; /*--- If no roughness is specified all walls are assumed to be smooth. ---*/ if (nRough_Wall == 0) { @@ -4713,10 +4714,14 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i Roughness_Height[nMarker_HeatFlux + iMarker] = 0.0; Kind_Wall[nMarker_HeatFlux + iMarker] = WALL_TYPE::SMOOTH; } - for (iMarker = 0; iMarker < nMarker_CHTInterface; iMarker++) { + for (iMarker = 0; iMarker < nMarker_HeatTransfer; iMarker++) { Roughness_Height[nMarker_HeatFlux + nMarker_Isothermal + iMarker] = 0.0; Kind_Wall[nMarker_HeatFlux + nMarker_Isothermal + iMarker] = WALL_TYPE::SMOOTH; } + for (iMarker = 0; iMarker < nMarker_CHTInterface; iMarker++) { + Roughness_Height[nMarker_HeatFlux + nMarker_Isothermal + nMarker_HeatTransfer + iMarker] = 0.0; + Kind_Wall[nMarker_HeatFlux + nMarker_Isothermal + nMarker_HeatTransfer + iMarker] = WALL_TYPE::SMOOTH; + } /*--- Check for mismatch in number of rough walls and solid walls. ---*/ } else if (nRough_Wall > nWall) { @@ -4741,7 +4746,7 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i Kind_Wall[iMarker] = WALL_TYPE::SMOOTH; } - /*--- Look through heat flux, isothermal and cht_interface markers and assign proper values. ---*/ + /*--- Look through heat flux, isothermal, heat transfer and cht_interface markers and assign proper values. ---*/ for (iMarker = 0; iMarker < nRough_Wall; iMarker++) { for (jMarker = 0; jMarker < nMarker_HeatFlux; jMarker++) if (Marker_HeatFlux[jMarker].compare(Marker_RoughWall[iMarker]) == 0) { @@ -4755,9 +4760,15 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i chkRough++; } + for (jMarker = 0; jMarker < nMarker_HeatTransfer; jMarker++) + if (Marker_HeatTransfer[jMarker].compare(Marker_RoughWall[iMarker]) == 0) { + Roughness_Height[nMarker_HeatFlux + nMarker_Isothermal + jMarker] = temp_rough[iMarker]; + chkRough++; + } + for (jMarker = 0; jMarker < nMarker_CHTInterface; jMarker++) if (Marker_CHTInterface[jMarker].compare(Marker_RoughWall[iMarker]) == 0) { - Roughness_Height[nMarker_HeatFlux + nMarker_Isothermal + jMarker] = temp_rough[iMarker]; + Roughness_Height[nMarker_HeatFlux + nMarker_Isothermal + nMarker_HeatTransfer + jMarker] = temp_rough[iMarker]; chkRough++; } } @@ -5051,7 +5062,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { iMarker_NearFieldBound, iMarker_Fluid_InterfaceBound, iMarker_Inlet, iMarker_Riemann, iMarker_Giles, iMarker_Outlet, iMarker_Smoluchowski_Maxwell, - iMarker_Isothermal,iMarker_HeatFlux, + iMarker_Isothermal,iMarker_HeatFlux,iMarker_HeatTansfer, iMarker_EngineInflow, iMarker_EngineExhaust, iMarker_Damper, iMarker_Displacement, iMarker_Load, iMarker_FlowLoad, iMarker_Internal, iMarker_Monitoring, iMarker_Designing, iMarker_GeoEval, iMarker_Plotting, iMarker_Analyze, @@ -5065,12 +5076,11 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { SU2_MPI::Comm_size(SU2_MPI::GetComm(), &size); /*--- Compute the total number of markers in the config file ---*/ - nMarker_CfgFile = nMarker_Euler + nMarker_FarField + nMarker_SymWall + nMarker_PerBound + nMarker_NearFieldBound + nMarker_Fluid_InterfaceBound + nMarker_CHTInterface + nMarker_Inlet + nMarker_Riemann + nMarker_Smoluchowski_Maxwell + nMarker_Giles + nMarker_Outlet + nMarker_Isothermal + - nMarker_HeatFlux + + nMarker_HeatFlux + nMarker_HeatTransfer + nMarker_EngineInflow + nMarker_EngineExhaust + nMarker_Internal + nMarker_Supersonic_Inlet + nMarker_Supersonic_Outlet + nMarker_Displacement + nMarker_Load + nMarker_FlowLoad + nMarker_Custom + nMarker_Damper + nMarker_Fluid_Load + @@ -5359,6 +5369,12 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) { iMarker_CfgFile++; } + for (iMarker_HeatTansfer = 0; iMarker_HeatTansfer < nMarker_HeatTransfer; iMarker_HeatTansfer++) { + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_HeatTransfer[iMarker_HeatTansfer]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = HEAT_TRANSFER; + iMarker_CfgFile++; + } + for (iMarker_Clamped = 0; iMarker_Clamped < nMarker_Clamped; iMarker_Clamped++) { Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Clamped[iMarker_Clamped]; Marker_CfgFile_KindBC[iMarker_CfgFile] = CLAMPED_BOUNDARY; @@ -5554,7 +5570,7 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { iMarker_Fluid_InterfaceBound, iMarker_Inlet, iMarker_Riemann, iMarker_Deform_Mesh, iMarker_Deform_Mesh_Sym_Plane, iMarker_Fluid_Load, iMarker_Smoluchowski_Maxwell, iWall_Catalytic, - iMarker_Giles, iMarker_Outlet, iMarker_Isothermal, iMarker_HeatFlux, + iMarker_Giles, iMarker_Outlet, iMarker_Isothermal, iMarker_HeatFlux, iMarker_HeatTransfer, iMarker_EngineInflow, iMarker_EngineExhaust, iMarker_Displacement, iMarker_Damper, iMarker_Load, iMarker_FlowLoad, iMarker_Internal, iMarker_Monitoring, iMarker_Designing, iMarker_GeoEval, iMarker_Plotting, iMarker_Analyze, iMarker_DV, iDV_Value, @@ -6939,6 +6955,15 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { BoundaryTable.PrintFooter(); } + if (nMarker_HeatTransfer != 0) { + BoundaryTable << "Heat transfer wall"; + for (iMarker_HeatTransfer = 0; iMarker_HeatTransfer < nMarker_HeatTransfer; iMarker_HeatTransfer++) { + BoundaryTable << Marker_HeatTransfer[iMarker_HeatTransfer]; + if (iMarker_HeatTransfer < nMarker_HeatTransfer-1) BoundaryTable << " "; + } + BoundaryTable.PrintFooter(); + } + if (nWall_Catalytic != 0) { BoundaryTable << "Catalytic wall"; for (iWall_Catalytic = 0; iWall_Catalytic < nWall_Catalytic; iWall_Catalytic++) { @@ -7355,6 +7380,7 @@ bool CConfig::GetViscous_Wall(unsigned short iMarker) const { return (Marker_All_KindBC[iMarker] == HEAT_FLUX || Marker_All_KindBC[iMarker] == ISOTHERMAL || + Marker_All_KindBC[iMarker] == HEAT_TRANSFER || Marker_All_KindBC[iMarker] == SMOLUCHOWSKI_MAXWELL || Marker_All_KindBC[iMarker] == CHT_WALL_INTERFACE); } @@ -7715,6 +7741,8 @@ CConfig::~CConfig(void) { delete[] Outlet_Pressure; delete[] Isothermal_Temperature; delete[] Heat_Flux; + delete[] HeatTransfer_Coeff; + delete[] HeatTransfer_WallTemp; delete[] Displ_Value; delete[] Load_Value; delete[] Damper_Constant; @@ -8836,25 +8864,38 @@ void CConfig::SetIncPressureOut_BC(su2double val_pressure) { su2double CConfig::GetIsothermal_Temperature(string val_marker) const { - unsigned short iMarker_Isothermal = 0; - - if (nMarker_Isothermal > 0) { - for (iMarker_Isothermal = 0; iMarker_Isothermal < nMarker_Isothermal; iMarker_Isothermal++) - if (Marker_Isothermal[iMarker_Isothermal] == val_marker) break; - } + for (unsigned short iMarker_Isothermal = 0; iMarker_Isothermal < nMarker_Isothermal; iMarker_Isothermal++) + if (Marker_Isothermal[iMarker_Isothermal] == val_marker) + return Isothermal_Temperature[iMarker_Isothermal]; - return Isothermal_Temperature[iMarker_Isothermal]; + return Isothermal_Temperature[0]; } su2double CConfig::GetWall_HeatFlux(string val_marker) const { - unsigned short iMarker_HeatFlux = 0; - if (nMarker_HeatFlux > 0) { - for (iMarker_HeatFlux = 0; iMarker_HeatFlux < nMarker_HeatFlux; iMarker_HeatFlux++) - if (Marker_HeatFlux[iMarker_HeatFlux] == val_marker) break; - } + for (unsigned short iMarker_HeatFlux = 0; iMarker_HeatFlux < nMarker_HeatFlux; iMarker_HeatFlux++) + if (Marker_HeatFlux[iMarker_HeatFlux] == val_marker) + return Heat_Flux[iMarker_HeatFlux]; - return Heat_Flux[iMarker_HeatFlux]; + return Heat_Flux[0]; +} + +su2double CConfig::GetWall_HeatTransfer_Coefficient(string val_marker) const { + + for (unsigned short iMarker_HeatTransfer = 0; iMarker_HeatTransfer < nMarker_HeatTransfer; iMarker_HeatTransfer++) + if (Marker_HeatTransfer[iMarker_HeatTransfer] == val_marker) + return HeatTransfer_Coeff[iMarker_HeatTransfer]; + + return HeatTransfer_Coeff[0]; +} + +su2double CConfig::GetWall_HeatTransfer_Temperature(string val_marker) const { + + for (unsigned short iMarker_HeatTransfer = 0; iMarker_HeatTransfer < nMarker_HeatTransfer; iMarker_HeatTransfer++) + if (Marker_HeatTransfer[iMarker_HeatTransfer] == val_marker) + return HeatTransfer_WallTemp[iMarker_HeatTransfer]; + + return HeatTransfer_WallTemp[0]; } pair CConfig::GetWallRoughnessProperties(string val_marker) const { @@ -8862,7 +8903,7 @@ pair CConfig::GetWallRoughnessProperties(string val_marker short flag = -1; pair WallProp; - if (nMarker_HeatFlux > 0 || nMarker_Isothermal > 0 || nMarker_CHTInterface > 0) { + if (nMarker_HeatFlux > 0 || nMarker_Isothermal > 0 || nMarker_HeatTransfer || nMarker_CHTInterface > 0) { for (iMarker = 0; iMarker < nMarker_HeatFlux; iMarker++) if (Marker_HeatFlux[iMarker] == val_marker) { flag = iMarker; @@ -8875,9 +8916,15 @@ pair CConfig::GetWallRoughnessProperties(string val_marker WallProp = make_pair(Kind_Wall[flag], Roughness_Height[flag]); return WallProp; } + for (iMarker = 0; iMarker < nMarker_HeatTransfer; iMarker++) + if (Marker_HeatTransfer[iMarker] == val_marker) { + flag = nMarker_HeatFlux + nMarker_Isothermal + iMarker; + WallProp = make_pair(Kind_Wall[flag], Roughness_Height[flag]); + return WallProp; + } for (iMarker = 0; iMarker < nMarker_CHTInterface; iMarker++) if (Marker_CHTInterface[iMarker] == val_marker) { - flag = nMarker_HeatFlux + nMarker_Isothermal + iMarker; + flag = nMarker_HeatFlux + nMarker_Isothermal + nMarker_HeatTransfer + iMarker; WallProp = make_pair(Kind_Wall[flag], Roughness_Height[flag]); return WallProp; } diff --git a/SU2_CFD/include/solvers/CIncNSSolver.hpp b/SU2_CFD/include/solvers/CIncNSSolver.hpp index 8702dada8388..065df3fe08bd 100644 --- a/SU2_CFD/include/solvers/CIncNSSolver.hpp +++ b/SU2_CFD/include/solvers/CIncNSSolver.hpp @@ -38,7 +38,7 @@ class CIncNSSolver final : public CIncEulerSolver { /*! - * \brief Generic implementation of the isothermal and heatflux walls. + * \brief Generic implementation of the isothermal, heatflux and heat-transfer/convection walls. */ void BC_Wall_Generic(const CGeometry *geometry, const CConfig *config, @@ -157,6 +157,16 @@ class CIncNSSolver final : public CIncEulerSolver { CConfig *config, unsigned short val_marker) override; + /*! + * \brief Impose a heat flux by prescribing a heat transfer coefficient and a temperature at infinity. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + * \param[in] val_marker - Surface marker where the boundary condition is applied. + */ + void BC_HeatTransfer_Wall(const CGeometry *geometry, + const CConfig *config, + const unsigned short val_marker) override; + /*! * \brief Impose the (received) conjugate heat variables. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/include/solvers/CNSSolver.hpp b/SU2_CFD/include/solvers/CNSSolver.hpp index 3e362213d69c..958f4659786a 100644 --- a/SU2_CFD/include/solvers/CNSSolver.hpp +++ b/SU2_CFD/include/solvers/CNSSolver.hpp @@ -65,7 +65,7 @@ class CNSSolver final : public CEulerSolver { */ void AddDynamicGridResidualContribution(unsigned long iPoint, unsigned long Point_Normal, - CGeometry* geometry, + const CGeometry* geometry, const su2double* UnitNormal, su2double Area, const su2double* GridVel, @@ -96,6 +96,14 @@ class CNSSolver final : public CEulerSolver { unsigned short val_marker, bool cht_mode = false); + /*! + * \brief Generic implementation of the heatflux and heat-transfer/convection walls. + */ + void BC_HeatFlux_Wall_Generic(const CGeometry *geometry, + const CConfig *config, + unsigned short val_marker, + unsigned short kind_boundary); + /*! * \brief Compute the viscous contribution for a particular edge. * \param[in] iEdge - Edge for which the flux and Jacobians are to be computed. @@ -185,6 +193,16 @@ class CNSSolver final : public CEulerSolver { CConfig *config, unsigned short val_marker) override; + /*! + * \brief Impose a heat flux by prescribing a heat transfer coefficient and a temperature at infinity. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + * \param[in] val_marker - Surface marker where the boundary condition is applied. + */ + void BC_HeatTransfer_Wall(const CGeometry *geometry, + const CConfig *config, + const unsigned short val_marker) override; + /*! * \brief Impose the Navier-Stokes boundary condition (strong). * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/include/solvers/CSolver.hpp b/SU2_CFD/include/solvers/CSolver.hpp index 8880f985bfac..1c64abfe84e1 100644 --- a/SU2_CFD/include/solvers/CSolver.hpp +++ b/SU2_CFD/include/solvers/CSolver.hpp @@ -1061,6 +1061,16 @@ class CSolver { CConfig *config, unsigned short val_marker) { } + /*! + * \brief Impose a heat flux by prescribing a heat transfer coefficient and a temperature at infinity. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + * \param[in] val_marker - Surface marker where the boundary condition is applied. + */ + inline virtual void BC_HeatTransfer_Wall(const CGeometry *geometry, + const CConfig *config, + const unsigned short val_marker) { } + /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/src/fluid/CFluidModel.cpp b/SU2_CFD/src/fluid/CFluidModel.cpp index 9c995c36c535..1367206db669 100644 --- a/SU2_CFD/src/fluid/CFluidModel.cpp +++ b/SU2_CFD/src/fluid/CFluidModel.cpp @@ -59,9 +59,9 @@ void CFluidModel::SetThermalConductivityModel(const CConfig* config) { case CONDUCTIVITYMODEL::CONSTANT: if (config->GetKind_ConductivityModel_Turb() == CONDUCTIVITYMODEL_TURB::CONSTANT_PRANDTL) { ThermalConductivity = unique_ptr( - new CConstantConductivityRANS(config->GetKt_ConstantND(), config->GetPrandtl_Turb())); + new CConstantConductivityRANS(config->GetThermal_Conductivity_ConstantND(), config->GetPrandtl_Turb())); } else { - ThermalConductivity = unique_ptr(new CConstantConductivity(config->GetKt_ConstantND())); + ThermalConductivity = unique_ptr(new CConstantConductivity(config->GetThermal_Conductivity_ConstantND())); } break; case CONDUCTIVITYMODEL::CONSTANT_PRANDTL: diff --git a/SU2_CFD/src/integration/CIntegration.cpp b/SU2_CFD/src/integration/CIntegration.cpp index 853172b48bbd..010ae194cefd 100644 --- a/SU2_CFD/src/integration/CIntegration.cpp +++ b/SU2_CFD/src/integration/CIntegration.cpp @@ -153,6 +153,9 @@ void CIntegration::Space_Integration(CGeometry *geometry, case HEAT_FLUX: solver_container[MainSolver]->BC_HeatFlux_Wall(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); break; + case HEAT_TRANSFER: + solver_container[MainSolver]->BC_HeatTransfer_Wall(geometry, config, iMarker); + break; case CUSTOM_BOUNDARY: solver_container[MainSolver]->BC_Custom(geometry, solver_container, conv_bound_numerics, visc_bound_numerics, config, iMarker); break; diff --git a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp index 9996f85c410f..e9f164f8ff7c 100644 --- a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp +++ b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp @@ -124,13 +124,14 @@ void CConjugateHeatInterface::GetDonor_Variable(CSolver *donor_solution, CGeomet /*--- Heat solver stand-alone case ---*/ - const su2double thermal_diffusivity = donor_config->GetThermalDiffusivity_Solid(); + const su2double thermal_diffusivity = donor_config->GetThermalDiffusivity(); heat_flux_density = thermal_diffusivity*dTdn; + if ((donor_config->GetKind_CHT_Coupling() == CHT_COUPLING::DIRECT_TEMPERATURE_ROBIN_HEATFLUX) || (donor_config->GetKind_CHT_Coupling() == CHT_COUPLING::AVERAGED_TEMPERATURE_ROBIN_HEATFLUX)) { - const su2double rho_cp_solid = donor_config->GetSpecific_Heat_Cp()*donor_config->GetDensity_Solid(); + const su2double rho_cp_solid = donor_config->GetSpecific_Heat_Cp()*donor_config->GetMaterialDensity(0); conductivity_over_dist = thermal_diffusivity*rho_cp_solid/dist; } } diff --git a/SU2_CFD/src/output/CFlowOutput.cpp b/SU2_CFD/src/output/CFlowOutput.cpp index ffaa742062ab..b3e3ea4936d5 100644 --- a/SU2_CFD/src/output/CFlowOutput.cpp +++ b/SU2_CFD/src/output/CFlowOutput.cpp @@ -1397,8 +1397,8 @@ void CFlowOutput::WriteForcesBreakdown(CConfig *config, CGeometry *geometry, CSo case CONDUCTIVITYMODEL::CONSTANT: Breakdown_file << "Conductivity Model: CONSTANT "<< "\n"; - Breakdown_file << "Molecular Conductivity: " << config->GetKt_Constant()<< " W/m^2.K." << "\n"; - Breakdown_file << "Molecular Conductivity (non-dim): " << config->GetKt_ConstantND()<< "\n"; + Breakdown_file << "Molecular Conductivity: " << config->GetThermal_Conductivity_Constant()<< " W/m^2.K." << "\n"; + Breakdown_file << "Molecular Conductivity (non-dim): " << config->GetThermal_Conductivity_ConstantND()<< "\n"; break; default: @@ -1762,8 +1762,8 @@ void CFlowOutput::WriteForcesBreakdown(CConfig *config, CGeometry *geometry, CSo case CONDUCTIVITYMODEL::CONSTANT: Breakdown_file << "Conductivity Model: CONSTANT "<< "\n"; - Breakdown_file << "Molecular Conductivity: " << config->GetKt_Constant()<< " W/m^2.K." << "\n"; - Breakdown_file << "Molecular Conductivity (non-dim): " << config->GetKt_ConstantND()<< "\n"; + Breakdown_file << "Molecular Conductivity: " << config->GetThermal_Conductivity_Constant()<< " W/m^2.K." << "\n"; + Breakdown_file << "Molecular Conductivity (non-dim): " << config->GetThermal_Conductivity_ConstantND()<< "\n"; break; case CONDUCTIVITYMODEL::POLYNOMIAL: diff --git a/SU2_CFD/src/output/output_structure_legacy.cpp b/SU2_CFD/src/output/output_structure_legacy.cpp index fc65caa3aeb6..f4998148818b 100644 --- a/SU2_CFD/src/output/output_structure_legacy.cpp +++ b/SU2_CFD/src/output/output_structure_legacy.cpp @@ -2991,8 +2991,8 @@ void COutputLegacy::SpecialOutput_ForcesBreakdown(CSolver *****solver, CGeometry case CONDUCTIVITYMODEL::CONSTANT: Breakdown_file << "Conductivity Model: CONSTANT "<< "\n"; - Breakdown_file << "Molecular Conductivity: " << config[val_iZone]->GetKt_Constant()<< " W/m^2.K." << "\n"; - Breakdown_file << "Molecular Conductivity (non-dim): " << config[val_iZone]->GetKt_ConstantND()<< "\n"; + Breakdown_file << "Molecular Conductivity: " << config[val_iZone]->GetThermal_Conductivity_Constant()<< " W/m^2.K." << "\n"; + Breakdown_file << "Molecular Conductivity (non-dim): " << config[val_iZone]->GetThermal_Conductivity_ConstantND()<< "\n"; break; default: @@ -3356,8 +3356,8 @@ void COutputLegacy::SpecialOutput_ForcesBreakdown(CSolver *****solver, CGeometry case CONDUCTIVITYMODEL::CONSTANT: Breakdown_file << "Conductivity Model: CONSTANT "<< "\n"; - Breakdown_file << "Molecular Conductivity: " << config[val_iZone]->GetKt_Constant()<< " W/m^2.K." << "\n"; - Breakdown_file << "Molecular Conductivity (non-dim): " << config[val_iZone]->GetKt_ConstantND()<< "\n"; + Breakdown_file << "Molecular Conductivity: " << config[val_iZone]->GetThermal_Conductivity_Constant()<< " W/m^2.K." << "\n"; + Breakdown_file << "Molecular Conductivity (non-dim): " << config[val_iZone]->GetThermal_Conductivity_ConstantND()<< "\n"; break; case CONDUCTIVITYMODEL::POLYNOMIAL: diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 24507b680d70..1b9269be9971 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -1334,7 +1334,7 @@ void CEulerSolver::SetNondimensionalization(CConfig *config, unsigned short iMes config->SetMu_Temperature_RefND(config->GetMu_Temperature_Ref()/config->GetTemperature_Ref()); /*--- Constant thermal conductivity model. ---*/ - config->SetKt_ConstantND(config->GetKt_Constant()/Conductivity_Ref); + config->SetThermal_Conductivity_ConstantND(config->GetThermal_Conductivity_Constant()/Conductivity_Ref); } /*--- Create one final fluid model object per OpenMP thread to be able to use them in parallel. @@ -1480,7 +1480,7 @@ void CEulerSolver::SetNondimensionalization(CConfig *config, unsigned short iMes case CONDUCTIVITYMODEL::CONSTANT: ModelTable << "CONSTANT"; Unit << "W/m^2.K"; - NonDimTable << "Molecular Cond." << config->GetKt_Constant() << config->GetKt_Constant()/config->GetKt_ConstantND() << Unit.str() << config->GetKt_ConstantND(); + NonDimTable << "Molecular Cond." << config->GetThermal_Conductivity_Constant() << config->GetThermal_Conductivity_Constant()/config->GetThermal_Conductivity_ConstantND() << Unit.str() << config->GetThermal_Conductivity_ConstantND(); Unit.str(""); NonDimTable.PrintFooter(); break; diff --git a/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp b/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp index 78455ff360e5..5e8b48b74a21 100644 --- a/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp +++ b/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp @@ -1080,7 +1080,7 @@ void CFEM_DG_EulerSolver::SetNondimensionalization(CConfig *config, config->SetMu_Temperature_RefND(config->GetMu_Temperature_Ref()/config->GetTemperature_Ref()); /* constant thermal conductivity model */ - config->SetKt_ConstantND(config->GetKt_Constant()/Conductivity_Ref); + config->SetThermal_Conductivity_ConstantND(config->GetThermal_Conductivity_Constant()/Conductivity_Ref); FluidModel->SetLaminarViscosityModel(config); FluidModel->SetThermalConductivityModel(config); @@ -1183,7 +1183,7 @@ void CFEM_DG_EulerSolver::SetNondimensionalization(CConfig *config, case CONDUCTIVITYMODEL::CONSTANT: ModelTable << "CONSTANT"; Unit << "W/m^2.K"; - NonDimTable << "Molecular Cond." << config->GetKt_Constant() << config->GetKt_Constant()/config->GetKt_ConstantND() << Unit.str() << config->GetKt_ConstantND(); + NonDimTable << "Molecular Cond." << config->GetThermal_Conductivity_Constant() << config->GetThermal_Conductivity_Constant()/config->GetThermal_Conductivity_ConstantND() << Unit.str() << config->GetThermal_Conductivity_ConstantND(); Unit.str(""); NonDimTable.PrintFooter(); break; diff --git a/SU2_CFD/src/solvers/CHeatSolver.cpp b/SU2_CFD/src/solvers/CHeatSolver.cpp index a9579695bf0e..b7a6b6724532 100644 --- a/SU2_CFD/src/solvers/CHeatSolver.cpp +++ b/SU2_CFD/src/solvers/CHeatSolver.cpp @@ -104,10 +104,9 @@ CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iM /*--- Set the reference values for temperature ---*/ - su2double Temperature_FreeStream = config->GetInc_Temperature_Init(); - config->SetTemperature_FreeStream(Temperature_FreeStream); - + su2double Temperature_FreeStream = config->GetTemperature_FreeStream(); su2double Temperature_Ref = 0.0; + if (config->GetRef_Inc_NonDim() == DIMENSIONAL) { Temperature_Ref = 1.0; } @@ -118,22 +117,19 @@ CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iM Temperature_Ref = config->GetInc_Temperature_Ref(); } config->SetTemperature_Ref(Temperature_Ref); + config->SetTemperature_FreeStreamND(Temperature_FreeStream/Temperature_Ref); /*--- Set the reference values for heat fluxes. If the heat solver runs stand-alone, * thermal conductivity is read directly from config file ---*/ - if (heat_equation) { + su2double rho_cp = config->GetMaterialDensity(0)*config->GetSpecific_Heat_Cp(); + config->SetThermalDiffusivity(config->GetThermal_Conductivity_Constant() / rho_cp); - const su2double rho_cp = config->GetDensity_Solid()*config->GetSpecific_Heat_Cp(); - config->SetThermalDiffusivity_Solid(config->GetThermalConductivity_Solid() / rho_cp); - - config->SetTemperature_FreeStreamND(config->GetTemperature_Initial_Solid()/config->GetTemperature_Ref()); + /*--- Fluxes are computed via thermal diffusivity (not conductivity), so we have to divide by rho*cp ---*/ config->SetHeat_Flux_Ref(rho_cp*Temperature_Ref); } else if (flow) { - - config->SetTemperature_FreeStreamND(config->GetTemperature_FreeStream()/config->GetTemperature_Ref()); config->SetHeat_Flux_Ref(config->GetViscosity_Ref()*config->GetSpecific_Heat_Cp()); } @@ -490,8 +486,8 @@ void CHeatSolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_contain thermal_diffusivity_j = (laminar_viscosity/Prandtl_Lam) + (eddy_viscosity_j/Prandtl_Turb); } else { - thermal_diffusivity_i = config->GetThermalDiffusivity_Solid(); - thermal_diffusivity_j = config->GetThermalDiffusivity_Solid(); + thermal_diffusivity_i = config->GetThermalDiffusivity(); + thermal_diffusivity_j = config->GetThermalDiffusivity(); } numerics->SetThermalDiffusivity(thermal_diffusivity_i,thermal_diffusivity_j); @@ -573,7 +569,7 @@ void CHeatSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_conta const su2double laminar_viscosity = config->GetMu_ConstantND(); const su2double Prandtl_Lam = config->GetPrandtl_Lam(); - const su2double thermal_diffusivity = flow ? laminar_viscosity/Prandtl_Lam : config->GetThermalDiffusivity_Solid(); + const su2double thermal_diffusivity = flow ? laminar_viscosity/Prandtl_Lam : config->GetThermalDiffusivity(); //su2double Prandtl_Turb = config->GetPrandtl_Turb(); //laminar_viscosity = config->GetViscosity_FreeStreamND(); // TDE check for consistency for CHT @@ -833,7 +829,7 @@ void CHeatSolver::BC_ConjugateHeat_Interface(CGeometry *geometry, CSolver **solv const bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); const su2double Temperature_Ref = config->GetTemperature_Ref(); - const su2double rho_cp_solid = config->GetDensity_Solid()*config->GetSpecific_Heat_Cp(); + const su2double rho_cp_solid = config->GetMaterialDensity(0)*config->GetSpecific_Heat_Cp(); if (flow) { @@ -905,7 +901,7 @@ void CHeatSolver::Heat_Fluxes(CGeometry *geometry, CSolver **solver_container, C string Marker_Tag, HeatFlux_Tag; const su2double thermal_diffusivity = flow ? config->GetViscosity_FreeStreamND()/config->GetPrandtl_Lam() : - config->GetThermalDiffusivity_Solid(); + config->GetThermalDiffusivity(); AllBound_HeatFlux = 0.0; AllBound_AverageT = 0.0; @@ -1028,7 +1024,7 @@ void CHeatSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, Prandtl_Lam = config->GetPrandtl_Lam(); Prandtl_Turb = config->GetPrandtl_Turb(); - thermal_diffusivity = config->GetThermalDiffusivity_Solid(); + thermal_diffusivity = config->GetThermalDiffusivity(); /*--- Compute spectral radius based on thermal conductivity ---*/ @@ -1066,7 +1062,7 @@ void CHeatSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, /*--- Viscous contribution ---*/ - thermal_diffusivity = config->GetThermalDiffusivity_Solid(); + thermal_diffusivity = config->GetThermalDiffusivity(); if(flow) { if(turb) { eddy_viscosity = solver_container[TURB_SOL]->GetNodes()->GetmuT(iPoint); @@ -1106,7 +1102,7 @@ void CHeatSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, /*--- Viscous contribution ---*/ - thermal_diffusivity = config->GetThermalDiffusivity_Solid(); + thermal_diffusivity = config->GetThermalDiffusivity(); if(flow) { if(turb) { eddy_viscosity = solver_container[TURB_SOL]->GetNodes()->GetmuT(iPoint); diff --git a/SU2_CFD/src/solvers/CIncEulerSolver.cpp b/SU2_CFD/src/solvers/CIncEulerSolver.cpp index 3bfad9f52856..5b16a24c00af 100644 --- a/SU2_CFD/src/solvers/CIncEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CIncEulerSolver.cpp @@ -485,7 +485,7 @@ void CIncEulerSolver::SetNondimensionalization(CConfig *config, unsigned short i /*--- Constant thermal conductivity model ---*/ - config->SetKt_ConstantND(config->GetKt_Constant()/Conductivity_Ref); + config->SetThermal_Conductivity_ConstantND(config->GetThermal_Conductivity_Constant()/Conductivity_Ref); /*--- Conductivity model via polynomial. ---*/ @@ -655,7 +655,7 @@ void CIncEulerSolver::SetNondimensionalization(CConfig *config, unsigned short i case CONDUCTIVITYMODEL::CONSTANT: ModelTable << "CONSTANT"; Unit << "W/m^2.K"; - NonDimTable << "Molecular Cond." << config->GetKt_Constant() << config->GetKt_Constant()/config->GetKt_ConstantND() << Unit.str() << config->GetKt_ConstantND(); + NonDimTable << "Molecular Cond." << config->GetThermal_Conductivity_Constant() << config->GetThermal_Conductivity_Constant()/config->GetThermal_Conductivity_ConstantND() << Unit.str() << config->GetThermal_Conductivity_ConstantND(); Unit.str(""); NonDimTable.PrintFooter(); break; diff --git a/SU2_CFD/src/solvers/CIncNSSolver.cpp b/SU2_CFD/src/solvers/CIncNSSolver.cpp index 5a749ddfea84..6591c503ea10 100644 --- a/SU2_CFD/src/solvers/CIncNSSolver.cpp +++ b/SU2_CFD/src/solvers/CIncNSSolver.cpp @@ -376,16 +376,25 @@ void CIncNSSolver::BC_Wall_Generic(const CGeometry *geometry, const CConfig *con const auto Marker_Tag = config->GetMarker_All_TagBound(val_marker); - /*--- Get the specified wall heat flux or temperature from config ---*/ + /*--- Get the specified wall heat flux, temperature or heat transfer coefficient from config ---*/ - su2double Wall_HeatFlux = 0.0, Twall = 0.0; + su2double Wall_HeatFlux = 0.0, Twall = 0.0, Tinfinity = 0.0, Transfer_Coefficient = 0.0; - if (kind_boundary == HEAT_FLUX) - Wall_HeatFlux = config->GetWall_HeatFlux(Marker_Tag)/config->GetHeat_Flux_Ref(); - else if (kind_boundary == ISOTHERMAL) - Twall = config->GetIsothermal_Temperature(Marker_Tag)/config->GetTemperature_Ref(); - else - SU2_MPI::Error("Unknown type of boundary condition", CURRENT_FUNCTION); + switch(kind_boundary) { + case HEAT_FLUX: + Wall_HeatFlux = config->GetWall_HeatFlux(Marker_Tag)/config->GetHeat_Flux_Ref(); + break; + case ISOTHERMAL: + Twall = config->GetIsothermal_Temperature(Marker_Tag)/config->GetTemperature_Ref(); + break; + case HEAT_TRANSFER: + Transfer_Coefficient = config->GetWall_HeatTransfer_Coefficient(Marker_Tag) * config->GetTemperature_Ref()/config->GetHeat_Flux_Ref(); + Tinfinity = config->GetWall_HeatTransfer_Temperature(Marker_Tag)/config->GetTemperature_Ref(); + break; + default: + SU2_MPI::Error("Unknown type of boundary condition.", CURRENT_FUNCTION); + break; + } /*--- Get wall function treatment from config. ---*/ @@ -393,7 +402,7 @@ void CIncNSSolver::BC_Wall_Generic(const CGeometry *geometry, const CConfig *con // nijso: we do not have a special treatment yet for heated walls // the wall function model is written for heat flux, we have to implement isothermal wall conditions //if (Wall_Function != WALL_FUNCTIONS::NONE) - // SU2_MPI::Error("Wall function treament not implemented yet", CURRENT_FUNCTION); + // SU2_MPI::Error("Wall function treatment not implemented yet.", CURRENT_FUNCTION); /*--- Loop over all of the vertices on this boundary marker ---*/ @@ -436,7 +445,8 @@ void CIncNSSolver::BC_Wall_Generic(const CGeometry *geometry, const CConfig *con if (!energy) continue; - if (kind_boundary == HEAT_FLUX) { + switch(kind_boundary) { + case HEAT_FLUX: /*--- Apply a weak boundary condition for the energy equation. Compute the residual due to the prescribed heat flux. ---*/ @@ -458,8 +468,23 @@ void CIncNSSolver::BC_Wall_Generic(const CGeometry *geometry, const CConfig *con LinSysRes(iPoint, nDim+1) += scalar_factor*dot_product; } // if streamwise_periodic - } - else { // ISOTHERMAL + break; + + case HEAT_TRANSFER: + Twall = nodes->GetTemperature(iPoint); + Wall_HeatFlux = Transfer_Coefficient * (Tinfinity - Twall); + + /*--- Apply a weak boundary condition for the energy equation. + Compute the residual due to the prescribed temperature and transfer coefficient. + Note that for the Heat_Transfer wall, basically a heatflux wall that depends on the local Temperature is applied. ---*/ + LinSysRes(iPoint, nDim+1) -= Wall_HeatFlux*Area; + + if (implicit) { + Jacobian.AddVal2Diag(iPoint, nDim+1, Transfer_Coefficient*Area); + } + break; + + case ISOTHERMAL: const auto Point_Normal = geometry->vertex[val_marker][iVertex]->GetNormal_Neighbor(); @@ -493,7 +518,8 @@ void CIncNSSolver::BC_Wall_Generic(const CGeometry *geometry, const CConfig *con proj_vector_ij = GeometryToolbox::DotProduct(nDim, Edge_Vector, Normal) / dist_ij_2; Jacobian.AddVal2Diag(iPoint, nDim+1, thermal_conductivity*proj_vector_ij); } - } + break; + } // switch } END_SU2_OMP_FOR } @@ -510,6 +536,11 @@ void CIncNSSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver**, CNumerics* BC_Wall_Generic(geometry, config, val_marker, ISOTHERMAL); } +void CIncNSSolver::BC_HeatTransfer_Wall(const CGeometry *geometry, const CConfig *config, const unsigned short val_marker) { + + BC_Wall_Generic(geometry, config, val_marker, HEAT_TRANSFER); +} + void CIncNSSolver::BC_ConjugateHeat_Interface(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CConfig *config, unsigned short val_marker) { @@ -524,7 +555,7 @@ void CIncNSSolver::BC_ConjugateHeat_Interface(CGeometry *geometry, CSolver **sol /*--- Retrieve the specified wall function treatment.---*/ if (config->GetWallFunction_Treatment(Marker_Tag) != WALL_FUNCTIONS::NONE) { - SU2_MPI::Error("Wall function treament not implemented yet", CURRENT_FUNCTION); + SU2_MPI::Error("Wall function treatment not implemented yet.", CURRENT_FUNCTION); } /*--- Loop over boundary points ---*/ diff --git a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp index ee000e94f5a3..73651b8e74db 100644 --- a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp @@ -1200,7 +1200,7 @@ void CNEMOEulerSolver::SetNondimensionalization(CConfig *config, unsigned short config->SetMu_Temperature_RefND(config->GetMu_Temperature_Ref()/config->GetTemperature_Ref()); /* constant thermal conductivity model */ - config->SetKt_ConstantND(config->GetKt_Constant()/Conductivity_Ref); + config->SetThermal_Conductivity_ConstantND(config->GetThermal_Conductivity_Constant()/Conductivity_Ref); } diff --git a/SU2_CFD/src/solvers/CNSSolver.cpp b/SU2_CFD/src/solvers/CNSSolver.cpp index f3b57266d66c..056e0c478241 100644 --- a/SU2_CFD/src/solvers/CNSSolver.cpp +++ b/SU2_CFD/src/solvers/CNSSolver.cpp @@ -313,7 +313,7 @@ void CNSSolver::SetRoe_Dissipation(CGeometry *geometry, CConfig *config){ } void CNSSolver::AddDynamicGridResidualContribution(unsigned long iPoint, unsigned long Point_Normal, - CGeometry* geometry, const su2double* UnitNormal, + const CGeometry* geometry, const su2double* UnitNormal, su2double Area, const su2double* GridVel, su2double** Jacobian_i, su2double& Res_Conv, su2double& Res_Visc) const { @@ -406,24 +406,47 @@ void CNSSolver::AddDynamicGridResidualContribution(unsigned long iPoint, unsigne } } -void CNSSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, - CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { +void CNSSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver**, CNumerics*, + CNumerics*, CConfig *config, unsigned short val_marker) { + + BC_HeatFlux_Wall_Generic(geometry, config, val_marker, HEAT_FLUX); +} + +void CNSSolver::BC_HeatTransfer_Wall(const CGeometry *geometry, const CConfig *config, const unsigned short val_marker) { + + BC_HeatFlux_Wall_Generic(geometry, config, val_marker, HEAT_TRANSFER); +} + +void CNSSolver::BC_HeatFlux_Wall_Generic(const CGeometry *geometry, const CConfig *config, + unsigned short val_marker, unsigned short kind_boundary) { /*--- Identify the boundary by string name and get the specified wall heat flux from config as well as the wall function treatment. ---*/ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); const auto Marker_Tag = config->GetMarker_All_TagBound(val_marker); - su2double Wall_HeatFlux = config->GetWall_HeatFlux(Marker_Tag)/config->GetHeat_Flux_Ref(); + + /*--- Get the specified wall heat flux, temperature or heat transfer coefficient from config ---*/ + + su2double Wall_HeatFlux = 0.0, Tinfinity = 0.0, Transfer_Coefficient = 0.0; + + if (kind_boundary == HEAT_FLUX) { + Wall_HeatFlux = config->GetWall_HeatFlux(Marker_Tag)/config->GetHeat_Flux_Ref(); + } + else if (kind_boundary == HEAT_TRANSFER) { + /*--- The required heatflux will be computed for each iPoint individually based on local Temperature. ---*/ + Transfer_Coefficient = config->GetWall_HeatTransfer_Coefficient(Marker_Tag) * config->GetTemperature_Ref()/config->GetHeat_Flux_Ref(); + Tinfinity = config->GetWall_HeatTransfer_Temperature(Marker_Tag)/config->GetTemperature_Ref(); + } // Wall_Function = config->GetWallFunction_Treatment(Marker_Tag); // if (Wall_Function != WALL_FUNCTION::NONE) { -// SU2_MPI::Error("Wall function treament not implemented yet", CURRENT_FUNCTION); +// SU2_MPI::Error("Wall function treatment not implemented yet", CURRENT_FUNCTION); // } /*--- Jacobian, initialized to zero if needed. ---*/ su2double **Jacobian_i = nullptr; - if (dynamic_grid && implicit) { + if ((dynamic_grid || (kind_boundary == HEAT_TRANSFER)) && implicit) { Jacobian_i = new su2double* [nVar]; for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_i[iVar] = new su2double [nVar] (); @@ -444,6 +467,10 @@ void CNSSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_container if (config->GetMarker_All_PyCustom(val_marker)) Wall_HeatFlux = geometry->GetCustomBoundaryHeatFlux(val_marker, iVertex); + else if (kind_boundary == HEAT_TRANSFER) { + const su2double Twall = nodes->GetTemperature(iPoint); + Wall_HeatFlux = Transfer_Coefficient * (Tinfinity - Twall); + } /*--- Compute dual-grid area and boundary normal ---*/ @@ -503,7 +530,30 @@ void CNSSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_container And add the contributions to the Jacobian due to energy. ---*/ if (implicit) { - if (dynamic_grid) { + if (kind_boundary == HEAT_TRANSFER){ + + /*--- It is necessary to zero the jacobian entries of the energy equation. ---*/ + if (!dynamic_grid) + for (auto iVar = 0u; iVar < nVar; ++iVar) + Jacobian_i[nDim+1][iVar] = 0.0; + + const su2double oneOnRho = 1.0 / nodes->GetDensity(iPoint); + const su2double oneOnCv = (Gamma - 1.0) / config->GetGas_ConstantND(); + const su2double Vel2 = nodes->GetVelocity2(iPoint); + const su2double dTdrho = oneOnRho * ( -Tinfinity + oneOnCv * 0.5 * Vel2); + const su2double dTdrhoe = oneOnCv * oneOnRho; + + /*--- Total specific energy: e=c_v*T+1/2*v^2 => T=1/c_v(rho*e/rho - 1/2||rho v||^2/rho^2). + Together with cv=R/(gamma-1) the following Jacobian contributions for the energy equation can be derived. ---*/ + Jacobian_i[nDim+1][0] += Transfer_Coefficient * dTdrho * Area; + + for (unsigned short iDim = 0; iDim < nDim; iDim++) + Jacobian_i[nDim+1][iDim+1] -= Transfer_Coefficient * dTdrhoe * nodes->GetVelocity(iPoint, iDim) * Area; + + Jacobian_i[nDim+1][nDim+1] += Transfer_Coefficient * dTdrhoe * Area; + + } + if (dynamic_grid || (kind_boundary == HEAT_TRANSFER)) { Jacobian.AddBlock2Diag(iPoint, Jacobian_i); } @@ -579,7 +629,7 @@ void CNSSolver::BC_Isothermal_Wall_Generic(CGeometry *geometry, CSolver **solver // Wall_Function = config->GetWallFunction_Treatment(Marker_Tag); // if (Wall_Function != WALL_FUNCTION::NONE) { -// SU2_MPI::Error("Wall function treament not implemented yet", CURRENT_FUNCTION); +// SU2_MPI::Error("Wall function treatment not implemented yet", CURRENT_FUNCTION); // } su2double **Jacobian_i = nullptr; diff --git a/TestCases/coupled_cht/comp_2d/solid_cylinder1.cfg b/TestCases/coupled_cht/comp_2d/solid_cylinder1.cfg index 9f8ec43f71ed..66c319e38681 100644 --- a/TestCases/coupled_cht/comp_2d/solid_cylinder1.cfg +++ b/TestCases/coupled_cht/comp_2d/solid_cylinder1.cfg @@ -48,18 +48,18 @@ MARKER_MONITORING= ( NONE ) INC_NONDIM= DIMENSIONAL % % Temperature initialization value -SOLID_TEMPERATURE_INIT= 350.0 +FREESTREAM_TEMPERATURE= 350.0 % % Nettis case: hollow cylinder (air w/ 4x the conductivity) % % Solid density (kg/m^3) -SOLID_DENSITY= 0.000210322 +MATERIAL_DENSITY= 0.000210322 % % Solid specific heat (J/kg*K) SPECIFIC_HEAT_CP= 1004.703 % % Solid thermal conductivity (W/m*K) -SOLID_THERMAL_CONDUCTIVITY= 0.1028 +THERMAL_CONDUCTIVITY_CONSTANT= 0.1028 % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % diff --git a/TestCases/coupled_cht/comp_2d/solid_cylinder2.cfg b/TestCases/coupled_cht/comp_2d/solid_cylinder2.cfg index bca1647b7dfd..ae2cb8e3ae12 100644 --- a/TestCases/coupled_cht/comp_2d/solid_cylinder2.cfg +++ b/TestCases/coupled_cht/comp_2d/solid_cylinder2.cfg @@ -48,18 +48,18 @@ MARKER_MONITORING= ( NONE ) INC_NONDIM= DIMENSIONAL % % Temperature initialization value -SOLID_TEMPERATURE_INIT= 350.0 +FREESTREAM_TEMPERATURE= 350.0 % % Nettis case: hollow cylinder (air w/ 4x the conductivity) % % Solid density (kg/m^3) -SOLID_DENSITY= 0.000210322 +MATERIAL_DENSITY= 0.000210322 % % Solid specific heat (J/kg*K) SPECIFIC_HEAT_CP= 1004.703 % % Solid thermal conductivity (W/m*K) -SOLID_THERMAL_CONDUCTIVITY= 0.1028 +THERMAL_CONDUCTIVITY_CONSTANT= 0.1028 % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % diff --git a/TestCases/coupled_cht/comp_2d/solid_cylinder3.cfg b/TestCases/coupled_cht/comp_2d/solid_cylinder3.cfg index e834d1134beb..24f90033c273 100644 --- a/TestCases/coupled_cht/comp_2d/solid_cylinder3.cfg +++ b/TestCases/coupled_cht/comp_2d/solid_cylinder3.cfg @@ -48,18 +48,18 @@ MARKER_MONITORING= ( NONE ) INC_NONDIM= DIMENSIONAL % % Temperature initialization value -SOLID_TEMPERATURE_INIT= 350.0 +FREESTREAM_TEMPERATURE= 350.0 % % Nettis case: hollow cylinder (air w/ 4x the conductivity) % % Solid density (kg/m^3) -SOLID_DENSITY= 0.000210322 +MATERIAL_DENSITY= 0.000210322 % % Solid specific heat (J/kg*K) SPECIFIC_HEAT_CP= 1004.703 % % Solid thermal conductivity (W/m*K) -SOLID_THERMAL_CONDUCTIVITY= 0.1028 +THERMAL_CONDUCTIVITY_CONSTANT= 0.1028 % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % diff --git a/TestCases/coupled_cht/disc_adj_incomp_2d/flow_cylinder.cfg b/TestCases/coupled_cht/disc_adj_incomp_2d/flow_cylinder.cfg index c4c66039fd96..26ec18da9c92 100644 --- a/TestCases/coupled_cht/disc_adj_incomp_2d/flow_cylinder.cfg +++ b/TestCases/coupled_cht/disc_adj_incomp_2d/flow_cylinder.cfg @@ -115,7 +115,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_PRANDTL % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.0257 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0257 % % Laminar Prandtl number (0.72 (air), only for CONSTANT_PRANDTL) PRANDTL_LAM= 0.72 diff --git a/TestCases/coupled_cht/disc_adj_incomp_2d/solid_cylinder1.cfg b/TestCases/coupled_cht/disc_adj_incomp_2d/solid_cylinder1.cfg index feccb6c2413c..67a66d3869a0 100644 --- a/TestCases/coupled_cht/disc_adj_incomp_2d/solid_cylinder1.cfg +++ b/TestCases/coupled_cht/disc_adj_incomp_2d/solid_cylinder1.cfg @@ -48,18 +48,18 @@ MARKER_MONITORING= ( NONE ) INC_NONDIM= DIMENSIONAL % % Temperature initialization value -SOLID_TEMPERATURE_INIT= 350.0 +FREESTREAM_TEMPERATURE= 350.0 % % Nettis case: hollow cylinder (air w/ 4x the conductivity) % % Solid density (kg/m^3) -SOLID_DENSITY= 0.000210322 +MATERIAL_DENSITY= 0.000210322 % % Solid specific heat (J/kg*K) SPECIFIC_HEAT_CP = 1004.703 % % Solid thermal conductivity (W/m*K) -SOLID_THERMAL_CONDUCTIVITY= 0.1028 +THERMAL_CONDUCTIVITY_CONSTANT= 0.1028 % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % diff --git a/TestCases/coupled_cht/disc_adj_incomp_2d/solid_cylinder2.cfg b/TestCases/coupled_cht/disc_adj_incomp_2d/solid_cylinder2.cfg index b9a20fa95db7..e8658b68ef70 100644 --- a/TestCases/coupled_cht/disc_adj_incomp_2d/solid_cylinder2.cfg +++ b/TestCases/coupled_cht/disc_adj_incomp_2d/solid_cylinder2.cfg @@ -48,18 +48,18 @@ MARKER_MONITORING= ( NONE ) INC_NONDIM= DIMENSIONAL % % Temperature initialization value -SOLID_TEMPERATURE_INIT= 350.0 +FREESTREAM_TEMPERATURE= 350.0 % % Nettis case: hollow cylinder (air w/ 4x the conductivity) % % Solid density (kg/m^3) -SOLID_DENSITY= 0.000210322 +MATERIAL_DENSITY= 0.000210322 % % Solid specific heat (J/kg*K) SPECIFIC_HEAT_CP = 1004.703 % % Solid thermal conductivity (W/m*K) -SOLID_THERMAL_CONDUCTIVITY= 0.1028 +THERMAL_CONDUCTIVITY_CONSTANT= 0.1028 % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % diff --git a/TestCases/coupled_cht/disc_adj_incomp_2d/solid_cylinder3.cfg b/TestCases/coupled_cht/disc_adj_incomp_2d/solid_cylinder3.cfg index f7576060b5dc..f3a9606cbce7 100644 --- a/TestCases/coupled_cht/disc_adj_incomp_2d/solid_cylinder3.cfg +++ b/TestCases/coupled_cht/disc_adj_incomp_2d/solid_cylinder3.cfg @@ -48,18 +48,18 @@ MARKER_MONITORING= ( NONE ) INC_NONDIM= DIMENSIONAL % % Temperature initialization value -SOLID_TEMPERATURE_INIT= 350.0 +FREESTREAM_TEMPERATURE= 350.0 % % Nettis case: hollow cylinder (air w/ 4x the conductivity) % % Solid density (kg/m^3) -SOLID_DENSITY= 0.000210322 +MATERIAL_DENSITY= 0.000210322 % % Solid specific heat (J/kg*K) SPECIFIC_HEAT_CP = 1004.703 % % Solid thermal conductivity (W/m*K) -SOLID_THERMAL_CONDUCTIVITY= 0.1028 +THERMAL_CONDUCTIVITY_CONSTANT= 0.1028 % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % diff --git a/TestCases/coupled_cht/disc_adj_unsteadyCHT_cylinder/solid.cfg b/TestCases/coupled_cht/disc_adj_unsteadyCHT_cylinder/solid.cfg index 8af4dae4a7d7..56aad35a2c09 100644 --- a/TestCases/coupled_cht/disc_adj_unsteadyCHT_cylinder/solid.cfg +++ b/TestCases/coupled_cht/disc_adj_unsteadyCHT_cylinder/solid.cfg @@ -11,10 +11,10 @@ OBJECTIVE_WEIGHT= 1.0 % ~Aluminium at room temperature INC_NONDIM= DIMENSIONAL % -SOLID_TEMPERATURE_INIT= 340.0 -SOLID_DENSITY= 2719 +FREESTREAM_TEMPERATURE= 340.0 +MATERIAL_DENSITY= 2719 SPECIFIC_HEAT_CP = 0.8710 -SOLID_THERMAL_CONDUCTIVITY= 200 +THERMAL_CONDUCTIVITY_CONSTANT= 200 % % -------------------- BOUNDARY CONDITION DEFINITION --------------------------% % diff --git a/TestCases/coupled_cht/incomp_2d/flow_cylinder.cfg b/TestCases/coupled_cht/incomp_2d/flow_cylinder.cfg index 072923c45e3e..669aca109e7b 100644 --- a/TestCases/coupled_cht/incomp_2d/flow_cylinder.cfg +++ b/TestCases/coupled_cht/incomp_2d/flow_cylinder.cfg @@ -112,7 +112,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_PRANDTL % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.0257 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0257 % % Laminar Prandtl number (0.72 (air), only for CONSTANT_PRANDTL) PRANDTL_LAM= 0.72 diff --git a/TestCases/coupled_cht/incomp_2d/solid_cylinder1.cfg b/TestCases/coupled_cht/incomp_2d/solid_cylinder1.cfg index ea93e593514e..2496488317e8 100644 --- a/TestCases/coupled_cht/incomp_2d/solid_cylinder1.cfg +++ b/TestCases/coupled_cht/incomp_2d/solid_cylinder1.cfg @@ -48,18 +48,18 @@ MARKER_MONITORING= ( NONE ) INC_NONDIM= DIMENSIONAL % % Temperature initialization value -SOLID_TEMPERATURE_INIT= 350.0 +FREESTREAM_TEMPERATURE= 350.0 % % Nettis case: hollow cylinder (air w/ 4x the conductivity) % % Solid density (kg/m^3) -SOLID_DENSITY= 0.000210322 +MATERIAL_DENSITY= 0.000210322 % % Solid specific heat (J/kg*K) SPECIFIC_HEAT_CP= 1004.703 % % Solid thermal conductivity (W/m*K) -SOLID_THERMAL_CONDUCTIVITY= 0.1028 +THERMAL_CONDUCTIVITY_CONSTANT= 0.1028 % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % diff --git a/TestCases/coupled_cht/incomp_2d/solid_cylinder2.cfg b/TestCases/coupled_cht/incomp_2d/solid_cylinder2.cfg index 4b296aedbc5d..bf62a609d22d 100644 --- a/TestCases/coupled_cht/incomp_2d/solid_cylinder2.cfg +++ b/TestCases/coupled_cht/incomp_2d/solid_cylinder2.cfg @@ -48,18 +48,18 @@ MARKER_MONITORING= ( NONE ) INC_NONDIM= DIMENSIONAL % % Temperature initialization value -SOLID_TEMPERATURE_INIT= 350.0 +FREESTREAM_TEMPERATURE= 350.0 % % Nettis case: hollow cylinder (air w/ 4x the conductivity) % % Solid density (kg/m^3) -SOLID_DENSITY= 0.000210322 +MATERIAL_DENSITY= 0.000210322 % % Solid specific heat (J/kg*K) SPECIFIC_HEAT_CP= 1004.703 % % Solid thermal conductivity (W/m*K) -SOLID_THERMAL_CONDUCTIVITY= 0.1028 +THERMAL_CONDUCTIVITY_CONSTANT= 0.1028 % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % diff --git a/TestCases/coupled_cht/incomp_2d/solid_cylinder3.cfg b/TestCases/coupled_cht/incomp_2d/solid_cylinder3.cfg index 201c4f681e79..cc1c1d1cda4c 100644 --- a/TestCases/coupled_cht/incomp_2d/solid_cylinder3.cfg +++ b/TestCases/coupled_cht/incomp_2d/solid_cylinder3.cfg @@ -48,18 +48,18 @@ MARKER_MONITORING= ( NONE ) INC_NONDIM= DIMENSIONAL % % Temperature initialization value -SOLID_TEMPERATURE_INIT= 350.0 +FREESTREAM_TEMPERATURE= 350.0 % % Nettis case: hollow cylinder (air w/ 4x the conductivity) % % Solid density (kg/m^3) -SOLID_DENSITY= 0.000210322 +MATERIAL_DENSITY= 0.000210322 % % Solid specific heat (J/kg*K) SPECIFIC_HEAT_CP= 1004.703 % % Solid thermal conductivity (W/m*K) -SOLID_THERMAL_CONDUCTIVITY= 0.1028 +THERMAL_CONDUCTIVITY_CONSTANT= 0.1028 % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % diff --git a/TestCases/coupled_cht/incomp_2d_unsteady/flow_cylinder.cfg b/TestCases/coupled_cht/incomp_2d_unsteady/flow_cylinder.cfg index a12beaa28d9b..a5175103be4a 100644 --- a/TestCases/coupled_cht/incomp_2d_unsteady/flow_cylinder.cfg +++ b/TestCases/coupled_cht/incomp_2d_unsteady/flow_cylinder.cfg @@ -112,7 +112,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_PRANDTL % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.0257 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0257 % % Laminar Prandtl number (0.72 (air), only for CONSTANT_PRANDTL) PRANDTL_LAM= 0.72 diff --git a/TestCases/coupled_cht/incomp_2d_unsteady/solid_cylinder1.cfg b/TestCases/coupled_cht/incomp_2d_unsteady/solid_cylinder1.cfg index 56f56418c637..a0ddf89d522d 100644 --- a/TestCases/coupled_cht/incomp_2d_unsteady/solid_cylinder1.cfg +++ b/TestCases/coupled_cht/incomp_2d_unsteady/solid_cylinder1.cfg @@ -48,18 +48,18 @@ MARKER_MONITORING= ( NONE ) INC_NONDIM= DIMENSIONAL % % Temperature initialization value -SOLID_TEMPERATURE_INIT= 288.15 +FREESTREAM_TEMPERATURE= 288.15 % % Nettis case: hollow cylinder (air w/ 4x the conductivity) % % Solid density (kg/m^3) -SOLID_DENSITY= 0.0210322 +MATERIAL_DENSITY= 0.0210322 % % Solid specific heat (J/kg*K) SPECIFIC_HEAT_CP= 1004.703 % % Solid thermal conductivity (W/m*K) -SOLID_THERMAL_CONDUCTIVITY= 0.1028 +THERMAL_CONDUCTIVITY_CONSTANT= 0.1028 % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % diff --git a/TestCases/coupled_cht/incomp_2d_unsteady/solid_cylinder2.cfg b/TestCases/coupled_cht/incomp_2d_unsteady/solid_cylinder2.cfg index 1013307d8f46..99015cce998d 100644 --- a/TestCases/coupled_cht/incomp_2d_unsteady/solid_cylinder2.cfg +++ b/TestCases/coupled_cht/incomp_2d_unsteady/solid_cylinder2.cfg @@ -48,18 +48,18 @@ MARKER_MONITORING= ( NONE ) INC_NONDIM= DIMENSIONAL % % Temperature initialization value -SOLID_TEMPERATURE_INIT= 288.15 +FREESTREAM_TEMPERATURE= 288.15 % % Nettis case: hollow cylinder (air w/ 4x the conductivity) % % Solid density (kg/m^3) -SOLID_DENSITY= 0.0210322 +MATERIAL_DENSITY= 0.0210322 % % Solid specific heat (J/kg*K) SPECIFIC_HEAT_CP= 1004.703 % % Solid thermal conductivity (W/m*K) -SOLID_THERMAL_CONDUCTIVITY= 0.1028 +THERMAL_CONDUCTIVITY_CONSTANT= 0.1028 % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % diff --git a/TestCases/coupled_cht/incomp_2d_unsteady/solid_cylinder3.cfg b/TestCases/coupled_cht/incomp_2d_unsteady/solid_cylinder3.cfg index 2f5cdfd50cdd..19a11b0da98d 100644 --- a/TestCases/coupled_cht/incomp_2d_unsteady/solid_cylinder3.cfg +++ b/TestCases/coupled_cht/incomp_2d_unsteady/solid_cylinder3.cfg @@ -48,18 +48,18 @@ MARKER_MONITORING= ( NONE ) INC_NONDIM= DIMENSIONAL % % Temperature initialization value -SOLID_TEMPERATURE_INIT= 288.15 +FREESTREAM_TEMPERATURE= 288.15 % % Nettis case: hollow cylinder (air w/ 4x the conductivity) % % Solid density (kg/m^3) -SOLID_DENSITY= 0.0210322 +MATERIAL_DENSITY= 0.0210322 % % Solid specific heat (J/kg*K) SPECIFIC_HEAT_CP= 1004.703 % % Solid thermal conductivity (W/m*K) -SOLID_THERMAL_CONDUCTIVITY= 0.1028 +THERMAL_CONDUCTIVITY_CONSTANT= 0.1028 % ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% % diff --git a/TestCases/disc_adj_heat/disc_adj_heat.cfg b/TestCases/disc_adj_heat/disc_adj_heat.cfg index 9207cabea297..0a045440844c 100644 --- a/TestCases/disc_adj_heat/disc_adj_heat.cfg +++ b/TestCases/disc_adj_heat/disc_adj_heat.cfg @@ -52,7 +52,7 @@ INC_OUTLET_TYPE= PRESSURE_OUTLET % ---------------- (SOLIDS) CONDUCTION CONDITION DEFINITION -------------------% -SOLID_TEMPERATURE_INIT= 350.0 +FREESTREAM_TEMPERATURE= 350.0 % ---- IDEAL GAS, POLYTROPIC, VAN DER WAALS AND PENG ROBINSON CONSTANTS -------% diff --git a/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg b/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg index ad90e53b9854..20d53c7a255c 100644 --- a/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg +++ b/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg @@ -82,7 +82,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_PRANDTL % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.0257 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0257 % % Laminar Prandtl number (0.72 (air), only for CONSTANT_PRANDTL) PRANDTL_LAM= 0.72 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 6256ee7923f7..899122374f03 100644 --- a/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg +++ b/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg @@ -126,7 +126,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_CONDUCTIVITY % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.047280 +THERMAL_CONDUCTIVITY_CONSTANT= 0.047280 % % % -------------------- BOUNDARY CONDITION DEFINITION --------------------------% diff --git a/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg b/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg index 9cdd52d57360..4bdf076f09a8 100644 --- a/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg +++ b/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg @@ -76,7 +76,7 @@ MU_CONSTANT= 1.716e-5 CONDUCTIVITY_MODEL= CONSTANT_CONDUCTIVITY % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.0246295028571 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0246295028571 % ----------------------- BODY FORCE DEFINITION -------------------------------% % diff --git a/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg b/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg index 46aa9d45affc..2f9c80ce5f46 100644 --- a/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg +++ b/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg @@ -85,7 +85,7 @@ MU_POLYCOEFFS= (1.7893e-05, 1e-8, 0.0, 0.0, 0.0) CONDUCTIVITY_MODEL= POLYNOMIAL_CONDUCTIVITY % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.0257 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0257 % % Laminar Prandtl number (0.72 (air), only for CONSTANT_PRANDTL) PRANDTL_LAM= 0.72 diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg new file mode 100644 index 000000000000..7238fd4ae916 --- /dev/null +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg @@ -0,0 +1,123 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Heat Transfer BC Testcase with 2D-pin-setup % +% Author: T. Kattmann % +% Institution: Robert Bosch GmbH % +% Date: 2020.12.15 % +% File Version 7.1.1 "Blackbird" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= INC_NAVIER_STOKES +% +KIND_TURB_MODEL= NONE +% +OBJECTIVE_FUNCTION= AVG_TEMPERATURE +OBJECTIVE_WEIGHT= 0.0 +% +OPT_OBJECTIVE= NONE +% ---------------- INCOMPRESSIBLE FLOW CONDITION DEFINITION -------------------% +% +INC_DENSITY_MODEL= CONSTANT +INC_DENSITY_INIT= 1045.0 +INC_VELOCITY_INIT= ( 0.1, 0.0, 0.0 ) +% +INC_ENERGY_EQUATION = YES +INC_TEMPERATURE_INIT= 338.0 +INC_NONDIM= INITIAL_VALUES +SPECIFIC_HEAT_CP= 3540.0 +% +FREESTREAM_TURBULENCEINTENSITY= 0.05 +FREESTREAM_TURB2LAMVISCRATIO= 10.0 +% +% --------------------------- VISCOSITY MODEL ---------------------------------% +% +VISCOSITY_MODEL= CONSTANT_VISCOSITY +MU_CONSTANT= 0.001385 +% +% --------------------------- THERMAL CONDUCTIVITY MODEL ----------------------% +% +% Pr_lam = mu_lam [Pa*s] * c_p [J/(kg*K)] / lambda[W/(m*K)] +% = 1.385e-3 * 3540 / 0.42 +% = 11.7 +CONDUCTIVITY_MODEL= CONSTANT_PRANDTL +PRANDTL_LAM= 11.7 +% +TURBULENT_CONDUCTIVITY_MODEL= CONSTANT_PRANDTL_TURB +PRANDTL_TURB= 0.90 +% +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +MARKER_SYM= ( fluid_symmetry ) +% +% Note that a heat-transfer coefficient of zero will result in an adiabatic wall, +% equivalent to MARKER_HEATFLUX= ( fluid_pin1_interface, 0.0, ... ). +% In the other extreme of a high heat-transfer coefficient value (like shown below), +% the boundary will degenerate to a MARKER_ISOTHERMAL= (fluid_pin1_interface, 400, ... ). +% With 400 above being the reservoir Temperature (or called Temperature at infinity). +MARKER_HEATTRANSFER= ( fluid_pin1_interface, 100000000.0, 400, \ + fluid_pin2_interface, 100000000.0, 400, \ + fluid_pin3_interface, 100000000.0, 400 ) +% +% Alternative options for non-periodic flow +INC_INLET_TYPE= VELOCITY_INLET +MARKER_INLET= ( fluid_inlet, 338.0, 0.3, 1.0, 0.0, 0.0 ) +% +INC_OUTLET_TYPE= PRESSURE_OUTLET +MARKER_OUTLET= ( fluid_outlet, 0.0 ) +% +% ------------------------ SURFACES IDENTIFICATION ----------------------------% +% +MARKER_MONITORING= ( fluid_pin2_interface ) +% +MARKER_ANALYZE = ( fluid_pin2_interface ) +MARKER_ANALYZE_AVERAGE = AREA +% +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +ITER= 1000 +NUM_METHOD_GRAD= GREEN_GAUSS +CFL_NUMBER= 1e3 +% +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= ILU +LINEAR_SOLVER_ERROR= 1e-15 +LINEAR_SOLVER_ITER= 10 +% +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +CONV_NUM_METHOD_FLOW= FDS +MUSCL_FLOW= YES +SLOPE_LIMITER_FLOW= NONE +TIME_DISCRE_FLOW= EULER_IMPLICIT +% +% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% +% +CONV_NUM_METHOD_TURB= SCALAR_UPWIND +MUSCL_TURB= NO +SLOPE_LIMITER_TURB= NONE +TIME_DISCRE_TURB= EULER_IMPLICIT +% +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +CONV_RESIDUAL_MINVAL= -26 +CONV_STARTITER= 100000000 +% +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +MESH_FILENAME= fluid.su2 +% +% SURFACE_STATIC_TEMPERATURE had to be removed from SCREEN_OUTPUT for the regression tests +SCREEN_OUTPUT= ( INNER_ITER, RMS_PRESSURE, RMS_VELOCITY-X, RMS_VELOCITY-Y, RMS_TEMPERATURE, TOTAL_HEATFLUX) +SCREEN_WRT_FREQ_INNER= 1 +% +HISTORY_OUTPUT= ( ITER, RMS_RES, STREAMWISE_PERIODIC, FLOW_COEFF, LINSOL, HEAT ) +% +OUTPUT_FILES=(PARAVIEW_MULTIBLOCK) +OUTPUT_WRT_FREQ= 100000 +VOLUME_OUTPUT= (SOLUTION, PRIMITIVE, RESIDUAL) diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg index 087f1c97ed7c..58db9c50af40 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg @@ -21,10 +21,10 @@ OPT_OBJECTIVE= AVG_TOTALTEMP % ---------------- (SOLIDS) CONDUCTION CONDITION DEFINITION -------------------% % INC_NONDIM= DIMENSIONAL -SOLID_TEMPERATURE_INIT= 345.0 -SOLID_DENSITY= 2719 +FREESTREAM_TEMPERATURE= 345.0 +MATERIAL_DENSITY= 2719 SPECIFIC_HEAT_CP = 871.0 -SOLID_THERMAL_CONDUCTIVITY= 200 +THERMAL_CONDUCTIVITY_CONSTANT= 200 % % -------------------- BOUNDARY CONDITION DEFINITION --------------------------% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg index c9a3a6ed6ed8..d446a3b405b6 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg @@ -16,10 +16,10 @@ SOLVER= HEAT_EQUATION % ---------------- (SOLIDS) CONDUCTION CONDITION DEFINITION -------------------% % INC_NONDIM= DIMENSIONAL -SOLID_TEMPERATURE_INIT= 345.0 -SOLID_DENSITY= 2719 +FREESTREAM_TEMPERATURE= 345.0 +MATERIAL_DENSITY= 2719 SPECIFIC_HEAT_CP = 871.0 -SOLID_THERMAL_CONDUCTIVITY= 200 +THERMAL_CONDUCTIVITY_CONSTANT= 200 % % -------------------- BOUNDARY CONDITION DEFINITION --------------------------% % diff --git a/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg b/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg index 3f7ade6273f5..659cbc1e81b1 100755 --- a/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg +++ b/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg @@ -57,7 +57,7 @@ MU_CONSTANT= 0.5 CONDUCTIVITY_MODEL= CONSTANT_CONDUCTIVITY % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.0257 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0257 % ---------------------- REFERENCE VALUE DEFINITION ---------------------------% % diff --git a/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg b/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg index c5a80010ebe6..a30099df7f95 100644 --- a/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg +++ b/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg @@ -100,7 +100,7 @@ MU_CONSTANT= 0.1 CONDUCTIVITY_MODEL= CONSTANT_PRANDTL % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.0257 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0257 % % Constant Prandtl number PRANDTL_LAM = 1.0 diff --git a/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg b/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg index 2facd7569d78..9d93577eed1e 100644 --- a/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg +++ b/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg @@ -100,7 +100,7 @@ MU_CONSTANT= 0.1 CONDUCTIVITY_MODEL= CONSTANT_PRANDTL % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.0257 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0257 % % Constant Prandtl number PRANDTL_LAM = 1.0 diff --git a/TestCases/nicf/LS89/turb_SA_PR.cfg b/TestCases/nicf/LS89/turb_SA_PR.cfg index 525a0c2a83ae..27716d5f4125 100644 --- a/TestCases/nicf/LS89/turb_SA_PR.cfg +++ b/TestCases/nicf/LS89/turb_SA_PR.cfg @@ -123,7 +123,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_CONDUCTIVITY % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.047280 +THERMAL_CONDUCTIVITY_CONSTANT= 0.047280 % -------------------- BOUNDARY CONDITION DEFINITION --------------------------% % diff --git a/TestCases/nicf/LS89/turb_SST_PR.cfg b/TestCases/nicf/LS89/turb_SST_PR.cfg index d5b6aa40938b..45659d83fd62 100644 --- a/TestCases/nicf/LS89/turb_SST_PR.cfg +++ b/TestCases/nicf/LS89/turb_SST_PR.cfg @@ -122,7 +122,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_CONDUCTIVITY % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.047280 +THERMAL_CONDUCTIVITY_CONSTANT= 0.047280 % -------------------- BOUNDARY CONDITION DEFINITION --------------------------% % diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index db98e43c0d25..aa217a6952de 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -485,6 +485,17 @@ def main(): sp_pipeSlice_3d_dp_hf_tp.tol = 0.00001 test_list.append(sp_pipeSlice_3d_dp_hf_tp) + # 2D pin array with heat transfer BC on pin surfaces + inc_heatTransfer_BC = TestCase('inc_heatTransfer_BC') + 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.242458, -7.340502, -7.407009, -0.152357, -1.6675e+03] #last 7 lines + inc_heatTransfer_BC.su2_exec = "mpirun -n 2 SU2_CFD" + inc_heatTransfer_BC.timeout = 1600 + inc_heatTransfer_BC.tol = 0.00001 + test_list.append(inc_heatTransfer_BC) + ############################ ### Incompressible RANS ### ############################ 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 98de1c9154ef..4811b389d4bf 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 @@ -152,7 +152,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_PRANDTL % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.0257 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0257 % ------------------------- UNSTEADY SIMULATION -------------------------------% % diff --git a/TestCases/radiation/p1model/configp1.cfg b/TestCases/radiation/p1model/configp1.cfg index 6fab911c2cd9..2f88dcdb5857 100644 --- a/TestCases/radiation/p1model/configp1.cfg +++ b/TestCases/radiation/p1model/configp1.cfg @@ -34,7 +34,7 @@ VISCOSITY_MODEL= CONSTANT_VISCOSITY MU_CONSTANT= 1.716e-5 CONDUCTIVITY_MODEL= CONSTANT_CONDUCTIVITY -KT_CONSTANT= 0.0246295028571 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0246295028571 BODY_FORCE= YES BODY_FORCE_VECTOR= ( 0.0, -9.81, 0.0 ) diff --git a/TestCases/sliding_interface/bars_SST_2D/bars.cfg b/TestCases/sliding_interface/bars_SST_2D/bars.cfg index 5587e62d4638..a032bfa1f3e7 100644 --- a/TestCases/sliding_interface/bars_SST_2D/bars.cfg +++ b/TestCases/sliding_interface/bars_SST_2D/bars.cfg @@ -129,7 +129,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_PRANDTL % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.028085 +THERMAL_CONDUCTIVITY_CONSTANT= 0.028085 % % -------------------- BOUNDARY CONDITION DEFINITION --------------------------% % diff --git a/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg b/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg index 4066a0420dc8..54b835f61401 100755 --- a/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg +++ b/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg @@ -118,7 +118,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_CONDUCTIVITY % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.025275 +THERMAL_CONDUCTIVITY_CONSTANT= 0.025275 % % % diff --git a/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg b/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg index 69740ee71b81..867566945723 100755 --- a/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg +++ b/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg @@ -118,7 +118,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_CONDUCTIVITY % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.025275 +THERMAL_CONDUCTIVITY_CONSTANT= 0.025275 % % % diff --git a/TestCases/turbomachinery/transonic_stator_2D/transonic_stator.cfg b/TestCases/turbomachinery/transonic_stator_2D/transonic_stator.cfg index 2413c86a268f..520379e461b0 100644 --- a/TestCases/turbomachinery/transonic_stator_2D/transonic_stator.cfg +++ b/TestCases/turbomachinery/transonic_stator_2D/transonic_stator.cfg @@ -122,7 +122,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_CONDUCTIVITY % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.047280 +THERMAL_CONDUCTIVITY_CONSTANT= 0.047280 % % % -------------------- BOUNDARY CONDITION DEFINITION --------------------------% diff --git a/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_rst.cfg b/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_rst.cfg index 48778dcf05f4..c3a2048e8316 100644 --- a/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_rst.cfg +++ b/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_rst.cfg @@ -127,7 +127,7 @@ SUTHERLAND_CONSTANT= 110.4 CONDUCTIVITY_MODEL= CONSTANT_CONDUCTIVITY % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.047280 +THERMAL_CONDUCTIVITY_CONSTANT= 0.047280 % % % -------------------- BOUNDARY CONDITION DEFINITION --------------------------% diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index 01bf850b4e2d..258f68b4df56 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -42,6 +42,7 @@ def main(): ### RUN TUTORIAL CASES ### ###################################### + ### CHT # CHT incompressible unsteady cht_incompressible_unsteady = TestCase('cht_incompressible_unsteady') @@ -56,6 +57,18 @@ def main(): cht_incompressible_unsteady.tol = 0.00001 test_list.append(cht_incompressible_unsteady) + # CHT incompressible, 2D, 3 pins in crossflow + cht_incompressible = TestCase('cht_incompressible') + cht_incompressible.cfg_dir = "../Tutorials/multiphysics/steady_cht" + cht_incompressible.cfg_file = "cht_2d_3cylinders.cfg" + cht_incompressible.test_iter = 10 + cht_incompressible.test_vals = [-2.128826, -0.588813, -0.588813, -0.588813] #last 4 columns + cht_incompressible.su2_exec = "SU2_CFD" + cht_incompressible.timeout = 1600 + cht_incompressible.multizone = True + cht_incompressible.tol = 0.00001 + test_list.append(cht_incompressible) + ### Incompressible Flow # 2D pin case massflow periodic with heatflux BC and prescribed extracted outlet heat diff --git a/config_template.cfg b/config_template.cfg index 501d1f02d6a4..ad73228b5868 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -264,13 +264,13 @@ BETA_FACTOR= 4.1 % ----------------------------- SOLID ZONE HEAT VARIABLES-----------------------% % % Thermal conductivity used for heat equation -SOLID_THERMAL_CONDUCTIVITY= 0.0 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0 % % Solids temperature at freestream conditions -SOLID_TEMPERATURE_INIT= 288.15 +FREESTREAM_TEMPERATURE= 288.15 % % Density used in solids -SOLID_DENSITY= 2710.0 +MATERIAL_DENSITY= 2710.0 % % ----------------------------- CL DRIVER DEFINITION ---------------------------% % @@ -383,7 +383,7 @@ MU_POLYCOEFFS= (0.0, 0.0, 0.0, 0.0, 0.0) CONDUCTIVITY_MODEL= CONSTANT_PRANDTL % % Molecular Thermal Conductivity that would be constant (0.0257 by default) -KT_CONSTANT= 0.0257 +THERMAL_CONDUCTIVITY_CONSTANT= 0.0257 % % Laminar Prandtl number (0.72 (air), only for CONSTANT_PRANDTL) PRANDTL_LAM= 0.72 @@ -398,9 +398,7 @@ TURBULENT_CONDUCTIVITY_MODEL= CONSTANT_PRANDTL_TURB % % Turbulent Prandtl number (0.9 (air) by default) PRANDTL_TURB= 0.90 - - - +% % ----------------------- DYNAMIC MESH DEFINITION -----------------------------% % % Type of dynamic mesh (NONE, RIGID_MOTION, ROTATING_FRAME, @@ -734,6 +732,11 @@ MARKER_EULER= ( airfoil ) % Format: ( marker name, constant heat flux (J/m^2), ... ) MARKER_HEATFLUX= ( NONE ) % +% Navier-Stokes (no-slip), heat-transfer/convection wall marker(s) (NONE = no marker) +% Available for compressible and incompressible flow. +% Format: ( marker name, constant heat-transfer coefficient (J/(K*m^2)), constant reservoir Temperature (K) ... ) +MARKER_HEATTRANSFER= ( NONE ) +% % Navier-Stokes (no-slip), isothermal wall marker(s) (NONE = no marker) % Format: ( marker name, constant wall temperature (K), ... ) MARKER_ISOTHERMAL= ( NONE ) diff --git a/docker/test/runTests.sh b/docker/test/runTests.sh index eb915243d60b..66227871ccb8 100755 --- a/docker/test/runTests.sh +++ b/docker/test/runTests.sh @@ -9,7 +9,7 @@ usage="$(basename "$0") [-h] [-t tutorial_branch] [-b su2_branch] [-c testcases_branch] [-s test_script] where: -h show this help text - -t branch of su2code/su2code.github.io repo + -t branch of su2code/Tutorials repo (if not provided, it is assumed that it is mounted at /src/SU2) -b branch of su2code/SU2 repo. (if not provided, it is assumed that it is mounted at /src/Tutorials)