@@ -305,8 +305,10 @@ class CSourcePieceWise_TurbSST final : public CNumerics {
305305 alfa_2,
306306 beta_1,
307307 beta_2,
308- sigma_omega_1,
309- sigma_omega_2,
308+ sigma_k_1,
309+ sigma_k_2,
310+ sigma_w_1,
311+ sigma_w_2,
310312 beta_star,
311313 a1;
312314
@@ -320,12 +322,49 @@ class CSourcePieceWise_TurbSST final : public CNumerics {
320322
321323 bool incompressible;
322324 bool sustaining_terms;
325+ bool axisymmetric;
323326
324327 /* !
325328 * \brief A virtual member. Get strain magnitude based on perturbed reynolds stress matrix
326329 * \param[in] turb_ke: turbulent kinetic energy of the node
327330 */
328331 void SetPerturbedStrainMag (su2double turb_ke);
332+
333+ /* !
334+ * \brief Add contribution due to axisymmetric formulation to 2D residual
335+ */
336+ inline void ResidualAxisymmetric (su2double alfa_blended, su2double zeta){
337+
338+ if (Coord_i[1 ] < EPS) return ;
339+
340+ su2double yinv, rhov, k, w;
341+ su2double sigma_k_i, sigma_w_i;
342+ su2double pk_axi, pw_axi, cdk_axi, cdw_axi;
343+
344+ AD::SetPreaccIn (Coord_i[1 ]);
345+
346+ yinv = 1.0 /Coord_i[1 ];
347+ rhov = Density_i*V_i[2 ];
348+ k = TurbVar_i[0 ];
349+ w = TurbVar_i[1 ];
350+
351+ /* --- Compute blended constants ---*/
352+ sigma_k_i = F1_i*sigma_k_1+(1.0 -F1_i)*sigma_k_2;
353+ sigma_w_i = F1_i*sigma_w_1+(1.0 -F1_i)*sigma_w_2;
354+
355+ /* --- Production ---*/
356+ pk_axi = max (0.0 ,2.0 /3.0 *rhov*k*(2.0 /zeta*(yinv*V_i[2 ]-PrimVar_Grad_i[2 ][1 ]-PrimVar_Grad_i[1 ][0 ])-1.0 ));
357+ pw_axi = alfa_blended*zeta/k*pk_axi;
358+
359+ /* --- Convection-Diffusion ---*/
360+ cdk_axi = rhov*k-(Laminar_Viscosity_i+sigma_k_i*Eddy_Viscosity_i)*TurbVar_Grad_i[0 ][1 ];
361+ cdw_axi = rhov*w-(Laminar_Viscosity_i+sigma_w_i*Eddy_Viscosity_i)*TurbVar_Grad_i[1 ][1 ];
362+
363+ /* --- Add terms to the residuals ---*/
364+ Residual[0 ] += yinv*Volume*(pk_axi-cdk_axi);
365+ Residual[1 ] += yinv*Volume*(pw_axi-cdw_axi);
366+
367+ }
329368
330369public:
331370 /* !
0 commit comments