Skip to content

Commit ecc3827

Browse files
committed
Split Turb output further into Residual and Limiter+rest
1 parent 5d322e4 commit ecc3827

5 files changed

Lines changed: 97 additions & 43 deletions

File tree

SU2_CFD/include/output/CFlowOutput.hpp

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,29 +76,44 @@ class CFlowOutput : public CFVMOutput{
7676
void SetVolumeOutputFields_TurbSolution(const CConfig* config);
7777

7878
/*!
79-
* \brief Set turbulence volume field values for a point.
79+
* \brief Set turbulence volume solution field values for a point.
8080
* \note The order of fields in restart files is fixed. Therefore the split-up.
8181
* \param[in] config - Definition of the particular problem.
8282
* \param[in] solver - The container holding all solution data.
83-
* \param[in] geometry - Geometrical definition of the problem.
8483
* \param[in] iPoint - Index of the point.
8584
*/
8685
void LoadVolumeData_TurbSolution(const CConfig* config, const CSolver* const* solver, const unsigned long iPoint);
8786

8887
/*!
89-
* \brief Add turbulence volume fields for a point (FVMComp, FVMInc, FVMNEMO).
88+
* \brief Add turbulence volume solution fields for a point (FVMComp, FVMInc, FVMNEMO).
89+
* \note The order of fields in restart files is fixed. Therefore the split-up.
90+
* \param[in] config - Definition of the particular problem.
91+
*/
92+
void SetVolumeOutputFields_TurbResidual(const CConfig* config);
93+
94+
/*!
95+
* \brief Set turbulence volume residual field values for a point.
96+
* \note The order of fields in restart files is fixed. Therefore the split-up.
97+
* \param[in] config - Definition of the particular problem.
98+
* \param[in] solver - The container holding all solution data.
99+
* \param[in] iPoint - Index of the point.
100+
*/
101+
void LoadVolumeData_TurbResidual(const CConfig* config, const CSolver* const* solver, const unsigned long iPoint);
102+
103+
/*!
104+
* \brief Add turbulence volume limiter fields (and more) for a point (FVMComp, FVMInc, FVMNEMO).
90105
* \param[in] config - Definition of the particular problem.
91106
*/
92-
void SetVolumeOutputFields_Turb(const CConfig* config);
107+
void SetVolumeOutputFields_TurbLimiter(const CConfig* config);
93108

94109
/*!
95-
* \brief Set turbulence volume field values for a point.
110+
* \brief Set turbulence volume limiter field values (and more) for a point.
96111
* \param[in] config - Definition of the particular problem.
97112
* \param[in] solver - The container holding all solution data.
98113
* \param[in] geometry - Geometrical definition of the problem.
99114
* \param[in] iPoint - Index of the point.
100115
*/
101-
void LoadVolumeData_Turb(const CConfig* config, const CSolver* const* solver, const CGeometry* geometry, const unsigned long iPoint);
116+
void LoadVolumeData_TurbLimiter(const CConfig* config, const CSolver* const* solver, const CGeometry* geometry, const unsigned long iPoint);
102117

103118
/*!
104119
* \brief Add aerodynamic coefficients as output fields

SU2_CFD/src/output/CFlowCompOutput.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,9 @@ void CFlowCompOutput::SetVolumeOutputFields(CConfig *config){
293293
AddVolumeOutput("RES_MOMENTUM-Z", "Residual_Momentum_z", "RESIDUAL", "Residual of the z-momentum component");
294294
AddVolumeOutput("RES_ENERGY", "Residual_Energy", "RESIDUAL", "Residual of the energy");
295295

296+
SetVolumeOutputFields_TurbResidual(config);
297+
298+
296299
if (config->GetKind_SlopeLimit_Flow() != NO_LIMITER && config->GetKind_SlopeLimit_Flow() != VAN_ALBADA_EDGE) {
297300
AddVolumeOutput("LIMITER_VELOCITY-X", "Limiter_Velocity_x", "LIMITER", "Limiter value of the x-velocity");
298301
AddVolumeOutput("LIMITER_VELOCITY-Y", "Limiter_Velocity_y", "LIMITER", "Limiter value of the y-velocity");
@@ -304,6 +307,8 @@ void CFlowCompOutput::SetVolumeOutputFields(CConfig *config){
304307
AddVolumeOutput("LIMITER_ENTHALPY", "Limiter_Enthalpy", "LIMITER", "Limiter value of the enthalpy");
305308
}
306309

310+
SetVolumeOutputFields_TurbLimiter(config);
311+
307312
// Roe Low Dissipation
308313
if (config->GetKind_RoeLowDiss() != NO_ROELOWDISS){
309314
AddVolumeOutput("ROE_DISSIPATION", "Roe_Dissipation", "ROE_DISSIPATION", "Value of the Roe dissipation");
@@ -320,8 +325,6 @@ void CFlowCompOutput::SetVolumeOutputFields(CConfig *config){
320325
AddVolumeOutput("Q_CRITERION", "Q_Criterion", "VORTEX_IDENTIFICATION", "Value of the Q-Criterion");
321326
}
322327

323-
SetVolumeOutputFields_Turb(config);
324-
325328
AddCommonFVMOutputs(config);
326329

327330
if (config->GetTime_Domain()){
@@ -380,6 +383,8 @@ void CFlowCompOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolv
380383
SetVolumeOutputValue("RES_ENERGY", iPoint, solver[FLOW_SOL]->LinSysRes(iPoint, 3));
381384
}
382385

386+
LoadVolumeData_TurbResidual(config, solver, iPoint);
387+
383388
if (config->GetKind_SlopeLimit_Flow() != NO_LIMITER && config->GetKind_SlopeLimit_Flow() != VAN_ALBADA_EDGE) {
384389
SetVolumeOutputValue("LIMITER_VELOCITY-X", iPoint, Node_Flow->GetLimiter_Primitive(iPoint, 1));
385390
SetVolumeOutputValue("LIMITER_VELOCITY-Y", iPoint, Node_Flow->GetLimiter_Primitive(iPoint, 2));
@@ -391,6 +396,8 @@ void CFlowCompOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolv
391396
SetVolumeOutputValue("LIMITER_ENTHALPY", iPoint, Node_Flow->GetLimiter_Primitive(iPoint, nDim+3));
392397
}
393398

399+
LoadVolumeData_TurbLimiter(config, solver, geometry, iPoint);
400+
394401
if (config->GetKind_RoeLowDiss() != NO_ROELOWDISS){
395402
SetVolumeOutputValue("ROE_DISSIPATION", iPoint, Node_Flow->GetRoe_Dissipation(iPoint));
396403
}
@@ -406,8 +413,6 @@ void CFlowCompOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolv
406413
SetVolumeOutputValue("Q_CRITERION", iPoint, GetQ_Criterion(Node_Flow->GetVelocityGradient(iPoint)));
407414
}
408415

409-
LoadVolumeData_Turb(config, solver, geometry, iPoint);
410-
411416
LoadCommonFVMOutputs(config, geometry, iPoint);
412417

413418
if (config->GetTime_Domain()){

SU2_CFD/src/output/CFlowIncOutput.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,8 @@ void CFlowIncOutput::SetVolumeOutputFields(CConfig *config){
358358
if (config->GetEnergy_Equation())
359359
AddVolumeOutput("RES_TEMPERATURE", "Residual_Temperature", "RESIDUAL", "Residual of the temperature");
360360

361+
SetVolumeOutputFields_TurbResidual(config);
362+
361363
if (config->GetKind_SlopeLimit_Flow() != NO_LIMITER && config->GetKind_SlopeLimit_Flow() != VAN_ALBADA_EDGE) {
362364
AddVolumeOutput("LIMITER_PRESSURE", "Limiter_Pressure", "LIMITER", "Limiter value of the pressure");
363365
AddVolumeOutput("LIMITER_VELOCITY-X", "Limiter_Velocity_x", "LIMITER", "Limiter value of the x-velocity");
@@ -368,6 +370,8 @@ void CFlowIncOutput::SetVolumeOutputFields(CConfig *config){
368370
AddVolumeOutput("LIMITER_TEMPERATURE", "Limiter_Temperature", "LIMITER", "Limiter value of the temperature");
369371
}
370372

373+
SetVolumeOutputFields_TurbLimiter(config);
374+
371375
// Roe Low Dissipation
372376
if (config->GetKind_RoeLowDiss() != NO_ROELOWDISS){
373377
AddVolumeOutput("ROE_DISSIPATION", "Roe_Dissipation", "ROE_DISSIPATION", "Value of the Roe dissipation");
@@ -391,8 +395,6 @@ void CFlowIncOutput::SetVolumeOutputFields(CConfig *config){
391395
AddVolumeOutput("RECOVERED_TEMPERATURE", "Recovered_Temperature", "SOLUTION", "Recovered physical temperature");
392396
}
393397

394-
SetVolumeOutputFields_Turb(config);
395-
396398
AddCommonFVMOutputs(config);
397399
}
398400

@@ -453,6 +455,8 @@ void CFlowIncOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolve
453455
if (config->GetEnergy_Equation())
454456
SetVolumeOutputValue("RES_TEMPERATURE", iPoint, solver[FLOW_SOL]->LinSysRes(iPoint, nDim+1));
455457

458+
LoadVolumeData_TurbResidual(config, solver, iPoint);
459+
456460
if (config->GetKind_SlopeLimit_Flow() != NO_LIMITER && config->GetKind_SlopeLimit_Flow() != VAN_ALBADA_EDGE) {
457461
SetVolumeOutputValue("LIMITER_PRESSURE", iPoint, Node_Flow->GetLimiter_Primitive(iPoint, 0));
458462
SetVolumeOutputValue("LIMITER_VELOCITY-X", iPoint, Node_Flow->GetLimiter_Primitive(iPoint, 1));
@@ -463,6 +467,8 @@ void CFlowIncOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolve
463467
SetVolumeOutputValue("LIMITER_TEMPERATURE", iPoint, Node_Flow->GetLimiter_Primitive(iPoint, nDim+1));
464468
}
465469

470+
LoadVolumeData_TurbLimiter(config, solver, geometry, iPoint);
471+
466472
if (config->GetKind_RoeLowDiss() != NO_ROELOWDISS){
467473
SetVolumeOutputValue("ROE_DISSIPATION", iPoint, Node_Flow->GetRoe_Dissipation(iPoint));
468474
}
@@ -485,8 +491,6 @@ void CFlowIncOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolve
485491
SetVolumeOutputValue("RECOVERED_TEMPERATURE", iPoint, Node_Flow->GetStreamwise_Periodic_RecoveredTemperature(iPoint));
486492
}
487493

488-
LoadVolumeData_Turb(config, solver, geometry, iPoint);
489-
490494
LoadCommonFVMOutputs(config, geometry, iPoint);
491495
}
492496

SU2_CFD/src/output/CFlowOutput.cpp

Lines changed: 51 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -681,25 +681,55 @@ void CFlowOutput::LoadVolumeData_TurbSolution(const CConfig* config, const CSolv
681681
}
682682
}
683683

684-
void CFlowOutput::SetVolumeOutputFields_Turb(const CConfig* config) {
684+
void CFlowOutput::SetVolumeOutputFields_TurbResidual(const CConfig* config) {
685685
switch(config->GetKind_Turb_Model()){
686686
case TURB_MODEL::SA: case TURB_MODEL::SA_NEG: case TURB_MODEL::SA_E: case TURB_MODEL::SA_COMP: case TURB_MODEL::SA_E_COMP:
687687
AddVolumeOutput("RES_NU_TILDE", "Residual_Nu_Tilde", "RESIDUAL", "Residual of the Spalart-Allmaras variable");
688-
if (config->GetKind_SlopeLimit_Turb() != NO_LIMITER) {
689-
AddVolumeOutput("LIMITER_NU_TILDE", "Limiter_Nu_Tilde", "LIMITER", "Limiter value of the Spalart-Allmaras variable");
690-
}
691688
break;
689+
692690
case TURB_MODEL::SST: case TURB_MODEL::SST_SUST:
693691
AddVolumeOutput("RES_TKE", "Residual_TKE", "RESIDUAL", "Residual of turbulent kinetic energy");
694692
AddVolumeOutput("RES_DISSIPATION", "Residual_Omega", "RESIDUAL", "Residual of the rate of dissipation");
695-
if (config->GetKind_SlopeLimit_Turb() != NO_LIMITER) {
696-
AddVolumeOutput("LIMITER_TKE", "Limiter_TKE", "LIMITER", "Limiter value of turb. kinetic energy");
697-
AddVolumeOutput("LIMITER_DISSIPATION", "Limiter_Omega", "LIMITER", "Limiter value of dissipation rate");
698-
}
699693
break;
694+
700695
case TURB_MODEL::NONE:
701696
break;
702697
}
698+
}
699+
700+
void CFlowOutput::LoadVolumeData_TurbResidual(const CConfig* config, const CSolver* const* solver, const unsigned long iPoint) {
701+
const auto turb_solver = solver[TURB_SOL];
702+
703+
switch(config->GetKind_Turb_Model()){
704+
case TURB_MODEL::SA: case TURB_MODEL::SA_NEG: case TURB_MODEL::SA_E: case TURB_MODEL::SA_COMP: case TURB_MODEL::SA_E_COMP:
705+
SetVolumeOutputValue("RES_NU_TILDE", iPoint, turb_solver->LinSysRes(iPoint, 0));
706+
break;
707+
708+
case TURB_MODEL::SST: case TURB_MODEL::SST_SUST:
709+
SetVolumeOutputValue("RES_TKE", iPoint, turb_solver->LinSysRes(iPoint, 0));
710+
SetVolumeOutputValue("RES_DISSIPATION", iPoint, turb_solver->LinSysRes(iPoint, 1));
711+
break;
712+
713+
case TURB_MODEL::NONE: break;
714+
}
715+
}
716+
717+
void CFlowOutput::SetVolumeOutputFields_TurbLimiter(const CConfig* config) {
718+
if (config->GetKind_SlopeLimit_Turb() != NO_LIMITER) {
719+
switch(config->GetKind_Turb_Model()){
720+
case TURB_MODEL::SA: case TURB_MODEL::SA_NEG: case TURB_MODEL::SA_E: case TURB_MODEL::SA_COMP: case TURB_MODEL::SA_E_COMP:
721+
AddVolumeOutput("LIMITER_NU_TILDE", "Limiter_Nu_Tilde", "LIMITER", "Limiter value of the Spalart-Allmaras variable");
722+
break;
723+
724+
case TURB_MODEL::SST: case TURB_MODEL::SST_SUST:
725+
AddVolumeOutput("LIMITER_TKE", "Limiter_TKE", "LIMITER", "Limiter value of turb. kinetic energy");
726+
AddVolumeOutput("LIMITER_DISSIPATION", "Limiter_Omega", "LIMITER", "Limiter value of dissipation rate");
727+
break;
728+
729+
case TURB_MODEL::NONE:
730+
break;
731+
}
732+
}
703733

704734
if (config->GetKind_Solver() == RANS || config->GetKind_Solver() == INC_RANS) {
705735
AddVolumeOutput("EDDY_VISCOSITY", "Eddy_Viscosity", "PRIMITIVE", "Turbulent eddy viscosity");
@@ -716,29 +746,25 @@ void CFlowOutput::SetVolumeOutputFields_Turb(const CConfig* config) {
716746
}
717747
}
718748

719-
void CFlowOutput::LoadVolumeData_Turb(const CConfig* config, const CSolver* const* solver, const CGeometry* geometry, const unsigned long iPoint) {
749+
void CFlowOutput::LoadVolumeData_TurbLimiter(const CConfig* config, const CSolver* const* solver, const CGeometry* geometry, const unsigned long iPoint) {
720750
const auto Node_Flow = solver[FLOW_SOL]->GetNodes();
721751
const auto Node_Turb = (config->GetKind_Turb_Model() != TURB_MODEL::NONE) ? solver[TURB_SOL]->GetNodes() : nullptr;
722752
const auto Node_Geo = geometry->nodes;
723753

724-
switch(config->GetKind_Turb_Model()){
725-
case TURB_MODEL::SA: case TURB_MODEL::SA_NEG: case TURB_MODEL::SA_E: case TURB_MODEL::SA_COMP: case TURB_MODEL::SA_E_COMP:
726-
SetVolumeOutputValue("RES_NU_TILDE", iPoint, solver[TURB_SOL]->LinSysRes(iPoint, 0));
727-
if (config->GetKind_SlopeLimit_Turb() != NO_LIMITER) {
728-
SetVolumeOutputValue("LIMITER_NU_TILDE", iPoint, Node_Turb->GetLimiter(iPoint, 0));
729-
}
730-
break;
754+
if (config->GetKind_SlopeLimit_Turb() != NO_LIMITER) {
755+
switch(config->GetKind_Turb_Model()){
756+
case TURB_MODEL::SA: case TURB_MODEL::SA_NEG: case TURB_MODEL::SA_E: case TURB_MODEL::SA_COMP: case TURB_MODEL::SA_E_COMP:
757+
SetVolumeOutputValue("LIMITER_NU_TILDE", iPoint, Node_Turb->GetLimiter(iPoint, 0));
758+
break;
731759

732-
case TURB_MODEL::SST: case TURB_MODEL::SST_SUST:
733-
SetVolumeOutputValue("RES_TKE", iPoint, solver[TURB_SOL]->LinSysRes(iPoint, 0));
734-
SetVolumeOutputValue("RES_DISSIPATION", iPoint, solver[TURB_SOL]->LinSysRes(iPoint, 1));
735-
if (config->GetKind_SlopeLimit_Turb() != NO_LIMITER) {
736-
SetVolumeOutputValue("LIMITER_TKE", iPoint, Node_Turb->GetLimiter(iPoint, 0));
737-
SetVolumeOutputValue("LIMITER_DISSIPATION", iPoint, Node_Turb->GetLimiter(iPoint, 1));
738-
}
739-
break;
760+
case TURB_MODEL::SST: case TURB_MODEL::SST_SUST:
761+
SetVolumeOutputValue("LIMITER_TKE", iPoint, Node_Turb->GetLimiter(iPoint, 0));
762+
SetVolumeOutputValue("LIMITER_DISSIPATION", iPoint, Node_Turb->GetLimiter(iPoint, 1));
763+
break;
740764

741-
case TURB_MODEL::NONE: break;
765+
case TURB_MODEL::NONE:
766+
break;
767+
}
742768
}
743769

744770
if (config->GetKind_Solver() == RANS || config->GetKind_Solver() == INC_RANS) {

SU2_CFD/src/output/CNEMOCompOutput.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,8 @@ void CNEMOCompOutput::SetVolumeOutputFields(CConfig *config){
309309
AddVolumeOutput("RES_ENERGY", "Residual_Energy", "RESIDUAL", "Residual of the energy");
310310
AddVolumeOutput("RES_ENERGY_VE", "Residual_Energy_ve", "RESIDUAL", "Residual of the energy_ve");
311311

312+
SetVolumeOutputFields_TurbResidual(config);
313+
312314
if (config->GetKind_SlopeLimit_Flow() != NO_LIMITER && config->GetKind_SlopeLimit_Flow() != VAN_ALBADA_EDGE) {
313315
// Limiter values
314316
AddVolumeOutput("LIMITER_DENSITY", "Limiter_Density", "LIMITER", "Limiter value of the density");
@@ -319,6 +321,8 @@ void CNEMOCompOutput::SetVolumeOutputFields(CConfig *config){
319321
AddVolumeOutput("LIMITER_ENERGY", "Limiter_Energy", "LIMITER", "Limiter value of the energy");
320322
}
321323

324+
SetVolumeOutputFields_TurbLimiter(config);
325+
322326
// Roe Low Dissipation
323327
if (config->GetKind_RoeLowDiss() != NO_ROELOWDISS){
324328
AddVolumeOutput("ROE_DISSIPATION", "Roe_Dissipation", "ROE_DISSIPATION", "Value of the Roe dissipation");
@@ -333,8 +337,6 @@ void CNEMOCompOutput::SetVolumeOutputFields(CConfig *config){
333337
AddVolumeOutput("VORTICITY_Z", "Vorticity_z", "VORTEX_IDENTIFICATION", "z-component of the vorticity vector");
334338
}
335339

336-
SetVolumeOutputFields_Turb(config);
337-
338340
AddCommonFVMOutputs(config);
339341

340342
if (config->GetTime_Domain()){
@@ -406,6 +408,8 @@ void CNEMOCompOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolv
406408
SetVolumeOutputValue("RES_ENERGY_VE", iPoint, solver[FLOW_SOL]->LinSysRes(iPoint, nSpecies+3));
407409
}
408410

411+
LoadVolumeData_TurbResidual(config, solver, iPoint);
412+
409413
if (config->GetKind_SlopeLimit_Flow() != NO_LIMITER && config->GetKind_SlopeLimit_Flow() != VAN_ALBADA_EDGE) {
410414
SetVolumeOutputValue("LIMITER_DENSITY", iPoint, Node_Flow->GetLimiter_Primitive(iPoint, 0));
411415
SetVolumeOutputValue("LIMITER_MOMENTUM-X", iPoint, Node_Flow->GetLimiter_Primitive(iPoint, 1));
@@ -418,12 +422,12 @@ void CNEMOCompOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolv
418422
}
419423
}
420424

425+
LoadVolumeData_TurbLimiter(config, solver, geometry, iPoint);
426+
421427
if (config->GetKind_RoeLowDiss() != NO_ROELOWDISS){
422428
SetVolumeOutputValue("ROE_DISSIPATION", iPoint, Node_Flow->GetRoe_Dissipation(iPoint));
423429
}
424430

425-
LoadVolumeData_Turb(config, solver, geometry, iPoint);
426-
427431
LoadCommonFVMOutputs(config, geometry, iPoint);
428432

429433
if (config->GetTime_Domain()){

0 commit comments

Comments
 (0)