From 205774ffde4e4cf66a2887d22914f0208fce8063 Mon Sep 17 00:00:00 2001 From: Kutscher <kutscher@irmb.tu-bs.de> Date: Wed, 15 Mar 2023 16:08:27 +0100 Subject: [PATCH] rename CoProcessor to SimulationObserver --- apps/cpu/ConvectionOfVortex/cov.cpp | 20 +-- apps/cpu/CouetteFlow/cflow.cpp | 20 +-- apps/cpu/FlowAroundCylinder/cylinder.cpp | 22 +-- apps/cpu/HerschelBulkleyModel/hbflow.cpp | 28 ++-- apps/cpu/HerschelBulkleySphere/hbsphere.cpp | 34 ++--- apps/cpu/JetBreakup/JetBreakup.cpp | 24 ++-- apps/cpu/LaminarTubeFlow/ltf.cpp | 34 ++--- apps/cpu/Multiphase/Multiphase.cpp | 26 ++-- apps/cpu/MultiphaseDropletTest/droplet.cpp | 20 +-- apps/cpu/PoiseuilleFlow/pf1.cpp | 48 +++---- apps/cpu/RisingBubble2D/RisingBubble2D.cpp | 20 +-- apps/cpu/ViskomatXL/viskomat.cpp | 48 +++---- apps/cpu/rheometer/rheometer.cpp | 38 +++--- apps/cpu/sphere/sphere.cpp | 18 +-- .../geometry3d/CoordinateTransformation3D.h | 8 +- ...=> LiggghtsCouplingSimulationObserver.cpp} | 32 ++--- ...h => LiggghtsCouplingSimulationObserver.h} | 16 +-- src/cpu/VirtualFluids.h | 68 +++++----- .../BoundaryConditions/BCArray3D.h | 6 +- .../BoundaryConditions/BoundaryConditions.h | 6 +- src/cpu/VirtualFluidsCore/CMakeLists.txt | 2 +- .../CoProcessors/EmergencyExitCoProcessor.h | 43 ------ .../TimeDependentBCCoProcessor.cpp | 22 --- .../CoProcessors/TimeDependentBCCoProcessor.h | 30 ----- .../Data/D3Q27EsoTwist3DSplittedVector.h | 4 +- src/cpu/VirtualFluidsCore/Grid/Calculator.cpp | 6 +- src/cpu/VirtualFluidsCore/Grid/Calculator.h | 6 +- .../Parallel/MPIIODataStructures.h | 12 +- .../AdjustForcingSimulationObserver.cpp} | 14 +- .../AdjustForcingSimulationObserver.h} | 12 +- .../AverageValuesSimulationObserver.cpp} | 32 ++--- .../AverageValuesSimulationObserver.h} | 12 +- .../CalculateForcesSimulationObserver.cpp} | 24 ++-- .../CalculateForcesSimulationObserver.h} | 16 +-- .../CalculateTorqueSimulationObserver.cpp} | 22 +-- .../CalculateTorqueSimulationObserver.h} | 16 +-- .../DecreaseViscositySimulationObserver.cpp} | 16 +-- .../DecreaseViscositySimulationObserver.h} | 18 +-- .../EmergencyExitSimulationObserver.cpp} | 26 ++-- .../EmergencyExitSimulationObserver.h | 43 ++++++ .../ForceCalculator.cpp | 0 .../ForceCalculator.h | 0 .../InSituCatalystSimulationObserver.cpp} | 24 ++-- .../InSituCatalystSimulationObserver.h} | 16 +-- .../InSituVTKSimulationObserver.cpp} | 22 +-- .../InSituVTKSimulationObserver.h} | 16 +-- .../IntegrateValuesHelper.cpp | 0 .../IntegrateValuesHelper.h | 0 .../LineTimeSeriesSimulationObserver.cpp} | 18 +-- .../LineTimeSeriesSimulationObserver.h} | 14 +- .../MPIIOMigrationBESimulationObserver.cpp} | 126 +++++++++--------- .../MPIIOMigrationBESimulationObserver.h} | 14 +- .../MPIIOMigrationSimulationObserver.cpp} | 98 +++++++------- .../MPIIOMigrationSimulationObserver.h} | 14 +- .../MPIIORestartSimulationObserver.cpp} | 96 ++++++------- .../MPIIORestartSimulationObserver.h} | 14 +- .../MPIIOSimulationObserver.cpp} | 32 ++--- .../MPIIOSimulationObserver.h} | 18 +-- .../MicrophoneArraySimulationObserver.cpp} | 18 +-- .../MicrophoneArraySimulationObserver.h} | 14 +- .../NUPSCounterSimulationObserver.cpp} | 16 +-- .../NUPSCounterSimulationObserver.h} | 20 +-- ...PressureCoefficientSimulationObserver.cpp} | 26 ++-- .../PressureCoefficientSimulationObserver.h} | 14 +- .../PressureDifferenceSimulationObserver.cpp} | 14 +- .../PressureDifferenceSimulationObserver.h} | 16 +-- .../QCriterionSimulationObserver.cpp} | 32 ++--- .../QCriterionSimulationObserver.h} | 14 +- .../ShearStressSimulationObserver.cpp} | 42 +++--- .../ShearStressSimulationObserver.h} | 16 +-- .../SimulationObserver.cpp} | 12 +- .../SimulationObserver.h} | 22 +-- .../TimeAveragedValuesSimulationObserver.cpp} | 44 +++--- .../TimeAveragedValuesSimulationObserver.h} | 14 +- .../TimeDependentBCSimulationObserver.cpp | 22 +++ .../TimeDependentBCSimulationObserver.h | 30 +++++ .../TimeseriesSimulationObserver.cpp} | 20 +-- .../TimeseriesSimulationObserver.h} | 16 +-- ...TurbulenceIntensitySimulationObserver.cpp} | 24 ++-- .../TurbulenceIntensitySimulationObserver.h} | 10 +- .../WriteBlocksSimulationObserver.cpp} | 20 +-- .../WriteBlocksSimulationObserver.h} | 20 +-- ...eBoundaryConditionsSimulationObserver.cpp} | 26 ++-- ...iteBoundaryConditionsSimulationObserver.h} | 20 +-- .../WriteGbObjectsSimulationObserver.cpp} | 20 +-- .../WriteGbObjectsSimulationObserver.h} | 14 +- ...riteMQFromSelectionSimulationObserver.cpp} | 24 ++-- .../WriteMQFromSelectionSimulationObserver.h} | 14 +- ...cQuantitiesPlusMassSimulationObserver.cpp} | 28 ++-- ...picQuantitiesPlusMassSimulationObserver.h} | 20 +-- ...croscopicQuantitiesSimulationObserver.cpp} | 28 ++-- ...MacroscopicQuantitiesSimulationObserver.h} | 20 +-- ...ultiphaseQuantitiesSimulationObserver.cpp} | 40 +++--- ...eMultiphaseQuantitiesSimulationObserver.h} | 20 +-- ...hixotropyQuantitiesSimulationObserver.cpp} | 26 ++-- ...eThixotropyQuantitiesSimulationObserver.h} | 18 +-- .../Utilities/CheckpointConverter.cpp | 2 +- .../Utilities/CheckpointConverter.h | 2 +- 98 files changed, 1126 insertions(+), 1126 deletions(-) rename src/cpu/LiggghtsCoupling/{LiggghtsCouplingCoProcessor.cpp => LiggghtsCouplingSimulationObserver.cpp} (90%) rename src/cpu/LiggghtsCoupling/{LiggghtsCouplingCoProcessor.h => LiggghtsCouplingSimulationObserver.h} (90%) delete mode 100644 src/cpu/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.h delete mode 100644 src/cpu/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.cpp delete mode 100644 src/cpu/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.h rename src/cpu/VirtualFluidsCore/{CoProcessors/AdjustForcingCoProcessor.cpp => SimulationObservers/AdjustForcingSimulationObserver.cpp} (90%) rename src/cpu/VirtualFluidsCore/{CoProcessors/AdjustForcingCoProcessor.h => SimulationObservers/AdjustForcingSimulationObserver.h} (81%) rename src/cpu/VirtualFluidsCore/{CoProcessors/AverageValuesCoProcessor.cpp => SimulationObservers/AverageValuesSimulationObserver.cpp} (95%) rename src/cpu/VirtualFluidsCore/{CoProcessors/AverageValuesCoProcessor.h => SimulationObservers/AverageValuesSimulationObserver.h} (89%) rename src/cpu/VirtualFluidsCore/{CoProcessors/CalculateForcesCoProcessor.cpp => SimulationObservers/CalculateForcesSimulationObserver.cpp} (88%) rename src/cpu/VirtualFluidsCore/{CoProcessors/CalculateForcesCoProcessor.h => SimulationObservers/CalculateForcesSimulationObserver.h} (74%) rename src/cpu/VirtualFluidsCore/{CoProcessors/CalculateTorqueCoProcessor.cpp => SimulationObservers/CalculateTorqueSimulationObserver.cpp} (87%) rename src/cpu/VirtualFluidsCore/{CoProcessors/CalculateTorqueCoProcessor.h => SimulationObservers/CalculateTorqueSimulationObserver.h} (72%) rename src/cpu/VirtualFluidsCore/{CoProcessors/DecreaseViscosityCoProcessor.cpp => SimulationObservers/DecreaseViscositySimulationObserver.cpp} (76%) rename src/cpu/VirtualFluidsCore/{CoProcessors/DecreaseViscosityCoProcessor.h => SimulationObservers/DecreaseViscositySimulationObserver.h} (63%) rename src/cpu/VirtualFluidsCore/{CoProcessors/EmergencyExitCoProcessor.cpp => SimulationObservers/EmergencyExitSimulationObserver.cpp} (60%) create mode 100644 src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.h rename src/cpu/VirtualFluidsCore/{CoProcessors => SimulationObservers}/ForceCalculator.cpp (100%) rename src/cpu/VirtualFluidsCore/{CoProcessors => SimulationObservers}/ForceCalculator.h (100%) rename src/cpu/VirtualFluidsCore/{CoProcessors/InSituCatalystCoProcessor.cpp => SimulationObservers/InSituCatalystSimulationObserver.cpp} (94%) rename src/cpu/VirtualFluidsCore/{CoProcessors/InSituCatalystCoProcessor.h => SimulationObservers/InSituCatalystSimulationObserver.h} (74%) rename src/cpu/VirtualFluidsCore/{CoProcessors/InSituVTKCoProcessor.cpp => SimulationObservers/InSituVTKSimulationObserver.cpp} (93%) rename src/cpu/VirtualFluidsCore/{CoProcessors/InSituVTKCoProcessor.h => SimulationObservers/InSituVTKSimulationObserver.h} (71%) rename src/cpu/VirtualFluidsCore/{CoProcessors => SimulationObservers}/IntegrateValuesHelper.cpp (100%) rename src/cpu/VirtualFluidsCore/{CoProcessors => SimulationObservers}/IntegrateValuesHelper.h (100%) rename src/cpu/VirtualFluidsCore/{CoProcessors/LineTimeSeriesCoProcessor.cpp => SimulationObservers/LineTimeSeriesSimulationObserver.cpp} (90%) rename src/cpu/VirtualFluidsCore/{CoProcessors/LineTimeSeriesCoProcessor.h => SimulationObservers/LineTimeSeriesSimulationObserver.h} (74%) rename src/cpu/VirtualFluidsCore/{CoProcessors/MPIIOMigrationBECoProcessor.cpp => SimulationObservers/MPIIOMigrationBESimulationObserver.cpp} (92%) rename src/cpu/VirtualFluidsCore/{CoProcessors/MPIIOMigrationBECoProcessor.h => SimulationObservers/MPIIOMigrationBESimulationObserver.h} (88%) rename src/cpu/VirtualFluidsCore/{CoProcessors/MPIIOMigrationCoProcessor.cpp => SimulationObservers/MPIIOMigrationSimulationObserver.cpp} (93%) rename src/cpu/VirtualFluidsCore/{CoProcessors/MPIIOMigrationCoProcessor.h => SimulationObservers/MPIIOMigrationSimulationObserver.h} (85%) rename src/cpu/VirtualFluidsCore/{CoProcessors/MPIIORestartCoProcessor.cpp => SimulationObservers/MPIIORestartSimulationObserver.cpp} (94%) rename src/cpu/VirtualFluidsCore/{CoProcessors/MPIIORestartCoProcessor.h => SimulationObservers/MPIIORestartSimulationObserver.h} (87%) rename src/cpu/VirtualFluidsCore/{CoProcessors/MPIIOCoProcessor.cpp => SimulationObservers/MPIIOSimulationObserver.cpp} (95%) rename src/cpu/VirtualFluidsCore/{CoProcessors/MPIIOCoProcessor.h => SimulationObservers/MPIIOSimulationObserver.h} (68%) rename src/cpu/VirtualFluidsCore/{CoProcessors/MicrophoneArrayCoProcessor.cpp => SimulationObservers/MicrophoneArraySimulationObserver.cpp} (87%) rename src/cpu/VirtualFluidsCore/{CoProcessors/MicrophoneArrayCoProcessor.h => SimulationObservers/MicrophoneArraySimulationObserver.h} (74%) rename src/cpu/VirtualFluidsCore/{CoProcessors/NUPSCounterCoProcessor.cpp => SimulationObservers/NUPSCounterSimulationObserver.cpp} (87%) rename src/cpu/VirtualFluidsCore/{CoProcessors/NUPSCounterCoProcessor.h => SimulationObservers/NUPSCounterSimulationObserver.h} (83%) rename src/cpu/VirtualFluidsCore/{CoProcessors/PressureCoefficientCoProcessor.cpp => SimulationObservers/PressureCoefficientSimulationObserver.cpp} (87%) rename src/cpu/VirtualFluidsCore/{CoProcessors/PressureCoefficientCoProcessor.h => SimulationObservers/PressureCoefficientSimulationObserver.h} (71%) rename src/cpu/VirtualFluidsCore/{CoProcessors/PressureDifferenceCoProcessor.cpp => SimulationObservers/PressureDifferenceSimulationObserver.cpp} (88%) rename src/cpu/VirtualFluidsCore/{CoProcessors/PressureDifferenceCoProcessor.h => SimulationObservers/PressureDifferenceSimulationObserver.h} (70%) rename src/cpu/VirtualFluidsCore/{CoProcessors/QCriterionCoProcessor.cpp => SimulationObservers/QCriterionSimulationObserver.cpp} (92%) rename src/cpu/VirtualFluidsCore/{CoProcessors/QCriterionCoProcessor.h => SimulationObservers/QCriterionSimulationObserver.h} (86%) rename src/cpu/VirtualFluidsCore/{CoProcessors/ShearStressCoProcessor.cpp => SimulationObservers/ShearStressSimulationObserver.cpp} (96%) rename src/cpu/VirtualFluidsCore/{CoProcessors/ShearStressCoProcessor.h => SimulationObservers/ShearStressSimulationObserver.h} (83%) rename src/cpu/VirtualFluidsCore/{CoProcessors/CoProcessor.cpp => SimulationObservers/SimulationObserver.cpp} (87%) rename src/cpu/VirtualFluidsCore/{CoProcessors/CoProcessor.h => SimulationObservers/SimulationObserver.h} (83%) rename src/cpu/VirtualFluidsCore/{CoProcessors/TimeAveragedValuesCoProcessor.cpp => SimulationObservers/TimeAveragedValuesSimulationObserver.cpp} (95%) rename src/cpu/VirtualFluidsCore/{CoProcessors/TimeAveragedValuesCoProcessor.h => SimulationObservers/TimeAveragedValuesSimulationObserver.h} (90%) create mode 100644 src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.cpp create mode 100644 src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.h rename src/cpu/VirtualFluidsCore/{CoProcessors/TimeseriesCoProcessor.cpp => SimulationObservers/TimeseriesSimulationObserver.cpp} (77%) rename src/cpu/VirtualFluidsCore/{CoProcessors/TimeseriesCoProcessor.h => SimulationObservers/TimeseriesSimulationObserver.h} (69%) rename src/cpu/VirtualFluidsCore/{CoProcessors/TurbulenceIntensityCoProcessor.cpp => SimulationObservers/TurbulenceIntensitySimulationObserver.cpp} (93%) rename src/cpu/VirtualFluidsCore/{CoProcessors/TurbulenceIntensityCoProcessor.h => SimulationObservers/TurbulenceIntensitySimulationObserver.h} (75%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteBlocksCoProcessor.cpp => SimulationObservers/WriteBlocksSimulationObserver.cpp} (92%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteBlocksCoProcessor.h => SimulationObservers/WriteBlocksSimulationObserver.h} (84%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteBoundaryConditionsCoProcessor.cpp => SimulationObservers/WriteBoundaryConditionsSimulationObserver.cpp} (90%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteBoundaryConditionsCoProcessor.h => SimulationObservers/WriteBoundaryConditionsSimulationObserver.h} (85%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteGbObjectsCoProcessor.cpp => SimulationObservers/WriteGbObjectsSimulationObserver.cpp} (73%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteGbObjectsCoProcessor.h => SimulationObservers/WriteGbObjectsSimulationObserver.h} (66%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteMQFromSelectionCoProcessor.cpp => SimulationObservers/WriteMQFromSelectionSimulationObserver.cpp} (90%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteMQFromSelectionCoProcessor.h => SimulationObservers/WriteMQFromSelectionSimulationObserver.h} (73%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.cpp => SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.cpp} (91%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.h => SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.h} (84%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteMacroscopicQuantitiesCoProcessor.cpp => SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.cpp} (91%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h => SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.h} (85%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp => SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.cpp} (94%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteMultiphaseQuantitiesCoProcessor.h => SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.h} (86%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteThixotropyQuantitiesCoProcessor.cpp => SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.cpp} (90%) rename src/cpu/VirtualFluidsCore/{CoProcessors/WriteThixotropyQuantitiesCoProcessor.h => SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.h} (82%) diff --git a/apps/cpu/ConvectionOfVortex/cov.cpp b/apps/cpu/ConvectionOfVortex/cov.cpp index a7affc552..8d53d608a 100644 --- a/apps/cpu/ConvectionOfVortex/cov.cpp +++ b/apps/cpu/ConvectionOfVortex/cov.cpp @@ -133,7 +133,7 @@ void run() if (myid==0) UBLOG(logINFO, "Refinement - end"); } - SPtr<CoProcessor> ppblocks(new WriteBlocksCoProcessor(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); //outflow GbCuboid3DPtr geoOutflow1(new GbCuboid3D(g_minX1-blockLength, g_minX2-blockLength, g_minX3-blockLength, g_minX1, g_maxX2+blockLength, g_maxX3+blockLength)); @@ -264,7 +264,7 @@ void run() //Postrozess SPtr<UbScheduler> geoSch(new UbScheduler(1)); - SPtr<CoProcessor> ppgeo(new WriteBoundaryConditionsCoProcessor(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm)); ppgeo->process(0); ppgeo.reset(); @@ -278,22 +278,22 @@ void run() } SPtr<UbScheduler> visSch(new UbScheduler(outTime)); - SPtr<WriteMacroscopicQuantitiesCoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm)); - writeMQCoProcessor->process(0); + SPtr<WriteMacroscopicQuantitiesSimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm)); + writeMQSimulationObserver->process(0); SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); - std::shared_ptr<NUPSCounterCoProcessor> nupsCoProcessor(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + std::shared_ptr<NUPSCounterSimulationObserver> nupsSimulationObserver(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); //SPtr<UbScheduler> tavSch(new UbScheduler(1, 0, endTime)); - //SPtr<TimeAveragedValuesCoProcessor> tav(new TimeAveragedValuesCoProcessor(grid, pathname, WbWriterVtkXmlBinary::getInstance(), tavSch, comm, - // TimeAveragedValuesCoProcessor::Density | TimeAveragedValuesCoProcessor::Velocity | TimeAveragedValuesCoProcessor::Fluctuations)); + //SPtr<TimeAveragedValuesSimulationObserver> tav(new TimeAveragedValuesSimulationObserver(grid, pathname, WbWriterVtkXmlBinary::getInstance(), tavSch, comm, + // TimeAveragedValuesSimulationObserver::Density | TimeAveragedValuesSimulationObserver::Velocity | TimeAveragedValuesSimulationObserver::Fluctuations)); //tav->setWithGhostLayer(true); SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime)); - calculator->addCoProcessor(nupsCoProcessor); - calculator->addCoProcessor(writeMQCoProcessor); - //calculator->addCoProcessor(tav); + calculator->addSimulationObserver(nupsSimulationObserver); + calculator->addSimulationObserver(writeMQSimulationObserver); + //calculator->addSimulationObserver(tav); //omp_set_num_threads(1); diff --git a/apps/cpu/CouetteFlow/cflow.cpp b/apps/cpu/CouetteFlow/cflow.cpp index 184571e09..774150eec 100644 --- a/apps/cpu/CouetteFlow/cflow.cpp +++ b/apps/cpu/CouetteFlow/cflow.cpp @@ -199,7 +199,7 @@ void bflow(string configname) if (myid == 0) UBLOG(logINFO, "deleteSolidBlocks - end"); ////////////////////////////////////// - SPtr<CoProcessor> ppblocks(new WriteBlocksCoProcessor(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); ppblocks->process(0); unsigned long nob = grid->getNumberOfBlocks(); @@ -252,26 +252,26 @@ void bflow(string configname) grid->accept(bcVisitor); SPtr<UbScheduler> geoSch(new UbScheduler(1)); - WriteBoundaryConditionsCoProcessor ppgeo = WriteBoundaryConditionsCoProcessor(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm); + WriteBoundaryConditionsSimulationObserver ppgeo = WriteBoundaryConditionsSimulationObserver(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm); ppgeo.process(1); SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); - SPtr<CoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<SimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); //write data for visualization of macroscopic quantities SPtr<UbScheduler> visSch(new UbScheduler(outTime)); - SPtr<WriteMacroscopicQuantitiesCoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, visSch, pathname, + SPtr<WriteMacroscopicQuantitiesSimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, pathname, WbWriterVtkXmlASCII::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); - SPtr<WriteThixotropyQuantitiesCoProcessor> writeThixotropicMQCoProcessor(new WriteThixotropyQuantitiesCoProcessor(grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); + SPtr<WriteThixotropyQuantitiesSimulationObserver> writeThixotropicMQSimulationObserver(new WriteThixotropyQuantitiesSimulationObserver(grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); SPtr<UbScheduler> stepGhostLayer(new UbScheduler(outTime)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime)); - calculator->addCoProcessor(npr); - calculator->addCoProcessor(writeMQCoProcessor); - calculator->addCoProcessor(writeThixotropicMQCoProcessor); - //calculator->addCoProcessor(migCoProcessor); - //calculator->addCoProcessor(restartCoProcessor); + calculator->addSimulationObserver(npr); + calculator->addSimulationObserver(writeMQSimulationObserver); + calculator->addSimulationObserver(writeThixotropicMQSimulationObserver); + //calculator->addSimulationObserver(migSimulationObserver); + //calculator->addSimulationObserver(restartSimulationObserver); if (myid == 0) UBLOG(logINFO, "Simulation-start"); calculator->calculate(); diff --git a/apps/cpu/FlowAroundCylinder/cylinder.cpp b/apps/cpu/FlowAroundCylinder/cylinder.cpp index 73929a3ee..b98eb01b6 100644 --- a/apps/cpu/FlowAroundCylinder/cylinder.cpp +++ b/apps/cpu/FlowAroundCylinder/cylinder.cpp @@ -101,8 +101,8 @@ void run(string configname) ////////////////////////////////////////////////////////////////////////// //restart SPtr<UbScheduler> rSch(new UbScheduler(cpStep, cpStart)); - //RestartCoProcessor rp(grid, rSch, comm, pathOut, RestartCoProcessor::BINARY); - MPIIORestartCoProcessor rcp(grid, rSch, pathOut, comm); + //RestartSimulationObserver rp(grid, rSch, comm, pathOut, RestartSimulationObserver::BINARY); + MPIIORestartSimulationObserver rcp(grid, rSch, pathOut, comm); ////////////////////////////////////////////////////////////////////////// ////cylinder @@ -181,7 +181,7 @@ void run(string configname) GbCuboid3DPtr geoOutflow(new GbCuboid3D(g_maxX1, g_minX2-blockLength, g_minX3-blockLength, g_maxX1+blockLength, g_maxX2+blockLength, g_maxX3+blockLength)); if (myid==0) GbSystem3D::writeGeoObject(geoOutflow.get(), pathOut+"/geo/geoOutflow", WbWriterVtkXmlASCII::getInstance()); - SPtr<CoProcessor> ppblocks(new WriteBlocksCoProcessor(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathOut, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathOut, WbWriterVtkXmlBinary::getInstance(), comm)); if (refineLevel>0) { @@ -275,8 +275,8 @@ void run(string configname) //Postrozess SPtr<UbScheduler> geoSch(new UbScheduler(1)); - SPtr<CoProcessor> ppgeo( - new WriteBoundaryConditionsCoProcessor(grid, geoSch, pathOut, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppgeo( + new WriteBoundaryConditionsSimulationObserver(grid, geoSch, pathOut, WbWriterVtkXmlBinary::getInstance(), comm)); ppgeo->process(0); ppgeo.reset(); @@ -302,23 +302,23 @@ void run(string configname) SPtr<UbScheduler> stepSch(new UbScheduler(outTime)); - SPtr<CoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, stepSch, pathOut, WbWriterVtkXmlBinary::getInstance(), conv, comm)); + SPtr<SimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, stepSch, pathOut, WbWriterVtkXmlBinary::getInstance(), conv, comm)); real area = (2.0*radius*H)/(dx*dx); real v = 4.0*uLB/9.0; SPtr<UbScheduler> forceSch(new UbScheduler(100)); - SPtr<CalculateForcesCoProcessor> fp = make_shared<CalculateForcesCoProcessor>(grid, forceSch, pathOut + "/results/forces.txt", comm, v, area); + SPtr<CalculateForcesSimulationObserver> fp = make_shared<CalculateForcesSimulationObserver>(grid, forceSch, pathOut + "/results/forces.txt", comm, v, area); fp->addInteractor(cylinderInt); SPtr<UbScheduler> nupsSch(new UbScheduler(nupsStep[0], nupsStep[1], nupsStep[2])); - std::shared_ptr<CoProcessor> nupsCoProcessor(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + std::shared_ptr<SimulationObserver> nupsSimulationObserver(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); omp_set_num_threads(numOfThreads); SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime)); - calculator->addCoProcessor(nupsCoProcessor); - calculator->addCoProcessor(fp); - calculator->addCoProcessor(writeMQCoProcessor); + calculator->addSimulationObserver(nupsSimulationObserver); + calculator->addSimulationObserver(fp); + calculator->addSimulationObserver(writeMQSimulationObserver); if(myid == 0) UBLOG(logINFO,"Simulation-start"); calculator->calculate(); diff --git a/apps/cpu/HerschelBulkleyModel/hbflow.cpp b/apps/cpu/HerschelBulkleyModel/hbflow.cpp index 985ad8fce..85ac6681a 100644 --- a/apps/cpu/HerschelBulkleyModel/hbflow.cpp +++ b/apps/cpu/HerschelBulkleyModel/hbflow.cpp @@ -246,7 +246,7 @@ void bflow(string configname) if (myid == 0) UBLOG(logINFO, "deleteSolidBlocks - end"); ////////////////////////////////////// - SPtr<CoProcessor> ppblocks(new WriteBlocksCoProcessor(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); ppblocks->process(0); unsigned long nob = grid->getNumberOfBlocks(); @@ -299,36 +299,36 @@ void bflow(string configname) grid->accept(bcVisitor); SPtr<UbScheduler> geoSch(new UbScheduler(1)); - WriteBoundaryConditionsCoProcessor ppgeo = WriteBoundaryConditionsCoProcessor(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm); + WriteBoundaryConditionsSimulationObserver ppgeo = WriteBoundaryConditionsSimulationObserver(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm); ppgeo.process(1); SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); - SPtr<CoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<SimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); SPtr<UbScheduler> forceSch(new UbScheduler(1000)); //real dummy = 1; - SPtr<CalculateTorqueCoProcessor> fp = std::make_shared<CalculateTorqueCoProcessor>(grid, forceSch, pathname + "/forces/forces.csv", comm); + SPtr<CalculateTorqueSimulationObserver> fp = std::make_shared<CalculateTorqueSimulationObserver>(grid, forceSch, pathname + "/forces/forces.csv", comm); fp->addInteractor(addWallYminInt); - SPtr<CalculateTorqueCoProcessor> fp2 = std::make_shared<CalculateTorqueCoProcessor>(grid, forceSch, pathname + "/forces/forces2.csv", comm); + SPtr<CalculateTorqueSimulationObserver> fp2 = std::make_shared<CalculateTorqueSimulationObserver>(grid, forceSch, pathname + "/forces/forces2.csv", comm); fp2->addInteractor(addWallYmaxInt); //write data for visualization of macroscopic quantities SPtr<UbScheduler> visSch(new UbScheduler(outTime)); - SPtr<WriteMacroscopicQuantitiesCoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, visSch, pathname, + SPtr<WriteMacroscopicQuantitiesSimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, pathname, WbWriterVtkXmlASCII::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); - SPtr<WriteThixotropyQuantitiesCoProcessor> writeThixotropicMQCoProcessor(new WriteThixotropyQuantitiesCoProcessor(grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); + SPtr<WriteThixotropyQuantitiesSimulationObserver> writeThixotropicMQSimulationObserver(new WriteThixotropyQuantitiesSimulationObserver(grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); SPtr<UbScheduler> stepGhostLayer(new UbScheduler(outTime)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime)); - calculator->addCoProcessor(npr); - calculator->addCoProcessor(writeMQCoProcessor); - calculator->addCoProcessor(writeThixotropicMQCoProcessor); - calculator->addCoProcessor(fp); - calculator->addCoProcessor(fp2); - //calculator->addCoProcessor(migCoProcessor); - //calculator->addCoProcessor(restartCoProcessor); + calculator->addSimulationObserver(npr); + calculator->addSimulationObserver(writeMQSimulationObserver); + calculator->addSimulationObserver(writeThixotropicMQSimulationObserver); + calculator->addSimulationObserver(fp); + calculator->addSimulationObserver(fp2); + //calculator->addSimulationObserver(migSimulationObserver); + //calculator->addSimulationObserver(restartSimulationObserver); if (myid == 0) UBLOG(logINFO, "Simulation-start"); calculator->calculate(); diff --git a/apps/cpu/HerschelBulkleySphere/hbsphere.cpp b/apps/cpu/HerschelBulkleySphere/hbsphere.cpp index 7af2587b8..83da2bae9 100644 --- a/apps/cpu/HerschelBulkleySphere/hbsphere.cpp +++ b/apps/cpu/HerschelBulkleySphere/hbsphere.cpp @@ -168,10 +168,10 @@ void bflow(string configname) ////////////////////////////////////////////////////////////////////////// //restart SPtr<UbScheduler> mSch(new UbScheduler(cpStep, cpStart)); - SPtr<MPIIOMigrationCoProcessor> restartCoProcessor(new MPIIOMigrationCoProcessor(grid, mSch, metisVisitor, outputPath, comm)); - restartCoProcessor->setLBMKernel(kernel); - restartCoProcessor->setBCSet(bcProc); - //restartCoProcessor->setNu(k); + SPtr<MPIIOMigrationSimulationObserver> restartSimulationObserver(new MPIIOMigrationSimulationObserver(grid, mSch, metisVisitor, outputPath, comm)); + restartSimulationObserver->setLBMKernel(kernel); + restartSimulationObserver->setBCSet(bcProc); + //restartSimulationObserver->setNu(k); ////////////////////////////////////////////////////////////////////////// if (myid == 0) @@ -261,7 +261,7 @@ void bflow(string configname) if (myid == 0) UBLOG(logINFO, "deleteSolidBlocks - end"); ////////////////////////////////////// - SPtr<CoProcessor> ppblocks(new WriteBlocksCoProcessor(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, WbWriterVtkXmlBinary::getInstance(), comm)); ppblocks->process(0); unsigned long nob = grid->getNumberOfBlocks(); @@ -310,7 +310,7 @@ void bflow(string configname) } else { - restartCoProcessor->restart((int)restartStep); + restartSimulationObserver->restart((int)restartStep); grid->setTimeStep(restartStep); SetBcBlocksBlockVisitor v(sphereInt); grid->accept(v); @@ -331,32 +331,32 @@ void bflow(string configname) grid->accept(bcVisitor); SPtr<UbScheduler> geoSch(new UbScheduler(1)); - WriteBoundaryConditionsCoProcessor ppgeo = WriteBoundaryConditionsCoProcessor(grid, geoSch, outputPath, WbWriterVtkXmlASCII::getInstance(), comm); + WriteBoundaryConditionsSimulationObserver ppgeo = WriteBoundaryConditionsSimulationObserver(grid, geoSch, outputPath, WbWriterVtkXmlASCII::getInstance(), comm); ppgeo.process(0); SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); - SPtr<CoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<SimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); //write data for visualization of macroscopic quantities SPtr<UbScheduler> visSch(new UbScheduler(outTime)); //SPtr<UbScheduler> visSch(new UbScheduler(10,1)); - SPtr<WriteMacroscopicQuantitiesCoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); - //writeMQCoProcessor->process(0); + SPtr<WriteMacroscopicQuantitiesSimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); + //writeMQSimulationObserver->process(0); real area = UbMath::PI*radius*radius; SPtr<UbScheduler> forceSch(new UbScheduler(100)); - SPtr<CalculateForcesCoProcessor> fp = make_shared<CalculateForcesCoProcessor>(grid, forceSch, outputPath + "/forces/forces.txt", comm, velocity, area); + SPtr<CalculateForcesSimulationObserver> fp = make_shared<CalculateForcesSimulationObserver>(grid, forceSch, outputPath + "/forces/forces.txt", comm, velocity, area); fp->addInteractor(sphereInt); - SPtr<WriteThixotropyQuantitiesCoProcessor> writeThixotropicMQCoProcessor(new WriteThixotropyQuantitiesCoProcessor(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); + SPtr<WriteThixotropyQuantitiesSimulationObserver> writeThixotropicMQSimulationObserver(new WriteThixotropyQuantitiesSimulationObserver(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime)); - calculator->addCoProcessor(npr); - calculator->addCoProcessor(fp); - calculator->addCoProcessor(writeMQCoProcessor); - calculator->addCoProcessor(writeThixotropicMQCoProcessor); - calculator->addCoProcessor(restartCoProcessor); + calculator->addSimulationObserver(npr); + calculator->addSimulationObserver(fp); + calculator->addSimulationObserver(writeMQSimulationObserver); + calculator->addSimulationObserver(writeThixotropicMQSimulationObserver); + calculator->addSimulationObserver(restartSimulationObserver); if (myid == 0) UBLOG(logINFO, "Simulation-start"); calculator->calculate(); diff --git a/apps/cpu/JetBreakup/JetBreakup.cpp b/apps/cpu/JetBreakup/JetBreakup.cpp index 4a046bc39..828d52051 100644 --- a/apps/cpu/JetBreakup/JetBreakup.cpp +++ b/apps/cpu/JetBreakup/JetBreakup.cpp @@ -226,9 +226,9 @@ void run(string configname) ////////////////////////////////////////////////////////////////////////// // restart SPtr<UbScheduler> rSch(new UbScheduler(cpStep, cpStart)); - // SPtr<MPIIORestartCoProcessor> rcp(new MPIIORestartCoProcessor(grid, rSch, pathname, comm)); - SPtr<MPIIOMigrationCoProcessor> rcp(new MPIIOMigrationCoProcessor(grid, rSch, metisVisitor, pathname, comm)); - // SPtr<MPIIOMigrationBECoProcessor> rcp(new MPIIOMigrationBECoProcessor(grid, rSch, pathname, comm)); + // SPtr<MPIIORestartSimulationObserver> rcp(new MPIIORestartSimulationObserver(grid, rSch, pathname, comm)); + SPtr<MPIIOMigrationSimulationObserver> rcp(new MPIIOMigrationSimulationObserver(grid, rSch, metisVisitor, pathname, comm)); + // SPtr<MPIIOMigrationBESimulationObserver> rcp(new MPIIOMigrationBESimulationObserver(grid, rSch, pathname, comm)); // rcp->setNu(nuLB); // rcp->setNuLG(nuL, nuG); // rcp->setDensityRatio(densityRatio); @@ -370,7 +370,7 @@ void run(string configname) GenBlocksGridVisitor genBlocks(gridCube); grid->accept(genBlocks); - SPtr<WriteBlocksCoProcessor> ppblocks(new WriteBlocksCoProcessor( + SPtr<WriteBlocksSimulationObserver> ppblocks(new WriteBlocksSimulationObserver( grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); //SPtr<Interactor3D> tubes(new D3Q27TriFaceMeshInteractor(cylinder, grid, noSlipBC, @@ -548,7 +548,7 @@ void run(string configname) // boundary conditions grid { SPtr<UbScheduler> geoSch(new UbScheduler(1)); - SPtr<WriteBoundaryConditionsCoProcessor> ppgeo(new WriteBoundaryConditionsCoProcessor( + SPtr<WriteBoundaryConditionsSimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver( grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm)); ppgeo->process(0); ppgeo.reset(); @@ -580,15 +580,15 @@ void run(string configname) t_ast = 7.19; t = (int)(t_ast/(U_LB/(D_LB))); visSch->addSchedule(t,t,t); //t=7.19 - SPtr<WriteMultiphaseQuantitiesCoProcessor> pp(new WriteMultiphaseQuantitiesCoProcessor( + SPtr<WriteMultiphaseQuantitiesSimulationObserver> pp(new WriteMultiphaseQuantitiesSimulationObserver( grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm)); pp->process(0); SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); - SPtr<NUPSCounterCoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<NUPSCounterSimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); SPtr<UbScheduler> timeBCSch(new UbScheduler(1, startTime, startTime)); - auto timeDepBC = make_shared<TimeDependentBCCoProcessor>(TimeDependentBCCoProcessor(grid, timeBCSch)); + auto timeDepBC = make_shared<TimeDependentBCSimulationObserver>(TimeDependentBCSimulationObserver(grid, timeBCSch)); timeDepBC->addInteractor(inflowInt); #ifdef _OPENMP @@ -597,10 +597,10 @@ void run(string configname) SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime)); - calculator->addCoProcessor(npr); - calculator->addCoProcessor(pp); - calculator->addCoProcessor(timeDepBC); - calculator->addCoProcessor(rcp); + calculator->addSimulationObserver(npr); + calculator->addSimulationObserver(pp); + calculator->addSimulationObserver(timeDepBC); + calculator->addSimulationObserver(rcp); if (myid == 0) UBLOG(logINFO, "Simulation-start"); diff --git a/apps/cpu/LaminarTubeFlow/ltf.cpp b/apps/cpu/LaminarTubeFlow/ltf.cpp index 14af41b7c..2be4793c9 100644 --- a/apps/cpu/LaminarTubeFlow/ltf.cpp +++ b/apps/cpu/LaminarTubeFlow/ltf.cpp @@ -113,13 +113,13 @@ void run(string configname) SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, DIR_00M)); //restart SPtr<UbScheduler> mSch(new UbScheduler(cpStep, cpStart)); - //SPtr<MPIIOMigrationCoProcessor> migCoProcessor(new MPIIOMigrationCoProcessor(grid, mSch, metisVisitor, pathname + "/mig", comm)); - SPtr<MPIIOMigrationBECoProcessor> migCoProcessor(new MPIIOMigrationBECoProcessor(grid, mSch, metisVisitor, pathname + "/mig", comm)); - migCoProcessor->setLBMKernel(kernel); - migCoProcessor->setBCSet(bcProc); - migCoProcessor->setNu(nuLB); - migCoProcessor->setNuLG(0.01, 0.01); - migCoProcessor->setDensityRatio(1); + //SPtr<MPIIOMigrationSimulationObserver> migSimulationObserver(new MPIIOMigrationSimulationObserver(grid, mSch, metisVisitor, pathname + "/mig", comm)); + SPtr<MPIIOMigrationBESimulationObserver> migSimulationObserver(new MPIIOMigrationBESimulationObserver(grid, mSch, metisVisitor, pathname + "/mig", comm)); + migSimulationObserver->setLBMKernel(kernel); + migSimulationObserver->setBCSet(bcProc); + migSimulationObserver->setNu(nuLB); + migSimulationObserver->setNuLG(0.01, 0.01); + migSimulationObserver->setDensityRatio(1); ////////////////////////////////////////////////////////////////////////// SPtr<D3Q27Interactor> inflowInt; @@ -189,7 +189,7 @@ void run(string configname) GbCuboid3DPtr geoOutflow(new GbCuboid3D(g_maxX1, g_minX2-blockLength, g_minX3-blockLength, g_maxX1+blockLength, g_maxX2+blockLength, g_maxX3+blockLength)); if (myid==0) GbSystem3D::writeGeoObject(geoOutflow.get(), pathname+"/geo/geoOutflow", WbWriterVtkXmlASCII::getInstance()); - SPtr<CoProcessor> ppblocks(new WriteBlocksCoProcessor(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); ppblocks->process(0); @@ -280,7 +280,7 @@ void run(string configname) //boundary conditions grid { SPtr<UbScheduler> geoSch(new UbScheduler(1)); - SPtr<CoProcessor> ppgeo(new WriteBoundaryConditionsCoProcessor(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm)); ppgeo->process(0); ppgeo.reset(); } @@ -302,7 +302,7 @@ void run(string configname) VF_LOG_INFO("path = {}", pathname); } - migCoProcessor->restart((int)restartStep); + migSimulationObserver->restart((int)restartStep); grid->setTimeStep(restartStep); if (myid == 0) VF_LOG_INFO("Restart - end"); @@ -316,23 +316,23 @@ void run(string configname) grid->accept(setInterConnsVisitor); SPtr<UbScheduler> visSch(new UbScheduler(outTime)); - SPtr<CoProcessor> pp(new WriteMacroscopicQuantitiesCoProcessor(grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm)); + SPtr<SimulationObserver> pp(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm)); SPtr<UbScheduler> nupsSch(new UbScheduler(100, 100, 100000000)); - SPtr<CoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<SimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); //SPtr<UbScheduler> timeBCSch(new UbScheduler(1, startTime, startTime)); - //auto timeDepBC = make_shared<TimeDependentBCCoProcessor>(TimeDependentBCCoProcessor(grid, timeBCSch)); + //auto timeDepBC = make_shared<TimeDependentBCSimulationObserver>(TimeDependentBCSimulationObserver(grid, timeBCSch)); //timeDepBC->addInteractor(inflowInt); omp_set_num_threads(numOfThreads); numOfThreads = 1; SPtr<UbScheduler> stepGhostLayer(visSch); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, int(endTime))); - calculator->addCoProcessor(npr); - calculator->addCoProcessor(pp); - calculator->addCoProcessor(migCoProcessor); - //calculator->addCoProcessor(timeDepBC); + calculator->addSimulationObserver(npr); + calculator->addSimulationObserver(pp); + calculator->addSimulationObserver(migSimulationObserver); + //calculator->addSimulationObserver(timeDepBC); if (myid == 0) VF_LOG_INFO("Simulation-start"); calculator->calculate(); diff --git a/apps/cpu/Multiphase/Multiphase.cpp b/apps/cpu/Multiphase/Multiphase.cpp index e1ee8d15f..753a6528d 100644 --- a/apps/cpu/Multiphase/Multiphase.cpp +++ b/apps/cpu/Multiphase/Multiphase.cpp @@ -129,9 +129,9 @@ void run(string configname) ////////////////////////////////////////////////////////////////////////// // restart SPtr<UbScheduler> rSch(new UbScheduler(cpStep, cpStart)); - //SPtr<MPIIORestartCoProcessor> rcp(new MPIIORestartCoProcessor(grid, rSch, pathname, comm)); - SPtr<MPIIOMigrationCoProcessor> rcp(new MPIIOMigrationCoProcessor(grid, rSch, metisVisitor, pathname, comm)); - //SPtr<MPIIOMigrationBECoProcessor> rcp(new MPIIOMigrationBECoProcessor(grid, rSch, pathname, comm)); + //SPtr<MPIIORestartSimulationObserver> rcp(new MPIIORestartSimulationObserver(grid, rSch, pathname, comm)); + SPtr<MPIIOMigrationSimulationObserver> rcp(new MPIIOMigrationSimulationObserver(grid, rSch, metisVisitor, pathname, comm)); + //SPtr<MPIIOMigrationBESimulationObserver> rcp(new MPIIOMigrationBESimulationObserver(grid, rSch, pathname, comm)); //rcp->setNu(nuLB); //rcp->setNuLG(nuL, nuG); //rcp->setDensityRatio(densityRatio); @@ -265,7 +265,7 @@ void run(string configname) GenBlocksGridVisitor genBlocks(gridCube); grid->accept(genBlocks); - SPtr<WriteBlocksCoProcessor> ppblocks(new WriteBlocksCoProcessor( + SPtr<WriteBlocksSimulationObserver> ppblocks(new WriteBlocksSimulationObserver( grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); SPtr<Interactor3D> tubes(new D3Q27TriFaceMeshInteractor(cylinder, grid, noSlipBC, Interactor3D::SOLID, Interactor3D::POINTS)); @@ -415,7 +415,7 @@ void run(string configname) // boundary conditions grid { SPtr<UbScheduler> geoSch(new UbScheduler(1)); - SPtr<WriteBoundaryConditionsCoProcessor> ppgeo(new WriteBoundaryConditionsCoProcessor( + SPtr<WriteBoundaryConditionsSimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver( grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm)); ppgeo->process(0); ppgeo.reset(); @@ -455,16 +455,16 @@ void run(string configname) grid->accept(setConnsVisitor); SPtr<UbScheduler> visSch(new UbScheduler(outTime)); - SPtr<WriteMultiphaseQuantitiesCoProcessor> pp(new WriteMultiphaseQuantitiesCoProcessor( - //SPtr<WriteMacroscopicQuantitiesCoProcessor> pp(new WriteMacroscopicQuantitiesCoProcessor( + SPtr<WriteMultiphaseQuantitiesSimulationObserver> pp(new WriteMultiphaseQuantitiesSimulationObserver( + //SPtr<WriteMacroscopicQuantitiesSimulationObserver> pp(new WriteMacroscopicQuantitiesSimulationObserver( grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm)); pp->process(0); SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); - SPtr<NUPSCounterCoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<NUPSCounterSimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); SPtr<UbScheduler> timeBCSch(new UbScheduler(1, startTime, startTime)); - auto timeDepBC = make_shared<TimeDependentBCCoProcessor>(TimeDependentBCCoProcessor(grid, timeBCSch)); + auto timeDepBC = make_shared<TimeDependentBCSimulationObserver>(TimeDependentBCSimulationObserver(grid, timeBCSch)); timeDepBC->addInteractor(cylInt); #ifdef _OPENMP @@ -473,10 +473,10 @@ void run(string configname) SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime)); - calculator->addCoProcessor(npr); - calculator->addCoProcessor(pp); - calculator->addCoProcessor(timeDepBC); - calculator->addCoProcessor(rcp); + calculator->addSimulationObserver(npr); + calculator->addSimulationObserver(pp); + calculator->addSimulationObserver(timeDepBC); + calculator->addSimulationObserver(rcp); diff --git a/apps/cpu/MultiphaseDropletTest/droplet.cpp b/apps/cpu/MultiphaseDropletTest/droplet.cpp index 7d7423ccb..7686f87f9 100644 --- a/apps/cpu/MultiphaseDropletTest/droplet.cpp +++ b/apps/cpu/MultiphaseDropletTest/droplet.cpp @@ -194,9 +194,9 @@ void run(string configname) ////////////////////////////////////////////////////////////////////////// // restart SPtr<UbScheduler> rSch(new UbScheduler(cpStep, cpStart)); - //SPtr<MPIIORestartCoProcessor> rcp(new MPIIORestartCoProcessor(grid, rSch, pathname, comm)); - SPtr<MPIIOMigrationCoProcessor> rcp(new MPIIOMigrationCoProcessor(grid, rSch, metisVisitor, pathname, comm)); - //SPtr<MPIIOMigrationBECoProcessor> rcp(new MPIIOMigrationBECoProcessor(grid, rSch, pathname, comm)); + //SPtr<MPIIORestartSimulationObserver> rcp(new MPIIORestartSimulationObserver(grid, rSch, pathname, comm)); + SPtr<MPIIOMigrationSimulationObserver> rcp(new MPIIOMigrationSimulationObserver(grid, rSch, metisVisitor, pathname, comm)); + //SPtr<MPIIOMigrationBESimulationObserver> rcp(new MPIIOMigrationBESimulationObserver(grid, rSch, pathname, comm)); // rcp->setNu(nuLB); // rcp->setNuLG(nuL, nuG); // rcp->setDensityRatio(densityRatio); @@ -236,7 +236,7 @@ void run(string configname) SPtr<D3Q27Interactor> wallYminInt(new D3Q27Interactor(wallYmin, grid, noSlipBC, Interactor3D::SOLID)); SPtr<D3Q27Interactor> wallYmaxInt(new D3Q27Interactor(wallYmax, grid, noSlipBC, Interactor3D::SOLID)); - SPtr<WriteBlocksCoProcessor> ppblocks(new WriteBlocksCoProcessor( + SPtr<WriteBlocksSimulationObserver> ppblocks(new WriteBlocksSimulationObserver( grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); InteractorsHelper intHelper(grid, metisVisitor, true); @@ -317,7 +317,7 @@ void run(string configname) // boundary conditions grid { SPtr<UbScheduler> geoSch(new UbScheduler(1)); - SPtr<WriteBoundaryConditionsCoProcessor> ppgeo(new WriteBoundaryConditionsCoProcessor( + SPtr<WriteBoundaryConditionsSimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver( grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm)); ppgeo->process(0); ppgeo.reset(); @@ -380,21 +380,21 @@ void run(string configname) t = (int)(t_ast/std::sqrt(g_y/D)); visSch->addSchedule(t,t,t); //t=9 - SPtr<WriteMultiphaseQuantitiesCoProcessor> pp(new WriteMultiphaseQuantitiesCoProcessor( + SPtr<WriteMultiphaseQuantitiesSimulationObserver> pp(new WriteMultiphaseQuantitiesSimulationObserver( grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm)); if(grid->getTimeStep() == 0) pp->process(0); SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); - SPtr<NUPSCounterCoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<NUPSCounterSimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); omp_set_num_threads(numOfThreads); SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime)); - calculator->addCoProcessor(npr); - calculator->addCoProcessor(pp); - calculator->addCoProcessor(rcp); + calculator->addSimulationObserver(npr); + calculator->addSimulationObserver(pp); + calculator->addSimulationObserver(rcp); if (myid == 0) diff --git a/apps/cpu/PoiseuilleFlow/pf1.cpp b/apps/cpu/PoiseuilleFlow/pf1.cpp index 987978a5b..c4503ea64 100644 --- a/apps/cpu/PoiseuilleFlow/pf1.cpp +++ b/apps/cpu/PoiseuilleFlow/pf1.cpp @@ -84,7 +84,7 @@ void pf1() intHelper.selectBlocks(); //write data for visualization of block grid - SPtr<CoProcessor> ppblocks(new WriteBlocksCoProcessor(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathOut, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathOut, WbWriterVtkXmlBinary::getInstance(), comm)); ppblocks->process(0); //ppblocks.reset(); @@ -143,18 +143,18 @@ void pf1() grid->accept(setConnsVisitor); SPtr<UbScheduler> mSch(new UbScheduler(cpStep, cpStart)); - //SPtr<MPIIORestartCoProcessor> restartCoProcessor(new MPIIORestartCoProcessor(grid, mSch, pathOut, comm)); - //restartCoProcessor->setLBMKernel(kernel); - //restartCoProcessor->setBCSet(bcProc); + //SPtr<MPIIORestartSimulationObserver> restartSimulationObserver(new MPIIORestartSimulationObserver(grid, mSch, pathOut, comm)); + //restartSimulationObserver->setLBMKernel(kernel); + //restartSimulationObserver->setBCSet(bcProc); - /*SPtr<MPIIOMigrationCoProcessor> migCoProcessor(new MPIIOMigrationCoProcessor(grid, mSch, pathOut + "/mig", comm)); - migCoProcessor->setLBMKernel(kernel); - migCoProcessor->setBCSet(bcProc);*/ + /*SPtr<MPIIOMigrationSimulationObserver> migSimulationObserver(new MPIIOMigrationSimulationObserver(grid, mSch, pathOut + "/mig", comm)); + migSimulationObserver->setLBMKernel(kernel); + migSimulationObserver->setBCSet(bcProc);*/ - //SPtr<MPIIOMigrationBECoProcessor> migCoProcessor(new MPIIOMigrationBECoProcessor(grid, mSch, pathOut + "/mig", comm)); - //migCoProcessor->setLBMKernel(kernel); - //migCoProcessor->setBCSet(bcProc); - //migCoProcessor->setNu(nuLB); + //SPtr<MPIIOMigrationBESimulationObserver> migSimulationObserver(new MPIIOMigrationBESimulationObserver(grid, mSch, pathOut + "/mig", comm)); + //migSimulationObserver->setLBMKernel(kernel); + //migSimulationObserver->setBCSet(bcProc); + //migSimulationObserver->setNu(nuLB); //SPtr<UtilConvertor> convertProcessor(new UtilConvertor(grid, pathOut, comm)); //convertProcessor->convert(300, 4); @@ -163,39 +163,39 @@ void pf1() //write data for visualization of boundary conditions { SPtr<UbScheduler> geoSch(new UbScheduler(1)); - WriteBoundaryConditionsCoProcessor ppgeo(grid, geoSch, pathOut, WbWriterVtkXmlBinary::getInstance(), /*SPtr<LBMUnitConverter>(new LBMUnitConverter()),*/ comm); + WriteBoundaryConditionsSimulationObserver ppgeo(grid, geoSch, pathOut, WbWriterVtkXmlBinary::getInstance(), /*SPtr<LBMUnitConverter>(new LBMUnitConverter()),*/ comm); ppgeo.process(0); } if (myid == 0) UBLOG(logINFO, "Preprocess - end"); //grid=SPtr<Grid3D>(new Grid3D(comm)); - //restartCoProcessor->restart(200); - //SPtr<MPIIOMigrationBECoProcessor> migCoProcessor(new MPIIOMigrationBECoProcessor(grid, mSch, metisVisitor, pathOut + "/mig", comm)); - //migCoProcessor->setLBMKernel(kernel); - //migCoProcessor->setBCSet(bcProc); - //migCoProcessor->setNu(nuLB); - //migCoProcessor->restart(10); + //restartSimulationObserver->restart(200); + //SPtr<MPIIOMigrationBESimulationObserver> migSimulationObserver(new MPIIOMigrationBESimulationObserver(grid, mSch, metisVisitor, pathOut + "/mig", comm)); + //migSimulationObserver->setLBMKernel(kernel); + //migSimulationObserver->setBCSet(bcProc); + //migSimulationObserver->setNu(nuLB); + //migSimulationObserver->restart(10); ppblocks->process(1); //write data for visualization of macroscopic quantities SPtr<UbScheduler> visSch(new UbScheduler(outTime)); - SPtr<WriteMacroscopicQuantitiesCoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, visSch, pathOut, + SPtr<WriteMacroscopicQuantitiesSimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, pathOut, WbWriterVtkXmlASCII::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); //performance control SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); - SPtr<NUPSCounterCoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<NUPSCounterSimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); //start simulation //omp_set_num_threads(numOfThreads); SPtr<UbScheduler> stepGhostLayer(new UbScheduler(outTime)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime)); - calculator->addCoProcessor(npr); - calculator->addCoProcessor(writeMQCoProcessor); - //calculator->addCoProcessor(migCoProcessor); - //calculator->addCoProcessor(restartCoProcessor); + calculator->addSimulationObserver(npr); + calculator->addSimulationObserver(writeMQSimulationObserver); + //calculator->addSimulationObserver(migSimulationObserver); + //calculator->addSimulationObserver(restartSimulationObserver); if (myid == 0) UBLOG(logINFO, "Simulation-start"); calculator->calculate(); diff --git a/apps/cpu/RisingBubble2D/RisingBubble2D.cpp b/apps/cpu/RisingBubble2D/RisingBubble2D.cpp index 629aaeca2..be1153696 100644 --- a/apps/cpu/RisingBubble2D/RisingBubble2D.cpp +++ b/apps/cpu/RisingBubble2D/RisingBubble2D.cpp @@ -196,9 +196,9 @@ void run(string configname) ////////////////////////////////////////////////////////////////////////// // restart SPtr<UbScheduler> rSch(new UbScheduler(cpStep, cpStart)); - SPtr<MPIIORestartCoProcessor> rcp(new MPIIORestartCoProcessor(grid, rSch, pathname, comm)); - //SPtr<MPIIOMigrationCoProcessor> rcp(new MPIIOMigrationCoProcessor(grid, rSch, metisVisitor, pathname, comm)); - //SPtr<MPIIOMigrationBECoProcessor> rcp(new MPIIOMigrationBECoProcessor(grid, rSch, pathname, comm)); + SPtr<MPIIORestartSimulationObserver> rcp(new MPIIORestartSimulationObserver(grid, rSch, pathname, comm)); + //SPtr<MPIIOMigrationSimulationObserver> rcp(new MPIIOMigrationSimulationObserver(grid, rSch, metisVisitor, pathname, comm)); + //SPtr<MPIIOMigrationBESimulationObserver> rcp(new MPIIOMigrationBESimulationObserver(grid, rSch, pathname, comm)); // rcp->setNu(nuLB); // rcp->setNuLG(nuL, nuG); //rcp->setDensityRatio(densityRatio); @@ -246,7 +246,7 @@ void run(string configname) SPtr<D3Q27Interactor> wallYminInt(new D3Q27Interactor(wallYmin, grid, noSlipBC, Interactor3D::SOLID)); SPtr<D3Q27Interactor> wallYmaxInt(new D3Q27Interactor(wallYmax, grid, noSlipBC, Interactor3D::SOLID)); - SPtr<WriteBlocksCoProcessor> ppblocks(new WriteBlocksCoProcessor( + SPtr<WriteBlocksSimulationObserver> ppblocks(new WriteBlocksSimulationObserver( grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); InteractorsHelper intHelper(grid, metisVisitor, true); @@ -329,7 +329,7 @@ void run(string configname) // boundary conditions grid { SPtr<UbScheduler> geoSch(new UbScheduler(1)); - SPtr<WriteBoundaryConditionsCoProcessor> ppgeo(new WriteBoundaryConditionsCoProcessor( + SPtr<WriteBoundaryConditionsSimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver( grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm)); ppgeo->process(0); ppgeo.reset(); @@ -395,21 +395,21 @@ void run(string configname) //visSch->addSchedule(t,t,t); //t=9 - SPtr<WriteMultiphaseQuantitiesCoProcessor> pp(new WriteMultiphaseQuantitiesCoProcessor( + SPtr<WriteMultiphaseQuantitiesSimulationObserver> pp(new WriteMultiphaseQuantitiesSimulationObserver( grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm)); if(grid->getTimeStep() == 0) pp->process(0); SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); - SPtr<NUPSCounterCoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<NUPSCounterSimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); //omp_set_num_threads(numOfThreads); SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime)); - calculator->addCoProcessor(npr); - calculator->addCoProcessor(pp); - calculator->addCoProcessor(rcp); + calculator->addSimulationObserver(npr); + calculator->addSimulationObserver(pp); + calculator->addSimulationObserver(rcp); if (myid == 0) diff --git a/apps/cpu/ViskomatXL/viskomat.cpp b/apps/cpu/ViskomatXL/viskomat.cpp index 1f4686e94..2ec6f365a 100644 --- a/apps/cpu/ViskomatXL/viskomat.cpp +++ b/apps/cpu/ViskomatXL/viskomat.cpp @@ -198,11 +198,11 @@ void bflow(string configname) ////////////////////////////////////////////////////////////////////////// //restart SPtr<UbScheduler> mSch(new UbScheduler(cpStep, cpStart)); - SPtr<MPIIOMigrationCoProcessor> restartCoProcessor(new MPIIOMigrationCoProcessor(grid, mSch, metisVisitor, outputPath, comm)); - //SPtr<MPIIORestartCoProcessor> restartCoProcessor(new MPIIORestartCoProcessor(grid, mSch, outputPath, comm)); - restartCoProcessor->setLBMKernel(kernel); - restartCoProcessor->setBCSet(bcProc); - //restartCoProcessor->setNu(k); + SPtr<MPIIOMigrationSimulationObserver> restartSimulationObserver(new MPIIOMigrationSimulationObserver(grid, mSch, metisVisitor, outputPath, comm)); + //SPtr<MPIIORestartSimulationObserver> restartSimulationObserver(new MPIIORestartSimulationObserver(grid, mSch, outputPath, comm)); + restartSimulationObserver->setLBMKernel(kernel); + restartSimulationObserver->setBCSet(bcProc); + //restartSimulationObserver->setNu(k); ////////////////////////////////////////////////////////////////////////// ////stator @@ -320,7 +320,7 @@ void bflow(string configname) if (myid == 0) UBLOG(logINFO, "deleteSolidBlocks - end"); ////////////////////////////////////// - SPtr<CoProcessor> ppblocks(new WriteBlocksCoProcessor(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, WbWriterVtkXmlBinary::getInstance(), comm)); ppblocks->process(0); unsigned long nob = grid->getNumberOfBlocks(); @@ -365,18 +365,18 @@ void bflow(string configname) grid->accept(initVisitor); SPtr<UbScheduler> geoSch(new UbScheduler(1)); - WriteBoundaryConditionsCoProcessor ppgeo = WriteBoundaryConditionsCoProcessor(grid, geoSch, outputPath, WbWriterVtkXmlBinary::getInstance(), comm); + WriteBoundaryConditionsSimulationObserver ppgeo = WriteBoundaryConditionsSimulationObserver(grid, geoSch, outputPath, WbWriterVtkXmlBinary::getInstance(), comm); ppgeo.process(0); if (myid == 0) UBLOG(logINFO, "Preprozess - end"); } else { - restartCoProcessor->restart((int)restartStep); + restartSimulationObserver->restart((int)restartStep); - //restartCoProcessor->readBlocks((int)restartStep); - //restartCoProcessor->readDataSet((int)restartStep); - ////restartCoProcessor->readBoundaryConds((int)restartStep); + //restartSimulationObserver->readBlocks((int)restartStep); + //restartSimulationObserver->readDataSet((int)restartStep); + ////restartSimulationObserver->readBoundaryConds((int)restartStep); //grid->setTimeStep((int)restartStep); SetBcBlocksBlockVisitor v2(wallXmaxInt); @@ -395,7 +395,7 @@ void bflow(string configname) grid->accept(v1); wallXminInt->initInteractor(); - SPtr<CoProcessor> ppblocks(new WriteBlocksCoProcessor(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, + SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, WbWriterVtkXmlBinary::getInstance(), comm)); ppblocks->process(1); } @@ -414,30 +414,30 @@ void bflow(string configname) grid->accept(bcVisitor); SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); - SPtr<CoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<SimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); //write data for visualization of macroscopic quantities SPtr<UbScheduler> visSch(new UbScheduler(outTime)); //SPtr<UbScheduler> visSch(new UbScheduler(10,1)); - SPtr<WriteMacroscopicQuantitiesCoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); - //writeMQCoProcessor->process(100); + SPtr<WriteMacroscopicQuantitiesSimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); + //writeMQSimulationObserver->process(100); SPtr<UbScheduler> forceSch(new UbScheduler(100)); - SPtr<CalculateTorqueCoProcessor> fp = make_shared<CalculateTorqueCoProcessor>(grid, forceSch, outputPath + "/torque/TorqueRotor.csv", comm); + SPtr<CalculateTorqueSimulationObserver> fp = make_shared<CalculateTorqueSimulationObserver>(grid, forceSch, outputPath + "/torque/TorqueRotor.csv", comm); fp->addInteractor(rotorInt); - SPtr<CalculateTorqueCoProcessor> fp2 = make_shared<CalculateTorqueCoProcessor>(grid, forceSch, outputPath + "/torque/TorqueStator.csv", comm); + SPtr<CalculateTorqueSimulationObserver> fp2 = make_shared<CalculateTorqueSimulationObserver>(grid, forceSch, outputPath + "/torque/TorqueStator.csv", comm); fp2->addInteractor(statorInt); - //SPtr<WriteThixotropyQuantitiesCoProcessor> writeThixotropicMQCoProcessor(new WriteThixotropyQuantitiesCoProcessor(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); + //SPtr<WriteThixotropyQuantitiesSimulationObserver> writeThixotropicMQSimulationObserver(new WriteThixotropyQuantitiesSimulationObserver(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime)); - calculator->addCoProcessor(npr); - //calculator->addCoProcessor(fp); - calculator->addCoProcessor(fp2); - //calculator->addCoProcessor(writeMQCoProcessor); - //calculator->addCoProcessor(writeThixotropicMQCoProcessor); - calculator->addCoProcessor(restartCoProcessor); + calculator->addSimulationObserver(npr); + //calculator->addSimulationObserver(fp); + calculator->addSimulationObserver(fp2); + //calculator->addSimulationObserver(writeMQSimulationObserver); + //calculator->addSimulationObserver(writeThixotropicMQSimulationObserver); + calculator->addSimulationObserver(restartSimulationObserver); if (myid == 0) UBLOG(logINFO, "Simulation-start"); calculator->calculate(); diff --git a/apps/cpu/rheometer/rheometer.cpp b/apps/cpu/rheometer/rheometer.cpp index 19ca56314..a707b0899 100644 --- a/apps/cpu/rheometer/rheometer.cpp +++ b/apps/cpu/rheometer/rheometer.cpp @@ -230,10 +230,10 @@ void bflow(string configname) ////////////////////////////////////////////////////////////////////////// //restart SPtr<UbScheduler> mSch(new UbScheduler(cpStep, cpStart)); - SPtr<MPIIOMigrationCoProcessor> restartCoProcessor(new MPIIOMigrationCoProcessor(grid, mSch, metisVisitor, outputPath, comm)); - restartCoProcessor->setLBMKernel(kernel); - restartCoProcessor->setBCSet(bcProc); - //restartCoProcessor->setNu(k); + SPtr<MPIIOMigrationSimulationObserver> restartSimulationObserver(new MPIIOMigrationSimulationObserver(grid, mSch, metisVisitor, outputPath, comm)); + restartSimulationObserver->setLBMKernel(kernel); + restartSimulationObserver->setBCSet(bcProc); + //restartSimulationObserver->setNu(k); ////////////////////////////////////////////////////////////////////////// ////stator @@ -328,7 +328,7 @@ void bflow(string configname) if (myid == 0) UBLOG(logINFO, "deleteSolidBlocks - end"); ////////////////////////////////////// - SPtr<CoProcessor> ppblocks(new WriteBlocksCoProcessor(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, WbWriterVtkXmlBinary::getInstance(), comm)); ppblocks->process(0); unsigned long nob = grid->getNumberOfBlocks(); @@ -377,7 +377,7 @@ void bflow(string configname) } else { - restartCoProcessor->restart((int)restartStep); + restartSimulationObserver->restart((int)restartStep); grid->setTimeStep(restartStep); SetBcBlocksBlockVisitor v1(rotorInt); grid->accept(v1); @@ -401,34 +401,34 @@ void bflow(string configname) grid->accept(bcVisitor); SPtr<UbScheduler> geoSch(new UbScheduler(1)); - WriteBoundaryConditionsCoProcessor ppgeo = WriteBoundaryConditionsCoProcessor(grid, geoSch, outputPath, WbWriterVtkXmlASCII::getInstance(), comm); + WriteBoundaryConditionsSimulationObserver ppgeo = WriteBoundaryConditionsSimulationObserver(grid, geoSch, outputPath, WbWriterVtkXmlASCII::getInstance(), comm); ppgeo.process(0); SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); - SPtr<CoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<SimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); //write data for visualization of macroscopic quantities SPtr<UbScheduler> visSch(new UbScheduler(outTime)); //SPtr<UbScheduler> visSch(new UbScheduler(10,1)); - SPtr<WriteMacroscopicQuantitiesCoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); - //writeMQCoProcessor->process(0); + SPtr<WriteMacroscopicQuantitiesSimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); + //writeMQSimulationObserver->process(0); SPtr<UbScheduler> forceSch(new UbScheduler(100)); - SPtr<CalculateTorqueCoProcessor> fp = make_shared<CalculateTorqueCoProcessor>(grid, forceSch, outputPath + "/torque/TorqueRotor.txt", comm); + SPtr<CalculateTorqueSimulationObserver> fp = make_shared<CalculateTorqueSimulationObserver>(grid, forceSch, outputPath + "/torque/TorqueRotor.txt", comm); fp->addInteractor(rotorInt); - SPtr<CalculateTorqueCoProcessor> fp2 = make_shared<CalculateTorqueCoProcessor>(grid, forceSch, outputPath + "/torque/TorqueStator.txt", comm); + SPtr<CalculateTorqueSimulationObserver> fp2 = make_shared<CalculateTorqueSimulationObserver>(grid, forceSch, outputPath + "/torque/TorqueStator.txt", comm); fp2->addInteractor(statorInt); - SPtr<WriteThixotropyQuantitiesCoProcessor> writeThixotropicMQCoProcessor(new WriteThixotropyQuantitiesCoProcessor(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); + SPtr<WriteThixotropyQuantitiesSimulationObserver> writeThixotropicMQSimulationObserver(new WriteThixotropyQuantitiesSimulationObserver(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime)); - calculator->addCoProcessor(npr); - calculator->addCoProcessor(fp); - calculator->addCoProcessor(fp2); - calculator->addCoProcessor(writeMQCoProcessor); - calculator->addCoProcessor(writeThixotropicMQCoProcessor); - //calculator->addCoProcessor(restartCoProcessor); + calculator->addSimulationObserver(npr); + calculator->addSimulationObserver(fp); + calculator->addSimulationObserver(fp2); + calculator->addSimulationObserver(writeMQSimulationObserver); + calculator->addSimulationObserver(writeThixotropicMQSimulationObserver); + //calculator->addSimulationObserver(restartSimulationObserver); if (myid == 0) UBLOG(logINFO, "Simulation-start"); calculator->calculate(); diff --git a/apps/cpu/sphere/sphere.cpp b/apps/cpu/sphere/sphere.cpp index c01388374..c1fe99267 100644 --- a/apps/cpu/sphere/sphere.cpp +++ b/apps/cpu/sphere/sphere.cpp @@ -164,7 +164,7 @@ void run(string configname) GbCuboid3DPtr geoOutflow(new GbCuboid3D(d_maxX1, d_minX2 - 4.0*blockLength, d_minX3 - 4.0*blockLength, d_maxX1 + 4.0*blockLength, d_maxX2 + 4.0*blockLength, d_maxX3 + 4.0*blockLength)); if (myid == 0) GbSystem3D::writeGeoObject(geoOutflow.get(), outputPath + "/geo/geoOutflow", WbWriterVtkXmlASCII::getInstance()); - SPtr<CoProcessor> ppblocks(new WriteBlocksCoProcessor(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, WbWriterVtkXmlBinary::getInstance(), comm)); //walls SPtr<D3Q27Interactor> addWallYminInt(new D3Q27Interactor(addWallYmin, grid, slipBC, Interactor3D::SOLID)); @@ -251,8 +251,8 @@ void run(string configname) //Postrozess SPtr<UbScheduler> geoSch(new UbScheduler(1)); - SPtr<CoProcessor> ppgeo( - new WriteBoundaryConditionsCoProcessor(grid, geoSch, outputPath, WbWriterVtkXmlBinary::getInstance(), comm)); + SPtr<SimulationObserver> ppgeo( + new WriteBoundaryConditionsSimulationObserver(grid, geoSch, outputPath, WbWriterVtkXmlBinary::getInstance(), comm)); ppgeo->process(0); ppgeo.reset(); @@ -282,21 +282,21 @@ void run(string configname) SPtr<UbScheduler> stepSch(new UbScheduler(outstep)); //stepSch->addSchedule(10000, 0, 1000000); - SPtr<WriteMacroscopicQuantitiesCoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, stepSch, outputPath, WbWriterVtkXmlBinary::getInstance(), conv,comm)); + SPtr<WriteMacroscopicQuantitiesSimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, stepSch, outputPath, WbWriterVtkXmlBinary::getInstance(), conv,comm)); SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); - SPtr<CoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<SimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); real area = UbMath::PI * radius * radius; SPtr<UbScheduler> forceSch(new UbScheduler(100)); - SPtr<CalculateForcesCoProcessor> fp = make_shared<CalculateForcesCoProcessor>(grid, forceSch, outputPath + "/forces/forces.txt", comm, uLB, area); + SPtr<CalculateForcesSimulationObserver> fp = make_shared<CalculateForcesSimulationObserver>(grid, forceSch, outputPath + "/forces/forces.txt", comm, uLB, area); fp->addInteractor(sphereInt); SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endstep)); - calculator->addCoProcessor(npr); - calculator->addCoProcessor(fp); - calculator->addCoProcessor(writeMQCoProcessor); + calculator->addSimulationObserver(npr); + calculator->addSimulationObserver(fp); + calculator->addSimulationObserver(writeMQSimulationObserver); if (myid == 0) UBLOG(logINFO, "Simulation-start"); diff --git a/src/basics/geometry3d/CoordinateTransformation3D.h b/src/basics/geometry3d/CoordinateTransformation3D.h index a0f88c1f6..d5560e84c 100644 --- a/src/basics/geometry3d/CoordinateTransformation3D.h +++ b/src/basics/geometry3d/CoordinateTransformation3D.h @@ -137,10 +137,10 @@ private: bool active; bool transformation; - friend class MPIIOCoProcessor; - friend class MPIIORestartCoProcessor; - friend class MPIIOMigrationCoProcessor; - friend class MPIIOMigrationBECoProcessor; + friend class MPIIOSimulationObserver; + friend class MPIIORestartSimulationObserver; + friend class MPIIOMigrationSimulationObserver; + friend class MPIIOMigrationBESimulationObserver; friend class CheckpointConverter; }; diff --git a/src/cpu/LiggghtsCoupling/LiggghtsCouplingCoProcessor.cpp b/src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.cpp similarity index 90% rename from src/cpu/LiggghtsCoupling/LiggghtsCouplingCoProcessor.cpp rename to src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.cpp index bf923b2a2..3c4a021cc 100644 --- a/src/cpu/LiggghtsCoupling/LiggghtsCouplingCoProcessor.cpp +++ b/src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.cpp @@ -1,7 +1,7 @@ -#include "LiggghtsCouplingCoProcessor.h" +#include "LiggghtsCouplingSimulationObserver.h" #include "GbSphere3D.h" #include "mpi/MPICommunicator.h" -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "LiggghtsCouplingWrapper.h" #include "Grid3D.h" #include "Block3D.h" @@ -12,23 +12,23 @@ #include "LBMUnitConverter.h" #include "fix_lb_coupling_onetoone.h" -LiggghtsCouplingCoProcessor::LiggghtsCouplingCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, +LiggghtsCouplingSimulationObserver::LiggghtsCouplingSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<vf::mpi::Communicator> comm, LiggghtsCouplingWrapper &wrapper, int demSteps, SPtr<LBMUnitConverter> units) - : CoProcessor(grid, s), comm(comm), wrapper(wrapper), demSteps(demSteps), units(units) + : SimulationObserver(grid, s), comm(comm), wrapper(wrapper), demSteps(demSteps), units(units) { } -LiggghtsCouplingCoProcessor::~LiggghtsCouplingCoProcessor() +LiggghtsCouplingSimulationObserver::~LiggghtsCouplingSimulationObserver() { } -void LiggghtsCouplingCoProcessor::process(double actualTimeStep) +void LiggghtsCouplingSimulationObserver::process(double actualTimeStep) { if (comm->getProcessID() == 0) - std::cout << "LiggghtsCouplingCoProcessor step: " << actualTimeStep << "\n"; + std::cout << "LiggghtsCouplingSimulationObserver step: " << actualTimeStep << "\n"; //comm->barrier(); @@ -45,7 +45,7 @@ void LiggghtsCouplingCoProcessor::process(double actualTimeStep) //comm->barrier(); } -void LiggghtsCouplingCoProcessor::setSpheresOnLattice() +void LiggghtsCouplingSimulationObserver::setSpheresOnLattice() { std::vector<int> excludeType; @@ -88,7 +88,7 @@ void LiggghtsCouplingCoProcessor::setSpheresOnLattice() } } -void LiggghtsCouplingCoProcessor::setSingleSphere3D(double *x, double *v, double *omega, /* double *com,*/ double r, +void LiggghtsCouplingSimulationObserver::setSingleSphere3D(double *x, double *v, double *omega, /* double *com,*/ double r, int id /*, bool initVelFlag*/) { int level = 0; @@ -172,7 +172,7 @@ void LiggghtsCouplingCoProcessor::setSingleSphere3D(double *x, double *v, double } -double LiggghtsCouplingCoProcessor::calcSolidFraction(double const dx_, double const dy_, double const dz_, +double LiggghtsCouplingSimulationObserver::calcSolidFraction(double const dx_, double const dy_, double const dz_, double const r_) { static int const slicesPerDim = 5; @@ -219,7 +219,7 @@ double LiggghtsCouplingCoProcessor::calcSolidFraction(double const dx_, double c return fraction * ((double)n); } - void LiggghtsCouplingCoProcessor::setValues(IBdynamicsParticleData &p, int const id, double const sf, double const *v, double const dx, double const dy, double const dz, double const *omega) + void LiggghtsCouplingSimulationObserver::setValues(IBdynamicsParticleData &p, int const id, double const sf, double const *v, double const dx, double const dy, double const dz, double const *omega) { p.uPart[0] = v[0]; p.uPart[1] = v[1]; @@ -235,7 +235,7 @@ double LiggghtsCouplingCoProcessor::calcSolidFraction(double const dx_, double c } -void LiggghtsCouplingCoProcessor::setToZero(IBdynamicsParticleData &p) +void LiggghtsCouplingSimulationObserver::setToZero(IBdynamicsParticleData &p) { p.uPart[0] = 0; p.uPart[1] = 0; @@ -244,7 +244,7 @@ void LiggghtsCouplingCoProcessor::setToZero(IBdynamicsParticleData &p) p.partId = 0; } -void LiggghtsCouplingCoProcessor::getForcesFromLattice() +void LiggghtsCouplingSimulationObserver::getForcesFromLattice() { static std::vector<double> force, torque; static typename ParticleData::ParticleDataArrayVector x_lb; @@ -319,7 +319,7 @@ void LiggghtsCouplingCoProcessor::getForcesFromLattice() couplingFix->comm_force_torque(); } -void LiggghtsCouplingCoProcessor::SumForceTorque3D(ParticleData::ParticleDataArrayVector &x, double *force, double *torque) +void LiggghtsCouplingSimulationObserver::SumForceTorque3D(ParticleData::ParticleDataArrayVector &x, double *force, double *torque) { int nx = grid->getNX1(), ny = grid->getNX2(), nz = grid->getNX3(); @@ -402,12 +402,12 @@ void LiggghtsCouplingCoProcessor::SumForceTorque3D(ParticleData::ParticleDataArr } } -void LiggghtsCouplingCoProcessor::addForce(int const partId, int const coord, double const value, double *force) +void LiggghtsCouplingSimulationObserver::addForce(int const partId, int const coord, double const value, double *force) { force[3 * partId + coord] += value; } -void LiggghtsCouplingCoProcessor::addTorque(int const partId, int const coord, double const value, double *torque) +void LiggghtsCouplingSimulationObserver::addTorque(int const partId, int const coord, double const value, double *torque) { torque[3 * partId + coord] += value; } \ No newline at end of file diff --git a/src/cpu/LiggghtsCoupling/LiggghtsCouplingCoProcessor.h b/src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.h similarity index 90% rename from src/cpu/LiggghtsCoupling/LiggghtsCouplingCoProcessor.h rename to src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.h index 3e87c89d2..796208653 100644 --- a/src/cpu/LiggghtsCoupling/LiggghtsCouplingCoProcessor.h +++ b/src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.h @@ -26,15 +26,15 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file LiggghtsCouplingCoProcessor.h +//! \file LiggghtsCouplingSimulationObserver.h //! \ingroup LiggghtsCoupling //! \author Konstantin Kutscher //======================================================================================= -#ifndef LiggghtsCouplingCoProcessor_h -#define LiggghtsCouplingCoProcessor_h +#ifndef LiggghtsCouplingSimulationObserver_h +#define LiggghtsCouplingSimulationObserver_h -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "lammps.h" #include "input.h" @@ -45,7 +45,7 @@ #include <vector> -class CoProcessor; +class SimulationObserver; namespace vf::mpi {class Communicator;} class LiggghtsCouplingWrapper; class Grid3D; @@ -58,12 +58,12 @@ struct ParticleData { typedef typename std::vector<double> ParticleDataScalarVector; }; -class LiggghtsCouplingCoProcessor : public CoProcessor +class LiggghtsCouplingSimulationObserver : public SimulationObserver { public: - LiggghtsCouplingCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<vf::mpi::Communicator> comm, + LiggghtsCouplingSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<vf::mpi::Communicator> comm, LiggghtsCouplingWrapper &wrapper, int demSteps, SPtr<LBMUnitConverter> units); - virtual ~LiggghtsCouplingCoProcessor(); + virtual ~LiggghtsCouplingSimulationObserver(); void process(double actualTimeStep) override; diff --git a/src/cpu/VirtualFluids.h b/src/cpu/VirtualFluids.h index 458cd4733..69b768e98 100644 --- a/src/cpu/VirtualFluids.h +++ b/src/cpu/VirtualFluids.h @@ -183,41 +183,41 @@ #include <Interactors/Interactor3D.h> #include <Interactors/InteractorsHelper.h> -#include <CoProcessors/AdjustForcingCoProcessor.h> -#include <CoProcessors/CalculateForcesCoProcessor.h> -#include <CoProcessors/CalculateTorqueCoProcessor.h> -#include <CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h> -#include <CoProcessors/WriteMQFromSelectionCoProcessor.h> -#include <CoProcessors/WriteBoundaryConditionsCoProcessor.h> -#include <CoProcessors/WriteMQFromSelectionCoProcessor.h> -#include <CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h> -#include <WriteBlocksCoProcessor.h> -//#include <CoProcessors/PathLineCoProcessor.h> -//#include <CoProcessors/PathLineCoProcessorMcpart.h> -#include <CoProcessors/EmergencyExitCoProcessor.h> -#include <CoProcessors/NUPSCounterCoProcessor.h> -#include <CoProcessors/PressureDifferenceCoProcessor.h> -//#include <CoProcessors/Particles.h> -#include <CoProcessors/AverageValuesCoProcessor.h> -#include <CoProcessors/CoProcessor.h> -#include <CoProcessors/DecreaseViscosityCoProcessor.h> -#include <CoProcessors/InSituVTKCoProcessor.h> -#include <CoProcessors/QCriterionCoProcessor.h> -#include <CoProcessors/ShearStressCoProcessor.h> -#include <CoProcessors/TimeseriesCoProcessor.h> -#include <CoProcessors/TurbulenceIntensityCoProcessor.h> -#include <CoProcessors/TimeAveragedValuesCoProcessor.h> +#include <SimulationObservers/AdjustForcingSimulationObserver.h> +#include <SimulationObservers/CalculateForcesSimulationObserver.h> +#include <SimulationObservers/CalculateTorqueSimulationObserver.h> +#include <SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.h> +#include <SimulationObservers/WriteMQFromSelectionSimulationObserver.h> +#include <SimulationObservers/WriteBoundaryConditionsSimulationObserver.h> +#include <SimulationObservers/WriteMQFromSelectionSimulationObserver.h> +#include <SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.h> +#include <WriteBlocksSimulationObserver.h> +//#include <SimulationObservers/PathLineSimulationObserver.h> +//#include <SimulationObservers/PathLineSimulationObserverMcpart.h> +#include <SimulationObservers/EmergencyExitSimulationObserver.h> +#include <SimulationObservers/NUPSCounterSimulationObserver.h> +#include <SimulationObservers/PressureDifferenceSimulationObserver.h> +//#include <SimulationObservers/Particles.h> +#include <SimulationObservers/AverageValuesSimulationObserver.h> +#include <SimulationObservers/SimulationObserver.h> +#include <SimulationObservers/DecreaseViscositySimulationObserver.h> +#include <SimulationObservers/InSituVTKSimulationObserver.h> +#include <SimulationObservers/QCriterionSimulationObserver.h> +#include <SimulationObservers/ShearStressSimulationObserver.h> +#include <SimulationObservers/TimeseriesSimulationObserver.h> +#include <SimulationObservers/TurbulenceIntensitySimulationObserver.h> +#include <SimulationObservers/TimeAveragedValuesSimulationObserver.h> -//#include <CoProcessors/MeanValuesCoProcessor.h> -#include <CoProcessors/InSituCatalystCoProcessor.h> -#include <CoProcessors/LineTimeSeriesCoProcessor.h> -#include <CoProcessors/MPIIOMigrationBECoProcessor.h> -#include <CoProcessors/MPIIOMigrationCoProcessor.h> -#include <CoProcessors/MPIIORestartCoProcessor.h> -#include <CoProcessors/MicrophoneArrayCoProcessor.h> -#include <WriteThixotropyQuantitiesCoProcessor.h> -#include <WriteMultiphaseQuantitiesCoProcessor.h> -#include <TimeDependentBCCoProcessor.h> +//#include <SimulationObservers/MeanValuesSimulationObserver.h> +#include <SimulationObservers/InSituCatalystSimulationObserver.h> +#include <SimulationObservers/LineTimeSeriesSimulationObserver.h> +#include <SimulationObservers/MPIIOMigrationBESimulationObserver.h> +#include <SimulationObservers/MPIIOMigrationSimulationObserver.h> +#include <SimulationObservers/MPIIORestartSimulationObserver.h> +#include <SimulationObservers/MicrophoneArraySimulationObserver.h> +#include <WriteThixotropyQuantitiesSimulationObserver.h> +#include <WriteMultiphaseQuantitiesSimulationObserver.h> +#include <TimeDependentBCSimulationObserver.h> #include <IntegrateValuesHelper.h> //#include <LBM/D3Q27CompactInterpolationProcessor.h> diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCArray3D.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCArray3D.h index b9d08f711..13d8fbad8 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCArray3D.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCArray3D.h @@ -130,9 +130,9 @@ private: ////////////////////////////////////////////////////////////////////////// void deleteBC(std::size_t x1, std::size_t x2, std::size_t x3); - friend class MPIIORestartCoProcessor; - friend class MPIIOMigrationCoProcessor; - friend class MPIIOMigrationBECoProcessor; + friend class MPIIORestartSimulationObserver; + friend class MPIIOMigrationSimulationObserver; + friend class MPIIOMigrationBESimulationObserver; protected: ////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h index e3f42c29b..963c2df62 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h @@ -338,9 +338,9 @@ protected: char algorithmType { -1 }; private: - friend class MPIIORestartCoProcessor; - friend class MPIIOMigrationCoProcessor; - friend class MPIIOMigrationBECoProcessor; + friend class MPIIORestartSimulationObserver; + friend class MPIIOMigrationSimulationObserver; + friend class MPIIOMigrationBESimulationObserver; }; #endif diff --git a/src/cpu/VirtualFluidsCore/CMakeLists.txt b/src/cpu/VirtualFluidsCore/CMakeLists.txt index 0485e00ec..75db42ccb 100644 --- a/src/cpu/VirtualFluidsCore/CMakeLists.txt +++ b/src/cpu/VirtualFluidsCore/CMakeLists.txt @@ -42,7 +42,7 @@ target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/LB target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Parallel) target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Grid) target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Visitors) -target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/CoProcessors) +target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/SimulationObservers) target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Utilities) diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.h deleted file mode 100644 index 13eaa7832..000000000 --- a/src/cpu/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * EmergencyExitCoProcessor.h - * - * Created on: 05.10.2012 - * Author: K. Kucher - */ - -#ifndef EmergencyExitCoProcessor_H -#define EmergencyExitCoProcessor_H - -#include <PointerDefinitions.h> -#include <string> - -#include "CoProcessor.h" - -class MPIIORestartCoProcessor; -namespace vf::mpi {class Communicator;} -class Grid3D; -class UbScheduler; - -class EmergencyExitCoProcessor : public CoProcessor -{ -public: - EmergencyExitCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, - SPtr<MPIIORestartCoProcessor> rp, std::shared_ptr<vf::mpi::Communicator> comm); - ~EmergencyExitCoProcessor() override; - - void process(real step) override; - -protected: - void collectData(real step); - void writeMetafile(int status); - bool readMetafile(); - void checkMetafile(); - -private: - std::string path; - std::shared_ptr<vf::mpi::Communicator> comm; - SPtr<MPIIORestartCoProcessor> rp; - std::string metafile; -}; - -#endif /* EmergencyExitCoProcessor_H */ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.cpp deleted file mode 100644 index 22158269d..000000000 --- a/src/cpu/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "TimeDependentBCCoProcessor.h" - -#include "Grid3D.h" -#include "Interactor3D.h" -#include "UbScheduler.h" - -TimeDependentBCCoProcessor::TimeDependentBCCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s) : CoProcessor(grid, s) {} -////////////////////////////////////////////////////////////////////////// -TimeDependentBCCoProcessor::~TimeDependentBCCoProcessor() = default; -////////////////////////////////////////////////////////////////////////// -void TimeDependentBCCoProcessor::process(real step) -{ - if (scheduler->isDue(step)) { - for (SPtr<Interactor3D> inter : interactors) - inter->updateInteractor(step); - UBLOG(logDEBUG3, "TimeDependentBCCoProcessor::update:" << step); - } -} -////////////////////////////////////////////////////////////////////////// -void TimeDependentBCCoProcessor::addInteractor(SPtr<Interactor3D> interactor) { interactors.push_back(interactor); } - -////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.h deleted file mode 100644 index e8f7d3e0f..000000000 --- a/src/cpu/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef TimeDependentBCCoProcessor_H -#define TimeDependentBCCoProcessor_H - -#include <PointerDefinitions.h> -#include <vector> - -#include "CoProcessor.h" - -class Interactor3D; -class Grid3D; - -//! \brief The class update interactors depend of time step. -//! \details TimeDependentBCCoProcessor update every time step information in BCs throw Interactors -//! \author Sonja Uphoff, Kostyantyn Kucher -class TimeDependentBCCoProcessor : public CoProcessor -{ -public: - TimeDependentBCCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s); - ~TimeDependentBCCoProcessor() override; - - void process(real step) override; - - //! add interactors to CoProcessor - void addInteractor(SPtr<Interactor3D> interactor); - -private: - std::vector<SPtr<Interactor3D>> interactors; -}; - -#endif /* TimeDependentBCCoProcessor_H */ diff --git a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.h b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.h index 060e2cb3a..21f161064 100644 --- a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.h +++ b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.h @@ -103,8 +103,8 @@ protected: CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; size_t NX1, NX2, NX3; - friend class MPIIORestartCoProcessor; - friend class MPIIOMigrationCoProcessor; + friend class MPIIORestartSimulationObserver; + friend class MPIIOMigrationSimulationObserver; }; #endif diff --git a/src/cpu/VirtualFluidsCore/Grid/Calculator.cpp b/src/cpu/VirtualFluidsCore/Grid/Calculator.cpp index 85235867a..a0b55fc79 100644 --- a/src/cpu/VirtualFluidsCore/Grid/Calculator.cpp +++ b/src/cpu/VirtualFluidsCore/Grid/Calculator.cpp @@ -35,7 +35,7 @@ #include "Block3D.h" #include "Block3DConnector.h" -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "Grid3D.h" #include "UbScheduler.h" @@ -75,11 +75,11 @@ Calculator::Calculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayer ////////////////////////////////////////////////////////////////////////// Calculator::~Calculator() = default; ////////////////////////////////////////////////////////////////////////// -void Calculator::addCoProcessor(SPtr<CoProcessor> coProcessor) { coProcessors.push_back(coProcessor); } +void Calculator::addSimulationObserver(SPtr<SimulationObserver> coProcessor) { coProcessors.push_back(coProcessor); } ////////////////////////////////////////////////////////////////////////// void Calculator::coProcess(real step) { - for (SPtr<CoProcessor> cp : coProcessors) { + for (SPtr<SimulationObserver> cp : coProcessors) { cp->process(step); } } diff --git a/src/cpu/VirtualFluidsCore/Grid/Calculator.h b/src/cpu/VirtualFluidsCore/Grid/Calculator.h index 759541dd5..8ae810c7e 100644 --- a/src/cpu/VirtualFluidsCore/Grid/Calculator.h +++ b/src/cpu/VirtualFluidsCore/Grid/Calculator.h @@ -42,7 +42,7 @@ class Grid3D; class UbScheduler; class Block3D; class Block3DConnector; -class CoProcessor; +class SimulationObserver; //! \class Calculator //! \brief A base class for main calculation loop @@ -53,7 +53,7 @@ public: Calculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayerUpdateScheduler, int numberOfTimeSteps); virtual ~Calculator(); //! control of coProcessors - void addCoProcessor(SPtr<CoProcessor> coProcessor); + void addSimulationObserver(SPtr<SimulationObserver> coProcessor); void coProcess(real step); virtual void calculate() = 0; @@ -86,7 +86,7 @@ protected: std::vector<std::vector<SPtr<Block3DConnector>>> localInterConns; std::vector<std::vector<SPtr<Block3DConnector>>> remoteInterConns; - std::vector<SPtr<CoProcessor>> coProcessors; + std::vector<SPtr<SimulationObserver>> coProcessors; }; #endif diff --git a/src/cpu/VirtualFluidsCore/Parallel/MPIIODataStructures.h b/src/cpu/VirtualFluidsCore/Parallel/MPIIODataStructures.h index bbc4face9..e84d4b7cd 100644 --- a/src/cpu/VirtualFluidsCore/Parallel/MPIIODataStructures.h +++ b/src/cpu/VirtualFluidsCore/Parallel/MPIIODataStructures.h @@ -56,7 +56,7 @@ struct dataSetParam { }; //! \struct DataSetRestart -//! \brief Structure describes parameters of the dataSet in MPIIORestartCoProcessor format +//! \brief Structure describes parameters of the dataSet in MPIIORestartSimulationObserver format //! \details The structure is used when reading from the file struct DataSetRestart { real collFactor; @@ -74,7 +74,7 @@ struct DataSetRestart { }; //! \struct DataSetMigration -//! \brief Structure describes parameters of the dataSet in MPIIOMigrationCoProcessor format +//! \brief Structure describes parameters of the dataSet in MPIIOMigrationSimulationObserver format //! \details The structure is used to find the needed block in the grid when restoring a dataSet struct DataSetMigration { real collFactor; @@ -89,7 +89,7 @@ struct DataSetMigration { }; //! \struct DataSetSmallRead -//! \brief Structure describes parameters of the DataSetSmall in MPIIORestartCoProcessor format +//! \brief Structure describes parameters of the DataSetSmall in MPIIORestartSimulationObserver format //! \details The structure is used when reading from the file struct DataSetSmallRestart { int x1; @@ -98,7 +98,7 @@ struct DataSetSmallRestart { int level; }; //! \struct dataSetSmall -//! \brief Structure containes information identifying the block in MPIIOMigrationCoProcessor format +//! \brief Structure containes information identifying the block in MPIIOMigrationSimulationObserver format //! \details The structure is used to find the needed block in the grid when restoring a dataSet arrays struct DataSetSmallMigration { int globalID; @@ -138,7 +138,7 @@ struct boundCondParam { }; //! \struct BCAddRead -//! \brief Structure describes parameters of the BCAdd in MPIIORestartCoProcessor format +//! \brief Structure describes parameters of the BCAdd in MPIIORestartSimulationObserver format //! \details The structure is used when reading from the file struct BCAddRestart { int x1; // to find the right block @@ -151,7 +151,7 @@ struct BCAddRestart { //! \struct BCAdd //! \brief Structure containes information identifying the block and some parameters of the arrays -//! \of boundary conditions that are equal in all blocks in MPIIOMigrationCoProcessor format +//! \of boundary conditions that are equal in all blocks in MPIIOMigrationSimulationObserver format //! \details The structure is used to find the needed block in the grid when restoring a dataSet //! and to set common parameters struct BCAddMigration { diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/AdjustForcingCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.cpp similarity index 90% rename from src/cpu/VirtualFluidsCore/CoProcessors/AdjustForcingCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.cpp index f3137e5f6..af91e66fb 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/AdjustForcingCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.cpp @@ -1,8 +1,8 @@ /* - * D3Q27AdjustForcingCoProcessor.cpp + * D3Q27AdjustForcingSimulationObserver.cpp * Author: Konstantin Kutscher */ -#include "AdjustForcingCoProcessor.h" +#include "AdjustForcingSimulationObserver.h" #include <fstream> @@ -12,11 +12,11 @@ #include "UbScheduler.h" #include <SetForcingBlockVisitor.h> -AdjustForcingCoProcessor::AdjustForcingCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, +AdjustForcingSimulationObserver::AdjustForcingSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, SPtr<IntegrateValuesHelper> integrateValues, real vTarged, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), integrateValues(integrateValues), comm(comm), vx1Targed(vTarged) + : SimulationObserver(grid, s), path(path), integrateValues(integrateValues), comm(comm), vx1Targed(vTarged) { // cnodes = integrateValues->getCNodes(); root = comm->isRoot(); @@ -71,13 +71,13 @@ AdjustForcingCoProcessor::AdjustForcingCoProcessor(SPtr<Grid3D> grid, SPtr<UbSch } ////////////////////////////////////////////////////////////////////////// -void AdjustForcingCoProcessor::process(real step) +void AdjustForcingSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); } ////////////////////////////////////////////////////////////////////////// -void AdjustForcingCoProcessor::collectData(real step) +void AdjustForcingSimulationObserver::collectData(real step) { ////////////////////////////////////////////////////////////////////////////////////////////////// // temporary solution @@ -140,7 +140,7 @@ void AdjustForcingCoProcessor::collectData(real step) //} if (root) { - // UBLOG(logINFO, "D3Q27AdjustForcingCoProcessor step: " << static_cast<int>(step)); + // UBLOG(logINFO, "D3Q27AdjustForcingSimulationObserver step: " << static_cast<int>(step)); // UBLOG(logINFO, "new forcing is: " << forcing); std::string fname = path + "/forcing/forcing.csv"; // std::string fname = path + "/forcing/forcing_"+UbSystem::toString(comm->getProcessID())+".csv"; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/AdjustForcingCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.h similarity index 81% rename from src/cpu/VirtualFluidsCore/CoProcessors/AdjustForcingCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.h index be8dbc69f..72141c6dd 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/AdjustForcingCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.h @@ -1,10 +1,10 @@ -#ifndef D3Q27ADJUSTFORCINGCoProcessor_H -#define D3Q27ADJUSTFORCINGCoProcessor_H +#ifndef D3Q27ADJUSTFORCINGSimulationObserver_H +#define D3Q27ADJUSTFORCINGSimulationObserver_H #include <PointerDefinitions.h> #include <string> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "lbm/constants/D3Q27.h" namespace vf::mpi {class Communicator;} @@ -18,10 +18,10 @@ class IntegrateValuesHelper; //! Integrate values helper, scheduler must be set in test case. //! \author: Konstantin Kutscher -class AdjustForcingCoProcessor : public CoProcessor +class AdjustForcingSimulationObserver : public SimulationObserver { public: - AdjustForcingCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, + AdjustForcingSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, SPtr<IntegrateValuesHelper> integrateValues, real vTarged, std::shared_ptr<vf::mpi::Communicator> comm); //!< calls collect PostprocessData void process(real step) override; @@ -55,4 +55,4 @@ private: std::string path; }; -#endif /* D3Q27RHODIFFERENCECoProcessor_H_ */ +#endif /* D3Q27RHODIFFERENCESimulationObserver_H_ */ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.cpp similarity index 95% rename from src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.cpp index b34f61299..9dc2e93ee 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "AverageValuesCoProcessor.h" +#include "AverageValuesSimulationObserver.h" #include "BCSet.h" #include "LBMKernel.h" @@ -15,12 +15,12 @@ using namespace std; -AverageValuesCoProcessor::AverageValuesCoProcessor() = default; +AverageValuesSimulationObserver::AverageValuesSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -AverageValuesCoProcessor::AverageValuesCoProcessor(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, +AverageValuesSimulationObserver::AverageValuesSimulationObserver(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, SPtr<UbScheduler> Avs, SPtr<UbScheduler> rsMeans, SPtr<UbScheduler> rsRMS, bool restart) - : CoProcessor(grid, s), averageScheduler(Avs), resetSchedulerMeans(rsMeans), resetSchedulerRMS(rsRMS), path(path), + : SimulationObserver(grid, s), averageScheduler(Avs), resetSchedulerMeans(rsMeans), resetSchedulerRMS(rsRMS), path(path), writer(writer) { resetStepMeans = (int)rsMeans->getMinBegin(); @@ -54,7 +54,7 @@ AverageValuesCoProcessor::AverageValuesCoProcessor(SPtr<Grid3D> grid, const std: // restartStep = 0.0; } ////////////////////////////////////////////////////////////////////////// -void AverageValuesCoProcessor::process(real step) +void AverageValuesSimulationObserver::process(real step) { // resetRMS(step); if (resetSchedulerRMS->isDue(step)) @@ -73,10 +73,10 @@ void AverageValuesCoProcessor::process(real step) collectData(step); } - UBLOG(logDEBUG3, "AverageValuesCoProcessor::update:" << step); + UBLOG(logDEBUG3, "AverageValuesSimulationObserver::update:" << step); } -void AverageValuesCoProcessor::resetDataRMS(real step) +void AverageValuesSimulationObserver::resetDataRMS(real step) { resetStepRMS = (int)step; @@ -120,7 +120,7 @@ void AverageValuesCoProcessor::resetDataRMS(real step) } } ////////////////////////////////////////////////////////////////////////// -void AverageValuesCoProcessor::resetDataMeans(real step) +void AverageValuesSimulationObserver::resetDataMeans(real step) { resetStepMeans = (int)step; @@ -161,7 +161,7 @@ void AverageValuesCoProcessor::resetDataMeans(real step) } } ////////////////////////////////////////////////////////////////////////// -void AverageValuesCoProcessor::collectData(real step) +void AverageValuesSimulationObserver::collectData(real step) { int istep = int(step); @@ -195,18 +195,18 @@ void AverageValuesCoProcessor::collectData(real step) vector<string> filenames; filenames.push_back(piece); - if (step == CoProcessor::scheduler->getMinBegin()) { + if (step == SimulationObserver::scheduler->getMinBegin()) { WbWriterVtkXmlASCII::getInstance()->writeCollection(cfilePath, filenames, istep, false); } else { WbWriterVtkXmlASCII::getInstance()->addFilesToCollection(cfilePath, filenames, istep, false); } - UBLOG(logINFO, "AverageValuesCoProcessor step: " << istep); + UBLOG(logINFO, "AverageValuesSimulationObserver step: " << istep); } clearData(); } ////////////////////////////////////////////////////////////////////////// -void AverageValuesCoProcessor::clearData() +void AverageValuesSimulationObserver::clearData() { nodes.clear(); cells.clear(); @@ -214,7 +214,7 @@ void AverageValuesCoProcessor::clearData() data.clear(); } ////////////////////////////////////////////////////////////////////////// -void AverageValuesCoProcessor::addData(const SPtr<Block3D> block) +void AverageValuesSimulationObserver::addData(const SPtr<Block3D> block) { UbTupleDouble3 org = grid->getBlockWorldCoordinates(block); // UbTupleDouble3 blockLengths = grid->getBlockLengths(block); @@ -330,7 +330,7 @@ void AverageValuesCoProcessor::addData(const SPtr<Block3D> block) } } ////////////////////////////////////////////////////////////////////////// -void AverageValuesCoProcessor::calculateAverageValues(real timeStep) +void AverageValuesSimulationObserver::calculateAverageValues(real timeStep) { using namespace D3Q27System; @@ -446,7 +446,7 @@ void AverageValuesCoProcessor::calculateAverageValues(real timeStep) } } //////////////////////////////////////////////////////////////////////////// -// void AverageValuesCoProcessor::initPlotData(double step) +// void AverageValuesSimulationObserver::initPlotData(double step) //{ // std::shared_ptr<vf::mpi::Communicator> comm = vf::mpi::Communicator::getInstance(); // if (comm->getProcessID() == comm->getRoot()) @@ -469,7 +469,7 @@ void AverageValuesCoProcessor::calculateAverageValues(real timeStep) // } //} ////////////////////////////////////////////////////////////////////////////// -// void AverageValuesCoProcessor::collectPlotData(double step) +// void AverageValuesSimulationObserver::collectPlotData(double step) //{ // // double hminX1 = 0.9; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.h similarity index 89% rename from src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.h index b45118adb..d406a018b 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.h @@ -1,11 +1,11 @@ -#ifndef AverageValuesCoProcessor_H -#define AverageValuesCoProcessor_H +#ifndef AverageValuesSimulationObserver_H +#define AverageValuesSimulationObserver_H #include <PointerDefinitions.h> #include <string> #include <vector> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "LBMSystem.h" #include "UbTuple.h" @@ -22,11 +22,11 @@ class Block3D; // //! \author Sonja Uphoff, Kostyantyn Kucher // \f$ u_{mean}=\frac{1}{N}\sum\limits_{i=1}^n u_{i} \f$ -class AverageValuesCoProcessor : public CoProcessor +class AverageValuesSimulationObserver : public SimulationObserver { public: - AverageValuesCoProcessor(); - AverageValuesCoProcessor(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, + AverageValuesSimulationObserver(); + AverageValuesSimulationObserver(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, SPtr<UbScheduler> Avs, SPtr<UbScheduler> rsMeans, SPtr<UbScheduler> rsRMS, bool restart); //! Make update void process(real step) override; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/CalculateForcesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.cpp similarity index 88% rename from src/cpu/VirtualFluidsCore/CoProcessors/CalculateForcesCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.cpp index 2a7635d2a..9189a4089 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/CalculateForcesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "CalculateForcesCoProcessor.h" +#include "CalculateForcesSimulationObserver.h" #include "BCSet.h" #include "BCArray3D.h" @@ -13,9 +13,9 @@ #include "LBMKernel.h" #include "UbScheduler.h" -CalculateForcesCoProcessor::CalculateForcesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, +CalculateForcesSimulationObserver::CalculateForcesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm, real v, real a) - : CoProcessor(grid, s), path(path), comm(comm), v(v), a(a), forceX1global(0), forceX2global(0), forceX3global(0) + : SimulationObserver(grid, s), path(path), comm(comm), v(v), a(a), forceX1global(0), forceX2global(0), forceX3global(0) { if (comm->getProcessID() == comm->getRoot()) { std::ofstream ostr; @@ -55,17 +55,17 @@ CalculateForcesCoProcessor::CalculateForcesCoProcessor(SPtr<Grid3D> grid, SPtr<U } } ////////////////////////////////////////////////////////////////////////// -CalculateForcesCoProcessor::~CalculateForcesCoProcessor() = default; +CalculateForcesSimulationObserver::~CalculateForcesSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -void CalculateForcesCoProcessor::process(real step) +void CalculateForcesSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "D3Q27ForcesCoProcessor::update:" << step); + UBLOG(logDEBUG3, "D3Q27ForcesSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void CalculateForcesCoProcessor::collectData(real step) +void CalculateForcesSimulationObserver::collectData(real step) { calculateForces(); @@ -101,7 +101,7 @@ void CalculateForcesCoProcessor::collectData(real step) } } ////////////////////////////////////////////////////////////////////////// -void CalculateForcesCoProcessor::calculateForces() +void CalculateForcesSimulationObserver::calculateForces() { forceX1global = 0.0; forceX2global = 0.0; @@ -184,7 +184,7 @@ void CalculateForcesCoProcessor::calculateForces() } } ////////////////////////////////////////////////////////////////////////// -UbTupleDouble3 CalculateForcesCoProcessor::getForces(int x1, int x2, int x3, SPtr<DistributionArray3D> distributions, +UbTupleDouble3 CalculateForcesSimulationObserver::getForces(int x1, int x2, int x3, SPtr<DistributionArray3D> distributions, SPtr<BoundaryConditions> bc) { UbTupleDouble3 force(0.0, 0.0, 0.0); @@ -215,7 +215,7 @@ UbTupleDouble3 CalculateForcesCoProcessor::getForces(int x1, int x2, int x3, SPt return force; } ////////////////////////////////////////////////////////////////////////// -void CalculateForcesCoProcessor::calculateCoefficients() +void CalculateForcesSimulationObserver::calculateCoefficients() { real F1 = forceX1global; real F2 = forceX2global; @@ -227,9 +227,9 @@ void CalculateForcesCoProcessor::calculateCoefficients() C3 = 2.0 * F3 / (v * v * a); } ////////////////////////////////////////////////////////////////////////// -void CalculateForcesCoProcessor::addInteractor(SPtr<D3Q27Interactor> interactor) { interactors.push_back(interactor); } +void CalculateForcesSimulationObserver::addInteractor(SPtr<D3Q27Interactor> interactor) { interactors.push_back(interactor); } ////////////////////////////////////////////////////////////////////////// -void CalculateForcesCoProcessor::write(std::ofstream *fileObject, real value, char *separator) +void CalculateForcesSimulationObserver::write(std::ofstream *fileObject, real value, char *separator) { (*fileObject).width(12); //(*fileObject).precision(2); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/CalculateForcesCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.h similarity index 74% rename from src/cpu/VirtualFluidsCore/CoProcessors/CalculateForcesCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.h index d282ae8ed..4198b99dd 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/CalculateForcesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.h @@ -1,18 +1,18 @@ /* - * D3Q27ForcesCoProcessor.h + * D3Q27ForcesSimulationObserver.h * * Created on: 29.09.2012 * Author: K. Kucher */ -#ifndef D3Q27ForcesCoProcessor_H -#define D3Q27ForcesCoProcessor_H +#ifndef D3Q27ForcesSimulationObserver_H +#define D3Q27ForcesSimulationObserver_H #include <PointerDefinitions.h> #include <string> #include <vector> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "UbTuple.h" #include "lbm/constants/D3Q27.h" @@ -24,15 +24,15 @@ class D3Q27Interactor; class DistributionArray3D; class BoundaryConditions; -class CalculateForcesCoProcessor : public CoProcessor +class CalculateForcesSimulationObserver : public SimulationObserver { public: //! Constructor //! \param v - velocity of fluid in LB units //! \param a - area of object in LB units - CalculateForcesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm, + CalculateForcesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm, real v, real a); - ~CalculateForcesCoProcessor() override; + ~CalculateForcesSimulationObserver() override; void process(real step) override; void addInteractor(SPtr<D3Q27Interactor> interactor); @@ -58,4 +58,4 @@ private: real C3; }; -#endif /* D3Q27ForcesCoProcessor_H */ +#endif /* D3Q27ForcesSimulationObserver_H */ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/CalculateTorqueCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.cpp similarity index 87% rename from src/cpu/VirtualFluidsCore/CoProcessors/CalculateTorqueCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.cpp index b4b8b1b58..5cacf602f 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/CalculateTorqueCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "CalculateTorqueCoProcessor.h" +#include "CalculateTorqueSimulationObserver.h" #include "BCSet.h" #include <mpi/Communicator.h> @@ -14,7 +14,7 @@ #include "DistributionArray3D.h" #include "Rheology.h" -CalculateTorqueCoProcessor::CalculateTorqueCoProcessor( SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path_, std::shared_ptr<vf::mpi::Communicator> comm) : CoProcessor(grid, s), path(path_), comm(comm), torqueX1global(0), torqueX2global(0), torqueX3global(0) +CalculateTorqueSimulationObserver::CalculateTorqueSimulationObserver( SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path_, std::shared_ptr<vf::mpi::Communicator> comm) : SimulationObserver(grid, s), path(path_), comm(comm), torqueX1global(0), torqueX2global(0), torqueX3global(0) { if (comm->getProcessID() == comm->getRoot()) { @@ -37,20 +37,20 @@ CalculateTorqueCoProcessor::CalculateTorqueCoProcessor( SPtr<Grid3D> grid, SPtr< } } ////////////////////////////////////////////////////////////////////////// -CalculateTorqueCoProcessor::~CalculateTorqueCoProcessor() +CalculateTorqueSimulationObserver::~CalculateTorqueSimulationObserver() { } ////////////////////////////////////////////////////////////////////////// -void CalculateTorqueCoProcessor::process( real step ) +void CalculateTorqueSimulationObserver::process( real step ) { if(scheduler->isDue(step) ) collectData(step); - UBLOG(logDEBUG3, "D3Q27ForcesCoProcessor::update:" << step); + UBLOG(logDEBUG3, "D3Q27ForcesSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void CalculateTorqueCoProcessor::collectData( real step ) +void CalculateTorqueSimulationObserver::collectData( real step ) { calculateForces(); @@ -80,7 +80,7 @@ void CalculateTorqueCoProcessor::collectData( real step ) } } ////////////////////////////////////////////////////////////////////////// -void CalculateTorqueCoProcessor::calculateForces() +void CalculateTorqueSimulationObserver::calculateForces() { torqueX1global = 0.0; torqueX2global = 0.0; @@ -180,7 +180,7 @@ void CalculateTorqueCoProcessor::calculateForces() } } ////////////////////////////////////////////////////////////////////////// -UbTupleDouble3 CalculateTorqueCoProcessor::getForces(int x1, int x2, int x3, SPtr<DistributionArray3D> distributions, SPtr<BoundaryConditions> bc) +UbTupleDouble3 CalculateTorqueSimulationObserver::getForces(int x1, int x2, int x3, SPtr<DistributionArray3D> distributions, SPtr<BoundaryConditions> bc) { UbTupleDouble3 force(0.0,0.0,0.0); @@ -214,7 +214,7 @@ UbTupleDouble3 CalculateTorqueCoProcessor::getForces(int x1, int x2, int x3, SP return force; } ////////////////////////////////////////////////////////////////////////// -UbTupleDouble3 CalculateTorqueCoProcessor::getForcesFromMoments(int x1, int x2, int x3, SPtr<ILBMKernel> kernel, SPtr<DistributionArray3D> distributions, SPtr<BoundaryConditions> bc, real nx, real ny, real nz) +UbTupleDouble3 CalculateTorqueSimulationObserver::getForcesFromMoments(int x1, int x2, int x3, SPtr<ILBMKernel> kernel, SPtr<DistributionArray3D> distributions, SPtr<BoundaryConditions> bc, real nx, real ny, real nz) { using namespace vf::lbm::constant; UbTupleDouble3 force(0.0, 0.0, 0.0); @@ -249,7 +249,7 @@ UbTupleDouble3 CalculateTorqueCoProcessor::getForcesFromMoments(int x1, int x2, return force; } ////////////////////////////////////////////////////////////////////////// -UbTupleDouble3 CalculateTorqueCoProcessor::getForcesFromStressTensor(int x1, int x2, int x3, SPtr<ILBMKernel> kernel, SPtr<DistributionArray3D> distributions, SPtr<BoundaryConditions> bc, real nx, real ny, real nz) +UbTupleDouble3 CalculateTorqueSimulationObserver::getForcesFromStressTensor(int x1, int x2, int x3, SPtr<ILBMKernel> kernel, SPtr<DistributionArray3D> distributions, SPtr<BoundaryConditions> bc, real nx, real ny, real nz) { using namespace vf::lbm::constant; UbTupleDouble3 force(0.0, 0.0, 0.0); @@ -285,7 +285,7 @@ UbTupleDouble3 CalculateTorqueCoProcessor::getForcesFromStressTensor(int x1, int return force; } ////////////////////////////////////////////////////////////////////////// -void CalculateTorqueCoProcessor::addInteractor( SPtr<D3Q27Interactor> interactor ) +void CalculateTorqueSimulationObserver::addInteractor( SPtr<D3Q27Interactor> interactor ) { interactors.push_back(interactor); } diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/CalculateTorqueCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.h similarity index 72% rename from src/cpu/VirtualFluidsCore/CoProcessors/CalculateTorqueCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.h index 98b6d4001..75d840ed3 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/CalculateTorqueCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.h @@ -1,18 +1,18 @@ /* - * D3Q27ForcesCoProcessor.h + * D3Q27ForcesSimulationObserver.h * * Created on: 29.09.2012 * Author: K. Kucher */ -#ifndef CalculateTorqueCoProcessor_H -#define CalculateTorqueCoProcessor_H +#ifndef CalculateTorqueSimulationObserver_H +#define CalculateTorqueSimulationObserver_H #include <PointerDefinitions.h> #include <string> #include <vector> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "UbTuple.h" #include "D3Q27System.h" @@ -25,12 +25,12 @@ class DistributionArray3D; class BoundaryConditions; class ILBMKernel; -class CalculateTorqueCoProcessor: public CoProcessor +class CalculateTorqueSimulationObserver: public SimulationObserver { public: //! Constructor - CalculateTorqueCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm); - virtual ~CalculateTorqueCoProcessor(); + CalculateTorqueSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm); + virtual ~CalculateTorqueSimulationObserver(); void process(real step); void addInteractor(SPtr<D3Q27Interactor> interactor); protected: @@ -52,4 +52,4 @@ private: }; -#endif /* D3Q27ForcesCoProcessor_H */ +#endif /* D3Q27ForcesSimulationObserver_H */ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.cpp similarity index 76% rename from src/cpu/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.cpp index 0221bf38a..d8b9757aa 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.cpp @@ -1,11 +1,11 @@ /* - * DecreaseViscosityCoProcessor + * DecreaseViscositySimulationObserver * * Created on: 10.05.2013 * Author: uphoff */ -#include "DecreaseViscosityCoProcessor.h" +#include "DecreaseViscositySimulationObserver.h" #include <vector> @@ -15,27 +15,27 @@ #include "LBMKernel.h" #include "UbScheduler.h" -DecreaseViscosityCoProcessor::DecreaseViscosityCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, mu::Parser *nueFunc, +DecreaseViscositySimulationObserver::DecreaseViscositySimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, mu::Parser *nueFunc, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), nueFunc(nueFunc), comm(comm) + : SimulationObserver(grid, s), nueFunc(nueFunc), comm(comm) { if (comm->getProcessID() == comm->getRoot()) { } } ////////////////////////////////////////////////////////////////////////// -DecreaseViscosityCoProcessor::~DecreaseViscosityCoProcessor() = default; +DecreaseViscositySimulationObserver::~DecreaseViscositySimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -void DecreaseViscosityCoProcessor::process(real step) +void DecreaseViscositySimulationObserver::process(real step) { if (scheduler->isDue(step)) setViscosity(step); } ////////////////////////////////////////////////////////////////////////// -void DecreaseViscosityCoProcessor::setViscosity(real step) +void DecreaseViscositySimulationObserver::setViscosity(real step) { - UBLOG(logDEBUG3, "DecreaseViscosityCoProcessor::update:" << step); + UBLOG(logDEBUG3, "DecreaseViscositySimulationObserver::update:" << step); int gridRank = grid->getRank(); int minInitLevel = this->grid->getCoarsestInitializedLevel(); int maxInitLevel = this->grid->getFinestInitializedLevel(); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.h similarity index 63% rename from src/cpu/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.h index aaa8a3c0b..a06652efa 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.h @@ -1,9 +1,9 @@ -#ifndef DecreaseViscosityCoProcessor_H -#define DecreaseViscosityCoProcessor_H +#ifndef DecreaseViscositySimulationObserver_H +#define DecreaseViscositySimulationObserver_H #include <PointerDefinitions.h> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "IntegrateValuesHelper.h" #include "LBMUnitConverter.h" @@ -20,16 +20,16 @@ namespace vf::mpi {class Communicator;} //! decrViscFunc.SetExpr("nue0+c0/(t+1)/(t+1)"); //this function is time-dependent, the viscosity decreases a 1/t^2 //! decrViscFunc.DefineConst("nue0", nueLB); //! decrViscFunc.DefineConst("c0", 0.1); //constants such as c0 controll how fast the viscosity decreasis -//! SPtr<UbScheduler> DecrViscSch(new UbScheduler()); //the CoProcessor is called according to a Scheduler +//! SPtr<UbScheduler> DecrViscSch(new UbScheduler()); //the SimulationObserver is called according to a Scheduler //! DecrViscSch->addSchedule(10,10,1000); //in this case the viscosity is reset every 10 timesteps for the -//! first 1000 timesteps DecreaseViscosityCoProcessor decrViscPPPtr(grid, DecrViscSch,&decrViscFunc, comm); \endcode +//! first 1000 timesteps DecreaseViscositySimulationObserver decrViscPPPtr(grid, DecrViscSch,&decrViscFunc, comm); \endcode //! \author Sonja Uphoff -class DecreaseViscosityCoProcessor : public CoProcessor +class DecreaseViscositySimulationObserver : public SimulationObserver { public: - DecreaseViscosityCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, mu::Parser *nueFunc, std::shared_ptr<vf::mpi::Communicator> comm); - ~DecreaseViscosityCoProcessor() override; + DecreaseViscositySimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, mu::Parser *nueFunc, std::shared_ptr<vf::mpi::Communicator> comm); + ~DecreaseViscositySimulationObserver() override; //! calls collect PostprocessData. void process(real step) override; @@ -43,4 +43,4 @@ private: mu::Parser *nueFunc; }; -#endif /* DecreaseViscosityCoProcessor_H_ */ +#endif /* DecreaseViscositySimulationObserver_H_ */ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.cpp similarity index 60% rename from src/cpu/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.cpp index fc181e266..a502e834b 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.cpp @@ -1,15 +1,15 @@ -#include "EmergencyExitCoProcessor.h" +#include "EmergencyExitSimulationObserver.h" #include <mpi/Communicator.h> #include "Grid3D.h" -#include "MPIIORestartCoProcessor.h" +#include "MPIIORestartSimulationObserver.h" #include "UbLogger.h" #include "UbScheduler.h" #include <basics/utilities/UbFileInputASCII.h> #include <basics/utilities/UbFileOutputASCII.h> -EmergencyExitCoProcessor::EmergencyExitCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, - SPtr<MPIIORestartCoProcessor> rp, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), rp(rp), comm(comm) +EmergencyExitSimulationObserver::EmergencyExitSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, + SPtr<MPIIORestartSimulationObserver> rp, std::shared_ptr<vf::mpi::Communicator> comm) + : SimulationObserver(grid, s), path(path), rp(rp), comm(comm) { this->path = path + "/exit"; metafile = this->path + "/stop.txt"; @@ -20,40 +20,40 @@ EmergencyExitCoProcessor::EmergencyExitCoProcessor(SPtr<Grid3D> grid, SPtr<UbSch comm->barrier(); } ////////////////////////////////////////////////////////////////////////// -EmergencyExitCoProcessor::~EmergencyExitCoProcessor() = default; +EmergencyExitSimulationObserver::~EmergencyExitSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -void EmergencyExitCoProcessor::process(real step) +void EmergencyExitSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "EmergencyExitCoProcessor::update:" << step); + UBLOG(logDEBUG3, "EmergencyExitSimulationObserver::update:" << step); } -void EmergencyExitCoProcessor::collectData(real step) +void EmergencyExitSimulationObserver::collectData(real step) { if (readMetafile()) { rp->process((int)step); if (comm->getProcessID() == comm->getRoot()) - UBLOG(logINFO, "EmergencyExitCoProcessor save step: " << step); + UBLOG(logINFO, "EmergencyExitSimulationObserver save step: " << step); comm->barrier(); exit(EXIT_SUCCESS); } } ////////////////////////////////////////////////////////////////////////// -void EmergencyExitCoProcessor::writeMetafile(int /*status*/) +void EmergencyExitSimulationObserver::writeMetafile(int /*status*/) { UbFileOutputASCII out(metafile); out.writeBool(false); } ////////////////////////////////////////////////////////////////////////// -bool EmergencyExitCoProcessor::readMetafile() +bool EmergencyExitSimulationObserver::readMetafile() { UbFileInputASCII in(metafile); return in.readBool(); } ////////////////////////////////////////////////////////////////////////// -void EmergencyExitCoProcessor::checkMetafile() +void EmergencyExitSimulationObserver::checkMetafile() { std::ifstream file(metafile.c_str()); if (!file.is_open()) { diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.h new file mode 100644 index 000000000..b7d8f2219 --- /dev/null +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.h @@ -0,0 +1,43 @@ +/* + * EmergencyExitSimulationObserver.h + * + * Created on: 05.10.2012 + * Author: K. Kucher + */ + +#ifndef EmergencyExitSimulationObserver_H +#define EmergencyExitSimulationObserver_H + +#include <PointerDefinitions.h> +#include <string> + +#include "SimulationObserver.h" + +class MPIIORestartSimulationObserver; +namespace vf::mpi {class Communicator;} +class Grid3D; +class UbScheduler; + +class EmergencyExitSimulationObserver : public SimulationObserver +{ +public: + EmergencyExitSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, + SPtr<MPIIORestartSimulationObserver> rp, std::shared_ptr<vf::mpi::Communicator> comm); + ~EmergencyExitSimulationObserver() override; + + void process(real step) override; + +protected: + void collectData(real step); + void writeMetafile(int status); + bool readMetafile(); + void checkMetafile(); + +private: + std::string path; + std::shared_ptr<vf::mpi::Communicator> comm; + SPtr<MPIIORestartSimulationObserver> rp; + std::string metafile; +}; + +#endif /* EmergencyExitSimulationObserver_H */ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/ForceCalculator.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/ForceCalculator.cpp similarity index 100% rename from src/cpu/VirtualFluidsCore/CoProcessors/ForceCalculator.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/ForceCalculator.cpp diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/ForceCalculator.h b/src/cpu/VirtualFluidsCore/SimulationObservers/ForceCalculator.h similarity index 100% rename from src/cpu/VirtualFluidsCore/CoProcessors/ForceCalculator.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/ForceCalculator.h diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.cpp similarity index 94% rename from src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.cpp index 64b9f353b..5b3eee03f 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.cpp @@ -1,6 +1,6 @@ #ifdef VF_CATALYST -#include "InSituCatalystCoProcessor.h" +#include "InSituCatalystSimulationObserver.h" #include <D3Q27ETBCSet.h> #include <LBMKernel.h> #include <string> @@ -15,10 +15,10 @@ using namespace std; -InSituCatalystCoProcessor::InSituCatalystCoProcessor() {} +InSituCatalystSimulationObserver::InSituCatalystSimulationObserver() {} ////////////////////////////////////////////////////////////////////////// -InSituCatalystCoProcessor::InSituCatalystCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, std::string script) - : CoProcessor(grid, s) +InSituCatalystSimulationObserver::InSituCatalystSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, std::string script) + : SimulationObserver(grid, s) { gridRank = vf::mpi::Communicator::getInstance()->getProcessID(); minInitLevel = this->grid->getCoarsestInitializedLevel(); @@ -40,17 +40,17 @@ InSituCatalystCoProcessor::InSituCatalystCoProcessor(SPtr<Grid3D> grid, SPtr<UbS buildVTKGrid(); } ////////////////////////////////////////////////////////////////////////// -InSituCatalystCoProcessor::~InSituCatalystCoProcessor() {} +InSituCatalystSimulationObserver::~InSituCatalystSimulationObserver() {} ////////////////////////////////////////////////////////////////////////// -void InSituCatalystCoProcessor::process(real step) +void InSituCatalystSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "InSituCatalystCoProcessor::update:" << step); + UBLOG(logDEBUG3, "InSituCatalystSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void InSituCatalystCoProcessor::collectData(real step) +void InSituCatalystSimulationObserver::collectData(real step) { unsigned int istep = static_cast<int>(step); @@ -86,10 +86,10 @@ void InSituCatalystCoProcessor::collectData(real step) Processor->CoProcess(dataDescription.GetPointer()); } - UBLOG(logINFO, "InSituCatalystCoProcessor step: " << istep); + UBLOG(logINFO, "InSituCatalystSimulationObserver step: " << istep); } ////////////////////////////////////////////////////////////////////////// -void InSituCatalystCoProcessor::addData(SPtr<Block3D> block) +void InSituCatalystSimulationObserver::addData(SPtr<Block3D> block) { UbTupleDouble3 org = grid->getBlockWorldCoordinates(block); UbTupleDouble3 blockLengths = grid->getBlockLengths(block); @@ -166,7 +166,7 @@ void InSituCatalystCoProcessor::addData(SPtr<Block3D> block) } } ////////////////////////////////////////////////////////////////////////// -void InSituCatalystCoProcessor::buildVTKGrid() +void InSituCatalystSimulationObserver::buildVTKGrid() { unstructuredGrid = vtkSmartPointer<vtkUnstructuredGrid>::New(); points = vtkPoints::New(); @@ -206,7 +206,7 @@ void InSituCatalystCoProcessor::buildVTKGrid() vx3Array.resize(numOfPoints); } ////////////////////////////////////////////////////////////////////////// -void InSituCatalystCoProcessor::addVTKGridData(SPtr<Block3D> block) +void InSituCatalystSimulationObserver::addVTKGridData(SPtr<Block3D> block) { UbTupleDouble3 org = grid->getBlockWorldCoordinates(block); UbTupleDouble3 blockLengths = grid->getBlockLengths(block); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.h similarity index 74% rename from src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.h index e1c9fb95c..705aeb927 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.h @@ -1,9 +1,9 @@ #ifdef VF_CATALYST -#ifndef InSituCatalystCoProcessor_h__ -#define InSituCatalystCoProcessor_h__ +#ifndef InSituCatalystSimulationObserver_h__ +#define InSituCatalystSimulationObserver_h__ -#include <CoProcessor.h> +#include <SimulationObserver.h> #include <Grid3D.h> #include <LBMUnitConverter.h> #include "lbm/constants/D3Q27.h" @@ -19,12 +19,12 @@ #include <vtkSmartPointer.h> #include <vtkUnstructuredGrid.h> -class InSituCatalystCoProcessor : public CoProcessor +class InSituCatalystSimulationObserver : public SimulationObserver { public: - InSituCatalystCoProcessor(); - InSituCatalystCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, std::string script); - virtual ~InSituCatalystCoProcessor(); + InSituCatalystSimulationObserver(); + InSituCatalystSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, std::string script); + virtual ~InSituCatalystSimulationObserver(); void process(real step); protected: @@ -52,6 +52,6 @@ private: real & /*vx2*/, real & /*vx3*/); CalcMacrosFct calcMacros; }; -#endif // InSituCatalystCoProcessor_h__ +#endif // InSituCatalystSimulationObserver_h__ #endif diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.cpp similarity index 93% rename from src/cpu/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.cpp index bf68f9d85..663bbc940 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.cpp @@ -1,6 +1,6 @@ #ifdef VF_VTK -#include "InSituVTKCoProcessor.h" +#include "InSituVTKSimulationObserver.h" #include <BCArray3D.h> #include <BCSet.h> #include <Block3D.h> @@ -24,11 +24,11 @@ using namespace std; -InSituVTKCoProcessor::InSituVTKCoProcessor() {} +InSituVTKSimulationObserver::InSituVTKSimulationObserver() {} ////////////////////////////////////////////////////////////////////////// -InSituVTKCoProcessor::InSituVTKCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &configFile, +InSituVTKSimulationObserver::InSituVTKSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &configFile, SPtr<LBMUnitConverter> conv) - : CoProcessor(grid, s), conv(conv) + : SimulationObserver(grid, s), conv(conv) { gridRank = vf::mpi::Communicator::getInstance()->getProcessID(); minInitLevel = this->grid->getCoarsestInitializedLevel(); @@ -55,17 +55,17 @@ InSituVTKCoProcessor::InSituVTKCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> } } ////////////////////////////////////////////////////////////////////////// -InSituVTKCoProcessor::~InSituVTKCoProcessor() { comm->CloseConnection(); } +InSituVTKSimulationObserver::~InSituVTKSimulationObserver() { comm->CloseConnection(); } ////////////////////////////////////////////////////////////////////////// -void InSituVTKCoProcessor::process(real step) +void InSituVTKSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "InSituVTKCoProcessor::update:" << step); + UBLOG(logDEBUG3, "InSituVTKSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void InSituVTKCoProcessor::collectData(real step) +void InSituVTKSimulationObserver::collectData(real step) { int istep = static_cast<int>(step); @@ -119,10 +119,10 @@ void InSituVTKCoProcessor::collectData(real step) // writer->SetDataModeToAscii(); // writer->Update(); - UBLOG(logINFO, "InSituVTKCoProcessor step: " << istep); + UBLOG(logINFO, "InSituVTKSimulationObserver step: " << istep); } ////////////////////////////////////////////////////////////////////////// -void InSituVTKCoProcessor::addData(SPtr<Block3D> block) +void InSituVTKSimulationObserver::addData(SPtr<Block3D> block) { UbTupleDouble3 org = grid->getBlockWorldCoordinates(block); UbTupleDouble3 blockLengths = grid->getBlockLengths(block); @@ -259,7 +259,7 @@ void InSituVTKCoProcessor::addData(SPtr<Block3D> block) } } ////////////////////////////////////////////////////////////////////////// -void InSituVTKCoProcessor::readConfigFile(const std::string &configFile) +void InSituVTKSimulationObserver::readConfigFile(const std::string &configFile) { ifstream ifs; ifs.open(configFile, ifstream::in); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.h similarity index 71% rename from src/cpu/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.h index 9456bf298..d42993002 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.h @@ -1,9 +1,9 @@ #ifdef VF_VTK -#ifndef InSituVTKCoProcessor_h__ -#define InSituVTKCoProcessor_h__ +#ifndef InSituVTKSimulationObserver_h__ +#define InSituVTKSimulationObserver_h__ -#include <CoProcessor.h> +#include <SimulationObserver.h> #include <Grid3D.h> #include <LBMUnitConverter.h> @@ -16,13 +16,13 @@ #include <vtkSocketController.h> #include <vtkUnstructuredGrid.h> -class InSituVTKCoProcessor : public CoProcessor +class InSituVTKSimulationObserver : public SimulationObserver { public: - InSituVTKCoProcessor(); - InSituVTKCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &configFile, + InSituVTKSimulationObserver(); + InSituVTKSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &configFile, SPtr<LBMUnitConverter> conv); - virtual ~InSituVTKCoProcessor(); + virtual ~InSituVTKSimulationObserver(); void process(real step); protected: @@ -48,6 +48,6 @@ private: std::string wIP; }; -#endif // InSituVTKCoProcessor_h__ +#endif // InSituVTKSimulationObserver_h__ #endif diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/IntegrateValuesHelper.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/IntegrateValuesHelper.cpp similarity index 100% rename from src/cpu/VirtualFluidsCore/CoProcessors/IntegrateValuesHelper.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/IntegrateValuesHelper.cpp diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/IntegrateValuesHelper.h b/src/cpu/VirtualFluidsCore/SimulationObservers/IntegrateValuesHelper.h similarity index 100% rename from src/cpu/VirtualFluidsCore/CoProcessors/IntegrateValuesHelper.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/IntegrateValuesHelper.h diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.cpp similarity index 90% rename from src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.cpp index 4d7b5e837..5000d9b03 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "LineTimeSeriesCoProcessor.h" +#include "LineTimeSeriesSimulationObserver.h" #include "BCSet.h" #include "WbWriterVtkXmlASCII.h" @@ -12,9 +12,9 @@ #include "LBMKernel.h" #include "UbScheduler.h" -LineTimeSeriesCoProcessor::LineTimeSeriesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, +LineTimeSeriesSimulationObserver::LineTimeSeriesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, SPtr<GbLine3D> line, int level, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), length(0), ix1(0), ix2(0), ix3(0), level(level), line(line) + : SimulationObserver(grid, s), path(path), length(0), ix1(0), ix2(0), ix3(0), level(level), line(line) { root = comm->isRoot(); fname = path; @@ -23,7 +23,7 @@ LineTimeSeriesCoProcessor::LineTimeSeriesCoProcessor(SPtr<Grid3D> grid, SPtr<UbS numOfProc = comm->getNumberOfProcesses(); gridRank = comm->getProcessID(); - real dx = CoProcessor::grid->getDeltaX(level); + real dx = SimulationObserver::grid->getDeltaX(level); SPtr<CoordinateTransformation3D> trafo = grid->getCoordinateTransformator(); real orgX1 = trafo->getX1CoordinateOffset(); @@ -61,16 +61,16 @@ LineTimeSeriesCoProcessor::LineTimeSeriesCoProcessor(SPtr<Grid3D> grid, SPtr<UbS ix3 = x3min % val<3>(blockNx) + 1; } ////////////////////////////////////////////////////////////////////////// -void LineTimeSeriesCoProcessor::process(real step) +void LineTimeSeriesSimulationObserver::process(real step) { if (scheduler->isDue(step)) { collectData(); } - UBLOG(logDEBUG3, "MacroscopicQuantitiesCoProcessor::update:" << step); + UBLOG(logDEBUG3, "MacroscopicQuantitiesSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void LineTimeSeriesCoProcessor::writeLine(const std::string &path) +void LineTimeSeriesSimulationObserver::writeLine(const std::string &path) { std::vector<UbTupleFloat3> nodes(2); std::vector<UbTupleInt2> lines(1); @@ -86,7 +86,7 @@ void LineTimeSeriesCoProcessor::writeLine(const std::string &path) writer->writeLines(path, nodes, lines); } ////////////////////////////////////////////////////////////////////////// -void LineTimeSeriesCoProcessor::collectData() +void LineTimeSeriesSimulationObserver::collectData() { real f[27]; real vx1, vx2, vx3, rho; @@ -104,7 +104,7 @@ void LineTimeSeriesCoProcessor::collectData() blockix3 = x / blocknx; } - SPtr<Block3D> block = CoProcessor::grid->getBlock(blockix1, blockix2, blockix3, level); + SPtr<Block3D> block = SimulationObserver::grid->getBlock(blockix1, blockix2, blockix3, level); if (block) { if (block->getRank() == gridRank) { SPtr<ILBMKernel> kernel = block->getKernel(); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.h similarity index 74% rename from src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.h index c510a9b46..d534ef7fe 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.h @@ -1,12 +1,12 @@ -#ifndef LineTimeSeriesCoProcessor_h__ -#define LineTimeSeriesCoProcessor_h__ +#ifndef LineTimeSeriesSimulationObserver_h__ +#define LineTimeSeriesSimulationObserver_h__ #include <PointerDefinitions.h> #include <string> #include <mpi.h> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "LBMSystem.h" namespace vf::mpi {class Communicator;} @@ -20,15 +20,15 @@ class GbLine3D; // //! \author Konstantin Kutscher -class LineTimeSeriesCoProcessor : public CoProcessor +class LineTimeSeriesSimulationObserver : public SimulationObserver { public: enum Direction { X1, X2, X3 }; public: - LineTimeSeriesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, SPtr<GbLine3D> line, + LineTimeSeriesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, SPtr<GbLine3D> line, int level, std::shared_ptr<vf::mpi::Communicator> comm); - ~LineTimeSeriesCoProcessor() override = default; + ~LineTimeSeriesSimulationObserver() override = default; void process(real step) override; void writeLine(const std::string &path); @@ -58,4 +58,4 @@ private: int gridRank; Direction dir; }; -#endif // LineTimeSeriesCoProcessor_h__ +#endif // LineTimeSeriesSimulationObserver_h__ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp similarity index 92% rename from src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp index 8213edcf3..4d2a44541 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "MPIIOMigrationBECoProcessor.h" +#include "MPIIOMigrationBESimulationObserver.h" #include "BCArray3D.h" #include "BCSet.h" #include "Block3D.h" @@ -25,8 +25,8 @@ using namespace MPIIODataStructures; #define MESSAGE_TAG 80 #define SEND_BLOCK_SIZE 100000 -MPIIOMigrationBECoProcessor::MPIIOMigrationBECoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<Grid3DVisitor> mV, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm) - : MPIIOCoProcessor(grid, s, path, comm), nue(-999.999), nuL(-999.999), nuG(-999.999), densityRatio(-999.999) +MPIIOMigrationBESimulationObserver::MPIIOMigrationBESimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<Grid3DVisitor> mV, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm) + : MPIIOSimulationObserver(grid, s, path, comm), nue(-999.999), nuL(-999.999), nuG(-999.999), densityRatio(-999.999) { memset(&boundCondParamStr, 0, sizeof(boundCondParamStr)); metisVisitor = mV; @@ -38,13 +38,13 @@ MPIIOMigrationBECoProcessor::MPIIOMigrationBECoProcessor(SPtr<Grid3D> grid, SPtr } ////////////////////////////////////////////////////////////////////////// -MPIIOMigrationBECoProcessor::~MPIIOMigrationBECoProcessor() { MPI_Type_free(&sendBlockIntType); } +MPIIOMigrationBESimulationObserver::~MPIIOMigrationBESimulationObserver() { MPI_Type_free(&sendBlockIntType); } -void MPIIOMigrationBECoProcessor::process(real step) +void MPIIOMigrationBESimulationObserver::process(real step) { if (scheduler->isDue(step)) { if (comm->isRoot()) - UBLOG(logINFO, "MPIIOMigrationBECoProcessor save step: " << step); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver save step: " << step); if (comm->isRoot()) UBLOG(logINFO, "Save check point - start"); clearAllFiles((int)step); @@ -60,13 +60,13 @@ void MPIIOMigrationBECoProcessor::process(real step) } } -void MPIIOMigrationBECoProcessor::clearAllFiles(int step) +void MPIIOMigrationBESimulationObserver::clearAllFiles(int step) { MPI_File file_handler; MPI_Info info = MPI_INFO_NULL; MPI_Offset new_size = 0; - MPIIOCoProcessor::clearAllFiles(step); + MPIIOSimulationObserver::clearAllFiles(step); UbSystem::makeDirectory(path + "/mpi_io_cp/mpi_io_cp_" + UbSystem::toString(step)); @@ -87,16 +87,16 @@ void MPIIOMigrationBECoProcessor::clearAllFiles(int step) MPI_File_close(&file_handler); } -void MPIIOMigrationBECoProcessor::writeBlocks(int step) +void MPIIOMigrationBESimulationObserver::writeBlocks(int step) { grid->deleteBlockIDs(); RenumberGridVisitor renumber(comm); grid->accept(renumber); - MPIIOCoProcessor::writeBlocks(step); + MPIIOSimulationObserver::writeBlocks(step); } -void MPIIOMigrationBECoProcessor::writeDataSet(int step) +void MPIIOMigrationBESimulationObserver::writeDataSet(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -121,7 +121,7 @@ void MPIIOMigrationBECoProcessor::writeDataSet(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::writeDataSet start collect data rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::writeDataSet start collect data rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -290,7 +290,7 @@ void MPIIOMigrationBECoProcessor::writeDataSet(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::writeDataSet start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::writeDataSet start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -362,7 +362,7 @@ void MPIIOMigrationBECoProcessor::writeDataSet(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::writeDataSet time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::writeDataSet time: " << finish - start << " s"); } MPI_File file_handler1; @@ -409,7 +409,7 @@ void MPIIOMigrationBECoProcessor::writeDataSet(int step) } -void MPIIOMigrationBECoProcessor::write4DArray(int step, Arrays arrayType, std::string fname) +void MPIIOMigrationBESimulationObserver::write4DArray(int step, Arrays arrayType, std::string fname) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -436,7 +436,7 @@ void MPIIOMigrationBECoProcessor::write4DArray(int step, Arrays arrayType, std:: if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::write4DArray start collect data rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::write4DArray start collect data rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -462,7 +462,7 @@ void MPIIOMigrationBECoProcessor::write4DArray(int step, Arrays arrayType, std:: ___Array = block->getKernel()->getDataSet()->getShearStressValues(); break; default: - UB_THROW(UbException(UB_EXARGS, "MPIIOMigrationBECoProcessor::write4DArray : 4D array type does not exist!")); + UB_THROW(UbException(UB_EXARGS, "MPIIOMigrationBESimulationObserver::write4DArray : 4D array type does not exist!")); break; } @@ -489,7 +489,7 @@ void MPIIOMigrationBECoProcessor::write4DArray(int step, Arrays arrayType, std:: if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::write4DArray start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::write4DArray start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -524,11 +524,11 @@ void MPIIOMigrationBECoProcessor::write4DArray(int step, Arrays arrayType, std:: if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::write4DArray time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::write4DArray time: " << finish - start << " s"); } } -void MPIIOMigrationBECoProcessor::write3DArray(int step, Arrays arrayType, std::string fname) +void MPIIOMigrationBESimulationObserver::write3DArray(int step, Arrays arrayType, std::string fname) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -555,7 +555,7 @@ void MPIIOMigrationBECoProcessor::write3DArray(int step, Arrays arrayType, std:: if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::write3DArray start collect data rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::write3DArray start collect data rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -579,7 +579,7 @@ void MPIIOMigrationBECoProcessor::write3DArray(int step, Arrays arrayType, std:: break; default: UB_THROW(UbException(UB_EXARGS, - "MPIIOMigrationBECoProcessor::write3DArray : 3D array type does not exist!")); + "MPIIOMigrationBESimulationObserver::write3DArray : 3D array type does not exist!")); break; } @@ -606,7 +606,7 @@ void MPIIOMigrationBECoProcessor::write3DArray(int step, Arrays arrayType, std:: if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::write3DArray start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::write3DArray start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -641,11 +641,11 @@ void MPIIOMigrationBECoProcessor::write3DArray(int step, Arrays arrayType, std:: if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::write3DArray time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::write3DArray time: " << finish - start << " s"); } } -void MPIIOMigrationBECoProcessor::writeBoundaryConds(int step) +void MPIIOMigrationBESimulationObserver::writeBoundaryConds(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -653,7 +653,7 @@ void MPIIOMigrationBECoProcessor::writeBoundaryConds(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::writeBoundaryConds start collect data rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::writeBoundaryConds start collect data rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -752,7 +752,7 @@ void MPIIOMigrationBECoProcessor::writeBoundaryConds(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::writeBoundaryConds start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::writeBoundaryConds start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -835,7 +835,7 @@ void MPIIOMigrationBECoProcessor::writeBoundaryConds(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::writeBoundaryConds time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::writeBoundaryConds time: " << finish - start << " s"); } delete[] bcAddArray; @@ -845,10 +845,10 @@ void MPIIOMigrationBECoProcessor::writeBoundaryConds(int step) } //------------------------------------------- READ ----------------------------------------------- -void MPIIOMigrationBECoProcessor::restart(int step) +void MPIIOMigrationBESimulationObserver::restart(int step) { if (comm->isRoot()) - UBLOG(logINFO, "MPIIOMigrationBECoProcessor restart step: " << step); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver restart step: " << step); if (comm->isRoot()) UBLOG(logINFO, "Load check point - start"); @@ -863,9 +863,9 @@ void MPIIOMigrationBECoProcessor::restart(int step) UBLOG(logINFO, "Load check point - end"); } -void MPIIOMigrationBECoProcessor::readBlocks(int step) { MPIIOCoProcessor::readBlocks(step); } +void MPIIOMigrationBESimulationObserver::readBlocks(int step) { MPIIOSimulationObserver::readBlocks(step); } -void MPIIOMigrationBECoProcessor::blocksExchange(int tagN, int ind1, int ind2, int doubleCountInBlock, std::vector<real> &pV, std::vector<real> *rawDataReceive) +void MPIIOMigrationBESimulationObserver::blocksExchange(int tagN, int ind1, int ind2, int doubleCountInBlock, std::vector<real> &pV, std::vector<real> *rawDataReceive) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -893,7 +893,7 @@ void MPIIOMigrationBECoProcessor::blocksExchange(int tagN, int ind1, int ind2, i { tempBlock = grid->getBlock(indexB + int(ind)); if (!tempBlock) - throw UbException(UB_EXARGS, "MPIIOMigrationBECoProcessor::blocksExchange -- null block pointer!!!"); + throw UbException(UB_EXARGS, "MPIIOMigrationBESimulationObserver::blocksExchange -- null block pointer!!!"); tempRank = tempBlock->getRank(); @@ -998,7 +998,7 @@ void MPIIOMigrationBECoProcessor::blocksExchange(int tagN, int ind1, int ind2, i delete[] requests; } -void MPIIOMigrationBECoProcessor::readDataSet(int step) +void MPIIOMigrationBESimulationObserver::readDataSet(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -1019,7 +1019,7 @@ void MPIIOMigrationBECoProcessor::readDataSet(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readDataSet start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readDataSet start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1109,8 +1109,8 @@ void MPIIOMigrationBECoProcessor::readDataSet(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readDataSet time: " << finish - start << " s"); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readDataSet start of exchange of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readDataSet time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readDataSet start of exchange of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1139,8 +1139,8 @@ void MPIIOMigrationBECoProcessor::readDataSet(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readDataSet time: " << finish - start << " s"); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readDataSet start of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readDataSet time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readDataSet start of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1252,7 +1252,7 @@ void MPIIOMigrationBECoProcessor::readDataSet(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readDataSet end of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readDataSet end of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1306,7 +1306,7 @@ void MPIIOMigrationBECoProcessor::readDataSet(int step) delete[] rawDataReceiveH2; } -void MPIIOMigrationBECoProcessor::readArray(int step, Arrays arrType, std::string fname) +void MPIIOMigrationBESimulationObserver::readArray(int step, Arrays arrType, std::string fname) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -1314,7 +1314,7 @@ void MPIIOMigrationBECoProcessor::readArray(int step, Arrays arrType, std::strin if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readArray start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readArray start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1362,8 +1362,8 @@ void MPIIOMigrationBECoProcessor::readArray(int step, Arrays arrType, std::strin if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readArray time: " << finish - start << " s"); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readArray start of exchange of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readArray time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readArray start of exchange of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1376,9 +1376,9 @@ void MPIIOMigrationBECoProcessor::readArray(int step, Arrays arrType, std::strin if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readArray end of exchange of data, rank = " << rank); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readArray time: " << finish - start << " s"); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readArray start of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readArray end of exchange of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readArray time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readArray start of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1452,7 +1452,7 @@ void MPIIOMigrationBECoProcessor::readArray(int step, Arrays arrType, std::strin block->getKernel()->getDataSet()->setPressureField(___3DArray); break; default: - UB_THROW(UbException(UB_EXARGS, "MPIIOMigrationBECoProcessor::readArray : array type does not exist!")); + UB_THROW(UbException(UB_EXARGS, "MPIIOMigrationBESimulationObserver::readArray : array type does not exist!")); break; } } @@ -1462,12 +1462,12 @@ void MPIIOMigrationBECoProcessor::readArray(int step, Arrays arrType, std::strin if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readArray end of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readArray end of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } } -void MPIIOMigrationBECoProcessor::readBoundaryConds(int step) +void MPIIOMigrationBESimulationObserver::readBoundaryConds(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -1475,7 +1475,7 @@ void MPIIOMigrationBECoProcessor::readBoundaryConds(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readBoundaryConds start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readBoundaryConds start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1521,8 +1521,8 @@ void MPIIOMigrationBECoProcessor::readBoundaryConds(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readBoundaryConds time: " << finish - start << " s"); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readBoundaryConds start of exchange of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readBoundaryConds time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readBoundaryConds start of exchange of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1601,9 +1601,9 @@ void MPIIOMigrationBECoProcessor::readBoundaryConds(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readBoundaryConds end of exchange of data, rank = " << rank); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readBoundaryConds time: " << finish - start << " s"); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readBoundaryConds start of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readBoundaryConds end of exchange of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readBoundaryConds time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readBoundaryConds start of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1714,20 +1714,20 @@ void MPIIOMigrationBECoProcessor::readBoundaryConds(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readBoundaryConds end of restore of data, rank = " << rank); - UBLOG(logINFO, "MPIIOMigrationBECoProcessor::readBoundaryConds time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readBoundaryConds end of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationBESimulationObserver::readBoundaryConds time: " << finish - start << " s"); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } } ////////////////////////////////////////////////////////////////////////// -void MPIIOMigrationBECoProcessor::setLBMKernel(SPtr<LBMKernel> kernel) { this->lbmKernel = kernel; } +void MPIIOMigrationBESimulationObserver::setLBMKernel(SPtr<LBMKernel> kernel) { this->lbmKernel = kernel; } ////////////////////////////////////////////////////////////////////////// -void MPIIOMigrationBECoProcessor::setBCSet(SPtr<BCSet> bcSet) { this->bcSet = bcSet; } +void MPIIOMigrationBESimulationObserver::setBCSet(SPtr<BCSet> bcSet) { this->bcSet = bcSet; } ////////////////////////////////////////////////////////////////////////// -void MPIIOMigrationBECoProcessor::setNu(real nu) { this->nue = nu; } +void MPIIOMigrationBESimulationObserver::setNu(real nu) { this->nue = nu; } -void MPIIOMigrationBECoProcessor::setNuLG(real cfL, real cfG) { this->nuL = cfL; this->nuG = cfG; } +void MPIIOMigrationBESimulationObserver::setNuLG(real cfL, real cfG) { this->nuL = cfL; this->nuG = cfG; } -void MPIIOMigrationBECoProcessor::setDensityRatio(real dr) { this->densityRatio = dr; } +void MPIIOMigrationBESimulationObserver::setDensityRatio(real dr) { this->densityRatio = dr; } diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.h similarity index 88% rename from src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.h index 016c32845..31c4de3d0 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.h @@ -1,11 +1,11 @@ -#ifndef _MPIIOMigrationBECoProcessor_H_ -#define _MPIIOMigrationBECoProcessor_H_ +#ifndef _MPIIOMigrationBESimulationObserver_H_ +#define _MPIIOMigrationBESimulationObserver_H_ #include <mpi.h> #include <string> #include <vector> -#include "MPIIOCoProcessor.h" +#include "MPIIOSimulationObserver.h" #include "MPIIODataStructures.h" class Grid3D; @@ -15,9 +15,9 @@ class BCSet; class LBMKernel; class Grid3DVisitor; -//! \class MPIWriteBlocksBECoProcessor +//! \class MPIWriteBlocksBESimulationObserver //! \brief Writes the grid each timestep into the files and reads the grip from the files before regenerating -class MPIIOMigrationBECoProcessor : public MPIIOCoProcessor +class MPIIOMigrationBESimulationObserver : public MPIIOSimulationObserver { enum Arrays { AverageDensity = 1, @@ -32,9 +32,9 @@ class MPIIOMigrationBECoProcessor : public MPIIOCoProcessor }; public: - MPIIOMigrationBECoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<Grid3DVisitor> mV, const std::string &path, + MPIIOMigrationBESimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<Grid3DVisitor> mV, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm); - ~MPIIOMigrationBECoProcessor() override; + ~MPIIOMigrationBESimulationObserver() override; //! Each timestep writes the grid into the files void process(real step) override; //! Reads the grid from the files before grid reconstruction diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.cpp similarity index 93% rename from src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.cpp index bf1d89a78..0cd149101 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "MPIIOMigrationCoProcessor.h" +#include "MPIIOMigrationSimulationObserver.h" #include "BCArray3D.h" #include "BCSet.h" #include "Block3D.h" @@ -22,8 +22,8 @@ using namespace MPIIODataStructures; -MPIIOMigrationCoProcessor::MPIIOMigrationCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<Grid3DVisitor> mV, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm) - : MPIIOCoProcessor(grid, s, path, comm) +MPIIOMigrationSimulationObserver::MPIIOMigrationSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<Grid3DVisitor> mV, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm) + : MPIIOSimulationObserver(grid, s, path, comm) { memset(&boundCondParamStr, 0, sizeof(boundCondParamStr)); metisVisitor = mV; @@ -60,7 +60,7 @@ MPIIOMigrationCoProcessor::MPIIOMigrationCoProcessor(SPtr<Grid3D> grid, SPtr<UbS MPI_Type_commit(&boundCondTypeAdd); } ////////////////////////////////////////////////////////////////////////// -MPIIOMigrationCoProcessor::~MPIIOMigrationCoProcessor() +MPIIOMigrationSimulationObserver::~MPIIOMigrationSimulationObserver() { MPI_Type_free(&dataSetType); MPI_Type_free(&dataSetSmallType); @@ -69,12 +69,12 @@ MPIIOMigrationCoProcessor::~MPIIOMigrationCoProcessor() } ////////////////////////////////////////////////////////////////////////// -void MPIIOMigrationCoProcessor::process(real step) +void MPIIOMigrationSimulationObserver::process(real step) { if (scheduler->isDue(step)) { if (comm->isRoot()) - UBLOG(logINFO, "MPIIOMigrationCoProcessor save step: " << step); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver save step: " << step); if (comm->isRoot()) UBLOG(logINFO, "Save check point - start"); /*if (comm->isRoot())*/ clearAllFiles((int)step); @@ -90,13 +90,13 @@ void MPIIOMigrationCoProcessor::process(real step) } } -void MPIIOMigrationCoProcessor::clearAllFiles(int step) +void MPIIOMigrationSimulationObserver::clearAllFiles(int step) { MPI_File file_handler; MPI_Info info = MPI_INFO_NULL; MPI_Offset new_size = 0; - MPIIOCoProcessor::clearAllFiles(step); + MPIIOSimulationObserver::clearAllFiles(step); UbSystem::makeDirectory(path + "/mpi_io_cp/mpi_io_cp_" + UbSystem::toString(step)); @@ -108,13 +108,13 @@ void MPIIOMigrationCoProcessor::clearAllFiles(int step) MPI_File_close(&file_handler); } -void MPIIOMigrationCoProcessor::writeBlocks(int step) +void MPIIOMigrationSimulationObserver::writeBlocks(int step) { grid->renumberBlockIDs(); - MPIIOCoProcessor::writeBlocks(step); + MPIIOSimulationObserver::writeBlocks(step); } -void MPIIOMigrationCoProcessor::writeDataSet(int step) +void MPIIOMigrationSimulationObserver::writeDataSet(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -139,7 +139,7 @@ void MPIIOMigrationCoProcessor::writeDataSet(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::writeDataSet start collect data rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::writeDataSet start collect data rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -324,7 +324,7 @@ void MPIIOMigrationCoProcessor::writeDataSet(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::writeDataSet start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::writeDataSet start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -410,7 +410,7 @@ void MPIIOMigrationCoProcessor::writeDataSet(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationCoProcessor::writeDataSet time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::writeDataSet time: " << finish - start << " s"); } delete[] dataSetArray; @@ -453,7 +453,7 @@ void MPIIOMigrationCoProcessor::writeDataSet(int step) } -void MPIIOMigrationCoProcessor::write4DArray(int step, Arrays arrayType, std::string fname) +void MPIIOMigrationSimulationObserver::write4DArray(int step, Arrays arrayType, std::string fname) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -476,7 +476,7 @@ void MPIIOMigrationCoProcessor::write4DArray(int step, Arrays arrayType, std::st if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::write4DArray start collect data rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::write4DArray start collect data rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -509,7 +509,7 @@ void MPIIOMigrationCoProcessor::write4DArray(int step, Arrays arrayType, std::st ___Array = block->getKernel()->getDataSet()->getShearStressValues(); break; default: - UB_THROW(UbException(UB_EXARGS, "MPIIOMigrationCoProcessor::write4DArray : 4D array type does not exist!")); + UB_THROW(UbException(UB_EXARGS, "MPIIOMigrationSimulationObserver::write4DArray : 4D array type does not exist!")); break; } @@ -538,7 +538,7 @@ void MPIIOMigrationCoProcessor::write4DArray(int step, Arrays arrayType, std::st if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::write4DArray start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::write4DArray start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -577,13 +577,13 @@ void MPIIOMigrationCoProcessor::write4DArray(int step, Arrays arrayType, std::st if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationCoProcessor::write4DArray time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::write4DArray time: " << finish - start << " s"); } delete[] dataSetSmallArray; } -void MPIIOMigrationCoProcessor::write3DArray(int step, Arrays arrayType, std::string fname) +void MPIIOMigrationSimulationObserver::write3DArray(int step, Arrays arrayType, std::string fname) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -606,7 +606,7 @@ void MPIIOMigrationCoProcessor::write3DArray(int step, Arrays arrayType, std::st if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::write3DArray start collect data to file = " << fname); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::write3DArray start collect data to file = " << fname); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -636,7 +636,7 @@ void MPIIOMigrationCoProcessor::write3DArray(int step, Arrays arrayType, std::st ___Array = block->getKernel()->getDataSet()->getPressureField(); break; default: - UB_THROW(UbException(UB_EXARGS, "MPIIOMigrationCoProcessor::write3DArray : 3D array type does not exist!")); + UB_THROW(UbException(UB_EXARGS, "MPIIOMigrationSimulationObserver::write3DArray : 3D array type does not exist!")); break; } @@ -665,7 +665,7 @@ void MPIIOMigrationCoProcessor::write3DArray(int step, Arrays arrayType, std::st if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::write3DArray start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::write3DArray start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -710,13 +710,13 @@ void MPIIOMigrationCoProcessor::write3DArray(int step, Arrays arrayType, std::st if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationCoProcessor::write3DArray time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::write3DArray time: " << finish - start << " s"); } delete[] dataSetSmallArray; } -void MPIIOMigrationCoProcessor::writeBoundaryConds(int step) +void MPIIOMigrationSimulationObserver::writeBoundaryConds(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -724,7 +724,7 @@ void MPIIOMigrationCoProcessor::writeBoundaryConds(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::writeBoundaryConds start collect data rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::writeBoundaryConds start collect data rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -824,7 +824,7 @@ void MPIIOMigrationCoProcessor::writeBoundaryConds(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::writeBoundaryConds start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::writeBoundaryConds start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: "<< Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -897,7 +897,7 @@ void MPIIOMigrationCoProcessor::writeBoundaryConds(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationCoProcessor::writeBoundaryConds time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::writeBoundaryConds time: " << finish - start << " s"); } delete[] bcAddArray; @@ -908,10 +908,10 @@ void MPIIOMigrationCoProcessor::writeBoundaryConds(int step) } //------------------------------------------- READ ----------------------------------------------- -void MPIIOMigrationCoProcessor::restart(int step) +void MPIIOMigrationSimulationObserver::restart(int step) { if (comm->isRoot()) - UBLOG(logINFO, "MPIIOMigrationCoProcessor restart step: " << step); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver restart step: " << step); if (comm->isRoot()) UBLOG(logINFO, "Load check point - start"); @@ -928,9 +928,9 @@ void MPIIOMigrationCoProcessor::restart(int step) UBLOG(logINFO, "Load check point - end"); } -void MPIIOMigrationCoProcessor::readBlocks(int step) { MPIIOCoProcessor::readBlocks(step); } +void MPIIOMigrationSimulationObserver::readBlocks(int step) { MPIIOSimulationObserver::readBlocks(step); } -void MPIIOMigrationCoProcessor::readDataSet(int step) +void MPIIOMigrationSimulationObserver::readDataSet(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -938,7 +938,7 @@ void MPIIOMigrationCoProcessor::readDataSet(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::readDataSet start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::readDataSet start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1063,8 +1063,8 @@ void MPIIOMigrationCoProcessor::readDataSet(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationCoProcessor::readDataSet time: " << finish - start << " s"); - UBLOG(logINFO, "MPIIOMigrationCoProcessor::readDataSet start of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::readDataSet time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::readDataSet start of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1170,7 +1170,7 @@ void MPIIOMigrationCoProcessor::readDataSet(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::readDataSet end of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::readDataSet end of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1216,7 +1216,7 @@ void MPIIOMigrationCoProcessor::readDataSet(int step) } -void MPIIOMigrationCoProcessor::readArray(int step, Arrays arrType, std::string fname) +void MPIIOMigrationSimulationObserver::readArray(int step, Arrays arrType, std::string fname) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -1224,7 +1224,7 @@ void MPIIOMigrationCoProcessor::readArray(int step, Arrays arrType, std::string if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::readArray start fname = " << fname); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::readArray start fname = " << fname); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1285,8 +1285,8 @@ void MPIIOMigrationCoProcessor::readArray(int step, Arrays arrType, std::string if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationCoProcessor::readArray readArray: " << finish - start << " s"); - UBLOG(logINFO, "MPIIOMigrationCoProcessor::readArray start of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::readArray readArray: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::readArray start of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1353,21 +1353,21 @@ void MPIIOMigrationCoProcessor::readArray(int step, Arrays arrType, std::string block->getKernel()->getDataSet()->setPressureField(___3DArray); break; default: - UB_THROW(UbException(UB_EXARGS, "MPIIOMigrationCoProcessor::readArray : array type does not exist!")); + UB_THROW(UbException(UB_EXARGS, "MPIIOMigrationSimulationObserver::readArray : array type does not exist!")); break; } } if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::readArray end of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::readArray end of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } delete[] dataSetSmallArray; } -void MPIIOMigrationCoProcessor::readBoundaryConds(int step) +void MPIIOMigrationSimulationObserver::readBoundaryConds(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -1375,7 +1375,7 @@ void MPIIOMigrationCoProcessor::readBoundaryConds(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::readBoundaryConds start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::readBoundaryConds start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1416,8 +1416,8 @@ void MPIIOMigrationCoProcessor::readBoundaryConds(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOMigrationCoProcessor::readBoundaryConds time: " << finish - start << " s"); - UBLOG(logINFO, "MPIIOMigrationCoProcessor::readBoundaryConds start of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::readBoundaryConds time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::readBoundaryConds start of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1519,12 +1519,12 @@ void MPIIOMigrationCoProcessor::readBoundaryConds(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOMigrationCoProcessor::readBoundaryConds end of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOMigrationSimulationObserver::readBoundaryConds end of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } } ////////////////////////////////////////////////////////////////////////// -void MPIIOMigrationCoProcessor::setLBMKernel(SPtr<LBMKernel> kernel) { this->lbmKernel = kernel; } +void MPIIOMigrationSimulationObserver::setLBMKernel(SPtr<LBMKernel> kernel) { this->lbmKernel = kernel; } ////////////////////////////////////////////////////////////////////////// -void MPIIOMigrationCoProcessor::setBCSet(SPtr<BCSet> bcSet) { this->bcSet = bcSet; } +void MPIIOMigrationSimulationObserver::setBCSet(SPtr<BCSet> bcSet) { this->bcSet = bcSet; } diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.h similarity index 85% rename from src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.h index cfb5a204c..c9d2ac3a3 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.h @@ -1,10 +1,10 @@ -#ifndef _MPIIOMigrationCoProcessor_H_ -#define _MPIIOMigrationCoProcessor_H_ +#ifndef _MPIIOMigrationSimulationObserver_H_ +#define _MPIIOMigrationSimulationObserver_H_ #include <mpi.h> #include <string> -#include "MPIIOCoProcessor.h" +#include "MPIIOSimulationObserver.h" #include "MPIIODataStructures.h" class Grid3D; @@ -14,9 +14,9 @@ class BCSet; class LBMKernel; class Grid3DVisitor; -//! \class MPIWriteBlocksCoProcessor +//! \class MPIWriteBlocksSimulationObserver //! \brief Writes the grid each timestep into the files and reads the grip from the files before regenerating -class MPIIOMigrationCoProcessor : public MPIIOCoProcessor +class MPIIOMigrationSimulationObserver : public MPIIOSimulationObserver { public: enum Arrays { @@ -31,8 +31,8 @@ public: PressureField = 9 }; - MPIIOMigrationCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<Grid3DVisitor> mV, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm); - ~MPIIOMigrationCoProcessor() override; + MPIIOMigrationSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<Grid3DVisitor> mV, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm); + ~MPIIOMigrationSimulationObserver() override; //! Each timestep writes the grid into the files void process(real step) override; //! Reads the grid from the files before grid reconstruction diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.cpp similarity index 94% rename from src/cpu/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.cpp index 296e2c601..dd987625e 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "MPIIORestartCoProcessor.h" +#include "MPIIORestartSimulationObserver.h" #include "BCArray3D.h" #include "BCSet.h" #include "Block3D.h" @@ -25,8 +25,8 @@ using namespace MPIIODataStructures; -MPIIORestartCoProcessor::MPIIORestartCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm) - : MPIIOCoProcessor(grid, s, path, comm) +MPIIORestartSimulationObserver::MPIIORestartSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm) + : MPIIOSimulationObserver(grid, s, path, comm) { memset(&boundCondParamStr, 0, sizeof(boundCondParamStr)); @@ -67,7 +67,7 @@ MPIIORestartCoProcessor::MPIIORestartCoProcessor(SPtr<Grid3D> grid, SPtr<UbSched MPI_Type_commit(&boundCondTypeAdd); } ////////////////////////////////////////////////////////////////////////// -MPIIORestartCoProcessor::~MPIIORestartCoProcessor() +MPIIORestartSimulationObserver::~MPIIORestartSimulationObserver() { MPI_Type_free(&dataSetType); MPI_Type_free(&dataSetSmallType); @@ -77,12 +77,12 @@ MPIIORestartCoProcessor::~MPIIORestartCoProcessor() } ////////////////////////////////////////////////////////////////////////// -void MPIIORestartCoProcessor::process(real step) +void MPIIORestartSimulationObserver::process(real step) { if (scheduler->isDue(step)) { if (comm->isRoot()) - UBLOG(logINFO, "MPIIORestartCoProcessor save step: " << step); + UBLOG(logINFO, "MPIIORestartSimulationObserver save step: " << step); if (comm->isRoot()) UBLOG(logINFO, "Save check point - start"); /*if (comm->isRoot())*/ clearAllFiles((int)step); @@ -98,7 +98,7 @@ void MPIIORestartCoProcessor::process(real step) } } ////////////////////////////////////////////////////////////////////////// -void MPIIORestartCoProcessor::clearAllFiles(int step) +void MPIIORestartSimulationObserver::clearAllFiles(int step) { MPI_File file_handler; MPI_Info info = MPI_INFO_NULL; @@ -106,7 +106,7 @@ void MPIIORestartCoProcessor::clearAllFiles(int step) UbSystem::makeDirectory(path + "/mpi_io_cp/mpi_io_cp_" + UbSystem::toString(step)); - MPIIOCoProcessor::clearAllFiles(step); + MPIIOSimulationObserver::clearAllFiles(step); std::string filename10 = path + "/mpi_io_cp/mpi_io_cp_" + UbSystem::toString(step) + "/cpBC.bin"; int rc10 = @@ -117,9 +117,9 @@ void MPIIORestartCoProcessor::clearAllFiles(int step) MPI_File_close(&file_handler); } ////////////////////////////////////////////////////////////////////////// -void MPIIORestartCoProcessor::writeBlocks(int step) { MPIIOCoProcessor::writeBlocks(step); } +void MPIIORestartSimulationObserver::writeBlocks(int step) { MPIIOSimulationObserver::writeBlocks(step); } -void MPIIORestartCoProcessor::writeDataSet(int step) +void MPIIORestartSimulationObserver::writeDataSet(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -144,7 +144,7 @@ void MPIIORestartCoProcessor::writeDataSet(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::writeDataSet start collect data rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::writeDataSet start collect data rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -331,7 +331,7 @@ void MPIIORestartCoProcessor::writeDataSet(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::writeDataSet start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::writeDataSet start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -433,7 +433,7 @@ void MPIIORestartCoProcessor::writeDataSet(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIORestartCoProcessor::writeDataSet time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIORestartSimulationObserver::writeDataSet time: " << finish - start << " s"); } MPI_File file_handler1; @@ -474,7 +474,7 @@ void MPIIORestartCoProcessor::writeDataSet(int step) } -void MPIIORestartCoProcessor::write4DArray(int step, Arrays arrayType, std::string fname) +void MPIIORestartSimulationObserver::write4DArray(int step, Arrays arrayType, std::string fname) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -497,7 +497,7 @@ void MPIIORestartCoProcessor::write4DArray(int step, Arrays arrayType, std::stri if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::writeAverageDensityArray start collect data to file = " << fname); + UBLOG(logINFO, "MPIIORestartSimulationObserver::writeAverageDensityArray start collect data to file = " << fname); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -533,7 +533,7 @@ void MPIIORestartCoProcessor::write4DArray(int step, Arrays arrayType, std::stri ___Array = block->getKernel()->getDataSet()->getShearStressValues(); break; default: - UB_THROW(UbException(UB_EXARGS, "MPIIORestartCoProcessor::write4DArray : 4D array type does not exist!")); + UB_THROW(UbException(UB_EXARGS, "MPIIORestartSimulationObserver::write4DArray : 4D array type does not exist!")); break; } @@ -562,7 +562,7 @@ void MPIIORestartCoProcessor::write4DArray(int step, Arrays arrayType, std::stri if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::write4DArray start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::write4DArray start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -625,13 +625,13 @@ void MPIIORestartCoProcessor::write4DArray(int step, Arrays arrayType, std::stri if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIORestartCoProcessor::write4DArray time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIORestartSimulationObserver::write4DArray time: " << finish - start << " s"); } delete[] dataSetSmallArray; } -void MPIIORestartCoProcessor::write3DArray(int step, Arrays arrayType, std::string fname) +void MPIIORestartSimulationObserver::write3DArray(int step, Arrays arrayType, std::string fname) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -654,7 +654,7 @@ void MPIIORestartCoProcessor::write3DArray(int step, Arrays arrayType, std::stri if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::write3DArray start collect data to file = " << fname); + UBLOG(logINFO, "MPIIORestartSimulationObserver::write3DArray start collect data to file = " << fname); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -687,7 +687,7 @@ void MPIIORestartCoProcessor::write3DArray(int step, Arrays arrayType, std::stri ___Array = block->getKernel()->getDataSet()->getPressureField(); break; default: - UB_THROW(UbException(UB_EXARGS, "MPIIORestartCoProcessor::write3DArray : 3D array type does not exist!")); + UB_THROW(UbException(UB_EXARGS, "MPIIORestartSimulationObserver::write3DArray : 3D array type does not exist!")); break; } @@ -716,7 +716,7 @@ void MPIIORestartCoProcessor::write3DArray(int step, Arrays arrayType, std::stri if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::write3DArray start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::write3DArray start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -782,13 +782,13 @@ void MPIIORestartCoProcessor::write3DArray(int step, Arrays arrayType, std::stri if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIORestartCoProcessor ::write3DArray time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIORestartSimulationObserver ::write3DArray time: " << finish - start << " s"); } delete[] dataSetSmallArray; } -void MPIIORestartCoProcessor::writeBoundaryConds(int step) +void MPIIORestartSimulationObserver::writeBoundaryConds(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -796,7 +796,7 @@ void MPIIORestartCoProcessor::writeBoundaryConds(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::writeBoundaryConds start collect data rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::writeBoundaryConds start collect data rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -929,7 +929,7 @@ void MPIIORestartCoProcessor::writeBoundaryConds(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::writeBoundaryConds start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::writeBoundaryConds start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -986,17 +986,17 @@ void MPIIORestartCoProcessor::writeBoundaryConds(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIORestartCoProcessor::writeBoundaryConds time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIORestartSimulationObserver::writeBoundaryConds time: " << finish - start << " s"); } delete[] bcAddArray; } //------------------------------------------- READ ----------------------------------------------- -void MPIIORestartCoProcessor::restart(int step) +void MPIIORestartSimulationObserver::restart(int step) { if (comm->isRoot()) - UBLOG(logINFO, "MPIIORestartCoProcessor restart step: " << step); + UBLOG(logINFO, "MPIIORestartSimulationObserver restart step: " << step); if (comm->isRoot()) UBLOG(logINFO, "Load check point - start"); @@ -1010,9 +1010,9 @@ void MPIIORestartCoProcessor::restart(int step) UBLOG(logINFO, "Load check point - end"); } -void MPIIORestartCoProcessor::readBlocks(int step) { MPIIOCoProcessor::readBlocks(step); } +void MPIIORestartSimulationObserver::readBlocks(int step) { MPIIOSimulationObserver::readBlocks(step); } -void MPIIORestartCoProcessor::readDataSet(int step) +void MPIIORestartSimulationObserver::readDataSet(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -1020,7 +1020,7 @@ void MPIIORestartCoProcessor::readDataSet(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::readDataSet start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::readDataSet start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1120,8 +1120,8 @@ void MPIIORestartCoProcessor::readDataSet(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIORestartCoProcessor::readDataSet time: " << finish - start << " s"); - UBLOG(logINFO, "MPIIORestartCoProcessor::readDataSet start of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::readDataSet time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIORestartSimulationObserver::readDataSet start of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1224,7 +1224,7 @@ void MPIIORestartCoProcessor::readDataSet(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::readDataSet end of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::readDataSet end of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1270,7 +1270,7 @@ void MPIIORestartCoProcessor::readDataSet(int step) } -void MPIIORestartCoProcessor::readArray(int step, Arrays arrType, std::string fname) +void MPIIORestartSimulationObserver::readArray(int step, Arrays arrType, std::string fname) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -1278,7 +1278,7 @@ void MPIIORestartCoProcessor::readArray(int step, Arrays arrType, std::string fn if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::readArray start fname = " << fname); + UBLOG(logINFO, "MPIIORestartSimulationObserver::readArray start fname = " << fname); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1341,8 +1341,8 @@ void MPIIORestartCoProcessor::readArray(int step, Arrays arrType, std::string fn if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIORestartCoProcessor::readArray time: " << finish - start << " s"); - UBLOG(logINFO, "MPIIORestartCoProcessor::readArray start of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::readArray time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIORestartSimulationObserver::readArray start of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1410,21 +1410,21 @@ void MPIIORestartCoProcessor::readArray(int step, Arrays arrType, std::string fn block->getKernel()->getDataSet()->setPressureField(___3DArray); break; default: - UB_THROW(UbException(UB_EXARGS, "MPIIORestartCoProcessor::readArray : array type does not exist!")); + UB_THROW(UbException(UB_EXARGS, "MPIIORestartSimulationObserver::readArray : array type does not exist!")); break; } } if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::readArray end of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::readArray end of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } delete[] dataSetSmallArray; } -void MPIIORestartCoProcessor::readBoundaryConds(int step) +void MPIIORestartSimulationObserver::readBoundaryConds(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -1432,7 +1432,7 @@ void MPIIORestartCoProcessor::readBoundaryConds(int step) if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::readBoundaryConds start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::readBoundaryConds start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1506,8 +1506,8 @@ void MPIIORestartCoProcessor::readBoundaryConds(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIORestartCoProcessor::readBoundaryConds time: " << finish - start << " s"); - UBLOG(logINFO, "MPIIORestartCoProcessor::readBoundaryConds start of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::readBoundaryConds time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIORestartSimulationObserver::readBoundaryConds start of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -1579,11 +1579,11 @@ void MPIIORestartCoProcessor::readBoundaryConds(int step) delete[] intArray2; if (comm->isRoot()) { - UBLOG(logINFO, "MPIIORestartCoProcessor::readBoundaryConds end of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIORestartSimulationObserver::readBoundaryConds end of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } } ////////////////////////////////////////////////////////////////////////// -void MPIIORestartCoProcessor::setLBMKernel(SPtr<LBMKernel> kernel) { this->lbmKernel = kernel; } +void MPIIORestartSimulationObserver::setLBMKernel(SPtr<LBMKernel> kernel) { this->lbmKernel = kernel; } ////////////////////////////////////////////////////////////////////////// -void MPIIORestartCoProcessor::setBCSet(SPtr<BCSet> BCSet) { this->bcSet = BCSet; } +void MPIIORestartSimulationObserver::setBCSet(SPtr<BCSet> BCSet) { this->bcSet = BCSet; } diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.h similarity index 87% rename from src/cpu/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.h index db98bca4f..a76b69306 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.h @@ -1,12 +1,12 @@ -#ifndef _MPIIORestartCoProcessor_H_ -#define _MPIIORestartCoProcessor_H_ +#ifndef _MPIIORestartSimulationObserver_H_ +#define _MPIIORestartSimulationObserver_H_ #include <mpi.h> //#include <PointerDefinitions.h> #include <string> #include <vector> -#include "MPIIOCoProcessor.h" +#include "MPIIOSimulationObserver.h" #include "MPIIODataStructures.h" class Grid3D; @@ -15,9 +15,9 @@ namespace vf::mpi {class Communicator;} class BCSet; class LBMKernel; -//! \class MPIIORestartCoProcessor +//! \class MPIIORestartSimulationObserver //! \brief Writes the grid each timestep into the files and reads the grip from the files before regenerating -class MPIIORestartCoProcessor : public MPIIOCoProcessor +class MPIIORestartSimulationObserver : public MPIIOSimulationObserver { public: enum Arrays { @@ -32,8 +32,8 @@ public: PressureField = 9 }; - MPIIORestartCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm); - ~MPIIORestartCoProcessor() override; + MPIIORestartSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm); + ~MPIIORestartSimulationObserver() override; //! Each timestep writes the grid into the files void process(real step) override; //! Reads the grid from the files before grid reconstruction diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOSimulationObserver.cpp similarity index 95% rename from src/cpu/VirtualFluidsCore/CoProcessors/MPIIOCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOSimulationObserver.cpp index e238ec8b0..adb47a75a 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "MPIIOCoProcessor.h" +#include "MPIIOSimulationObserver.h" #include "Block3D.h" #include <mpi/Communicator.h> #include "CoordinateTransformation3D.h" @@ -12,9 +12,9 @@ using namespace MPIIODataStructures; -MPIIOCoProcessor::MPIIOCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, +MPIIOSimulationObserver::MPIIOSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), comm(comm) + : SimulationObserver(grid, s), path(path), comm(comm) { UbSystem::makeDirectory(path + "/mpi_io_cp"); @@ -74,7 +74,7 @@ MPIIOCoProcessor::MPIIOCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const MPI_Type_commit(&arrayPresenceType); } -MPIIOCoProcessor::~MPIIOCoProcessor() +MPIIOSimulationObserver::~MPIIOSimulationObserver() { MPI_Type_free(&gridParamType); MPI_Type_free(&block3dType); @@ -83,7 +83,7 @@ MPIIOCoProcessor::~MPIIOCoProcessor() MPI_Type_free(&arrayPresenceType); } -void MPIIOCoProcessor::writeBlocks(int step) +void MPIIOSimulationObserver::writeBlocks(int step) { int rank, size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -91,7 +91,7 @@ void MPIIOCoProcessor::writeBlocks(int step) size = 1; if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOCoProcessor::writeBlocksToFile start collect data rank = " << rank); + UBLOG(logINFO, "MPIIOSimulationObserver::writeBlocksToFile start collect data rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -187,7 +187,7 @@ void MPIIOCoProcessor::writeBlocks(int step) } if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOCoProcessor::writeBlocksToFile start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOSimulationObserver::writeBlocksToFile start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -223,21 +223,21 @@ void MPIIOCoProcessor::writeBlocks(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOCoProcessor::writeBlocksToFile time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOSimulationObserver::writeBlocksToFile time: " << finish - start << " s"); } delete[] block3dArray; delete gridParameters; } -void MPIIOCoProcessor::readBlocks(int step) +void MPIIOSimulationObserver::readBlocks(int step) { int rank; // int size; MPI_Comm_rank(MPI_COMM_WORLD, &rank); // size = 1; if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOCoProcessor::readBlocks start MPI IO rank = " << rank); + UBLOG(logINFO, "MPIIOSimulationObserver::readBlocks start MPI IO rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -276,8 +276,8 @@ void MPIIOCoProcessor::readBlocks(int step) if (comm->isRoot()) { finish = MPI_Wtime(); - UBLOG(logINFO, "MPIIOCoProcessor::readBlocks time: " << finish - start << " s"); - UBLOG(logINFO, "MPIIOCoProcessor::readBlocks start of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOSimulationObserver::readBlocks time: " << finish - start << " s"); + UBLOG(logINFO, "MPIIOSimulationObserver::readBlocks start of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } @@ -359,13 +359,13 @@ void MPIIOCoProcessor::readBlocks(int step) delete[] block3dArray; if (comm->isRoot()) { - UBLOG(logINFO, "MPIIOCoProcessor::readBlocks end of restore of data, rank = " << rank); + UBLOG(logINFO, "MPIIOSimulationObserver::readBlocks end of restore of data, rank = " << rank); UBLOG(logINFO, "Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe() / 1073741824.0 << " GB"); } } -void MPIIOCoProcessor::clearAllFiles(int step) +void MPIIOSimulationObserver::clearAllFiles(int step) { MPI_File file_handler; MPI_Info info = MPI_INFO_NULL; @@ -480,7 +480,7 @@ void MPIIOCoProcessor::clearAllFiles(int step) } -void MPIIOCoProcessor::writeCpTimeStep(int step) +void MPIIOSimulationObserver::writeCpTimeStep(int step) { if (comm->isRoot()) { UbFileOutputASCII f(path + "/mpi_io_cp/cp.txt"); @@ -488,7 +488,7 @@ void MPIIOCoProcessor::writeCpTimeStep(int step) } } ////////////////////////////////////////////////////////////////////////// -int MPIIOCoProcessor::readCpTimeStep() +int MPIIOSimulationObserver::readCpTimeStep() { UbFileInputASCII f(path + "/mpi_io_cp/cp.txt"); int step = f.readInteger(); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOSimulationObserver.h similarity index 68% rename from src/cpu/VirtualFluidsCore/CoProcessors/MPIIOCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOSimulationObserver.h index 68759639d..e42b7117e 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOSimulationObserver.h @@ -1,7 +1,7 @@ -#ifndef _MPIIOCoProcessor_H_ -#define _MPIIOCoProcessor_H_ +#ifndef _MPIIOSimulationObserver_H_ +#define _MPIIOSimulationObserver_H_ -#include "CoProcessor.h" +#include "SimulationObserver.h" #include <PointerDefinitions.h> #include <mpi.h> #include <string> @@ -10,13 +10,13 @@ class Grid3D; class UbScheduler; namespace vf::mpi {class Communicator;} -//! \class MPIWriteBlocksBECoProcessor +//! \class MPIWriteBlocksBESimulationObserver //! \brief Writes the grid each timestep into the files and reads the grip from the files before regenerating -class MPIIOCoProcessor : public CoProcessor +class MPIIOSimulationObserver : public SimulationObserver { public: - MPIIOCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm); - ~MPIIOCoProcessor() override; + MPIIOSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm); + ~MPIIOSimulationObserver() override; //! Each timestep writes the grid into the files void process(real step) override = 0; @@ -40,5 +40,5 @@ protected: std::shared_ptr<vf::mpi::Communicator> comm; MPI_Datatype gridParamType, block3dType, dataSetParamType, boundCondType, arrayPresenceType; }; -#endif // ! _MPIIOCoProcessor_H_ -#define _MPIIOCoProcessor_H_ +#endif // ! _MPIIOSimulationObserver_H_ +#define _MPIIOSimulationObserver_H_ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.cpp similarity index 87% rename from src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.cpp index 45e9643fc..a456fe6f8 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "MicrophoneArrayCoProcessor.h" +#include "MicrophoneArraySimulationObserver.h" #include "BCArray3D.h" #include "BCSet.h" #include "Block3D.h" @@ -12,17 +12,17 @@ #include "Vector3D.h" #include <sstream> -MicrophoneArrayCoProcessor::MicrophoneArrayCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, +MicrophoneArraySimulationObserver::MicrophoneArraySimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), comm(comm) + : SimulationObserver(grid, s), path(path), comm(comm) { count = 0; micID = 0; } -MicrophoneArrayCoProcessor::~MicrophoneArrayCoProcessor() = default; +MicrophoneArraySimulationObserver::~MicrophoneArraySimulationObserver() = default; -void MicrophoneArrayCoProcessor::process(real step) +void MicrophoneArraySimulationObserver::process(real step) { if (microphones.size() > 0) { collectData(step); @@ -31,10 +31,10 @@ void MicrophoneArrayCoProcessor::process(real step) writeFile(step); } - UBLOG(logDEBUG3, "MicrophoneArrayCoProcessor::process:" << step); + UBLOG(logDEBUG3, "MicrophoneArraySimulationObserver::process:" << step); } -bool MicrophoneArrayCoProcessor::addMicrophone(Vector3D coords) +bool MicrophoneArraySimulationObserver::addMicrophone(Vector3D coords) { micID++; // UbTupleInt3 blockIndexes = grid->getBlockIndexes(coords[0], coords[1], coords[2]); @@ -89,7 +89,7 @@ bool MicrophoneArrayCoProcessor::addMicrophone(Vector3D coords) return false; } -void MicrophoneArrayCoProcessor::collectData(real step) +void MicrophoneArraySimulationObserver::collectData(real step) { for (std::size_t i = 0; i < microphones.size(); i++) { real f[D3Q27System::ENDF + 1]; @@ -102,7 +102,7 @@ void MicrophoneArrayCoProcessor::collectData(real step) } } -void MicrophoneArrayCoProcessor::writeFile(real /*step*/) +void MicrophoneArraySimulationObserver::writeFile(real /*step*/) { for (std::size_t i = 0; i < microphones.size(); i++) { std::string fname = path + "/mic/mic_" + UbSystem::toString(microphones[i]->id) + ".csv"; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.h similarity index 74% rename from src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.h index 140ac5a48..fc773771b 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.h @@ -1,7 +1,7 @@ -#ifndef MicrophoneArrayCoProcessor_h__ -#define MicrophoneArrayCoProcessor_h__ +#ifndef MicrophoneArraySimulationObserver_h__ +#define MicrophoneArraySimulationObserver_h__ -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "LBMSystem.h" #include "UbTuple.h" #include <array> @@ -19,12 +19,12 @@ class DistributionArray3D; //! \author Konstantin Kutscher //! \date February 2019 -class MicrophoneArrayCoProcessor : public CoProcessor +class MicrophoneArraySimulationObserver : public SimulationObserver { public: - MicrophoneArrayCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, + MicrophoneArraySimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm); - ~MicrophoneArrayCoProcessor() override; + ~MicrophoneArraySimulationObserver() override; //! calls collectData. void process(real step) override; @@ -56,4 +56,4 @@ private: CalcMacrosFct calcMacros; }; -#endif // MicrophoneArrayCoProcessor_h__ +#endif // MicrophoneArraySimulationObserver_h__ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.cpp similarity index 87% rename from src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.cpp index af8cf4083..b3a8b3d67 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.cpp @@ -26,20 +26,20 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file NUPSCounterCoProcessor.cpp -//! \ingroup CoProcessors +//! \file NUPSCounterSimulationObserver.cpp +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#include "NUPSCounterCoProcessor.h" +#include "NUPSCounterSimulationObserver.h" #include <mpi/Communicator.h> #include "Grid3D.h" #include "UbScheduler.h" -NUPSCounterCoProcessor::NUPSCounterCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, int numOfThreads, +NUPSCounterSimulationObserver::NUPSCounterSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, int numOfThreads, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), numOfThreads(numOfThreads), nup(0), nup_t(0), nupsStep(0.0), comm(comm) + : SimulationObserver(grid, s), numOfThreads(numOfThreads), nup(0), nup_t(0), nupsStep(0.0), comm(comm) { if (comm->getProcessID() == comm->getRoot()) { timer.resetAndStart(); @@ -59,15 +59,15 @@ NUPSCounterCoProcessor::NUPSCounterCoProcessor(SPtr<Grid3D> grid, SPtr<UbSchedul } } ////////////////////////////////////////////////////////////////////////// -NUPSCounterCoProcessor::~NUPSCounterCoProcessor() = default; +NUPSCounterSimulationObserver::~NUPSCounterSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -void NUPSCounterCoProcessor::process(real step) +void NUPSCounterSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); } ////////////////////////////////////////////////////////////////////////// -void NUPSCounterCoProcessor::collectData(real step) +void NUPSCounterSimulationObserver::collectData(real step) { if (comm->getProcessID() == comm->getRoot()) { real time = timer.stop(); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.h similarity index 83% rename from src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.h index b178c97fe..37e41d11a 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.h @@ -26,36 +26,36 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file NUPSCounterCoProcessor.h -//! \ingroup CoProcessors +//! \file NUPSCounterSimulationObserver.h +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#ifndef NUPSCOUNTERCoProcessor_H_ -#define NUPSCOUNTERCoProcessor_H_ +#ifndef NUPSCOUNTERSimulationObserver_H_ +#define NUPSCOUNTERSimulationObserver_H_ #include <PointerDefinitions.h> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "basics/utilities/UbTiming.h" namespace vf::mpi {class Communicator;} class Grid3D; class UbScheduler; -//! \class NUPSCounterCoProcessor +//! \class NUPSCounterSimulationObserver //! \brief A class calculates Nodal Updates Per Second (NUPS) -class NUPSCounterCoProcessor : public CoProcessor +class NUPSCounterSimulationObserver : public SimulationObserver { public: - //! \brief Construct NUPSCounterCoProcessor object for grid object and scheduler object. + //! \brief Construct NUPSCounterSimulationObserver object for grid object and scheduler object. //! \pre The Grid3D and UbScheduler objects must exist. //! \param grid is observable Grid3D object //! \param s is UbScheduler object for scheduling of observer //! \param numOfThreads is number of threads //! \param comm is Communicator object - NUPSCounterCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, int numOfThreads, std::shared_ptr<vf::mpi::Communicator> comm); - ~NUPSCounterCoProcessor() override; + NUPSCounterSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, int numOfThreads, std::shared_ptr<vf::mpi::Communicator> comm); + ~NUPSCounterSimulationObserver() override; void process(real step) override; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.cpp similarity index 87% rename from src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.cpp index 2e295e096..8df444b9f 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "PressureCoefficientCoProcessor.h" +#include "PressureCoefficientSimulationObserver.h" #include <WbWriterVtkXmlASCII.h> #include "BCArray3D.h" @@ -12,26 +12,26 @@ #include "LBMKernel.h" #include "UbScheduler.h" -PressureCoefficientCoProcessor::PressureCoefficientCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, +PressureCoefficientSimulationObserver::PressureCoefficientSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, GbCuboid3DPtr plane, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), plane(plane), path(path), comm(comm) + : SimulationObserver(grid, s), plane(plane), path(path), comm(comm) { maxStep = scheduler->getMaxEnd(); numberOfSteps = int(maxStep - scheduler->getMinBegin()); } ////////////////////////////////////////////////////////////////////////// -PressureCoefficientCoProcessor::~PressureCoefficientCoProcessor() = default; +PressureCoefficientSimulationObserver::~PressureCoefficientSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -void PressureCoefficientCoProcessor::process(real step) +void PressureCoefficientSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "D3Q27ForcesCoProcessor::update:" << step); + UBLOG(logDEBUG3, "D3Q27ForcesSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void PressureCoefficientCoProcessor::collectData(real step) +void PressureCoefficientSimulationObserver::collectData(real step) { calculateRho(); @@ -40,7 +40,7 @@ void PressureCoefficientCoProcessor::collectData(real step) } } ////////////////////////////////////////////////////////////////////////// -void PressureCoefficientCoProcessor::calculateRho() +void PressureCoefficientSimulationObserver::calculateRho() { real f[D3Q27System::ENDF + 1]; real vx1, vx2, vx3, rho; @@ -120,7 +120,7 @@ void PressureCoefficientCoProcessor::calculateRho() } } ////////////////////////////////////////////////////////////////////////// -void PressureCoefficientCoProcessor::writeValues(int step) +void PressureCoefficientSimulationObserver::writeValues(int step) { if (comm->getProcessID() == comm->getRoot()) { datanames.resize(0); @@ -176,10 +176,10 @@ void PressureCoefficientCoProcessor::writeValues(int step) out.close(); - UBLOG(logINFO, "PressureCoefficientCoProcessor::writeValues() step: " << (int)step); + UBLOG(logINFO, "PressureCoefficientSimulationObserver::writeValues() step: " << (int)step); } } -void PressureCoefficientCoProcessor::readValues(int step) +void PressureCoefficientSimulationObserver::readValues(int step) { if (comm->isRoot()) { std::string fname = path + UbSystem::toString(step) + ".bin"; @@ -199,11 +199,11 @@ void PressureCoefficientCoProcessor::readValues(int step) in.close(); - UBLOG(logINFO, "PressureCoefficientCoProcessor::readValues() step: " << (int)step); + UBLOG(logINFO, "PressureCoefficientSimulationObserver::readValues() step: " << (int)step); } } ////////////////////////////////////////////////////////////////////////// -void PressureCoefficientCoProcessor::addInteractor(SPtr<D3Q27Interactor> interactor) +void PressureCoefficientSimulationObserver::addInteractor(SPtr<D3Q27Interactor> interactor) { interactors.push_back(interactor); } diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.h similarity index 71% rename from src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.h index 26b8117ae..f8a9520aa 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.h @@ -1,11 +1,11 @@ -#ifndef PressureCoefficientCoProcessor_h__ -#define PressureCoefficientCoProcessor_h__ +#ifndef PressureCoefficientSimulationObserver_h__ +#define PressureCoefficientSimulationObserver_h__ #include <PointerDefinitions.h> #include <string> #include <vector> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "LBMSystem.h" #include "UbTuple.h" @@ -15,12 +15,12 @@ namespace vf::mpi {class Communicator;} class Grid3D; class UbScheduler; -class PressureCoefficientCoProcessor : public CoProcessor +class PressureCoefficientSimulationObserver : public SimulationObserver { public: - PressureCoefficientCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<GbCuboid3D> plane, + PressureCoefficientSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<GbCuboid3D> plane, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm); - ~PressureCoefficientCoProcessor() override; + ~PressureCoefficientSimulationObserver() override; void process(real step) override; @@ -50,4 +50,4 @@ private: CalcMacrosFct calcMacros; }; -#endif // PressureDistributionCoProcessor_h__ +#endif // PressureDistributionSimulationObserver_h__ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.cpp similarity index 88% rename from src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.cpp index a486da249..4234d8907 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.cpp @@ -1,11 +1,11 @@ /* - * D3Q27RhoCoProcessor.cpp + * D3Q27RhoSimulationObserver.cpp * * Created on: 28.12.2010 * Author: kucher */ -#include "PressureDifferenceCoProcessor.h" +#include "PressureDifferenceSimulationObserver.h" #include <fstream> @@ -15,12 +15,12 @@ #include "LBMUnitConverter.h" #include "UbScheduler.h" -PressureDifferenceCoProcessor::PressureDifferenceCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, +PressureDifferenceSimulationObserver::PressureDifferenceSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, SPtr<IntegrateValuesHelper> h1, SPtr<IntegrateValuesHelper> h2, real rhoReal, real uReal, real uLB, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), h1(h1), h2(h2), comm(comm) + : SimulationObserver(grid, s), path(path), h1(h1), h2(h2), comm(comm) { if (comm->getProcessID() == comm->getRoot()) { std::ofstream ostr; @@ -69,15 +69,15 @@ PressureDifferenceCoProcessor::PressureDifferenceCoProcessor(SPtr<Grid3D> grid, } } ////////////////////////////////////////////////////////////////////////// -PressureDifferenceCoProcessor::~PressureDifferenceCoProcessor() = default; +PressureDifferenceSimulationObserver::~PressureDifferenceSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -void PressureDifferenceCoProcessor::process(real step) +void PressureDifferenceSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); } ////////////////////////////////////////////////////////////////////////// -void PressureDifferenceCoProcessor::collectData(real step) +void PressureDifferenceSimulationObserver::collectData(real step) { h1->calculateMQ(); h2->calculateMQ(); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.h similarity index 70% rename from src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.h index 095235522..447fb5374 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.h @@ -1,17 +1,17 @@ /* - * D3Q27PressureDifferenceCoProcessor.h + * D3Q27PressureDifferenceSimulationObserver.h * * Created on: 28.12.2010 * Author: kucher */ -#ifndef D3Q27PRESSUREDIFFERENCECoProcessor_H -#define D3Q27PRESSUREDIFFERENCECoProcessor_H +#ifndef D3Q27PRESSUREDIFFERENCESimulationObserver_H +#define D3Q27PRESSUREDIFFERENCESimulationObserver_H #include <PointerDefinitions.h> #include <string> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "LBMSystem.h" namespace vf::mpi {class Communicator;} @@ -20,14 +20,14 @@ class UbScheduler; class LBMUnitConverter; class IntegrateValuesHelper; -class PressureDifferenceCoProcessor : public CoProcessor +class PressureDifferenceSimulationObserver : public SimulationObserver { public: - PressureDifferenceCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, + PressureDifferenceSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, SPtr<IntegrateValuesHelper> h1, SPtr<IntegrateValuesHelper> h2, real rhoReal, real uReal, real uLB, /*const SPtr<LBMUnitConverter> conv,*/ std::shared_ptr<vf::mpi::Communicator> comm); - ~PressureDifferenceCoProcessor() override; + ~PressureDifferenceSimulationObserver() override; void process(real step) override; @@ -43,4 +43,4 @@ protected: //uReal in SI }; -#endif /* D3Q27RHODIFFERENCECoProcessor_H_ */ +#endif /* D3Q27RHODIFFERENCESimulationObserver_H_ */ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.cpp similarity index 92% rename from src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.cpp index d500f1dc6..3648d9526 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "QCriterionCoProcessor.h" +#include "QCriterionSimulationObserver.h" #include "BCSet.h" #include "Block3D.h" #include "DataSet3D.h" @@ -10,14 +10,14 @@ #include <mpi/Communicator.h> #include "UbScheduler.h" -QCriterionCoProcessor::QCriterionCoProcessor(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, +QCriterionSimulationObserver::QCriterionSimulationObserver(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), comm(comm), writer(writer) + : SimulationObserver(grid, s), path(path), comm(comm), writer(writer) { init(); } ////////////////////////////////////////////////////////////////////////// -void QCriterionCoProcessor::init() +void QCriterionSimulationObserver::init() { gridRank = comm->getProcessID(); minInitLevel = this->grid->getCoarsestInitializedLevel(); @@ -28,19 +28,19 @@ void QCriterionCoProcessor::init() for (int level = minInitLevel; level <= maxInitLevel; level++) { grid->getBlocks( level, gridRank, true, - blockVector[level]); // grid: private variable in CoProcessor. Initialized by filling with blocks + blockVector[level]); // grid: private variable in SimulationObserver. Initialized by filling with blocks } } ////////////////////////////////////////////////////////////////////////// -void QCriterionCoProcessor::process(real step) +void QCriterionSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "QCriterionCoProcessor::update:" << step); + UBLOG(logDEBUG3, "QCriterionSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void QCriterionCoProcessor::collectData(real step) +void QCriterionSimulationObserver::collectData(real step) { int istep = static_cast<int>(step); @@ -59,7 +59,7 @@ void QCriterionCoProcessor::collectData(real step) std::vector<std::string> cellDataNames; - // distributed writing as in MacroscopicValuesCoProcessor.cpp + // distributed writing as in MacroscopicValuesSimulationObserver.cpp std::vector<std::string> pieces = comm->gather(piece); // comm: MPI-Wrapper if (comm->getProcessID() == comm->getRoot()) { std::string pname = WbWriterVtkXmlASCII::getInstance()->writeParallelFile( @@ -67,19 +67,19 @@ void QCriterionCoProcessor::collectData(real step) std::vector<std::string> filenames; filenames.push_back(pname); - if (step == CoProcessor::scheduler->getMinBegin()) // first time in timeseries + if (step == SimulationObserver::scheduler->getMinBegin()) // first time in timeseries { WbWriterVtkXmlASCII::getInstance()->writeCollection(path + "_collection", filenames, istep, false); } else { WbWriterVtkXmlASCII::getInstance()->addFilesToCollection(path + "_collection", filenames, istep, false); } - UBLOG(logINFO, "QCriterionCoProcessor step: " << istep); + UBLOG(logINFO, "QCriterionSimulationObserver step: " << istep); } clearData(); } ////////////////////////////////////////////////////////////////////////// -void QCriterionCoProcessor::clearData() +void QCriterionSimulationObserver::clearData() { nodes.clear(); cells.clear(); @@ -87,7 +87,7 @@ void QCriterionCoProcessor::clearData() data.clear(); } ////////////////////////////////////////////////////////////////////////// -void QCriterionCoProcessor::addData(const SPtr<Block3D> block) +void QCriterionSimulationObserver::addData(const SPtr<Block3D> block) { UbTupleDouble3 org = grid->getBlockWorldCoordinates(block); // UbTupleDouble3 blockLengths = grid->getBlockLengths(block); @@ -200,7 +200,7 @@ void QCriterionCoProcessor::addData(const SPtr<Block3D> block) } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -void QCriterionCoProcessor::getNeighborVelocities(int offx, int offy, int offz, int ix1, int ix2, int ix3, +void QCriterionSimulationObserver::getNeighborVelocities(int offx, int offy, int offz, int ix1, int ix2, int ix3, const SPtr<Block3D> block, real *vE, real *vW) { SPtr<ILBMKernel> kernel = block->getKernel(); @@ -217,7 +217,7 @@ void QCriterionCoProcessor::getNeighborVelocities(int offx, int offy, int offz, int maxX2 = (int)(distributions->getNX2()); int maxX3 = (int)(distributions->getNX3()); if (maxX1 < 3) - throw UbException(UB_EXARGS, "QCriterionCoProcessor: NX1 too small for FD stencils!"); + throw UbException(UB_EXARGS, "QCriterionSimulationObserver: NX1 too small for FD stencils!"); maxX1 -= 2; maxX2 -= 2; maxX3 -= 2; @@ -343,7 +343,7 @@ void QCriterionCoProcessor::getNeighborVelocities(int offx, int offy, int offz, } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -void QCriterionCoProcessor::computeVelocity(real *f, real *v, bool compressible) +void QCriterionSimulationObserver::computeVelocity(real *f, real *v, bool compressible) { ////////////////////////////////////////////////////////////////////////// // compute x,y,z-velocity components from distribution diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.h similarity index 86% rename from src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.h index 38cd47fb8..a624a4606 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.h @@ -1,15 +1,15 @@ -//! \file QCriterionCoProcessor.h +//! \file QCriterionSimulationObserver.h //! \brief Created on: 25.08.2013 //! \author: Sonja Uphoff -#ifndef QCriterionCoProcessor_H -#define QCriterionCoProcessor_H +#ifndef QCriterionSimulationObserver_H +#define QCriterionSimulationObserver_H #include <PointerDefinitions.h> #include <string> #include <vector> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "LBMSystem.h" #include "UbTuple.h" @@ -25,10 +25,10 @@ class Block3D; //! Q-Criterion: Visualize Vorteces as regions where Vorticity is larger than strain rate (Hunt, 1988) //! \author Sonja Uphoff -class QCriterionCoProcessor : public CoProcessor +class QCriterionSimulationObserver : public SimulationObserver { public: - QCriterionCoProcessor(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, + QCriterionSimulationObserver(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, std::shared_ptr<vf::mpi::Communicator> comm); //! Make update if timestep is write-timestep specified in SPtr<UbScheduler> s void process(real step) override; @@ -50,7 +50,7 @@ private: void init(); std::vector<UbTupleFloat3> nodes; std::vector<UbTupleUInt8> cells; - std::vector<std::string> datanames; // only one entry for QKrit-CoProcessor: Q + std::vector<std::string> datanames; // only one entry for QKrit-SimulationObserver: Q std::vector<std::vector<real>> data; std::vector<std::vector<SPtr<Block3D>>> blockVector; int minInitLevel; // go through all levels for block vector of current process from minInitLevel to maxInitLevel diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.cpp similarity index 96% rename from src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.cpp index 2d8866494..5bc88dae1 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "ShearStressCoProcessor.h" +#include "ShearStressSimulationObserver.h" #include "BCSet.h" #include "WbWriterVtkXmlASCII.h" @@ -12,9 +12,9 @@ #include "LBMKernel.h" #include "UbScheduler.h" -ShearStressCoProcessor::ShearStressCoProcessor(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, +ShearStressSimulationObserver::ShearStressSimulationObserver(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, SPtr<UbScheduler> rs) - : CoProcessor(grid, s), Resetscheduler(rs), path(path), writer(writer) + : SimulationObserver(grid, s), Resetscheduler(rs), path(path), writer(writer) { std::shared_ptr<vf::mpi::Communicator> comm = vf::mpi::Communicator::getInstance(); normals.push_back(0); @@ -36,9 +36,9 @@ ShearStressCoProcessor::ShearStressCoProcessor(SPtr<Grid3D> grid, const std::str } } ////////////////////////////////////////////////////////////////////////// -ShearStressCoProcessor::~ShearStressCoProcessor() = default; +ShearStressSimulationObserver::~ShearStressSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -void ShearStressCoProcessor::process(real step) +void ShearStressSimulationObserver::process(real step) { if (step == 0) { initDistance(); @@ -46,10 +46,10 @@ void ShearStressCoProcessor::process(real step) calculateShearStress(step); if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "D3Q27ShearStressCoProcessor::update:" << step); + UBLOG(logDEBUG3, "D3Q27ShearStressSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void ShearStressCoProcessor::collectData(real step) +void ShearStressSimulationObserver::collectData(real step) { using namespace std; @@ -71,7 +71,7 @@ void ShearStressCoProcessor::collectData(real step) // vector<string> filenames; // filenames.push_back(pname); - // if (step == CoProcessor::scheduler->getMinBegin()) + // if (step == SimulationObserver::scheduler->getMinBegin()) // { // WbWriterVtkXmlASCII::getInstance()->writeCollection(path+"__Shear_collection",filenames,istep,false); // } @@ -79,7 +79,7 @@ void ShearStressCoProcessor::collectData(real step) // { // WbWriterVtkXmlASCII::getInstance()->addFilesToCollection(path+"__Shear_collection",filenames,istep,false); // } - // UBLOG(logINFO,"D3Q27ShearStressCoProcessor step: " << istep); + // UBLOG(logINFO,"D3Q27ShearStressSimulationObserver step: " << istep); //} string pfilePath, partPath, subfolder, cfilePath; @@ -104,25 +104,25 @@ void ShearStressCoProcessor::collectData(real step) vector<string> filenames; filenames.push_back(piece); - if (step == CoProcessor::scheduler->getMinBegin()) { + if (step == SimulationObserver::scheduler->getMinBegin()) { WbWriterVtkXmlASCII::getInstance()->writeCollection(cfilePath, filenames, istep, false); } else { WbWriterVtkXmlASCII::getInstance()->addFilesToCollection(cfilePath, filenames, istep, false); } - UBLOG(logINFO, "D3Q27ShearStressCoProcessor step: " << istep); + UBLOG(logINFO, "D3Q27ShearStressSimulationObserver step: " << istep); } clearData(); } ////////////////////////////////////////////////////////////////////////// -void ShearStressCoProcessor::clearData() +void ShearStressSimulationObserver::clearData() { nodes.clear(); datanames.clear(); data.clear(); } ////////////////////////////////////////////////////////////////////////// -void ShearStressCoProcessor::calculateShearStress(real timeStep) +void ShearStressSimulationObserver::calculateShearStress(real timeStep) { using namespace vf::lbm::dir; using namespace D3Q27System; @@ -231,7 +231,7 @@ void ShearStressCoProcessor::calculateShearStress(real timeStep) } } ////////////////////////////////////////////////////////////////////////// -void ShearStressCoProcessor::addData() +void ShearStressSimulationObserver::addData() { // Diese Daten werden geschrieben: datanames.resize(0); @@ -345,15 +345,15 @@ void ShearStressCoProcessor::addData() } } ////////////////////////////////////////////////////////////////////////// -void ShearStressCoProcessor::reset(real step) +void ShearStressSimulationObserver::reset(real step) { if (Resetscheduler->isDue(step)) resetData(step); - UBLOG(logDEBUG3, "resetCoProcessor::update:" << step); + UBLOG(logDEBUG3, "resetSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void ShearStressCoProcessor::resetData(real /*step*/) +void ShearStressSimulationObserver::resetData(real /*step*/) { for (int level = minInitLevel; level <= maxInitLevel; level++) { for (const auto &block : blockVector[level]) { @@ -403,9 +403,9 @@ void ShearStressCoProcessor::resetData(real /*step*/) } } ////////////////////////////////////////////////////////////////////////// -void ShearStressCoProcessor::addInteractor(SPtr<D3Q27Interactor> interactor) { interactors.push_back(interactor); } +void ShearStressSimulationObserver::addInteractor(SPtr<D3Q27Interactor> interactor) { interactors.push_back(interactor); } ////////////////////////////////////////////////////////////////////////// -void ShearStressCoProcessor::findPlane(int ix1, int ix2, int ix3, SPtr<Grid3D> grid, SPtr<Block3D> block, real &A, +void ShearStressSimulationObserver::findPlane(int ix1, int ix2, int ix3, SPtr<Grid3D> grid, SPtr<Block3D> block, real &A, real &B, real &C, real &D, real &ii) { using namespace vf::lbm::dir; @@ -823,7 +823,7 @@ void ShearStressCoProcessor::findPlane(int ix1, int ix2, int ix3, SPtr<Grid3D> g } //////////////////////////////////////////////////////////////////////////////////////////////////////// -bool ShearStressCoProcessor::checkUndefindedNodes(SPtr<BCArray3D> bcArray, int ix1, int ix2, int ix3) +bool ShearStressSimulationObserver::checkUndefindedNodes(SPtr<BCArray3D> bcArray, int ix1, int ix2, int ix3) { for (int i = ix1; i <= ix1 + 1; i++) { for (int j = ix2; j <= ix2 + 1; j++) { @@ -836,7 +836,7 @@ bool ShearStressCoProcessor::checkUndefindedNodes(SPtr<BCArray3D> bcArray, int i return false; } ////////////////////////////////////////////////////////////////////////////////////// -void ShearStressCoProcessor::initDistance() +void ShearStressSimulationObserver::initDistance() { using namespace vf::lbm::dir; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.h similarity index 83% rename from src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.h index 73fd42d64..03ee83d21 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.h @@ -1,5 +1,5 @@ -#ifndef D3Q27ShearStressCoProcessor_H -#define D3Q27ShearStressCoProcessor_H +#ifndef D3Q27ShearStressSimulationObserver_H +#define D3Q27ShearStressSimulationObserver_H #include <PointerDefinitions.h> #include <string> @@ -7,7 +7,7 @@ #include <basics/utilities/UbTuple.h> -#include "CoProcessor.h" +#include "SimulationObserver.h" class Block3D; class Grid3D; @@ -21,15 +21,15 @@ class WbWriter; //! Take root to obtain during post processing (paraview). //! \author K. Kucher, S. Uphoff, M. Geier, E. Goraki Fard -class ShearStressCoProcessor : public CoProcessor +class ShearStressSimulationObserver : public SimulationObserver { public: //! Default constructor - ShearStressCoProcessor() = default; + ShearStressSimulationObserver() = default; //! Constructor - ShearStressCoProcessor(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, + ShearStressSimulationObserver(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, SPtr<UbScheduler> rs); - ~ShearStressCoProcessor() override; + ~ShearStressSimulationObserver() override; void process(real step) override; @@ -82,4 +82,4 @@ private: }; }; -#endif /* D3Q27ShearStressCoProcessor_H */ +#endif /* D3Q27ShearStressSimulationObserver_H */ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/CoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/SimulationObserver.cpp similarity index 87% rename from src/cpu/VirtualFluidsCore/CoProcessors/CoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/SimulationObserver.cpp index 6572ac8b5..cef156e56 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/CoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/SimulationObserver.cpp @@ -26,18 +26,18 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file CoProcessor.cpp -//! \ingroup CoProcessors +//! \file SimulationObserver.cpp +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "Grid3D.h" #include "UbScheduler.h" -CoProcessor::CoProcessor() = default; +SimulationObserver::SimulationObserver() = default; -CoProcessor::CoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s) : grid(grid), scheduler(s) {} +SimulationObserver::SimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s) : grid(grid), scheduler(s) {} -CoProcessor::~CoProcessor() = default; +SimulationObserver::~SimulationObserver() = default; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/CoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/SimulationObserver.h similarity index 83% rename from src/cpu/VirtualFluidsCore/CoProcessors/CoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/SimulationObserver.h index 7aae7505b..c80327b68 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/CoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/SimulationObserver.h @@ -26,13 +26,13 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file CoProcessor.h -//! \ingroup CoProcessors +//! \file SimulationObserver.h +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#ifndef CoProcessor_H -#define CoProcessor_H +#ifndef SimulationObserver_H +#define SimulationObserver_H #include <PointerDefinitions.h> #include "lbm/constants/D3Q27.h" @@ -40,23 +40,23 @@ class Grid3D; class UbScheduler; -//! \class CoProcessor +//! \class SimulationObserver //! \brief An abstract class implements observer design pettern -class CoProcessor +class SimulationObserver { public: //! Class default constructor - CoProcessor(); - //! \brief Construct CoProcessor object for grid object and scheduler object. + SimulationObserver(); + //! \brief Construct SimulationObserver object for grid object and scheduler object. //! \pre The Grid3D and UbScheduler objects must exist. //! \param grid is observable Grid3D object //! \param s is UbScheduler object for scheduling of observer //! \details - //! Class CoProcessor implements the observer design pettern. CoProcessor object is observer. Grid3D object is + //! Class SimulationObserver implements the observer design pettern. SimulationObserver object is observer. Grid3D object is //! observable. - CoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s); + SimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s); //! Class destructor - virtual ~CoProcessor(); + virtual ~SimulationObserver(); //! \brief Updates observer //! \param step is the actual time step virtual void process(real step) = 0; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.cpp similarity index 95% rename from src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.cpp index b3e021284..cdfc16ed5 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "TimeAveragedValuesCoProcessor.h" +#include "TimeAveragedValuesSimulationObserver.h" #include "BCSet.h" #include "LBMKernel.h" @@ -12,31 +12,31 @@ #include "BCArray3D.h" -TimeAveragedValuesCoProcessor::TimeAveragedValuesCoProcessor() = default; +TimeAveragedValuesSimulationObserver::TimeAveragedValuesSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -TimeAveragedValuesCoProcessor::TimeAveragedValuesCoProcessor(SPtr<Grid3D> grid, const std::string &path, +TimeAveragedValuesSimulationObserver::TimeAveragedValuesSimulationObserver(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, std::shared_ptr<vf::mpi::Communicator> comm, int options) - : CoProcessor(grid, s), path(path), writer(writer), comm(comm), options(options) + : SimulationObserver(grid, s), path(path), writer(writer), comm(comm), options(options) { init(); planarAveraging = false; timeAveraging = true; } ////////////////////////////////////////////////////////////////////////// -TimeAveragedValuesCoProcessor::TimeAveragedValuesCoProcessor(SPtr<Grid3D> grid, const std::string &path, +TimeAveragedValuesSimulationObserver::TimeAveragedValuesSimulationObserver(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, std::shared_ptr<vf::mpi::Communicator> comm, int options, std::vector<int> levels, std::vector<real> &levelCoords, std::vector<real> &bounds, bool timeAveraging) - : CoProcessor(grid, s), path(path), writer(writer), comm(comm), options(options), levels(levels), + : SimulationObserver(grid, s), path(path), writer(writer), comm(comm), options(options), levels(levels), levelCoords(levelCoords), bounds(bounds), timeAveraging(timeAveraging) { init(); planarAveraging = true; } ////////////////////////////////////////////////////////////////////////// -void TimeAveragedValuesCoProcessor::init() +void TimeAveragedValuesSimulationObserver::init() { root = comm->isRoot(); gridRank = grid->getRank(); @@ -75,7 +75,7 @@ void TimeAveragedValuesCoProcessor::init() } } ////////////////////////////////////////////////////////////////////////// -void TimeAveragedValuesCoProcessor::initData() +void TimeAveragedValuesSimulationObserver::initData() { blockVector.clear(); blockVector.resize(maxInitLevel + 1); @@ -116,7 +116,7 @@ void TimeAveragedValuesCoProcessor::initData() } } ////////////////////////////////////////////////////////////////////////// -void TimeAveragedValuesCoProcessor::process(real step) +void TimeAveragedValuesSimulationObserver::process(real step) { if (step == minStep) { initData(); @@ -146,10 +146,10 @@ void TimeAveragedValuesCoProcessor::process(real step) } } - UBLOG(logDEBUG3, "AverageValuesCoProcessor::update:" << step); + UBLOG(logDEBUG3, "AverageValuesSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void TimeAveragedValuesCoProcessor::collectData(real step) +void TimeAveragedValuesSimulationObserver::collectData(real step) { int istep = int(step); @@ -176,13 +176,13 @@ void TimeAveragedValuesCoProcessor::collectData(real step) if (root) { std::string pname = WbWriterVtkXmlASCII::getInstance()->writeParallelFile(pfilePath, pieces, datanames, cellDataNames); - UBLOG(logINFO, "TimeAveragedValuesCoProcessor::collectData() step: " << istep); + UBLOG(logINFO, "TimeAveragedValuesSimulationObserver::collectData() step: " << istep); } clearData(); } ////////////////////////////////////////////////////////////////////////// -void TimeAveragedValuesCoProcessor::clearData() +void TimeAveragedValuesSimulationObserver::clearData() { nodes.clear(); cells.clear(); @@ -190,7 +190,7 @@ void TimeAveragedValuesCoProcessor::clearData() data.clear(); } ////////////////////////////////////////////////////////////////////////// -void TimeAveragedValuesCoProcessor::addData(const SPtr<Block3D> block) +void TimeAveragedValuesSimulationObserver::addData(const SPtr<Block3D> block) { UbTupleDouble3 org = grid->getBlockWorldCoordinates(block); // UbTupleDouble3 blockLengths = grid->getBlockLengths(block); @@ -352,7 +352,7 @@ void TimeAveragedValuesCoProcessor::addData(const SPtr<Block3D> block) } } ////////////////////////////////////////////////////////////////////////// -void TimeAveragedValuesCoProcessor::calculateAverageValues(real timeSteps) +void TimeAveragedValuesSimulationObserver::calculateAverageValues(real timeSteps) { for (int level = minInitLevel; level <= maxInitLevel; level++) { int i; @@ -463,7 +463,7 @@ void TimeAveragedValuesCoProcessor::calculateAverageValues(real timeSteps) } } ////////////////////////////////////////////////////////////////////////// -void TimeAveragedValuesCoProcessor::calculateSubtotal(real step) +void TimeAveragedValuesSimulationObserver::calculateSubtotal(real step) { if (scheduler->isDue(step)) { @@ -574,7 +574,7 @@ void TimeAveragedValuesCoProcessor::calculateSubtotal(real step) } } ////////////////////////////////////////////////////////////////////////// -void TimeAveragedValuesCoProcessor::planarAverage(real step) +void TimeAveragedValuesSimulationObserver::planarAverage(real step) { std::ofstream ostr; @@ -692,11 +692,11 @@ void TimeAveragedValuesCoProcessor::planarAverage(real step) if (root) { ostr.close(); - UBLOG(logINFO, "TimeAveragedValuesCoProcessor::planarAverage() step: " << (int)step); + UBLOG(logINFO, "TimeAveragedValuesSimulationObserver::planarAverage() step: " << (int)step); } } ////////////////////////////////////////////////////////////////////////// -void TimeAveragedValuesCoProcessor::reset() +void TimeAveragedValuesSimulationObserver::reset() { for (int level = minInitLevel; level <= maxInitLevel; level++) { for (SPtr<Block3D> block : blockVector[level]) { @@ -725,7 +725,7 @@ void TimeAveragedValuesCoProcessor::reset() } } ////////////////////////////////////////////////////////////////////////// -void TimeAveragedValuesCoProcessor::setWithGhostLayer(bool val) +void TimeAveragedValuesSimulationObserver::setWithGhostLayer(bool val) { withGhostLayer = val; @@ -736,9 +736,9 @@ void TimeAveragedValuesCoProcessor::setWithGhostLayer(bool val) } } ////////////////////////////////////////////////////////////////////////// -bool TimeAveragedValuesCoProcessor::getWithGhostLayer() { return withGhostLayer; } +bool TimeAveragedValuesSimulationObserver::getWithGhostLayer() { return withGhostLayer; } ////////////////////////////////////////////////////////////////////////// -void TimeAveragedValuesCoProcessor::calculateAverageValuesForPlane( +void TimeAveragedValuesSimulationObserver::calculateAverageValuesForPlane( std::vector<IntegrateValuesHelper::CalcNodes> &cnodes) { saVx = 0; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.h similarity index 90% rename from src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.h index 72a0f6fe1..26930848e 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.h @@ -1,11 +1,11 @@ -#ifndef TimeAveragedValuesCoProcessor_H -#define TimeAveragedValuesCoProcessor_H +#ifndef TimeAveragedValuesSimulationObserver_H +#define TimeAveragedValuesSimulationObserver_H #include <PointerDefinitions.h> #include <string> #include <vector> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "IntegrateValuesHelper.h" #include "LBMSystem.h" @@ -24,7 +24,7 @@ class Block3D; //! \author Konstantin Kutscher // \f$ u_{mean}=\frac{1}{N}\sum\limits_{i=1}^n u_{i} \f$ -class TimeAveragedValuesCoProcessor : public CoProcessor +class TimeAveragedValuesSimulationObserver : public SimulationObserver { public: enum Options { @@ -39,10 +39,10 @@ public: }; public: - TimeAveragedValuesCoProcessor(); - TimeAveragedValuesCoProcessor(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, + TimeAveragedValuesSimulationObserver(); + TimeAveragedValuesSimulationObserver(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, std::shared_ptr<vf::mpi::Communicator> comm, int options); - TimeAveragedValuesCoProcessor(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, + TimeAveragedValuesSimulationObserver(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, std::shared_ptr<vf::mpi::Communicator> comm, int options, std::vector<int> levels, std::vector<real> &levelCoords, std::vector<real> &bounds, bool timeAveraging = true); diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.cpp new file mode 100644 index 000000000..99e7ebafd --- /dev/null +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.cpp @@ -0,0 +1,22 @@ +#include "TimeDependentBCSimulationObserver.h" + +#include "Grid3D.h" +#include "Interactor3D.h" +#include "UbScheduler.h" + +TimeDependentBCSimulationObserver::TimeDependentBCSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s) : SimulationObserver(grid, s) {} +////////////////////////////////////////////////////////////////////////// +TimeDependentBCSimulationObserver::~TimeDependentBCSimulationObserver() = default; +////////////////////////////////////////////////////////////////////////// +void TimeDependentBCSimulationObserver::process(real step) +{ + if (scheduler->isDue(step)) { + for (SPtr<Interactor3D> inter : interactors) + inter->updateInteractor(step); + UBLOG(logDEBUG3, "TimeDependentBCSimulationObserver::update:" << step); + } +} +////////////////////////////////////////////////////////////////////////// +void TimeDependentBCSimulationObserver::addInteractor(SPtr<Interactor3D> interactor) { interactors.push_back(interactor); } + +////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.h new file mode 100644 index 000000000..32a1ea780 --- /dev/null +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.h @@ -0,0 +1,30 @@ +#ifndef TimeDependentBCSimulationObserver_H +#define TimeDependentBCSimulationObserver_H + +#include <PointerDefinitions.h> +#include <vector> + +#include "SimulationObserver.h" + +class Interactor3D; +class Grid3D; + +//! \brief The class update interactors depend of time step. +//! \details TimeDependentBCSimulationObserver update every time step information in BCs throw Interactors +//! \author Sonja Uphoff, Kostyantyn Kucher +class TimeDependentBCSimulationObserver : public SimulationObserver +{ +public: + TimeDependentBCSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s); + ~TimeDependentBCSimulationObserver() override; + + void process(real step) override; + + //! add interactors to SimulationObserver + void addInteractor(SPtr<Interactor3D> interactor); + +private: + std::vector<SPtr<Interactor3D>> interactors; +}; + +#endif /* TimeDependentBCSimulationObserver_H */ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/TimeseriesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.cpp similarity index 77% rename from src/cpu/VirtualFluidsCore/CoProcessors/TimeseriesCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.cpp index b897d4df1..861045cf6 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/TimeseriesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.cpp @@ -1,11 +1,11 @@ /* - * TimeseriesWriterCoProcessor.h + * TimeseriesWriterSimulationObserver.h * * Created on: 08.05.2013 * Author: uphoff */ -#include "TimeseriesCoProcessor.h" +#include "TimeseriesSimulationObserver.h" #include <fstream> @@ -15,15 +15,15 @@ #include "LBMUnitConverter.h" #include "UbScheduler.h" -TimeseriesCoProcessor::TimeseriesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<IntegrateValuesHelper> h1, +TimeseriesSimulationObserver::TimeseriesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<IntegrateValuesHelper> h1, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), h1(h1), path(path), comm(comm) + : SimulationObserver(grid, s), h1(h1), path(path), comm(comm) { if (comm->getProcessID() == comm->getRoot()) { std::ofstream ostr; // fname = path+"/timeseries/timeseries"+UbSystem::toString(grid->getTimeStep())+".csv"; fname = path + ".csv"; - UBLOG(logINFO, "TimeseriesWriterCoProcessor::fname:" << fname); + UBLOG(logINFO, "TimeseriesWriterSimulationObserver::fname:" << fname); ostr.open(fname.c_str(), std::ios_base::out | std::ios_base::app); if (!ostr) { ostr.clear(); @@ -37,23 +37,23 @@ TimeseriesCoProcessor::TimeseriesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler } ostr << "step;rho;vx;vy;vz;volume\n"; ostr.close(); - UBLOG(logINFO, "TimeseriesWriterCoProcessor::Constructor:end"); + UBLOG(logINFO, "TimeseriesWriterSimulationObserver::Constructor:end"); } } ////////////////////////////////////////////////////////////////////////// -TimeseriesCoProcessor::~TimeseriesCoProcessor() = default; +TimeseriesSimulationObserver::~TimeseriesSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -void TimeseriesCoProcessor::process(real step) +void TimeseriesSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); } ////////////////////////////////////////////////////////////////////////// -void TimeseriesCoProcessor::collectData(real step) +void TimeseriesSimulationObserver::collectData(real step) { h1->calculateMQ(); - UBLOG(logDEBUG3, "TimeseriesWriterCoProcessor::update:" << step); + UBLOG(logDEBUG3, "TimeseriesWriterSimulationObserver::update:" << step); if (comm->getProcessID() == comm->getRoot()) { int istep = static_cast<int>(step); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/TimeseriesCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.h similarity index 69% rename from src/cpu/VirtualFluidsCore/CoProcessors/TimeseriesCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.h index 7cdc98fd0..1cc7ed375 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/TimeseriesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.h @@ -1,17 +1,17 @@ /* - * TimeseriesCoProcessor.h + * TimeseriesSimulationObserver.h * * Created on: 08.05.2013 * Author: uphoff */ -#ifndef TimeseriesCoProcessor_H -#define TimeseriesCoProcessor_H +#ifndef TimeseriesSimulationObserver_H +#define TimeseriesSimulationObserver_H #include <PointerDefinitions.h> #include <string> -#include "CoProcessor.h" +#include "SimulationObserver.h" namespace vf::mpi {class Communicator;} class Grid3D; @@ -23,12 +23,12 @@ class IntegrateValuesHelper; //! \author Sonja Uphoff //! \date May 2013 -class TimeseriesCoProcessor : public CoProcessor +class TimeseriesSimulationObserver : public SimulationObserver { public: - TimeseriesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<IntegrateValuesHelper> h1, + TimeseriesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<IntegrateValuesHelper> h1, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm); - ~TimeseriesCoProcessor() override; + ~TimeseriesSimulationObserver() override; //! calls collectData. void process(real step) override; @@ -45,4 +45,4 @@ private: std::string fname; }; -#endif /* TimeseriesCoProcessor_H */ +#endif /* TimeseriesSimulationObserver_H */ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.cpp similarity index 93% rename from src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.cpp index 7293ded40..ee19e1bf2 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "TurbulenceIntensityCoProcessor.h" +#include "TurbulenceIntensitySimulationObserver.h" #include "BCArray3D.h" #include "BCSet.h" @@ -12,15 +12,15 @@ #include "basics/utilities/UbMath.h" #include "basics/writer/WbWriterVtkXmlASCII.h" -TurbulenceIntensityCoProcessor::TurbulenceIntensityCoProcessor(SPtr<Grid3D> grid, const std::string &path, +TurbulenceIntensitySimulationObserver::TurbulenceIntensitySimulationObserver(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), comm(comm), writer(writer) + : SimulationObserver(grid, s), path(path), comm(comm), writer(writer) { init(); } ////////////////////////////////////////////////////////////////////////// -void TurbulenceIntensityCoProcessor::init() +void TurbulenceIntensitySimulationObserver::init() { gridRank = grid->getRank(); minInitLevel = this->grid->getCoarsestInitializedLevel(); @@ -40,17 +40,17 @@ void TurbulenceIntensityCoProcessor::init() } } ////////////////////////////////////////////////////////////////////////// -void TurbulenceIntensityCoProcessor::process(real step) +void TurbulenceIntensitySimulationObserver::process(real step) { calculateAverageValues(int(step)); if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "TurbulenceIntensityCoProcessor::update:" << step); + UBLOG(logDEBUG3, "TurbulenceIntensitySimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void TurbulenceIntensityCoProcessor::collectData(real step) +void TurbulenceIntensitySimulationObserver::collectData(real step) { int istep = int(step); @@ -76,18 +76,18 @@ void TurbulenceIntensityCoProcessor::collectData(real step) std::vector<std::string> filenames; filenames.push_back(pname); - if (step == CoProcessor::scheduler->getMinBegin()) { + if (step == SimulationObserver::scheduler->getMinBegin()) { WbWriterVtkXmlASCII::getInstance()->writeCollection(path + "_collection", filenames, istep, false); } else { WbWriterVtkXmlASCII::getInstance()->addFilesToCollection(path + "_collection", filenames, istep, false); } - UBLOG(logINFO, "TurbulenceIntensityCoProcessor step: " << istep); + UBLOG(logINFO, "TurbulenceIntensitySimulationObserver step: " << istep); } clearData(); } ////////////////////////////////////////////////////////////////////////// -void TurbulenceIntensityCoProcessor::clearData() +void TurbulenceIntensitySimulationObserver::clearData() { nodes.clear(); cells.clear(); @@ -95,7 +95,7 @@ void TurbulenceIntensityCoProcessor::clearData() data.clear(); } ////////////////////////////////////////////////////////////////////////// -void TurbulenceIntensityCoProcessor::addData(const SPtr<Block3D> block) +void TurbulenceIntensitySimulationObserver::addData(const SPtr<Block3D> block) { UbTupleDouble3 org = grid->getBlockWorldCoordinates(block); // UbTupleDouble3 blockLengths = grid->getBlockLengths(block); @@ -179,7 +179,7 @@ void TurbulenceIntensityCoProcessor::addData(const SPtr<Block3D> block) } } ////////////////////////////////////////////////////////////////////////// -void TurbulenceIntensityCoProcessor::calculateAverageValues(real timeStep) +void TurbulenceIntensitySimulationObserver::calculateAverageValues(real timeStep) { using namespace vf::lbm::dir; using namespace D3Q27System; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.h similarity index 75% rename from src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.h index 8f11e94b4..edede6fe6 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.h @@ -1,11 +1,11 @@ -#ifndef TurbulenceIntensityCoProcessor_H -#define TurbulenceIntensityCoProcessor_H +#ifndef TurbulenceIntensitySimulationObserver_H +#define TurbulenceIntensitySimulationObserver_H #include <PointerDefinitions.h> #include <string> #include <vector> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "UbTuple.h" namespace vf::mpi {class Communicator;} @@ -14,10 +14,10 @@ class UbScheduler; class WbWriter; class Block3D; -class TurbulenceIntensityCoProcessor : public CoProcessor +class TurbulenceIntensitySimulationObserver : public SimulationObserver { public: - TurbulenceIntensityCoProcessor(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, + TurbulenceIntensitySimulationObserver(SPtr<Grid3D> grid, const std::string &path, WbWriter *const writer, SPtr<UbScheduler> s, std::shared_ptr<vf::mpi::Communicator> comm); void process(real step) override; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.cpp similarity index 92% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.cpp index de781d96b..8dec964fd 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.cpp @@ -26,12 +26,12 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file WriteBlocksCoProcessor.cpp -//! \ingroup CoProcessors +//! \file WriteBlocksSimulationObserver.cpp +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#include "WriteBlocksCoProcessor.h" +#include "WriteBlocksSimulationObserver.h" #include "basics/writer/WbWriterVtkXmlASCII.h" #include <logger/Logger.h> @@ -41,21 +41,21 @@ #include "Grid3D.h" #include "UbScheduler.h" -WriteBlocksCoProcessor::WriteBlocksCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, +WriteBlocksSimulationObserver::WriteBlocksSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), writer(writer), comm(comm) + : SimulationObserver(grid, s), path(path), writer(writer), comm(comm) { } ////////////////////////////////////////////////////////////////////////// -WriteBlocksCoProcessor::~WriteBlocksCoProcessor() = default; +WriteBlocksSimulationObserver::~WriteBlocksSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -void WriteBlocksCoProcessor::process(real step) +void WriteBlocksSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); } ////////////////////////////////////////////////////////////////////////// -void WriteBlocksCoProcessor::collectData(real step) +void WriteBlocksSimulationObserver::collectData(real step) { if (comm->getProcessID() == comm->getRoot()) { int istep = int(step); @@ -173,7 +173,7 @@ void WriteBlocksCoProcessor::collectData(real step) path + "/blocks/blocks_" + UbSystem::toString(grid->getRank()) + "_" + UbSystem::toString(istep), nodes, cells, celldatanames, celldata)); - if (istep == CoProcessor::scheduler->getMinBegin()) { + if (istep == SimulationObserver::scheduler->getMinBegin()) { WbWriterVtkXmlASCII::getInstance()->writeCollection(path + "/blocks/blocks_collection", filenames, istep, false); } else { @@ -181,6 +181,6 @@ void WriteBlocksCoProcessor::collectData(real step) istep, false); } - VF_LOG_INFO("WriteBlocksCoProcessor step: {}", istep); + VF_LOG_INFO("WriteBlocksSimulationObserver step: {}", istep); } } diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.h similarity index 84% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.h index c94cd1e64..4bc210c82 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.h @@ -26,39 +26,39 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file WriteBlocksCoProcessor.h -//! \ingroup CoProcessors +//! \file WriteBlocksSimulationObserver.h +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#ifndef WriteBlocksCoProcessor_H_ -#define WriteBlocksCoProcessor_H_ +#ifndef WriteBlocksSimulationObserver_H_ +#define WriteBlocksSimulationObserver_H_ #include <PointerDefinitions.h> #include <string> -#include "CoProcessor.h" +#include "SimulationObserver.h" namespace vf::mpi {class Communicator;} class Grid3D; class UbScheduler; class WbWriter; -//! \class WriteBlocksCoProcessor +//! \class WriteBlocksSimulationObserver //! \brief A class writes a block grid to a VTK-file -class WriteBlocksCoProcessor : public CoProcessor +class WriteBlocksSimulationObserver : public SimulationObserver { public: - //! \brief Construct WriteBlocksCoProcessor object. + //! \brief Construct WriteBlocksSimulationObserver object. //! \pre The Grid3D and UbScheduler objects must exist. //! \param grid is observable Grid3D object //! \param s is UbScheduler object for scheduling of observer //! \param path is path of folder for output //! \param writer is WbWriter object //! \param comm is Communicator object - WriteBlocksCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, + WriteBlocksSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, std::shared_ptr<vf::mpi::Communicator> comm); - ~WriteBlocksCoProcessor() override; + ~WriteBlocksSimulationObserver() override; void process(real step) override; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.cpp similarity index 90% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.cpp index 365b819aa..9685a942a 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.cpp @@ -26,12 +26,12 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file WriteBoundaryConditionsCoProcessor.cpp -//! \ingroup CoProcessors +//! \file WriteBoundaryConditionsSimulationObserver.cpp +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#include "WriteBoundaryConditionsCoProcessor.h" +#include "WriteBoundaryConditionsSimulationObserver.h" #include "BCSet.h" #include "LBMKernel.h" #include <string> @@ -51,12 +51,12 @@ using namespace std; -WriteBoundaryConditionsCoProcessor::WriteBoundaryConditionsCoProcessor() = default; +WriteBoundaryConditionsSimulationObserver::WriteBoundaryConditionsSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -WriteBoundaryConditionsCoProcessor::WriteBoundaryConditionsCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, +WriteBoundaryConditionsSimulationObserver::WriteBoundaryConditionsSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), writer(writer), comm(comm) + : SimulationObserver(grid, s), path(path), writer(writer), comm(comm) { gridRank = comm->getProcessID(); minInitLevel = this->grid->getCoarsestInitializedLevel(); @@ -69,15 +69,15 @@ WriteBoundaryConditionsCoProcessor::WriteBoundaryConditionsCoProcessor(SPtr<Grid } } ////////////////////////////////////////////////////////////////////////// -void WriteBoundaryConditionsCoProcessor::process(real step) +void WriteBoundaryConditionsSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "WriteBoundaryConditionsCoProcessor::update:" << step); + UBLOG(logDEBUG3, "WriteBoundaryConditionsSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void WriteBoundaryConditionsCoProcessor::collectData(real step) +void WriteBoundaryConditionsSimulationObserver::collectData(real step) { int istep = static_cast<int>(step); @@ -111,18 +111,18 @@ void WriteBoundaryConditionsCoProcessor::collectData(real step) vector<string> filenames; filenames.push_back(piece); - if (step == CoProcessor::scheduler->getMinBegin()) { + if (step == SimulationObserver::scheduler->getMinBegin()) { WbWriterVtkXmlASCII::getInstance()->writeCollection(cfilePath, filenames, istep, false); } else { WbWriterVtkXmlASCII::getInstance()->addFilesToCollection(cfilePath, filenames, istep, false); } - VF_LOG_INFO("WriteBoundaryConditionsCoProcessor step: {}", istep); + VF_LOG_INFO("WriteBoundaryConditionsSimulationObserver step: {}", istep); } clearData(); } ////////////////////////////////////////////////////////////////////////// -void WriteBoundaryConditionsCoProcessor::clearData() +void WriteBoundaryConditionsSimulationObserver::clearData() { nodes.clear(); cells.clear(); @@ -130,7 +130,7 @@ void WriteBoundaryConditionsCoProcessor::clearData() data.clear(); } ////////////////////////////////////////////////////////////////////////// -void WriteBoundaryConditionsCoProcessor::addDataGeo(SPtr<Block3D> block) +void WriteBoundaryConditionsSimulationObserver::addDataGeo(SPtr<Block3D> block) { UbTupleDouble3 org = grid->getBlockWorldCoordinates(block); UbTupleDouble3 nodeOffset = grid->getNodeOffset(block); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.h similarity index 85% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.h index 31f2a5c8e..86ff363d5 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.h @@ -26,19 +26,19 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file WriteBoundaryConditionsCoProcessor.h -//! \ingroup CoProcessors +//! \file WriteBoundaryConditionsSimulationObserver.h +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#ifndef WriteBoundaryConditionsCoProcessor_H -#define WriteBoundaryConditionsCoProcessor_H +#ifndef WriteBoundaryConditionsSimulationObserver_H +#define WriteBoundaryConditionsSimulationObserver_H #include <PointerDefinitions.h> #include <string> #include <vector> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "UbTuple.h" namespace vf::mpi {class Communicator;} @@ -49,20 +49,20 @@ class Block3D; class LBMUnitConverter; //! \brief A class writes boundary conditions information to a VTK-file -class WriteBoundaryConditionsCoProcessor : public CoProcessor +class WriteBoundaryConditionsSimulationObserver : public SimulationObserver { public: - WriteBoundaryConditionsCoProcessor(); - //! \brief Construct WriteBoundaryConditionsCoProcessor object + WriteBoundaryConditionsSimulationObserver(); + //! \brief Construct WriteBoundaryConditionsSimulationObserver object //! \pre The Grid3D and UbScheduler objects must exist //! \param grid is observable Grid3D object //! \param s is UbScheduler object for scheduling of observer //! \param path is path of folder for output //! \param writer is WbWriter object //! \param comm is Communicator object - WriteBoundaryConditionsCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, + WriteBoundaryConditionsSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, std::shared_ptr<vf::mpi::Communicator> comm); - ~WriteBoundaryConditionsCoProcessor() override = default; + ~WriteBoundaryConditionsSimulationObserver() override = default; void process(real step) override; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteGbObjectsCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.cpp similarity index 73% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteGbObjectsCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.cpp index b47f10561..7f2b699e4 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteGbObjectsCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "WriteGbObjectsCoProcessor.h" +#include "WriteGbObjectsSimulationObserver.h" #include <mpi/Communicator.h> #include "GbObject3D.h" #include "UbScheduler.h" @@ -6,23 +6,23 @@ #include "WbWriterVtkXmlBinary.h" #include <vector> -WriteGbObjectsCoProcessor::WriteGbObjectsCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, +WriteGbObjectsSimulationObserver::WriteGbObjectsSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), writer(writer), comm(comm) + : SimulationObserver(grid, s), path(path), writer(writer), comm(comm) { } ////////////////////////////////////////////////////////////////////////// -WriteGbObjectsCoProcessor::~WriteGbObjectsCoProcessor() = default; +WriteGbObjectsSimulationObserver::~WriteGbObjectsSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -void WriteGbObjectsCoProcessor::process(real step) +void WriteGbObjectsSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); } ////////////////////////////////////////////////////////////////////////// -void WriteGbObjectsCoProcessor::addGbObject(SPtr<GbObject3D> object) { objects.push_back(object); } +void WriteGbObjectsSimulationObserver::addGbObject(SPtr<GbObject3D> object) { objects.push_back(object); } ////////////////////////////////////////////////////////////////////////// -void WriteGbObjectsCoProcessor::collectData(real step) +void WriteGbObjectsSimulationObserver::collectData(real step) { std::vector<UbTupleFloat3> nodes; std::vector<UbTupleInt3> triangles; @@ -62,12 +62,12 @@ void WriteGbObjectsCoProcessor::collectData(real step) std::vector<std::string> filenames; filenames.push_back(piece); - if (step == CoProcessor::scheduler->getMinBegin()) { + if (step == SimulationObserver::scheduler->getMinBegin()) { WbWriterVtkXmlASCII::getInstance()->writeCollection(cfilePath, filenames, istep, false); } else { WbWriterVtkXmlASCII::getInstance()->addFilesToCollection(cfilePath, filenames, istep, false); } - UBLOG(logINFO, "WriteGbObjectsCoProcessor number of objects: " << numObjcts); - UBLOG(logINFO, "WriteGbObjectsCoProcessor step: " << istep); + UBLOG(logINFO, "WriteGbObjectsSimulationObserver number of objects: " << numObjcts); + UBLOG(logINFO, "WriteGbObjectsSimulationObserver step: " << istep); } } diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteGbObjectsCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.h similarity index 66% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteGbObjectsCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.h index 5b502044f..7fa770917 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteGbObjectsCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.h @@ -1,7 +1,7 @@ -#ifndef WriteGbObjectsCoProcessor_h__ -#define WriteGbObjectsCoProcessor_h__ +#ifndef WriteGbObjectsSimulationObserver_h__ +#define WriteGbObjectsSimulationObserver_h__ -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "UbTuple.h" #include <vector> @@ -17,12 +17,12 @@ class WbWriter; //! \author Konstantin Kutscher //! \date December 2018 -class WriteGbObjectsCoProcessor : public CoProcessor +class WriteGbObjectsSimulationObserver : public SimulationObserver { public: - WriteGbObjectsCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, + WriteGbObjectsSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, std::shared_ptr<vf::mpi::Communicator> comm); - ~WriteGbObjectsCoProcessor() override; + ~WriteGbObjectsSimulationObserver() override; //! calls collectData. void process(real step) override; //! adds geometry object @@ -38,4 +38,4 @@ private: std::shared_ptr<vf::mpi::Communicator> comm; }; -#endif // WriteGbObjectsCoProcessor_h__ \ No newline at end of file +#endif // WriteGbObjectsSimulationObserver_h__ \ No newline at end of file diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.cpp similarity index 90% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.cpp index 2952328f6..a9f837653 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.cpp @@ -1,4 +1,4 @@ -#include "WriteMQFromSelectionCoProcessor.h" +#include "WriteMQFromSelectionSimulationObserver.h" #include "BCSet.h" #include "LBMKernel.h" #include <string> @@ -14,13 +14,13 @@ #include "UbScheduler.h" #include "basics/writer/WbWriterVtkXmlASCII.h" -WriteMQFromSelectionCoProcessor::WriteMQFromSelectionCoProcessor() = default; +WriteMQFromSelectionSimulationObserver::WriteMQFromSelectionSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -WriteMQFromSelectionCoProcessor::WriteMQFromSelectionCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, +WriteMQFromSelectionSimulationObserver::WriteMQFromSelectionSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<GbObject3D> gbObject, const std::string &path, WbWriter *const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), gbObject(gbObject), path(path), writer(writer), conv(conv), comm(comm) + : SimulationObserver(grid, s), gbObject(gbObject), path(path), writer(writer), conv(conv), comm(comm) { gridRank = comm->getProcessID(); minInitLevel = this->grid->getCoarsestInitializedLevel(); @@ -33,17 +33,17 @@ WriteMQFromSelectionCoProcessor::WriteMQFromSelectionCoProcessor(SPtr<Grid3D> gr } } ////////////////////////////////////////////////////////////////////////// -void WriteMQFromSelectionCoProcessor::init() {} +void WriteMQFromSelectionSimulationObserver::init() {} ////////////////////////////////////////////////////////////////////////// -void WriteMQFromSelectionCoProcessor::process(real step) +void WriteMQFromSelectionSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "WriteMQFromSelectionCoProcessor::update:" << step); + UBLOG(logDEBUG3, "WriteMQFromSelectionSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void WriteMQFromSelectionCoProcessor::collectData(real step) +void WriteMQFromSelectionSimulationObserver::collectData(real step) { int istep = static_cast<int>(step); @@ -90,25 +90,25 @@ void WriteMQFromSelectionCoProcessor::collectData(real step) std::vector<std::string> filenames; filenames.push_back(piece); - if (step == CoProcessor::scheduler->getMinBegin()) { + if (step == SimulationObserver::scheduler->getMinBegin()) { WbWriterVtkXmlASCII::getInstance()->writeCollection(cfilePath, filenames, istep, false); } else { WbWriterVtkXmlASCII::getInstance()->addFilesToCollection(cfilePath, filenames, istep, false); } - UBLOG(logINFO, "WriteMQFromSelectionCoProcessor step: " << istep); + UBLOG(logINFO, "WriteMQFromSelectionSimulationObserver step: " << istep); } clearData(); } ////////////////////////////////////////////////////////////////////////// -void WriteMQFromSelectionCoProcessor::clearData() +void WriteMQFromSelectionSimulationObserver::clearData() { nodes.clear(); datanames.clear(); data.clear(); } ////////////////////////////////////////////////////////////////////////// -void WriteMQFromSelectionCoProcessor::addDataMQ(SPtr<Block3D> block) +void WriteMQFromSelectionSimulationObserver::addDataMQ(SPtr<Block3D> block) { real level = (real)block->getLevel(); // double blockID = (double)block->getGlobalID(); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.h similarity index 73% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.h index 64e757279..23af9d28f 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.h @@ -1,11 +1,11 @@ -#ifndef WriteMQFromSelectionCoProcessor_H -#define WriteMQFromSelectionCoProcessor_H +#ifndef WriteMQFromSelectionSimulationObserver_H +#define WriteMQFromSelectionSimulationObserver_H #include <PointerDefinitions.h> #include <string> #include <vector> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "LBMSystem.h" #include "UbTuple.h" @@ -18,14 +18,14 @@ class WbWriter; class Block3D; class GbObject3D; -class WriteMQFromSelectionCoProcessor : public CoProcessor +class WriteMQFromSelectionSimulationObserver : public SimulationObserver { public: - WriteMQFromSelectionCoProcessor(); - WriteMQFromSelectionCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<GbObject3D> gbObject, + WriteMQFromSelectionSimulationObserver(); + WriteMQFromSelectionSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, SPtr<GbObject3D> gbObject, const std::string &path, WbWriter *const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm); - ~WriteMQFromSelectionCoProcessor() override = default; + ~WriteMQFromSelectionSimulationObserver() override = default; void process(real step) override; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.cpp similarity index 91% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.cpp index 35421654f..f20c4c91b 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.cpp @@ -26,12 +26,12 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file WriteMacroscopicQuantitiesPlusMassCoProcessor.cpp -//! \ingroup CoProcessors +//! \file WriteMacroscopicQuantitiesPlusMassSimulationObserver.cpp +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#include "WriteMacroscopicQuantitiesPlusMassCoProcessor.h" +#include "WriteMacroscopicQuantitiesPlusMassSimulationObserver.h" #include "BCSet.h" #include "LBMKernel.h" #include <string> @@ -46,14 +46,14 @@ #include "UbScheduler.h" #include "basics/writer/WbWriterVtkXmlASCII.h" -WriteMacroscopicQuantitiesPlusMassCoProcessor::WriteMacroscopicQuantitiesPlusMassCoProcessor() = default; +WriteMacroscopicQuantitiesPlusMassSimulationObserver::WriteMacroscopicQuantitiesPlusMassSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -WriteMacroscopicQuantitiesPlusMassCoProcessor::WriteMacroscopicQuantitiesPlusMassCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, +WriteMacroscopicQuantitiesPlusMassSimulationObserver::WriteMacroscopicQuantitiesPlusMassSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), writer(writer), conv(conv), comm(comm) + : SimulationObserver(grid, s), path(path), writer(writer), conv(conv), comm(comm) { gridRank = comm->getProcessID(); minInitLevel = this->grid->getCoarsestInitializedLevel(); @@ -68,20 +68,20 @@ WriteMacroscopicQuantitiesPlusMassCoProcessor::WriteMacroscopicQuantitiesPlusMas } ////////////////////////////////////////////////////////////////////////// -void WriteMacroscopicQuantitiesPlusMassCoProcessor::init() +void WriteMacroscopicQuantitiesPlusMassSimulationObserver::init() {} ////////////////////////////////////////////////////////////////////////// -void WriteMacroscopicQuantitiesPlusMassCoProcessor::process(real step) +void WriteMacroscopicQuantitiesPlusMassSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "WriteMacroscopicQuantitiesPlusMassCoProcessor::update:" << step); + UBLOG(logDEBUG3, "WriteMacroscopicQuantitiesPlusMassSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void WriteMacroscopicQuantitiesPlusMassCoProcessor::collectData(real step) +void WriteMacroscopicQuantitiesPlusMassSimulationObserver::collectData(real step) { int istep = static_cast<int>(step); @@ -118,21 +118,21 @@ void WriteMacroscopicQuantitiesPlusMassCoProcessor::collectData(real step) std::vector<std::string> filenames; filenames.push_back(piece); - if (step == CoProcessor::scheduler->getMinBegin()) + if (step == SimulationObserver::scheduler->getMinBegin()) { WbWriterVtkXmlASCII::getInstance()->writeCollection(cfilePath, filenames, istep, false); } else { WbWriterVtkXmlASCII::getInstance()->addFilesToCollection(cfilePath, filenames, istep, false); } - UBLOG(logINFO, "WriteMacroscopicQuantitiesPlusMassCoProcessor step: " << istep); + UBLOG(logINFO, "WriteMacroscopicQuantitiesPlusMassSimulationObserver step: " << istep); } clearData(); } ////////////////////////////////////////////////////////////////////////// -void WriteMacroscopicQuantitiesPlusMassCoProcessor::clearData() +void WriteMacroscopicQuantitiesPlusMassSimulationObserver::clearData() { nodes.clear(); cells.clear(); @@ -141,7 +141,7 @@ void WriteMacroscopicQuantitiesPlusMassCoProcessor::clearData() } ////////////////////////////////////////////////////////////////////////// -void WriteMacroscopicQuantitiesPlusMassCoProcessor::addDataMQ(SPtr<Block3D> block) +void WriteMacroscopicQuantitiesPlusMassSimulationObserver::addDataMQ(SPtr<Block3D> block) { real level = (real)block->getLevel(); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.h similarity index 84% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.h index 9251bfc22..9da90c1d7 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.h @@ -26,19 +26,19 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file WriteMacroscopicQuantitiesPlusMassCoProcessor.h -//! \ingroup CoProcessors +//! \file WriteMacroscopicQuantitiesPlusMassSimulationObserver.h +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#ifndef WriteMacroscopicQuantitiesPlusMassCoProcessor_H -#define WriteMacroscopicQuantitiesPlusMassCoProcessor_H +#ifndef WriteMacroscopicQuantitiesPlusMassSimulationObserver_H +#define WriteMacroscopicQuantitiesPlusMassSimulationObserver_H #include <PointerDefinitions.h> #include <string> #include <vector> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "LBMSystem.h" #include "UbTuple.h" @@ -50,11 +50,11 @@ class WbWriter; class Block3D; //! \brief A class writes macroscopic quantities information to a VTK-file -class WriteMacroscopicQuantitiesPlusMassCoProcessor : public CoProcessor +class WriteMacroscopicQuantitiesPlusMassSimulationObserver : public SimulationObserver { public: - WriteMacroscopicQuantitiesPlusMassCoProcessor(); - //! \brief Construct WriteMacroscopicQuantitiesPlusMassCoProcessor object + WriteMacroscopicQuantitiesPlusMassSimulationObserver(); + //! \brief Construct WriteMacroscopicQuantitiesPlusMassSimulationObserver object //! \pre The Grid3D and UbScheduler objects must exist //! \param grid is observable Grid3D object //! \param s is UbScheduler object for scheduling of observer @@ -62,9 +62,9 @@ public: //! \param writer is WbWriter object //! \param conv is LBMUnitConverter object //! \param comm is Communicator object - WriteMacroscopicQuantitiesPlusMassCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, + WriteMacroscopicQuantitiesPlusMassSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm); - ~WriteMacroscopicQuantitiesPlusMassCoProcessor() override = default; + ~WriteMacroscopicQuantitiesPlusMassSimulationObserver() override = default; void process(real step) override; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.cpp similarity index 91% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.cpp index 838c1f143..195ef22a8 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.cpp @@ -26,12 +26,12 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file WriteMacroscopicQuantitiesCoProcessor.cpp -//! \ingroup CoProcessors +//! \file WriteMacroscopicQuantitiesSimulationObserver.cpp +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#include "WriteMacroscopicQuantitiesCoProcessor.h" +#include "WriteMacroscopicQuantitiesSimulationObserver.h" #include "BCSet.h" #include "LBMKernel.h" #include <string> @@ -46,14 +46,14 @@ #include "UbScheduler.h" #include "basics/writer/WbWriterVtkXmlASCII.h" -WriteMacroscopicQuantitiesCoProcessor::WriteMacroscopicQuantitiesCoProcessor() = default; +WriteMacroscopicQuantitiesSimulationObserver::WriteMacroscopicQuantitiesSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -WriteMacroscopicQuantitiesCoProcessor::WriteMacroscopicQuantitiesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, +WriteMacroscopicQuantitiesSimulationObserver::WriteMacroscopicQuantitiesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), writer(writer), conv(conv), comm(comm) + : SimulationObserver(grid, s), path(path), writer(writer), conv(conv), comm(comm) { gridRank = comm->getProcessID(); minInitLevel = this->grid->getCoarsestInitializedLevel(); @@ -68,20 +68,20 @@ WriteMacroscopicQuantitiesCoProcessor::WriteMacroscopicQuantitiesCoProcessor(SPt } ////////////////////////////////////////////////////////////////////////// -void WriteMacroscopicQuantitiesCoProcessor::init() +void WriteMacroscopicQuantitiesSimulationObserver::init() {} ////////////////////////////////////////////////////////////////////////// -void WriteMacroscopicQuantitiesCoProcessor::process(real step) +void WriteMacroscopicQuantitiesSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "WriteMacroscopicQuantitiesCoProcessor::update:" << step); + UBLOG(logDEBUG3, "WriteMacroscopicQuantitiesSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void WriteMacroscopicQuantitiesCoProcessor::collectData(real step) +void WriteMacroscopicQuantitiesSimulationObserver::collectData(real step) { int istep = static_cast<int>(step); @@ -118,21 +118,21 @@ void WriteMacroscopicQuantitiesCoProcessor::collectData(real step) std::vector<std::string> filenames; filenames.push_back(piece); - if (step == CoProcessor::scheduler->getMinBegin()) + if (step == SimulationObserver::scheduler->getMinBegin()) { WbWriterVtkXmlASCII::getInstance()->writeCollection(cfilePath, filenames, istep, false); } else { WbWriterVtkXmlASCII::getInstance()->addFilesToCollection(cfilePath, filenames, istep, false); } - UBLOG(logINFO, "WriteMacroscopicQuantitiesCoProcessor step: " << istep); + UBLOG(logINFO, "WriteMacroscopicQuantitiesSimulationObserver step: " << istep); } clearData(); } ////////////////////////////////////////////////////////////////////////// -void WriteMacroscopicQuantitiesCoProcessor::clearData() +void WriteMacroscopicQuantitiesSimulationObserver::clearData() { nodes.clear(); cells.clear(); @@ -141,7 +141,7 @@ void WriteMacroscopicQuantitiesCoProcessor::clearData() } ////////////////////////////////////////////////////////////////////////// -void WriteMacroscopicQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) +void WriteMacroscopicQuantitiesSimulationObserver::addDataMQ(SPtr<Block3D> block) { real level = (real)block->getLevel(); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.h similarity index 85% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.h index 1815d480f..02c76ea2e 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.h @@ -26,19 +26,19 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file WriteMacroscopicQuantitiesCoProcessor.h -//! \ingroup CoProcessors +//! \file WriteMacroscopicQuantitiesSimulationObserver.h +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#ifndef WriteMacroscopicQuantitiesCoProcessor_H -#define WriteMacroscopicQuantitiesCoProcessor_H +#ifndef WriteMacroscopicQuantitiesSimulationObserver_H +#define WriteMacroscopicQuantitiesSimulationObserver_H #include <PointerDefinitions.h> #include <string> #include <vector> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "LBMSystem.h" #include "UbTuple.h" @@ -50,11 +50,11 @@ class WbWriter; class Block3D; //! \brief A class writes macroscopic quantities information to a VTK-file -class WriteMacroscopicQuantitiesCoProcessor : public CoProcessor +class WriteMacroscopicQuantitiesSimulationObserver : public SimulationObserver { public: - WriteMacroscopicQuantitiesCoProcessor(); - //! \brief Construct WriteMacroscopicQuantitiesCoProcessor object + WriteMacroscopicQuantitiesSimulationObserver(); + //! \brief Construct WriteMacroscopicQuantitiesSimulationObserver object //! \pre The Grid3D and UbScheduler objects must exist //! \param grid is observable Grid3D object //! \param s is UbScheduler object for scheduling of observer @@ -62,9 +62,9 @@ public: //! \param writer is WbWriter object //! \param conv is LBMUnitConverter object //! \param comm is Communicator object - WriteMacroscopicQuantitiesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, + WriteMacroscopicQuantitiesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm); - ~WriteMacroscopicQuantitiesCoProcessor() override = default; + ~WriteMacroscopicQuantitiesSimulationObserver() override = default; void process(real step) override; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.cpp similarity index 94% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.cpp index e092f4cfd..46d1d7c83 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.cpp @@ -26,12 +26,12 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file WriteMultiphaseQuantitiesCoProcessor.cpp -//! \ingroup CoProcessors +//! \file WriteMultiphaseQuantitiesSimulationObserver.cpp +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#include "WriteMultiphaseQuantitiesCoProcessor.h" +#include "WriteMultiphaseQuantitiesSimulationObserver.h" #include "BCSet.h" #include "LBMKernel.h" #include <string> @@ -47,14 +47,14 @@ #include "basics/writer/WbWriterVtkXmlASCII.h" #include <logger/Logger.h> -WriteMultiphaseQuantitiesCoProcessor::WriteMultiphaseQuantitiesCoProcessor() = default; +WriteMultiphaseQuantitiesSimulationObserver::WriteMultiphaseQuantitiesSimulationObserver() = default; ////////////////////////////////////////////////////////////////////////// -WriteMultiphaseQuantitiesCoProcessor::WriteMultiphaseQuantitiesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, +WriteMultiphaseQuantitiesSimulationObserver::WriteMultiphaseQuantitiesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm) - : CoProcessor(grid, s), path(path), writer(writer), conv(conv), comm(comm) + : SimulationObserver(grid, s), path(path), writer(writer), conv(conv), comm(comm) { gridRank = comm->getProcessID(); minInitLevel = this->grid->getCoarsestInitializedLevel(); @@ -69,21 +69,21 @@ WriteMultiphaseQuantitiesCoProcessor::WriteMultiphaseQuantitiesCoProcessor(SPtr< } ////////////////////////////////////////////////////////////////////////// -void WriteMultiphaseQuantitiesCoProcessor::init() +void WriteMultiphaseQuantitiesSimulationObserver::init() {} ////////////////////////////////////////////////////////////////////////// -void WriteMultiphaseQuantitiesCoProcessor::process(real step) +void WriteMultiphaseQuantitiesSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); - //UBLOG(logDEBUG3, "WriteMultiphaseQuantitiesCoProcessor::update:" << step); - VF_LOG_DEBUG("WriteMultiphaseQuantitiesCoProcessor::update:: {}", step); + //UBLOG(logDEBUG3, "WriteMultiphaseQuantitiesSimulationObserver::update:" << step); + VF_LOG_DEBUG("WriteMultiphaseQuantitiesSimulationObserver::update:: {}", step); } ////////////////////////////////////////////////////////////////////////// -void WriteMultiphaseQuantitiesCoProcessor::collectData(real step) +void WriteMultiphaseQuantitiesSimulationObserver::collectData(real step) { int istep = static_cast<int>(step); @@ -120,22 +120,22 @@ void WriteMultiphaseQuantitiesCoProcessor::collectData(real step) std::vector<std::string> filenames; filenames.push_back(piece); - if (step == CoProcessor::scheduler->getMinBegin()) + if (step == SimulationObserver::scheduler->getMinBegin()) { WbWriterVtkXmlASCII::getInstance()->writeCollection(cfilePath, filenames, istep, false); } else { WbWriterVtkXmlASCII::getInstance()->addFilesToCollection(cfilePath, filenames, istep, false); } - //UBLOG(logINFO, "WriteMultiphaseQuantitiesCoProcessor step: " << istep); - VF_LOG_INFO("WriteMultiphaseQuantitiesCoProcessor step: {}", istep); + //UBLOG(logINFO, "WriteMultiphaseQuantitiesSimulationObserver step: " << istep); + VF_LOG_INFO("WriteMultiphaseQuantitiesSimulationObserver step: {}", istep); } clearData(); } ////////////////////////////////////////////////////////////////////////// -void WriteMultiphaseQuantitiesCoProcessor::clearData() +void WriteMultiphaseQuantitiesSimulationObserver::clearData() { nodes.clear(); cells.clear(); @@ -144,7 +144,7 @@ void WriteMultiphaseQuantitiesCoProcessor::clearData() } ////////////////////////////////////////////////////////////////////////// -void WriteMultiphaseQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) +void WriteMultiphaseQuantitiesSimulationObserver::addDataMQ(SPtr<Block3D> block) { using namespace D3Q27System; // using namespace UbMath; @@ -474,7 +474,7 @@ void WriteMultiphaseQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) } } -real WriteMultiphaseQuantitiesCoProcessor::gradX1_phi(const real *const &h) +real WriteMultiphaseQuantitiesSimulationObserver::gradX1_phi(const real *const &h) { using namespace D3Q27System; real sum = 0.0; @@ -483,7 +483,7 @@ real WriteMultiphaseQuantitiesCoProcessor::gradX1_phi(const real *const &h) } return 3.0 * sum; } -real WriteMultiphaseQuantitiesCoProcessor::gradX2_phi(const real *const &h) +real WriteMultiphaseQuantitiesSimulationObserver::gradX2_phi(const real *const &h) { using namespace D3Q27System; real sum = 0.0; @@ -493,7 +493,7 @@ real WriteMultiphaseQuantitiesCoProcessor::gradX2_phi(const real *const &h) return 3.0 * sum; } -real WriteMultiphaseQuantitiesCoProcessor::gradX3_phi(const real *const &h) +real WriteMultiphaseQuantitiesSimulationObserver::gradX3_phi(const real *const &h) { using namespace D3Q27System; real sum = 0.0; @@ -503,7 +503,7 @@ real WriteMultiphaseQuantitiesCoProcessor::gradX3_phi(const real *const &h) return 3.0 * sum; } -real WriteMultiphaseQuantitiesCoProcessor::nabla2_phi(const real *const &h) +real WriteMultiphaseQuantitiesSimulationObserver::nabla2_phi(const real *const &h) { using namespace vf::lbm::dir; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.h similarity index 86% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.h index de09654bb..9a97b35bc 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.h @@ -26,19 +26,19 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file WriteMultiphaseQuantitiesCoProcessor.h -//! \ingroup CoProcessors +//! \file WriteMultiphaseQuantitiesSimulationObserver.h +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#ifndef WriteMultiphaseQuantitiesCoProcessor_H -#define WriteMultiphaseQuantitiesCoProcessor_H +#ifndef WriteMultiphaseQuantitiesSimulationObserver_H +#define WriteMultiphaseQuantitiesSimulationObserver_H #include <PointerDefinitions.h> #include <string> #include <vector> -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "LBMSystem.h" #include "UbTuple.h" @@ -50,11 +50,11 @@ class WbWriter; class Block3D; //! \brief A class writes macroscopic quantities information to a VTK-file -class WriteMultiphaseQuantitiesCoProcessor : public CoProcessor +class WriteMultiphaseQuantitiesSimulationObserver : public SimulationObserver { public: - WriteMultiphaseQuantitiesCoProcessor(); - //! \brief Construct WriteMultiphaseQuantitiesCoProcessor object + WriteMultiphaseQuantitiesSimulationObserver(); + //! \brief Construct WriteMultiphaseQuantitiesSimulationObserver object //! \pre The Grid3D and UbScheduler objects must exist //! \param grid is observable Grid3D object //! \param s is UbScheduler object for scheduling of observer @@ -62,9 +62,9 @@ public: //! \param writer is WbWriter object //! \param conv is LBMUnitConverter object //! \param comm is Communicator object - WriteMultiphaseQuantitiesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, + WriteMultiphaseQuantitiesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, WbWriter *const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm); - ~WriteMultiphaseQuantitiesCoProcessor() override = default; + ~WriteMultiphaseQuantitiesSimulationObserver() override = default; void process(real step) override; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.cpp similarity index 90% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.cpp rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.cpp index ac17a4ef7..dbfcd2b56 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.cpp @@ -26,11 +26,11 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file WriteMultiphaseQuantitiesCoProcessor.h -//! \ingroup CoProcessors +//! \file WriteMultiphaseQuantitiesSimulationObserver.h +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#include "WriteThixotropyQuantitiesCoProcessor.h" +#include "WriteThixotropyQuantitiesSimulationObserver.h" #include "LBMKernel.h" #include "BCSet.h" #include "UbScheduler.h" @@ -47,12 +47,12 @@ using namespace std; -WriteThixotropyQuantitiesCoProcessor::WriteThixotropyQuantitiesCoProcessor() +WriteThixotropyQuantitiesSimulationObserver::WriteThixotropyQuantitiesSimulationObserver() { } ////////////////////////////////////////////////////////////////////////// -WriteThixotropyQuantitiesCoProcessor::WriteThixotropyQuantitiesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string& path, WbWriter* const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm) : CoProcessor(grid, s), path(path), writer(writer), conv(conv), comm(comm) +WriteThixotropyQuantitiesSimulationObserver::WriteThixotropyQuantitiesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string& path, WbWriter* const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm) : SimulationObserver(grid, s), path(path), writer(writer), conv(conv), comm(comm) { gridRank = comm->getProcessID(); minInitLevel = this->grid->getCoarsestInitializedLevel(); @@ -66,20 +66,20 @@ WriteThixotropyQuantitiesCoProcessor::WriteThixotropyQuantitiesCoProcessor(SPtr< } } ////////////////////////////////////////////////////////////////////////// -void WriteThixotropyQuantitiesCoProcessor::init() +void WriteThixotropyQuantitiesSimulationObserver::init() { } ////////////////////////////////////////////////////////////////////////// -void WriteThixotropyQuantitiesCoProcessor::process(real step) +void WriteThixotropyQuantitiesSimulationObserver::process(real step) { if (scheduler->isDue(step)) collectData(step); - UBLOG(logDEBUG3, "WriteThixotropyQuantitiesCoProcessor::update:" << step); + UBLOG(logDEBUG3, "WriteThixotropyQuantitiesSimulationObserver::update:" << step); } ////////////////////////////////////////////////////////////////////////// -void WriteThixotropyQuantitiesCoProcessor::collectData(real step) +void WriteThixotropyQuantitiesSimulationObserver::collectData(real step) { int istep = static_cast<int>(step); //ConcentrationSum = 0; @@ -118,7 +118,7 @@ void WriteThixotropyQuantitiesCoProcessor::collectData(real step) vector<string> filenames; filenames.push_back(piece); - if (step == CoProcessor::scheduler->getMinBegin()) + if (step == SimulationObserver::scheduler->getMinBegin()) { WbWriterVtkXmlASCII::getInstance()->writeCollection(cfilePath, filenames, istep, false); } @@ -126,13 +126,13 @@ void WriteThixotropyQuantitiesCoProcessor::collectData(real step) { WbWriterVtkXmlASCII::getInstance()->addFilesToCollection(cfilePath, filenames, istep, false); } - UBLOG(logINFO, "WriteThixotropyQuantitiesCoProcessor step: " << istep); + UBLOG(logINFO, "WriteThixotropyQuantitiesSimulationObserver step: " << istep); } clearData(); } ////////////////////////////////////////////////////////////////////////// -void WriteThixotropyQuantitiesCoProcessor::clearData() +void WriteThixotropyQuantitiesSimulationObserver::clearData() { nodes.clear(); cells.clear(); @@ -140,7 +140,7 @@ void WriteThixotropyQuantitiesCoProcessor::clearData() data.clear(); } ////////////////////////////////////////////////////////////////////////// -void WriteThixotropyQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) +void WriteThixotropyQuantitiesSimulationObserver::addDataMQ(SPtr<Block3D> block) { UbTupleDouble3 org = grid->getBlockWorldCoordinates(block);; UbTupleDouble3 nodeOffset = grid->getNodeOffset(block); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.h similarity index 82% rename from src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.h rename to src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.h index fbb2b6740..c5bea7d70 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.h @@ -26,27 +26,27 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file WriteMultiphaseQuantitiesCoProcessor.h -//! \ingroup CoProcessors +//! \file WriteMultiphaseQuantitiesSimulationObserver.h +//! \ingroup SimulationObservers //! \author Konstantin Kutscher //======================================================================================= -#ifndef WriteThixotropyQuantitiesCoProcessor_H -#define WriteThixotropyQuantitiesCoProcessor_H +#ifndef WriteThixotropyQuantitiesSimulationObserver_H +#define WriteThixotropyQuantitiesSimulationObserver_H -#include "CoProcessor.h" +#include "SimulationObserver.h" #include "Grid3D.h" #include "Block3D.h" #include "LBMUnitConverter.h" #include <mpi/Communicator.h> #include "WbWriter.h" -class WriteThixotropyQuantitiesCoProcessor : public CoProcessor +class WriteThixotropyQuantitiesSimulationObserver : public SimulationObserver { public: - WriteThixotropyQuantitiesCoProcessor(); - WriteThixotropyQuantitiesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string& path, WbWriter* const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm); - ~WriteThixotropyQuantitiesCoProcessor() = default; + WriteThixotropyQuantitiesSimulationObserver(); + WriteThixotropyQuantitiesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string& path, WbWriter* const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm); + ~WriteThixotropyQuantitiesSimulationObserver() = default; void process(real step) override; diff --git a/src/cpu/VirtualFluidsCore/Utilities/CheckpointConverter.cpp b/src/cpu/VirtualFluidsCore/Utilities/CheckpointConverter.cpp index 532822942..358dabf43 100644 --- a/src/cpu/VirtualFluidsCore/Utilities/CheckpointConverter.cpp +++ b/src/cpu/VirtualFluidsCore/Utilities/CheckpointConverter.cpp @@ -162,7 +162,7 @@ void CheckpointConverter::convertBlocks(int step, int procCount) // calculate the read offset procCount = - 1; // readBlocks and writeBlocks in both MPIIORestartCoProcessor and MPIIOMigrationCoProcessor have size == 1! + 1; // readBlocks and writeBlocks in both MPIIORestartSimulationObserver and MPIIOMigrationSimulationObserver have size == 1! MPI_Offset read_offset = (MPI_Offset)(procCount * sizeof(int)); // read parameters of the grid and blocks diff --git a/src/cpu/VirtualFluidsCore/Utilities/CheckpointConverter.h b/src/cpu/VirtualFluidsCore/Utilities/CheckpointConverter.h index 6fe24772d..bab67ae66 100644 --- a/src/cpu/VirtualFluidsCore/Utilities/CheckpointConverter.h +++ b/src/cpu/VirtualFluidsCore/Utilities/CheckpointConverter.h @@ -11,7 +11,7 @@ class Grid3D; namespace vf::mpi {class Communicator;} //! \class UtilConvertor -//! \brief Converts timestep data from MPIIORestartCoProcessor format into MPIIOMigrationCoProcessor format +//! \brief Converts timestep data from MPIIORestartSimulationObserver format into MPIIOMigrationSimulationObserver format class CheckpointConverter { public: -- GitLab