diff --git a/CMakeLists.txt b/CMakeLists.txt
index 50e7a4fa6f8478d0818b7ded4000c0c406d2d97c..9685f4de572b180fa32766f6a15b87f4a8d3a922 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,7 +10,7 @@
 #  CMAKE 3.13: target_link_options
 #  CMAKE 3.15: CMAKE_MSVC_RUNTIME_LIBRARY
 #################################################################################
-cmake_minimum_required(VERSION 3.15..3.19 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.15..3.20 FATAL_ERROR)
 
 project(VirtualFluids CXX)
 
diff --git a/apps/gpu/LBM/DrivenCavity/DrivenCavity.cpp b/apps/gpu/LBM/DrivenCavity/DrivenCavity.cpp
index a007636bce0e521a0001c6114d2e4dcde7b7c210..070d94f6a6921ce395ebc32bb5fc9ef0d17a7ab3 100644
--- a/apps/gpu/LBM/DrivenCavity/DrivenCavity.cpp
+++ b/apps/gpu/LBM/DrivenCavity/DrivenCavity.cpp
@@ -121,7 +121,7 @@ void multipleLevel(const std::string& configPath)
 
     auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory);
     
-	Communicator* comm = Communicator::getInstanz();
+	vf::gpu::Communicator* comm = vf::gpu::Communicator::getInstanz();
 	SPtr<ConfigFileReader> configReader = ConfigFileReader::getNewInstance();
 
     std::cout << configPath << std::endl;
diff --git a/apps/gpu/LBM/metisTest/main.cpp b/apps/gpu/LBM/metisTest/main.cpp
index fb5116d5d495aff7de0b7be852608f36b46fa78d..b5e2aa40a315004130bd5eed24b438e318d16ab7 100644
--- a/apps/gpu/LBM/metisTest/main.cpp
+++ b/apps/gpu/LBM/metisTest/main.cpp
@@ -51,6 +51,8 @@
 #include "utilities/communication.h"
 #include "utilities/transformator/TransformatorImp.h"
 
+using namespace vf::gpu;
+
 std::string getGridPath(std::shared_ptr<Parameter> para, std::string Gridpath)
 {
     if (para->getNumprocs() == 1)
diff --git a/src/basics/Core/RealConstants.h b/src/basics/Core/RealConstants.h
index d353a341c9f75d58d11ede3048f3cb0521be40b3..91fe0ec0ccff65680f702eab67aa0fb3c4e0172b 100644
--- a/src/basics/Core/RealConstants.h
+++ b/src/basics/Core/RealConstants.h
@@ -1,223 +1,223 @@
-#ifndef REAL_CONSTANT_H
-#define REAL_CONSTANT_H
+// #ifndef REAL_CONSTANT_H
+// #define REAL_CONSTANT_H
 
-#ifdef VF_DOUBLE_ACCURACY
-#define c1o2 0.5
-#define c3o2 1.5
-#define c1o3 0.333333333333333
-#define c2o3 0.666666666666667
-#define c1o4 0.25
-#define c3o4 0.75
-#define c1o6 0.166666666666667
-#define c1o7 0.142857142857143
-#define c1o8 0.125
-#define c1o9 0.111111111111111
-#define c2o9 0.222222222222222
-#define c4o9 0.444444444444444
-#define c1o10 0.1
-#define c1o12 0.083333333333333
-#define c1o16 0.0625
-#define c3o16 0.1875
-#define c9o16 0.5625
-#define c1o18 0.055555555555556
-#define c1o20 0.05
-#define c19o20 0.95
-#define c21o20 1.05
-#define c1o24 0.041666666666667
-#define c1o27 0.037037037037037
-#define c3o32 0.09375
-#define c4o32 0.125
-#define c1o36 0.027777777777778
-#define c1o48 0.020833333333333
-#define c1o64 0.015625
-#define c3o64 0.046875
-#define c9o64 0.140625
-#define c27o64 0.421875
-#define c1o66 0.015151515151515
-#define c1o72 0.013888888888889
-#define c1o264 0.003787878787879
-#define c8o27 0.296296296296296
-#define c2o27 0.074074074074074
-#define c1o54 0.018518518518519
-#define c1o100 0.01
-#define c99o100 0.99
-#define c1o126 0.007936507936508
-#define c1o216 0.004629629629630
-#define c5o4 1.25
-#define c9o4 2.25
-#define c5o2 2.5
-#define c9o2 4.5
+// #ifdef VF_DOUBLE_ACCURACY
+// #define c1o2 0.5
+// #define c3o2 1.5
+// #define c1o3 0.333333333333333
+// #define c2o3 0.666666666666667
+// #define c1o4 0.25
+// #define c3o4 0.75
+// #define c1o6 0.166666666666667
+// #define c1o7 0.142857142857143
+// #define c1o8 0.125
+// #define c1o9 0.111111111111111
+// #define c2o9 0.222222222222222
+// #define c4o9 0.444444444444444
+// #define c1o10 0.1
+// #define c1o12 0.083333333333333
+// #define c1o16 0.0625
+// #define c3o16 0.1875
+// #define c9o16 0.5625
+// #define c1o18 0.055555555555556
+// #define c1o20 0.05
+// #define c19o20 0.95
+// #define c21o20 1.05
+// #define c1o24 0.041666666666667
+// #define c1o27 0.037037037037037
+// #define c3o32 0.09375
+// #define c4o32 0.125
+// #define c1o36 0.027777777777778
+// #define c1o48 0.020833333333333
+// #define c1o64 0.015625
+// #define c3o64 0.046875
+// #define c9o64 0.140625
+// #define c27o64 0.421875
+// #define c1o66 0.015151515151515
+// #define c1o72 0.013888888888889
+// #define c1o264 0.003787878787879
+// #define c8o27 0.296296296296296
+// #define c2o27 0.074074074074074
+// #define c1o54 0.018518518518519
+// #define c1o100 0.01
+// #define c99o100 0.99
+// #define c1o126 0.007936507936508
+// #define c1o216 0.004629629629630
+// #define c5o4 1.25
+// #define c9o4 2.25
+// #define c5o2 2.5
+// #define c9o2 4.5
 
-#define c0o1 0.
-#define c1o1 1.
-#define c2o1 2.
-#define c3o1 3.
-#define c4o1 4.
-#define c5o1 5.
-#define c6o1 6.
-#define c7o1 7.
-#define c8o1 8.
-#define c9o1 9.
-#define c10o1 10.
-#define c11o1 11.
-#define c12o1 12.
-#define c13o1 13.
-#define c14o1 14.
-#define c15o1 15.
-#define c16o1 16.
-#define c17o1 17.
-#define c18o1 18.
-#define c21o1 21.
-#define c24o1 24.
-#define c25o1 25.
-#define c26o1 26.
-#define c27o1 27.
-#define c28o1 28.
-#define c29o1 29.
-#define c30o1 30.
-#define c32o1 32.
-#define c33o1 33.
-#define c34o1 34.
-#define c36o1 36.
-#define c40o1 40.
-#define c42o1 42.
-#define c46o1 46.
-#define c48o1 48.
-#define c50o1 50.
-#define c52o1 52.
-#define c54o1 54.
-#define c56o1 56.
-#define c64o1 64.
-#define c66o1 66.
-#define c68o1 68.
-#define c69o1 69.
-#define c72o1 72.
-#define c84o1 84.
-#define c88o1 88.
-#define c96o1 96.
-#define c100o1 100.0
-#define c130o1 130.0
-#define c152o1 152.0
-#define c166o1 166.0
-#define c195o1 195.0
-#define c216o1 216.0
-#define c264o1 264.0
-#define c290o1 290.0
-#define c367o1 367.0
+// #define c0o1 0.
+// #define c1o1 1.
+// #define c2o1 2.
+// #define c3o1 3.
+// #define c4o1 4.
+// #define c5o1 5.
+// #define c6o1 6.
+// #define c7o1 7.
+// #define c8o1 8.
+// #define c9o1 9.
+// #define c10o1 10.
+// #define c11o1 11.
+// #define c12o1 12.
+// #define c13o1 13.
+// #define c14o1 14.
+// #define c15o1 15.
+// #define c16o1 16.
+// #define c17o1 17.
+// #define c18o1 18.
+// #define c21o1 21.
+// #define c24o1 24.
+// #define c25o1 25.
+// #define c26o1 26.
+// #define c27o1 27.
+// #define c28o1 28.
+// #define c29o1 29.
+// #define c30o1 30.
+// #define c32o1 32.
+// #define c33o1 33.
+// #define c34o1 34.
+// #define c36o1 36.
+// #define c40o1 40.
+// #define c42o1 42.
+// #define c46o1 46.
+// #define c48o1 48.
+// #define c50o1 50.
+// #define c52o1 52.
+// #define c54o1 54.
+// #define c56o1 56.
+// #define c64o1 64.
+// #define c66o1 66.
+// #define c68o1 68.
+// #define c69o1 69.
+// #define c72o1 72.
+// #define c84o1 84.
+// #define c88o1 88.
+// #define c96o1 96.
+// #define c100o1 100.0
+// #define c130o1 130.0
+// #define c152o1 152.0
+// #define c166o1 166.0
+// #define c195o1 195.0
+// #define c216o1 216.0
+// #define c264o1 264.0
+// #define c290o1 290.0
+// #define c367o1 367.0
 
-#define Op0000002 0.0000002
-#define c10eM30 1e-30
-#define c10eM10 1e-10
-#define smallSingle 0.0000000002
+// #define Op0000002 0.0000002
+// #define c10eM30 1e-30
+// #define c10eM10 1e-10
+// #define smallSingle 0.0000000002
 
-#else
-#define c1o2 0.5f
-#define c3o2 1.5f
-#define c1o3 (1.0f / 3.0f)
-#define c2o3 (2.0f / 3.0f)
-#define c1o4 0.25f
-#define c3o4 0.75f
-#define c1o6 (1.0f / 6.0f)
-#define c1o7 (1.0f / 7.0f)
-#define c1o8 0.125f
-#define c1o9 (1.0f / 9.0f)
-#define c2o9 (2.0f / 9.0f)
-#define c4o9 (4.0f / 9.0f)
-#define c1o10 0.1f
-#define c1o12 (1.0f / 12.0f)
-#define c1o16 0.0625f
-#define c3o16 0.1875f
-#define c9o16 0.5625f
-#define c1o18 (1.0f / 18.0f)
-#define c1o20 0.05f
-#define c19o20 0.95f
-#define c21o20 1.05f
-#define c1o24 (1.0f / 24.0f)
-#define c1o27 (1.0f / 27.0f)
-#define c3o32 0.09375f
-#define c4o32 0.125f
-#define c1o36 (1.0f / 36.0f)
-#define c1o48 (1.0f / 48.0f)
-#define c1o64 0.015625f
-#define c3o64 0.046875f
-#define c9o64 0.140625f
-#define c27o64 0.421875f
-#define c1o66 (1.0f / 66.0f)
-#define c1o72 (1.0f / 72.0f)
-#define c1o264 (1.0f / 264.0f)
-#define c8o27 (8.0f / 27.0f)
-#define c2o27 (2.0f / 27.0f)
-#define c1o54 (1.0f / 54.0f)
-#define c1o100 0.01f
-#define c99o100 0.99f
-#define c1o126 (1.0f / 126.0f)
-#define c1o216 (1.0f / 216.0f)
-#define c5o4 1.25f
-#define c9o4 2.25f
-#define c5o2 2.5f
-#define c9o2 4.5f
+// #else
+// #define c1o2 0.5f
+// #define c3o2 1.5f
+// #define c1o3 (1.0f / 3.0f)
+// #define c2o3 (2.0f / 3.0f)
+// #define c1o4 0.25f
+// #define c3o4 0.75f
+// #define c1o6 (1.0f / 6.0f)
+// #define c1o7 (1.0f / 7.0f)
+// #define c1o8 0.125f
+// #define c1o9 (1.0f / 9.0f)
+// #define c2o9 (2.0f / 9.0f)
+// #define c4o9 (4.0f / 9.0f)
+// #define c1o10 0.1f
+// #define c1o12 (1.0f / 12.0f)
+// #define c1o16 0.0625f
+// #define c3o16 0.1875f
+// #define c9o16 0.5625f
+// #define c1o18 (1.0f / 18.0f)
+// #define c1o20 0.05f
+// #define c19o20 0.95f
+// #define c21o20 1.05f
+// #define c1o24 (1.0f / 24.0f)
+// #define c1o27 (1.0f / 27.0f)
+// #define c3o32 0.09375f
+// #define c4o32 0.125f
+// #define c1o36 (1.0f / 36.0f)
+// #define c1o48 (1.0f / 48.0f)
+// #define c1o64 0.015625f
+// #define c3o64 0.046875f
+// #define c9o64 0.140625f
+// #define c27o64 0.421875f
+// #define c1o66 (1.0f / 66.0f)
+// #define c1o72 (1.0f / 72.0f)
+// #define c1o264 (1.0f / 264.0f)
+// #define c8o27 (8.0f / 27.0f)
+// #define c2o27 (2.0f / 27.0f)
+// #define c1o54 (1.0f / 54.0f)
+// #define c1o100 0.01f
+// #define c99o100 0.99f
+// #define c1o126 (1.0f / 126.0f)
+// #define c1o216 (1.0f / 216.0f)
+// #define c5o4 1.25f
+// #define c9o4 2.25f
+// #define c5o2 2.5f
+// #define c9o2 4.5f
 
-#define c0o1 0.f
-#define c1o1 1.f
-#define c2o1 2.f
-#define c3o1 3.f
-#define c4o1 4.f
-#define c5o1 5.f
-#define c6o1 6.f
-#define c7o1 7.f
-#define c8o1 8.f
-#define c9o1 9.f
-#define c10o1 10.f
-#define c11o1 11.f
-#define c12o1 12.f
-#define c13o1 13.f
-#define c14o1 14.f
-#define c15o1 15.f
-#define c16o1 16.f
-#define c17o1 17.f
-#define c18o1 18.f
-#define c21o1 21.f
-#define c24o1 24.f
-#define c25o1 25.f
-#define c26o1 26.f
-#define c27o1 27.f
-#define c28o1 28.f
-#define c29o1 29.f
-#define c30o1 30.f
-#define c32o1 32.f
-#define c33o1 33.f
-#define c34o1 34.f
-#define c36o1 36.f
-#define c40o1 40.f
-#define c42o1 42.f
-#define c46o1 46.f
-#define c48o1 48.f
-#define c50o1 50.f
-#define c52o1 52.f
-#define c54o1 54.f
-#define c56o1 56.f
-#define c64o1 64.f
-#define c66o1 66.f
-#define c68o1 68.f
-#define c69o1 69.f
-#define c72o1 72.f
-#define c84o1 84.f
-#define c88o1 88.f
-#define c96o1 96.f
-#define c100o1 100.0f
-#define c130o1 130.0f
-#define c152o1 152.0f
-#define c166o1 166.0f
-#define c195o1 195.0f
-#define c216o1 216.0f
-#define c264o1 264.0f
-#define c290o1 290.0f
-#define c367o1 367.0f
+// #define c0o1 0.f
+// #define c1o1 1.f
+// #define c2o1 2.f
+// #define c3o1 3.f
+// #define c4o1 4.f
+// #define c5o1 5.f
+// #define c6o1 6.f
+// #define c7o1 7.f
+// #define c8o1 8.f
+// #define c9o1 9.f
+// #define c10o1 10.f
+// #define c11o1 11.f
+// #define c12o1 12.f
+// #define c13o1 13.f
+// #define c14o1 14.f
+// #define c15o1 15.f
+// #define c16o1 16.f
+// #define c17o1 17.f
+// #define c18o1 18.f
+// #define c21o1 21.f
+// #define c24o1 24.f
+// #define c25o1 25.f
+// #define c26o1 26.f
+// #define c27o1 27.f
+// #define c28o1 28.f
+// #define c29o1 29.f
+// #define c30o1 30.f
+// #define c32o1 32.f
+// #define c33o1 33.f
+// #define c34o1 34.f
+// #define c36o1 36.f
+// #define c40o1 40.f
+// #define c42o1 42.f
+// #define c46o1 46.f
+// #define c48o1 48.f
+// #define c50o1 50.f
+// #define c52o1 52.f
+// #define c54o1 54.f
+// #define c56o1 56.f
+// #define c64o1 64.f
+// #define c66o1 66.f
+// #define c68o1 68.f
+// #define c69o1 69.f
+// #define c72o1 72.f
+// #define c84o1 84.f
+// #define c88o1 88.f
+// #define c96o1 96.f
+// #define c100o1 100.0f
+// #define c130o1 130.0f
+// #define c152o1 152.0f
+// #define c166o1 166.0f
+// #define c195o1 195.0f
+// #define c216o1 216.0f
+// #define c264o1 264.0f
+// #define c290o1 290.0f
+// #define c367o1 367.0f
 
-#define Op0000002 0.0000002f
-#define c10eM30 1e-30
-#define c10eM10 1e-10
-#define smallSingle 0.0000000002f
-#endif
+// #define Op0000002 0.0000002f
+// #define c10eM30 1e-30
+// #define c10eM10 1e-10
+// #define smallSingle 0.0000000002f
+// #endif
 
-#endif
\ No newline at end of file
+// #endif
\ No newline at end of file
diff --git a/src/basics/Core/VectorTypes.h b/src/basics/Core/VectorTypes.h
index 3109112b299e5ac169d9f536a4d4e66b7970cff2..226ab7c55fdafdcb9322b07e42573df4ac3d5618 100644
--- a/src/basics/Core/VectorTypes.h
+++ b/src/basics/Core/VectorTypes.h
@@ -17,10 +17,9 @@
 #include "basics_export.h"
 
 #include "DataTypes.h"
-#include "RealConstants.h"
 
 struct BASICS_EXPORT Vec3 {
-    real x{ c0o1 }, y{ c0o1 }, z{ c0o1 };
+    real x{ 0. }, y{ 0. }, z{ 0. };
 
     __host__ __device__ Vec3(real x, real y, real z) : x(x), y(y), z(z) {}
     Vec3() = default;
diff --git a/src/gpu/GksGpu/BoundaryConditions/BoundaryCondition.cpp b/src/gpu/GksGpu/BoundaryConditions/BoundaryCondition.cpp
index 1fca7d9b3bbf26bcec8c13876a760b6758f92670..fb1ddb1ff7db9d1b6da0115a25aab87f029537fc 100644
--- a/src/gpu/GksGpu/BoundaryConditions/BoundaryCondition.cpp
+++ b/src/gpu/GksGpu/BoundaryConditions/BoundaryCondition.cpp
@@ -11,6 +11,8 @@
 #include "DataBase/DataBaseAllocator.h"
 #include "DataBase/DataBaseStruct.h"
 
+using namespace vf::gpu;
+
 namespace GksGpu{
 
 BoundaryCondition::BoundaryCondition( SPtr<DataBase> dataBase )
diff --git a/src/gpu/GksMeshAdapter/GksMeshAdapter.cpp b/src/gpu/GksMeshAdapter/GksMeshAdapter.cpp
index 2d2641e36ae26c0581f8de2563bcbcce8be619fa..16f5c208565ff090cd2344348d5e47150babe84e 100644
--- a/src/gpu/GksMeshAdapter/GksMeshAdapter.cpp
+++ b/src/gpu/GksMeshAdapter/GksMeshAdapter.cpp
@@ -22,6 +22,8 @@
 #include "MeshCell.h"
 #include "MeshFace.h"
 
+using namespace vf::gpu;
+
 GksMeshAdapter::GksMeshAdapter(SPtr<MultipleGridBuilder> gridBuilder)
     : gridBuilder(gridBuilder)
 {}
diff --git a/src/gpu/GksMeshAdapter/MeshCell.cpp b/src/gpu/GksMeshAdapter/MeshCell.cpp
index 65a931c84deca244abf78e100bb838dd9c1870f3..349d308ee498e89f9705091c72d3ca7013bf3d4e 100644
--- a/src/gpu/GksMeshAdapter/MeshCell.cpp
+++ b/src/gpu/GksMeshAdapter/MeshCell.cpp
@@ -34,6 +34,8 @@
 
 #include "GridGenerator/grid/NodeValues.h"
 
+using namespace vf::gpu;
+
 MeshCell::MeshCell(){
 
     level   = INVALID_INDEX;
diff --git a/src/gpu/GridGenerator/StreetPointFinder/StreetPointFinder.cpp b/src/gpu/GridGenerator/StreetPointFinder/StreetPointFinder.cpp
index 23d7c92ab826a7b560c248c4ca51cca831e5ca1f..3a764dd353824df4dcd07aee2557ccc031648b6f 100644
--- a/src/gpu/GridGenerator/StreetPointFinder/StreetPointFinder.cpp
+++ b/src/gpu/GridGenerator/StreetPointFinder/StreetPointFinder.cpp
@@ -13,6 +13,8 @@
 #include "grid/Grid.h"
 #include "grid/NodeValues.h"
 
+using namespace vf::gpu;
+
 Street::Street(real xStartCell, real yStartCell, real xEndCell, real yEndCell, real dx)
 {
 	real length = std::sqrt((xEndCell - xStartCell)*(xEndCell - xStartCell)
diff --git a/src/gpu/GridGenerator/geometries/Triangle/Triangle.cu b/src/gpu/GridGenerator/geometries/Triangle/Triangle.cu
index f38eff75ad156daac4d44ce869485319ce305d17..3ba2179a2b93d4249ec84100d8c62eefff2be86f 100644
--- a/src/gpu/GridGenerator/geometries/Triangle/Triangle.cu
+++ b/src/gpu/GridGenerator/geometries/Triangle/Triangle.cu
@@ -5,6 +5,8 @@
 
 #include "grid/NodeValues.h"
 
+using namespace vf::gpu;
+
 HOSTDEVICE Triangle::Triangle(Vertex &v1, Vertex &v2, Vertex &v3, Vertex &normal) : v1(v1), v2(v2), v3(v3), normal(normal), patchIndex(INVALID_INDEX) {}
 HOSTDEVICE Triangle::Triangle(Vertex &v1, Vertex &v2, Vertex &v3) : v1(v1), v2(v2), v3(v3), patchIndex(INVALID_INDEX) { calcNormal(); }
 HOSTDEVICE Triangle::Triangle(){}
diff --git a/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu b/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu
index 4fcf93ef44912ce36aafd026992f77f088774f4e..31d8af624f35f1cc20ad1b8f627f5a56408f35f4 100644
--- a/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu
+++ b/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu
@@ -15,6 +15,8 @@
 
 #include "utilities/transformator/TransformatorImp.h"
 
+using namespace vf::gpu;
+
 
 TriangularMesh* TriangularMesh::make(const std::string& fileName, const std::vector<uint> ignorePatches)
 {
diff --git a/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp b/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp
index e3b5a7c4f0c92cb3f31df4fd0cd4697a7000a34d..61a499a31a57a60f3c98bd4a7c600699cea77aa2 100644
--- a/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp
+++ b/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp
@@ -10,6 +10,8 @@
 #include "grid/GridImp.h"
 #include "grid/NodeValues.h"
 
+using namespace vf::gpu;
+
 void TriangularMeshDiscretizationStrategy::removeOddBoundaryCellNodes(GridImp* grid)
 {
 #pragma omp parallel for
diff --git a/src/gpu/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h b/src/gpu/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h
index dd3837e4d12b4064b4499c5d9cdca4d7ad84c643..9da79497ca2825ab25f62c6e622ee852342cf25c 100644
--- a/src/gpu/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h
+++ b/src/gpu/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h
@@ -51,7 +51,7 @@ protected:
 public:
     char getType() const override
     {
-        return BC_PRESSURE;
+        return vf::gpu::BC_PRESSURE;
     }
 
     real getRho()
@@ -78,7 +78,7 @@ protected:
 public:
     virtual char getType() const override
     {
-        return BC_VELOCITY;
+        return vf::gpu::BC_VELOCITY;
     }
 
     void fillVelocityLists()
@@ -119,7 +119,7 @@ private:
 public:
     char getType() const override
     {
-        return BC_SOLID;
+        return vf::gpu::BC_SOLID;
     }
 
     void setVelocityForPatch( uint patch, real vx, real vy, real vz ){
diff --git a/src/gpu/GridGenerator/grid/BoundaryConditions/Side.cpp b/src/gpu/GridGenerator/grid/BoundaryConditions/Side.cpp
index 00ac6b3ddf7ac4d63dbdbf299d56f8126d6abdc6..75cb8e23fca1a9643dbb7901f628b9e30cb1b4d7 100644
--- a/src/gpu/GridGenerator/grid/BoundaryConditions/Side.cpp
+++ b/src/gpu/GridGenerator/grid/BoundaryConditions/Side.cpp
@@ -6,6 +6,8 @@
 
 #include "utilities/math/Math.h"
 
+using namespace vf::gpu;
+
 void Side::addIndices(SPtr<Grid> grid, SPtr<BoundaryCondition> boundaryCondition, std::string coord, real constant,
                       real startInner, real endInner, real startOuter, real endOuter)
 {
diff --git a/src/gpu/GridGenerator/grid/Field.cu b/src/gpu/GridGenerator/grid/Field.cu
index 9107e3942e1795d3c32ed9ffb200a6dac7c91bac..6272a3a6e324395de0a22705ac6e9a61b2879e44 100644
--- a/src/gpu/GridGenerator/grid/Field.cu
+++ b/src/gpu/GridGenerator/grid/Field.cu
@@ -3,6 +3,8 @@
 #include "grid/NodeValues.h"
 #include "grid/GridStrategy/GridStrategy.h"
 
+using namespace vf::gpu;
+
 CUDA_HOST Field::Field(SPtr<GridStrategy> gridStrategy, uint size) : gridStrategy(gridStrategy), size(size)
 {
     
diff --git a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp
index 1a81f71fbda0ecd5a87c86f82fa06f89aab0e151..92bb2040fdc963e1ba991b531fd91bc8ef14674e 100644
--- a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp
+++ b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp
@@ -30,6 +30,8 @@
 #define GEOFLUID 19
 #define GEOSOLID 16
 
+using namespace vf::gpu;
+
 LevelGridBuilder::LevelGridBuilder(Device device, const std::string& d3qxx) : device(device), d3qxx(d3qxx)
 {
     this->communicationProcesses[CommunicationDirections::MX] = INVALID_INDEX;
diff --git a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h
index 8bfb201c54689411a1c4ea56617f7f009dfb4b4f..fe7b53f5270f7b5235fdb8a0419558fa106ef878 100644
--- a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h
+++ b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h
@@ -11,7 +11,6 @@
 #include "grid/GridBuilder/GridBuilder.h"
 #include "grid/Grid.h"
 #include "grid/GridInterface.h"
-#include "grid/NodeValues.h"
 
 struct Vertex;
 class  Grid;
diff --git a/src/gpu/GridGenerator/grid/GridImp.cu b/src/gpu/GridGenerator/grid/GridImp.cu
index cd835ee1c512d23969aa2d448a3c18b5a5179ed8..0be79ce95a26ac3a9bfe6c3e98286c7cce96563d 100644
--- a/src/gpu/GridGenerator/grid/GridImp.cu
+++ b/src/gpu/GridGenerator/grid/GridImp.cu
@@ -28,6 +28,8 @@
 
 CONSTANT int DIRECTIONS[DIR_END_MAX][DIMENSION];
 
+using namespace vf::gpu;
+
 
 CUDA_HOST GridImp::GridImp(Object* object, real startX, real startY, real startZ, real endX, real endY, real endZ, real delta, SPtr<GridStrategy> gridStrategy, Distribution distribution, uint level)
             : object(object), 
diff --git a/src/gpu/GridGenerator/grid/GridInterface.cu b/src/gpu/GridGenerator/grid/GridInterface.cu
index ec88c3b4afed654999cc6f6be16005a020cd0cd7..423f9788fe44e73c37c1c09c726596923737e871 100644
--- a/src/gpu/GridGenerator/grid/GridInterface.cu
+++ b/src/gpu/GridGenerator/grid/GridInterface.cu
@@ -7,6 +7,8 @@
 #include "grid/Field.h"
 #include "grid/NodeValues.h"
 
+using namespace vf::gpu;
+
 GridInterface::GridInterface()
 {
 
diff --git a/src/gpu/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.cpp b/src/gpu/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.cpp
index 34fbe03eb121c33fa01069d9498e833c6435510d..3d5cda94a16f5948cd6fe60ab4aa8acf8ca7fadd 100644
--- a/src/gpu/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.cpp
+++ b/src/gpu/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.cpp
@@ -13,6 +13,8 @@
 #include "grid/GridImp.h"
 #include "grid/NodeValues.h"
 
+using namespace vf::gpu;
+
 void GridCpuStrategy::allocateGridMemory(SPtr<GridImp> grid)
 {
     grid->neighborIndexX        = new int[grid->size];
diff --git a/src/gpu/GridGenerator/grid/NodeValues.h b/src/gpu/GridGenerator/grid/NodeValues.h
index b393356ae488bfc29ff6bf756e2898846545255f..b5661f081873cbb9e632f76be97ba9bc409071ed 100644
--- a/src/gpu/GridGenerator/grid/NodeValues.h
+++ b/src/gpu/GridGenerator/grid/NodeValues.h
@@ -1,39 +1,47 @@
 #ifndef NodeValues_H
 #define NodeValues_H
 
-#define FLUID 0
+namespace vf
+{
+namespace gpu
+{
 
-#define FLUID_CFC 1
-#define FLUID_CFF 2
+static constexpr char FLUID = 0;
 
-#define FLUID_FCC 3
-#define FLUID_FCF 4
+static constexpr char FLUID_CFC = 1;
+static constexpr char FLUID_CFF = 2;
 
-#define MULTI_GPU_SEND 10
-#define MULTI_GPU_RECIEVE 11
+static constexpr char FLUID_FCC = 3;
+static constexpr char FLUID_FCF = 4;
 
-#define BC_PRESSURE 20
-#define BC_VELOCITY 21
-#define BC_SOLID 22
+static constexpr char MULTI_GPU_SEND = 10;
+static constexpr char MULTI_GPU_RECIEVE = 11;
 
-#define BC_SLIP 23
-#define BC_NOSLIP 24
-#define BC_OUTFLOW 25
+static constexpr char BC_PRESSURE = 20;
+static constexpr char BC_VELOCITY = 21;
+static constexpr char BC_SOLID = 22;
 
-#define STOPPER_OUT_OF_GRID 30
-#define STOPPER_COARSE_UNDER_FINE 31
-#define STOPPER_SOLID 32
-#define STOPPER_OUT_OF_GRID_BOUNDARY 33
+static constexpr char BC_SLIP = 23;
+static constexpr char BC_NOSLIP = 24;
+static constexpr char BC_OUTFLOW = 25;
 
-#define INVALID_OUT_OF_GRID 40
-#define INVALID_COARSE_UNDER_FINE 41
-#define INVALID_SOLID 42
+static constexpr char STOPPER_OUT_OF_GRID = 30;
+static constexpr char STOPPER_COARSE_UNDER_FINE = 31;
+static constexpr char STOPPER_SOLID = 32;
+static constexpr char STOPPER_OUT_OF_GRID_BOUNDARY = 33;
+
+static constexpr char INVALID_OUT_OF_GRID = 40;
+static constexpr char INVALID_COARSE_UNDER_FINE = 41;
+static constexpr char INVALID_SOLID = 42;
 
 //????WTF?????
-#define INSIDE 50
-#define NEGATIVE_DIRECTION_BORDER 51
-#define Q_DEPRECATED 52
+static constexpr char INSIDE = 50;
+static constexpr char NEGATIVE_DIRECTION_BORDER = 51;
+static constexpr char Q_DEPRECATED = 52;
+
+static constexpr char OVERLAP_TMP = 60;
 
-#define OVERLAP_TMP 60
+}
+}
 
 #endif
diff --git a/src/gpu/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp b/src/gpu/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp
index 19e3cef186781a7f0a411307afb976072078f07b..835cdf8d61bfa650eb2fefb003a37e19fb029abb 100644
--- a/src/gpu/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp
+++ b/src/gpu/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp
@@ -15,6 +15,8 @@
 #include "grid/NodeValues.h"
 #include "grid/Cell.h"
 
+using namespace vf::gpu;
+
 FILE* GridVTKWriter::file = nullptr;
 WRITING_FORMAT GridVTKWriter::format = WRITING_FORMAT::ASCII;
 
diff --git a/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.cpp b/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.cpp
index f3a66f69a06463ad528d6c00a7a36f5a234db19c..53ce24344ab430e0a65ada9c78506f4f0440ca8b 100644
--- a/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.cpp
+++ b/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.cpp
@@ -19,6 +19,8 @@
 
 #include "utilities/communication.h"
 
+using namespace vf::gpu;
+
 /*#################################################################################*/
 /*---------------------------------public methods----------------------------------*/
 /*---------------------------------------------------------------------------------*/
diff --git a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
index 5add06165da4d213f8a1d483435c3fc1bd7bbef6..9b90e03648c3485dc496dac86deadeb7247e6a58 100644
--- a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
+++ b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
@@ -9,7 +9,7 @@
 #include "Kernel/Kernel.h"
 
 void updateGrid27(Parameter* para, 
-                  Communicator* comm, 
+                  vf::gpu::Communicator* comm, 
                   CudaMemoryManager* cudaManager, 
                   std::vector<std::shared_ptr<PorousMedia>>& pm, 
                   int level, 
@@ -149,7 +149,7 @@ void collisionAdvectionDiffusion(Parameter* para, int level)
 	}
 }
 
-void exchangeMultiGPU(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangeMultiGPU(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
     if (para->getNumprocs() > 1)
 	{
diff --git a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.h b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.h
index 5d404e612c9e5ce9211245ac776f517278be4532..c66d6afd40e4261ce0a6800c6239071c81c95179 100644
--- a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.h
+++ b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.h
@@ -11,7 +11,7 @@
 class Kernel;
 
 extern "C" void updateGrid27(Parameter* para, 
-                             Communicator* comm, 
+                             vf::gpu::Communicator* comm, 
                              CudaMemoryManager* cudaManager, 
                              std::vector<std::shared_ptr<PorousMedia>>& pm, 
                              int level,
@@ -24,7 +24,7 @@ extern "C" void collisionPorousMedia(Parameter* para, std::vector<std::shared_pt
 
 extern "C" void collisionAdvectionDiffusion(Parameter* para, int level);
 
-extern "C" void exchangeMultiGPU(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangeMultiGPU(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
 
 extern "C" void postCollisionBC(Parameter* para, int level, unsigned int t);
 
diff --git a/src/gpu/VirtualFluids_GPU/Communication/Communicator.cpp b/src/gpu/VirtualFluids_GPU/Communication/Communicator.cpp
index df1aa298c925857a615602de7459f23d36fec2ec..7beae77cf8e8d6e8757df4b4e39160965c9052a6 100644
--- a/src/gpu/VirtualFluids_GPU/Communication/Communicator.cpp
+++ b/src/gpu/VirtualFluids_GPU/Communication/Communicator.cpp
@@ -12,233 +12,198 @@
 #endif
 //lib for windows Ws2_32.lib
 
+namespace vf
+{
+namespace gpu
+{
 
 Communicator::Communicator()
 {
-   MPI_Comm_rank(MPI_COMM_WORLD, &PID);
-   MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
+    MPI_Comm_rank(MPI_COMM_WORLD, &PID);
+    MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
 
-   //Get a new communicator for a decomposition of the domain
-   int isperiodic[1]={0};
-   MPI_Cart_create( MPI_COMM_WORLD, 1, &numprocs, isperiodic,  1, &comm1d);
+    // Get a new communicator for a decomposition of the domain
+    int isperiodic[1] = { 0 };
+    MPI_Cart_create(MPI_COMM_WORLD, 1, &numprocs, isperiodic, 1, &comm1d);
 
-   //Get my position in this communicator, and my neighbors
-   MPI_Cart_shift( comm1d, 0,  1, &nbrbottom, &nbrtop);
+    // Get my position in this communicator, and my neighbors
+    MPI_Cart_shift(comm1d, 0, 1, &nbrbottom, &nbrtop);
 }
-//Crap by Martin Sch.
+// Crap by Martin Sch.
 Communicator::Communicator(const int numberOfProcs)
 {
-	MPI_Comm_rank(MPI_COMM_WORLD, &PID);
-	MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
-	commGPU = MPI_COMM_WORLD;
-	requestGPU.resize(0);
-	rcount = 0;
+    MPI_Comm_rank(MPI_COMM_WORLD, &PID);
+    MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
+    commGPU = MPI_COMM_WORLD;
+    requestGPU.resize(0);
+    rcount = 0;
 }
-Communicator* Communicator::instanz = 0;
-Communicator* Communicator::getInstanz()
+Communicator *Communicator::instanz = 0;
+Communicator *Communicator::getInstanz()
 {
-   if( instanz == 0 )
-      instanz = new Communicator(0);
-   return instanz;
+    if (instanz == 0)
+        instanz = new Communicator(0);
+    return instanz;
 }
 
-void Communicator::exchngBottomToTop(float* sbuf, float* rbuf, int count)
+void Communicator::exchngBottomToTop(float *sbuf, float *rbuf, int count)
 {
-   MPI_Sendrecv(sbuf, count, MPI_FLOAT, 
-      nbrtop, 0, 
-      rbuf, count, MPI_FLOAT, 
-      nbrbottom, 0, comm1d, status);
+    MPI_Sendrecv(sbuf, count, MPI_FLOAT, nbrtop, 0, rbuf, count, MPI_FLOAT, nbrbottom, 0, comm1d, status);
 }
-void Communicator::exchngTopToBottom(float* sbuf, float* rbuf, int count)
+void Communicator::exchngTopToBottom(float *sbuf, float *rbuf, int count)
 {
-   MPI_Sendrecv(sbuf, count, MPI_FLOAT, 
-      nbrbottom, 0, 
-      rbuf, count, MPI_FLOAT, 
-      nbrtop, 0, comm1d, status);
+    MPI_Sendrecv(sbuf, count, MPI_FLOAT, nbrbottom, 0, rbuf, count, MPI_FLOAT, nbrtop, 0, comm1d, status);
 }
-void Communicator::waitAll()
+void Communicator::waitAll() { MPI_Waitall(4, request, status); }
+void Communicator::exchngData(float *sbuf_t, float *rbuf_t, float *sbuf_b, float *rbuf_b, int count)
 {
-   MPI_Waitall(4, request, status);
+    MPI_Sendrecv(sbuf_t, count, MPI_FLOAT, nbrtop, 0, rbuf_t, count, MPI_FLOAT, nbrbottom, 0, comm1d, status);
+    MPI_Sendrecv(sbuf_b, count, MPI_FLOAT, nbrbottom, 0, rbuf_b, count, MPI_FLOAT, nbrtop, 0, comm1d, status);
 }
-void Communicator::exchngData( float* sbuf_t, float* rbuf_t, float* sbuf_b, float* rbuf_b, int count )
+void Communicator::exchngDataNB(float *sbuf_t, int count_st, float *rbuf_t, int count_rt, float *sbuf_b, int count_sb,
+                                float *rbuf_b, int count_rb)
 {
-   MPI_Sendrecv(sbuf_t, count, MPI_FLOAT, nbrtop, 0, rbuf_t, count, MPI_FLOAT, nbrbottom, 0, comm1d, status);
-   MPI_Sendrecv(sbuf_b, count, MPI_FLOAT, nbrbottom, 0, rbuf_b, count, MPI_FLOAT, nbrtop, 0, comm1d, status);
-}
-void Communicator::exchngDataNB( float* sbuf_t, int count_st, float* rbuf_t, int count_rt, float* sbuf_b, int count_sb, float* rbuf_b, int count_rb )
-{
-   MPI_Irecv(rbuf_t, count_rt, MPI_FLOAT, nbrbottom, 0, comm1d, &request[0]);
-   MPI_Irecv(rbuf_b, count_rb, MPI_FLOAT, nbrtop, 0, comm1d, &request[1]);
-   MPI_Isend(sbuf_t, count_st, MPI_FLOAT, nbrtop, 0, comm1d, &request[2]);
-   MPI_Isend(sbuf_b, count_sb, MPI_FLOAT, nbrbottom, 0, comm1d, &request[3]);
-   MPI_Waitall(4, request, status);
+    MPI_Irecv(rbuf_t, count_rt, MPI_FLOAT, nbrbottom, 0, comm1d, &request[0]);
+    MPI_Irecv(rbuf_b, count_rb, MPI_FLOAT, nbrtop, 0, comm1d, &request[1]);
+    MPI_Isend(sbuf_t, count_st, MPI_FLOAT, nbrtop, 0, comm1d, &request[2]);
+    MPI_Isend(sbuf_b, count_sb, MPI_FLOAT, nbrbottom, 0, comm1d, &request[3]);
+    MPI_Waitall(4, request, status);
 }
 //////////////////////////////////////////////////////////////////////////
-//Crap by Martin Sch.
-void Communicator::exchngDataGPU( real* sbuf, int count_s, real* rbuf, int count_r, int nb_rank )
+// Crap by Martin Sch.
+void Communicator::exchngDataGPU(real *sbuf, int count_s, real *rbuf, int count_r, int nb_rank)
 {
-	MPI_Status MSstatus;
-	MPI_Send(sbuf, count_s, MPI_Type_GPU, nb_rank, 0, commGPU);
-	MPI_Recv(rbuf, count_r, MPI_Type_GPU, nb_rank, 0, commGPU, &MSstatus);
-	////test only - please don't use
-	//MPI_Sendrecv(sbuf, count_s, MPI_Type_GPU, nb_rank, 0, rbuf, count_r, MPI_Type_GPU, nb_rank, 0, comm1d, MPI_STATUSES_IGNORE);
+    MPI_Status MSstatus;
+    MPI_Send(sbuf, count_s, MPI_Type_GPU, nb_rank, 0, commGPU);
+    MPI_Recv(rbuf, count_r, MPI_Type_GPU, nb_rank, 0, commGPU, &MSstatus);
+    ////test only - please don't use
+    // MPI_Sendrecv(sbuf, count_s, MPI_Type_GPU, nb_rank, 0, rbuf, count_r, MPI_Type_GPU, nb_rank, 0, comm1d,
+    // MPI_STATUSES_IGNORE);
 }
-void Communicator::sendRecvGPU( real* sbuf, int count_s, real* rbuf, int count_r, int nb_rank )
+void Communicator::sendRecvGPU(real *sbuf, int count_s, real *rbuf, int count_r, int nb_rank)
 {
-	//test only - please don't use
-	MPI_Sendrecv(sbuf, count_s, MPI_Type_GPU, nb_rank, 0, rbuf, count_r, MPI_Type_GPU, nb_rank, 0, commGPU, MPI_STATUSES_IGNORE);
+    // test only - please don't use
+    MPI_Sendrecv(sbuf, count_s, MPI_Type_GPU, nb_rank, 0, rbuf, count_r, MPI_Type_GPU, nb_rank, 0, commGPU,
+                 MPI_STATUSES_IGNORE);
 }
-void Communicator::nbRecvDataGPU( real* rbuf, int count_r, int nb_rank )
+void Communicator::nbRecvDataGPU(real *rbuf, int count_r, int nb_rank)
 {
-	//printf("\n Start Recv Rank: %d, neighbor Rank: %d, request = %d \n", PID, nb_rank, (int)requestGPU.size());
-	//fflush(stdout);
+    // printf("\n Start Recv Rank: %d, neighbor Rank: %d, request = %d \n", PID, nb_rank, (int)requestGPU.size());
+    // fflush(stdout);
 
-	requestGPU.push_back(0);
-	MPI_Irecv(rbuf, count_r, MPI_Type_GPU, nb_rank, 0, commGPU, &requestGPU[rcount]);
-	rcount++;
+    requestGPU.push_back(0);
+    MPI_Irecv(rbuf, count_r, MPI_Type_GPU, nb_rank, 0, commGPU, &requestGPU[rcount]);
+    rcount++;
 
-	//printf("\n End Recv - Rank: %d , neighbor Rank: %d \n", PID, nb_rank);  
-	//fflush(stdout);
+    // printf("\n End Recv - Rank: %d , neighbor Rank: %d \n", PID, nb_rank);
+    // fflush(stdout);
 }
-void Communicator::nbSendDataGPU( real* sbuf, int count_s, int nb_rank )
+void Communicator::nbSendDataGPU(real *sbuf, int count_s, int nb_rank)
 {
-	//printf("\n Start Send Rank: %d, neighbor Rank: %d, request = %d \n", PID, nb_rank, (int)requestGPU.size());
-	//fflush(stdout);
+    // printf("\n Start Send Rank: %d, neighbor Rank: %d, request = %d \n", PID, nb_rank, (int)requestGPU.size());
+    // fflush(stdout);
 
-	requestGPU.push_back(0);
-	MPI_Isend(sbuf, count_s, MPI_Type_GPU, nb_rank, 0, commGPU, &requestGPU[rcount]);
-	rcount++;
+    requestGPU.push_back(0);
+    MPI_Isend(sbuf, count_s, MPI_Type_GPU, nb_rank, 0, commGPU, &requestGPU[rcount]);
+    rcount++;
 
-	//printf("\n End Send - Rank: %d , neighbor Rank: %d \n", PID, nb_rank);  
-	//fflush(stdout);
+    // printf("\n End Send - Rank: %d , neighbor Rank: %d \n", PID, nb_rank);
+    // fflush(stdout);
 }
 void Communicator::waitallGPU()
 {
-	//printf("\n Start Waitall Rank: %d, request = %d \n", PID, (int)requestGPU.size());
-	//fflush(stdout);
-	if(requestGPU.size() > 0)
-	{
-		MPI_Waitall(static_cast<int>(requestGPU.size()), &requestGPU[0],  MPI_STATUSES_IGNORE);
-		requestGPU.resize(0);
-		rcount = 0;
-	}
-	//printf("\n End Waitall \n");
-	//fflush(stdout);
+    // printf("\n Start Waitall Rank: %d, request = %d \n", PID, (int)requestGPU.size());
+    // fflush(stdout);
+    if (requestGPU.size() > 0) {
+        MPI_Waitall(static_cast<int>(requestGPU.size()), &requestGPU[0], MPI_STATUSES_IGNORE);
+        requestGPU.resize(0);
+        rcount = 0;
+    }
+    // printf("\n End Waitall \n");
+    // fflush(stdout);
 }
-void Communicator::sendDataGPU( real* sbuf, int count_s, int nb_rank )
+void Communicator::sendDataGPU(real *sbuf, int count_s, int nb_rank)
 {
-	MPI_Send(sbuf, count_s, MPI_Type_GPU, nb_rank, 0, commGPU);
-}
-void Communicator::waitGPU(int id)
-{
-	MPI_Wait(&requestGPU[id],  MPI_STATUSES_IGNORE);
+    MPI_Send(sbuf, count_s, MPI_Type_GPU, nb_rank, 0, commGPU);
 }
+void Communicator::waitGPU(int id) { MPI_Wait(&requestGPU[id], MPI_STATUSES_IGNORE); }
 void Communicator::resetRequest()
 {
-	if(requestGPU.size() > 0)
-	{
-		requestGPU.resize(0);
-		rcount = 0;
-	}
+    if (requestGPU.size() > 0) {
+        requestGPU.resize(0);
+        rcount = 0;
+    }
 }
 void Communicator::barrierGPU()
 {
-	//printf("\n Start Waitall Rank: %d, request = %d \n", PID, (int)requestGPU.size());
-	//fflush(stdout);
-	if(requestGPU.size() > 0)
-	{
-		MPI_Barrier(commGPU);
-	}
-	//printf("\n End Waitall \n");
-	//fflush(stdout);
-}
-void Communicator::barrier()
-{
-	MPI_Barrier(commGPU);
+    // printf("\n Start Waitall Rank: %d, request = %d \n", PID, (int)requestGPU.size());
+    // fflush(stdout);
+    if (requestGPU.size() > 0) {
+        MPI_Barrier(commGPU);
+    }
+    // printf("\n End Waitall \n");
+    // fflush(stdout);
 }
+void Communicator::barrier() { MPI_Barrier(commGPU); }
 
 //////////////////////////////////////////////////////////////////////////
-void Communicator::exchngDataGeo( int* sbuf_t, int* rbuf_t, int* sbuf_b, int* rbuf_b, int count )
-{
-   MPI_Irecv(rbuf_t, count, MPI_INT, nbrbottom, 0, comm1d, &request[0]);
-   MPI_Irecv(rbuf_b, count, MPI_INT, nbrtop, 0, comm1d, &request[1]);
-   MPI_Isend(sbuf_t, count, MPI_INT, nbrtop, 0, comm1d, &request[2]);
-   MPI_Isend(sbuf_b, count, MPI_INT, nbrbottom, 0, comm1d, &request[3]);
-   MPI_Waitall(4, request, status);
-}
-int Communicator::getPID()
-{
-   return PID;
-}
-int Communicator::getNummberOfProcess()
-{
-   return numprocs;
-}
-int Communicator::getNeighbourTop()
-{
-   return nbrtop;
-}
-int Communicator::getNeighbourBottom()
-{
-   return nbrbottom;
-}
-MPI_Comm Communicator::getCommunicator()
-{
-   return comm1d;
-}
-void Communicator::startTimer()
-{
-   starttime = MPI_Wtime();
-}
-void Communicator::stopTimer()
-{
-   endtime = MPI_Wtime();
-}
-double Communicator::getTime()
-{
-   return endtime - starttime;
-}
-void Communicator::distributeGeometry(unsigned int* dataRoot, unsigned int* dataNode, int dataSizePerNode)
-{
-   MPI_Scatter(dataRoot, dataSizePerNode, MPI_UNSIGNED, dataNode, dataSizePerNode, MPI_UNSIGNED, 0, MPI_COMM_WORLD);
-}
-int Communicator::mapCudaDevice(const int &rank, const int &size, const std::vector<unsigned int> &devices, const int &maxdev)
-{
-   int device = -1;
-   char *host = (char*)malloc(sizeof(char)*size*255);
-   unsigned int *map = (unsigned int*)malloc(sizeof(unsigned int)*size);
-
-   char hostname[255];
-   gethostname(hostname, 254);
-   hostname[254] = 0;
-
-   MPI_Gather(hostname, 255, MPI_BYTE, host, 255, MPI_BYTE, 0, MPI_COMM_WORLD);
-
-   int i, j;	
-   if(rank == 0)
-   {
-      for(i = 0; i < size; i++)
-      {
-         int counter = 0;
-         for(j = 0; j < i; j++)
-         { 
-            if(strcmp(&host[i*255], &host[j*255]) == 0) 
-               counter++;
-         }
-         if(counter >= maxdev)
-         {
-            fprintf(stderr,"More processes than GPUs!\n");
-            exit(1);
-         }
-         map[i] = devices[counter];
-      }
-   }
-
-   MPI_Scatter(map, 1, MPI_UNSIGNED, &device, 1, MPI_UNSIGNED, 0, MPI_COMM_WORLD);
-
-   printf("Rank: %d runs on host: %s with GPU: %d\n", rank, hostname, device);
-
-   free(map);
-   free(host);
-   return device;
-}
+void Communicator::exchngDataGeo(int *sbuf_t, int *rbuf_t, int *sbuf_b, int *rbuf_b, int count)
+{
+    MPI_Irecv(rbuf_t, count, MPI_INT, nbrbottom, 0, comm1d, &request[0]);
+    MPI_Irecv(rbuf_b, count, MPI_INT, nbrtop, 0, comm1d, &request[1]);
+    MPI_Isend(sbuf_t, count, MPI_INT, nbrtop, 0, comm1d, &request[2]);
+    MPI_Isend(sbuf_b, count, MPI_INT, nbrbottom, 0, comm1d, &request[3]);
+    MPI_Waitall(4, request, status);
+}
+int Communicator::getPID() { return PID; }
+int Communicator::getNummberOfProcess() { return numprocs; }
+int Communicator::getNeighbourTop() { return nbrtop; }
+int Communicator::getNeighbourBottom() { return nbrbottom; }
+MPI_Comm Communicator::getCommunicator() { return comm1d; }
+void Communicator::startTimer() { starttime = MPI_Wtime(); }
+void Communicator::stopTimer() { endtime = MPI_Wtime(); }
+double Communicator::getTime() { return endtime - starttime; }
+void Communicator::distributeGeometry(unsigned int *dataRoot, unsigned int *dataNode, int dataSizePerNode)
+{
+    MPI_Scatter(dataRoot, dataSizePerNode, MPI_UNSIGNED, dataNode, dataSizePerNode, MPI_UNSIGNED, 0, MPI_COMM_WORLD);
+}
+int Communicator::mapCudaDevice(const int &rank, const int &size, const std::vector<unsigned int> &devices,
+                                const int &maxdev)
+{
+    int device        = -1;
+    char *host        = (char *)malloc(sizeof(char) * size * 255);
+    unsigned int *map = (unsigned int *)malloc(sizeof(unsigned int) * size);
+
+    char hostname[255];
+    gethostname(hostname, 254);
+    hostname[254] = 0;
+
+    MPI_Gather(hostname, 255, MPI_BYTE, host, 255, MPI_BYTE, 0, MPI_COMM_WORLD);
+
+    int i, j;
+    if (rank == 0) {
+        for (i = 0; i < size; i++) {
+            int counter = 0;
+            for (j = 0; j < i; j++) {
+                if (strcmp(&host[i * 255], &host[j * 255]) == 0)
+                    counter++;
+            }
+            if (counter >= maxdev) {
+                fprintf(stderr, "More processes than GPUs!\n");
+                exit(1);
+            }
+            map[i] = devices[counter];
+        }
+    }
+
+    MPI_Scatter(map, 1, MPI_UNSIGNED, &device, 1, MPI_UNSIGNED, 0, MPI_COMM_WORLD);
+
+    printf("Rank: %d runs on host: %s with GPU: %d\n", rank, hostname, device);
+
+    free(map);
+    free(host);
+    return device;
+}
+
+} // namespace GPU
+} // namespace VF
diff --git a/src/gpu/VirtualFluids_GPU/Communication/Communicator.h b/src/gpu/VirtualFluids_GPU/Communication/Communicator.h
index b584bc88081727ad1e298796ed45f1b05039c4f9..b67cdf264dd6fc9a1af9b9cbad708f47ea5feaf3 100644
--- a/src/gpu/VirtualFluids_GPU/Communication/Communicator.h
+++ b/src/gpu/VirtualFluids_GPU/Communication/Communicator.h
@@ -1,10 +1,11 @@
-#ifndef COMMUNICATOR_H
-#define COMMUNICATOR_H
+#ifndef COMMUNICATOR_GPU_H
+#define COMMUNICATOR_GPU_H
 
 #include <vector>
 
 
 
+
 #include <mpi.h>
 
 #include "VirtualFluids_GPU_export.h"
@@ -20,6 +21,11 @@
 //////////////////////////////////
 
 
+namespace vf
+{
+namespace gpu
+{
+
 
 class VIRTUALFLUIDS_GPU_EXPORT Communicator
 {
@@ -73,5 +79,8 @@ private:
    Communicator(const Communicator&);
 };
 
+} // namespace GPU
+} // namespace VF
+
 #endif
 
diff --git a/src/gpu/VirtualFluids_GPU/Communication/ExchangeData27.cpp b/src/gpu/VirtualFluids_GPU/Communication/ExchangeData27.cpp
index 7b4f4f45181e5b4e89f05d66525ab99b7020648f..8f89656ac6feb7dfe2644a2b6d604ccec510c3cb 100644
--- a/src/gpu/VirtualFluids_GPU/Communication/ExchangeData27.cpp
+++ b/src/gpu/VirtualFluids_GPU/Communication/ExchangeData27.cpp
@@ -7,7 +7,7 @@
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // X
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePreCollDataXGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePreCollDataXGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -88,7 +88,7 @@ void exchangePreCollDataXGPU27(Parameter* para, Communicator* comm, CudaMemoryMa
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePostCollDataXGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePostCollDataXGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -176,7 +176,7 @@ void exchangePostCollDataXGPU27(Parameter* para, Communicator* comm, CudaMemoryM
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // Y
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePreCollDataYGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePreCollDataYGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -257,7 +257,7 @@ void exchangePreCollDataYGPU27(Parameter* para, Communicator* comm, CudaMemoryMa
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePostCollDataYGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePostCollDataYGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -345,7 +345,7 @@ void exchangePostCollDataYGPU27(Parameter* para, Communicator* comm, CudaMemoryM
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // Z
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePreCollDataZGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePreCollDataZGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -426,7 +426,7 @@ void exchangePreCollDataZGPU27(Parameter* para, Communicator* comm, CudaMemoryMa
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePostCollDataZGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePostCollDataZGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -529,7 +529,7 @@ void exchangePostCollDataZGPU27(Parameter* para, Communicator* comm, CudaMemoryM
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //1D domain decomposition
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePreCollDataGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePreCollDataGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	for (unsigned int i = 0; i < (unsigned int)(para->getNumberOfProcessNeighbors(level, "send")); i++)
 	{
@@ -574,7 +574,7 @@ void exchangePreCollDataGPU27(Parameter* para, Communicator* comm, CudaMemoryMan
 
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePostCollDataGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePostCollDataGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	for (unsigned int i = 0; i < (unsigned int)(para->getNumberOfProcessNeighbors(level, "send")); i++)
 	{
@@ -623,7 +623,7 @@ void exchangePostCollDataGPU27(Parameter* para, Communicator* comm, CudaMemoryMa
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //// X
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//void exchangePreCollDataXGPU27(Parameter* para, Communicator* comm, int level)
+//void exchangePreCollDataXGPU27(Parameter* para, vf::gpu::Communicator* comm, int level)
 //{
 //	for (unsigned int i = 0; i < (unsigned int)(para->getNumberOfProcessNeighborsX(level, "send")); i++)
 //	{
@@ -663,7 +663,7 @@ void exchangePostCollDataGPU27(Parameter* para, Communicator* comm, CudaMemoryMa
 //	}
 //}
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//void exchangePostCollDataXGPU27(Parameter* para, Communicator* comm, int level)
+//void exchangePostCollDataXGPU27(Parameter* para, vf::gpu::Communicator* comm, int level)
 //{
 //	for (unsigned int i = 0; i < (unsigned int)(para->getNumberOfProcessNeighborsX(level, "send")); i++)
 //	{
@@ -710,7 +710,7 @@ void exchangePostCollDataGPU27(Parameter* para, Communicator* comm, CudaMemoryMa
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //// Y
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//void exchangePreCollDataYGPU27(Parameter* para, Communicator* comm, int level)
+//void exchangePreCollDataYGPU27(Parameter* para, vf::gpu::Communicator* comm, int level)
 //{
 //	for (unsigned int i = 0; i < (unsigned int)(para->getNumberOfProcessNeighborsY(level, "send")); i++)
 //	{
@@ -750,7 +750,7 @@ void exchangePostCollDataGPU27(Parameter* para, Communicator* comm, CudaMemoryMa
 //	}
 //}
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//void exchangePostCollDataYGPU27(Parameter* para, Communicator* comm, int level)
+//void exchangePostCollDataYGPU27(Parameter* para, vf::gpu::Communicator* comm, int level)
 //{
 //	for (unsigned int i = 0; i < (unsigned int)(para->getNumberOfProcessNeighborsY(level, "send")); i++)
 //	{
@@ -797,7 +797,7 @@ void exchangePostCollDataGPU27(Parameter* para, Communicator* comm, CudaMemoryMa
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //// Z
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//void exchangePreCollDataZGPU27(Parameter* para, Communicator* comm, int level)
+//void exchangePreCollDataZGPU27(Parameter* para, vf::gpu::Communicator* comm, int level)
 //{
 //	for (unsigned int i = 0; i < (unsigned int)(para->getNumberOfProcessNeighborsZ(level, "send")); i++)
 //	{
@@ -837,7 +837,7 @@ void exchangePostCollDataGPU27(Parameter* para, Communicator* comm, CudaMemoryMa
 //	}
 //}
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//void exchangePostCollDataZGPU27(Parameter* para, Communicator* comm, int level)
+//void exchangePostCollDataZGPU27(Parameter* para, vf::gpu::Communicator* comm, int level)
 //{
 //	for (unsigned int i = 0; i < (unsigned int)(para->getNumberOfProcessNeighborsZ(level, "send")); i++)
 //	{
@@ -932,7 +932,7 @@ void exchangePostCollDataGPU27(Parameter* para, Communicator* comm, CudaMemoryMa
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // X
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePreCollDataADXGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePreCollDataADXGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -1013,7 +1013,7 @@ void exchangePreCollDataADXGPU27(Parameter* para, Communicator* comm, CudaMemory
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePostCollDataADXGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePostCollDataADXGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -1101,7 +1101,7 @@ void exchangePostCollDataADXGPU27(Parameter* para, Communicator* comm, CudaMemor
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // Y
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePreCollDataADYGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePreCollDataADYGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -1182,7 +1182,7 @@ void exchangePreCollDataADYGPU27(Parameter* para, Communicator* comm, CudaMemory
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePostCollDataADYGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePostCollDataADYGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -1270,7 +1270,7 @@ void exchangePostCollDataADYGPU27(Parameter* para, Communicator* comm, CudaMemor
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // Z
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePreCollDataADZGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePreCollDataADZGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -1351,7 +1351,7 @@ void exchangePreCollDataADZGPU27(Parameter* para, Communicator* comm, CudaMemory
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangePostCollDataADZGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangePostCollDataADZGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -1486,7 +1486,7 @@ void exchangePostCollDataADZGPU27(Parameter* para, Communicator* comm, CudaMemor
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // X
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangeCollDataF3XGPU(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangeCollDataF3XGPU(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -1564,7 +1564,7 @@ void exchangeCollDataF3XGPU(Parameter* para, Communicator* comm, CudaMemoryManag
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // Y
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangeCollDataF3YGPU(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangeCollDataF3YGPU(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
@@ -1642,7 +1642,7 @@ void exchangeCollDataF3YGPU(Parameter* para, Communicator* comm, CudaMemoryManag
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // Z
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void exchangeCollDataF3ZGPU(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level)
+void exchangeCollDataF3ZGPU(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level)
 {
 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//copy Device to Host
diff --git a/src/gpu/VirtualFluids_GPU/Communication/ExchangeData27.h b/src/gpu/VirtualFluids_GPU/Communication/ExchangeData27.h
index 0547dac4296896b69e50973befd759680f048076..34c9cba801c675bdf4c2cd39daca3be2d7918dbe 100644
--- a/src/gpu/VirtualFluids_GPU/Communication/ExchangeData27.h
+++ b/src/gpu/VirtualFluids_GPU/Communication/ExchangeData27.h
@@ -9,31 +9,31 @@
 
 //////////////////////////////////////////////////////////////////////////
 //1D domain decomposition
-extern "C" void exchangePreCollDataGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangePostCollDataGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePreCollDataGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePostCollDataGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
 //////////////////////////////////////////////////////////////////////////
 //3D domain decomposition
-extern "C" void exchangePreCollDataXGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangePreCollDataYGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangePreCollDataZGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangePostCollDataXGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangePostCollDataYGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangePostCollDataZGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePreCollDataXGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePreCollDataYGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePreCollDataZGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePostCollDataXGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePostCollDataYGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePostCollDataZGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
 //////////////////////////////////////////////////////////////////////////
 //3D domain decomposition convection diffusion
-extern "C" void exchangePreCollDataADXGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangePreCollDataADYGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangePreCollDataADZGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangePostCollDataADXGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangePostCollDataADYGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangePostCollDataADZGPU27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePreCollDataADXGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePreCollDataADYGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePreCollDataADZGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePostCollDataADXGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePostCollDataADYGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangePostCollDataADZGPU27(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
 //////////////////////////////////////////////////////////////////////////
 //3D domain decomposition F3 - K18/K20
-extern "C" void exchangeCollDataF3XGPU( Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangeCollDataF3YGPU( Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
-extern "C" void exchangeCollDataF3ZGPU( Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangeCollDataF3XGPU( Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangeCollDataF3YGPU( Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
+extern "C" void exchangeCollDataF3ZGPU( Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager, int level);
 //////////////////////////////////////////////////////////////////////////
-extern "C" void barrierGPU(Communicator* comm);
+extern "C" void barrierGPU(vf::gpu::Communicator* comm);
 //////////////////////////////////////////////////////////////////////////
 
 #endif
diff --git a/src/gpu/VirtualFluids_GPU/GPU/AdvecDiffBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/AdvecDiffBCs27.cu
index 6e67ecda71969b19061d92cff8f6d0eb241f4138..0643e59cc3052d1cfb67b5c3e59ed531d54625de 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/AdvecDiffBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/AdvecDiffBCs27.cu
@@ -1,7 +1,10 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 //////////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void QADPress7(  int inx,
diff --git a/src/gpu/VirtualFluids_GPU/GPU/CP27.cu b/src/gpu/VirtualFluids_GPU/GPU/CP27.cu
index afaf110ad69a1f7337ffb6fc69126dec20e7cc28..289152f17d4d149837e1c592718b3385a7f79969 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/CP27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/CP27.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 ////////////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void CalcCP27(real* DD, 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Calc2ndMoments27.cu b/src/gpu/VirtualFluids_GPU/GPU/Calc2ndMoments27.cu
index 2e0a0e4892f554ed9201483c3c7c73034795e6f2..337e518c70462fbfbc1fafcfe7a5c34186f74849 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Calc2ndMoments27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Calc2ndMoments27.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu b/src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu
index 69c0b88596f185812c5cb30fac47daca8d820ddf..ce3082817776d5b8ed6237b027354956df3a8777 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu
@@ -8,7 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 ////////////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void LBCalcMac27( real* vxD,
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu b/src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu
index 0301d858839d2dde4677a8784bd1dd70cc08cbd8..5c3a12551c2cffdd0b75ce283d9ee584a7c4b808 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu b/src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu
index 0da46c500c13a0ef8f3d48bf74a3eee272c530b6..14c9b77ed2236ea517062944e37297747c5c3718 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu
@@ -8,7 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Cumulant27chim.cu b/src/gpu/VirtualFluids_GPU/GPU/Cumulant27chim.cu
index b6d77f648e81c73b6ee472b62e18f7b98c83676e..bb34a11a7337a499f8558a48d27c3547932618a6 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Cumulant27chim.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Cumulant27chim.cu
@@ -8,7 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Cumulant_F3_27.cu b/src/gpu/VirtualFluids_GPU/GPU/Cumulant_F3_27.cu
index 6b23233363be8f7b74f27ccafcfa9c7404713da2..8763482321aaa1c1dc5f21794192a5227a8f377b 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Cumulant_F3_27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Cumulant_F3_27.cu
@@ -8,7 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 /////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu b/src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu
index f48d6a2a5851208d33513fde1e2259dc29c1698c..7fb12d17784fb13c2e11dd7dedb7521444be11c2 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 ////////////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void DragLiftPost27(  real* DD, 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/EnstrophyAnalyzer.cu b/src/gpu/VirtualFluids_GPU/GPU/EnstrophyAnalyzer.cu
index 5380ce071a1f1e101d9ae97aeca3373de73cb3de..a020d3dfd904b0425296b48e867c07e7bad4dd58 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/EnstrophyAnalyzer.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/EnstrophyAnalyzer.cu
@@ -18,7 +18,9 @@
 #include "Parameter/Parameter.h"
 // includes, kernels
 #include "GPU/GPU_Kernels.cuh"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 __global__                 void enstrophyKernel  ( real* veloX, real* veloY, real* veloZ, real* rho, uint* neighborX, uint* neighborY, uint* neighborZ, uint* neighborWSB, uint* geo, real* enstrophy, uint* isFluid, uint size_Mat );
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ExchangeData27.cu b/src/gpu/VirtualFluids_GPU/GPU/ExchangeData27.cu
index 8ff384a9c7fcffb2040fe5402f89907333a04c19..980b39042c8d1bf4d47e22af94494480d32db60c 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ExchangeData27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ExchangeData27.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void getSendFsPost27(real* DD,
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Init27.cu b/src/gpu/VirtualFluids_GPU/GPU/Init27.cu
index c428913b86332e69914ce5ed8092db5ad6b324a4..7b3426b0117a4f36da0088727f31422839edbebc 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Init27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Init27.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 ////////////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void LBInit27( int myid,
diff --git a/src/gpu/VirtualFluids_GPU/GPU/KineticEnergyAnalyzer.cu b/src/gpu/VirtualFluids_GPU/GPU/KineticEnergyAnalyzer.cu
index e6e5c9b11447028b3f9b79e9ce551cb7d3d7e841..42e424062ffb3b13e1e787ceece30a05eb5527e2 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/KineticEnergyAnalyzer.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/KineticEnergyAnalyzer.cu
@@ -19,7 +19,9 @@
 #include "Parameter/Parameter.h"
 // includes, kernels
 #include "GPU/GPU_Kernels.cuh"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 __global__                 void kineticEnergyKernel  (real* vx, real* vy, real* vz, real* rho, uint* neighborX, uint* neighborY, uint* neighborZ, uint* neighborWSB, uint* geo, real* kineticEnergy, uint* isFluid, uint size_Mat);
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu
index 72f10554242b2743074e36720758e6f305013b54..9c8392ff01859c42fe180d2127ada52a703abfdc 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu
@@ -8,7 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 //////////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void QDevice3rdMomentsComp27(  int inx,
@@ -2428,7 +2430,7 @@ extern "C" __global__ void QDevice27(int inx,
 
       real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
-	  //böser lecktest
+	  //b�ser lecktest
 	  //q = q_dirE[k];
    //   if (q>=zero && q<=one)
    //   {
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Particles.cu b/src/gpu/VirtualFluids_GPU/GPU/Particles.cu
index f81d3f4e813a0753627e1ddf2808e799fbbe0738..a286434d805c0b60de2b36b61e5ebe65c7a45d11 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Particles.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Particles.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu
index 149daf632f2e1a1ece46c0524228d157658745af..4d647cdd1f5cbefc2423fa9b95ecde29c3c89dbb 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void QInflowScaleByPressDevice27(  real* rhoBC,
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Random.cu b/src/gpu/VirtualFluids_GPU/GPU/Random.cu
index dae40e1b42561e54268950b817b0e35496356d77..702021f8145f2456a0d405814615b56d7d575422 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Random.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Random.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 //random numbers
 #include <curand.h>
 #include <curand_kernel.h>
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ScaleCF27.cu b/src/gpu/VirtualFluids_GPU/GPU/ScaleCF27.cu
index 43f06fb0f8dce6c5983f0123a49d73111bad396a..8be2edf3eecb512623572f925b20d0dd8682585d 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ScaleCF27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ScaleCF27.cu
@@ -8,7 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 //////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void scaleCF_0817_comp_27( real* DC, 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ScaleCF_F3_27.cu b/src/gpu/VirtualFluids_GPU/GPU/ScaleCF_F3_27.cu
index 0b4c4aae603c714756546ae29b0865840ea62774..5bafb27d28a94491d78c7d7572c959d6ec0cfb21 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ScaleCF_F3_27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ScaleCF_F3_27.cu
@@ -8,7 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 //////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void scaleCF_comp_D3Q27F3_2018(real* DC,
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu b/src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu
index 4b085a7d6ba9cd2e509adf8ff89fa6cc84664cbf..06d5086cc7f57c8245517f922662e8eea4571d05 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu
@@ -8,7 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 //////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void scaleFC_0817_comp_27( real* DC, 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ScaleFC_F3_27.cu b/src/gpu/VirtualFluids_GPU/GPU/ScaleFC_F3_27.cu
index 3cccd8cb1f496f141b871cc5e5a2b244e44bd9de..efb0bf523b74bcbf17c8030ca53aaa127bca96e8 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ScaleFC_F3_27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ScaleFC_F3_27.cu
@@ -8,7 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 //////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void scaleFC_comp_D3Q27F3_2018(real* DC,
diff --git a/src/gpu/VirtualFluids_GPU/GPU/SchlafferBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/SchlafferBCs27.cu
index 8fa1ff3a1e7251809fc663842d0e6b414f2af05e..9a28050cdb80d90de2746db83716dd52ece04ad6 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/SchlafferBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/SchlafferBCs27.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void PressSchlaff27(real* rhoBC,
diff --git a/src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu b/src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu
index fe8d74439592e7833cfc4274d36d8189854689e9..baad61888971dfcbaf6c04f8af60d09f9d433dd6 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 ////////////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void GetVeloforForcing27( real* DD, 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu
index 30540769f2641e47d7e44a1542165487c8e2724c..fc792a2c3a0f7438f4ee0882988a39f7260f21be 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 //////////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void QSlipDevice27(real* DD, 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ThinWallBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/ThinWallBCs27.cu
index 78e6f08dc523453214f0ec827a6db82c16b70d98..715a94cbf60e3f93737826da455fb232f1cd8f5d 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ThinWallBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ThinWallBCs27.cu
@@ -9,7 +9,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 /////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void QVelDeviceCompThinWallsPartOne27(
diff --git a/src/gpu/VirtualFluids_GPU/GPU/VelocityBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/VelocityBCs27.cu
index f3288175c61888e6125c7159df9be099d3b7f2c4..e7f25874dca46df4a803f5c9e30a20bc480a3a10 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/VelocityBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/VelocityBCs27.cu
@@ -9,7 +9,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 //////////////////////////////////////////////////////////////////////////////
 extern "C" __global__ void QVelDeviceCompPlusSlip27(int inx,
diff --git a/src/gpu/VirtualFluids_GPU/GPU/WaleCumulant27.cu b/src/gpu/VirtualFluids_GPU/GPU/WaleCumulant27.cu
index d39e229c49fb14265132fc74d5bb3ba01ea59576..e911a716ce74c3f4ff8c323a733269dc7d260dc7 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/WaleCumulant27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/WaleCumulant27.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu b/src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu
index 44319be27246c5b771e92d2b40d4812a88007980..20ef490ceb6224aef693ec0374d457fd2a4b9cde 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu
@@ -1,7 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/Init/DefineGrid.cpp b/src/gpu/VirtualFluids_GPU/Init/DefineGrid.cpp
index ef718cd294c6f7ce8fd6ceb050398d19e2c15964..98119ce6f2d5a5bcd630cb33d210a9d52080fb66 100644
--- a/src/gpu/VirtualFluids_GPU/Init/DefineGrid.cpp
+++ b/src/gpu/VirtualFluids_GPU/Init/DefineGrid.cpp
@@ -6,7 +6,7 @@
 #include <helper_cuda.h>
 
 ////////////////////////////////////////////////////////////////////////////////
-void defineGrid(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager)
+void defineGrid(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager)
 {
 	for (int lev=para->getFine(); lev >= para->getCoarse(); lev--)
 	{
diff --git a/src/gpu/VirtualFluids_GPU/Init/DefineGrid.h b/src/gpu/VirtualFluids_GPU/Init/DefineGrid.h
index 3b8d18adf0cf0f3169fb2e3e108d58a670d9fd9c..474ab9080993f20c807ec2ec13e1c770415ad732 100644
--- a/src/gpu/VirtualFluids_GPU/Init/DefineGrid.h
+++ b/src/gpu/VirtualFluids_GPU/Init/DefineGrid.h
@@ -6,6 +6,6 @@
 #include "Communication/Communicator.h"
 #include "GPU/CudaMemoryManager.h"
 
-extern "C" void defineGrid(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager);
+extern "C" void defineGrid(Parameter* para, vf::gpu::Communicator* comm, CudaMemoryManager* cudaManager);
 
 #endif
diff --git a/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.cpp b/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.cpp
index b52e4eb64ab6f4582d4a5c079eac4aac5199356e..4c1bca688e27ef8696d993bbacbef8547245263e 100644
--- a/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.cpp
+++ b/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.cpp
@@ -1,7 +1,7 @@
 #include "Init/ReadGeometry.h"
 
 ////////////////////////////////////////////////////////////////////////////////
-void readGeometry(Parameter* para, Communicator* comm, int lev, std::string geometryFile)
+void readGeometry(Parameter* para, vf::gpu::Communicator* comm, int lev, std::string geometryFile)
 {
    int dataSizePerGPU = para->getParH(lev)->gridNX * para->getParH(lev)->gridNY * para->getParH(lev)->gridNZ;
    unsigned int dataSizeTotal = para->getParH(lev)->gridNX * para->getParH(lev)->gridNY * para->getParH(lev)->gridNZ * para->getNumprocs();
diff --git a/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.h b/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.h
index 26c070fa4431a602a1af522516163673adfd3565..5bc42081e065188bbe6711b61d160643149ee961 100644
--- a/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.h
+++ b/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.h
@@ -7,6 +7,6 @@
 
 #include <iostream>
 
-extern "C" void readGeometry(Parameter* para, Communicator* comm, int lev, std::string geometryFile);
+extern "C" void readGeometry(Parameter* para, vf::gpu::Communicator* comm, int lev, std::string geometryFile);
 
 #endif
diff --git a/src/gpu/VirtualFluids_GPU/Init/SetParameter.cpp b/src/gpu/VirtualFluids_GPU/Init/SetParameter.cpp
index 08fd70961a8a9d0e89526113156e00bb41281dbb..a4279516b84f6d49eab385d09cdd456e83dff467 100644
--- a/src/gpu/VirtualFluids_GPU/Init/SetParameter.cpp
+++ b/src/gpu/VirtualFluids_GPU/Init/SetParameter.cpp
@@ -2,7 +2,7 @@
 //#include "Interface_OpenFOAM/Interface.h"
 //
 //////////////////////////////////////////////////////////////////////////////////
-//void setParameters(Parameter* para, Communicator* comm, std::string &cstr)
+//void setParameters(Parameter* para, vf::gpu::Communicator* comm, std::string &cstr)
 //{
 //   ConfigFile cf(cstr.c_str());
 //   if ( !cf.read() )
diff --git a/src/gpu/VirtualFluids_GPU/Init/SetParameter.h b/src/gpu/VirtualFluids_GPU/Init/SetParameter.h
index 9fad54f04740f69122d74ef7e8c32b3af69af208..7298c40f2c3efd5fa3c82748f856c7c0ba981b83 100644
--- a/src/gpu/VirtualFluids_GPU/Init/SetParameter.h
+++ b/src/gpu/VirtualFluids_GPU/Init/SetParameter.h
@@ -9,7 +9,7 @@
 //
 //#include <iostream>
 //
-//void setParameters(Parameter* para, Communicator* comm, std::string &cstr);
+//void setParameters(Parameter* para, vf::gpu::Communicator* comm, std::string &cstr);
 //std::string getGridPath(Parameter* para, std::string Gridpath);
 //
 //#endif
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/ChimeraTransformation.h b/src/gpu/VirtualFluids_GPU/Kernel/ChimeraTransformation.h
index 40fab9d729c278dee2e89e34433d74061bd9813e..f7822d63fa0efd34b27773dffdeebddf521a8792 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/ChimeraTransformation.h
+++ b/src/gpu/VirtualFluids_GPU/Kernel/ChimeraTransformation.h
@@ -1,7 +1,9 @@
 #ifndef CHIMERA_TRANSFORMATION_H
 #define CHIMERA_TRANSFORMATION_H
 
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 
 ////////////////////////////////////////////////////////////////////////////////
 //! \brief forward chimera transformation \ref forwardInverseChimeraWithK
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Compressible/Mod27/ADComp27/ADComp27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Compressible/Mod27/ADComp27/ADComp27_Device.cu
index 34c71db68f102d989e590994fbe88bdcae8e1bb8..3ad149064a7f7a52a514f66066d179897591eb7f 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Compressible/Mod27/ADComp27/ADComp27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Compressible/Mod27/ADComp27/ADComp27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_KERNEL_AD_COMP_27(real diffusivity,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Compressible/Mod7/ADComp7/ADComp7_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Compressible/Mod7/ADComp7/ADComp7_Device.cu
index 15ecdd4764127a68cdc6b07e1a69a3294399416c..d5de82af54673e4e50af7c5639759ac9f1b105a0 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Compressible/Mod7/ADComp7/ADComp7_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Compressible/Mod7/ADComp7/ADComp7_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_AD_Comp_7(real diffusivity,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Incompressible/Mod27/ADIncomp27/ADIncomp27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Incompressible/Mod27/ADIncomp27/ADIncomp27_Device.cu
index 0daf75c0a47bca0c26918b77e92ab442cdc9ccf4..d9586b2eb599c451226482c1d3502104ad864d8f 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Incompressible/Mod27/ADIncomp27/ADIncomp27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Incompressible/Mod27/ADIncomp27/ADIncomp27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_AD_Incomp_27(real diffusivity,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Incompressible/Mod7/ADIncomp7/ADIncomp7_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Incompressible/Mod7/ADIncomp7/ADIncomp7_Device.cu
index 43d02e0f1fb7282efb4a1f7ee3c00d33d8a68f4a..7ae4535d028b4da4fe53681219ef90705f990d06 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Incompressible/Mod7/ADIncomp7/ADIncomp7_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/AdvectionDiffusion/Incompressible/Mod7/ADIncomp7/ADIncomp7_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_AD_Incomp_7(real diffusivity,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/BGK/BGKCompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/BGK/BGKCompSP27_Device.cu
index 717007d8436ecd735afe187fba99875822b19a44..c40397041a70ad99525bc2947724ed8de1b7121a 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/BGK/BGKCompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/BGK/BGKCompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/BGKPlus/BGKPlusCompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/BGKPlus/BGKPlusCompSP27_Device.cu
index 9f2822f384dd66feb5c49cb239e33e238a67d28c..25138592cc9d602e66f0b22ae565fadcce44f27d 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/BGKPlus/BGKPlusCompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/BGKPlus/BGKPlusCompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_BGK_Plus_Comp_SP_27(
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/Cascade/CascadeCompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/Cascade/CascadeCompSP27_Device.cu
index d093a32022d63f125ed6d2ef4c24de01a41cedab..b024c2627235ffdbd34fa8234b88497b083074cf 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/Cascade/CascadeCompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/Cascade/CascadeCompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_Cascade_Comp_SP_27(real omega,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/Cumulant/CumulantCompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/Cumulant/CumulantCompSP27_Device.cu
index dd5196fee8b21e96b98540c140110d7e4fb31a29..e76926b49b44eecd4b42a074e529d6f4af2936ea 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/Cumulant/CumulantCompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/Cumulant/CumulantCompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_Cum_Comp_SP_27(real omega,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantAll4/CumulantAll4CompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantAll4/CumulantAll4CompSP27_Device.cu
index 99f7a4c034b4912e1ee2ce8f15f23e2ad5c459ac..599892c2fb170e3cba2b12356cbfbf1497a94edd 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantAll4/CumulantAll4CompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantAll4/CumulantAll4CompSP27_Device.cu
@@ -2,7 +2,9 @@
 
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_Cumulant_D3Q27All4(	real omega,
@@ -231,7 +233,7 @@ extern "C" __global__ void LB_Kernel_Cumulant_D3Q27All4(	real omega,
 							   //				mfbbc-mfbba;
 							   ////////////////////////////////////////////////////////////////////////////////////
 							   // oMdrho assembler style -------> faaaaaastaaaa
-							   // or much sloooowaaaa ... it depändssssss on sadaku
+							   // or much sloooowaaaa ... it dep�ndssssss on sadaku
 			real m0, m1, m2;
 			//real oMdrho;
 			//{
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK15/CumulantK15Comp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK15/CumulantK15Comp_Device.cu
index 4fb90b7093e9608cb5dce616e56f79d90f540067..7349be5847c2ea936f7d999a4ce91aee02c17973 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK15/CumulantK15Comp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK15/CumulantK15Comp_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_CumulantK15Comp(real omega,
@@ -227,7 +229,7 @@ extern "C" __global__ void LB_Kernel_CumulantK15Comp(real omega,
 							   //				mfbbc-mfbba;
 							   ////////////////////////////////////////////////////////////////////////////////////
 							   // oMdrho assembler style -------> faaaaaastaaaa
-							   // or much sloooowaaaa ... it depändssssss on sadaku
+							   // or much sloooowaaaa ... it dep�ndssssss on sadaku
 			real m0, m1, m2;
 			//real oMdrho;
 			//{
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK15Bulk/CumulantK15BulkComp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK15Bulk/CumulantK15BulkComp_Device.cu
index 1a0efdf8e4e70633f4b0052763813e0639e387d3..986e8163964bef6a62f1884f4e949f0b590ab859 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK15Bulk/CumulantK15BulkComp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK15Bulk/CumulantK15BulkComp_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_CumulantK15BulkComp(real omega,
@@ -227,7 +229,7 @@ extern "C" __global__ void LB_Kernel_CumulantK15BulkComp(real omega,
 							   //				mfbbc-mfbba;
 							   ////////////////////////////////////////////////////////////////////////////////////
 							   // oMdrho assembler style -------> faaaaaastaaaa
-							   // or much sloooowaaaa ... it depändssssss on sadaku
+							   // or much sloooowaaaa ... it dep�ndssssss on sadaku
 			real m0, m1, m2;
 			real vx2;
 			real vy2;
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK15Sponge/CumulantK15SpongeComp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK15Sponge/CumulantK15SpongeComp_Device.cu
index 3a916bb894c0e22facefb995f4391d4f3cd27a49..c8be85d2ef05725b12a4b2e37bd262c430717723 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK15Sponge/CumulantK15SpongeComp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK15Sponge/CumulantK15SpongeComp_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_CumulantK15SpongeComp(real omegaIn,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17Comp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17Comp_Device.cu
index 9ccd7dcb4ede3a493fe6c2621b03a515544bec96..4c20e465596a747389743b6658edecc9b3887f33 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17Comp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17Comp_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 
@@ -229,7 +231,7 @@ extern "C" __global__ void LB_Kernel_CumulantK17Comp(real omega,
 							   //				mfbbc-mfbba;
 							   ////////////////////////////////////////////////////////////////////////////////////
 							   // oMdrho assembler style -------> faaaaaastaaaa
-							   // or much sloooowaaaa ... it depändssssss on sadaku
+							   // or much sloooowaaaa ... it dep�ndssssss on sadaku
 			real m0, m1, m2;
 			//real oMdrho;
 			//{
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17Bulk/CumulantK17BulkComp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17Bulk/CumulantK17BulkComp_Device.cu
index 147b814a3c603637c8bb721e3fe96a7b6f2ce8ba..0e10a2d9540fd00d231f3d27ea4bf535949b8838 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17Bulk/CumulantK17BulkComp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17Bulk/CumulantK17BulkComp_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_CumulantK17BulkComp(real omega,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17chim/CumulantK17CompChim_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17chim/CumulantK17CompChim_Device.cu
index 6b316deb8736609ce73133754face5f82524e2d2..8c95f96730293446d0f066661e706270171270a8 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17chim/CumulantK17CompChim_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17chim/CumulantK17CompChim_Device.cu
@@ -33,7 +33,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "Kernel/ChimeraTransformation.h"
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK18/CumulantK18Comp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK18/CumulantK18Comp_Device.cu
index 2249e5857cb8c5d28b53658c25bbb9c3fc3e62c0..8d5b10b1ecf7076147dec425823233ba97fa11b8 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK18/CumulantK18Comp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK18/CumulantK18Comp_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_CumulantK18Comp(
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK20/CumulantK20Comp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK20/CumulantK20Comp_Device.cu
index 9edae07fabf8f2c18fb86055574b153e960d8dec..959a9e6d748deed1f2b509ae86b65f4ebbbdc1c1 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK20/CumulantK20Comp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK20/CumulantK20Comp_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_CumulantK20Comp(
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/MRT/MRTCompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/MRT/MRTCompSP27_Device.cu
index 87984a4d963631462b3efac0f31667667ea1c96c..9bde8228fdab4a572496bb1e0478efe2cd9dedfa 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/MRT/MRTCompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/MRT/MRTCompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_MRT_Comp_SP_27(real omega,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/BGK/BGKIncompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/BGK/BGKIncompSP27_Device.cu
index 3869fc27108d17ba2f04d1bc9192a25d3aa2aab8..138b17170fc80b6f30c48f19111032d760915293 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/BGK/BGKIncompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/BGK/BGKIncompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_BGK_Incomp_SP_27(real omega,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/BGKPlus/BGKPlusIncompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/BGKPlus/BGKPlusIncompSP27_Device.cu
index e82de30a7d8484e50b8ce9099138845ac773af79..deb8d94dc631c1dfaabddbf97b568d82ab47ebf6 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/BGKPlus/BGKPlusIncompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/BGKPlus/BGKPlusIncompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_BGK_Plus_Incomp_SP_27(real omega,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/Cascade/CascadeIncompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/Cascade/CascadeIncompSP27_Device.cu
index 649bd0fc3503f7809e0c0b9f72f86f59a68d26f8..025729760d975e04bb51214f59715c0cd8c8685f 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/Cascade/CascadeIncompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/Cascade/CascadeIncompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_Cascade_Incomp_SP_27(real omega,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/Cumulant1hSP27/Cumulant1hIncompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/Cumulant1hSP27/Cumulant1hIncompSP27_Device.cu
index f8f8b1cedf78145382ed911d07a3590adee4c687..84bf396c47301fe80cca36294a869c0bdd87f9e6 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/Cumulant1hSP27/Cumulant1hIncompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/Cumulant1hSP27/Cumulant1hIncompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_Cum_1h_Incomp_SP_27(real omega,
@@ -226,7 +228,7 @@ extern "C" __global__ void LB_Kernel_Cum_1h_Incomp_SP_27(real omega,
 																	   //				mfbbc-mfbba;
 																	   ////////////////////////////////////////////////////////////////////////////////////
 																	   // oMdrho assembler style -------> faaaaaastaaaa
-																	   // or much sloooowaaaa ... it depändssssss on sadaku
+																	   // or much sloooowaaaa ... it dep�ndssssss on sadaku
 			real m0, m1, m2;
 			//real oMdrho;
 			//{
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/CumulantIsoSP27/CumulantIsoIncompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/CumulantIsoSP27/CumulantIsoIncompSP27_Device.cu
index 4baf5ffddc9e2db77c78d62d244054245b930d3e..753bb0be77c2e269e77e84f12ccf52be71059eb3 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/CumulantIsoSP27/CumulantIsoIncompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/CumulantIsoSP27/CumulantIsoIncompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_Cum_IsoTest_Incomp_SP_27(real omega,
@@ -183,7 +185,7 @@ extern "C" __global__ void LB_Kernel_Cum_IsoTest_Incomp_SP_27(real omega,
 																	   //				mfbbc-mfbba;
 																	   ////////////////////////////////////////////////////////////////////////////////////
 																	   // oMdrho assembler style -------> faaaaaastaaaa
-																	   // or much sloooowaaaa ... it depändssssss on sadaku
+																	   // or much sloooowaaaa ... it dep�ndssssss on sadaku
 			real m0, m1, m2;
 			//real oMdrho;
 			//{
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/CumulantK15/CumulantK15Incomp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/CumulantK15/CumulantK15Incomp_Device.cu
index 1aece78752106eccdf5a9c0ab22985eceb58fd27..9c8ca3a6802add72614b58771e6104ab68fa01ec 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/CumulantK15/CumulantK15Incomp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/CumulantK15/CumulantK15Incomp_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_CumulantK15Incomp(real omega,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/MRT/MRTIncompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/MRT/MRTIncompSP27_Device.cu
index 97b5e96aae03c2d881689026665e84ca00c2a349..be2b2333ab7375b5c8b851d705b562fce87f1d2a 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/MRT/MRTIncompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Incompressible/MRT/MRTIncompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_MRT_Incomp_SP_27(real omega,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/PorousMediaKernels/FluidFlow/Compressible/CumulantOne/PMCumulantOneCompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/PorousMediaKernels/FluidFlow/Compressible/CumulantOne/PMCumulantOneCompSP27_Device.cu
index 734b71e7a4b227b90f83587f47c1357a6d44e85a..2f42b717259aeab052be08b6ef6485771734ad98 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/PorousMediaKernels/FluidFlow/Compressible/CumulantOne/PMCumulantOneCompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/PorousMediaKernels/FluidFlow/Compressible/CumulantOne/PMCumulantOneCompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_PM_Cum_One_Comp_SP_27(real omega,
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK15/WaleCumulantK15Comp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK15/WaleCumulantK15Comp_Device.cu
index a23d1c480b31befbe1ece6b83b20fa415c94a0e7..23c4d72d23a42977cf44cce8bcd622e9edc66968 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK15/WaleCumulantK15Comp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK15/WaleCumulantK15Comp_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_WaleCumulantK15Comp(
@@ -421,7 +423,7 @@ extern "C" __global__ void LB_Kernel_WaleCumulantK15Comp(
 				//nuTurb = pow(delta, two) * pow(SumSDsq, c3o2) / (pow(SumSsq, c5o2) + pow(SumSDsq, c5o4) + smallSingle);     //pow
 				//nuTurb = (delta * delta) * (real)pow((double)SumSDsq, 1.5) / ((real)pow((double)SumSsq, 2.5) + (real)pow((double)SumSDsq, 1.25) + smallSingle); //SMversion//
 				nuTurb = (delta * delta) * (real)pow((double)SumSDsq, 0.25) /
-					((real)pow(((real)pow((double)SumSsq, 0.5) / ((real)pow((double)SumSDsq, 0.25) + c10eM10)), 5.0) + c1o1); //SMversion2//
+					((real)pow(((double)pow((double)SumSsq, 0.5) / ((real)pow((double)SumSDsq, 0.25) + c10eM10)), 5.0) + c1o1); //SMversion2//
 																																	  /////////////////////////////////
 																																	  //nuTurb = rho * powf(delta, two) * powf(SumSd*SumSd, c3o2) / (powf(SumS*SumS, c5o2) + powf(SumSd*SumSd, c5o4));
 																																	  //nuTurb = powf(delta, two) * powf(SumSd*SumSd, c3o2) / (powf(SumS*SumS, c5o2) + powf(SumSd*SumSd, c5o4));
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK15BySoniMalav/WaleBySoniMalavCumulantK15Comp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK15BySoniMalav/WaleBySoniMalavCumulantK15Comp_Device.cu
index 7d3e1fab7d01b8a4d2b546e6227279f5ed46431f..a791e1114ddad8b2bc2e7eaa3ac5d9690fd3e11a 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK15BySoniMalav/WaleBySoniMalavCumulantK15Comp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK15BySoniMalav/WaleBySoniMalavCumulantK15Comp_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_WaleBySoniMalavCumulantK15Comp(
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK17/WaleCumulantK17Comp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK17/WaleCumulantK17Comp_Device.cu
index 91e91bc0ff5e1582eab279c77e9fa0b419ce06ea..0ff953e261d7c726a360b5952ac5b58c32c96791 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK17/WaleCumulantK17Comp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK17/WaleCumulantK17Comp_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_WaleCumulantK17Comp(
@@ -422,7 +424,7 @@ extern "C" __global__ void LB_Kernel_WaleCumulantK17Comp(
 				//nuTurb = pow(delta, two) * pow(SumSDsq, c3o2) / (pow(SumSsq, c5o2) + pow(SumSDsq, c5o4) + smallSingle);     //pow
 				//nuTurb = (delta * delta) * (real)pow((double)SumSDsq, 1.5) / ((real)pow((double)SumSsq, 2.5) + (real)pow((double)SumSDsq, 1.25) + smallSingle); //SMversion//
 				nuTurb = (delta * delta) * (real)pow((double)SumSDsq, 0.25) /
-					((real)pow(((real)pow((double)SumSsq, 0.5) / ((real)pow((double)SumSDsq, 0.25) + c10eM10)), 5.0) + c1o1); //SMversion2//
+					((real)pow(((double)pow((double)SumSsq, 0.5) / ((real)pow((double)SumSDsq, 0.25) + c10eM10)), 5.0) + c1o1); //SMversion2//
 																																	  /////////////////////////////////
 																																	  //nuTurb = rho * powf(delta, two) * powf(SumSd*SumSd, c3o2) / (powf(SumS*SumS, c5o2) + powf(SumSd*SumSd, c5o4));
 																																	  //nuTurb = powf(delta, two) * powf(SumSd*SumSd, c3o2) / (powf(SumS*SumS, c5o2) + powf(SumSd*SumSd, c5o4));
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK17Debug/WaleCumulantK17DebugComp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK17Debug/WaleCumulantK17DebugComp_Device.cu
index b0e0b65064e2395f5049eeb2df3b8260125fbf4e..9d4efb2ab81a30d27a7909212e8c35847fded3ea 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK17Debug/WaleCumulantK17DebugComp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/WaleKernels/FluidFlow/Compressible/CumulantK17Debug/WaleCumulantK17DebugComp_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Kernel_WaleCumulantK17DebugComp(
diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
index c378276191e57720ea65999da56a9ca83f401a13..6f468507949a62933c278b1c17801ea25536b07f 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
+++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
@@ -78,7 +78,7 @@ void Simulation::init(SPtr<Parameter> para, SPtr<GridProvider> gridProvider, std
    this->gridProvider = gridProvider;
    this->cudaManager = cudaManager;
    gridProvider->initalGridInformations();
-   comm = Communicator::getInstanz();
+   comm = vf::gpu::Communicator::getInstanz();
    this->para = para;
 
    para->setMyID(comm->getPID());
diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.h b/src/gpu/VirtualFluids_GPU/LBM/Simulation.h
index 7a91331a76e565f9240e3a51ae45a88c753e9ee1..ae46034ce3e6080e0b9f03a92dd0326d640c6f32 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.h
+++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.h
@@ -14,7 +14,14 @@
 #include "LBM/LB.h"
 #include "VirtualFluids_GPU_export.h"
 
+namespace vf
+{
+namespace gpu
+{
 class Communicator;
+}
+}
+
 class CudaMemoryManager;
 class Parameter;
 class GridProvider;
@@ -61,7 +68,7 @@ protected:
 
 	LogWriter output;
 
-    Communicator* comm;
+    vf::gpu::Communicator* comm;
     SPtr<Parameter> para;
     SPtr<GridProvider> gridProvider;
     SPtr<DataWriter> dataWriter;
diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
index 9c11bad09558a8d7d965f2110317fa90f23f7397..0446608cfc5d200efd21e95deac5a5eaf395d102 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
+++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
@@ -29,7 +29,7 @@ SPtr<Parameter> Parameter::make()
     return SPtr<Parameter>(new Parameter());
 }
 
-SPtr<Parameter> Parameter::make(SPtr<ConfigData> configData, Communicator* comm)
+SPtr<Parameter> Parameter::make(SPtr<ConfigData> configData, vf::gpu::Communicator* comm)
 {
 	return SPtr<Parameter>(new Parameter(configData, comm));
 }
@@ -37,7 +37,7 @@ SPtr<Parameter> Parameter::make(SPtr<ConfigData> configData, Communicator* comm)
 Parameter::Parameter()
 {
 }
-Parameter::Parameter(SPtr<ConfigData> configData, Communicator* comm)
+Parameter::Parameter(SPtr<ConfigData> configData, vf::gpu::Communicator* comm)
 {
 	//////////////////////////////////////////////////////////////////////////
 	this->setNumprocs(comm->getNummberOfProcess());
diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
index c456dbebff40fe1a4c9f5f79f5ec2b77d2d6093e..25946704edcad12513d1b8a2c70cd551eb1dd619 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
+++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
@@ -25,7 +25,14 @@
 #include "VirtualFluids_GPU_export.h"
 
 class ConfigData;
+
+namespace vf
+{
+namespace gpu
+{
 class Communicator;
+}
+}
 
 //struct
 struct ParameterStruct{
@@ -287,7 +294,7 @@ public:
 	//Parameter();
 	////////////////////////////////////////////////////////////////////////////
     static SPtr<Parameter> make();
-	static SPtr<Parameter> make(SPtr<ConfigData> configData, Communicator* comm);
+	static SPtr<Parameter> make(SPtr<ConfigData> configData, vf::gpu::Communicator* comm);
 
 
 	static Parameter* getInstanz();
@@ -795,7 +802,7 @@ private:
 	//LogWriter output;
 
 	Parameter();
-	Parameter(SPtr<ConfigData> configData, Communicator* comm);
+	Parameter(SPtr<ConfigData> configData, vf::gpu::Communicator* comm);
 	Parameter(const Parameter&);
 	void initInterfaceParameter(int level);
 	real TrafoXtoWorld(int CoordX, int level);
diff --git a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD27/InitCompAD27_Device.cu b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD27/InitCompAD27_Device.cu
index 95f912c815e5fe561aa0247c44c07ed534920ea5..dfe1ccd23d8da075fa627231f1548ba5370f115b 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD27/InitCompAD27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD27/InitCompAD27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Init_Comp_AD_27(unsigned int* neighborX,
diff --git a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD7/InitCompAD7_Device.cu b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD7/InitCompAD7_Device.cu
index 3d518a361a8dba30ac79325add530f14468602e2..6b4058f4bbbeacabb91f3cd5ba55f616565afb23 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD7/InitCompAD7_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD7/InitCompAD7_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Init_Comp_AD_7(unsigned int* neighborX,
diff --git a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompSP27/InitCompSP27_Device.cu b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompSP27/InitCompSP27_Device.cu
index 6ecedde3ddf8e2a324680e3cbd0d48151fec1bd3..a411f5be08df855df141f202acd01de2a3e99cae 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompSP27/InitCompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompSP27/InitCompSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 #include <stdio.h>
diff --git a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitF3/InitF3_Device.cu b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitF3/InitF3_Device.cu
index 3024af8bafa1bc0c6b593bbfef3dda84d2c2f3ab..f69224e726eb9570642a9a1c09c20362c364256c 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitF3/InitF3_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitF3/InitF3_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 
diff --git a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD27/InitIncompAD27_Device.cu b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD27/InitIncompAD27_Device.cu
index 714db3eac01fc156e36a6be49557effd5a9ed393..f304201bf82fe7b84b6e558dfe65ef780c9cd25f 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD27/InitIncompAD27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD27/InitIncompAD27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Init_Incomp_AD_27(unsigned int* neighborX,
diff --git a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD7/InitIncompAD7_Device.cu b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD7/InitIncompAD7_Device.cu
index 369abed49ddea3dc86fb044584ed5d14de69b442..3a2730c8d116542e06338eb94430c2ee24e75404 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD7/InitIncompAD7_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD7/InitIncompAD7_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Init_Incomp_AD_7(unsigned int* neighborX,
diff --git a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitSP27/InitSP27_Device.cu b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitSP27/InitSP27_Device.cu
index 3d4b9790e2cfaf19a5a29c6325a60d06d4e46733..ad55c17528b2348536846a8769848f17eeb6244a 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitSP27/InitSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitSP27/InitSP27_Device.cu
@@ -1,6 +1,8 @@
 #include "LBM/LB.h" 
 #include "LBM/D3Q27.h"
-#include "Core/RealConstants.h"
+#include <lbm/constants/NumericConstants.h>
+
+using namespace vf::lbm::constant;
 #include "math.h"
 
 extern "C" __global__ void LB_Init_SP_27(unsigned int* neighborX,
diff --git a/src/lbm/constants/NumericConstants.h b/src/lbm/constants/NumericConstants.h
new file mode 100644
index 0000000000000000000000000000000000000000..3d7c97a5b1adac97eafc36a49f9e4d968a854347
--- /dev/null
+++ b/src/lbm/constants/NumericConstants.h
@@ -0,0 +1,236 @@
+#ifndef REAL_CONSTANT_H
+#define REAL_CONSTANT_H
+
+
+namespace vf
+{
+namespace lbm 
+{
+namespace constant
+{
+
+#ifdef VF_DOUBLE_ACCURACY
+static constexpr double c1o2 = 0.5;
+static constexpr double c3o2 = 1.5;
+static constexpr double c1o3 = 0.333333333333333;
+static constexpr double c2o3 = 0.666666666666667;
+static constexpr double c1o4 = 0.25;
+static constexpr double c3o4 = 0.75;
+static constexpr double c1o6 = 0.166666666666667;
+static constexpr double c1o7 = 0.142857142857143;
+static constexpr double c1o8 = 0.125;
+static constexpr double c1o9 = 0.111111111111111;
+static constexpr double c2o9 = 0.222222222222222;
+static constexpr double c4o9 = 0.444444444444444;
+static constexpr double c1o10 = 0.1;
+static constexpr double c1o12 = 0.083333333333333;
+static constexpr double c1o16 = 0.0625;
+static constexpr double c3o16 = 0.1875;
+static constexpr double c9o16 = 0.5625;
+static constexpr double c1o18 = 0.055555555555556;
+static constexpr double c1o20 = 0.05;
+static constexpr double c19o20 = 0.95;
+static constexpr double c21o20 = 1.05;
+static constexpr double c1o24 = 0.041666666666667;
+static constexpr double c1o27 = 0.037037037037037;
+static constexpr double c3o32 = 0.09375;
+static constexpr double c4o32 = 0.125;
+static constexpr double c1o36 = 0.027777777777778;
+static constexpr double c1o48 = 0.020833333333333;
+static constexpr double c1o64 = 0.015625;
+static constexpr double c3o64 = 0.046875;
+static constexpr double c9o64 = 0.140625;
+static constexpr double c27o64 = 0.421875;
+static constexpr double c1o66 = 0.015151515151515;
+static constexpr double c1o72 = 0.013888888888889;
+static constexpr double c1o264 = 0.003787878787879;
+static constexpr double c8o27 = 0.296296296296296;
+static constexpr double c2o27 = 0.074074074074074;
+static constexpr double c1o54 = 0.018518518518519;
+static constexpr double c1o100 = 0.01;
+static constexpr double c99o100 = 0.99;
+static constexpr double c1o126 = 0.007936507936508;
+static constexpr double c1o216 = 0.004629629629630;
+static constexpr double c5o4 = 1.25;
+static constexpr double c9o4 = 2.25;
+static constexpr double c5o2 = 2.5;
+static constexpr double c9o2 = 4.5;
+
+static constexpr double c0o1 = 0.;
+static constexpr double c1o1 = 1.;
+static constexpr double c2o1 = 2.;
+static constexpr double c3o1 = 3.;
+static constexpr double c4o1 = 4.;
+static constexpr double c5o1 = 5.;
+static constexpr double c6o1 = 6.;
+static constexpr double c7o1 = 7.;
+static constexpr double c8o1 = 8.;
+static constexpr double c9o1 = 9.;
+static constexpr double c10o1 = 10.;
+static constexpr double c11o1 = 11.;
+static constexpr double c12o1 = 12.;
+static constexpr double c13o1 = 13.;
+static constexpr double c14o1 = 14.;
+static constexpr double c15o1 = 15.;
+static constexpr double c16o1 = 16.;
+static constexpr double c17o1 = 17.;
+static constexpr double c18o1 = 18.;
+static constexpr double c21o1 = 21.;
+static constexpr double c24o1 = 24.;
+static constexpr double c25o1 = 25.;
+static constexpr double c26o1 = 26.;
+static constexpr double c27o1 = 27.;
+static constexpr double c28o1 = 28.;
+static constexpr double c29o1 = 29.;
+static constexpr double c30o1 = 30.;
+static constexpr double c32o1 = 32.;
+static constexpr double c33o1 = 33.;
+static constexpr double c34o1 = 34.;
+static constexpr double c36o1 = 36.;
+static constexpr double c40o1 = 40.;
+static constexpr double c42o1 = 42.;
+static constexpr double c46o1 = 46.;
+static constexpr double c48o1 = 48.;
+static constexpr double c50o1 = 50.;
+static constexpr double c52o1 = 52.;
+static constexpr double c54o1 = 54.;
+static constexpr double c56o1 = 56.;
+static constexpr double c64o1 = 64.;
+static constexpr double c66o1 = 66.;
+static constexpr double c68o1 = 68.;
+static constexpr double c69o1 = 69.;
+static constexpr double c72o1 = 72.;
+static constexpr double c84o1 = 84.;
+static constexpr double c88o1 = 88.;
+static constexpr double c96o1 = 96.;
+static constexpr double c100o1 = 10.;
+static constexpr double c130o1 = 13.;
+static constexpr double c152o1 = 15.;
+static constexpr double c166o1 = 16.;
+static constexpr double c195o1 = 19.;
+static constexpr double c216o1 = 21.;
+static constexpr double c264o1 = 26.;
+static constexpr double c290o1 = 29.;
+static constexpr double c367o1 = 36.;
+
+static constexpr double Op0000002 = 0.0000002;
+static constexpr double c10eM30 = 1e-30;
+static constexpr double c10eM10 = 1e-10;
+static constexpr double smallSingle = 0.0000000002;
+
+#else
+static constexpr float c1o2 = 0.5f;
+static constexpr float c3o2 = 1.5f;
+static constexpr float c1o3 = (1.0f / 3.0f);
+static constexpr float c2o3 = (2.0f / 3.0f);
+static constexpr float c1o4 = 0.25f;
+static constexpr float c3o4 = 0.75f;
+static constexpr float c1o6 = (1.0f / 6.0f);
+static constexpr float c1o7 = (1.0f / 7.0f);
+static constexpr float c1o8 = 0.125f;
+static constexpr float c1o9 = (1.0f / 9.0f);
+static constexpr float c2o9 = (2.0f / 9.0f);
+static constexpr float c4o9 = (4.0f / 9.0f);
+static constexpr float c1o10 = 0.1f;
+static constexpr float c1o12 = (1.0f / 12.0f);
+static constexpr float c1o16 = 0.0625f;
+static constexpr float c3o16 = 0.1875f;
+static constexpr float c9o16 = 0.5625f;
+static constexpr float c1o18 = (1.0f / 18.0f);
+static constexpr float c1o20 = 0.05f;
+static constexpr float c19o20 = 0.95f;
+static constexpr float c21o20 = 1.05f;
+static constexpr float c1o24 = (1.0f / 24.0f);
+static constexpr float c1o27 = (1.0f / 27.0f);
+static constexpr float c3o32 = 0.09375f;
+static constexpr float c4o32 = 0.125f;
+static constexpr float c1o36 = (1.0f / 36.0f);
+static constexpr float c1o48 = (1.0f / 48.0f);
+static constexpr float c1o64 = 0.015625f;
+static constexpr float c3o64 = 0.046875f;
+static constexpr float c9o64 = 0.140625f;
+static constexpr float c27o64 = 0.421875f;
+static constexpr float c1o66 = (1.0f / 66.0f);
+static constexpr float c1o72 = (1.0f / 72.0f);
+static constexpr float c1o264 = (1.0f / 264.0f);
+static constexpr float c8o27 = (8.0f / 27.0f);
+static constexpr float c2o27 = (2.0f / 27.0f);
+static constexpr float c1o54 = (1.0f / 54.0f);
+static constexpr float c1o100 = 0.01f;
+static constexpr float c99o100 = 0.99f;
+static constexpr float c1o126 = (1.0f / 126.0f);
+static constexpr float c1o216 = (1.0f / 216.0f);
+static constexpr float c5o4 = 1.25f;
+static constexpr float c9o4 = 2.25f;
+static constexpr float c5o2 = 2.5f;
+static constexpr float c9o2 = 4.5f;
+
+static constexpr float c0o1 = 0.f;
+static constexpr float c1o1 = 1.f;
+static constexpr float c2o1 = 2.f;
+static constexpr float c3o1 = 3.f;
+static constexpr float c4o1 = 4.f;
+static constexpr float c5o1 = 5.f;
+static constexpr float c6o1 = 6.f;
+static constexpr float c7o1 = 7.f;
+static constexpr float c8o1 = 8.f;
+static constexpr float c9o1 = 9.f;
+static constexpr float c10o1 = 10.f;
+static constexpr float c11o1 = 11.f;
+static constexpr float c12o1 = 12.f;
+static constexpr float c13o1 = 13.f;
+static constexpr float c14o1 = 14.f;
+static constexpr float c15o1 = 15.f;
+static constexpr float c16o1 = 16.f;
+static constexpr float c17o1 = 17.f;
+static constexpr float c18o1 = 18.f;
+static constexpr float c21o1 = 21.f;
+static constexpr float c24o1 = 24.f;
+static constexpr float c25o1 = 25.f;
+static constexpr float c26o1 = 26.f;
+static constexpr float c27o1 = 27.f;
+static constexpr float c28o1 = 28.f;
+static constexpr float c29o1 = 29.f;
+static constexpr float c30o1 = 30.f;
+static constexpr float c32o1 = 32.f;
+static constexpr float c33o1 = 33.f;
+static constexpr float c34o1 = 34.f;
+static constexpr float c36o1 = 36.f;
+static constexpr float c40o1 = 40.f;
+static constexpr float c42o1 = 42.f;
+static constexpr float c46o1 = 46.f;
+static constexpr float c48o1 = 48.f;
+static constexpr float c50o1 = 50.f;
+static constexpr float c52o1 = 52.f;
+static constexpr float c54o1 = 54.f;
+static constexpr float c56o1 = 56.f;
+static constexpr float c64o1 = 64.f;
+static constexpr float c66o1 = 66.f;
+static constexpr float c68o1 = 68.f;
+static constexpr float c69o1 = 69.f;
+static constexpr float c72o1 = 72.f;
+static constexpr float c84o1 = 84.f;
+static constexpr float c88o1 = 88.f;
+static constexpr float c96o1 = 96.f;
+static constexpr float c100o1 = 100.0f;
+static constexpr float c130o1 = 130.0f;
+static constexpr float c152o1 = 152.0f;
+static constexpr float c166o1 = 166.0f;
+static constexpr float c195o1 = 195.0f;
+static constexpr float c216o1 = 216.0f;
+static constexpr float c264o1 = 264.0f;
+static constexpr float c290o1 = 290.0f;
+static constexpr float c367o1 = 367.0f;
+
+static constexpr float Op0000002 = 0.0000002f;
+static constexpr float c10eM30 = 1e-30f;
+static constexpr float c10eM10 = 1e-10f;
+static constexpr float smallSingle = 0.0000000002f;
+
+#endif
+
+}
+}
+}
+
+#endif