From 2f91c39b2b53edeaf9e6b6523c2e730351b44966 Mon Sep 17 00:00:00 2001 From: jtneedels Date: Mon, 11 Jan 2021 21:28:48 -0800 Subject: [PATCH 1/6] Implemented additional source residual terms for NEMO axisymmetric simulation Signed-off-by: jtneedels --- SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp | 59 +++++++- SU2_CFD/src/solvers/CNEMOEulerSolver.cpp | 143 +++++++++++++------ SU2_CFD/src/variables/CNEMOEulerVariable.cpp | 8 ++ 3 files changed, 166 insertions(+), 44 deletions(-) diff --git a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp index b8a744356ed3..df8e7a1fa932 100644 --- a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp +++ b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp @@ -296,7 +296,24 @@ CNumerics::ResidualType<> CSource_NEMO::ComputeVibRelaxation(const CConfig *conf CNumerics::ResidualType<> CSource_NEMO::ComputeAxisymmetric(const CConfig *config) { unsigned short iDim, iSpecies, iVar; - su2double rho, rhov, vel2, H, yinv; + su2double rho, rhov, vel2, H, yinv, T, Tve, qy_ve, Ru, RuSI; + su2double *V, *Ds, **GV, mu, ktr, kve, div_vel; + + auto& Ms = fluidmodel->GetSpeciesMolarMass(); + + bool viscous = config->GetViscous(); + bool rans = (config->GetKind_Turb_Model() != NONE); + hs = fluidmodel->ComputeSpeciesEnthalpy(T, Tve, eve_i); + + Ds = Diffusion_Coeff_i; + ktr = Thermal_Conductivity_i; + kve = Thermal_Conductivity_ve_i; + rho = V_i[RHO_INDEX]; + T = V_i[T_INDEX]; + Tve = V_i[TVE_INDEX]; + GV = PrimVar_Grad_i; + RuSI= UNIVERSAL_GAS_CONSTANT; + Ru = 1000.0*RuSI; /*--- Initialize residual and Jacobian arrays ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -312,6 +329,7 @@ CNumerics::ResidualType<> CSource_NEMO::ComputeAxisymmetric(const CConfig *confi rhov = U_i[nSpecies+1]; H = V_i[H_INDEX]; vel2 = 0.0; + for (iDim = 0; iDim < nDim; iDim++) vel2 += V_i[VEL_INDEX+iDim]*V_i[VEL_INDEX+iDim]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) @@ -324,6 +342,45 @@ CNumerics::ResidualType<> CSource_NEMO::ComputeAxisymmetric(const CConfig *confi residual[nSpecies+2] = yinv*rhov*H*Volume; residual[nSpecies+3] = yinv*rhov*U_i[nSpecies+nDim+1]/rho*Volume; + if (viscous) { + + if (!rans){ turb_ke_i = 0.0; } + + su2double sumJhs_y = 0.0; + su2double sumJeve_y = 0.0; + su2double Mass = 0.0; + + for (iSpecies=0; iSpeciesGetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); + bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool frozen = config->GetFrozen(); bool monoatomic = config->GetMonoatomic(); + bool viscous = config->GetViscous(); + bool ideal_gas = (config->GetKind_FluidModel() == STANDARD_AIR) || (config->GetKind_FluidModel() == IDEAL_GAS); + bool rans = (config->GetKind_Turb_Model() != NONE); CNumerics* numerics = numerics_container[SOURCE_FIRST_TERM]; @@ -1137,11 +1140,11 @@ void CNEMOEulerSolver::Source_Residual(CGeometry *geometry, CSolver **solver_con numerics->SetPrimitive (nodes->GetPrimitive(iPoint), nodes->GetPrimitive(iPoint) ); /*--- Pass supplementary information to CNumerics ---*/ - numerics->SetdPdU (nodes->GetdPdU(iPoint), nodes->GetdPdU(iPoint)); - numerics->SetdTdU (nodes->GetdTdU(iPoint), nodes->GetdTdU(iPoint)); + numerics->SetdPdU(nodes->GetdPdU(iPoint), nodes->GetdPdU(iPoint)); + numerics->SetdTdU(nodes->GetdTdU(iPoint), nodes->GetdTdU(iPoint)); numerics->SetdTvedU(nodes->GetdTvedU(iPoint), nodes->GetdTvedU(iPoint)); - numerics->SetEve (nodes->GetEve(iPoint), nodes->GetEve(iPoint)); - numerics->SetCvve (nodes->GetCvve(iPoint), nodes->GetCvve(iPoint)); + numerics->SetEve(nodes->GetEve(iPoint), nodes->GetEve(iPoint)); + numerics->SetCvve(nodes->GetCvve(iPoint), nodes->GetCvve(iPoint)); /*--- Set volume of the dual grid cell ---*/ numerics->SetVolume(geometry->nodes->GetVolume(iPoint)); @@ -1150,49 +1153,103 @@ void CNEMOEulerSolver::Source_Residual(CGeometry *geometry, CSolver **solver_con /*--- Compute axisymmetric source terms (if needed) ---*/ if (config->GetAxisymmetric()) { - auto residual = numerics->ComputeAxisymmetric(config); - /*--- Check for errors before applying source to the linear system ---*/ - err = false; - for (iVar = 0; iVar < nVar; iVar++) - if (residual[iVar] != residual[iVar]) err = true; - //if (implicit) - // for (iVar = 0; iVar < nVar; iVar++) - // for (jVar = 0; jVar < nVar; jVar++) - // if (Jacobian_i[iVar][jVar] != Jacobian_i[iVar][jVar]) err = true; + if (viscous) { - /*--- Apply the update to the linear system ---*/ - if (!err) { - LinSysRes.AddBlock(iPoint, residual); - //if (implicit) - // Jacobian.AddBlock(iPoint, iPoint, Jacobian_i); + for (iPoint = 0; iPoint < nPoint; iPoint++) { + + su2double yCoord = geometry->nodes->GetCoord(iPoint, 1); + su2double yVelocity = nodes->GetVelocity(iPoint,1); + su2double xVelocity = nodes->GetVelocity(iPoint,0); + su2double Total_Viscosity = nodes->GetLaminarViscosity(iPoint) + nodes->GetEddyViscosity(iPoint); + + if (yCoord > EPS){ + su2double nu_v_on_y = Total_Viscosity*yVelocity/yCoord; + nodes->SetAuxVar(iPoint, 0, nu_v_on_y); + nodes->SetAuxVar(iPoint, 1, nu_v_on_y*yVelocity); + nodes->SetAuxVar(iPoint, 2, nu_v_on_y*xVelocity); + } + } + + /*--- Compute the auxiliary variable gradient with GG or WLS. ---*/ + if (config->GetKind_Gradient_Method() == GREEN_GAUSS) { + SetAuxVar_Gradient_GG(geometry, config); + } + if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { + SetAuxVar_Gradient_LS(geometry, config); + } } - else - eAxi_local++; - } - if(!monoatomic){ - if(!frozen){ - /*--- Compute the non-equilibrium chemistry ---*/ - auto residual = numerics->ComputeChemistry(config); + /*--- loop over points ---*/ + SU2_OMP_FOR_DYN(omp_chunk_size) + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { - /*--- Check for errors before applying source to the linear system ---*/ - err = false; - for (iVar = 0; iVar < nVar; iVar++) - if (residual[iVar] != residual[iVar]) err = true; - //if (implicit) - // for (iVar = 0; iVar < nVar; iVar++) - // for (jVar = 0; jVar < nVar; jVar++) - // if (Jacobian_i[iVar][jVar] != Jacobian_i[iVar][jVar]) err = true; - - /*--- Apply the chemical sources to the linear system ---*/ - if (!err) { - LinSysRes.SubtractBlock(iPoint, residual); - //if (implicit) - // Jacobian.SubtractBlock(iPoint, iPoint, Jacobian_i); - } else - eChm_local++; + /*--- Set solution ---*/ + numerics->SetConservative(nodes->GetSolution(iPoint), nodes->GetSolution(iPoint)); + + /*--- Set control volume ---*/ + numerics->SetVolume(geometry->nodes->GetVolume(iPoint)); + + /*--- Set y coordinate ---*/ + numerics->SetCoord(geometry->nodes->GetCoord(iPoint), geometry->nodes->GetCoord(iPoint)); + + /*--- Set primitive variables for viscous terms and/or generalised source ---*/ + numerics->SetPrimitive(nodes->GetPrimitive(iPoint), nodes->GetPrimitive(iPoint)); + + if (viscous) { + + /*--- Set gradient of primitive variables ---*/ + numerics->SetPrimVarGradient(nodes->GetGradient_Primitive(iPoint), nodes->GetGradient_Primitive(iPoint)); + + /*--- Set gradient of auxillary variables ---*/ + numerics->SetAuxVarGrad(nodes->GetAuxVarGradient(iPoint), nullptr); + + /*--- Set diffusion coefficient ---*/ + numerics->SetDiffusionCoeff(nodes->GetDiffusionCoeff(iPoint), nodes->GetDiffusionCoeff(iPoint)); + + /*--- Laminar viscosity ---*/ + numerics->SetLaminarViscosity(nodes->GetLaminarViscosity(iPoint), nodes->GetLaminarViscosity(iPoint)); + + /*--- Eddy viscosity ---*/ + numerics->SetEddyViscosity(nodes->GetEddyViscosity(iPoint), nodes->GetEddyViscosity(iPoint)); + + /*--- Thermal conductivity ---*/ + numerics->SetThermalConductivity(nodes->GetThermalConductivity(iPoint), nodes->GetThermalConductivity(iPoint)); + + /*--- Vib-el. thermal conductivity ---*/ + numerics->SetThermalConductivity_ve(nodes->GetThermalConductivity_ve(iPoint), nodes->GetThermalConductivity_ve(iPoint)); + + /*--- Vib-el energy ---*/ + numerics->SetEve(nodes->GetEve(iPoint), nodes->GetEve(iPoint)); + + /*--- Set turbulence kinetic energy ---*/ + if (rans){ + CVariable* turbNodes = solver_container[TURB_SOL]->GetNodes(); + numerics->SetTurbKineticEnergy(turbNodes->GetSolution(iPoint,0), turbNodes->GetSolution(iPoint,0)); + } + } + + auto residual = numerics->ComputeAxisymmetric(config); + + /*--- Check for errors before applying source to the linear system ---*/ + err = false; + for (iVar = 0; iVar < nVar; iVar++) + if (residual[iVar] != residual[iVar]) err = true; + if (implicit) + for (iVar = 0; iVar < nVar; iVar++) + for (jVar = 0; jVar < nVar; jVar++) + if (Jacobian_i[iVar][jVar] != Jacobian_i[iVar][jVar]) err = true; + + /*--- Apply the update to the linear system ---*/ + if (!err) { + LinSysRes.AddBlock(iPoint, residual); + if (implicit) + Jacobian.AddBlock(iPoint, iPoint, Jacobian_i); + } + else + eAxi_local++; } + } /*--- Compute vibrational energy relaxation ---*/ diff --git a/SU2_CFD/src/variables/CNEMOEulerVariable.cpp b/SU2_CFD/src/variables/CNEMOEulerVariable.cpp index 58ffd96154be..dcd1589fce75 100644 --- a/SU2_CFD/src/variables/CNEMOEulerVariable.cpp +++ b/SU2_CFD/src/variables/CNEMOEulerVariable.cpp @@ -78,6 +78,14 @@ CNEMOEulerVariable::CNEMOEulerVariable(su2double val_pressure, Res_TruncError.resize(nPoint,nVar) = su2double(0.0); + /*--- Size Grad_AuxVar for axiysmmetric ---*/ + + if (config->GetAxisymmetric()){ + nAuxVar = 3; + Grad_AuxVar.resize(nPoint,nAuxVar,nDim,0.0); + AuxVar.resize(nPoint,nAuxVar) = su2double(0.0); + } + /*--- Only for residual smoothing (multigrid) ---*/ for (unsigned long iMesh = 0; iMesh <= config->GetnMGLevels(); iMesh++) { From 37ac145e3fec08c7e6ab15b101399cba209accad Mon Sep 17 00:00:00 2001 From: jtneedels Date: Tue, 12 Jan 2021 10:10:35 -0800 Subject: [PATCH 2/6] Eliminate unused variables, move initalization of temperature variables up to eliminate compiler warnings Signed-off-by: jtneedels --- SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp index df8e7a1fa932..b130bd786347 100644 --- a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp +++ b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp @@ -297,13 +297,7 @@ CNumerics::ResidualType<> CSource_NEMO::ComputeAxisymmetric(const CConfig *confi unsigned short iDim, iSpecies, iVar; su2double rho, rhov, vel2, H, yinv, T, Tve, qy_ve, Ru, RuSI; - su2double *V, *Ds, **GV, mu, ktr, kve, div_vel; - - auto& Ms = fluidmodel->GetSpeciesMolarMass(); - - bool viscous = config->GetViscous(); - bool rans = (config->GetKind_Turb_Model() != NONE); - hs = fluidmodel->ComputeSpeciesEnthalpy(T, Tve, eve_i); + su2double *Ds, **GV, ktr, kve; Ds = Diffusion_Coeff_i; ktr = Thermal_Conductivity_i; @@ -315,6 +309,12 @@ CNumerics::ResidualType<> CSource_NEMO::ComputeAxisymmetric(const CConfig *confi RuSI= UNIVERSAL_GAS_CONSTANT; Ru = 1000.0*RuSI; + auto& Ms = fluidmodel->GetSpeciesMolarMass(); + + bool viscous = config->GetViscous(); + bool rans = (config->GetKind_Turb_Model() != NONE); + hs = fluidmodel->ComputeSpeciesEnthalpy(T, Tve, eve_i); + /*--- Initialize residual and Jacobian arrays ---*/ for (iVar = 0; iVar < nVar; iVar++) { residual[iVar] = 0.0; From 2b67845ee01b99136121942e609a0197e68e1ae8 Mon Sep 17 00:00:00 2001 From: jtneedels Date: Tue, 12 Jan 2021 21:16:46 -0800 Subject: [PATCH 3/6] Fixed issue with test failue due to missing chemistry source residual term, addressed PR comments (spacing, initialization) Signed-off-by: jtneedels --- SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp | 53 +++++++++--------- SU2_CFD/src/solvers/CNEMOEulerSolver.cpp | 56 ++++++++++++++------ SU2_CFD/src/variables/CNEMOEulerVariable.cpp | 5 +- 3 files changed, 68 insertions(+), 46 deletions(-) diff --git a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp index b130bd786347..629aa842cbe7 100644 --- a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp +++ b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp @@ -342,43 +342,42 @@ CNumerics::ResidualType<> CSource_NEMO::ComputeAxisymmetric(const CConfig *confi residual[nSpecies+2] = yinv*rhov*H*Volume; residual[nSpecies+3] = yinv*rhov*U_i[nSpecies+nDim+1]/rho*Volume; - if (viscous) { + if (viscous) { - if (!rans){ turb_ke_i = 0.0; } + if (!rans){ turb_ke_i = 0.0; } - su2double sumJhs_y = 0.0; - su2double sumJeve_y = 0.0; - su2double Mass = 0.0; + su2double sumJhs_y = 0.0; + su2double sumJeve_y = 0.0; + su2double Mass = 0.0; - for (iSpecies=0; iSpeciesSetPrimitive(nodes->GetPrimitive(iPoint), nodes->GetPrimitive(iPoint)); + /*--- If necessary, set variables needed for viscous computation ---*/ if (viscous) { /*--- Set gradient of primitive variables ---*/ @@ -1229,29 +1230,52 @@ void CNEMOEulerSolver::Source_Residual(CGeometry *geometry, CSolver **solver_con } } - auto residual = numerics->ComputeAxisymmetric(config); + auto residual = numerics->ComputeAxisymmetric(config); - /*--- Check for errors before applying source to the linear system ---*/ - err = false; + /*--- Check for errors before applying source to the linear system ---*/ + err = false; + for (iVar = 0; iVar < nVar; iVar++) + if (residual[iVar] != residual[iVar]) err = true; + if (implicit) for (iVar = 0; iVar < nVar; iVar++) - if (residual[iVar] != residual[iVar]) err = true; + for (jVar = 0; jVar < nVar; jVar++) + if (Jacobian_i[iVar][jVar] != Jacobian_i[iVar][jVar]) err = true; + + /*--- Apply the update to the linear system ---*/ + if (!err) { + LinSysRes.AddBlock(iPoint, residual); if (implicit) - for (iVar = 0; iVar < nVar; iVar++) - for (jVar = 0; jVar < nVar; jVar++) - if (Jacobian_i[iVar][jVar] != Jacobian_i[iVar][jVar]) err = true; - - /*--- Apply the update to the linear system ---*/ - if (!err) { - LinSysRes.AddBlock(iPoint, residual); - if (implicit) - Jacobian.AddBlock(iPoint, iPoint, Jacobian_i); - } - else - eAxi_local++; + Jacobian.AddBlock(iPoint, iPoint, Jacobian_i); + }else + eAxi_local++; } } + if(!monoatomic){ + if(!frozen){ + /*--- Compute the non-equilibrium chemistry ---*/ + auto residual = numerics->ComputeChemistry(config); + + /*--- Check for errors before applying source to the linear system ---*/ + err = false; + for (iVar = 0; iVar < nVar; iVar++) + if (residual[iVar] != residual[iVar]) err = true; + //if (implicit) + // for (iVar = 0; iVar < nVar; iVar++) + // for (jVar = 0; jVar < nVar; jVar++) + // if (Jacobian_i[iVar][jVar] != Jacobian_i[iVar][jVar]) err = true; + + /*--- Apply the chemical sources to the linear system ---*/ + if (!err) { + LinSysRes.SubtractBlock(iPoint, residual); + //if (implicit) + // Jacobian.SubtractBlock(iPoint, iPoint, Jacobian_i); + } else + eChm_local++; + } + } + /*--- Compute vibrational energy relaxation ---*/ /// NOTE: Jacobians don't account for relaxation time derivatives diff --git a/SU2_CFD/src/variables/CNEMOEulerVariable.cpp b/SU2_CFD/src/variables/CNEMOEulerVariable.cpp index dcd1589fce75..6aa8ff983e4d 100644 --- a/SU2_CFD/src/variables/CNEMOEulerVariable.cpp +++ b/SU2_CFD/src/variables/CNEMOEulerVariable.cpp @@ -78,9 +78,8 @@ CNEMOEulerVariable::CNEMOEulerVariable(su2double val_pressure, Res_TruncError.resize(nPoint,nVar) = su2double(0.0); - /*--- Size Grad_AuxVar for axiysmmetric ---*/ - - if (config->GetAxisymmetric()){ + /*--- Size Grad_AuxVar for axiysmmetric ---*/ + if (config->GetAxisymmetric()){ nAuxVar = 3; Grad_AuxVar.resize(nPoint,nAuxVar,nDim,0.0); AuxVar.resize(nPoint,nAuxVar) = su2double(0.0); From 3e4ababd5511215323f0d7f631f6b2fe4d7b8bc6 Mon Sep 17 00:00:00 2001 From: jtneedels Date: Wed, 13 Jan 2021 08:09:58 -0800 Subject: [PATCH 4/6] Addressing PR comments (commenting) Signed-off-by: jtneedels --- SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp index 629aa842cbe7..f4f5cd3742ac 100644 --- a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp +++ b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp @@ -298,7 +298,8 @@ CNumerics::ResidualType<> CSource_NEMO::ComputeAxisymmetric(const CConfig *confi unsigned short iDim, iSpecies, iVar; su2double rho, rhov, vel2, H, yinv, T, Tve, qy_ve, Ru, RuSI; su2double *Ds, **GV, ktr, kve; - + + /*--- Rename for convenience ---*/ Ds = Diffusion_Coeff_i; ktr = Thermal_Conductivity_i; kve = Thermal_Conductivity_ve_i; From cec4c4b0a1b9b71fa169d6ee793da59ad51f67e0 Mon Sep 17 00:00:00 2001 From: jtneedels Date: Wed, 13 Jan 2021 15:28:26 -0800 Subject: [PATCH 5/6] Addressing PR comments (formatting) Signed-off-by: jtneedels --- SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp | 2 +- SU2_CFD/src/solvers/CNEMOEulerSolver.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp index f4f5cd3742ac..f8f8fb06d321 100644 --- a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp +++ b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp @@ -363,7 +363,7 @@ CNumerics::ResidualType<> CSource_NEMO::ComputeAxisymmetric(const CConfig *confi /*--- Enthalpy and vib-el energy transport due to y-direction diffusion---*/ for (iSpecies = 0; iSpecies < nHeavy; iSpecies++) { - sumJhs_y += (rho*Ds[iSpecies]*GV[RHOS_INDEX+iSpecies][1] - V_i[RHOS_INDEX+iSpecies]*Vector[1]) * hs[iSpecies]; + sumJhs_y += (rho*Ds[iSpecies]*GV[RHOS_INDEX+iSpecies][1] - V_i[RHOS_INDEX+iSpecies]*Vector[1]) * hs[iSpecies]; sumJeve_y += (rho*Ds[iSpecies]*GV[RHOS_INDEX+iSpecies][1] - V_i[RHOS_INDEX+iSpecies]*Vector[1]) * eve_i[iSpecies]; } diff --git a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp index d5a3e530ecb9..da5ceeaa11a5 100644 --- a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp @@ -1249,7 +1249,6 @@ void CNEMOEulerSolver::Source_Residual(CGeometry *geometry, CSolver **solver_con }else eAxi_local++; } - } if(!monoatomic){ From fe4df82524a09f7138c128e92ade5c316d0ed2b1 Mon Sep 17 00:00:00 2001 From: jtneedels Date: Wed, 13 Jan 2021 21:22:36 -0800 Subject: [PATCH 6/6] Addressing PR comments, formatting Signed-off-by: jtneedels --- SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp index f8f8fb06d321..5e242377979d 100644 --- a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp +++ b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp @@ -344,7 +344,6 @@ CNumerics::ResidualType<> CSource_NEMO::ComputeAxisymmetric(const CConfig *confi residual[nSpecies+3] = yinv*rhov*U_i[nSpecies+nDim+1]/rho*Volume; if (viscous) { - if (!rans){ turb_ke_i = 0.0; } su2double sumJhs_y = 0.0;