Skip to content

Commit 12d2bc0

Browse files
committed
Added catch for if update freq is not a factor of final ramp iter & added CodeQL comments
1 parent 03aefd6 commit 12d2bc0

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

SU2_CFD/src/iteration/CTurboIteration.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,13 @@ void CTurboIteration::InitTurboPerformance(CGeometry* geometry, CConfig** config
6666
}
6767

6868
void CTurboIteration::TurboRamp(CGeometry**** geometry_container, CConfig** config_container, unsigned long iter, unsigned short iZone, unsigned short ramp_flag) {
69-
69+
/*--- Generic function for handling turbomachinery ramps ---*/
70+
// Grid updates (i.e. rotation/translation) handled seperately to boundary (i.e. pressure/mass flow) updates
7071
auto* config = config_container[iZone];
7172
auto* geometry = geometry_container[iZone][INST_0][ZONE_0];
7273

74+
/*--- Lambda function for selecting correct ramp variables ---*/
75+
// Ramp coefficient variables
7376
auto GetRamp_Coeff = [&](CConfig* &config, unsigned short int x) {
7477
if (ramp_flag == TURBO_RAMP_TYPE::GRID && config->GetRampRotatingFrame()) return config->GetRampRotatingFrame_Coeff(x);
7578
else if (ramp_flag == TURBO_RAMP_TYPE::GRID && config->GetRampTranslationFrame()) return config->GetRampTranslationFrame_Coeff(x);
@@ -78,16 +81,19 @@ void CTurboIteration::TurboRamp(CGeometry**** geometry_container, CConfig** conf
7881
else return config->GetRampRotatingFrame_Coeff(x); //No ramp specified, does nothing
7982
};
8083

84+
// Grid movement rate
8185
auto SetRate = [&](CConfig* &config, su2double val) {
8286
if (ramp_flag == TURBO_RAMP_TYPE::GRID && config->GetRampRotatingFrame()) config->SetRotation_Rate(2, val);
8387
else if (ramp_flag == TURBO_RAMP_TYPE::GRID && config->GetRampTranslationFrame()) config->SetTranslation_Rate(1, val);
8488
};
8589

90+
// Grid velocity
8691
auto SetVelocity = [&](CGeometry* &geometry, CConfig* &config, bool print) {
8792
if (ramp_flag == TURBO_RAMP_TYPE::GRID && config->GetRampRotatingFrame()) geometry->SetRotationalVelocity(config, print);
8893
else if (ramp_flag == TURBO_RAMP_TYPE::GRID && config->GetRampTranslationFrame()) geometry->SetTranslationalVelocity(config, print);
8994
};
9095

96+
// Final value of ramp
9197
auto GetFinalValue = [&](CConfig* &config) {
9298
if (ramp_flag == TURBO_RAMP_TYPE::GRID && config->GetRampRotatingFrame()) return config->GetFinalRotation_Rate_Z();
9399
else if (ramp_flag == TURBO_RAMP_TYPE::GRID && config->GetRampTranslationFrame()) return config->GetFinalTranslation_Rate_Y();
@@ -113,8 +119,9 @@ void CTurboIteration::TurboRamp(CGeometry**** geometry_container, CConfig** conf
113119
const long unsigned finalRamp_Iter = SU2_TYPE::Int(GetRamp_Coeff(config, 2));
114120
const auto ini_vel = GetRamp_Coeff(config, 0);
115121
const bool print = (config->GetComm_Level() == COMM_FULL);
116-
117-
if(iter % rampFreq == 0 && iter <= finalRamp_Iter){
122+
123+
// Two options needed as if finalRamp_Iter % rampFreq != 0 final value is not set correctly
124+
if((iter % rampFreq == 0 && iter < finalRamp_Iter) || (iter == finalRamp_Iter)){
118125
const auto final_vel = GetFinalValue(config);
119126
if(fabs(final_vel) > 0.0) {
120127
const auto vel = ini_vel + iter * (final_vel - ini_vel)/finalRamp_Iter;
@@ -123,6 +130,7 @@ void CTurboIteration::TurboRamp(CGeometry**** geometry_container, CConfig** conf
123130
SetVelocity(geometry, config, print);
124131
geometry->SetShroudVelocity(config);
125132
}
133+
// Update average turbo values
126134
geometry->SetAvgTurboValue(config, iZone, INFLOW, false);
127135
geometry->SetAvgTurboValue(config, iZone, OUTFLOW, false);
128136
geometry->GatherInOutAverageValues(config, false);
@@ -133,6 +141,7 @@ void CTurboIteration::TurboRamp(CGeometry**** geometry_container, CConfig** conf
133141
}
134142
}
135143

144+
// Boundary ramps (pressure/mass flow)
136145
if (ramp_flag == TURBO_RAMP_TYPE::BOUNDARY){
137146
const long unsigned rampFreq = SU2_TYPE::Int(GetRamp_Coeff(config, 1));
138147
const long unsigned finalRamp_Iter = SU2_TYPE::Int(GetRamp_Coeff(config, 2));

0 commit comments

Comments
 (0)