From 77d3f6499d8fc0560345e580029f294201e4300d Mon Sep 17 00:00:00 2001
From: Kutscher <kutscher@irmb.tu-bs.de>
Date: Wed, 15 Mar 2023 17:15:51 +0100
Subject: [PATCH] rename Calculator+BasicCalculator => Simulation / calculate()
 to run() / Grid folder to Simulation folder

---
 apps/cpu/ConvectionOfVortex/cov.cpp           |  10 +-
 apps/cpu/CouetteFlow/cflow.cpp                |   8 +-
 apps/cpu/FlowAroundCylinder/cylinder.cpp      |   8 +-
 apps/cpu/HerschelBulkleyModel/hbflow.cpp      |   8 +-
 apps/cpu/HerschelBulkleySphere/hbsphere.cpp   |  10 +-
 apps/cpu/JetBreakup/JetBreakup.cpp            |  10 +-
 apps/cpu/LaminarTubeFlow/ltf.cpp              |  10 +-
 apps/cpu/Multiphase/Multiphase.cpp            |  10 +-
 apps/cpu/MultiphaseDropletTest/droplet.cpp    |  10 +-
 apps/cpu/PoiseuilleFlow/pf1.cpp               |  12 +-
 apps/cpu/RisingBubble2D/RisingBubble2D.cpp    |  10 +-
 apps/cpu/ViskomatXL/viskomat.cpp              |  12 +-
 apps/cpu/rheometer/rheometer.cpp              |  10 +-
 apps/cpu/sphere/sphere.cpp                    |   8 +-
 .../LiggghtsCouplingSimulationObserver.cpp    |   2 +-
 .../LiggghtsCouplingSimulationObserver.h      |   2 +-
 src/cpu/VirtualFluids.h                       |   7 +-
 src/cpu/VirtualFluidsCore/CMakeLists.txt      |   2 +-
 .../VirtualFluidsCore/Grid/BasicCalculator.h  |  69 -----
 src/cpu/VirtualFluidsCore/Grid/Calculator.cpp | 231 ---------------
 .../Parallel/ZoltanPartitioner.cpp            |   2 +-
 .../{Grid => Simulation}/Block3D.cpp          |   0
 .../{Grid => Simulation}/Block3D.h            |   0
 .../{Grid => Simulation}/Grid3D.cpp           |   0
 .../{Grid => Simulation}/Grid3D.h             |   0
 .../Simulation.cpp}                           | 262 +++++++++++++++---
 .../Calculator.h => Simulation/Simulation.h}  |  35 ++-
 .../AdjustForcingSimulationObserver.cpp       |   2 +-
 .../AdjustForcingSimulationObserver.h         |   2 +-
 .../AverageValuesSimulationObserver.cpp       |   2 +-
 .../AverageValuesSimulationObserver.h         |   2 +-
 .../CalculateForcesSimulationObserver.cpp     |   2 +-
 .../CalculateForcesSimulationObserver.h       |   2 +-
 .../CalculateTorqueSimulationObserver.cpp     |   2 +-
 .../CalculateTorqueSimulationObserver.h       |   2 +-
 .../DecreaseViscositySimulationObserver.cpp   |   2 +-
 .../DecreaseViscositySimulationObserver.h     |   2 +-
 .../EmergencyExitSimulationObserver.cpp       |   4 +-
 .../EmergencyExitSimulationObserver.h         |   2 +-
 .../InSituCatalystSimulationObserver.cpp      |   2 +-
 .../InSituCatalystSimulationObserver.h        |   2 +-
 .../InSituVTKSimulationObserver.cpp           |   2 +-
 .../InSituVTKSimulationObserver.h             |   2 +-
 .../LineTimeSeriesSimulationObserver.cpp      |   2 +-
 .../LineTimeSeriesSimulationObserver.h        |   2 +-
 .../MPIIOMigrationBESimulationObserver.cpp    |   2 +-
 .../MPIIOMigrationBESimulationObserver.h      |   2 +-
 .../MPIIOMigrationSimulationObserver.cpp      |   2 +-
 .../MPIIOMigrationSimulationObserver.h        |   2 +-
 .../MPIIORestartSimulationObserver.cpp        |   2 +-
 .../MPIIORestartSimulationObserver.h          |   2 +-
 .../MPIIOSimulationObserver.h                 |   2 +-
 .../MicrophoneArraySimulationObserver.cpp     |   4 +-
 .../MicrophoneArraySimulationObserver.h       |   2 +-
 .../NUPSCounterSimulationObserver.cpp         |   4 +-
 .../NUPSCounterSimulationObserver.h           |   2 +-
 .../PressureCoefficientSimulationObserver.cpp |   2 +-
 .../PressureCoefficientSimulationObserver.h   |   2 +-
 .../PressureDifferenceSimulationObserver.cpp  |   2 +-
 .../PressureDifferenceSimulationObserver.h    |   2 +-
 .../QCriterionSimulationObserver.cpp          |   2 +-
 .../QCriterionSimulationObserver.h            |   2 +-
 .../ShearStressSimulationObserver.cpp         |   2 +-
 .../ShearStressSimulationObserver.h           |   2 +-
 .../SimulationObservers/SimulationObserver.h  |   2 +-
 .../TimeAveragedValuesSimulationObserver.cpp  |   2 +-
 .../TimeAveragedValuesSimulationObserver.h    |   2 +-
 .../TimeDependentBCSimulationObserver.cpp     |   2 +-
 .../TimeDependentBCSimulationObserver.h       |   2 +-
 .../TimeseriesSimulationObserver.cpp          |   2 +-
 .../TimeseriesSimulationObserver.h            |   2 +-
 .../TurbulenceIntensitySimulationObserver.cpp |   2 +-
 .../TurbulenceIntensitySimulationObserver.h   |   2 +-
 .../WriteBlocksSimulationObserver.cpp         |   2 +-
 .../WriteBlocksSimulationObserver.h           |   2 +-
 ...teBoundaryConditionsSimulationObserver.cpp |   2 +-
 ...riteBoundaryConditionsSimulationObserver.h |   2 +-
 .../WriteGbObjectsSimulationObserver.cpp      |   2 +-
 .../WriteGbObjectsSimulationObserver.h        |   2 +-
 ...WriteMQFromSelectionSimulationObserver.cpp |   2 +-
 .../WriteMQFromSelectionSimulationObserver.h  |   2 +-
 ...icQuantitiesPlusMassSimulationObserver.cpp |   2 +-
 ...opicQuantitiesPlusMassSimulationObserver.h |   2 +-
 ...acroscopicQuantitiesSimulationObserver.cpp |   2 +-
 ...eMacroscopicQuantitiesSimulationObserver.h |   2 +-
 ...MultiphaseQuantitiesSimulationObserver.cpp |   2 +-
 ...teMultiphaseQuantitiesSimulationObserver.h |   2 +-
 ...ThixotropyQuantitiesSimulationObserver.cpp |   2 +-
 ...teThixotropyQuantitiesSimulationObserver.h |   2 +-
 89 files changed, 388 insertions(+), 490 deletions(-)
 delete mode 100644 src/cpu/VirtualFluidsCore/Grid/BasicCalculator.h
 delete mode 100644 src/cpu/VirtualFluidsCore/Grid/Calculator.cpp
 rename src/cpu/VirtualFluidsCore/{Grid => Simulation}/Block3D.cpp (100%)
 rename src/cpu/VirtualFluidsCore/{Grid => Simulation}/Block3D.h (100%)
 rename src/cpu/VirtualFluidsCore/{Grid => Simulation}/Grid3D.cpp (100%)
 rename src/cpu/VirtualFluidsCore/{Grid => Simulation}/Grid3D.h (100%)
 rename src/cpu/VirtualFluidsCore/{Grid/BasicCalculator.cpp => Simulation/Simulation.cpp} (54%)
 rename src/cpu/VirtualFluidsCore/{Grid/Calculator.h => Simulation/Simulation.h} (74%)

diff --git a/apps/cpu/ConvectionOfVortex/cov.cpp b/apps/cpu/ConvectionOfVortex/cov.cpp
index 8d53d608a..35da90e5e 100644
--- a/apps/cpu/ConvectionOfVortex/cov.cpp
+++ b/apps/cpu/ConvectionOfVortex/cov.cpp
@@ -160,7 +160,7 @@ void run()
       //intHelper.addInteractor(outflowIntr4);
       intHelper.selectBlocks();
 
-      ppblocks->process(0);
+      ppblocks->update(0);
       ppblocks.reset();
 
       //set connectors  
@@ -265,7 +265,7 @@ void run()
       //Postrozess
       SPtr<UbScheduler> geoSch(new UbScheduler(1));
       SPtr<SimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm));
-      ppgeo->process(0);
+      ppgeo->update(0);
       ppgeo.reset();
 
       if (myid==0) UBLOG(logINFO, "Preprozess - end");
@@ -279,7 +279,7 @@ void run()
 
       SPtr<UbScheduler> visSch(new UbScheduler(outTime));
       SPtr<WriteMacroscopicQuantitiesSimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm));
-      writeMQSimulationObserver->process(0);
+      writeMQSimulationObserver->update(0);
 
       SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100));
       std::shared_ptr<NUPSCounterSimulationObserver> nupsSimulationObserver(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm));
@@ -290,7 +290,7 @@ void run()
       //tav->setWithGhostLayer(true);
 
       SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1));
-      SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime));
+      SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endTime));
       calculator->addSimulationObserver(nupsSimulationObserver);
       calculator->addSimulationObserver(writeMQSimulationObserver);
       //calculator->addSimulationObserver(tav);
@@ -298,7 +298,7 @@ void run()
       //omp_set_num_threads(1);
 
       if (myid==0) UBLOG(logINFO, "Simulation-start");
-      calculator->calculate();
+      calculator->run();
       if (myid==0) UBLOG(logINFO, "Simulation-end");
    }
    catch (std::exception& e)
diff --git a/apps/cpu/CouetteFlow/cflow.cpp b/apps/cpu/CouetteFlow/cflow.cpp
index 774150eec..11bb9b4d5 100644
--- a/apps/cpu/CouetteFlow/cflow.cpp
+++ b/apps/cpu/CouetteFlow/cflow.cpp
@@ -200,7 +200,7 @@ void bflow(string configname)
       //////////////////////////////////////
 
       SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm));
-      ppblocks->process(0);
+      ppblocks->update(0);
 
       unsigned long nob = grid->getNumberOfBlocks();
       int gl = 3;
@@ -253,7 +253,7 @@ void bflow(string configname)
 
       SPtr<UbScheduler> geoSch(new UbScheduler(1));
       WriteBoundaryConditionsSimulationObserver ppgeo = WriteBoundaryConditionsSimulationObserver(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm);
-      ppgeo.process(1);
+      ppgeo.update(1);
 
       SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100));
       SPtr<SimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm));
@@ -266,7 +266,7 @@ void bflow(string configname)
       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));
+      SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endTime));
       calculator->addSimulationObserver(npr);
       calculator->addSimulationObserver(writeMQSimulationObserver);
       calculator->addSimulationObserver(writeThixotropicMQSimulationObserver);
@@ -274,7 +274,7 @@ void bflow(string configname)
       //calculator->addSimulationObserver(restartSimulationObserver);
 
       if (myid == 0) UBLOG(logINFO, "Simulation-start");
-      calculator->calculate();
+      calculator->run();
       if (myid == 0) UBLOG(logINFO, "Simulation-end");
    }
    catch (std::exception& e)
diff --git a/apps/cpu/FlowAroundCylinder/cylinder.cpp b/apps/cpu/FlowAroundCylinder/cylinder.cpp
index b98eb01b6..f5d19e9ad 100644
--- a/apps/cpu/FlowAroundCylinder/cylinder.cpp
+++ b/apps/cpu/FlowAroundCylinder/cylinder.cpp
@@ -217,7 +217,7 @@ void run(string configname)
          intHelper.selectBlocks();
 
 
-         ppblocks->process(0);
+         ppblocks->update(0);
          ppblocks.reset();
 
          unsigned long long numberOfBlocks = (unsigned long long)grid->getNumberOfBlocks();
@@ -277,7 +277,7 @@ void run(string configname)
          SPtr<UbScheduler> geoSch(new UbScheduler(1));
          SPtr<SimulationObserver> ppgeo(
             new WriteBoundaryConditionsSimulationObserver(grid, geoSch, pathOut, WbWriterVtkXmlBinary::getInstance(), comm));
-         ppgeo->process(0);
+         ppgeo->update(0);
          ppgeo.reset();
 
          if (myid==0) UBLOG(logINFO, "Preprozess - end");
@@ -315,13 +315,13 @@ void run(string configname)
 
 	  omp_set_num_threads(numOfThreads);
 	  SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1));
-	  SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime));
+	  SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endTime));
 	  calculator->addSimulationObserver(nupsSimulationObserver);
      calculator->addSimulationObserver(fp);
      calculator->addSimulationObserver(writeMQSimulationObserver);
 
       if(myid == 0) UBLOG(logINFO,"Simulation-start");
-	  calculator->calculate();
+	  calculator->run();
       if(myid == 0) UBLOG(logINFO,"Simulation-end");
    }
    catch(std::exception& e)
diff --git a/apps/cpu/HerschelBulkleyModel/hbflow.cpp b/apps/cpu/HerschelBulkleyModel/hbflow.cpp
index 85ac6681a..f581304e0 100644
--- a/apps/cpu/HerschelBulkleyModel/hbflow.cpp
+++ b/apps/cpu/HerschelBulkleyModel/hbflow.cpp
@@ -247,7 +247,7 @@ void bflow(string configname)
       //////////////////////////////////////
 
       SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm));
-      ppblocks->process(0);
+      ppblocks->update(0);
 
       unsigned long nob = grid->getNumberOfBlocks();
       int gl = 3;
@@ -300,7 +300,7 @@ void bflow(string configname)
 
       SPtr<UbScheduler> geoSch(new UbScheduler(1));
       WriteBoundaryConditionsSimulationObserver ppgeo = WriteBoundaryConditionsSimulationObserver(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm);
-      ppgeo.process(1);
+      ppgeo.update(1);
 
       SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100));
       SPtr<SimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm));
@@ -321,7 +321,7 @@ void bflow(string configname)
       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));
+      SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endTime));
       calculator->addSimulationObserver(npr);
       calculator->addSimulationObserver(writeMQSimulationObserver);
       calculator->addSimulationObserver(writeThixotropicMQSimulationObserver);
@@ -331,7 +331,7 @@ void bflow(string configname)
       //calculator->addSimulationObserver(restartSimulationObserver);
 
       if (myid == 0) UBLOG(logINFO, "Simulation-start");
-      calculator->calculate();
+      calculator->run();
       if (myid == 0) UBLOG(logINFO, "Simulation-end");
    }
    catch (std::exception& e)
diff --git a/apps/cpu/HerschelBulkleySphere/hbsphere.cpp b/apps/cpu/HerschelBulkleySphere/hbsphere.cpp
index 83da2bae9..f2f47acd9 100644
--- a/apps/cpu/HerschelBulkleySphere/hbsphere.cpp
+++ b/apps/cpu/HerschelBulkleySphere/hbsphere.cpp
@@ -262,7 +262,7 @@ void bflow(string configname)
          //////////////////////////////////////
 
          SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, WbWriterVtkXmlBinary::getInstance(), comm));
-         ppblocks->process(0);
+         ppblocks->update(0);
 
          unsigned long nob = grid->getNumberOfBlocks();
          int gl = 3;
@@ -332,7 +332,7 @@ void bflow(string configname)
 
       SPtr<UbScheduler> geoSch(new UbScheduler(1));
       WriteBoundaryConditionsSimulationObserver ppgeo = WriteBoundaryConditionsSimulationObserver(grid, geoSch, outputPath, WbWriterVtkXmlASCII::getInstance(), comm);
-      ppgeo.process(0);
+      ppgeo.update(0);
 
       SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100));
       SPtr<SimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm));
@@ -341,7 +341,7 @@ void bflow(string configname)
       SPtr<UbScheduler> visSch(new UbScheduler(outTime));
       //SPtr<UbScheduler> visSch(new UbScheduler(10,1));
       SPtr<WriteMacroscopicQuantitiesSimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm));
-      //writeMQSimulationObserver->process(0);
+      //writeMQSimulationObserver->update(0);
 
       real area = UbMath::PI*radius*radius;
       SPtr<UbScheduler> forceSch(new UbScheduler(100));
@@ -351,7 +351,7 @@ void bflow(string configname)
       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));
+      SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endTime));
       calculator->addSimulationObserver(npr);
       calculator->addSimulationObserver(fp);
       calculator->addSimulationObserver(writeMQSimulationObserver);
@@ -359,7 +359,7 @@ void bflow(string configname)
       calculator->addSimulationObserver(restartSimulationObserver);
 
       if (myid == 0) UBLOG(logINFO, "Simulation-start");
-      calculator->calculate();
+      calculator->run();
       if (myid == 0) UBLOG(logINFO, "Simulation-end");
    }
    catch (std::exception& e)
diff --git a/apps/cpu/JetBreakup/JetBreakup.cpp b/apps/cpu/JetBreakup/JetBreakup.cpp
index 828d52051..7d00fe1f8 100644
--- a/apps/cpu/JetBreakup/JetBreakup.cpp
+++ b/apps/cpu/JetBreakup/JetBreakup.cpp
@@ -444,7 +444,7 @@ void run(string configname)
 
             intHelper.selectBlocks();
 
-            ppblocks->process(0);
+            ppblocks->update(0);
             ppblocks.reset();
 
             unsigned long long numberOfBlocks = (unsigned long long)grid->getNumberOfBlocks();
@@ -550,7 +550,7 @@ void run(string configname)
                 SPtr<UbScheduler> geoSch(new UbScheduler(1));
                 SPtr<WriteBoundaryConditionsSimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver(
                     grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm));
-                ppgeo->process(0);
+                ppgeo->update(0);
                 ppgeo.reset();
             }
 
@@ -582,7 +582,7 @@ void run(string configname)
         visSch->addSchedule(t,t,t); //t=7.19
         SPtr<WriteMultiphaseQuantitiesSimulationObserver> pp(new WriteMultiphaseQuantitiesSimulationObserver(
             grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm));
-        pp->process(0);
+        pp->update(0);
 
         SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100));
         SPtr<NUPSCounterSimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm));
@@ -596,7 +596,7 @@ void run(string configname)
 #endif
 
         SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1));
-        SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime));
+        SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endTime));
         calculator->addSimulationObserver(npr);
         calculator->addSimulationObserver(pp);
         calculator->addSimulationObserver(timeDepBC);
@@ -604,7 +604,7 @@ void run(string configname)
 
         if (myid == 0)
             UBLOG(logINFO, "Simulation-start");
-        calculator->calculate();
+        calculator->run();
         if (myid == 0)
             UBLOG(logINFO, "Simulation-end");
     } catch (std::exception &e) {
diff --git a/apps/cpu/LaminarTubeFlow/ltf.cpp b/apps/cpu/LaminarTubeFlow/ltf.cpp
index 2be4793c9..0b398539a 100644
--- a/apps/cpu/LaminarTubeFlow/ltf.cpp
+++ b/apps/cpu/LaminarTubeFlow/ltf.cpp
@@ -191,7 +191,7 @@ void run(string configname)
 
          SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm));
 
-         ppblocks->process(0);
+         ppblocks->update(0);
 
          SPtr<D3Q27Interactor> cylinderInt(new D3Q27Interactor(cylinder, grid, noSlipBC, Interactor3D::INVERSESOLID));
 
@@ -229,7 +229,7 @@ void run(string configname)
          intHelper.addInteractor(outflowInt);
          intHelper.selectBlocks();
 
-         ppblocks->process(0);
+         ppblocks->update(0);
          ppblocks.reset();
 
          unsigned long long numberOfBlocks = (unsigned long long)grid->getNumberOfBlocks();
@@ -281,7 +281,7 @@ void run(string configname)
          {
             SPtr<UbScheduler> geoSch(new UbScheduler(1));
             SPtr<SimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm));
-            ppgeo->process(0);
+            ppgeo->update(0);
             ppgeo.reset();
          }
 
@@ -328,14 +328,14 @@ void run(string configname)
       omp_set_num_threads(numOfThreads);
       numOfThreads = 1;
       SPtr<UbScheduler> stepGhostLayer(visSch);
-      SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, int(endTime)));
+      SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, int(endTime)));
       calculator->addSimulationObserver(npr);
       calculator->addSimulationObserver(pp);
       calculator->addSimulationObserver(migSimulationObserver);
       //calculator->addSimulationObserver(timeDepBC);
 
       if (myid == 0) VF_LOG_INFO("Simulation-start");
-      calculator->calculate();
+      calculator->run();
       if (myid == 0) VF_LOG_INFO("Simulation-end");
    }
    catch (std::exception& e)
diff --git a/apps/cpu/Multiphase/Multiphase.cpp b/apps/cpu/Multiphase/Multiphase.cpp
index 753a6528d..b04c78589 100644
--- a/apps/cpu/Multiphase/Multiphase.cpp
+++ b/apps/cpu/Multiphase/Multiphase.cpp
@@ -322,7 +322,7 @@ void run(string configname)
 
             intHelper.selectBlocks();
 
-            ppblocks->process(0);
+            ppblocks->update(0);
             ppblocks.reset();
 
             unsigned long long numberOfBlocks = (unsigned long long)grid->getNumberOfBlocks();
@@ -417,7 +417,7 @@ void run(string configname)
                 SPtr<UbScheduler> geoSch(new UbScheduler(1));
                 SPtr<WriteBoundaryConditionsSimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver(
                     grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm));
-                ppgeo->process(0);
+                ppgeo->update(0);
                 ppgeo.reset();
             }
 
@@ -458,7 +458,7 @@ void run(string configname)
         SPtr<WriteMultiphaseQuantitiesSimulationObserver> pp(new WriteMultiphaseQuantitiesSimulationObserver(
             //SPtr<WriteMacroscopicQuantitiesSimulationObserver> pp(new WriteMacroscopicQuantitiesSimulationObserver(
             grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm));
-        pp->process(0);
+        pp->update(0);
 
         SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100));
         SPtr<NUPSCounterSimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm));
@@ -472,7 +472,7 @@ void run(string configname)
 #endif
 
         SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1));
-        SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime));
+        SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endTime));
         calculator->addSimulationObserver(npr);
         calculator->addSimulationObserver(pp);
         calculator->addSimulationObserver(timeDepBC);
@@ -483,7 +483,7 @@ void run(string configname)
 
         if (myid == 0)
             UBLOG(logINFO, "Simulation-start");
-        calculator->calculate();
+        calculator->run();
         if (myid == 0)
             UBLOG(logINFO, "Simulation-end");
     } catch (std::exception &e) {
diff --git a/apps/cpu/MultiphaseDropletTest/droplet.cpp b/apps/cpu/MultiphaseDropletTest/droplet.cpp
index 7686f87f9..5a12f039c 100644
--- a/apps/cpu/MultiphaseDropletTest/droplet.cpp
+++ b/apps/cpu/MultiphaseDropletTest/droplet.cpp
@@ -244,7 +244,7 @@ void run(string configname)
             intHelper.addInteractor(wallYmaxInt);
             intHelper.selectBlocks();
 
-            ppblocks->process(0);
+            ppblocks->update(0);
             ppblocks.reset();
 
             unsigned long long numberOfBlocks = (unsigned long long)grid->getNumberOfBlocks();
@@ -319,7 +319,7 @@ void run(string configname)
                 SPtr<UbScheduler> geoSch(new UbScheduler(1));
                 SPtr<WriteBoundaryConditionsSimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver(
                     grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm));
-                ppgeo->process(0);
+                ppgeo->update(0);
                 ppgeo.reset();
             }
 
@@ -383,7 +383,7 @@ void run(string configname)
         SPtr<WriteMultiphaseQuantitiesSimulationObserver> pp(new WriteMultiphaseQuantitiesSimulationObserver(
             grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm));
         if(grid->getTimeStep() == 0) 
-            pp->process(0);
+            pp->update(0);
 
         SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100));
         SPtr<NUPSCounterSimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm));
@@ -391,7 +391,7 @@ void run(string configname)
         omp_set_num_threads(numOfThreads);
 
         SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1));
-        SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime));
+        SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endTime));
         calculator->addSimulationObserver(npr);
         calculator->addSimulationObserver(pp);
         calculator->addSimulationObserver(rcp);
@@ -399,7 +399,7 @@ void run(string configname)
 
         if (myid == 0)
             UBLOG(logINFO, "Simulation-start");
-        calculator->calculate();
+        calculator->run();
         if (myid == 0)
             UBLOG(logINFO, "Simulation-end");
             
diff --git a/apps/cpu/PoiseuilleFlow/pf1.cpp b/apps/cpu/PoiseuilleFlow/pf1.cpp
index c4503ea64..cb4528b3a 100644
--- a/apps/cpu/PoiseuilleFlow/pf1.cpp
+++ b/apps/cpu/PoiseuilleFlow/pf1.cpp
@@ -85,7 +85,7 @@ void pf1()
 
    //write data for visualization of block grid
    SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathOut, WbWriterVtkXmlBinary::getInstance(), comm));
-   ppblocks->process(0);
+   ppblocks->update(0);
    //ppblocks.reset();
 
    unsigned long long numberOfBlocks = (unsigned long long)grid->getNumberOfBlocks();
@@ -164,7 +164,7 @@ void pf1()
    {
       SPtr<UbScheduler> geoSch(new UbScheduler(1));
       WriteBoundaryConditionsSimulationObserver ppgeo(grid, geoSch, pathOut, WbWriterVtkXmlBinary::getInstance(), /*SPtr<LBMUnitConverter>(new LBMUnitConverter()),*/ comm);
-      ppgeo.process(0);
+      ppgeo.update(0);
    }
    
    if (myid == 0) UBLOG(logINFO, "Preprocess - end");
@@ -177,7 +177,7 @@ void pf1()
    //migSimulationObserver->setNu(nuLB);
    //migSimulationObserver->restart(10);
 
-   ppblocks->process(1);
+   ppblocks->update(1);
 
    //write data for visualization of macroscopic quantities
    SPtr<UbScheduler> visSch(new UbScheduler(outTime));
@@ -191,17 +191,17 @@ void pf1()
    //start simulation 
    //omp_set_num_threads(numOfThreads);
    SPtr<UbScheduler> stepGhostLayer(new UbScheduler(outTime));
-   SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime));
+   SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endTime));
    calculator->addSimulationObserver(npr);
    calculator->addSimulationObserver(writeMQSimulationObserver);
    //calculator->addSimulationObserver(migSimulationObserver);
    //calculator->addSimulationObserver(restartSimulationObserver);
 
    if (myid == 0) UBLOG(logINFO, "Simulation-start");
-   calculator->calculate();
+   calculator->run();
    if (myid == 0) UBLOG(logINFO, "Simulation-end");
    
-   ppblocks->process(10);
+   ppblocks->update(10);
 }
 
 
diff --git a/apps/cpu/RisingBubble2D/RisingBubble2D.cpp b/apps/cpu/RisingBubble2D/RisingBubble2D.cpp
index be1153696..a5cd0aff9 100644
--- a/apps/cpu/RisingBubble2D/RisingBubble2D.cpp
+++ b/apps/cpu/RisingBubble2D/RisingBubble2D.cpp
@@ -256,7 +256,7 @@ void run(string configname)
             intHelper.addInteractor(wallYmaxInt);
             intHelper.selectBlocks();
 
-            ppblocks->process(0);
+            ppblocks->update(0);
             ppblocks.reset();
 
             unsigned long long numberOfBlocks = (unsigned long long)grid->getNumberOfBlocks();
@@ -331,7 +331,7 @@ void run(string configname)
                 SPtr<UbScheduler> geoSch(new UbScheduler(1));
                 SPtr<WriteBoundaryConditionsSimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver(
                     grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm));
-                ppgeo->process(0);
+                ppgeo->update(0);
                 ppgeo.reset();
             }
 
@@ -398,7 +398,7 @@ void run(string configname)
         SPtr<WriteMultiphaseQuantitiesSimulationObserver> pp(new WriteMultiphaseQuantitiesSimulationObserver(
             grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm));
         if(grid->getTimeStep() == 0) 
-            pp->process(0);
+            pp->update(0);
 
         SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100));
         SPtr<NUPSCounterSimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm));
@@ -406,7 +406,7 @@ void run(string configname)
         //omp_set_num_threads(numOfThreads);
 
         SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1));
-        SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime));
+        SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endTime));
         calculator->addSimulationObserver(npr);
         calculator->addSimulationObserver(pp);
         calculator->addSimulationObserver(rcp);
@@ -414,7 +414,7 @@ void run(string configname)
 
         if (myid == 0)
             UBLOG(logINFO, "Simulation-start");
-        calculator->calculate();
+        calculator->run();
         if (myid == 0)
             UBLOG(logINFO, "Simulation-end");
             
diff --git a/apps/cpu/ViskomatXL/viskomat.cpp b/apps/cpu/ViskomatXL/viskomat.cpp
index 2ec6f365a..addceee87 100644
--- a/apps/cpu/ViskomatXL/viskomat.cpp
+++ b/apps/cpu/ViskomatXL/viskomat.cpp
@@ -321,7 +321,7 @@ void bflow(string configname)
          //////////////////////////////////////
 
          SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, WbWriterVtkXmlBinary::getInstance(), comm));
-         ppblocks->process(0);
+         ppblocks->update(0);
 
          unsigned long nob = grid->getNumberOfBlocks();
          int gl = 3;
@@ -366,7 +366,7 @@ void bflow(string configname)
 
          SPtr<UbScheduler> geoSch(new UbScheduler(1));
          WriteBoundaryConditionsSimulationObserver ppgeo = WriteBoundaryConditionsSimulationObserver(grid, geoSch, outputPath, WbWriterVtkXmlBinary::getInstance(), comm);
-         ppgeo.process(0);
+         ppgeo.update(0);
 
          if (myid == 0) UBLOG(logINFO, "Preprozess - end");
       }
@@ -397,7 +397,7 @@ void bflow(string configname)
 
          SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath,
                                                                WbWriterVtkXmlBinary::getInstance(), comm));
-         ppblocks->process(1);
+         ppblocks->update(1);
       }
       
       //omp_set_num_threads(numOfThreads);
@@ -420,7 +420,7 @@ void bflow(string configname)
       SPtr<UbScheduler> visSch(new UbScheduler(outTime));
       //SPtr<UbScheduler> visSch(new UbScheduler(10,1));
       SPtr<WriteMacroscopicQuantitiesSimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm));
-      //writeMQSimulationObserver->process(100);
+      //writeMQSimulationObserver->update(100);
 
       SPtr<UbScheduler> forceSch(new UbScheduler(100));
       SPtr<CalculateTorqueSimulationObserver> fp = make_shared<CalculateTorqueSimulationObserver>(grid, forceSch, outputPath + "/torque/TorqueRotor.csv", comm);
@@ -431,7 +431,7 @@ void bflow(string configname)
       //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));
+      SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endTime));
       calculator->addSimulationObserver(npr);
       //calculator->addSimulationObserver(fp);
       calculator->addSimulationObserver(fp2);
@@ -440,7 +440,7 @@ void bflow(string configname)
       calculator->addSimulationObserver(restartSimulationObserver);
 
       if (myid == 0) UBLOG(logINFO, "Simulation-start");
-      calculator->calculate();
+      calculator->run();
       if (myid == 0) UBLOG(logINFO, "Simulation-end");
    }
    catch (std::exception& e)
diff --git a/apps/cpu/rheometer/rheometer.cpp b/apps/cpu/rheometer/rheometer.cpp
index a707b0899..5b716ffb6 100644
--- a/apps/cpu/rheometer/rheometer.cpp
+++ b/apps/cpu/rheometer/rheometer.cpp
@@ -329,7 +329,7 @@ void bflow(string configname)
          //////////////////////////////////////
 
          SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), outputPath, WbWriterVtkXmlBinary::getInstance(), comm));
-         ppblocks->process(0);
+         ppblocks->update(0);
 
          unsigned long nob = grid->getNumberOfBlocks();
          int gl = 3;
@@ -402,7 +402,7 @@ void bflow(string configname)
 
       SPtr<UbScheduler> geoSch(new UbScheduler(1));
       WriteBoundaryConditionsSimulationObserver ppgeo = WriteBoundaryConditionsSimulationObserver(grid, geoSch, outputPath, WbWriterVtkXmlASCII::getInstance(), comm);
-      ppgeo.process(0);
+      ppgeo.update(0);
 
       SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100));
       SPtr<SimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm));
@@ -411,7 +411,7 @@ void bflow(string configname)
       SPtr<UbScheduler> visSch(new UbScheduler(outTime));
       //SPtr<UbScheduler> visSch(new UbScheduler(10,1));
       SPtr<WriteMacroscopicQuantitiesSimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm));
-      //writeMQSimulationObserver->process(0);
+      //writeMQSimulationObserver->update(0);
 
       SPtr<UbScheduler> forceSch(new UbScheduler(100));
       SPtr<CalculateTorqueSimulationObserver> fp = make_shared<CalculateTorqueSimulationObserver>(grid, forceSch, outputPath + "/torque/TorqueRotor.txt", comm);
@@ -422,7 +422,7 @@ void bflow(string configname)
       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));
+      SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endTime));
       calculator->addSimulationObserver(npr);
       calculator->addSimulationObserver(fp);
       calculator->addSimulationObserver(fp2);
@@ -431,7 +431,7 @@ void bflow(string configname)
       //calculator->addSimulationObserver(restartSimulationObserver);
 
       if (myid == 0) UBLOG(logINFO, "Simulation-start");
-      calculator->calculate();
+      calculator->run();
       if (myid == 0) UBLOG(logINFO, "Simulation-end");
    }
    catch (std::exception& e)
diff --git a/apps/cpu/sphere/sphere.cpp b/apps/cpu/sphere/sphere.cpp
index c1fe99267..c9677c0a5 100644
--- a/apps/cpu/sphere/sphere.cpp
+++ b/apps/cpu/sphere/sphere.cpp
@@ -197,7 +197,7 @@ void run(string configname)
          //PQueuePartitioningGridVisitor pqPartVisitor(numOfThreads);
          //grid->accept(pqPartVisitor);
 
-         ppblocks->process(0);
+         ppblocks->update(0);
          ppblocks.reset();
 
          unsigned long nob = grid->getNumberOfBlocks();
@@ -253,7 +253,7 @@ void run(string configname)
          SPtr<UbScheduler> geoSch(new UbScheduler(1));
          SPtr<SimulationObserver> ppgeo(
             new WriteBoundaryConditionsSimulationObserver(grid, geoSch, outputPath, WbWriterVtkXmlBinary::getInstance(), comm));
-         ppgeo->process(0);
+         ppgeo->update(0);
          ppgeo.reset();
 
          if (myid == 0) UBLOG(logINFO, "Preprozess - end");
@@ -293,14 +293,14 @@ void run(string configname)
       fp->addInteractor(sphereInt);
 
       SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1));
-      SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endstep));
+      SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, endstep));
       calculator->addSimulationObserver(npr);
       calculator->addSimulationObserver(fp);
       calculator->addSimulationObserver(writeMQSimulationObserver);
 
 
       if (myid == 0) UBLOG(logINFO, "Simulation-start");
-      calculator->calculate();
+      calculator->run();
       if (myid == 0) UBLOG(logINFO, "Simulation-end");
 
    }
diff --git a/src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.cpp b/src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.cpp
index 3c4a021cc..a3332aed1 100644
--- a/src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.cpp
+++ b/src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.cpp
@@ -25,7 +25,7 @@ LiggghtsCouplingSimulationObserver::~LiggghtsCouplingSimulationObserver()
 {
 }
 
-void LiggghtsCouplingSimulationObserver::process(double actualTimeStep)
+void LiggghtsCouplingSimulationObserver::update(double actualTimeStep)
 { 
     if (comm->getProcessID() == 0)
         std::cout << "LiggghtsCouplingSimulationObserver step: " << actualTimeStep << "\n";
diff --git a/src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.h b/src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.h
index 796208653..0ae1786dd 100644
--- a/src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.h
+++ b/src/cpu/LiggghtsCoupling/LiggghtsCouplingSimulationObserver.h
@@ -65,7 +65,7 @@ public:
                                 LiggghtsCouplingWrapper &wrapper, int demSteps, SPtr<LBMUnitConverter> units);
     virtual ~LiggghtsCouplingSimulationObserver();
 
-    void process(double actualTimeStep) override;
+    void update(double actualTimeStep) override;
 
     
 protected:
diff --git a/src/cpu/VirtualFluids.h b/src/cpu/VirtualFluids.h
index 69b768e98..c73d53549 100644
--- a/src/cpu/VirtualFluids.h
+++ b/src/cpu/VirtualFluids.h
@@ -173,10 +173,9 @@
 #include <Data/EsoTwistD3Q27System.h>
 #include <Data/VoidData3D.h>
 
-#include <Grid/BasicCalculator.h>
-#include <Grid/Block3D.h>
-#include <Grid/Calculator.h>
-#include <Grid/Grid3D.h>
+#include <Simulation/Block3D.h>
+#include <Simulation/Simulation.h>
+#include <Simulation/Grid3D.h>
 
 #include <Interactors/D3Q27Interactor.h>
 #include <Interactors/D3Q27TriFaceMeshInteractor.h>
diff --git a/src/cpu/VirtualFluidsCore/CMakeLists.txt b/src/cpu/VirtualFluidsCore/CMakeLists.txt
index 75db42ccb..6554189c3 100644
--- a/src/cpu/VirtualFluidsCore/CMakeLists.txt
+++ b/src/cpu/VirtualFluidsCore/CMakeLists.txt
@@ -40,7 +40,7 @@ target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Da
 target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Interactors)
 target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/LBM)
 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}/Simulation)
 target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Visitors)
 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/Grid/BasicCalculator.h b/src/cpu/VirtualFluidsCore/Grid/BasicCalculator.h
deleted file mode 100644
index 3ef1f4c71..000000000
--- a/src/cpu/VirtualFluidsCore/Grid/BasicCalculator.h
+++ /dev/null
@@ -1,69 +0,0 @@
-//=======================================================================================
-// ____          ____    __    ______     __________   __      __       __        __
-// \    \       |    |  |  |  |   _   \  |___    ___| |  |    |  |     /  \      |  |
-//  \    \      |    |  |  |  |  |_)   |     |  |     |  |    |  |    /    \     |  |
-//   \    \     |    |  |  |  |   _   /      |  |     |  |    |  |   /  /\  \    |  |
-//    \    \    |    |  |  |  |  | \  \      |  |     |   \__/   |  /  ____  \   |  |____
-//     \    \   |    |  |__|  |__|  \__\     |__|      \________/  /__/    \__\  |_______|
-//      \    \  |    |   ________________________________________________________________
-//       \    \ |    |  |  ______________________________________________________________|
-//        \    \|    |  |  |         __          __     __     __     ______      _______
-//         \         |  |  |_____   |  |        |  |   |  |   |  |   |   _  \    /  _____)
-//          \        |  |   _____|  |  |        |  |   |  |   |  |   |  | \  \   \_______
-//           \       |  |  |        |  |_____   |   \_/   |   |  |   |  |_/  /    _____  |
-//            \ _____|  |__|        |________|   \_______/    |__|   |______/    (_______/
-//
-//  This file is part of VirtualFluids. VirtualFluids is free software: you can
-//  redistribute it and/or modify it under the terms of the GNU General Public
-//  License as published by the Free Software Foundation, either version 3 of
-//  the License, or (at your option) any later version.
-//
-//  VirtualFluids is distributed in the hope that it will be useful, but WITHOUT
-//  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-//  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-//  for more details.
-//
-//  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 BasicCalculator.h
-//! \ingroup Grid
-//! \author Konstantin Kutscher
-//=======================================================================================
-
-#ifndef BasicCalculator_h__
-#define BasicCalculator_h__
-
-#include "Calculator.h"
-
-class Block3DConnector;
-
-//! \class BasicCalculator
-//! \brief Class implements basic functionality with MPI + OpenMP parallelization for main calculation loop
-//! \author  Konstantin Kutscher
-
-class BasicCalculator : public Calculator
-{
-public:
-    BasicCalculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayerUpdateScheduler, int numberOfTimeSteps);
-    ~BasicCalculator() override = default;
-    void calculate() override;
-
-protected:
-    void calculateBlocks(int startLevel, int maxInitLevel, int calcStep);
-    void swapDistributions(int startLevel, int maxInitLevel);
-    void exchangeBlockData(int startLevel, int maxInitLevel);
-    void connectorsPrepareLocal(std::vector<SPtr<Block3DConnector>> &connectors);
-    void connectorsSendLocal(std::vector<SPtr<Block3DConnector>> &connectors);
-    void connectorsReceiveLocal(std::vector<SPtr<Block3DConnector>> &connectors);
-    void connectorsPrepareRemote(std::vector<SPtr<Block3DConnector>> &connectors);
-    void connectorsSendRemote(std::vector<SPtr<Block3DConnector>> &connectors);
-    void connectorsReceiveRemote(std::vector<SPtr<Block3DConnector>> &connectors);
-    void interpolation(int startLevel, int maxInitLevel);
-    void applyPreCollisionBC(int startLevel, int maxInitLevel);
-    void applyPostCollisionBC(int startLevel, int maxInitLevel);
-
-private:
-};
-
-#endif // BasicCalculator_h__
diff --git a/src/cpu/VirtualFluidsCore/Grid/Calculator.cpp b/src/cpu/VirtualFluidsCore/Grid/Calculator.cpp
deleted file mode 100644
index a0b55fc79..000000000
--- a/src/cpu/VirtualFluidsCore/Grid/Calculator.cpp
+++ /dev/null
@@ -1,231 +0,0 @@
-//=======================================================================================
-// ____          ____    __    ______     __________   __      __       __        __
-// \    \       |    |  |  |  |   _   \  |___    ___| |  |    |  |     /  \      |  |
-//  \    \      |    |  |  |  |  |_)   |     |  |     |  |    |  |    /    \     |  |
-//   \    \     |    |  |  |  |   _   /      |  |     |  |    |  |   /  /\  \    |  |
-//    \    \    |    |  |  |  |  | \  \      |  |     |   \__/   |  /  ____  \   |  |____
-//     \    \   |    |  |__|  |__|  \__\     |__|      \________/  /__/    \__\  |_______|
-//      \    \  |    |   ________________________________________________________________
-//       \    \ |    |  |  ______________________________________________________________|
-//        \    \|    |  |  |         __          __     __     __     ______      _______
-//         \         |  |  |_____   |  |        |  |   |  |   |  |   |   _  \    /  _____)
-//          \        |  |   _____|  |  |        |  |   |  |   |  |   |  | \  \   \_______
-//           \       |  |  |        |  |_____   |   \_/   |   |  |   |  |_/  /    _____  |
-//            \ _____|  |__|        |________|   \_______/    |__|   |______/    (_______/
-//
-//  This file is part of VirtualFluids. VirtualFluids is free software: you can
-//  redistribute it and/or modify it under the terms of the GNU General Public
-//  License as published by the Free Software Foundation, either version 3 of
-//  the License, or (at your option) any later version.
-//
-//  VirtualFluids is distributed in the hope that it will be useful, but WITHOUT
-//  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-//  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-//  for more details.
-//
-//  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 Calculator.cpp
-//! \ingroup Grid
-//! \author Konstantin Kutscher
-//=======================================================================================
-
-#include "Calculator.h"
-
-#include "Block3D.h"
-#include "Block3DConnector.h"
-#include "SimulationObserver.h"
-#include "Grid3D.h"
-#include "UbScheduler.h"
-
-#include <basics/utilities/UbException.h>
-
-Calculator::Calculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayerUpdateScheduler, int numberOfTimeSteps)
-    : grid(grid), additionalGhostLayerUpdateScheduler(additionalGhostLayerUpdateScheduler),
-      numberOfTimeSteps(numberOfTimeSteps)
-{
-    this->grid    = grid;
-    startTimeStep = int(grid->getTimeStep()) + 1;
-    minLevel      = grid->getCoarsestInitializedLevel();
-    maxLevel      = grid->getFinestInitializedLevel();
-    if (maxLevel > 0)
-        refinement = true;
-    else
-        refinement = false;
-    blocks.resize(maxLevel + 1);
-    localConns.resize(maxLevel + 1);
-    remoteConns.resize(maxLevel + 1);
-    localInterConns.resize(maxLevel);
-    remoteInterConns.resize(maxLevel);
-
-    int gridRank = grid->getRank();
-
-    for (int level = minLevel; level <= maxLevel; level++) {
-        std::vector<SPtr<Block3D>> blockVector;
-        grid->getBlocks(level, gridRank, true, blockVector);
-        for (const auto &block : blockVector)
-            if (block)
-                blocks[block->getLevel()].push_back(block);
-    }
-
-    initLocalConnectors();
-    initRemoteConnectors();
-}
-//////////////////////////////////////////////////////////////////////////
-Calculator::~Calculator() = default;
-//////////////////////////////////////////////////////////////////////////
-void Calculator::addSimulationObserver(SPtr<SimulationObserver> coProcessor) { coProcessors.push_back(coProcessor); }
-//////////////////////////////////////////////////////////////////////////
-void Calculator::coProcess(real step)
-{
-    for (SPtr<SimulationObserver> cp : coProcessors) {
-        cp->process(step);
-    }
-}
-//////////////////////////////////////////////////////////////////////////
-void Calculator::initLocalConnectors()
-{
-    UBLOG(logDEBUG1, "Calculator::initLocalConnectors() - start");
-
-    for (int l = minLevel; l <= maxLevel; l++) {
-        for (SPtr<Block3D> block : blocks[l]) {
-            block->pushBackLocalSameLevelConnectors(localConns[l]);
-
-            if (l != maxLevel)
-                block->pushBackLocalInterpolationConnectorsCF(localInterConns[l]);
-        }
-        if (l != maxLevel) {
-            for (SPtr<Block3D> block : blocks[l + 1]) {
-                block->pushBackLocalInterpolationConnectorsFC(localInterConns[l]);
-            }
-        }
-        UBLOG(logDEBUG5, "Calculator::initConnectors()-initConnectors(localConns[" << l << "])");
-        initConnectors(localConns[l]);
-
-        if (l != maxLevel) {
-            UBLOG(logDEBUG5, "Calculator::initConnectors()-initConnectors(localInterConns[" << l << "])");
-            initConnectors(localInterConns[l]);
-        }
-    }
-
-    UBLOG(logDEBUG1, "Calculator::initLocalConnectors() - end");
-}
-//////////////////////////////////////////////////////////////////////////
-void Calculator::initRemoteConnectors()
-{
-    std::vector<std::vector<SPtr<Block3DConnector>>> remoteInterConnsCF;
-    std::vector<std::vector<SPtr<Block3DConnector>>> remoteInterConnsFC;
-    remoteInterConnsCF.resize(maxLevel + 1);
-    remoteInterConnsFC.resize(maxLevel + 1);
-
-    for (int l = minLevel; l <= maxLevel; l++) {
-        std::vector<SPtr<Block3D>> blockVector;
-        // grid->getBlocks(level, gridRank, true, blockVector);
-        grid->getBlocks(l, blockVector);
-        for (SPtr<Block3D> block : blockVector) {
-            int block_level = block->getLevel();
-            block->pushBackRemoteSameLevelConnectors(remoteConns[block_level]);
-
-            block->pushBackRemoteInterpolationConnectorsCF(remoteInterConnsCF[block_level]);
-            block->pushBackRemoteInterpolationConnectorsFC(remoteInterConnsFC[block_level]);
-        }
-    }
-
-    for (int l = minLevel; l <= maxLevel; l++) {
-        UBLOG(logDEBUG5, "Calculator::initRemoteConnectors()-initConnectors(remoteConns[" << l << "])");
-        initConnectors(remoteConns[l]);
-        if (l != maxLevel) {
-            for (size_t i = 0; i < remoteInterConnsCF[l].size(); i++)
-                remoteInterConns[l].push_back(remoteInterConnsCF[l][i]);
-            for (size_t i = 0; i < remoteInterConnsFC[l + 1].size(); i++)
-                remoteInterConns[l].push_back(remoteInterConnsFC[l + 1][i]);
-        }
-    }
-    //////////////////////////////////////////////////////////////////////////
-    // UBLOG(logDEBUG5, "Calculator::initConnectors() - connectoren initialisieren - start");
-    for (int l = minLevel; l <= maxLevel; l++) {
-        if (l != maxLevel) {
-            UBLOG(logDEBUG5, "Calculator::initRemoteConnectors()-initConnectors(remoteInterConns[" << l << "])");
-            for (SPtr<Block3DConnector> c : remoteInterConns[l])
-                c->init();
-        }
-    }
-    // UBLOG(logDEBUG5, "Calculator::initConnectors() - connectoren initialisieren - end");
-    //////////////////////////////////////////////////////////////////////////
-    // sendTransmitterDataSize
-    // UBLOG(logDEBUG5, "Calculator::initConnectors() - sendTransmitterDataSize - start");
-    for (int l = minLevel; l <= maxLevel; l++) {
-        if (l != maxLevel) {
-            UBLOG(logDEBUG5,
-                  "Calculator::initRemoteConnectors()-sendTransmitterDataSize(remoteInterConns[" << l << "])");
-            for (SPtr<Block3DConnector> c : remoteInterConns[l])
-                c->sendTransmitterDataSize();
-        }
-    }
-    // UBLOG(logDEBUG5, "Calculator::initConnectors() - sendTransmitterDataSize - end");
-    //////////////////////////////////////////////////////////////////////////
-    // receiveTransmitterDataSize
-    // wenn er hier bei verteilten berechnungen stopped, dann ist vermutlich auf einer seite ein nicht aktiver block!!!
-    // UBLOG(logDEBUG5, "Calculator::initConnectors() - receiveTransmitterDataSize - start");
-    for (int l = minLevel; l <= maxLevel; l++) {
-        if (l != maxLevel) {
-            UBLOG(logDEBUG5,
-                  "Calculator::initRemoteConnectors()-receiveTransmitterDataSize(remoteInterConns[" << l << "])");
-            for (SPtr<Block3DConnector> c : remoteInterConns[l])
-                c->receiveTransmitterDataSize();
-        }
-    }
-    // UBLOG(logDEBUG5, "Calculator::initConnectors() - receiveTransmitterDataSize - end");
-    //////////////////////////////////////////////////////////////////////////
-}
-//////////////////////////////////////////////////////////////////////////
-void Calculator::initConnectors(std::vector<SPtr<Block3DConnector>> &connectors)
-{
-    UBLOG(logDEBUG1, "Calculator::initConnectors() - start");
-
-    // initialization
-    //////////////////////////////////////////////////////////////////////////
-    // initialize connectors
-    UBLOG(logDEBUG5, "Calculator::initConnectors() - connectoren initialisieren - start");
-    for (SPtr<Block3DConnector> c : connectors)
-        c->init();
-    UBLOG(logDEBUG5, "Calculator::initConnectors() - connectoren initialisieren - end");
-    //////////////////////////////////////////////////////////////////////////
-    // sendTransmitterDataSize
-    UBLOG(logDEBUG5, "Calculator::initConnectors() - sendTransmitterDataSize - start");
-    for (SPtr<Block3DConnector> c : connectors)
-        c->sendTransmitterDataSize();
-    UBLOG(logDEBUG5, "Calculator::initConnectors() - sendTransmitterDataSize - end");
-    //////////////////////////////////////////////////////////////////////////
-    // receiveTransmitterDataSize
-    // wenn er hier bei verteilten berechnungen stopped, dann ist vermutlich auf einer seite ein nicht aktiver block!!!
-    UBLOG(logDEBUG5, "Calculator::initConnectors() - receiveTransmitterDataSize - start");
-    for (SPtr<Block3DConnector> c : connectors)
-        c->receiveTransmitterDataSize();
-    UBLOG(logDEBUG5, "Calculator::initConnectors() - receiveTransmitterDataSize - end");
-
-    UBLOG(logDEBUG1, "Calculator::initConnectors() - end");
-}
-//////////////////////////////////////////////////////////////////////////
-void Calculator::deleteBlocks()
-{
-    for (std::vector<SPtr<Block3D>> &bs : blocks)
-        bs.resize(0);
-}
-//////////////////////////////////////////////////////////////////////////
-void Calculator::deleteConnectors()
-{
-    deleteConnectors(localConns);
-    deleteConnectors(remoteConns);
-
-    deleteConnectors(localInterConns);
-    deleteConnectors(remoteInterConns);
-}
-//////////////////////////////////////////////////////////////////////////
-void Calculator::deleteConnectors(std::vector<std::vector<SPtr<Block3DConnector>>> &conns)
-{
-    for (std::vector<SPtr<Block3DConnector>> &c : conns)
-        c.resize(0);
-}
-//////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/Parallel/ZoltanPartitioner.cpp b/src/cpu/VirtualFluidsCore/Parallel/ZoltanPartitioner.cpp
index 220fe67c5..820af332b 100644
--- a/src/cpu/VirtualFluidsCore/Parallel/ZoltanPartitioner.cpp
+++ b/src/cpu/VirtualFluidsCore/Parallel/ZoltanPartitioner.cpp
@@ -76,7 +76,7 @@ void ZoltanPartitioner::partition()
                                  &exportToPart);    /* Partition to which each vertex will belong */
 
     if (rc != ZOLTAN_OK) {
-        cout << "Partitioning failed on process " << rank << "\n" << endl;
+        cout << "Partitioning failed on update " << rank << "\n" << endl;
         MPI_Finalize();
         Zoltan_Destroy(&zz);
         exit(0);
diff --git a/src/cpu/VirtualFluidsCore/Grid/Block3D.cpp b/src/cpu/VirtualFluidsCore/Simulation/Block3D.cpp
similarity index 100%
rename from src/cpu/VirtualFluidsCore/Grid/Block3D.cpp
rename to src/cpu/VirtualFluidsCore/Simulation/Block3D.cpp
diff --git a/src/cpu/VirtualFluidsCore/Grid/Block3D.h b/src/cpu/VirtualFluidsCore/Simulation/Block3D.h
similarity index 100%
rename from src/cpu/VirtualFluidsCore/Grid/Block3D.h
rename to src/cpu/VirtualFluidsCore/Simulation/Block3D.h
diff --git a/src/cpu/VirtualFluidsCore/Grid/Grid3D.cpp b/src/cpu/VirtualFluidsCore/Simulation/Grid3D.cpp
similarity index 100%
rename from src/cpu/VirtualFluidsCore/Grid/Grid3D.cpp
rename to src/cpu/VirtualFluidsCore/Simulation/Grid3D.cpp
diff --git a/src/cpu/VirtualFluidsCore/Grid/Grid3D.h b/src/cpu/VirtualFluidsCore/Simulation/Grid3D.h
similarity index 100%
rename from src/cpu/VirtualFluidsCore/Grid/Grid3D.h
rename to src/cpu/VirtualFluidsCore/Simulation/Grid3D.h
diff --git a/src/cpu/VirtualFluidsCore/Grid/BasicCalculator.cpp b/src/cpu/VirtualFluidsCore/Simulation/Simulation.cpp
similarity index 54%
rename from src/cpu/VirtualFluidsCore/Grid/BasicCalculator.cpp
rename to src/cpu/VirtualFluidsCore/Simulation/Simulation.cpp
index b4874366c..e3b016984 100644
--- a/src/cpu/VirtualFluidsCore/Grid/BasicCalculator.cpp
+++ b/src/cpu/VirtualFluidsCore/Simulation/Simulation.cpp
@@ -26,16 +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 BasicCalculator.cpp
+//! \file Simulation.cpp
 //! \ingroup Grid
 //! \author Konstantin Kutscher
 //=======================================================================================
 
-#include "BasicCalculator.h"
+#include "Simulation.h"
 
-#include "BCSet.h"
 #include "Block3D.h"
 #include "Block3DConnector.h"
+#include "SimulationObserver.h"
+#include "Grid3D.h"
+#include "BCSet.h"
+#include "Block3DConnector.h"
 #include "LBMKernel.h"
 #include "UbLogger.h"
 #include "UbScheduler.h"
@@ -45,22 +48,207 @@
 #endif
 #define OMP_SCHEDULE guided
 
-//#define TIMING
-//#include "UbTiming.h"
+// #define TIMING
+// #include "UbTiming.h"
+
+#include <basics/utilities/UbException.h>
+
+
+Simulation::Simulation(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayerUpdateScheduler, int numberOfTimeSteps)
+    : grid(grid), additionalGhostLayerUpdateScheduler(additionalGhostLayerUpdateScheduler),
+      numberOfTimeSteps(numberOfTimeSteps)
+{
+    this->grid    = grid;
+    startTimeStep = int(grid->getTimeStep()) + 1;
+    minLevel      = grid->getCoarsestInitializedLevel();
+    maxLevel      = grid->getFinestInitializedLevel();
+    if (maxLevel > 0)
+        refinement = true;
+    else
+        refinement = false;
+    blocks.resize(maxLevel + 1);
+    localConns.resize(maxLevel + 1);
+    remoteConns.resize(maxLevel + 1);
+    localInterConns.resize(maxLevel);
+    remoteInterConns.resize(maxLevel);
+
+    int gridRank = grid->getRank();
+
+    for (int level = minLevel; level <= maxLevel; level++) {
+        std::vector<SPtr<Block3D>> blockVector;
+        grid->getBlocks(level, gridRank, true, blockVector);
+        for (const auto &block : blockVector)
+            if (block)
+                blocks[block->getLevel()].push_back(block);
+    }
+
+    initLocalConnectors();
+    initRemoteConnectors();
+}
+//////////////////////////////////////////////////////////////////////////
+Simulation::~Simulation() = default;
+//////////////////////////////////////////////////////////////////////////
+void Simulation::addSimulationObserver(SPtr<SimulationObserver> coProcessor) { simulationObserver.push_back(coProcessor); }
+//////////////////////////////////////////////////////////////////////////
+void Simulation::notifyObservers(real step)
+{
+    for (SPtr<SimulationObserver> cp : simulationObserver) {
+        cp->update(step);
+    }
+}
+//////////////////////////////////////////////////////////////////////////
+void Simulation::initLocalConnectors()
+{
+    UBLOG(logDEBUG1, "Simulation::initLocalConnectors() - start");
+
+    for (int l = minLevel; l <= maxLevel; l++) {
+        for (SPtr<Block3D> block : blocks[l]) {
+            block->pushBackLocalSameLevelConnectors(localConns[l]);
+
+            if (l != maxLevel)
+                block->pushBackLocalInterpolationConnectorsCF(localInterConns[l]);
+        }
+        if (l != maxLevel) {
+            for (SPtr<Block3D> block : blocks[l + 1]) {
+                block->pushBackLocalInterpolationConnectorsFC(localInterConns[l]);
+            }
+        }
+        UBLOG(logDEBUG5, "Simulation::initConnectors()-initConnectors(localConns[" << l << "])");
+        initConnectors(localConns[l]);
+
+        if (l != maxLevel) {
+            UBLOG(logDEBUG5, "Simulation::initConnectors()-initConnectors(localInterConns[" << l << "])");
+            initConnectors(localInterConns[l]);
+        }
+    }
+
+    UBLOG(logDEBUG1, "Simulation::initLocalConnectors() - end");
+}
+//////////////////////////////////////////////////////////////////////////
+void Simulation::initRemoteConnectors()
+{
+    std::vector<std::vector<SPtr<Block3DConnector>>> remoteInterConnsCF;
+    std::vector<std::vector<SPtr<Block3DConnector>>> remoteInterConnsFC;
+    remoteInterConnsCF.resize(maxLevel + 1);
+    remoteInterConnsFC.resize(maxLevel + 1);
+
+    for (int l = minLevel; l <= maxLevel; l++) {
+        std::vector<SPtr<Block3D>> blockVector;
+        // grid->getBlocks(level, gridRank, true, blockVector);
+        grid->getBlocks(l, blockVector);
+        for (SPtr<Block3D> block : blockVector) {
+            int block_level = block->getLevel();
+            block->pushBackRemoteSameLevelConnectors(remoteConns[block_level]);
+
+            block->pushBackRemoteInterpolationConnectorsCF(remoteInterConnsCF[block_level]);
+            block->pushBackRemoteInterpolationConnectorsFC(remoteInterConnsFC[block_level]);
+        }
+    }
 
-BasicCalculator::BasicCalculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayerUpdateScheduler,
-                                 int numberOfTimeSteps)
-    : Calculator(grid, additionalGhostLayerUpdateScheduler, numberOfTimeSteps)
+    for (int l = minLevel; l <= maxLevel; l++) {
+        UBLOG(logDEBUG5, "Simulation::initRemoteConnectors()-initConnectors(remoteConns[" << l << "])");
+        initConnectors(remoteConns[l]);
+        if (l != maxLevel) {
+            for (size_t i = 0; i < remoteInterConnsCF[l].size(); i++)
+                remoteInterConns[l].push_back(remoteInterConnsCF[l][i]);
+            for (size_t i = 0; i < remoteInterConnsFC[l + 1].size(); i++)
+                remoteInterConns[l].push_back(remoteInterConnsFC[l + 1][i]);
+        }
+    }
+    //////////////////////////////////////////////////////////////////////////
+    // UBLOG(logDEBUG5, "Simulation::initConnectors() - connectoren initialisieren - start");
+    for (int l = minLevel; l <= maxLevel; l++) {
+        if (l != maxLevel) {
+            UBLOG(logDEBUG5, "Simulation::initRemoteConnectors()-initConnectors(remoteInterConns[" << l << "])");
+            for (SPtr<Block3DConnector> c : remoteInterConns[l])
+                c->init();
+        }
+    }
+    // UBLOG(logDEBUG5, "Simulation::initConnectors() - connectoren initialisieren - end");
+    //////////////////////////////////////////////////////////////////////////
+    // sendTransmitterDataSize
+    // UBLOG(logDEBUG5, "Simulation::initConnectors() - sendTransmitterDataSize - start");
+    for (int l = minLevel; l <= maxLevel; l++) {
+        if (l != maxLevel) {
+            UBLOG(logDEBUG5,
+                  "Simulation::initRemoteConnectors()-sendTransmitterDataSize(remoteInterConns[" << l << "])");
+            for (SPtr<Block3DConnector> c : remoteInterConns[l])
+                c->sendTransmitterDataSize();
+        }
+    }
+    // UBLOG(logDEBUG5, "Simulation::initConnectors() - sendTransmitterDataSize - end");
+    //////////////////////////////////////////////////////////////////////////
+    // receiveTransmitterDataSize
+    // if it stops here during distributed calculations, then there is probably an inactive block on one side!!!
+    // UBLOG(logDEBUG5, "Simulation::initConnectors() - receiveTransmitterDataSize - start");
+    for (int l = minLevel; l <= maxLevel; l++) {
+        if (l != maxLevel) {
+            UBLOG(logDEBUG5,
+                  "Simulation::initRemoteConnectors()-receiveTransmitterDataSize(remoteInterConns[" << l << "])");
+            for (SPtr<Block3DConnector> c : remoteInterConns[l])
+                c->receiveTransmitterDataSize();
+        }
+    }
+    // UBLOG(logDEBUG5, "Simulation::initConnectors() - receiveTransmitterDataSize - end");
+    //////////////////////////////////////////////////////////////////////////
+}
+//////////////////////////////////////////////////////////////////////////
+void Simulation::initConnectors(std::vector<SPtr<Block3DConnector>> &connectors)
 {
+    UBLOG(logDEBUG1, "Simulation::initConnectors() - start");
+
+    // initialization
+    //////////////////////////////////////////////////////////////////////////
+    // initialize connectors
+    UBLOG(logDEBUG5, "Simulation::initConnectors() - connectoren initialisieren - start");
+    for (SPtr<Block3DConnector> c : connectors)
+        c->init();
+    UBLOG(logDEBUG5, "Simulation::initConnectors() - connectoren initialisieren - end");
+    //////////////////////////////////////////////////////////////////////////
+    // sendTransmitterDataSize
+    UBLOG(logDEBUG5, "Simulation::initConnectors() - sendTransmitterDataSize - start");
+    for (SPtr<Block3DConnector> c : connectors)
+        c->sendTransmitterDataSize();
+    UBLOG(logDEBUG5, "Simulation::initConnectors() - sendTransmitterDataSize - end");
+    //////////////////////////////////////////////////////////////////////////
+    // receiveTransmitterDataSize
+    // if it stops here during distributed calculations, then there is probably an inactive block on one side!!!
+    UBLOG(logDEBUG5, "Simulation::initConnectors() - receiveTransmitterDataSize - start");
+    for (SPtr<Block3DConnector> c : connectors)
+        c->receiveTransmitterDataSize();
+    UBLOG(logDEBUG5, "Simulation::initConnectors() - receiveTransmitterDataSize - end");
+
+    UBLOG(logDEBUG1, "Simulation::initConnectors() - end");
+}
+//////////////////////////////////////////////////////////////////////////
+void Simulation::deleteBlocks()
+{
+    for (std::vector<SPtr<Block3D>> &bs : blocks)
+        bs.resize(0);
+}
+//////////////////////////////////////////////////////////////////////////
+void Simulation::deleteConnectors()
+{
+    deleteConnectors(localConns);
+    deleteConnectors(remoteConns);
+
+    deleteConnectors(localInterConns);
+    deleteConnectors(remoteInterConns);
 }
 //////////////////////////////////////////////////////////////////////////
-void BasicCalculator::calculate()
+void Simulation::deleteConnectors(std::vector<std::vector<SPtr<Block3DConnector>>> &conns)
 {
-    UBLOG(logDEBUG1, "OMPCalculator::calculate() - started");
+    for (std::vector<SPtr<Block3DConnector>> &c : conns)
+        c.resize(0);
+}
+//////////////////////////////////////////////////////////////////////////
+void Simulation::run()
+{
+    UBLOG(logDEBUG1, "OMPSimulation::calculate() - started");
     int calcStep = 0;
     try {
-        int minInitLevel       = minLevel;
-        int maxInitLevel       = maxLevel - minLevel;
+        int minInitLevel = minLevel;
+        int maxInitLevel = maxLevel - minLevel;
         int straightStartLevel = minInitLevel;
         int internalIterations = 1 << (maxInitLevel - minInitLevel);
         int threshold;
@@ -75,16 +263,15 @@ void BasicCalculator::calculate()
 #ifdef TIMING
             UBLOG(logINFO, "calcStep = " << calcStep);
 #endif
-         //////////////////////////////////////////////////////////////////////////
+            //////////////////////////////////////////////////////////////////////////
 
-         for (int staggeredStep = 1; staggeredStep <= internalIterations; staggeredStep++)
-         {
-            if (staggeredStep == internalIterations) straightStartLevel = minInitLevel;
-            else
-            {
-               for (straightStartLevel = maxInitLevel, threshold = 1;
-                  (staggeredStep & threshold) != threshold; straightStartLevel--, threshold <<= 1);
-            }
+            for (int staggeredStep = 1; staggeredStep <= internalIterations; staggeredStep++) {
+                if (staggeredStep == internalIterations)
+                    straightStartLevel = minInitLevel;
+                else {
+                    for (straightStartLevel = maxInitLevel, threshold = 1; (staggeredStep & threshold) != threshold; straightStartLevel--, threshold <<= 1)
+                        ;
+                }
 #ifdef TIMING
                 timer.resetAndStart();
 #endif
@@ -124,8 +311,7 @@ void BasicCalculator::calculate()
 #endif
                 //////////////////////////////////////////////////////////////////////////
                 if (refinement) {
-                    if (straightStartLevel < maxInitLevel)
-                        exchangeBlockData(straightStartLevel, maxInitLevel);
+                    if (straightStartLevel < maxInitLevel) exchangeBlockData(straightStartLevel, maxInitLevel);
                         //////////////////////////////////////////////////////////////////////////
 #ifdef TIMING
                     time[4] = timer.stop();
@@ -147,10 +333,10 @@ void BasicCalculator::calculate()
             if (additionalGhostLayerUpdateScheduler->isDue(calcStep)) {
                 exchangeBlockData(straightStartLevel, maxInitLevel);
             }
-            coProcess((real)(calcStep));
+            notifyObservers((real)(calcStep));
             // now ghost nodes have actual values
         }
-        UBLOG(logDEBUG1, "OMPCalculator::calculate() - stoped");
+        UBLOG(logDEBUG1, "OMPSimulation::calculate() - stoped");
     } catch (std::exception &e) {
         UBLOG(logERROR, e.what());
         UBLOG(logERROR, " step = " << calcStep);
@@ -167,7 +353,7 @@ void BasicCalculator::calculate()
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void BasicCalculator::calculateBlocks(int startLevel, int maxInitLevel, int calcStep)
+void Simulation::calculateBlocks(int startLevel, int maxInitLevel, int calcStep)
 {
 #ifdef _OPENMP
 #pragma omp parallel
@@ -199,7 +385,7 @@ void BasicCalculator::calculateBlocks(int startLevel, int maxInitLevel, int calc
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void BasicCalculator::exchangeBlockData(int startLevel, int maxInitLevel)
+void Simulation::exchangeBlockData(int startLevel, int maxInitLevel)
 {
     // startLevel bis maxInitLevel
     for (int level = startLevel; level <= maxInitLevel; level++) {
@@ -213,7 +399,7 @@ void BasicCalculator::exchangeBlockData(int startLevel, int maxInitLevel)
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void BasicCalculator::swapDistributions(int startLevel, int maxInitLevel)
+void Simulation::swapDistributions(int startLevel, int maxInitLevel)
 {
 #ifdef _OPENMP
 #pragma omp parallel
@@ -232,7 +418,7 @@ void BasicCalculator::swapDistributions(int startLevel, int maxInitLevel)
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void BasicCalculator::connectorsPrepareLocal(std::vector<SPtr<Block3DConnector>> &connectors)
+void Simulation::connectorsPrepareLocal(std::vector<SPtr<Block3DConnector>> &connectors)
 {
     int size = (int)connectors.size();
 #ifdef _OPENMP
@@ -249,7 +435,7 @@ void BasicCalculator::connectorsPrepareLocal(std::vector<SPtr<Block3DConnector>>
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void BasicCalculator::connectorsSendLocal(std::vector<SPtr<Block3DConnector>> &connectors)
+void Simulation::connectorsSendLocal(std::vector<SPtr<Block3DConnector>> &connectors)
 {
     int size = (int)connectors.size();
 #ifdef _OPENMP
@@ -266,7 +452,7 @@ void BasicCalculator::connectorsSendLocal(std::vector<SPtr<Block3DConnector>> &c
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void BasicCalculator::connectorsReceiveLocal(std::vector<SPtr<Block3DConnector>> &connectors)
+void Simulation::connectorsReceiveLocal(std::vector<SPtr<Block3DConnector>> &connectors)
 {
     int size = (int)connectors.size();
 #ifdef _OPENMP
@@ -277,7 +463,7 @@ void BasicCalculator::connectorsReceiveLocal(std::vector<SPtr<Block3DConnector>>
         connectors[i]->distributeReceiveVectors();
     }
 }
-void BasicCalculator::connectorsPrepareRemote(std::vector<SPtr<Block3DConnector>> &connectors)
+void Simulation::connectorsPrepareRemote(std::vector<SPtr<Block3DConnector>> &connectors)
 {
     int size = (int)connectors.size();
     for (int i = 0; i < size; i++) {
@@ -286,7 +472,7 @@ void BasicCalculator::connectorsPrepareRemote(std::vector<SPtr<Block3DConnector>
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void BasicCalculator::connectorsSendRemote(std::vector<SPtr<Block3DConnector>> &connectors)
+void Simulation::connectorsSendRemote(std::vector<SPtr<Block3DConnector>> &connectors)
 {
     int size = (int)connectors.size();
     for (int i = 0; i < size; i++) {
@@ -295,7 +481,7 @@ void BasicCalculator::connectorsSendRemote(std::vector<SPtr<Block3DConnector>> &
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void BasicCalculator::connectorsReceiveRemote(std::vector<SPtr<Block3DConnector>> &connectors)
+void Simulation::connectorsReceiveRemote(std::vector<SPtr<Block3DConnector>> &connectors)
 {
     int size = (int)connectors.size();
     for (int i = 0; i < size; i++) {
@@ -304,7 +490,7 @@ void BasicCalculator::connectorsReceiveRemote(std::vector<SPtr<Block3DConnector>
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void BasicCalculator::interpolation(int startLevel, int maxInitLevel)
+void Simulation::interpolation(int startLevel, int maxInitLevel)
 {
     for (int level = startLevel; level < maxInitLevel; level++) {
         connectorsPrepareLocal(localInterConns[level]);
@@ -322,7 +508,7 @@ void BasicCalculator::interpolation(int startLevel, int maxInitLevel)
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void BasicCalculator::applyPreCollisionBC(int startLevel, int maxInitLevel)
+void Simulation::applyPreCollisionBC(int startLevel, int maxInitLevel)
 {
     // from startLevel to maxInitLevel
     for (int level = startLevel; level <= maxInitLevel; level++) {
@@ -347,7 +533,7 @@ void BasicCalculator::applyPreCollisionBC(int startLevel, int maxInitLevel)
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void BasicCalculator::applyPostCollisionBC(int startLevel, int maxInitLevel)
+void Simulation::applyPostCollisionBC(int startLevel, int maxInitLevel)
 {
     //  from startLevel to maxInitLevel
     for (int level = startLevel; level <= maxInitLevel; level++) {
@@ -370,4 +556,4 @@ void BasicCalculator::applyPostCollisionBC(int startLevel, int maxInitLevel)
             }
         }
     }
-}
+}
\ No newline at end of file
diff --git a/src/cpu/VirtualFluidsCore/Grid/Calculator.h b/src/cpu/VirtualFluidsCore/Simulation/Simulation.h
similarity index 74%
rename from src/cpu/VirtualFluidsCore/Grid/Calculator.h
rename to src/cpu/VirtualFluidsCore/Simulation/Simulation.h
index 8ae810c7e..7b6aef20c 100644
--- a/src/cpu/VirtualFluidsCore/Grid/Calculator.h
+++ b/src/cpu/VirtualFluidsCore/Simulation/Simulation.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 Calculator.h
+//! \file Simulation.h
 //! \ingroup Grid
 //! \author Konstantin Kutscher
 //=======================================================================================
 
-#ifndef CALCULATOR_H
-#define CALCULATOR_H
+#ifndef Simulation_H
+#define Simulation_H
 
 #include <PointerDefinitions.h>
 #include <vector>
@@ -44,19 +44,19 @@ class Block3D;
 class Block3DConnector;
 class SimulationObserver;
 
-//! \class Calculator
-//! \brief A base class for main calculation loop
+//! \class Simulation
+//! \brief A base class for main simulation loop
 
-class Calculator
+class Simulation
 {
 public:
-    Calculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayerUpdateScheduler, int numberOfTimeSteps);
-    virtual ~Calculator();
+    Simulation(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayerUpdateScheduler, int numberOfTimeSteps);
+    virtual ~Simulation();
     //! control of coProcessors
     void addSimulationObserver(SPtr<SimulationObserver> coProcessor);
-    void coProcess(real step);
+    void notifyObservers(real step);
 
-    virtual void calculate() = 0;
+    virtual void run();
 
 protected:
     virtual void initLocalConnectors();
@@ -66,6 +66,19 @@ protected:
     void deleteConnectors();
     void deleteConnectors(std::vector<std::vector<SPtr<Block3DConnector>>> &conns);
 
+    void calculateBlocks(int startLevel, int maxInitLevel, int calcStep);
+    void swapDistributions(int startLevel, int maxInitLevel);
+    void exchangeBlockData(int startLevel, int maxInitLevel);
+    void connectorsPrepareLocal(std::vector<SPtr<Block3DConnector>> &connectors);
+    void connectorsSendLocal(std::vector<SPtr<Block3DConnector>> &connectors);
+    void connectorsReceiveLocal(std::vector<SPtr<Block3DConnector>> &connectors);
+    void connectorsPrepareRemote(std::vector<SPtr<Block3DConnector>> &connectors);
+    void connectorsSendRemote(std::vector<SPtr<Block3DConnector>> &connectors);
+    void connectorsReceiveRemote(std::vector<SPtr<Block3DConnector>> &connectors);
+    void interpolation(int startLevel, int maxInitLevel);
+    void applyPreCollisionBC(int startLevel, int maxInitLevel);
+    void applyPostCollisionBC(int startLevel, int maxInitLevel);
+
     int minLevel, maxLevel;
     int startTimeStep;
     int numberOfTimeSteps;
@@ -86,7 +99,7 @@ protected:
     std::vector<std::vector<SPtr<Block3DConnector>>> localInterConns;
     std::vector<std::vector<SPtr<Block3DConnector>>> remoteInterConns;
 
-    std::vector<SPtr<SimulationObserver>> coProcessors;
+    std::vector<SPtr<SimulationObserver>> simulationObserver;
 };
 
 #endif
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.cpp
index af91e66fb..2254b9b02 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.cpp
@@ -71,7 +71,7 @@ AdjustForcingSimulationObserver::AdjustForcingSimulationObserver(SPtr<Grid3D> gr
 }
 
 //////////////////////////////////////////////////////////////////////////
-void AdjustForcingSimulationObserver::process(real step)
+void AdjustForcingSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.h
index 72141c6dd..9e570e34d 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/AdjustForcingSimulationObserver.h
@@ -24,7 +24,7 @@ public:
     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;
+    void update(real step) override;
 
 protected:
     //!< object that can compute spacial average values in 3D-subdomain.
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.cpp
index 9dc2e93ee..1adf3ad99 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.cpp
@@ -54,7 +54,7 @@ AverageValuesSimulationObserver::AverageValuesSimulationObserver(SPtr<Grid3D> gr
     // restartStep = 0.0;
 }
 //////////////////////////////////////////////////////////////////////////
-void AverageValuesSimulationObserver::process(real step)
+void AverageValuesSimulationObserver::update(real step)
 {
     // resetRMS(step);
     if (resetSchedulerRMS->isDue(step))
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.h
index d406a018b..b5ce823ba 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/AverageValuesSimulationObserver.h
@@ -29,7 +29,7 @@ public:
     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;
+    void update(real step) override;
     //! Resets averaged velocity and RMS-values according to ResetSceduler
     void reset(real step);
 
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.cpp
index 9189a4089..8610c5df9 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.cpp
@@ -57,7 +57,7 @@ CalculateForcesSimulationObserver::CalculateForcesSimulationObserver(SPtr<Grid3D
 //////////////////////////////////////////////////////////////////////////
 CalculateForcesSimulationObserver::~CalculateForcesSimulationObserver() = default;
 //////////////////////////////////////////////////////////////////////////
-void CalculateForcesSimulationObserver::process(real step)
+void CalculateForcesSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.h
index 4198b99dd..02b76e77b 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateForcesSimulationObserver.h
@@ -33,7 +33,7 @@ public:
     CalculateForcesSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm,
                                real v, real a);
     ~CalculateForcesSimulationObserver() override;
-    void process(real step) override;
+    void update(real step) override;
     void addInteractor(SPtr<D3Q27Interactor> interactor);
 
 protected:
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.cpp
index 5cacf602f..6d2e1dfbc 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.cpp
@@ -42,7 +42,7 @@ CalculateTorqueSimulationObserver::~CalculateTorqueSimulationObserver()
 
 }
 //////////////////////////////////////////////////////////////////////////
-void CalculateTorqueSimulationObserver::process( real step )
+void CalculateTorqueSimulationObserver::update( real step )
 {
    if(scheduler->isDue(step) )
       collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.h
index 75d840ed3..d0cd9c41d 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/CalculateTorqueSimulationObserver.h
@@ -31,7 +31,7 @@ public:
    //! Constructor
    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 update(real step); 
    void addInteractor(SPtr<D3Q27Interactor> interactor);
 protected:
 	void collectData(real step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.cpp
index d8b9757aa..075449176 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.cpp
@@ -26,7 +26,7 @@ DecreaseViscositySimulationObserver::DecreaseViscositySimulationObserver(SPtr<Gr
 //////////////////////////////////////////////////////////////////////////
 DecreaseViscositySimulationObserver::~DecreaseViscositySimulationObserver() = default;
 //////////////////////////////////////////////////////////////////////////
-void DecreaseViscositySimulationObserver::process(real step)
+void DecreaseViscositySimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         setViscosity(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.h
index a06652efa..2e2c655d2 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/DecreaseViscositySimulationObserver.h
@@ -31,7 +31,7 @@ public:
     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;
+    void update(real step) override;
 
 protected:
     //! resets the collision factor depending on the current timestep.
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.cpp
index a502e834b..a6826a713 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.cpp
@@ -22,7 +22,7 @@ EmergencyExitSimulationObserver::EmergencyExitSimulationObserver(SPtr<Grid3D> gr
 //////////////////////////////////////////////////////////////////////////
 EmergencyExitSimulationObserver::~EmergencyExitSimulationObserver() = default;
 //////////////////////////////////////////////////////////////////////////
-void EmergencyExitSimulationObserver::process(real step)
+void EmergencyExitSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
@@ -33,7 +33,7 @@ void EmergencyExitSimulationObserver::process(real step)
 void EmergencyExitSimulationObserver::collectData(real step)
 {
     if (readMetafile()) {
-        rp->process((int)step);
+        rp->update((int)step);
         if (comm->getProcessID() == comm->getRoot())
             UBLOG(logINFO, "EmergencyExitSimulationObserver save step: " << step);
         comm->barrier();
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.h
index b7d8f2219..f4a8e79f6 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/EmergencyExitSimulationObserver.h
@@ -25,7 +25,7 @@ public:
                              SPtr<MPIIORestartSimulationObserver> rp, std::shared_ptr<vf::mpi::Communicator> comm);
     ~EmergencyExitSimulationObserver() override;
 
-    void process(real step) override;
+    void update(real step) override;
 
 protected:
     void collectData(real step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.cpp
index 5b3eee03f..4e8fd6d5f 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.cpp
@@ -42,7 +42,7 @@ InSituCatalystSimulationObserver::InSituCatalystSimulationObserver(SPtr<Grid3D>
 //////////////////////////////////////////////////////////////////////////
 InSituCatalystSimulationObserver::~InSituCatalystSimulationObserver() {}
 //////////////////////////////////////////////////////////////////////////
-void InSituCatalystSimulationObserver::process(real step)
+void InSituCatalystSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.h
index 705aeb927..f81fe767a 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituCatalystSimulationObserver.h
@@ -25,7 +25,7 @@ public:
     InSituCatalystSimulationObserver();
     InSituCatalystSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, std::string script);
     virtual ~InSituCatalystSimulationObserver();
-    void process(real step);
+    void update(real step);
 
 protected:
     void collectData(real step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.cpp
index 663bbc940..74c1b653b 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.cpp
@@ -57,7 +57,7 @@ InSituVTKSimulationObserver::InSituVTKSimulationObserver(SPtr<Grid3D> grid, SPtr
 //////////////////////////////////////////////////////////////////////////
 InSituVTKSimulationObserver::~InSituVTKSimulationObserver() { comm->CloseConnection(); }
 //////////////////////////////////////////////////////////////////////////
-void InSituVTKSimulationObserver::process(real step)
+void InSituVTKSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.h
index d42993002..1171c5425 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/InSituVTKSimulationObserver.h
@@ -23,7 +23,7 @@ public:
     InSituVTKSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &configFile,
                          SPtr<LBMUnitConverter> conv);
     virtual ~InSituVTKSimulationObserver();
-    void process(real step);
+    void update(real step);
 
 protected:
     void collectData(real step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.cpp
index 5000d9b03..75350fb6e 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.cpp
@@ -61,7 +61,7 @@ LineTimeSeriesSimulationObserver::LineTimeSeriesSimulationObserver(SPtr<Grid3D>
     ix3 = x3min % val<3>(blockNx) + 1;
 }
 //////////////////////////////////////////////////////////////////////////
-void LineTimeSeriesSimulationObserver::process(real step)
+void LineTimeSeriesSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step)) {
         collectData();
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.h
index d534ef7fe..0f8a9ab44 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/LineTimeSeriesSimulationObserver.h
@@ -30,7 +30,7 @@ public:
                               int level, std::shared_ptr<vf::mpi::Communicator> comm);
     ~LineTimeSeriesSimulationObserver() override = default;
 
-    void process(real step) override;
+    void update(real step) override;
     void writeLine(const std::string &path);
 
 protected:
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp
index 4d2a44541..ef2208568 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp
@@ -40,7 +40,7 @@ MPIIOMigrationBESimulationObserver::MPIIOMigrationBESimulationObserver(SPtr<Grid
 //////////////////////////////////////////////////////////////////////////
 MPIIOMigrationBESimulationObserver::~MPIIOMigrationBESimulationObserver() { MPI_Type_free(&sendBlockIntType); }
 
-void MPIIOMigrationBESimulationObserver::process(real step)
+void MPIIOMigrationBESimulationObserver::update(real step)
 {
     if (scheduler->isDue(step)) {
         if (comm->isRoot())
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.h
index 31c4de3d0..fa55ea17a 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationBESimulationObserver.h
@@ -36,7 +36,7 @@ public:
                                 std::shared_ptr<vf::mpi::Communicator> comm);
     ~MPIIOMigrationBESimulationObserver() override;
     //! Each timestep writes the grid into the files
-    void process(real step) override;
+    void update(real step) override;
     //! Reads the grid from the files before grid reconstruction
     void restart(int step);
     //! Writes the blocks of the grid into the file cpBlocks.bin
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.cpp
index 0cd149101..32e6ba518 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.cpp
@@ -69,7 +69,7 @@ MPIIOMigrationSimulationObserver::~MPIIOMigrationSimulationObserver()
 }
 
 //////////////////////////////////////////////////////////////////////////
-void MPIIOMigrationSimulationObserver::process(real step)
+void MPIIOMigrationSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step)) 
     {
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.h
index c9d2ac3a3..588366a64 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOMigrationSimulationObserver.h
@@ -34,7 +34,7 @@ public:
     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;
+    void update(real step) override;
     //! Reads the grid from the files before grid reconstruction
     void restart(int step);
     //! Writes the blocks of the grid into the file cpBlocks.bin
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.cpp
index dd987625e..b2e9e5505 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.cpp
@@ -77,7 +77,7 @@ MPIIORestartSimulationObserver::~MPIIORestartSimulationObserver()
 }
 
 //////////////////////////////////////////////////////////////////////////
-void MPIIORestartSimulationObserver::process(real step)
+void MPIIORestartSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step)) 
     {
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.h
index a76b69306..5681d9886 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIORestartSimulationObserver.h
@@ -35,7 +35,7 @@ public:
     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;
+    void update(real step) override;
     //! Reads the grid from the files before grid reconstruction
     void restart(int step);
     //! Writes the blocks of the grid into the file cpBlocks.bin
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOSimulationObserver.h
index e42b7117e..c04938a71 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MPIIOSimulationObserver.h
@@ -19,7 +19,7 @@ public:
     ~MPIIOSimulationObserver() override;
 
     //! Each timestep writes the grid into the files
-    void process(real step) override = 0;
+    void update(real step) override = 0;
 
     //! Writes the blocks of the grid into the file cpBlocks.bin
     void writeBlocks(int step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.cpp
index a456fe6f8..2979c841c 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.cpp
@@ -22,7 +22,7 @@ MicrophoneArraySimulationObserver::MicrophoneArraySimulationObserver(SPtr<Grid3D
 
 MicrophoneArraySimulationObserver::~MicrophoneArraySimulationObserver() = default;
 
-void MicrophoneArraySimulationObserver::process(real step)
+void MicrophoneArraySimulationObserver::update(real step)
 {
     if (microphones.size() > 0) {
         collectData(step);
@@ -31,7 +31,7 @@ void MicrophoneArraySimulationObserver::process(real step)
             writeFile(step);
     }
 
-    UBLOG(logDEBUG3, "MicrophoneArraySimulationObserver::process:" << step);
+    UBLOG(logDEBUG3, "MicrophoneArraySimulationObserver::update:" << step);
 }
 
 bool MicrophoneArraySimulationObserver::addMicrophone(Vector3D coords)
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.h
index fc773771b..e87954fa2 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/MicrophoneArraySimulationObserver.h
@@ -27,7 +27,7 @@ public:
     ~MicrophoneArraySimulationObserver() override;
 
     //! calls collectData.
-    void process(real step) override;
+    void update(real step) override;
 
     //! add microphone
     bool addMicrophone(Vector3D coords);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.cpp
index b3a8b3d67..3bd0bd6f8 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.cpp
@@ -61,7 +61,7 @@ NUPSCounterSimulationObserver::NUPSCounterSimulationObserver(SPtr<Grid3D> grid,
 //////////////////////////////////////////////////////////////////////////
 NUPSCounterSimulationObserver::~NUPSCounterSimulationObserver() = default;
 //////////////////////////////////////////////////////////////////////////
-void NUPSCounterSimulationObserver::process(real step)
+void NUPSCounterSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
@@ -76,7 +76,7 @@ void NUPSCounterSimulationObserver::collectData(real step)
         real tnups  = nups / (real)numOfThreads;
         UBLOG(logINFO, "Calculation step = " << step);
         UBLOG(logINFO, "Total performance = " << nups_t << " NUPS");
-        UBLOG(logINFO, "Performance per process = " << nups << " NUPS");
+        UBLOG(logINFO, "Performance per update = " << nups << " NUPS");
         UBLOG(logINFO, "Performance per thread = " << tnups << " NUPS");
         UBLOG(logINFO, "Time for " << step - nupsStep << " steps = " << time << " s");
         nupsStep = step;
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.h
index 37e41d11a..fdce1c4d6 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/NUPSCounterSimulationObserver.h
@@ -57,7 +57,7 @@ public:
     NUPSCounterSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s, int numOfThreads, std::shared_ptr<vf::mpi::Communicator> comm);
     ~NUPSCounterSimulationObserver() override;
 
-    void process(real step) override;
+    void update(real step) override;
 
 protected:
     //! Collect data for calculation of NUPS
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.cpp
index 8df444b9f..7c9cd4b85 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.cpp
@@ -23,7 +23,7 @@ PressureCoefficientSimulationObserver::PressureCoefficientSimulationObserver(SPt
 //////////////////////////////////////////////////////////////////////////
 PressureCoefficientSimulationObserver::~PressureCoefficientSimulationObserver() = default;
 //////////////////////////////////////////////////////////////////////////
-void PressureCoefficientSimulationObserver::process(real step)
+void PressureCoefficientSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.h
index f8a9520aa..bfb56a65d 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureCoefficientSimulationObserver.h
@@ -22,7 +22,7 @@ public:
                                    const std::string &path, std::shared_ptr<vf::mpi::Communicator> comm);
     ~PressureCoefficientSimulationObserver() override;
 
-    void process(real step) override;
+    void update(real step) override;
 
     void addInteractor(SPtr<D3Q27Interactor> interactor);
     void readValues(int step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.cpp
index 4234d8907..9b3c63f40 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.cpp
@@ -71,7 +71,7 @@ PressureDifferenceSimulationObserver::PressureDifferenceSimulationObserver(SPtr<
 //////////////////////////////////////////////////////////////////////////
 PressureDifferenceSimulationObserver::~PressureDifferenceSimulationObserver() = default;
 //////////////////////////////////////////////////////////////////////////
-void PressureDifferenceSimulationObserver::process(real step)
+void PressureDifferenceSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.h
index 447fb5374..35356d25f 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/PressureDifferenceSimulationObserver.h
@@ -29,7 +29,7 @@ public:
                                   /*const SPtr<LBMUnitConverter> conv,*/ std::shared_ptr<vf::mpi::Communicator> comm);
     ~PressureDifferenceSimulationObserver() override;
 
-    void process(real step) override;
+    void update(real step) override;
 
 protected:
     SPtr<IntegrateValuesHelper> h1, h2;
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.cpp
index 3648d9526..010d9ff66 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.cpp
@@ -32,7 +32,7 @@ void QCriterionSimulationObserver::init()
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void QCriterionSimulationObserver::process(real step)
+void QCriterionSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.h
index a624a4606..1d5aec23f 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/QCriterionSimulationObserver.h
@@ -31,7 +31,7 @@ public:
     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;
+    void update(real step) override;
 
 protected:
     //! Prepare data and write in .vtk file
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.cpp
index 5bc88dae1..92c8f5f60 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.cpp
@@ -38,7 +38,7 @@ ShearStressSimulationObserver::ShearStressSimulationObserver(SPtr<Grid3D> grid,
 //////////////////////////////////////////////////////////////////////////
 ShearStressSimulationObserver::~ShearStressSimulationObserver() = default;
 //////////////////////////////////////////////////////////////////////////
-void ShearStressSimulationObserver::process(real step)
+void ShearStressSimulationObserver::update(real step)
 {
     if (step == 0) {
         initDistance();
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.h
index 03ee83d21..66a76356d 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/ShearStressSimulationObserver.h
@@ -31,7 +31,7 @@ public:
                            SPtr<UbScheduler> rs);
     ~ShearStressSimulationObserver() override;
 
-    void process(real step) override;
+    void update(real step) override;
 
     void addInteractor(SPtr<D3Q27Interactor> interactor);
 
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/SimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/SimulationObserver.h
index c80327b68..f0c8e0e2c 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/SimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/SimulationObserver.h
@@ -59,7 +59,7 @@ public:
     virtual ~SimulationObserver();
     //! \brief Updates observer
     //! \param step is the actual time step
-    virtual void process(real step) = 0;
+    virtual void update(real step) = 0;
 
 protected:
     SPtr<Grid3D> grid;
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.cpp
index cdfc16ed5..ebd65f625 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.cpp
@@ -116,7 +116,7 @@ void TimeAveragedValuesSimulationObserver::initData()
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void TimeAveragedValuesSimulationObserver::process(real step)
+void TimeAveragedValuesSimulationObserver::update(real step)
 {
     if (step == minStep) {
         initData();
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.h
index 26930848e..14a1f6354 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeAveragedValuesSimulationObserver.h
@@ -47,7 +47,7 @@ public:
                                   std::vector<real> &levelCoords, std::vector<real> &bounds,
                                   bool timeAveraging = true);
     //! Make update
-    void process(real step) override;
+    void update(real step) override;
     //! Computes subtotal of velocity , fluctuations and triple correlations
     void calculateSubtotal(real step);
     void addLevelCoordinate(real c);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.cpp
index 99e7ebafd..cedf228b6 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.cpp
@@ -8,7 +8,7 @@ TimeDependentBCSimulationObserver::TimeDependentBCSimulationObserver(SPtr<Grid3D
 //////////////////////////////////////////////////////////////////////////
 TimeDependentBCSimulationObserver::~TimeDependentBCSimulationObserver() = default;
 //////////////////////////////////////////////////////////////////////////
-void TimeDependentBCSimulationObserver::process(real step)
+void TimeDependentBCSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step)) {
         for (SPtr<Interactor3D> inter : interactors)
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.h
index 32a1ea780..0c72054f2 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeDependentBCSimulationObserver.h
@@ -18,7 +18,7 @@ public:
     TimeDependentBCSimulationObserver(SPtr<Grid3D> grid, SPtr<UbScheduler> s);
     ~TimeDependentBCSimulationObserver() override;
 
-    void process(real step) override;
+    void update(real step) override;
 
     //! add interactors to SimulationObserver
     void addInteractor(SPtr<Interactor3D> interactor);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.cpp
index 861045cf6..e0560e276 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.cpp
@@ -43,7 +43,7 @@ TimeseriesSimulationObserver::TimeseriesSimulationObserver(SPtr<Grid3D> grid, SP
 //////////////////////////////////////////////////////////////////////////
 TimeseriesSimulationObserver::~TimeseriesSimulationObserver() = default;
 //////////////////////////////////////////////////////////////////////////
-void TimeseriesSimulationObserver::process(real step)
+void TimeseriesSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.h
index 1cc7ed375..db41bd2ec 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TimeseriesSimulationObserver.h
@@ -31,7 +31,7 @@ public:
     ~TimeseriesSimulationObserver() override;
 
     //! calls collectData.
-    void process(real step) override;
+    void update(real step) override;
 
 protected:
     void collectData(real step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.cpp
index ee19e1bf2..47b865ed7 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.cpp
@@ -40,7 +40,7 @@ void TurbulenceIntensitySimulationObserver::init()
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void TurbulenceIntensitySimulationObserver::process(real step)
+void TurbulenceIntensitySimulationObserver::update(real step)
 {
     calculateAverageValues(int(step));
 
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.h
index edede6fe6..c615bbda5 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/TurbulenceIntensitySimulationObserver.h
@@ -19,7 +19,7 @@ class TurbulenceIntensitySimulationObserver : public SimulationObserver
 public:
     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;
+    void update(real step) override;
 
 protected:
     void collectData(real step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.cpp
index 8dec964fd..fd983bd02 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.cpp
@@ -49,7 +49,7 @@ WriteBlocksSimulationObserver::WriteBlocksSimulationObserver(SPtr<Grid3D> grid,
 //////////////////////////////////////////////////////////////////////////
 WriteBlocksSimulationObserver::~WriteBlocksSimulationObserver() = default;
 //////////////////////////////////////////////////////////////////////////
-void WriteBlocksSimulationObserver::process(real step)
+void WriteBlocksSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.h
index 4bc210c82..805605b64 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBlocksSimulationObserver.h
@@ -60,7 +60,7 @@ public:
                            std::shared_ptr<vf::mpi::Communicator> comm);
     ~WriteBlocksSimulationObserver() override;
 
-    void process(real step) override;
+    void update(real step) override;
 
 protected:
     //! Collect data for VTK-file
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.cpp
index 9685a942a..9d09db9e2 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.cpp
@@ -69,7 +69,7 @@ WriteBoundaryConditionsSimulationObserver::WriteBoundaryConditionsSimulationObse
     }
 }
 //////////////////////////////////////////////////////////////////////////
-void WriteBoundaryConditionsSimulationObserver::process(real step)
+void WriteBoundaryConditionsSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.h
index 86ff363d5..ad5b20df9 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteBoundaryConditionsSimulationObserver.h
@@ -64,7 +64,7 @@ public:
                                        WbWriter *const writer, std::shared_ptr<vf::mpi::Communicator> comm);
     ~WriteBoundaryConditionsSimulationObserver() override = default;
 
-    void process(real step) override;
+    void update(real step) override;
 
 protected:
     //! Collect data for VTK-file
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.cpp
index 7f2b699e4..62178444f 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.cpp
@@ -14,7 +14,7 @@ WriteGbObjectsSimulationObserver::WriteGbObjectsSimulationObserver(SPtr<Grid3D>
 //////////////////////////////////////////////////////////////////////////
 WriteGbObjectsSimulationObserver::~WriteGbObjectsSimulationObserver() = default;
 //////////////////////////////////////////////////////////////////////////
-void WriteGbObjectsSimulationObserver::process(real step)
+void WriteGbObjectsSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.h
index 7fa770917..50f88c65d 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteGbObjectsSimulationObserver.h
@@ -24,7 +24,7 @@ public:
                               std::shared_ptr<vf::mpi::Communicator> comm);
     ~WriteGbObjectsSimulationObserver() override;
     //! calls collectData.
-    void process(real step) override;
+    void update(real step) override;
     //! adds geometry object
     void addGbObject(SPtr<GbObject3D> object);
 
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.cpp
index a9f837653..caf1e8c1e 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.cpp
@@ -35,7 +35,7 @@ WriteMQFromSelectionSimulationObserver::WriteMQFromSelectionSimulationObserver(S
 //////////////////////////////////////////////////////////////////////////
 void WriteMQFromSelectionSimulationObserver::init() {}
 //////////////////////////////////////////////////////////////////////////
-void WriteMQFromSelectionSimulationObserver::process(real step)
+void WriteMQFromSelectionSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.h
index 23af9d28f..e91fc369e 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMQFromSelectionSimulationObserver.h
@@ -27,7 +27,7 @@ public:
                                     std::shared_ptr<vf::mpi::Communicator> comm);
     ~WriteMQFromSelectionSimulationObserver() override = default;
 
-    void process(real step) override;
+    void update(real step) override;
 
 protected:
     void collectData(real step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.cpp
index f20c4c91b..142bcc52b 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.cpp
@@ -72,7 +72,7 @@ void WriteMacroscopicQuantitiesPlusMassSimulationObserver::init()
 {}
 
 //////////////////////////////////////////////////////////////////////////
-void WriteMacroscopicQuantitiesPlusMassSimulationObserver::process(real step)
+void WriteMacroscopicQuantitiesPlusMassSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.h
index 9da90c1d7..ce6946528 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.h
@@ -66,7 +66,7 @@ public:
                                           WbWriter *const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm);
     ~WriteMacroscopicQuantitiesPlusMassSimulationObserver() override = default;
 
-    void process(real step) override;
+    void update(real step) override;
 
 protected:
     //! Collect data for VTK-file
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.cpp
index 195ef22a8..b87b5cfcf 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.cpp
@@ -72,7 +72,7 @@ void WriteMacroscopicQuantitiesSimulationObserver::init()
 {}
 
 //////////////////////////////////////////////////////////////////////////
-void WriteMacroscopicQuantitiesSimulationObserver::process(real step)
+void WriteMacroscopicQuantitiesSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.h
index 02c76ea2e..85de03364 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.h
@@ -66,7 +66,7 @@ public:
                                           WbWriter *const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm);
     ~WriteMacroscopicQuantitiesSimulationObserver() override = default;
 
-    void process(real step) override;
+    void update(real step) override;
 
 protected:
     //! Collect data for VTK-file
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.cpp
index 46d1d7c83..7669dec49 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.cpp
@@ -73,7 +73,7 @@ void WriteMultiphaseQuantitiesSimulationObserver::init()
 {}
 
 //////////////////////////////////////////////////////////////////////////
-void WriteMultiphaseQuantitiesSimulationObserver::process(real step)
+void WriteMultiphaseQuantitiesSimulationObserver::update(real step)
 {
     if (scheduler->isDue(step))
         collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.h
index 9a97b35bc..452a06d3b 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.h
@@ -66,7 +66,7 @@ public:
                                           WbWriter *const writer, SPtr<LBMUnitConverter> conv, std::shared_ptr<vf::mpi::Communicator> comm);
     ~WriteMultiphaseQuantitiesSimulationObserver() override = default;
 
-    void process(real step) override;
+    void update(real step) override;
 
 protected:
     //! Collect data for VTK-file
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.cpp b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.cpp
index dbfcd2b56..5671e4acf 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.cpp
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.cpp
@@ -71,7 +71,7 @@ void WriteThixotropyQuantitiesSimulationObserver::init()
 
 }
 //////////////////////////////////////////////////////////////////////////
-void WriteThixotropyQuantitiesSimulationObserver::process(real step)
+void WriteThixotropyQuantitiesSimulationObserver::update(real step)
 {
 	if (scheduler->isDue(step))
 		collectData(step);
diff --git a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.h b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.h
index c5bea7d70..3ac9664e5 100644
--- a/src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.h
+++ b/src/cpu/VirtualFluidsCore/SimulationObservers/WriteThixotropyQuantitiesSimulationObserver.h
@@ -48,7 +48,7 @@ public:
 	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;
+   void update(real step) override;
 
 protected:
    void collectData(real step);
-- 
GitLab