Skip to content

Commit d8c98d9

Browse files
author
Cristopher-Morales
committed
enable use of conductivity models for compressible flows
1 parent 2b6d97a commit d8c98d9

File tree

5 files changed

+13
-43
lines changed

5 files changed

+13
-43
lines changed

Common/src/CConfig.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4162,10 +4162,6 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
41624162
SU2_MPI::Error("Only SUTHERLAND viscosity model can be used with US Measurement", CURRENT_FUNCTION);
41634163
}
41644164
}
4165-
if (Kind_ConductivityModel != CONDUCTIVITYMODEL::CONSTANT_PRANDTL) {
4166-
SU2_MPI::Error("Only CONSTANT_PRANDTL thermal conductivity model can be used with STANDARD_AIR and IDEAL_GAS",
4167-
CURRENT_FUNCTION);
4168-
}
41694165
}
41704166
/*--- Check for Boundary condition option agreement ---*/
41714167
if (Kind_InitOption == REYNOLDS){

SU2_CFD/include/numerics/flow/flow_diffusion.hpp

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -355,15 +355,10 @@ class CGeneralAvgGrad_Flow final : public CAvgGrad_Base {
355355
* \brief Compute the heat flux due to molecular and turbulent diffusivity
356356
* \param[in] val_gradprimvar - Gradient of the primitive variables.
357357
* \param[in] val_laminar_viscosity - Laminar viscosity.
358-
* \param[in] val_eddy_viscosity - Eddy viscosity.
359358
* \param[in] val_thermal_conductivity - Thermal Conductivity.
360-
* \param[in] val_heat_capacity_cp - Heat Capacity at constant pressure.
361359
*/
362-
void SetHeatFluxVector(const su2double* const *val_gradprimvar,
363-
su2double val_laminar_viscosity,
364-
su2double val_eddy_viscosity,
365-
su2double val_thermal_conductivity,
366-
su2double val_heat_capacity_cp);
360+
void SetHeatFluxVector(const su2double* const* val_gradprimvar, su2double val_laminar_viscosity,
361+
su2double val_thermal_conductivity);
367362

368363
/*!
369364
* \brief Compute the Jacobian of the heat flux vector
@@ -373,19 +368,13 @@ class CGeneralAvgGrad_Flow final : public CAvgGrad_Base {
373368
*
374369
* \param[in] val_Mean_PrimVar - Mean value of the primitive variables.
375370
* \param[in] val_Mean_SecVar - Mean value of the secondary variables.
376-
* \param[in] val_eddy_viscosity - Value of the eddy viscosity.
377371
* \param[in] val_thermal_conductivity - Value of the thermal conductivity.
378-
* \param[in] val_heat_capacity_cp - Value of the specific heat at constant pressure.
379372
* \param[in] val_dist_ij - Distance between the points.
380373
*/
381-
void SetHeatFluxJacobian(const su2double *val_Mean_PrimVar,
382-
const su2double *val_Mean_SecVar,
383-
su2double val_eddy_viscosity,
384-
su2double val_thermal_conductivity,
385-
su2double val_heat_capacity_cp,
386-
su2double val_dist_ij);
374+
void SetHeatFluxJacobian(const su2double* val_Mean_PrimVar, const su2double* val_Mean_SecVar,
375+
su2double val_thermal_conductivity, su2double val_dist_ij);
387376

388-
public:
377+
public:
389378

390379
/*!
391380
* \brief Constructor of the class.

SU2_CFD/src/numerics/flow/flow_diffusion.cpp

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -797,11 +797,9 @@ CGeneralAvgGrad_Flow::CGeneralAvgGrad_Flow(unsigned short val_nDim,
797797

798798
void CGeneralAvgGrad_Flow::SetHeatFluxVector(const su2double* const *val_gradprimvar,
799799
const su2double val_laminar_viscosity,
800-
const su2double val_eddy_viscosity,
801-
const su2double val_thermal_conductivity,
802-
const su2double val_heat_capacity_cp) {
800+
const su2double val_thermal_conductivity) {
803801

804-
const su2double heat_flux_factor = val_thermal_conductivity + val_heat_capacity_cp*val_eddy_viscosity/Prandtl_Turb;
802+
const su2double heat_flux_factor = val_thermal_conductivity;
805803

806804
/*--- Gradient of primitive variables -> [Temp vel_x vel_y vel_z Pressure] ---*/
807805
for (unsigned short iDim = 0; iDim < nDim; iDim++) {
@@ -811,9 +809,7 @@ void CGeneralAvgGrad_Flow::SetHeatFluxVector(const su2double* const *val_gradpri
811809

812810
void CGeneralAvgGrad_Flow::SetHeatFluxJacobian(const su2double *val_Mean_PrimVar,
813811
const su2double *val_Mean_SecVar,
814-
const su2double val_eddy_viscosity,
815812
const su2double val_thermal_conductivity,
816-
const su2double val_heat_capacity_cp,
817813
const su2double val_dist_ij) {
818814
/* Viscous flux Jacobians for arbitrary equations of state */
819815

@@ -835,8 +831,7 @@ void CGeneralAvgGrad_Flow::SetHeatFluxJacobian(const su2double *val_Mean_PrimVar
835831
su2double dTdu1= dTde_rho*(-val_Mean_PrimVar[1])*(1/rho);
836832
su2double dTdu2= dTde_rho*(-val_Mean_PrimVar[2])*(1/rho);
837833

838-
su2double total_conductivity = val_thermal_conductivity + val_heat_capacity_cp*val_eddy_viscosity/Prandtl_Turb;
839-
su2double factor2 = total_conductivity/val_dist_ij;
834+
su2double factor2 = val_thermal_conductivity/val_dist_ij;
840835

841836
heat_flux_jac_i[0] = factor2*dTdu0;
842837
heat_flux_jac_i[1] = factor2*dTdu1;
@@ -903,7 +898,6 @@ CNumerics::ResidualType<> CGeneralAvgGrad_Flow::ComputeResidual(const CConfig* c
903898
Laminar_Viscosity_i = V_i[nDim+5]; Laminar_Viscosity_j = V_j[nDim+5];
904899
Eddy_Viscosity_i = V_i[nDim+6]; Eddy_Viscosity_j = V_j[nDim+6];
905900
Thermal_Conductivity_i = V_i[nDim+7]; Thermal_Conductivity_j = V_j[nDim+7];
906-
Cp_i = V_i[nDim+8]; Cp_j = V_j[nDim+8];
907901

908902
/*--- Mean secondary variables ---*/
909903

@@ -917,7 +911,6 @@ CNumerics::ResidualType<> CGeneralAvgGrad_Flow::ComputeResidual(const CConfig* c
917911
Mean_Eddy_Viscosity = 0.5*(Eddy_Viscosity_i + Eddy_Viscosity_j);
918912
Mean_turb_ke = 0.5*(turb_ke_i + turb_ke_j);
919913
Mean_Thermal_Conductivity = 0.5*(Thermal_Conductivity_i + Thermal_Conductivity_j);
920-
Mean_Cp = 0.5*(Cp_i + Cp_j);
921914

922915
/*--- Mean gradient approximation ---*/
923916

@@ -954,8 +947,7 @@ CNumerics::ResidualType<> CGeneralAvgGrad_Flow::ComputeResidual(const CConfig* c
954947
if (config->GetSAParsedOptions().qcr2000) AddQCR(nDim, &Mean_GradPrimVar[1], tau);
955948
if (Mean_TauWall > 0) AddTauWall(UnitNormal, Mean_TauWall);
956949

957-
SetHeatFluxVector(Mean_GradPrimVar, Mean_Laminar_Viscosity,
958-
Mean_Eddy_Viscosity, Mean_Thermal_Conductivity, Mean_Cp);
950+
SetHeatFluxVector(Mean_GradPrimVar, Mean_Laminar_Viscosity, Mean_Thermal_Conductivity);
959951

960952
GetViscousProjFlux(Mean_PrimVar, Normal);
961953

@@ -975,8 +967,7 @@ CNumerics::ResidualType<> CGeneralAvgGrad_Flow::ComputeResidual(const CConfig* c
975967

976968
SetTauJacobian(Mean_PrimVar, Mean_Laminar_Viscosity, Mean_Eddy_Viscosity, dist_ij, UnitNormal);
977969

978-
SetHeatFluxJacobian(Mean_PrimVar, Mean_SecVar, Mean_Eddy_Viscosity,
979-
Mean_Thermal_Conductivity, Mean_Cp, dist_ij);
970+
SetHeatFluxJacobian(Mean_PrimVar, Mean_SecVar, Mean_Thermal_Conductivity, dist_ij);
980971

981972
GetViscousProjJacs(Mean_PrimVar, Area, Proj_Flux_Tensor, Jacobian_i, Jacobian_j);
982973
}

SU2_CFD/src/solvers/CAdjNSSolver.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1641,10 +1641,8 @@ void CAdjNSSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_cont
16411641
}
16421642

16431643
/*--- Get transport coefficient information ---*/
1644-
Laminar_Viscosity = solver_container[FLOW_SOL]->GetNodes()->GetLaminarViscosity(iPoint);
16451644
Eddy_Viscosity = solver_container[FLOW_SOL]->GetNodes()->GetEddyViscosity(iPoint);
1646-
Thermal_Conductivity = Cp * ( Laminar_Viscosity/Prandtl_Lam
1647-
+Eddy_Viscosity/Prandtl_Turb);
1645+
Thermal_Conductivity = solver_container[FLOW_SOL]-> GetNodes()->GetThermalConductivity(iPoint);
16481646

16491647
// GradV = solver_container[FLOW_SOL]->GetNodes()->GetGradient_Primitive(iPoint);
16501648

@@ -1660,8 +1658,7 @@ void CAdjNSSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_cont
16601658
GradT = solver_container[FLOW_SOL]->GetNodes()->GetGradient_Primitive(iPoint)[0];
16611659
kGTdotn = 0.0;
16621660
for (iDim = 0; iDim < nDim; iDim++)
1663-
kGTdotn += Cp * Laminar_Viscosity/Prandtl_Lam*GradT[iDim]*Normal[iDim]/Area;
1664-
// Cp * Viscosity/Prandtl_Lam matches term used in solver_direct_mean
1661+
kGTdotn += (Thermal_Conductivity - Cp * Eddy_Viscosity/Prandtl_Turb) * GradT[iDim]*Normal[iDim]/Area;
16651662
/*--- constant term to multiply max heat flux objective ---*/
16661663
Xi = solver_container[FLOW_SOL]->GetTotal_HeatFlux(); // versions for max heat flux
16671664
Xi = pow(Xi, 1.0/pnorm-1.0)/pnorm;

SU2_CFD/src/solvers/CNSSolver.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -622,7 +622,6 @@ void CNSSolver::BC_Isothermal_Wall_Generic(CGeometry *geometry, CSolver **solver
622622
const su2double Prandtl_Lam = config->GetPrandtl_Lam();
623623
const su2double Prandtl_Turb = config->GetPrandtl_Turb();
624624
const su2double Gas_Constant = config->GetGas_ConstantND();
625-
const su2double Cp = (Gamma / Gamma_Minus_One) * Gas_Constant;
626625

627626
/*--- Identify the boundary and retrieve the specified wall temperature from
628627
the config (for non-CHT problems) as well as the wall function treatment. ---*/
@@ -689,9 +688,7 @@ void CNSSolver::BC_Isothermal_Wall_Generic(CGeometry *geometry, CSolver **solver
689688

690689
/*--- Get transport coefficients ---*/
691690

692-
su2double laminar_viscosity = nodes->GetLaminarViscosity(iPoint);
693-
su2double eddy_viscosity = nodes->GetEddyViscosity(iPoint);
694-
su2double thermal_conductivity = Cp * (laminar_viscosity/Prandtl_Lam + eddy_viscosity/Prandtl_Turb);
691+
su2double thermal_conductivity = nodes->GetThermalConductivity(iPoint);
695692

696693
// work in progress on real-gases...
697694
//thermal_conductivity = nodes->GetThermalConductivity(iPoint);

0 commit comments

Comments
 (0)