Skip to content

Commit 4b74ccb

Browse files
committed
FIX: Prevent zero-division in Cp calculation for zero free-stream velocity
1 parent e1befed commit 4b74ccb

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

SU2_CFD/src/output/CFlowCompOutput.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,11 @@ void CFlowCompOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolv
336336
SetVolumeOutputValue("MACH", iPoint, sqrt(Node_Flow->GetVelocity2(iPoint))/Node_Flow->GetSoundSpeed(iPoint));
337337

338338
const su2double factor = solver[FLOW_SOL]->GetReferenceDynamicPressure();
339-
SetVolumeOutputValue("PRESSURE_COEFF", iPoint, (Node_Flow->GetPressure(iPoint) - solver[FLOW_SOL]->GetPressure_Inf())/factor);
339+
if (std::abs(factor) > 1e-10) {
340+
SetVolumeOutputValue("PRESSURE_COEFF", iPoint, (Node_Flow->GetPressure(iPoint) - solver[FLOW_SOL]->GetPressure_Inf())/factor);
341+
} else {
342+
SetVolumeOutputValue("PRESSURE_COEFF", iPoint, 0.0);
343+
}
340344
SetVolumeOutputValue("VELOCITY-X", iPoint, Node_Flow->GetVelocity(iPoint, 0));
341345
SetVolumeOutputValue("VELOCITY-Y", iPoint, Node_Flow->GetVelocity(iPoint, 1));
342346
if (nDim == 3){

SU2_CFD/src/output/CFlowIncOutput.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,11 @@ void CFlowIncOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolve
416416
}
417417

418418
const su2double factor = solver[FLOW_SOL]->GetReferenceDynamicPressure();
419-
SetVolumeOutputValue("PRESSURE_COEFF", iPoint, (Node_Flow->GetPressure(iPoint) - solver[FLOW_SOL]->GetPressure_Inf())/factor);
419+
if (std::abs(factor) > 1e-10) {
420+
SetVolumeOutputValue("PRESSURE_COEFF", iPoint, (Node_Flow->GetPressure(iPoint) - solver[FLOW_SOL]->GetPressure_Inf())/factor);
421+
} else {
422+
SetVolumeOutputValue("PRESSURE_COEFF", iPoint, 0.0);
423+
}
420424
SetVolumeOutputValue("DENSITY", iPoint, Node_Flow->GetDensity(iPoint));
421425

422426
if (config->GetKind_Solver() == MAIN_SOLVER::INC_RANS || config->GetKind_Solver() == MAIN_SOLVER::INC_NAVIER_STOKES){

SU2_CFD/src/output/CNEMOCompOutput.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,12 @@ void CNEMOCompOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolv
346346
SetVolumeOutputValue("MACH", iPoint, sqrt(Node_Flow->GetVelocity2(iPoint))/Node_Flow->GetSoundSpeed(iPoint));
347347

348348
const su2double factor = solver[FLOW_SOL]->GetReferenceDynamicPressure();
349-
SetVolumeOutputValue("PRESSURE_COEFF", iPoint, (Node_Flow->GetPressure(iPoint) - solver[FLOW_SOL]->GetPressure_Inf())/factor);
349+
350+
if (std::abs(factor) > 1e-10) {
351+
SetVolumeOutputValue("PRESSURE_COEFF", iPoint, (Node_Flow->GetPressure(iPoint) - solver[FLOW_SOL]->GetPressure_Inf())/factor);
352+
} else {
353+
SetVolumeOutputValue("PRESSURE_COEFF", iPoint, 0.0);
354+
}
350355

351356
if (config->GetViscous()){
352357
SetVolumeOutputValue("LAMINAR_VISCOSITY", iPoint, Node_Flow->GetLaminarViscosity(iPoint));

0 commit comments

Comments
 (0)