From 72d8f3053dae5d0b2ae897d76811b4432456782d Mon Sep 17 00:00:00 2001 From: rois1995 Date: Mon, 13 Jan 2025 15:05:47 +0100 Subject: [PATCH 1/6] - fixed unsteady names --- SU2_CFD/src/output/COutput.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SU2_CFD/src/output/COutput.cpp b/SU2_CFD/src/output/COutput.cpp index 016b5d35ec0..3733f40ed8e 100644 --- a/SU2_CFD/src/output/COutput.cpp +++ b/SU2_CFD/src/output/COutput.cpp @@ -389,6 +389,9 @@ void COutput::WriteToFile(CConfig *config, CGeometry *geometry, OUTPUT_TYPE form /*--- File writer that will later be used to write the file to disk. Created below in the "switch" ---*/ CFileWriter *fileWriter = nullptr; + /*--- Set current time iter even if history file is not written ---*/ + curTimeIter = config->GetTimeIter(); + /*--- If it is still present, strip the extension (suffix) from the filename ---*/ const auto lastindex = fileName.find_last_of('.'); fileName = fileName.substr(0, lastindex); @@ -476,7 +479,7 @@ void COutput::WriteToFile(CConfig *config, CGeometry *geometry, OUTPUT_TYPE form extension = CSU2MeshFileWriter::fileExt; if (fileName.empty()) - fileName = volumeFilename; + fileName = config->GetFilename(volumeFilename, "", curTimeIter); if (!config->GetWrt_Volume_Overwrite()) filename_iter = config->GetFilename_Iter(fileName, curInnerIter, curOuterIter); From b88ed078f337a31e769c82266701157547c9fb75 Mon Sep 17 00:00:00 2001 From: rois1995 Date: Fri, 17 Jan 2025 10:08:43 +0100 Subject: [PATCH 2/6] - Added output function to set curTimeIter --- SU2_CFD/include/output/COutput.hpp | 6 ++++++ SU2_CFD/src/iteration/CFluidIteration.cpp | 2 ++ SU2_CFD/src/output/COutput.cpp | 5 ----- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/SU2_CFD/include/output/COutput.hpp b/SU2_CFD/include/output/COutput.hpp index 14b0bbec9b6..8300f1a568d 100644 --- a/SU2_CFD/include/output/COutput.hpp +++ b/SU2_CFD/include/output/COutput.hpp @@ -418,6 +418,12 @@ class COutput { */ void SetMultizoneHistoryOutput(COutput** output, CConfig **config, CConfig *driver_config, unsigned long TimeIter, unsigned long OuterIter); + + /*! + * \brief Sets the current time iteration + * \param[in] timeIter - the current time iteration + */ + inline void SetCurTimeIter(unsigned long val_curTimeIter) {curTimeIter = val_curTimeIter;} /*! * \brief Sets the volume output filename diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index 4ca6c45a172..77a058c39df 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -376,6 +376,8 @@ void CFluidIteration::Solve(COutput* output, CIntegration**** integration, CGeom /*--- Boolean to determine if we are running a static or dynamic case ---*/ bool steady = !config[val_iZone]->GetTime_Domain(); + if (!steady) output->SetCurTimeIter(config[val_iZone]->GetTimeIter()); + unsigned long Inner_Iter, nInner_Iter = config[val_iZone]->GetnInner_Iter(); bool StopCalc = false; diff --git a/SU2_CFD/src/output/COutput.cpp b/SU2_CFD/src/output/COutput.cpp index 3733f40ed8e..36c743cebe3 100644 --- a/SU2_CFD/src/output/COutput.cpp +++ b/SU2_CFD/src/output/COutput.cpp @@ -207,7 +207,6 @@ void COutput::SetHistoryOutput(CGeometry *geometry, unsigned long OuterIter, unsigned long InnerIter) { - curTimeIter = TimeIter; curAbsTimeIter = max(TimeIter, config->GetStartWindowIteration()) - config->GetStartWindowIteration(); curOuterIter = OuterIter; curInnerIter = InnerIter; @@ -273,7 +272,6 @@ void COutput::SetHistoryOutput(CGeometry ****geometry, CSolver *****solver, CCon void COutput::SetMultizoneHistoryOutput(COutput **output, CConfig **config, CConfig *driver_config, unsigned long TimeIter, unsigned long OuterIter){ - curTimeIter = TimeIter; curAbsTimeIter = max(TimeIter, driver_config->GetStartWindowIteration()) - driver_config->GetStartWindowIteration(); curOuterIter = OuterIter; @@ -389,9 +387,6 @@ void COutput::WriteToFile(CConfig *config, CGeometry *geometry, OUTPUT_TYPE form /*--- File writer that will later be used to write the file to disk. Created below in the "switch" ---*/ CFileWriter *fileWriter = nullptr; - /*--- Set current time iter even if history file is not written ---*/ - curTimeIter = config->GetTimeIter(); - /*--- If it is still present, strip the extension (suffix) from the filename ---*/ const auto lastindex = fileName.find_last_of('.'); fileName = fileName.substr(0, lastindex); From 6e0d7a1465e63f36ee9f1a139ede9abfe0feb543 Mon Sep 17 00:00:00 2001 From: rois1995 Date: Tue, 21 Jan 2025 18:00:02 +0100 Subject: [PATCH 3/6] - Fixed multizone history output --- SU2_CFD/src/drivers/CMultizoneDriver.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SU2_CFD/src/drivers/CMultizoneDriver.cpp b/SU2_CFD/src/drivers/CMultizoneDriver.cpp index d5e2fbbafbb..4a726812e7b 100644 --- a/SU2_CFD/src/drivers/CMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CMultizoneDriver.cpp @@ -397,6 +397,10 @@ void CMultizoneDriver::Corrector(unsigned short val_iZone) { bool CMultizoneDriver::OuterConvergence(unsigned long OuterIter) { + // Set the current time iter for the multizone problem + bool unsteady = config_container[ZONE_0]->GetTime_Domain(); + if (unsteady) driver_output->SetCurTimeIter(config_container[ZONE_0]->GetTimeIter()); + /*--- Update the residual for the all the zones. ---*/ for (iZone = 0; iZone < nZone; iZone++) { From f5d0c8258d7f7c4f45c690a505effb5640c0aa0c Mon Sep 17 00:00:00 2001 From: rois1995 Date: Thu, 23 Jan 2025 16:00:21 +0100 Subject: [PATCH 4/6] - Simplified implementation --- SU2_CFD/src/drivers/CMultizoneDriver.cpp | 4 ++-- SU2_CFD/src/iteration/CFluidIteration.cpp | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/SU2_CFD/src/drivers/CMultizoneDriver.cpp b/SU2_CFD/src/drivers/CMultizoneDriver.cpp index 4a726812e7b..91885f0c731 100644 --- a/SU2_CFD/src/drivers/CMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CMultizoneDriver.cpp @@ -398,13 +398,13 @@ void CMultizoneDriver::Corrector(unsigned short val_iZone) { bool CMultizoneDriver::OuterConvergence(unsigned long OuterIter) { // Set the current time iter for the multizone problem - bool unsteady = config_container[ZONE_0]->GetTime_Domain(); - if (unsteady) driver_output->SetCurTimeIter(config_container[ZONE_0]->GetTimeIter()); /*--- Update the residual for the all the zones. ---*/ for (iZone = 0; iZone < nZone; iZone++) { + output_container[iZone]->SetCurTimeIter(config_container[iZone]->GetTimeIter()); + /*--- Account for all the solvers in this zone. ---*/ auto solvers = solver_container[iZone][INST_0][MESH_0]; diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index 77a058c39df..84c70c2b64e 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -375,8 +375,7 @@ void CFluidIteration::Solve(COutput* output, CIntegration**** integration, CGeom unsigned short val_iInst) { /*--- Boolean to determine if we are running a static or dynamic case ---*/ bool steady = !config[val_iZone]->GetTime_Domain(); - - if (!steady) output->SetCurTimeIter(config[val_iZone]->GetTimeIter()); + output->SetCurTimeIter(config[val_iZone]->GetTimeIter()); unsigned long Inner_Iter, nInner_Iter = config[val_iZone]->GetnInner_Iter(); bool StopCalc = false; From 2c3e3c75bbc9fbe655bdb44c88cbcc2f656f0e94 Mon Sep 17 00:00:00 2001 From: rois1995 Date: Thu, 23 Jan 2025 17:42:38 +0100 Subject: [PATCH 5/6] - Revert to previous commit --- SU2_CFD/src/drivers/CMultizoneDriver.cpp | 2 -- SU2_CFD/src/iteration/CFluidIteration.cpp | 1 - SU2_CFD/src/output/COutput.cpp | 7 ++++++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/SU2_CFD/src/drivers/CMultizoneDriver.cpp b/SU2_CFD/src/drivers/CMultizoneDriver.cpp index 91885f0c731..8c6e3cd2194 100644 --- a/SU2_CFD/src/drivers/CMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CMultizoneDriver.cpp @@ -403,8 +403,6 @@ bool CMultizoneDriver::OuterConvergence(unsigned long OuterIter) { for (iZone = 0; iZone < nZone; iZone++) { - output_container[iZone]->SetCurTimeIter(config_container[iZone]->GetTimeIter()); - /*--- Account for all the solvers in this zone. ---*/ auto solvers = solver_container[iZone][INST_0][MESH_0]; diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index 84c70c2b64e..4ca6c45a172 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -375,7 +375,6 @@ void CFluidIteration::Solve(COutput* output, CIntegration**** integration, CGeom unsigned short val_iInst) { /*--- Boolean to determine if we are running a static or dynamic case ---*/ bool steady = !config[val_iZone]->GetTime_Domain(); - output->SetCurTimeIter(config[val_iZone]->GetTimeIter()); unsigned long Inner_Iter, nInner_Iter = config[val_iZone]->GetnInner_Iter(); bool StopCalc = false; diff --git a/SU2_CFD/src/output/COutput.cpp b/SU2_CFD/src/output/COutput.cpp index 36c743cebe3..58f01d7f742 100644 --- a/SU2_CFD/src/output/COutput.cpp +++ b/SU2_CFD/src/output/COutput.cpp @@ -206,7 +206,8 @@ void COutput::SetHistoryOutput(CGeometry *geometry, unsigned long TimeIter, unsigned long OuterIter, unsigned long InnerIter) { - + + curTimeIter = TimeIter; curAbsTimeIter = max(TimeIter, config->GetStartWindowIteration()) - config->GetStartWindowIteration(); curOuterIter = OuterIter; curInnerIter = InnerIter; @@ -272,6 +273,7 @@ void COutput::SetHistoryOutput(CGeometry ****geometry, CSolver *****solver, CCon void COutput::SetMultizoneHistoryOutput(COutput **output, CConfig **config, CConfig *driver_config, unsigned long TimeIter, unsigned long OuterIter){ + curTimeIter = TimeIter; curAbsTimeIter = max(TimeIter, driver_config->GetStartWindowIteration()) - driver_config->GetStartWindowIteration(); curOuterIter = OuterIter; @@ -387,6 +389,9 @@ void COutput::WriteToFile(CConfig *config, CGeometry *geometry, OUTPUT_TYPE form /*--- File writer that will later be used to write the file to disk. Created below in the "switch" ---*/ CFileWriter *fileWriter = nullptr; + /*--- Set current time iter even if history file is not written ---*/ + curTimeIter = config->GetTimeIter(); + /*--- If it is still present, strip the extension (suffix) from the filename ---*/ const auto lastindex = fileName.find_last_of('.'); fileName = fileName.substr(0, lastindex); From 8fc042cf82e74f2685e4b6e277d0c359646300fe Mon Sep 17 00:00:00 2001 From: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> Date: Thu, 23 Jan 2025 10:47:13 -0800 Subject: [PATCH 6/6] Apply suggestions from code review --- SU2_CFD/include/output/COutput.hpp | 6 ------ SU2_CFD/src/drivers/CMultizoneDriver.cpp | 2 -- SU2_CFD/src/output/COutput.cpp | 1 - 3 files changed, 9 deletions(-) diff --git a/SU2_CFD/include/output/COutput.hpp b/SU2_CFD/include/output/COutput.hpp index 8300f1a568d..14b0bbec9b6 100644 --- a/SU2_CFD/include/output/COutput.hpp +++ b/SU2_CFD/include/output/COutput.hpp @@ -418,12 +418,6 @@ class COutput { */ void SetMultizoneHistoryOutput(COutput** output, CConfig **config, CConfig *driver_config, unsigned long TimeIter, unsigned long OuterIter); - - /*! - * \brief Sets the current time iteration - * \param[in] timeIter - the current time iteration - */ - inline void SetCurTimeIter(unsigned long val_curTimeIter) {curTimeIter = val_curTimeIter;} /*! * \brief Sets the volume output filename diff --git a/SU2_CFD/src/drivers/CMultizoneDriver.cpp b/SU2_CFD/src/drivers/CMultizoneDriver.cpp index 8c6e3cd2194..d5e2fbbafbb 100644 --- a/SU2_CFD/src/drivers/CMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CMultizoneDriver.cpp @@ -397,8 +397,6 @@ void CMultizoneDriver::Corrector(unsigned short val_iZone) { bool CMultizoneDriver::OuterConvergence(unsigned long OuterIter) { - // Set the current time iter for the multizone problem - /*--- Update the residual for the all the zones. ---*/ for (iZone = 0; iZone < nZone; iZone++) { diff --git a/SU2_CFD/src/output/COutput.cpp b/SU2_CFD/src/output/COutput.cpp index 58f01d7f742..631a4ba6bde 100644 --- a/SU2_CFD/src/output/COutput.cpp +++ b/SU2_CFD/src/output/COutput.cpp @@ -206,7 +206,6 @@ void COutput::SetHistoryOutput(CGeometry *geometry, unsigned long TimeIter, unsigned long OuterIter, unsigned long InnerIter) { - curTimeIter = TimeIter; curAbsTimeIter = max(TimeIter, config->GetStartWindowIteration()) - config->GetStartWindowIteration(); curOuterIter = OuterIter;