diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 33f72ecb941c410f7541f32541a34878ff987b3f..1bf144d5cc9c96169ee13d99c638936542201e9d 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -13,5 +13,5 @@
     "runArgs": ["--gpus","all",                     // remove this line in case you have no gpus available
                 "--hostname=${localEnv:HOSTNAME}"], // HOSTNAME needs to be known by the vscode environment. It is probably necessary to add "export HOSTNAME=<hostname>" to the config file of your host machine's bash.
 
-    "image": "git.rz.tu-bs.de:4567/irmb/virtualfluids/ubuntu20_04:1.4"
+    "image": "git.rz.tu-bs.de:4567/irmb/virtualfluids/ubuntu20_04:1.5"
 }
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 136560995990b57373ecf5e9bbe7137ef6d7591e..e13137639fa39c8db26c5a6ab13c261e1a3ea699 100755
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,7 @@
 ###############################################################################
 ##                       VirtualFluids CI Pipeline                           ##
 ###############################################################################
-image: git.rz.tu-bs.de:4567/irmb/virtualfluids/ubuntu20_04:1.4
+image: git.rz.tu-bs.de:4567/irmb/virtualfluids/ubuntu20_04:1.5
 
 stages:
   - build
@@ -326,24 +326,23 @@ gpu_numerical_tests:
 
   before_script:
     - cd /tmp
-    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@git.rz.tu-bs.de/irmb/test_data.git
+    - git clone --depth 1 --filter=blob:none --sparse https://github.com/irmb/test_data
+    - cd test_data
+    - git sparse-checkout set numerical_tests_gpu/grids numerical_tests_gpu/grids
     - export CCACHE_BASEDIR=$CI_PROJECT_DIR
     - export CCACHE_DIR=$CI_PROJECT_DIR/cache
     - ccache -s
     - mkdir -p $CI_PROJECT_DIR/build
     - cd $CI_PROJECT_DIR/build
-    - rm -r -f ./*
+    - rm -rf ./*
     - cmake ..
       --preset=make_numerical_tests_gpu
       -DCMAKE_CUDA_ARCHITECTURES=60
-      -DPATH_NUMERICAL_TESTS=/tmp/test_data/numerical_tests_gpu
     - make -j4
     - ccache -s
 
   script:
-    - cd $CI_PROJECT_DIR
-    # - ./build/bin/NumericalTests $CI_PROJECT_DIR/apps/gpu/tests/NumericalTests/configK15_nu10tm2.txt 2>&1 | tee -a numerical_tests_gpu_results.txt
-    - ./build/bin/NumericalTests $CI_PROJECT_DIR/apps/gpu/tests/NumericalTests/configK17chim_nu10tm3.txt 2>&1 | tee -a numerical_tests_gpu_results.txt
+    - $CI_PROJECT_DIR/build/bin/NumericalTests $CI_PROJECT_DIR/apps/gpu/tests/NumericalTests/configK17chim_nu10tm3.txt /tmp/test_data/numerical_tests_gpu/ 2>&1 | tee -a numerical_tests_gpu_results.txt
 
   cache:
     key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
diff --git a/CMake/cmake_config_files/ARAGORN.config.cmake b/CMake/cmake_config_files/ARAGORN.config.cmake
index d713f02d971024f29d3fb0fd30cfce7585d9dc55..9f33c9977924ab60a1300763f53d04bb842b2f00 100644
--- a/CMake/cmake_config_files/ARAGORN.config.cmake
+++ b/CMake/cmake_config_files/ARAGORN.config.cmake
@@ -6,10 +6,6 @@
 
 set(CMAKE_CUDA_ARCHITECTURES 86)     # Nvidia GeForce RTX 3060
 
-# numerical tests location of the grids
-# SET(PATH_NUMERICAL_TESTS "E:/temp/numericalTests/")
-# list(APPEND VF_COMPILER_DEFINITION "PATH_NUMERICAL_TESTS=${PATH_NUMERICAL_TESTS}")
-
 # add invidual apps here
 set(GPU_APP "apps/gpu/LBM/")
 list(APPEND USER_APPS 
diff --git a/CMake/cmake_config_files/GITLAB-RUNNER03.config.cmake b/CMake/cmake_config_files/GITLAB-RUNNER03.config.cmake
index edaf7669b171518c8aa6b2ec9786147a6ffc48f5..86780712df9b315883e3a49c7ea20443e66ddfd5 100644
--- a/CMake/cmake_config_files/GITLAB-RUNNER03.config.cmake
+++ b/CMake/cmake_config_files/GITLAB-RUNNER03.config.cmake
@@ -4,7 +4,4 @@
 # OS:          Windows 10
 #################################################################################
 
-
-#SET(PATH_NUMERICAL_TESTS "E:/temp/numericalTests/")
-#LIST(APPEND VF_COMPILER_DEFINITION "PATH_NUMERICAL_TESTS=${PATH_NUMERICAL_TESTS}")
 SET(CMAKE_CUDA_ARCHITECTURES 61)
\ No newline at end of file
diff --git a/Containers/Ubuntu20_04.Dockerfile b/Containers/Ubuntu20_04.Dockerfile
index 21511a97adab3694540c1d13a699f4d10b3d0356..97bce073bfd825e0afec97dace698ce28aca6139 100644
--- a/Containers/Ubuntu20_04.Dockerfile
+++ b/Containers/Ubuntu20_04.Dockerfile
@@ -14,12 +14,14 @@
 # clangd language server https://clangd.llvm.org/
 # python pip3 with modules: setuptools, wheels, scikit-build, pyvista, numpy, ansible, gcovr
 
+# software-properties-common for add-apt-repository
+
 FROM nvidia/cuda:11.3.1-devel-ubuntu20.04
 
 ARG DEBIAN_FRONTEND=noninteractive
 RUN apt-get update &&   \
     apt-get install -y  \
-    wget unzip git      \
+    wget unzip software-properties-common \
     build-essential gdb \
     ccache              \
     ninja-build         \
@@ -36,16 +38,13 @@ RUN apt-get update &&   \
     cppcheck            \
     clangd-12           \
     && update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-12 100 \
-    && mkdir -p /usr/local/cmake/ && cd /usr/local/cmake/ \
-    && version=3.24 && build=0 \
-    && wget https://cmake.org/files/v$version/cmake-$version.$build-linux-x86_64.tar.gz \
-    && tar -xzvf cmake-$version.$build-linux-x86_64.tar.gz                              \
-    && ln -s /usr/local/cmake/cmake-$version.$build-linux-x86_64/bin/* /usr/local/bin/  \
     && pip3 install      \
+        cmake==3.26.3    \
         setuptools       \
         wheel            \
         scikit-build     \
         pyvista          \
         numpy            \
         ansible          \
-        'jinja2<3.1' gcovr==5.0
+        'jinja2<3.1' gcovr==5.0 \
+    && apt update && add-apt-repository -y ppa:git-core/ppa && apt update && apt install git -y
diff --git a/apps/cpu/TPMSRow/TPMSRow.cpp b/apps/cpu/TPMSRow/TPMSRow.cpp
index 6369340273cc21c666c1d049ad063a7ae0b8015e..15df6e24316a0f00407218a04df4a7b48293d637 100644
--- a/apps/cpu/TPMSRow/TPMSRow.cpp
+++ b/apps/cpu/TPMSRow/TPMSRow.cpp
@@ -7,7 +7,7 @@
 
 using namespace std;
 using namespace vf::lbm::dir;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 void run(string configname)
 {
diff --git a/apps/gpu/LBM/BoundaryLayer/BoundaryLayer.cpp b/apps/gpu/LBM/BoundaryLayer/BoundaryLayer.cpp
index 07ef9aba0cca60854038b250297f6f3a85da9521..a49b6bc76dd1c0a9482f40e6cdb893a10dcbe1cc 100644
--- a/apps/gpu/LBM/BoundaryLayer/BoundaryLayer.cpp
+++ b/apps/gpu/LBM/BoundaryLayer/BoundaryLayer.cpp
@@ -51,7 +51,7 @@
 #include "Core/VectorTypes.h"
 
 #include <basics/config/ConfigurationFile.h>
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 
 #include <logger/Logger.h>
 
@@ -100,7 +100,7 @@ std::string path(".");
 
 std::string simulationName("BoundaryLayer");
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 void multipleLevel(const std::string& configPath)
diff --git a/apps/gpu/tests/NumericalTests/Utilities/ConfigFileReaderNT/ConfigFileReaderNT.cpp b/apps/gpu/tests/NumericalTests/Utilities/ConfigFileReaderNT/ConfigFileReaderNT.cpp
index 26d4045fe4b14cf9ffc5dea16815d70c716de000..5507c32f64eea8bb6c5e5e3c835aa5ae223b33cd 100644
--- a/apps/gpu/tests/NumericalTests/Utilities/ConfigFileReaderNT/ConfigFileReaderNT.cpp
+++ b/apps/gpu/tests/NumericalTests/Utilities/ConfigFileReaderNT/ConfigFileReaderNT.cpp
@@ -391,17 +391,8 @@ int calcNumberOfSimulations(ConfigFilePtr input, ConfigDataPtr configData)
     return counter;
 }
 
-ConfigDataPtr vf::gpu::tests::readConfigFile(const std::string aFilePath)
+ConfigDataPtr vf::gpu::tests::readConfigFile(const std::string aFilePath, const std::string &pathNumericalTests)
 {
-    // If PATH_NUMERICAL_TESTS is not defined, the grid definitions for the tests needs to be placed in the project root
-    // directories.
-#ifdef PATH_NUMERICAL_TESTS
-    auto pathNumericalTests = TOSTRING(PATH_NUMERICAL_TESTS) + std::string("/");
-#else
-    auto pathNumericalTests = TOSTRING(SOURCE_ROOT) + std::string("/");
-#endif
-    std::cout << pathNumericalTests << "\n";
-
     auto configData = std::make_shared<ConfigDataStruct>();
     auto input      = std::make_shared<vf::basics::ConfigurationFile>();
     input->load(aFilePath);
@@ -409,6 +400,8 @@ ConfigDataPtr vf::gpu::tests::readConfigFile(const std::string aFilePath)
     if (!checkConfigFile(input))
         exit(1);
 
+    std::cout << pathNumericalTests << "\n";
+
     configData->viscosity            = StringUtil::toDoubleVector(input->getValue<std::string>("Viscosity"));
     configData->kernelsToTest        = readKernelList(input);
     configData->writeAnalyticalToVTK = StringUtil::toBool(input->getValue<std::string>("WriteAnalyResultsToVTK"));
diff --git a/apps/gpu/tests/NumericalTests/Utilities/ConfigFileReaderNT/ConfigFileReaderNT.h b/apps/gpu/tests/NumericalTests/Utilities/ConfigFileReaderNT/ConfigFileReaderNT.h
index cd4ad56b4c23a8a973385839aa1b0736e1d2fda1..381e2d980ad3808d18c1f7f3b2ffff5bede6f664 100644
--- a/apps/gpu/tests/NumericalTests/Utilities/ConfigFileReaderNT/ConfigFileReaderNT.h
+++ b/apps/gpu/tests/NumericalTests/Utilities/ConfigFileReaderNT/ConfigFileReaderNT.h
@@ -14,6 +14,6 @@ class ConfigurationFile;
 
 namespace vf::gpu::tests
 {
-    std::shared_ptr<ConfigDataStruct> readConfigFile(const std::string aFilePath);
+    std::shared_ptr<ConfigDataStruct> readConfigFile(const std::string aFilePath, const std::string &pathNumericalTests);
 }
 #endif
\ No newline at end of file
diff --git a/apps/gpu/tests/NumericalTests/main.cpp b/apps/gpu/tests/NumericalTests/main.cpp
index fda9d14a7b752eab2585b300ee6aef606437913e..017c6551ae57f47c14332683aecb6650fb10a5f0 100644
--- a/apps/gpu/tests/NumericalTests/main.cpp
+++ b/apps/gpu/tests/NumericalTests/main.cpp
@@ -12,9 +12,9 @@
 #include <fstream>
 #include <iostream>
 
-static TestSuiteResult startNumericalTests(const std::string &configFile)
+static TestSuiteResult startNumericalTests(const std::string &configFile, const std::string &pathNumericalTests)
 {
-    auto configData = vf::gpu::tests::readConfigFile(configFile);
+    auto configData = vf::gpu::tests::readConfigFile(configFile, pathNumericalTests);
 
     std::shared_ptr<NumericalTestFactoryImp> numericalTestFactory = NumericalTestFactoryImp::getNewInstance(configData);
 
@@ -33,10 +33,11 @@ int main(int argc, char **argv)
 
     auto tests_passed = TestSuiteResult::FAILED;
 
-    if (argc > 1)
-        tests_passed = startNumericalTests(argv[1]);
+    if (argc == 3) {
+        tests_passed = startNumericalTests(argv[1], argv[2]);
+    }
     else
-        std::cout << "Configuration file must be set!: lbmgm <config file>" << std::endl << std::flush;
+        std::cout << "Configuration file must be set!: lbmgm <config file> <path to grid data>" << std::endl << std::flush;
 
     MPI_Finalize();
 
diff --git a/gpu.cmake b/gpu.cmake
index 6c009d6d2e05a928a1bc0de2bdb4e0df7e4de5a0..6bdbf656326c4d733ec2c5b5d08751b3055a7b00 100644
--- a/gpu.cmake
+++ b/gpu.cmake
@@ -25,12 +25,6 @@ add_subdirectory(apps/gpu/LBM/BoundaryLayer)
 #############################################################
 
 if(BUILD_NUMERIC_TESTS)
-
-    # PATH_NUMERICAL_TESTS can be passed to cmake e.g. cmake .. -DPATH_NUMERICAL_TESTS=/data/
-    if(PATH_NUMERICAL_TESTS)
-        LIST(APPEND VF_COMPILER_DEFINITION "PATH_NUMERICAL_TESTS=${PATH_NUMERICAL_TESTS}")
-    endif()
-
     if(NOT BUILD_VF_UNIT_TESTS) # in this case googletest is already included.
         add_subdirectory(${VF_THIRD_DIR}/googletest)
     endif()
diff --git a/pythonbindings/src/gpu/submodules/parameter.cpp b/pythonbindings/src/gpu/submodules/parameter.cpp
index a7c42223e6a5bfa3caa89c0879e4133fc4123ad0..e1d8a1f63eb877ec7ae42beb858b0b7cb9253815 100644
--- a/pythonbindings/src/gpu/submodules/parameter.cpp
+++ b/pythonbindings/src/gpu/submodules/parameter.cpp
@@ -34,12 +34,12 @@
 #include <pybind11/functional.h>
 #include <pybind11/stl.h>
 #include <gpu/VirtualFluids_GPU/Parameter/Parameter.h>
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include <basics/config/ConfigurationFile.h>
 #include <gpu/VirtualFluids_GPU/PreCollisionInteractor/PreCollisionInteractor.h>
 
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 namespace parameter
 {
diff --git a/src/lbm/constants/NumericConstants.h b/src/basics/constants/NumericConstants.h
similarity index 52%
rename from src/lbm/constants/NumericConstants.h
rename to src/basics/constants/NumericConstants.h
index 1c81192a615d7b99fb90671b7a553247d166147f..305805de4f1532de51bae15b92cfda80a5b2f4ab 100644
--- a/src/lbm/constants/NumericConstants.h
+++ b/src/basics/constants/NumericConstants.h
@@ -1,59 +1,61 @@
-#ifndef REAL_CONSTANT_H
-#define REAL_CONSTANT_H
+#ifndef BASICS_NUMERIC_CONSTANT_H
+#define BASICS_NUMERIC_CONSTANT_H
 
+#ifndef __CUDACC__
 #include <cmath>
+#endif
 
-namespace vf::lbm::constant
+namespace vf::basics::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 c4o10 = 0.4;
-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 c4o3 = 1.333333333333333;
-static constexpr double c9o4 = 2.25;
-static constexpr double c5o2 = 2.5;
-static constexpr double c9o2 = 4.5;
+static constexpr double c1o2 = 1. / 2.;
+static constexpr double c3o2 = 3. / 2.;
+static constexpr double c1o3 = 1. / 3.;
+static constexpr double c2o3 = 2. / 3.;
+static constexpr double c1o4 = 1. / 4.;
+static constexpr double c3o4 = 3. / 4.;
+static constexpr double c1o6 = 1. / 6.;
+static constexpr double c1o7 = 1. / 7.;
+static constexpr double c1o8 = 1. / 8.;
+static constexpr double c1o9 = 1. / 9.;
+static constexpr double c2o9 = 2. / 9.;
+static constexpr double c4o9 = 4. / 9.;
+static constexpr double c4o10 = 4. / 10.;
+static constexpr double c1o10 = 1. / 10.;
+static constexpr double c1o12 = 1. / 12.;
+static constexpr double c1o16 = 1. / 16.;
+static constexpr double c3o16 = 3. / 16.;
+static constexpr double c9o16 = 9. / 16.;
+static constexpr double c1o18 = 1. / 18.;
+static constexpr double c1o20 = 1. / 20.;
+static constexpr double c19o20 = 19. / 20.;
+static constexpr double c21o20 = 21. / 20.;
+static constexpr double c1o24 = 1. / 24.;
+static constexpr double c1o27 = 1. / 27.;
+static constexpr double c3o32 = 3. / 32.;
+static constexpr double c4o32 = 4. / 32.;
+static constexpr double c1o36 = 1. / 36.;
+static constexpr double c1o48 = 1. / 48.;
+static constexpr double c1o64 = 1. / 64.;
+static constexpr double c3o64 = 3. / 64.;
+static constexpr double c9o64 = 9. / 64.;
+static constexpr double c27o64 = 27. / 64.;
+static constexpr double c1o66 = 1. / 66.;
+static constexpr double c1o72 = 1. / 72.;
+static constexpr double c1o264 = 1. / 264.;
+static constexpr double c8o27 = 8. / 27.;
+static constexpr double c2o27 = 2. / 27.;
+static constexpr double c1o54 = 1. / 54.;
+static constexpr double c1o100 = 1. / 100.;
+static constexpr double c99o100 = 99. / 100;
+static constexpr double c1o126 = 1. / 126.;
+static constexpr double c1o216 = 1. / 216.;
+static constexpr double c5o4 = 5. / 4.;
+static constexpr double c4o3 = 4. / 3.;
+static constexpr double c9o4 = 9. / 4.;
+static constexpr double c5o2 = 5. / 2.;
+static constexpr double c9o2 = 9. / 2.;
 
 static constexpr double c0o1 = 0.;
 static constexpr double c1o1 = 1.;
@@ -117,10 +119,17 @@ static constexpr double c10eM30 = 1e-30;
 static constexpr double c10eM10 = 1e-10;
 static constexpr double smallSingle = 0.0000000002;
 
+#ifndef __CUDACC__
+static const double cPi = 4.0 * std::atan(1.0);               // 3.1415926535
+static const double c2Pi = 8.0 * std::atan(1.0);              // 6.2831853071
+static const double cPio180 = 4.0 * std::atan(1.0) / 180.0;   // 1.74532925199e-2
+static const double c180oPi = 180.0 / (4.0 * std::atan(1.0)); // 57.2957795131
+#else
 static constexpr double cPi = 3.1415926535;
 static constexpr double c2Pi = 6.28318530717;
 static constexpr double cPio180 = 1.74532925199e-2;
 static constexpr double c180oPi = 57.2957795131;
+#endif
 
 static const double one_over_sqrt2 = 1.0 / sqrt(2.0); // 0.707106781
 static const double one_over_sqrt3 = 1.0 / sqrt(3.0); // 0.577350269
@@ -128,53 +137,53 @@ static const double sqrt2 = sqrt(2.0);       // 1.4142135
 static const double sqrt3 = sqrt(3.0);       // 1.7320508
 
 #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 c4o10 = 0.4f;
-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 c4o3 = (4.0f / 3.0f);
-static constexpr float c9o4 = 2.25f;
-static constexpr float c5o2 = 2.5f;
-static constexpr float c9o2 = 4.5f;
+static constexpr float c1o2 = 1.0f / 2.0f;
+static constexpr float c3o2 = 3.0f / 2.0f;
+static constexpr float c1o3 = 1.0f / 3.0f;
+static constexpr float c2o3 = 2.0f / 3.0f;
+static constexpr float c1o4 = 1.0f / 4.0f;
+static constexpr float c3o4 = 3.0f / 4.0f;
+static constexpr float c1o6 = 1.0f / 6.0f;
+static constexpr float c1o7 = 1.0f / 7.0f;
+static constexpr float c1o8 = 1.0f / 8.0f;
+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 c4o10 = 4.0f / 10.0f;
+static constexpr float c1o10 = 1.0f / 10.0f;
+static constexpr float c1o12 = 1.0f / 12.0f;
+static constexpr float c1o16 = 1.0f / 16.0f;
+static constexpr float c3o16 = 3.0f / 16.0f;
+static constexpr float c9o16 = 9.0f / 16.0f;
+static constexpr float c1o18 = 1.0f / 18.0f;
+static constexpr float c1o20 = 1.0f / 20.0f;
+static constexpr float c19o20 = 19.0f / 20.0f;
+static constexpr float c21o20 = 21.0f / 20.0f;
+static constexpr float c1o24 = 1.0f / 24.0f;
+static constexpr float c1o27 = 1.0f / 27.0f;
+static constexpr float c3o32 = 3.0f / 32.0f;
+static constexpr float c4o32 = 4.0f / 32.0f;
+static constexpr float c1o36 = 1.0f / 36.0f;
+static constexpr float c1o48 = 1.0f / 48.0f;
+static constexpr float c1o64 = 1.0f / 64.0f;
+static constexpr float c3o64 = 3.0f / 64.0f;
+static constexpr float c9o64 = 9.0f / 64.0f;
+static constexpr float c27o64 = 27.0f / 64.0f;
+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 = 1.0f / 100.0f;
+static constexpr float c99o100 = 99.0f / 100.0f;
+static constexpr float c1o126 = 1.0f / 126.0f;
+static constexpr float c1o216 = 1.0f / 216.0f;
+static constexpr float c5o4 = 5.0f / 4.0f;
+static constexpr float c4o3 = 4.0f / 3.0f;
+static constexpr float c9o4 = 9.0f / 4.0f;
+static constexpr float c5o2 = 5.0f / 2.0f;
+static constexpr float c9o2 = 9.0f / 2.0f;
 
 static constexpr float c0o1 = 0.f;
 static constexpr float c1o1 = 1.f;
@@ -238,10 +247,17 @@ static constexpr float c10eM30 = 1e-30f;
 static constexpr float c10eM10 = 1e-10f;
 static constexpr float smallSingle = 0.0000000002f;
 
+#ifndef __CUDACC__
+static const float cPi = 4.0f * std::atan(1.0f);               // 3.1415926535
+static const float c2Pi = 8.0f * std::atan(1.0f);              // 6.2831853071
+static const float cPio180 = 4.0f * std::atan(1.0f) / 180.0f;   // 1.74532925199e-2
+static const float c180oPi = 180.0f / (4.0f * std::atan(1.0f)); // 57.2957795131
+#else
 static constexpr float cPi = 3.1415926535f;
-static constexpr double c2Pi = 6.2831853071f;
+static constexpr float c2Pi = 6.28318530717f;
 static constexpr float cPio180 = 1.74532925199e-2f;
 static constexpr float c180oPi = 57.2957795131f;
+#endif
 
 static const float one_over_sqrt2 = 1.0 / sqrtf(2.0); // 0.707106781
 static const float one_over_sqrt3 = 1.0 / sqrtf(3.0); // 0.577350269
diff --git a/src/basics/geometry3d/GbVoxelMatrix3D.cpp b/src/basics/geometry3d/GbVoxelMatrix3D.cpp
index dd0fbfc164f951090eedccc4d9bd7d32a7a038f8..5040b54c8dacbd17317a35c451d82f1ad20b0edf 100644
--- a/src/basics/geometry3d/GbVoxelMatrix3D.cpp
+++ b/src/basics/geometry3d/GbVoxelMatrix3D.cpp
@@ -39,7 +39,7 @@
 #include <geometry3d/GbTriangle3D.h>
 
 #include <basics/utilities/UbSystem.h>
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 
 #ifdef MC_CUBES
 #include <MarchingCubes/MarchingCubes.h>
@@ -174,11 +174,11 @@ double GbVoxelMatrix3D::getIntersectionRaytraceFactor(const double &x1, const do
                                                       const double &rx1, const double &rx2, const double &rx3)
 {
     if (!((UbMath::equal(rx1, 0.0) || UbMath::equal(fabs(rx1), 1.0) ||
-           UbMath::equal(fabs(rx1), vf::lbm::constant::one_over_sqrt2) || UbMath::equal(fabs(rx1), vf::lbm::constant::one_over_sqrt3)) &&
+           UbMath::equal(fabs(rx1), vf::basics::constant::one_over_sqrt2) || UbMath::equal(fabs(rx1), vf::basics::constant::one_over_sqrt3)) &&
           (UbMath::equal(rx2, 0.0) || UbMath::equal(fabs(rx2), 1.0) ||
-           UbMath::equal(fabs(rx2), vf::lbm::constant::one_over_sqrt2) || UbMath::equal(fabs(rx2), vf::lbm::constant::one_over_sqrt3)) &&
+           UbMath::equal(fabs(rx2), vf::basics::constant::one_over_sqrt2) || UbMath::equal(fabs(rx2), vf::basics::constant::one_over_sqrt3)) &&
           (UbMath::equal(rx3, 0.0) || UbMath::equal(fabs(rx3), 1.0) ||
-           UbMath::equal(fabs(rx3), vf::lbm::constant::one_over_sqrt2) || UbMath::equal(fabs(rx3), vf::lbm::constant::one_over_sqrt3)))) {
+           UbMath::equal(fabs(rx3), vf::basics::constant::one_over_sqrt2) || UbMath::equal(fabs(rx3), vf::basics::constant::one_over_sqrt3)))) {
         throw UbException(UB_EXARGS, "nur fuer diskrete Boltzmannrichungen implementiert!!!");
     }
 
diff --git a/src/cpu/LiggghtsCoupling/IBcumulantK17LBMKernel.cpp b/src/cpu/LiggghtsCoupling/IBcumulantK17LBMKernel.cpp
index 2dc4ab61c602e37ff8edd6397306dad036655e8c..873bbd88aa43c59429eaff42a0a42d11c80e32bc 100644
--- a/src/cpu/LiggghtsCoupling/IBcumulantK17LBMKernel.cpp
+++ b/src/cpu/LiggghtsCoupling/IBcumulantK17LBMKernel.cpp
@@ -111,7 +111,7 @@ void IBcumulantK17LBMKernel::calculate(int step)
     //!
 
     using namespace std;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
 
     //initializing of forcing stuff
     if (withForcing)
diff --git a/src/cpu/LiggghtsCoupling/IBcumulantK17LBMKernel.h b/src/cpu/LiggghtsCoupling/IBcumulantK17LBMKernel.h
index 6b19ada8dbc7bd07239c4086f4ab666f1031f28d..58191d27e4de872aeef87d888fff4a35b90d962b 100644
--- a/src/cpu/LiggghtsCoupling/IBcumulantK17LBMKernel.h
+++ b/src/cpu/LiggghtsCoupling/IBcumulantK17LBMKernel.h
@@ -94,7 +94,7 @@ protected:
 ////////////////////////////////////////////////////////////////////////////////
 inline void IBcumulantK17LBMKernel::forwardInverseChimeraWithK(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K)
 {
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
     LBMReal m2 = mfa + mfc;
     LBMReal m1 = mfc - mfa;
     LBMReal m0 = m2 + mfb;
@@ -112,7 +112,7 @@ inline void IBcumulantK17LBMKernel::forwardInverseChimeraWithK(LBMReal& mfa, LBM
 ////////////////////////////////////////////////////////////////////////////////
 inline void IBcumulantK17LBMKernel::backwardInverseChimeraWithK(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K)
 {
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
     LBMReal m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + c1o1) * (v2 - vv) * c1o2) * K;
     LBMReal m1 = (((mfa - mfc) - c2o1 * mfb * vv) * Kinverse + (mfa * Kinverse + c1o1) * (-v2)) * K;
     mfc = (((mfc + mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + c1o1) * (v2 + vv) * c1o2) * K;
@@ -128,7 +128,7 @@ inline void IBcumulantK17LBMKernel::backwardInverseChimeraWithK(LBMReal& mfa, LB
 ////////////////////////////////////////////////////////////////////////////////
 inline void IBcumulantK17LBMKernel::forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2)
 {
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
     LBMReal m1 = (mfa + mfc) + mfb;
     LBMReal m2 = mfc - mfa;
     mfc = (mfc + mfa) + (v2 * m1 - c2o1 * vv * m2);
@@ -144,7 +144,7 @@ inline void IBcumulantK17LBMKernel::forwardChimera(LBMReal& mfa, LBMReal& mfb, L
 ////////////////////////////////////////////////////////////////////////////////
 inline void IBcumulantK17LBMKernel::backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2)
 {
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
     LBMReal ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2);
     LBMReal mb = ((mfa - mfc) - mfa * v2) - c2o1 * mfb * vv;
     mfc = (mfc + mfa * (v2 + vv)) * c1o2 + mfb * (vv + c1o2);
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h
index b5318092d225fe4ffc0e52aceb57b446acc9d014..2dcd667bddbd85cb0c07e74ec19d55f93f880157 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h
@@ -196,59 +196,59 @@ public:
 
         switch (direction) {
             case DIR_P00:
-                return (float)(vf::lbm::constant::c4o9 *
+                return (float)(vf::basics::constant::c4o9 *
                                (+bcVelocityX1)); //(2/cs^2)(=6)*rho_0(=1 bei inkompr)*wi*u*ei mit cs=1/sqrt(3)
             case DIR_M00:
-                return (float)(vf::lbm::constant::c4o9 *
+                return (float)(vf::basics::constant::c4o9 *
                                (-bcVelocityX1)); // z.B. aus paper manfred MRT LB models in three dimensions (2002)
             case DIR_0P0:
-                return (float)(vf::lbm::constant::c4o9 * (+bcVelocityX2));
+                return (float)(vf::basics::constant::c4o9 * (+bcVelocityX2));
             case DIR_0M0:
-                return (float)(vf::lbm::constant::c4o9 * (-bcVelocityX2));
+                return (float)(vf::basics::constant::c4o9 * (-bcVelocityX2));
             case DIR_00P:
-                return (float)(vf::lbm::constant::c4o9 * (+bcVelocityX3));
+                return (float)(vf::basics::constant::c4o9 * (+bcVelocityX3));
             case DIR_00M:
-                return (float)(vf::lbm::constant::c4o9 * (-bcVelocityX3));
+                return (float)(vf::basics::constant::c4o9 * (-bcVelocityX3));
             case DIR_PP0:
-                return (float)(vf::lbm::constant::c1o9 * (+bcVelocityX1 + bcVelocityX2));
+                return (float)(vf::basics::constant::c1o9 * (+bcVelocityX1 + bcVelocityX2));
             case DIR_MM0:
-                return (float)(vf::lbm::constant::c1o9 * (-bcVelocityX1 - bcVelocityX2));
+                return (float)(vf::basics::constant::c1o9 * (-bcVelocityX1 - bcVelocityX2));
             case DIR_PM0:
-                return (float)(vf::lbm::constant::c1o9 * (+bcVelocityX1 - bcVelocityX2));
+                return (float)(vf::basics::constant::c1o9 * (+bcVelocityX1 - bcVelocityX2));
             case DIR_MP0:
-                return (float)(vf::lbm::constant::c1o9 * (-bcVelocityX1 + bcVelocityX2));
+                return (float)(vf::basics::constant::c1o9 * (-bcVelocityX1 + bcVelocityX2));
             case DIR_P0P:
-                return (float)(vf::lbm::constant::c1o9 * (+bcVelocityX1 + bcVelocityX3));
+                return (float)(vf::basics::constant::c1o9 * (+bcVelocityX1 + bcVelocityX3));
             case DIR_M0M:
-                return (float)(vf::lbm::constant::c1o9 * (-bcVelocityX1 - bcVelocityX3));
+                return (float)(vf::basics::constant::c1o9 * (-bcVelocityX1 - bcVelocityX3));
             case DIR_P0M:
-                return (float)(vf::lbm::constant::c1o9 * (+bcVelocityX1 - bcVelocityX3));
+                return (float)(vf::basics::constant::c1o9 * (+bcVelocityX1 - bcVelocityX3));
             case DIR_M0P:
-                return (float)(vf::lbm::constant::c1o9 * (-bcVelocityX1 + bcVelocityX3));
+                return (float)(vf::basics::constant::c1o9 * (-bcVelocityX1 + bcVelocityX3));
             case DIR_0PP:
-                return (float)(vf::lbm::constant::c1o9 * (+bcVelocityX2 + bcVelocityX3));
+                return (float)(vf::basics::constant::c1o9 * (+bcVelocityX2 + bcVelocityX3));
             case DIR_0MM:
-                return (float)(vf::lbm::constant::c1o9 * (-bcVelocityX2 - bcVelocityX3));
+                return (float)(vf::basics::constant::c1o9 * (-bcVelocityX2 - bcVelocityX3));
             case DIR_0PM:
-                return (float)(vf::lbm::constant::c1o9 * (+bcVelocityX2 - bcVelocityX3));
+                return (float)(vf::basics::constant::c1o9 * (+bcVelocityX2 - bcVelocityX3));
             case DIR_0MP:
-                return (float)(vf::lbm::constant::c1o9 * (-bcVelocityX2 + bcVelocityX3));
+                return (float)(vf::basics::constant::c1o9 * (-bcVelocityX2 + bcVelocityX3));
             case DIR_PPP:
-                return (float)(vf::lbm::constant::c1o36 * (+bcVelocityX1 + bcVelocityX2 + bcVelocityX3));
+                return (float)(vf::basics::constant::c1o36 * (+bcVelocityX1 + bcVelocityX2 + bcVelocityX3));
             case DIR_MMM:
-                return (float)(vf::lbm::constant::c1o36 * (-bcVelocityX1 - bcVelocityX2 - bcVelocityX3));
+                return (float)(vf::basics::constant::c1o36 * (-bcVelocityX1 - bcVelocityX2 - bcVelocityX3));
             case DIR_PPM:
-                return (float)(vf::lbm::constant::c1o36 * (+bcVelocityX1 + bcVelocityX2 - bcVelocityX3));
+                return (float)(vf::basics::constant::c1o36 * (+bcVelocityX1 + bcVelocityX2 - bcVelocityX3));
             case DIR_MMP:
-                return (float)(vf::lbm::constant::c1o36 * (-bcVelocityX1 - bcVelocityX2 + bcVelocityX3));
+                return (float)(vf::basics::constant::c1o36 * (-bcVelocityX1 - bcVelocityX2 + bcVelocityX3));
             case DIR_PMP:
-                return (float)(vf::lbm::constant::c1o36 * (+bcVelocityX1 - bcVelocityX2 + bcVelocityX3));
+                return (float)(vf::basics::constant::c1o36 * (+bcVelocityX1 - bcVelocityX2 + bcVelocityX3));
             case DIR_MPM:
-                return (float)(vf::lbm::constant::c1o36 * (-bcVelocityX1 + bcVelocityX2 - bcVelocityX3));
+                return (float)(vf::basics::constant::c1o36 * (-bcVelocityX1 + bcVelocityX2 - bcVelocityX3));
             case DIR_PMM:
-                return (float)(vf::lbm::constant::c1o36 * (+bcVelocityX1 - bcVelocityX2 - bcVelocityX3));
+                return (float)(vf::basics::constant::c1o36 * (+bcVelocityX1 - bcVelocityX2 - bcVelocityX3));
             case DIR_MPP:
-                return (float)(vf::lbm::constant::c1o36 * (-bcVelocityX1 + bcVelocityX2 + bcVelocityX3));
+                return (float)(vf::basics::constant::c1o36 * (-bcVelocityX1 + bcVelocityX2 + bcVelocityX3));
             default:
                 throw UbException(UB_EXARGS, "unknown error");
         }
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNonReflectingOutflowBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNonReflectingOutflowBCAlgorithm.cpp
index 0a334b37c6096a285ea7dd25b56790de0222098e..918f564b64667223d12169aba21dd659bc3308b6 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNonReflectingOutflowBCAlgorithm.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNonReflectingOutflowBCAlgorithm.cpp
@@ -72,7 +72,7 @@ void MultiphaseNonReflectingOutflowBCAlgorithm::applyBC()
     using namespace D3Q27System;
 //    using namespace UbMath;
     using namespace vf::lbm::dir;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
 
     real f[ENDF + 1];
     real ftemp[ENDF + 1];
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseSlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseSlipBCAlgorithm.cpp
index 19fbcc77d39f644addbc6ce79c24f369144dca8a..c15204f7b9e8c02714d55adf2d40aea0acba8d35 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseSlipBCAlgorithm.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseSlipBCAlgorithm.cpp
@@ -104,32 +104,32 @@ void MultiphaseSlipBCAlgorithm::applyBC()
          real velocity = 0.0;
          switch (invDir)
          {
-         case DIR_P00: velocity = (vf::lbm::constant::c4o9*(+vx1)); break;      //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3)
-         case DIR_M00: velocity = (vf::lbm::constant::c4o9*(-vx1)); break;      //z.B. aus paper manfred MRT LB models in three dimensions (2002)   
-         case DIR_0P0: velocity = (vf::lbm::constant::c4o9*(+vx2)); break;
-         case DIR_0M0: velocity = (vf::lbm::constant::c4o9*(-vx2)); break;
-         case DIR_00P: velocity = (vf::lbm::constant::c4o9*(+vx3)); break;
-         case DIR_00M: velocity = (vf::lbm::constant::c4o9*(-vx3)); break;
-         case DIR_PP0: velocity = (vf::lbm::constant::c1o9*(+vx1+vx2)); break;
-         case DIR_MM0: velocity = (vf::lbm::constant::c1o9*(-vx1-vx2)); break;
-         case DIR_PM0: velocity = (vf::lbm::constant::c1o9*(+vx1-vx2)); break;
-         case DIR_MP0: velocity = (vf::lbm::constant::c1o9*(-vx1+vx2)); break;
-         case DIR_P0P: velocity = (vf::lbm::constant::c1o9*(+vx1+vx3)); break;
-         case DIR_M0M: velocity = (vf::lbm::constant::c1o9*(-vx1-vx3)); break;
-         case DIR_P0M: velocity = (vf::lbm::constant::c1o9*(+vx1-vx3)); break;
-         case DIR_M0P: velocity = (vf::lbm::constant::c1o9*(-vx1+vx3)); break;
-         case DIR_0PP: velocity = (vf::lbm::constant::c1o9*(+vx2+vx3)); break;
-         case DIR_0MM: velocity = (vf::lbm::constant::c1o9*(-vx2-vx3)); break;
-         case DIR_0PM: velocity = (vf::lbm::constant::c1o9*(+vx2-vx3)); break;
-         case DIR_0MP: velocity = (vf::lbm::constant::c1o9*(-vx2+vx3)); break;
-         case DIR_PPP: velocity = (vf::lbm::constant::c1o36*(+vx1+vx2+vx3)); break;
-         case DIR_MMM: velocity = (vf::lbm::constant::c1o36*(-vx1-vx2-vx3)); break;
-         case DIR_PPM: velocity = (vf::lbm::constant::c1o36*(+vx1+vx2-vx3)); break;
-         case DIR_MMP: velocity = (vf::lbm::constant::c1o36*(-vx1-vx2+vx3)); break;
-         case DIR_PMP: velocity = (vf::lbm::constant::c1o36*(+vx1-vx2+vx3)); break;
-         case DIR_MPM: velocity = (vf::lbm::constant::c1o36*(-vx1+vx2-vx3)); break;
-         case DIR_PMM: velocity = (vf::lbm::constant::c1o36*(+vx1-vx2-vx3)); break;
-         case DIR_MPP: velocity = (vf::lbm::constant::c1o36*(-vx1+vx2+vx3)); break;
+         case DIR_P00: velocity = (vf::basics::constant::c4o9*(+vx1)); break;      //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3)
+         case DIR_M00: velocity = (vf::basics::constant::c4o9*(-vx1)); break;      //z.B. aus paper manfred MRT LB models in three dimensions (2002)   
+         case DIR_0P0: velocity = (vf::basics::constant::c4o9*(+vx2)); break;
+         case DIR_0M0: velocity = (vf::basics::constant::c4o9*(-vx2)); break;
+         case DIR_00P: velocity = (vf::basics::constant::c4o9*(+vx3)); break;
+         case DIR_00M: velocity = (vf::basics::constant::c4o9*(-vx3)); break;
+         case DIR_PP0: velocity = (vf::basics::constant::c1o9*(+vx1+vx2)); break;
+         case DIR_MM0: velocity = (vf::basics::constant::c1o9*(-vx1-vx2)); break;
+         case DIR_PM0: velocity = (vf::basics::constant::c1o9*(+vx1-vx2)); break;
+         case DIR_MP0: velocity = (vf::basics::constant::c1o9*(-vx1+vx2)); break;
+         case DIR_P0P: velocity = (vf::basics::constant::c1o9*(+vx1+vx3)); break;
+         case DIR_M0M: velocity = (vf::basics::constant::c1o9*(-vx1-vx3)); break;
+         case DIR_P0M: velocity = (vf::basics::constant::c1o9*(+vx1-vx3)); break;
+         case DIR_M0P: velocity = (vf::basics::constant::c1o9*(-vx1+vx3)); break;
+         case DIR_0PP: velocity = (vf::basics::constant::c1o9*(+vx2+vx3)); break;
+         case DIR_0MM: velocity = (vf::basics::constant::c1o9*(-vx2-vx3)); break;
+         case DIR_0PM: velocity = (vf::basics::constant::c1o9*(+vx2-vx3)); break;
+         case DIR_0MP: velocity = (vf::basics::constant::c1o9*(-vx2+vx3)); break;
+         case DIR_PPP: velocity = (vf::basics::constant::c1o36*(+vx1+vx2+vx3)); break;
+         case DIR_MMM: velocity = (vf::basics::constant::c1o36*(-vx1-vx2-vx3)); break;
+         case DIR_PPM: velocity = (vf::basics::constant::c1o36*(+vx1+vx2-vx3)); break;
+         case DIR_MMP: velocity = (vf::basics::constant::c1o36*(-vx1-vx2+vx3)); break;
+         case DIR_PMP: velocity = (vf::basics::constant::c1o36*(+vx1-vx2+vx3)); break;
+         case DIR_MPM: velocity = (vf::basics::constant::c1o36*(-vx1+vx2-vx3)); break;
+         case DIR_PMM: velocity = (vf::basics::constant::c1o36*(+vx1-vx2-vx3)); break;
+         case DIR_MPP: velocity = (vf::basics::constant::c1o36*(-vx1+vx2+vx3)); break;
          default: throw UbException(UB_EXARGS, "unknown error");
          }
          real fReturn = ((1.0-q)/(1.0+q))*((f[invDir]-feq[invDir])/(1.0-collFactor)+feq[invDir])+((q*(f[invDir]+f[fdir])-velocity*rho)/(1.0+q));
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingInflowBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingInflowBCAlgorithm.cpp
index 078e8bfb4c574b9a6fe90a5bd569d2969237eb66..9fe55f9aa4ab87a8548ca04759fad16e809b682b 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingInflowBCAlgorithm.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingInflowBCAlgorithm.cpp
@@ -60,7 +60,7 @@ void NonReflectingInflowBCAlgorithm::applyBC()
     using namespace vf::lbm::dir;
     using namespace D3Q27System;
  //   using namespace UbMath;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
 
     LBMReal f[ENDF + 1];
     LBMReal ftemp[ENDF + 1];
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithm.cpp
index efa587d128dbea3ed4403098b4c50328186fddf0..09adfefa8d246ff92f43eeeacb57ad3c4bd3ea16 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithm.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithm.cpp
@@ -61,7 +61,7 @@ void NonReflectingOutflowBCAlgorithm::applyBC()
 
     using namespace D3Q27System;
  //   using namespace UbMath;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
 
     real f[ENDF + 1];
     real ftemp[ENDF + 1];
@@ -101,15 +101,15 @@ void NonReflectingOutflowBCAlgorithm::applyBC()
 
     switch (direction) {
         case DIR_P00:
-            f[DIR_P00]   = ftemp[DIR_P00] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_P00];
-            f[DIR_PP0]  = ftemp[DIR_PP0] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_PP0];
-            f[DIR_PM0]  = ftemp[DIR_PM0] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_PM0];
-            f[DIR_P0P]  = ftemp[DIR_P0P] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_P0P];
-            f[DIR_P0M]  = ftemp[DIR_P0M] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_P0M];
-            f[DIR_PPP] = ftemp[DIR_PPP] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_PPP];
-            f[DIR_PMP] = ftemp[DIR_PMP] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_PMP];
-            f[DIR_PPM] = ftemp[DIR_PPM] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_PPM];
-            f[DIR_PMM] = ftemp[DIR_PMM] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_PMM];
+            f[DIR_P00]   = ftemp[DIR_P00] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_P00];
+            f[DIR_PP0]  = ftemp[DIR_PP0] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_PP0];
+            f[DIR_PM0]  = ftemp[DIR_PM0] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_PM0];
+            f[DIR_P0P]  = ftemp[DIR_P0P] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_P0P];
+            f[DIR_P0M]  = ftemp[DIR_P0M] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_P0M];
+            f[DIR_PPP] = ftemp[DIR_PPP] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_PPP];
+            f[DIR_PMP] = ftemp[DIR_PMP] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_PMP];
+            f[DIR_PPM] = ftemp[DIR_PPM] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_PPM];
+            f[DIR_PMM] = ftemp[DIR_PMM] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_PMM];
 
             distributions->setDistributionInvForDirection(f[DIR_P00], x1 + DX1[DIR_M00], x2 + DX2[DIR_M00], x3 + DX3[DIR_M00], DIR_M00);
             distributions->setDistributionInvForDirection(f[DIR_PP0], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0);
@@ -122,15 +122,15 @@ void NonReflectingOutflowBCAlgorithm::applyBC()
             distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP);
             break;
         case DIR_M00:
-            f[DIR_M00]   = ftemp[DIR_M00] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_M00];
-            f[DIR_MP0]  = ftemp[DIR_MP0] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_MP0];
-            f[DIR_MM0]  = ftemp[DIR_MM0] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_MM0];
-            f[DIR_M0P]  = ftemp[DIR_M0P] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_M0P];
-            f[DIR_M0M]  = ftemp[DIR_M0M] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_M0M];
-            f[DIR_MPP] = ftemp[DIR_MPP] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_MPP];
-            f[DIR_MMP] = ftemp[DIR_MMP] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_MMP];
-            f[DIR_MPM] = ftemp[DIR_MPM] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_MPM];
-            f[DIR_MMM] = ftemp[DIR_MMM] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_MMM];
+            f[DIR_M00]   = ftemp[DIR_M00] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_M00];
+            f[DIR_MP0]  = ftemp[DIR_MP0] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_MP0];
+            f[DIR_MM0]  = ftemp[DIR_MM0] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_MM0];
+            f[DIR_M0P]  = ftemp[DIR_M0P] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_M0P];
+            f[DIR_M0M]  = ftemp[DIR_M0M] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_M0M];
+            f[DIR_MPP] = ftemp[DIR_MPP] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_MPP];
+            f[DIR_MMP] = ftemp[DIR_MMP] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_MMP];
+            f[DIR_MPM] = ftemp[DIR_MPM] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_MPM];
+            f[DIR_MMM] = ftemp[DIR_MMM] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_MMM];
 
             distributions->setDistributionInvForDirection(f[DIR_M00], x1 + DX1[DIR_P00], x2 + DX2[DIR_P00], x3 + DX3[DIR_P00], DIR_P00);
             distributions->setDistributionInvForDirection(f[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0);
@@ -143,15 +143,15 @@ void NonReflectingOutflowBCAlgorithm::applyBC()
             distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP);
             break;
         case DIR_0P0:
-            f[DIR_0P0]   = ftemp[DIR_0P0] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_0P0];
-            f[DIR_PP0]  = ftemp[DIR_PP0] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_PP0];
-            f[DIR_MP0]  = ftemp[DIR_MP0] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_MP0];
-            f[DIR_0PP]  = ftemp[DIR_0PP] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_0PP];
-            f[DIR_0PM]  = ftemp[DIR_0PM] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_0PM];
-            f[DIR_PPP] = ftemp[DIR_PPP] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_PPP];
-            f[DIR_MPP] = ftemp[DIR_MPP] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_MPP];
-            f[DIR_PPM] = ftemp[DIR_PPM] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_PPM];
-            f[DIR_MPM] = ftemp[DIR_MPM] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_MPM];
+            f[DIR_0P0]   = ftemp[DIR_0P0] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_0P0];
+            f[DIR_PP0]  = ftemp[DIR_PP0] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_PP0];
+            f[DIR_MP0]  = ftemp[DIR_MP0] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_MP0];
+            f[DIR_0PP]  = ftemp[DIR_0PP] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_0PP];
+            f[DIR_0PM]  = ftemp[DIR_0PM] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_0PM];
+            f[DIR_PPP] = ftemp[DIR_PPP] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_PPP];
+            f[DIR_MPP] = ftemp[DIR_MPP] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_MPP];
+            f[DIR_PPM] = ftemp[DIR_PPM] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_PPM];
+            f[DIR_MPM] = ftemp[DIR_MPM] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_MPM];
 
             distributions->setDistributionInvForDirection(f[DIR_0P0], x1 + DX1[DIR_0M0], x2 + DX2[DIR_0M0], x3 + DX3[DIR_0M0], DIR_0M0);
             distributions->setDistributionInvForDirection(f[DIR_PP0], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0);
@@ -164,15 +164,15 @@ void NonReflectingOutflowBCAlgorithm::applyBC()
             distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP);
             break;
         case DIR_0M0:
-            f[DIR_0M0]   = ftemp[DIR_0M0] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_0M0];
-            f[DIR_PM0]  = ftemp[DIR_PM0] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_PM0];
-            f[DIR_MM0]  = ftemp[DIR_MM0] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_MM0];
-            f[DIR_0MP]  = ftemp[DIR_0MP] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_0MP];
-            f[DIR_0MM]  = ftemp[DIR_0MM] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_0MM];
-            f[DIR_PMP] = ftemp[DIR_PMP] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_PMP];
-            f[DIR_MMP] = ftemp[DIR_MMP] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_MMP];
-            f[DIR_PMM] = ftemp[DIR_PMM] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_PMM];
-            f[DIR_MMM] = ftemp[DIR_MMM] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_MMM];
+            f[DIR_0M0]   = ftemp[DIR_0M0] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_0M0];
+            f[DIR_PM0]  = ftemp[DIR_PM0] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_PM0];
+            f[DIR_MM0]  = ftemp[DIR_MM0] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_MM0];
+            f[DIR_0MP]  = ftemp[DIR_0MP] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_0MP];
+            f[DIR_0MM]  = ftemp[DIR_0MM] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_0MM];
+            f[DIR_PMP] = ftemp[DIR_PMP] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_PMP];
+            f[DIR_MMP] = ftemp[DIR_MMP] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_MMP];
+            f[DIR_PMM] = ftemp[DIR_PMM] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_PMM];
+            f[DIR_MMM] = ftemp[DIR_MMM] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_MMM];
 
             distributions->setDistributionInvForDirection(f[DIR_0M0], x1 + DX1[DIR_0P0], x2 + DX2[DIR_0P0], x3 + DX3[DIR_0P0], DIR_0P0);
             distributions->setDistributionInvForDirection(f[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0);
@@ -185,15 +185,15 @@ void NonReflectingOutflowBCAlgorithm::applyBC()
             distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP);
             break;
         case DIR_00P:
-            f[DIR_00P]   = ftemp[DIR_00P] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_00P];
-            f[DIR_P0P]  = ftemp[DIR_P0P] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_P0P];
-            f[DIR_M0P]  = ftemp[DIR_M0P] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_M0P];
-            f[DIR_0PP]  = ftemp[DIR_0PP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_0PP];
-            f[DIR_0MP]  = ftemp[DIR_0MP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_0MP];
-            f[DIR_PPP] = ftemp[DIR_PPP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_PPP];
-            f[DIR_MPP] = ftemp[DIR_MPP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_MPP];
-            f[DIR_PMP] = ftemp[DIR_PMP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_PMP];
-            f[DIR_MMP] = ftemp[DIR_MMP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_MMP];
+            f[DIR_00P]   = ftemp[DIR_00P] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_00P];
+            f[DIR_P0P]  = ftemp[DIR_P0P] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_P0P];
+            f[DIR_M0P]  = ftemp[DIR_M0P] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_M0P];
+            f[DIR_0PP]  = ftemp[DIR_0PP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_0PP];
+            f[DIR_0MP]  = ftemp[DIR_0MP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_0MP];
+            f[DIR_PPP] = ftemp[DIR_PPP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_PPP];
+            f[DIR_MPP] = ftemp[DIR_MPP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_MPP];
+            f[DIR_PMP] = ftemp[DIR_PMP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_PMP];
+            f[DIR_MMP] = ftemp[DIR_MMP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_MMP];
 
             distributions->setDistributionInvForDirection(f[DIR_00P], x1 + DX1[DIR_00M], x2 + DX2[DIR_00M], x3 + DX3[DIR_00M], DIR_00M);
             distributions->setDistributionInvForDirection(f[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M);
@@ -206,15 +206,15 @@ void NonReflectingOutflowBCAlgorithm::applyBC()
             distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM);
             break;
         case DIR_00M:
-            f[DIR_00M]   = ftemp[DIR_00M] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_00M];
-            f[DIR_P0M]  = ftemp[DIR_P0M] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_P0M];
-            f[DIR_M0M]  = ftemp[DIR_M0M] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_M0M];
-            f[DIR_0PM]  = ftemp[DIR_0PM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_0PM];
-            f[DIR_0MM]  = ftemp[DIR_0MM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_0MM];
-            f[DIR_PPM] = ftemp[DIR_PPM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_PPM];
-            f[DIR_MPM] = ftemp[DIR_MPM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_MPM];
-            f[DIR_PMM] = ftemp[DIR_PMM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_PMM];
-            f[DIR_MMM] = ftemp[DIR_MMM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_MMM];
+            f[DIR_00M]   = ftemp[DIR_00M] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_00M];
+            f[DIR_P0M]  = ftemp[DIR_P0M] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_P0M];
+            f[DIR_M0M]  = ftemp[DIR_M0M] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_M0M];
+            f[DIR_0PM]  = ftemp[DIR_0PM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_0PM];
+            f[DIR_0MM]  = ftemp[DIR_0MM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_0MM];
+            f[DIR_PPM] = ftemp[DIR_PPM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_PPM];
+            f[DIR_MPM] = ftemp[DIR_MPM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_MPM];
+            f[DIR_PMM] = ftemp[DIR_PMM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_PMM];
+            f[DIR_MMM] = ftemp[DIR_MMM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_MMM];
 
             distributions->setDistributionInvForDirection(f[DIR_00M], x1 + DX1[DIR_00P], x2 + DX2[DIR_00P], x3 + DX3[DIR_00P], DIR_00P);
             distributions->setDistributionInvForDirection(f[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P);
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithmWithRelaxation.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithmWithRelaxation.cpp
index ce2c5a6268fd8d1a69d4c56a6ddbebe2df587b6c..d36e07118248363c0a81bc7d907c70b3d1b4fcea 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithmWithRelaxation.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithmWithRelaxation.cpp
@@ -61,7 +61,7 @@ void NonReflectingOutflowBCAlgorithmWithRelaxation::applyBC()
 
     using namespace D3Q27System;
  //   using namespace UbMath;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
 
     LBMReal f[ENDF + 1];
     LBMReal ftemp[ENDF + 1];
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCAlgorithm.cpp
index 5dbe30e7b172e149dcfe812f5ba9297d6caaa3df..e02ee9fb7766217411ac37a104bf8c59a60a741e 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCAlgorithm.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCAlgorithm.cpp
@@ -85,32 +85,32 @@ void SimpleSlipBCAlgorithm::applyBC()
          real velocity = 0.0;
          switch (invDir)
          {
-         case DIR_P00: velocity = (vf::lbm::constant::c4o9*(+vx1)); break;      //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3)
-         case DIR_M00: velocity = (vf::lbm::constant::c4o9*(-vx1)); break;      //z.B. aus paper manfred MRT LB models in three dimensions (2002)   
-         case DIR_0P0: velocity = (vf::lbm::constant::c4o9*(+vx2)); break;
-         case DIR_0M0: velocity = (vf::lbm::constant::c4o9*(-vx2)); break;
-         case DIR_00P: velocity = (vf::lbm::constant::c4o9*(+vx3)); break;
-         case DIR_00M: velocity = (vf::lbm::constant::c4o9*(-vx3)); break;
-         case DIR_PP0: velocity = (vf::lbm::constant::c1o9*(+vx1+vx2)); break;
-         case DIR_MM0: velocity = (vf::lbm::constant::c1o9*(-vx1-vx2)); break;
-         case DIR_PM0: velocity = (vf::lbm::constant::c1o9*(+vx1-vx2)); break;
-         case DIR_MP0: velocity = (vf::lbm::constant::c1o9*(-vx1+vx2)); break;
-         case DIR_P0P: velocity = (vf::lbm::constant::c1o9*(+vx1+vx3)); break;
-         case DIR_M0M: velocity = (vf::lbm::constant::c1o9*(-vx1-vx3)); break;
-         case DIR_P0M: velocity = (vf::lbm::constant::c1o9*(+vx1-vx3)); break;
-         case DIR_M0P: velocity = (vf::lbm::constant::c1o9*(-vx1+vx3)); break;
-         case DIR_0PP: velocity = (vf::lbm::constant::c1o9*(+vx2+vx3)); break;
-         case DIR_0MM: velocity = (vf::lbm::constant::c1o9*(-vx2-vx3)); break;
-         case DIR_0PM: velocity = (vf::lbm::constant::c1o9*(+vx2-vx3)); break;
-         case DIR_0MP: velocity = (vf::lbm::constant::c1o9*(-vx2+vx3)); break;
-         case DIR_PPP: velocity = (vf::lbm::constant::c1o36*(+vx1+vx2+vx3)); break;
-         case DIR_MMM: velocity = (vf::lbm::constant::c1o36*(-vx1-vx2-vx3)); break;
-         case DIR_PPM: velocity = (vf::lbm::constant::c1o36*(+vx1+vx2-vx3)); break;
-         case DIR_MMP: velocity = (vf::lbm::constant::c1o36*(-vx1-vx2+vx3)); break;
-         case DIR_PMP: velocity = (vf::lbm::constant::c1o36*(+vx1-vx2+vx3)); break;
-         case DIR_MPM: velocity = (vf::lbm::constant::c1o36*(-vx1+vx2-vx3)); break;
-         case DIR_PMM: velocity = (vf::lbm::constant::c1o36*(+vx1-vx2-vx3)); break;
-         case DIR_MPP: velocity = (vf::lbm::constant::c1o36*(-vx1+vx2+vx3)); break;
+         case DIR_P00: velocity = (vf::basics::constant::c4o9*(+vx1)); break;      //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3)
+         case DIR_M00: velocity = (vf::basics::constant::c4o9*(-vx1)); break;      //z.B. aus paper manfred MRT LB models in three dimensions (2002)   
+         case DIR_0P0: velocity = (vf::basics::constant::c4o9*(+vx2)); break;
+         case DIR_0M0: velocity = (vf::basics::constant::c4o9*(-vx2)); break;
+         case DIR_00P: velocity = (vf::basics::constant::c4o9*(+vx3)); break;
+         case DIR_00M: velocity = (vf::basics::constant::c4o9*(-vx3)); break;
+         case DIR_PP0: velocity = (vf::basics::constant::c1o9*(+vx1+vx2)); break;
+         case DIR_MM0: velocity = (vf::basics::constant::c1o9*(-vx1-vx2)); break;
+         case DIR_PM0: velocity = (vf::basics::constant::c1o9*(+vx1-vx2)); break;
+         case DIR_MP0: velocity = (vf::basics::constant::c1o9*(-vx1+vx2)); break;
+         case DIR_P0P: velocity = (vf::basics::constant::c1o9*(+vx1+vx3)); break;
+         case DIR_M0M: velocity = (vf::basics::constant::c1o9*(-vx1-vx3)); break;
+         case DIR_P0M: velocity = (vf::basics::constant::c1o9*(+vx1-vx3)); break;
+         case DIR_M0P: velocity = (vf::basics::constant::c1o9*(-vx1+vx3)); break;
+         case DIR_0PP: velocity = (vf::basics::constant::c1o9*(+vx2+vx3)); break;
+         case DIR_0MM: velocity = (vf::basics::constant::c1o9*(-vx2-vx3)); break;
+         case DIR_0PM: velocity = (vf::basics::constant::c1o9*(+vx2-vx3)); break;
+         case DIR_0MP: velocity = (vf::basics::constant::c1o9*(-vx2+vx3)); break;
+         case DIR_PPP: velocity = (vf::basics::constant::c1o36*(+vx1+vx2+vx3)); break;
+         case DIR_MMM: velocity = (vf::basics::constant::c1o36*(-vx1-vx2-vx3)); break;
+         case DIR_PPM: velocity = (vf::basics::constant::c1o36*(+vx1+vx2-vx3)); break;
+         case DIR_MMP: velocity = (vf::basics::constant::c1o36*(-vx1-vx2+vx3)); break;
+         case DIR_PMP: velocity = (vf::basics::constant::c1o36*(+vx1-vx2+vx3)); break;
+         case DIR_MPM: velocity = (vf::basics::constant::c1o36*(-vx1+vx2-vx3)); break;
+         case DIR_PMM: velocity = (vf::basics::constant::c1o36*(+vx1-vx2-vx3)); break;
+         case DIR_MPP: velocity = (vf::basics::constant::c1o36*(-vx1+vx2+vx3)); break;
          default: throw UbException(UB_EXARGS, "unknown error");
          }
          real fReturn = f[invDir] - velocity * rho;
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAlgorithm.cpp
index ec90ef01246a7ac2001e21ce3646981e61f68f96..4232ae91a8d4806e1615beacfb57c5eb5deb10ca 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAlgorithm.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAlgorithm.cpp
@@ -49,32 +49,32 @@ void SlipBCAlgorithm::applyBC()
          real velocity = 0.0;
          switch (invDir)
          {
-         case DIR_P00: velocity = (vf::lbm::constant::c4o9*(+vx1)); break;      //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3)
-         case DIR_M00: velocity = (vf::lbm::constant::c4o9*(-vx1)); break;      //z.B. aus paper manfred MRT LB models in three dimensions (2002)   
-         case DIR_0P0: velocity = (vf::lbm::constant::c4o9*(+vx2)); break;
-         case DIR_0M0: velocity = (vf::lbm::constant::c4o9*(-vx2)); break;
-         case DIR_00P: velocity = (vf::lbm::constant::c4o9*(+vx3)); break;
-         case DIR_00M: velocity = (vf::lbm::constant::c4o9*(-vx3)); break;
-         case DIR_PP0: velocity = (vf::lbm::constant::c1o9*(+vx1+vx2)); break;
-         case DIR_MM0: velocity = (vf::lbm::constant::c1o9*(-vx1-vx2)); break;
-         case DIR_PM0: velocity = (vf::lbm::constant::c1o9*(+vx1-vx2)); break;
-         case DIR_MP0: velocity = (vf::lbm::constant::c1o9*(-vx1+vx2)); break;
-         case DIR_P0P: velocity = (vf::lbm::constant::c1o9*(+vx1+vx3)); break;
-         case DIR_M0M: velocity = (vf::lbm::constant::c1o9*(-vx1-vx3)); break;
-         case DIR_P0M: velocity = (vf::lbm::constant::c1o9*(+vx1-vx3)); break;
-         case DIR_M0P: velocity = (vf::lbm::constant::c1o9*(-vx1+vx3)); break;
-         case DIR_0PP: velocity = (vf::lbm::constant::c1o9*(+vx2+vx3)); break;
-         case DIR_0MM: velocity = (vf::lbm::constant::c1o9*(-vx2-vx3)); break;
-         case DIR_0PM: velocity = (vf::lbm::constant::c1o9*(+vx2-vx3)); break;
-         case DIR_0MP: velocity = (vf::lbm::constant::c1o9*(-vx2+vx3)); break;
-         case DIR_PPP: velocity = (vf::lbm::constant::c1o36*(+vx1+vx2+vx3)); break;
-         case DIR_MMM: velocity = (vf::lbm::constant::c1o36*(-vx1-vx2-vx3)); break;
-         case DIR_PPM: velocity = (vf::lbm::constant::c1o36*(+vx1+vx2-vx3)); break;
-         case DIR_MMP: velocity = (vf::lbm::constant::c1o36*(-vx1-vx2+vx3)); break;
-         case DIR_PMP: velocity = (vf::lbm::constant::c1o36*(+vx1-vx2+vx3)); break;
-         case DIR_MPM: velocity = (vf::lbm::constant::c1o36*(-vx1+vx2-vx3)); break;
-         case DIR_PMM: velocity = (vf::lbm::constant::c1o36*(+vx1-vx2-vx3)); break;
-         case DIR_MPP: velocity = (vf::lbm::constant::c1o36*(-vx1+vx2+vx3)); break;
+         case DIR_P00: velocity = (vf::basics::constant::c4o9*(+vx1)); break;      //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3)
+         case DIR_M00: velocity = (vf::basics::constant::c4o9*(-vx1)); break;      //z.B. aus paper manfred MRT LB models in three dimensions (2002)   
+         case DIR_0P0: velocity = (vf::basics::constant::c4o9*(+vx2)); break;
+         case DIR_0M0: velocity = (vf::basics::constant::c4o9*(-vx2)); break;
+         case DIR_00P: velocity = (vf::basics::constant::c4o9*(+vx3)); break;
+         case DIR_00M: velocity = (vf::basics::constant::c4o9*(-vx3)); break;
+         case DIR_PP0: velocity = (vf::basics::constant::c1o9*(+vx1+vx2)); break;
+         case DIR_MM0: velocity = (vf::basics::constant::c1o9*(-vx1-vx2)); break;
+         case DIR_PM0: velocity = (vf::basics::constant::c1o9*(+vx1-vx2)); break;
+         case DIR_MP0: velocity = (vf::basics::constant::c1o9*(-vx1+vx2)); break;
+         case DIR_P0P: velocity = (vf::basics::constant::c1o9*(+vx1+vx3)); break;
+         case DIR_M0M: velocity = (vf::basics::constant::c1o9*(-vx1-vx3)); break;
+         case DIR_P0M: velocity = (vf::basics::constant::c1o9*(+vx1-vx3)); break;
+         case DIR_M0P: velocity = (vf::basics::constant::c1o9*(-vx1+vx3)); break;
+         case DIR_0PP: velocity = (vf::basics::constant::c1o9*(+vx2+vx3)); break;
+         case DIR_0MM: velocity = (vf::basics::constant::c1o9*(-vx2-vx3)); break;
+         case DIR_0PM: velocity = (vf::basics::constant::c1o9*(+vx2-vx3)); break;
+         case DIR_0MP: velocity = (vf::basics::constant::c1o9*(-vx2+vx3)); break;
+         case DIR_PPP: velocity = (vf::basics::constant::c1o36*(+vx1+vx2+vx3)); break;
+         case DIR_MMM: velocity = (vf::basics::constant::c1o36*(-vx1-vx2-vx3)); break;
+         case DIR_PPM: velocity = (vf::basics::constant::c1o36*(+vx1+vx2-vx3)); break;
+         case DIR_MMP: velocity = (vf::basics::constant::c1o36*(-vx1-vx2+vx3)); break;
+         case DIR_PMP: velocity = (vf::basics::constant::c1o36*(+vx1-vx2+vx3)); break;
+         case DIR_MPM: velocity = (vf::basics::constant::c1o36*(-vx1+vx2-vx3)); break;
+         case DIR_PMM: velocity = (vf::basics::constant::c1o36*(+vx1-vx2-vx3)); break;
+         case DIR_MPP: velocity = (vf::basics::constant::c1o36*(-vx1+vx2+vx3)); break;
          default: throw UbException(UB_EXARGS, "unknown error");
          }
          real fReturn = ((1.0-q)/(1.0+q))*((f[invDir]-feq[invDir])/(1.0-collFactor)+feq[invDir])+((q*(f[invDir]+f[fdir])-velocity*rho)/(1.0+q));
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNonReflectingOutflowBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNonReflectingOutflowBCAlgorithm.cpp
index 8124520338db470a080df868df39df0b8b9d66ed..257b2b6f227a71f2b22312aad20bb49d93dbf4e9 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNonReflectingOutflowBCAlgorithm.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNonReflectingOutflowBCAlgorithm.cpp
@@ -98,15 +98,15 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC()
    switch (direction)
    {
    case DIR_P00:
-      f[DIR_P00] = ftemp[DIR_P00] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_P00];
-      f[DIR_PP0] = ftemp[DIR_PP0] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_PP0];
-      f[DIR_PM0] = ftemp[DIR_PM0] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_PM0];
-      f[DIR_P0P] = ftemp[DIR_P0P] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_P0P];
-      f[DIR_P0M] = ftemp[DIR_P0M] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_P0M];
-      f[DIR_PPP] = ftemp[DIR_PPP] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_PPP];
-      f[DIR_PMP] = ftemp[DIR_PMP] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_PMP];
-      f[DIR_PPM] = ftemp[DIR_PPM] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_PPM];
-      f[DIR_PMM] = ftemp[DIR_PMM] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * f[DIR_PMM];
+      f[DIR_P00] = ftemp[DIR_P00] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_P00];
+      f[DIR_PP0] = ftemp[DIR_PP0] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_PP0];
+      f[DIR_PM0] = ftemp[DIR_PM0] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_PM0];
+      f[DIR_P0P] = ftemp[DIR_P0P] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_P0P];
+      f[DIR_P0M] = ftemp[DIR_P0M] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_P0M];
+      f[DIR_PPP] = ftemp[DIR_PPP] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_PPP];
+      f[DIR_PMP] = ftemp[DIR_PMP] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_PMP];
+      f[DIR_PPM] = ftemp[DIR_PPM] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_PPM];
+      f[DIR_PMM] = ftemp[DIR_PMM] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * f[DIR_PMM];
 
       distributions->setDistributionInvForDirection(f[DIR_P00], x1 + DX1[DIR_M00], x2 + DX2[DIR_M00], x3 + DX3[DIR_M00], DIR_M00);
       distributions->setDistributionInvForDirection(f[DIR_PP0], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0);
@@ -119,15 +119,15 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC()
       distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP);
       break;
    case DIR_M00:
-      f[DIR_M00] = ftemp[DIR_M00] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_M00];
-      f[DIR_MP0] = ftemp[DIR_MP0] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_MP0];
-      f[DIR_MM0] = ftemp[DIR_MM0] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_MM0];
-      f[DIR_M0P] = ftemp[DIR_M0P] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_M0P];
-      f[DIR_M0M] = ftemp[DIR_M0M] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_M0M];
-      f[DIR_MPP] = ftemp[DIR_MPP] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_MPP];
-      f[DIR_MMP] = ftemp[DIR_MMP] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_MMP];
-      f[DIR_MPM] = ftemp[DIR_MPM] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_MPM];
-      f[DIR_MMM] = ftemp[DIR_MMM] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * f[DIR_MMM];
+      f[DIR_M00] = ftemp[DIR_M00] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_M00];
+      f[DIR_MP0] = ftemp[DIR_MP0] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_MP0];
+      f[DIR_MM0] = ftemp[DIR_MM0] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_MM0];
+      f[DIR_M0P] = ftemp[DIR_M0P] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_M0P];
+      f[DIR_M0M] = ftemp[DIR_M0M] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_M0M];
+      f[DIR_MPP] = ftemp[DIR_MPP] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_MPP];
+      f[DIR_MMP] = ftemp[DIR_MMP] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_MMP];
+      f[DIR_MPM] = ftemp[DIR_MPM] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_MPM];
+      f[DIR_MMM] = ftemp[DIR_MMM] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * f[DIR_MMM];
 
       distributions->setDistributionInvForDirection(f[DIR_M00], x1 + DX1[DIR_P00], x2 + DX2[DIR_P00], x3 + DX3[DIR_P00], DIR_P00);
       distributions->setDistributionInvForDirection(f[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0);
@@ -140,15 +140,15 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC()
       distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP);
       break;
    case DIR_0P0:
-      f[DIR_0P0] = ftemp[DIR_0P0] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_0P0];
-      f[DIR_PP0] = ftemp[DIR_PP0] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_PP0];
-      f[DIR_MP0] = ftemp[DIR_MP0] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_MP0];
-      f[DIR_0PP] = ftemp[DIR_0PP] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_0PP];
-      f[DIR_0PM] = ftemp[DIR_0PM] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_0PM];
-      f[DIR_PPP] = ftemp[DIR_PPP] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_PPP];
-      f[DIR_MPP] = ftemp[DIR_MPP] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_MPP];
-      f[DIR_PPM] = ftemp[DIR_PPM] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_PPM];
-      f[DIR_MPM] = ftemp[DIR_MPM] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * f[DIR_MPM];
+      f[DIR_0P0] = ftemp[DIR_0P0] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_0P0];
+      f[DIR_PP0] = ftemp[DIR_PP0] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_PP0];
+      f[DIR_MP0] = ftemp[DIR_MP0] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_MP0];
+      f[DIR_0PP] = ftemp[DIR_0PP] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_0PP];
+      f[DIR_0PM] = ftemp[DIR_0PM] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_0PM];
+      f[DIR_PPP] = ftemp[DIR_PPP] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_PPP];
+      f[DIR_MPP] = ftemp[DIR_MPP] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_MPP];
+      f[DIR_PPM] = ftemp[DIR_PPM] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_PPM];
+      f[DIR_MPM] = ftemp[DIR_MPM] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * f[DIR_MPM];
 
       distributions->setDistributionInvForDirection(f[DIR_0P0], x1 + DX1[DIR_0M0], x2 + DX2[DIR_0M0], x3 + DX3[DIR_0M0], DIR_0M0);
       distributions->setDistributionInvForDirection(f[DIR_PP0], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0);
@@ -161,15 +161,15 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC()
       distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP);
       break;
    case DIR_0M0:
-      f[DIR_0M0] = ftemp[DIR_0M0] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_0M0];
-      f[DIR_PM0] = ftemp[DIR_PM0] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_PM0];
-      f[DIR_MM0] = ftemp[DIR_MM0] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_MM0];
-      f[DIR_0MP] = ftemp[DIR_0MP] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_0MP];
-      f[DIR_0MM] = ftemp[DIR_0MM] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_0MM];
-      f[DIR_PMP] = ftemp[DIR_PMP] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_PMP];
-      f[DIR_MMP] = ftemp[DIR_MMP] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_MMP];
-      f[DIR_PMM] = ftemp[DIR_PMM] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_PMM];
-      f[DIR_MMM] = ftemp[DIR_MMM] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * f[DIR_MMM];
+      f[DIR_0M0] = ftemp[DIR_0M0] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_0M0];
+      f[DIR_PM0] = ftemp[DIR_PM0] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_PM0];
+      f[DIR_MM0] = ftemp[DIR_MM0] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_MM0];
+      f[DIR_0MP] = ftemp[DIR_0MP] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_0MP];
+      f[DIR_0MM] = ftemp[DIR_0MM] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_0MM];
+      f[DIR_PMP] = ftemp[DIR_PMP] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_PMP];
+      f[DIR_MMP] = ftemp[DIR_MMP] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_MMP];
+      f[DIR_PMM] = ftemp[DIR_PMM] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_PMM];
+      f[DIR_MMM] = ftemp[DIR_MMM] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * f[DIR_MMM];
 
       distributions->setDistributionInvForDirection(f[DIR_0M0], x1 + DX1[DIR_0P0], x2 + DX2[DIR_0P0], x3 + DX3[DIR_0P0], DIR_0P0);
       distributions->setDistributionInvForDirection(f[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0);
@@ -182,15 +182,15 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC()
       distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP);
       break;
    case DIR_00P:
-      f[DIR_00P] = ftemp[DIR_00P] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_00P];
-      f[DIR_P0P] = ftemp[DIR_P0P] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_P0P];
-      f[DIR_M0P] = ftemp[DIR_M0P] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_M0P];
-      f[DIR_0PP] = ftemp[DIR_0PP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_0PP];
-      f[DIR_0MP] = ftemp[DIR_0MP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_0MP];
-      f[DIR_PPP] = ftemp[DIR_PPP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_PPP];
-      f[DIR_MPP] = ftemp[DIR_MPP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_MPP];
-      f[DIR_PMP] = ftemp[DIR_PMP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_PMP];
-      f[DIR_MMP] = ftemp[DIR_MMP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * f[DIR_MMP];
+      f[DIR_00P] = ftemp[DIR_00P] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_00P];
+      f[DIR_P0P] = ftemp[DIR_P0P] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_P0P];
+      f[DIR_M0P] = ftemp[DIR_M0P] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_M0P];
+      f[DIR_0PP] = ftemp[DIR_0PP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_0PP];
+      f[DIR_0MP] = ftemp[DIR_0MP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_0MP];
+      f[DIR_PPP] = ftemp[DIR_PPP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_PPP];
+      f[DIR_MPP] = ftemp[DIR_MPP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_MPP];
+      f[DIR_PMP] = ftemp[DIR_PMP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_PMP];
+      f[DIR_MMP] = ftemp[DIR_MMP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * f[DIR_MMP];
 
       distributions->setDistributionInvForDirection(f[DIR_00P], x1 + DX1[DIR_00M], x2 + DX2[DIR_00M], x3 + DX3[DIR_00M], DIR_00M);
       distributions->setDistributionInvForDirection(f[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M);
@@ -203,15 +203,15 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC()
       distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM);
       break;
    case DIR_00M:
-      f[DIR_00M] = ftemp[DIR_00M] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_00M];
-      f[DIR_P0M] = ftemp[DIR_P0M] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_P0M];
-      f[DIR_M0M] = ftemp[DIR_M0M] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_M0M];
-      f[DIR_0PM] = ftemp[DIR_0PM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_0PM];
-      f[DIR_0MM] = ftemp[DIR_0MM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_0MM];
-      f[DIR_PPM] = ftemp[DIR_PPM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_PPM];
-      f[DIR_MPM] = ftemp[DIR_MPM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_MPM];
-      f[DIR_PMM] = ftemp[DIR_PMM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_PMM];
-      f[DIR_MMM] = ftemp[DIR_MMM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * f[DIR_MMM];
+      f[DIR_00M] = ftemp[DIR_00M] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_00M];
+      f[DIR_P0M] = ftemp[DIR_P0M] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_P0M];
+      f[DIR_M0M] = ftemp[DIR_M0M] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_M0M];
+      f[DIR_0PM] = ftemp[DIR_0PM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_0PM];
+      f[DIR_0MM] = ftemp[DIR_0MM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_0MM];
+      f[DIR_PPM] = ftemp[DIR_PPM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_PPM];
+      f[DIR_MPM] = ftemp[DIR_MPM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_MPM];
+      f[DIR_PMM] = ftemp[DIR_PMM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_PMM];
+      f[DIR_MMM] = ftemp[DIR_MMM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * f[DIR_MMM];
 
       distributions->setDistributionInvForDirection(f[DIR_00M], x1 + DX1[DIR_00P], x2 + DX2[DIR_00P], x3 + DX3[DIR_00P], DIR_00P);
       distributions->setDistributionInvForDirection(f[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P);
@@ -242,15 +242,15 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC()
    switch (direction)
    {
    case DIR_P00:
-      h[DIR_P00]  = htemp[DIR_P00] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * h[DIR_P00];
-      h[DIR_PP0] = htemp[DIR_PP0] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * h[DIR_PP0];
-      h[DIR_PM0] = htemp[DIR_PM0] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * h[DIR_PM0];
-      h[DIR_P0P] = htemp[DIR_P0P] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * h[DIR_P0P];
-      h[DIR_P0M] = htemp[DIR_P0M] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * h[DIR_P0M];
-      h[DIR_PPP] = htemp[DIR_PPP] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * h[DIR_PPP];
-      h[DIR_PMP] = htemp[DIR_PMP] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * h[DIR_PMP];
-      h[DIR_PPM] = htemp[DIR_PPM] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * h[DIR_PPM];
-      h[DIR_PMM] = htemp[DIR_PMM] * (vf::lbm::constant::one_over_sqrt3 + vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx1) * h[DIR_PMM];
+      h[DIR_P00]  = htemp[DIR_P00] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * h[DIR_P00];
+      h[DIR_PP0] = htemp[DIR_PP0] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * h[DIR_PP0];
+      h[DIR_PM0] = htemp[DIR_PM0] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * h[DIR_PM0];
+      h[DIR_P0P] = htemp[DIR_P0P] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * h[DIR_P0P];
+      h[DIR_P0M] = htemp[DIR_P0M] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * h[DIR_P0M];
+      h[DIR_PPP] = htemp[DIR_PPP] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * h[DIR_PPP];
+      h[DIR_PMP] = htemp[DIR_PMP] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * h[DIR_PMP];
+      h[DIR_PPM] = htemp[DIR_PPM] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * h[DIR_PPM];
+      h[DIR_PMM] = htemp[DIR_PMM] * (vf::basics::constant::one_over_sqrt3 + vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx1) * h[DIR_PMM];
 
       distributionsH->setDistributionInvForDirection(h[DIR_P00], x1 + DX1[DIR_M00], x2 + DX2[DIR_M00], x3 + DX3[DIR_M00], DIR_M00);
       distributionsH->setDistributionInvForDirection(h[DIR_PP0], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0);
@@ -263,15 +263,15 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC()
       distributionsH->setDistributionInvForDirection(h[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP);
       break;
    case DIR_M00:
-      h[DIR_M00] = htemp[DIR_M00] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * h[DIR_M00];
-      h[DIR_MP0] = htemp[DIR_MP0] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * h[DIR_MP0];
-      h[DIR_MM0] = htemp[DIR_MM0] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * h[DIR_MM0];
-      h[DIR_M0P] = htemp[DIR_M0P] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * h[DIR_M0P];
-      h[DIR_M0M] = htemp[DIR_M0M] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * h[DIR_M0M];
-      h[DIR_MPP] = htemp[DIR_MPP] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * h[DIR_MPP];
-      h[DIR_MMP] = htemp[DIR_MMP] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * h[DIR_MMP];
-      h[DIR_MPM] = htemp[DIR_MPM] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * h[DIR_MPM];
-      h[DIR_MMM] = htemp[DIR_MMM] * (vf::lbm::constant::one_over_sqrt3 - vx1) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx1) * h[DIR_MMM];
+      h[DIR_M00] = htemp[DIR_M00] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * h[DIR_M00];
+      h[DIR_MP0] = htemp[DIR_MP0] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * h[DIR_MP0];
+      h[DIR_MM0] = htemp[DIR_MM0] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * h[DIR_MM0];
+      h[DIR_M0P] = htemp[DIR_M0P] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * h[DIR_M0P];
+      h[DIR_M0M] = htemp[DIR_M0M] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * h[DIR_M0M];
+      h[DIR_MPP] = htemp[DIR_MPP] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * h[DIR_MPP];
+      h[DIR_MMP] = htemp[DIR_MMP] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * h[DIR_MMP];
+      h[DIR_MPM] = htemp[DIR_MPM] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * h[DIR_MPM];
+      h[DIR_MMM] = htemp[DIR_MMM] * (vf::basics::constant::one_over_sqrt3 - vx1) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx1) * h[DIR_MMM];
 
       distributionsH->setDistributionInvForDirection(h[DIR_M00], x1 + DX1[DIR_P00], x2 + DX2[DIR_P00], x3 + DX3[DIR_P00], DIR_P00);
       distributionsH->setDistributionInvForDirection(h[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0);
@@ -284,15 +284,15 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC()
       distributionsH->setDistributionInvForDirection(h[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP);
       break;
    case DIR_0P0:
-      h[DIR_0P0] = htemp[DIR_0P0] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * h[DIR_0P0];
-      h[DIR_PP0] = htemp[DIR_PP0] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * h[DIR_PP0];
-      h[DIR_MP0] = htemp[DIR_MP0] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * h[DIR_MP0];
-      h[DIR_0PP] = htemp[DIR_0PP] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * h[DIR_0PP];
-      h[DIR_0PM] = htemp[DIR_0PM] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * h[DIR_0PM];
-      h[DIR_PPP] = htemp[DIR_PPP] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * h[DIR_PPP];
-      h[DIR_MPP] = htemp[DIR_MPP] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * h[DIR_MPP];
-      h[DIR_PPM] = htemp[DIR_PPM] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * h[DIR_PPM];
-      h[DIR_MPM] = htemp[DIR_MPM] * (vf::lbm::constant::one_over_sqrt3 + vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx2) * h[DIR_MPM];
+      h[DIR_0P0] = htemp[DIR_0P0] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * h[DIR_0P0];
+      h[DIR_PP0] = htemp[DIR_PP0] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * h[DIR_PP0];
+      h[DIR_MP0] = htemp[DIR_MP0] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * h[DIR_MP0];
+      h[DIR_0PP] = htemp[DIR_0PP] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * h[DIR_0PP];
+      h[DIR_0PM] = htemp[DIR_0PM] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * h[DIR_0PM];
+      h[DIR_PPP] = htemp[DIR_PPP] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * h[DIR_PPP];
+      h[DIR_MPP] = htemp[DIR_MPP] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * h[DIR_MPP];
+      h[DIR_PPM] = htemp[DIR_PPM] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * h[DIR_PPM];
+      h[DIR_MPM] = htemp[DIR_MPM] * (vf::basics::constant::one_over_sqrt3 + vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx2) * h[DIR_MPM];
 
       distributionsH->setDistributionInvForDirection(h[DIR_0P0], x1 + DX1[DIR_0M0], x2 + DX2[DIR_0M0], x3 + DX3[DIR_0M0], DIR_0M0);
       distributionsH->setDistributionInvForDirection(h[DIR_PP0], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0);
@@ -305,15 +305,15 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC()
       distributionsH->setDistributionInvForDirection(h[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP);
       break;
    case DIR_0M0:
-      h[DIR_0M0] = htemp[DIR_0M0] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * h[DIR_0M0];
-      h[DIR_PM0] = htemp[DIR_PM0] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * h[DIR_PM0];
-      h[DIR_MM0] = htemp[DIR_MM0] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * h[DIR_MM0];
-      h[DIR_0MP] = htemp[DIR_0MP] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * h[DIR_0MP];
-      h[DIR_0MM] = htemp[DIR_0MM] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * h[DIR_0MM];
-      h[DIR_PMP] = htemp[DIR_PMP] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * h[DIR_PMP];
-      h[DIR_MMP] = htemp[DIR_MMP] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * h[DIR_MMP];
-      h[DIR_PMM] = htemp[DIR_PMM] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * h[DIR_PMM];
-      h[DIR_MMM] = htemp[DIR_MMM] * (vf::lbm::constant::one_over_sqrt3 - vx2) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx2) * h[DIR_MMM];
+      h[DIR_0M0] = htemp[DIR_0M0] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * h[DIR_0M0];
+      h[DIR_PM0] = htemp[DIR_PM0] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * h[DIR_PM0];
+      h[DIR_MM0] = htemp[DIR_MM0] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * h[DIR_MM0];
+      h[DIR_0MP] = htemp[DIR_0MP] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * h[DIR_0MP];
+      h[DIR_0MM] = htemp[DIR_0MM] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * h[DIR_0MM];
+      h[DIR_PMP] = htemp[DIR_PMP] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * h[DIR_PMP];
+      h[DIR_MMP] = htemp[DIR_MMP] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * h[DIR_MMP];
+      h[DIR_PMM] = htemp[DIR_PMM] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * h[DIR_PMM];
+      h[DIR_MMM] = htemp[DIR_MMM] * (vf::basics::constant::one_over_sqrt3 - vx2) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx2) * h[DIR_MMM];
 
       distributionsH->setDistributionInvForDirection(h[DIR_0M0], x1 + DX1[DIR_0P0], x2 + DX2[DIR_0P0], x3 + DX3[DIR_0P0], DIR_0P0);
       distributionsH->setDistributionInvForDirection(h[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0);
@@ -326,15 +326,15 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC()
       distributionsH->setDistributionInvForDirection(h[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP);
       break;
    case DIR_00P:
-      h[DIR_00P] = htemp[DIR_00P] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * h[DIR_00P];
-      h[DIR_P0P] = htemp[DIR_P0P] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * h[DIR_P0P];
-      h[DIR_M0P] = htemp[DIR_M0P] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * h[DIR_M0P];
-      h[DIR_0PP] = htemp[DIR_0PP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * h[DIR_0PP];
-      h[DIR_0MP] = htemp[DIR_0MP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * h[DIR_0MP];
-      h[DIR_PPP] = htemp[DIR_PPP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * h[DIR_PPP];
-      h[DIR_MPP] = htemp[DIR_MPP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * h[DIR_MPP];
-      h[DIR_PMP] = htemp[DIR_PMP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * h[DIR_PMP];
-      h[DIR_MMP] = htemp[DIR_MMP] * (vf::lbm::constant::one_over_sqrt3 + vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 - vx3) * h[DIR_MMP];
+      h[DIR_00P] = htemp[DIR_00P] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * h[DIR_00P];
+      h[DIR_P0P] = htemp[DIR_P0P] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * h[DIR_P0P];
+      h[DIR_M0P] = htemp[DIR_M0P] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * h[DIR_M0P];
+      h[DIR_0PP] = htemp[DIR_0PP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * h[DIR_0PP];
+      h[DIR_0MP] = htemp[DIR_0MP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * h[DIR_0MP];
+      h[DIR_PPP] = htemp[DIR_PPP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * h[DIR_PPP];
+      h[DIR_MPP] = htemp[DIR_MPP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * h[DIR_MPP];
+      h[DIR_PMP] = htemp[DIR_PMP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * h[DIR_PMP];
+      h[DIR_MMP] = htemp[DIR_MMP] * (vf::basics::constant::one_over_sqrt3 + vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 - vx3) * h[DIR_MMP];
 
       distributionsH->setDistributionInvForDirection(h[DIR_00P], x1 + DX1[DIR_00M], x2 + DX2[DIR_00M], x3 + DX3[DIR_00M], DIR_00M);
       distributionsH->setDistributionInvForDirection(h[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M);
@@ -347,15 +347,15 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC()
       distributionsH->setDistributionInvForDirection(h[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM);
       break;
    case DIR_00M:
-      h[DIR_00M] = htemp[DIR_00M] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * h[DIR_00M];
-      h[DIR_P0M] = htemp[DIR_P0M] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * h[DIR_P0M];
-      h[DIR_M0M] = htemp[DIR_M0M] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * h[DIR_M0M];
-      h[DIR_0PM] = htemp[DIR_0PM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * h[DIR_0PM];
-      h[DIR_0MM] = htemp[DIR_0MM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * h[DIR_0MM];
-      h[DIR_PPM] = htemp[DIR_PPM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * h[DIR_PPM];
-      h[DIR_MPM] = htemp[DIR_MPM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * h[DIR_MPM];
-      h[DIR_PMM] = htemp[DIR_PMM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * h[DIR_PMM];
-      h[DIR_MMM] = htemp[DIR_MMM] * (vf::lbm::constant::one_over_sqrt3 - vx3) + (1.0 - vf::lbm::constant::one_over_sqrt3 + vx3) * h[DIR_MMM];
+      h[DIR_00M] = htemp[DIR_00M] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * h[DIR_00M];
+      h[DIR_P0M] = htemp[DIR_P0M] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * h[DIR_P0M];
+      h[DIR_M0M] = htemp[DIR_M0M] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * h[DIR_M0M];
+      h[DIR_0PM] = htemp[DIR_0PM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * h[DIR_0PM];
+      h[DIR_0MM] = htemp[DIR_0MM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * h[DIR_0MM];
+      h[DIR_PPM] = htemp[DIR_PPM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * h[DIR_PPM];
+      h[DIR_MPM] = htemp[DIR_MPM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * h[DIR_MPM];
+      h[DIR_PMM] = htemp[DIR_PMM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * h[DIR_PMM];
+      h[DIR_MMM] = htemp[DIR_MMM] * (vf::basics::constant::one_over_sqrt3 - vx3) + (1.0 - vf::basics::constant::one_over_sqrt3 + vx3) * h[DIR_MMM];
 
       distributionsH->setDistributionInvForDirection(h[DIR_00M], x1 + DX1[DIR_00P], x2 + DX2[DIR_00P], x3 + DX3[DIR_00P], DIR_00P);
       distributionsH->setDistributionInvForDirection(h[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P);
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp
index ffc32b9535e477bf2f8de080f8bf45545cb336dd..74fced98d39116ebbb9ebc9a762398f2cba7c579 100644
--- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp
+++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp
@@ -149,7 +149,7 @@ void WriteMultiphaseQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block)
     using namespace D3Q27System;
  //   using namespace UbMath;
     using namespace vf::lbm::dir;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
 
     SPtr<LBMKernel> kernel = dynamicPointerCast<LBMKernel>(block->getKernel());
     //double level   = (double)block->getLevel();
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.cpp
index 4e764c36350bbe234f4f50851a85fc35e5336049..9ff3fe0982d43ed119e7cfb3fba497a61e2c201b 100644
--- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.cpp
+++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.cpp
@@ -248,7 +248,7 @@ void WriteThixotropyQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block)
 					//LBMReal omega = Rheology::getHerschelBulkleyCollFactor(collFactor, shearRate, rho);
 					//LBMReal omega = Rheology::getPowellEyringCollFactor(collFactor, shearRate, rho);
 					real omega = Rheology::getBinghamCollFactor(collFactor, shearRate, rho);
-					real viscosity = (omega == 0) ? 0 : vf::lbm::constant::c1o3 * (vf::lbm::constant::c1o1/omega- vf::lbm::constant::c1o2);
+					real viscosity = (omega == 0) ? 0 : vf::basics::constant::c1o3 * (vf::basics::constant::c1o1/omega- vf::basics::constant::c1o2);
 
 					
 					data[index++].push_back(viscosity);
diff --git a/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.cpp b/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.cpp
index 06d0daffd5814f7956125c58c40e7122bf4878f0..c4a1ab11ef476891a7339a8ab2ae3c63556c8cd1 100644
--- a/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.cpp
+++ b/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.cpp
@@ -90,8 +90,8 @@ void D3Q27Interactor::initRayVectors()
     using namespace vf::lbm::dir;
 
     int fdir;
-    real c1oS2 = vf::lbm::constant::one_over_sqrt2;
-    real c1oS3 = vf::lbm::constant::one_over_sqrt3;
+    real c1oS2 = vf::basics::constant::one_over_sqrt2;
+    real c1oS3 = vf::basics::constant::one_over_sqrt3;
     fdir         = DIR_P00;
     rayX1[fdir]  = 1.0;
     rayX2[fdir]  = 0.0;
@@ -330,19 +330,19 @@ bool D3Q27Interactor::setDifferencesToGbObject3D(const SPtr<Block3D> block)
             throw UbException(
                 UB_EXARGS, "fuer den bei LB nicht vorkommenden Fall deltaX1!=deltaX2!=deltaX3  nicht implementiert ");
 
-        vector<real> distNeigh(D3Q27System::FENDDIR + 1, vf::lbm::constant::sqrt2 * deltaX1);
+        vector<real> distNeigh(D3Q27System::FENDDIR + 1, vf::basics::constant::sqrt2 * deltaX1);
         distNeigh[DIR_P00] = distNeigh[DIR_M00] = distNeigh[DIR_0P0] = deltaX1;
         distNeigh[DIR_0M0] = distNeigh[DIR_00P] = distNeigh[DIR_00M] = deltaX1;
         distNeigh[DIR_PP0] = distNeigh[DIR_MP0] = distNeigh[DIR_MM0] =
-            distNeigh[DIR_PM0]             = vf::lbm::constant::sqrt2 * deltaX1;
+            distNeigh[DIR_PM0]             = vf::basics::constant::sqrt2 * deltaX1;
         distNeigh[DIR_P0P] = distNeigh[DIR_0PP] = distNeigh[DIR_M0P] =
-            distNeigh[DIR_0MP]             = vf::lbm::constant::sqrt2 * deltaX1;
+            distNeigh[DIR_0MP]             = vf::basics::constant::sqrt2 * deltaX1;
         distNeigh[DIR_P0M] = distNeigh[DIR_0PM] = distNeigh[DIR_M0M] =
-            distNeigh[DIR_0MM]             = vf::lbm::constant::sqrt2 * deltaX1;
+            distNeigh[DIR_0MM]             = vf::basics::constant::sqrt2 * deltaX1;
         distNeigh[DIR_PPP] = distNeigh[DIR_MPP] = distNeigh[DIR_PMP] =
-            distNeigh[DIR_MMP]              = vf::lbm::constant::sqrt3 * deltaX1;
+            distNeigh[DIR_MMP]              = vf::basics::constant::sqrt3 * deltaX1;
         distNeigh[DIR_PPM] = distNeigh[DIR_MPM] = distNeigh[DIR_PMM] =
-            distNeigh[DIR_MMM]              = vf::lbm::constant::sqrt3 * deltaX1;
+            distNeigh[DIR_MMM]              = vf::basics::constant::sqrt3 * deltaX1;
         real q;
         bool pointOnBoundary = false;
 
diff --git a/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp
index ffe11c011334da5fe8b3f7050ff817245f85e0a1..d27564c49cd2b115b9e4b4609b0ecf8f1a8a941b 100644
--- a/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp
@@ -6,7 +6,7 @@
 #include "D3Q27System.h"
 #include "DataSet3D.h"
 #include "Block3D.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 
 #define PROOF_CORRECTNESS
 
@@ -42,7 +42,7 @@ void BGKLBMKernel::calculate(int step)
 {
     using namespace D3Q27System;
  //   using namespace UbMath;
-   using namespace vf::lbm::constant;
+   using namespace vf::basics::constant;
    using namespace vf::lbm::dir;
 
     // initializing of forcing stuff
diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp
index 45cc9651ca25dcd0b0904b753f6f1899a7a09d00..4f5ce06af1a85555933b7b3cd9413e1daee727a0 100644
--- a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp
@@ -10,7 +10,7 @@
 #define PROOF_CORRECTNESS
 
 //using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 //////////////////////////////////////////////////////////////////////////
 CompressibleCumulant4thOrderViscosityLBMKernel::CompressibleCumulant4thOrderViscosityLBMKernel()
diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.cpp
index 2552de70437992a5cbf79a13f40615e46b084fb6..1c806225b9730e3f6b42c3487e20edf298199bf1 100644
--- a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.cpp
@@ -8,7 +8,7 @@
 #define PROOF_CORRECTNESS
 
 //using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 //////////////////////////////////////////////////////////////////////////
 CompressibleCumulantLBMKernel::CompressibleCumulantLBMKernel()
diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp
index 358f8269a65b247efb7abd9c6a2a840c6e122e08..d98d7489a7fbe466a31278cc7ca555168e962f6d 100644
--- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp
@@ -2,7 +2,7 @@
 #include "D3Q27System.h"
 
 //using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 //////////////////////////////////////////////////////////////////////////
 CompressibleOffsetInterpolationProcessor::CompressibleOffsetInterpolationProcessor(real omegaC, real omegaF)
@@ -62,7 +62,7 @@ void CompressibleOffsetInterpolationProcessor::calcMoments(const real* const f,
 {
    using namespace D3Q27System;
    using namespace vf::lbm::dir;
-   using namespace vf::lbm::constant;
+   using namespace vf::basics::constant;
 
    real drho = 0.0;
    D3Q27System::calcCompMacroscopicValues(f,drho,vx1,vx2,vx3);
diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp
index 7321e7f7bfca2080b9c52f89c5c9354b219c1a94..68b8506d896c3d5c93c9021a7a03ab3fe7a8621e 100644
--- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp
@@ -2,7 +2,7 @@
 #include "D3Q27System.h"
 
 //using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 CompressibleOffsetMomentsInterpolationProcessor::CompressibleOffsetMomentsInterpolationProcessor()
     
@@ -489,7 +489,7 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeCF(rea
 {
    using namespace D3Q27System;
    using namespace vf::lbm::dir;
-   using namespace vf::lbm::constant;
+   using namespace vf::basics::constant;
 
    real eps_new = 0.5;
    real o = omega;
diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp
index f924d4b9150eabc78b9aa8b5e72eb3dd5df3cf45..80eb84112dc43ab2a502c9213636b7f8dde18a35 100644
--- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp
@@ -2,7 +2,7 @@
 #include "D3Q27System.h"
 
 //using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 CompressibleOffsetSquarePressureInterpolationProcessor::CompressibleOffsetSquarePressureInterpolationProcessor()
     
diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp
index e9c7007a90063c0f65a6c69053441ae8581866a6..736dbb791547633f22e0e9a0efd572271f28552c 100644
--- a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp
@@ -42,8 +42,7 @@
 #define PROOF_CORRECTNESS
 
 //using namespace UbMath;
-using namespace vf::lbm::constant
-;
+using namespace vf::basics::constant;
 
 //////////////////////////////////////////////////////////////////////////
 CumulantK17LBMKernel::CumulantK17LBMKernel()
diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.h
index 345f12fd81f708f13371bffc77a4690dae37d085..84b14553dc2100aa244a5f7e3fc0d5025d93e195 100644
--- a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.h
+++ b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.h
@@ -87,7 +87,7 @@ protected:
 inline void CumulantK17LBMKernel::forwardInverseChimeraWithK(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K)
 {
 //    using namespace UbMath;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
     real m2 = mfa + mfc;
     real m1 = mfc - mfa;
     real m0 = m2 + mfb;
@@ -106,7 +106,7 @@ inline void CumulantK17LBMKernel::forwardInverseChimeraWithK(real& mfa, real& mf
 inline void CumulantK17LBMKernel::backwardInverseChimeraWithK(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K)
 {
 //    using namespace UbMath;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
  
     real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + c1o1) * (v2 - vv) * c1o2) * K;
     real m1 = (((mfa - mfc) - c2o1 * mfb * vv) * Kinverse + (mfa * Kinverse + c1o1) * (-v2)) * K;
@@ -124,7 +124,7 @@ inline void CumulantK17LBMKernel::backwardInverseChimeraWithK(real& mfa, real& m
 inline void CumulantK17LBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2)
 {
 //    using namespace UbMath;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
     
     real m1 = (mfa + mfc) + mfb;
     real m2 = mfc - mfa;
@@ -142,7 +142,7 @@ inline void CumulantK17LBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc
 inline void CumulantK17LBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2)
 {
 //    using namespace UbMath;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
 
     real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2);
     real mb = ((mfa - mfc) - mfa * v2) - c2o1 * mfb * vv;
diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.cpp b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.cpp
index 2d39205c544e430aac8c0a4181d2c8e3b4791e7a..e95271b949ff91dc7ec2c62a4a45227f8e25f519 100644
--- a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.cpp
@@ -47,7 +47,7 @@
 //#define PROOF_CORRECTNESS
 
 //using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 //////////////////////////////////////////////////////////////////////////
 CumulantK17LBMKernelUnified::CumulantK17LBMKernelUnified()
diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.cpp
index 375f5c406c179e1e17316e7ff7faa896a5f06b2d..d2f25ad275a5c01d685e915f2b37f101b40d556d 100644
--- a/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.cpp
@@ -9,7 +9,7 @@
 #define PROOF_CORRECTNESS
 
 //using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 //////////////////////////////////////////////////////////////////////////
 CumulantLBMKernel::CumulantLBMKernel()
diff --git a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp
index b7aed29bbf30f3081633df6f45eaf7ade9d93572..5c9be26b7b1ace78e81f1a1c1f28a1e089c9a013 100644
--- a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp
@@ -5,7 +5,7 @@
 namespace D3Q27System
 {
 //using namespace UbMath;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
 
 // index            0   1   2   3   4   5  6   7   8   9   10  11  12  13  14  15  16  17   18  19  20  21  22  23  24  25
 // f:               E,  W,  N,  S,  T,  B, NE, SW, SE, NW, TE, BW, BE, TW, TN, BS, BN, TS, TNE TNW TSE TSW BNE BNW BSE BSW
diff --git a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h
index 4b7f6dcea27a293cb319a65b3a864965cbed01a7..2843a77a21310a9569c3abb3552eea42bbd4f250 100644
--- a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h
+++ b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h
@@ -42,7 +42,7 @@
 #include "LBMSystem.h"
 #include "UbException.h"
 #include "UbMath.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 
 //using namespace vf::lbm::dir;
 
@@ -398,7 +398,7 @@ static inline void setNeighborCoordinatesForDirection(int &x1, int &x2, int &x3,
 /*=====================================================================*/
 real getDensity(const real *const &f /*[27]*/);
 /*=====================================================================*/
-static real getPressure(const real *const &f /*[27]*/) { return REAL_CAST(vf::lbm::constant::c1o3) * getDensity(f); }
+static real getPressure(const real *const &f /*[27]*/) { return REAL_CAST(vf::basics::constant::c1o3) * getDensity(f); }
 /*=====================================================================*/
 real getIncompVelocityX1(const real *const &f /*[27]*/);
 /*=====================================================================*/
@@ -513,8 +513,8 @@ static void calcCompMacroscopicValues(const real *const &f /*[27]*/, real &drho,
     D3Q27System::calcIncompVelocityX1(f, vx1);
     D3Q27System::calcIncompVelocityX2(f, vx2);
     D3Q27System::calcIncompVelocityX3(f, vx3);
-    //real rho = drho + vf::lbm::constant::one;
-    real rho = drho + vf::lbm::constant::c1o1;
+    //real rho = drho + vf::basics::constant::one;
+    real rho = drho + vf::basics::constant::c1o1;
     vx1 /= rho;
     vx2 /= rho;
     vx3 /= rho;
@@ -526,90 +526,90 @@ static real getCompFeqForDirection(const int &direction, const real &drho, const
     using namespace vf::lbm::dir;
 
     real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3);
-    real rho   = drho + vf::lbm::constant::c1o1;
+    real rho   = drho + vf::basics::constant::c1o1;
     switch (direction) {
         case DIR_000:
-            return REAL_CAST(vf::lbm::constant::c8o27 * (drho + rho * (-cu_sq)));
+            return REAL_CAST(vf::basics::constant::c8o27 * (drho + rho * (-cu_sq)));
         case DIR_P00:
-            return REAL_CAST(vf::lbm::constant::c2o27 * (drho + rho * (3.0 * (vx1) +vf::lbm::constant::c9o2 * (vx1) * (vx1)-cu_sq)));
+            return REAL_CAST(vf::basics::constant::c2o27 * (drho + rho * (3.0 * (vx1) +vf::basics::constant::c9o2 * (vx1) * (vx1)-cu_sq)));
         case DIR_M00:
-            return REAL_CAST(vf::lbm::constant::c2o27 * (drho + rho * (3.0 * (-vx1) + vf::lbm::constant::c9o2 * (-vx1) * (-vx1) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c2o27 * (drho + rho * (3.0 * (-vx1) + vf::basics::constant::c9o2 * (-vx1) * (-vx1) - cu_sq)));
         case DIR_0P0:
-            return REAL_CAST(vf::lbm::constant::c2o27 * (drho + rho * (3.0 * (vx2) +vf::lbm::constant::c9o2 * (vx2) * (vx2)-cu_sq)));
+            return REAL_CAST(vf::basics::constant::c2o27 * (drho + rho * (3.0 * (vx2) +vf::basics::constant::c9o2 * (vx2) * (vx2)-cu_sq)));
         case DIR_0M0:
-            return REAL_CAST(vf::lbm::constant::c2o27 * (drho + rho * (3.0 * (-vx2) + vf::lbm::constant::c9o2 * (-vx2) * (-vx2) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c2o27 * (drho + rho * (3.0 * (-vx2) + vf::basics::constant::c9o2 * (-vx2) * (-vx2) - cu_sq)));
         case DIR_00P:
-            return REAL_CAST(vf::lbm::constant::c2o27 * (drho + rho * (3.0 * (vx3) + vf::lbm::constant::c9o2 * (vx3) * (vx3)-cu_sq)));
+            return REAL_CAST(vf::basics::constant::c2o27 * (drho + rho * (3.0 * (vx3) + vf::basics::constant::c9o2 * (vx3) * (vx3)-cu_sq)));
         case DIR_00M:
-            return REAL_CAST(vf::lbm::constant::c2o27 * (drho + rho * (3.0 * (-vx3) + vf::lbm::constant::c9o2 * (-vx3) * (-vx3) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c2o27 * (drho + rho * (3.0 * (-vx3) + vf::basics::constant::c9o2 * (-vx3) * (-vx3) - cu_sq)));
         case DIR_PP0:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + rho * (3.0 * (vx1 + vx2) + vf::lbm::constant::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + rho * (3.0 * (vx1 + vx2) + vf::basics::constant::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq)));
         case DIR_MM0:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + rho * (3.0 * (-vx1 - vx2) + vf::lbm::constant::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + rho * (3.0 * (-vx1 - vx2) + vf::basics::constant::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq)));
         case DIR_PM0:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + rho * (3.0 * (vx1 - vx2) + vf::lbm::constant::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + rho * (3.0 * (vx1 - vx2) + vf::basics::constant::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq)));
         case DIR_MP0:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + rho * (3.0 * (-vx1 + vx2) + vf::lbm::constant::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + rho * (3.0 * (-vx1 + vx2) + vf::basics::constant::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq)));
         case DIR_P0P:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + rho * (3.0 * (vx1 + vx3) + vf::lbm::constant::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + rho * (3.0 * (vx1 + vx3) + vf::basics::constant::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq)));
         case DIR_M0M:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + rho * (3.0 * (-vx1 - vx3) + vf::lbm::constant::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + rho * (3.0 * (-vx1 - vx3) + vf::basics::constant::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq)));
         case DIR_P0M:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + rho * (3.0 * (vx1 - vx3) + vf::lbm::constant::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + rho * (3.0 * (vx1 - vx3) + vf::basics::constant::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq)));
         case DIR_M0P:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + rho * (3.0 * (-vx1 + vx3) + vf::lbm::constant::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + rho * (3.0 * (-vx1 + vx3) + vf::basics::constant::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq)));
         case DIR_0PP:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + rho * (3.0 * (vx2 + vx3) + vf::lbm::constant::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + rho * (3.0 * (vx2 + vx3) + vf::basics::constant::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq)));
         case DIR_0MM:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + rho * (3.0 * (-vx2 - vx3) + vf::lbm::constant::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + rho * (3.0 * (-vx2 - vx3) + vf::basics::constant::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq)));
         case DIR_0PM:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + rho * (3.0 * (vx2 - vx3) + vf::lbm::constant::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + rho * (3.0 * (vx2 - vx3) + vf::basics::constant::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq)));
         case DIR_0MP:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + rho * (3.0 * (-vx2 + vx3) + vf::lbm::constant::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq)));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + rho * (3.0 * (-vx2 + vx3) + vf::basics::constant::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq)));
         case DIR_PPP:
-            return REAL_CAST(vf::lbm::constant::c1o216 *
+            return REAL_CAST(vf::basics::constant::c1o216 *
                              (drho + rho * (3.0 * (vx1 + vx2 + vx3) +
-                                 vf::lbm::constant::c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq)));
+                                 vf::basics::constant::c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq)));
         case DIR_MMM:
-            return REAL_CAST(vf::lbm::constant::c1o216 *
+            return REAL_CAST(vf::basics::constant::c1o216 *
                              (drho + rho * (3.0 * (-vx1 - vx2 - vx3) +
-                                 vf::lbm::constant::c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq)));
+                                 vf::basics::constant::c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq)));
         case DIR_PPM:
-            return REAL_CAST(vf::lbm::constant::c1o216 *
+            return REAL_CAST(vf::basics::constant::c1o216 *
                              (drho + rho * (3.0 * (vx1 + vx2 - vx3) +
-                                 vf::lbm::constant::c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq)));
+                                 vf::basics::constant::c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq)));
         case DIR_MMP:
-            return REAL_CAST(vf::lbm::constant::c1o216 *
+            return REAL_CAST(vf::basics::constant::c1o216 *
                              (drho + rho * (3.0 * (-vx1 - vx2 + vx3) +
-                                            vf::lbm::constant::c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq)));
+                                            vf::basics::constant::c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq)));
         case DIR_PMP:
-            return REAL_CAST(vf::lbm::constant::c1o216 *
+            return REAL_CAST(vf::basics::constant::c1o216 *
                              (drho + rho * (3.0 * (vx1 - vx2 + vx3) +
-                                 vf::lbm::constant::c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq)));
+                                 vf::basics::constant::c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq)));
         case DIR_MPM:
-            return REAL_CAST(vf::lbm::constant::c1o216 *
+            return REAL_CAST(vf::basics::constant::c1o216 *
                              (drho + rho * (3.0 * (-vx1 + vx2 - vx3) +
-                                 vf::lbm::constant::c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq)));
+                                 vf::basics::constant::c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq)));
         case DIR_PMM:
-            return REAL_CAST(vf::lbm::constant::c1o216 *
+            return REAL_CAST(vf::basics::constant::c1o216 *
                              (drho + rho * (3.0 * (vx1 - vx2 - vx3) +
-                                 vf::lbm::constant::c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq)));
+                                 vf::basics::constant::c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq)));
         case DIR_MPP:
-            return REAL_CAST(vf::lbm::constant::c1o216 *
+            return REAL_CAST(vf::basics::constant::c1o216 *
                              (drho + rho * (3.0 * (-vx1 + vx2 + vx3) +
-                                 vf::lbm::constant::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq)));
+                                 vf::basics::constant::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq)));
         default:
             throw UbException(UB_EXARGS, "unknown dir");
     }
@@ -621,47 +621,47 @@ static void calcCompFeq(real *const &feq /*[27]*/, const real &drho, const real
     using namespace vf::lbm::dir;
 
     real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3);
-    real rho   = drho + vf::lbm::constant::c1o1;
-
-    feq[DIR_000] = vf::lbm::constant::c8o27 * (drho + rho * (-cu_sq));
-    feq[DIR_P00]    = vf::lbm::constant::c2o27 * (drho + rho * (3.0 * (vx1) + vf::lbm::constant::c9o2 * (vx1) * (vx1)-cu_sq));
-    feq[DIR_M00]    = vf::lbm::constant::c2o27 * (drho + rho * (3.0 * (-vx1) + vf::lbm::constant::c9o2 * (-vx1) * (-vx1) - cu_sq));
-    feq[DIR_0P0]    = vf::lbm::constant::c2o27 * (drho + rho * (3.0 * (vx2) + vf::lbm::constant::c9o2 * (vx2) * (vx2)-cu_sq));
-    feq[DIR_0M0]    = vf::lbm::constant::c2o27 * (drho + rho * (3.0 * (-vx2) + vf::lbm::constant::c9o2 * (-vx2) * (-vx2) - cu_sq));
-    feq[DIR_00P]    = vf::lbm::constant::c2o27 * (drho + rho * (3.0 * (vx3) + vf::lbm::constant::c9o2 * (vx3) * (vx3)-cu_sq));
-    feq[DIR_00M]    = vf::lbm::constant::c2o27 * (drho + rho * (3.0 * (-vx3) + vf::lbm::constant::c9o2 * (-vx3) * (-vx3) - cu_sq));
-    feq[DIR_PP0]   = vf::lbm::constant::c1o54 * (drho + rho * (3.0 * (vx1 + vx2) + vf::lbm::constant::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq));
-    feq[DIR_MM0]  = vf::lbm::constant::c1o54 * (drho + rho * (3.0 * (-vx1 - vx2) + vf::lbm::constant::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq));
-    feq[DIR_PM0]  = vf::lbm::constant::c1o54 * (drho + rho * (3.0 * (vx1 - vx2) + vf::lbm::constant::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq));
-    feq[DIR_MP0]  = vf::lbm::constant::c1o54 * (drho + rho * (3.0 * (-vx1 + vx2) + vf::lbm::constant::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq));
-    feq[DIR_P0P]  = vf::lbm::constant::c1o54 * (drho + rho * (3.0 * (vx1 + vx3) + vf::lbm::constant::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq));
-    feq[DIR_M0M]  = vf::lbm::constant::c1o54 * (drho + rho * (3.0 * (-vx1 - vx3) + vf::lbm::constant::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq));
-    feq[DIR_P0M]  = vf::lbm::constant::c1o54 * (drho + rho * (3.0 * (vx1 - vx3) + vf::lbm::constant::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq));
-    feq[DIR_M0P]  = vf::lbm::constant::c1o54 * (drho + rho * (3.0 * (-vx1 + vx3) + vf::lbm::constant::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq));
-    feq[DIR_0PP]  = vf::lbm::constant::c1o54 * (drho + rho * (3.0 * (vx2 + vx3) + vf::lbm::constant::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq));
-    feq[DIR_0MM]  = vf::lbm::constant::c1o54 * (drho + rho * (3.0 * (-vx2 - vx3) + vf::lbm::constant::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq));
-    feq[DIR_0PM]  = vf::lbm::constant::c1o54 * (drho + rho * (3.0 * (vx2 - vx3) + vf::lbm::constant::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq));
-    feq[DIR_0MP]  = vf::lbm::constant::c1o54 * (drho + rho * (3.0 * (-vx2 + vx3) + vf::lbm::constant::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq));
-    feq[DIR_PPP] = vf::lbm::constant::c1o216 *
-               (drho + rho * (3.0 * (vx1 + vx2 + vx3) + vf::lbm::constant::c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq));
+    real rho   = drho + vf::basics::constant::c1o1;
+
+    feq[DIR_000] = vf::basics::constant::c8o27 * (drho + rho * (-cu_sq));
+    feq[DIR_P00]    = vf::basics::constant::c2o27 * (drho + rho * (3.0 * (vx1) + vf::basics::constant::c9o2 * (vx1) * (vx1)-cu_sq));
+    feq[DIR_M00]    = vf::basics::constant::c2o27 * (drho + rho * (3.0 * (-vx1) + vf::basics::constant::c9o2 * (-vx1) * (-vx1) - cu_sq));
+    feq[DIR_0P0]    = vf::basics::constant::c2o27 * (drho + rho * (3.0 * (vx2) + vf::basics::constant::c9o2 * (vx2) * (vx2)-cu_sq));
+    feq[DIR_0M0]    = vf::basics::constant::c2o27 * (drho + rho * (3.0 * (-vx2) + vf::basics::constant::c9o2 * (-vx2) * (-vx2) - cu_sq));
+    feq[DIR_00P]    = vf::basics::constant::c2o27 * (drho + rho * (3.0 * (vx3) + vf::basics::constant::c9o2 * (vx3) * (vx3)-cu_sq));
+    feq[DIR_00M]    = vf::basics::constant::c2o27 * (drho + rho * (3.0 * (-vx3) + vf::basics::constant::c9o2 * (-vx3) * (-vx3) - cu_sq));
+    feq[DIR_PP0]   = vf::basics::constant::c1o54 * (drho + rho * (3.0 * (vx1 + vx2) + vf::basics::constant::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq));
+    feq[DIR_MM0]  = vf::basics::constant::c1o54 * (drho + rho * (3.0 * (-vx1 - vx2) + vf::basics::constant::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq));
+    feq[DIR_PM0]  = vf::basics::constant::c1o54 * (drho + rho * (3.0 * (vx1 - vx2) + vf::basics::constant::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq));
+    feq[DIR_MP0]  = vf::basics::constant::c1o54 * (drho + rho * (3.0 * (-vx1 + vx2) + vf::basics::constant::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq));
+    feq[DIR_P0P]  = vf::basics::constant::c1o54 * (drho + rho * (3.0 * (vx1 + vx3) + vf::basics::constant::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq));
+    feq[DIR_M0M]  = vf::basics::constant::c1o54 * (drho + rho * (3.0 * (-vx1 - vx3) + vf::basics::constant::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq));
+    feq[DIR_P0M]  = vf::basics::constant::c1o54 * (drho + rho * (3.0 * (vx1 - vx3) + vf::basics::constant::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq));
+    feq[DIR_M0P]  = vf::basics::constant::c1o54 * (drho + rho * (3.0 * (-vx1 + vx3) + vf::basics::constant::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq));
+    feq[DIR_0PP]  = vf::basics::constant::c1o54 * (drho + rho * (3.0 * (vx2 + vx3) + vf::basics::constant::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq));
+    feq[DIR_0MM]  = vf::basics::constant::c1o54 * (drho + rho * (3.0 * (-vx2 - vx3) + vf::basics::constant::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq));
+    feq[DIR_0PM]  = vf::basics::constant::c1o54 * (drho + rho * (3.0 * (vx2 - vx3) + vf::basics::constant::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq));
+    feq[DIR_0MP]  = vf::basics::constant::c1o54 * (drho + rho * (3.0 * (-vx2 + vx3) + vf::basics::constant::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq));
+    feq[DIR_PPP] = vf::basics::constant::c1o216 *
+               (drho + rho * (3.0 * (vx1 + vx2 + vx3) + vf::basics::constant::c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq));
     feq[DIR_MMM] =
-        vf::lbm::constant::c1o216 *
-        (drho + rho * (3.0 * (-vx1 - vx2 - vx3) + vf::lbm::constant::c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq));
-    feq[DIR_PPM] = vf::lbm::constant::c1o216 *
-               (drho + rho * (3.0 * (vx1 + vx2 - vx3) + vf::lbm::constant::c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq));
+        vf::basics::constant::c1o216 *
+        (drho + rho * (3.0 * (-vx1 - vx2 - vx3) + vf::basics::constant::c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq));
+    feq[DIR_PPM] = vf::basics::constant::c1o216 *
+               (drho + rho * (3.0 * (vx1 + vx2 - vx3) + vf::basics::constant::c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq));
     feq[DIR_MMP] =
-        vf::lbm::constant::c1o216 *
-        (drho + rho * (3.0 * (-vx1 - vx2 + vx3) + vf::lbm::constant::c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq));
-    feq[DIR_PMP] = vf::lbm::constant::c1o216 *
-               (drho + rho * (3.0 * (vx1 - vx2 + vx3) + vf::lbm::constant::c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq));
+        vf::basics::constant::c1o216 *
+        (drho + rho * (3.0 * (-vx1 - vx2 + vx3) + vf::basics::constant::c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq));
+    feq[DIR_PMP] = vf::basics::constant::c1o216 *
+               (drho + rho * (3.0 * (vx1 - vx2 + vx3) + vf::basics::constant::c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq));
     feq[DIR_MPM] =
-        vf::lbm::constant::c1o216 *
-        (drho + rho * (3.0 * (-vx1 + vx2 - vx3) + vf::lbm::constant::c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq));
-    feq[DIR_PMM] = vf::lbm::constant::c1o216 *
-               (drho + rho * (3.0 * (vx1 - vx2 - vx3) + vf::lbm::constant::c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq));
+        vf::basics::constant::c1o216 *
+        (drho + rho * (3.0 * (-vx1 + vx2 - vx3) + vf::basics::constant::c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq));
+    feq[DIR_PMM] = vf::basics::constant::c1o216 *
+               (drho + rho * (3.0 * (vx1 - vx2 - vx3) + vf::basics::constant::c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq));
     feq[DIR_MPP] =
-        vf::lbm::constant::c1o216 *
-        (drho + rho * (3.0 * (-vx1 + vx2 + vx3) + vf::lbm::constant::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq));
+        vf::basics::constant::c1o216 *
+        (drho + rho * (3.0 * (-vx1 + vx2 + vx3) + vf::basics::constant::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq));
 }
 //////////////////////////////////////////////////////////////////////////
 static real getIncompFeqForDirection(const int &direction, const real &drho, const real &vx1,
@@ -673,79 +673,79 @@ static real getIncompFeqForDirection(const int &direction, const real &drho, con
 
     switch (direction) {
         case DIR_000:
-            return REAL_CAST(vf::lbm::constant::c8o27 * (drho - cu_sq));
+            return REAL_CAST(vf::basics::constant::c8o27 * (drho - cu_sq));
         case DIR_P00:
-            return REAL_CAST(vf::lbm::constant::c2o27 * (drho + 3.0 * (vx1) + vf::lbm::constant::c9o2 * (vx1) * (vx1)-cu_sq));
+            return REAL_CAST(vf::basics::constant::c2o27 * (drho + 3.0 * (vx1) + vf::basics::constant::c9o2 * (vx1) * (vx1)-cu_sq));
         case DIR_M00:
-            return REAL_CAST(vf::lbm::constant::c2o27 * (drho + 3.0 * (-vx1) + vf::lbm::constant::c9o2 * (-vx1) * (-vx1) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c2o27 * (drho + 3.0 * (-vx1) + vf::basics::constant::c9o2 * (-vx1) * (-vx1) - cu_sq));
         case DIR_0P0:
-            return REAL_CAST(vf::lbm::constant::c2o27 * (drho + 3.0 * (vx2) + vf::lbm::constant::c9o2 * (vx2) * (vx2)-cu_sq));
+            return REAL_CAST(vf::basics::constant::c2o27 * (drho + 3.0 * (vx2) + vf::basics::constant::c9o2 * (vx2) * (vx2)-cu_sq));
         case DIR_0M0:
-            return REAL_CAST(vf::lbm::constant::c2o27 * (drho + 3.0 * (-vx2) + vf::lbm::constant::c9o2 * (-vx2) * (-vx2) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c2o27 * (drho + 3.0 * (-vx2) + vf::basics::constant::c9o2 * (-vx2) * (-vx2) - cu_sq));
         case DIR_00P:
-            return REAL_CAST(vf::lbm::constant::c2o27 * (drho + 3.0 * (vx3) + vf::lbm::constant::c9o2 * (vx3) * (vx3)-cu_sq));
+            return REAL_CAST(vf::basics::constant::c2o27 * (drho + 3.0 * (vx3) + vf::basics::constant::c9o2 * (vx3) * (vx3)-cu_sq));
         case DIR_00M:
-            return REAL_CAST(vf::lbm::constant::c2o27 * (drho + 3.0 * (-vx3) + vf::lbm::constant::c9o2 * (-vx3) * (-vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c2o27 * (drho + 3.0 * (-vx3) + vf::basics::constant::c9o2 * (-vx3) * (-vx3) - cu_sq));
         case DIR_PP0:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + 3.0 * (vx1 + vx2) + vf::lbm::constant::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + 3.0 * (vx1 + vx2) + vf::basics::constant::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq));
         case DIR_MM0:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + 3.0 * (-vx1 - vx2) + vf::lbm::constant::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + 3.0 * (-vx1 - vx2) + vf::basics::constant::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq));
         case DIR_PM0:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + 3.0 * (vx1 - vx2) + vf::lbm::constant::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + 3.0 * (vx1 - vx2) + vf::basics::constant::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq));
         case DIR_MP0:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + 3.0 * (-vx1 + vx2) + vf::lbm::constant::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + 3.0 * (-vx1 + vx2) + vf::basics::constant::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq));
         case DIR_P0P:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + 3.0 * (vx1 + vx3) + vf::lbm::constant::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + 3.0 * (vx1 + vx3) + vf::basics::constant::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq));
         case DIR_M0M:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + 3.0 * (-vx1 - vx3) + vf::lbm::constant::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + 3.0 * (-vx1 - vx3) + vf::basics::constant::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq));
         case DIR_P0M:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + 3.0 * (vx1 - vx3) + vf::lbm::constant::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + 3.0 * (vx1 - vx3) + vf::basics::constant::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq));
         case DIR_M0P:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + 3.0 * (-vx1 + vx3) + vf::lbm::constant::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + 3.0 * (-vx1 + vx3) + vf::basics::constant::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq));
         case DIR_0PP:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + 3.0 * (vx2 + vx3) + vf::lbm::constant::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + 3.0 * (vx2 + vx3) + vf::basics::constant::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq));
         case DIR_0MM:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + 3.0 * (-vx2 - vx3) + vf::lbm::constant::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + 3.0 * (-vx2 - vx3) + vf::basics::constant::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq));
         case DIR_0PM:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + 3.0 * (vx2 - vx3) + vf::lbm::constant::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + 3.0 * (vx2 - vx3) + vf::basics::constant::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq));
         case DIR_0MP:
-            return REAL_CAST(vf::lbm::constant::c1o54 *
-                             (drho + 3.0 * (-vx2 + vx3) + vf::lbm::constant::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o54 *
+                             (drho + 3.0 * (-vx2 + vx3) + vf::basics::constant::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq));
         case DIR_PPP:
-            return REAL_CAST(vf::lbm::constant::c1o216 * (drho + 3.0 * (vx1 + vx2 + vx3) +
-                                               vf::lbm::constant::c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o216 * (drho + 3.0 * (vx1 + vx2 + vx3) +
+                                               vf::basics::constant::c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq));
         case DIR_MMM:
-            return REAL_CAST(vf::lbm::constant::c1o216 * (drho + 3.0 * (-vx1 - vx2 - vx3) +
-                                               vf::lbm::constant::c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o216 * (drho + 3.0 * (-vx1 - vx2 - vx3) +
+                                               vf::basics::constant::c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq));
         case DIR_PPM:
-            return REAL_CAST(vf::lbm::constant::c1o216 * (drho + 3.0 * (vx1 + vx2 - vx3) +
-                                               vf::lbm::constant::c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o216 * (drho + 3.0 * (vx1 + vx2 - vx3) +
+                                               vf::basics::constant::c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq));
         case DIR_MMP:
-            return REAL_CAST(vf::lbm::constant::c1o216 * (drho + 3.0 * (-vx1 - vx2 + vx3) +
-                                               vf::lbm::constant::c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o216 * (drho + 3.0 * (-vx1 - vx2 + vx3) +
+                                               vf::basics::constant::c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq));
         case DIR_PMP:
-            return REAL_CAST(vf::lbm::constant::c1o216 * (drho + 3.0 * (vx1 - vx2 + vx3) +
-                                               vf::lbm::constant::c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o216 * (drho + 3.0 * (vx1 - vx2 + vx3) +
+                                               vf::basics::constant::c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq));
         case DIR_MPM:
-            return REAL_CAST(vf::lbm::constant::c1o216 * (drho + 3.0 * (-vx1 + vx2 - vx3) +
-                                               vf::lbm::constant::c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o216 * (drho + 3.0 * (-vx1 + vx2 - vx3) +
+                                               vf::basics::constant::c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq));
         case DIR_PMM:
-            return REAL_CAST(vf::lbm::constant::c1o216 * (drho + 3.0 * (vx1 - vx2 - vx3) +
-                                               vf::lbm::constant::c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o216 * (drho + 3.0 * (vx1 - vx2 - vx3) +
+                                               vf::basics::constant::c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq));
         case DIR_MPP:
-            return REAL_CAST(vf::lbm::constant::c1o216 * (drho + 3.0 * (-vx1 + vx2 + vx3) +
-                                               vf::lbm::constant::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq));
+            return REAL_CAST(vf::basics::constant::c1o216 * (drho + 3.0 * (-vx1 + vx2 + vx3) +
+                                               vf::basics::constant::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq));
         default:
             throw UbException(UB_EXARGS, "unknown dir");
     }
@@ -758,41 +758,41 @@ static void calcIncompFeq(real *const &feq /*[27]*/, const real &drho, const rea
 
     real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3);
 
-    feq[DIR_000] = vf::lbm::constant::c8o27 * (drho - cu_sq);
-    feq[DIR_P00]    = vf::lbm::constant::c2o27 * (drho + 3.0 * (vx1) + vf::lbm::constant::c9o2 * (vx1) * (vx1)-cu_sq);
-    feq[DIR_M00]    = vf::lbm::constant::c2o27 * (drho + 3.0 * (-vx1) + vf::lbm::constant::c9o2 * (-vx1) * (-vx1) - cu_sq);
-    feq[DIR_0P0]    = vf::lbm::constant::c2o27 * (drho + 3.0 * (vx2) + vf::lbm::constant::c9o2 * (vx2) * (vx2)-cu_sq);
-    feq[DIR_0M0]    = vf::lbm::constant::c2o27 * (drho + 3.0 * (-vx2) + vf::lbm::constant::c9o2 * (-vx2) * (-vx2) - cu_sq);
-    feq[DIR_00P]    = vf::lbm::constant::c2o27 * (drho + 3.0 * (vx3) + vf::lbm::constant::c9o2 * (vx3) * (vx3)-cu_sq);
-    feq[DIR_00M]    = vf::lbm::constant::c2o27 * (drho + 3.0 * (-vx3) + vf::lbm::constant::c9o2 * (-vx3) * (-vx3) - cu_sq);
-    feq[DIR_PP0]   = vf::lbm::constant::c1o54 * (drho + 3.0 * (vx1 + vx2) + vf::lbm::constant::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq);
-    feq[DIR_MM0]   = vf::lbm::constant::c1o54 * (drho + 3.0 * (-vx1 - vx2) + vf::lbm::constant::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq);
-    feq[DIR_PM0]   = vf::lbm::constant::c1o54 * (drho + 3.0 * (vx1 - vx2) + vf::lbm::constant::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq);
-    feq[DIR_MP0]   = vf::lbm::constant::c1o54 * (drho + 3.0 * (-vx1 + vx2) + vf::lbm::constant::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq);
-    feq[DIR_P0P]   = vf::lbm::constant::c1o54 * (drho + 3.0 * (vx1 + vx3) + vf::lbm::constant::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq);
-    feq[DIR_M0M]   = vf::lbm::constant::c1o54 * (drho + 3.0 * (-vx1 - vx3) + vf::lbm::constant::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq);
-    feq[DIR_P0M]   = vf::lbm::constant::c1o54 * (drho + 3.0 * (vx1 - vx3) + vf::lbm::constant::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq);
-    feq[DIR_M0P]   = vf::lbm::constant::c1o54 * (drho + 3.0 * (-vx1 + vx3) + vf::lbm::constant::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq);
-    feq[DIR_0PP]   = vf::lbm::constant::c1o54 * (drho + 3.0 * (vx2 + vx3) + vf::lbm::constant::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq);
-    feq[DIR_0MM]   = vf::lbm::constant::c1o54 * (drho + 3.0 * (-vx2 - vx3) + vf::lbm::constant::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq);
-    feq[DIR_0PM]   = vf::lbm::constant::c1o54 * (drho + 3.0 * (vx2 - vx3) + vf::lbm::constant::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq);
-    feq[DIR_0MP]   = vf::lbm::constant::c1o54 * (drho + 3.0 * (-vx2 + vx3) + vf::lbm::constant::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq);
-    feq[DIR_PPP]  = vf::lbm::constant::c1o216 *
-               (drho + 3.0 * (vx1 + vx2 + vx3) + vf::lbm::constant::c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq);
-    feq[DIR_MMM] = vf::lbm::constant::c1o216 *
-               (drho + 3.0 * (-vx1 - vx2 - vx3) + vf::lbm::constant::c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq);
-    feq[DIR_PPM] = vf::lbm::constant::c1o216 *
-               (drho + 3.0 * (vx1 + vx2 - vx3) + vf::lbm::constant::c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq);
-    feq[DIR_MMP] = vf::lbm::constant::c1o216 *
-               (drho + 3.0 * (-vx1 - vx2 + vx3) + vf::lbm::constant::c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq);
-    feq[DIR_PMP] = vf::lbm::constant::c1o216 *
-               (drho + 3.0 * (vx1 - vx2 + vx3) + vf::lbm::constant::c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq);
-    feq[DIR_MPM] = vf::lbm::constant::c1o216 *
-               (drho + 3.0 * (-vx1 + vx2 - vx3) + vf::lbm::constant::c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq);
-    feq[DIR_PMM] = vf::lbm::constant::c1o216 *
-               (drho + 3.0 * (vx1 - vx2 - vx3) + vf::lbm::constant::c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq);
-    feq[DIR_MPP] = vf::lbm::constant::c1o216 *
-               (drho + 3.0 * (-vx1 + vx2 + vx3) + vf::lbm::constant::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq);
+    feq[DIR_000] = vf::basics::constant::c8o27 * (drho - cu_sq);
+    feq[DIR_P00]    = vf::basics::constant::c2o27 * (drho + 3.0 * (vx1) + vf::basics::constant::c9o2 * (vx1) * (vx1)-cu_sq);
+    feq[DIR_M00]    = vf::basics::constant::c2o27 * (drho + 3.0 * (-vx1) + vf::basics::constant::c9o2 * (-vx1) * (-vx1) - cu_sq);
+    feq[DIR_0P0]    = vf::basics::constant::c2o27 * (drho + 3.0 * (vx2) + vf::basics::constant::c9o2 * (vx2) * (vx2)-cu_sq);
+    feq[DIR_0M0]    = vf::basics::constant::c2o27 * (drho + 3.0 * (-vx2) + vf::basics::constant::c9o2 * (-vx2) * (-vx2) - cu_sq);
+    feq[DIR_00P]    = vf::basics::constant::c2o27 * (drho + 3.0 * (vx3) + vf::basics::constant::c9o2 * (vx3) * (vx3)-cu_sq);
+    feq[DIR_00M]    = vf::basics::constant::c2o27 * (drho + 3.0 * (-vx3) + vf::basics::constant::c9o2 * (-vx3) * (-vx3) - cu_sq);
+    feq[DIR_PP0]   = vf::basics::constant::c1o54 * (drho + 3.0 * (vx1 + vx2) + vf::basics::constant::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq);
+    feq[DIR_MM0]   = vf::basics::constant::c1o54 * (drho + 3.0 * (-vx1 - vx2) + vf::basics::constant::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq);
+    feq[DIR_PM0]   = vf::basics::constant::c1o54 * (drho + 3.0 * (vx1 - vx2) + vf::basics::constant::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq);
+    feq[DIR_MP0]   = vf::basics::constant::c1o54 * (drho + 3.0 * (-vx1 + vx2) + vf::basics::constant::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq);
+    feq[DIR_P0P]   = vf::basics::constant::c1o54 * (drho + 3.0 * (vx1 + vx3) + vf::basics::constant::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq);
+    feq[DIR_M0M]   = vf::basics::constant::c1o54 * (drho + 3.0 * (-vx1 - vx3) + vf::basics::constant::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq);
+    feq[DIR_P0M]   = vf::basics::constant::c1o54 * (drho + 3.0 * (vx1 - vx3) + vf::basics::constant::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq);
+    feq[DIR_M0P]   = vf::basics::constant::c1o54 * (drho + 3.0 * (-vx1 + vx3) + vf::basics::constant::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq);
+    feq[DIR_0PP]   = vf::basics::constant::c1o54 * (drho + 3.0 * (vx2 + vx3) + vf::basics::constant::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq);
+    feq[DIR_0MM]   = vf::basics::constant::c1o54 * (drho + 3.0 * (-vx2 - vx3) + vf::basics::constant::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq);
+    feq[DIR_0PM]   = vf::basics::constant::c1o54 * (drho + 3.0 * (vx2 - vx3) + vf::basics::constant::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq);
+    feq[DIR_0MP]   = vf::basics::constant::c1o54 * (drho + 3.0 * (-vx2 + vx3) + vf::basics::constant::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq);
+    feq[DIR_PPP]  = vf::basics::constant::c1o216 *
+               (drho + 3.0 * (vx1 + vx2 + vx3) + vf::basics::constant::c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq);
+    feq[DIR_MMM] = vf::basics::constant::c1o216 *
+               (drho + 3.0 * (-vx1 - vx2 - vx3) + vf::basics::constant::c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq);
+    feq[DIR_PPM] = vf::basics::constant::c1o216 *
+               (drho + 3.0 * (vx1 + vx2 - vx3) + vf::basics::constant::c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq);
+    feq[DIR_MMP] = vf::basics::constant::c1o216 *
+               (drho + 3.0 * (-vx1 - vx2 + vx3) + vf::basics::constant::c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq);
+    feq[DIR_PMP] = vf::basics::constant::c1o216 *
+               (drho + 3.0 * (vx1 - vx2 + vx3) + vf::basics::constant::c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq);
+    feq[DIR_MPM] = vf::basics::constant::c1o216 *
+               (drho + 3.0 * (-vx1 + vx2 - vx3) + vf::basics::constant::c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq);
+    feq[DIR_PMM] = vf::basics::constant::c1o216 *
+               (drho + 3.0 * (vx1 - vx2 - vx3) + vf::basics::constant::c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq);
+    feq[DIR_MPP] = vf::basics::constant::c1o216 *
+               (drho + 3.0 * (-vx1 + vx2 + vx3) + vf::basics::constant::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq);
 }
 //////////////////////////////////////////////////////////////////////////
 static inline real getBoundaryVelocityForDirection(const int &direction, const real &bcVelocityX1,
@@ -802,57 +802,57 @@ static inline real getBoundaryVelocityForDirection(const int &direction, const r
  
     switch (direction) {
         case DIR_P00:
-            return (real)(vf::lbm::constant::c4o9 * (+bcVelocityX1));
+            return (real)(vf::basics::constant::c4o9 * (+bcVelocityX1));
         case DIR_M00:
-            return (real)(vf::lbm::constant::c4o9 * (-bcVelocityX1));
+            return (real)(vf::basics::constant::c4o9 * (-bcVelocityX1));
         case DIR_0P0:
-            return (real)(vf::lbm::constant::c4o9 * (+bcVelocityX2));
+            return (real)(vf::basics::constant::c4o9 * (+bcVelocityX2));
         case DIR_0M0:
-            return (real)(vf::lbm::constant::c4o9 * (-bcVelocityX2));
+            return (real)(vf::basics::constant::c4o9 * (-bcVelocityX2));
         case DIR_00P:
-            return (real)(vf::lbm::constant::c4o9 * (+bcVelocityX3));
+            return (real)(vf::basics::constant::c4o9 * (+bcVelocityX3));
         case DIR_00M:
-            return (real)(vf::lbm::constant::c4o9 * (-bcVelocityX3));
+            return (real)(vf::basics::constant::c4o9 * (-bcVelocityX3));
         case DIR_PP0:
-            return (real)(vf::lbm::constant::c1o9 * (+bcVelocityX1 + bcVelocityX2));
+            return (real)(vf::basics::constant::c1o9 * (+bcVelocityX1 + bcVelocityX2));
         case DIR_MM0:
-            return (real)(vf::lbm::constant::c1o9 * (-bcVelocityX1 - bcVelocityX2));
+            return (real)(vf::basics::constant::c1o9 * (-bcVelocityX1 - bcVelocityX2));
         case DIR_PM0:
-            return (real)(vf::lbm::constant::c1o9 * (+bcVelocityX1 - bcVelocityX2));
+            return (real)(vf::basics::constant::c1o9 * (+bcVelocityX1 - bcVelocityX2));
         case DIR_MP0:
-            return (real)(vf::lbm::constant::c1o9 * (-bcVelocityX1 + bcVelocityX2));
+            return (real)(vf::basics::constant::c1o9 * (-bcVelocityX1 + bcVelocityX2));
         case DIR_P0P:
-            return (real)(vf::lbm::constant::c1o9 * (+bcVelocityX1 + bcVelocityX3));
+            return (real)(vf::basics::constant::c1o9 * (+bcVelocityX1 + bcVelocityX3));
         case DIR_M0M:
-            return (real)(vf::lbm::constant::c1o9 * (-bcVelocityX1 - bcVelocityX3));
+            return (real)(vf::basics::constant::c1o9 * (-bcVelocityX1 - bcVelocityX3));
         case DIR_P0M:
-            return (real)(vf::lbm::constant::c1o9 * (+bcVelocityX1 - bcVelocityX3));
+            return (real)(vf::basics::constant::c1o9 * (+bcVelocityX1 - bcVelocityX3));
         case DIR_M0P:
-            return (real)(vf::lbm::constant::c1o9 * (-bcVelocityX1 + bcVelocityX3));
+            return (real)(vf::basics::constant::c1o9 * (-bcVelocityX1 + bcVelocityX3));
         case DIR_0PP:
-            return (real)(vf::lbm::constant::c1o9 * (+bcVelocityX2 + bcVelocityX3));
+            return (real)(vf::basics::constant::c1o9 * (+bcVelocityX2 + bcVelocityX3));
         case DIR_0MM:
-            return (real)(vf::lbm::constant::c1o9 * (-bcVelocityX2 - bcVelocityX3));
+            return (real)(vf::basics::constant::c1o9 * (-bcVelocityX2 - bcVelocityX3));
         case DIR_0PM:
-            return (real)(vf::lbm::constant::c1o9 * (+bcVelocityX2 - bcVelocityX3));
+            return (real)(vf::basics::constant::c1o9 * (+bcVelocityX2 - bcVelocityX3));
         case DIR_0MP:
-            return (real)(vf::lbm::constant::c1o9 * (-bcVelocityX2 + bcVelocityX3));
+            return (real)(vf::basics::constant::c1o9 * (-bcVelocityX2 + bcVelocityX3));
         case DIR_PPP:
-            return (real)(vf::lbm::constant::c1o36 * (+bcVelocityX1 + bcVelocityX2 + bcVelocityX3));
+            return (real)(vf::basics::constant::c1o36 * (+bcVelocityX1 + bcVelocityX2 + bcVelocityX3));
         case DIR_MMM:
-            return (real)(vf::lbm::constant::c1o36 * (-bcVelocityX1 - bcVelocityX2 - bcVelocityX3));
+            return (real)(vf::basics::constant::c1o36 * (-bcVelocityX1 - bcVelocityX2 - bcVelocityX3));
         case DIR_PPM:
-            return (real)(vf::lbm::constant::c1o36 * (+bcVelocityX1 + bcVelocityX2 - bcVelocityX3));
+            return (real)(vf::basics::constant::c1o36 * (+bcVelocityX1 + bcVelocityX2 - bcVelocityX3));
         case DIR_MMP:
-            return (real)(vf::lbm::constant::c1o36 * (-bcVelocityX1 - bcVelocityX2 + bcVelocityX3));
+            return (real)(vf::basics::constant::c1o36 * (-bcVelocityX1 - bcVelocityX2 + bcVelocityX3));
         case DIR_PMP:
-            return (real)(vf::lbm::constant::c1o36 * (+bcVelocityX1 - bcVelocityX2 + bcVelocityX3));
+            return (real)(vf::basics::constant::c1o36 * (+bcVelocityX1 - bcVelocityX2 + bcVelocityX3));
         case DIR_MPM:
-            return (real)(vf::lbm::constant::c1o36 * (-bcVelocityX1 + bcVelocityX2 - bcVelocityX3));
+            return (real)(vf::basics::constant::c1o36 * (-bcVelocityX1 + bcVelocityX2 - bcVelocityX3));
         case DIR_PMM:
-            return (real)(vf::lbm::constant::c1o36 * (+bcVelocityX1 - bcVelocityX2 - bcVelocityX3));
+            return (real)(vf::basics::constant::c1o36 * (+bcVelocityX1 - bcVelocityX2 - bcVelocityX3));
         case DIR_MPP:
-            return (real)(vf::lbm::constant::c1o36 * (-bcVelocityX1 + bcVelocityX2 + bcVelocityX3));
+            return (real)(vf::basics::constant::c1o36 * (-bcVelocityX1 + bcVelocityX2 + bcVelocityX3));
         default:
             throw UbException(UB_EXARGS, "unknown direction");
     }
@@ -913,11 +913,11 @@ static inline void calcDistanceToNeighbors(std::vector<real> &distNeigh, const r
 
     distNeigh[DIR_P00] = distNeigh[DIR_M00] = distNeigh[DIR_0P0] = deltaX1;
     distNeigh[DIR_0M0] = distNeigh[DIR_00P] = distNeigh[DIR_00M] = deltaX1;
-    distNeigh[DIR_PP0] = distNeigh[DIR_MP0] = distNeigh[DIR_MM0] = distNeigh[DIR_PM0] = vf::lbm::constant::sqrt2 * deltaX1;
-    distNeigh[DIR_P0P] = distNeigh[DIR_0PP] = distNeigh[DIR_M0P] = distNeigh[DIR_0MP] = vf::lbm::constant::sqrt2 * deltaX1;
-    distNeigh[DIR_P0M] = distNeigh[DIR_0PM] = distNeigh[DIR_M0M] = distNeigh[DIR_0MM] = vf::lbm::constant::sqrt2 * deltaX1;
-    distNeigh[DIR_PPP] = distNeigh[DIR_MPP] = distNeigh[DIR_PMP] = distNeigh[DIR_MMP] = vf::lbm::constant::sqrt3 * deltaX1;
-    distNeigh[DIR_PPM] = distNeigh[DIR_MPM] = distNeigh[DIR_PMM] = distNeigh[DIR_MMM] = vf::lbm::constant::sqrt3 * deltaX1;
+    distNeigh[DIR_PP0] = distNeigh[DIR_MP0] = distNeigh[DIR_MM0] = distNeigh[DIR_PM0] = vf::basics::constant::sqrt2 * deltaX1;
+    distNeigh[DIR_P0P] = distNeigh[DIR_0PP] = distNeigh[DIR_M0P] = distNeigh[DIR_0MP] = vf::basics::constant::sqrt2 * deltaX1;
+    distNeigh[DIR_P0M] = distNeigh[DIR_0PM] = distNeigh[DIR_M0M] = distNeigh[DIR_0MM] = vf::basics::constant::sqrt2 * deltaX1;
+    distNeigh[DIR_PPP] = distNeigh[DIR_MPP] = distNeigh[DIR_PMP] = distNeigh[DIR_MMP] = vf::basics::constant::sqrt3 * deltaX1;
+    distNeigh[DIR_PPM] = distNeigh[DIR_MPM] = distNeigh[DIR_PMM] = distNeigh[DIR_MMM] = vf::basics::constant::sqrt3 * deltaX1;
 }
 //////////////////////////////////////////////////////////////////////////
 static inline void calcDistanceToNeighbors(std::vector<real> &distNeigh, const real &deltaX1, const real &deltaX2,
@@ -943,8 +943,8 @@ static inline void initRayVectors(real *const &rayX1, real *const &rayX2, real *
     using namespace vf::lbm::dir;
 
     int fdir;
-    real c1oS2 = vf::lbm::constant::one_over_sqrt2;
-    real c1oS3 = vf::lbm::constant::one_over_sqrt3;
+    real c1oS2 = vf::basics::constant::one_over_sqrt2;
+    real c1oS3 = vf::basics::constant::one_over_sqrt3;
     fdir         = DIR_P00;
     rayX1[fdir]  = 1.0;
     rayX2[fdir]  = 0.0;
@@ -1062,7 +1062,7 @@ static inline real calcPress(const real *const f, real rho, real vx1, real vx2,
              (vx1 * vx1 + vx2 * vx2 + vx3 * vx3)) *
                 (1 - 0.5 * op) +
             op * 0.5 * (rho)) *
-           vf::lbm::constant::c1o3;
+           vf::basics::constant::c1o3;
 }
 //////////////////////////////////////////////////////////////////////////
 static inline real getShearRate(const real *const f, real collFactorF)
@@ -1156,7 +1156,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfaac - mfaaa;
     m0    = m2 + mfaab;
     mfaaa = m0;
-    m0 += vf::lbm::constant::c1o36 * oMdrho;
+    m0 += vf::basics::constant::c1o36 * oMdrho;
     mfaab = m1 - m0 * vvz;
     mfaac = m2 - 2. * m1 * vvz + vz2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1164,7 +1164,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfabc - mfaba;
     m0    = m2 + mfabb;
     mfaba = m0;
-    m0 += vf::lbm::constant::c1o9 * oMdrho;
+    m0 += vf::basics::constant::c1o9 * oMdrho;
     mfabb = m1 - m0 * vvz;
     mfabc = m2 - 2. * m1 * vvz + vz2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1172,7 +1172,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfacc - mfaca;
     m0    = m2 + mfacb;
     mfaca = m0;
-    m0 += vf::lbm::constant::c1o36 * oMdrho;
+    m0 += vf::basics::constant::c1o36 * oMdrho;
     mfacb = m1 - m0 * vvz;
     mfacc = m2 - 2. * m1 * vvz + vz2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1181,7 +1181,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfbac - mfbaa;
     m0    = m2 + mfbab;
     mfbaa = m0;
-    m0 += vf::lbm::constant::c1o9 * oMdrho;
+    m0 += vf::basics::constant::c1o9 * oMdrho;
     mfbab = m1 - m0 * vvz;
     mfbac = m2 - 2. * m1 * vvz + vz2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1189,7 +1189,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfbbc - mfbba;
     m0    = m2 + mfbbb;
     mfbba = m0;
-    m0 += vf::lbm::constant::c4o9 * oMdrho;
+    m0 += vf::basics::constant::c4o9 * oMdrho;
     mfbbb = m1 - m0 * vvz;
     mfbbc = m2 - 2. * m1 * vvz + vz2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1197,7 +1197,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfbcc - mfbca;
     m0    = m2 + mfbcb;
     mfbca = m0;
-    m0 += vf::lbm::constant::c1o9 * oMdrho;
+    m0 += vf::basics::constant::c1o9 * oMdrho;
     mfbcb = m1 - m0 * vvz;
     mfbcc = m2 - 2. * m1 * vvz + vz2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1206,7 +1206,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfcac - mfcaa;
     m0    = m2 + mfcab;
     mfcaa = m0;
-    m0 += vf::lbm::constant::c1o36 * oMdrho;
+    m0 += vf::basics::constant::c1o36 * oMdrho;
     mfcab = m1 - m0 * vvz;
     mfcac = m2 - 2. * m1 * vvz + vz2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1214,7 +1214,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfcbc - mfcba;
     m0    = m2 + mfcbb;
     mfcba = m0;
-    m0 += vf::lbm::constant::c1o9 * oMdrho;
+    m0 += vf::basics::constant::c1o9 * oMdrho;
     mfcbb = m1 - m0 * vvz;
     mfcbc = m2 - 2. * m1 * vvz + vz2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1222,7 +1222,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfccc - mfcca;
     m0    = m2 + mfccb;
     mfcca = m0;
-    m0 += vf::lbm::constant::c1o36 * oMdrho;
+    m0 += vf::basics::constant::c1o36 * oMdrho;
     mfccb = m1 - m0 * vvz;
     mfccc = m2 - 2. * m1 * vvz + vz2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1234,7 +1234,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfaca - mfaaa;
     m0    = m2 + mfaba;
     mfaaa = m0;
-    m0 += vf::lbm::constant::c1o6 * oMdrho;
+    m0 += vf::basics::constant::c1o6 * oMdrho;
     mfaba = m1 - m0 * vvy;
     mfaca = m2 - 2. * m1 * vvy + vy2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1249,7 +1249,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfacc - mfaac;
     m0    = m2 + mfabc;
     mfaac = m0;
-    m0 += vf::lbm::constant::c1o18 * oMdrho;
+    m0 += vf::basics::constant::c1o18 * oMdrho;
     mfabc = m1 - m0 * vvy;
     mfacc = m2 - 2. * m1 * vvy + vy2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1258,7 +1258,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfbca - mfbaa;
     m0    = m2 + mfbba;
     mfbaa = m0;
-    m0 += vf::lbm::constant::c2o3 * oMdrho;
+    m0 += vf::basics::constant::c2o3 * oMdrho;
     mfbba = m1 - m0 * vvy;
     mfbca = m2 - 2. * m1 * vvy + vy2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1273,7 +1273,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfbcc - mfbac;
     m0    = m2 + mfbbc;
     mfbac = m0;
-    m0 += vf::lbm::constant::c2o9 * oMdrho;
+    m0 += vf::basics::constant::c2o9 * oMdrho;
     mfbbc = m1 - m0 * vvy;
     mfbcc = m2 - 2. * m1 * vvy + vy2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1282,7 +1282,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfcca - mfcaa;
     m0    = m2 + mfcba;
     mfcaa = m0;
-    m0 += vf::lbm::constant::c1o6 * oMdrho;
+    m0 += vf::basics::constant::c1o6 * oMdrho;
     mfcba = m1 - m0 * vvy;
     mfcca = m2 - 2. * m1 * vvy + vy2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1297,7 +1297,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfccc - mfcac;
     m0    = m2 + mfcbc;
     mfcac = m0;
-    m0 += vf::lbm::constant::c1o18 * oMdrho;
+    m0 += vf::basics::constant::c1o18 * oMdrho;
     mfcbc = m1 - m0 * vvy;
     mfccc = m2 - 2. * m1 * vvy + vy2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1324,7 +1324,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfcca - mfaca;
     m0    = m2 + mfbca;
     mfaca = m0;
-    m0 += vf::lbm::constant::c1o3 * oMdrho;
+    m0 += vf::basics::constant::c1o3 * oMdrho;
     mfbca = m1 - m0 * vvx;
     mfcca = m2 - 2. * m1 * vvx + vx2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1355,7 +1355,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfcac - mfaac;
     m0    = m2 + mfbac;
     mfaac = m0;
-    m0 += vf::lbm::constant::c1o3 * oMdrho;
+    m0 += vf::basics::constant::c1o3 * oMdrho;
     mfbac = m1 - m0 * vvx;
     mfcac = m2 - 2. * m1 * vvx + vx2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1370,7 +1370,7 @@ static inline real getShearRate(const real *const f, real collFactorF)
     m1    = mfccc - mfacc;
     m0    = m2 + mfbcc;
     mfacc = m0;
-    m0 += vf::lbm::constant::c1o9 * oMdrho;
+    m0 += vf::basics::constant::c1o9 * oMdrho;
     mfbcc = m1 - m0 * vvx;
     mfccc = m2 - 2. * m1 * vvx + vx2 * m0;
     ////////////////////////////////////////////////////////////////////////////////////
@@ -1382,16 +1382,16 @@ static inline real getShearRate(const real *const f, real collFactorF)
     real mxxMyy    = mfcaa - mfaca;
     real mxxMzz    = mfcaa - mfaac;
 
-    real dxux = -vf::lbm::constant::c1o2 * collFactorF * (mxxMyy + mxxMzz) + vf::lbm::constant::c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz);
-    real dyuy = dxux + collFactorF * vf::lbm::constant::c3o2 * mxxMyy;
-    real dzuz = dxux + collFactorF * vf::lbm::constant::c3o2 * mxxMzz;
+    real dxux = -vf::basics::constant::c1o2 * collFactorF * (mxxMyy + mxxMzz) + vf::basics::constant::c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz);
+    real dyuy = dxux + collFactorF * vf::basics::constant::c3o2 * mxxMyy;
+    real dzuz = dxux + collFactorF * vf::basics::constant::c3o2 * mxxMzz;
 
-    real Dxy = -vf::lbm::constant::c3o1 * collFactorF * mfbba;
-    real Dxz = -vf::lbm::constant::c3o1 * collFactorF * mfbab;
-    real Dyz = -vf::lbm::constant::c3o1 * collFactorF * mfabb;
+    real Dxy = -vf::basics::constant::c3o1 * collFactorF * mfbba;
+    real Dxz = -vf::basics::constant::c3o1 * collFactorF * mfbab;
+    real Dyz = -vf::basics::constant::c3o1 * collFactorF * mfabb;
 
-    return sqrt(vf::lbm::constant::c2o1 * (dxux * dxux + dyuy * dyuy + dzuz * dzuz) + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) /
-           (rho + vf::lbm::constant::c1o1);
+    return sqrt(vf::basics::constant::c2o1 * (dxux * dxux + dyuy * dyuy + dzuz * dzuz) + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) /
+           (rho + vf::basics::constant::c1o1);
 }
 //Multiphase stuff
 //////////////////////////////////////////////////////////////////////////
@@ -1400,7 +1400,7 @@ static void calcMultiphaseFeq(real *const &feq /*[27]*/, const real &rho, const
 {
     using namespace vf::lbm::dir;
 
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
     real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3);
 
     feq[DIR_000] = c8o27 * (p1 + rho * c1o3 * (-cu_sq));
@@ -1445,7 +1445,7 @@ static void calcMultiphaseFeqVB(real *const &feq /*[27]*/, const real &p1, const
 {
     using namespace vf::lbm::dir;
 
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
     real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3);
 
     feq[DIR_000] = p1 + c8o27 * (-cu_sq);
@@ -1481,7 +1481,7 @@ static void calcMultiphaseHeq(real *const &heq /*[27]*/, const real &phi, const
                               const real &vx3)
 {
     using namespace vf::lbm::dir;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
 
     real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3);
 
diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.cpp
index 782d5c96856b1c623d17a453f9552d10ab0a04ad..abac1e285d7945c5180d1acb62457a2a9a718c46 100644
--- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.cpp
@@ -9,7 +9,7 @@
 #define PROOF_CORRECTNESS
 
 //using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 //////////////////////////////////////////////////////////////////////////
 IncompressibleCumulantLBMKernel::IncompressibleCumulantLBMKernel()
diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp
index ed77717f6573932d8a247863dc69bfafc462b555..7f2bf15a1d919a02cdad290265d741eee080f108 100644
--- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp
@@ -9,7 +9,7 @@
 #define PROOF_CORRECTNESS
 
 //using namespace UbMath;    
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 //////////////////////////////////////////////////////////////////////////
 IncompressibleCumulantWithSpongeLayerLBMKernel::IncompressibleCumulantWithSpongeLayerLBMKernel()
diff --git a/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp
index 6c1c550fdce46eb91b7e33bedf5854c2d0ffe7b5..927dfeb158d0a89ca2081545420ac537ad7ae2e9 100644
--- a/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp
@@ -3,10 +3,10 @@
 #include "BCProcessor.h"
 #include "DataSet3D.h"
 #include "BCArray3D.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 
 //using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 InitDensityLBMKernel::InitDensityLBMKernel()
 {
diff --git a/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp b/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp
index 081e9fe8ecf850957dc49229379f4e112aa38c17..1f7128541ebbff53ea2638998f2a1c576a65b33c 100644
--- a/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp
@@ -5,9 +5,9 @@
 #include "DataSet3D.h"
 #include "BCProcessor.h"
 #include "BCArray3D.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 //using namespace UbMath;
 
 //#define PROOF_CORRECTNESS
diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp
index 3b660f6dcb985be987d0c0d46f2b29bc15fab468..5561a04cc18d91b554d094ce43ee0e11f32af2ad 100644
--- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp
@@ -85,7 +85,7 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
     using namespace D3Q27System;
 //    using namespace UbMath;
     using namespace vf::lbm::dir;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
 
     forcingX1 = 0.0;
     forcingX2 = 0.0;
diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp
index c294a381f6c4309577022ca16ee781775f22a31f..551d9d21188cbb865c55bec156469be6c88d8b95 100644
--- a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp
@@ -94,7 +94,7 @@ SPtr<LBMKernel> MultiphasePressureFilterCompressibleAirLBMKernel::clone()
 //////////////////////////////////////////////////////////////////////////
 void  MultiphasePressureFilterCompressibleAirLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	real m2 = mfa + mfc;
 	real m1 = mfc - mfa;
@@ -109,7 +109,7 @@ void  MultiphasePressureFilterCompressibleAirLBMKernel::forwardInverseChimeraWit
 ////////////////////////////////////////////////////////////////////////////////
 void  MultiphasePressureFilterCompressibleAirLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K;
 	real m1 = (((mfa - mfc) - c2o1 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K;
@@ -122,7 +122,7 @@ void  MultiphasePressureFilterCompressibleAirLBMKernel::backwardInverseChimeraWi
 ////////////////////////////////////////////////////////////////////////////////
 void  MultiphasePressureFilterCompressibleAirLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	real m1 = (mfa + mfc) + mfb;
 	real m2 = mfc - mfa;
@@ -134,7 +134,7 @@ void  MultiphasePressureFilterCompressibleAirLBMKernel::forwardChimera(real& mfa
 
 void  MultiphasePressureFilterCompressibleAirLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2);
 	real mb = ((mfa - mfc) - mfa * v2) - c2o1 * mfb * vv;
@@ -149,7 +149,7 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step)
 	using namespace D3Q27System;
 //	using namespace UbMath;
 	using namespace vf::lbm::dir;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	forcingX1 = 0.0;
 	forcingX2 = 0.0;
diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.cpp
index 0aafeb0b03afcfb0fe10196bc8c149a0979bdfc2..547ad83259d205f8da99184c3cf6c5a761e7f7b2 100644
--- a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.cpp
@@ -95,7 +95,7 @@ SPtr<LBMKernel> MultiphasePressureFilterLBMKernel::clone()
 //////////////////////////////////////////////////////////////////////////
 void  MultiphasePressureFilterLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	real m2 = mfa + mfc;
 	real m1 = mfc - mfa;
 	real m0 = m2 + mfb;
@@ -109,7 +109,7 @@ void  MultiphasePressureFilterLBMKernel::forwardInverseChimeraWithKincompressibl
 ////////////////////////////////////////////////////////////////////////////////
 void  MultiphasePressureFilterLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K;
 	real m1 = (((mfa - mfc) - c2o1 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K;
@@ -122,7 +122,7 @@ void  MultiphasePressureFilterLBMKernel::backwardInverseChimeraWithKincompressib
 ////////////////////////////////////////////////////////////////////////////////
 void  MultiphasePressureFilterLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	real m1 = (mfa + mfc) + mfb;
 	real m2 = mfc - mfa;
@@ -134,7 +134,7 @@ void  MultiphasePressureFilterLBMKernel::forwardChimera(real& mfa, real& mfb, re
 
 void  MultiphasePressureFilterLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2);
 	real mb = ((mfa - mfc) - mfa * v2) - c2o1 * mfb * vv;
@@ -149,7 +149,7 @@ void MultiphasePressureFilterLBMKernel::calculate(int step)
 	using namespace D3Q27System;
 //	using namespace UbMath;
 	using namespace vf::lbm::dir;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	forcingX1 = 0.0;
 	forcingX2 = 0.0;
diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.cpp
index f6cb731fb4eec7e49d7b946ada6fb1cf30456f2e..eb9606e49591c9ec550c65fe15eca025c31e5ab0 100644
--- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.cpp
@@ -83,7 +83,7 @@ SPtr<LBMKernel> MultiphaseScratchCumulantLBMKernel::clone()
 //////////////////////////////////////////////////////////////////////////
  void  MultiphaseScratchCumulantLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	
 	real m2 = mfa + mfc;
 	real m1 = mfc - mfa;
@@ -98,7 +98,7 @@ SPtr<LBMKernel> MultiphaseScratchCumulantLBMKernel::clone()
 ////////////////////////////////////////////////////////////////////////////////
  void  MultiphaseScratchCumulantLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K;
 	real m1 = (((mfa - mfc) - c2o1 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K;
@@ -111,7 +111,7 @@ SPtr<LBMKernel> MultiphaseScratchCumulantLBMKernel::clone()
 ////////////////////////////////////////////////////////////////////////////////
  void  MultiphaseScratchCumulantLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	real m1 = (mfa + mfc) + mfb;
 	real m2 = mfc - mfa;
@@ -123,7 +123,7 @@ SPtr<LBMKernel> MultiphaseScratchCumulantLBMKernel::clone()
 
  void  MultiphaseScratchCumulantLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
 //	using namespace UbMath;
-    using namespace vf::lbm::constant;
+    using namespace vf::basics::constant;
 
 	real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2);
 	real mb = ((mfa - mfc) - mfa * v2) - c2o1 * mfb * vv;
@@ -138,7 +138,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step)
     using namespace D3Q27System;
  //   using namespace UbMath;
 	using namespace vf::lbm::dir;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
     forcingX1 = 0.0;
     forcingX2 = 0.0;
diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.cpp
index 8ea6c1f786e700fafaa8cb8d4fe900618852a192..54b2f412a530be065ad9931a77e38511a68b3aa9 100644
--- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.cpp
@@ -41,7 +41,7 @@
 #include <cmath>
 #include <iostream>
 #include <string>
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 //#include <basics/utilities/UbMath.h>
 
 #define PROOF_CORRECTNESS
@@ -99,7 +99,7 @@ SPtr<LBMKernel> MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::clone()
 }
 //////////////////////////////////////////////////////////////////////////
 void  MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	real m2 = mfa + mfc;
 	real m1 = mfc - mfa;
 	real m0 = m2 + mfb;
@@ -112,7 +112,7 @@ void  MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::forwardInverseChime
 
 ////////////////////////////////////////////////////////////////////////////////
 void  MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K;
 	real m1 = (((mfa - mfc) - c2o1 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K;
 	mfc = (((mfc + mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 + vv) * c1o2) * K;
@@ -123,7 +123,7 @@ void  MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::backwardInverseChim
 
 ////////////////////////////////////////////////////////////////////////////////
 void  MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	real m1 = (mfa + mfc) + mfb;
 	real m2 = mfc - mfa;
 	mfc = (mfc + mfa) + (v2 * m1 - c2o1 * vv * m2);
@@ -133,7 +133,7 @@ void  MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::forwardChimera(real
 
 
 void  MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2);
 	real mb = ((mfa - mfc) - mfa * v2) - c2o1 * mfb * vv;
 	mfc = (mfc + mfa * (v2 + vv)) * c1o2 + mfb * (vv + c1o2);
@@ -145,7 +145,7 @@ void  MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::backwardChimera(rea
 void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step)
 {
 	using namespace D3Q27System;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	using namespace vf::lbm::dir;
 
 	forcingX1 = 0.0;
@@ -2980,7 +2980,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::findNeighbors(CbArra
 {
 	using namespace D3Q27System;
 	using namespace vf::lbm::dir;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	SPtr<BCArray3D> bcArray = this->getBCProcessor()->getBCArray();
 
diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp
index 2ece81e93758e0e4923d44c2f3498ea1bdbdd67b..7ca468f57b58610619b4d641290bae360fc92891 100644
--- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp
@@ -84,7 +84,7 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsCumulantLBMKernel::clone()
 //////////////////////////////////////////////////////////////////////////
  void  MultiphaseTwoPhaseFieldsCumulantLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	real m2 = mfa + mfc;
 	real m1 = mfc - mfa;
@@ -99,7 +99,7 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsCumulantLBMKernel::clone()
 ////////////////////////////////////////////////////////////////////////////////
  void  MultiphaseTwoPhaseFieldsCumulantLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	
 	real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K;
 	real m1 = (((mfa - mfc) - c2o1 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K;
@@ -112,7 +112,7 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsCumulantLBMKernel::clone()
 ////////////////////////////////////////////////////////////////////////////////
  void  MultiphaseTwoPhaseFieldsCumulantLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	
 	real m1 = (mfa + mfc) + mfb;
 	real m2 = mfc - mfa;
@@ -124,7 +124,7 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsCumulantLBMKernel::clone()
 
  void  MultiphaseTwoPhaseFieldsCumulantLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	
 	real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2);
 	real mb = ((mfa - mfc) - mfa * v2) - c2o1 * mfb * vv;
@@ -139,7 +139,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step)
     using namespace D3Q27System;
 //    using namespace UbMath;
 	using namespace vf::lbm::dir;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
     forcingX1 = 0.0;
     forcingX2 = 0.0;
diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp
index 0d49dc68a5e331da2b30a906b2adebb3e1eadb7b..090abea7ab2158faf9bdf807be64e35ff49d25d1 100644
--- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp
@@ -98,7 +98,7 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::clone()
 //////////////////////////////////////////////////////////////////////////
  void  MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	
 	real m2 = mfa + mfc;
 	real m1 = mfc - mfa;
@@ -113,7 +113,7 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::clone()
 ////////////////////////////////////////////////////////////////////////////////
  void  MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	 
 	real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K;
 	real m1 = (((mfa - mfc) - c2o1 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K;
@@ -126,7 +126,7 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::clone()
 ////////////////////////////////////////////////////////////////////////////////
  void  MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	
 	real m1 = (mfa + mfc) + mfb;
 	real m2 = mfc - mfa;
@@ -138,7 +138,7 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::clone()
 
  void  MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	 
 	real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2);
 	real mb = ((mfa - mfc) - mfa * v2) - c2o1 * mfb * vv;
@@ -153,7 +153,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step)
     using namespace D3Q27System;
  //   using namespace UbMath;
 	using namespace vf::lbm::dir;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
     forcingX1 = 0.0;
     forcingX2 = 0.0;
diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp
index afde9ef8bca08b862210ea7dea90db349d219dca..eb5bd4201e5aa29c66be74440ac619caf3992f86 100644
--- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp
@@ -86,7 +86,7 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::clone()
 //////////////////////////////////////////////////////////////////////////
  void  MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	 
 	real m2 = mfa + mfc;
 	real m1 = mfc - mfa;
@@ -101,7 +101,7 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::clone()
 ////////////////////////////////////////////////////////////////////////////////
  void  MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	 
 	real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K;
 	real m1 = (((mfa - mfc) - c2o1 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K;
@@ -114,7 +114,7 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::clone()
 ////////////////////////////////////////////////////////////////////////////////
  void  MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	 
 	real m1 = (mfa + mfc) + mfb;
 	real m2 = mfc - mfa;
@@ -126,7 +126,7 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::clone()
 
  void  MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 	 
 	real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2);
 	real mb = ((mfa - mfc) - mfa * v2) - c2o1 * mfb * vv;
@@ -141,7 +141,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step)
     using namespace D3Q27System;
  //   using namespace UbMath;
 	using namespace vf::lbm::dir;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
     forcingX1 = 0.0;
     forcingX2 = 0.0;
diff --git a/src/cpu/VirtualFluidsCore/LBM/Rheology.h b/src/cpu/VirtualFluidsCore/LBM/Rheology.h
index ef0efc76e170a79c644e7cc6a94f592fdc119572..782810ca3f68290310af3e70d440488c27bf96de 100644
--- a/src/cpu/VirtualFluidsCore/LBM/Rheology.h
+++ b/src/cpu/VirtualFluidsCore/LBM/Rheology.h
@@ -38,7 +38,7 @@
 #include <LBMSystem.h>
 #include <UbMath.h>
 #include <math.h> 
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 
 class Rheology
 {
@@ -89,10 +89,10 @@ private:
 //////////////////////////////////////////////////////////////////////////
 inline real Rheology::getBinghamCollFactor(real omegaInf, real shearRate, real drho)
 {
-	real cs2 = vf::lbm::constant::one_over_sqrt3 * vf::lbm::constant::one_over_sqrt3;
-	real rho = vf::lbm::constant::c1o1 + drho;
+	real cs2 = vf::basics::constant::one_over_sqrt3 * vf::basics::constant::one_over_sqrt3;
+	real rho = vf::basics::constant::c1o1 + drho;
 	//analytical solution
-	real omega = omegaInf * (vf::lbm::constant::c1o1 - (omegaInf * tau0) / (shearRate * cs2 * rho + UbMath::Epsilon<real>::val()));
+	real omega = omegaInf * (vf::basics::constant::c1o1 - (omegaInf * tau0) / (shearRate * cs2 * rho + UbMath::Epsilon<real>::val()));
 	
 	//LBMReal omega = cs2 * cs2 * shearRate * shearRate * omegaInf * rho * rho / (cs2 * cs2 * shearRate * shearRate * rho * rho + cs2 * shearRate * omegaInf * rho * tau0+omegaInf*omegaInf*tau0*tau0);
 	
@@ -120,10 +120,10 @@ inline real Rheology::getBinghamCollFactor(real omegaInf, real shearRate, real d
 
 inline real Rheology::getBinghamCollFactorOld(real omegaInf, real shearRate, real drho)
 {
-	const real cs2 = vf::lbm::constant::c1o3; // UbMath::one_over_sqrt3* UbMath::one_over_sqrt3;
-	real rho = vf::lbm::constant::c1o1 + drho;
+	const real cs2 = vf::basics::constant::c1o3; // UbMath::one_over_sqrt3* UbMath::one_over_sqrt3;
+	real rho = vf::basics::constant::c1o1 + drho;
 
-	if (rho * cs2 * (vf::lbm::constant::c1o1 / omegaInf - vf::lbm::constant::c1o2) * shearRate < tau0)
+	if (rho * cs2 * (vf::basics::constant::c1o1 / omegaInf - vf::basics::constant::c1o2) * shearRate < tau0)
 		return 0.0;
 	else
 		return omegaInf;
@@ -131,8 +131,8 @@ inline real Rheology::getBinghamCollFactorOld(real omegaInf, real shearRate, rea
 //////////////////////////////////////////////////////////////////////////
 inline real Rheology::getHerschelBulkleyCollFactor(real omegaInf, real shearRate, real drho)
 {
-	real cs2 = vf::lbm::constant::one_over_sqrt3 * vf::lbm::constant::one_over_sqrt3;
-	real rho = vf::lbm::constant::c1o1 + drho;
+	real cs2 = vf::basics::constant::one_over_sqrt3 * vf::basics::constant::one_over_sqrt3;
+	real rho = vf::basics::constant::c1o1 + drho;
 	real gammaDot = shearRate;
 	real omega = omegaInf;
 	real epsilon = 1;
@@ -152,7 +152,7 @@ inline real Rheology::getHerschelBulkleyCollFactor(real omegaInf, real shearRate
 		real numerator = (2.0 * gammaDotPowN * k * omegaByOmegaInfPowN * omegaInf + cs2 * gammaDot * (omega - 2.0) * rho + 2.0 * omegaInf * tau0);
 		real denominator = (2.0 * k * n * gammaDotPowN * omegaByOmegaInfPowN * omegaInf + cs2 * gammaDot * rho * omega) + UbMath::Epsilon<real>::val();
 		omega = omega - omega * numerator / denominator;
-		omega = (omega < vf::lbm::constant::c0o1) ? vf::lbm::constant::c1o2 * omegaOld : omega;
+		omega = (omega < vf::basics::constant::c0o1) ? vf::basics::constant::c1o2 * omegaOld : omega;
         //omega = (omega < omegaMin) ? UbMath::c1o2 * (omegaOld-omegaMin)+omegaMin : omega;
 		epsilon = std::abs(omega - omegaOld);
 	}
@@ -162,17 +162,17 @@ inline real Rheology::getHerschelBulkleyCollFactor(real omegaInf, real shearRate
 //////////////////////////////////////////////////////////////////////////
 inline real Rheology::getHerschelBulkleyCollFactorBackward(real shearRate, real drho)
 {
-	real rho = vf::lbm::constant::c1o1 + drho;
+	real rho = vf::basics::constant::c1o1 + drho;
 	real gamma = shearRate + UbMath::Epsilon<real>::val();
-	real cs2 = vf::lbm::constant::one_over_sqrt3 * vf::lbm::constant::one_over_sqrt3;
+	real cs2 = vf::basics::constant::one_over_sqrt3 * vf::basics::constant::one_over_sqrt3;
 
-	return 1.0 / ((tau0 + k * std::pow(gamma, n)) / (cs2 * rho * gamma) + vf::lbm::constant::c1o2);
+	return 1.0 / ((tau0 + k * std::pow(gamma, n)) / (cs2 * rho * gamma) + vf::basics::constant::c1o2);
 }
 //////////////////////////////////////////////////////////////////////////
 inline real Rheology::getPowellEyringCollFactor(real omegaInf, real shearRate, real drho)
 {
 //	using namespace UbMath;
-	using namespace vf::lbm::constant;
+	using namespace vf::basics::constant;
 
 	real cs2 = c1o3; // UbMath::one_over_sqrt3* UbMath::one_over_sqrt3;
 	real rho = c1o1 + drho;
diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyK17LBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/RheologyK17LBMKernel.cpp
index 81dfc86d12daa48d9b238097e4e82f907b64abfb..9cb096cd1df43332e41b09c5229b2cdeb0b2936b 100644
--- a/src/cpu/VirtualFluidsCore/LBM/RheologyK17LBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/RheologyK17LBMKernel.cpp
@@ -44,7 +44,7 @@
 #define PROOF_CORRECTNESS
 
 //using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 //////////////////////////////////////////////////////////////////////////
 RheologyK17LBMKernel::RheologyK17LBMKernel()
diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel.cpp
index 2b65887c1b0461a836f29a2aff7dc809dbb733e8..8fe8a78a41609e4acb4bcd6fcd09a7285912b6a7 100644
--- a/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel.cpp
@@ -42,7 +42,7 @@
 #define PROOF_CORRECTNESS
 
 //using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 RheologyModelLBMKernel::RheologyModelLBMKernel() : forcingX1(0), forcingX2(0), forcingX3(0)
 {
diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel2.cpp b/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel2.cpp
index 308add14b3710983ea9139b405c3074891b1b7c9..b7d7f2c916c8ec1c76fc4fe6175d05fd9312b8c4 100644
--- a/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel2.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel2.cpp
@@ -11,7 +11,7 @@
 #define PROOF_CORRECTNESS
 
 using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 
 RheologyModelLBMKernel2::RheologyModelLBMKernel2() : forcingX1(0), forcingX2(0), forcingX3(0)
@@ -381,7 +381,7 @@ void RheologyModelLBMKernel2::calculate(int step)
 						m1 = mfcca - mfaca;
 						m0 = m2 + mfbca;
 						mfaca = m0;
-						m0 += vf::lbm::constant::c1o3 * oMdrho;
+						m0 += vf::basics::constant::c1o3 * oMdrho;
 						mfbca = m1 - m0 * vvx;
 						mfcca = m2 - 2. * m1 * vvx + vx2 * m0;
 						////////////////////////////////////////////////////////////////////////////////////
@@ -412,7 +412,7 @@ void RheologyModelLBMKernel2::calculate(int step)
 						m1 = mfcac - mfaac;
 						m0 = m2 + mfbac;
 						mfaac = m0;
-						m0 += vf::lbm::constant::c1o3 * oMdrho;
+						m0 += vf::basics::constant::c1o3 * oMdrho;
 						mfbac = m1 - m0 * vvx;
 						mfcac = m2 - 2. * m1 * vvx + vx2 * m0;
 						////////////////////////////////////////////////////////////////////////////////////
@@ -445,18 +445,18 @@ void RheologyModelLBMKernel2::calculate(int step)
 						//LBMReal CUMbcb = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + 2. * mfbba * mfabb); // till 18.05.2015
 						//LBMReal CUMbbc = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + 2. * mfbab * mfabb); // till 18.05.2015
 
-						real CUMcbb = mfcbb - ((mfcaa + vf::lbm::constant::c1o3) * mfabb + 2. * mfbba * mfbab);
-						real CUMbcb = mfbcb - ((mfaca + vf::lbm::constant::c1o3) * mfbab + 2. * mfbba * mfabb);
-						real CUMbbc = mfbbc - ((mfaac + vf::lbm::constant::c1o3) * mfbba + 2. * mfbab * mfabb);
+						real CUMcbb = mfcbb - ((mfcaa + vf::basics::constant::c1o3) * mfabb + 2. * mfbba * mfbab);
+						real CUMbcb = mfbcb - ((mfaca + vf::basics::constant::c1o3) * mfbab + 2. * mfbba * mfabb);
+						real CUMbbc = mfbbc - ((mfaac + vf::basics::constant::c1o3) * mfbba + 2. * mfbab * mfabb);
 
-						real CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + vf::lbm::constant::c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho);
-						real CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + vf::lbm::constant::c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho);
-						real CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + vf::lbm::constant::c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho);
+						real CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + vf::basics::constant::c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho);
+						real CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + vf::basics::constant::c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho);
+						real CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + vf::basics::constant::c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho);
 
 						//Cum 5.
-						real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - vf::lbm::constant::c1o3 * (mfbca + mfbac) * oMdrho;
-						real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - vf::lbm::constant::c1o3 * (mfcba + mfabc) * oMdrho;
-						real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + 4. * mfbba * mfbbb + 2. * (mfbab * mfbca + mfabb * mfcba)) - vf::lbm::constant::c1o3 * (mfacb + mfcab) * oMdrho;
+						real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - vf::basics::constant::c1o3 * (mfbca + mfbac) * oMdrho;
+						real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - vf::basics::constant::c1o3 * (mfcba + mfabc) * oMdrho;
+						real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + 4. * mfbba * mfbbb + 2. * (mfbab * mfbca + mfabb * mfcba)) - vf::basics::constant::c1o3 * (mfacb + mfcab) * oMdrho;
 
 						//Cum 6.
 						real CUMccc = mfccc + ((-4. * mfbbb * mfbbb
@@ -466,7 +466,7 @@ void RheologyModelLBMKernel2::calculate(int step)
 							+ (4. * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac)
 								+ 2. * (mfcaa * mfaca * mfaac)
 								+ 16. * mfbba * mfbab * mfabb)
-							- vf::lbm::constant::c1o3 * (mfacc + mfcac + mfcca) * oMdrho - c1o9 * oMdrho * oMdrho
+							- vf::basics::constant::c1o3 * (mfacc + mfcac + mfcca) * oMdrho - c1o9 * oMdrho * oMdrho
 							- c1o9 * (mfcaa + mfaca + mfaac) * oMdrho * (1. - 2. * oMdrho) - c1o27 * oMdrho * oMdrho * (-2. * oMdrho)
 							+ (2. * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba)
 								+ (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3 * oMdrho) + c1o27 * oMdrho;
@@ -488,7 +488,7 @@ void RheologyModelLBMKernel2::calculate(int step)
 						//non Newtonian fluid collision factor
 //						LBMReal shearRate = sqrt(c2 * (dxux * dxux + dyuy * dyuy + dzuz * dzuz) + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) / (rho + one);
 
-						real shearFactor = sqrt(c1o2 * ((mfcaa - mfaaa * vf::lbm::constant::c1o3) * (mfcaa - mfaaa * vf::lbm::constant::c1o3) + (mfaca - mfaaa * vf::lbm::constant::c1o3) * (mfaca - mfaaa * vf::lbm::constant::c1o3) + (mfaac - mfaaa * vf::lbm::constant::c1o3) * (mfaac - mfaaa * vf::lbm::constant::c1o3)) + mfbba * mfbba + mfbab * mfbab + mfabb * mfabb) + UbMath::Epsilon<real>::val();
+						real shearFactor = sqrt(c1o2 * ((mfcaa - mfaaa * vf::basics::constant::c1o3) * (mfcaa - mfaaa * vf::basics::constant::c1o3) + (mfaca - mfaaa * vf::basics::constant::c1o3) * (mfaca - mfaaa * vf::basics::constant::c1o3) + (mfaac - mfaaa * vf::basics::constant::c1o3) * (mfaac - mfaaa * vf::basics::constant::c1o3)) + mfbba * mfbba + mfbab * mfbab + mfabb * mfabb) + UbMath::Epsilon<real>::val();
 
 						//collFactorF = getRheologyCollFactor(collFactorF, shearRate, rho);
 						////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -529,9 +529,9 @@ void RheologyModelLBMKernel2::calculate(int step)
 
 
 						// linear combinations back
-						mfcaa = vf::lbm::constant::c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz);
-						mfaca = vf::lbm::constant::c1o3 * (-2. * mxxMyy + mxxMzz + mxxPyyPzz);
-						mfaac = vf::lbm::constant::c1o3 * (mxxMyy - 2. * mxxMzz + mxxPyyPzz);
+						mfcaa = vf::basics::constant::c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz);
+						mfaca = vf::basics::constant::c1o3 * (-2. * mxxMyy + mxxMzz + mxxPyyPzz);
+						mfaac = vf::basics::constant::c1o3 * (mxxMyy - 2. * mxxMzz + mxxPyyPzz);
 
 						//3.
 						// linear combinations
@@ -591,18 +591,18 @@ void RheologyModelLBMKernel2::calculate(int step)
 						//mfbcb = CUMbcb + ((mfaca + c1o3 * oMdrho) * mfbab + 2. * mfbba * mfabb); // till 18.05.2015
 						//mfbbc = CUMbbc + ((mfaac + c1o3 * oMdrho) * mfbba + 2. * mfbab * mfabb); // till 18.05.2015
 
-						mfcbb = CUMcbb + ((mfcaa + vf::lbm::constant::c1o3) * mfabb + 2. * mfbba * mfbab);
-						mfbcb = CUMbcb + ((mfaca + vf::lbm::constant::c1o3) * mfbab + 2. * mfbba * mfabb);
-						mfbbc = CUMbbc + ((mfaac + vf::lbm::constant::c1o3) * mfbba + 2. * mfbab * mfabb);
+						mfcbb = CUMcbb + ((mfcaa + vf::basics::constant::c1o3) * mfabb + 2. * mfbba * mfbab);
+						mfbcb = CUMbcb + ((mfaca + vf::basics::constant::c1o3) * mfbab + 2. * mfbba * mfabb);
+						mfbbc = CUMbbc + ((mfaac + vf::basics::constant::c1o3) * mfbba + 2. * mfbab * mfabb);
 
-						mfcca = CUMcca + (mfcaa * mfaca + 2. * mfbba * mfbba) + vf::lbm::constant::c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho;
-						mfcac = CUMcac + (mfcaa * mfaac + 2. * mfbab * mfbab) + vf::lbm::constant::c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho;
-						mfacc = CUMacc + (mfaac * mfaca + 2. * mfabb * mfabb) + vf::lbm::constant::c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho;
+						mfcca = CUMcca + (mfcaa * mfaca + 2. * mfbba * mfbba) + vf::basics::constant::c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho;
+						mfcac = CUMcac + (mfcaa * mfaac + 2. * mfbab * mfbab) + vf::basics::constant::c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho;
+						mfacc = CUMacc + (mfaac * mfaca + 2. * mfabb * mfabb) + vf::basics::constant::c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho;
 
 						//5.
-						mfbcc = CUMbcc + (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) + vf::lbm::constant::c1o3 * (mfbca + mfbac) * oMdrho;
-						mfcbc = CUMcbc + (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) + vf::lbm::constant::c1o3 * (mfcba + mfabc) * oMdrho;
-						mfccb = CUMccb + (mfcaa * mfacb + mfaca * mfcab + 4. * mfbba * mfbbb + 2. * (mfbab * mfbca + mfabb * mfcba)) + vf::lbm::constant::c1o3 * (mfacb + mfcab) * oMdrho;
+						mfbcc = CUMbcc + (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) + vf::basics::constant::c1o3 * (mfbca + mfbac) * oMdrho;
+						mfcbc = CUMcbc + (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) + vf::basics::constant::c1o3 * (mfcba + mfabc) * oMdrho;
+						mfccb = CUMccb + (mfcaa * mfacb + mfaca * mfcab + 4. * mfbba * mfbbb + 2. * (mfbab * mfbca + mfabb * mfcba)) + vf::basics::constant::c1o3 * (mfacb + mfcab) * oMdrho;
 
 						//6.
 						mfccc = CUMccc - ((-4. * mfbbb * mfbbb
@@ -612,7 +612,7 @@ void RheologyModelLBMKernel2::calculate(int step)
 							+ (4. * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac)
 								+ 2. * (mfcaa * mfaca * mfaac)
 								+ 16. * mfbba * mfbab * mfabb)
-							- vf::lbm::constant::c1o3 * (mfacc + mfcac + mfcca) * oMdrho - c1o9 * oMdrho * oMdrho
+							- vf::basics::constant::c1o3 * (mfacc + mfcac + mfcca) * oMdrho - c1o9 * oMdrho * oMdrho
 							- c1o9 * (mfcaa + mfaca + mfaac) * oMdrho * (1. - 2. * oMdrho) - c1o27 * oMdrho * oMdrho * (-2. * oMdrho)
 							+ (2. * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba)
 								+ (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3 * oMdrho) - c1o27 * oMdrho;
@@ -644,9 +644,9 @@ void RheologyModelLBMKernel2::calculate(int step)
 						mfabb = m1;
 						mfabc = m2;
 						////////////////////////////////////////////////////////////////////////////////////
-						m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + vf::lbm::constant::c1o3 * oMdrho) * (vz2 - vvz) * c1o2;
-						m1 = -mfacc - 2. * mfacb * vvz + mfaca * (1. - vz2) - vf::lbm::constant::c1o3 * oMdrho * vz2;
-						m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + vf::lbm::constant::c1o3 * oMdrho) * (vz2 + vvz) * c1o2;
+						m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + vf::basics::constant::c1o3 * oMdrho) * (vz2 - vvz) * c1o2;
+						m1 = -mfacc - 2. * mfacb * vvz + mfaca * (1. - vz2) - vf::basics::constant::c1o3 * oMdrho * vz2;
+						m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + vf::basics::constant::c1o3 * oMdrho) * (vz2 + vvz) * c1o2;
 						mfaca = m0;
 						mfacb = m1;
 						mfacc = m2;
@@ -674,9 +674,9 @@ void RheologyModelLBMKernel2::calculate(int step)
 						mfbcc = m2;
 						////////////////////////////////////////////////////////////////////////////////////
 						////////////////////////////////////////////////////////////////////////////////////
-						m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + vf::lbm::constant::c1o3 * oMdrho) * (vz2 - vvz) * c1o2;
-						m1 = -mfcac - 2. * mfcab * vvz + mfcaa * (1. - vz2) - vf::lbm::constant::c1o3 * oMdrho * vz2;
-						m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + vf::lbm::constant::c1o3 * oMdrho) * (vz2 + vvz) * c1o2;
+						m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + vf::basics::constant::c1o3 * oMdrho) * (vz2 - vvz) * c1o2;
+						m1 = -mfcac - 2. * mfcab * vvz + mfcaa * (1. - vz2) - vf::basics::constant::c1o3 * oMdrho * vz2;
+						m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + vf::basics::constant::c1o3 * oMdrho) * (vz2 + vvz) * c1o2;
 						mfcaa = m0;
 						mfcab = m1;
 						mfcac = m2;
diff --git a/src/cpu/VirtualFluidsCore/LBM/ThixotropyExpLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/ThixotropyExpLBMKernel.cpp
index 6d11842f6f2d92b4daff1f7c1bb348af0c8021ca..70bfdfdadc0d3ebb50befbc022798dc91717276d 100644
--- a/src/cpu/VirtualFluidsCore/LBM/ThixotropyExpLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/ThixotropyExpLBMKernel.cpp
@@ -9,7 +9,7 @@
 #define PROOF_CORRECTNESS
 
 //using namespace UbMath; 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 //////////////////////////////////////////////////////////////////////////
 ThixotropyExpLBMKernel::ThixotropyExpLBMKernel()
diff --git a/src/cpu/VirtualFluidsCore/LBM/ThixotropyLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/ThixotropyLBMKernel.cpp
index 6fb32f31a3d40e369fb36b48e8d4f63c7a17322d..f866381d42538f01e7194d67415e134d9106ab16 100644
--- a/src/cpu/VirtualFluidsCore/LBM/ThixotropyLBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/ThixotropyLBMKernel.cpp
@@ -9,7 +9,7 @@
 #define PROOF_CORRECTNESS
 
 //using namespace UbMath;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 //////////////////////////////////////////////////////////////////////////
 ThixotropyLBMKernel::ThixotropyLBMKernel()
diff --git a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.cpp
index fc57572c9183f7ba23701d37703fa0c900e1ccc4..4bc8a1862535ad4f7129577b864de6fe6dfc9ae8 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.cpp
+++ b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.cpp
@@ -224,7 +224,7 @@ void MultiphaseInitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPt
 						//geq[dir] = p1*WEIGTH[dir] + gamma;
 						//geq[dir] = p1*WEIGTH[dir]/(rho*UbMath::c1o3) + gamma*rho;
 						//geq[dir] = (p1*WEIGTH[dir]/(rho*UbMath::c1o3) + gamma*rho)*UbMath::c1o3;
-						geq[dir] = (gamma*rho)* vf::lbm::constant::c1o3;
+						geq[dir] = (gamma*rho)* vf::basics::constant::c1o3;
 					}
 
 
diff --git a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.cpp
index 0c3fd6de0de70a3506cc2a9a00be80c267ad538a..1338ab8822f254cc00fc795aa07bdb1b9a525ac2 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.cpp
+++ b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.cpp
@@ -233,7 +233,7 @@ void MultiphaseVelocityFormInitDistributionsBlockVisitor::visit(const SPtr<Grid3
 						feq[dir] =  WEIGTH[dir] * (1 + 3 * velProd + 4.5 * velSq1 - 1.5 * (vx1Sq + vx2Sq + vx3Sq));
 						//geq[dir] = p1*WEIGTH1[dir] + gamma;
 						//geq[dir] = p1*WEIGTH[dir]/(rho*UbMath::c1o3) + gamma*rho;
-						geq[dir] = p1 * WEIGTH[dir] / (vf::lbm::constant::c1o3) + gamma ;
+						geq[dir] = p1 * WEIGTH[dir] / (vf::basics::constant::c1o3) + gamma ;
 					}
 
 
diff --git a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h
index 2e0eaf13080c46260de2a0c845fbf784a2cc3e09..4924432dbf05ca2213e5fa08cf16a28ea75f8c9e 100644
--- a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h
+++ b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h
@@ -38,7 +38,7 @@
 #include <memory>
 #include <array>
 
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
 #include "gpu/GridGenerator/global.h"
 
@@ -47,7 +47,7 @@
 #include "gpu/GridGenerator/grid/GridInterface.h"
 #include "gpu/GridGenerator/grid/NodeValues.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 struct Vertex;
 class  Grid;
diff --git a/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusion27chim.cu b/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusion27chim.cu
index 04f6afe4cf9ebd99dc293ded16f55a56f0d77036..a22e7f6e842fcfb4474e009975eb65f1920513a9 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusion27chim.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusion27chim.cu
@@ -34,9 +34,9 @@
 #include "LBM/LB.h"
 #include "lbm/constants/D3Q27.h"
 
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusionBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusionBCs27.cu
index 116ce20389985e0efa650598108224b2e3e25221..278d01e149aeb6de5241f5c84463e4e80d360512 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusionBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusionBCs27.cu
@@ -2,9 +2,9 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
 
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/CP27.cu b/src/gpu/VirtualFluids_GPU/GPU/CP27.cu
index 8d02f4e1c110fc82b65adda4db67976f29796d07..41a50e5dde7dd8e024721653f43652f2e4a17548 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/CP27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/CP27.cu
@@ -1,9 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Calc2ndMoments27.cu b/src/gpu/VirtualFluids_GPU/GPU/Calc2ndMoments27.cu
index c41751dc1b5cea53983d94d9cc7c3c75c8a84101..15b8ecefee35463895d8bf5a48cc64868763bf93 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Calc2ndMoments27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Calc2ndMoments27.cu
@@ -1,9 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/CalcConc27.cu b/src/gpu/VirtualFluids_GPU/GPU/CalcConc27.cu
index ad5a05b12a1b3ae2541e36ccffae4635fccfe62a..0986a42b07351456f684ae5141d38245e5e17c57 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/CalcConc27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/CalcConc27.cu
@@ -33,9 +33,9 @@
 /* Device code */
 #include "LBM/LB.h"
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu b/src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu
index f7bb09f816f45973fd4e2319a1bfa35cf9172caa..8907e846757c8923c3aed46f9c90d6c67f465eee 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu
@@ -32,12 +32,12 @@
 //======================================================================================
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include "lbm/MacroscopicQuantities.h"
 
 #include "Kernel/Utilities/DistributionHelper.cuh"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu b/src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu
index 457623d4ee62b624248306b6b900fcff3f026286..e05a711015e372b3fc3169bf61bea9965ccf7c12 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu
@@ -1,9 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 #include "math.h"
diff --git a/src/gpu/VirtualFluids_GPU/GPU/CudaMemoryManager.cpp b/src/gpu/VirtualFluids_GPU/GPU/CudaMemoryManager.cpp
index 9a0eb7f055526cf32a3d95bd294362ba73bdecd5..14e090ff3f02eaec87a9f709fc0e0ac8df711189 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/CudaMemoryManager.cpp
+++ b/src/gpu/VirtualFluids_GPU/GPU/CudaMemoryManager.cpp
@@ -13,7 +13,7 @@
 
 #include "Calculation/PorousMedia.h"
 
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 
 
 void CudaMemoryManager::cudaCopyPrint(int lev)
@@ -422,9 +422,9 @@ void CudaMemoryManager::cudaAllocLevelForcing(int level)
 {
     real fx_t{ 1. }, fy_t{ 1. }, fz_t{ 1. };
     for (int i = 0; i < level; i++) {
-        fx_t *= vf::lbm::constant::c2o1;
-        fy_t *= vf::lbm::constant::c2o1;
-        fz_t *= vf::lbm::constant::c2o1;
+        fx_t *= vf::basics::constant::c2o1;
+        fy_t *= vf::basics::constant::c2o1;
+        fz_t *= vf::basics::constant::c2o1;
     }
 
     const unsigned int mem_size = sizeof(real) * 3;
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu b/src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu
index 553e1f34f7993a42682605b66d53407ede9292fd..59b24df1061af16e79ad35eeceb949e6326407fd 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu
@@ -7,11 +7,11 @@
 //////////////////////////////////////////////////////////////////////////
 /* Device code */
 #include "LBM/LB.h" 
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include "lbm/constants/D3Q27.h"
 
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Cumulant27chim.cu b/src/gpu/VirtualFluids_GPU/GPU/Cumulant27chim.cu
index 3706e5f929b50a2a72c107a982525ec3172eb144..2c482c3b0fc368c52cca1e74246c75210131b326 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Cumulant27chim.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Cumulant27chim.cu
@@ -33,9 +33,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 #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 c89c3cfe87560c808d47163b45d512fa0d7e494f..9e0275e7be38b8b56cf71cfa0b8299dc1b49106c 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Cumulant_F3_27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Cumulant_F3_27.cu
@@ -8,9 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 #include "math.h"
diff --git a/src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu b/src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu
index 0e3945829725c0614ed4da01d0bae3b99ba2720a..d1fc15a6b7a8f73083b41b926ce58916bdf61b59 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu
@@ -1,9 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/EnstrophyAnalyzer.cu b/src/gpu/VirtualFluids_GPU/GPU/EnstrophyAnalyzer.cu
index 93879d73a32458d5403fd3fd16e68e0fcea7753d..54968be403374831b9db4277f6726f44e7a43485 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/EnstrophyAnalyzer.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/EnstrophyAnalyzer.cu
@@ -18,9 +18,9 @@
 #include "Parameter/Parameter.h"
 // includes, kernels
 #include "GPU/GPU_Kernels.cuh"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::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, unsigned long long numberOfLBnodes );
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ExchangeData27.cu b/src/gpu/VirtualFluids_GPU/GPU/ExchangeData27.cu
index 4ced64c0152bdbbd9752f736e2edca2c51fbc2ff..288ec7ff26bae5b7415e08f4d39aa8cd2ffa4a9b 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ExchangeData27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ExchangeData27.cu
@@ -1,9 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/GeometryUtilsTest.cu b/src/gpu/VirtualFluids_GPU/GPU/GeometryUtilsTest.cu
index 546a7227e1e4533986d7c437d8ec930c6bc70905..797a8f72195c57faa7889c8dadc30fb8eccb6288 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/GeometryUtilsTest.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/GeometryUtilsTest.cu
@@ -1,5 +1,5 @@
 #include "GeometryUtils.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include "tests/testUtilities.h"
 
 TEST(GeometryUtilsTest, translate2D)
@@ -50,27 +50,27 @@ TEST(GeometryUtilsTest, rotate2dAround0)
     EXPECT_THAT(newPosX, RealNear(2.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(0.0, 10e-5));
 
-    angle = 0.5 * vf::lbm::constant::cPi;
+    angle = 0.5 * vf::basics::constant::cPi;
     rotate2D(angle, posX, posY, newPosX, newPosY);
     EXPECT_THAT(newPosX, RealNear(0.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(2.0, 10e-5));
 
-    angle = 1.0 * vf::lbm::constant::cPi;
+    angle = 1.0 * vf::basics::constant::cPi;
     rotate2D(angle, posX, posY, newPosX, newPosY);
     EXPECT_THAT(newPosX, RealNear(-2.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(0.0, 10e-5));
 
-    angle = 1.5 * vf::lbm::constant::cPi;
+    angle = 1.5 * vf::basics::constant::cPi;
     rotate2D(angle, posX, posY, newPosX, newPosY);
     EXPECT_THAT(newPosX, RealNear(0.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-2.0, 10e-5));
 
-    angle = 2.0 * vf::lbm::constant::cPi;
+    angle = 2.0 * vf::basics::constant::cPi;
     rotate2D(angle, posX, posY, newPosX, newPosY);
     EXPECT_THAT(newPosX, RealNear(2.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(0.0, 10e-5));
 
-    angle = -0.5 * vf::lbm::constant::cPi;
+    angle = -0.5 * vf::basics::constant::cPi;
     rotate2D(angle, posX, posY, newPosX, newPosY);
     EXPECT_THAT(newPosX, RealNear(0.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-2.0, 10e-5));
@@ -90,27 +90,27 @@ TEST(GeometryUtilsTest, rotate2dWithOrigin)
     EXPECT_THAT(newPosX, RealNear(3.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-1.0, 10e-5));
 
-    angle = 0.5 * vf::lbm::constant::cPi;
+    angle = 0.5 * vf::basics::constant::cPi;
     rotate2D(angle, posX, posY, newPosX, newPosY, originX, originY);
     EXPECT_THAT(newPosX, RealNear(1.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(1.0, 10e-5));
 
-    angle = 1.0 * vf::lbm::constant::cPi;
+    angle = 1.0 * vf::basics::constant::cPi;
     rotate2D(angle, posX, posY, newPosX, newPosY, originX, originY);
     EXPECT_THAT(newPosX, RealNear(-1.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-1.0, 10e-5));
 
-    angle = 1.5 * vf::lbm::constant::cPi;
+    angle = 1.5 * vf::basics::constant::cPi;
     rotate2D(angle, posX, posY, newPosX, newPosY, originX, originY);
     EXPECT_THAT(newPosX, RealNear(1.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-3.0, 10e-5));
 
-    angle = 2.0 * vf::lbm::constant::cPi;
+    angle = 2.0 * vf::basics::constant::cPi;
     rotate2D(angle, posX, posY, newPosX, newPosY, originX, originY);
     EXPECT_THAT(newPosX, RealNear(3.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-1.0, 10e-5));
 
-    angle = -0.5 * vf::lbm::constant::cPi;
+    angle = -0.5 * vf::basics::constant::cPi;
     rotate2D(angle, posX, posY, newPosX, newPosY, originX, originY);
     EXPECT_THAT(newPosX, RealNear(1.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-3.0, 10e-5));
@@ -130,27 +130,27 @@ TEST(GeometryUtilsTest, inverseRotate2DWithOrigin)
     EXPECT_THAT(newPosX, RealNear(3.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-1.0, 10e-5));
 
-    angle = 0.5 * vf::lbm::constant::cPi;
+    angle = 0.5 * vf::basics::constant::cPi;
     invRotate2D(angle, posX, posY, newPosX, newPosY, originX, originY);
     EXPECT_THAT(newPosX, RealNear(1.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-3.0, 10e-5));
 
-    angle = 1.0 * vf::lbm::constant::cPi;
+    angle = 1.0 * vf::basics::constant::cPi;
     invRotate2D(angle, posX, posY, newPosX, newPosY, originX, originY);
     EXPECT_THAT(newPosX, RealNear(-1.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-1.0, 10e-5));
 
-    angle = 1.5 * vf::lbm::constant::cPi;
+    angle = 1.5 * vf::basics::constant::cPi;
     invRotate2D(angle, posX, posY, newPosX, newPosY, originX, originY);
     EXPECT_THAT(newPosX, RealNear(1.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(1.0, 10e-5));
 
-    angle = 2.0 * vf::lbm::constant::cPi;
+    angle = 2.0 * vf::basics::constant::cPi;
     invRotate2D(angle, posX, posY, newPosX, newPosY, originX, originY);
     EXPECT_THAT(newPosX, RealNear(3.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-1.0, 10e-5));
 
-    angle = -1.5 * vf::lbm::constant::cPi;
+    angle = -1.5 * vf::basics::constant::cPi;
     invRotate2D(angle, posX, posY, newPosX, newPosY, originX, originY);
     EXPECT_THAT(newPosX, RealNear(1.0, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-3.0, 10e-5));
@@ -171,31 +171,31 @@ TEST(GeometryUtilsTest, rotateAboutX3dAround0)
     EXPECT_THAT(newPosY, RealNear(2.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(0.0, 10e-5));
 
-    angle = 0.5 * vf::lbm::constant::cPi;
+    angle = 0.5 * vf::basics::constant::cPi;
     rotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(0.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(2.0, 10e-5));
 
-    angle = 1.0 * vf::lbm::constant::cPi;
+    angle = 1.0 * vf::basics::constant::cPi;
     rotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-2.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(0.0, 10e-5));
 
-    angle = 1.5 * vf::lbm::constant::cPi;
+    angle = 1.5 * vf::basics::constant::cPi;
     rotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(0.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(-2.0, 10e-5));
 
-    angle = 2.0 * vf::lbm::constant::cPi;
+    angle = 2.0 * vf::basics::constant::cPi;
     rotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(2.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(0.0, 10e-5));
 
-    angle = -0.5 * vf::lbm::constant::cPi;
+    angle = -0.5 * vf::basics::constant::cPi;
     rotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(0.0, 10e-5));
@@ -220,31 +220,31 @@ TEST(GeometryUtilsTest, rotateAboutX3dWithOrigin)
     EXPECT_THAT(newPosY, RealNear(3.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(-1.0, 10e-5));
 
-    angle = 0.5 * vf::lbm::constant::cPi;    
+    angle = 0.5 * vf::basics::constant::cPi;    
     rotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ, originX, originY, originZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(1.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(1.0, 10e-5));
 
-    angle = 1.0 * vf::lbm::constant::cPi;
+    angle = 1.0 * vf::basics::constant::cPi;
     rotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ, originX, originY, originZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-1.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(-1.0, 10e-5));
 
-    angle = 1.5 * vf::lbm::constant::cPi;
+    angle = 1.5 * vf::basics::constant::cPi;
     rotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ, originX, originY, originZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(1.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(-3.0, 10e-5));
 
-    angle = 2.0 * vf::lbm::constant::cPi;
+    angle = 2.0 * vf::basics::constant::cPi;
     rotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ, originX, originY, originZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(3.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(-1.0, 10e-5));
 
-    angle = -0.5 * vf::lbm::constant::cPi;
+    angle = -0.5 * vf::basics::constant::cPi;
     rotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ, originX, originY, originZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(1.0, 10e-5));
@@ -269,31 +269,31 @@ TEST(GeometryUtilsTest, inverseRotateAboutX3dWithOrigin)
     EXPECT_THAT(newPosY, RealNear(3.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(-1.0, 10e-5));
 
-    angle = 0.5 * vf::lbm::constant::cPi;
+    angle = 0.5 * vf::basics::constant::cPi;
     invRotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ, originX, originY, originZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(1.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(-3.0, 10e-5));
 
-    angle = 1.0 * vf::lbm::constant::cPi;
+    angle = 1.0 * vf::basics::constant::cPi;
     invRotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ, originX, originY, originZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(-1.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(-1.0, 10e-5));
 
-    angle = 1.5 * vf::lbm::constant::cPi;    
+    angle = 1.5 * vf::basics::constant::cPi;    
     invRotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ, originX, originY, originZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(1.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(1.0, 10e-5));
 
-    angle = 2.0 * vf::lbm::constant::cPi;
+    angle = 2.0 * vf::basics::constant::cPi;
     invRotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ, originX, originY, originZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(3.0, 10e-5));
     EXPECT_THAT(newPosZ, RealNear(-1.0, 10e-5));
 
-    angle = -0.5 * vf::lbm::constant::cPi;
+    angle = -0.5 * vf::basics::constant::cPi;
     invRotateAboutX3D(angle, posX, posY, posZ, newPosX, newPosY, newPosZ, originX, originY, originZ);
     EXPECT_THAT(newPosX, RealNear(0.5, 10e-5));
     EXPECT_THAT(newPosY, RealNear(1.0, 10e-5));
diff --git a/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleCF27.cu b/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleCF27.cu
index d720a87c9b9a123739c60439a2b5ef1490eef6f7..4c586faa2fa60fe2894d86f97c680c5f0f11087b 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleCF27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleCF27.cu
@@ -8,9 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleCF_F3_27.cu b/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleCF_F3_27.cu
index fba54269c6d8c2bc3092c52833c98c78e87b988b..a3044503b2e08b8bc713c7431c43a98395ec3298 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleCF_F3_27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleCF_F3_27.cu
@@ -8,9 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleFC27.cu b/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleFC27.cu
index 48f5041ce12df3e0a219087a2bcda735ea28afd7..08c47230faa5ffeed0b996e2b1125d3c45e6bce1 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleFC27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleFC27.cu
@@ -8,9 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleFC_F3_27.cu b/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleFC_F3_27.cu
index c83da28dfe1781342ea747cfc4b7bc342cbe1dec..7de51b3b0aec87e3e8773c08435c3ada445e9a41 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleFC_F3_27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/GridScaling/ScaleFC_F3_27.cu
@@ -8,9 +8,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/GridScaling/scaleCF_compressible.cu b/src/gpu/VirtualFluids_GPU/GPU/GridScaling/scaleCF_compressible.cu
index 726e31888658d78562913cd2b386481cd69abbc6..ec1c8207bdd38666f4222270be81b91960142e62 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/GridScaling/scaleCF_compressible.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/GridScaling/scaleCF_compressible.cu
@@ -36,7 +36,7 @@
 #include "LBM/GPUHelperFunctions/ChimeraTransformation.h"
 #include "LBM/GPUHelperFunctions/ScalingUtilities.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/GridScaling/scaleFC_compressible.cu b/src/gpu/VirtualFluids_GPU/GPU/GridScaling/scaleFC_compressible.cu
index 4ed8273589001b9d4c87e4774310424274631e2d..5776ba476e3537360b32ee85f32514324946ff75 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/GridScaling/scaleFC_compressible.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/GridScaling/scaleFC_compressible.cu
@@ -35,7 +35,7 @@
 #include "LBM/GPUHelperFunctions/KernelUtilities.h"
 #include "LBM/GPUHelperFunctions/ScalingUtilities.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Init27.cu b/src/gpu/VirtualFluids_GPU/GPU/Init27.cu
index 23666fdcf6714d30b40b4750c52f129cc472761c..d6d099fec7d3c77f9d55f9cc961b4b984dfb0cce 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Init27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Init27.cu
@@ -1,9 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/InitAdvectionDiffusion27.cu b/src/gpu/VirtualFluids_GPU/GPU/InitAdvectionDiffusion27.cu
index 7f67d1692f7e136a6537be6780fe8625adc33e22..a4172403158adbd712e255676baa2616081e83b4 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/InitAdvectionDiffusion27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/InitAdvectionDiffusion27.cu
@@ -33,9 +33,9 @@
 /* Device code */
 #include "LBM/LB.h"
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 __global__ void InitAD27(
diff --git a/src/gpu/VirtualFluids_GPU/GPU/KineticEnergyAnalyzer.cu b/src/gpu/VirtualFluids_GPU/GPU/KineticEnergyAnalyzer.cu
index b05cb9201ce30038bd6edf52e2e95a13c6f6d7d4..bc847aee5c208213698aaf1f92b007a8deb0bdb1 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/KineticEnergyAnalyzer.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/KineticEnergyAnalyzer.cu
@@ -19,9 +19,9 @@
 #include "Parameter/Parameter.h"
 // includes, kernels
 #include "GPU/GPU_Kernels.cuh"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 __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, unsigned long long numberOfLBnodes);
diff --git a/src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu
index 79dedee58afb7b11c4c3ede9911f54df65cf859f..0013ae977d41cb52ce163a53f2f1342d4d7b4c73 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu
@@ -32,10 +32,10 @@
 //======================================================================================
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 #include "LBM/GPUHelperFunctions/KernelUtilities.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Particles.cu b/src/gpu/VirtualFluids_GPU/GPU/Particles.cu
index 22d9df4a3b4ae706dcf9b76d93940122015248f1..7a82c694ef55ff5bc6770b9ae333e2de7ed1938c 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Particles.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Particles.cu
@@ -1,9 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/PrecursorBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/PrecursorBCs27.cu
index 177eb41587896dd7993b06f98a1506abfc4f3f5f..64c6b6085c353e16c08f9057f603a7799ce14289 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/PrecursorBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/PrecursorBCs27.cu
@@ -31,13 +31,13 @@
 //! \author Henry Korb, Henrik Asmuth
 //======================================================================================
 #include "LBM/LB.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 #include <lbm/constants/D3Q27.h>
 #include <lbm/MacroscopicQuantities.h>
 
 #include "LBM/GPUHelperFunctions/KernelUtilities.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu
index 02cfd2bce3723162b645cef568c87ca3b1dd2720..e0ea3c05251e995c55c2b980327059dfa7fd4069 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu
@@ -32,11 +32,11 @@
 //======================================================================================
 #include "LBM/LB.h"
 #include "lbm/constants/D3Q27.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include "lbm/MacroscopicQuantities.h"
 #include "LBM/GPUHelperFunctions/KernelUtilities.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Random.cu b/src/gpu/VirtualFluids_GPU/GPU/Random.cu
index a605fbd42d2977e0f0b6e15aeb50f8c78654f31c..2f9417f2404d773b222f1b79f8456adfaf741018 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Random.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Random.cu
@@ -1,9 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 //random numbers
diff --git a/src/gpu/VirtualFluids_GPU/GPU/SchlafferBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/SchlafferBCs27.cu
index 5d4572e234fdcad072e9b666c911f3250c32346a..70e938db5df2bae442034ce0303081e8b175e5f6 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/SchlafferBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/SchlafferBCs27.cu
@@ -1,9 +1,9 @@
 /* Device code */
 #include "LBM/LB.h"
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 // TODO: https://git.rz.tu-bs.de/irmb/VirtualFluids_dev/-/issues/29
diff --git a/src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu b/src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu
index 07fc5853eb7042d5567c38a03cb27418142bf642..d847d00193f68127927e2f3fa3fbf1eda7f9a736 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu
@@ -1,9 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu
index 80e3c273987092aa63e4a2724df0df3df7152145..ecd7427665427376aaee290e918fd5c723576f73 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu
@@ -33,10 +33,10 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
 #include "Kernel/Utilities/DistributionHelper.cuh"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include "LBM/GPUHelperFunctions/KernelUtilities.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/StressBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/StressBCs27.cu
index 0838402693e469efb10be2f9cd59094107383b66..1cc5017816aed29d52e74823a8c910bfed35ad42 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/StressBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/StressBCs27.cu
@@ -43,10 +43,10 @@
 #include "LBM/LB.h"
 #include "lbm/constants/D3Q27.h"
 #include "Kernel/Utilities/DistributionHelper.cuh"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 #include "LBM/GPUHelperFunctions/KernelUtilities.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ThinWallBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/ThinWallBCs27.cu
index b96d961c9b92ae5d041beeb23482d7144e7a8acb..f76b31c768553aed46fd640d9cdace8ba753b6b8 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ThinWallBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ThinWallBCs27.cu
@@ -9,9 +9,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 /////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/TurbulenceIntensity.cu b/src/gpu/VirtualFluids_GPU/GPU/TurbulenceIntensity.cu
index 3f440454ef272b13c24fe2a2882d67d32d32a841..82e5f98fda0086458f2bc937dbe33e7b66feb2c5 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/TurbulenceIntensity.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/TurbulenceIntensity.cu
@@ -9,14 +9,14 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 
 #include "lbm/MacroscopicQuantities.h"
 #include "../Kernel/Utilities/DistributionHelper.cuh"
 #include "LBM/GPUHelperFunctions/KernelUtilities.h"
 
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/TurbulentViscosityInlines.cuh b/src/gpu/VirtualFluids_GPU/GPU/TurbulentViscosityInlines.cuh
index 58856f624fa1dfd2488c3061721e9dac53a67d07..ebf67339b65782a5c10c1b756c3fe5e06c3977d1 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/TurbulentViscosityInlines.cuh
+++ b/src/gpu/VirtualFluids_GPU/GPU/TurbulentViscosityInlines.cuh
@@ -38,9 +38,9 @@
 #include <cuda_runtime.h>
 
 #include "LBM/LB.h" 
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 __inline__ __device__ real calcTurbulentViscositySmagorinsky(real Cs, real dxux, real dyuy, real dzuz, real Dxy, real Dxz , real Dyz)
 {
diff --git a/src/gpu/VirtualFluids_GPU/GPU/TurbulentViscosityKernels.cu b/src/gpu/VirtualFluids_GPU/GPU/TurbulentViscosityKernels.cu
index 7147629c448b8b730e4ae8c4eff8a0a400863de9..d00941aba35d2885e893eea1ffe23c89002046c4 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/TurbulentViscosityKernels.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/TurbulentViscosityKernels.cu
@@ -32,7 +32,7 @@
 //======================================================================================
 
 #include "TurbulentViscosityKernels.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include "Parameter/Parameter.h"
 #include "cuda/CudaGrid.h"
 #include <cuda_runtime.h>
@@ -40,7 +40,7 @@
 #include "LBM/LB.h"
 #include "LBM/GPUHelperFunctions/KernelUtilities.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 __host__ __device__ __forceinline__ void calcDerivatives(const uint& k, uint& kM, uint& kP, uint* typeOfGridNode, real* vx, real* vy, real* vz, real& dvx, real& dvy, real& dvz)
 {
diff --git a/src/gpu/VirtualFluids_GPU/GPU/TurbulentViscosityKernels.h b/src/gpu/VirtualFluids_GPU/GPU/TurbulentViscosityKernels.h
index b227e680301cd4639d48a5cf3ce74f08eb7e1b9f..c5c470a5f178f4377f6bf0d0ed29cd8191968529 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/TurbulentViscosityKernels.h
+++ b/src/gpu/VirtualFluids_GPU/GPU/TurbulentViscosityKernels.h
@@ -39,9 +39,9 @@
 
 #include "LBM/LB.h" 
 #include "Core/DataTypes.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 class Parameter;
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/VelocityBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/VelocityBCs27.cu
index e269c06129079e32fc0a4cc135baec26eabcc607..6207c98f9290520199e3cd9c31294ef5520b1798 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/VelocityBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/VelocityBCs27.cu
@@ -32,10 +32,10 @@
 //======================================================================================
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include "LBM/GPUHelperFunctions/KernelUtilities.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/WaleCumulant27.cu b/src/gpu/VirtualFluids_GPU/GPU/WaleCumulant27.cu
index cbb892296322bc164241ad18c8ab63201d34647e..6bac690a881494520a33e901c35c3f51e4d2bfc7 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/WaleCumulant27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/WaleCumulant27.cu
@@ -1,9 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 #include "math.h"
diff --git a/src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu b/src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu
index d2fe5935af9b2d3ad78f492e3a9d182873d20808..6de196e1788494b20c24a73cb9ec02a360f868ea 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu
@@ -1,9 +1,9 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 
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 40adfff91713b7d6db1e861be9282d1f38516c22..eb6c9814efdedb822ddc3052d6b577750be83b12 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 ddaed84703640cd9c7d12d142ccc1bf8f9ea7efc..075063bc6c3d260376256bd46f5669fae658a7a0 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 #include "math.h"
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 f9fdcee0f34106b05da0edc16e3fdd89f859752e..4a5cbb1168940bd6bfc9d9a48568b5964b736ae4 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 e0bcc4e515b1b2ccf71f1050e2d572b60a40d94b..1d393e0c4a5f80fb331c109311876673a86a9d8d 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 3bdb65c455bd67d66e8b35961f2fa7e1de45f763..44add98d9607642531a6068021d0a4e831cb3d4e 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #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 1f44fee9ea8b20241f87bea6310c96db2b82d1c4..638210bd2da8ebf30bda603a3f6d70c19468193e 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 af0a7c118191243c80c420856a70711a1fc17d2b..6bd4415c7edcb5c9954874c074801b865cce3efe 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 1dfab5846795e61509cdba28478fe6ce623983b5..6ab3385b86611614eceeb0018f6beef73031711c 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 3593b41c4c62c8a8b19719e22e9d65d6b5fd987d..7a5e39d6f1f95f5b34bb38f1514ab728f477c34b 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,9 +2,9 @@
 
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 f7fb1f0a6441cfc6f38ad9684fd5bc8dd1be7135..9c5d484ee00c1dfab92e1d5eaf0cdffb61fd122b 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 085775d324bf65d783afdd745c06429d697c3788..c0e48a9d5754f79d62b11129cef754adf91dbe03 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 13788e65e70eb30803111a39a70d39682648a006..20f3f913589f26978dcf713cd0175fc2ad425545 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17_Device.cu
index 2044c6ad8d7f242c96479cd060c70b91c1dfb216..c206381d4b54130a7a5489536729465f398e5ee4 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17_Device.cu
@@ -43,13 +43,13 @@
 //=======================================================================================
 #include "LBM/LB.h"
 #include "lbm/constants/D3Q27.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include "LBM/GPUHelperFunctions/KernelUtilities.h"
 #include "LBM/GPUHelperFunctions/ChimeraTransformation.h"
 
 #include "GPU/TurbulentViscosityInlines.cuh"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
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 b33a3c251b5fb0cde8b1da0fcce097f955353d69..5e98ebe6db990f5d16fd9d7a839c0e5f0927ba87 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 a0db78d27b00372feab8490111183481abbec8b9..1da801654adb3682ea11ca87c7c7a2fd10b065d3 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,10 +33,10 @@
 /* Device code */
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include "LBM/GPUHelperFunctions/ChimeraTransformation.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
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 0e4ae5caebb9bd4b1c889a78bfadb62487742c98..c585c19aaca870e97fec63b0cd1742f7aad32556 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 2dbe0bb62412f9363fdd0e714f5da296f81ae5b3..0a26eff29c3624bd78ef7dd4a8f675b8cb1a99d3 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 c3eb51a114e5c4a3be7605765d0889a7bae25cf0..41b24a349da75586be4fb818c9eb3f194a2447fd 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 233595656720f5c84cf5be9e555565af0e9c95d0..6cfde7648bdfe8808cb39dd1b80d6537bb3c3280 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 b49b76c6224be4b3543c01647a6553e6fc64b74e..1fee181619070e3bc30370a1bc32b949a3af9a2a 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 8e607cabb4cc40bbb22c5ad3ec6db2c63154add6..0346f12cf609c355aedd4743dd7f971f444d5fe9 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 5130017acc642c92b064a500e79ff685ec2f6d97..ac88396b42483e3178869be585124fb031d099ec 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 1f0ef2ec84c8d4b9b4be57548bde396c3316a80d..623d3c2c26b2c4d8fdfdaa718ca92662dfe5b548 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 01b60b3bf8067a81f99b912c4c0c700963f5448c..9fcfeaa97d97b9bfcf2ad0227464cbcabbc28f44 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 a6663cc3c72696fda2ce9819203cd19195088730..2fbc7d64d5f10a2c6313647e508fbb2192dd435b 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 4f5f61f9d7a61fee8fd3438de5c588c861d8604c..1ed7cf3af37251550d38affe512f841a3779b918 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 a7018d1246c0832753df144ffbf2625b55f5508e..62658ccbdcead27f77d3b72d2daa311ade5baa59 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 6258c72c36cafa27b06b2934db42a5813ed74f99..d266aac648c6163fb24764879f391304f32aba87 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 e3161e0d26efe8993bb4b6c34bda32bf15af5d3d..71d3ed0604feb43422e3e738bb2ca9bca147ab17 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 63f4ecc8716fcd606fb6a75709408b0885d781e9..0a48c68059d794ddd7aed85c266604d51809d978 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,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Utilities/DistributionHelper.cu b/src/gpu/VirtualFluids_GPU/Kernel/Utilities/DistributionHelper.cu
index 240a6ffbace64147aa67224fe72c946761fdc452..a1d9ba6665576c90406eee13084e5133acdb448c 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Utilities/DistributionHelper.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Utilities/DistributionHelper.cu
@@ -2,7 +2,7 @@
 
 #include <cuda_runtime.h>
 
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include "lbm/constants/D3Q27.h"
 using namespace vf::lbm::dir;
 
diff --git a/src/gpu/VirtualFluids_GPU/LBM/GPUHelperFunctions/ChimeraTransformation.h b/src/gpu/VirtualFluids_GPU/LBM/GPUHelperFunctions/ChimeraTransformation.h
index 225f615ec3ad2d8ef11ec295f8d9e8a4166d99fe..4ba786cc1f281725ed24bc9f5c587f33cec78f56 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/GPUHelperFunctions/ChimeraTransformation.h
+++ b/src/gpu/VirtualFluids_GPU/LBM/GPUHelperFunctions/ChimeraTransformation.h
@@ -35,9 +35,9 @@
 
 #include "LBM/LB.h"
 
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 namespace vf::gpu
 {
diff --git a/src/gpu/VirtualFluids_GPU/LBM/GPUHelperFunctions/KernelUtilities.h b/src/gpu/VirtualFluids_GPU/LBM/GPUHelperFunctions/KernelUtilities.h
index e910f8ac5a71053d927e2531dcb225199d708749..5541bc54597ea02c5e3e89d00169b6eb6ff6564b 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/GPUHelperFunctions/KernelUtilities.h
+++ b/src/gpu/VirtualFluids_GPU/LBM/GPUHelperFunctions/KernelUtilities.h
@@ -35,9 +35,9 @@
 
 #include "LBM/LB.h"
 #include "lbm/constants/D3Q27.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 namespace vf::gpu
diff --git a/src/gpu/VirtualFluids_GPU/LBM/GPUHelperFunctions/ScalingUtilities.h b/src/gpu/VirtualFluids_GPU/LBM/GPUHelperFunctions/ScalingUtilities.h
index 53990e452be06dc6840c801816e8231d26861e2e..a7c1390c728df1d0ca83424fb7f9f4fb09faba65 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/GPUHelperFunctions/ScalingUtilities.h
+++ b/src/gpu/VirtualFluids_GPU/LBM/GPUHelperFunctions/ScalingUtilities.h
@@ -35,9 +35,9 @@
 
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 namespace vf::gpu
diff --git a/src/gpu/VirtualFluids_GPU/Output/DistributionDebugInspector.cu b/src/gpu/VirtualFluids_GPU/Output/DistributionDebugInspector.cu
index f7bb2e680c0fb3ea597239ee0cbc1772f2efe81b..e5062a8ec63940ab6e23e567c0674681d4af6509 100644
--- a/src/gpu/VirtualFluids_GPU/Output/DistributionDebugInspector.cu
+++ b/src/gpu/VirtualFluids_GPU/Output/DistributionDebugInspector.cu
@@ -34,7 +34,7 @@
 
 #include "Parameter/Parameter.h"
 #include "lbm/constants/D3Q27.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include "LBM/GPUHelperFunctions/KernelUtilities.h"
 
 #include <cuda/CudaGrid.h>
@@ -42,7 +42,7 @@
 
 #include <iostream>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 using namespace vf::gpu;
 
diff --git a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.cu b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.cu
index 99e63e3ee185b941f4aa413d02507965aa36a88f..b8e5a66a48a1e4d26509db4f1ca8909938643517 100644
--- a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.cu
+++ b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.cu
@@ -44,10 +44,10 @@
 #include "Parameter/CudaStreamManager.h"
 #include "DataStructureInitializer/GridProvider.h"
 #include "GPU/CudaMemoryManager.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include "logger/Logger.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 
 __host__ __device__ __inline__ uint calcNode(uint bladeNode, uint numberOfBladeNodes, uint blade, uint numberOfBlades, uint turbine, uint numberOfTurbines)
diff --git a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.h b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.h
index a251ffd33fa6c76ebaccab313dfc1eabea2d949a..67bf83691d19179984647cb808bb6c0592bb0bfb 100644
--- a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.h
+++ b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.h
@@ -3,14 +3,14 @@
 
 #include "PreCollisionInteractor.h"
 #include "PointerDefinitions.h"
-#include "lbm/constants/NumericConstants.h"
+#include "basics/constants/NumericConstants.h"
 #include <stdexcept>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 class Parameter;
 class GridProvider;
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 class ActuatorFarm : public PreCollisionInteractor
 {
diff --git a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/Probes/Probe.cu b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/Probes/Probe.cu
index 03c18f5a9a2133bec244053113209abc70469a2a..fdd5fe6f0c90827153f558f9016b37e6c15c0c76 100644
--- a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/Probes/Probe.cu
+++ b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/Probes/Probe.cu
@@ -37,7 +37,7 @@
 #include <helper_cuda.h>
 
 #include "VirtualFluids_GPU/GPU/GeometryUtils.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 #include "basics/writer/WbWriterVtkXmlBinary.h"
 #include <Core/StringUtilities/StringUtil.h>
 
@@ -45,7 +45,7 @@
 #include "DataStructureInitializer/GridProvider.h"
 #include "GPU/CudaMemoryManager.h"
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 
 __device__ void calculatePointwiseQuantities(uint n, real* quantityArray, bool* quantities, uint* quantityArrayOffsets, uint nPoints, uint node, real vx, real vy, real vz, real rho)
 {
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 d40e60c764054f8ac6c1793ea3e3573ed04a84fc..8fc9de61cfc20c5111a70ad544a9a26c5b3ea7b4 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD27/InitCompAD27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD27/InitCompAD27_Device.cu
@@ -1,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 
 
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 38cd57fd48e02e410e1ae557088e023ffeadfc4e..bb3e6c97ddc387234252b59dc43143f115888a6a 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD7/InitCompAD7_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD7/InitCompAD7_Device.cu
@@ -1,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 dcc3b9a060a026accffdc6d24f338a6d23295d73..59953c573c738c3bfadf119be6d173918e970ef4 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompSP27/InitCompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompSP27/InitCompSP27_Device.cu
@@ -1,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.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 25af54e43ec213214615c2edc79d7996e4651c38..349bfda9824483bf08d09f267d5fc4b0f6a13ac1 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitF3/InitF3_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitF3/InitF3_Device.cu
@@ -1,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #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 62d766aaa04b6f6349c6c4106e201f36898601ec..869169c525bf7f64a2c1ac9e1cf2d9678efdb28b 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD27/InitIncompAD27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD27/InitIncompAD27_Device.cu
@@ -1,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 94a4352d43dee67117f66eaf03536c5ea3e15edd..1fee2cbe232415d7435f5b60297799f2668cc01e 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD7/InitIncompAD7_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD7/InitIncompAD7_Device.cu
@@ -1,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
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 b58935feb0bf276a2d8da3f36efbb1fb0ab9d13f..87abb17176942594280fae7b7592f31303ba746d 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitSP27/InitSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitSP27/InitSP27_Device.cu
@@ -1,8 +1,8 @@
 #include "LBM/LB.h" 
 #include "lbm/constants/D3Q27.h"
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-using namespace vf::lbm::constant;
+using namespace vf::basics::constant;
 using namespace vf::lbm::dir;
 #include "math.h"
 
diff --git a/src/lbm/BGK.cpp b/src/lbm/BGK.cpp
index fa3af6777a0492687768dd4945cbf1e9b186f514..cb7d091041f90d42a4ea8e794b26d2e92581ea1b 100644
--- a/src/lbm/BGK.cpp
+++ b/src/lbm/BGK.cpp
@@ -9,12 +9,10 @@
 
 #include "MacroscopicQuantities.h"
 
-namespace vf
-{
-namespace lbm
+namespace vf::lbm
 {
 
-using namespace constant;
+using namespace vf::basics::constant;
 
 
 
@@ -61,7 +59,7 @@ __host__ __device__ void bgk(KernelParameter parameter)
     //! - Acquire macroscopic quantities
     const real drho = getDensity(distribution.f);
     const real rho = c1o1 + drho;
-    const real OOrho = constant::c1o1 / (constant::c1o1 + drho);    
+    const real OOrho = c1o1 / (c1o1 + drho);    
 
     const real vvx = getIncompressibleVelocityX1(distribution.f) * OOrho;
     const real vvy = getIncompressibleVelocityX2(distribution.f) * OOrho;
@@ -136,5 +134,4 @@ __host__ __device__ void bgk(KernelParameter parameter)
 
 
 }
-}
 
diff --git a/src/lbm/Chimera.h b/src/lbm/Chimera.h
index 6ffa0918aac4e6303efe4db82aa98ee645dc63e8..af86c4cbe24b4cccb194f65edd1b3a4fb89b9377 100644
--- a/src/lbm/Chimera.h
+++ b/src/lbm/Chimera.h
@@ -10,14 +10,12 @@
 
 #include <basics/Core/DataTypes.h>
 
-#include <lbm/constants/NumericConstants.h>
+#include <basics/constants/NumericConstants.h>
 
-namespace vf
-{
-namespace lbm
-{
+using namespace vf::basics::constant;
 
-using namespace constant;
+namespace vf::lbm
+{
 
 ////////////////////////////////////////////////////////////////////////////////
 //! \brief forward chimera transformation \ref forwardInverseChimeraWithK 
@@ -116,6 +114,5 @@ inline __host__ __device__ void backwardChimeraWithK(real &mfa, real &mfb, real
     mfb = m1;
 }
 
-}
 }
 #endif
diff --git a/src/lbm/CumulantChimera.cpp b/src/lbm/CumulantChimera.cpp
index e1c27f90b6611640d8e5db47c9432268f5f58f15..4d3382e70357dde2c0e663b32c18a881018ea670 100644
--- a/src/lbm/CumulantChimera.cpp
+++ b/src/lbm/CumulantChimera.cpp
@@ -11,12 +11,10 @@
 #include "Chimera.h"
 #include "MacroscopicQuantities.h"
 
-namespace vf
-{
-namespace lbm
+namespace vf::lbm
 {
 
-using namespace constant;
+using namespace vf::basics::constant;
 
 
 ////////////////////////////////////////////////////////////////////////////////////
@@ -449,5 +447,4 @@ __host__ __device__ void cumulantChimera(KernelParameter parameter, RelaxationRa
 
 
 }
-}
 
diff --git a/src/lbm/MacroscopicQuantities.h b/src/lbm/MacroscopicQuantities.h
index 8789f65195ee38b1399a42a0c24511dfcea3d6d0..c464e955669fcaa39b5c300e5c2c7e25dffef696 100644
--- a/src/lbm/MacroscopicQuantities.h
+++ b/src/lbm/MacroscopicQuantities.h
@@ -13,11 +13,10 @@
 #include "constants/NumericConstants.h"
 #include "constants/D3Q27.h"
 
-namespace vf
-{
-namespace lbm
+
+namespace vf::lbm
 {
-    
+
 ////////////////////////////////////////////////////////////////////////////////////
 //! - Calculate density and velocity using pyramid summation for low round-off errors as in Eq. (J1)-(J3) \ref
 //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa  2015.05.001 ]</b></a>
@@ -61,19 +60,19 @@ inline __host__ __device__ real getIncompressibleVelocityX3(const real *const &f
 */
 inline __host__ __device__ real getCompressibleVelocityX1(const real *const &f27, const real& rho)
 {
-    return getIncompressibleVelocityX1(f27) / (rho + constant::c1o1);
+    return getIncompressibleVelocityX1(f27) / (rho + basics::constant::c1o1);
 }
 
 
 inline __host__ __device__ real getCompressibleVelocityX2(const real *const &f27, const real& rho)
 {
-    return getIncompressibleVelocityX2(f27) / (rho + constant::c1o1);
+    return getIncompressibleVelocityX2(f27) / (rho + basics::constant::c1o1);
 }
 
 
 inline __host__ __device__ real getCompressibleVelocityX3(const real *const &f27, const real& rho)
 {
-    return getIncompressibleVelocityX3(f27) / (rho + constant::c1o1);
+    return getIncompressibleVelocityX3(f27) / (rho + basics::constant::c1o1);
 }
 
 /*
@@ -82,17 +81,17 @@ inline __host__ __device__ real getCompressibleVelocityX3(const real *const &f27
 inline __host__ __device__ real getPressure(const real *const &f27, const real& rho, const real& vx, const real& vy, const real& vz)
 {
     return (f27[dir::DIR_P00] + f27[dir::DIR_M00] + f27[dir::DIR_0P0] + f27[dir::DIR_0M0] + f27[dir::DIR_00P] + f27[dir::DIR_00M] + 
-    constant::c2o1 * (f27[dir::DIR_PP0] + f27[dir::DIR_MM0] + f27[dir::DIR_PM0] + f27[dir::DIR_MP0] + f27[dir::DIR_P0P] + 
+    basics::constant::c2o1 * (f27[dir::DIR_PP0] + f27[dir::DIR_MM0] + f27[dir::DIR_PM0] + f27[dir::DIR_MP0] + f27[dir::DIR_P0P] + 
                       f27[dir::DIR_M0M] + f27[dir::DIR_P0M] + f27[dir::DIR_M0P] + f27[dir::DIR_0PP] + f27[dir::DIR_0MM] + 
                       f27[dir::DIR_0PM] + f27[dir::DIR_0MP]) + 
-    constant::c3o1 * (f27[dir::DIR_PPP] + f27[dir::DIR_MMP] + f27[dir::DIR_PMP] + f27[dir::DIR_MPP] + 
+    basics::constant::c3o1 * (f27[dir::DIR_PPP] + f27[dir::DIR_MMP] + f27[dir::DIR_PMP] + f27[dir::DIR_MPP] + 
                       f27[dir::DIR_PPM] + f27[dir::DIR_MMM] + f27[dir::DIR_PMM] + f27[dir::DIR_MPM]) -
-    rho - (vx * vx + vy * vy + vz * vz) * (constant::c1o1 + rho)) * 
-    constant::c1o2 + rho; // times zero for incompressible case                 
+    rho - (vx * vx + vy * vy + vz * vz) * (basics::constant::c1o1 + rho)) * 
+    basics::constant::c1o2 + rho; // times zero for incompressible case                 
                           // Attention: op defined directly to op = 1 ; ^^^^(1.0/op-0.5)=0.5
 }
 
-}
+
 }
 
 #endif