From cb8c34def41ac1adb1d4dc14e94396951d4e2c04 Mon Sep 17 00:00:00 2001 From: Ayush Date: Wed, 31 Dec 2025 19:17:39 +0000 Subject: [PATCH] FIX: handle zero dynamic pressure in reference value calculation --- SU2_CFD/src/solvers/CEulerSolver.cpp | 5 +++++ SU2_CFD/src/solvers/CIncEulerSolver.cpp | 5 +++++ SU2_CFD/src/solvers/CNEMOEulerSolver.cpp | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index 10df71fbe5a..47a97b0e9be 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -1445,6 +1445,11 @@ void CEulerSolver::SetReferenceValues(const CConfig& config) { } DynamicPressureRef = 0.5 * Density_Inf * RefVel2; + + if (DynamicPressureRef < EPS) { + DynamicPressureRef = 1.0; + } + AeroCoeffForceRef = DynamicPressureRef * config.GetRefArea(); } diff --git a/SU2_CFD/src/solvers/CIncEulerSolver.cpp b/SU2_CFD/src/solvers/CIncEulerSolver.cpp index 6cc5675443a..709aa7b689b 100644 --- a/SU2_CFD/src/solvers/CIncEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CIncEulerSolver.cpp @@ -945,6 +945,11 @@ void CIncEulerSolver::SetReferenceValues(const CConfig& config) { } DynamicPressureRef = 0.5 * RefDensity * RefVel2; + + if (DynamicPressureRef < EPS) { + DynamicPressureRef = 1.0; + } + AeroCoeffForceRef = DynamicPressureRef * config.GetRefArea(); } diff --git a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp index accf9b0252c..d7b3bfa3fb7 100644 --- a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp @@ -1387,6 +1387,11 @@ void CNEMOEulerSolver::SetNondimensionalization(CConfig *config, unsigned short void CNEMOEulerSolver::SetReferenceValues(const CConfig& config) { DynamicPressureRef = 0.5 * Density_Inf * GeometryToolbox::SquaredNorm(nDim, Velocity_Inf); + + if (DynamicPressureRef < EPS) { + DynamicPressureRef = 1.0; + } + AeroCoeffForceRef = DynamicPressureRef * config.GetRefArea(); }