From cd2494818cd5c6979c0434980fd0ef9707d85067 Mon Sep 17 00:00:00 2001
From: Konstantin Kutscher <kutscher@irmb.tu-bs.de>
Date: Wed, 23 Mar 2016 16:04:31 +0000
Subject: [PATCH] rename Postprocessor classes to CoProcessor

---
 source/Applications/pChannel/pChannel.cpp     | 20 ++---
 source/VirtualFluids.h                        | 42 +++++-----
 ...essor.cpp => AdjustForcingCoProcessor.cpp} | 14 ++--
 ...processor.h => AdjustForcingCoProcessor.h} | 16 ++--
 ...essor.cpp => AverageValuesCoProcessor.cpp} | 32 ++++----
 ...processor.h => AverageValuesCoProcessor.h} | 24 +++---
 .../CoProcessors/BlocksPostprocessor.h        | 32 --------
 .../{Postprocessor.h => CoProcessor.h}        | 18 ++---
 ...r.cpp => DecreaseViscosityCoProcessor.cpp} | 14 ++--
 ...essor.h => DecreaseViscosityCoProcessor.h} | 16 ++--
 ...essor.cpp => EmergencyExitCoProcessor.cpp} | 22 +++---
 .../CoProcessors/EmergencyExitCoProcessor.h   | 40 ++++++++++
 .../CoProcessors/EmergencyExitPostprocessor.h | 40 ----------
 ...ostprocessor.cpp => ForcesCoProcessor.cpp} | 24 +++---
 ...cesPostprocessor.h => ForcesCoProcessor.h} | 14 ++--
 ...ssor.cpp => InSituCatalystCoProcessor.cpp} | 22 +++---
 ...rocessor.h => InSituCatalystCoProcessor.h} | 16 ++--
 ...processor.cpp => InSituVTKCoProcessor.cpp} | 20 ++---
 ...Postprocessor.h => InSituVTKCoProcessor.h} | 16 ++--
 ...p => MacroscopicQuantitiesCoProcessor.cpp} | 28 +++----
 ...r.h => MacroscopicQuantitiesCoProcessor.h} | 22 +++---
 ...rocessor.cpp => MeanValuesCoProcessor.cpp} | 12 +--
 ...ostprocessor.h => MeanValuesCoProcessor.h} | 10 +--
 ...ocessor.cpp => NUPSCounterCoProcessor.cpp} | 14 ++--
 ...stprocessor.h => NUPSCounterCoProcessor.h} | 12 +--
 ...tprocessor.cpp => PathLineCoProcessor.cpp} | 76 +++++++++---------
 ...ePostprocessor.h => PathLineCoProcessor.h} | 14 ++--
 ...part.cpp => PathLineCoProcessorMcpart.cpp} | 78 +++++++++----------
 ...orMcpart.h => PathLineCoProcessorMcpart.h} | 14 ++--
 ....cpp => PressureDifferenceCoProcessor.cpp} | 14 ++--
 ...ssor.h => PressureDifferenceCoProcessor.h} | 12 +--
 ...rocessor.cpp => QCriterionCoProcessor.cpp} | 26 +++----
 ...ostprocessor.h => QCriterionCoProcessor.h} | 16 ++--
 ...stprocessor.cpp => RestartCoProcessor.cpp} | 46 +++++------
 ...rtPostprocessor.h => RestartCoProcessor.h} | 20 ++---
 ...ocessor.cpp => ShearStressCoProcessor.cpp} | 38 ++++-----
 ...stprocessor.h => ShearStressCoProcessor.h} | 24 +++---
 ....cpp => TimeAveragedValuesCoProcessor.cpp} | 24 +++---
 ...ssor.h => TimeAveragedValuesCoProcessor.h} | 18 ++---
 ...sor.cpp => TimeDependentBCCoProcessor.cpp} | 10 +--
 .../CoProcessors/TimeDependentBCCoProcessor.h | 27 +++++++
 .../TimeDependentBCPostprocessor.h            | 27 -------
 ...rocessor.cpp => TimeseriesCoProcessor.cpp} | 14 ++--
 ...ostprocessor.h => TimeseriesCoProcessor.h} | 18 ++---
 ...cpp => TurbulenceIntensityCoProcessor.cpp} | 24 +++---
 ...sor.h => TurbulenceIntensityCoProcessor.h} | 16 ++--
 ...ocessor.cpp => WriteBlocksCoProcessor.cpp} | 16 ++--
 .../CoProcessors/WriteBlocksCoProcessor.h     | 32 ++++++++
 .../BoostSerializationClassExportHelper.h     | 16 ++--
 source/VirtualFluidsCore/Grid/Calculator.cpp  |  2 +-
 source/VirtualFluidsCore/Grid/Calculator2.cpp |  2 +-
 source/VirtualFluidsCore/Grid/Grid3D.cpp      |  2 +-
 source/VirtualFluidsCore/Grid/Grid3D.h        |  2 +-
 .../VirtualFluidsCore/Grid/MTCalculator.cpp   |  2 +-
 .../Grid/PrePostBcCalculator.cpp              |  2 +-
 55 files changed, 586 insertions(+), 586 deletions(-)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27AdjustForcingPostprocessor.cpp => AdjustForcingCoProcessor.cpp} (89%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27AdjustForcingPostprocessor.h => AdjustForcingCoProcessor.h} (73%)
 rename source/VirtualFluidsCore/CoProcessors/{AverageValuesPostprocessor.cpp => AverageValuesCoProcessor.cpp} (92%)
 rename source/VirtualFluidsCore/CoProcessors/{AverageValuesPostprocessor.h => AverageValuesCoProcessor.h} (81%)
 delete mode 100644 source/VirtualFluidsCore/CoProcessors/BlocksPostprocessor.h
 rename source/VirtualFluidsCore/CoProcessors/{Postprocessor.h => CoProcessor.h} (64%)
 rename source/VirtualFluidsCore/CoProcessors/{DecreaseViscosityPostprocessor.cpp => DecreaseViscosityCoProcessor.cpp} (81%)
 rename source/VirtualFluidsCore/CoProcessors/{DecreaseViscosityPostprocessor.h => DecreaseViscosityCoProcessor.h} (76%)
 rename source/VirtualFluidsCore/CoProcessors/{EmergencyExitPostprocessor.cpp => EmergencyExitCoProcessor.cpp} (67%)
 create mode 100644 source/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.h
 delete mode 100644 source/VirtualFluidsCore/CoProcessors/EmergencyExitPostprocessor.h
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27ForcesPostprocessor.cpp => ForcesCoProcessor.cpp} (87%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27ForcesPostprocessor.h => ForcesCoProcessor.h} (77%)
 rename source/VirtualFluidsCore/CoProcessors/{InSituCatalystPostprocessor.cpp => InSituCatalystCoProcessor.cpp} (92%)
 rename source/VirtualFluidsCore/CoProcessors/{InSituCatalystPostprocessor.h => InSituCatalystCoProcessor.h} (74%)
 rename source/VirtualFluidsCore/CoProcessors/{InSituVTKPostprocessor.cpp => InSituVTKCoProcessor.cpp} (91%)
 rename source/VirtualFluidsCore/CoProcessors/{InSituVTKPostprocessor.h => InSituVTKCoProcessor.h} (68%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27MacroscopicQuantitiesPostprocessor.cpp => MacroscopicQuantitiesCoProcessor.cpp} (92%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27MacroscopicQuantitiesPostprocessor.h => MacroscopicQuantitiesCoProcessor.h} (64%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27MeanValuesPostprocessor.cpp => MeanValuesCoProcessor.cpp} (83%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27MeanValuesPostprocessor.h => MeanValuesCoProcessor.h} (64%)
 rename source/VirtualFluidsCore/CoProcessors/{NUPSCounterPostprocessor.cpp => NUPSCounterCoProcessor.cpp} (83%)
 rename source/VirtualFluidsCore/CoProcessors/{NUPSCounterPostprocessor.h => NUPSCounterCoProcessor.h} (58%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27PathLinePostprocessor.cpp => PathLineCoProcessor.cpp} (91%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27PathLinePostprocessor.h => PathLineCoProcessor.h} (92%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27PathLinePostprocessorMcpart.cpp => PathLineCoProcessorMcpart.cpp} (91%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27PathLinePostprocessorMcpart.h => PathLineCoProcessorMcpart.h} (92%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27PressureDifferencePostprocessor.cpp => PressureDifferenceCoProcessor.cpp} (83%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27PressureDifferencePostprocessor.h => PressureDifferenceCoProcessor.h} (74%)
 rename source/VirtualFluidsCore/CoProcessors/{QCriterionPostprocessor.cpp => QCriterionCoProcessor.cpp} (91%)
 rename source/VirtualFluidsCore/CoProcessors/{QCriterionPostprocessor.h => QCriterionCoProcessor.h} (81%)
 rename source/VirtualFluidsCore/CoProcessors/{RestartPostprocessor.cpp => RestartCoProcessor.cpp} (80%)
 rename source/VirtualFluidsCore/CoProcessors/{RestartPostprocessor.h => RestartCoProcessor.h} (60%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27ShearStressPostprocessor.cpp => ShearStressCoProcessor.cpp} (94%)
 rename source/VirtualFluidsCore/CoProcessors/{D3Q27ShearStressPostprocessor.h => ShearStressCoProcessor.h} (76%)
 rename source/VirtualFluidsCore/CoProcessors/{TimeAveragedValuesPostprocessor.cpp => TimeAveragedValuesCoProcessor.cpp} (94%)
 rename source/VirtualFluidsCore/CoProcessors/{TimeAveragedValuesPostprocessor.h => TimeAveragedValuesCoProcessor.h} (85%)
 rename source/VirtualFluidsCore/CoProcessors/{TimeDependentBCPostprocessor.cpp => TimeDependentBCCoProcessor.cpp} (58%)
 create mode 100644 source/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.h
 delete mode 100644 source/VirtualFluidsCore/CoProcessors/TimeDependentBCPostprocessor.h
 rename source/VirtualFluidsCore/CoProcessors/{TimeseriesPostprocessor.cpp => TimeseriesCoProcessor.cpp} (82%)
 rename source/VirtualFluidsCore/CoProcessors/{TimeseriesPostprocessor.h => TimeseriesCoProcessor.h} (67%)
 rename source/VirtualFluidsCore/CoProcessors/{TurbulenceIntensityPostprocessor.cpp => TurbulenceIntensityCoProcessor.cpp} (91%)
 rename source/VirtualFluidsCore/CoProcessors/{TurbulenceIntensityPostprocessor.h => TurbulenceIntensityCoProcessor.h} (62%)
 rename source/VirtualFluidsCore/CoProcessors/{BlocksPostprocessor.cpp => WriteBlocksCoProcessor.cpp} (90%)
 create mode 100644 source/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.h

diff --git a/source/Applications/pChannel/pChannel.cpp b/source/Applications/pChannel/pChannel.cpp
index 69b7392ee..7bac4e3e3 100644
--- a/source/Applications/pChannel/pChannel.cpp
+++ b/source/Applications/pChannel/pChannel.cpp
@@ -97,7 +97,7 @@ void run(string configname)
       //////////////////////////////////////////////////////////////////////////
       //restart
       UbSchedulerPtr rSch(new UbScheduler(restartStep, restartStepStart));
-      RestartPostprocessor rp(grid, rSch, comm, pathname, RestartPostprocessor::TXT);
+      RestartCoProcessor rp(grid, rSch, comm, pathname, RestartCoProcessor::TXT);
       //////////////////////////////////////////////////////////////////////////
 
       if (grid->getTimeStep() == 0)
@@ -226,8 +226,8 @@ void run(string configname)
          if (myid == 0) UBLOG(logINFO, "deleteSolidBlocks - end");
          //////////////////////////////////////
 
-         BlocksPostprocessorPtr ppblocks(new BlocksPostprocessor(grid, UbSchedulerPtr(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm));
-         ppblocks->update(0);
+         WriteBlocksCoProcessorPtr ppblocks(new WriteBlocksCoProcessor(grid, UbSchedulerPtr(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm));
+         ppblocks->process(0);
          ppblocks.reset();
 
          unsigned long long numberOfBlocks = (unsigned long long)grid->getNumberOfBlocks();
@@ -396,9 +396,9 @@ void run(string configname)
 
          //Postrozess
          UbSchedulerPtr geoSch(new UbScheduler(1));
-         D3Q27MacroscopicQuantitiesPostprocessorPtr ppgeo(
-            new D3Q27MacroscopicQuantitiesPostprocessor(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, true));
-         ppgeo->update(0);
+         MacroscopicQuantitiesCoProcessorPtr ppgeo(
+            new MacroscopicQuantitiesCoProcessor(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, true));
+         ppgeo->process(0);
          ppgeo.reset();
 
          coord[0] = g_minX1;
@@ -469,7 +469,7 @@ void run(string configname)
          if (myid == 0) UBLOG(logINFO, "Restart - end");
       }
       UbSchedulerPtr nupsSch(new UbScheduler(10, 30, 100));
-      NUPSCounterPostprocessor npr(grid, nupsSch, numOfThreads, comm);
+      NUPSCounterCoProcessor npr(grid, nupsSch, numOfThreads, comm);
 
       UbSchedulerPtr stepSch(new UbScheduler(outTime));
 
@@ -497,7 +497,7 @@ void run(string configname)
       if (myid == 0) GbSystem3D::writeGeoObject(intValHelp->getBoundingBox().get(), pathname + "/geo/IntValHelp", WbWriterVtkXmlBinary::getInstance());
 
       double vxTarget=u_LB;
-      D3Q27AdjustForcingPostprocessor AdjForcPPPtr(grid, AdjForcSch, pathname, intValHelp, vxTarget, forcing, comm);
+      AdjustForcingCoProcessor AdjForcPPPtr(grid, AdjForcSch, pathname, intValHelp, vxTarget, forcing, comm);
 
       //mu::Parser decrViscFunc;
       //decrViscFunc.SetExpr("nue0+c0/(t+1)/(t+1)");
@@ -522,8 +522,8 @@ void run(string configname)
       //TimeAveragedValuesPostprocessor tav(grid, pathname, WbWriterVtkXmlBinary::getInstance(), tavSch, 
       //   TimeAveragedValuesPostprocessor::Velocity|TimeAveragedValuesPostprocessor::Fluctuations|TimeAveragedValuesPostprocessor::Triplecorrelations);
       
-      UbSchedulerPtr catalystSch(new UbScheduler(1));
-      InSituCatalystPostprocessor catalyst(grid, catalystSch, "pchannel.py");
+      //UbSchedulerPtr catalystSch(new UbScheduler(1));
+      //InSituCatalystCoProcessor catalyst(grid, catalystSch, "pchannel.py");
 
       if (myid == 0)
       {
diff --git a/source/VirtualFluids.h b/source/VirtualFluids.h
index a5aed55ac..8870af6d7 100644
--- a/source/VirtualFluids.h
+++ b/source/VirtualFluids.h
@@ -154,28 +154,28 @@
 #include <Interactors/D3Q27TriFaceMeshInteractor.h>
 #include <Interactors/Interactor3D.h>
 #include <Interactors/InteractorsHelper.h>
-#include <CoProcessors/BlocksPostprocessor.h>
-#include <CoProcessors/D3Q27AdjustForcingPostprocessor.h>
-#include <CoProcessors/D3Q27ForcesPostprocessor.h>
-#include <CoProcessors/D3Q27MacroscopicQuantitiesPostprocessor.h>
-#include <CoProcessors/D3Q27PathLinePostprocessor.h>
-#include <CoProcessors/D3Q27PathLinePostprocessorMcpart.h>
-#include <CoProcessors/D3Q27PressureDifferencePostprocessor.h>
-#include <CoProcessors/EmergencyExitPostprocessor.h>
-#include <CoProcessors/NUPSCounterPostprocessor.h>
+#include <CoProcessors/WriteBlocksCoProcessor.h>
+#include <CoProcessors/AdjustForcingCoProcessor.h>
+#include <CoProcessors/ForcesCoProcessor.h>
+#include <CoProcessors/MacroscopicQuantitiesCoProcessor.h>
+#include <CoProcessors/PathLineCoProcessor.h>
+#include <CoProcessors/PathLineCoProcessorMcpart.h>
+#include <CoProcessors/PressureDifferenceCoProcessor.h>
+#include <CoProcessors/EmergencyExitCoProcessor.h>
+#include <CoProcessors/NUPSCounterCoProcessor.h>
 #include <CoProcessors/Particles.h>
-#include <CoProcessors/Postprocessor.h>
-#include <CoProcessors/RestartPostprocessor.h>
-#include <CoProcessors/TurbulenceIntensityPostprocessor.h>
-#include <CoProcessors/AverageValuesPostprocessor.h>
-#include <CoProcessors/DecreaseViscosityPostprocessor.h>
-#include <CoProcessors/TimeseriesPostprocessor.h>
-#include <CoProcessors/D3Q27ShearStressPostprocessor.h>
-#include <CoProcessors/QCriterionPostprocessor.h>
-#include <CoProcessors/InSituVTKPostprocessor.h>
-#include <CoProcessors/D3Q27MeanValuesPostprocessor.h>
-#include <CoProcessors/TimeAveragedValuesPostprocessor.h>
-#include <CoProcessors/InSituCatalystPostprocessor.h>
+#include <CoProcessors/CoProcessor.h>
+#include <CoProcessors/RestartCoProcessor.h>
+#include <CoProcessors/TurbulenceIntensityCoProcessor.h>
+#include <CoProcessors/AverageValuesCoProcessor.h>
+#include <CoProcessors/DecreaseViscosityCoProcessor.h>
+#include <CoProcessors/TimeseriesCoProcessor.h>
+#include <CoProcessors/ShearStressCoProcessor.h>
+#include <CoProcessors/QCriterionCoProcessor.h>
+#include <CoProcessors/InSituVTKCoProcessor.h>
+#include <CoProcessors/MeanValuesCoProcessor.h>
+#include <CoProcessors/TimeAveragedValuesCoProcessor.h>
+#include <CoProcessors/InSituCatalystCoProcessor.h>
 #include <LBM/D3Q27CompactInterpolationProcessor.h>
 #include <LBM/D3Q27IncompressibleOffsetInterpolationProcessor.h>
 #include <LBM/D3Q27IntegrateValuesHelper.h>
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27AdjustForcingPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/AdjustForcingCoProcessor.cpp
similarity index 89%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27AdjustForcingPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/AdjustForcingCoProcessor.cpp
index 324df1556..2af5a8432 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27AdjustForcingPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/AdjustForcingCoProcessor.cpp
@@ -5,7 +5,7 @@
 *  Author: Sonja Uphoff
 */
 
-#include "D3Q27AdjustForcingPostprocessor.h"
+#include "AdjustForcingCoProcessor.h"
 
 #include <SetForcingBlockVisitor.h>
 
@@ -16,14 +16,14 @@
 
 using namespace std;
 
-D3Q27AdjustForcingPostprocessor::D3Q27AdjustForcingPostprocessor(Grid3DPtr grid, UbSchedulerPtr s,
+AdjustForcingCoProcessor::AdjustForcingCoProcessor(Grid3DPtr grid, UbSchedulerPtr s,
                                                                  const std::string& path,
                                                                  D3Q27IntegrateValuesHelperPtr integrateValues, 
                                                                  LBMReal vTarged,
                                                                  LBMReal forcing,
                                                                  CommunicatorPtr comm)
 
-                                                                 : Postprocessor(grid, s),
+                                                                 : CoProcessor(grid, s),
                                                                  path(path),
                                                                  integrateValues(integrateValues),
                                                                  comm(comm),
@@ -49,17 +49,17 @@ D3Q27AdjustForcingPostprocessor::D3Q27AdjustForcingPostprocessor(Grid3DPtr grid,
    }
 }
 //////////////////////////////////////////////////////////////////////////
-D3Q27AdjustForcingPostprocessor::~D3Q27AdjustForcingPostprocessor() 
+AdjustForcingCoProcessor::~AdjustForcingCoProcessor() 
 {
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27AdjustForcingPostprocessor::update(double step)
+void AdjustForcingCoProcessor::process(double step)
 {
    if(scheduler->isDue(step) )
-      collectPostprocessData(step);
+      collectData(step);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27AdjustForcingPostprocessor::collectPostprocessData(double step)
+void AdjustForcingCoProcessor::collectData(double step)
 {
    integrateValues->calculateMQ();
 
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27AdjustForcingPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/AdjustForcingCoProcessor.h
similarity index 73%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27AdjustForcingPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/AdjustForcingCoProcessor.h
index 45f53d3bc..4dc4a9740 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27AdjustForcingPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/AdjustForcingCoProcessor.h
@@ -1,33 +1,33 @@
 #ifndef D3Q27ADJUSTFORCINGPOSTPROCESSOR_H
 #define D3Q27ADJUSTFORCINGPOSTPROCESSOR_H
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "D3Q27IntegrateValuesHelper.h"
 #include "LBMUnitConverter.h"
 #include "Communicator.h"
 
 #include <boost/shared_ptr.hpp>
-class D3Q27AdjustForcingPostprocessor;
-typedef boost::shared_ptr<D3Q27AdjustForcingPostprocessor> D3Q27AdjustForcingPostprocessorPtr;
+class AdjustForcingCoProcessor;
+typedef boost::shared_ptr<AdjustForcingCoProcessor> AdjustForcingCoProcessorPtr;
 
 //! \brief   Computes Forcing such that a given velocity (vxZiel) is reached inside an averaging domain (h1). 
 //! \details Integrate values helper, scheduler must be set in test case. Example usage: bKanal.cpp
 //! \author: Konstantin Kutscher
 
-class D3Q27AdjustForcingPostprocessor: public Postprocessor {
+class AdjustForcingCoProcessor: public CoProcessor {
 public:
-	D3Q27AdjustForcingPostprocessor(Grid3DPtr grid, UbSchedulerPtr s,
+	AdjustForcingCoProcessor(Grid3DPtr grid, UbSchedulerPtr s,
                                    const std::string& path,
                                    D3Q27IntegrateValuesHelperPtr integrateValues,
                                    LBMReal vTarged, LBMReal forcing, CommunicatorPtr comm);
-	virtual ~D3Q27AdjustForcingPostprocessor();
+	virtual ~AdjustForcingCoProcessor();
 	 //!< calls collect PostprocessData
-   void update(double step);
+   void process(double step);
 protected:
    //!< object that can compute spacial average values in 3D-subdomain.
    D3Q27IntegrateValuesHelperPtr integrateValues;
    //!< compares velocity in integrateValues with target velocity and adjusts forcing accordingly.
-	void collectPostprocessData(double step);  
+	void collectData(double step);  
    CommunicatorPtr comm;
 private:
    double vPreviousStep; //!< velocity at previous update step.
diff --git a/source/VirtualFluidsCore/CoProcessors/AverageValuesPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.cpp
similarity index 92%
rename from source/VirtualFluidsCore/CoProcessors/AverageValuesPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.cpp
index 9ebbbc484..2054012a9 100644
--- a/source/VirtualFluidsCore/CoProcessors/AverageValuesPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.cpp
@@ -1,4 +1,4 @@
-#include "AverageValuesPostprocessor.h"
+#include "AverageValuesCoProcessor.h"
 #include "LBMKernel3D.h"
 #include "SimulationParameters.h"
 #include "D3Q27ETBCProcessor.h"
@@ -12,14 +12,14 @@
 
 using namespace std;
 
-AverageValuesPostprocessor::AverageValuesPostprocessor()
+AverageValuesCoProcessor::AverageValuesCoProcessor()
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-AverageValuesPostprocessor::AverageValuesPostprocessor(Grid3DPtr grid, const std::string& path,	WbWriter* const writer, 
+AverageValuesCoProcessor::AverageValuesCoProcessor(Grid3DPtr grid, const std::string& path,	WbWriter* const writer, 
    UbSchedulerPtr s, UbSchedulerPtr Avs, UbSchedulerPtr rsMeans, UbSchedulerPtr rsRMS, bool restart)
-	                                                   : Postprocessor(grid, s),
+	                                                   : CoProcessor(grid, s),
 	                                                   averageScheduler(Avs),
 	                                                   resetSchedulerMeans(rsMeans),
 	                                                   resetSchedulerRMS(rsRMS),
@@ -59,15 +59,15 @@ AverageValuesPostprocessor::AverageValuesPostprocessor(Grid3DPtr grid, const std
 	//restartStep = 0.0;
 }
 //////////////////////////////////////////////////////////////////////////
-void AverageValuesPostprocessor::update(double step)
+void AverageValuesCoProcessor::process(double step)
 {
 	//resetRMS(step);
 	if(resetSchedulerRMS->isDue(step) )
-		resetPostprocessDataRMS(step);
+		resetDataRMS(step);
 
 	//reset(step);
 	if(resetSchedulerMeans->isDue(step) )
-		resetPostprocessDataMeans(step);
+		resetDataMeans(step);
 
 	if(averageScheduler->isDue(step) ){
 		calculateAverageValues(step);
@@ -75,14 +75,14 @@ void AverageValuesPostprocessor::update(double step)
 			//collectPlotDataZ(step);
 	}
 	if(scheduler->isDue(step) ){
-			collectPostprocessData(step);
+			collectData(step);
 
 		}
 
 		UBLOG(logDEBUG3, "AverageValuesPostprocessor::update:" << step);
 }
 
-void AverageValuesPostprocessor::resetPostprocessDataRMS(double step)
+void AverageValuesCoProcessor::resetDataRMS(double step)
 {
 	resetStepRMS=(int)step;
 
@@ -133,7 +133,7 @@ void AverageValuesPostprocessor::resetPostprocessDataRMS(double step)
 	}
 }
 //////////////////////////////////////////////////////////////////////////
-void AverageValuesPostprocessor::resetPostprocessDataMeans(double step)
+void AverageValuesCoProcessor::resetDataMeans(double step)
 {
 	resetStepMeans=(int)step;
 
@@ -181,7 +181,7 @@ void AverageValuesPostprocessor::resetPostprocessDataMeans(double step)
 	}
 }
 //////////////////////////////////////////////////////////////////////////
-void AverageValuesPostprocessor::collectPostprocessData(double step)
+void AverageValuesCoProcessor::collectData(double step)
 {
 	int istep = int(step);
 
@@ -191,7 +191,7 @@ void AverageValuesPostprocessor::collectPostprocessData(double step)
 		{
 			if (block)
 			{
-				addPostprocessData(block);
+				addData(block);
 			}
 		}
 	}
@@ -218,7 +218,7 @@ void AverageValuesPostprocessor::collectPostprocessData(double step)
 
       vector<string> filenames;
       filenames.push_back(piece);
-      if (step == Postprocessor::scheduler->getMinBegin())
+      if (step == CoProcessor::scheduler->getMinBegin())
       {
          WbWriterVtkXmlASCII::getInstance()->writeCollection(cfilePath,filenames,istep,false);
       } 
@@ -232,7 +232,7 @@ void AverageValuesPostprocessor::collectPostprocessData(double step)
 	clearData();
 }
 //////////////////////////////////////////////////////////////////////////
-void AverageValuesPostprocessor::clearData()
+void AverageValuesCoProcessor::clearData()
 {
 	nodes.clear();
 	cells.clear();
@@ -240,7 +240,7 @@ void AverageValuesPostprocessor::clearData()
 	data.clear();
 }
 //////////////////////////////////////////////////////////////////////////
-void AverageValuesPostprocessor::addPostprocessData(const Block3DPtr block)
+void AverageValuesCoProcessor::addData(const Block3DPtr block)
 {
 	UbTupleDouble3 org          = grid->getBlockWorldCoordinates(block);
 	UbTupleDouble3 blockLengths = grid->getBlockLengths(block);
@@ -368,7 +368,7 @@ void AverageValuesPostprocessor::addPostprocessData(const Block3DPtr block)
 	}
 }
 //////////////////////////////////////////////////////////////////////////
-void AverageValuesPostprocessor::calculateAverageValues(double timeStep)
+void AverageValuesCoProcessor::calculateAverageValues(double timeStep)
 {
 	using namespace D3Q27System;
 
diff --git a/source/VirtualFluidsCore/CoProcessors/AverageValuesPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.h
similarity index 81%
rename from source/VirtualFluidsCore/CoProcessors/AverageValuesPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.h
index 8e5b9461c..95a112431 100644
--- a/source/VirtualFluidsCore/CoProcessors/AverageValuesPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.h
@@ -1,7 +1,7 @@
 #ifndef AverageValuesPostprocessor_H
 #define AverageValuesPostprocessor_H
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "Grid3D.h"
 #include "Block3D.h"
 #include "LBMUnitConverter.h"
@@ -11,8 +11,8 @@
 #include "WbWriter.h"
 
 #include <boost/shared_ptr.hpp>
-class AverageValuesPostprocessor;
-typedef boost::shared_ptr<AverageValuesPostprocessor> AverageValuesPostprocessorPtr;
+class AverageValuesCoProcessor;
+typedef boost::shared_ptr<AverageValuesCoProcessor> AverageValuesCoProcessorPtr;
 
 //! \brief  Computes the time averaged mean velocity and RMS values and writes to parallel .vtk
 //! \details writes at given time intervals specified in scheduler (s), does averaging according to scheduler (Avs) and resets according to scheduler (rs).  <br>
@@ -20,24 +20,24 @@ typedef boost::shared_ptr<AverageValuesPostprocessor> AverageValuesPostprocessor
 //           
 //! \author  Sonja Uphoff, Kostyantyn Kucher 
 // \f$ u_{mean}=\frac{1}{N}\sum\limits_{i=1}^n u_{i} \f$
-class AverageValuesPostprocessor : public Postprocessor
+class AverageValuesCoProcessor : public CoProcessor
 {
 public:
-   AverageValuesPostprocessor();
-   AverageValuesPostprocessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer, 
+   AverageValuesCoProcessor();
+   AverageValuesCoProcessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer, 
                               UbSchedulerPtr s, UbSchedulerPtr Avs, UbSchedulerPtr rsMeans, UbSchedulerPtr rsRMS, bool restart);
 	//! Make update
-	void update(double step); 
+	void process(double step); 
 	//! Resets averaged velocity and RMS-values according to ResetSceduler
 	void reset(double step); 
 protected:
 	//! Prepare data and write in .vtk file
-	void collectPostprocessData(double step);
+	void collectData(double step);
 	//! Reset data
-	void resetPostprocessDataRMS(double step);
-	void resetPostprocessDataMeans(double step);
+	void resetDataRMS(double step);
+	void resetDataMeans(double step);
 	//! prepare data
-	void addPostprocessData(const Block3DPtr block);
+	void addData(const Block3DPtr block);
 	void clearData();
 	//! Computes average and RMS values of macroscopic quantities 
 	void calculateAverageValues(double timeStep);
@@ -75,7 +75,7 @@ private:
    template<class Archive>
    void serialize(Archive & ar, const unsigned int version)
    {
-      ar & boost::serialization::base_object<Postprocessor>(*this);
+      ar & boost::serialization::base_object<CoProcessor>(*this);
       ar & path;
       ar & blockVector;
       ar & minInitLevel;
diff --git a/source/VirtualFluidsCore/CoProcessors/BlocksPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/BlocksPostprocessor.h
deleted file mode 100644
index 458deefba..000000000
--- a/source/VirtualFluidsCore/CoProcessors/BlocksPostprocessor.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-*  BlocksPostprocessor.h
-*
-*  Created on: 24.09.2012
-*  Author: K. Kucher
-*/
-
-#ifndef BlocksPostprocessor_H_
-#define BlocksPostprocessor_H_
-
-#include "Postprocessor.h"
-#include "Communicator.h"
-#include "WbWriter.h"
-
-#include <boost/shared_ptr.hpp>
-class BlocksPostprocessor;
-typedef boost::shared_ptr<BlocksPostprocessor> BlocksPostprocessorPtr;
-
-class BlocksPostprocessor: public Postprocessor {
-public:
-   BlocksPostprocessor(Grid3DPtr grid, UbSchedulerPtr s, const std::string& path, WbWriter* const writer, CommunicatorPtr comm);
-   virtual ~BlocksPostprocessor();
-   void update(double step);
-protected:
-   void collectPostprocessData(double step);
-   std::string path;
-   WbWriter* writer;
-   CommunicatorPtr comm;
-};
-
-
-#endif 
diff --git a/source/VirtualFluidsCore/CoProcessors/Postprocessor.h b/source/VirtualFluidsCore/CoProcessors/CoProcessor.h
similarity index 64%
rename from source/VirtualFluidsCore/CoProcessors/Postprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/CoProcessor.h
index b7b2c730b..c098f46cd 100644
--- a/source/VirtualFluidsCore/CoProcessors/Postprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/CoProcessor.h
@@ -8,30 +8,30 @@
 #include <Grid3D.h>
 #include <basics/utilities/UbScheduler.h>
 
-class Postprocessor;
-typedef boost::shared_ptr<Postprocessor> PostprocessorPtr;
+class CoProcessor;
+typedef boost::shared_ptr<CoProcessor> PostprocessorPtr;
 
-class Postprocessor
+class CoProcessor
 {
 public:
-   Postprocessor()
+   CoProcessor()
    {
 
    }
 
-   Postprocessor(Grid3DPtr grid, UbSchedulerPtr s)
+   CoProcessor(Grid3DPtr grid, UbSchedulerPtr s)
       : grid(grid)
       , scheduler(s)
    {
-      connection = grid->connect(boost::bind(&Postprocessor::update, this, _1));
+      connection = grid->connect(boost::bind(&CoProcessor::process, this, _1));
    }
 
-   virtual ~Postprocessor()
+   virtual ~CoProcessor()
    {
       grid->disconnect(connection);
    }
 
-   virtual void update(double step) = 0;
+   virtual void process(double step) = 0;
 
    virtual void disconnect()
    {
@@ -42,7 +42,7 @@ public:
    {
       this->grid = grid;
       this->grid->disconnect(connection);
-      connection = this->grid->connect(boost::bind(&Postprocessor::update, this, _1));
+      connection = this->grid->connect(boost::bind(&CoProcessor::process, this, _1));
    }
 
 protected:
diff --git a/source/VirtualFluidsCore/CoProcessors/DecreaseViscosityPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.cpp
similarity index 81%
rename from source/VirtualFluidsCore/CoProcessors/DecreaseViscosityPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.cpp
index 851f66e90..f57007634 100644
--- a/source/VirtualFluidsCore/CoProcessors/DecreaseViscosityPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.cpp
@@ -5,7 +5,7 @@
 *  Author: uphoff
 */
 
-#include "DecreaseViscosityPostprocessor.h"
+#include "DecreaseViscosityCoProcessor.h"
 #include <boost/foreach.hpp>
 
 #include <iostream>
@@ -13,10 +13,10 @@
 
 using namespace std;
 
-DecreaseViscosityPostprocessor::DecreaseViscosityPostprocessor(Grid3DPtr grid, UbSchedulerPtr s,
+DecreaseViscosityCoProcessor::DecreaseViscosityCoProcessor(Grid3DPtr grid, UbSchedulerPtr s,
                                                                mu::Parser* nueFunc, CommunicatorPtr comm)
 
-                                                               : Postprocessor(grid, s)
+                                                               : CoProcessor(grid, s)
                                                                ,nueFunc(nueFunc)
                                                                ,comm(comm)
 {
@@ -26,17 +26,17 @@ DecreaseViscosityPostprocessor::DecreaseViscosityPostprocessor(Grid3DPtr grid, U
    }
 }
 //////////////////////////////////////////////////////////////////////////
-DecreaseViscosityPostprocessor::~DecreaseViscosityPostprocessor() 
+DecreaseViscosityCoProcessor::~DecreaseViscosityCoProcessor() 
 {
 }
 //////////////////////////////////////////////////////////////////////////
-void DecreaseViscosityPostprocessor::update(double step)
+void DecreaseViscosityCoProcessor::process(double step)
 {
    if(scheduler->isDue(step) )
-      collectPostprocessData(step);
+      setViscosity(step);
 }
 //////////////////////////////////////////////////////////////////////////
-void DecreaseViscosityPostprocessor::collectPostprocessData(double step)
+void DecreaseViscosityCoProcessor::setViscosity(double step)
 {
 
    UBLOG(logDEBUG3, "DecreaseViscosityPostprocessor::update:" << step);
diff --git a/source/VirtualFluidsCore/CoProcessors/DecreaseViscosityPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.h
similarity index 76%
rename from source/VirtualFluidsCore/CoProcessors/DecreaseViscosityPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.h
index 041a858a3..ef1875cae 100644
--- a/source/VirtualFluidsCore/CoProcessors/DecreaseViscosityPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.h
@@ -1,14 +1,14 @@
 #ifndef DecreaseViscosityPOSTPROCESSOR_H
 #define DecreaseViscosityPOSTPROCESSOR_H
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "D3Q27IntegrateValuesHelper.h"
 #include "LBMUnitConverter.h"
 #include "Communicator.h"
 
 #include <boost/shared_ptr.hpp>
-class DecreaseViscosityPostprocessor;
-typedef boost::shared_ptr<DecreaseViscosityPostprocessor> DecreaseViscosityPostprocessorPtr;
+class DecreaseViscosityCoProcessor;
+typedef boost::shared_ptr<DecreaseViscosityCoProcessor> DecreaseViscosityCoProcessorPtr;
 
 //! \brief The class sets viscosity/collision factor according to a previously defined function in time. 
 //! \details initialization in test case (example): 
@@ -23,17 +23,17 @@ typedef boost::shared_ptr<DecreaseViscosityPostprocessor> DecreaseViscosityPostp
 //! \endcode
 //! \author Sonja Uphoff
 
-class DecreaseViscosityPostprocessor: public Postprocessor 
+class DecreaseViscosityCoProcessor: public CoProcessor 
 { 
 public:
-   DecreaseViscosityPostprocessor(Grid3DPtr grid, UbSchedulerPtr s,
+   DecreaseViscosityCoProcessor(Grid3DPtr grid, UbSchedulerPtr s,
       mu::Parser* nueFunc, CommunicatorPtr comm);
-   virtual ~DecreaseViscosityPostprocessor();
+   virtual ~DecreaseViscosityCoProcessor();
    //! calls collect PostprocessData.
-   void update(double step); 
+   void process(double step); 
 protected:
    //! resets the collision factor depending on the current timestep.
-   void collectPostprocessData(double step);  
+   void setViscosity(double step);  
    CommunicatorPtr comm;
 private:
    mutable mu::value_type timeStep;
diff --git a/source/VirtualFluidsCore/CoProcessors/EmergencyExitPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.cpp
similarity index 67%
rename from source/VirtualFluidsCore/CoProcessors/EmergencyExitPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.cpp
index 163120e91..34bbc541a 100644
--- a/source/VirtualFluidsCore/CoProcessors/EmergencyExitPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.cpp
@@ -1,11 +1,11 @@
-#include "EmergencyExitPostprocessor.h"
+#include "EmergencyExitCoProcessor.h"
 #include <basics/utilities/UbFileOutputASCII.h>
 #include <basics/utilities/UbFileInputASCII.h>
 
-EmergencyExitPostprocessor::EmergencyExitPostprocessor( Grid3DPtr grid, UbSchedulerPtr s, 
+EmergencyExitCoProcessor::EmergencyExitCoProcessor( Grid3DPtr grid, UbSchedulerPtr s, 
                                                         const std::string& path, 
-                                                        RestartPostprocessorPtr rp, CommunicatorPtr comm ) :
-                                                        Postprocessor(grid, s),
+                                                        RestartCoProcessorPtr rp, CommunicatorPtr comm) :
+                                                        CoProcessor(grid, s),
                                                         path(path),
                                                         rp(rp),
                                                         comm(comm)
@@ -20,20 +20,20 @@ EmergencyExitPostprocessor::EmergencyExitPostprocessor( Grid3DPtr grid, UbSchedu
    comm->barrier();
 }
 //////////////////////////////////////////////////////////////////////////
-EmergencyExitPostprocessor::~EmergencyExitPostprocessor()
+EmergencyExitCoProcessor::~EmergencyExitCoProcessor()
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-void EmergencyExitPostprocessor::update( double step )
+void EmergencyExitCoProcessor::process( double step )
 {
    if(scheduler->isDue(step) )
-      collectPostprocessData(step);
+      collectData(step);
 
    UBLOG(logDEBUG3, "EmergencyExitPostprocessor::update:" << step);
 }
 
-void EmergencyExitPostprocessor::collectPostprocessData( double step )
+void EmergencyExitCoProcessor::collectData( double step )
 {
    if(readMetafile())
    {
@@ -44,19 +44,19 @@ void EmergencyExitPostprocessor::collectPostprocessData( double step )
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void EmergencyExitPostprocessor::writeMetafile(int status )
+void EmergencyExitCoProcessor::writeMetafile(int status )
 {
    UbFileOutputASCII out(metafile);
    out.writeBool(false);
 }
 //////////////////////////////////////////////////////////////////////////
-bool EmergencyExitPostprocessor::readMetafile()
+bool EmergencyExitCoProcessor::readMetafile()
 {
    UbFileInputASCII in(metafile);
    return in.readBool();
 }
 //////////////////////////////////////////////////////////////////////////
-void EmergencyExitPostprocessor::checkMetafile()
+void EmergencyExitCoProcessor::checkMetafile()
 {
    std::ifstream file(metafile.c_str()); 
    if (!file.is_open()) 
diff --git a/source/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.h b/source/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.h
new file mode 100644
index 000000000..b5df123ff
--- /dev/null
+++ b/source/VirtualFluidsCore/CoProcessors/EmergencyExitCoProcessor.h
@@ -0,0 +1,40 @@
+/*
+ *  EmergencyExitPostprocessor.h
+ *
+ *  Created on: 05.10.2012
+ *  Author: K. Kucher
+ */
+
+#ifndef EmergencyExitPostprocessor_H
+#define EmergencyExitPostprocessor_H
+
+#include "CoProcessor.h"
+#include "Communicator.h"
+#include "RestartCoProcessor.h"
+
+#include <boost/shared_ptr.hpp>
+class EmergencyExitCoProcessor;
+typedef boost::shared_ptr<EmergencyExitCoProcessor> EmergencyExitPostprocessorPtr;
+
+class EmergencyExitCoProcessor: public CoProcessor 
+{
+public:
+	EmergencyExitCoProcessor(Grid3DPtr grid, UbSchedulerPtr s,
+                              const std::string& path, RestartCoProcessorPtr rp,
+                              CommunicatorPtr comm);
+	virtual ~EmergencyExitCoProcessor();
+	void process(double step);
+protected:
+	void collectData(double step);
+   void writeMetafile(int status);
+   bool readMetafile();
+   void checkMetafile();
+private:
+   std::string path;
+   CommunicatorPtr comm;
+   RestartCoProcessorPtr rp;
+   std::string metafile;
+};
+
+
+#endif /* EmergencyExitPostprocessor_H */
diff --git a/source/VirtualFluidsCore/CoProcessors/EmergencyExitPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/EmergencyExitPostprocessor.h
deleted file mode 100644
index afe4ce442..000000000
--- a/source/VirtualFluidsCore/CoProcessors/EmergencyExitPostprocessor.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *  EmergencyExitPostprocessor.h
- *
- *  Created on: 05.10.2012
- *  Author: K. Kucher
- */
-
-#ifndef EmergencyExitPostprocessor_H
-#define EmergencyExitPostprocessor_H
-
-#include "Postprocessor.h"
-#include "Communicator.h"
-#include "RestartPostprocessor.h"
-
-#include <boost/shared_ptr.hpp>
-class EmergencyExitPostprocessor;
-typedef boost::shared_ptr<EmergencyExitPostprocessor> EmergencyExitPostprocessorPtr;
-
-class EmergencyExitPostprocessor: public Postprocessor 
-{
-public:
-	EmergencyExitPostprocessor(Grid3DPtr grid, UbSchedulerPtr s,
-                              const std::string& path, RestartPostprocessorPtr rp,
-                              CommunicatorPtr comm);
-	virtual ~EmergencyExitPostprocessor();
-	void update(double step);
-protected:
-	void collectPostprocessData(double step);
-   void writeMetafile(int status);
-   bool readMetafile();
-   void checkMetafile();
-private:
-   std::string path;
-   CommunicatorPtr comm;
-   RestartPostprocessorPtr rp;
-   std::string metafile;
-};
-
-
-#endif /* EmergencyExitPostprocessor_H */
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27ForcesPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/ForcesCoProcessor.cpp
similarity index 87%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27ForcesPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/ForcesCoProcessor.cpp
index 89c1c9d65..d292bac83 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27ForcesPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/ForcesCoProcessor.cpp
@@ -1,12 +1,12 @@
-#include "D3Q27ForcesPostprocessor.h"
+#include "ForcesCoProcessor.h"
 #include "D3Q27ETBCProcessor.h"
 #include <boost/foreach.hpp>
 
-D3Q27ForcesPostprocessor::D3Q27ForcesPostprocessor( Grid3DPtr grid, UbSchedulerPtr s, 
+ForcesCoProcessor::ForcesCoProcessor( Grid3DPtr grid, UbSchedulerPtr s, 
                                                     const std::string &path,
                                                     CommunicatorPtr comm ,
                                                     double v, double a) : 
-                                                    Postprocessor(grid, s),
+                                                    CoProcessor(grid, s),
                                                     path(path), comm(comm),
                                                     v(v), a(a),
                                                     forceX1global(0), forceX2global(0), forceX3global(0)
@@ -35,20 +35,20 @@ D3Q27ForcesPostprocessor::D3Q27ForcesPostprocessor( Grid3DPtr grid, UbSchedulerP
    }
 }
 //////////////////////////////////////////////////////////////////////////
-D3Q27ForcesPostprocessor::~D3Q27ForcesPostprocessor()
+ForcesCoProcessor::~ForcesCoProcessor()
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ForcesPostprocessor::update( double step )
+void ForcesCoProcessor::process( double step )
 {
    if(scheduler->isDue(step) )
-      collectPostprocessData(step);
+      collectData(step);
 
    UBLOG(logDEBUG3, "D3Q27ForcesPostprocessor::update:" << step);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ForcesPostprocessor::collectPostprocessData( double step )
+void ForcesCoProcessor::collectData( double step )
 {
    calculateForces();
 
@@ -79,7 +79,7 @@ void D3Q27ForcesPostprocessor::collectPostprocessData( double step )
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ForcesPostprocessor::calculateForces()
+void ForcesCoProcessor::calculateForces()
 {
    forceX1global = 0.0;
    forceX2global = 0.0;
@@ -164,7 +164,7 @@ void D3Q27ForcesPostprocessor::calculateForces()
    }
 }
 //////////////////////////////////////////////////////////////////////////
-UbTupleDouble3 D3Q27ForcesPostprocessor::getForces(int x1, int x2, int x3, DistributionArray3DPtr distributions, D3Q27BoundaryConditionPtr bc)
+UbTupleDouble3 ForcesCoProcessor::getForces(int x1, int x2, int x3, DistributionArray3DPtr distributions, D3Q27BoundaryConditionPtr bc)
 {
    UbTupleDouble3 force(0.0,0.0,0.0);
    
@@ -194,7 +194,7 @@ UbTupleDouble3 D3Q27ForcesPostprocessor::getForces(int x1, int x2, int x3, Distr
    return force;
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ForcesPostprocessor::calculateCoefficients()
+void ForcesCoProcessor::calculateCoefficients()
 {
    double F1 = forceX1global;
    double F2 = forceX2global;
@@ -206,12 +206,12 @@ void D3Q27ForcesPostprocessor::calculateCoefficients()
    C3 = 2.0*F3/(v*v*a);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ForcesPostprocessor::addInteractor( D3Q27InteractorPtr interactor )
+void ForcesCoProcessor::addInteractor( D3Q27InteractorPtr interactor )
 {
    interactors.push_back(interactor);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ForcesPostprocessor::write(std::ofstream *fileObject, double value, char *separator) 
+void ForcesCoProcessor::write(std::ofstream *fileObject, double value, char *separator) 
 { 
    (*fileObject).width(12); 
    //(*fileObject).precision(2); 
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27ForcesPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/ForcesCoProcessor.h
similarity index 77%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27ForcesPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/ForcesCoProcessor.h
index 3b2dc97f6..8021882b9 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27ForcesPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/ForcesCoProcessor.h
@@ -8,24 +8,24 @@
 #ifndef D3Q27ForcesPostprocessor_H
 #define D3Q27ForcesPostprocessor_H
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "Communicator.h"
 #include "D3Q27Interactor.h"
 
-class D3Q27ForcesPostprocessor: public Postprocessor 
+class ForcesCoProcessor: public CoProcessor 
 {
 public:
    //! Constructor
    //! \param v - velocity of fluid in LB units
    //! \param a - area of object in LB units
-   D3Q27ForcesPostprocessor(Grid3DPtr grid, UbSchedulerPtr s,
+   ForcesCoProcessor(Grid3DPtr grid, UbSchedulerPtr s,
                             const std::string &path,
                             CommunicatorPtr comm, double v, double a);
-	virtual ~D3Q27ForcesPostprocessor();             
-	void update(double step); 
+	virtual ~ForcesCoProcessor();             
+	void process(double step); 
    void addInteractor(D3Q27InteractorPtr interactor);
 protected:
-	void collectPostprocessData(double step);
+	void collectData(double step);
    void calculateForces();
    UbTupleDouble3 getForces(int x1, int x2, int x3, DistributionArray3DPtr distributions, D3Q27BoundaryConditionPtr bc);
    void calculateCoefficients();
@@ -47,7 +47,7 @@ private:
    template<class Archive>
    void serialize(Archive & ar, const unsigned int version)
    {
-      ar & boost::serialization::base_object<Postprocessor>(*this);
+      ar & boost::serialization::base_object<CoProcessor>(*this);
       ar & path;
       ar & v;
       ar & a;
diff --git a/source/VirtualFluidsCore/CoProcessors/InSituCatalystPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.cpp
similarity index 92%
rename from source/VirtualFluidsCore/CoProcessors/InSituCatalystPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.cpp
index a590b071f..b088d2722 100644
--- a/source/VirtualFluidsCore/CoProcessors/InSituCatalystPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.cpp
@@ -1,6 +1,6 @@
 #ifdef VF_CATALYST
 
-#include "InSituCatalystPostprocessor.h"
+#include "InSituCatalystCoProcessor.h"
 #include <LBMKernelETD3Q27.h>
 #include <D3Q27ETBCProcessor.h>
 #include <vector>
@@ -15,12 +15,12 @@
 
 using namespace std;
 
-InSituCatalystPostprocessor::InSituCatalystPostprocessor()
+InSituCatalystCoProcessor::InSituCatalystCoProcessor()
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-InSituCatalystPostprocessor::InSituCatalystPostprocessor(Grid3DPtr grid, UbSchedulerPtr s, std::string script) : Postprocessor(grid, s)
+InSituCatalystCoProcessor::InSituCatalystCoProcessor(Grid3DPtr grid, UbSchedulerPtr s, std::string script) : CoProcessor(grid, s)
 {
    gridRank = Communicator::getInstance()->getProcessID();
    minInitLevel = this->grid->getCoarsestInitializedLevel();
@@ -43,20 +43,20 @@ InSituCatalystPostprocessor::InSituCatalystPostprocessor(Grid3DPtr grid, UbSched
    buildVTKGrid();
 }
 //////////////////////////////////////////////////////////////////////////
-InSituCatalystPostprocessor::~InSituCatalystPostprocessor()
+InSituCatalystCoProcessor::~InSituCatalystCoProcessor()
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-void InSituCatalystPostprocessor::update(double step)
+void InSituCatalystCoProcessor::process(double step)
 {
    if (scheduler->isDue(step))
-      collectPostprocessData(step);
+      collectData(step);
 
    UBLOG(logDEBUG3, "InSituCatalystPostprocessor::update:" << step);
 }
 //////////////////////////////////////////////////////////////////////////
-void InSituCatalystPostprocessor::collectPostprocessData(double step)
+void InSituCatalystCoProcessor::collectData(double step)
 {
    unsigned int istep = static_cast<int>(step);
 
@@ -75,7 +75,7 @@ void InSituCatalystPostprocessor::collectPostprocessData(double step)
          {
             if (block)
             {
-               addPostprocessData(block);
+               addData(block);
             }
          }
       }
@@ -99,7 +99,7 @@ void InSituCatalystPostprocessor::collectPostprocessData(double step)
    UBLOG(logINFO, "InSituCatalystPostprocessor step: " << istep);
 }
 //////////////////////////////////////////////////////////////////////////
-void InSituCatalystPostprocessor::addPostprocessData(Block3DPtr block)
+void InSituCatalystCoProcessor::addData(Block3DPtr block)
 {
    UbTupleDouble3 org = grid->getBlockWorldCoordinates(block);
    UbTupleDouble3 blockLengths = grid->getBlockLengths(block);
@@ -172,7 +172,7 @@ void InSituCatalystPostprocessor::addPostprocessData(Block3DPtr block)
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void InSituCatalystPostprocessor::buildVTKGrid()
+void InSituCatalystCoProcessor::buildVTKGrid()
 {
    unstructuredGrid = vtkSmartPointer<vtkUnstructuredGrid>::New();
    points = vtkPoints::New();
@@ -215,7 +215,7 @@ void InSituCatalystPostprocessor::buildVTKGrid()
    vx3Array.resize(numOfPoints);
 }
 //////////////////////////////////////////////////////////////////////////
-void InSituCatalystPostprocessor::addVTKGridData(Block3DPtr block)
+void InSituCatalystCoProcessor::addVTKGridData(Block3DPtr block)
 {
    UbTupleDouble3 org = grid->getBlockWorldCoordinates(block);
    UbTupleDouble3 blockLengths = grid->getBlockLengths(block);
diff --git a/source/VirtualFluidsCore/CoProcessors/InSituCatalystPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.h
similarity index 74%
rename from source/VirtualFluidsCore/CoProcessors/InSituCatalystPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.h
index 08da5f64b..ad03df92e 100644
--- a/source/VirtualFluidsCore/CoProcessors/InSituCatalystPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.h
@@ -4,7 +4,7 @@
 #define InSituCatalystPostprocessor_h__
 
 
-#include <Postprocessor.h>
+#include <CoProcessor.h>
 #include <Grid3D.h>
 #include <LBMUnitConverter.h>
 
@@ -19,16 +19,16 @@
 #include <vtkCPPythonScriptPipeline.h>
 #include <vtkNew.h>
 
-class InSituCatalystPostprocessor : public Postprocessor
+class InSituCatalystCoProcessor : public CoProcessor
 {
 public:
-   InSituCatalystPostprocessor();
-   InSituCatalystPostprocessor(Grid3DPtr grid, UbSchedulerPtr s, std::string script);
-   virtual ~InSituCatalystPostprocessor(); 
-   void update(double step);
+   InSituCatalystCoProcessor();
+   InSituCatalystCoProcessor(Grid3DPtr grid, UbSchedulerPtr s, std::string script);
+   virtual ~InSituCatalystCoProcessor(); 
+   void process(double step);
 protected:
-   void collectPostprocessData(double step);
-   void addPostprocessData(Block3DPtr block);
+   void collectData(double step);
+   void addData(Block3DPtr block);
    void buildVTKGrid();
    void addVTKGridData(Block3DPtr block);
 private:
diff --git a/source/VirtualFluidsCore/CoProcessors/InSituVTKPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.cpp
similarity index 91%
rename from source/VirtualFluidsCore/CoProcessors/InSituVTKPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.cpp
index 716b2ddd9..4a901e0c8 100644
--- a/source/VirtualFluidsCore/CoProcessors/InSituVTKPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.cpp
@@ -1,6 +1,6 @@
 #ifdef VF_VTK
 
-#include "InSituVTKPostprocessor.h"
+#include "InSituVTKCoProcessor.h"
 #include <LBMKernelETD3Q27.h>
 #include <D3Q27ETBCProcessor.h>
 #include <vector>
@@ -15,12 +15,12 @@
 
 using namespace std;
 
-InSituVTKPostprocessor::InSituVTKPostprocessor()
+InSituVTKCoProcessor::InSituVTKCoProcessor()
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-InSituVTKPostprocessor::InSituVTKPostprocessor( Grid3DPtr grid, UbSchedulerPtr s, const std::string& configFile, LBMUnitConverterPtr conv ) : Postprocessor(grid, s), conv(conv)
+InSituVTKCoProcessor::InSituVTKCoProcessor( Grid3DPtr grid, UbSchedulerPtr s, const std::string& configFile, LBMUnitConverterPtr conv ) : CoProcessor(grid, s), conv(conv)
 {
    gridRank  = Communicator::getInstance()->getProcessID(); 
    minInitLevel = this->grid->getCoarsestInitializedLevel();
@@ -50,20 +50,20 @@ InSituVTKPostprocessor::InSituVTKPostprocessor( Grid3DPtr grid, UbSchedulerPtr s
  
 }
 //////////////////////////////////////////////////////////////////////////
-InSituVTKPostprocessor::~InSituVTKPostprocessor()
+InSituVTKCoProcessor::~InSituVTKCoProcessor()
 {
    comm->CloseConnection();
 }
 //////////////////////////////////////////////////////////////////////////
-void InSituVTKPostprocessor::update( double step )
+void InSituVTKCoProcessor::process( double step )
 {
    if(scheduler->isDue(step) )
-      collectPostprocessData(step);
+      collectData(step);
 
    UBLOG(logDEBUG3, "InSituVTKPostprocessor::update:" << step);
 }
 //////////////////////////////////////////////////////////////////////////
-void InSituVTKPostprocessor::collectPostprocessData( double step )
+void InSituVTKCoProcessor::collectData( double step )
 {
    int istep = static_cast<int>(step);
 
@@ -92,7 +92,7 @@ void InSituVTKPostprocessor::collectPostprocessData( double step )
       {
          if (block)
          {
-            addPostprocessData(block);
+            addData(block);
          }
       }
    }
@@ -125,7 +125,7 @@ void InSituVTKPostprocessor::collectPostprocessData( double step )
    UBLOG(logINFO,"InSituVTKPostprocessor step: " << istep);
 }
 //////////////////////////////////////////////////////////////////////////
-void InSituVTKPostprocessor::addPostprocessData( Block3DPtr block )
+void InSituVTKCoProcessor::addData( Block3DPtr block )
 {
    UbTupleDouble3 org          = grid->getBlockWorldCoordinates(block);
    UbTupleDouble3 blockLengths = grid->getBlockLengths(block);
@@ -263,7 +263,7 @@ void InSituVTKPostprocessor::addPostprocessData( Block3DPtr block )
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void InSituVTKPostprocessor::readConfigFile( const std::string& configFile )
+void InSituVTKCoProcessor::readConfigFile( const std::string& configFile )
 {
    ifstream ifs;
    ifs.open (configFile, ifstream::in);
diff --git a/source/VirtualFluidsCore/CoProcessors/InSituVTKPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.h
similarity index 68%
rename from source/VirtualFluidsCore/CoProcessors/InSituVTKPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.h
index c4f0a6749..1898ac296 100644
--- a/source/VirtualFluidsCore/CoProcessors/InSituVTKPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.h
@@ -3,7 +3,7 @@
 #ifndef InSituVTKPostprocessor_h__
 #define InSituVTKPostprocessor_h__
 
-#include <Postprocessor.h>
+#include <CoProcessor.h>
 #include <Grid3D.h>
 #include <LBMUnitConverter.h>
 
@@ -16,16 +16,16 @@
 #include <vtkUnstructuredGrid.h>
 #include <vtkDoubleArray.h>
 
-class InSituVTKPostprocessor : public Postprocessor
+class InSituVTKCoProcessor : public CoProcessor
 {
 public:
-   InSituVTKPostprocessor();
-   InSituVTKPostprocessor(Grid3DPtr grid, UbSchedulerPtr s, const std::string& configFile, LBMUnitConverterPtr conv);
-   virtual ~InSituVTKPostprocessor(); 
-   void update(double step);
+   InSituVTKCoProcessor();
+   InSituVTKCoProcessor(Grid3DPtr grid, UbSchedulerPtr s, const std::string& configFile, LBMUnitConverterPtr conv);
+   virtual ~InSituVTKCoProcessor(); 
+   void process(double step);
 protected:
-   void collectPostprocessData(double step);
-   void addPostprocessData(Block3DPtr block);
+   void collectData(double step);
+   void addData(Block3DPtr block);
    void readConfigFile(const std::string& configFile);
 
    //void clearData();
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27MacroscopicQuantitiesPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/MacroscopicQuantitiesCoProcessor.cpp
similarity index 92%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27MacroscopicQuantitiesPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/MacroscopicQuantitiesCoProcessor.cpp
index d551a8ae8..6bbefbfcc 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27MacroscopicQuantitiesPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/MacroscopicQuantitiesCoProcessor.cpp
@@ -1,4 +1,4 @@
-#include "D3Q27MacroscopicQuantitiesPostprocessor.h"
+#include "MacroscopicQuantitiesCoProcessor.h"
 #include "LBMKernelETD3Q27.h"
 #include "D3Q27ETBCProcessor.h"
 #include <vector>
@@ -8,16 +8,16 @@
 
 using namespace std;
 
-D3Q27MacroscopicQuantitiesPostprocessor::D3Q27MacroscopicQuantitiesPostprocessor()
+MacroscopicQuantitiesCoProcessor::MacroscopicQuantitiesCoProcessor()
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-D3Q27MacroscopicQuantitiesPostprocessor::D3Q27MacroscopicQuantitiesPostprocessor(Grid3DPtr grid, UbSchedulerPtr s,
+MacroscopicQuantitiesCoProcessor::MacroscopicQuantitiesCoProcessor(Grid3DPtr grid, UbSchedulerPtr s,
                                                                                  const std::string& path, WbWriter* const writer, 
                                                                                  LBMUnitConverterPtr conv, 
                                                                                  bool bcInformation)
-                                                                                 : Postprocessor(grid, s),
+                                                                                 : CoProcessor(grid, s),
                                                                                  path(path),
                                                                                  writer(writer),
                                                                                  conv(conv),
@@ -36,7 +36,7 @@ D3Q27MacroscopicQuantitiesPostprocessor::D3Q27MacroscopicQuantitiesPostprocessor
    init();
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27MacroscopicQuantitiesPostprocessor::init()
+void MacroscopicQuantitiesCoProcessor::init()
 {
    gridRank  = Communicator::getInstance()->getProcessID(); 
    minInitLevel = this->grid->getCoarsestInitializedLevel();
@@ -50,15 +50,15 @@ void D3Q27MacroscopicQuantitiesPostprocessor::init()
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27MacroscopicQuantitiesPostprocessor::update(double step)
+void MacroscopicQuantitiesCoProcessor::process(double step)
 {
    if(scheduler->isDue(step) )
-      collectPostprocessData(step);
+      collectData(step);
 
    UBLOG(logDEBUG3, "D3Q27MacroscopicQuantitiesPostprocessor::update:" << step);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27MacroscopicQuantitiesPostprocessor::collectPostprocessData(double step)
+void MacroscopicQuantitiesCoProcessor::collectData(double step)
 {
    int istep = static_cast<int>(step);
 
@@ -70,11 +70,11 @@ void D3Q27MacroscopicQuantitiesPostprocessor::collectPostprocessData(double step
          {
                if(!bcInformation)
                {
-                  addPostprocessData1(block);
+                  addDataMQ(block);
                }
                else
                {
-                  addPostprocessData2(block);
+                  addDataGeo(block);
                }
          }
       }
@@ -113,7 +113,7 @@ void D3Q27MacroscopicQuantitiesPostprocessor::collectPostprocessData(double step
 
       vector<string> filenames;
       filenames.push_back(piece);
-      if (step == Postprocessor::scheduler->getMinBegin())
+      if (step == CoProcessor::scheduler->getMinBegin())
       {
          WbWriterVtkXmlASCII::getInstance()->writeCollection(cfilePath,filenames,istep,false);
       } 
@@ -127,7 +127,7 @@ void D3Q27MacroscopicQuantitiesPostprocessor::collectPostprocessData(double step
    clearData();
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27MacroscopicQuantitiesPostprocessor::clearData()
+void MacroscopicQuantitiesCoProcessor::clearData()
 {
    nodes.clear();
    cells.clear();
@@ -135,7 +135,7 @@ void D3Q27MacroscopicQuantitiesPostprocessor::clearData()
    data.clear();
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27MacroscopicQuantitiesPostprocessor::addPostprocessData1(Block3DPtr block)
+void MacroscopicQuantitiesCoProcessor::addDataMQ(Block3DPtr block)
 {
    UbTupleDouble3 org          = grid->getBlockWorldCoordinates(block);
    UbTupleDouble3 blockLengths = grid->getBlockLengths(block);
@@ -287,7 +287,7 @@ void D3Q27MacroscopicQuantitiesPostprocessor::addPostprocessData1(Block3DPtr blo
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27MacroscopicQuantitiesPostprocessor::addPostprocessData2(Block3DPtr block)
+void MacroscopicQuantitiesCoProcessor::addDataGeo(Block3DPtr block)
 {
    UbTupleDouble3 org          = grid->getBlockWorldCoordinates(block);
    UbTupleDouble3 blockLengths = grid->getBlockLengths(block);
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27MacroscopicQuantitiesPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/MacroscopicQuantitiesCoProcessor.h
similarity index 64%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27MacroscopicQuantitiesPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/MacroscopicQuantitiesCoProcessor.h
index e5a26a929..8634885ee 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27MacroscopicQuantitiesPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/MacroscopicQuantitiesCoProcessor.h
@@ -1,7 +1,7 @@
 #ifndef D3Q27MACROSCOPICQUANTITIESPOSTPROCESSOR_H
 #define D3Q27MACROSCOPICQUANTITIESPOSTPROCESSOR_H
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "Grid3D.h"
 #include "Block3D.h"
 #include "LBMUnitConverter.h"
@@ -9,22 +9,22 @@
 #include "WbWriter.h"
 
 #include <boost/shared_ptr.hpp>
-class D3Q27MacroscopicQuantitiesPostprocessor;
-typedef boost::shared_ptr<D3Q27MacroscopicQuantitiesPostprocessor> D3Q27MacroscopicQuantitiesPostprocessorPtr;
+class MacroscopicQuantitiesCoProcessor;
+typedef boost::shared_ptr<MacroscopicQuantitiesCoProcessor> MacroscopicQuantitiesCoProcessorPtr;
 
-class D3Q27MacroscopicQuantitiesPostprocessor : public  Postprocessor 
+class MacroscopicQuantitiesCoProcessor : public  CoProcessor 
 {
 public:
-   D3Q27MacroscopicQuantitiesPostprocessor();
-   D3Q27MacroscopicQuantitiesPostprocessor(Grid3DPtr grid, UbSchedulerPtr s, 
+   MacroscopicQuantitiesCoProcessor();
+   MacroscopicQuantitiesCoProcessor(Grid3DPtr grid, UbSchedulerPtr s, 
                                            const std::string& path, WbWriter* const writer, 
                                            LBMUnitConverterPtr conv,  
                                            bool nodesInformation = false);
-   void update(double step);
+   void process(double step);
 protected:
-   void collectPostprocessData(double step);
-   void addPostprocessData1(Block3DPtr block);
-   void addPostprocessData2(Block3DPtr block);
+   void collectData(double step);
+   void addDataMQ(Block3DPtr block);
+   void addDataGeo(Block3DPtr block);
    void clearData();
 private:
    void init();
@@ -45,7 +45,7 @@ private:
    template<class Archive>
    void serialize(Archive & ar, const unsigned int version)
    {
-      ar & boost::serialization::base_object<Postprocessor>(*this);
+      ar & boost::serialization::base_object<CoProcessor>(*this);
       ar & path;
       ar & conv;
       ar & bcInformation;
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27MeanValuesPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/MeanValuesCoProcessor.cpp
similarity index 83%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27MeanValuesPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/MeanValuesCoProcessor.cpp
index 791a59602..73bc3da3a 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27MeanValuesPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/MeanValuesCoProcessor.cpp
@@ -1,8 +1,8 @@
-#include "D3Q27MeanValuesPostprocessor.h"
+#include "MeanValuesCoProcessor.h"
 
-D3Q27MeanValuesPostprocessor::D3Q27MeanValuesPostprocessor(Grid3DPtr grid, UbSchedulerPtr s, const std::string &path,
+MeanValuesCoProcessor::MeanValuesCoProcessor(Grid3DPtr grid, UbSchedulerPtr s, const std::string &path,
                                                            CommunicatorPtr comm, D3Q27IntegrateValuesHelperPtr ih, double factorPressure, double factorVelocity) :
-                                                            Postprocessor(grid, s),
+                                                            CoProcessor(grid, s),
                                                             filename(path),
                                                             comm(comm),
                                                             ih(ih),
@@ -26,18 +26,18 @@ D3Q27MeanValuesPostprocessor::D3Q27MeanValuesPostprocessor(Grid3DPtr grid, UbSch
    }
 }
 //////////////////////////////////////////////////////////////////////////
-D3Q27MeanValuesPostprocessor::~D3Q27MeanValuesPostprocessor()
+MeanValuesCoProcessor::~MeanValuesCoProcessor()
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27MeanValuesPostprocessor::update(double step)
+void MeanValuesCoProcessor::process(double step)
 {
    if (scheduler->isDue(step))
       collectPostprocessData(step);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27MeanValuesPostprocessor::collectPostprocessData(double step)
+void MeanValuesCoProcessor::collectPostprocessData(double step)
 {
    ih->calculateMQ();
    
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27MeanValuesPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/MeanValuesCoProcessor.h
similarity index 64%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27MeanValuesPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/MeanValuesCoProcessor.h
index 9ab1f2278..eb3b38381 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27MeanValuesPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/MeanValuesCoProcessor.h
@@ -1,18 +1,18 @@
 #ifndef D3Q27MEANVALUESPOSTPROCESSOR_H
 #define D3Q27MEANVALUESPOSTPROCESSOR_H
 
-#include <Postprocessor.h>
+#include <CoProcessor.h>
 #include <D3Q27IntegrateValuesHelper.h>
 #include <LBMUnitConverter.h>
 
-class D3Q27MeanValuesPostprocessor : public Postprocessor
+class MeanValuesCoProcessor : public CoProcessor
 {
 public:
-   D3Q27MeanValuesPostprocessor(Grid3DPtr grid, UbSchedulerPtr s, const std::string &path,
+   MeanValuesCoProcessor(Grid3DPtr grid, UbSchedulerPtr s, const std::string &path,
       CommunicatorPtr comm, D3Q27IntegrateValuesHelperPtr ih, double factorPressure, double factorVelocity);
                                 
-   virtual ~D3Q27MeanValuesPostprocessor();
-   void update(double step);
+   virtual ~MeanValuesCoProcessor();
+   void process(double step);
    
 private:
    D3Q27IntegrateValuesHelperPtr ih;
diff --git a/source/VirtualFluidsCore/CoProcessors/NUPSCounterPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.cpp
similarity index 83%
rename from source/VirtualFluidsCore/CoProcessors/NUPSCounterPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.cpp
index c09ee0333..96cd9f083 100644
--- a/source/VirtualFluidsCore/CoProcessors/NUPSCounterPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.cpp
@@ -1,8 +1,8 @@
-#include "NUPSCounterPostprocessor.h"
+#include "NUPSCounterCoProcessor.h"
 
 
-NUPSCounterPostprocessor::NUPSCounterPostprocessor(Grid3DPtr grid, UbSchedulerPtr s, int numOfThreads, CommunicatorPtr comm)
-                                                   : Postprocessor(grid, s),
+NUPSCounterCoProcessor::NUPSCounterCoProcessor(Grid3DPtr grid, UbSchedulerPtr s, int numOfThreads, CommunicatorPtr comm)
+                                                   : CoProcessor(grid, s),
                                                      numOfThreads(numOfThreads),
                                                      comm(comm),
                                                      nup(0),
@@ -31,17 +31,17 @@ NUPSCounterPostprocessor::NUPSCounterPostprocessor(Grid3DPtr grid, UbSchedulerPt
    }
 }
 //////////////////////////////////////////////////////////////////////////
-NUPSCounterPostprocessor::~NUPSCounterPostprocessor() 
+NUPSCounterCoProcessor::~NUPSCounterCoProcessor() 
 {
 }
 //////////////////////////////////////////////////////////////////////////
-void NUPSCounterPostprocessor::update(double step)
+void NUPSCounterCoProcessor::process(double step)
 {
    if(scheduler->isDue(step) )
-      collectPostprocessData(step);
+      collectData(step);
 }
 //////////////////////////////////////////////////////////////////////////
-void NUPSCounterPostprocessor::collectPostprocessData(double step)
+void NUPSCounterCoProcessor::collectData(double step)
 {
    if (comm->getProcessID() == comm->getRoot())
    {
diff --git a/source/VirtualFluidsCore/CoProcessors/NUPSCounterPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.h
similarity index 58%
rename from source/VirtualFluidsCore/CoProcessors/NUPSCounterPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.h
index 48a90c90c..1b1c6be6f 100644
--- a/source/VirtualFluidsCore/CoProcessors/NUPSCounterPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.h
@@ -8,18 +8,18 @@
 #ifndef NUPSCOUNTERPOSTPROCESSOR_H_
 #define NUPSCOUNTERPOSTPROCESSOR_H_
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "Communicator.h"
 #include "basics/utilities/UbTiming.h"
 #include <boost/timer.hpp>
 
-class NUPSCounterPostprocessor: public Postprocessor {
+class NUPSCounterCoProcessor: public CoProcessor {
 public:
-   NUPSCounterPostprocessor(Grid3DPtr grid, UbSchedulerPtr s, int numOfThreads, CommunicatorPtr comm);
-   virtual ~NUPSCounterPostprocessor();
-   void update(double step);
+   NUPSCounterCoProcessor(Grid3DPtr grid, UbSchedulerPtr s, int numOfThreads, CommunicatorPtr comm);
+   virtual ~NUPSCounterCoProcessor();
+   void process(double step);
 protected:
-   void collectPostprocessData(double step);
+   void collectData(double step);
    UbTimer timer;
    //boost::timer timer;
    int numOfThreads;
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27PathLinePostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/PathLineCoProcessor.cpp
similarity index 91%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27PathLinePostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/PathLineCoProcessor.cpp
index 6e8ca7ea9..7ca2741c0 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27PathLinePostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/PathLineCoProcessor.cpp
@@ -1,4 +1,4 @@
-#include "D3Q27PathLinePostprocessor.h"
+#include "PathLineCoProcessor.h"
 #include "LBMKernelETD3Q27.h"
 #include "SimulationParameters.h"
 #include "D3Q27ETBCProcessor.h"
@@ -10,11 +10,11 @@
 using namespace std;
 
 
-D3Q27PathLinePostprocessor::D3Q27PathLinePostprocessor(Grid3DPtr grid, const std::string& path,
+PathLineCoProcessor::PathLineCoProcessor(Grid3DPtr grid, const std::string& path,
                                                        WbWriter* const writer, LBMUnitConverterPtr conv,
                                                        UbSchedulerPtr s, CommunicatorPtr comm, 
                                                        double x1, double x2, double x3, LBMReal nue, D3Q27InterpolationProcessorPtr iProcessor)
-                                                       : Postprocessor(grid, s),
+                                                       : CoProcessor(grid, s),
                                                        path(path),
                                                        comm(comm),
                                                        writer(writer),
@@ -39,12 +39,12 @@ D3Q27PathLinePostprocessor::D3Q27PathLinePostprocessor(Grid3DPtr grid, const std
    iHelper = D3Q27InterpolationHelperPtr(new D3Q27InterpolationHelper(iProcessor));
 }
 //////////////////////////////////////////////////////////////////////////
-D3Q27PathLinePostprocessor::~D3Q27PathLinePostprocessor()
+PathLineCoProcessor::~PathLineCoProcessor()
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::update(double step)
+void PathLineCoProcessor::process(double step)
 {
    this->stepcheck=(int)step;
    double aa=scheduler->getMinEnd();
@@ -56,7 +56,7 @@ void D3Q27PathLinePostprocessor::update(double step)
    UBLOG(logDEBUG3, "PathLinePostprocessor::update:" << step);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::collectPostprocessData()
+void PathLineCoProcessor::collectPostprocessData()
 {
    //for (int n=0;n<Positions[][0].size();n++)
    //{
@@ -194,7 +194,7 @@ void D3Q27PathLinePostprocessor::collectPostprocessData()
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::printPoint(double tau[])
+void PathLineCoProcessor::printPoint(double tau[])
 {
    double tauxx=tau[0];
    double tauyy=tau[1];
@@ -243,14 +243,14 @@ void D3Q27PathLinePostprocessor::printPoint(double tau[])
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::clearData()
+void PathLineCoProcessor::clearData()
 {
    nodes.clear();
    datanames.clear();
    data.clear();
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::initialMovement(Block3DPtr block, LBMKernelETD3Q27Ptr& kernel, DistributionArray3DPtr& distributions,  BCArray3D<D3Q27BoundaryCondition>& bcArray)
+void PathLineCoProcessor::initialMovement(Block3DPtr block, LBMKernelETD3Q27Ptr& kernel, DistributionArray3DPtr& distributions,  BCArray3D<D3Q27BoundaryCondition>& bcArray)
 {
    //UBLOG(logINFO, "addPostprocessData1");
    //root = rank;
@@ -270,7 +270,7 @@ void D3Q27PathLinePostprocessor::initialMovement(Block3DPtr block, LBMKernelETD3
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::checkLevel(Block3DPtr& block, LBMKernelETD3Q27Ptr& kernel, DistributionArray3DPtr& distributions,  BCArray3D<D3Q27BoundaryCondition>& bcArray,bool &isPointSuitable2)
+void PathLineCoProcessor::checkLevel(Block3DPtr& block, LBMKernelETD3Q27Ptr& kernel, DistributionArray3DPtr& distributions,  BCArray3D<D3Q27BoundaryCondition>& bcArray,bool &isPointSuitable2)
 {
    int minInitLevel = this->grid->getCoarsestInitializedLevel();
    int maxInitLevel = this->grid->getFinestInitializedLevel(); 
@@ -317,7 +317,7 @@ void D3Q27PathLinePostprocessor::checkLevel(Block3DPtr& block, LBMKernelETD3Q27P
    else isPointSuitable2=false;
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::interpolMovement(Block3DPtr block, LBMKernelETD3Q27Ptr& kernel, DistributionArray3DPtr& distributions,  BCArray3D<D3Q27BoundaryCondition>& bcArray, int &isExtrapolation,double tau[])
+void PathLineCoProcessor::interpolMovement(Block3DPtr block, LBMKernelETD3Q27Ptr& kernel, DistributionArray3DPtr& distributions,  BCArray3D<D3Q27BoundaryCondition>& bcArray, int &isExtrapolation,double tau[])
 {
    LBMReal tauxx,	   tauyy,	   tauzz,	   tauxy,	   tauxz,	   tauyz;
    LBMReal vx1,vx2,vx3,rho;
@@ -430,7 +430,7 @@ void D3Q27PathLinePostprocessor::interpolMovement(Block3DPtr block, LBMKernelETD
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::extrapolMovement(Block3DPtr block, LBMKernelETD3Q27Ptr& kernel, DistributionArray3DPtr& distributions,  BCArray3D<D3Q27BoundaryCondition>& bcArray,double tau[])
+void PathLineCoProcessor::extrapolMovement(Block3DPtr block, LBMKernelETD3Q27Ptr& kernel, DistributionArray3DPtr& distributions,  BCArray3D<D3Q27BoundaryCondition>& bcArray,double tau[])
 {
    LBMReal tauxx,	   tauyy,	   tauzz,	   tauxy,	   tauxz,	   tauyz;
    LBMReal vx1,vx2,vx3,rho;
@@ -545,7 +545,7 @@ void D3Q27PathLinePostprocessor::extrapolMovement(Block3DPtr block, LBMKernelETD
    }
 }
 //////////////////////////////////////////////////////////////////////////
-bool D3Q27PathLinePostprocessor::checkNodes( Block3DPtr block)
+bool PathLineCoProcessor::checkNodes( Block3DPtr block)
 {
    bool result = true;
    LBMKernelETD3Q27Ptr kernel = boost::dynamic_pointer_cast<LBMKernelETD3Q27>(block->getKernel());
@@ -591,7 +591,7 @@ bool D3Q27PathLinePostprocessor::checkNodes( Block3DPtr block)
 
 }
 //////////////////////////////////////////////////////////////////////////
-bool D3Q27PathLinePostprocessor::checkNodes2( Block3DPtr block,double x11,double x22,double x33)
+bool PathLineCoProcessor::checkNodes2( Block3DPtr block,double x11,double x22,double x33)
 {
    bool result = true;
    LBMKernelETD3Q27Ptr kernel = boost::dynamic_pointer_cast<LBMKernelETD3Q27>(block->getKernel());
@@ -637,7 +637,7 @@ bool D3Q27PathLinePostprocessor::checkNodes2( Block3DPtr block,double x11,double
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::outICell(D3Q27ICell& iCell)
+void PathLineCoProcessor::outICell(D3Q27ICell& iCell)
 {
    std::ofstream ostr;
    string fname = path+"_iCell";
@@ -658,7 +658,7 @@ void D3Q27PathLinePostprocessor::outICell(D3Q27ICell& iCell)
    ostr.close();
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::updateDistributedValues()
+void PathLineCoProcessor::updateDistributedValues()
 {
    int size;	
    MPI_Status status; 
@@ -705,7 +705,7 @@ void D3Q27PathLinePostprocessor::updateDistributedValues()
 }
 //////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::findPlane(int ix1,int ix2,int ix3,Grid3DPtr grid,Block3DPtr block,double &A,double &B,double &C,double &D,double &ii)
+void PathLineCoProcessor::findPlane(int ix1,int ix2,int ix3,Grid3DPtr grid,Block3DPtr block,double &A,double &B,double &C,double &D,double &ii)
 {
    double x1plane=0.0,y1plane=0.0,z1plane=0.0;
    double x2plane=0.0,y2plane=0.0,z2plane=0.0;
@@ -812,7 +812,7 @@ void D3Q27PathLinePostprocessor::findPlane(int ix1,int ix2,int ix3,Grid3DPtr gri
    D =-( x1plane*(y2plane*z3plane - y3plane*z2plane)+x2plane*(y3plane*z1plane - y1plane*z3plane) + x3plane* (y1plane* z2plane - y2plane* z1plane));
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::finddisPointToCentercell(double x1,double x2,double x3,double xp000, double yp000, double zp000,double &dis,double &dx,
+void PathLineCoProcessor::finddisPointToCentercell(double x1,double x2,double x3,double xp000, double yp000, double zp000,double &dis,double &dx,
                                                           double &deltaT,Block3DPtr &block,int level)
 {	
    UbTupleInt3 blockIndexes = grid->getBlockIndexes(xp000, yp000,  zp000,level);
@@ -882,7 +882,7 @@ void D3Q27PathLinePostprocessor::finddisPointToCentercell(double x1,double x2,do
 
 //}
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::getWallPosition(double input[])
+void PathLineCoProcessor::getWallPosition(double input[])
 { 
 
    //{0=xp000, 1=ix2ph,  2=ix3ph,3=x1,4=x2,5=x3,6=Xw,7=Yw,8=Zw,9=A,10=B,11=C,12=D,13=normalDis,14=di,15=dj,16=dk,
@@ -927,7 +927,7 @@ void D3Q27PathLinePostprocessor::getWallPosition(double input[])
 //  else if (dixmax==disxyz){  Xw=x1-di*normalDis;    Yw=x2-dj*normalDis;    Zw=x3-dk*normalDis;	  cofWeightx=1;  cofWeighty=1;cofWeightz=1;}
 // }
 ////////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::findInitialCell(double s,double di,double dj,double dk,double dx,double ix1ph,double ix2ph,double ix3ph,double &xp000,double &yp000,double &zp000)
+void PathLineCoProcessor::findInitialCell(double s,double di,double dj,double dk,double dx,double ix1ph,double ix2ph,double ix3ph,double &xp000,double &yp000,double &zp000)
 {
    if (s*di>0)         {            xp000=ix1ph+dx;    }
    else if(s*di<0)     {            xp000=ix1ph-dx;    }
@@ -940,7 +940,7 @@ void D3Q27PathLinePostprocessor::findInitialCell(double s,double di,double dj,do
    else                {            zp000=ix3ph;      }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::rearangedDouble( double dis[7])
+void PathLineCoProcessor::rearangedDouble( double dis[7])
 {
    double item;
    for (int i=6;i>0;i--){   
@@ -955,7 +955,7 @@ void D3Q27PathLinePostprocessor::rearangedDouble( double dis[7])
    } 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::rearangeInt( int dis[7])
+void PathLineCoProcessor::rearangeInt( int dis[7])
 {
    double item;
    for (int i=6;i>0;i--){   
@@ -970,7 +970,7 @@ void D3Q27PathLinePostprocessor::rearangeInt( int dis[7])
    } 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::addCorrection(double &vx1,double &vx2,double &vx3,double &tauxx,double &tauyy,double &tauzz,double &tauxy,double &tauxz,double &tauyz,
+void PathLineCoProcessor::addCorrection(double &vx1,double &vx2,double &vx3,double &tauxx,double &tauyy,double &tauzz,double &tauxy,double &tauxz,double &tauyz,
                                                double dx,D3Q27ICell iCell,double Xw, double Yw, double Zw,double  omega,double cofWeightx,double cofWeighty,double cofWeightz,double ii,double x1LB,double x2LB,double x3LB,double di,double dj,double dk)
 {
    LBMReal f[D3Q27System::ENDF+1];
@@ -1055,7 +1055,7 @@ void D3Q27PathLinePostprocessor::addCorrection(double &vx1,double &vx2,double &v
    tauyz=tauyz/dx;
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::collWall(double A,double B,double C,double D,double &x1,double &x2,double &x3,double x1old,double x2old,double x3old,double dx,double &vx1,double &vx2,double &vx3,double ii)
+void PathLineCoProcessor::collWall(double A,double B,double C,double D,double &x1,double &x2,double &x3,double x1old,double x2old,double x3old,double dx,double &vx1,double &vx2,double &vx3,double ii)
 {
    if (particleHasMass)
    {
@@ -1101,7 +1101,7 @@ void D3Q27PathLinePostprocessor::collWall(double A,double B,double C,double D,do
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::CalcVelParticle(double dx,double &vx1,double &vx2,double &vx3,double vx1old,double vx2old,
+void PathLineCoProcessor::CalcVelParticle(double dx,double &vx1,double &vx2,double &vx3,double vx1old,double vx2old,
                                                  double vx3old,double &vx1oldf,double &vx2oldf,double &vx3oldf)
 {
    double signDragx,signDragy,signDragz;
@@ -1137,7 +1137,7 @@ void D3Q27PathLinePostprocessor::CalcVelParticle(double dx,double &vx1,double &v
    vx3oldf=velx3oldf;
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::CalcVelParticle2(double dx,double &vx1,double &vx2,double &vx3,double vx1old,double vx2old,
+void PathLineCoProcessor::CalcVelParticle2(double dx,double &vx1,double &vx2,double &vx3,double vx1old,double vx2old,
                                                   double vx3old,double &vx1oldf,double &vx2oldf,double &vx3oldf)
 {
    double signDragx,signDragy,signDragz;
@@ -1167,7 +1167,7 @@ void D3Q27PathLinePostprocessor::CalcVelParticle2(double dx,double &vx1,double &
    vx3oldf=velx3oldf;
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::getRankWithPosition(Grid3DPtr grid,double xp000, double yp000, double zp000,int &RankNeigber,int level)
+void PathLineCoProcessor::getRankWithPosition(Grid3DPtr grid,double xp000, double yp000, double zp000,int &RankNeigber,int level)
 {
    int minInitLevel = this->grid->getCoarsestInitializedLevel();
    int maxInitLevel = this->grid->getFinestInitializedLevel();
@@ -1195,7 +1195,7 @@ void D3Q27PathLinePostprocessor::getRankWithPosition(Grid3DPtr grid,double xp000
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::getRankWithPosition2(Grid3DPtr grid,double xp000, double yp000, double zp000,int &RankNeigber)
+void PathLineCoProcessor::getRankWithPosition2(Grid3DPtr grid,double xp000, double yp000, double zp000,int &RankNeigber)
 {
    int minInitLevel = this->grid->getCoarsestInitializedLevel();
    int maxInitLevel = this->grid->getFinestInitializedLevel();
@@ -1225,7 +1225,7 @@ void D3Q27PathLinePostprocessor::getRankWithPosition2(Grid3DPtr grid,double xp00
 
 
 ////////////////////////////////////////////////////////////////////////// 
-void D3Q27PathLinePostprocessor::getAllTag(int allRank[7],int allTag[7])
+void PathLineCoProcessor::getAllTag(int allRank[7],int allTag[7])
 {
 
    for (int i=0;i<7;i++)
@@ -1242,7 +1242,7 @@ void D3Q27PathLinePostprocessor::getAllTag(int allRank[7],int allTag[7])
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::getAllInfoForCompare(double input[],double *Vect)
+void PathLineCoProcessor::getAllInfoForCompare(double input[],double *Vect)
 {
    //{0=xp000, 1=ix2ph,  2=ix3ph,3=x1,4=x2,5=x3,6=Xw,7=Yw,8=Zw,9=A,10=B,11=C,12=D,13=normalDis,14=di,15=dj,16=dk,
    //17=cofWeightx,18=cofWeighty,19=cofWeightz,,20=dx,21=omega,22=level,23=disx,24=dir  };
@@ -1279,7 +1279,7 @@ void D3Q27PathLinePostprocessor::getAllInfoForCompare(double input[],double *Vec
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::sendMaxtagToAllProccess(int allRank[],int allTag[],int numberpro,int &numberproccessused,int *mainproccess)
+void PathLineCoProcessor::sendMaxtagToAllProccess(int allRank[],int allTag[],int numberpro,int &numberproccessused,int *mainproccess)
 {
 
    int allRank_[7];
@@ -1346,7 +1346,7 @@ void D3Q27PathLinePostprocessor::sendMaxtagToAllProccess(int allRank[],int allTa
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::getAllRankWithAllPositions(double ix1ph,double ix2ph,double ix3ph,double xp000,double yp000,double zp000,
+void PathLineCoProcessor::getAllRankWithAllPositions(double ix1ph,double ix2ph,double ix3ph,double xp000,double yp000,double zp000,
                                                             int &Rankx,int &Ranky,int &Rankz,int &Rankxy,int &Rankxz,int &Rankyz,int &Rankxyz,int level)
 {
 
@@ -1360,7 +1360,7 @@ void D3Q27PathLinePostprocessor::getAllRankWithAllPositions(double ix1ph,double
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::getAllRankWithAllPositions2(double ix1ph,double ix2ph,double ix3ph,double xp000,double yp000,double zp000,
+void PathLineCoProcessor::getAllRankWithAllPositions2(double ix1ph,double ix2ph,double ix3ph,double xp000,double yp000,double zp000,
                                                              int &Rankx,int &Ranky,int &Rankz,int &Rankxy,int &Rankxz,int &Rankyz,int &Rankxyz)
 {
 
@@ -1374,7 +1374,7 @@ void D3Q27PathLinePostprocessor::getAllRankWithAllPositions2(double ix1ph,double
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::getVectfromiCell(D3Q27ICell iCell,double *Vect)
+void PathLineCoProcessor::getVectfromiCell(D3Q27ICell iCell,double *Vect)
 {
 
    for (int i=0*27;i<1*27;i++)         {   Vect[i]=iCell.TSW[i-0*27];   }
@@ -1387,7 +1387,7 @@ void D3Q27PathLinePostprocessor::getVectfromiCell(D3Q27ICell iCell,double *Vect)
    for (int i=7*27;i<8*27;i++)		   {   Vect[i]=iCell.BSE[i-7*27];   }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::getiCellfromVect(D3Q27ICell &iCell,double *Vect)
+void PathLineCoProcessor::getiCellfromVect(D3Q27ICell &iCell,double *Vect)
 {
 
    for (int i=0*27;i<1*27;i++)         {   iCell.TSW[i-0*27]=Vect[i];   }
@@ -1400,7 +1400,7 @@ void D3Q27PathLinePostprocessor::getiCellfromVect(D3Q27ICell &iCell,double *Vect
    for (int i=7*27;i<8*27;i++)		   {   iCell.BSE[i-7*27]=Vect[i];   }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::getAfterCompare(double dis[],double input [7][25],double AllCell[7][8*27],double &xp000,double &yp000,double &zp000,
+void PathLineCoProcessor::getAfterCompare(double dis[],double input [7][25],double AllCell[7][8*27],double &xp000,double &yp000,double &zp000,
                                                  double &Xw,double &Yw,double &Zw,double &cofWeightx,double &cofWeighty,double &cofWeightz,double &dx,double &omega,D3Q27ICell &iCell)
 {
 
@@ -1428,7 +1428,7 @@ void D3Q27PathLinePostprocessor::getAfterCompare(double dis[],double input [7][2
 }
 
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::SendAndReceiveData(double input[7][25],double AllCell[7][8*27],int allRank[7],int allTag[7])
+void PathLineCoProcessor::SendAndReceiveData(double input[7][25],double AllCell[7][8*27],int allRank[7],int allTag[7])
 {
 
    int sizeinput =25;
@@ -1489,7 +1489,7 @@ void D3Q27PathLinePostprocessor::SendAndReceiveData(double input[7][25],double A
    free (Cell);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessor::sendtoOtherIsOk(int isPointSuitable)
+void PathLineCoProcessor::sendtoOtherIsOk(int isPointSuitable)
 {
    if(comm->getNumberOfProcesses() > 1)  
    { 
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27PathLinePostprocessor.h b/source/VirtualFluidsCore/CoProcessors/PathLineCoProcessor.h
similarity index 92%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27PathLinePostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/PathLineCoProcessor.h
index dcc4c85a9..9677ab3cf 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27PathLinePostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/PathLineCoProcessor.h
@@ -17,7 +17,7 @@
 # define diryz 5
 # define dirxyz 6
 #include <mpi.h>
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "Grid3D.h"
 #include "Block3D.h"
 #include "LBMUnitConverter.h"
@@ -28,17 +28,17 @@
 #include <boost/shared_ptr.hpp>
 #include "WbWriter.h"
 
-class D3Q27PathLinePostprocessor;
-typedef boost::shared_ptr<D3Q27PathLinePostprocessor> D3Q27PathLinePostprocessorPtr;
+class PathLineCoProcessor;
+typedef boost::shared_ptr<PathLineCoProcessor> PathLineCoProcessorPtr;
 
-class D3Q27PathLinePostprocessor : public Postprocessor
+class PathLineCoProcessor : public CoProcessor
 {
 public:
-   D3Q27PathLinePostprocessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer,
+   PathLineCoProcessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer,
       LBMUnitConverterPtr conv, UbSchedulerPtr s, CommunicatorPtr comm, 
       double x1, double x2, double x3,  LBMReal nue, D3Q27InterpolationProcessorPtr iProcessor);
-   ~D3Q27PathLinePostprocessor();
-   void update(double step);
+   ~PathLineCoProcessor();
+   void process(double step);
 
 protected:
    void collectPostprocessData();
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27PathLinePostprocessorMcpart.cpp b/source/VirtualFluidsCore/CoProcessors/PathLineCoProcessorMcpart.cpp
similarity index 91%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27PathLinePostprocessorMcpart.cpp
rename to source/VirtualFluidsCore/CoProcessors/PathLineCoProcessorMcpart.cpp
index 74d87180b..e3acc7b3e 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27PathLinePostprocessorMcpart.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/PathLineCoProcessorMcpart.cpp
@@ -1,4 +1,4 @@
-#include "D3Q27PathLinePostprocessorMcpart.h"
+#include "PathLineCoProcessorMcpart.h"
 #include "LBMKernelETD3Q27.h"
 #include "SimulationParameters.h"
 #include "D3Q27ETBCProcessor.h"
@@ -10,10 +10,10 @@
 using namespace std;
 
 
-D3Q27PathLinePostprocessorMcpart::D3Q27PathLinePostprocessorMcpart(Grid3DPtr grid, const std::string& path, WbWriter* const writer,
+PathLineCoProcessorMcpart::PathLineCoProcessorMcpart(Grid3DPtr grid, const std::string& path, WbWriter* const writer,
                                                                    LBMUnitConverterPtr conv, UbSchedulerPtr s, CommunicatorPtr comm, 
                                                                    std::vector<UbTupleDouble3 > _Positions, LBMReal nue, D3Q27InterpolationProcessorPtr iProcessor)
-                                                                   : Postprocessor(grid, s),
+                                                                   : CoProcessor(grid, s),
                                                                    path(path),
                                                                    comm(comm),
                                                                    writer(writer),
@@ -30,11 +30,11 @@ D3Q27PathLinePostprocessorMcpart::D3Q27PathLinePostprocessorMcpart(Grid3DPtr gri
    initializeForPrinting((int)_Positions.size());
 }
 //////////////////////////////////////////////////////////////////////////
-D3Q27PathLinePostprocessorMcpart::~D3Q27PathLinePostprocessorMcpart()
+PathLineCoProcessorMcpart::~PathLineCoProcessorMcpart()
 {
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::update(double step)
+void PathLineCoProcessorMcpart::process(double step)
 {
    this->stepcheck=(int)step;
    double aa=scheduler->getMinEnd();
@@ -46,7 +46,7 @@ void D3Q27PathLinePostprocessorMcpart::update(double step)
    UBLOG(logDEBUG3, "PathLinePostprocessor::update:" << step);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::collectPostprocessData()
+void PathLineCoProcessorMcpart::collectPostprocessData()
 {
 
    int ran=rank;
@@ -93,7 +93,7 @@ void D3Q27PathLinePostprocessorMcpart::collectPostprocessData()
    istep++;
 }
 ////////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::initializeForPrinting(int _number)
+void PathLineCoProcessorMcpart::initializeForPrinting(int _number)
 {
    for (int i=0;i<_number;i++)
    {
@@ -102,7 +102,7 @@ void D3Q27PathLinePostprocessorMcpart::initializeForPrinting(int _number)
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::getParticlePerProccess(std::vector<UbTupleDouble3 >particlesVec)
+void PathLineCoProcessorMcpart::getParticlePerProccess(std::vector<UbTupleDouble3 >particlesVec)
 {
    for (int i=0;i<particlesVec.size();i++)
    {
@@ -163,7 +163,7 @@ void D3Q27PathLinePostprocessorMcpart::getParticlePerProccess(std::vector<UbTupl
    } 			
 }
 ////////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::initializeParticle(double x, double y,double z,int i,int level)
+void PathLineCoProcessorMcpart::initializeParticle(double x, double y,double z,int i,int level)
 {
    ParticlesPtr particle = ParticlesPtr(new Particles() );
 
@@ -175,7 +175,7 @@ void D3Q27PathLinePostprocessorMcpart::initializeParticle(double x, double y,dou
    particles.push_back(particle);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::getNeighborsRank()
+void PathLineCoProcessorMcpart::getNeighborsRank()
 {
    int gridRank = grid->getRank();
    int minInitLevel = this->grid->getCoarsestInitializedLevel();
@@ -240,7 +240,7 @@ void D3Q27PathLinePostprocessorMcpart::getNeighborsRank()
 //
 //}
 //////////////////////////////////////////////////////////////////////////
-bool D3Q27PathLinePostprocessorMcpart::checkNodes( Block3DPtr block,double _x1,double _x2,double _x3)
+bool PathLineCoProcessorMcpart::checkNodes( Block3DPtr block,double _x1,double _x2,double _x3)
 {
    bool result = true;
    LBMKernelETD3Q27Ptr kernel = boost::dynamic_pointer_cast<LBMKernelETD3Q27>(block->getKernel());
@@ -286,7 +286,7 @@ bool D3Q27PathLinePostprocessorMcpart::checkNodes( Block3DPtr block,double _x1,d
 
 }
 //	//////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::initialMovement()
+void PathLineCoProcessorMcpart::initialMovement()
 {
    BOOST_FOREACH(ParticlesPtr particle, particles)
    {
@@ -313,7 +313,7 @@ void D3Q27PathLinePostprocessorMcpart::initialMovement()
 //	//std::vector<Particles> *particlesVec;
 //}
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::sendBool(bool _bool,int distinationRank ,int i)
+void PathLineCoProcessorMcpart::sendBool(bool _bool,int distinationRank ,int i)
 {
    int variable;
    if (_bool==false)
@@ -328,7 +328,7 @@ void D3Q27PathLinePostprocessorMcpart::sendBool(bool _bool,int distinationRank ,
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::sendInt(int svalue,int distinationRank ,int tag)
+void PathLineCoProcessorMcpart::sendInt(int svalue,int distinationRank ,int tag)
 {
    if(comm->getNumberOfProcesses() > 1)  
    { 		
@@ -336,7 +336,7 @@ void D3Q27PathLinePostprocessorMcpart::sendInt(int svalue,int distinationRank ,i
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::receiveBool(bool &variable,int rankBlock)
+void PathLineCoProcessorMcpart::receiveBool(bool &variable,int rankBlock)
 {
    if(comm->getNumberOfProcesses() > 1)  
    { 	
@@ -352,7 +352,7 @@ void D3Q27PathLinePostprocessorMcpart::receiveBool(bool &variable,int rankBlock)
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::receiveInt(int &rvalue,int root)
+void PathLineCoProcessorMcpart::receiveInt(int &rvalue,int root)
 {
    if(comm->getNumberOfProcesses() > 1)  
    { 	
@@ -361,7 +361,7 @@ void D3Q27PathLinePostprocessorMcpart::receiveInt(int &rvalue,int root)
    }
 }
 ////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::sendStatusOfPoint(bool status,double x1,double x2,double x3,double level,int i)
+void PathLineCoProcessorMcpart::sendStatusOfPoint(bool status,double x1,double x2,double x3,double level,int i)
 {
    for(int lev = (int)level-1; lev<=(int)level+1; lev++)
    {	      	
@@ -379,7 +379,7 @@ void D3Q27PathLinePostprocessorMcpart::sendStatusOfPoint(bool status,double x1,d
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::receiveStatusOfPoint(bool &status,int rankRoot,double x1,double x2,double x3,double level)
+void PathLineCoProcessorMcpart::receiveStatusOfPoint(bool &status,int rankRoot,double x1,double x2,double x3,double level)
 {
    for(int lev = (int)level-1; lev<=(int)level+1; lev++)
    {	      
@@ -404,7 +404,7 @@ void D3Q27PathLinePostprocessorMcpart::receiveStatusOfPoint(bool &status,int ran
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::getVectorFromParticles(std::vector<double> &particlesInfomation,ParticlesPtr particle)
+void PathLineCoProcessorMcpart::getVectorFromParticles(std::vector<double> &particlesInfomation,ParticlesPtr particle)
 {
    particlesInfomation.push_back(particle->x     ); 
    particlesInfomation.push_back(particle->y     );	
@@ -424,7 +424,7 @@ void D3Q27PathLinePostprocessorMcpart::getVectorFromParticles(std::vector<double
 
 }
 ////////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::getParticlesFromVector(std::vector<double> particlesInfomation,int numberOFVariable)
+void PathLineCoProcessorMcpart::getParticlesFromVector(std::vector<double> particlesInfomation,int numberOFVariable)
 {
    int numParticles= (int)particlesInfomation.size()/numberOFVariable;
    for (int i=0;i<numParticles;i++)
@@ -535,7 +535,7 @@ void D3Q27PathLinePostprocessorMcpart::getParticlesFromVector(std::vector<double
 //
 
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::updateParticles()
+void PathLineCoProcessorMcpart::updateParticles()
 {
    //find particles which want to go to another process
    BOOST_FOREACH(ParticlesPtr particle, particles)
@@ -653,7 +653,7 @@ void D3Q27PathLinePostprocessorMcpart::updateParticles()
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::checkParticles()
+void PathLineCoProcessorMcpart::checkParticles()
 {
    std::list<ParticlesPtr> newparticles;
    BOOST_FOREACH(ParticlesPtr particle, particles)
@@ -687,7 +687,7 @@ void D3Q27PathLinePostprocessorMcpart::checkParticles()
    particles=newparticles;
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::finalMovement(ParticlesPtr particle,double tau[])
+void PathLineCoProcessorMcpart::finalMovement(ParticlesPtr particle,double tau[])
 {
    Block3DPtr block;
    UbTupleInt3 blockIndexes = grid->getBlockIndexes(particle->x, particle->y, particle->z,particle->level);
@@ -712,7 +712,7 @@ void D3Q27PathLinePostprocessorMcpart::finalMovement(ParticlesPtr particle,doubl
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::interpolMovement(Block3DPtr block,DistributionArray3DPtr& distributions,ParticlesPtr particle,double tau[],int ix1, int ix2, int ix3)
+void PathLineCoProcessorMcpart::interpolMovement(Block3DPtr block,DistributionArray3DPtr& distributions,ParticlesPtr particle,double tau[],int ix1, int ix2, int ix3)
 {
    D3Q27ICell iCell;
    //LBMReal f[D3Q27System::ENDF+1];
@@ -756,7 +756,7 @@ void D3Q27PathLinePostprocessorMcpart::interpolMovement(Block3DPtr block,Distrib
    particle->vzold = vx3;
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::extrapolMovement(Block3DPtr block,ParticlesPtr particle,double tau[],int ix1, int ix2, int ix3)
+void PathLineCoProcessorMcpart::extrapolMovement(Block3DPtr block,ParticlesPtr particle,double tau[],int ix1, int ix2, int ix3)
 {
 
    LBMReal vx1,vx2,vx3;
@@ -823,7 +823,7 @@ void D3Q27PathLinePostprocessorMcpart::extrapolMovement(Block3DPtr block,Particl
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::CalcVelParticle(double dx,double &vx1,double &vx2,double &vx3,double vx1old,double vx2old,
+void PathLineCoProcessorMcpart::CalcVelParticle(double dx,double &vx1,double &vx2,double &vx3,double vx1old,double vx2old,
                                                        double vx3old,double &vx1oldf,double &vx2oldf,double &vx3oldf)
 {
    double signDragx,signDragy,signDragz;
@@ -859,7 +859,7 @@ void D3Q27PathLinePostprocessorMcpart::CalcVelParticle(double dx,double &vx1,dou
    vx3oldf=velx3oldf;
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::CalcVelParticle2(double dx,double &vx1,double &vx2,double &vx3,double vx1old,double vx2old,
+void PathLineCoProcessorMcpart::CalcVelParticle2(double dx,double &vx1,double &vx2,double &vx3,double vx1old,double vx2old,
                                                         double vx3old,double &vx1oldf,double &vx2oldf,double &vx3oldf)
 {
    LBMReal muRE = 1.002*1e-3;//m2/s
@@ -882,7 +882,7 @@ void D3Q27PathLinePostprocessorMcpart::CalcVelParticle2(double dx,double &vx1,do
    vx3oldf=velx3oldf;
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::findPlane(int ix1,int ix2,int ix3,Grid3DPtr grid,Block3DPtr block,double &A,double &B,double &C,double &D,double &ii)
+void PathLineCoProcessorMcpart::findPlane(int ix1,int ix2,int ix3,Grid3DPtr grid,Block3DPtr block,double &A,double &B,double &C,double &D,double &ii)
 {
    double x1plane=0.0,y1plane=0.0,z1plane=0.0;
    double x2plane=0.0,y2plane=0.0,z2plane=0.0;
@@ -989,7 +989,7 @@ void D3Q27PathLinePostprocessorMcpart::findPlane(int ix1,int ix2,int ix3,Grid3DP
    D =-( x1plane*(y2plane*z3plane - y3plane*z2plane)+x2plane*(y3plane*z1plane - y1plane*z3plane) + x3plane* (y1plane* z2plane - y2plane* z1plane));
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::findInitialCell(double s,double di,double dj,double dk,double dx,double ix1ph,double ix2ph,double ix3ph,double &xp000,double &yp000,double &zp000)
+void PathLineCoProcessorMcpart::findInitialCell(double s,double di,double dj,double dk,double dx,double ix1ph,double ix2ph,double ix3ph,double &xp000,double &yp000,double &zp000)
 {
    if (s*di>0)         {            xp000=ix1ph+dx;    }
    else if(s*di<0)     {            xp000=ix1ph-dx;    }
@@ -1002,7 +1002,7 @@ void D3Q27PathLinePostprocessorMcpart::findInitialCell(double s,double di,double
    else                {            zp000=ix3ph;      }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::finddisPointToCentercell(double x1,double x2,double x3,double xp000, double yp000, double zp000,double &dis,int level)
+void PathLineCoProcessorMcpart::finddisPointToCentercell(double x1,double x2,double x3,double xp000, double yp000, double zp000,double &dis,int level)
 {	
    UbTupleInt3 blockIndexes = grid->getBlockIndexes(xp000, yp000,  zp000,level);
    Block3DPtr block = grid->getBlock(val<1>(blockIndexes), val<2>(blockIndexes), val<3>(blockIndexes), level);
@@ -1033,7 +1033,7 @@ void D3Q27PathLinePostprocessorMcpart::finddisPointToCentercell(double x1,double
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::collWall(double A,double B,double C,double D,double &x1,double &x2,double &x3,double x1old,double x2old,double x3old,double dx,double &vx1,double &vx2,double &vx3,double ii)
+void PathLineCoProcessorMcpart::collWall(double A,double B,double C,double D,double &x1,double &x2,double &x3,double x1old,double x2old,double x3old,double dx,double &vx1,double &vx2,double &vx3,double ii)
 {
    if (particleHasMass)
    {
@@ -1079,7 +1079,7 @@ void D3Q27PathLinePostprocessorMcpart::collWall(double A,double B,double C,doubl
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::addCorrection(double &vx1,double &vx2,double &vx3,double &tauxx,double &tauyy,double &tauzz,double &tauxy,double &tauxz,double &tauyz,
+void PathLineCoProcessorMcpart::addCorrection(double &vx1,double &vx2,double &vx3,double &tauxx,double &tauyy,double &tauzz,double &tauxy,double &tauxz,double &tauyz,
                                                      double dx,D3Q27ICell iCell,double Xw, double Yw, double Zw,double  omega,double cofWeightx,double cofWeighty,double cofWeightz,double ii,double x1LB,double x2LB,double x3LB,double di,double dj,double dk)
 {
    //LBMReal f[D3Q27System::ENDF+1];
@@ -1165,7 +1165,7 @@ void D3Q27PathLinePostprocessorMcpart::addCorrection(double &vx1,double &vx2,dou
    tauyz=tauyz/dx;
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::getAllDis(double dis[],double x,double y,double z,double ix1ph,double ix2ph,double ix3ph,double xp000,double yp000,double zp000,int level)
+void PathLineCoProcessorMcpart::getAllDis(double dis[],double x,double y,double z,double ix1ph,double ix2ph,double ix3ph,double xp000,double yp000,double zp000,int level)
 {
    finddisPointToCentercell(x,y,z,xp000, ix2ph,  ix3ph,dis[0],level);//disx  
    finddisPointToCentercell(x,y,z,ix1ph, yp000,  ix3ph,dis[1],level);//disy  
@@ -1176,7 +1176,7 @@ void D3Q27PathLinePostprocessorMcpart::getAllDis(double dis[],double x,double y,
    finddisPointToCentercell(x,y,z,xp000, yp000,  zp000,dis[6],level);//disxyz  	   
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::getAfterCompare(double dis[],double dx,double ix1ph,double ix2ph,double ix3ph,double &xp000,double &yp000,double &zp000,double &Xw,
+void PathLineCoProcessorMcpart::getAfterCompare(double dis[],double dx,double ix1ph,double ix2ph,double ix3ph,double &xp000,double &yp000,double &zp000,double &Xw,
                                                        double &Yw,double &Zw,double x1,double x2,double x3,double A,double B,double C,double D,double normalDis, double di,double dj,double dk, double &cofWeightx
                                                        ,double &cofWeighty,double &cofWeightz,D3Q27ICell &iCell,int level)
 {
@@ -1199,7 +1199,7 @@ void D3Q27PathLinePostprocessorMcpart::getAfterCompare(double dis[],double dx,do
 }
 
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::rearangedDouble( double dis[7])
+void PathLineCoProcessorMcpart::rearangedDouble( double dis[7])
 {
    double item;
    for (int i=6;i>0;i--){   
@@ -1214,7 +1214,7 @@ void D3Q27PathLinePostprocessorMcpart::rearangedDouble( double dis[7])
    } 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::getIcell(D3Q27ICell &iCell,double xp000, double yp000, double zp000,int level)
+void PathLineCoProcessorMcpart::getIcell(D3Q27ICell &iCell,double xp000, double yp000, double zp000,int level)
 { 
    UbTupleInt3 blockIndexes = grid->getBlockIndexes(xp000, yp000, zp000,level);
    Block3DPtr block= grid->getBlock(val<1>(blockIndexes), val<2>(blockIndexes), val<3>(blockIndexes), level);
@@ -1223,7 +1223,7 @@ void D3Q27PathLinePostprocessorMcpart::getIcell(D3Q27ICell &iCell,double xp000,
    iProcessor->readICell(distributions, iCell, (int)xp000, (int)yp000, (int)zp000);
 }
 ////////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::printParticle(ParticlesPtr particle)
+void PathLineCoProcessorMcpart::printParticle(ParticlesPtr particle)
 
 {
    /*BOOST_FOREACH(ParticlesPtr particle, particles)
@@ -1235,13 +1235,13 @@ void D3Q27PathLinePostprocessorMcpart::printParticle(ParticlesPtr particle)
 }
 
 ///////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::printParticle(int index)
+void PathLineCoProcessorMcpart::printParticle(int index)
 
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PathLinePostprocessorMcpart::gatherData(ParticlesPtr particle)
+void PathLineCoProcessorMcpart::gatherData(ParticlesPtr particle)
 {
    //int index=particle->ID;
    //std::vector<std::vector<double> > tempData;
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27PathLinePostprocessorMcpart.h b/source/VirtualFluidsCore/CoProcessors/PathLineCoProcessorMcpart.h
similarity index 92%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27PathLinePostprocessorMcpart.h
rename to source/VirtualFluidsCore/CoProcessors/PathLineCoProcessorMcpart.h
index 7d84fb437..0661640ee 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27PathLinePostprocessorMcpart.h
+++ b/source/VirtualFluidsCore/CoProcessors/PathLineCoProcessorMcpart.h
@@ -17,7 +17,7 @@
 # define diryz 5
 # define dirxyz 6
 #include <mpi.h>
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "Grid3D.h"
 #include "Block3D.h"
 #include "LBMUnitConverter.h"
@@ -30,20 +30,20 @@
 #include "Particles.h"
 #include "basics/writer/WbWriterVtkXmlASCII.h"
 
-class D3Q27PathLinePostprocessorMcpart;
-typedef boost::shared_ptr<D3Q27PathLinePostprocessorMcpart> D3Q27PathLinePostprocessorMcpartPtr;
+class PathLineCoProcessorMcpart;
+typedef boost::shared_ptr<PathLineCoProcessorMcpart> PathLineCoProcessorMcpartPtr;
 
-class D3Q27PathLinePostprocessorMcpart : public Postprocessor  
+class PathLineCoProcessorMcpart : public CoProcessor  
 {
 public:
    //typedef std::map<int,ParticlesPtr> ParticlesMap;
    std::map<int,int> neighbors;
    //std::map<ofstream,std::vector<int> > pathOfstream;
-   D3Q27PathLinePostprocessorMcpart(Grid3DPtr grid, const std::string& path, WbWriter* const writer,
+   PathLineCoProcessorMcpart(Grid3DPtr grid, const std::string& path, WbWriter* const writer,
       LBMUnitConverterPtr conv, UbSchedulerPtr s, CommunicatorPtr comm, 
       std::vector<UbTupleDouble3 > Positions, LBMReal nue, D3Q27InterpolationProcessorPtr iProcessor);
-   ~D3Q27PathLinePostprocessorMcpart();
-   void update(double step);
+   ~PathLineCoProcessorMcpart();
+   void process(double step);
    void getNeighborsRank();
 
 protected:
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27PressureDifferencePostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.cpp
similarity index 83%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27PressureDifferencePostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.cpp
index 9dee7e1c4..c6b35e990 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27PressureDifferencePostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.cpp
@@ -5,7 +5,7 @@
  *      Author: kucher
  */
 
-#include "D3Q27PressureDifferencePostprocessor.h"
+#include "PressureDifferenceCoProcessor.h"
 
 
 #include <iostream>
@@ -13,12 +13,12 @@
 
 using namespace std;
 
-D3Q27PressureDifferencePostprocessor::D3Q27PressureDifferencePostprocessor(Grid3DPtr grid, UbSchedulerPtr s, const std::string& path,
+PressureDifferenceCoProcessor::PressureDifferenceCoProcessor(Grid3DPtr grid, UbSchedulerPtr s, const std::string& path,
                                                                  D3Q27IntegrateValuesHelperPtr h1, D3Q27IntegrateValuesHelperPtr h2, 
                                                                  LBMReal rhoReal, LBMReal uReal, LBMReal uLB,
                                                                  CommunicatorPtr comm)
 
-                                                : Postprocessor(grid, s)
+                                                : CoProcessor(grid, s)
                                                 , path(path)
 																, h1(h1)
 																, h2(h2)
@@ -47,17 +47,17 @@ D3Q27PressureDifferencePostprocessor::D3Q27PressureDifferencePostprocessor(Grid3
    }
 }
 //////////////////////////////////////////////////////////////////////////
-D3Q27PressureDifferencePostprocessor::~D3Q27PressureDifferencePostprocessor() 
+PressureDifferenceCoProcessor::~PressureDifferenceCoProcessor() 
 {
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PressureDifferencePostprocessor::update(double step)
+void PressureDifferenceCoProcessor::process(double step)
 {
    if(scheduler->isDue(step) )
-      collectPostprocessData(step);
+      collectData(step);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27PressureDifferencePostprocessor::collectPostprocessData(double step)
+void PressureDifferenceCoProcessor::collectData(double step)
 {
    h1->calculateMQ();
    h2->calculateMQ();
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27PressureDifferencePostprocessor.h b/source/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.h
similarity index 74%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27PressureDifferencePostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.h
index 28b080bfb..6c53c845d 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27PressureDifferencePostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.h
@@ -8,24 +8,24 @@
 #ifndef D3Q27PRESSUREDIFFERENCEPOSTPROCESSOR_H
 #define D3Q27PRESSUREDIFFERENCEPOSTPROCESSOR_H
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "D3Q27IntegrateValuesHelper.h"
 #include "LBMUnitConverter.h"
 #include "Communicator.h"
 
-class D3Q27PressureDifferencePostprocessor: public Postprocessor {
+class PressureDifferenceCoProcessor: public CoProcessor {
 public:
-	D3Q27PressureDifferencePostprocessor(Grid3DPtr grid, UbSchedulerPtr s, const std::string& path, 
+	PressureDifferenceCoProcessor(Grid3DPtr grid, UbSchedulerPtr s, const std::string& path, 
                                    D3Q27IntegrateValuesHelperPtr h1, D3Q27IntegrateValuesHelperPtr h2, 
                                    LBMReal rhoReal, LBMReal uReal, LBMReal uLB,
                                    /*const LBMUnitConverterPtr conv,*/ CommunicatorPtr comm);
-	virtual ~D3Q27PressureDifferencePostprocessor();
-	void update(double step);
+	virtual ~PressureDifferenceCoProcessor();
+	void process(double step);
 protected:
 	D3Q27IntegrateValuesHelperPtr h1, h2;
    std::string path;
    LBMUnitConverterPtr conv;
-	void collectPostprocessData(double step);
+	void collectData(double step);
    CommunicatorPtr comm;
    LBMReal factor1; //= (1/3)*rhoReal*(uReal/uLB)^2 for calculation pReal = rhoLB * (1/3)*rhoReal*(uReal/uLB)^2, rhoReal and uReal in SI
    LBMReal factor2; //= rhoReal*(uReal/uLB)^2       for calculation pReal = press * rhoReal*(uReal/uLB)^2,       rhoReal and uReal in SI
diff --git a/source/VirtualFluidsCore/CoProcessors/QCriterionPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.cpp
similarity index 91%
rename from source/VirtualFluidsCore/CoProcessors/QCriterionPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.cpp
index d70ab731f..b6d461fbd 100644
--- a/source/VirtualFluidsCore/CoProcessors/QCriterionPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.cpp
@@ -1,4 +1,4 @@
-#include "QCriterionPostprocessor.h"
+#include "QCriterionCoProcessor.h"
 #include "LBMKernel3D.h"
 #include "LBMKernelETD3Q27.h"
 #include "D3Q27ETBCProcessor.h"
@@ -11,10 +11,10 @@
 using namespace std;
 using namespace D3Q27System;
 
-QCriterionPostprocessor::QCriterionPostprocessor(Grid3DPtr grid, const std::string& path, 
+QCriterionCoProcessor::QCriterionCoProcessor(Grid3DPtr grid, const std::string& path, 
 	WbWriter* const writer,
 	UbSchedulerPtr s, CommunicatorPtr comm)
-	: Postprocessor(grid, s),
+	: CoProcessor(grid, s),
 	path(path),
 	comm(comm),
 	writer(writer)
@@ -22,7 +22,7 @@ QCriterionPostprocessor::QCriterionPostprocessor(Grid3DPtr grid, const std::stri
 	init();
 }
 //////////////////////////////////////////////////////////////////////////
-void QCriterionPostprocessor::init()
+void QCriterionCoProcessor::init()
 {
 	gridRank  = comm->getProcessID(); 
 	minInitLevel = this->grid->getCoarsestInitializedLevel();
@@ -36,15 +36,15 @@ void QCriterionPostprocessor::init()
 	}
 }
 //////////////////////////////////////////////////////////////////////////
-void QCriterionPostprocessor::update(double step)
+void QCriterionCoProcessor::process(double step)
 {
 	if(scheduler->isDue(step) )
-		collectPostprocessData(step);
+		collectData(step);
 
 	UBLOG(logDEBUG3, "QCriterionPostprocessor::update:" << step);
 }
 //////////////////////////////////////////////////////////////////////////
-void QCriterionPostprocessor::collectPostprocessData(double step)
+void QCriterionCoProcessor::collectData(double step)
 {
 	int istep = static_cast<int>(step);
 
@@ -54,7 +54,7 @@ void QCriterionPostprocessor::collectPostprocessData(double step)
 		{
 			if (block)
 			{
-				addPostprocessData(block);
+				addData(block);
 
 			}
 		}
@@ -74,7 +74,7 @@ void QCriterionPostprocessor::collectPostprocessData(double step)
 
 		vector<string> filenames;
 		filenames.push_back(pname);
-		if (step == Postprocessor::scheduler->getMinBegin()) //first time in timeseries
+		if (step == CoProcessor::scheduler->getMinBegin()) //first time in timeseries
 		{
 			WbWriterVtkXmlASCII::getInstance()->writeCollection(path+"_collection",filenames,istep,false);
 		} 
@@ -90,7 +90,7 @@ void QCriterionPostprocessor::collectPostprocessData(double step)
 
 }
 //////////////////////////////////////////////////////////////////////////
-void QCriterionPostprocessor::clearData()
+void QCriterionCoProcessor::clearData()
 {
 	nodes.clear();
 	cells.clear();
@@ -98,7 +98,7 @@ void QCriterionPostprocessor::clearData()
 	data.clear();
 }
 //////////////////////////////////////////////////////////////////////////
-void QCriterionPostprocessor::addPostprocessData(const Block3DPtr block)
+void QCriterionCoProcessor::addData(const Block3DPtr block)
 {
 	UbTupleDouble3 org          = grid->getBlockWorldCoordinates(block);
 	UbTupleDouble3 blockLengths = grid->getBlockLengths(block);
@@ -216,7 +216,7 @@ void QCriterionPostprocessor::addPostprocessData(const Block3DPtr block)
 }
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-void QCriterionPostprocessor::getNeighborVelocities(int offx, int offy, int offz, int ix1, int ix2, int ix3, const Block3DPtr block, LBMReal* vE, LBMReal* vW)
+void QCriterionCoProcessor::getNeighborVelocities(int offx, int offy, int offz, int ix1, int ix2, int ix3, const Block3DPtr block, LBMReal* vE, LBMReal* vW)
 {
 	LBMKernelETD3Q27Ptr kernel = boost::dynamic_pointer_cast<LBMKernelETD3Q27>(block->getKernel());
 	BCArray3D<D3Q27BoundaryCondition>& bcArray = boost::dynamic_pointer_cast<D3Q27ETBCProcessor>(kernel->getBCProcessor())->getBCArray();          
@@ -368,7 +368,7 @@ void QCriterionPostprocessor::getNeighborVelocities(int offx, int offy, int offz
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-void QCriterionPostprocessor::computeVelocity(LBMReal* f, LBMReal* v)
+void QCriterionCoProcessor::computeVelocity(LBMReal* f, LBMReal* v)
 {
 	//////////////////////////////////////////////////////////////////////////
 	//compute x,y,z-velocity components from distribution
diff --git a/source/VirtualFluidsCore/CoProcessors/QCriterionPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.h
similarity index 81%
rename from source/VirtualFluidsCore/CoProcessors/QCriterionPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.h
index 8ba0d308f..1c0586035 100644
--- a/source/VirtualFluidsCore/CoProcessors/QCriterionPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.h
@@ -6,7 +6,7 @@
 #ifndef QCriterionPostprocessor_H
 #define QCriterionPostprocessor_H
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "Grid3D.h"
 #include "Block3D.h"
 
@@ -14,8 +14,8 @@
 #include "WbWriter.h"
 
 #include <boost/shared_ptr.hpp>
-class QCriterionPostprocessor;
-typedef boost::shared_ptr<QCriterionPostprocessor> QKritPostprocessorPtr;
+class QCriterionCoProcessor;
+typedef boost::shared_ptr<QCriterionCoProcessor> QCriterionCoProcessorPtr;
 
 //! \brief  Computes the value Q with which vortices can be visualized as isocontours to Q=0, writes to .vtk, For uniform, serial setups only!
 //! \details writes at given time intervals specified in scheduler (s)  
@@ -23,18 +23,18 @@ typedef boost::shared_ptr<QCriterionPostprocessor> QKritPostprocessorPtr;
 //!			 Q-Criterion: Visualize Vorteces as regions where Vorticity is larger than strain rate (Hunt, 1988)
 //! \author  Sonja Uphoff 
 
-class QCriterionPostprocessor : public Postprocessor
+class QCriterionCoProcessor : public CoProcessor
 {
 public:
-	QCriterionPostprocessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer, 
+	QCriterionCoProcessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer, 
 		UbSchedulerPtr s, CommunicatorPtr comm);
 	//! Make update if timestep is write-timestep specified in UbSchedulerPtr s
-	void update(double step); 
+	void process(double step); 
 protected:
 	//! Prepare data and write in .vtk file
-	void collectPostprocessData(double step);
+	void collectData(double step);
 	//! Q is computed for all points in a block. Data for writing is added to data and cell vectors. 
-	void addPostprocessData(const Block3DPtr block);
+	void addData(const Block3DPtr block);
 	//! After writing to .vtk-file, all vectors are reset 
 	void clearData();
 	//! Computes macroscopic velocities 
diff --git a/source/VirtualFluidsCore/CoProcessors/RestartPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/RestartCoProcessor.cpp
similarity index 80%
rename from source/VirtualFluidsCore/CoProcessors/RestartPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/RestartCoProcessor.cpp
index 128195087..44898e10a 100644
--- a/source/VirtualFluidsCore/CoProcessors/RestartPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/RestartCoProcessor.cpp
@@ -1,4 +1,4 @@
-#include "RestartPostprocessor.h"
+#include "RestartCoProcessor.h"
 #include <boost/archive/binary_oarchive.hpp>
 #include <boost/archive/binary_iarchive.hpp>
 
@@ -12,8 +12,8 @@
 
 #include <MemoryUtil.h>
 
-RestartPostprocessor::RestartPostprocessor(Grid3DPtr& grid, UbSchedulerPtr s, CommunicatorPtr comm, const std::string& path, ArchiveType type) :
-   Postprocessor(grid, s),
+RestartCoProcessor::RestartCoProcessor(Grid3DPtr& grid, UbSchedulerPtr s, CommunicatorPtr comm, const std::string& path, ArchiveType type) :
+   CoProcessor(grid, s),
    grid(grid),
    path(path),
    archiveType(type),
@@ -30,8 +30,8 @@ RestartPostprocessor::RestartPostprocessor(Grid3DPtr& grid, UbSchedulerPtr s, Co
    grid = restart();
 }
 //////////////////////////////////////////////////////////////////////////
-RestartPostprocessor::RestartPostprocessor(Grid3DPtr& grid, UbSchedulerPtr s, CommunicatorPtr comm, const std::string& path, int restartStep, ArchiveType type) :
-Postprocessor(grid, s),
+RestartCoProcessor::RestartCoProcessor(Grid3DPtr& grid, UbSchedulerPtr s, CommunicatorPtr comm, const std::string& path, int restartStep, ArchiveType type) :
+CoProcessor(grid, s),
 grid(grid),
 path(path),
 archiveType(type),
@@ -48,12 +48,12 @@ restartStep(restartStep)
    grid = restart();
 }
 //////////////////////////////////////////////////////////////////////////
-RestartPostprocessor::~RestartPostprocessor()
+RestartCoProcessor::~RestartCoProcessor()
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::update(double step)
+void RestartCoProcessor::process(double step)
 {
    if(scheduler->isDue(step) && step != restartStep)
    {
@@ -65,22 +65,22 @@ void RestartPostprocessor::update(double step)
    }   
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::addPostprocessor( PostprocessorPtr p )
+void RestartCoProcessor::addCoProcessor( PostprocessorPtr p )
 {
    postprocessors.push_back(p);
 }
 //////////////////////////////////////////////////////////////////////////
-PostprocessorPtr RestartPostprocessor::getPostprocessor(int index)
+PostprocessorPtr RestartCoProcessor::getCoProcessor(int index)
 {
    return postprocessors[index];
 }
 //////////////////////////////////////////////////////////////////////////
-std::vector<PostprocessorPtr> RestartPostprocessor::getPostprocessors()
+std::vector<PostprocessorPtr> RestartCoProcessor::getPostprocessors()
 {
    return postprocessors;
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::doCheckPoint(int step)
+void RestartCoProcessor::doCheckPoint(int step)
 {
    UBLOG(logDEBUG3,"Save check point - start");
 
@@ -106,7 +106,7 @@ void RestartPostprocessor::doCheckPoint(int step)
    UBLOG(logDEBUG3,"Save check point - end");
 }
 //////////////////////////////////////////////////////////////////////////
-Grid3DPtr RestartPostprocessor::restart()
+Grid3DPtr RestartCoProcessor::restart()
 {
    restartStep = readMetafile();
 
@@ -141,7 +141,7 @@ Grid3DPtr RestartPostprocessor::restart()
 
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::acceptGridVisitors()
+void RestartCoProcessor::acceptGridVisitors()
 {
    BOOST_FOREACH(Grid3DVisitorPtr v, gridVisitors)
    {
@@ -149,7 +149,7 @@ void RestartPostprocessor::acceptGridVisitors()
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::acceptBlockVisitors()
+void RestartCoProcessor::acceptBlockVisitors()
 {
    BOOST_FOREACH(Block3DVisitorPtr v, blockVisitors)
    {
@@ -157,17 +157,17 @@ void RestartPostprocessor::acceptBlockVisitors()
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::addGridVisitor( Grid3DVisitorPtr v )
+void RestartCoProcessor::addGridVisitor( Grid3DVisitorPtr v )
 {
    gridVisitors.push_back(v);
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::addBlockVisitor( Block3DVisitorPtr v )
+void RestartCoProcessor::addBlockVisitor( Block3DVisitorPtr v )
 {
    blockVisitors.push_back(v);
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::saveTxtArchive(std::string filename)
+void RestartCoProcessor::saveTxtArchive(std::string filename)
 {
    std::ofstream file(filename.c_str()); 
    if(!file)
@@ -191,7 +191,7 @@ void RestartPostprocessor::saveTxtArchive(std::string filename)
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::loadTxtArchive( std::string filename )
+void RestartCoProcessor::loadTxtArchive( std::string filename )
 {
    std::ifstream file(filename.c_str()); 
    if (!file.is_open()) UB_THROW( UbException(UB_EXARGS,"Can not open check point file \"" + filename + "\""));
@@ -212,7 +212,7 @@ void RestartPostprocessor::loadTxtArchive( std::string filename )
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::saveBinArchive( std::string filename )
+void RestartCoProcessor::saveBinArchive( std::string filename )
 {
    //impotent for binary archive add std::ios::binary
    std::ofstream file(filename.c_str(), std::ios::binary); 
@@ -237,7 +237,7 @@ void RestartPostprocessor::saveBinArchive( std::string filename )
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::loadBinArchive( std::string filename )
+void RestartCoProcessor::loadBinArchive( std::string filename )
 {
    //impotent for binary archive add std::ios::binary
    std::ifstream file(filename.c_str(), std::ios::binary); 
@@ -259,19 +259,19 @@ void RestartPostprocessor::loadBinArchive( std::string filename )
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::writeMetafile(int step )
+void RestartCoProcessor::writeMetafile(int step )
 {
    UbFileOutputASCII out(metafile);
    out.writeInteger(step);
 }
 //////////////////////////////////////////////////////////////////////////
-int RestartPostprocessor::readMetafile()
+int RestartCoProcessor::readMetafile()
 {
    UbFileInputASCII in(metafile);
    return in.readInteger();
 }
 //////////////////////////////////////////////////////////////////////////
-void RestartPostprocessor::checkMetafile()
+void RestartCoProcessor::checkMetafile()
 {
    std::ifstream file(metafile.c_str()); 
    if (!file.is_open()) 
diff --git a/source/VirtualFluidsCore/CoProcessors/RestartPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/RestartCoProcessor.h
similarity index 60%
rename from source/VirtualFluidsCore/CoProcessors/RestartPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/RestartCoProcessor.h
index 5db82f094..e544c950c 100644
--- a/source/VirtualFluidsCore/CoProcessors/RestartPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/RestartCoProcessor.h
@@ -1,26 +1,26 @@
 #ifndef Restarter_H
 #define Restarter_H
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "Grid3DVisitor.h"
 #include "Block3DVisitor.h"
 #include "Communicator.h"
 
 #include <boost/shared_ptr.hpp>
-class RestartPostprocessor;
-typedef boost::shared_ptr<RestartPostprocessor> RestartPostprocessorPtr;
+class RestartCoProcessor;
+typedef boost::shared_ptr<RestartCoProcessor> RestartCoProcessorPtr;
 
-class RestartPostprocessor : public Postprocessor
+class RestartCoProcessor : public CoProcessor
 {
 public:
    enum ArchiveType {TXT, BINARY};
 public:
-   RestartPostprocessor(Grid3DPtr& grid, UbSchedulerPtr s, CommunicatorPtr comm, const std::string& path, ArchiveType typetype = BINARY);
-   RestartPostprocessor(Grid3DPtr& grid, UbSchedulerPtr s, CommunicatorPtr comm, const std::string& path, int restartStep, ArchiveType typetype = BINARY);
-   ~RestartPostprocessor();
-   void update(double step);
-   void addPostprocessor(PostprocessorPtr p);
-   PostprocessorPtr getPostprocessor(int index);
+   RestartCoProcessor(Grid3DPtr& grid, UbSchedulerPtr s, CommunicatorPtr comm, const std::string& path, ArchiveType typetype = BINARY);
+   RestartCoProcessor(Grid3DPtr& grid, UbSchedulerPtr s, CommunicatorPtr comm, const std::string& path, int restartStep, ArchiveType typetype = BINARY);
+   ~RestartCoProcessor();
+   void process(double step);
+   void addCoProcessor(PostprocessorPtr p);
+   PostprocessorPtr getCoProcessor(int index);
    std::vector<PostprocessorPtr> getPostprocessors();
    void addGridVisitor(Grid3DVisitorPtr v);
    void addBlockVisitor(Block3DVisitorPtr v);
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27ShearStressPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp
similarity index 94%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27ShearStressPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp
index b57dab497..6daae7557 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27ShearStressPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp
@@ -1,12 +1,12 @@
-#include "D3Q27ShearStressPostprocessor.h"
+#include "ShearStressCoProcessor.h"
 #include "D3Q27ETBCProcessor.h"
 #include "WbWriterVtkXmlASCII.h"
 
 
-D3Q27ShearStressPostprocessor::D3Q27ShearStressPostprocessor(Grid3DPtr grid, const std::string& path, 
+ShearStressCoProcessor::ShearStressCoProcessor(Grid3DPtr grid, const std::string& path, 
                                                              WbWriter* const writer,
                                                              UbSchedulerPtr s,UbSchedulerPtr rs)
-                                                             : Postprocessor(grid, s),
+                                                             : CoProcessor(grid, s),
                                                              Resetscheduler(rs),
                                                              path(path),
                                                              writer(writer)
@@ -32,12 +32,12 @@ D3Q27ShearStressPostprocessor::D3Q27ShearStressPostprocessor(Grid3DPtr grid, con
    }
 }
 //////////////////////////////////////////////////////////////////////////
-D3Q27ShearStressPostprocessor::~D3Q27ShearStressPostprocessor()
+ShearStressCoProcessor::~ShearStressCoProcessor()
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ShearStressPostprocessor::update( double step )
+void ShearStressCoProcessor::process( double step )
 {
    if (step==0)
    {
@@ -45,16 +45,16 @@ void D3Q27ShearStressPostprocessor::update( double step )
    }
    calculateShearStress(step);
    if(scheduler->isDue(step) )
-      collectPostprocessData(step);
+      collectData(step);
    UBLOG(logDEBUG3, "D3Q27ShearStressPostprocessor::update:" << step);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ShearStressPostprocessor::collectPostprocessData(double step)
+void ShearStressCoProcessor::collectData(double step)
 {
    using namespace std;
 
    int istep = int(step);
-   addPostprocessData();
+   addData();
 
    //string partName = writer->writeNodesWithNodeData(path+ UbSystem::toString(gridRank)+ "_" + UbSystem::toString(istep),nodes,datanames,data);
    //size_t found=partName.find_last_of("//");
@@ -103,7 +103,7 @@ void D3Q27ShearStressPostprocessor::collectPostprocessData(double step)
 
       vector<string> filenames;
       filenames.push_back(piece);
-      if (step == Postprocessor::scheduler->getMinBegin())
+      if (step == CoProcessor::scheduler->getMinBegin())
       {
          WbWriterVtkXmlASCII::getInstance()->writeCollection(cfilePath,filenames,istep,false);
       } 
@@ -117,14 +117,14 @@ void D3Q27ShearStressPostprocessor::collectPostprocessData(double step)
    clearData();
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ShearStressPostprocessor::clearData()
+void ShearStressCoProcessor::clearData()
 {
    nodes.clear();
    datanames.clear();
    data.clear();
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ShearStressPostprocessor::calculateShearStress(double timeStep)
+void ShearStressCoProcessor::calculateShearStress(double timeStep)
 {
    using namespace D3Q27System;
 
@@ -233,7 +233,7 @@ void D3Q27ShearStressPostprocessor::calculateShearStress(double timeStep)
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ShearStressPostprocessor::addPostprocessData()
+void ShearStressCoProcessor::addData()
 {
    //Diese Daten werden geschrieben:
    datanames.resize(0);
@@ -341,15 +341,15 @@ void D3Q27ShearStressPostprocessor::addPostprocessData()
 
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ShearStressPostprocessor::reset(double step)
+void ShearStressCoProcessor::reset(double step)
 {
    if(Resetscheduler->isDue(step) )
-      resetPostprocessData(step);
+      resetData(step);
 
    UBLOG(logDEBUG3, "resetPostprocessor::update:" << step);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ShearStressPostprocessor::resetPostprocessData(double step)
+void ShearStressCoProcessor::resetData(double step)
 {
    for(int level = minInitLevel; level<=maxInitLevel;level++)
    {
@@ -406,12 +406,12 @@ void D3Q27ShearStressPostprocessor::resetPostprocessData(double step)
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ShearStressPostprocessor::addInteractor( D3Q27InteractorPtr interactor )
+void ShearStressCoProcessor::addInteractor( D3Q27InteractorPtr interactor )
 {
    interactors.push_back(interactor);
 }
 //////////////////////////////////////////////////////////////////////////
-void D3Q27ShearStressPostprocessor::findPlane(int ix1,int ix2,int ix3,Grid3DPtr grid,Block3DPtr block,double &A,double &B,double &C,double &D,double &ii)
+void ShearStressCoProcessor::findPlane(int ix1,int ix2,int ix3,Grid3DPtr grid,Block3DPtr block,double &A,double &B,double &C,double &D,double &ii)
 {
    double x1plane=0.0,y1plane=0.0,z1plane=0.0;
    double x2plane=0.0,y2plane=0.0,z2plane=0.0;
@@ -590,7 +590,7 @@ void D3Q27ShearStressPostprocessor::findPlane(int ix1,int ix2,int ix3,Grid3DPtr
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////
-bool D3Q27ShearStressPostprocessor::checkUndefindedNodes( BCArray3D<D3Q27BoundaryCondition>& bcArray,int ix1,int ix2,int ix3)
+bool ShearStressCoProcessor::checkUndefindedNodes( BCArray3D<D3Q27BoundaryCondition>& bcArray,int ix1,int ix2,int ix3)
 {
    for(int i = ix1; i <= ix1 + 1; i++){
       for(int j = ix2; j <= ix2 + 1; j++){
@@ -603,7 +603,7 @@ bool D3Q27ShearStressPostprocessor::checkUndefindedNodes( BCArray3D<D3Q27Boundar
    return false;
 }
 //////////////////////////////////////////////////////////////////////////////////////
-void D3Q27ShearStressPostprocessor::initDistance()
+void ShearStressCoProcessor::initDistance()
 {
    BOOST_FOREACH(D3Q27InteractorPtr interactor, interactors)
    {
diff --git a/source/VirtualFluidsCore/CoProcessors/D3Q27ShearStressPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.h
similarity index 76%
rename from source/VirtualFluidsCore/CoProcessors/D3Q27ShearStressPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.h
index 78c82cbe1..0666bbafd 100644
--- a/source/VirtualFluidsCore/CoProcessors/D3Q27ShearStressPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.h
@@ -1,41 +1,41 @@
 #ifndef D3Q27ShearStressPostprocessor_H
 #define D3Q27ShearStressPostprocessor_H
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "Communicator.h"
 #include "D3Q27Interactor.h"
 #include "D3Q27InterpolationProcessor.h"
 #include "WbWriter.h"
 
 #include <boost/shared_ptr.hpp>
-class D3Q27ShearStressPostprocessor;
-typedef boost::shared_ptr<D3Q27ShearStressPostprocessor> D3Q27ShearStressPostprocessorPtr;
+class ShearStressCoProcessor;
+typedef boost::shared_ptr<ShearStressCoProcessor> ShearStressCoProcessorPtr;
 
 //! \brief  Computes the shear stress and y plus values and writes to parallel .vtk
 //! \details writes at given time intervals specified in scheduler (s) and resets according to scheduler (rs).  
 //!          Take root to obtain  during post processing (paraview).   
 //! \author  K. Kucher, S. Uphoff, M. Geier, E. Goraki Fard  
 
-class D3Q27ShearStressPostprocessor: public Postprocessor 
+class ShearStressCoProcessor: public CoProcessor 
 {
 public:
    //! Defoult constructor
-   D3Q27ShearStressPostprocessor(){}
+   ShearStressCoProcessor(){}
    //! Constructor
-   D3Q27ShearStressPostprocessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer, 
+   ShearStressCoProcessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer, 
       UbSchedulerPtr s, UbSchedulerPtr rs);
-   virtual ~D3Q27ShearStressPostprocessor();             
-   void update(double step); 
+   virtual ~ShearStressCoProcessor();             
+   void process(double step); 
    void addInteractor(D3Q27InteractorPtr interactor);
 protected:
    //! Computes average and shear stress values of macroscopic quantities 
    void calculateShearStress(double timeStep);
    //! Prepare data and write in .vtk file
-   void collectPostprocessData(double step);
+   void collectData(double step);
    //! Reset data
-   void resetPostprocessData(double step);
+   void resetData(double step);
    //! prepare data
-   void addPostprocessData();
+   void addData();
    void clearData();
    void reset(double step);
    void findPlane(int ix1,int ix2,int ix3,Grid3DPtr grid,Block3DPtr block,double &A,double &B,double &C,double &D,double &ii);
@@ -60,7 +60,7 @@ private:
    template<class Archive>
    void serialize(Archive & ar, const unsigned int version)
    {
-      ar & boost::serialization::base_object<Postprocessor>(*this);
+      ar & boost::serialization::base_object<CoProcessor>(*this);
       ar & path;
       ar & normals;
       ar & interactors;
diff --git a/source/VirtualFluidsCore/CoProcessors/TimeAveragedValuesPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.cpp
similarity index 94%
rename from source/VirtualFluidsCore/CoProcessors/TimeAveragedValuesPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.cpp
index 27ca8252d..750b56fae 100644
--- a/source/VirtualFluidsCore/CoProcessors/TimeAveragedValuesPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.cpp
@@ -1,4 +1,4 @@
-#include "TimeAveragedValuesPostprocessor.h"
+#include "TimeAveragedValuesCoProcessor.h"
 #include "LBMKernel3D.h"
 #include "SimulationParameters.h"
 #include "D3Q27ETBCProcessor.h"
@@ -12,14 +12,14 @@
 
 using namespace std;
 
-TimeAveragedValuesPostprocessor::TimeAveragedValuesPostprocessor()
+TimeAveragedValuesCoProcessor::TimeAveragedValuesCoProcessor()
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-TimeAveragedValuesPostprocessor::TimeAveragedValuesPostprocessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer,
+TimeAveragedValuesCoProcessor::TimeAveragedValuesCoProcessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer,
    UbSchedulerPtr s, int options)
-   : Postprocessor(grid, s),
+   : CoProcessor(grid, s),
    path(path),
    writer(writer),
    options(options)
@@ -69,7 +69,7 @@ TimeAveragedValuesPostprocessor::TimeAveragedValuesPostprocessor(Grid3DPtr grid,
 
 }
 //////////////////////////////////////////////////////////////////////////
-void TimeAveragedValuesPostprocessor::update(double step)
+void TimeAveragedValuesCoProcessor::process(double step)
 {
    if (scheduler->isDue(step))
    {
@@ -79,14 +79,14 @@ void TimeAveragedValuesPostprocessor::update(double step)
    if (step == scheduler->getMaxEnd())
    {
       calculateAverageValues(scheduler->getMaxEnd() - scheduler->getMinBegin());
-      collectPostprocessData(step);
+      collectData(step);
       clearData();
    }
 
    UBLOG(logDEBUG3, "AverageValues2Postprocessor::update:" << step);
 }
 //////////////////////////////////////////////////////////////////////////
-void TimeAveragedValuesPostprocessor::collectPostprocessData(double step)
+void TimeAveragedValuesCoProcessor::collectData(double step)
 {
    int istep = int(step);
 
@@ -96,7 +96,7 @@ void TimeAveragedValuesPostprocessor::collectPostprocessData(double step)
       {
          if (block)
          {
-            addPostprocessData(block);
+            addData(block);
          }
       }
    }
@@ -123,7 +123,7 @@ void TimeAveragedValuesPostprocessor::collectPostprocessData(double step)
    clearData();
 }
 //////////////////////////////////////////////////////////////////////////
-void TimeAveragedValuesPostprocessor::clearData()
+void TimeAveragedValuesCoProcessor::clearData()
 {
    nodes.clear();
    cells.clear();
@@ -131,7 +131,7 @@ void TimeAveragedValuesPostprocessor::clearData()
    data.clear();
 }
 //////////////////////////////////////////////////////////////////////////
-void TimeAveragedValuesPostprocessor::addPostprocessData(const Block3DPtr block)
+void TimeAveragedValuesCoProcessor::addData(const Block3DPtr block)
 {
    UbTupleDouble3 org          = grid->getBlockWorldCoordinates(block);
    UbTupleDouble3 blockLengths = grid->getBlockLengths(block);
@@ -289,7 +289,7 @@ void TimeAveragedValuesPostprocessor::addPostprocessData(const Block3DPtr block)
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void TimeAveragedValuesPostprocessor::calculateAverageValues(double timeSteps)
+void TimeAveragedValuesCoProcessor::calculateAverageValues(double timeSteps)
 {
    for (int level = minInitLevel; level<=maxInitLevel; level++)
    {
@@ -390,7 +390,7 @@ void TimeAveragedValuesPostprocessor::calculateAverageValues(double timeSteps)
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void TimeAveragedValuesPostprocessor::calculateSubtotal()
+void TimeAveragedValuesCoProcessor::calculateSubtotal()
 {
 
    using namespace D3Q27System;
diff --git a/source/VirtualFluidsCore/CoProcessors/TimeAveragedValuesPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.h
similarity index 85%
rename from source/VirtualFluidsCore/CoProcessors/TimeAveragedValuesPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.h
index 221a96b49..a5e237589 100644
--- a/source/VirtualFluidsCore/CoProcessors/TimeAveragedValuesPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.h
@@ -1,7 +1,7 @@
 #ifndef TimeAveragedValuesPostprocessor_H
 #define TimeAveragedValuesPostprocessor_H
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "Grid3D.h"
 #include "Block3D.h"
 #include "LBMUnitConverter.h"
@@ -10,8 +10,8 @@
 #include "WbWriter.h"
 
 #include <boost/shared_ptr.hpp>
-class TimeAveragedValuesPostprocessor;
-typedef boost::shared_ptr<TimeAveragedValuesPostprocessor> AverageValues2PostprocessorPtr;
+class TimeAveragedValuesCoProcessor;
+typedef boost::shared_ptr<TimeAveragedValuesCoProcessor> TimeAveragedValuesCoProcessorPtr;
 
 //! \brief  Computes the time averaged mean velocity and RMS values and writes to parallel .vtk
 //! \details writes at given time intervals specified in scheduler (s), does averaging according to scheduler (Avs) and resets according to scheduler (rs).  <br>
@@ -19,7 +19,7 @@ typedef boost::shared_ptr<TimeAveragedValuesPostprocessor> AverageValues2Postpro
 //           
 //! \author  Sonja Uphoff, Kostyantyn Kucher 
 // \f$ u_{mean}=\frac{1}{N}\sum\limits_{i=1}^n u_{i} \f$
-class TimeAveragedValuesPostprocessor : public Postprocessor
+class TimeAveragedValuesCoProcessor : public CoProcessor
 {
 public:
    enum Options
@@ -29,18 +29,18 @@ public:
       Triplecorrelations = 4
    };
 public:
-   TimeAveragedValuesPostprocessor();
-   TimeAveragedValuesPostprocessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer,
+   TimeAveragedValuesCoProcessor();
+   TimeAveragedValuesCoProcessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer,
       UbSchedulerPtr s, int options);
    //! Make update
-   void update(double step);
+   void process(double step);
    //! Resets averaged velocity and RMS-values according to ResetSceduler
    void reset(double step);
 protected:
    //! Prepare data and write in .vtk file
-   void collectPostprocessData(double step);
+   void collectData(double step);
    //! prepare data
-   void addPostprocessData(const Block3DPtr block);
+   void addData(const Block3DPtr block);
    void clearData();
    //! Computes average values of velocity , fluctuations and triple correlations 
    void calculateAverageValues(double timeStep);
diff --git a/source/VirtualFluidsCore/CoProcessors/TimeDependentBCPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.cpp
similarity index 58%
rename from source/VirtualFluidsCore/CoProcessors/TimeDependentBCPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.cpp
index 304d5799c..925b62e97 100644
--- a/source/VirtualFluidsCore/CoProcessors/TimeDependentBCPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.cpp
@@ -1,26 +1,26 @@
-#include "TimeDependentBCPostprocessor.h"
+#include "TimeDependentBCCoProcessor.h"
 #include <boost/foreach.hpp>
 
 using namespace std;
 
-TimeDependentBCPostprocessor::TimeDependentBCPostprocessor(Grid3DPtr grid) : Postprocessor(grid,  UbSchedulerPtr(new UbScheduler(1)))
+TimeDependentBCCoProcessor::TimeDependentBCCoProcessor(Grid3DPtr grid) : CoProcessor(grid,  UbSchedulerPtr(new UbScheduler(1)))
 {
 
 }
 //////////////////////////////////////////////////////////////////////////
-TimeDependentBCPostprocessor::~TimeDependentBCPostprocessor() 
+TimeDependentBCCoProcessor::~TimeDependentBCCoProcessor() 
 {
 	
 }
 //////////////////////////////////////////////////////////////////////////
-void TimeDependentBCPostprocessor::update(double step)
+void TimeDependentBCCoProcessor::process(double step)
 {
    BOOST_FOREACH(Interactor3DPtr inter, interactors)
       inter->updateInteractor( step );
    UBLOG(logDEBUG3, "TimeDependentBCPostprocessor::update:" << step);
 }
 //////////////////////////////////////////////////////////////////////////
-void TimeDependentBCPostprocessor::addInteractor( Interactor3DPtr interactor )
+void TimeDependentBCCoProcessor::addInteractor( Interactor3DPtr interactor )
 {
    interactors.push_back(interactor);
 }
diff --git a/source/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.h b/source/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.h
new file mode 100644
index 000000000..01bd83a4f
--- /dev/null
+++ b/source/VirtualFluidsCore/CoProcessors/TimeDependentBCCoProcessor.h
@@ -0,0 +1,27 @@
+#ifndef TimeDependentBCPOSTPROCESSOR_H
+#define TimeDependentBCPOSTPROCESSOR_H
+
+#include "CoProcessor.h"
+#include "Interactor3D.h"
+
+#include <boost/shared_ptr.hpp>
+class TimeDependentBCCoProcessor;
+typedef boost::shared_ptr<TimeDependentBCCoProcessor> TimeDependentBCCoProcessorPtr;
+
+//! \brief The class update interactors depend of time step. 
+//! \details TimeDependentBCCoProcessor update every time step information in BCAdapters throw Interactors
+//! \author Sonja Uphoff, Kostyantyn Kucher
+class TimeDependentBCCoProcessor: public CoProcessor {
+public:
+	TimeDependentBCCoProcessor(Grid3DPtr grid);
+	virtual ~TimeDependentBCCoProcessor();
+	void process(double step);
+   //! add interactors to Postprocessor
+   void addInteractor(Interactor3DPtr interactor);
+protected:
+private:
+   std::vector<Interactor3DPtr> interactors;
+};
+
+
+#endif /* TimeDependentBCPOSTPROCESSOR_H */
diff --git a/source/VirtualFluidsCore/CoProcessors/TimeDependentBCPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/TimeDependentBCPostprocessor.h
deleted file mode 100644
index e277c7642..000000000
--- a/source/VirtualFluidsCore/CoProcessors/TimeDependentBCPostprocessor.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef TimeDependentBCPOSTPROCESSOR_H
-#define TimeDependentBCPOSTPROCESSOR_H
-
-#include "Postprocessor.h"
-#include "Interactor3D.h"
-
-#include <boost/shared_ptr.hpp>
-class TimeDependentBCPostprocessor;
-typedef boost::shared_ptr<TimeDependentBCPostprocessor> TimeDependentBCPostprocessorPtr;
-
-//! \brief The class update interactors depend of time step. 
-//! \details TimeDependentBCPostprocessor update every time step information in BCAdapters throw Interactors
-//! \author Sonja Uphoff, Kostyantyn Kucher
-class TimeDependentBCPostprocessor: public Postprocessor {
-public:
-	TimeDependentBCPostprocessor(Grid3DPtr grid);
-	virtual ~TimeDependentBCPostprocessor();
-	void update(double step);
-   //! add interactors to Postprocessor
-   void addInteractor(Interactor3DPtr interactor);
-protected:
-private:
-   std::vector<Interactor3DPtr> interactors;
-};
-
-
-#endif /* TimeDependentBCPOSTPROCESSOR_H */
diff --git a/source/VirtualFluidsCore/CoProcessors/TimeseriesPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/TimeseriesCoProcessor.cpp
similarity index 82%
rename from source/VirtualFluidsCore/CoProcessors/TimeseriesPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/TimeseriesCoProcessor.cpp
index 5e91285a3..3e20bd108 100644
--- a/source/VirtualFluidsCore/CoProcessors/TimeseriesPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/TimeseriesCoProcessor.cpp
@@ -5,7 +5,7 @@
 *  Author: uphoff
 */
 
-#include "TimeseriesPostprocessor.h"
+#include "TimeseriesCoProcessor.h"
 
 
 #include <iostream>
@@ -13,10 +13,10 @@
 
 using namespace std;
 
-TimeseriesPostprocessor::TimeseriesPostprocessor(Grid3DPtr grid, UbSchedulerPtr s,
+TimeseriesCoProcessor::TimeseriesCoProcessor(Grid3DPtr grid, UbSchedulerPtr s,
                                                              D3Q27IntegrateValuesHelperPtr h1,
                                                              const std::string& path, CommunicatorPtr comm)
-                                                             : Postprocessor(grid, s),                                                
+                                                             : CoProcessor(grid, s),                                                
                                                                h1(h1),
                                                                path(path),
                                                                comm(comm)
@@ -41,17 +41,17 @@ TimeseriesPostprocessor::TimeseriesPostprocessor(Grid3DPtr grid, UbSchedulerPtr
    }
 }
 //////////////////////////////////////////////////////////////////////////
-TimeseriesPostprocessor::~TimeseriesPostprocessor() 
+TimeseriesCoProcessor::~TimeseriesCoProcessor() 
 {
 }
 //////////////////////////////////////////////////////////////////////////
-void TimeseriesPostprocessor::update(double step)
+void TimeseriesCoProcessor::process(double step)
 {
    if(scheduler->isDue(step) )
-      collectPostprocessData(step);
+      collectData(step);
 }
 //////////////////////////////////////////////////////////////////////////
-void TimeseriesPostprocessor::collectPostprocessData(double step)
+void TimeseriesCoProcessor::collectData(double step)
 {
    h1->calculateMQ();
 
diff --git a/source/VirtualFluidsCore/CoProcessors/TimeseriesPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/TimeseriesCoProcessor.h
similarity index 67%
rename from source/VirtualFluidsCore/CoProcessors/TimeseriesPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/TimeseriesCoProcessor.h
index 9735ab7de..d7ae683e7 100644
--- a/source/VirtualFluidsCore/CoProcessors/TimeseriesPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/TimeseriesCoProcessor.h
@@ -8,33 +8,33 @@
 #ifndef TimeseriesPOSTPROCESSOR_H
 #define TimeseriesPOSTPROCESSOR_H
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "D3Q27IntegrateValuesHelper.h"
 #include "LBMUnitConverter.h"
 #include "Communicator.h"
 
 #include <boost/shared_ptr.hpp>
 
-class TimeseriesPostprocessor;
-typedef boost::shared_ptr<TimeseriesPostprocessor> TimeseriesWriterPostprocessorPtr;
+class TimeseriesCoProcessor;
+typedef boost::shared_ptr<TimeseriesCoProcessor> TimeseriesCoProcessorPtr;
 
 //! \brief     Writes timeseries of density and velocity to a file.
 //! \details   Uses Integrate values helper, scheduler must be set in testcase.
 //! \author    Sonja Uphoff
 //! \date      May 2013
 
-class TimeseriesPostprocessor: public Postprocessor {
+class TimeseriesCoProcessor: public CoProcessor {
 public:
-	TimeseriesPostprocessor(Grid3DPtr grid, UbSchedulerPtr s,
+	TimeseriesCoProcessor(Grid3DPtr grid, UbSchedulerPtr s,
                                    D3Q27IntegrateValuesHelperPtr h1,
                                    const std::string& path, CommunicatorPtr comm);
-	virtual ~TimeseriesPostprocessor();
-	//! calls collect PostprocessData.
-   void update(double step); 
+	virtual ~TimeseriesCoProcessor();
+	//! calls collectData.
+   void process(double step); 
 protected:
    //! object that can compute spacial average values in 3D-subdomain.
 	D3Q27IntegrateValuesHelperPtr h1;  
-	void collectPostprocessData(double step);  
+	void collectData(double step);  
    CommunicatorPtr comm;
 private:
 	std::string path; //! output filename, e.g.  pathname + "/steps/timeseries"
diff --git a/source/VirtualFluidsCore/CoProcessors/TurbulenceIntensityPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp
similarity index 91%
rename from source/VirtualFluidsCore/CoProcessors/TurbulenceIntensityPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp
index f7dca2cd7..888cc3dfb 100644
--- a/source/VirtualFluidsCore/CoProcessors/TurbulenceIntensityPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp
@@ -1,4 +1,4 @@
-#include "TurbulenceIntensityPostprocessor.h"
+#include "TurbulenceIntensityCoProcessor.h"
 #include "LBMKernel3D.h"
 #include "SimulationParameters.h"
 #include "D3Q27ETBCProcessor.h"
@@ -10,10 +10,10 @@
 
 using namespace std;
 
-TurbulenceIntensityPostprocessor::TurbulenceIntensityPostprocessor(Grid3DPtr grid, const std::string& path, 
+TurbulenceIntensityCoProcessor::TurbulenceIntensityCoProcessor(Grid3DPtr grid, const std::string& path, 
                                                                                        WbWriter* const writer,
                                                                                        UbSchedulerPtr s, CommunicatorPtr comm)
-                                                                                     : Postprocessor(grid, s),
+                                                                                     : CoProcessor(grid, s),
                                                                                        path(path),
                                                                                        comm(comm),
                                                                                        writer(writer)
@@ -21,7 +21,7 @@ TurbulenceIntensityPostprocessor::TurbulenceIntensityPostprocessor(Grid3DPtr gri
    init();
 }
 //////////////////////////////////////////////////////////////////////////
-void TurbulenceIntensityPostprocessor::init()
+void TurbulenceIntensityCoProcessor::init()
 {
    gridRank  = grid->getRank();
    minInitLevel = this->grid->getCoarsestInitializedLevel();
@@ -42,17 +42,17 @@ void TurbulenceIntensityPostprocessor::init()
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void TurbulenceIntensityPostprocessor::update(double step)
+void TurbulenceIntensityCoProcessor::process(double step)
 {
    calculateAverageValues(int(step));
 
    if(scheduler->isDue(step) )
-      collectPostprocessData(step);
+      collectData(step);
 
    UBLOG(logDEBUG3, "TurbulenceIntensityPostprocessor::update:" << step);
 }
 //////////////////////////////////////////////////////////////////////////
-void TurbulenceIntensityPostprocessor::collectPostprocessData(double step)
+void TurbulenceIntensityCoProcessor::collectData(double step)
 {
    int istep = int(step);
 
@@ -62,7 +62,7 @@ void TurbulenceIntensityPostprocessor::collectPostprocessData(double step)
       {
          if (block)
          {
-            addPostprocessData(block);
+            addData(block);
          }
       }
    }
@@ -80,7 +80,7 @@ void TurbulenceIntensityPostprocessor::collectPostprocessData(double step)
 
       vector<string> filenames;
       filenames.push_back(pname);
-      if (step == Postprocessor::scheduler->getMinBegin())
+      if (step == CoProcessor::scheduler->getMinBegin())
       {
          WbWriterVtkXmlASCII::getInstance()->writeCollection(path+"_collection",filenames,istep,false);
       } 
@@ -94,7 +94,7 @@ void TurbulenceIntensityPostprocessor::collectPostprocessData(double step)
    clearData();
 }
 //////////////////////////////////////////////////////////////////////////
-void TurbulenceIntensityPostprocessor::clearData()
+void TurbulenceIntensityCoProcessor::clearData()
 {
    nodes.clear();
    cells.clear();
@@ -102,7 +102,7 @@ void TurbulenceIntensityPostprocessor::clearData()
    data.clear();
 }
 //////////////////////////////////////////////////////////////////////////
-void TurbulenceIntensityPostprocessor::addPostprocessData(const Block3DPtr block)
+void TurbulenceIntensityCoProcessor::addData(const Block3DPtr block)
 {
    UbTupleDouble3 org          = grid->getBlockWorldCoordinates(block);
    UbTupleDouble3 blockLengths = grid->getBlockLengths(block);
@@ -189,7 +189,7 @@ void TurbulenceIntensityPostprocessor::addPostprocessData(const Block3DPtr block
    }
 }
 //////////////////////////////////////////////////////////////////////////
-void TurbulenceIntensityPostprocessor::calculateAverageValues(double timeStep)
+void TurbulenceIntensityCoProcessor::calculateAverageValues(double timeStep)
 {
    using namespace D3Q27System;
 
diff --git a/source/VirtualFluidsCore/CoProcessors/TurbulenceIntensityPostprocessor.h b/source/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.h
similarity index 62%
rename from source/VirtualFluidsCore/CoProcessors/TurbulenceIntensityPostprocessor.h
rename to source/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.h
index 49bc29059..85ae0dac1 100644
--- a/source/VirtualFluidsCore/CoProcessors/TurbulenceIntensityPostprocessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.h
@@ -1,7 +1,7 @@
 #ifndef TurbulenceIntensityPostprocessor_H
 #define TurbulenceIntensityPostprocessor_H
 
-#include "Postprocessor.h"
+#include "CoProcessor.h"
 #include "Grid3D.h"
 #include "Block3D.h"
 #include "LBMUnitConverter.h"
@@ -10,18 +10,18 @@
 #include "WbWriter.h"
 
 #include <boost/shared_ptr.hpp>
-class TurbulenceIntensityPostprocessor;
-typedef boost::shared_ptr<TurbulenceIntensityPostprocessor> TurbulenceIntensityPostprocessorPtr;
+class TurbulenceIntensityCoProcessor;
+typedef boost::shared_ptr<TurbulenceIntensityCoProcessor> TurbulenceIntensityCoProcessorPtr;
 
-class TurbulenceIntensityPostprocessor : public Postprocessor
+class TurbulenceIntensityCoProcessor : public CoProcessor
 {
 public:
-   TurbulenceIntensityPostprocessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer, 
+   TurbulenceIntensityCoProcessor(Grid3DPtr grid, const std::string& path, WbWriter* const writer, 
                           UbSchedulerPtr s, CommunicatorPtr comm);
-   void update(double step);
+   void process(double step);
 protected:
-   void collectPostprocessData(double step);
-   void addPostprocessData(const Block3DPtr block);
+   void collectData(double step);
+   void addData(const Block3DPtr block);
    void clearData();
    void calculateAverageValues(double timeStep);
 private:
diff --git a/source/VirtualFluidsCore/CoProcessors/BlocksPostprocessor.cpp b/source/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp
similarity index 90%
rename from source/VirtualFluidsCore/CoProcessors/BlocksPostprocessor.cpp
rename to source/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp
index 48698c742..ad28d8d13 100644
--- a/source/VirtualFluidsCore/CoProcessors/BlocksPostprocessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp
@@ -1,12 +1,12 @@
-#include "BlocksPostprocessor.h"
+#include "WriteBlocksCoProcessor.h"
 #include "basics/writer/WbWriterVtkXmlASCII.h"
 #include <boost/foreach.hpp>
 #include "D3Q27System.h"
 
-BlocksPostprocessor::BlocksPostprocessor(Grid3DPtr grid, UbSchedulerPtr s, 
+WriteBlocksCoProcessor::WriteBlocksCoProcessor(Grid3DPtr grid, UbSchedulerPtr s, 
                                          const std::string& path, WbWriter* const writer, 
                                          CommunicatorPtr comm) :
-                                         Postprocessor(grid, s),
+                                         CoProcessor(grid, s),
                                          path(path),
                                          writer(writer),
                                          comm(comm)
@@ -14,17 +14,17 @@ BlocksPostprocessor::BlocksPostprocessor(Grid3DPtr grid, UbSchedulerPtr s,
 
 }
 //////////////////////////////////////////////////////////////////////////
-BlocksPostprocessor::~BlocksPostprocessor() 
+WriteBlocksCoProcessor::~WriteBlocksCoProcessor() 
 {
 }
 //////////////////////////////////////////////////////////////////////////
-void BlocksPostprocessor::update(double step)
+void WriteBlocksCoProcessor::process(double step)
 {
    if(scheduler->isDue(step) )
-      collectPostprocessData(step);
+      collectData(step);
 }
 //////////////////////////////////////////////////////////////////////////
-void BlocksPostprocessor::collectPostprocessData(double step)
+void WriteBlocksCoProcessor::collectData(double step)
 {
    if (comm->getProcessID() == comm->getRoot())
    {
@@ -135,7 +135,7 @@ void BlocksPostprocessor::collectPostprocessData(double step)
 
       filenames.push_back(writer->writeOctsWithCellData(path+"/blocks/blocks_" + UbSystem::toString(grid->getRank()) + "_" + UbSystem::toString(istep),nodes,cells,celldatanames,celldata));
 
-      if (istep == Postprocessor::scheduler->getMinBegin())
+      if (istep == CoProcessor::scheduler->getMinBegin())
       {
          WbWriterVtkXmlASCII::getInstance()->writeCollection(path+"/blocks/blocks_collection",filenames,istep,false);
       } 
diff --git a/source/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.h b/source/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.h
new file mode 100644
index 000000000..927841607
--- /dev/null
+++ b/source/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.h
@@ -0,0 +1,32 @@
+/*
+*  BlocksPostprocessor.h
+*
+*  Created on: 24.09.2012
+*  Author: K. Kucher
+*/
+
+#ifndef BlocksPostprocessor_H_
+#define BlocksPostprocessor_H_
+
+#include "CoProcessor.h"
+#include "Communicator.h"
+#include "WbWriter.h"
+
+#include <boost/shared_ptr.hpp>
+class WriteBlocksCoProcessor;
+typedef boost::shared_ptr<WriteBlocksCoProcessor> WriteBlocksCoProcessorPtr;
+
+class WriteBlocksCoProcessor: public CoProcessor {
+public:
+   WriteBlocksCoProcessor(Grid3DPtr grid, UbSchedulerPtr s, const std::string& path, WbWriter* const writer, CommunicatorPtr comm);
+   virtual ~WriteBlocksCoProcessor();
+   void process(double step);
+protected:
+   void collectData(double step);
+   std::string path;
+   WbWriter* writer;
+   CommunicatorPtr comm;
+};
+
+
+#endif 
diff --git a/source/VirtualFluidsCore/Grid/BoostSerializationClassExportHelper.h b/source/VirtualFluidsCore/Grid/BoostSerializationClassExportHelper.h
index 87f034c47..345447a67 100644
--- a/source/VirtualFluidsCore/Grid/BoostSerializationClassExportHelper.h
+++ b/source/VirtualFluidsCore/Grid/BoostSerializationClassExportHelper.h
@@ -15,10 +15,10 @@
 #include <D3Q27Interactor.h>
 #include <Communicator.h>
 #include <MPICommunicator.h>
-#include <Postprocessor.h>
-#include <D3Q27MacroscopicQuantitiesPostprocessor.h>
-#include <D3Q27ShearStressPostprocessor.h>
-#include <AverageValuesPostprocessor.h>
+#include <CoProcessor.h>
+#include <MacroscopicQuantitiesCoProcessor.h>
+#include <ShearStressCoProcessor.h>
+#include <AverageValuesCoProcessor.h>
 #include <basics/container/CbArray4D.h>
 #include <basics/writer/WbWriter.h>
 #include <basics/writer/WbWriterVtkXmlASCII.h>
@@ -55,10 +55,10 @@ BOOST_CLASS_EXPORT(D3Q27ETForThinWallBCProcessor)
 BOOST_CLASS_EXPORT(DataSet3D)
 BOOST_CLASS_EXPORT(Interactor3D)
 BOOST_CLASS_EXPORT(D3Q27Interactor)
-BOOST_CLASS_EXPORT(Postprocessor)
-BOOST_CLASS_EXPORT(D3Q27MacroscopicQuantitiesPostprocessor)
-BOOST_CLASS_EXPORT(D3Q27ShearStressPostprocessor)
-BOOST_CLASS_EXPORT(AverageValuesPostprocessor)
+BOOST_CLASS_EXPORT(CoProcessor)
+BOOST_CLASS_EXPORT(MacroscopicQuantitiesCoProcessor)
+BOOST_CLASS_EXPORT(ShearStressCoProcessor)
+BOOST_CLASS_EXPORT(AverageValuesCoProcessor)
 BOOST_CLASS_EXPORT(WbWriterVtkXmlASCII)
 BOOST_CLASS_EXPORT(WbWriterVtkXmlBinary)
 
diff --git a/source/VirtualFluidsCore/Grid/Calculator.cpp b/source/VirtualFluidsCore/Grid/Calculator.cpp
index 251bcbf87..1316bca42 100644
--- a/source/VirtualFluidsCore/Grid/Calculator.cpp
+++ b/source/VirtualFluidsCore/Grid/Calculator.cpp
@@ -98,7 +98,7 @@ void Calculator::calculate(const double& endTime, CalculationManagerPtr cm, boos
          ////wait for write dump files
          sync->wait();
          //write dump 
-         if (mainThread) grid->doPostProcess((double)(calcStep-1));
+         if (mainThread) grid->coProcess((double)(calcStep-1));
          sync->wait();
 
 
diff --git a/source/VirtualFluidsCore/Grid/Calculator2.cpp b/source/VirtualFluidsCore/Grid/Calculator2.cpp
index 303b2d44e..769765e67 100644
--- a/source/VirtualFluidsCore/Grid/Calculator2.cpp
+++ b/source/VirtualFluidsCore/Grid/Calculator2.cpp
@@ -68,7 +68,7 @@ void Calculator2::calculate(const double& endTime, CalculationManagerPtr cm, boo
          ////wait for write dump files
          //sync->wait();
          //write dump 
-         if (mainThread) grid->doPostProcess((double)(calcStep-1));
+         if (mainThread) grid->coProcess((double)(calcStep-1));
          sync->wait();
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/source/VirtualFluidsCore/Grid/Grid3D.cpp b/source/VirtualFluidsCore/Grid/Grid3D.cpp
index 0b22d9667..93e9b2170 100644
--- a/source/VirtualFluidsCore/Grid/Grid3D.cpp
+++ b/source/VirtualFluidsCore/Grid/Grid3D.cpp
@@ -399,7 +399,7 @@ void Grid3D::disconnect(Grid3D::connection_t subscriber)
    subscriber.disconnect();
 }
 //////////////////////////////////////////////////////////////////////////
-void Grid3D::doPostProcess(double step)
+void Grid3D::coProcess(double step)
 {
    timeStep = step;
    sig(step);
diff --git a/source/VirtualFluidsCore/Grid/Grid3D.h b/source/VirtualFluidsCore/Grid/Grid3D.h
index a3059a4ad..87112cfee 100644
--- a/source/VirtualFluidsCore/Grid/Grid3D.h
+++ b/source/VirtualFluidsCore/Grid/Grid3D.h
@@ -139,7 +139,7 @@ public:
    //post processing
    connection_t connect(signal_t::slot_function_type subscriber);
    void disconnect(connection_t subscriber);
-   void doPostProcess(double step);
+   void coProcess(double step);
    //////////////////////////////////////////////////////////////////////////
    //bundle and rank for distributed memory
    void setBundle(int bundle);
diff --git a/source/VirtualFluidsCore/Grid/MTCalculator.cpp b/source/VirtualFluidsCore/Grid/MTCalculator.cpp
index 0d277a097..6a401effe 100644
--- a/source/VirtualFluidsCore/Grid/MTCalculator.cpp
+++ b/source/VirtualFluidsCore/Grid/MTCalculator.cpp
@@ -75,7 +75,7 @@ void MTCalculator::calculate(const double& endTime, CalculationManagerPtr cm, bo
          ////wait for write dump files
          //sync->wait();
          //write dump 
-         if (mainThread) grid->doPostProcess((double)(calcStep-1));
+         if (mainThread) grid->coProcess((double)(calcStep-1));
          sync->wait();
 
 
diff --git a/source/VirtualFluidsCore/Grid/PrePostBcCalculator.cpp b/source/VirtualFluidsCore/Grid/PrePostBcCalculator.cpp
index 535411efc..4abdfbd44 100644
--- a/source/VirtualFluidsCore/Grid/PrePostBcCalculator.cpp
+++ b/source/VirtualFluidsCore/Grid/PrePostBcCalculator.cpp
@@ -64,7 +64,7 @@ void PrePostBcCalculator::calculate(const double& endTime, CalculationManagerPtr
          ////wait for write dump files
          //sync->wait();
          //write dump 
-         if (mainThread) grid->doPostProcess((double)(calcStep-1));
+         if (mainThread) grid->coProcess((double)(calcStep-1));
          sync->wait();
 
 
-- 
GitLab