diff --git a/apps/gpu/ChannelFlow/ChannelFlow.cpp b/apps/gpu/ChannelFlow/ChannelFlow.cpp
index bac6f4b5a7d4b52ed5a36c67a6f62ff921b882b5..ef40b5a4b3c6dfeba7174901294e061ca0194373 100644
--- a/apps/gpu/ChannelFlow/ChannelFlow.cpp
+++ b/apps/gpu/ChannelFlow/ChannelFlow.cpp
@@ -43,11 +43,10 @@
 
 //////////////////////////////////////////////////////////////////////////
 
-#include "DataTypes.h"
-
-#include "PointerDefinitions.h"
-#include "config/ConfigurationFile.h"
-#include <logger/Logger.h>
+#include <basics/DataTypes.h>
+#include <basics/PointerDefinitions.h>
+#include <basics/StringUtilities/StringUtil.h>
+#include <basics/config/ConfigurationFile.h>
 
 //////////////////////////////////////////////////////////////////////////
 
@@ -95,7 +94,8 @@ int main(int argc, char *argv[])
 
         vf::parallel::Communicator &communicator = *vf::parallel::MPICommunicator::getInstance();
         const int numberOfProcesses = communicator.getNumberOfProcesses();
-        SPtr<Parameter> para = std::make_shared<Parameter>(numberOfProcesses, communicator.getProcessID());
+        const auto processId = communicator.getProcessID();
+        SPtr<Parameter> para = std::make_shared<Parameter>(numberOfProcesses, processId);
         std::vector<uint> devices(10);
         std::iota(devices.begin(), devices.end(), 0);
         para->setDevices(devices);
@@ -105,9 +105,8 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
         // setup logger
         //////////////////////////////////////////////////////////////////////////
-        const auto pid = communicator.getProcessID();
         vf::logging::Logger::changeLogPath("output/vflog_process" +
-                                           std::to_string(pid) + ".txt");
+                                           std::to_string(processId) + ".txt");
         vf::logging::Logger::initializeLogger();
 
         //////////////////////////////////////////////////////////////////////////
@@ -149,7 +148,6 @@ int main(int argc, char *argv[])
         para->setOutputPrefix("ChannelFlow");
         para->setMainKernel(vf::CollisionKernel::Compressible::CumulantK17);
 
-        const uint generatePart = pid;
         real overlap = (real)8.0 * dx;
 
         if (numberOfProcesses > 1) {
@@ -158,15 +156,15 @@ int main(int argc, char *argv[])
             // add coarse grids
             //////////////////////////////////////////////////////////////////////////
 
-            real subdomainMinX = channelWidth * generatePart;
+            real subdomainMinX = channelWidth * processId;
             real subdomainMinXoverlap = subdomainMinX;
             real subdomainMaxX = subdomainMinX + channelWidth;
             real subdomainMaxXoverlap = subdomainMaxX;
 
-            if (generatePart != 0)
+            if (processId != 0)
                 subdomainMinXoverlap -= overlap;
 
-            if (generatePart != numberOfProcesses - 1)
+            if (processId != numberOfProcesses - 1)
                 subdomainMaxXoverlap += overlap;
 
             auto gridBuilder = std::make_shared<MultipleGridBuilder>();
@@ -191,14 +189,14 @@ int main(int argc, char *argv[])
             // configure communication neighbors
             //////////////////////////////////////////////////////////////////////////
 
-            if (generatePart != 0) {
+            if (processId != 0) {
                 gridBuilder->findCommunicationIndices(CommunicationDirections::MX, LBM);
-                gridBuilder->setCommunicationProcess(CommunicationDirections::MX, generatePart - 1);
+                gridBuilder->setCommunicationProcess(CommunicationDirections::MX, processId - 1);
             }
 
-            if (generatePart != numberOfProcesses - 1) {
+            if (processId != numberOfProcesses - 1) {
                 gridBuilder->findCommunicationIndices(CommunicationDirections::PX, LBM);
-                gridBuilder->setCommunicationProcess(CommunicationDirections::PX, generatePart + 1);
+                gridBuilder->setCommunicationProcess(CommunicationDirections::PX, processId + 1);
             }
 
             //////////////////////////////////////////////////////////////////////////
@@ -207,10 +205,10 @@ int main(int argc, char *argv[])
 
             gridBuilder->setPeriodicBoundaryCondition(false, false, false);
 
-            if (generatePart == 0) {
+            if (processId == 0) {
                 gridBuilder->setVelocityBoundaryCondition(SideType::MX, velocityLB, 0.0, 0.0);
             }
-            if (generatePart == numberOfProcesses - 1) {
+            if (processId == numberOfProcesses - 1) {
                 gridBuilder->setPressureBoundaryCondition(SideType::PX,
                                                           0.0); // set pressure boundary condition last
                 bcFactory.setPressureBoundaryCondition(BoundaryConditionFactory::PressureBC::OutflowNonReflective);