From 73a86ccee472711da482226f9df3948d12ea6d65 Mon Sep 17 00:00:00 2001
From: Anna Wellmann <a.wellmann@tu-braunschweig.de>
Date: Thu, 7 Jul 2022 14:28:20 +0200
Subject: [PATCH] Rename D3Q27 directions

---
 .../Communication/ExchangeData27.cpp          |    2 +-
 .../GridReaderFiles/GridReader.cpp            |   52 +-
 .../GridReaderGenerator/GridGenerator.cpp     |  260 +-
 src/gpu/VirtualFluids_GPU/FindQ/FindQ.cpp     |  940 +--
 .../GPU/AdvectionDiffusion27chim.cu           |  364 +-
 .../GPU/AdvectionDiffusionBCs27.cu            | 5872 ++++++++---------
 src/gpu/VirtualFluids_GPU/GPU/CP27.cu         |  130 +-
 .../VirtualFluids_GPU/GPU/Calc2ndMoments27.cu |  936 +--
 src/gpu/VirtualFluids_GPU/GPU/CalcConc27.cu   |  416 +-
 src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu    | 1218 ++--
 src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu    | 1664 ++---
 src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu   | 1248 ++--
 .../VirtualFluids_GPU/GPU/Cumulant27chim.cu   |  624 +-
 .../VirtualFluids_GPU/GPU/Cumulant_F3_27.cu   |  776 +--
 src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu   |  416 +-
 .../VirtualFluids_GPU/GPU/ExchangeData27.cu   | 1032 +--
 src/gpu/VirtualFluids_GPU/GPU/Init27.cu       |  312 +-
 .../GPU/InitAdvectionDiffusion27.cu           |  312 +-
 .../VirtualFluids_GPU/GPU/KernelUtilities.h   |  156 +-
 src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu  | 1716 ++---
 src/gpu/VirtualFluids_GPU/GPU/Particles.cu    |  676 +-
 src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu   | 4152 ++++++------
 src/gpu/VirtualFluids_GPU/GPU/ScaleCF27.cu    | 3328 +++++-----
 .../VirtualFluids_GPU/GPU/ScaleCF_F3_27.cu    |  528 +-
 src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu    | 3068 ++++-----
 .../VirtualFluids_GPU/GPU/ScaleFC_F3_27.cu    |  384 +-
 .../VirtualFluids_GPU/GPU/SchlafferBCs27.cu   |  496 +-
 src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu |  156 +-
 src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu    | 2392 +++----
 src/gpu/VirtualFluids_GPU/GPU/StressBCs27.cu  |  728 +-
 .../VirtualFluids_GPU/GPU/ThinWallBCs27.cu    |  832 +--
 .../VirtualFluids_GPU/GPU/VelocityBCs27.cu    | 4368 ++++++------
 .../VirtualFluids_GPU/GPU/WaleCumulant27.cu   |  208 +-
 src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu |  416 +-
 .../VirtualFluids_GPU/Init/PositionReader.cpp |   60 +-
 .../Mod27/ADComp27/ADComp27_Device.cu         |  364 +-
 .../Mod7/ADComp7/ADComp7_Device.cu            |  208 +-
 .../Mod27/ADIncomp27/ADIncomp27_Device.cu     |  468 +-
 .../Mod7/ADIncomp7/ADIncomp7_Device.cu        |  208 +-
 .../Compressible/BGK/BGKCompSP27_Device.cu    |  208 +-
 .../BGKPlus/BGKPlusCompSP27_Device.cu         |  208 +-
 .../Cascade/CascadeCompSP27_Device.cu         |  208 +-
 .../Cumulant/CumulantCompSP27_Device.cu       |  208 +-
 .../CumulantAll4CompSP27_Device.cu            |  208 +-
 .../CumulantK15/CumulantK15Comp_Device.cu     |  208 +-
 .../CumulantK15BulkComp_Device.cu             |  208 +-
 .../CumulantK15SpongeComp_Device.cu           |  208 +-
 .../CumulantK17/CumulantK17Comp_Device.cu     |  208 +-
 .../CumulantK17BulkComp_Device.cu             |  208 +-
 .../CumulantK17CompChim_Device.cu             |  208 +-
 .../CumulantK17CompChimStreamDevice.cu        |  208 +-
 .../CumulantK18/CumulantK18Comp_Device.cu     |  260 +-
 .../CumulantK20/CumulantK20Comp_Device.cu     |  260 +-
 .../Compressible/MRT/MRTCompSP27_Device.cu    |  208 +-
 .../BGK/BGKIncompSP27_Device.cu               |  208 +-
 .../BGKPlus/BGKPlusIncompSP27_Device.cu       |  208 +-
 .../Cascade/CascadeIncompSP27_Device.cu       |  208 +-
 .../Cumulant1hIncompSP27_Device.cu            |  208 +-
 .../CumulantIsoIncompSP27_Device.cu           |  208 +-
 .../CumulantK15/CumulantK15Incomp_Device.cu   |  208 +-
 .../MRT/MRTIncompSP27_Device.cu               |  208 +-
 .../PMCumulantOneCompSP27_Device.cu           |  208 +-
 ...lentViscosityCumulantK17CompChim_Device.cu |  624 +-
 .../CumulantK15/WaleCumulantK15Comp_Device.cu |  208 +-
 .../WaleBySoniMalavCumulantK15Comp_Device.cu  |  208 +-
 .../CumulantK17/WaleCumulantK17Comp_Device.cu |  208 +-
 .../WaleCumulantK17DebugComp_Device.cu        |  208 +-
 .../Kernel/Utilities/DistributionHelper.cu    |  208 +-
 src/gpu/VirtualFluids_GPU/LBM/D3Q27.h         |   56 +-
 .../Output/UnstructuredGridWriter.hpp         |  162 +-
 .../InitCompAD27/InitCompAD27_Device.cu       |  156 +-
 .../InitCompSP27/InitCompSP27_Device.cu       |  364 +-
 .../InitF3/InitF3_Device.cu                   |   36 +-
 .../InitIncompAD27/InitIncompAD27_Device.cu   |  156 +-
 .../InitSP27/InitSP27_Device.cu               |  156 +-
 75 files changed, 24562 insertions(+), 24562 deletions(-)

diff --git a/src/gpu/VirtualFluids_GPU/Communication/ExchangeData27.cpp b/src/gpu/VirtualFluids_GPU/Communication/ExchangeData27.cpp
index d39b67c42..ab477866c 100644
--- a/src/gpu/VirtualFluids_GPU/Communication/ExchangeData27.cpp
+++ b/src/gpu/VirtualFluids_GPU/Communication/ExchangeData27.cpp
@@ -90,7 +90,7 @@ void copyEdgeNodes(std::vector<LBMSimulationParameter::EdgeNodePositions> &edgeN
         }
 
         // copy fs for all directions
-        for (int direction = 0; direction <= (int)dirEND; direction++) {
+        for (int direction = 0; direction <= (int)ENDDIR; direction++) {
             (sendProcessNeighborHost[indexInSubdomainSend].f[0] +
              (direction * numNodesInBufferSend))[edgeNodes[i].indexInSendBuffer] =
                 (recvProcessNeighborHost[indexInSubdomainRecv].f[0] +
diff --git a/src/gpu/VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/GridReader.cpp b/src/gpu/VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/GridReader.cpp
index fed5c1ace..476bb3dea 100644
--- a/src/gpu/VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/GridReader.cpp
+++ b/src/gpu/VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/GridReader.cpp
@@ -731,33 +731,33 @@ void GridReader::initalGridInformations()
 
 void GridReader::setQ27Size(QforBoundaryConditions &Q, real* QQ, unsigned int sizeQ) const
 {
-	Q.q27[dirE] = &QQ[dirE   *sizeQ];
-	Q.q27[dirW] = &QQ[dirW   *sizeQ];
-	Q.q27[dirN] = &QQ[dirN   *sizeQ];
-	Q.q27[dirS] = &QQ[dirS   *sizeQ];
-	Q.q27[dirT] = &QQ[dirT   *sizeQ];
-	Q.q27[dirB] = &QQ[dirB   *sizeQ];
-	Q.q27[dirNE] = &QQ[dirNE  *sizeQ];
-	Q.q27[dirSW] = &QQ[dirSW  *sizeQ];
-	Q.q27[dirSE] = &QQ[dirSE  *sizeQ];
-	Q.q27[dirNW] = &QQ[dirNW  *sizeQ];
-	Q.q27[dirTE] = &QQ[dirTE  *sizeQ];
-	Q.q27[dirBW] = &QQ[dirBW  *sizeQ];
-	Q.q27[dirBE] = &QQ[dirBE  *sizeQ];
-	Q.q27[dirTW] = &QQ[dirTW  *sizeQ];
-	Q.q27[dirTN] = &QQ[dirTN  *sizeQ];
-	Q.q27[dirBS] = &QQ[dirBS  *sizeQ];
-	Q.q27[dirBN] = &QQ[dirBN  *sizeQ];
-	Q.q27[dirTS] = &QQ[dirTS  *sizeQ];
+	Q.q27[E] = &QQ[E   *sizeQ];
+	Q.q27[W] = &QQ[W   *sizeQ];
+	Q.q27[N] = &QQ[N   *sizeQ];
+	Q.q27[S] = &QQ[S   *sizeQ];
+	Q.q27[T] = &QQ[T   *sizeQ];
+	Q.q27[B] = &QQ[B   *sizeQ];
+	Q.q27[NE] = &QQ[NE  *sizeQ];
+	Q.q27[SW] = &QQ[SW  *sizeQ];
+	Q.q27[SE] = &QQ[SE  *sizeQ];
+	Q.q27[NW] = &QQ[NW  *sizeQ];
+	Q.q27[TE] = &QQ[TE  *sizeQ];
+	Q.q27[BW] = &QQ[BW  *sizeQ];
+	Q.q27[BE] = &QQ[BE  *sizeQ];
+	Q.q27[TW] = &QQ[TW  *sizeQ];
+	Q.q27[TN] = &QQ[TN  *sizeQ];
+	Q.q27[BS] = &QQ[BS  *sizeQ];
+	Q.q27[BN] = &QQ[BN  *sizeQ];
+	Q.q27[TS] = &QQ[TS  *sizeQ];
 	Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-	Q.q27[dirTNE] = &QQ[dirTNE *sizeQ];
-	Q.q27[dirTSW] = &QQ[dirTSW *sizeQ];
-	Q.q27[dirTSE] = &QQ[dirTSE *sizeQ];
-	Q.q27[dirTNW] = &QQ[dirTNW *sizeQ];
-	Q.q27[dirBNE] = &QQ[dirBNE *sizeQ];
-	Q.q27[dirBSW] = &QQ[dirBSW *sizeQ];
-	Q.q27[dirBSE] = &QQ[dirBSE *sizeQ];
-	Q.q27[dirBNW] = &QQ[dirBNW *sizeQ];
+	Q.q27[TNE] = &QQ[TNE *sizeQ];
+	Q.q27[TSW] = &QQ[TSW *sizeQ];
+	Q.q27[TSE] = &QQ[TSE *sizeQ];
+	Q.q27[TNW] = &QQ[TNW *sizeQ];
+	Q.q27[BNE] = &QQ[BNE *sizeQ];
+	Q.q27[BSW] = &QQ[BSW *sizeQ];
+	Q.q27[BSE] = &QQ[BSE *sizeQ];
+	Q.q27[BNW] = &QQ[BNW *sizeQ];
 }
 
 void GridReader::setSizeNoSlip(std::shared_ptr<BoundaryQs> boundaryQ, unsigned int level) const
diff --git a/src/gpu/VirtualFluids_GPU/DataStructureInitializer/GridReaderGenerator/GridGenerator.cpp b/src/gpu/VirtualFluids_GPU/DataStructureInitializer/GridReaderGenerator/GridGenerator.cpp
index 903a2a3c3..2af00fe97 100644
--- a/src/gpu/VirtualFluids_GPU/DataStructureInitializer/GridReaderGenerator/GridGenerator.cpp
+++ b/src/gpu/VirtualFluids_GPU/DataStructureInitializer/GridReaderGenerator/GridGenerator.cpp
@@ -744,33 +744,33 @@ void GridGenerator::allocArrays_BoundaryQs()
             real* QQ = para->getParH(i)->pressureBC.q27[0];
             unsigned int sizeQ = para->getParH(i)->pressureBC.numberOfBCnodes;
             QforBoundaryConditions Q;
-            Q.q27[dirE] = &QQ[dirE   *sizeQ];
-            Q.q27[dirW] = &QQ[dirW   *sizeQ];
-            Q.q27[dirN] = &QQ[dirN   *sizeQ];
-            Q.q27[dirS] = &QQ[dirS   *sizeQ];
-            Q.q27[dirT] = &QQ[dirT   *sizeQ];
-            Q.q27[dirB] = &QQ[dirB   *sizeQ];
-            Q.q27[dirNE] = &QQ[dirNE  *sizeQ];
-            Q.q27[dirSW] = &QQ[dirSW  *sizeQ];
-            Q.q27[dirSE] = &QQ[dirSE  *sizeQ];
-            Q.q27[dirNW] = &QQ[dirNW  *sizeQ];
-            Q.q27[dirTE] = &QQ[dirTE  *sizeQ];
-            Q.q27[dirBW] = &QQ[dirBW  *sizeQ];
-            Q.q27[dirBE] = &QQ[dirBE  *sizeQ];
-            Q.q27[dirTW] = &QQ[dirTW  *sizeQ];
-            Q.q27[dirTN] = &QQ[dirTN  *sizeQ];
-            Q.q27[dirBS] = &QQ[dirBS  *sizeQ];
-            Q.q27[dirBN] = &QQ[dirBN  *sizeQ];
-            Q.q27[dirTS] = &QQ[dirTS  *sizeQ];
+            Q.q27[E] = &QQ[E   *sizeQ];
+            Q.q27[W] = &QQ[W   *sizeQ];
+            Q.q27[N] = &QQ[N   *sizeQ];
+            Q.q27[S] = &QQ[S   *sizeQ];
+            Q.q27[T] = &QQ[T   *sizeQ];
+            Q.q27[B] = &QQ[B   *sizeQ];
+            Q.q27[NE] = &QQ[NE  *sizeQ];
+            Q.q27[SW] = &QQ[SW  *sizeQ];
+            Q.q27[SE] = &QQ[SE  *sizeQ];
+            Q.q27[NW] = &QQ[NW  *sizeQ];
+            Q.q27[TE] = &QQ[TE  *sizeQ];
+            Q.q27[BW] = &QQ[BW  *sizeQ];
+            Q.q27[BE] = &QQ[BE  *sizeQ];
+            Q.q27[TW] = &QQ[TW  *sizeQ];
+            Q.q27[TN] = &QQ[TN  *sizeQ];
+            Q.q27[BS] = &QQ[BS  *sizeQ];
+            Q.q27[BN] = &QQ[BN  *sizeQ];
+            Q.q27[TS] = &QQ[TS  *sizeQ];
             Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-            Q.q27[dirTNE] = &QQ[dirTNE *sizeQ];
-            Q.q27[dirTSW] = &QQ[dirTSW *sizeQ];
-            Q.q27[dirTSE] = &QQ[dirTSE *sizeQ];
-            Q.q27[dirTNW] = &QQ[dirTNW *sizeQ];
-            Q.q27[dirBNE] = &QQ[dirBNE *sizeQ];
-            Q.q27[dirBSW] = &QQ[dirBSW *sizeQ];
-            Q.q27[dirBSE] = &QQ[dirBSE *sizeQ];
-            Q.q27[dirBNW] = &QQ[dirBNW *sizeQ];
+            Q.q27[TNE] = &QQ[TNE *sizeQ];
+            Q.q27[TSW] = &QQ[TSW *sizeQ];
+            Q.q27[TSE] = &QQ[TSE *sizeQ];
+            Q.q27[TNW] = &QQ[TNW *sizeQ];
+            Q.q27[BNE] = &QQ[BNE *sizeQ];
+            Q.q27[BSW] = &QQ[BSW *sizeQ];
+            Q.q27[BSE] = &QQ[BSE *sizeQ];
+            Q.q27[BNW] = &QQ[BNW *sizeQ];
             
             builder->getPressureQs(Q.q27, i);
 
@@ -817,33 +817,33 @@ void GridGenerator::allocArrays_BoundaryQs()
             real* QQ = para->getParH(i)->slipBC.q27[0];
             unsigned int sizeQ = para->getParH(i)->slipBC.numberOfBCnodes;
             QforBoundaryConditions Q;
-            Q.q27[dirE] = &QQ[dirE   *sizeQ];
-            Q.q27[dirW] = &QQ[dirW   *sizeQ];
-            Q.q27[dirN] = &QQ[dirN   *sizeQ];
-            Q.q27[dirS] = &QQ[dirS   *sizeQ];
-            Q.q27[dirT] = &QQ[dirT   *sizeQ];
-            Q.q27[dirB] = &QQ[dirB   *sizeQ];
-            Q.q27[dirNE] = &QQ[dirNE  *sizeQ];
-            Q.q27[dirSW] = &QQ[dirSW  *sizeQ];
-            Q.q27[dirSE] = &QQ[dirSE  *sizeQ];
-            Q.q27[dirNW] = &QQ[dirNW  *sizeQ];
-            Q.q27[dirTE] = &QQ[dirTE  *sizeQ];
-            Q.q27[dirBW] = &QQ[dirBW  *sizeQ];
-            Q.q27[dirBE] = &QQ[dirBE  *sizeQ];
-            Q.q27[dirTW] = &QQ[dirTW  *sizeQ];
-            Q.q27[dirTN] = &QQ[dirTN  *sizeQ];
-            Q.q27[dirBS] = &QQ[dirBS  *sizeQ];
-            Q.q27[dirBN] = &QQ[dirBN  *sizeQ];
-            Q.q27[dirTS] = &QQ[dirTS  *sizeQ];
+            Q.q27[E] = &QQ[E   *sizeQ];
+            Q.q27[W] = &QQ[W   *sizeQ];
+            Q.q27[N] = &QQ[N   *sizeQ];
+            Q.q27[S] = &QQ[S   *sizeQ];
+            Q.q27[T] = &QQ[T   *sizeQ];
+            Q.q27[B] = &QQ[B   *sizeQ];
+            Q.q27[NE] = &QQ[NE  *sizeQ];
+            Q.q27[SW] = &QQ[SW  *sizeQ];
+            Q.q27[SE] = &QQ[SE  *sizeQ];
+            Q.q27[NW] = &QQ[NW  *sizeQ];
+            Q.q27[TE] = &QQ[TE  *sizeQ];
+            Q.q27[BW] = &QQ[BW  *sizeQ];
+            Q.q27[BE] = &QQ[BE  *sizeQ];
+            Q.q27[TW] = &QQ[TW  *sizeQ];
+            Q.q27[TN] = &QQ[TN  *sizeQ];
+            Q.q27[BS] = &QQ[BS  *sizeQ];
+            Q.q27[BN] = &QQ[BN  *sizeQ];
+            Q.q27[TS] = &QQ[TS  *sizeQ];
             Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-            Q.q27[dirTNE] = &QQ[dirTNE *sizeQ];
-            Q.q27[dirTSW] = &QQ[dirTSW *sizeQ];
-            Q.q27[dirTSE] = &QQ[dirTSE *sizeQ];
-            Q.q27[dirTNW] = &QQ[dirTNW *sizeQ];
-            Q.q27[dirBNE] = &QQ[dirBNE *sizeQ];
-            Q.q27[dirBSW] = &QQ[dirBSW *sizeQ];
-            Q.q27[dirBSE] = &QQ[dirBSE *sizeQ];
-            Q.q27[dirBNW] = &QQ[dirBNW *sizeQ];
+            Q.q27[TNE] = &QQ[TNE *sizeQ];
+            Q.q27[TSW] = &QQ[TSW *sizeQ];
+            Q.q27[TSE] = &QQ[TSE *sizeQ];
+            Q.q27[TNW] = &QQ[TNW *sizeQ];
+            Q.q27[BNE] = &QQ[BNE *sizeQ];
+            Q.q27[BSW] = &QQ[BSW *sizeQ];
+            Q.q27[BSE] = &QQ[BSE *sizeQ];
+            Q.q27[BNW] = &QQ[BNW *sizeQ];
             
             builder->getSlipQs(Q.q27, i);
             ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -863,33 +863,33 @@ void GridGenerator::allocArrays_BoundaryQs()
             real* QQ = para->getParH(i)->stressBC.q27[0];
             unsigned int sizeQ = para->getParH(i)->stressBC.numberOfBCnodes;
             QforBoundaryConditions Q;
-            Q.q27[dirE] = &QQ[dirE   *sizeQ];
-            Q.q27[dirW] = &QQ[dirW   *sizeQ];
-            Q.q27[dirN] = &QQ[dirN   *sizeQ];
-            Q.q27[dirS] = &QQ[dirS   *sizeQ];
-            Q.q27[dirT] = &QQ[dirT   *sizeQ];
-            Q.q27[dirB] = &QQ[dirB   *sizeQ];
-            Q.q27[dirNE] = &QQ[dirNE  *sizeQ];
-            Q.q27[dirSW] = &QQ[dirSW  *sizeQ];
-            Q.q27[dirSE] = &QQ[dirSE  *sizeQ];
-            Q.q27[dirNW] = &QQ[dirNW  *sizeQ];
-            Q.q27[dirTE] = &QQ[dirTE  *sizeQ];
-            Q.q27[dirBW] = &QQ[dirBW  *sizeQ];
-            Q.q27[dirBE] = &QQ[dirBE  *sizeQ];
-            Q.q27[dirTW] = &QQ[dirTW  *sizeQ];
-            Q.q27[dirTN] = &QQ[dirTN  *sizeQ];
-            Q.q27[dirBS] = &QQ[dirBS  *sizeQ];
-            Q.q27[dirBN] = &QQ[dirBN  *sizeQ];
-            Q.q27[dirTS] = &QQ[dirTS  *sizeQ];
+            Q.q27[E] = &QQ[E   *sizeQ];
+            Q.q27[W] = &QQ[W   *sizeQ];
+            Q.q27[N] = &QQ[N   *sizeQ];
+            Q.q27[S] = &QQ[S   *sizeQ];
+            Q.q27[T] = &QQ[T   *sizeQ];
+            Q.q27[B] = &QQ[B   *sizeQ];
+            Q.q27[NE] = &QQ[NE  *sizeQ];
+            Q.q27[SW] = &QQ[SW  *sizeQ];
+            Q.q27[SE] = &QQ[SE  *sizeQ];
+            Q.q27[NW] = &QQ[NW  *sizeQ];
+            Q.q27[TE] = &QQ[TE  *sizeQ];
+            Q.q27[BW] = &QQ[BW  *sizeQ];
+            Q.q27[BE] = &QQ[BE  *sizeQ];
+            Q.q27[TW] = &QQ[TW  *sizeQ];
+            Q.q27[TN] = &QQ[TN  *sizeQ];
+            Q.q27[BS] = &QQ[BS  *sizeQ];
+            Q.q27[BN] = &QQ[BN  *sizeQ];
+            Q.q27[TS] = &QQ[TS  *sizeQ];
             Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-            Q.q27[dirTNE] = &QQ[dirTNE *sizeQ];
-            Q.q27[dirTSW] = &QQ[dirTSW *sizeQ];
-            Q.q27[dirTSE] = &QQ[dirTSE *sizeQ];
-            Q.q27[dirTNW] = &QQ[dirTNW *sizeQ];
-            Q.q27[dirBNE] = &QQ[dirBNE *sizeQ];
-            Q.q27[dirBSW] = &QQ[dirBSW *sizeQ];
-            Q.q27[dirBSE] = &QQ[dirBSE *sizeQ];
-            Q.q27[dirBNW] = &QQ[dirBNW *sizeQ];
+            Q.q27[TNE] = &QQ[TNE *sizeQ];
+            Q.q27[TSW] = &QQ[TSW *sizeQ];
+            Q.q27[TSE] = &QQ[TSE *sizeQ];
+            Q.q27[TNW] = &QQ[TNW *sizeQ];
+            Q.q27[BNE] = &QQ[BNE *sizeQ];
+            Q.q27[BSW] = &QQ[BSW *sizeQ];
+            Q.q27[BSE] = &QQ[BSE *sizeQ];
+            Q.q27[BNW] = &QQ[BNW *sizeQ];
             
             builder->getStressQs(Q.q27, i);
             ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -909,33 +909,33 @@ void GridGenerator::allocArrays_BoundaryQs()
             real* QQ = para->getParH(i)->velocityBC.q27[0];
             unsigned int sizeQ = para->getParH(i)->velocityBC.numberOfBCnodes;
             QforBoundaryConditions Q;
-            Q.q27[dirE] = &QQ[dirE   *sizeQ];
-            Q.q27[dirW] = &QQ[dirW   *sizeQ];
-            Q.q27[dirN] = &QQ[dirN   *sizeQ];
-            Q.q27[dirS] = &QQ[dirS   *sizeQ];
-            Q.q27[dirT] = &QQ[dirT   *sizeQ];
-            Q.q27[dirB] = &QQ[dirB   *sizeQ];
-            Q.q27[dirNE] = &QQ[dirNE  *sizeQ];
-            Q.q27[dirSW] = &QQ[dirSW  *sizeQ];
-            Q.q27[dirSE] = &QQ[dirSE  *sizeQ];
-            Q.q27[dirNW] = &QQ[dirNW  *sizeQ];
-            Q.q27[dirTE] = &QQ[dirTE  *sizeQ];
-            Q.q27[dirBW] = &QQ[dirBW  *sizeQ];
-            Q.q27[dirBE] = &QQ[dirBE  *sizeQ];
-            Q.q27[dirTW] = &QQ[dirTW  *sizeQ];
-            Q.q27[dirTN] = &QQ[dirTN  *sizeQ];
-            Q.q27[dirBS] = &QQ[dirBS  *sizeQ];
-            Q.q27[dirBN] = &QQ[dirBN  *sizeQ];
-            Q.q27[dirTS] = &QQ[dirTS  *sizeQ];
+            Q.q27[E] = &QQ[E   *sizeQ];
+            Q.q27[W] = &QQ[W   *sizeQ];
+            Q.q27[N] = &QQ[N   *sizeQ];
+            Q.q27[S] = &QQ[S   *sizeQ];
+            Q.q27[T] = &QQ[T   *sizeQ];
+            Q.q27[B] = &QQ[B   *sizeQ];
+            Q.q27[NE] = &QQ[NE  *sizeQ];
+            Q.q27[SW] = &QQ[SW  *sizeQ];
+            Q.q27[SE] = &QQ[SE  *sizeQ];
+            Q.q27[NW] = &QQ[NW  *sizeQ];
+            Q.q27[TE] = &QQ[TE  *sizeQ];
+            Q.q27[BW] = &QQ[BW  *sizeQ];
+            Q.q27[BE] = &QQ[BE  *sizeQ];
+            Q.q27[TW] = &QQ[TW  *sizeQ];
+            Q.q27[TN] = &QQ[TN  *sizeQ];
+            Q.q27[BS] = &QQ[BS  *sizeQ];
+            Q.q27[BN] = &QQ[BN  *sizeQ];
+            Q.q27[TS] = &QQ[TS  *sizeQ];
             Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-            Q.q27[dirTNE] = &QQ[dirTNE *sizeQ];
-            Q.q27[dirTSW] = &QQ[dirTSW *sizeQ];
-            Q.q27[dirTSE] = &QQ[dirTSE *sizeQ];
-            Q.q27[dirTNW] = &QQ[dirTNW *sizeQ];
-            Q.q27[dirBNE] = &QQ[dirBNE *sizeQ];
-            Q.q27[dirBSW] = &QQ[dirBSW *sizeQ];
-            Q.q27[dirBSE] = &QQ[dirBSE *sizeQ];
-            Q.q27[dirBNW] = &QQ[dirBNW *sizeQ];
+            Q.q27[TNE] = &QQ[TNE *sizeQ];
+            Q.q27[TSW] = &QQ[TSW *sizeQ];
+            Q.q27[TSE] = &QQ[TSE *sizeQ];
+            Q.q27[TNW] = &QQ[TNW *sizeQ];
+            Q.q27[BNE] = &QQ[BNE *sizeQ];
+            Q.q27[BSW] = &QQ[BSW *sizeQ];
+            Q.q27[BSE] = &QQ[BSE *sizeQ];
+            Q.q27[BNW] = &QQ[BNW *sizeQ];
 
             builder->getVelocityQs(Q.q27, i);
 
@@ -992,33 +992,33 @@ void GridGenerator::allocArrays_BoundaryQs()
             real* QQ = para->getParH(i)->geometryBC.q27[0];
             unsigned int sizeQ = para->getParH(i)->geometryBC.numberOfBCnodes;
             QforBoundaryConditions Q;
-            Q.q27[dirE] = &QQ[dirE   *sizeQ];
-            Q.q27[dirW] = &QQ[dirW   *sizeQ];
-            Q.q27[dirN] = &QQ[dirN   *sizeQ];
-            Q.q27[dirS] = &QQ[dirS   *sizeQ];
-            Q.q27[dirT] = &QQ[dirT   *sizeQ];
-            Q.q27[dirB] = &QQ[dirB   *sizeQ];
-            Q.q27[dirNE] = &QQ[dirNE  *sizeQ];
-            Q.q27[dirSW] = &QQ[dirSW  *sizeQ];
-            Q.q27[dirSE] = &QQ[dirSE  *sizeQ];
-            Q.q27[dirNW] = &QQ[dirNW  *sizeQ];
-            Q.q27[dirTE] = &QQ[dirTE  *sizeQ];
-            Q.q27[dirBW] = &QQ[dirBW  *sizeQ];
-            Q.q27[dirBE] = &QQ[dirBE  *sizeQ];
-            Q.q27[dirTW] = &QQ[dirTW  *sizeQ];
-            Q.q27[dirTN] = &QQ[dirTN  *sizeQ];
-            Q.q27[dirBS] = &QQ[dirBS  *sizeQ];
-            Q.q27[dirBN] = &QQ[dirBN  *sizeQ];
-            Q.q27[dirTS] = &QQ[dirTS  *sizeQ];
+            Q.q27[E] = &QQ[E   *sizeQ];
+            Q.q27[W] = &QQ[W   *sizeQ];
+            Q.q27[N] = &QQ[N   *sizeQ];
+            Q.q27[S] = &QQ[S   *sizeQ];
+            Q.q27[T] = &QQ[T   *sizeQ];
+            Q.q27[B] = &QQ[B   *sizeQ];
+            Q.q27[NE] = &QQ[NE  *sizeQ];
+            Q.q27[SW] = &QQ[SW  *sizeQ];
+            Q.q27[SE] = &QQ[SE  *sizeQ];
+            Q.q27[NW] = &QQ[NW  *sizeQ];
+            Q.q27[TE] = &QQ[TE  *sizeQ];
+            Q.q27[BW] = &QQ[BW  *sizeQ];
+            Q.q27[BE] = &QQ[BE  *sizeQ];
+            Q.q27[TW] = &QQ[TW  *sizeQ];
+            Q.q27[TN] = &QQ[TN  *sizeQ];
+            Q.q27[BS] = &QQ[BS  *sizeQ];
+            Q.q27[BN] = &QQ[BN  *sizeQ];
+            Q.q27[TS] = &QQ[TS  *sizeQ];
             Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-            Q.q27[dirTNE] = &QQ[dirTNE *sizeQ];
-            Q.q27[dirTSW] = &QQ[dirTSW *sizeQ];
-            Q.q27[dirTSE] = &QQ[dirTSE *sizeQ];
-            Q.q27[dirTNW] = &QQ[dirTNW *sizeQ];
-            Q.q27[dirBNE] = &QQ[dirBNE *sizeQ];
-            Q.q27[dirBSW] = &QQ[dirBSW *sizeQ];
-            Q.q27[dirBSE] = &QQ[dirBSE *sizeQ];
-            Q.q27[dirBNW] = &QQ[dirBNW *sizeQ];
+            Q.q27[TNE] = &QQ[TNE *sizeQ];
+            Q.q27[TSW] = &QQ[TSW *sizeQ];
+            Q.q27[TSE] = &QQ[TSE *sizeQ];
+            Q.q27[TNW] = &QQ[TNW *sizeQ];
+            Q.q27[BNE] = &QQ[BNE *sizeQ];
+            Q.q27[BSW] = &QQ[BSW *sizeQ];
+            Q.q27[BSE] = &QQ[BSE *sizeQ];
+            Q.q27[BNW] = &QQ[BNW *sizeQ];
             //////////////////////////////////////////////////////////////////
 
             builder->getGeometryQs(Q.q27, i);
diff --git a/src/gpu/VirtualFluids_GPU/FindQ/FindQ.cpp b/src/gpu/VirtualFluids_GPU/FindQ/FindQ.cpp
index 4a7522912..4138035c1 100644
--- a/src/gpu/VirtualFluids_GPU/FindQ/FindQ.cpp
+++ b/src/gpu/VirtualFluids_GPU/FindQ/FindQ.cpp
@@ -39,33 +39,33 @@ void findQ(Parameter* para, int lev)
    //real        radius  = nny / 5.f;//2.56f;
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    QforBoundaryConditions Q;
-   Q.q27[dirE   ] = &QQ[dirE   *sizeQ];
-   Q.q27[dirW   ] = &QQ[dirW   *sizeQ];
-   Q.q27[dirN   ] = &QQ[dirN   *sizeQ];
-   Q.q27[dirS   ] = &QQ[dirS   *sizeQ];
-   Q.q27[dirT   ] = &QQ[dirT   *sizeQ];
-   Q.q27[dirB   ] = &QQ[dirB   *sizeQ];
-   Q.q27[dirNE  ] = &QQ[dirNE  *sizeQ];
-   Q.q27[dirSW  ] = &QQ[dirSW  *sizeQ];
-   Q.q27[dirSE  ] = &QQ[dirSE  *sizeQ];
-   Q.q27[dirNW  ] = &QQ[dirNW  *sizeQ];
-   Q.q27[dirTE  ] = &QQ[dirTE  *sizeQ];
-   Q.q27[dirBW  ] = &QQ[dirBW  *sizeQ];
-   Q.q27[dirBE  ] = &QQ[dirBE  *sizeQ];
-   Q.q27[dirTW  ] = &QQ[dirTW  *sizeQ];
-   Q.q27[dirTN  ] = &QQ[dirTN  *sizeQ];
-   Q.q27[dirBS  ] = &QQ[dirBS  *sizeQ];
-   Q.q27[dirBN  ] = &QQ[dirBN  *sizeQ];
-   Q.q27[dirTS  ] = &QQ[dirTS  *sizeQ];
+   Q.q27[E   ] = &QQ[E   *sizeQ];
+   Q.q27[W   ] = &QQ[W   *sizeQ];
+   Q.q27[N   ] = &QQ[N   *sizeQ];
+   Q.q27[S   ] = &QQ[S   *sizeQ];
+   Q.q27[T   ] = &QQ[T   *sizeQ];
+   Q.q27[B   ] = &QQ[B   *sizeQ];
+   Q.q27[NE  ] = &QQ[NE  *sizeQ];
+   Q.q27[SW  ] = &QQ[SW  *sizeQ];
+   Q.q27[SE  ] = &QQ[SE  *sizeQ];
+   Q.q27[NW  ] = &QQ[NW  *sizeQ];
+   Q.q27[TE  ] = &QQ[TE  *sizeQ];
+   Q.q27[BW  ] = &QQ[BW  *sizeQ];
+   Q.q27[BE  ] = &QQ[BE  *sizeQ];
+   Q.q27[TW  ] = &QQ[TW  *sizeQ];
+   Q.q27[TN  ] = &QQ[TN  *sizeQ];
+   Q.q27[BS  ] = &QQ[BS  *sizeQ];
+   Q.q27[BN  ] = &QQ[BN  *sizeQ];
+   Q.q27[TS  ] = &QQ[TS  *sizeQ];
    Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-   Q.q27[dirTNE ] = &QQ[dirTNE *sizeQ];
-   Q.q27[dirTSW ] = &QQ[dirTSW *sizeQ];
-   Q.q27[dirTSE ] = &QQ[dirTSE *sizeQ];
-   Q.q27[dirTNW ] = &QQ[dirTNW *sizeQ];
-   Q.q27[dirBNE ] = &QQ[dirBNE *sizeQ];
-   Q.q27[dirBSW ] = &QQ[dirBSW *sizeQ];
-   Q.q27[dirBSE ] = &QQ[dirBSE *sizeQ];
-   Q.q27[dirBNW ] = &QQ[dirBNW *sizeQ];
+   Q.q27[TNE ] = &QQ[TNE *sizeQ];
+   Q.q27[TSW ] = &QQ[TSW *sizeQ];
+   Q.q27[TSE ] = &QQ[TSE *sizeQ];
+   Q.q27[TNW ] = &QQ[TNW *sizeQ];
+   Q.q27[BNE ] = &QQ[BNE *sizeQ];
+   Q.q27[BSW ] = &QQ[BSW *sizeQ];
+   Q.q27[BSE ] = &QQ[BSE *sizeQ];
+   Q.q27[BNW ] = &QQ[BNW *sizeQ];
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    for(k=STARTOFFZ + 1 ; k<=nnz+STARTOFFZ-2 ; k++){
       for(j=STARTOFFY + 1 ; j<=nny+STARTOFFY-2 ; j++){          //j<=nny/2+STARTOFFY     //j<=STARTOFFY+1
@@ -95,89 +95,89 @@ void findQ(Parameter* para, int lev)
                {
                   QIN.k[QIN.numberOfBCnodes]          = kk[m];
 
-                  //Q.q27[dirE   ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirW   ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirN   ][QIN.numberOfBCnodes] = 0.f;
-                  //Q.q27[dirS   ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirT   ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirB   ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirNE  ][QIN.numberOfBCnodes] = 0.f;
-                  //Q.q27[dirSW  ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirSE  ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirNW  ][QIN.numberOfBCnodes] = 0.f;
-                  //Q.q27[dirTE  ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirBW  ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirBE  ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirTW  ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirTN  ][QIN.numberOfBCnodes] = 0.f;
-                  //Q.q27[dirBS  ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirBN  ][QIN.numberOfBCnodes] = 0.f;
-                  //Q.q27[dirTS  ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[E   ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[W   ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[N   ][QIN.numberOfBCnodes] = 0.f;
+                  //Q.q27[S   ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[T   ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[B   ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[NE  ][QIN.numberOfBCnodes] = 0.f;
+                  //Q.q27[SW  ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[SE  ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[NW  ][QIN.numberOfBCnodes] = 0.f;
+                  //Q.q27[TE  ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[BW  ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[BE  ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[TW  ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[TN  ][QIN.numberOfBCnodes] = 0.f;
+                  //Q.q27[BS  ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[BN  ][QIN.numberOfBCnodes] = 0.f;
+                  //Q.q27[TS  ][QIN.numberOfBCnodes] = -1.f;
                   //Q.q27[dirREST][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirTNE ][QIN.numberOfBCnodes] = 0.f;
-                  //Q.q27[dirTSW ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirTSE ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirTNW ][QIN.numberOfBCnodes] = 0.f;
-                  //Q.q27[dirBNE ][QIN.numberOfBCnodes] = 0.f;
-                  //Q.q27[dirBSW ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirBSE ][QIN.numberOfBCnodes] = -1.f;
-                  //Q.q27[dirBNW ][QIN.numberOfBCnodes] = 0.f;
-
-                  //Q.q27[dirE   ][QIN.numberOfBCnodes] = ON[dirW   ];
-                  //Q.q27[dirW   ][QIN.numberOfBCnodes] = ON[dirE   ];
-                  //Q.q27[dirN   ][QIN.numberOfBCnodes] = ON[dirS   ];
-                  //Q.q27[dirS   ][QIN.numberOfBCnodes] = ON[dirN   ];
-                  //Q.q27[dirT   ][QIN.numberOfBCnodes] = ON[dirB   ];
-                  //Q.q27[dirB   ][QIN.numberOfBCnodes] = ON[dirT   ];
-                  //Q.q27[dirNE  ][QIN.numberOfBCnodes] = ON[dirSW  ];
-                  //Q.q27[dirSW  ][QIN.numberOfBCnodes] = ON[dirNE  ];
-                  //Q.q27[dirSE  ][QIN.numberOfBCnodes] = ON[dirNW  ];
-                  //Q.q27[dirNW  ][QIN.numberOfBCnodes] = ON[dirSE  ];
-                  //Q.q27[dirTE  ][QIN.numberOfBCnodes] = ON[dirBW  ];
-                  //Q.q27[dirBW  ][QIN.numberOfBCnodes] = ON[dirTE  ];
-                  //Q.q27[dirBE  ][QIN.numberOfBCnodes] = ON[dirTW  ];
-                  //Q.q27[dirTW  ][QIN.numberOfBCnodes] = ON[dirBE  ];
-                  //Q.q27[dirTN  ][QIN.numberOfBCnodes] = ON[dirBS  ];
-                  //Q.q27[dirBS  ][QIN.numberOfBCnodes] = ON[dirTN  ];
-                  //Q.q27[dirBN  ][QIN.numberOfBCnodes] = ON[dirTS  ];
-                  //Q.q27[dirTS  ][QIN.numberOfBCnodes] = ON[dirBN  ];
+                  //Q.q27[TNE ][QIN.numberOfBCnodes] = 0.f;
+                  //Q.q27[TSW ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[TSE ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[TNW ][QIN.numberOfBCnodes] = 0.f;
+                  //Q.q27[BNE ][QIN.numberOfBCnodes] = 0.f;
+                  //Q.q27[BSW ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[BSE ][QIN.numberOfBCnodes] = -1.f;
+                  //Q.q27[BNW ][QIN.numberOfBCnodes] = 0.f;
+
+                  //Q.q27[E   ][QIN.numberOfBCnodes] = ON[W   ];
+                  //Q.q27[W   ][QIN.numberOfBCnodes] = ON[E   ];
+                  //Q.q27[N   ][QIN.numberOfBCnodes] = ON[S   ];
+                  //Q.q27[S   ][QIN.numberOfBCnodes] = ON[N   ];
+                  //Q.q27[T   ][QIN.numberOfBCnodes] = ON[B   ];
+                  //Q.q27[B   ][QIN.numberOfBCnodes] = ON[T   ];
+                  //Q.q27[NE  ][QIN.numberOfBCnodes] = ON[SW  ];
+                  //Q.q27[SW  ][QIN.numberOfBCnodes] = ON[NE  ];
+                  //Q.q27[SE  ][QIN.numberOfBCnodes] = ON[NW  ];
+                  //Q.q27[NW  ][QIN.numberOfBCnodes] = ON[SE  ];
+                  //Q.q27[TE  ][QIN.numberOfBCnodes] = ON[BW  ];
+                  //Q.q27[BW  ][QIN.numberOfBCnodes] = ON[TE  ];
+                  //Q.q27[BE  ][QIN.numberOfBCnodes] = ON[TW  ];
+                  //Q.q27[TW  ][QIN.numberOfBCnodes] = ON[BE  ];
+                  //Q.q27[TN  ][QIN.numberOfBCnodes] = ON[BS  ];
+                  //Q.q27[BS  ][QIN.numberOfBCnodes] = ON[TN  ];
+                  //Q.q27[BN  ][QIN.numberOfBCnodes] = ON[TS  ];
+                  //Q.q27[TS  ][QIN.numberOfBCnodes] = ON[BN  ];
                   //Q.q27[dirREST][QIN.numberOfBCnodes] = ON[dirREST];
-                  //Q.q27[dirTNE ][QIN.numberOfBCnodes] = ON[dirBSW ];
-                  //Q.q27[dirTSW ][QIN.numberOfBCnodes] = ON[dirBNE ];
-                  //Q.q27[dirTSE ][QIN.numberOfBCnodes] = ON[dirBNW ];
-                  //Q.q27[dirTNW ][QIN.numberOfBCnodes] = ON[dirBSE ];
-                  //Q.q27[dirBNE ][QIN.numberOfBCnodes] = ON[dirTSW ];
-                  //Q.q27[dirBSW ][QIN.numberOfBCnodes] = ON[dirTNE ];
-                  //Q.q27[dirBSE ][QIN.numberOfBCnodes] = ON[dirTNW ];
-                  //Q.q27[dirBNW ][QIN.numberOfBCnodes] = ON[dirTSE ];
-
-                  Q.q27[dirE   ][QIN.numberOfBCnodes] = ON[dirE   ];
-                  Q.q27[dirW   ][QIN.numberOfBCnodes] = ON[dirW   ];
-                  Q.q27[dirN   ][QIN.numberOfBCnodes] = ON[dirN   ];
-                  Q.q27[dirS   ][QIN.numberOfBCnodes] = ON[dirS   ];
-                  Q.q27[dirT   ][QIN.numberOfBCnodes] = ON[dirT   ];
-                  Q.q27[dirB   ][QIN.numberOfBCnodes] = ON[dirB   ];
-                  Q.q27[dirNE  ][QIN.numberOfBCnodes] = ON[dirNE  ];
-                  Q.q27[dirSW  ][QIN.numberOfBCnodes] = ON[dirSW  ];
-                  Q.q27[dirSE  ][QIN.numberOfBCnodes] = ON[dirSE  ];
-                  Q.q27[dirNW  ][QIN.numberOfBCnodes] = ON[dirNW  ];
-                  Q.q27[dirTE  ][QIN.numberOfBCnodes] = ON[dirTE  ];
-                  Q.q27[dirBW  ][QIN.numberOfBCnodes] = ON[dirBW  ];
-                  Q.q27[dirBE  ][QIN.numberOfBCnodes] = ON[dirBE  ];
-                  Q.q27[dirTW  ][QIN.numberOfBCnodes] = ON[dirTW  ];
-                  Q.q27[dirTN  ][QIN.numberOfBCnodes] = ON[dirTN  ];
-                  Q.q27[dirBS  ][QIN.numberOfBCnodes] = ON[dirBS  ];
-                  Q.q27[dirBN  ][QIN.numberOfBCnodes] = ON[dirBN  ];
-                  Q.q27[dirTS  ][QIN.numberOfBCnodes] = ON[dirTS  ];
+                  //Q.q27[TNE ][QIN.numberOfBCnodes] = ON[BSW ];
+                  //Q.q27[TSW ][QIN.numberOfBCnodes] = ON[BNE ];
+                  //Q.q27[TSE ][QIN.numberOfBCnodes] = ON[BNW ];
+                  //Q.q27[TNW ][QIN.numberOfBCnodes] = ON[BSE ];
+                  //Q.q27[BNE ][QIN.numberOfBCnodes] = ON[TSW ];
+                  //Q.q27[BSW ][QIN.numberOfBCnodes] = ON[TNE ];
+                  //Q.q27[BSE ][QIN.numberOfBCnodes] = ON[TNW ];
+                  //Q.q27[BNW ][QIN.numberOfBCnodes] = ON[TSE ];
+
+                  Q.q27[E   ][QIN.numberOfBCnodes] = ON[E   ];
+                  Q.q27[W   ][QIN.numberOfBCnodes] = ON[W   ];
+                  Q.q27[N   ][QIN.numberOfBCnodes] = ON[N   ];
+                  Q.q27[S   ][QIN.numberOfBCnodes] = ON[S   ];
+                  Q.q27[T   ][QIN.numberOfBCnodes] = ON[T   ];
+                  Q.q27[B   ][QIN.numberOfBCnodes] = ON[B   ];
+                  Q.q27[NE  ][QIN.numberOfBCnodes] = ON[NE  ];
+                  Q.q27[SW  ][QIN.numberOfBCnodes] = ON[SW  ];
+                  Q.q27[SE  ][QIN.numberOfBCnodes] = ON[SE  ];
+                  Q.q27[NW  ][QIN.numberOfBCnodes] = ON[NW  ];
+                  Q.q27[TE  ][QIN.numberOfBCnodes] = ON[TE  ];
+                  Q.q27[BW  ][QIN.numberOfBCnodes] = ON[BW  ];
+                  Q.q27[BE  ][QIN.numberOfBCnodes] = ON[BE  ];
+                  Q.q27[TW  ][QIN.numberOfBCnodes] = ON[TW  ];
+                  Q.q27[TN  ][QIN.numberOfBCnodes] = ON[TN  ];
+                  Q.q27[BS  ][QIN.numberOfBCnodes] = ON[BS  ];
+                  Q.q27[BN  ][QIN.numberOfBCnodes] = ON[BN  ];
+                  Q.q27[TS  ][QIN.numberOfBCnodes] = ON[TS  ];
                   Q.q27[dirREST][QIN.numberOfBCnodes] = ON[dirREST];
-                  Q.q27[dirTNE ][QIN.numberOfBCnodes] = ON[dirTNE ];
-                  Q.q27[dirTSW ][QIN.numberOfBCnodes] = ON[dirTSW ];
-                  Q.q27[dirTSE ][QIN.numberOfBCnodes] = ON[dirTSE ];
-                  Q.q27[dirTNW ][QIN.numberOfBCnodes] = ON[dirTNW ];
-                  Q.q27[dirBNE ][QIN.numberOfBCnodes] = ON[dirBNE ];
-                  Q.q27[dirBSW ][QIN.numberOfBCnodes] = ON[dirBSW ];
-                  Q.q27[dirBSE ][QIN.numberOfBCnodes] = ON[dirBSE ];
-                  Q.q27[dirBNW ][QIN.numberOfBCnodes] = ON[dirBNW ];
+                  Q.q27[TNE ][QIN.numberOfBCnodes] = ON[TNE ];
+                  Q.q27[TSW ][QIN.numberOfBCnodes] = ON[TSW ];
+                  Q.q27[TSE ][QIN.numberOfBCnodes] = ON[TSE ];
+                  Q.q27[TNW ][QIN.numberOfBCnodes] = ON[TNW ];
+                  Q.q27[BNE ][QIN.numberOfBCnodes] = ON[BNE ];
+                  Q.q27[BSW ][QIN.numberOfBCnodes] = ON[BSW ];
+                  Q.q27[BSE ][QIN.numberOfBCnodes] = ON[BSE ];
+                  Q.q27[BNW ][QIN.numberOfBCnodes] = ON[BNW ];
 
                   QIN.numberOfBCnodes++;
                }
@@ -245,33 +245,33 @@ void findKforQ(Parameter* para, int lev)
 void findQ_MG( int nx, int ny, unsigned int nnx, unsigned int nny, unsigned int nnz, int* geo_mat, unsigned int* kk, unsigned int sizeQ, real* QQ, QforBoundaryConditions &QIN)
 {
    QforBoundaryConditions Q;
-   Q.q27[dirE   ] = &QQ[dirE   *sizeQ];
-   Q.q27[dirW   ] = &QQ[dirW   *sizeQ];
-   Q.q27[dirN   ] = &QQ[dirN   *sizeQ];
-   Q.q27[dirS   ] = &QQ[dirS   *sizeQ];
-   Q.q27[dirT   ] = &QQ[dirT   *sizeQ];
-   Q.q27[dirB   ] = &QQ[dirB   *sizeQ];
-   Q.q27[dirNE  ] = &QQ[dirNE  *sizeQ];
-   Q.q27[dirSW  ] = &QQ[dirSW  *sizeQ];
-   Q.q27[dirSE  ] = &QQ[dirSE  *sizeQ];
-   Q.q27[dirNW  ] = &QQ[dirNW  *sizeQ];
-   Q.q27[dirTE  ] = &QQ[dirTE  *sizeQ];
-   Q.q27[dirBW  ] = &QQ[dirBW  *sizeQ];
-   Q.q27[dirBE  ] = &QQ[dirBE  *sizeQ];
-   Q.q27[dirTW  ] = &QQ[dirTW  *sizeQ];
-   Q.q27[dirTN  ] = &QQ[dirTN  *sizeQ];
-   Q.q27[dirBS  ] = &QQ[dirBS  *sizeQ];
-   Q.q27[dirBN  ] = &QQ[dirBN  *sizeQ];
-   Q.q27[dirTS  ] = &QQ[dirTS  *sizeQ];
+   Q.q27[E   ] = &QQ[E   *sizeQ];
+   Q.q27[W   ] = &QQ[W   *sizeQ];
+   Q.q27[N   ] = &QQ[N   *sizeQ];
+   Q.q27[S   ] = &QQ[S   *sizeQ];
+   Q.q27[T   ] = &QQ[T   *sizeQ];
+   Q.q27[B   ] = &QQ[B   *sizeQ];
+   Q.q27[NE  ] = &QQ[NE  *sizeQ];
+   Q.q27[SW  ] = &QQ[SW  *sizeQ];
+   Q.q27[SE  ] = &QQ[SE  *sizeQ];
+   Q.q27[NW  ] = &QQ[NW  *sizeQ];
+   Q.q27[TE  ] = &QQ[TE  *sizeQ];
+   Q.q27[BW  ] = &QQ[BW  *sizeQ];
+   Q.q27[BE  ] = &QQ[BE  *sizeQ];
+   Q.q27[TW  ] = &QQ[TW  *sizeQ];
+   Q.q27[TN  ] = &QQ[TN  *sizeQ];
+   Q.q27[BS  ] = &QQ[BS  *sizeQ];
+   Q.q27[BN  ] = &QQ[BN  *sizeQ];
+   Q.q27[TS  ] = &QQ[TS  *sizeQ];
    Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-   Q.q27[dirTNE ] = &QQ[dirTNE *sizeQ];
-   Q.q27[dirTSW ] = &QQ[dirTSW *sizeQ];
-   Q.q27[dirTSE ] = &QQ[dirTSE *sizeQ];
-   Q.q27[dirTNW ] = &QQ[dirTNW *sizeQ];
-   Q.q27[dirBNE ] = &QQ[dirBNE *sizeQ];
-   Q.q27[dirBSW ] = &QQ[dirBSW *sizeQ];
-   Q.q27[dirBSE ] = &QQ[dirBSE *sizeQ];
-   Q.q27[dirBNW ] = &QQ[dirBNW *sizeQ];
+   Q.q27[TNE ] = &QQ[TNE *sizeQ];
+   Q.q27[TSW ] = &QQ[TSW *sizeQ];
+   Q.q27[TSE ] = &QQ[TSE *sizeQ];
+   Q.q27[TNW ] = &QQ[TNW *sizeQ];
+   Q.q27[BNE ] = &QQ[BNE *sizeQ];
+   Q.q27[BSW ] = &QQ[BSW *sizeQ];
+   Q.q27[BSE ] = &QQ[BSE *sizeQ];
+   Q.q27[BNW ] = &QQ[BNW *sizeQ];
 
    // ! CAUTION ! Do not use this function!
    // As the order of the distributions was changed in July 2022, this does not work anymore.
@@ -325,33 +325,33 @@ void findQ_MG( int nx, int ny, unsigned int nnx, unsigned int nny, unsigned int
                {
                   QIN.k[QIN.numberOfBCnodes]          = kk[m];
 
-                  Q.q27[dirE   ][QIN.numberOfBCnodes] = ON[dirE   ];
-                  Q.q27[dirW   ][QIN.numberOfBCnodes] = ON[dirW   ];
-                  Q.q27[dirN   ][QIN.numberOfBCnodes] = ON[dirN   ];
-                  Q.q27[dirS   ][QIN.numberOfBCnodes] = ON[dirS   ];
-                  Q.q27[dirT   ][QIN.numberOfBCnodes] = ON[dirT   ];
-                  Q.q27[dirB   ][QIN.numberOfBCnodes] = ON[dirB   ];
-                  Q.q27[dirNE  ][QIN.numberOfBCnodes] = ON[dirNE  ];
-                  Q.q27[dirSW  ][QIN.numberOfBCnodes] = ON[dirSW  ];
-                  Q.q27[dirSE  ][QIN.numberOfBCnodes] = ON[dirSE  ];
-                  Q.q27[dirNW  ][QIN.numberOfBCnodes] = ON[dirNW  ];
-                  Q.q27[dirTE  ][QIN.numberOfBCnodes] = ON[dirTE  ];
-                  Q.q27[dirBW  ][QIN.numberOfBCnodes] = ON[dirBW  ];
-                  Q.q27[dirBE  ][QIN.numberOfBCnodes] = ON[dirBE  ];
-                  Q.q27[dirTW  ][QIN.numberOfBCnodes] = ON[dirTW  ];
-                  Q.q27[dirTN  ][QIN.numberOfBCnodes] = ON[dirTN  ];
-                  Q.q27[dirBS  ][QIN.numberOfBCnodes] = ON[dirBS  ];
-                  Q.q27[dirBN  ][QIN.numberOfBCnodes] = ON[dirBN  ];
-                  Q.q27[dirTS  ][QIN.numberOfBCnodes] = ON[dirTS  ];
+                  Q.q27[E   ][QIN.numberOfBCnodes] = ON[E   ];
+                  Q.q27[W   ][QIN.numberOfBCnodes] = ON[W   ];
+                  Q.q27[N   ][QIN.numberOfBCnodes] = ON[N   ];
+                  Q.q27[S   ][QIN.numberOfBCnodes] = ON[S   ];
+                  Q.q27[T   ][QIN.numberOfBCnodes] = ON[T   ];
+                  Q.q27[B   ][QIN.numberOfBCnodes] = ON[B   ];
+                  Q.q27[NE  ][QIN.numberOfBCnodes] = ON[NE  ];
+                  Q.q27[SW  ][QIN.numberOfBCnodes] = ON[SW  ];
+                  Q.q27[SE  ][QIN.numberOfBCnodes] = ON[SE  ];
+                  Q.q27[NW  ][QIN.numberOfBCnodes] = ON[NW  ];
+                  Q.q27[TE  ][QIN.numberOfBCnodes] = ON[TE  ];
+                  Q.q27[BW  ][QIN.numberOfBCnodes] = ON[BW  ];
+                  Q.q27[BE  ][QIN.numberOfBCnodes] = ON[BE  ];
+                  Q.q27[TW  ][QIN.numberOfBCnodes] = ON[TW  ];
+                  Q.q27[TN  ][QIN.numberOfBCnodes] = ON[TN  ];
+                  Q.q27[BS  ][QIN.numberOfBCnodes] = ON[BS  ];
+                  Q.q27[BN  ][QIN.numberOfBCnodes] = ON[BN  ];
+                  Q.q27[TS  ][QIN.numberOfBCnodes] = ON[TS  ];
                   Q.q27[dirREST][QIN.numberOfBCnodes] = ON[dirREST];
-                  Q.q27[dirTNE ][QIN.numberOfBCnodes] = ON[dirTNE ];
-                  Q.q27[dirTSW ][QIN.numberOfBCnodes] = ON[dirTSW ];
-                  Q.q27[dirTSE ][QIN.numberOfBCnodes] = ON[dirTSE ];
-                  Q.q27[dirTNW ][QIN.numberOfBCnodes] = ON[dirTNW ];
-                  Q.q27[dirBNE ][QIN.numberOfBCnodes] = ON[dirBNE ];
-                  Q.q27[dirBSW ][QIN.numberOfBCnodes] = ON[dirBSW ];
-                  Q.q27[dirBSE ][QIN.numberOfBCnodes] = ON[dirBSE ];
-                  Q.q27[dirBNW ][QIN.numberOfBCnodes] = ON[dirBNW ];
+                  Q.q27[TNE ][QIN.numberOfBCnodes] = ON[TNE ];
+                  Q.q27[TSW ][QIN.numberOfBCnodes] = ON[TSW ];
+                  Q.q27[TSE ][QIN.numberOfBCnodes] = ON[TSE ];
+                  Q.q27[TNW ][QIN.numberOfBCnodes] = ON[TNW ];
+                  Q.q27[BNE ][QIN.numberOfBCnodes] = ON[BNE ];
+                  Q.q27[BSW ][QIN.numberOfBCnodes] = ON[BSW ];
+                  Q.q27[BSE ][QIN.numberOfBCnodes] = ON[BSE ];
+                  Q.q27[BNW ][QIN.numberOfBCnodes] = ON[BNW ];
 
                   QIN.numberOfBCnodes++;
                }
@@ -446,33 +446,33 @@ void findQInflow(Parameter* para)
    QIN.numberOfBCnodes = 0;
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    QforBoundaryConditions Q;
-   Q.q27[dirE   ] = &QQ[dirE   *sizeQ];
-   Q.q27[dirW   ] = &QQ[dirW   *sizeQ];
-   Q.q27[dirN   ] = &QQ[dirN   *sizeQ];
-   Q.q27[dirS   ] = &QQ[dirS   *sizeQ];
-   Q.q27[dirT   ] = &QQ[dirT   *sizeQ];
-   Q.q27[dirB   ] = &QQ[dirB   *sizeQ];
-   Q.q27[dirNE  ] = &QQ[dirNE  *sizeQ];
-   Q.q27[dirSW  ] = &QQ[dirSW  *sizeQ];
-   Q.q27[dirSE  ] = &QQ[dirSE  *sizeQ];
-   Q.q27[dirNW  ] = &QQ[dirNW  *sizeQ];
-   Q.q27[dirTE  ] = &QQ[dirTE  *sizeQ];
-   Q.q27[dirBW  ] = &QQ[dirBW  *sizeQ];
-   Q.q27[dirBE  ] = &QQ[dirBE  *sizeQ];
-   Q.q27[dirTW  ] = &QQ[dirTW  *sizeQ];
-   Q.q27[dirTN  ] = &QQ[dirTN  *sizeQ];
-   Q.q27[dirBS  ] = &QQ[dirBS  *sizeQ];
-   Q.q27[dirBN  ] = &QQ[dirBN  *sizeQ];
-   Q.q27[dirTS  ] = &QQ[dirTS  *sizeQ];
+   Q.q27[E   ] = &QQ[E   *sizeQ];
+   Q.q27[W   ] = &QQ[W   *sizeQ];
+   Q.q27[N   ] = &QQ[N   *sizeQ];
+   Q.q27[S   ] = &QQ[S   *sizeQ];
+   Q.q27[T   ] = &QQ[T   *sizeQ];
+   Q.q27[B   ] = &QQ[B   *sizeQ];
+   Q.q27[NE  ] = &QQ[NE  *sizeQ];
+   Q.q27[SW  ] = &QQ[SW  *sizeQ];
+   Q.q27[SE  ] = &QQ[SE  *sizeQ];
+   Q.q27[NW  ] = &QQ[NW  *sizeQ];
+   Q.q27[TE  ] = &QQ[TE  *sizeQ];
+   Q.q27[BW  ] = &QQ[BW  *sizeQ];
+   Q.q27[BE  ] = &QQ[BE  *sizeQ];
+   Q.q27[TW  ] = &QQ[TW  *sizeQ];
+   Q.q27[TN  ] = &QQ[TN  *sizeQ];
+   Q.q27[BS  ] = &QQ[BS  *sizeQ];
+   Q.q27[BN  ] = &QQ[BN  *sizeQ];
+   Q.q27[TS  ] = &QQ[TS  *sizeQ];
    Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-   Q.q27[dirTNE ] = &QQ[dirTNE *sizeQ];
-   Q.q27[dirTSW ] = &QQ[dirTSW *sizeQ];
-   Q.q27[dirTSE ] = &QQ[dirTSE *sizeQ];
-   Q.q27[dirTNW ] = &QQ[dirTNW *sizeQ];
-   Q.q27[dirBNE ] = &QQ[dirBNE *sizeQ];
-   Q.q27[dirBSW ] = &QQ[dirBSW *sizeQ];
-   Q.q27[dirBSE ] = &QQ[dirBSE *sizeQ];
-   Q.q27[dirBNW ] = &QQ[dirBNW *sizeQ];
+   Q.q27[TNE ] = &QQ[TNE *sizeQ];
+   Q.q27[TSW ] = &QQ[TSW *sizeQ];
+   Q.q27[TSE ] = &QQ[TSE *sizeQ];
+   Q.q27[TNW ] = &QQ[TNW *sizeQ];
+   Q.q27[BNE ] = &QQ[BNE *sizeQ];
+   Q.q27[BSW ] = &QQ[BSW *sizeQ];
+   Q.q27[BSE ] = &QQ[BSE *sizeQ];
+   Q.q27[BNW ] = &QQ[BNW *sizeQ];
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //unsigned int li = ((nnx+STARTOFFX-2)-(STARTOFFX+1)-1);
    //unsigned int lj = ((nny+STARTOFFY-2)-(STARTOFFY+1)-1);
@@ -495,33 +495,33 @@ void findQInflow(Parameter* para)
                //vz[QIN.numberOfBCnodes]             = (real)(16.f*(u0*2.f)*i*j*(nx-i)*(ny-j))/(nx*nx*ny*ny);
                deltaVz[QIN.numberOfBCnodes]        = (real)0.f;
 			   //////////////////////////////////////////////////////////////////////////
-               //Q.q27[dirE   ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirW   ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirN   ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirS   ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirT   ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirB   ][QIN.numberOfBCnodes] = (real)1.f;
-               //Q.q27[dirNE  ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirSW  ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirSE  ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirNW  ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirTE  ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirBW  ][QIN.numberOfBCnodes] = (real)1.f;
-               //Q.q27[dirBE  ][QIN.numberOfBCnodes] = (real)1.f;
-               //Q.q27[dirTW  ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirTN  ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirBS  ][QIN.numberOfBCnodes] = (real)1.f;
-               //Q.q27[dirBN  ][QIN.numberOfBCnodes] = (real)1.f;
-               //Q.q27[dirTS  ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[E   ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[W   ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[N   ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[S   ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[T   ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[B   ][QIN.numberOfBCnodes] = (real)1.f;
+               //Q.q27[NE  ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[SW  ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[SE  ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[NW  ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[TE  ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[BW  ][QIN.numberOfBCnodes] = (real)1.f;
+               //Q.q27[BE  ][QIN.numberOfBCnodes] = (real)1.f;
+               //Q.q27[TW  ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[TN  ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[BS  ][QIN.numberOfBCnodes] = (real)1.f;
+               //Q.q27[BN  ][QIN.numberOfBCnodes] = (real)1.f;
+               //Q.q27[TS  ][QIN.numberOfBCnodes] = (real)-1.f;
                //Q.q27[dirREST][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirTNE ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirTSW ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirTSE ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirTNW ][QIN.numberOfBCnodes] = (real)-1.f;
-               //Q.q27[dirBNE ][QIN.numberOfBCnodes] = (real)1.f;
-               //Q.q27[dirBSW ][QIN.numberOfBCnodes] = (real)1.f;
-               //Q.q27[dirBSE ][QIN.numberOfBCnodes] = (real)1.f;
-               //Q.q27[dirBNW ][QIN.numberOfBCnodes] = (real)1.f;
+               //Q.q27[TNE ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[TSW ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[TSE ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[TNW ][QIN.numberOfBCnodes] = (real)-1.f;
+               //Q.q27[BNE ][QIN.numberOfBCnodes] = (real)1.f;
+               //Q.q27[BSW ][QIN.numberOfBCnodes] = (real)1.f;
+               //Q.q27[BSE ][QIN.numberOfBCnodes] = (real)1.f;
+               //Q.q27[BNW ][QIN.numberOfBCnodes] = (real)1.f;
 			   //////////////////////////////////////////////////////////////////////////
 
 
@@ -529,33 +529,33 @@ void findQInflow(Parameter* para)
    // As the order of the distributions was changed in July 2022, this does not work anymore.
    // https://git.rz.tu-bs.de/irmb/VirtualFluids_dev/-/issues/14
 
-			   Q.q27[dirE   ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirW   ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirN   ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirS   ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirT   ][QIN.numberOfBCnodes] = (real)1.f;
-			   Q.q27[dirB   ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirNE  ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirSW  ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirSE  ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirNW  ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirTE  ][QIN.numberOfBCnodes] = (real)1.f;
-			   Q.q27[dirBW  ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirBE  ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirTW  ][QIN.numberOfBCnodes] = (real)1.f;
-			   Q.q27[dirTN  ][QIN.numberOfBCnodes] = (real)1.f;
-			   Q.q27[dirBS  ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirBN  ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirTS  ][QIN.numberOfBCnodes] = (real)1.f;
+			   Q.q27[E   ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[W   ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[N   ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[S   ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[T   ][QIN.numberOfBCnodes] = (real)1.f;
+			   Q.q27[B   ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[NE  ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[SW  ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[SE  ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[NW  ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[TE  ][QIN.numberOfBCnodes] = (real)1.f;
+			   Q.q27[BW  ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[BE  ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[TW  ][QIN.numberOfBCnodes] = (real)1.f;
+			   Q.q27[TN  ][QIN.numberOfBCnodes] = (real)1.f;
+			   Q.q27[BS  ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[BN  ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[TS  ][QIN.numberOfBCnodes] = (real)1.f;
 			   Q.q27[dirREST][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirTNE ][QIN.numberOfBCnodes] = (real)1.f;
-			   Q.q27[dirTSW ][QIN.numberOfBCnodes] = (real)1.f;
-			   Q.q27[dirTSE ][QIN.numberOfBCnodes] = (real)1.f;
-			   Q.q27[dirTNW ][QIN.numberOfBCnodes] = (real)1.f;
-			   Q.q27[dirBNE ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirBSW ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirBSE ][QIN.numberOfBCnodes] = (real)-1.f;
-			   Q.q27[dirBNW ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[TNE ][QIN.numberOfBCnodes] = (real)1.f;
+			   Q.q27[TSW ][QIN.numberOfBCnodes] = (real)1.f;
+			   Q.q27[TSE ][QIN.numberOfBCnodes] = (real)1.f;
+			   Q.q27[TNW ][QIN.numberOfBCnodes] = (real)1.f;
+			   Q.q27[BNE ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[BSW ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[BSE ][QIN.numberOfBCnodes] = (real)-1.f;
+			   Q.q27[BNW ][QIN.numberOfBCnodes] = (real)-1.f;
 			   //////////////////////////////////////////////////////////////////////////
 			   QIN.numberOfBCnodes++;
             }
@@ -586,33 +586,33 @@ void findQInflow(Parameter* para)
    //               vy[QIN.numberOfBCnodes]             = 0.f;
    //               vz[QIN.numberOfBCnodes]             = u0;
 
-   //               Q.q27[dirE   ][QIN.numberOfBCnodes] = ON[dirE   ];
-   //               Q.q27[dirW   ][QIN.numberOfBCnodes] = ON[dirW   ];
-   //               Q.q27[dirN   ][QIN.numberOfBCnodes] = ON[dirN   ];
-   //               Q.q27[dirS   ][QIN.numberOfBCnodes] = ON[dirS   ];
-   //               Q.q27[dirT   ][QIN.numberOfBCnodes] = ON[dirT   ];
-   //               Q.q27[dirB   ][QIN.numberOfBCnodes] = ON[dirB   ];
-   //               Q.q27[dirNE  ][QIN.numberOfBCnodes] = ON[dirNE  ];
-   //               Q.q27[dirSW  ][QIN.numberOfBCnodes] = ON[dirSW  ];
-   //               Q.q27[dirSE  ][QIN.numberOfBCnodes] = ON[dirSE  ];
-   //               Q.q27[dirNW  ][QIN.numberOfBCnodes] = ON[dirNW  ];
-   //               Q.q27[dirTE  ][QIN.numberOfBCnodes] = ON[dirTE  ];
-   //               Q.q27[dirBW  ][QIN.numberOfBCnodes] = ON[dirBW  ];
-   //               Q.q27[dirBE  ][QIN.numberOfBCnodes] = ON[dirBE  ];
-   //               Q.q27[dirTW  ][QIN.numberOfBCnodes] = ON[dirTW  ];
-   //               Q.q27[dirTN  ][QIN.numberOfBCnodes] = ON[dirTN  ];
-   //               Q.q27[dirBS  ][QIN.numberOfBCnodes] = ON[dirBS  ];
-   //               Q.q27[dirBN  ][QIN.numberOfBCnodes] = ON[dirBN  ];
-   //               Q.q27[dirTS  ][QIN.numberOfBCnodes] = ON[dirTS  ];
+   //               Q.q27[E   ][QIN.numberOfBCnodes] = ON[E   ];
+   //               Q.q27[W   ][QIN.numberOfBCnodes] = ON[W   ];
+   //               Q.q27[N   ][QIN.numberOfBCnodes] = ON[N   ];
+   //               Q.q27[S   ][QIN.numberOfBCnodes] = ON[S   ];
+   //               Q.q27[T   ][QIN.numberOfBCnodes] = ON[T   ];
+   //               Q.q27[B   ][QIN.numberOfBCnodes] = ON[B   ];
+   //               Q.q27[NE  ][QIN.numberOfBCnodes] = ON[NE  ];
+   //               Q.q27[SW  ][QIN.numberOfBCnodes] = ON[SW  ];
+   //               Q.q27[SE  ][QIN.numberOfBCnodes] = ON[SE  ];
+   //               Q.q27[NW  ][QIN.numberOfBCnodes] = ON[NW  ];
+   //               Q.q27[TE  ][QIN.numberOfBCnodes] = ON[TE  ];
+   //               Q.q27[BW  ][QIN.numberOfBCnodes] = ON[BW  ];
+   //               Q.q27[BE  ][QIN.numberOfBCnodes] = ON[BE  ];
+   //               Q.q27[TW  ][QIN.numberOfBCnodes] = ON[TW  ];
+   //               Q.q27[TN  ][QIN.numberOfBCnodes] = ON[TN  ];
+   //               Q.q27[BS  ][QIN.numberOfBCnodes] = ON[BS  ];
+   //               Q.q27[BN  ][QIN.numberOfBCnodes] = ON[BN  ];
+   //               Q.q27[TS  ][QIN.numberOfBCnodes] = ON[TS  ];
    //               Q.q27[dirREST][QIN.numberOfBCnodes] = ON[dirREST];
-   //               Q.q27[dirTNE ][QIN.numberOfBCnodes] = ON[dirTNE ];
-   //               Q.q27[dirTSW ][QIN.numberOfBCnodes] = ON[dirTSW ];
-   //               Q.q27[dirTSE ][QIN.numberOfBCnodes] = ON[dirTSE ];
-   //               Q.q27[dirTNW ][QIN.numberOfBCnodes] = ON[dirTNW ];
-   //               Q.q27[dirBNE ][QIN.numberOfBCnodes] = ON[dirBNE ];
-   //               Q.q27[dirBSW ][QIN.numberOfBCnodes] = ON[dirBSW ];
-   //               Q.q27[dirBSE ][QIN.numberOfBCnodes] = ON[dirBSE ];
-   //               Q.q27[dirBNW ][QIN.numberOfBCnodes] = ON[dirBNW ];
+   //               Q.q27[TNE ][QIN.numberOfBCnodes] = ON[TNE ];
+   //               Q.q27[TSW ][QIN.numberOfBCnodes] = ON[TSW ];
+   //               Q.q27[TSE ][QIN.numberOfBCnodes] = ON[TSE ];
+   //               Q.q27[TNW ][QIN.numberOfBCnodes] = ON[TNW ];
+   //               Q.q27[BNE ][QIN.numberOfBCnodes] = ON[BNE ];
+   //               Q.q27[BSW ][QIN.numberOfBCnodes] = ON[BSW ];
+   //               Q.q27[BSE ][QIN.numberOfBCnodes] = ON[BSE ];
+   //               Q.q27[BNW ][QIN.numberOfBCnodes] = ON[BNW ];
 
    //               QIN.numberOfBCnodes++;
    //            }
@@ -645,33 +645,33 @@ void findQInflow(Parameter* para)
    //               vy[QIN.numberOfBCnodes]             = 0.f;
    //               vz[QIN.numberOfBCnodes]             = 0.f;//u0;
 
-   //               Q.q27[dirE   ][QIN.numberOfBCnodes] = ON[dirE   ];
-   //               Q.q27[dirW   ][QIN.numberOfBCnodes] = ON[dirW   ];
-   //               Q.q27[dirN   ][QIN.numberOfBCnodes] = ON[dirN   ];
-   //               Q.q27[dirS   ][QIN.numberOfBCnodes] = ON[dirS   ];
-   //               Q.q27[dirT   ][QIN.numberOfBCnodes] = ON[dirT   ];
-   //               Q.q27[dirB   ][QIN.numberOfBCnodes] = ON[dirB   ];
-   //               Q.q27[dirNE  ][QIN.numberOfBCnodes] = ON[dirNE  ];
-   //               Q.q27[dirSW  ][QIN.numberOfBCnodes] = ON[dirSW  ];
-   //               Q.q27[dirSE  ][QIN.numberOfBCnodes] = ON[dirSE  ];
-   //               Q.q27[dirNW  ][QIN.numberOfBCnodes] = ON[dirNW  ];
-   //               Q.q27[dirTE  ][QIN.numberOfBCnodes] = ON[dirTE  ];
-   //               Q.q27[dirBW  ][QIN.numberOfBCnodes] = ON[dirBW  ];
-   //               Q.q27[dirBE  ][QIN.numberOfBCnodes] = ON[dirBE  ];
-   //               Q.q27[dirTW  ][QIN.numberOfBCnodes] = ON[dirTW  ];
-   //               Q.q27[dirTN  ][QIN.numberOfBCnodes] = ON[dirTN  ];
-   //               Q.q27[dirBS  ][QIN.numberOfBCnodes] = ON[dirBS  ];
-   //               Q.q27[dirBN  ][QIN.numberOfBCnodes] = ON[dirBN  ];
-   //               Q.q27[dirTS  ][QIN.numberOfBCnodes] = ON[dirTS  ];
+   //               Q.q27[E   ][QIN.numberOfBCnodes] = ON[E   ];
+   //               Q.q27[W   ][QIN.numberOfBCnodes] = ON[W   ];
+   //               Q.q27[N   ][QIN.numberOfBCnodes] = ON[N   ];
+   //               Q.q27[S   ][QIN.numberOfBCnodes] = ON[S   ];
+   //               Q.q27[T   ][QIN.numberOfBCnodes] = ON[T   ];
+   //               Q.q27[B   ][QIN.numberOfBCnodes] = ON[B   ];
+   //               Q.q27[NE  ][QIN.numberOfBCnodes] = ON[NE  ];
+   //               Q.q27[SW  ][QIN.numberOfBCnodes] = ON[SW  ];
+   //               Q.q27[SE  ][QIN.numberOfBCnodes] = ON[SE  ];
+   //               Q.q27[NW  ][QIN.numberOfBCnodes] = ON[NW  ];
+   //               Q.q27[TE  ][QIN.numberOfBCnodes] = ON[TE  ];
+   //               Q.q27[BW  ][QIN.numberOfBCnodes] = ON[BW  ];
+   //               Q.q27[BE  ][QIN.numberOfBCnodes] = ON[BE  ];
+   //               Q.q27[TW  ][QIN.numberOfBCnodes] = ON[TW  ];
+   //               Q.q27[TN  ][QIN.numberOfBCnodes] = ON[TN  ];
+   //               Q.q27[BS  ][QIN.numberOfBCnodes] = ON[BS  ];
+   //               Q.q27[BN  ][QIN.numberOfBCnodes] = ON[BN  ];
+   //               Q.q27[TS  ][QIN.numberOfBCnodes] = ON[TS  ];
    //               Q.q27[dirREST][QIN.numberOfBCnodes] = ON[dirREST];
-   //               Q.q27[dirTNE ][QIN.numberOfBCnodes] = ON[dirTNE ];
-   //               Q.q27[dirTSW ][QIN.numberOfBCnodes] = ON[dirTSW ];
-   //               Q.q27[dirTSE ][QIN.numberOfBCnodes] = ON[dirTSE ];
-   //               Q.q27[dirTNW ][QIN.numberOfBCnodes] = ON[dirTNW ];
-   //               Q.q27[dirBNE ][QIN.numberOfBCnodes] = ON[dirBNE ];
-   //               Q.q27[dirBSW ][QIN.numberOfBCnodes] = ON[dirBSW ];
-   //               Q.q27[dirBSE ][QIN.numberOfBCnodes] = ON[dirBSE ];
-   //               Q.q27[dirBNW ][QIN.numberOfBCnodes] = ON[dirBNW ];
+   //               Q.q27[TNE ][QIN.numberOfBCnodes] = ON[TNE ];
+   //               Q.q27[TSW ][QIN.numberOfBCnodes] = ON[TSW ];
+   //               Q.q27[TSE ][QIN.numberOfBCnodes] = ON[TSE ];
+   //               Q.q27[TNW ][QIN.numberOfBCnodes] = ON[TNW ];
+   //               Q.q27[BNE ][QIN.numberOfBCnodes] = ON[BNE ];
+   //               Q.q27[BSW ][QIN.numberOfBCnodes] = ON[BSW ];
+   //               Q.q27[BSE ][QIN.numberOfBCnodes] = ON[BSE ];
+   //               Q.q27[BNW ][QIN.numberOfBCnodes] = ON[BNW ];
 
    //               QIN.numberOfBCnodes++;
    //            }
@@ -812,33 +812,33 @@ void findQOutflow(Parameter* para)
    QIN.numberOfBCnodes = 0;
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    QforBoundaryConditions Q;
-   Q.q27[dirE   ] = &QQ[dirE   *sizeQ];
-   Q.q27[dirW   ] = &QQ[dirW   *sizeQ];
-   Q.q27[dirN   ] = &QQ[dirN   *sizeQ];
-   Q.q27[dirS   ] = &QQ[dirS   *sizeQ];
-   Q.q27[dirT   ] = &QQ[dirT   *sizeQ];
-   Q.q27[dirB   ] = &QQ[dirB   *sizeQ];
-   Q.q27[dirNE  ] = &QQ[dirNE  *sizeQ];
-   Q.q27[dirSW  ] = &QQ[dirSW  *sizeQ];
-   Q.q27[dirSE  ] = &QQ[dirSE  *sizeQ];
-   Q.q27[dirNW  ] = &QQ[dirNW  *sizeQ];
-   Q.q27[dirTE  ] = &QQ[dirTE  *sizeQ];
-   Q.q27[dirBW  ] = &QQ[dirBW  *sizeQ];
-   Q.q27[dirBE  ] = &QQ[dirBE  *sizeQ];
-   Q.q27[dirTW  ] = &QQ[dirTW  *sizeQ];
-   Q.q27[dirTN  ] = &QQ[dirTN  *sizeQ];
-   Q.q27[dirBS  ] = &QQ[dirBS  *sizeQ];
-   Q.q27[dirBN  ] = &QQ[dirBN  *sizeQ];
-   Q.q27[dirTS  ] = &QQ[dirTS  *sizeQ];
+   Q.q27[E   ] = &QQ[E   *sizeQ];
+   Q.q27[W   ] = &QQ[W   *sizeQ];
+   Q.q27[N   ] = &QQ[N   *sizeQ];
+   Q.q27[S   ] = &QQ[S   *sizeQ];
+   Q.q27[T   ] = &QQ[T   *sizeQ];
+   Q.q27[B   ] = &QQ[B   *sizeQ];
+   Q.q27[NE  ] = &QQ[NE  *sizeQ];
+   Q.q27[SW  ] = &QQ[SW  *sizeQ];
+   Q.q27[SE  ] = &QQ[SE  *sizeQ];
+   Q.q27[NW  ] = &QQ[NW  *sizeQ];
+   Q.q27[TE  ] = &QQ[TE  *sizeQ];
+   Q.q27[BW  ] = &QQ[BW  *sizeQ];
+   Q.q27[BE  ] = &QQ[BE  *sizeQ];
+   Q.q27[TW  ] = &QQ[TW  *sizeQ];
+   Q.q27[TN  ] = &QQ[TN  *sizeQ];
+   Q.q27[BS  ] = &QQ[BS  *sizeQ];
+   Q.q27[BN  ] = &QQ[BN  *sizeQ];
+   Q.q27[TS  ] = &QQ[TS  *sizeQ];
    Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-   Q.q27[dirTNE ] = &QQ[dirTNE *sizeQ];
-   Q.q27[dirTSW ] = &QQ[dirTSW *sizeQ];
-   Q.q27[dirTSE ] = &QQ[dirTSE *sizeQ];
-   Q.q27[dirTNW ] = &QQ[dirTNW *sizeQ];
-   Q.q27[dirBNE ] = &QQ[dirBNE *sizeQ];
-   Q.q27[dirBSW ] = &QQ[dirBSW *sizeQ];
-   Q.q27[dirBSE ] = &QQ[dirBSE *sizeQ];
-   Q.q27[dirBNW ] = &QQ[dirBNW *sizeQ];
+   Q.q27[TNE ] = &QQ[TNE *sizeQ];
+   Q.q27[TSW ] = &QQ[TSW *sizeQ];
+   Q.q27[TSE ] = &QQ[TSE *sizeQ];
+   Q.q27[TNW ] = &QQ[TNW *sizeQ];
+   Q.q27[BNE ] = &QQ[BNE *sizeQ];
+   Q.q27[BSW ] = &QQ[BSW *sizeQ];
+   Q.q27[BSE ] = &QQ[BSE *sizeQ];
+   Q.q27[BNW ] = &QQ[BNW *sizeQ];
 
 
    //unsigned int li = ((nnx+STARTOFFX-2)-(STARTOFFX+1)-1);
@@ -860,33 +860,33 @@ void findQOutflow(Parameter* para)
                //vz[QIN.numberOfBCnodes]             =  (real)(16.f*(u0*2.f)*(i-(STARTOFFX+1)-0.5f)*(li-1.5f-(i-(STARTOFFX+1)))*(j-(STARTOFFY+1)-0.5f)*(lj-1.5f-(j-(STARTOFFY+1))))/(li*lj*li*lj);
                //vz[QIN.numberOfBCnodes]             = (real)(16.f*(u0*2.f)*i*j*(nx-i)*(ny-j))/(nx*nx*ny*ny);
                deltaVz[QIN.numberOfBCnodes]        = (real)0.f;
-               Q.q27[dirE   ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirW   ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirN   ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirS   ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirT   ][QIN.numberOfBCnodes] = (real)1.f;
-               Q.q27[dirB   ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirNE  ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirSW  ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirSE  ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirNW  ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirTE  ][QIN.numberOfBCnodes] = (real)1.f;
-               Q.q27[dirBW  ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirBE  ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirTW  ][QIN.numberOfBCnodes] = (real)1.f;
-               Q.q27[dirTN  ][QIN.numberOfBCnodes] = (real)1.f;
-               Q.q27[dirBS  ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirBN  ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirTS  ][QIN.numberOfBCnodes] = (real)1.f;
+               Q.q27[E   ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[W   ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[N   ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[S   ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[T   ][QIN.numberOfBCnodes] = (real)1.f;
+               Q.q27[B   ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[NE  ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[SW  ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[SE  ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[NW  ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[TE  ][QIN.numberOfBCnodes] = (real)1.f;
+               Q.q27[BW  ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[BE  ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[TW  ][QIN.numberOfBCnodes] = (real)1.f;
+               Q.q27[TN  ][QIN.numberOfBCnodes] = (real)1.f;
+               Q.q27[BS  ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[BN  ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[TS  ][QIN.numberOfBCnodes] = (real)1.f;
                Q.q27[dirREST][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirTNE ][QIN.numberOfBCnodes] = (real)1.f;
-               Q.q27[dirTSW ][QIN.numberOfBCnodes] = (real)1.f;
-               Q.q27[dirTSE ][QIN.numberOfBCnodes] = (real)1.f;
-               Q.q27[dirTNW ][QIN.numberOfBCnodes] = (real)1.f;
-               Q.q27[dirBNE ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirBSW ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirBSE ][QIN.numberOfBCnodes] = (real)-1.f;
-               Q.q27[dirBNW ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[TNE ][QIN.numberOfBCnodes] = (real)1.f;
+               Q.q27[TSW ][QIN.numberOfBCnodes] = (real)1.f;
+               Q.q27[TSE ][QIN.numberOfBCnodes] = (real)1.f;
+               Q.q27[TNW ][QIN.numberOfBCnodes] = (real)1.f;
+               Q.q27[BNE ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[BSW ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[BSE ][QIN.numberOfBCnodes] = (real)-1.f;
+               Q.q27[BNW ][QIN.numberOfBCnodes] = (real)-1.f;
                QIN.numberOfBCnodes++;
             }
        }
@@ -974,33 +974,33 @@ void findKforQOutflow(Parameter* para)
 //                   unsigned int sizeQW, real* vxW, real* vyW, real* vzW, real*deltaVW, real* QQW, QforBoundaryConditions &QWin)
 //{
 //   QforBoundaryConditions QN;
-//   QN.q27[dirE   ] = &QQN[dirE   *sizeQN];
-//   QN.q27[dirW   ] = &QQN[dirW   *sizeQN];
-//   QN.q27[dirN   ] = &QQN[dirN   *sizeQN];
-//   QN.q27[dirS   ] = &QQN[dirS   *sizeQN];
-//   QN.q27[dirT   ] = &QQN[dirT   *sizeQN];
-//   QN.q27[dirB   ] = &QQN[dirB   *sizeQN];
-//   QN.q27[dirNE  ] = &QQN[dirNE  *sizeQN];
-//   QN.q27[dirSW  ] = &QQN[dirSW  *sizeQN];
-//   QN.q27[dirSE  ] = &QQN[dirSE  *sizeQN];
-//   QN.q27[dirNW  ] = &QQN[dirNW  *sizeQN];
-//   QN.q27[dirTE  ] = &QQN[dirTE  *sizeQN];
-//   QN.q27[dirBW  ] = &QQN[dirBW  *sizeQN];
-//   QN.q27[dirBE  ] = &QQN[dirBE  *sizeQN];
-//   QN.q27[dirTW  ] = &QQN[dirTW  *sizeQN];
-//   QN.q27[dirTN  ] = &QQN[dirTN  *sizeQN];
-//   QN.q27[dirBS  ] = &QQN[dirBS  *sizeQN];
-//   QN.q27[dirBN  ] = &QQN[dirBN  *sizeQN];
-//   QN.q27[dirTS  ] = &QQN[dirTS  *sizeQN];
+//   QN.q27[E   ] = &QQN[E   *sizeQN];
+//   QN.q27[W   ] = &QQN[W   *sizeQN];
+//   QN.q27[N   ] = &QQN[N   *sizeQN];
+//   QN.q27[S   ] = &QQN[S   *sizeQN];
+//   QN.q27[T   ] = &QQN[T   *sizeQN];
+//   QN.q27[B   ] = &QQN[B   *sizeQN];
+//   QN.q27[NE  ] = &QQN[NE  *sizeQN];
+//   QN.q27[SW  ] = &QQN[SW  *sizeQN];
+//   QN.q27[SE  ] = &QQN[SE  *sizeQN];
+//   QN.q27[NW  ] = &QQN[NW  *sizeQN];
+//   QN.q27[TE  ] = &QQN[TE  *sizeQN];
+//   QN.q27[BW  ] = &QQN[BW  *sizeQN];
+//   QN.q27[BE  ] = &QQN[BE  *sizeQN];
+//   QN.q27[TW  ] = &QQN[TW  *sizeQN];
+//   QN.q27[TN  ] = &QQN[TN  *sizeQN];
+//   QN.q27[BS  ] = &QQN[BS  *sizeQN];
+//   QN.q27[BN  ] = &QQN[BN  *sizeQN];
+//   QN.q27[TS  ] = &QQN[TS  *sizeQN];
 //   QN.q27[dirREST] = &QQN[dirREST*sizeQN];
-//   QN.q27[dirTNE ] = &QQN[dirTNE *sizeQN];
-//   QN.q27[dirTSW ] = &QQN[dirTSW *sizeQN];
-//   QN.q27[dirTSE ] = &QQN[dirTSE *sizeQN];
-//   QN.q27[dirTNW ] = &QQN[dirTNW *sizeQN];
-//   QN.q27[dirBNE ] = &QQN[dirBNE *sizeQN];
-//   QN.q27[dirBSW ] = &QQN[dirBSW *sizeQN];
-//   QN.q27[dirBSE ] = &QQN[dirBSE *sizeQN];
-//   QN.q27[dirBNW ] = &QQN[dirBNW *sizeQN];
+//   QN.q27[TNE ] = &QQN[TNE *sizeQN];
+//   QN.q27[TSW ] = &QQN[TSW *sizeQN];
+//   QN.q27[TSE ] = &QQN[TSE *sizeQN];
+//   QN.q27[TNW ] = &QQN[TNW *sizeQN];
+//   QN.q27[BNE ] = &QQN[BNE *sizeQN];
+//   QN.q27[BSW ] = &QQN[BSW *sizeQN];
+//   QN.q27[BSE ] = &QQN[BSE *sizeQN];
+//   QN.q27[BNW ] = &QQN[BNW *sizeQN];
 //
 //   ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //   //////////////  E   W   N   S   T   B  NE  SW  SE  NW  TE  BW  BE  TW  TN  BS  BN  TS ZERO TNE BNE TSE BSE TNW BNW TSW BSW  ////////////////////////
@@ -1094,33 +1094,33 @@ void findQPressX0(Parameter* para, int lev)
 	QIN.numberOfBCnodes = 0;
 	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	QforBoundaryConditions Q;
-	Q.q27[dirE   ] = &QQ[dirE   *sizeQ];
-	Q.q27[dirW   ] = &QQ[dirW   *sizeQ];
-	Q.q27[dirN   ] = &QQ[dirN   *sizeQ];
-	Q.q27[dirS   ] = &QQ[dirS   *sizeQ];
-	Q.q27[dirT   ] = &QQ[dirT   *sizeQ];
-	Q.q27[dirB   ] = &QQ[dirB   *sizeQ];
-	Q.q27[dirNE  ] = &QQ[dirNE  *sizeQ];
-	Q.q27[dirSW  ] = &QQ[dirSW  *sizeQ];
-	Q.q27[dirSE  ] = &QQ[dirSE  *sizeQ];
-	Q.q27[dirNW  ] = &QQ[dirNW  *sizeQ];
-	Q.q27[dirTE  ] = &QQ[dirTE  *sizeQ];
-	Q.q27[dirBW  ] = &QQ[dirBW  *sizeQ];
-	Q.q27[dirBE  ] = &QQ[dirBE  *sizeQ];
-	Q.q27[dirTW  ] = &QQ[dirTW  *sizeQ];
-	Q.q27[dirTN  ] = &QQ[dirTN  *sizeQ];
-	Q.q27[dirBS  ] = &QQ[dirBS  *sizeQ];
-	Q.q27[dirBN  ] = &QQ[dirBN  *sizeQ];
-	Q.q27[dirTS  ] = &QQ[dirTS  *sizeQ];
+	Q.q27[E   ] = &QQ[E   *sizeQ];
+	Q.q27[W   ] = &QQ[W   *sizeQ];
+	Q.q27[N   ] = &QQ[N   *sizeQ];
+	Q.q27[S   ] = &QQ[S   *sizeQ];
+	Q.q27[T   ] = &QQ[T   *sizeQ];
+	Q.q27[B   ] = &QQ[B   *sizeQ];
+	Q.q27[NE  ] = &QQ[NE  *sizeQ];
+	Q.q27[SW  ] = &QQ[SW  *sizeQ];
+	Q.q27[SE  ] = &QQ[SE  *sizeQ];
+	Q.q27[NW  ] = &QQ[NW  *sizeQ];
+	Q.q27[TE  ] = &QQ[TE  *sizeQ];
+	Q.q27[BW  ] = &QQ[BW  *sizeQ];
+	Q.q27[BE  ] = &QQ[BE  *sizeQ];
+	Q.q27[TW  ] = &QQ[TW  *sizeQ];
+	Q.q27[TN  ] = &QQ[TN  *sizeQ];
+	Q.q27[BS  ] = &QQ[BS  *sizeQ];
+	Q.q27[BN  ] = &QQ[BN  *sizeQ];
+	Q.q27[TS  ] = &QQ[TS  *sizeQ];
 	Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-	Q.q27[dirTNE ] = &QQ[dirTNE *sizeQ];
-	Q.q27[dirTSW ] = &QQ[dirTSW *sizeQ];
-	Q.q27[dirTSE ] = &QQ[dirTSE *sizeQ];
-	Q.q27[dirTNW ] = &QQ[dirTNW *sizeQ];
-	Q.q27[dirBNE ] = &QQ[dirBNE *sizeQ];
-	Q.q27[dirBSW ] = &QQ[dirBSW *sizeQ];
-	Q.q27[dirBSE ] = &QQ[dirBSE *sizeQ];
-	Q.q27[dirBNW ] = &QQ[dirBNW *sizeQ];
+	Q.q27[TNE ] = &QQ[TNE *sizeQ];
+	Q.q27[TSW ] = &QQ[TSW *sizeQ];
+	Q.q27[TSE ] = &QQ[TSE *sizeQ];
+	Q.q27[TNW ] = &QQ[TNW *sizeQ];
+	Q.q27[BNE ] = &QQ[BNE *sizeQ];
+	Q.q27[BSW ] = &QQ[BSW *sizeQ];
+	Q.q27[BSE ] = &QQ[BSE *sizeQ];
+	Q.q27[BNW ] = &QQ[BNW *sizeQ];
 
 
 	//unsigned int li = ((nnx+STARTOFFX-2)-(STARTOFFX+1)-1);
@@ -1143,33 +1143,33 @@ void findQPressX0(Parameter* para, int lev)
 				//vz[QIN.numberOfBCnodes]             =  (real)(16.f*(u0*2.f)*(i-(STARTOFFX+1)-0.5f)*(li-1.5f-(i-(STARTOFFX+1)))*(j-(STARTOFFY+1)-0.5f)*(lj-1.5f-(j-(STARTOFFY+1))))/(li*lj*li*lj);
 				//vz[QIN.numberOfBCnodes]             = (real)(16.f*(u0*2.f)*i*j*(nx-i)*(ny-j))/(nx*nx*ny*ny);
 				deltaVz[QIN.numberOfBCnodes]        = (real)0.f;
-				Q.q27[dirE   ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirW   ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirN   ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirS   ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirT   ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirB   ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirNE  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirSW  ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirSE  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirNW  ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirTE  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirBW  ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirBE  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirTW  ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirTN  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirBS  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirBN  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirTS  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[E   ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[W   ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[N   ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[S   ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[T   ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[B   ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[NE  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[SW  ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[SE  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[NW  ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[TE  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[BW  ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[BE  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[TW  ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[TN  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[BS  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[BN  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[TS  ][QIN.numberOfBCnodes] = (real)-1.f;
 				Q.q27[dirREST][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirTNE ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirTSW ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirTSE ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirTNW ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirBNE ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirBSW ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirBSE ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirBNW ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[TNE ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[TSW ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[TSE ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[TNW ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[BNE ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[BSW ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[BSE ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[BNW ][QIN.numberOfBCnodes] = (real)1.f;
 				QIN.numberOfBCnodes++;
 			}
 		}
@@ -1270,33 +1270,33 @@ void findQPressX1(Parameter* para, int lev)
 	QIN.numberOfBCnodes = 0;
 	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	QforBoundaryConditions Q;
-	Q.q27[dirE   ] = &QQ[dirE   *sizeQ];
-	Q.q27[dirW   ] = &QQ[dirW   *sizeQ];
-	Q.q27[dirN   ] = &QQ[dirN   *sizeQ];
-	Q.q27[dirS   ] = &QQ[dirS   *sizeQ];
-	Q.q27[dirT   ] = &QQ[dirT   *sizeQ];
-	Q.q27[dirB   ] = &QQ[dirB   *sizeQ];
-	Q.q27[dirNE  ] = &QQ[dirNE  *sizeQ];
-	Q.q27[dirSW  ] = &QQ[dirSW  *sizeQ];
-	Q.q27[dirSE  ] = &QQ[dirSE  *sizeQ];
-	Q.q27[dirNW  ] = &QQ[dirNW  *sizeQ];
-	Q.q27[dirTE  ] = &QQ[dirTE  *sizeQ];
-	Q.q27[dirBW  ] = &QQ[dirBW  *sizeQ];
-	Q.q27[dirBE  ] = &QQ[dirBE  *sizeQ];
-	Q.q27[dirTW  ] = &QQ[dirTW  *sizeQ];
-	Q.q27[dirTN  ] = &QQ[dirTN  *sizeQ];
-	Q.q27[dirBS  ] = &QQ[dirBS  *sizeQ];
-	Q.q27[dirBN  ] = &QQ[dirBN  *sizeQ];
-	Q.q27[dirTS  ] = &QQ[dirTS  *sizeQ];
+	Q.q27[E   ] = &QQ[E   *sizeQ];
+	Q.q27[W   ] = &QQ[W   *sizeQ];
+	Q.q27[N   ] = &QQ[N   *sizeQ];
+	Q.q27[S   ] = &QQ[S   *sizeQ];
+	Q.q27[T   ] = &QQ[T   *sizeQ];
+	Q.q27[B   ] = &QQ[B   *sizeQ];
+	Q.q27[NE  ] = &QQ[NE  *sizeQ];
+	Q.q27[SW  ] = &QQ[SW  *sizeQ];
+	Q.q27[SE  ] = &QQ[SE  *sizeQ];
+	Q.q27[NW  ] = &QQ[NW  *sizeQ];
+	Q.q27[TE  ] = &QQ[TE  *sizeQ];
+	Q.q27[BW  ] = &QQ[BW  *sizeQ];
+	Q.q27[BE  ] = &QQ[BE  *sizeQ];
+	Q.q27[TW  ] = &QQ[TW  *sizeQ];
+	Q.q27[TN  ] = &QQ[TN  *sizeQ];
+	Q.q27[BS  ] = &QQ[BS  *sizeQ];
+	Q.q27[BN  ] = &QQ[BN  *sizeQ];
+	Q.q27[TS  ] = &QQ[TS  *sizeQ];
 	Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-	Q.q27[dirTNE ] = &QQ[dirTNE *sizeQ];
-	Q.q27[dirTSW ] = &QQ[dirTSW *sizeQ];
-	Q.q27[dirTSE ] = &QQ[dirTSE *sizeQ];
-	Q.q27[dirTNW ] = &QQ[dirTNW *sizeQ];
-	Q.q27[dirBNE ] = &QQ[dirBNE *sizeQ];
-	Q.q27[dirBSW ] = &QQ[dirBSW *sizeQ];
-	Q.q27[dirBSE ] = &QQ[dirBSE *sizeQ];
-	Q.q27[dirBNW ] = &QQ[dirBNW *sizeQ];
+	Q.q27[TNE ] = &QQ[TNE *sizeQ];
+	Q.q27[TSW ] = &QQ[TSW *sizeQ];
+	Q.q27[TSE ] = &QQ[TSE *sizeQ];
+	Q.q27[TNW ] = &QQ[TNW *sizeQ];
+	Q.q27[BNE ] = &QQ[BNE *sizeQ];
+	Q.q27[BSW ] = &QQ[BSW *sizeQ];
+	Q.q27[BSE ] = &QQ[BSE *sizeQ];
+	Q.q27[BNW ] = &QQ[BNW *sizeQ];
 
 
 	//unsigned int li = ((nnx+STARTOFFX-2)-(STARTOFFX+1)-1);
@@ -1319,33 +1319,33 @@ void findQPressX1(Parameter* para, int lev)
 				//vz[QIN.numberOfBCnodes]             =  (real)(16.f*(u0*2.f)*(i-(STARTOFFX+1)-0.5f)*(li-1.5f-(i-(STARTOFFX+1)))*(j-(STARTOFFY+1)-0.5f)*(lj-1.5f-(j-(STARTOFFY+1))))/(li*lj*li*lj);
 				//vz[QIN.numberOfBCnodes]             = (real)(16.f*(u0*2.f)*i*j*(nx-i)*(ny-j))/(nx*nx*ny*ny);
 				deltaVz[QIN.numberOfBCnodes]        = (real)0.f;
-				Q.q27[dirE   ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirW   ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirN   ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirS   ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirT   ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirB   ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirNE  ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirSW  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirSE  ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirNW  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirTE  ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirBW  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirBE  ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirTW  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirTN  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirBS  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirBN  ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirTS  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[E   ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[W   ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[N   ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[S   ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[T   ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[B   ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[NE  ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[SW  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[SE  ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[NW  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[TE  ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[BW  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[BE  ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[TW  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[TN  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[BS  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[BN  ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[TS  ][QIN.numberOfBCnodes] = (real)-1.f;
 				Q.q27[dirREST][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirTNE ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirTSW ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirTSE ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirTNW ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirBNE ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirBSW ][QIN.numberOfBCnodes] = (real)-1.f;
-				Q.q27[dirBSE ][QIN.numberOfBCnodes] = (real)1.f;
-				Q.q27[dirBNW ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[TNE ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[TSW ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[TSE ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[TNW ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[BNE ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[BSW ][QIN.numberOfBCnodes] = (real)-1.f;
+				Q.q27[BSE ][QIN.numberOfBCnodes] = (real)1.f;
+				Q.q27[BNW ][QIN.numberOfBCnodes] = (real)-1.f;
 				QIN.numberOfBCnodes++;
 			}
 		}
diff --git a/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusion27chim.cu b/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusion27chim.cu
index f2de367c4..fa3221a0e 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusion27chim.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusion27chim.cu
@@ -109,125 +109,125 @@ extern "C" __global__ void Factorized_Central_Moments_Advection_Diffusion_Device
 		Distributions27 dist;
 		if (isEvenTimestep)
 		{
-			dist.f[dirE   ] = &distributions[dirE   *size_Mat];
-			dist.f[dirW   ] = &distributions[dirW   *size_Mat];
-			dist.f[dirN   ] = &distributions[dirN   *size_Mat];
-			dist.f[dirS   ] = &distributions[dirS   *size_Mat];
-			dist.f[dirT   ] = &distributions[dirT   *size_Mat];
-			dist.f[dirB   ] = &distributions[dirB   *size_Mat];
-			dist.f[dirNE  ] = &distributions[dirNE  *size_Mat];
-			dist.f[dirSW  ] = &distributions[dirSW  *size_Mat];
-			dist.f[dirSE  ] = &distributions[dirSE  *size_Mat];
-			dist.f[dirNW  ] = &distributions[dirNW  *size_Mat];
-			dist.f[dirTE  ] = &distributions[dirTE  *size_Mat];
-			dist.f[dirBW  ] = &distributions[dirBW  *size_Mat];
-			dist.f[dirBE  ] = &distributions[dirBE  *size_Mat];
-			dist.f[dirTW  ] = &distributions[dirTW  *size_Mat];
-			dist.f[dirTN  ] = &distributions[dirTN  *size_Mat];
-			dist.f[dirBS  ] = &distributions[dirBS  *size_Mat];
-			dist.f[dirBN  ] = &distributions[dirBN  *size_Mat];
-			dist.f[dirTS  ] = &distributions[dirTS  *size_Mat];
+			dist.f[E   ] = &distributions[E   *size_Mat];
+			dist.f[W   ] = &distributions[W   *size_Mat];
+			dist.f[N   ] = &distributions[N   *size_Mat];
+			dist.f[S   ] = &distributions[S   *size_Mat];
+			dist.f[T   ] = &distributions[T   *size_Mat];
+			dist.f[B   ] = &distributions[B   *size_Mat];
+			dist.f[NE  ] = &distributions[NE  *size_Mat];
+			dist.f[SW  ] = &distributions[SW  *size_Mat];
+			dist.f[SE  ] = &distributions[SE  *size_Mat];
+			dist.f[NW  ] = &distributions[NW  *size_Mat];
+			dist.f[TE  ] = &distributions[TE  *size_Mat];
+			dist.f[BW  ] = &distributions[BW  *size_Mat];
+			dist.f[BE  ] = &distributions[BE  *size_Mat];
+			dist.f[TW  ] = &distributions[TW  *size_Mat];
+			dist.f[TN  ] = &distributions[TN  *size_Mat];
+			dist.f[BS  ] = &distributions[BS  *size_Mat];
+			dist.f[BN  ] = &distributions[BN  *size_Mat];
+			dist.f[TS  ] = &distributions[TS  *size_Mat];
 			dist.f[dirREST] = &distributions[dirREST*size_Mat];
-			dist.f[dirTNE ] = &distributions[dirTNE *size_Mat];
-			dist.f[dirTSW ] = &distributions[dirTSW *size_Mat];
-			dist.f[dirTSE ] = &distributions[dirTSE *size_Mat];
-			dist.f[dirTNW ] = &distributions[dirTNW *size_Mat];
-			dist.f[dirBNE ] = &distributions[dirBNE *size_Mat];
-			dist.f[dirBSW ] = &distributions[dirBSW *size_Mat];
-			dist.f[dirBSE ] = &distributions[dirBSE *size_Mat];
-			dist.f[dirBNW ] = &distributions[dirBNW *size_Mat];
+			dist.f[TNE ] = &distributions[TNE *size_Mat];
+			dist.f[TSW ] = &distributions[TSW *size_Mat];
+			dist.f[TSE ] = &distributions[TSE *size_Mat];
+			dist.f[TNW ] = &distributions[TNW *size_Mat];
+			dist.f[BNE ] = &distributions[BNE *size_Mat];
+			dist.f[BSW ] = &distributions[BSW *size_Mat];
+			dist.f[BSE ] = &distributions[BSE *size_Mat];
+			dist.f[BNW ] = &distributions[BNW *size_Mat];
 		}
 		else
 		{
-			dist.f[dirW   ] = &distributions[dirE   *size_Mat];
-			dist.f[dirE   ] = &distributions[dirW   *size_Mat];
-			dist.f[dirS   ] = &distributions[dirN   *size_Mat];
-			dist.f[dirN   ] = &distributions[dirS   *size_Mat];
-			dist.f[dirB   ] = &distributions[dirT   *size_Mat];
-			dist.f[dirT   ] = &distributions[dirB   *size_Mat];
-			dist.f[dirSW  ] = &distributions[dirNE  *size_Mat];
-			dist.f[dirNE  ] = &distributions[dirSW  *size_Mat];
-			dist.f[dirNW  ] = &distributions[dirSE  *size_Mat];
-			dist.f[dirSE  ] = &distributions[dirNW  *size_Mat];
-			dist.f[dirBW  ] = &distributions[dirTE  *size_Mat];
-			dist.f[dirTE  ] = &distributions[dirBW  *size_Mat];
-			dist.f[dirTW  ] = &distributions[dirBE  *size_Mat];
-			dist.f[dirBE  ] = &distributions[dirTW  *size_Mat];
-			dist.f[dirBS  ] = &distributions[dirTN  *size_Mat];
-			dist.f[dirTN  ] = &distributions[dirBS  *size_Mat];
-			dist.f[dirTS  ] = &distributions[dirBN  *size_Mat];
-			dist.f[dirBN  ] = &distributions[dirTS  *size_Mat];
+			dist.f[W   ] = &distributions[E   *size_Mat];
+			dist.f[E   ] = &distributions[W   *size_Mat];
+			dist.f[S   ] = &distributions[N   *size_Mat];
+			dist.f[N   ] = &distributions[S   *size_Mat];
+			dist.f[B   ] = &distributions[T   *size_Mat];
+			dist.f[T   ] = &distributions[B   *size_Mat];
+			dist.f[SW  ] = &distributions[NE  *size_Mat];
+			dist.f[NE  ] = &distributions[SW  *size_Mat];
+			dist.f[NW  ] = &distributions[SE  *size_Mat];
+			dist.f[SE  ] = &distributions[NW  *size_Mat];
+			dist.f[BW  ] = &distributions[TE  *size_Mat];
+			dist.f[TE  ] = &distributions[BW  *size_Mat];
+			dist.f[TW  ] = &distributions[BE  *size_Mat];
+			dist.f[BE  ] = &distributions[TW  *size_Mat];
+			dist.f[BS  ] = &distributions[TN  *size_Mat];
+			dist.f[TN  ] = &distributions[BS  *size_Mat];
+			dist.f[TS  ] = &distributions[BN  *size_Mat];
+			dist.f[BN  ] = &distributions[TS  *size_Mat];
 			dist.f[dirREST] = &distributions[dirREST*size_Mat];
-			dist.f[dirBSW ] = &distributions[dirTNE *size_Mat];
-			dist.f[dirBNE ] = &distributions[dirTSW *size_Mat];
-			dist.f[dirBNW ] = &distributions[dirTSE *size_Mat];
-			dist.f[dirBSE ] = &distributions[dirTNW *size_Mat];
-			dist.f[dirTSW ] = &distributions[dirBNE *size_Mat];
-			dist.f[dirTNE ] = &distributions[dirBSW *size_Mat];
-			dist.f[dirTNW ] = &distributions[dirBSE *size_Mat];
-			dist.f[dirTSE ] = &distributions[dirBNW *size_Mat];
+			dist.f[BSW ] = &distributions[TNE *size_Mat];
+			dist.f[BNE ] = &distributions[TSW *size_Mat];
+			dist.f[BNW ] = &distributions[TSE *size_Mat];
+			dist.f[BSE ] = &distributions[TNW *size_Mat];
+			dist.f[TSW ] = &distributions[BNE *size_Mat];
+			dist.f[TNE ] = &distributions[BSW *size_Mat];
+			dist.f[TNW ] = &distributions[BSE *size_Mat];
+			dist.f[TSE ] = &distributions[BNW *size_Mat];
 		}
 		////////////////////////////////////////////////////////////////////////////////
 		Distributions27 distAD;
 		if (isEvenTimestep)
 		{
-			distAD.f[dirE   ] = &distributionsAD[dirE   *size_Mat];
-			distAD.f[dirW   ] = &distributionsAD[dirW   *size_Mat];
-			distAD.f[dirN   ] = &distributionsAD[dirN   *size_Mat];
-			distAD.f[dirS   ] = &distributionsAD[dirS   *size_Mat];
-			distAD.f[dirT   ] = &distributionsAD[dirT   *size_Mat];
-			distAD.f[dirB   ] = &distributionsAD[dirB   *size_Mat];
-			distAD.f[dirNE  ] = &distributionsAD[dirNE  *size_Mat];
-			distAD.f[dirSW  ] = &distributionsAD[dirSW  *size_Mat];
-			distAD.f[dirSE  ] = &distributionsAD[dirSE  *size_Mat];
-			distAD.f[dirNW  ] = &distributionsAD[dirNW  *size_Mat];
-			distAD.f[dirTE  ] = &distributionsAD[dirTE  *size_Mat];
-			distAD.f[dirBW  ] = &distributionsAD[dirBW  *size_Mat];
-			distAD.f[dirBE  ] = &distributionsAD[dirBE  *size_Mat];
-			distAD.f[dirTW  ] = &distributionsAD[dirTW  *size_Mat];
-			distAD.f[dirTN  ] = &distributionsAD[dirTN  *size_Mat];
-			distAD.f[dirBS  ] = &distributionsAD[dirBS  *size_Mat];
-			distAD.f[dirBN  ] = &distributionsAD[dirBN  *size_Mat];
-			distAD.f[dirTS  ] = &distributionsAD[dirTS  *size_Mat];
+			distAD.f[E   ] = &distributionsAD[E   *size_Mat];
+			distAD.f[W   ] = &distributionsAD[W   *size_Mat];
+			distAD.f[N   ] = &distributionsAD[N   *size_Mat];
+			distAD.f[S   ] = &distributionsAD[S   *size_Mat];
+			distAD.f[T   ] = &distributionsAD[T   *size_Mat];
+			distAD.f[B   ] = &distributionsAD[B   *size_Mat];
+			distAD.f[NE  ] = &distributionsAD[NE  *size_Mat];
+			distAD.f[SW  ] = &distributionsAD[SW  *size_Mat];
+			distAD.f[SE  ] = &distributionsAD[SE  *size_Mat];
+			distAD.f[NW  ] = &distributionsAD[NW  *size_Mat];
+			distAD.f[TE  ] = &distributionsAD[TE  *size_Mat];
+			distAD.f[BW  ] = &distributionsAD[BW  *size_Mat];
+			distAD.f[BE  ] = &distributionsAD[BE  *size_Mat];
+			distAD.f[TW  ] = &distributionsAD[TW  *size_Mat];
+			distAD.f[TN  ] = &distributionsAD[TN  *size_Mat];
+			distAD.f[BS  ] = &distributionsAD[BS  *size_Mat];
+			distAD.f[BN  ] = &distributionsAD[BN  *size_Mat];
+			distAD.f[TS  ] = &distributionsAD[TS  *size_Mat];
 			distAD.f[dirREST] = &distributionsAD[dirREST*size_Mat];
-			distAD.f[dirTNE ] = &distributionsAD[dirTNE *size_Mat];
-			distAD.f[dirTSW ] = &distributionsAD[dirTSW *size_Mat];
-			distAD.f[dirTSE ] = &distributionsAD[dirTSE *size_Mat];
-			distAD.f[dirTNW ] = &distributionsAD[dirTNW *size_Mat];
-			distAD.f[dirBNE ] = &distributionsAD[dirBNE *size_Mat];
-			distAD.f[dirBSW ] = &distributionsAD[dirBSW *size_Mat];
-			distAD.f[dirBSE ] = &distributionsAD[dirBSE *size_Mat];
-			distAD.f[dirBNW ] = &distributionsAD[dirBNW *size_Mat];
+			distAD.f[TNE ] = &distributionsAD[TNE *size_Mat];
+			distAD.f[TSW ] = &distributionsAD[TSW *size_Mat];
+			distAD.f[TSE ] = &distributionsAD[TSE *size_Mat];
+			distAD.f[TNW ] = &distributionsAD[TNW *size_Mat];
+			distAD.f[BNE ] = &distributionsAD[BNE *size_Mat];
+			distAD.f[BSW ] = &distributionsAD[BSW *size_Mat];
+			distAD.f[BSE ] = &distributionsAD[BSE *size_Mat];
+			distAD.f[BNW ] = &distributionsAD[BNW *size_Mat];
 		}
 		else
 		{
-			distAD.f[dirW   ] = &distributionsAD[dirE   *size_Mat];
-			distAD.f[dirE   ] = &distributionsAD[dirW   *size_Mat];
-			distAD.f[dirS   ] = &distributionsAD[dirN   *size_Mat];
-			distAD.f[dirN   ] = &distributionsAD[dirS   *size_Mat];
-			distAD.f[dirB   ] = &distributionsAD[dirT   *size_Mat];
-			distAD.f[dirT   ] = &distributionsAD[dirB   *size_Mat];
-			distAD.f[dirSW  ] = &distributionsAD[dirNE  *size_Mat];
-			distAD.f[dirNE  ] = &distributionsAD[dirSW  *size_Mat];
-			distAD.f[dirNW  ] = &distributionsAD[dirSE  *size_Mat];
-			distAD.f[dirSE  ] = &distributionsAD[dirNW  *size_Mat];
-			distAD.f[dirBW  ] = &distributionsAD[dirTE  *size_Mat];
-			distAD.f[dirTE  ] = &distributionsAD[dirBW  *size_Mat];
-			distAD.f[dirTW  ] = &distributionsAD[dirBE  *size_Mat];
-			distAD.f[dirBE  ] = &distributionsAD[dirTW  *size_Mat];
-			distAD.f[dirBS  ] = &distributionsAD[dirTN  *size_Mat];
-			distAD.f[dirTN  ] = &distributionsAD[dirBS  *size_Mat];
-			distAD.f[dirTS  ] = &distributionsAD[dirBN  *size_Mat];
-			distAD.f[dirBN  ] = &distributionsAD[dirTS  *size_Mat];
+			distAD.f[W   ] = &distributionsAD[E   *size_Mat];
+			distAD.f[E   ] = &distributionsAD[W   *size_Mat];
+			distAD.f[S   ] = &distributionsAD[N   *size_Mat];
+			distAD.f[N   ] = &distributionsAD[S   *size_Mat];
+			distAD.f[B   ] = &distributionsAD[T   *size_Mat];
+			distAD.f[T   ] = &distributionsAD[B   *size_Mat];
+			distAD.f[SW  ] = &distributionsAD[NE  *size_Mat];
+			distAD.f[NE  ] = &distributionsAD[SW  *size_Mat];
+			distAD.f[NW  ] = &distributionsAD[SE  *size_Mat];
+			distAD.f[SE  ] = &distributionsAD[NW  *size_Mat];
+			distAD.f[BW  ] = &distributionsAD[TE  *size_Mat];
+			distAD.f[TE  ] = &distributionsAD[BW  *size_Mat];
+			distAD.f[TW  ] = &distributionsAD[BE  *size_Mat];
+			distAD.f[BE  ] = &distributionsAD[TW  *size_Mat];
+			distAD.f[BS  ] = &distributionsAD[TN  *size_Mat];
+			distAD.f[TN  ] = &distributionsAD[BS  *size_Mat];
+			distAD.f[TS  ] = &distributionsAD[BN  *size_Mat];
+			distAD.f[BN  ] = &distributionsAD[TS  *size_Mat];
 			distAD.f[dirREST] = &distributionsAD[dirREST*size_Mat];
-			distAD.f[dirBSW ] = &distributionsAD[dirTNE *size_Mat];
-			distAD.f[dirBNE ] = &distributionsAD[dirTSW *size_Mat];
-			distAD.f[dirBNW ] = &distributionsAD[dirTSE *size_Mat];
-			distAD.f[dirBSE ] = &distributionsAD[dirTNW *size_Mat];
-			distAD.f[dirTSW ] = &distributionsAD[dirBNE *size_Mat];
-			distAD.f[dirTNE ] = &distributionsAD[dirBSW *size_Mat];
-			distAD.f[dirTNW ] = &distributionsAD[dirBSE *size_Mat];
-			distAD.f[dirTSE ] = &distributionsAD[dirBNW *size_Mat];
+			distAD.f[BSW ] = &distributionsAD[TNE *size_Mat];
+			distAD.f[BNE ] = &distributionsAD[TSW *size_Mat];
+			distAD.f[BNW ] = &distributionsAD[TSE *size_Mat];
+			distAD.f[BSE ] = &distributionsAD[TNW *size_Mat];
+			distAD.f[TSW ] = &distributionsAD[BNE *size_Mat];
+			distAD.f[TNE ] = &distributionsAD[BSW *size_Mat];
+			distAD.f[TNW ] = &distributionsAD[BSE *size_Mat];
+			distAD.f[TSE ] = &distributionsAD[BNW *size_Mat];
 		}
 		////////////////////////////////////////////////////////////////////////////////
 		//! - Set neighbor indices (necessary for indirect addressing)
@@ -241,63 +241,63 @@ extern "C" __global__ void Factorized_Central_Moments_Advection_Diffusion_Device
 		////////////////////////////////////////////////////////////////////////////////////
 		//! - Set local distributions Fluid
 		//!
-		real fcbb = (dist.f[dirE   ])[k];
-		real fabb = (dist.f[dirW   ])[kw];
-		real fbcb = (dist.f[dirN   ])[k];
-		real fbab = (dist.f[dirS   ])[ks];
-		real fbbc = (dist.f[dirT   ])[k];
-		real fbba = (dist.f[dirB   ])[kb];
-		real fccb = (dist.f[dirNE  ])[k];
-		real faab = (dist.f[dirSW  ])[ksw];
-		real fcab = (dist.f[dirSE  ])[ks];
-		real facb = (dist.f[dirNW  ])[kw];
-		real fcbc = (dist.f[dirTE  ])[k];
-		real faba = (dist.f[dirBW  ])[kbw];
-		real fcba = (dist.f[dirBE  ])[kb];
-		real fabc = (dist.f[dirTW  ])[kw];
-		real fbcc = (dist.f[dirTN  ])[k];
-		real fbaa = (dist.f[dirBS  ])[kbs];
-		real fbca = (dist.f[dirBN  ])[kb];
-		real fbac = (dist.f[dirTS  ])[ks];
+		real fcbb = (dist.f[E   ])[k];
+		real fabb = (dist.f[W   ])[kw];
+		real fbcb = (dist.f[N   ])[k];
+		real fbab = (dist.f[S   ])[ks];
+		real fbbc = (dist.f[T   ])[k];
+		real fbba = (dist.f[B   ])[kb];
+		real fccb = (dist.f[NE  ])[k];
+		real faab = (dist.f[SW  ])[ksw];
+		real fcab = (dist.f[SE  ])[ks];
+		real facb = (dist.f[NW  ])[kw];
+		real fcbc = (dist.f[TE  ])[k];
+		real faba = (dist.f[BW  ])[kbw];
+		real fcba = (dist.f[BE  ])[kb];
+		real fabc = (dist.f[TW  ])[kw];
+		real fbcc = (dist.f[TN  ])[k];
+		real fbaa = (dist.f[BS  ])[kbs];
+		real fbca = (dist.f[BN  ])[kb];
+		real fbac = (dist.f[TS  ])[ks];
 		real fbbb = (dist.f[dirREST])[k];
-		real fccc = (dist.f[dirTNE ])[k];
-		real faac = (dist.f[dirTSW ])[ksw];
-		real fcac = (dist.f[dirTSE ])[ks];
-		real facc = (dist.f[dirTNW ])[kw];
-		real fcca = (dist.f[dirBNE ])[kb];
-		real faaa = (dist.f[dirBSW ])[kbsw];
-		real fcaa = (dist.f[dirBSE ])[kbs];
-		real faca = (dist.f[dirBNW ])[kbw];
+		real fccc = (dist.f[TNE ])[k];
+		real faac = (dist.f[TSW ])[ksw];
+		real fcac = (dist.f[TSE ])[ks];
+		real facc = (dist.f[TNW ])[kw];
+		real fcca = (dist.f[BNE ])[kb];
+		real faaa = (dist.f[BSW ])[kbsw];
+		real fcaa = (dist.f[BSE ])[kbs];
+		real faca = (dist.f[BNW ])[kbw];
 		////////////////////////////////////////////////////////////////////////////////////
 		//! - Set local distributions Advection Diffusion
 		//!
-		real mfcbb = (distAD.f[dirE   ])[k];
-		real mfabb = (distAD.f[dirW   ])[kw];
-		real mfbcb = (distAD.f[dirN   ])[k];
-		real mfbab = (distAD.f[dirS   ])[ks];
-		real mfbbc = (distAD.f[dirT   ])[k];
-		real mfbba = (distAD.f[dirB   ])[kb];
-		real mfccb = (distAD.f[dirNE  ])[k];
-		real mfaab = (distAD.f[dirSW  ])[ksw];
-		real mfcab = (distAD.f[dirSE  ])[ks];
-		real mfacb = (distAD.f[dirNW  ])[kw];
-		real mfcbc = (distAD.f[dirTE  ])[k];
-		real mfaba = (distAD.f[dirBW  ])[kbw];
-		real mfcba = (distAD.f[dirBE  ])[kb];
-		real mfabc = (distAD.f[dirTW  ])[kw];
-		real mfbcc = (distAD.f[dirTN  ])[k];
-		real mfbaa = (distAD.f[dirBS  ])[kbs];
-		real mfbca = (distAD.f[dirBN  ])[kb];
-		real mfbac = (distAD.f[dirTS  ])[ks];
+		real mfcbb = (distAD.f[E   ])[k];
+		real mfabb = (distAD.f[W   ])[kw];
+		real mfbcb = (distAD.f[N   ])[k];
+		real mfbab = (distAD.f[S   ])[ks];
+		real mfbbc = (distAD.f[T   ])[k];
+		real mfbba = (distAD.f[B   ])[kb];
+		real mfccb = (distAD.f[NE  ])[k];
+		real mfaab = (distAD.f[SW  ])[ksw];
+		real mfcab = (distAD.f[SE  ])[ks];
+		real mfacb = (distAD.f[NW  ])[kw];
+		real mfcbc = (distAD.f[TE  ])[k];
+		real mfaba = (distAD.f[BW  ])[kbw];
+		real mfcba = (distAD.f[BE  ])[kb];
+		real mfabc = (distAD.f[TW  ])[kw];
+		real mfbcc = (distAD.f[TN  ])[k];
+		real mfbaa = (distAD.f[BS  ])[kbs];
+		real mfbca = (distAD.f[BN  ])[kb];
+		real mfbac = (distAD.f[TS  ])[ks];
 		real mfbbb = (distAD.f[dirREST])[k];
-		real mfccc = (distAD.f[dirTNE ])[k];
-		real mfaac = (distAD.f[dirTSW ])[ksw];
-		real mfcac = (distAD.f[dirTSE ])[ks];
-		real mfacc = (distAD.f[dirTNW ])[kw];
-		real mfcca = (distAD.f[dirBNE ])[kb];
-		real mfaaa = (distAD.f[dirBSW ])[kbsw];
-		real mfcaa = (distAD.f[dirBSE ])[kbs];
-		real mfaca = (distAD.f[dirBNW ])[kbw];
+		real mfccc = (distAD.f[TNE ])[k];
+		real mfaac = (distAD.f[TSW ])[ksw];
+		real mfcac = (distAD.f[TSE ])[ks];
+		real mfacc = (distAD.f[TNW ])[kw];
+		real mfcca = (distAD.f[BNE ])[kb];
+		real mfaaa = (distAD.f[BSW ])[kbsw];
+		real mfcaa = (distAD.f[BSE ])[kbs];
+		real mfaca = (distAD.f[BNW ])[kbw];
 		////////////////////////////////////////////////////////////////////////////////////
 		//! - 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>
@@ -503,33 +503,33 @@ extern "C" __global__ void Factorized_Central_Moments_Advection_Diffusion_Device
 		//! stored arrays dependent on timestep is based on the esoteric twist algorithm
 		//! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017), DOI:10.3390/computation5020019 ]</b></a>
 		//!
-		(distAD.f[dirE   ])[k   ] = mfabb;
-		(distAD.f[dirW   ])[kw  ] = mfcbb;
-		(distAD.f[dirN   ])[k   ] = mfbab;
-		(distAD.f[dirS   ])[ks  ] = mfbcb;
-		(distAD.f[dirT   ])[k   ] = mfbba;
-		(distAD.f[dirB   ])[kb  ] = mfbbc;
-		(distAD.f[dirNE  ])[k   ] = mfaab;
-		(distAD.f[dirSW  ])[ksw ] = mfccb;
-		(distAD.f[dirSE  ])[ks  ] = mfacb;
-		(distAD.f[dirNW  ])[kw  ] = mfcab;
-		(distAD.f[dirTE  ])[k   ] = mfaba;
-		(distAD.f[dirBW  ])[kbw ] = mfcbc;
-		(distAD.f[dirBE  ])[kb  ] = mfabc;
-		(distAD.f[dirTW  ])[kw  ] = mfcba;
-		(distAD.f[dirTN  ])[k   ] = mfbaa;
-		(distAD.f[dirBS  ])[kbs ] = mfbcc;
-		(distAD.f[dirBN  ])[kb  ] = mfbac;
-		(distAD.f[dirTS  ])[ks  ] = mfbca;
+		(distAD.f[E   ])[k   ] = mfabb;
+		(distAD.f[W   ])[kw  ] = mfcbb;
+		(distAD.f[N   ])[k   ] = mfbab;
+		(distAD.f[S   ])[ks  ] = mfbcb;
+		(distAD.f[T   ])[k   ] = mfbba;
+		(distAD.f[B   ])[kb  ] = mfbbc;
+		(distAD.f[NE  ])[k   ] = mfaab;
+		(distAD.f[SW  ])[ksw ] = mfccb;
+		(distAD.f[SE  ])[ks  ] = mfacb;
+		(distAD.f[NW  ])[kw  ] = mfcab;
+		(distAD.f[TE  ])[k   ] = mfaba;
+		(distAD.f[BW  ])[kbw ] = mfcbc;
+		(distAD.f[BE  ])[kb  ] = mfabc;
+		(distAD.f[TW  ])[kw  ] = mfcba;
+		(distAD.f[TN  ])[k   ] = mfbaa;
+		(distAD.f[BS  ])[kbs ] = mfbcc;
+		(distAD.f[BN  ])[kb  ] = mfbac;
+		(distAD.f[TS  ])[ks  ] = mfbca;
 		(distAD.f[dirREST])[k   ] = mfbbb;
-		(distAD.f[dirTNE ])[k   ] = mfaaa;
-		(distAD.f[dirTSE ])[ks  ] = mfaca;
-		(distAD.f[dirBNE ])[kb  ] = mfaac;
-		(distAD.f[dirBSE ])[kbs ] = mfacc;
-		(distAD.f[dirTNW ])[kw  ] = mfcaa;
-		(distAD.f[dirTSW ])[ksw ] = mfcca;
-		(distAD.f[dirBNW ])[kbw ] = mfcac;
-		(distAD.f[dirBSW ])[kbsw] = mfccc;
+		(distAD.f[TNE ])[k   ] = mfaaa;
+		(distAD.f[TSE ])[ks  ] = mfaca;
+		(distAD.f[BNE ])[kb  ] = mfaac;
+		(distAD.f[BSE ])[kbs ] = mfacc;
+		(distAD.f[TNW ])[kw  ] = mfcaa;
+		(distAD.f[TSW ])[ksw ] = mfcca;
+		(distAD.f[BNW ])[kbw ] = mfcac;
+		(distAD.f[BSW ])[kbsw] = mfccc;
 	}
 }
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusionBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusionBCs27.cu
index 510026522..caf7d1f2f 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusionBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/AdvectionDiffusionBCs27.cu
@@ -25,63 +25,63 @@ extern "C" __global__ void QADPress7(  real* DD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
 
    Distributions7 D7;
@@ -127,32 +127,32 @@ extern "C" __global__ void QADPress7(  real* DD,
       //         *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
       //         *q_dirBSE, *q_dirBNW;
 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      //q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      //q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      //q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      //q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      //q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      //q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      //q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      //q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      //q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      //q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      //q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      //q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      //q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      //q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      //q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      //q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      //q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      //q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      //q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      //q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      //q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      //q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      //q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      //q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      //q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      //q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      //q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      //q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      //q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      //q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      //q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      //q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      //q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      //q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      //q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      //q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      //q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      //q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      //q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      //q_dirBNW = &QQ[BNW * numberOfBCnodes];
       //////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -187,32 +187,32 @@ extern "C" __global__ void QADPress7(  real* DD,
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_W    = (D.f[dirE   ])[ke   ];
-      f_E    = (D.f[dirW   ])[kw   ];
-      f_S    = (D.f[dirN   ])[kn   ];
-      f_N    = (D.f[dirS   ])[ks   ];
-      f_B    = (D.f[dirT   ])[kt   ];
-      f_T    = (D.f[dirB   ])[kb   ];
-      f_SW   = (D.f[dirNE  ])[kne  ];
-      f_NE   = (D.f[dirSW  ])[ksw  ];
-      f_NW   = (D.f[dirSE  ])[kse  ];
-      f_SE   = (D.f[dirNW  ])[knw  ];
-      f_BW   = (D.f[dirTE  ])[kte  ];
-      f_TE   = (D.f[dirBW  ])[kbw  ];
-      f_TW   = (D.f[dirBE  ])[kbe  ];
-      f_BE   = (D.f[dirTW  ])[ktw  ];
-      f_BS   = (D.f[dirTN  ])[ktn  ];
-      f_TN   = (D.f[dirBS  ])[kbs  ];
-      f_TS   = (D.f[dirBN  ])[kbn  ];
-      f_BN   = (D.f[dirTS  ])[kts  ];
-      f_BSW  = (D.f[dirTNE ])[ktne ];
-      f_BNE  = (D.f[dirTSW ])[ktsw ];
-      f_BNW  = (D.f[dirTSE ])[ktse ];
-      f_BSE  = (D.f[dirTNW ])[ktnw ];
-      f_TSW  = (D.f[dirBNE ])[kbne ];
-      f_TNE  = (D.f[dirBSW ])[kbsw ];
-      f_TNW  = (D.f[dirBSE ])[kbse ];
-      f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_W    = (D.f[E   ])[ke   ];
+      f_E    = (D.f[W   ])[kw   ];
+      f_S    = (D.f[N   ])[kn   ];
+      f_N    = (D.f[S   ])[ks   ];
+      f_B    = (D.f[T   ])[kt   ];
+      f_T    = (D.f[B   ])[kb   ];
+      f_SW   = (D.f[NE  ])[kne  ];
+      f_NE   = (D.f[SW  ])[ksw  ];
+      f_NW   = (D.f[SE  ])[kse  ];
+      f_SE   = (D.f[NW  ])[knw  ];
+      f_BW   = (D.f[TE  ])[kte  ];
+      f_TE   = (D.f[BW  ])[kbw  ];
+      f_TW   = (D.f[BE  ])[kbe  ];
+      f_BE   = (D.f[TW  ])[ktw  ];
+      f_BS   = (D.f[TN  ])[ktn  ];
+      f_TN   = (D.f[BS  ])[kbs  ];
+      f_TS   = (D.f[BN  ])[kbn  ];
+      f_BN   = (D.f[TS  ])[kts  ];
+      f_BSW  = (D.f[TNE ])[ktne ];
+      f_BNE  = (D.f[TSW ])[ktsw ];
+      f_BNW  = (D.f[TSE ])[ktse ];
+      f_BSE  = (D.f[TNW ])[ktnw ];
+      f_TSW  = (D.f[BNE ])[kbne ];
+      f_TNE  = (D.f[BSW ])[kbsw ];
+      f_TNW  = (D.f[BSE ])[kbse ];
+      f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       /*real drho*/;
       //real vx1_Inflow   = zero;
@@ -466,125 +466,125 @@ extern "C" __global__ void QADPress27( real* DD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
 
    Distributions27 D27;
    if (isEvenTimestep==true)
    {
-      D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+      D27.f[E   ] = &DD27[E   *size_Mat];
+      D27.f[W   ] = &DD27[W   *size_Mat];
+      D27.f[N   ] = &DD27[N   *size_Mat];
+      D27.f[S   ] = &DD27[S   *size_Mat];
+      D27.f[T   ] = &DD27[T   *size_Mat];
+      D27.f[B   ] = &DD27[B   *size_Mat];
+      D27.f[NE  ] = &DD27[NE  *size_Mat];
+      D27.f[SW  ] = &DD27[SW  *size_Mat];
+      D27.f[SE  ] = &DD27[SE  *size_Mat];
+      D27.f[NW  ] = &DD27[NW  *size_Mat];
+      D27.f[TE  ] = &DD27[TE  *size_Mat];
+      D27.f[BW  ] = &DD27[BW  *size_Mat];
+      D27.f[BE  ] = &DD27[BE  *size_Mat];
+      D27.f[TW  ] = &DD27[TW  *size_Mat];
+      D27.f[TN  ] = &DD27[TN  *size_Mat];
+      D27.f[BS  ] = &DD27[BS  *size_Mat];
+      D27.f[BN  ] = &DD27[BN  *size_Mat];
+      D27.f[TS  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+      D27.f[TNE ] = &DD27[TNE *size_Mat];
+      D27.f[TSW ] = &DD27[TSW *size_Mat];
+      D27.f[TSE ] = &DD27[TSE *size_Mat];
+      D27.f[TNW ] = &DD27[TNW *size_Mat];
+      D27.f[BNE ] = &DD27[BNE *size_Mat];
+      D27.f[BSW ] = &DD27[BSW *size_Mat];
+      D27.f[BSE ] = &DD27[BSE *size_Mat];
+      D27.f[BNW ] = &DD27[BNW *size_Mat];
    } 
    else
    {
-      D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+      D27.f[W   ] = &DD27[E   *size_Mat];
+      D27.f[E   ] = &DD27[W   *size_Mat];
+      D27.f[S   ] = &DD27[N   *size_Mat];
+      D27.f[N   ] = &DD27[S   *size_Mat];
+      D27.f[B   ] = &DD27[T   *size_Mat];
+      D27.f[T   ] = &DD27[B   *size_Mat];
+      D27.f[SW  ] = &DD27[NE  *size_Mat];
+      D27.f[NE  ] = &DD27[SW  *size_Mat];
+      D27.f[NW  ] = &DD27[SE  *size_Mat];
+      D27.f[SE  ] = &DD27[NW  *size_Mat];
+      D27.f[BW  ] = &DD27[TE  *size_Mat];
+      D27.f[TE  ] = &DD27[BW  *size_Mat];
+      D27.f[TW  ] = &DD27[BE  *size_Mat];
+      D27.f[BE  ] = &DD27[TW  *size_Mat];
+      D27.f[BS  ] = &DD27[TN  *size_Mat];
+      D27.f[TN  ] = &DD27[BS  *size_Mat];
+      D27.f[TS  ] = &DD27[BN  *size_Mat];
+      D27.f[BN  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+      D27.f[TNE ] = &DD27[BSW *size_Mat];
+      D27.f[TSW ] = &DD27[BNE *size_Mat];
+      D27.f[TSE ] = &DD27[BNW *size_Mat];
+      D27.f[TNW ] = &DD27[BSE *size_Mat];
+      D27.f[BNE ] = &DD27[TSW *size_Mat];
+      D27.f[BSW ] = &DD27[TNE *size_Mat];
+      D27.f[BSE ] = &DD27[TNW *size_Mat];
+      D27.f[BNW ] = &DD27[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -605,32 +605,32 @@ extern "C" __global__ void QADPress27( real* DD,
          *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
          *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
          *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -662,33 +662,33 @@ extern "C" __global__ void QADPress27( real* DD,
       unsigned int ktne = KQK;
       unsigned int kbsw = neighborZ[ksw];
       ////////////////////////////////////////////////////////////////////////////////
-      real f_W    = (D.f[dirE   ])[ke   ];
-      real f_E    = (D.f[dirW   ])[kw   ];
-      real f_S    = (D.f[dirN   ])[kn   ];
-      real f_N    = (D.f[dirS   ])[ks   ];
-      real f_B    = (D.f[dirT   ])[kt   ];
-      real f_T    = (D.f[dirB   ])[kb   ];
-      real f_SW   = (D.f[dirNE  ])[kne  ];
-      real f_NE   = (D.f[dirSW  ])[ksw  ];
-      real f_NW   = (D.f[dirSE  ])[kse  ];
-      real f_SE   = (D.f[dirNW  ])[knw  ];
-      real f_BW   = (D.f[dirTE  ])[kte  ];
-      real f_TE   = (D.f[dirBW  ])[kbw  ];
-      real f_TW   = (D.f[dirBE  ])[kbe  ];
-      real f_BE   = (D.f[dirTW  ])[ktw  ];
-      real f_BS   = (D.f[dirTN  ])[ktn  ];
-      real f_TN   = (D.f[dirBS  ])[kbs  ];
-      real f_TS   = (D.f[dirBN  ])[kbn  ];
-      real f_BN   = (D.f[dirTS  ])[kts  ];
+      real f_W    = (D.f[E   ])[ke   ];
+      real f_E    = (D.f[W   ])[kw   ];
+      real f_S    = (D.f[N   ])[kn   ];
+      real f_N    = (D.f[S   ])[ks   ];
+      real f_B    = (D.f[T   ])[kt   ];
+      real f_T    = (D.f[B   ])[kb   ];
+      real f_SW   = (D.f[NE  ])[kne  ];
+      real f_NE   = (D.f[SW  ])[ksw  ];
+      real f_NW   = (D.f[SE  ])[kse  ];
+      real f_SE   = (D.f[NW  ])[knw  ];
+      real f_BW   = (D.f[TE  ])[kte  ];
+      real f_TE   = (D.f[BW  ])[kbw  ];
+      real f_TW   = (D.f[BE  ])[kbe  ];
+      real f_BE   = (D.f[TW  ])[ktw  ];
+      real f_BS   = (D.f[TN  ])[ktn  ];
+      real f_TN   = (D.f[BS  ])[kbs  ];
+      real f_TS   = (D.f[BN  ])[kbn  ];
+      real f_BN   = (D.f[TS  ])[kts  ];
       real f_ZERO = (D.f[dirREST])[kzero];
-      real f_BSW  = (D.f[dirTNE ])[ktne ];
-      real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      real f_BNW  = (D.f[dirTSE ])[ktse ];
-      real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      real f_TSW  = (D.f[dirBNE ])[kbne ];
-      real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      real f_TNW  = (D.f[dirBSE ])[kbse ];
-      real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      real f_BSW  = (D.f[TNE ])[ktne ];
+      real f_BNE  = (D.f[TSW ])[ktsw ];
+      real f_BNW  = (D.f[TSE ])[ktse ];
+      real f_BSE  = (D.f[TNW ])[ktnw ];
+      real f_TSW  = (D.f[BNE ])[kbne ];
+      real f_TNE  = (D.f[BSW ])[kbsw ];
+      real f_TNW  = (D.f[BSE ])[kbse ];
+      real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, /*drho, feq,*/ q;
       //drho   = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -714,33 +714,33 @@ extern "C" __global__ void QADPress27( real* DD,
       vx2            =  OORho*((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S));
       vx3            =  OORho*((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B));
       ////////////////////////////////////////////////////////////////////////////////
-      real f27_W    = (D27.f[dirE   ])[ke   ];
-      real f27_E    = (D27.f[dirW   ])[kw   ];
-      real f27_S    = (D27.f[dirN   ])[kn   ];
-      real f27_N    = (D27.f[dirS   ])[ks   ];
-      real f27_B    = (D27.f[dirT   ])[kt   ];
-      real f27_T    = (D27.f[dirB   ])[kb   ];
-      real f27_SW   = (D27.f[dirNE  ])[kne  ];
-      real f27_NE   = (D27.f[dirSW  ])[ksw  ];
-      real f27_NW   = (D27.f[dirSE  ])[kse  ];
-      real f27_SE   = (D27.f[dirNW  ])[knw  ];
-      real f27_BW   = (D27.f[dirTE  ])[kte  ];
-      real f27_TE   = (D27.f[dirBW  ])[kbw  ];
-      real f27_TW   = (D27.f[dirBE  ])[kbe  ];
-      real f27_BE   = (D27.f[dirTW  ])[ktw  ];
-      real f27_BS   = (D27.f[dirTN  ])[ktn  ];
-      real f27_TN   = (D27.f[dirBS  ])[kbs  ];
-      real f27_TS   = (D27.f[dirBN  ])[kbn  ];
-      real f27_BN   = (D27.f[dirTS  ])[kts  ];
+      real f27_W    = (D27.f[E   ])[ke   ];
+      real f27_E    = (D27.f[W   ])[kw   ];
+      real f27_S    = (D27.f[N   ])[kn   ];
+      real f27_N    = (D27.f[S   ])[ks   ];
+      real f27_B    = (D27.f[T   ])[kt   ];
+      real f27_T    = (D27.f[B   ])[kb   ];
+      real f27_SW   = (D27.f[NE  ])[kne  ];
+      real f27_NE   = (D27.f[SW  ])[ksw  ];
+      real f27_NW   = (D27.f[SE  ])[kse  ];
+      real f27_SE   = (D27.f[NW  ])[knw  ];
+      real f27_BW   = (D27.f[TE  ])[kte  ];
+      real f27_TE   = (D27.f[BW  ])[kbw  ];
+      real f27_TW   = (D27.f[BE  ])[kbe  ];
+      real f27_BE   = (D27.f[TW  ])[ktw  ];
+      real f27_BS   = (D27.f[TN  ])[ktn  ];
+      real f27_TN   = (D27.f[BS  ])[kbs  ];
+      real f27_TS   = (D27.f[BN  ])[kbn  ];
+      real f27_BN   = (D27.f[TS  ])[kts  ];
       real f27_ZERO = (D27.f[dirREST])[kzero];
-      real f27_BSW  = (D27.f[dirTNE ])[ktne ];
-      real f27_BNE  = (D27.f[dirTSW ])[ktsw ];
-      real f27_BNW  = (D27.f[dirTSE ])[ktse ];
-      real f27_BSE  = (D27.f[dirTNW ])[ktnw ];
-      real f27_TSW  = (D27.f[dirBNE ])[kbne ];
-      real f27_TNE  = (D27.f[dirBSW ])[kbsw ];
-      real f27_TNW  = (D27.f[dirBSE ])[kbse ];
-      real f27_TSE  = (D27.f[dirBNW ])[kbnw ];
+      real f27_BSW  = (D27.f[TNE ])[ktne ];
+      real f27_BNE  = (D27.f[TSW ])[ktsw ];
+      real f27_BNW  = (D27.f[TSE ])[ktse ];
+      real f27_BSE  = (D27.f[TNW ])[ktnw ];
+      real f27_TSW  = (D27.f[BNE ])[kbne ];
+      real f27_TNE  = (D27.f[BSW ])[kbsw ];
+      real f27_TNW  = (D27.f[BSE ])[kbse ];
+      real f27_TSE  = (D27.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
       ////////////////////////////////////////////////////////////////////////////////
@@ -848,94 +848,94 @@ extern "C" __global__ void QADPress27( real* DD,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+         D27.f[E   ] = &DD27[E   *size_Mat];
+         D27.f[W   ] = &DD27[W   *size_Mat];
+         D27.f[N   ] = &DD27[N   *size_Mat];
+         D27.f[S   ] = &DD27[S   *size_Mat];
+         D27.f[T   ] = &DD27[T   *size_Mat];
+         D27.f[B   ] = &DD27[B   *size_Mat];
+         D27.f[NE  ] = &DD27[NE  *size_Mat];
+         D27.f[SW  ] = &DD27[SW  *size_Mat];
+         D27.f[SE  ] = &DD27[SE  *size_Mat];
+         D27.f[NW  ] = &DD27[NW  *size_Mat];
+         D27.f[TE  ] = &DD27[TE  *size_Mat];
+         D27.f[BW  ] = &DD27[BW  *size_Mat];
+         D27.f[BE  ] = &DD27[BE  *size_Mat];
+         D27.f[TW  ] = &DD27[TW  *size_Mat];
+         D27.f[TN  ] = &DD27[TN  *size_Mat];
+         D27.f[BS  ] = &DD27[BS  *size_Mat];
+         D27.f[BN  ] = &DD27[BN  *size_Mat];
+         D27.f[TS  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+         D27.f[TNE ] = &DD27[TNE *size_Mat];
+         D27.f[TSW ] = &DD27[TSW *size_Mat];
+         D27.f[TSE ] = &DD27[TSE *size_Mat];
+         D27.f[TNW ] = &DD27[TNW *size_Mat];
+         D27.f[BNE ] = &DD27[BNE *size_Mat];
+         D27.f[BSW ] = &DD27[BSW *size_Mat];
+         D27.f[BSE ] = &DD27[BSE *size_Mat];
+         D27.f[BNW ] = &DD27[BNW *size_Mat];
       } 
       else
       {
-         D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+         D27.f[W   ] = &DD27[E   *size_Mat];
+         D27.f[E   ] = &DD27[W   *size_Mat];
+         D27.f[S   ] = &DD27[N   *size_Mat];
+         D27.f[N   ] = &DD27[S   *size_Mat];
+         D27.f[B   ] = &DD27[T   *size_Mat];
+         D27.f[T   ] = &DD27[B   *size_Mat];
+         D27.f[SW  ] = &DD27[NE  *size_Mat];
+         D27.f[NE  ] = &DD27[SW  *size_Mat];
+         D27.f[NW  ] = &DD27[SE  *size_Mat];
+         D27.f[SE  ] = &DD27[NW  *size_Mat];
+         D27.f[BW  ] = &DD27[TE  *size_Mat];
+         D27.f[TE  ] = &DD27[BW  *size_Mat];
+         D27.f[TW  ] = &DD27[BE  *size_Mat];
+         D27.f[BE  ] = &DD27[TW  *size_Mat];
+         D27.f[BS  ] = &DD27[TN  *size_Mat];
+         D27.f[TN  ] = &DD27[BS  *size_Mat];
+         D27.f[TS  ] = &DD27[BN  *size_Mat];
+         D27.f[BN  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+         D27.f[TNE ] = &DD27[BSW *size_Mat];
+         D27.f[TSW ] = &DD27[BNE *size_Mat];
+         D27.f[TSE ] = &DD27[BNW *size_Mat];
+         D27.f[TNW ] = &DD27[BSE *size_Mat];
+         D27.f[BNE ] = &DD27[TSW *size_Mat];
+         D27.f[BSW ] = &DD27[TNE *size_Mat];
+         D27.f[BSE ] = &DD27[TNW *size_Mat];
+         D27.f[BNW ] = &DD27[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
       //(D.f[dirREST])[k]=c1o10;
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirW  ])[kw  ]=(c2o1*feqW27_W  -(f27_E  *(q*omegaD-c1o1)-omegaD*feq27_E  *(q-c1o1))/(omegaD-c1o1)+f27_W  *q)/(q+c1o1);
-      q = q_dirW[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirE  ])[ke  ]=(c2o1*feqW27_E  -(f27_W  *(q*omegaD-c1o1)-omegaD*feq27_W  *(q-c1o1))/(omegaD-c1o1)+f27_E  *q)/(q+c1o1);
-      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirS  ])[ks  ]=(c2o1*feqW27_S  -(f27_N  *(q*omegaD-c1o1)-omegaD*feq27_N  *(q-c1o1))/(omegaD-c1o1)+f27_S  *q)/(q+c1o1);
-      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirN  ])[kn  ]=(c2o1*feqW27_N  -(f27_S  *(q*omegaD-c1o1)-omegaD*feq27_S  *(q-c1o1))/(omegaD-c1o1)+f27_N  *q)/(q+c1o1);
-      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirB  ])[kb  ]=(c2o1*feqW27_B  -(f27_T  *(q*omegaD-c1o1)-omegaD*feq27_T  *(q-c1o1))/(omegaD-c1o1)+f27_B  *q)/(q+c1o1);
-      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirT  ])[kt  ]=(c2o1*feqW27_T  -(f27_B  *(q*omegaD-c1o1)-omegaD*feq27_B  *(q-c1o1))/(omegaD-c1o1)+f27_T  *q)/(q+c1o1);
-      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirSW ])[ksw ]=(c2o1*feqW27_SW -(f27_NE *(q*omegaD-c1o1)-omegaD*feq27_NE *(q-c1o1))/(omegaD-c1o1)+f27_SW *q)/(q+c1o1);
-      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirNE ])[kne ]=(c2o1*feqW27_NE -(f27_SW *(q*omegaD-c1o1)-omegaD*feq27_SW *(q-c1o1))/(omegaD-c1o1)+f27_NE *q)/(q+c1o1);
-      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirNW ])[knw ]=(c2o1*feqW27_NW -(f27_SE *(q*omegaD-c1o1)-omegaD*feq27_SE *(q-c1o1))/(omegaD-c1o1)+f27_NW *q)/(q+c1o1);
-      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirSE ])[kse ]=(c2o1*feqW27_SE -(f27_NW *(q*omegaD-c1o1)-omegaD*feq27_NW *(q-c1o1))/(omegaD-c1o1)+f27_SE *q)/(q+c1o1);
-      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBW ])[kbw ]=(c2o1*feqW27_BW -(f27_TE *(q*omegaD-c1o1)-omegaD*feq27_TE *(q-c1o1))/(omegaD-c1o1)+f27_BW *q)/(q+c1o1);
-      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTE ])[kte ]=(c2o1*feqW27_TE -(f27_BW *(q*omegaD-c1o1)-omegaD*feq27_BW *(q-c1o1))/(omegaD-c1o1)+f27_TE *q)/(q+c1o1);
-      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTW ])[ktw ]=(c2o1*feqW27_TW -(f27_BE *(q*omegaD-c1o1)-omegaD*feq27_BE *(q-c1o1))/(omegaD-c1o1)+f27_TW *q)/(q+c1o1);
-      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBE ])[kbe ]=(c2o1*feqW27_BE -(f27_TW *(q*omegaD-c1o1)-omegaD*feq27_TW *(q-c1o1))/(omegaD-c1o1)+f27_BE *q)/(q+c1o1);
-      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBS ])[kbs ]=(c2o1*feqW27_BS -(f27_TN *(q*omegaD-c1o1)-omegaD*feq27_TN *(q-c1o1))/(omegaD-c1o1)+f27_BS *q)/(q+c1o1);
-      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTN ])[ktn ]=(c2o1*feqW27_TN -(f27_BS *(q*omegaD-c1o1)-omegaD*feq27_BS *(q-c1o1))/(omegaD-c1o1)+f27_TN *q)/(q+c1o1);
-      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTS ])[kts ]=(c2o1*feqW27_TS -(f27_BN *(q*omegaD-c1o1)-omegaD*feq27_BN *(q-c1o1))/(omegaD-c1o1)+f27_TS *q)/(q+c1o1);
-      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBN ])[kbn ]=(c2o1*feqW27_BN -(f27_TS *(q*omegaD-c1o1)-omegaD*feq27_TS *(q-c1o1))/(omegaD-c1o1)+f27_BN *q)/(q+c1o1);
-      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSW])[kbsw]=(c2o1*feqW27_BSW-(f27_TNE*(q*omegaD-c1o1)-omegaD*feq27_TNE*(q-c1o1))/(omegaD-c1o1)+f27_BSW*q)/(q+c1o1);
-      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNE])[ktne]=(c2o1*feqW27_TNE-(f27_BSW*(q*omegaD-c1o1)-omegaD*feq27_BSW*(q-c1o1))/(omegaD-c1o1)+f27_TNE*q)/(q+c1o1);
-      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSW])[ktsw]=(c2o1*feqW27_TSW-(f27_BNE*(q*omegaD-c1o1)-omegaD*feq27_BNE*(q-c1o1))/(omegaD-c1o1)+f27_TSW*q)/(q+c1o1);
-      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNE])[kbne]=(c2o1*feqW27_BNE-(f27_TSW*(q*omegaD-c1o1)-omegaD*feq27_TSW*(q-c1o1))/(omegaD-c1o1)+f27_BNE*q)/(q+c1o1);
-      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNW])[kbnw]=(c2o1*feqW27_BNW-(f27_TSE*(q*omegaD-c1o1)-omegaD*feq27_TSE*(q-c1o1))/(omegaD-c1o1)+f27_BNW*q)/(q+c1o1);
-      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSE])[ktse]=(c2o1*feqW27_TSE-(f27_BNW*(q*omegaD-c1o1)-omegaD*feq27_BNW*(q-c1o1))/(omegaD-c1o1)+f27_TSE*q)/(q+c1o1);
-      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNW])[ktnw]=(c2o1*feqW27_TNW-(f27_BSE*(q*omegaD-c1o1)-omegaD*feq27_BSE*(q-c1o1))/(omegaD-c1o1)+f27_TNW*q)/(q+c1o1);
-      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSE])[kbse]=(c2o1*feqW27_BSE-(f27_TNW*(q*omegaD-c1o1)-omegaD*feq27_TNW*(q-c1o1))/(omegaD-c1o1)+f27_BSE*q)/(q+c1o1);
+      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1) (D27.f[W  ])[kw  ]=(c2o1*feqW27_W  -(f27_E  *(q*omegaD-c1o1)-omegaD*feq27_E  *(q-c1o1))/(omegaD-c1o1)+f27_W  *q)/(q+c1o1);
+      q = q_dirW[k];   if (q>=c0o1 && q<=c1o1) (D27.f[E  ])[ke  ]=(c2o1*feqW27_E  -(f27_W  *(q*omegaD-c1o1)-omegaD*feq27_W  *(q-c1o1))/(omegaD-c1o1)+f27_E  *q)/(q+c1o1);
+      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1) (D27.f[S  ])[ks  ]=(c2o1*feqW27_S  -(f27_N  *(q*omegaD-c1o1)-omegaD*feq27_N  *(q-c1o1))/(omegaD-c1o1)+f27_S  *q)/(q+c1o1);
+      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1) (D27.f[N  ])[kn  ]=(c2o1*feqW27_N  -(f27_S  *(q*omegaD-c1o1)-omegaD*feq27_S  *(q-c1o1))/(omegaD-c1o1)+f27_N  *q)/(q+c1o1);
+      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1) (D27.f[B  ])[kb  ]=(c2o1*feqW27_B  -(f27_T  *(q*omegaD-c1o1)-omegaD*feq27_T  *(q-c1o1))/(omegaD-c1o1)+f27_B  *q)/(q+c1o1);
+      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1) (D27.f[T  ])[kt  ]=(c2o1*feqW27_T  -(f27_B  *(q*omegaD-c1o1)-omegaD*feq27_B  *(q-c1o1))/(omegaD-c1o1)+f27_T  *q)/(q+c1o1);
+      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[SW ])[ksw ]=(c2o1*feqW27_SW -(f27_NE *(q*omegaD-c1o1)-omegaD*feq27_NE *(q-c1o1))/(omegaD-c1o1)+f27_SW *q)/(q+c1o1);
+      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[NE ])[kne ]=(c2o1*feqW27_NE -(f27_SW *(q*omegaD-c1o1)-omegaD*feq27_SW *(q-c1o1))/(omegaD-c1o1)+f27_NE *q)/(q+c1o1);
+      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[NW ])[knw ]=(c2o1*feqW27_NW -(f27_SE *(q*omegaD-c1o1)-omegaD*feq27_SE *(q-c1o1))/(omegaD-c1o1)+f27_NW *q)/(q+c1o1);
+      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[SE ])[kse ]=(c2o1*feqW27_SE -(f27_NW *(q*omegaD-c1o1)-omegaD*feq27_NW *(q-c1o1))/(omegaD-c1o1)+f27_SE *q)/(q+c1o1);
+      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BW ])[kbw ]=(c2o1*feqW27_BW -(f27_TE *(q*omegaD-c1o1)-omegaD*feq27_TE *(q-c1o1))/(omegaD-c1o1)+f27_BW *q)/(q+c1o1);
+      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TE ])[kte ]=(c2o1*feqW27_TE -(f27_BW *(q*omegaD-c1o1)-omegaD*feq27_BW *(q-c1o1))/(omegaD-c1o1)+f27_TE *q)/(q+c1o1);
+      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TW ])[ktw ]=(c2o1*feqW27_TW -(f27_BE *(q*omegaD-c1o1)-omegaD*feq27_BE *(q-c1o1))/(omegaD-c1o1)+f27_TW *q)/(q+c1o1);
+      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BE ])[kbe ]=(c2o1*feqW27_BE -(f27_TW *(q*omegaD-c1o1)-omegaD*feq27_TW *(q-c1o1))/(omegaD-c1o1)+f27_BE *q)/(q+c1o1);
+      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BS ])[kbs ]=(c2o1*feqW27_BS -(f27_TN *(q*omegaD-c1o1)-omegaD*feq27_TN *(q-c1o1))/(omegaD-c1o1)+f27_BS *q)/(q+c1o1);
+      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TN ])[ktn ]=(c2o1*feqW27_TN -(f27_BS *(q*omegaD-c1o1)-omegaD*feq27_BS *(q-c1o1))/(omegaD-c1o1)+f27_TN *q)/(q+c1o1);
+      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TS ])[kts ]=(c2o1*feqW27_TS -(f27_BN *(q*omegaD-c1o1)-omegaD*feq27_BN *(q-c1o1))/(omegaD-c1o1)+f27_TS *q)/(q+c1o1);
+      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BN ])[kbn ]=(c2o1*feqW27_BN -(f27_TS *(q*omegaD-c1o1)-omegaD*feq27_TS *(q-c1o1))/(omegaD-c1o1)+f27_BN *q)/(q+c1o1);
+      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BSW])[kbsw]=(c2o1*feqW27_BSW-(f27_TNE*(q*omegaD-c1o1)-omegaD*feq27_TNE*(q-c1o1))/(omegaD-c1o1)+f27_BSW*q)/(q+c1o1);
+      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TNE])[ktne]=(c2o1*feqW27_TNE-(f27_BSW*(q*omegaD-c1o1)-omegaD*feq27_BSW*(q-c1o1))/(omegaD-c1o1)+f27_TNE*q)/(q+c1o1);
+      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TSW])[ktsw]=(c2o1*feqW27_TSW-(f27_BNE*(q*omegaD-c1o1)-omegaD*feq27_BNE*(q-c1o1))/(omegaD-c1o1)+f27_TSW*q)/(q+c1o1);
+      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BNE])[kbne]=(c2o1*feqW27_BNE-(f27_TSW*(q*omegaD-c1o1)-omegaD*feq27_TSW*(q-c1o1))/(omegaD-c1o1)+f27_BNE*q)/(q+c1o1);
+      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BNW])[kbnw]=(c2o1*feqW27_BNW-(f27_TSE*(q*omegaD-c1o1)-omegaD*feq27_TSE*(q-c1o1))/(omegaD-c1o1)+f27_BNW*q)/(q+c1o1);
+      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TSE])[ktse]=(c2o1*feqW27_TSE-(f27_BNW*(q*omegaD-c1o1)-omegaD*feq27_BNW*(q-c1o1))/(omegaD-c1o1)+f27_TSE*q)/(q+c1o1);
+      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TNW])[ktnw]=(c2o1*feqW27_TNW-(f27_BSE*(q*omegaD-c1o1)-omegaD*feq27_BSE*(q-c1o1))/(omegaD-c1o1)+f27_TNW*q)/(q+c1o1);
+      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BSE])[kbse]=(c2o1*feqW27_BSE-(f27_TNW*(q*omegaD-c1o1)-omegaD*feq27_TNW*(q-c1o1))/(omegaD-c1o1)+f27_BSE*q)/(q+c1o1);
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -995,125 +995,125 @@ extern "C" __global__ void QADPressNEQNeighbor27(
 	Distributions27 D;
 	if (isEvenTimestep == true)
 	{
-		D.f[dirE] = &DD[dirE   *size_Mat];
-		D.f[dirW] = &DD[dirW   *size_Mat];
-		D.f[dirN] = &DD[dirN   *size_Mat];
-		D.f[dirS] = &DD[dirS   *size_Mat];
-		D.f[dirT] = &DD[dirT   *size_Mat];
-		D.f[dirB] = &DD[dirB   *size_Mat];
-		D.f[dirNE] = &DD[dirNE  *size_Mat];
-		D.f[dirSW] = &DD[dirSW  *size_Mat];
-		D.f[dirSE] = &DD[dirSE  *size_Mat];
-		D.f[dirNW] = &DD[dirNW  *size_Mat];
-		D.f[dirTE] = &DD[dirTE  *size_Mat];
-		D.f[dirBW] = &DD[dirBW  *size_Mat];
-		D.f[dirBE] = &DD[dirBE  *size_Mat];
-		D.f[dirTW] = &DD[dirTW  *size_Mat];
-		D.f[dirTN] = &DD[dirTN  *size_Mat];
-		D.f[dirBS] = &DD[dirBS  *size_Mat];
-		D.f[dirBN] = &DD[dirBN  *size_Mat];
-		D.f[dirTS] = &DD[dirTS  *size_Mat];
+		D.f[E] = &DD[E   *size_Mat];
+		D.f[W] = &DD[W   *size_Mat];
+		D.f[N] = &DD[N   *size_Mat];
+		D.f[S] = &DD[S   *size_Mat];
+		D.f[T] = &DD[T   *size_Mat];
+		D.f[B] = &DD[B   *size_Mat];
+		D.f[NE] = &DD[NE  *size_Mat];
+		D.f[SW] = &DD[SW  *size_Mat];
+		D.f[SE] = &DD[SE  *size_Mat];
+		D.f[NW] = &DD[NW  *size_Mat];
+		D.f[TE] = &DD[TE  *size_Mat];
+		D.f[BW] = &DD[BW  *size_Mat];
+		D.f[BE] = &DD[BE  *size_Mat];
+		D.f[TW] = &DD[TW  *size_Mat];
+		D.f[TN] = &DD[TN  *size_Mat];
+		D.f[BS] = &DD[BS  *size_Mat];
+		D.f[BN] = &DD[BN  *size_Mat];
+		D.f[TS] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE] = &DD[dirTNE *size_Mat];
-		D.f[dirTSW] = &DD[dirTSW *size_Mat];
-		D.f[dirTSE] = &DD[dirTSE *size_Mat];
-		D.f[dirTNW] = &DD[dirTNW *size_Mat];
-		D.f[dirBNE] = &DD[dirBNE *size_Mat];
-		D.f[dirBSW] = &DD[dirBSW *size_Mat];
-		D.f[dirBSE] = &DD[dirBSE *size_Mat];
-		D.f[dirBNW] = &DD[dirBNW *size_Mat];
+		D.f[TNE] = &DD[TNE *size_Mat];
+		D.f[TSW] = &DD[TSW *size_Mat];
+		D.f[TSE] = &DD[TSE *size_Mat];
+		D.f[TNW] = &DD[TNW *size_Mat];
+		D.f[BNE] = &DD[BNE *size_Mat];
+		D.f[BSW] = &DD[BSW *size_Mat];
+		D.f[BSE] = &DD[BSE *size_Mat];
+		D.f[BNW] = &DD[BNW *size_Mat];
 	}
 	else
 	{
-		D.f[dirW] = &DD[dirE   *size_Mat];
-		D.f[dirE] = &DD[dirW   *size_Mat];
-		D.f[dirS] = &DD[dirN   *size_Mat];
-		D.f[dirN] = &DD[dirS   *size_Mat];
-		D.f[dirB] = &DD[dirT   *size_Mat];
-		D.f[dirT] = &DD[dirB   *size_Mat];
-		D.f[dirSW] = &DD[dirNE  *size_Mat];
-		D.f[dirNE] = &DD[dirSW  *size_Mat];
-		D.f[dirNW] = &DD[dirSE  *size_Mat];
-		D.f[dirSE] = &DD[dirNW  *size_Mat];
-		D.f[dirBW] = &DD[dirTE  *size_Mat];
-		D.f[dirTE] = &DD[dirBW  *size_Mat];
-		D.f[dirTW] = &DD[dirBE  *size_Mat];
-		D.f[dirBE] = &DD[dirTW  *size_Mat];
-		D.f[dirBS] = &DD[dirTN  *size_Mat];
-		D.f[dirTN] = &DD[dirBS  *size_Mat];
-		D.f[dirTS] = &DD[dirBN  *size_Mat];
-		D.f[dirBN] = &DD[dirTS  *size_Mat];
+		D.f[W] = &DD[E   *size_Mat];
+		D.f[E] = &DD[W   *size_Mat];
+		D.f[S] = &DD[N   *size_Mat];
+		D.f[N] = &DD[S   *size_Mat];
+		D.f[B] = &DD[T   *size_Mat];
+		D.f[T] = &DD[B   *size_Mat];
+		D.f[SW] = &DD[NE  *size_Mat];
+		D.f[NE] = &DD[SW  *size_Mat];
+		D.f[NW] = &DD[SE  *size_Mat];
+		D.f[SE] = &DD[NW  *size_Mat];
+		D.f[BW] = &DD[TE  *size_Mat];
+		D.f[TE] = &DD[BW  *size_Mat];
+		D.f[TW] = &DD[BE  *size_Mat];
+		D.f[BE] = &DD[TW  *size_Mat];
+		D.f[BS] = &DD[TN  *size_Mat];
+		D.f[TN] = &DD[BS  *size_Mat];
+		D.f[TS] = &DD[BN  *size_Mat];
+		D.f[BN] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE] = &DD[dirBSW *size_Mat];
-		D.f[dirTSW] = &DD[dirBNE *size_Mat];
-		D.f[dirTSE] = &DD[dirBNW *size_Mat];
-		D.f[dirTNW] = &DD[dirBSE *size_Mat];
-		D.f[dirBNE] = &DD[dirTSW *size_Mat];
-		D.f[dirBSW] = &DD[dirTNE *size_Mat];
-		D.f[dirBSE] = &DD[dirTNW *size_Mat];
-		D.f[dirBNW] = &DD[dirTSE *size_Mat];
+		D.f[TNE] = &DD[BSW *size_Mat];
+		D.f[TSW] = &DD[BNE *size_Mat];
+		D.f[TSE] = &DD[BNW *size_Mat];
+		D.f[TNW] = &DD[BSE *size_Mat];
+		D.f[BNE] = &DD[TSW *size_Mat];
+		D.f[BSW] = &DD[TNE *size_Mat];
+		D.f[BSE] = &DD[TNW *size_Mat];
+		D.f[BNW] = &DD[TSE *size_Mat];
 	}
 
 	Distributions27 D27;
 	if (isEvenTimestep == true)
 	{
-		D27.f[dirE] = &DD27[dirE   *size_Mat];
-		D27.f[dirW] = &DD27[dirW   *size_Mat];
-		D27.f[dirN] = &DD27[dirN   *size_Mat];
-		D27.f[dirS] = &DD27[dirS   *size_Mat];
-		D27.f[dirT] = &DD27[dirT   *size_Mat];
-		D27.f[dirB] = &DD27[dirB   *size_Mat];
-		D27.f[dirNE] = &DD27[dirNE  *size_Mat];
-		D27.f[dirSW] = &DD27[dirSW  *size_Mat];
-		D27.f[dirSE] = &DD27[dirSE  *size_Mat];
-		D27.f[dirNW] = &DD27[dirNW  *size_Mat];
-		D27.f[dirTE] = &DD27[dirTE  *size_Mat];
-		D27.f[dirBW] = &DD27[dirBW  *size_Mat];
-		D27.f[dirBE] = &DD27[dirBE  *size_Mat];
-		D27.f[dirTW] = &DD27[dirTW  *size_Mat];
-		D27.f[dirTN] = &DD27[dirTN  *size_Mat];
-		D27.f[dirBS] = &DD27[dirBS  *size_Mat];
-		D27.f[dirBN] = &DD27[dirBN  *size_Mat];
-		D27.f[dirTS] = &DD27[dirTS  *size_Mat];
+		D27.f[E] = &DD27[E   *size_Mat];
+		D27.f[W] = &DD27[W   *size_Mat];
+		D27.f[N] = &DD27[N   *size_Mat];
+		D27.f[S] = &DD27[S   *size_Mat];
+		D27.f[T] = &DD27[T   *size_Mat];
+		D27.f[B] = &DD27[B   *size_Mat];
+		D27.f[NE] = &DD27[NE  *size_Mat];
+		D27.f[SW] = &DD27[SW  *size_Mat];
+		D27.f[SE] = &DD27[SE  *size_Mat];
+		D27.f[NW] = &DD27[NW  *size_Mat];
+		D27.f[TE] = &DD27[TE  *size_Mat];
+		D27.f[BW] = &DD27[BW  *size_Mat];
+		D27.f[BE] = &DD27[BE  *size_Mat];
+		D27.f[TW] = &DD27[TW  *size_Mat];
+		D27.f[TN] = &DD27[TN  *size_Mat];
+		D27.f[BS] = &DD27[BS  *size_Mat];
+		D27.f[BN] = &DD27[BN  *size_Mat];
+		D27.f[TS] = &DD27[TS  *size_Mat];
 		D27.f[dirREST] = &DD27[dirREST*size_Mat];
-		D27.f[dirTNE] = &DD27[dirTNE *size_Mat];
-		D27.f[dirTSW] = &DD27[dirTSW *size_Mat];
-		D27.f[dirTSE] = &DD27[dirTSE *size_Mat];
-		D27.f[dirTNW] = &DD27[dirTNW *size_Mat];
-		D27.f[dirBNE] = &DD27[dirBNE *size_Mat];
-		D27.f[dirBSW] = &DD27[dirBSW *size_Mat];
-		D27.f[dirBSE] = &DD27[dirBSE *size_Mat];
-		D27.f[dirBNW] = &DD27[dirBNW *size_Mat];
+		D27.f[TNE] = &DD27[TNE *size_Mat];
+		D27.f[TSW] = &DD27[TSW *size_Mat];
+		D27.f[TSE] = &DD27[TSE *size_Mat];
+		D27.f[TNW] = &DD27[TNW *size_Mat];
+		D27.f[BNE] = &DD27[BNE *size_Mat];
+		D27.f[BSW] = &DD27[BSW *size_Mat];
+		D27.f[BSE] = &DD27[BSE *size_Mat];
+		D27.f[BNW] = &DD27[BNW *size_Mat];
 	}
 	else
 	{
-		D27.f[dirW] = &DD27[dirE   *size_Mat];
-		D27.f[dirE] = &DD27[dirW   *size_Mat];
-		D27.f[dirS] = &DD27[dirN   *size_Mat];
-		D27.f[dirN] = &DD27[dirS   *size_Mat];
-		D27.f[dirB] = &DD27[dirT   *size_Mat];
-		D27.f[dirT] = &DD27[dirB   *size_Mat];
-		D27.f[dirSW] = &DD27[dirNE  *size_Mat];
-		D27.f[dirNE] = &DD27[dirSW  *size_Mat];
-		D27.f[dirNW] = &DD27[dirSE  *size_Mat];
-		D27.f[dirSE] = &DD27[dirNW  *size_Mat];
-		D27.f[dirBW] = &DD27[dirTE  *size_Mat];
-		D27.f[dirTE] = &DD27[dirBW  *size_Mat];
-		D27.f[dirTW] = &DD27[dirBE  *size_Mat];
-		D27.f[dirBE] = &DD27[dirTW  *size_Mat];
-		D27.f[dirBS] = &DD27[dirTN  *size_Mat];
-		D27.f[dirTN] = &DD27[dirBS  *size_Mat];
-		D27.f[dirTS] = &DD27[dirBN  *size_Mat];
-		D27.f[dirBN] = &DD27[dirTS  *size_Mat];
+		D27.f[W] = &DD27[E   *size_Mat];
+		D27.f[E] = &DD27[W   *size_Mat];
+		D27.f[S] = &DD27[N   *size_Mat];
+		D27.f[N] = &DD27[S   *size_Mat];
+		D27.f[B] = &DD27[T   *size_Mat];
+		D27.f[T] = &DD27[B   *size_Mat];
+		D27.f[SW] = &DD27[NE  *size_Mat];
+		D27.f[NE] = &DD27[SW  *size_Mat];
+		D27.f[NW] = &DD27[SE  *size_Mat];
+		D27.f[SE] = &DD27[NW  *size_Mat];
+		D27.f[BW] = &DD27[TE  *size_Mat];
+		D27.f[TE] = &DD27[BW  *size_Mat];
+		D27.f[TW] = &DD27[BE  *size_Mat];
+		D27.f[BE] = &DD27[TW  *size_Mat];
+		D27.f[BS] = &DD27[TN  *size_Mat];
+		D27.f[TN] = &DD27[BS  *size_Mat];
+		D27.f[TS] = &DD27[BN  *size_Mat];
+		D27.f[BN] = &DD27[TS  *size_Mat];
 		D27.f[dirREST] = &DD27[dirREST*size_Mat];
-		D27.f[dirTNE] = &DD27[dirBSW *size_Mat];
-		D27.f[dirTSW] = &DD27[dirBNE *size_Mat];
-		D27.f[dirTSE] = &DD27[dirBNW *size_Mat];
-		D27.f[dirTNW] = &DD27[dirBSE *size_Mat];
-		D27.f[dirBNE] = &DD27[dirTSW *size_Mat];
-		D27.f[dirBSW] = &DD27[dirTNE *size_Mat];
-		D27.f[dirBSE] = &DD27[dirTNW *size_Mat];
-		D27.f[dirBNW] = &DD27[dirTSE *size_Mat];
+		D27.f[TNE] = &DD27[BSW *size_Mat];
+		D27.f[TSW] = &DD27[BNE *size_Mat];
+		D27.f[TSE] = &DD27[BNW *size_Mat];
+		D27.f[TNW] = &DD27[BSE *size_Mat];
+		D27.f[BNE] = &DD27[TSW *size_Mat];
+		D27.f[BSW] = &DD27[TNE *size_Mat];
+		D27.f[BSE] = &DD27[TNW *size_Mat];
+		D27.f[BNW] = &DD27[TSE *size_Mat];
 	}
 	////////////////////////////////////////////////////////////////////////////////
 	const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -1162,33 +1162,33 @@ extern "C" __global__ void QADPressNEQNeighbor27(
 		unsigned int kbsw = neighborZ[ksw];
 		////////////////////////////////////////////////////////////////////////////////
 		//distributions
-		real f_W =    (D.f[dirE])[ke];
-		real f_E =    (D.f[dirW])[kw];
-		real f_S =    (D.f[dirN])[kn];
-		real f_N =    (D.f[dirS])[ks];
-		real f_B =    (D.f[dirT])[kt];
-		real f_T =    (D.f[dirB])[kb];
-		real f_SW =   (D.f[dirNE])[kne];
-		real f_NE =   (D.f[dirSW])[ksw];
-		real f_NW =   (D.f[dirSE])[kse];
-		real f_SE =   (D.f[dirNW])[knw];
-		real f_BW =   (D.f[dirTE])[kte];
-		real f_TE =   (D.f[dirBW])[kbw];
-		real f_TW =   (D.f[dirBE])[kbe];
-		real f_BE =   (D.f[dirTW])[ktw];
-		real f_BS =   (D.f[dirTN])[ktn];
-		real f_TN =   (D.f[dirBS])[kbs];
-		real f_TS =   (D.f[dirBN])[kbn];
-		real f_BN =   (D.f[dirTS])[kts];
+		real f_W =    (D.f[E])[ke];
+		real f_E =    (D.f[W])[kw];
+		real f_S =    (D.f[N])[kn];
+		real f_N =    (D.f[S])[ks];
+		real f_B =    (D.f[T])[kt];
+		real f_T =    (D.f[B])[kb];
+		real f_SW =   (D.f[NE])[kne];
+		real f_NE =   (D.f[SW])[ksw];
+		real f_NW =   (D.f[SE])[kse];
+		real f_SE =   (D.f[NW])[knw];
+		real f_BW =   (D.f[TE])[kte];
+		real f_TE =   (D.f[BW])[kbw];
+		real f_TW =   (D.f[BE])[kbe];
+		real f_BE =   (D.f[TW])[ktw];
+		real f_BS =   (D.f[TN])[ktn];
+		real f_TN =   (D.f[BS])[kbs];
+		real f_TS =   (D.f[BN])[kbn];
+		real f_BN =   (D.f[TS])[kts];
 		real f_ZERO = (D.f[dirREST])[kzero];
-		real f_BSW =  (D.f[dirTNE])[ktne];
-		real f_BNE =  (D.f[dirTSW])[ktsw];
-		real f_BNW =  (D.f[dirTSE])[ktse];
-		real f_BSE =  (D.f[dirTNW])[ktnw];
-		real f_TSW =  (D.f[dirBNE])[kbne];
-		real f_TNE =  (D.f[dirBSW])[kbsw];
-		real f_TNW =  (D.f[dirBSE])[kbse];
-		real f_TSE =  (D.f[dirBNW])[kbnw];
+		real f_BSW =  (D.f[TNE])[ktne];
+		real f_BNE =  (D.f[TSW])[ktsw];
+		real f_BNW =  (D.f[TSE])[ktse];
+		real f_BSE =  (D.f[TNW])[ktnw];
+		real f_TSW =  (D.f[BNE])[kbne];
+		real f_TNE =  (D.f[BSW])[kbsw];
+		real f_TNW =  (D.f[BSE])[kbse];
+		real f_TSE =  (D.f[BNW])[kbnw];
 		////////////////////////////////////////////////////////////////////////////////
 		//macroscopic values
 		real rho0 = 
@@ -1212,33 +1212,33 @@ extern "C" __global__ void QADPressNEQNeighbor27(
 		//AD - BC Nodes
 		////////////////////////////////////////////////////////////////////////////////
 		//distributions
-		real f27_W =    (D27.f[dirE])[ke];
-		real f27_E =    (D27.f[dirW])[kw];
-		real f27_S =    (D27.f[dirN])[kn];
-		real f27_N =    (D27.f[dirS])[ks];
-		real f27_B =    (D27.f[dirT])[kt];
-		real f27_T =    (D27.f[dirB])[kb];
-		real f27_SW =   (D27.f[dirNE])[kne];
-		real f27_NE =   (D27.f[dirSW])[ksw];
-		real f27_NW =   (D27.f[dirSE])[kse];
-		real f27_SE =   (D27.f[dirNW])[knw];
-		real f27_BW =   (D27.f[dirTE])[kte];
-		real f27_TE =   (D27.f[dirBW])[kbw];
-		real f27_TW =   (D27.f[dirBE])[kbe];
-		real f27_BE =   (D27.f[dirTW])[ktw];
-		real f27_BS =   (D27.f[dirTN])[ktn];
-		real f27_TN =   (D27.f[dirBS])[kbs];
-		real f27_TS =   (D27.f[dirBN])[kbn];
-		real f27_BN =   (D27.f[dirTS])[kts];
+		real f27_W =    (D27.f[E])[ke];
+		real f27_E =    (D27.f[W])[kw];
+		real f27_S =    (D27.f[N])[kn];
+		real f27_N =    (D27.f[S])[ks];
+		real f27_B =    (D27.f[T])[kt];
+		real f27_T =    (D27.f[B])[kb];
+		real f27_SW =   (D27.f[NE])[kne];
+		real f27_NE =   (D27.f[SW])[ksw];
+		real f27_NW =   (D27.f[SE])[kse];
+		real f27_SE =   (D27.f[NW])[knw];
+		real f27_BW =   (D27.f[TE])[kte];
+		real f27_TE =   (D27.f[BW])[kbw];
+		real f27_TW =   (D27.f[BE])[kbe];
+		real f27_BE =   (D27.f[TW])[ktw];
+		real f27_BS =   (D27.f[TN])[ktn];
+		real f27_TN =   (D27.f[BS])[kbs];
+		real f27_TS =   (D27.f[BN])[kbn];
+		real f27_BN =   (D27.f[TS])[kts];
 		real f27_ZERO = (D27.f[dirREST])[kzero];
-		real f27_BSW =  (D27.f[dirTNE])[ktne];
-		real f27_BNE =  (D27.f[dirTSW])[ktsw];
-		real f27_BNW =  (D27.f[dirTSE])[ktse];
-		real f27_BSE =  (D27.f[dirTNW])[ktnw];
-		real f27_TSW =  (D27.f[dirBNE])[kbne];
-		real f27_TNE =  (D27.f[dirBSW])[kbsw];
-		real f27_TNW =  (D27.f[dirBSE])[kbse];
-		real f27_TSE =  (D27.f[dirBNW])[kbnw];
+		real f27_BSW =  (D27.f[TNE])[ktne];
+		real f27_BNE =  (D27.f[TSW])[ktsw];
+		real f27_BNW =  (D27.f[TSE])[ktse];
+		real f27_BSE =  (D27.f[TNW])[ktnw];
+		real f27_TSW =  (D27.f[BNE])[kbne];
+		real f27_TNE =  (D27.f[BSW])[kbsw];
+		real f27_TNW =  (D27.f[BSE])[kbse];
+		real f27_TSE =  (D27.f[BNW])[kbnw];
 		////////////////////////////////////////////////////////////////////////////////
 		real cusq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3);
 		////////////////////////////////////////////////////////////////////////////////
@@ -1344,33 +1344,33 @@ extern "C" __global__ void QADPressNEQNeighbor27(
 		unsigned int kNbsw = neighborZ[kNsw];
 		////////////////////////////////////////////////////////////////////////////////
 		//update distributions at neighbor nodes
-        (D27.f[dirE   ])[kNe   ] = f27_W   ;  
-        (D27.f[dirW   ])[kNw   ] = f27_E   ;	
-        (D27.f[dirN   ])[kNn   ] = f27_S   ;	
-        (D27.f[dirS   ])[kNs   ] = f27_N   ;	
-        (D27.f[dirT   ])[kNt   ] = f27_B   ;	
-        (D27.f[dirB   ])[kNb   ] = f27_T   ;	
-        (D27.f[dirNE  ])[kNne  ] = f27_SW  ;	
-        (D27.f[dirSW  ])[kNsw  ] = f27_NE  ;	
-        (D27.f[dirSE  ])[kNse  ] = f27_NW  ;	
-        (D27.f[dirNW  ])[kNnw  ] = f27_SE  ;	
-        (D27.f[dirTE  ])[kNte  ] = f27_BW  ;	
-        (D27.f[dirBW  ])[kNbw  ] = f27_TE  ;	
-        (D27.f[dirBE  ])[kNbe  ] = f27_TW  ;	
-        (D27.f[dirTW  ])[kNtw  ] = f27_BE  ;	
-        (D27.f[dirTN  ])[kNtn  ] = f27_BS  ;	
-        (D27.f[dirBS  ])[kNbs  ] = f27_TN  ;	
-        (D27.f[dirBN  ])[kNbn  ] = f27_TS  ;	
-        (D27.f[dirTS  ])[kNts  ] = f27_BN  ;	
+        (D27.f[E   ])[kNe   ] = f27_W   ;  
+        (D27.f[W   ])[kNw   ] = f27_E   ;	
+        (D27.f[N   ])[kNn   ] = f27_S   ;	
+        (D27.f[S   ])[kNs   ] = f27_N   ;	
+        (D27.f[T   ])[kNt   ] = f27_B   ;	
+        (D27.f[B   ])[kNb   ] = f27_T   ;	
+        (D27.f[NE  ])[kNne  ] = f27_SW  ;	
+        (D27.f[SW  ])[kNsw  ] = f27_NE  ;	
+        (D27.f[SE  ])[kNse  ] = f27_NW  ;	
+        (D27.f[NW  ])[kNnw  ] = f27_SE  ;	
+        (D27.f[TE  ])[kNte  ] = f27_BW  ;	
+        (D27.f[BW  ])[kNbw  ] = f27_TE  ;	
+        (D27.f[BE  ])[kNbe  ] = f27_TW  ;	
+        (D27.f[TW  ])[kNtw  ] = f27_BE  ;	
+        (D27.f[TN  ])[kNtn  ] = f27_BS  ;	
+        (D27.f[BS  ])[kNbs  ] = f27_TN  ;	
+        (D27.f[BN  ])[kNbn  ] = f27_TS  ;	
+        (D27.f[TS  ])[kNts  ] = f27_BN  ;	
         (D27.f[dirREST])[kNzero] = f27_ZERO;	
-        (D27.f[dirTNE ])[kNtne ] = f27_BSW ;	
-        (D27.f[dirTSW ])[kNtsw ] = f27_BNE ;	
-        (D27.f[dirTSE ])[kNtse ] = f27_BNW ;	
-        (D27.f[dirTNW ])[kNtnw ] = f27_BSE ;	
-        (D27.f[dirBNE ])[kNbne ] = f27_TSW ;	
-        (D27.f[dirBSW ])[kNbsw ] = f27_TNE ;	
-        (D27.f[dirBSE ])[kNbse ] = f27_TNW ;	
-        (D27.f[dirBNW ])[kNbnw ] = f27_TSE ;       
+        (D27.f[TNE ])[kNtne ] = f27_BSW ;	
+        (D27.f[TSW ])[kNtsw ] = f27_BNE ;	
+        (D27.f[TSE ])[kNtse ] = f27_BNW ;	
+        (D27.f[TNW ])[kNtnw ] = f27_BSE ;	
+        (D27.f[BNE ])[kNbne ] = f27_TSW ;	
+        (D27.f[BSW ])[kNbsw ] = f27_TNE ;	
+        (D27.f[BSE ])[kNbse ] = f27_TNW ;	
+        (D27.f[BNW ])[kNbnw ] = f27_TSE ;       
 	}
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1432,63 +1432,63 @@ extern "C" __global__ void QADVel7( real* DD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
 
    Distributions7 D7;
@@ -1530,12 +1530,12 @@ extern "C" __global__ void QADVel7( real* DD,
       //////////////////////////////////////////////////////////////////////////////////
       real  *q_dirE,   *q_dirW,   *q_dirN,   *q_dirS,   *q_dirT,   *q_dirB;//, 
 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
       //////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -1570,32 +1570,32 @@ extern "C" __global__ void QADVel7( real* DD,
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_W    = (D.f[dirE   ])[ke   ];
-      f_E    = (D.f[dirW   ])[kw   ];
-      f_S    = (D.f[dirN   ])[kn   ];
-      f_N    = (D.f[dirS   ])[ks   ];
-      f_B    = (D.f[dirT   ])[kt   ];
-      f_T    = (D.f[dirB   ])[kb   ];
-      f_SW   = (D.f[dirNE  ])[kne  ];
-      f_NE   = (D.f[dirSW  ])[ksw  ];
-      f_NW   = (D.f[dirSE  ])[kse  ];
-      f_SE   = (D.f[dirNW  ])[knw  ];
-      f_BW   = (D.f[dirTE  ])[kte  ];
-      f_TE   = (D.f[dirBW  ])[kbw  ];
-      f_TW   = (D.f[dirBE  ])[kbe  ];
-      f_BE   = (D.f[dirTW  ])[ktw  ];
-      f_BS   = (D.f[dirTN  ])[ktn  ];
-      f_TN   = (D.f[dirBS  ])[kbs  ];
-      f_TS   = (D.f[dirBN  ])[kbn  ];
-      f_BN   = (D.f[dirTS  ])[kts  ];
-      f_BSW  = (D.f[dirTNE ])[ktne ];
-      f_BNE  = (D.f[dirTSW ])[ktsw ];
-      f_BNW  = (D.f[dirTSE ])[ktse ];
-      f_BSE  = (D.f[dirTNW ])[ktnw ];
-      f_TSW  = (D.f[dirBNE ])[kbne ];
-      f_TNE  = (D.f[dirBSW ])[kbsw ];
-      f_TNW  = (D.f[dirBSE ])[kbse ];
-      f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_W    = (D.f[E   ])[ke   ];
+      f_E    = (D.f[W   ])[kw   ];
+      f_S    = (D.f[N   ])[kn   ];
+      f_N    = (D.f[S   ])[ks   ];
+      f_B    = (D.f[T   ])[kt   ];
+      f_T    = (D.f[B   ])[kb   ];
+      f_SW   = (D.f[NE  ])[kne  ];
+      f_NE   = (D.f[SW  ])[ksw  ];
+      f_NW   = (D.f[SE  ])[kse  ];
+      f_SE   = (D.f[NW  ])[knw  ];
+      f_BW   = (D.f[TE  ])[kte  ];
+      f_TE   = (D.f[BW  ])[kbw  ];
+      f_TW   = (D.f[BE  ])[kbe  ];
+      f_BE   = (D.f[TW  ])[ktw  ];
+      f_BS   = (D.f[TN  ])[ktn  ];
+      f_TN   = (D.f[BS  ])[kbs  ];
+      f_TS   = (D.f[BN  ])[kbn  ];
+      f_BN   = (D.f[TS  ])[kts  ];
+      f_BSW  = (D.f[TNE ])[ktne ];
+      f_BNE  = (D.f[TSW ])[ktsw ];
+      f_BNW  = (D.f[TSE ])[ktse ];
+      f_BSE  = (D.f[TNW ])[ktnw ];
+      f_TSW  = (D.f[BNE ])[kbne ];
+      f_TNE  = (D.f[BSW ])[kbsw ];
+      f_TNW  = (D.f[BSE ])[kbse ];
+      f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       /*real drho*/;
       real vx1_Inflow   = c0o1;
@@ -1849,125 +1849,125 @@ extern "C" __global__ void QADVel27(real* DD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
 
    Distributions27 D27;
    if (isEvenTimestep==true)
    {
-      D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+      D27.f[E   ] = &DD27[E   *size_Mat];
+      D27.f[W   ] = &DD27[W   *size_Mat];
+      D27.f[N   ] = &DD27[N   *size_Mat];
+      D27.f[S   ] = &DD27[S   *size_Mat];
+      D27.f[T   ] = &DD27[T   *size_Mat];
+      D27.f[B   ] = &DD27[B   *size_Mat];
+      D27.f[NE  ] = &DD27[NE  *size_Mat];
+      D27.f[SW  ] = &DD27[SW  *size_Mat];
+      D27.f[SE  ] = &DD27[SE  *size_Mat];
+      D27.f[NW  ] = &DD27[NW  *size_Mat];
+      D27.f[TE  ] = &DD27[TE  *size_Mat];
+      D27.f[BW  ] = &DD27[BW  *size_Mat];
+      D27.f[BE  ] = &DD27[BE  *size_Mat];
+      D27.f[TW  ] = &DD27[TW  *size_Mat];
+      D27.f[TN  ] = &DD27[TN  *size_Mat];
+      D27.f[BS  ] = &DD27[BS  *size_Mat];
+      D27.f[BN  ] = &DD27[BN  *size_Mat];
+      D27.f[TS  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+      D27.f[TNE ] = &DD27[TNE *size_Mat];
+      D27.f[TSW ] = &DD27[TSW *size_Mat];
+      D27.f[TSE ] = &DD27[TSE *size_Mat];
+      D27.f[TNW ] = &DD27[TNW *size_Mat];
+      D27.f[BNE ] = &DD27[BNE *size_Mat];
+      D27.f[BSW ] = &DD27[BSW *size_Mat];
+      D27.f[BSE ] = &DD27[BSE *size_Mat];
+      D27.f[BNW ] = &DD27[BNW *size_Mat];
    } 
    else
    {
-      D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+      D27.f[W   ] = &DD27[E   *size_Mat];
+      D27.f[E   ] = &DD27[W   *size_Mat];
+      D27.f[S   ] = &DD27[N   *size_Mat];
+      D27.f[N   ] = &DD27[S   *size_Mat];
+      D27.f[B   ] = &DD27[T   *size_Mat];
+      D27.f[T   ] = &DD27[B   *size_Mat];
+      D27.f[SW  ] = &DD27[NE  *size_Mat];
+      D27.f[NE  ] = &DD27[SW  *size_Mat];
+      D27.f[NW  ] = &DD27[SE  *size_Mat];
+      D27.f[SE  ] = &DD27[NW  *size_Mat];
+      D27.f[BW  ] = &DD27[TE  *size_Mat];
+      D27.f[TE  ] = &DD27[BW  *size_Mat];
+      D27.f[TW  ] = &DD27[BE  *size_Mat];
+      D27.f[BE  ] = &DD27[TW  *size_Mat];
+      D27.f[BS  ] = &DD27[TN  *size_Mat];
+      D27.f[TN  ] = &DD27[BS  *size_Mat];
+      D27.f[TS  ] = &DD27[BN  *size_Mat];
+      D27.f[BN  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+      D27.f[TNE ] = &DD27[BSW *size_Mat];
+      D27.f[TSW ] = &DD27[BNE *size_Mat];
+      D27.f[TSE ] = &DD27[BNW *size_Mat];
+      D27.f[TNW ] = &DD27[BSE *size_Mat];
+      D27.f[BNE ] = &DD27[TSW *size_Mat];
+      D27.f[BSW ] = &DD27[TNE *size_Mat];
+      D27.f[BSE ] = &DD27[TNW *size_Mat];
+      D27.f[BNW ] = &DD27[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -1988,32 +1988,32 @@ extern "C" __global__ void QADVel27(real* DD,
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -2045,33 +2045,33 @@ extern "C" __global__ void QADVel27(real* DD,
       unsigned int ktne = KQK;
       unsigned int kbsw = neighborZ[ksw];
       ////////////////////////////////////////////////////////////////////////////////
-      real f_W    = (D.f[dirE   ])[ke   ];
-      real f_E    = (D.f[dirW   ])[kw   ];
-      real f_S    = (D.f[dirN   ])[kn   ];
-      real f_N    = (D.f[dirS   ])[ks   ];
-      real f_B    = (D.f[dirT   ])[kt   ];
-      real f_T    = (D.f[dirB   ])[kb   ];
-      real f_SW   = (D.f[dirNE  ])[kne  ];
-      real f_NE   = (D.f[dirSW  ])[ksw  ];
-      real f_NW   = (D.f[dirSE  ])[kse  ];
-      real f_SE   = (D.f[dirNW  ])[knw  ];
-      real f_BW   = (D.f[dirTE  ])[kte  ];
-      real f_TE   = (D.f[dirBW  ])[kbw  ];
-      real f_TW   = (D.f[dirBE  ])[kbe  ];
-      real f_BE   = (D.f[dirTW  ])[ktw  ];
-      real f_BS   = (D.f[dirTN  ])[ktn  ];
-      real f_TN   = (D.f[dirBS  ])[kbs  ];
-      real f_TS   = (D.f[dirBN  ])[kbn  ];
-      real f_BN   = (D.f[dirTS  ])[kts  ];
+      real f_W    = (D.f[E   ])[ke   ];
+      real f_E    = (D.f[W   ])[kw   ];
+      real f_S    = (D.f[N   ])[kn   ];
+      real f_N    = (D.f[S   ])[ks   ];
+      real f_B    = (D.f[T   ])[kt   ];
+      real f_T    = (D.f[B   ])[kb   ];
+      real f_SW   = (D.f[NE  ])[kne  ];
+      real f_NE   = (D.f[SW  ])[ksw  ];
+      real f_NW   = (D.f[SE  ])[kse  ];
+      real f_SE   = (D.f[NW  ])[knw  ];
+      real f_BW   = (D.f[TE  ])[kte  ];
+      real f_TE   = (D.f[BW  ])[kbw  ];
+      real f_TW   = (D.f[BE  ])[kbe  ];
+      real f_BE   = (D.f[TW  ])[ktw  ];
+      real f_BS   = (D.f[TN  ])[ktn  ];
+      real f_TN   = (D.f[BS  ])[kbs  ];
+      real f_TS   = (D.f[BN  ])[kbn  ];
+      real f_BN   = (D.f[TS  ])[kts  ];
       real f_ZERO = (D.f[dirREST])[kzero];
-      real f_BSW  = (D.f[dirTNE ])[ktne ];
-      real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      real f_BNW  = (D.f[dirTSE ])[ktse ];
-      real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      real f_TSW  = (D.f[dirBNE ])[kbne ];
-      real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      real f_TNW  = (D.f[dirBSE ])[kbse ];
-      real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      real f_BSW  = (D.f[TNE ])[ktne ];
+      real f_BNE  = (D.f[TSW ])[ktsw ];
+      real f_BNW  = (D.f[TSE ])[ktse ];
+      real f_BSE  = (D.f[TNW ])[ktnw ];
+      real f_TSW  = (D.f[BNE ])[kbne ];
+      real f_TNE  = (D.f[BSW ])[kbsw ];
+      real f_TNW  = (D.f[BSE ])[kbse ];
+      real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, /*drho, feq,*/ q;
       ////drho   = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -2097,33 +2097,33 @@ extern "C" __global__ void QADVel27(real* DD,
       vx2     =  OORho*((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S));
       vx3     =  OORho*((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B));
       ////////////////////////////////////////////////////////////////////////////////
-      //real f27_W    = (D27.f[dirE   ])[ke   ];
-      //real f27_E    = (D27.f[dirW   ])[kw   ];
-      //real f27_S    = (D27.f[dirN   ])[kn   ];
-      //real f27_N    = (D27.f[dirS   ])[ks   ];
-      //real f27_B    = (D27.f[dirT   ])[kt   ];
-      //real f27_T    = (D27.f[dirB   ])[kb   ];
-      //real f27_SW   = (D27.f[dirNE  ])[kne  ];
-      //real f27_NE   = (D27.f[dirSW  ])[ksw  ];
-      //real f27_NW   = (D27.f[dirSE  ])[kse  ];
-      //real f27_SE   = (D27.f[dirNW  ])[knw  ];
-      //real f27_BW   = (D27.f[dirTE  ])[kte  ];
-      //real f27_TE   = (D27.f[dirBW  ])[kbw  ];
-      //real f27_TW   = (D27.f[dirBE  ])[kbe  ];
-      //real f27_BE   = (D27.f[dirTW  ])[ktw  ];
-      //real f27_BS   = (D27.f[dirTN  ])[ktn  ];
-      //real f27_TN   = (D27.f[dirBS  ])[kbs  ];
-      //real f27_TS   = (D27.f[dirBN  ])[kbn  ];
-      //real f27_BN   = (D27.f[dirTS  ])[kts  ];
+      //real f27_W    = (D27.f[E   ])[ke   ];
+      //real f27_E    = (D27.f[W   ])[kw   ];
+      //real f27_S    = (D27.f[N   ])[kn   ];
+      //real f27_N    = (D27.f[S   ])[ks   ];
+      //real f27_B    = (D27.f[T   ])[kt   ];
+      //real f27_T    = (D27.f[B   ])[kb   ];
+      //real f27_SW   = (D27.f[NE  ])[kne  ];
+      //real f27_NE   = (D27.f[SW  ])[ksw  ];
+      //real f27_NW   = (D27.f[SE  ])[kse  ];
+      //real f27_SE   = (D27.f[NW  ])[knw  ];
+      //real f27_BW   = (D27.f[TE  ])[kte  ];
+      //real f27_TE   = (D27.f[BW  ])[kbw  ];
+      //real f27_TW   = (D27.f[BE  ])[kbe  ];
+      //real f27_BE   = (D27.f[TW  ])[ktw  ];
+      //real f27_BS   = (D27.f[TN  ])[ktn  ];
+      //real f27_TN   = (D27.f[BS  ])[kbs  ];
+      //real f27_TS   = (D27.f[BN  ])[kbn  ];
+      //real f27_BN   = (D27.f[TS  ])[kts  ];
       //real f27_ZERO = (D27.f[dirREST])[kzero];
-      //real f27_BSW  = (D27.f[dirTNE ])[ktne ];
-      //real f27_BNE  = (D27.f[dirTSW ])[ktsw ];
-      //real f27_BNW  = (D27.f[dirTSE ])[ktse ];
-      //real f27_BSE  = (D27.f[dirTNW ])[ktnw ];
-      //real f27_TSW  = (D27.f[dirBNE ])[kbne ];
-      //real f27_TNE  = (D27.f[dirBSW ])[kbsw ];
-      //real f27_TNW  = (D27.f[dirBSE ])[kbse ];
-      //real f27_TSE  = (D27.f[dirBNW ])[kbnw ];
+      //real f27_BSW  = (D27.f[TNE ])[ktne ];
+      //real f27_BNE  = (D27.f[TSW ])[ktsw ];
+      //real f27_BNW  = (D27.f[TSE ])[ktse ];
+      //real f27_BSE  = (D27.f[TNW ])[ktnw ];
+      //real f27_TSW  = (D27.f[BNE ])[kbne ];
+      //real f27_TNE  = (D27.f[BSW ])[kbsw ];
+      //real f27_TNW  = (D27.f[BSE ])[kbse ];
+      //real f27_TSE  = (D27.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
       ////////////////////////////////////////////////////////////////////////////////
@@ -2232,63 +2232,63 @@ extern "C" __global__ void QADVel27(real* DD,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+         D27.f[E   ] = &DD27[E   *size_Mat];
+         D27.f[W   ] = &DD27[W   *size_Mat];
+         D27.f[N   ] = &DD27[N   *size_Mat];
+         D27.f[S   ] = &DD27[S   *size_Mat];
+         D27.f[T   ] = &DD27[T   *size_Mat];
+         D27.f[B   ] = &DD27[B   *size_Mat];
+         D27.f[NE  ] = &DD27[NE  *size_Mat];
+         D27.f[SW  ] = &DD27[SW  *size_Mat];
+         D27.f[SE  ] = &DD27[SE  *size_Mat];
+         D27.f[NW  ] = &DD27[NW  *size_Mat];
+         D27.f[TE  ] = &DD27[TE  *size_Mat];
+         D27.f[BW  ] = &DD27[BW  *size_Mat];
+         D27.f[BE  ] = &DD27[BE  *size_Mat];
+         D27.f[TW  ] = &DD27[TW  *size_Mat];
+         D27.f[TN  ] = &DD27[TN  *size_Mat];
+         D27.f[BS  ] = &DD27[BS  *size_Mat];
+         D27.f[BN  ] = &DD27[BN  *size_Mat];
+         D27.f[TS  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+         D27.f[TNE ] = &DD27[TNE *size_Mat];
+         D27.f[TSW ] = &DD27[TSW *size_Mat];
+         D27.f[TSE ] = &DD27[TSE *size_Mat];
+         D27.f[TNW ] = &DD27[TNW *size_Mat];
+         D27.f[BNE ] = &DD27[BNE *size_Mat];
+         D27.f[BSW ] = &DD27[BSW *size_Mat];
+         D27.f[BSE ] = &DD27[BSE *size_Mat];
+         D27.f[BNW ] = &DD27[BNW *size_Mat];
       } 
       else
       {
-         D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+         D27.f[W   ] = &DD27[E   *size_Mat];
+         D27.f[E   ] = &DD27[W   *size_Mat];
+         D27.f[S   ] = &DD27[N   *size_Mat];
+         D27.f[N   ] = &DD27[S   *size_Mat];
+         D27.f[B   ] = &DD27[T   *size_Mat];
+         D27.f[T   ] = &DD27[B   *size_Mat];
+         D27.f[SW  ] = &DD27[NE  *size_Mat];
+         D27.f[NE  ] = &DD27[SW  *size_Mat];
+         D27.f[NW  ] = &DD27[SE  *size_Mat];
+         D27.f[SE  ] = &DD27[NW  *size_Mat];
+         D27.f[BW  ] = &DD27[TE  *size_Mat];
+         D27.f[TE  ] = &DD27[BW  *size_Mat];
+         D27.f[TW  ] = &DD27[BE  *size_Mat];
+         D27.f[BE  ] = &DD27[TW  *size_Mat];
+         D27.f[BS  ] = &DD27[TN  *size_Mat];
+         D27.f[TN  ] = &DD27[BS  *size_Mat];
+         D27.f[TS  ] = &DD27[BN  *size_Mat];
+         D27.f[BN  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+         D27.f[TNE ] = &DD27[BSW *size_Mat];
+         D27.f[TSW ] = &DD27[BNE *size_Mat];
+         D27.f[TSE ] = &DD27[BNW *size_Mat];
+         D27.f[TNW ] = &DD27[BSE *size_Mat];
+         D27.f[BNE ] = &DD27[TSW *size_Mat];
+         D27.f[BSW ] = &DD27[TNE *size_Mat];
+         D27.f[BSE ] = &DD27[TNW *size_Mat];
+         D27.f[BNW ] = &DD27[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -2298,84 +2298,84 @@ extern "C" __global__ void QADVel27(real* DD,
       //Test
       //(D.f[dirREST])[k]=c1o10;
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      //(D27.f[dirW  ])[kw  ]= four;
-      //(D27.f[dirE  ])[ke  ]= four;
-      //(D27.f[dirS  ])[ks  ]= four;
-      //(D27.f[dirN  ])[kn  ]= four;
-      //(D27.f[dirB  ])[kb  ]= four;
-      //(D27.f[dirT  ])[kt  ]= four;
-      //(D27.f[dirSW ])[ksw ]= four;
-      //(D27.f[dirNE ])[kne ]= four;
-      //(D27.f[dirNW ])[knw ]= four;
-      //(D27.f[dirSE ])[kse ]= four;
-      //(D27.f[dirBW ])[kbw ]= four;
-      //(D27.f[dirTE ])[kte ]= four;
-      //(D27.f[dirTW ])[ktw ]= four;
-      //(D27.f[dirBE ])[kbe ]= four;
-      //(D27.f[dirBS ])[kbs ]= four;
-      //(D27.f[dirTN ])[ktn ]= four;
-      //(D27.f[dirTS ])[kts ]= four;
-      //(D27.f[dirBN ])[kbn ]= four;
-      //(D27.f[dirBSW])[kbsw]= four;
-      //(D27.f[dirTNE])[ktne]= four;
-      //(D27.f[dirTSW])[ktsw]= four;
-      //(D27.f[dirBNE])[kbne]= four;
-      //(D27.f[dirBNW])[kbnw]= four;
-      //(D27.f[dirTSE])[ktse]= four;
-      //(D27.f[dirTNW])[ktnw]= four;
-      //(D27.f[dirBSE])[kbse]= four;
-      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirW  ])[kw  ]= -feqW27_W  + c2o1 * c2o27  * TempD;
-      q = q_dirW[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirE  ])[ke  ]= -feqW27_E  + c2o1 * c2o27  * TempD;
-      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirS  ])[ks  ]= -feqW27_S  + c2o1 * c2o27  * TempD;
-      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirN  ])[kn  ]= -feqW27_N  + c2o1 * c2o27  * TempD;
-      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirB  ])[kb  ]= -feqW27_B  + c2o1 * c2o27  * TempD;
-      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirT  ])[kt  ]= -feqW27_T  + c2o1 * c2o27  * TempD;
-      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirSW ])[ksw ]= -feqW27_SW + c2o1 * c1o54  * TempD;
-      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirNE ])[kne ]= -feqW27_NE + c2o1 * c1o54  * TempD;
-      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirNW ])[knw ]= -feqW27_NW + c2o1 * c1o54  * TempD;
-      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirSE ])[kse ]= -feqW27_SE + c2o1 * c1o54  * TempD;
-      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBW ])[kbw ]= -feqW27_BW + c2o1 * c1o54  * TempD;
-      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTE ])[kte ]= -feqW27_TE + c2o1 * c1o54  * TempD;
-      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTW ])[ktw ]= -feqW27_TW + c2o1 * c1o54  * TempD;
-      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBE ])[kbe ]= -feqW27_BE + c2o1 * c1o54  * TempD;
-      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBS ])[kbs ]= -feqW27_BS + c2o1 * c1o54  * TempD;
-      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTN ])[ktn ]= -feqW27_TN + c2o1 * c1o54  * TempD;
-      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTS ])[kts ]= -feqW27_TS + c2o1 * c1o54  * TempD;
-      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBN ])[kbn ]= -feqW27_BN + c2o1 * c1o54  * TempD;
-      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSW])[kbsw]= -feqW27_BSW+ c2o1 * c1o216 * TempD;
-      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNE])[ktne]= -feqW27_TNE+ c2o1 * c1o216 * TempD;
-      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSW])[ktsw]= -feqW27_TSW+ c2o1 * c1o216 * TempD;
-      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNE])[kbne]= -feqW27_BNE+ c2o1 * c1o216 * TempD;
-      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNW])[kbnw]= -feqW27_BNW+ c2o1 * c1o216 * TempD;
-      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSE])[ktse]= -feqW27_TSE+ c2o1 * c1o216 * TempD;
-      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNW])[ktnw]= -feqW27_TNW+ c2o1 * c1o216 * TempD;
-      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSE])[kbse]= -feqW27_BSE+ c2o1 * c1o216 * TempD;
-      //q = q_dirE[k];   if (q>=zero && q<=one) (D27.f[dirW  ])[kw  ]=(two*feqW27_W  -(f27_E  *(q*omegaD-one)-omegaD*feq27_E  *(q-one))/(omegaD-one)+f27_W  *q)/(q+one);
-      //q = q_dirW[k];   if (q>=zero && q<=one) (D27.f[dirE  ])[ke  ]=(two*feqW27_E  -(f27_W  *(q*omegaD-one)-omegaD*feq27_W  *(q-one))/(omegaD-one)+f27_E  *q)/(q+one);
-      //q = q_dirN[k];   if (q>=zero && q<=one) (D27.f[dirS  ])[ks  ]=(two*feqW27_S  -(f27_N  *(q*omegaD-one)-omegaD*feq27_N  *(q-one))/(omegaD-one)+f27_S  *q)/(q+one);
-      //q = q_dirS[k];   if (q>=zero && q<=one) (D27.f[dirN  ])[kn  ]=(two*feqW27_N  -(f27_S  *(q*omegaD-one)-omegaD*feq27_S  *(q-one))/(omegaD-one)+f27_N  *q)/(q+one);
-      //q = q_dirT[k];   if (q>=zero && q<=one) (D27.f[dirB  ])[kb  ]=(two*feqW27_B  -(f27_T  *(q*omegaD-one)-omegaD*feq27_T  *(q-one))/(omegaD-one)+f27_B  *q)/(q+one);
-      //q = q_dirB[k];   if (q>=zero && q<=one) (D27.f[dirT  ])[kt  ]=(two*feqW27_T  -(f27_B  *(q*omegaD-one)-omegaD*feq27_B  *(q-one))/(omegaD-one)+f27_T  *q)/(q+one);
-      //q = q_dirNE[k];  if (q>=zero && q<=one) (D27.f[dirSW ])[ksw ]=(two*feqW27_SW -(f27_NE *(q*omegaD-one)-omegaD*feq27_NE *(q-one))/(omegaD-one)+f27_SW *q)/(q+one);
-      //q = q_dirSW[k];  if (q>=zero && q<=one) (D27.f[dirNE ])[kne ]=(two*feqW27_NE -(f27_SW *(q*omegaD-one)-omegaD*feq27_SW *(q-one))/(omegaD-one)+f27_NE *q)/(q+one);
-      //q = q_dirSE[k];  if (q>=zero && q<=one) (D27.f[dirNW ])[knw ]=(two*feqW27_NW -(f27_SE *(q*omegaD-one)-omegaD*feq27_SE *(q-one))/(omegaD-one)+f27_NW *q)/(q+one);
-      //q = q_dirNW[k];  if (q>=zero && q<=one) (D27.f[dirSE ])[kse ]=(two*feqW27_SE -(f27_NW *(q*omegaD-one)-omegaD*feq27_NW *(q-one))/(omegaD-one)+f27_SE *q)/(q+one);
-      //q = q_dirTE[k];  if (q>=zero && q<=one) (D27.f[dirBW ])[kbw ]=(two*feqW27_BW -(f27_TE *(q*omegaD-one)-omegaD*feq27_TE *(q-one))/(omegaD-one)+f27_BW *q)/(q+one);
-      //q = q_dirBW[k];  if (q>=zero && q<=one) (D27.f[dirTE ])[kte ]=(two*feqW27_TE -(f27_BW *(q*omegaD-one)-omegaD*feq27_BW *(q-one))/(omegaD-one)+f27_TE *q)/(q+one);
-      //q = q_dirBE[k];  if (q>=zero && q<=one) (D27.f[dirTW ])[ktw ]=(two*feqW27_TW -(f27_BE *(q*omegaD-one)-omegaD*feq27_BE *(q-one))/(omegaD-one)+f27_TW *q)/(q+one);
-      //q = q_dirTW[k];  if (q>=zero && q<=one) (D27.f[dirBE ])[kbe ]=(two*feqW27_BE -(f27_TW *(q*omegaD-one)-omegaD*feq27_TW *(q-one))/(omegaD-one)+f27_BE *q)/(q+one);
-      //q = q_dirTN[k];  if (q>=zero && q<=one) (D27.f[dirBS ])[kbs ]=(two*feqW27_BS -(f27_TN *(q*omegaD-one)-omegaD*feq27_TN *(q-one))/(omegaD-one)+f27_BS *q)/(q+one);
-      //q = q_dirBS[k];  if (q>=zero && q<=one) (D27.f[dirTN ])[ktn ]=(two*feqW27_TN -(f27_BS *(q*omegaD-one)-omegaD*feq27_BS *(q-one))/(omegaD-one)+f27_TN *q)/(q+one);
-      //q = q_dirBN[k];  if (q>=zero && q<=one) (D27.f[dirTS ])[kts ]=(two*feqW27_TS -(f27_BN *(q*omegaD-one)-omegaD*feq27_BN *(q-one))/(omegaD-one)+f27_TS *q)/(q+one);
-      //q = q_dirTS[k];  if (q>=zero && q<=one) (D27.f[dirBN ])[kbn ]=(two*feqW27_BN -(f27_TS *(q*omegaD-one)-omegaD*feq27_TS *(q-one))/(omegaD-one)+f27_BN *q)/(q+one);
-      //q = q_dirTNE[k]; if (q>=zero && q<=one) (D27.f[dirBSW])[kbsw]=(two*feqW27_BSW-(f27_TNE*(q*omegaD-one)-omegaD*feq27_TNE*(q-one))/(omegaD-one)+f27_BSW*q)/(q+one);
-      //q = q_dirBSW[k]; if (q>=zero && q<=one) (D27.f[dirTNE])[ktne]=(two*feqW27_TNE-(f27_BSW*(q*omegaD-one)-omegaD*feq27_BSW*(q-one))/(omegaD-one)+f27_TNE*q)/(q+one);
-      //q = q_dirBNE[k]; if (q>=zero && q<=one) (D27.f[dirTSW])[ktsw]=(two*feqW27_TSW-(f27_BNE*(q*omegaD-one)-omegaD*feq27_BNE*(q-one))/(omegaD-one)+f27_TSW*q)/(q+one);
-      //q = q_dirTSW[k]; if (q>=zero && q<=one) (D27.f[dirBNE])[kbne]=(two*feqW27_BNE-(f27_TSW*(q*omegaD-one)-omegaD*feq27_TSW*(q-one))/(omegaD-one)+f27_BNE*q)/(q+one);
-      //q = q_dirTSE[k]; if (q>=zero && q<=one) (D27.f[dirBNW])[kbnw]=(two*feqW27_BNW-(f27_TSE*(q*omegaD-one)-omegaD*feq27_TSE*(q-one))/(omegaD-one)+f27_BNW*q)/(q+one);
-      //q = q_dirBNW[k]; if (q>=zero && q<=one) (D27.f[dirTSE])[ktse]=(two*feqW27_TSE-(f27_BNW*(q*omegaD-one)-omegaD*feq27_BNW*(q-one))/(omegaD-one)+f27_TSE*q)/(q+one);
-      //q = q_dirBSE[k]; if (q>=zero && q<=one) (D27.f[dirTNW])[ktnw]=(two*feqW27_TNW-(f27_BSE*(q*omegaD-one)-omegaD*feq27_BSE*(q-one))/(omegaD-one)+f27_TNW*q)/(q+one);
-      //q = q_dirTNW[k]; if (q>=zero && q<=one) (D27.f[dirBSE])[kbse]=(two*feqW27_BSE-(f27_TNW*(q*omegaD-one)-omegaD*feq27_TNW*(q-one))/(omegaD-one)+f27_BSE*q)/(q+one);
+      //(D27.f[W  ])[kw  ]= four;
+      //(D27.f[E  ])[ke  ]= four;
+      //(D27.f[S  ])[ks  ]= four;
+      //(D27.f[N  ])[kn  ]= four;
+      //(D27.f[B  ])[kb  ]= four;
+      //(D27.f[T  ])[kt  ]= four;
+      //(D27.f[SW ])[ksw ]= four;
+      //(D27.f[NE ])[kne ]= four;
+      //(D27.f[NW ])[knw ]= four;
+      //(D27.f[SE ])[kse ]= four;
+      //(D27.f[BW ])[kbw ]= four;
+      //(D27.f[TE ])[kte ]= four;
+      //(D27.f[TW ])[ktw ]= four;
+      //(D27.f[BE ])[kbe ]= four;
+      //(D27.f[BS ])[kbs ]= four;
+      //(D27.f[TN ])[ktn ]= four;
+      //(D27.f[TS ])[kts ]= four;
+      //(D27.f[BN ])[kbn ]= four;
+      //(D27.f[BSW])[kbsw]= four;
+      //(D27.f[TNE])[ktne]= four;
+      //(D27.f[TSW])[ktsw]= four;
+      //(D27.f[BNE])[kbne]= four;
+      //(D27.f[BNW])[kbnw]= four;
+      //(D27.f[TSE])[ktse]= four;
+      //(D27.f[TNW])[ktnw]= four;
+      //(D27.f[BSE])[kbse]= four;
+      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1) (D27.f[W  ])[kw  ]= -feqW27_W  + c2o1 * c2o27  * TempD;
+      q = q_dirW[k];   if (q>=c0o1 && q<=c1o1) (D27.f[E  ])[ke  ]= -feqW27_E  + c2o1 * c2o27  * TempD;
+      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1) (D27.f[S  ])[ks  ]= -feqW27_S  + c2o1 * c2o27  * TempD;
+      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1) (D27.f[N  ])[kn  ]= -feqW27_N  + c2o1 * c2o27  * TempD;
+      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1) (D27.f[B  ])[kb  ]= -feqW27_B  + c2o1 * c2o27  * TempD;
+      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1) (D27.f[T  ])[kt  ]= -feqW27_T  + c2o1 * c2o27  * TempD;
+      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[SW ])[ksw ]= -feqW27_SW + c2o1 * c1o54  * TempD;
+      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[NE ])[kne ]= -feqW27_NE + c2o1 * c1o54  * TempD;
+      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[NW ])[knw ]= -feqW27_NW + c2o1 * c1o54  * TempD;
+      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[SE ])[kse ]= -feqW27_SE + c2o1 * c1o54  * TempD;
+      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BW ])[kbw ]= -feqW27_BW + c2o1 * c1o54  * TempD;
+      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TE ])[kte ]= -feqW27_TE + c2o1 * c1o54  * TempD;
+      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TW ])[ktw ]= -feqW27_TW + c2o1 * c1o54  * TempD;
+      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BE ])[kbe ]= -feqW27_BE + c2o1 * c1o54  * TempD;
+      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BS ])[kbs ]= -feqW27_BS + c2o1 * c1o54  * TempD;
+      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TN ])[ktn ]= -feqW27_TN + c2o1 * c1o54  * TempD;
+      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TS ])[kts ]= -feqW27_TS + c2o1 * c1o54  * TempD;
+      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BN ])[kbn ]= -feqW27_BN + c2o1 * c1o54  * TempD;
+      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BSW])[kbsw]= -feqW27_BSW+ c2o1 * c1o216 * TempD;
+      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TNE])[ktne]= -feqW27_TNE+ c2o1 * c1o216 * TempD;
+      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TSW])[ktsw]= -feqW27_TSW+ c2o1 * c1o216 * TempD;
+      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BNE])[kbne]= -feqW27_BNE+ c2o1 * c1o216 * TempD;
+      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BNW])[kbnw]= -feqW27_BNW+ c2o1 * c1o216 * TempD;
+      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TSE])[ktse]= -feqW27_TSE+ c2o1 * c1o216 * TempD;
+      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TNW])[ktnw]= -feqW27_TNW+ c2o1 * c1o216 * TempD;
+      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BSE])[kbse]= -feqW27_BSE+ c2o1 * c1o216 * TempD;
+      //q = q_dirE[k];   if (q>=zero && q<=one) (D27.f[W  ])[kw  ]=(two*feqW27_W  -(f27_E  *(q*omegaD-one)-omegaD*feq27_E  *(q-one))/(omegaD-one)+f27_W  *q)/(q+one);
+      //q = q_dirW[k];   if (q>=zero && q<=one) (D27.f[E  ])[ke  ]=(two*feqW27_E  -(f27_W  *(q*omegaD-one)-omegaD*feq27_W  *(q-one))/(omegaD-one)+f27_E  *q)/(q+one);
+      //q = q_dirN[k];   if (q>=zero && q<=one) (D27.f[S  ])[ks  ]=(two*feqW27_S  -(f27_N  *(q*omegaD-one)-omegaD*feq27_N  *(q-one))/(omegaD-one)+f27_S  *q)/(q+one);
+      //q = q_dirS[k];   if (q>=zero && q<=one) (D27.f[N  ])[kn  ]=(two*feqW27_N  -(f27_S  *(q*omegaD-one)-omegaD*feq27_S  *(q-one))/(omegaD-one)+f27_N  *q)/(q+one);
+      //q = q_dirT[k];   if (q>=zero && q<=one) (D27.f[B  ])[kb  ]=(two*feqW27_B  -(f27_T  *(q*omegaD-one)-omegaD*feq27_T  *(q-one))/(omegaD-one)+f27_B  *q)/(q+one);
+      //q = q_dirB[k];   if (q>=zero && q<=one) (D27.f[T  ])[kt  ]=(two*feqW27_T  -(f27_B  *(q*omegaD-one)-omegaD*feq27_B  *(q-one))/(omegaD-one)+f27_T  *q)/(q+one);
+      //q = q_dirNE[k];  if (q>=zero && q<=one) (D27.f[SW ])[ksw ]=(two*feqW27_SW -(f27_NE *(q*omegaD-one)-omegaD*feq27_NE *(q-one))/(omegaD-one)+f27_SW *q)/(q+one);
+      //q = q_dirSW[k];  if (q>=zero && q<=one) (D27.f[NE ])[kne ]=(two*feqW27_NE -(f27_SW *(q*omegaD-one)-omegaD*feq27_SW *(q-one))/(omegaD-one)+f27_NE *q)/(q+one);
+      //q = q_dirSE[k];  if (q>=zero && q<=one) (D27.f[NW ])[knw ]=(two*feqW27_NW -(f27_SE *(q*omegaD-one)-omegaD*feq27_SE *(q-one))/(omegaD-one)+f27_NW *q)/(q+one);
+      //q = q_dirNW[k];  if (q>=zero && q<=one) (D27.f[SE ])[kse ]=(two*feqW27_SE -(f27_NW *(q*omegaD-one)-omegaD*feq27_NW *(q-one))/(omegaD-one)+f27_SE *q)/(q+one);
+      //q = q_dirTE[k];  if (q>=zero && q<=one) (D27.f[BW ])[kbw ]=(two*feqW27_BW -(f27_TE *(q*omegaD-one)-omegaD*feq27_TE *(q-one))/(omegaD-one)+f27_BW *q)/(q+one);
+      //q = q_dirBW[k];  if (q>=zero && q<=one) (D27.f[TE ])[kte ]=(two*feqW27_TE -(f27_BW *(q*omegaD-one)-omegaD*feq27_BW *(q-one))/(omegaD-one)+f27_TE *q)/(q+one);
+      //q = q_dirBE[k];  if (q>=zero && q<=one) (D27.f[TW ])[ktw ]=(two*feqW27_TW -(f27_BE *(q*omegaD-one)-omegaD*feq27_BE *(q-one))/(omegaD-one)+f27_TW *q)/(q+one);
+      //q = q_dirTW[k];  if (q>=zero && q<=one) (D27.f[BE ])[kbe ]=(two*feqW27_BE -(f27_TW *(q*omegaD-one)-omegaD*feq27_TW *(q-one))/(omegaD-one)+f27_BE *q)/(q+one);
+      //q = q_dirTN[k];  if (q>=zero && q<=one) (D27.f[BS ])[kbs ]=(two*feqW27_BS -(f27_TN *(q*omegaD-one)-omegaD*feq27_TN *(q-one))/(omegaD-one)+f27_BS *q)/(q+one);
+      //q = q_dirBS[k];  if (q>=zero && q<=one) (D27.f[TN ])[ktn ]=(two*feqW27_TN -(f27_BS *(q*omegaD-one)-omegaD*feq27_BS *(q-one))/(omegaD-one)+f27_TN *q)/(q+one);
+      //q = q_dirBN[k];  if (q>=zero && q<=one) (D27.f[TS ])[kts ]=(two*feqW27_TS -(f27_BN *(q*omegaD-one)-omegaD*feq27_BN *(q-one))/(omegaD-one)+f27_TS *q)/(q+one);
+      //q = q_dirTS[k];  if (q>=zero && q<=one) (D27.f[BN ])[kbn ]=(two*feqW27_BN -(f27_TS *(q*omegaD-one)-omegaD*feq27_TS *(q-one))/(omegaD-one)+f27_BN *q)/(q+one);
+      //q = q_dirTNE[k]; if (q>=zero && q<=one) (D27.f[BSW])[kbsw]=(two*feqW27_BSW-(f27_TNE*(q*omegaD-one)-omegaD*feq27_TNE*(q-one))/(omegaD-one)+f27_BSW*q)/(q+one);
+      //q = q_dirBSW[k]; if (q>=zero && q<=one) (D27.f[TNE])[ktne]=(two*feqW27_TNE-(f27_BSW*(q*omegaD-one)-omegaD*feq27_BSW*(q-one))/(omegaD-one)+f27_TNE*q)/(q+one);
+      //q = q_dirBNE[k]; if (q>=zero && q<=one) (D27.f[TSW])[ktsw]=(two*feqW27_TSW-(f27_BNE*(q*omegaD-one)-omegaD*feq27_BNE*(q-one))/(omegaD-one)+f27_TSW*q)/(q+one);
+      //q = q_dirTSW[k]; if (q>=zero && q<=one) (D27.f[BNE])[kbne]=(two*feqW27_BNE-(f27_TSW*(q*omegaD-one)-omegaD*feq27_TSW*(q-one))/(omegaD-one)+f27_BNE*q)/(q+one);
+      //q = q_dirTSE[k]; if (q>=zero && q<=one) (D27.f[BNW])[kbnw]=(two*feqW27_BNW-(f27_TSE*(q*omegaD-one)-omegaD*feq27_TSE*(q-one))/(omegaD-one)+f27_BNW*q)/(q+one);
+      //q = q_dirBNW[k]; if (q>=zero && q<=one) (D27.f[TSE])[ktse]=(two*feqW27_TSE-(f27_BNW*(q*omegaD-one)-omegaD*feq27_BNW*(q-one))/(omegaD-one)+f27_TSE*q)/(q+one);
+      //q = q_dirBSE[k]; if (q>=zero && q<=one) (D27.f[TNW])[ktnw]=(two*feqW27_TNW-(f27_BSE*(q*omegaD-one)-omegaD*feq27_BSE*(q-one))/(omegaD-one)+f27_TNW*q)/(q+one);
+      //q = q_dirTNW[k]; if (q>=zero && q<=one) (D27.f[BSE])[kbse]=(two*feqW27_BSE-(f27_TNW*(q*omegaD-one)-omegaD*feq27_TNW*(q-one))/(omegaD-one)+f27_BSE*q)/(q+one);
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -2436,63 +2436,63 @@ extern "C" __global__ void QAD7( real* DD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
 
    Distributions7 D7;
@@ -2538,32 +2538,32 @@ extern "C" __global__ void QAD7( real* DD,
       //         *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
       //         *q_dirBSE, *q_dirBNW;
 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      //q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      //q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      //q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      //q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      //q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      //q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      //q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      //q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      //q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      //q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      //q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      //q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      //q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      //q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      //q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      //q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      //q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      //q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      //q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      //q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      //q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      //q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      //q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      //q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      //q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      //q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      //q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      //q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      //q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      //q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      //q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      //q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      //q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      //q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      //q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      //q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      //q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      //q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      //q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      //q_dirBNW = &QQ[BNW * numberOfBCnodes];
       //////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -2598,32 +2598,32 @@ extern "C" __global__ void QAD7( real* DD,
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_W    = (D.f[dirE   ])[ke   ];
-      f_E    = (D.f[dirW   ])[kw   ];
-      f_S    = (D.f[dirN   ])[kn   ];
-      f_N    = (D.f[dirS   ])[ks   ];
-      f_B    = (D.f[dirT   ])[kt   ];
-      f_T    = (D.f[dirB   ])[kb   ];
-      f_SW   = (D.f[dirNE  ])[kne  ];
-      f_NE   = (D.f[dirSW  ])[ksw  ];
-      f_NW   = (D.f[dirSE  ])[kse  ];
-      f_SE   = (D.f[dirNW  ])[knw  ];
-      f_BW   = (D.f[dirTE  ])[kte  ];
-      f_TE   = (D.f[dirBW  ])[kbw  ];
-      f_TW   = (D.f[dirBE  ])[kbe  ];
-      f_BE   = (D.f[dirTW  ])[ktw  ];
-      f_BS   = (D.f[dirTN  ])[ktn  ];
-      f_TN   = (D.f[dirBS  ])[kbs  ];
-      f_TS   = (D.f[dirBN  ])[kbn  ];
-      f_BN   = (D.f[dirTS  ])[kts  ];
-      f_BSW  = (D.f[dirTNE ])[ktne ];
-      f_BNE  = (D.f[dirTSW ])[ktsw ];
-      f_BNW  = (D.f[dirTSE ])[ktse ];
-      f_BSE  = (D.f[dirTNW ])[ktnw ];
-      f_TSW  = (D.f[dirBNE ])[kbne ];
-      f_TNE  = (D.f[dirBSW ])[kbsw ];
-      f_TNW  = (D.f[dirBSE ])[kbse ];
-      f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_W    = (D.f[E   ])[ke   ];
+      f_E    = (D.f[W   ])[kw   ];
+      f_S    = (D.f[N   ])[kn   ];
+      f_N    = (D.f[S   ])[ks   ];
+      f_B    = (D.f[T   ])[kt   ];
+      f_T    = (D.f[B   ])[kb   ];
+      f_SW   = (D.f[NE  ])[kne  ];
+      f_NE   = (D.f[SW  ])[ksw  ];
+      f_NW   = (D.f[SE  ])[kse  ];
+      f_SE   = (D.f[NW  ])[knw  ];
+      f_BW   = (D.f[TE  ])[kte  ];
+      f_TE   = (D.f[BW  ])[kbw  ];
+      f_TW   = (D.f[BE  ])[kbe  ];
+      f_BE   = (D.f[TW  ])[ktw  ];
+      f_BS   = (D.f[TN  ])[ktn  ];
+      f_TN   = (D.f[BS  ])[kbs  ];
+      f_TS   = (D.f[BN  ])[kbn  ];
+      f_BN   = (D.f[TS  ])[kts  ];
+      f_BSW  = (D.f[TNE ])[ktne ];
+      f_BNE  = (D.f[TSW ])[ktsw ];
+      f_BNW  = (D.f[TSE ])[ktse ];
+      f_BSE  = (D.f[TNW ])[ktnw ];
+      f_TSW  = (D.f[BNE ])[kbne ];
+      f_TNE  = (D.f[BSW ])[kbsw ];
+      f_TNW  = (D.f[BSE ])[kbse ];
+      f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3/*, drho*/;
       //drho   =    f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -2869,125 +2869,125 @@ extern "C" __global__ void QADDirichlet27(
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
 
    Distributions27 D27;
    if (isEvenTimestep==true)
    {
-      D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+      D27.f[E   ] = &DD27[E   *size_Mat];
+      D27.f[W   ] = &DD27[W   *size_Mat];
+      D27.f[N   ] = &DD27[N   *size_Mat];
+      D27.f[S   ] = &DD27[S   *size_Mat];
+      D27.f[T   ] = &DD27[T   *size_Mat];
+      D27.f[B   ] = &DD27[B   *size_Mat];
+      D27.f[NE  ] = &DD27[NE  *size_Mat];
+      D27.f[SW  ] = &DD27[SW  *size_Mat];
+      D27.f[SE  ] = &DD27[SE  *size_Mat];
+      D27.f[NW  ] = &DD27[NW  *size_Mat];
+      D27.f[TE  ] = &DD27[TE  *size_Mat];
+      D27.f[BW  ] = &DD27[BW  *size_Mat];
+      D27.f[BE  ] = &DD27[BE  *size_Mat];
+      D27.f[TW  ] = &DD27[TW  *size_Mat];
+      D27.f[TN  ] = &DD27[TN  *size_Mat];
+      D27.f[BS  ] = &DD27[BS  *size_Mat];
+      D27.f[BN  ] = &DD27[BN  *size_Mat];
+      D27.f[TS  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+      D27.f[TNE ] = &DD27[TNE *size_Mat];
+      D27.f[TSW ] = &DD27[TSW *size_Mat];
+      D27.f[TSE ] = &DD27[TSE *size_Mat];
+      D27.f[TNW ] = &DD27[TNW *size_Mat];
+      D27.f[BNE ] = &DD27[BNE *size_Mat];
+      D27.f[BSW ] = &DD27[BSW *size_Mat];
+      D27.f[BSE ] = &DD27[BSE *size_Mat];
+      D27.f[BNW ] = &DD27[BNW *size_Mat];
    } 
    else
    {
-      D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+      D27.f[W   ] = &DD27[E   *size_Mat];
+      D27.f[E   ] = &DD27[W   *size_Mat];
+      D27.f[S   ] = &DD27[N   *size_Mat];
+      D27.f[N   ] = &DD27[S   *size_Mat];
+      D27.f[B   ] = &DD27[T   *size_Mat];
+      D27.f[T   ] = &DD27[B   *size_Mat];
+      D27.f[SW  ] = &DD27[NE  *size_Mat];
+      D27.f[NE  ] = &DD27[SW  *size_Mat];
+      D27.f[NW  ] = &DD27[SE  *size_Mat];
+      D27.f[SE  ] = &DD27[NW  *size_Mat];
+      D27.f[BW  ] = &DD27[TE  *size_Mat];
+      D27.f[TE  ] = &DD27[BW  *size_Mat];
+      D27.f[TW  ] = &DD27[BE  *size_Mat];
+      D27.f[BE  ] = &DD27[TW  *size_Mat];
+      D27.f[BS  ] = &DD27[TN  *size_Mat];
+      D27.f[TN  ] = &DD27[BS  *size_Mat];
+      D27.f[TS  ] = &DD27[BN  *size_Mat];
+      D27.f[BN  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+      D27.f[TNE ] = &DD27[BSW *size_Mat];
+      D27.f[TSW ] = &DD27[BNE *size_Mat];
+      D27.f[TSE ] = &DD27[BNW *size_Mat];
+      D27.f[TNW ] = &DD27[BSE *size_Mat];
+      D27.f[BNE ] = &DD27[TSW *size_Mat];
+      D27.f[BSW ] = &DD27[TNE *size_Mat];
+      D27.f[BSE ] = &DD27[TNW *size_Mat];
+      D27.f[BNW ] = &DD27[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -3008,32 +3008,32 @@ extern "C" __global__ void QADDirichlet27(
          *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
          *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
          *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -3065,33 +3065,33 @@ extern "C" __global__ void QADDirichlet27(
       unsigned int ktne = KQK;
       unsigned int kbsw = neighborZ[ksw];
       ////////////////////////////////////////////////////////////////////////////////
-      real f_W    = (D.f[dirE   ])[ke   ];
-      real f_E    = (D.f[dirW   ])[kw   ];
-      real f_S    = (D.f[dirN   ])[kn   ];
-      real f_N    = (D.f[dirS   ])[ks   ];
-      real f_B    = (D.f[dirT   ])[kt   ];
-      real f_T    = (D.f[dirB   ])[kb   ];
-      real f_SW   = (D.f[dirNE  ])[kne  ];
-      real f_NE   = (D.f[dirSW  ])[ksw  ];
-      real f_NW   = (D.f[dirSE  ])[kse  ];
-      real f_SE   = (D.f[dirNW  ])[knw  ];
-      real f_BW   = (D.f[dirTE  ])[kte  ];
-      real f_TE   = (D.f[dirBW  ])[kbw  ];
-      real f_TW   = (D.f[dirBE  ])[kbe  ];
-      real f_BE   = (D.f[dirTW  ])[ktw  ];
-      real f_BS   = (D.f[dirTN  ])[ktn  ];
-      real f_TN   = (D.f[dirBS  ])[kbs  ];
-      real f_TS   = (D.f[dirBN  ])[kbn  ];
-      real f_BN   = (D.f[dirTS  ])[kts  ];
+      real f_W    = (D.f[E   ])[ke   ];
+      real f_E    = (D.f[W   ])[kw   ];
+      real f_S    = (D.f[N   ])[kn   ];
+      real f_N    = (D.f[S   ])[ks   ];
+      real f_B    = (D.f[T   ])[kt   ];
+      real f_T    = (D.f[B   ])[kb   ];
+      real f_SW   = (D.f[NE  ])[kne  ];
+      real f_NE   = (D.f[SW  ])[ksw  ];
+      real f_NW   = (D.f[SE  ])[kse  ];
+      real f_SE   = (D.f[NW  ])[knw  ];
+      real f_BW   = (D.f[TE  ])[kte  ];
+      real f_TE   = (D.f[BW  ])[kbw  ];
+      real f_TW   = (D.f[BE  ])[kbe  ];
+      real f_BE   = (D.f[TW  ])[ktw  ];
+      real f_BS   = (D.f[TN  ])[ktn  ];
+      real f_TN   = (D.f[BS  ])[kbs  ];
+      real f_TS   = (D.f[BN  ])[kbn  ];
+      real f_BN   = (D.f[TS  ])[kts  ];
       real f_ZERO = (D.f[dirREST])[kzero];
-      real f_BSW  = (D.f[dirTNE ])[ktne ];
-      real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      real f_BNW  = (D.f[dirTSE ])[ktse ];
-      real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      real f_TSW  = (D.f[dirBNE ])[kbne ];
-      real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      real f_TNW  = (D.f[dirBSE ])[kbse ];
-      real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      real f_BSW  = (D.f[TNE ])[ktne ];
+      real f_BNE  = (D.f[TSW ])[ktsw ];
+      real f_BNW  = (D.f[TSE ])[ktse ];
+      real f_BSE  = (D.f[TNW ])[ktnw ];
+      real f_TSW  = (D.f[BNE ])[kbne ];
+      real f_TNE  = (D.f[BSW ])[kbsw ];
+      real f_TNW  = (D.f[BSE ])[kbse ];
+      real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, /*drho, feq,*/ q;
       ////drho   = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -3117,33 +3117,33 @@ extern "C" __global__ void QADDirichlet27(
       vx2     =  OORho*((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S));
       vx3     =  OORho*((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B));
       ////////////////////////////////////////////////////////////////////////////////
-      real f27_W    = (D27.f[dirE   ])[ke   ];
-      real f27_E    = (D27.f[dirW   ])[kw   ];
-      real f27_S    = (D27.f[dirN   ])[kn   ];
-      real f27_N    = (D27.f[dirS   ])[ks   ];
-      real f27_B    = (D27.f[dirT   ])[kt   ];
-      real f27_T    = (D27.f[dirB   ])[kb   ];
-      real f27_SW   = (D27.f[dirNE  ])[kne  ];
-      real f27_NE   = (D27.f[dirSW  ])[ksw  ];
-      real f27_NW   = (D27.f[dirSE  ])[kse  ];
-      real f27_SE   = (D27.f[dirNW  ])[knw  ];
-      real f27_BW   = (D27.f[dirTE  ])[kte  ];
-      real f27_TE   = (D27.f[dirBW  ])[kbw  ];
-      real f27_TW   = (D27.f[dirBE  ])[kbe  ];
-      real f27_BE   = (D27.f[dirTW  ])[ktw  ];
-      real f27_BS   = (D27.f[dirTN  ])[ktn  ];
-      real f27_TN   = (D27.f[dirBS  ])[kbs  ];
-      real f27_TS   = (D27.f[dirBN  ])[kbn  ];
-      real f27_BN   = (D27.f[dirTS  ])[kts  ];
+      real f27_W    = (D27.f[E   ])[ke   ];
+      real f27_E    = (D27.f[W   ])[kw   ];
+      real f27_S    = (D27.f[N   ])[kn   ];
+      real f27_N    = (D27.f[S   ])[ks   ];
+      real f27_B    = (D27.f[T   ])[kt   ];
+      real f27_T    = (D27.f[B   ])[kb   ];
+      real f27_SW   = (D27.f[NE  ])[kne  ];
+      real f27_NE   = (D27.f[SW  ])[ksw  ];
+      real f27_NW   = (D27.f[SE  ])[kse  ];
+      real f27_SE   = (D27.f[NW  ])[knw  ];
+      real f27_BW   = (D27.f[TE  ])[kte  ];
+      real f27_TE   = (D27.f[BW  ])[kbw  ];
+      real f27_TW   = (D27.f[BE  ])[kbe  ];
+      real f27_BE   = (D27.f[TW  ])[ktw  ];
+      real f27_BS   = (D27.f[TN  ])[ktn  ];
+      real f27_TN   = (D27.f[BS  ])[kbs  ];
+      real f27_TS   = (D27.f[BN  ])[kbn  ];
+      real f27_BN   = (D27.f[TS  ])[kts  ];
       real f27_ZERO = (D27.f[dirREST])[kzero];
-      real f27_BSW  = (D27.f[dirTNE ])[ktne ];
-      real f27_BNE  = (D27.f[dirTSW ])[ktsw ];
-      real f27_BNW  = (D27.f[dirTSE ])[ktse ];
-      real f27_BSE  = (D27.f[dirTNW ])[ktnw ];
-      real f27_TSW  = (D27.f[dirBNE ])[kbne ];
-      real f27_TNE  = (D27.f[dirBSW ])[kbsw ];
-      real f27_TNW  = (D27.f[dirBSE ])[kbse ];
-      real f27_TSE  = (D27.f[dirBNW ])[kbnw ];
+      real f27_BSW  = (D27.f[TNE ])[ktne ];
+      real f27_BNE  = (D27.f[TSW ])[ktsw ];
+      real f27_BNW  = (D27.f[TSE ])[ktse ];
+      real f27_BSE  = (D27.f[TNW ])[ktnw ];
+      real f27_TSW  = (D27.f[BNE ])[kbne ];
+      real f27_TNE  = (D27.f[BSW ])[kbsw ];
+      real f27_TNW  = (D27.f[BSE ])[kbse ];
+      real f27_TSE  = (D27.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
       ////////////////////////////////////////////////////////////////////////////////
@@ -3219,120 +3219,120 @@ extern "C" __global__ void QADDirichlet27(
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+         D27.f[E   ] = &DD27[E   *size_Mat];
+         D27.f[W   ] = &DD27[W   *size_Mat];
+         D27.f[N   ] = &DD27[N   *size_Mat];
+         D27.f[S   ] = &DD27[S   *size_Mat];
+         D27.f[T   ] = &DD27[T   *size_Mat];
+         D27.f[B   ] = &DD27[B   *size_Mat];
+         D27.f[NE  ] = &DD27[NE  *size_Mat];
+         D27.f[SW  ] = &DD27[SW  *size_Mat];
+         D27.f[SE  ] = &DD27[SE  *size_Mat];
+         D27.f[NW  ] = &DD27[NW  *size_Mat];
+         D27.f[TE  ] = &DD27[TE  *size_Mat];
+         D27.f[BW  ] = &DD27[BW  *size_Mat];
+         D27.f[BE  ] = &DD27[BE  *size_Mat];
+         D27.f[TW  ] = &DD27[TW  *size_Mat];
+         D27.f[TN  ] = &DD27[TN  *size_Mat];
+         D27.f[BS  ] = &DD27[BS  *size_Mat];
+         D27.f[BN  ] = &DD27[BN  *size_Mat];
+         D27.f[TS  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+         D27.f[TNE ] = &DD27[TNE *size_Mat];
+         D27.f[TSW ] = &DD27[TSW *size_Mat];
+         D27.f[TSE ] = &DD27[TSE *size_Mat];
+         D27.f[TNW ] = &DD27[TNW *size_Mat];
+         D27.f[BNE ] = &DD27[BNE *size_Mat];
+         D27.f[BSW ] = &DD27[BSW *size_Mat];
+         D27.f[BSE ] = &DD27[BSE *size_Mat];
+         D27.f[BNW ] = &DD27[BNW *size_Mat];
       } 
       else
       {
-         D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+         D27.f[W   ] = &DD27[E   *size_Mat];
+         D27.f[E   ] = &DD27[W   *size_Mat];
+         D27.f[S   ] = &DD27[N   *size_Mat];
+         D27.f[N   ] = &DD27[S   *size_Mat];
+         D27.f[B   ] = &DD27[T   *size_Mat];
+         D27.f[T   ] = &DD27[B   *size_Mat];
+         D27.f[SW  ] = &DD27[NE  *size_Mat];
+         D27.f[NE  ] = &DD27[SW  *size_Mat];
+         D27.f[NW  ] = &DD27[SE  *size_Mat];
+         D27.f[SE  ] = &DD27[NW  *size_Mat];
+         D27.f[BW  ] = &DD27[TE  *size_Mat];
+         D27.f[TE  ] = &DD27[BW  *size_Mat];
+         D27.f[TW  ] = &DD27[BE  *size_Mat];
+         D27.f[BE  ] = &DD27[TW  *size_Mat];
+         D27.f[BS  ] = &DD27[TN  *size_Mat];
+         D27.f[TN  ] = &DD27[BS  *size_Mat];
+         D27.f[TS  ] = &DD27[BN  *size_Mat];
+         D27.f[BN  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+         D27.f[TNE ] = &DD27[BSW *size_Mat];
+         D27.f[TSW ] = &DD27[BNE *size_Mat];
+         D27.f[TSE ] = &DD27[BNW *size_Mat];
+         D27.f[TNW ] = &DD27[BSE *size_Mat];
+         D27.f[BNE ] = &DD27[TSW *size_Mat];
+         D27.f[BSW ] = &DD27[TNE *size_Mat];
+         D27.f[BSE ] = &DD27[TNW *size_Mat];
+         D27.f[BNW ] = &DD27[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
       //(D.f[dirREST])[k]=0.1f;
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      q = q_dirE[  ke   ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirW  ])[kw  ]=(c2o1*feqW27_W  -(f27_E  *(q*omegaD-c1o1)-omegaD*feq27_E  *(q-c1o1))/(omegaD-c1o1)+f27_W  *q)/(q+c1o1);
-      q = q_dirW[  kw   ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirE  ])[ke  ]=(c2o1*feqW27_E  -(f27_W  *(q*omegaD-c1o1)-omegaD*feq27_W  *(q-c1o1))/(omegaD-c1o1)+f27_E  *q)/(q+c1o1);
-      q = q_dirN[  kn   ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirS  ])[ks  ]=(c2o1*feqW27_S  -(f27_N  *(q*omegaD-c1o1)-omegaD*feq27_N  *(q-c1o1))/(omegaD-c1o1)+f27_S  *q)/(q+c1o1);
-      q = q_dirS[  ks   ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirN  ])[kn  ]=(c2o1*feqW27_N  -(f27_S  *(q*omegaD-c1o1)-omegaD*feq27_S  *(q-c1o1))/(omegaD-c1o1)+f27_N  *q)/(q+c1o1);
-      q = q_dirT[  kt   ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirB  ])[kb  ]=(c2o1*feqW27_B  -(f27_T  *(q*omegaD-c1o1)-omegaD*feq27_T  *(q-c1o1))/(omegaD-c1o1)+f27_B  *q)/(q+c1o1);
-      q = q_dirB[  kb   ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirT  ])[kt  ]=(c2o1*feqW27_T  -(f27_B  *(q*omegaD-c1o1)-omegaD*feq27_B  *(q-c1o1))/(omegaD-c1o1)+f27_T  *q)/(q+c1o1);
-      q = q_dirNE[ kne  ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirSW ])[ksw ]=(c2o1*feqW27_SW -(f27_NE *(q*omegaD-c1o1)-omegaD*feq27_NE *(q-c1o1))/(omegaD-c1o1)+f27_SW *q)/(q+c1o1);
-      q = q_dirSW[ ksw  ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirNE ])[kne ]=(c2o1*feqW27_NE -(f27_SW *(q*omegaD-c1o1)-omegaD*feq27_SW *(q-c1o1))/(omegaD-c1o1)+f27_NE *q)/(q+c1o1);
-      q = q_dirSE[ kse  ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirNW ])[knw ]=(c2o1*feqW27_NW -(f27_SE *(q*omegaD-c1o1)-omegaD*feq27_SE *(q-c1o1))/(omegaD-c1o1)+f27_NW *q)/(q+c1o1);
-      q = q_dirNW[ knw  ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirSE ])[kse ]=(c2o1*feqW27_SE -(f27_NW *(q*omegaD-c1o1)-omegaD*feq27_NW *(q-c1o1))/(omegaD-c1o1)+f27_SE *q)/(q+c1o1);
-      q = q_dirTE[ kte  ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBW ])[kbw ]=(c2o1*feqW27_BW -(f27_TE *(q*omegaD-c1o1)-omegaD*feq27_TE *(q-c1o1))/(omegaD-c1o1)+f27_BW *q)/(q+c1o1);
-      q = q_dirBW[ kbw  ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTE ])[kte ]=(c2o1*feqW27_TE -(f27_BW *(q*omegaD-c1o1)-omegaD*feq27_BW *(q-c1o1))/(omegaD-c1o1)+f27_TE *q)/(q+c1o1);
-      q = q_dirBE[ kbe  ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTW ])[ktw ]=(c2o1*feqW27_TW -(f27_BE *(q*omegaD-c1o1)-omegaD*feq27_BE *(q-c1o1))/(omegaD-c1o1)+f27_TW *q)/(q+c1o1);
-      q = q_dirTW[ ktw  ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBE ])[kbe ]=(c2o1*feqW27_BE -(f27_TW *(q*omegaD-c1o1)-omegaD*feq27_TW *(q-c1o1))/(omegaD-c1o1)+f27_BE *q)/(q+c1o1);
-      q = q_dirTN[ ktn  ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBS ])[kbs ]=(c2o1*feqW27_BS -(f27_TN *(q*omegaD-c1o1)-omegaD*feq27_TN *(q-c1o1))/(omegaD-c1o1)+f27_BS *q)/(q+c1o1);
-      q = q_dirBS[ kbs  ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTN ])[ktn ]=(c2o1*feqW27_TN -(f27_BS *(q*omegaD-c1o1)-omegaD*feq27_BS *(q-c1o1))/(omegaD-c1o1)+f27_TN *q)/(q+c1o1);
-      q = q_dirBN[ kbn  ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTS ])[kts ]=(c2o1*feqW27_TS -(f27_BN *(q*omegaD-c1o1)-omegaD*feq27_BN *(q-c1o1))/(omegaD-c1o1)+f27_TS *q)/(q+c1o1);
-      q = q_dirTS[ kts  ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBN ])[kbn ]=(c2o1*feqW27_BN -(f27_TS *(q*omegaD-c1o1)-omegaD*feq27_TS *(q-c1o1))/(omegaD-c1o1)+f27_BN *q)/(q+c1o1);
-      q = q_dirTNE[ktne ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSW])[kbsw]=(c2o1*feqW27_BSW-(f27_TNE*(q*omegaD-c1o1)-omegaD*feq27_TNE*(q-c1o1))/(omegaD-c1o1)+f27_BSW*q)/(q+c1o1);
-      q = q_dirBSW[kbsw ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNE])[ktne]=(c2o1*feqW27_TNE-(f27_BSW*(q*omegaD-c1o1)-omegaD*feq27_BSW*(q-c1o1))/(omegaD-c1o1)+f27_TNE*q)/(q+c1o1);
-      q = q_dirBNE[kbne ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSW])[ktsw]=(c2o1*feqW27_TSW-(f27_BNE*(q*omegaD-c1o1)-omegaD*feq27_BNE*(q-c1o1))/(omegaD-c1o1)+f27_TSW*q)/(q+c1o1);
-      q = q_dirTSW[ktsw ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNE])[kbne]=(c2o1*feqW27_BNE-(f27_TSW*(q*omegaD-c1o1)-omegaD*feq27_TSW*(q-c1o1))/(omegaD-c1o1)+f27_BNE*q)/(q+c1o1);
-      q = q_dirTSE[ktse ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNW])[kbnw]=(c2o1*feqW27_BNW-(f27_TSE*(q*omegaD-c1o1)-omegaD*feq27_TSE*(q-c1o1))/(omegaD-c1o1)+f27_BNW*q)/(q+c1o1);
-      q = q_dirBNW[kbnw ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSE])[ktse]=(c2o1*feqW27_TSE-(f27_BNW*(q*omegaD-c1o1)-omegaD*feq27_BNW*(q-c1o1))/(omegaD-c1o1)+f27_TSE*q)/(q+c1o1);
-      q = q_dirBSE[kbse ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNW])[ktnw]=(c2o1*feqW27_TNW-(f27_BSE*(q*omegaD-c1o1)-omegaD*feq27_BSE*(q-c1o1))/(omegaD-c1o1)+f27_TNW*q)/(q+c1o1);
-      q = q_dirTNW[ktnw ]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSE])[kbse]=(c2o1*feqW27_BSE-(f27_TNW*(q*omegaD-c1o1)-omegaD*feq27_TNW*(q-c1o1))/(omegaD-c1o1)+f27_BSE*q)/(q+c1o1);
-      //q = q_dirE[k];   if (q>=zero && q<=one) (D27.f[dirW  ])[kw  ]=(two*feqW27_W  -(f27_E  *(q*omegaD-one)-omegaD*feq27_E  *(q-one))/(omegaD-one)+f27_W  *q)/(q+one);
-      //q = q_dirW[k];   if (q>=zero && q<=one) (D27.f[dirE  ])[ke  ]=(two*feqW27_E  -(f27_W  *(q*omegaD-one)-omegaD*feq27_W  *(q-one))/(omegaD-one)+f27_E  *q)/(q+one);
-      //q = q_dirN[k];   if (q>=zero && q<=one) (D27.f[dirS  ])[ks  ]=(two*feqW27_S  -(f27_N  *(q*omegaD-one)-omegaD*feq27_N  *(q-one))/(omegaD-one)+f27_S  *q)/(q+one);
-      //q = q_dirS[k];   if (q>=zero && q<=one) (D27.f[dirN  ])[kn  ]=(two*feqW27_N  -(f27_S  *(q*omegaD-one)-omegaD*feq27_S  *(q-one))/(omegaD-one)+f27_N  *q)/(q+one);
-      //q = q_dirT[k];   if (q>=zero && q<=one) (D27.f[dirB  ])[kb  ]=(two*feqW27_B  -(f27_T  *(q*omegaD-one)-omegaD*feq27_T  *(q-one))/(omegaD-one)+f27_B  *q)/(q+one);
-      //q = q_dirB[k];   if (q>=zero && q<=one) (D27.f[dirT  ])[kt  ]=(two*feqW27_T  -(f27_B  *(q*omegaD-one)-omegaD*feq27_B  *(q-one))/(omegaD-one)+f27_T  *q)/(q+one);
-      //q = q_dirNE[k];  if (q>=zero && q<=one) (D27.f[dirSW ])[ksw ]=(two*feqW27_SW -(f27_NE *(q*omegaD-one)-omegaD*feq27_NE *(q-one))/(omegaD-one)+f27_SW *q)/(q+one);
-      //q = q_dirSW[k];  if (q>=zero && q<=one) (D27.f[dirNE ])[kne ]=(two*feqW27_NE -(f27_SW *(q*omegaD-one)-omegaD*feq27_SW *(q-one))/(omegaD-one)+f27_NE *q)/(q+one);
-      //q = q_dirSE[k];  if (q>=zero && q<=one) (D27.f[dirNW ])[knw ]=(two*feqW27_NW -(f27_SE *(q*omegaD-one)-omegaD*feq27_SE *(q-one))/(omegaD-one)+f27_NW *q)/(q+one);
-      //q = q_dirNW[k];  if (q>=zero && q<=one) (D27.f[dirSE ])[kse ]=(two*feqW27_SE -(f27_NW *(q*omegaD-one)-omegaD*feq27_NW *(q-one))/(omegaD-one)+f27_SE *q)/(q+one);
-      //q = q_dirTE[k];  if (q>=zero && q<=one) (D27.f[dirBW ])[kbw ]=(two*feqW27_BW -(f27_TE *(q*omegaD-one)-omegaD*feq27_TE *(q-one))/(omegaD-one)+f27_BW *q)/(q+one);
-      //q = q_dirBW[k];  if (q>=zero && q<=one) (D27.f[dirTE ])[kte ]=(two*feqW27_TE -(f27_BW *(q*omegaD-one)-omegaD*feq27_BW *(q-one))/(omegaD-one)+f27_TE *q)/(q+one);
-      //q = q_dirBE[k];  if (q>=zero && q<=one) (D27.f[dirTW ])[ktw ]=(two*feqW27_TW -(f27_BE *(q*omegaD-one)-omegaD*feq27_BE *(q-one))/(omegaD-one)+f27_TW *q)/(q+one);
-      //q = q_dirTW[k];  if (q>=zero && q<=one) (D27.f[dirBE ])[kbe ]=(two*feqW27_BE -(f27_TW *(q*omegaD-one)-omegaD*feq27_TW *(q-one))/(omegaD-one)+f27_BE *q)/(q+one);
-      //q = q_dirTN[k];  if (q>=zero && q<=one) (D27.f[dirBS ])[kbs ]=(two*feqW27_BS -(f27_TN *(q*omegaD-one)-omegaD*feq27_TN *(q-one))/(omegaD-one)+f27_BS *q)/(q+one);
-      //q = q_dirBS[k];  if (q>=zero && q<=one) (D27.f[dirTN ])[ktn ]=(two*feqW27_TN -(f27_BS *(q*omegaD-one)-omegaD*feq27_BS *(q-one))/(omegaD-one)+f27_TN *q)/(q+one);
-      //q = q_dirBN[k];  if (q>=zero && q<=one) (D27.f[dirTS ])[kts ]=(two*feqW27_TS -(f27_BN *(q*omegaD-one)-omegaD*feq27_BN *(q-one))/(omegaD-one)+f27_TS *q)/(q+one);
-      //q = q_dirTS[k];  if (q>=zero && q<=one) (D27.f[dirBN ])[kbn ]=(two*feqW27_BN -(f27_TS *(q*omegaD-one)-omegaD*feq27_TS *(q-one))/(omegaD-one)+f27_BN *q)/(q+one);
-      //q = q_dirTNE[k]; if (q>=zero && q<=one) (D27.f[dirBSW])[kbsw]=(two*feqW27_BSW-(f27_TNE*(q*omegaD-one)-omegaD*feq27_TNE*(q-one))/(omegaD-one)+f27_BSW*q)/(q+one);
-      //q = q_dirBSW[k]; if (q>=zero && q<=one) (D27.f[dirTNE])[ktne]=(two*feqW27_TNE-(f27_BSW*(q*omegaD-one)-omegaD*feq27_BSW*(q-one))/(omegaD-one)+f27_TNE*q)/(q+one);
-      //q = q_dirBNE[k]; if (q>=zero && q<=one) (D27.f[dirTSW])[ktsw]=(two*feqW27_TSW-(f27_BNE*(q*omegaD-one)-omegaD*feq27_BNE*(q-one))/(omegaD-one)+f27_TSW*q)/(q+one);
-      //q = q_dirTSW[k]; if (q>=zero && q<=one) (D27.f[dirBNE])[kbne]=(two*feqW27_BNE-(f27_TSW*(q*omegaD-one)-omegaD*feq27_TSW*(q-one))/(omegaD-one)+f27_BNE*q)/(q+one);
-      //q = q_dirTSE[k]; if (q>=zero && q<=one) (D27.f[dirBNW])[kbnw]=(two*feqW27_BNW-(f27_TSE*(q*omegaD-one)-omegaD*feq27_TSE*(q-one))/(omegaD-one)+f27_BNW*q)/(q+one);
-      //q = q_dirBNW[k]; if (q>=zero && q<=one) (D27.f[dirTSE])[ktse]=(two*feqW27_TSE-(f27_BNW*(q*omegaD-one)-omegaD*feq27_BNW*(q-one))/(omegaD-one)+f27_TSE*q)/(q+one);
-      //q = q_dirBSE[k]; if (q>=zero && q<=one) (D27.f[dirTNW])[ktnw]=(two*feqW27_TNW-(f27_BSE*(q*omegaD-one)-omegaD*feq27_BSE*(q-one))/(omegaD-one)+f27_TNW*q)/(q+one);
-      //q = q_dirTNW[k]; if (q>=zero && q<=one) (D27.f[dirBSE])[kbse]=(two*feqW27_BSE-(f27_TNW*(q*omegaD-one)-omegaD*feq27_TNW*(q-one))/(omegaD-one)+f27_BSE*q)/(q+one);
+      q = q_dirE[  ke   ]; if (q>=c0o1 && q<=c1o1) (D27.f[W  ])[kw  ]=(c2o1*feqW27_W  -(f27_E  *(q*omegaD-c1o1)-omegaD*feq27_E  *(q-c1o1))/(omegaD-c1o1)+f27_W  *q)/(q+c1o1);
+      q = q_dirW[  kw   ]; if (q>=c0o1 && q<=c1o1) (D27.f[E  ])[ke  ]=(c2o1*feqW27_E  -(f27_W  *(q*omegaD-c1o1)-omegaD*feq27_W  *(q-c1o1))/(omegaD-c1o1)+f27_E  *q)/(q+c1o1);
+      q = q_dirN[  kn   ]; if (q>=c0o1 && q<=c1o1) (D27.f[S  ])[ks  ]=(c2o1*feqW27_S  -(f27_N  *(q*omegaD-c1o1)-omegaD*feq27_N  *(q-c1o1))/(omegaD-c1o1)+f27_S  *q)/(q+c1o1);
+      q = q_dirS[  ks   ]; if (q>=c0o1 && q<=c1o1) (D27.f[N  ])[kn  ]=(c2o1*feqW27_N  -(f27_S  *(q*omegaD-c1o1)-omegaD*feq27_S  *(q-c1o1))/(omegaD-c1o1)+f27_N  *q)/(q+c1o1);
+      q = q_dirT[  kt   ]; if (q>=c0o1 && q<=c1o1) (D27.f[B  ])[kb  ]=(c2o1*feqW27_B  -(f27_T  *(q*omegaD-c1o1)-omegaD*feq27_T  *(q-c1o1))/(omegaD-c1o1)+f27_B  *q)/(q+c1o1);
+      q = q_dirB[  kb   ]; if (q>=c0o1 && q<=c1o1) (D27.f[T  ])[kt  ]=(c2o1*feqW27_T  -(f27_B  *(q*omegaD-c1o1)-omegaD*feq27_B  *(q-c1o1))/(omegaD-c1o1)+f27_T  *q)/(q+c1o1);
+      q = q_dirNE[ kne  ]; if (q>=c0o1 && q<=c1o1) (D27.f[SW ])[ksw ]=(c2o1*feqW27_SW -(f27_NE *(q*omegaD-c1o1)-omegaD*feq27_NE *(q-c1o1))/(omegaD-c1o1)+f27_SW *q)/(q+c1o1);
+      q = q_dirSW[ ksw  ]; if (q>=c0o1 && q<=c1o1) (D27.f[NE ])[kne ]=(c2o1*feqW27_NE -(f27_SW *(q*omegaD-c1o1)-omegaD*feq27_SW *(q-c1o1))/(omegaD-c1o1)+f27_NE *q)/(q+c1o1);
+      q = q_dirSE[ kse  ]; if (q>=c0o1 && q<=c1o1) (D27.f[NW ])[knw ]=(c2o1*feqW27_NW -(f27_SE *(q*omegaD-c1o1)-omegaD*feq27_SE *(q-c1o1))/(omegaD-c1o1)+f27_NW *q)/(q+c1o1);
+      q = q_dirNW[ knw  ]; if (q>=c0o1 && q<=c1o1) (D27.f[SE ])[kse ]=(c2o1*feqW27_SE -(f27_NW *(q*omegaD-c1o1)-omegaD*feq27_NW *(q-c1o1))/(omegaD-c1o1)+f27_SE *q)/(q+c1o1);
+      q = q_dirTE[ kte  ]; if (q>=c0o1 && q<=c1o1) (D27.f[BW ])[kbw ]=(c2o1*feqW27_BW -(f27_TE *(q*omegaD-c1o1)-omegaD*feq27_TE *(q-c1o1))/(omegaD-c1o1)+f27_BW *q)/(q+c1o1);
+      q = q_dirBW[ kbw  ]; if (q>=c0o1 && q<=c1o1) (D27.f[TE ])[kte ]=(c2o1*feqW27_TE -(f27_BW *(q*omegaD-c1o1)-omegaD*feq27_BW *(q-c1o1))/(omegaD-c1o1)+f27_TE *q)/(q+c1o1);
+      q = q_dirBE[ kbe  ]; if (q>=c0o1 && q<=c1o1) (D27.f[TW ])[ktw ]=(c2o1*feqW27_TW -(f27_BE *(q*omegaD-c1o1)-omegaD*feq27_BE *(q-c1o1))/(omegaD-c1o1)+f27_TW *q)/(q+c1o1);
+      q = q_dirTW[ ktw  ]; if (q>=c0o1 && q<=c1o1) (D27.f[BE ])[kbe ]=(c2o1*feqW27_BE -(f27_TW *(q*omegaD-c1o1)-omegaD*feq27_TW *(q-c1o1))/(omegaD-c1o1)+f27_BE *q)/(q+c1o1);
+      q = q_dirTN[ ktn  ]; if (q>=c0o1 && q<=c1o1) (D27.f[BS ])[kbs ]=(c2o1*feqW27_BS -(f27_TN *(q*omegaD-c1o1)-omegaD*feq27_TN *(q-c1o1))/(omegaD-c1o1)+f27_BS *q)/(q+c1o1);
+      q = q_dirBS[ kbs  ]; if (q>=c0o1 && q<=c1o1) (D27.f[TN ])[ktn ]=(c2o1*feqW27_TN -(f27_BS *(q*omegaD-c1o1)-omegaD*feq27_BS *(q-c1o1))/(omegaD-c1o1)+f27_TN *q)/(q+c1o1);
+      q = q_dirBN[ kbn  ]; if (q>=c0o1 && q<=c1o1) (D27.f[TS ])[kts ]=(c2o1*feqW27_TS -(f27_BN *(q*omegaD-c1o1)-omegaD*feq27_BN *(q-c1o1))/(omegaD-c1o1)+f27_TS *q)/(q+c1o1);
+      q = q_dirTS[ kts  ]; if (q>=c0o1 && q<=c1o1) (D27.f[BN ])[kbn ]=(c2o1*feqW27_BN -(f27_TS *(q*omegaD-c1o1)-omegaD*feq27_TS *(q-c1o1))/(omegaD-c1o1)+f27_BN *q)/(q+c1o1);
+      q = q_dirTNE[ktne ]; if (q>=c0o1 && q<=c1o1) (D27.f[BSW])[kbsw]=(c2o1*feqW27_BSW-(f27_TNE*(q*omegaD-c1o1)-omegaD*feq27_TNE*(q-c1o1))/(omegaD-c1o1)+f27_BSW*q)/(q+c1o1);
+      q = q_dirBSW[kbsw ]; if (q>=c0o1 && q<=c1o1) (D27.f[TNE])[ktne]=(c2o1*feqW27_TNE-(f27_BSW*(q*omegaD-c1o1)-omegaD*feq27_BSW*(q-c1o1))/(omegaD-c1o1)+f27_TNE*q)/(q+c1o1);
+      q = q_dirBNE[kbne ]; if (q>=c0o1 && q<=c1o1) (D27.f[TSW])[ktsw]=(c2o1*feqW27_TSW-(f27_BNE*(q*omegaD-c1o1)-omegaD*feq27_BNE*(q-c1o1))/(omegaD-c1o1)+f27_TSW*q)/(q+c1o1);
+      q = q_dirTSW[ktsw ]; if (q>=c0o1 && q<=c1o1) (D27.f[BNE])[kbne]=(c2o1*feqW27_BNE-(f27_TSW*(q*omegaD-c1o1)-omegaD*feq27_TSW*(q-c1o1))/(omegaD-c1o1)+f27_BNE*q)/(q+c1o1);
+      q = q_dirTSE[ktse ]; if (q>=c0o1 && q<=c1o1) (D27.f[BNW])[kbnw]=(c2o1*feqW27_BNW-(f27_TSE*(q*omegaD-c1o1)-omegaD*feq27_TSE*(q-c1o1))/(omegaD-c1o1)+f27_BNW*q)/(q+c1o1);
+      q = q_dirBNW[kbnw ]; if (q>=c0o1 && q<=c1o1) (D27.f[TSE])[ktse]=(c2o1*feqW27_TSE-(f27_BNW*(q*omegaD-c1o1)-omegaD*feq27_BNW*(q-c1o1))/(omegaD-c1o1)+f27_TSE*q)/(q+c1o1);
+      q = q_dirBSE[kbse ]; if (q>=c0o1 && q<=c1o1) (D27.f[TNW])[ktnw]=(c2o1*feqW27_TNW-(f27_BSE*(q*omegaD-c1o1)-omegaD*feq27_BSE*(q-c1o1))/(omegaD-c1o1)+f27_TNW*q)/(q+c1o1);
+      q = q_dirTNW[ktnw ]; if (q>=c0o1 && q<=c1o1) (D27.f[BSE])[kbse]=(c2o1*feqW27_BSE-(f27_TNW*(q*omegaD-c1o1)-omegaD*feq27_TNW*(q-c1o1))/(omegaD-c1o1)+f27_BSE*q)/(q+c1o1);
+      //q = q_dirE[k];   if (q>=zero && q<=one) (D27.f[W  ])[kw  ]=(two*feqW27_W  -(f27_E  *(q*omegaD-one)-omegaD*feq27_E  *(q-one))/(omegaD-one)+f27_W  *q)/(q+one);
+      //q = q_dirW[k];   if (q>=zero && q<=one) (D27.f[E  ])[ke  ]=(two*feqW27_E  -(f27_W  *(q*omegaD-one)-omegaD*feq27_W  *(q-one))/(omegaD-one)+f27_E  *q)/(q+one);
+      //q = q_dirN[k];   if (q>=zero && q<=one) (D27.f[S  ])[ks  ]=(two*feqW27_S  -(f27_N  *(q*omegaD-one)-omegaD*feq27_N  *(q-one))/(omegaD-one)+f27_S  *q)/(q+one);
+      //q = q_dirS[k];   if (q>=zero && q<=one) (D27.f[N  ])[kn  ]=(two*feqW27_N  -(f27_S  *(q*omegaD-one)-omegaD*feq27_S  *(q-one))/(omegaD-one)+f27_N  *q)/(q+one);
+      //q = q_dirT[k];   if (q>=zero && q<=one) (D27.f[B  ])[kb  ]=(two*feqW27_B  -(f27_T  *(q*omegaD-one)-omegaD*feq27_T  *(q-one))/(omegaD-one)+f27_B  *q)/(q+one);
+      //q = q_dirB[k];   if (q>=zero && q<=one) (D27.f[T  ])[kt  ]=(two*feqW27_T  -(f27_B  *(q*omegaD-one)-omegaD*feq27_B  *(q-one))/(omegaD-one)+f27_T  *q)/(q+one);
+      //q = q_dirNE[k];  if (q>=zero && q<=one) (D27.f[SW ])[ksw ]=(two*feqW27_SW -(f27_NE *(q*omegaD-one)-omegaD*feq27_NE *(q-one))/(omegaD-one)+f27_SW *q)/(q+one);
+      //q = q_dirSW[k];  if (q>=zero && q<=one) (D27.f[NE ])[kne ]=(two*feqW27_NE -(f27_SW *(q*omegaD-one)-omegaD*feq27_SW *(q-one))/(omegaD-one)+f27_NE *q)/(q+one);
+      //q = q_dirSE[k];  if (q>=zero && q<=one) (D27.f[NW ])[knw ]=(two*feqW27_NW -(f27_SE *(q*omegaD-one)-omegaD*feq27_SE *(q-one))/(omegaD-one)+f27_NW *q)/(q+one);
+      //q = q_dirNW[k];  if (q>=zero && q<=one) (D27.f[SE ])[kse ]=(two*feqW27_SE -(f27_NW *(q*omegaD-one)-omegaD*feq27_NW *(q-one))/(omegaD-one)+f27_SE *q)/(q+one);
+      //q = q_dirTE[k];  if (q>=zero && q<=one) (D27.f[BW ])[kbw ]=(two*feqW27_BW -(f27_TE *(q*omegaD-one)-omegaD*feq27_TE *(q-one))/(omegaD-one)+f27_BW *q)/(q+one);
+      //q = q_dirBW[k];  if (q>=zero && q<=one) (D27.f[TE ])[kte ]=(two*feqW27_TE -(f27_BW *(q*omegaD-one)-omegaD*feq27_BW *(q-one))/(omegaD-one)+f27_TE *q)/(q+one);
+      //q = q_dirBE[k];  if (q>=zero && q<=one) (D27.f[TW ])[ktw ]=(two*feqW27_TW -(f27_BE *(q*omegaD-one)-omegaD*feq27_BE *(q-one))/(omegaD-one)+f27_TW *q)/(q+one);
+      //q = q_dirTW[k];  if (q>=zero && q<=one) (D27.f[BE ])[kbe ]=(two*feqW27_BE -(f27_TW *(q*omegaD-one)-omegaD*feq27_TW *(q-one))/(omegaD-one)+f27_BE *q)/(q+one);
+      //q = q_dirTN[k];  if (q>=zero && q<=one) (D27.f[BS ])[kbs ]=(two*feqW27_BS -(f27_TN *(q*omegaD-one)-omegaD*feq27_TN *(q-one))/(omegaD-one)+f27_BS *q)/(q+one);
+      //q = q_dirBS[k];  if (q>=zero && q<=one) (D27.f[TN ])[ktn ]=(two*feqW27_TN -(f27_BS *(q*omegaD-one)-omegaD*feq27_BS *(q-one))/(omegaD-one)+f27_TN *q)/(q+one);
+      //q = q_dirBN[k];  if (q>=zero && q<=one) (D27.f[TS ])[kts ]=(two*feqW27_TS -(f27_BN *(q*omegaD-one)-omegaD*feq27_BN *(q-one))/(omegaD-one)+f27_TS *q)/(q+one);
+      //q = q_dirTS[k];  if (q>=zero && q<=one) (D27.f[BN ])[kbn ]=(two*feqW27_BN -(f27_TS *(q*omegaD-one)-omegaD*feq27_TS *(q-one))/(omegaD-one)+f27_BN *q)/(q+one);
+      //q = q_dirTNE[k]; if (q>=zero && q<=one) (D27.f[BSW])[kbsw]=(two*feqW27_BSW-(f27_TNE*(q*omegaD-one)-omegaD*feq27_TNE*(q-one))/(omegaD-one)+f27_BSW*q)/(q+one);
+      //q = q_dirBSW[k]; if (q>=zero && q<=one) (D27.f[TNE])[ktne]=(two*feqW27_TNE-(f27_BSW*(q*omegaD-one)-omegaD*feq27_BSW*(q-one))/(omegaD-one)+f27_TNE*q)/(q+one);
+      //q = q_dirBNE[k]; if (q>=zero && q<=one) (D27.f[TSW])[ktsw]=(two*feqW27_TSW-(f27_BNE*(q*omegaD-one)-omegaD*feq27_BNE*(q-one))/(omegaD-one)+f27_TSW*q)/(q+one);
+      //q = q_dirTSW[k]; if (q>=zero && q<=one) (D27.f[BNE])[kbne]=(two*feqW27_BNE-(f27_TSW*(q*omegaD-one)-omegaD*feq27_TSW*(q-one))/(omegaD-one)+f27_BNE*q)/(q+one);
+      //q = q_dirTSE[k]; if (q>=zero && q<=one) (D27.f[BNW])[kbnw]=(two*feqW27_BNW-(f27_TSE*(q*omegaD-one)-omegaD*feq27_TSE*(q-one))/(omegaD-one)+f27_BNW*q)/(q+one);
+      //q = q_dirBNW[k]; if (q>=zero && q<=one) (D27.f[TSE])[ktse]=(two*feqW27_TSE-(f27_BNW*(q*omegaD-one)-omegaD*feq27_BNW*(q-one))/(omegaD-one)+f27_TSE*q)/(q+one);
+      //q = q_dirBSE[k]; if (q>=zero && q<=one) (D27.f[TNW])[ktnw]=(two*feqW27_TNW-(f27_BSE*(q*omegaD-one)-omegaD*feq27_BSE*(q-one))/(omegaD-one)+f27_TNW*q)/(q+one);
+      //q = q_dirTNW[k]; if (q>=zero && q<=one) (D27.f[BSE])[kbse]=(two*feqW27_BSE-(f27_TNW*(q*omegaD-one)-omegaD*feq27_TNW*(q-one))/(omegaD-one)+f27_BSE*q)/(q+one);
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -3394,125 +3394,125 @@ extern "C" __global__ void QADBB27( real* DD,
    //Distributions27 D;
    //if (isEvenTimestep==true)
    //{
-   //   D.f[dirE   ] = &DD[dirE   *size_Mat];
-   //   D.f[dirW   ] = &DD[dirW   *size_Mat];
-   //   D.f[dirN   ] = &DD[dirN   *size_Mat];
-   //   D.f[dirS   ] = &DD[dirS   *size_Mat];
-   //   D.f[dirT   ] = &DD[dirT   *size_Mat];
-   //   D.f[dirB   ] = &DD[dirB   *size_Mat];
-   //   D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-   //   D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-   //   D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-   //   D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-   //   D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-   //   D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-   //   D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-   //   D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-   //   D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-   //   D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-   //   D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-   //   D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+   //   D.f[E   ] = &DD[E   *size_Mat];
+   //   D.f[W   ] = &DD[W   *size_Mat];
+   //   D.f[N   ] = &DD[N   *size_Mat];
+   //   D.f[S   ] = &DD[S   *size_Mat];
+   //   D.f[T   ] = &DD[T   *size_Mat];
+   //   D.f[B   ] = &DD[B   *size_Mat];
+   //   D.f[NE  ] = &DD[NE  *size_Mat];
+   //   D.f[SW  ] = &DD[SW  *size_Mat];
+   //   D.f[SE  ] = &DD[SE  *size_Mat];
+   //   D.f[NW  ] = &DD[NW  *size_Mat];
+   //   D.f[TE  ] = &DD[TE  *size_Mat];
+   //   D.f[BW  ] = &DD[BW  *size_Mat];
+   //   D.f[BE  ] = &DD[BE  *size_Mat];
+   //   D.f[TW  ] = &DD[TW  *size_Mat];
+   //   D.f[TN  ] = &DD[TN  *size_Mat];
+   //   D.f[BS  ] = &DD[BS  *size_Mat];
+   //   D.f[BN  ] = &DD[BN  *size_Mat];
+   //   D.f[TS  ] = &DD[TS  *size_Mat];
    //   D.f[dirREST] = &DD[dirREST*size_Mat];
-   //   D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-   //   D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-   //   D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-   //   D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-   //   D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-   //   D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-   //   D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-   //   D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+   //   D.f[TNE ] = &DD[TNE *size_Mat];
+   //   D.f[TSW ] = &DD[TSW *size_Mat];
+   //   D.f[TSE ] = &DD[TSE *size_Mat];
+   //   D.f[TNW ] = &DD[TNW *size_Mat];
+   //   D.f[BNE ] = &DD[BNE *size_Mat];
+   //   D.f[BSW ] = &DD[BSW *size_Mat];
+   //   D.f[BSE ] = &DD[BSE *size_Mat];
+   //   D.f[BNW ] = &DD[BNW *size_Mat];
    //} 
    //else
    //{
-   //   D.f[dirW   ] = &DD[dirE   *size_Mat];
-   //   D.f[dirE   ] = &DD[dirW   *size_Mat];
-   //   D.f[dirS   ] = &DD[dirN   *size_Mat];
-   //   D.f[dirN   ] = &DD[dirS   *size_Mat];
-   //   D.f[dirB   ] = &DD[dirT   *size_Mat];
-   //   D.f[dirT   ] = &DD[dirB   *size_Mat];
-   //   D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-   //   D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-   //   D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-   //   D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-   //   D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-   //   D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-   //   D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-   //   D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-   //   D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-   //   D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-   //   D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-   //   D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+   //   D.f[W   ] = &DD[E   *size_Mat];
+   //   D.f[E   ] = &DD[W   *size_Mat];
+   //   D.f[S   ] = &DD[N   *size_Mat];
+   //   D.f[N   ] = &DD[S   *size_Mat];
+   //   D.f[B   ] = &DD[T   *size_Mat];
+   //   D.f[T   ] = &DD[B   *size_Mat];
+   //   D.f[SW  ] = &DD[NE  *size_Mat];
+   //   D.f[NE  ] = &DD[SW  *size_Mat];
+   //   D.f[NW  ] = &DD[SE  *size_Mat];
+   //   D.f[SE  ] = &DD[NW  *size_Mat];
+   //   D.f[BW  ] = &DD[TE  *size_Mat];
+   //   D.f[TE  ] = &DD[BW  *size_Mat];
+   //   D.f[TW  ] = &DD[BE  *size_Mat];
+   //   D.f[BE  ] = &DD[TW  *size_Mat];
+   //   D.f[BS  ] = &DD[TN  *size_Mat];
+   //   D.f[TN  ] = &DD[BS  *size_Mat];
+   //   D.f[TS  ] = &DD[BN  *size_Mat];
+   //   D.f[BN  ] = &DD[TS  *size_Mat];
    //   D.f[dirREST] = &DD[dirREST*size_Mat];
-   //   D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-   //   D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-   //   D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-   //   D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-   //   D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-   //   D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-   //   D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-   //   D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+   //   D.f[TNE ] = &DD[BSW *size_Mat];
+   //   D.f[TSW ] = &DD[BNE *size_Mat];
+   //   D.f[TSE ] = &DD[BNW *size_Mat];
+   //   D.f[TNW ] = &DD[BSE *size_Mat];
+   //   D.f[BNE ] = &DD[TSW *size_Mat];
+   //   D.f[BSW ] = &DD[TNE *size_Mat];
+   //   D.f[BSE ] = &DD[TNW *size_Mat];
+   //   D.f[BNW ] = &DD[TSE *size_Mat];
    //}
 
    Distributions27 D27;
    if (isEvenTimestep==true)
    {
-      D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+      D27.f[E   ] = &DD27[E   *size_Mat];
+      D27.f[W   ] = &DD27[W   *size_Mat];
+      D27.f[N   ] = &DD27[N   *size_Mat];
+      D27.f[S   ] = &DD27[S   *size_Mat];
+      D27.f[T   ] = &DD27[T   *size_Mat];
+      D27.f[B   ] = &DD27[B   *size_Mat];
+      D27.f[NE  ] = &DD27[NE  *size_Mat];
+      D27.f[SW  ] = &DD27[SW  *size_Mat];
+      D27.f[SE  ] = &DD27[SE  *size_Mat];
+      D27.f[NW  ] = &DD27[NW  *size_Mat];
+      D27.f[TE  ] = &DD27[TE  *size_Mat];
+      D27.f[BW  ] = &DD27[BW  *size_Mat];
+      D27.f[BE  ] = &DD27[BE  *size_Mat];
+      D27.f[TW  ] = &DD27[TW  *size_Mat];
+      D27.f[TN  ] = &DD27[TN  *size_Mat];
+      D27.f[BS  ] = &DD27[BS  *size_Mat];
+      D27.f[BN  ] = &DD27[BN  *size_Mat];
+      D27.f[TS  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+      D27.f[TNE ] = &DD27[TNE *size_Mat];
+      D27.f[TSW ] = &DD27[TSW *size_Mat];
+      D27.f[TSE ] = &DD27[TSE *size_Mat];
+      D27.f[TNW ] = &DD27[TNW *size_Mat];
+      D27.f[BNE ] = &DD27[BNE *size_Mat];
+      D27.f[BSW ] = &DD27[BSW *size_Mat];
+      D27.f[BSE ] = &DD27[BSE *size_Mat];
+      D27.f[BNW ] = &DD27[BNW *size_Mat];
    } 
    else
    {
-      D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+      D27.f[W   ] = &DD27[E   *size_Mat];
+      D27.f[E   ] = &DD27[W   *size_Mat];
+      D27.f[S   ] = &DD27[N   *size_Mat];
+      D27.f[N   ] = &DD27[S   *size_Mat];
+      D27.f[B   ] = &DD27[T   *size_Mat];
+      D27.f[T   ] = &DD27[B   *size_Mat];
+      D27.f[SW  ] = &DD27[NE  *size_Mat];
+      D27.f[NE  ] = &DD27[SW  *size_Mat];
+      D27.f[NW  ] = &DD27[SE  *size_Mat];
+      D27.f[SE  ] = &DD27[NW  *size_Mat];
+      D27.f[BW  ] = &DD27[TE  *size_Mat];
+      D27.f[TE  ] = &DD27[BW  *size_Mat];
+      D27.f[TW  ] = &DD27[BE  *size_Mat];
+      D27.f[BE  ] = &DD27[TW  *size_Mat];
+      D27.f[BS  ] = &DD27[TN  *size_Mat];
+      D27.f[TN  ] = &DD27[BS  *size_Mat];
+      D27.f[TS  ] = &DD27[BN  *size_Mat];
+      D27.f[BN  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+      D27.f[TNE ] = &DD27[BSW *size_Mat];
+      D27.f[TSW ] = &DD27[BNE *size_Mat];
+      D27.f[TSE ] = &DD27[BNW *size_Mat];
+      D27.f[TNW ] = &DD27[BSE *size_Mat];
+      D27.f[BNE ] = &DD27[TSW *size_Mat];
+      D27.f[BSW ] = &DD27[TNE *size_Mat];
+      D27.f[BSE ] = &DD27[TNW *size_Mat];
+      D27.f[BNW ] = &DD27[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -3533,32 +3533,32 @@ extern "C" __global__ void QADBB27( real* DD,
          *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
          *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
          *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -3590,33 +3590,33 @@ extern "C" __global__ void QADBB27( real* DD,
       unsigned int ktne = KQK;
       unsigned int kbsw = neighborZ[ksw];
       ////////////////////////////////////////////////////////////////////////////////
-      //real f_W    = (D.f[dirE   ])[ke   ];
-      //real f_E    = (D.f[dirW   ])[kw   ];
-      //real f_S    = (D.f[dirN   ])[kn   ];
-      //real f_N    = (D.f[dirS   ])[ks   ];
-      //real f_B    = (D.f[dirT   ])[kt   ];
-      //real f_T    = (D.f[dirB   ])[kb   ];
-      //real f_SW   = (D.f[dirNE  ])[kne  ];
-      //real f_NE   = (D.f[dirSW  ])[ksw  ];
-      //real f_NW   = (D.f[dirSE  ])[kse  ];
-      //real f_SE   = (D.f[dirNW  ])[knw  ];
-      //real f_BW   = (D.f[dirTE  ])[kte  ];
-      //real f_TE   = (D.f[dirBW  ])[kbw  ];
-      //real f_TW   = (D.f[dirBE  ])[kbe  ];
-      //real f_BE   = (D.f[dirTW  ])[ktw  ];
-      //real f_BS   = (D.f[dirTN  ])[ktn  ];
-      //real f_TN   = (D.f[dirBS  ])[kbs  ];
-      //real f_TS   = (D.f[dirBN  ])[kbn  ];
-      //real f_BN   = (D.f[dirTS  ])[kts  ];
+      //real f_W    = (D.f[E   ])[ke   ];
+      //real f_E    = (D.f[W   ])[kw   ];
+      //real f_S    = (D.f[N   ])[kn   ];
+      //real f_N    = (D.f[S   ])[ks   ];
+      //real f_B    = (D.f[T   ])[kt   ];
+      //real f_T    = (D.f[B   ])[kb   ];
+      //real f_SW   = (D.f[NE  ])[kne  ];
+      //real f_NE   = (D.f[SW  ])[ksw  ];
+      //real f_NW   = (D.f[SE  ])[kse  ];
+      //real f_SE   = (D.f[NW  ])[knw  ];
+      //real f_BW   = (D.f[TE  ])[kte  ];
+      //real f_TE   = (D.f[BW  ])[kbw  ];
+      //real f_TW   = (D.f[BE  ])[kbe  ];
+      //real f_BE   = (D.f[TW  ])[ktw  ];
+      //real f_BS   = (D.f[TN  ])[ktn  ];
+      //real f_TN   = (D.f[BS  ])[kbs  ];
+      //real f_TS   = (D.f[BN  ])[kbn  ];
+      //real f_BN   = (D.f[TS  ])[kts  ];
       //real f_ZERO = (D.f[dirREST])[kzero];
-      //real f_BSW  = (D.f[dirTNE ])[ktne ];
-      //real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      //real f_BNW  = (D.f[dirTSE ])[ktse ];
-      //real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      //real f_TSW  = (D.f[dirBNE ])[kbne ];
-      //real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      //real f_TNW  = (D.f[dirBSE ])[kbse ];
-      //real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      //real f_BSW  = (D.f[TNE ])[ktne ];
+      //real f_BNE  = (D.f[TSW ])[ktsw ];
+      //real f_BNW  = (D.f[TSE ])[ktse ];
+      //real f_BSE  = (D.f[TNW ])[ktnw ];
+      //real f_TSW  = (D.f[BNE ])[kbne ];
+      //real f_TNE  = (D.f[BSW ])[kbsw ];
+      //real f_TNW  = (D.f[BSE ])[kbse ];
+      //real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       //real vx1, vx2, vx3, /*drho, feq,*/ q;
       real q;
@@ -3643,33 +3643,33 @@ extern "C" __global__ void QADBB27( real* DD,
       //vx2     =  OORho*((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S));
       //vx3     =  OORho*((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B));
       ////////////////////////////////////////////////////////////////////////////////
-      real f27_W    = (D27.f[dirE   ])[ke   ];
-      real f27_E    = (D27.f[dirW   ])[kw   ];
-      real f27_S    = (D27.f[dirN   ])[kn   ];
-      real f27_N    = (D27.f[dirS   ])[ks   ];
-      real f27_B    = (D27.f[dirT   ])[kt   ];
-      real f27_T    = (D27.f[dirB   ])[kb   ];
-      real f27_SW   = (D27.f[dirNE  ])[kne  ];
-      real f27_NE   = (D27.f[dirSW  ])[ksw  ];
-      real f27_NW   = (D27.f[dirSE  ])[kse  ];
-      real f27_SE   = (D27.f[dirNW  ])[knw  ];
-      real f27_BW   = (D27.f[dirTE  ])[kte  ];
-      real f27_TE   = (D27.f[dirBW  ])[kbw  ];
-      real f27_TW   = (D27.f[dirBE  ])[kbe  ];
-      real f27_BE   = (D27.f[dirTW  ])[ktw  ];
-      real f27_BS   = (D27.f[dirTN  ])[ktn  ];
-      real f27_TN   = (D27.f[dirBS  ])[kbs  ];
-      real f27_TS   = (D27.f[dirBN  ])[kbn  ];
-      real f27_BN   = (D27.f[dirTS  ])[kts  ];
+      real f27_W    = (D27.f[E   ])[ke   ];
+      real f27_E    = (D27.f[W   ])[kw   ];
+      real f27_S    = (D27.f[N   ])[kn   ];
+      real f27_N    = (D27.f[S   ])[ks   ];
+      real f27_B    = (D27.f[T   ])[kt   ];
+      real f27_T    = (D27.f[B   ])[kb   ];
+      real f27_SW   = (D27.f[NE  ])[kne  ];
+      real f27_NE   = (D27.f[SW  ])[ksw  ];
+      real f27_NW   = (D27.f[SE  ])[kse  ];
+      real f27_SE   = (D27.f[NW  ])[knw  ];
+      real f27_BW   = (D27.f[TE  ])[kte  ];
+      real f27_TE   = (D27.f[BW  ])[kbw  ];
+      real f27_TW   = (D27.f[BE  ])[kbe  ];
+      real f27_BE   = (D27.f[TW  ])[ktw  ];
+      real f27_BS   = (D27.f[TN  ])[ktn  ];
+      real f27_TN   = (D27.f[BS  ])[kbs  ];
+      real f27_TS   = (D27.f[BN  ])[kbn  ];
+      real f27_BN   = (D27.f[TS  ])[kts  ];
       //real f27_ZERO = (D27.f[dirREST])[kzero];
-      real f27_BSW  = (D27.f[dirTNE ])[ktne ];
-      real f27_BNE  = (D27.f[dirTSW ])[ktsw ];
-      real f27_BNW  = (D27.f[dirTSE ])[ktse ];
-      real f27_BSE  = (D27.f[dirTNW ])[ktnw ];
-      real f27_TSW  = (D27.f[dirBNE ])[kbne ];
-      real f27_TNE  = (D27.f[dirBSW ])[kbsw ];
-      real f27_TNW  = (D27.f[dirBSE ])[kbse ];
-      real f27_TSE  = (D27.f[dirBNW ])[kbnw ];
+      real f27_BSW  = (D27.f[TNE ])[ktne ];
+      real f27_BNE  = (D27.f[TSW ])[ktsw ];
+      real f27_BNW  = (D27.f[TSE ])[ktse ];
+      real f27_BSE  = (D27.f[TNW ])[ktnw ];
+      real f27_TSW  = (D27.f[BNE ])[kbne ];
+      real f27_TNE  = (D27.f[BSW ])[kbsw ];
+      real f27_TNW  = (D27.f[BSE ])[kbse ];
+      real f27_TSE  = (D27.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       //real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
       ////////////////////////////////////////////////////////////////////////////////
@@ -3745,94 +3745,94 @@ extern "C" __global__ void QADBB27( real* DD,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+         D27.f[E   ] = &DD27[E   *size_Mat];
+         D27.f[W   ] = &DD27[W   *size_Mat];
+         D27.f[N   ] = &DD27[N   *size_Mat];
+         D27.f[S   ] = &DD27[S   *size_Mat];
+         D27.f[T   ] = &DD27[T   *size_Mat];
+         D27.f[B   ] = &DD27[B   *size_Mat];
+         D27.f[NE  ] = &DD27[NE  *size_Mat];
+         D27.f[SW  ] = &DD27[SW  *size_Mat];
+         D27.f[SE  ] = &DD27[SE  *size_Mat];
+         D27.f[NW  ] = &DD27[NW  *size_Mat];
+         D27.f[TE  ] = &DD27[TE  *size_Mat];
+         D27.f[BW  ] = &DD27[BW  *size_Mat];
+         D27.f[BE  ] = &DD27[BE  *size_Mat];
+         D27.f[TW  ] = &DD27[TW  *size_Mat];
+         D27.f[TN  ] = &DD27[TN  *size_Mat];
+         D27.f[BS  ] = &DD27[BS  *size_Mat];
+         D27.f[BN  ] = &DD27[BN  *size_Mat];
+         D27.f[TS  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+         D27.f[TNE ] = &DD27[TNE *size_Mat];
+         D27.f[TSW ] = &DD27[TSW *size_Mat];
+         D27.f[TSE ] = &DD27[TSE *size_Mat];
+         D27.f[TNW ] = &DD27[TNW *size_Mat];
+         D27.f[BNE ] = &DD27[BNE *size_Mat];
+         D27.f[BSW ] = &DD27[BSW *size_Mat];
+         D27.f[BSE ] = &DD27[BSE *size_Mat];
+         D27.f[BNW ] = &DD27[BNW *size_Mat];
       } 
       else
       {
-         D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+         D27.f[W   ] = &DD27[E   *size_Mat];
+         D27.f[E   ] = &DD27[W   *size_Mat];
+         D27.f[S   ] = &DD27[N   *size_Mat];
+         D27.f[N   ] = &DD27[S   *size_Mat];
+         D27.f[B   ] = &DD27[T   *size_Mat];
+         D27.f[T   ] = &DD27[B   *size_Mat];
+         D27.f[SW  ] = &DD27[NE  *size_Mat];
+         D27.f[NE  ] = &DD27[SW  *size_Mat];
+         D27.f[NW  ] = &DD27[SE  *size_Mat];
+         D27.f[SE  ] = &DD27[NW  *size_Mat];
+         D27.f[BW  ] = &DD27[TE  *size_Mat];
+         D27.f[TE  ] = &DD27[BW  *size_Mat];
+         D27.f[TW  ] = &DD27[BE  *size_Mat];
+         D27.f[BE  ] = &DD27[TW  *size_Mat];
+         D27.f[BS  ] = &DD27[TN  *size_Mat];
+         D27.f[TN  ] = &DD27[BS  *size_Mat];
+         D27.f[TS  ] = &DD27[BN  *size_Mat];
+         D27.f[BN  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+         D27.f[TNE ] = &DD27[BSW *size_Mat];
+         D27.f[TSW ] = &DD27[BNE *size_Mat];
+         D27.f[TSE ] = &DD27[BNW *size_Mat];
+         D27.f[TNW ] = &DD27[BSE *size_Mat];
+         D27.f[BNE ] = &DD27[TSW *size_Mat];
+         D27.f[BSW ] = &DD27[TNE *size_Mat];
+         D27.f[BSE ] = &DD27[TNW *size_Mat];
+         D27.f[BNW ] = &DD27[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
       //(D.f[dirREST])[k]=0.1f;
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirW  ])[kw  ]=f27_E  ;
-      q = q_dirW[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirE  ])[ke  ]=f27_W  ;
-      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirS  ])[ks  ]=f27_N  ;
-      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirN  ])[kn  ]=f27_S  ;
-      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirB  ])[kb  ]=f27_T  ;
-      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirT  ])[kt  ]=f27_B  ;
-      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirSW ])[ksw ]=f27_NE ;
-      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirNE ])[kne ]=f27_SW ;
-      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirNW ])[knw ]=f27_SE ;
-      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirSE ])[kse ]=f27_NW ;
-      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBW ])[kbw ]=f27_TE ;
-      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTE ])[kte ]=f27_BW ;
-      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTW ])[ktw ]=f27_BE ;
-      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBE ])[kbe ]=f27_TW ;
-      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBS ])[kbs ]=f27_TN ;
-      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTN ])[ktn ]=f27_BS ;
-      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTS ])[kts ]=f27_BN ;
-      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBN ])[kbn ]=f27_TS ;
-      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSW])[kbsw]=f27_TNE;
-      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNE])[ktne]=f27_BSW;
-      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSW])[ktsw]=f27_BNE;
-      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNE])[kbne]=f27_TSW;
-      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNW])[kbnw]=f27_TSE;
-      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSE])[ktse]=f27_BNW;
-      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNW])[ktnw]=f27_BSE;
-      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSE])[kbse]=f27_TNW;
+      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1) (D27.f[W  ])[kw  ]=f27_E  ;
+      q = q_dirW[k];   if (q>=c0o1 && q<=c1o1) (D27.f[E  ])[ke  ]=f27_W  ;
+      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1) (D27.f[S  ])[ks  ]=f27_N  ;
+      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1) (D27.f[N  ])[kn  ]=f27_S  ;
+      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1) (D27.f[B  ])[kb  ]=f27_T  ;
+      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1) (D27.f[T  ])[kt  ]=f27_B  ;
+      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[SW ])[ksw ]=f27_NE ;
+      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[NE ])[kne ]=f27_SW ;
+      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[NW ])[knw ]=f27_SE ;
+      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[SE ])[kse ]=f27_NW ;
+      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BW ])[kbw ]=f27_TE ;
+      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TE ])[kte ]=f27_BW ;
+      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TW ])[ktw ]=f27_BE ;
+      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BE ])[kbe ]=f27_TW ;
+      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BS ])[kbs ]=f27_TN ;
+      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TN ])[ktn ]=f27_BS ;
+      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TS ])[kts ]=f27_BN ;
+      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BN ])[kbn ]=f27_TS ;
+      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BSW])[kbsw]=f27_TNE;
+      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TNE])[ktne]=f27_BSW;
+      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TSW])[ktsw]=f27_BNE;
+      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BNE])[kbne]=f27_TSW;
+      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BNW])[kbnw]=f27_TSE;
+      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TSE])[ktse]=f27_BNW;
+      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TNW])[ktnw]=f27_BSE;
+      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BSE])[kbse]=f27_TNW;
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -3910,63 +3910,63 @@ extern "C" __global__ void QNoSlipADincomp7(
    //Distributions27 D;
    //if (isEvenTimestep==true)
    //{
-   //   D.f[dirE   ] = &DD[dirE   *size_Mat];
-   //   D.f[dirW   ] = &DD[dirW   *size_Mat];
-   //   D.f[dirN   ] = &DD[dirN   *size_Mat];
-   //   D.f[dirS   ] = &DD[dirS   *size_Mat];
-   //   D.f[dirT   ] = &DD[dirT   *size_Mat];
-   //   D.f[dirB   ] = &DD[dirB   *size_Mat];
-   //   D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-   //   D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-   //   D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-   //   D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-   //   D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-   //   D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-   //   D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-   //   D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-   //   D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-   //   D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-   //   D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-   //   D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+   //   D.f[E   ] = &DD[E   *size_Mat];
+   //   D.f[W   ] = &DD[W   *size_Mat];
+   //   D.f[N   ] = &DD[N   *size_Mat];
+   //   D.f[S   ] = &DD[S   *size_Mat];
+   //   D.f[T   ] = &DD[T   *size_Mat];
+   //   D.f[B   ] = &DD[B   *size_Mat];
+   //   D.f[NE  ] = &DD[NE  *size_Mat];
+   //   D.f[SW  ] = &DD[SW  *size_Mat];
+   //   D.f[SE  ] = &DD[SE  *size_Mat];
+   //   D.f[NW  ] = &DD[NW  *size_Mat];
+   //   D.f[TE  ] = &DD[TE  *size_Mat];
+   //   D.f[BW  ] = &DD[BW  *size_Mat];
+   //   D.f[BE  ] = &DD[BE  *size_Mat];
+   //   D.f[TW  ] = &DD[TW  *size_Mat];
+   //   D.f[TN  ] = &DD[TN  *size_Mat];
+   //   D.f[BS  ] = &DD[BS  *size_Mat];
+   //   D.f[BN  ] = &DD[BN  *size_Mat];
+   //   D.f[TS  ] = &DD[TS  *size_Mat];
    //   D.f[dirREST] = &DD[dirREST*size_Mat];
-   //   D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-   //   D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-   //   D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-   //   D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-   //   D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-   //   D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-   //   D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-   //   D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+   //   D.f[TNE ] = &DD[TNE *size_Mat];
+   //   D.f[TSW ] = &DD[TSW *size_Mat];
+   //   D.f[TSE ] = &DD[TSE *size_Mat];
+   //   D.f[TNW ] = &DD[TNW *size_Mat];
+   //   D.f[BNE ] = &DD[BNE *size_Mat];
+   //   D.f[BSW ] = &DD[BSW *size_Mat];
+   //   D.f[BSE ] = &DD[BSE *size_Mat];
+   //   D.f[BNW ] = &DD[BNW *size_Mat];
    //} 
    //else
    //{
-   //   D.f[dirW   ] = &DD[dirE   *size_Mat];
-   //   D.f[dirE   ] = &DD[dirW   *size_Mat];
-   //   D.f[dirS   ] = &DD[dirN   *size_Mat];
-   //   D.f[dirN   ] = &DD[dirS   *size_Mat];
-   //   D.f[dirB   ] = &DD[dirT   *size_Mat];
-   //   D.f[dirT   ] = &DD[dirB   *size_Mat];
-   //   D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-   //   D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-   //   D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-   //   D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-   //   D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-   //   D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-   //   D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-   //   D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-   //   D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-   //   D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-   //   D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-   //   D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+   //   D.f[W   ] = &DD[E   *size_Mat];
+   //   D.f[E   ] = &DD[W   *size_Mat];
+   //   D.f[S   ] = &DD[N   *size_Mat];
+   //   D.f[N   ] = &DD[S   *size_Mat];
+   //   D.f[B   ] = &DD[T   *size_Mat];
+   //   D.f[T   ] = &DD[B   *size_Mat];
+   //   D.f[SW  ] = &DD[NE  *size_Mat];
+   //   D.f[NE  ] = &DD[SW  *size_Mat];
+   //   D.f[NW  ] = &DD[SE  *size_Mat];
+   //   D.f[SE  ] = &DD[NW  *size_Mat];
+   //   D.f[BW  ] = &DD[TE  *size_Mat];
+   //   D.f[TE  ] = &DD[BW  *size_Mat];
+   //   D.f[TW  ] = &DD[BE  *size_Mat];
+   //   D.f[BE  ] = &DD[TW  *size_Mat];
+   //   D.f[BS  ] = &DD[TN  *size_Mat];
+   //   D.f[TN  ] = &DD[BS  *size_Mat];
+   //   D.f[TS  ] = &DD[BN  *size_Mat];
+   //   D.f[BN  ] = &DD[TS  *size_Mat];
    //   D.f[dirREST] = &DD[dirREST*size_Mat];
-   //   D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-   //   D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-   //   D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-   //   D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-   //   D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-   //   D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-   //   D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-   //   D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+   //   D.f[TNE ] = &DD[BSW *size_Mat];
+   //   D.f[TSW ] = &DD[BNE *size_Mat];
+   //   D.f[TSE ] = &DD[BNW *size_Mat];
+   //   D.f[TNW ] = &DD[BSE *size_Mat];
+   //   D.f[BNE ] = &DD[TSW *size_Mat];
+   //   D.f[BSW ] = &DD[TNE *size_Mat];
+   //   D.f[BSE ] = &DD[TNW *size_Mat];
+   //   D.f[BNW ] = &DD[TSE *size_Mat];
    //}
 
    Distributions7 D7;
@@ -4008,12 +4008,12 @@ extern "C" __global__ void QNoSlipADincomp7(
       //////////////////////////////////////////////////////////////////////////////////
       real  *q_dirE,   *q_dirW,   *q_dirN,   *q_dirS,   *q_dirT,   *q_dirB;
 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
       //////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -4045,32 +4045,32 @@ extern "C" __global__ void QNoSlipADincomp7(
       //unsigned int ktne = KQK;
       //unsigned int kbsw = neighborZ[ksw];
       ////////////////////////////////////////////////////////////////////////////////
-      //real f_W    = (D.f[dirE   ])[ke   ];
-      //real f_E    = (D.f[dirW   ])[kw   ];
-      //real f_S    = (D.f[dirN   ])[kn   ];
-      //real f_N    = (D.f[dirS   ])[ks   ];
-      //real f_B    = (D.f[dirT   ])[kt   ];
-      //real f_T    = (D.f[dirB   ])[kb   ];
-      //real f_SW   = (D.f[dirNE  ])[kne  ];
-      //real f_NE   = (D.f[dirSW  ])[ksw  ];
-      //real f_NW   = (D.f[dirSE  ])[kse  ];
-      //real f_SE   = (D.f[dirNW  ])[knw  ];
-      //real f_BW   = (D.f[dirTE  ])[kte  ];
-      //real f_TE   = (D.f[dirBW  ])[kbw  ];
-      //real f_TW   = (D.f[dirBE  ])[kbe  ];
-      //real f_BE   = (D.f[dirTW  ])[ktw  ];
-      //real f_BS   = (D.f[dirTN  ])[ktn  ];
-      //real f_TN   = (D.f[dirBS  ])[kbs  ];
-      //real f_TS   = (D.f[dirBN  ])[kbn  ];
-      //real f_BN   = (D.f[dirTS  ])[kts  ];
-      //real f_BSW  = (D.f[dirTNE ])[ktne ];
-      //real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      //real f_BNW  = (D.f[dirTSE ])[ktse ];
-      //real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      //real f_TSW  = (D.f[dirBNE ])[kbne ];
-      //real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      //real f_TNW  = (D.f[dirBSE ])[kbse ];
-      //real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      //real f_W    = (D.f[E   ])[ke   ];
+      //real f_E    = (D.f[W   ])[kw   ];
+      //real f_S    = (D.f[N   ])[kn   ];
+      //real f_N    = (D.f[S   ])[ks   ];
+      //real f_B    = (D.f[T   ])[kt   ];
+      //real f_T    = (D.f[B   ])[kb   ];
+      //real f_SW   = (D.f[NE  ])[kne  ];
+      //real f_NE   = (D.f[SW  ])[ksw  ];
+      //real f_NW   = (D.f[SE  ])[kse  ];
+      //real f_SE   = (D.f[NW  ])[knw  ];
+      //real f_BW   = (D.f[TE  ])[kte  ];
+      //real f_TE   = (D.f[BW  ])[kbw  ];
+      //real f_TW   = (D.f[BE  ])[kbe  ];
+      //real f_BE   = (D.f[TW  ])[ktw  ];
+      //real f_BS   = (D.f[TN  ])[ktn  ];
+      //real f_TN   = (D.f[BS  ])[kbs  ];
+      //real f_TS   = (D.f[BN  ])[kbn  ];
+      //real f_BN   = (D.f[TS  ])[kts  ];
+      //real f_BSW  = (D.f[TNE ])[ktne ];
+      //real f_BNE  = (D.f[TSW ])[ktsw ];
+      //real f_BNW  = (D.f[TSE ])[ktse ];
+      //real f_BSE  = (D.f[TNW ])[ktnw ];
+      //real f_TSW  = (D.f[BNE ])[kbne ];
+      //real f_TNE  = (D.f[BSW ])[kbsw ];
+      //real f_TNW  = (D.f[BSE ])[kbse ];
+      //real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       //real vx1 =  ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)+(f_BSE-f_TNW) +(f_NE-f_SW)+(f_SE-f_NW)+(f_TE-f_BW)+(f_BE-f_TW)+(f_E-f_W));
       //real vx2 =  ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S));
@@ -4334,125 +4334,125 @@ extern "C" __global__ void QNoSlipADincomp27(
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
 
    Distributions27 D27;
    if (isEvenTimestep==true)
    {
-      D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+      D27.f[E   ] = &DD27[E   *size_Mat];
+      D27.f[W   ] = &DD27[W   *size_Mat];
+      D27.f[N   ] = &DD27[N   *size_Mat];
+      D27.f[S   ] = &DD27[S   *size_Mat];
+      D27.f[T   ] = &DD27[T   *size_Mat];
+      D27.f[B   ] = &DD27[B   *size_Mat];
+      D27.f[NE  ] = &DD27[NE  *size_Mat];
+      D27.f[SW  ] = &DD27[SW  *size_Mat];
+      D27.f[SE  ] = &DD27[SE  *size_Mat];
+      D27.f[NW  ] = &DD27[NW  *size_Mat];
+      D27.f[TE  ] = &DD27[TE  *size_Mat];
+      D27.f[BW  ] = &DD27[BW  *size_Mat];
+      D27.f[BE  ] = &DD27[BE  *size_Mat];
+      D27.f[TW  ] = &DD27[TW  *size_Mat];
+      D27.f[TN  ] = &DD27[TN  *size_Mat];
+      D27.f[BS  ] = &DD27[BS  *size_Mat];
+      D27.f[BN  ] = &DD27[BN  *size_Mat];
+      D27.f[TS  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+      D27.f[TNE ] = &DD27[TNE *size_Mat];
+      D27.f[TSW ] = &DD27[TSW *size_Mat];
+      D27.f[TSE ] = &DD27[TSE *size_Mat];
+      D27.f[TNW ] = &DD27[TNW *size_Mat];
+      D27.f[BNE ] = &DD27[BNE *size_Mat];
+      D27.f[BSW ] = &DD27[BSW *size_Mat];
+      D27.f[BSE ] = &DD27[BSE *size_Mat];
+      D27.f[BNW ] = &DD27[BNW *size_Mat];
    } 
    else
    {
-      D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+      D27.f[W   ] = &DD27[E   *size_Mat];
+      D27.f[E   ] = &DD27[W   *size_Mat];
+      D27.f[S   ] = &DD27[N   *size_Mat];
+      D27.f[N   ] = &DD27[S   *size_Mat];
+      D27.f[B   ] = &DD27[T   *size_Mat];
+      D27.f[T   ] = &DD27[B   *size_Mat];
+      D27.f[SW  ] = &DD27[NE  *size_Mat];
+      D27.f[NE  ] = &DD27[SW  *size_Mat];
+      D27.f[NW  ] = &DD27[SE  *size_Mat];
+      D27.f[SE  ] = &DD27[NW  *size_Mat];
+      D27.f[BW  ] = &DD27[TE  *size_Mat];
+      D27.f[TE  ] = &DD27[BW  *size_Mat];
+      D27.f[TW  ] = &DD27[BE  *size_Mat];
+      D27.f[BE  ] = &DD27[TW  *size_Mat];
+      D27.f[BS  ] = &DD27[TN  *size_Mat];
+      D27.f[TN  ] = &DD27[BS  *size_Mat];
+      D27.f[TS  ] = &DD27[BN  *size_Mat];
+      D27.f[BN  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+      D27.f[TNE ] = &DD27[BSW *size_Mat];
+      D27.f[TSW ] = &DD27[BNE *size_Mat];
+      D27.f[TSE ] = &DD27[BNW *size_Mat];
+      D27.f[TNW ] = &DD27[BSE *size_Mat];
+      D27.f[BNE ] = &DD27[TSW *size_Mat];
+      D27.f[BSW ] = &DD27[TNE *size_Mat];
+      D27.f[BSE ] = &DD27[TNW *size_Mat];
+      D27.f[BNW ] = &DD27[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -4473,32 +4473,32 @@ extern "C" __global__ void QNoSlipADincomp27(
          *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
          *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
          *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -4530,65 +4530,65 @@ extern "C" __global__ void QNoSlipADincomp27(
       unsigned int ktne = KQK;
       unsigned int kbsw = neighborZ[ksw];
       ////////////////////////////////////////////////////////////////////////////////
-      real f_W    = (D.f[dirE   ])[ke   ];
-      real f_E    = (D.f[dirW   ])[kw   ];
-      real f_S    = (D.f[dirN   ])[kn   ];
-      real f_N    = (D.f[dirS   ])[ks   ];
-      real f_B    = (D.f[dirT   ])[kt   ];
-      real f_T    = (D.f[dirB   ])[kb   ];
-      real f_SW   = (D.f[dirNE  ])[kne  ];
-      real f_NE   = (D.f[dirSW  ])[ksw  ];
-      real f_NW   = (D.f[dirSE  ])[kse  ];
-      real f_SE   = (D.f[dirNW  ])[knw  ];
-      real f_BW   = (D.f[dirTE  ])[kte  ];
-      real f_TE   = (D.f[dirBW  ])[kbw  ];
-      real f_TW   = (D.f[dirBE  ])[kbe  ];
-      real f_BE   = (D.f[dirTW  ])[ktw  ];
-      real f_BS   = (D.f[dirTN  ])[ktn  ];
-      real f_TN   = (D.f[dirBS  ])[kbs  ];
-      real f_TS   = (D.f[dirBN  ])[kbn  ];
-      real f_BN   = (D.f[dirTS  ])[kts  ];
+      real f_W    = (D.f[E   ])[ke   ];
+      real f_E    = (D.f[W   ])[kw   ];
+      real f_S    = (D.f[N   ])[kn   ];
+      real f_N    = (D.f[S   ])[ks   ];
+      real f_B    = (D.f[T   ])[kt   ];
+      real f_T    = (D.f[B   ])[kb   ];
+      real f_SW   = (D.f[NE  ])[kne  ];
+      real f_NE   = (D.f[SW  ])[ksw  ];
+      real f_NW   = (D.f[SE  ])[kse  ];
+      real f_SE   = (D.f[NW  ])[knw  ];
+      real f_BW   = (D.f[TE  ])[kte  ];
+      real f_TE   = (D.f[BW  ])[kbw  ];
+      real f_TW   = (D.f[BE  ])[kbe  ];
+      real f_BE   = (D.f[TW  ])[ktw  ];
+      real f_BS   = (D.f[TN  ])[ktn  ];
+      real f_TN   = (D.f[BS  ])[kbs  ];
+      real f_TS   = (D.f[BN  ])[kbn  ];
+      real f_BN   = (D.f[TS  ])[kts  ];
       //real f_ZERO = (D.f[dirREST])[kzero];
-      real f_BSW  = (D.f[dirTNE ])[ktne ];
-      real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      real f_BNW  = (D.f[dirTSE ])[ktse ];
-      real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      real f_TSW  = (D.f[dirBNE ])[kbne ];
-      real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      real f_TNW  = (D.f[dirBSE ])[kbse ];
-      real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      real f_BSW  = (D.f[TNE ])[ktne ];
+      real f_BNE  = (D.f[TSW ])[ktsw ];
+      real f_BNW  = (D.f[TSE ])[ktse ];
+      real f_BSE  = (D.f[TNW ])[ktnw ];
+      real f_TSW  = (D.f[BNE ])[kbne ];
+      real f_TNE  = (D.f[BSW ])[kbsw ];
+      real f_TNW  = (D.f[BSE ])[kbse ];
+      real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1 =  ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)+(f_BSE-f_TNW) +(f_NE-f_SW)+(f_SE-f_NW)+(f_TE-f_BW)+(f_BE-f_TW)+(f_E-f_W));
       real vx2 =  ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S));
       real vx3 =  ((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B));
       ////////////////////////////////////////////////////////////////////////////////
-      real f27_W    = (D27.f[dirE   ])[ke   ];
-      real f27_E    = (D27.f[dirW   ])[kw   ];
-      real f27_S    = (D27.f[dirN   ])[kn   ];
-      real f27_N    = (D27.f[dirS   ])[ks   ];
-      real f27_B    = (D27.f[dirT   ])[kt   ];
-      real f27_T    = (D27.f[dirB   ])[kb   ];
-      real f27_SW   = (D27.f[dirNE  ])[kne  ];
-      real f27_NE   = (D27.f[dirSW  ])[ksw  ];
-      real f27_NW   = (D27.f[dirSE  ])[kse  ];
-      real f27_SE   = (D27.f[dirNW  ])[knw  ];
-      real f27_BW   = (D27.f[dirTE  ])[kte  ];
-      real f27_TE   = (D27.f[dirBW  ])[kbw  ];
-      real f27_TW   = (D27.f[dirBE  ])[kbe  ];
-      real f27_BE   = (D27.f[dirTW  ])[ktw  ];
-      real f27_BS   = (D27.f[dirTN  ])[ktn  ];
-      real f27_TN   = (D27.f[dirBS  ])[kbs  ];
-      real f27_TS   = (D27.f[dirBN  ])[kbn  ];
-      real f27_BN   = (D27.f[dirTS  ])[kts  ];
+      real f27_W    = (D27.f[E   ])[ke   ];
+      real f27_E    = (D27.f[W   ])[kw   ];
+      real f27_S    = (D27.f[N   ])[kn   ];
+      real f27_N    = (D27.f[S   ])[ks   ];
+      real f27_B    = (D27.f[T   ])[kt   ];
+      real f27_T    = (D27.f[B   ])[kb   ];
+      real f27_SW   = (D27.f[NE  ])[kne  ];
+      real f27_NE   = (D27.f[SW  ])[ksw  ];
+      real f27_NW   = (D27.f[SE  ])[kse  ];
+      real f27_SE   = (D27.f[NW  ])[knw  ];
+      real f27_BW   = (D27.f[TE  ])[kte  ];
+      real f27_TE   = (D27.f[BW  ])[kbw  ];
+      real f27_TW   = (D27.f[BE  ])[kbe  ];
+      real f27_BE   = (D27.f[TW  ])[ktw  ];
+      real f27_BS   = (D27.f[TN  ])[ktn  ];
+      real f27_TN   = (D27.f[BS  ])[kbs  ];
+      real f27_TS   = (D27.f[BN  ])[kbn  ];
+      real f27_BN   = (D27.f[TS  ])[kts  ];
       real f27_ZERO = (D27.f[dirREST])[kzero];
-      real f27_BSW  = (D27.f[dirTNE ])[ktne ];
-      real f27_BNE  = (D27.f[dirTSW ])[ktsw ];
-      real f27_BNW  = (D27.f[dirTSE ])[ktse ];
-      real f27_BSE  = (D27.f[dirTNW ])[ktnw ];
-      real f27_TSW  = (D27.f[dirBNE ])[kbne ];
-      real f27_TNE  = (D27.f[dirBSW ])[kbsw ];
-      real f27_TNW  = (D27.f[dirBSE ])[kbse ];
-      real f27_TSE  = (D27.f[dirBNW ])[kbnw ];
+      real f27_BSW  = (D27.f[TNE ])[ktne ];
+      real f27_BNE  = (D27.f[TSW ])[ktsw ];
+      real f27_BNW  = (D27.f[TSE ])[ktse ];
+      real f27_BSE  = (D27.f[TNW ])[ktnw ];
+      real f27_TSW  = (D27.f[BNE ])[kbne ];
+      real f27_TNE  = (D27.f[BSW ])[kbsw ];
+      real f27_TNW  = (D27.f[BSE ])[kbse ];
+      real f27_TSE  = (D27.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
       ////////////////////////////////////////////////////////////////////////////////
@@ -4664,63 +4664,63 @@ extern "C" __global__ void QNoSlipADincomp27(
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+         D27.f[E   ] = &DD27[E   *size_Mat];
+         D27.f[W   ] = &DD27[W   *size_Mat];
+         D27.f[N   ] = &DD27[N   *size_Mat];
+         D27.f[S   ] = &DD27[S   *size_Mat];
+         D27.f[T   ] = &DD27[T   *size_Mat];
+         D27.f[B   ] = &DD27[B   *size_Mat];
+         D27.f[NE  ] = &DD27[NE  *size_Mat];
+         D27.f[SW  ] = &DD27[SW  *size_Mat];
+         D27.f[SE  ] = &DD27[SE  *size_Mat];
+         D27.f[NW  ] = &DD27[NW  *size_Mat];
+         D27.f[TE  ] = &DD27[TE  *size_Mat];
+         D27.f[BW  ] = &DD27[BW  *size_Mat];
+         D27.f[BE  ] = &DD27[BE  *size_Mat];
+         D27.f[TW  ] = &DD27[TW  *size_Mat];
+         D27.f[TN  ] = &DD27[TN  *size_Mat];
+         D27.f[BS  ] = &DD27[BS  *size_Mat];
+         D27.f[BN  ] = &DD27[BN  *size_Mat];
+         D27.f[TS  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+         D27.f[TNE ] = &DD27[TNE *size_Mat];
+         D27.f[TSW ] = &DD27[TSW *size_Mat];
+         D27.f[TSE ] = &DD27[TSE *size_Mat];
+         D27.f[TNW ] = &DD27[TNW *size_Mat];
+         D27.f[BNE ] = &DD27[BNE *size_Mat];
+         D27.f[BSW ] = &DD27[BSW *size_Mat];
+         D27.f[BSE ] = &DD27[BSE *size_Mat];
+         D27.f[BNW ] = &DD27[BNW *size_Mat];
       } 
       else
       {
-         D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+         D27.f[W   ] = &DD27[E   *size_Mat];
+         D27.f[E   ] = &DD27[W   *size_Mat];
+         D27.f[S   ] = &DD27[N   *size_Mat];
+         D27.f[N   ] = &DD27[S   *size_Mat];
+         D27.f[B   ] = &DD27[T   *size_Mat];
+         D27.f[T   ] = &DD27[B   *size_Mat];
+         D27.f[SW  ] = &DD27[NE  *size_Mat];
+         D27.f[NE  ] = &DD27[SW  *size_Mat];
+         D27.f[NW  ] = &DD27[SE  *size_Mat];
+         D27.f[SE  ] = &DD27[NW  *size_Mat];
+         D27.f[BW  ] = &DD27[TE  *size_Mat];
+         D27.f[TE  ] = &DD27[BW  *size_Mat];
+         D27.f[TW  ] = &DD27[BE  *size_Mat];
+         D27.f[BE  ] = &DD27[TW  *size_Mat];
+         D27.f[BS  ] = &DD27[TN  *size_Mat];
+         D27.f[TN  ] = &DD27[BS  *size_Mat];
+         D27.f[TS  ] = &DD27[BN  *size_Mat];
+         D27.f[BN  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+         D27.f[TNE ] = &DD27[BSW *size_Mat];
+         D27.f[TSW ] = &DD27[BNE *size_Mat];
+         D27.f[TSE ] = &DD27[BNW *size_Mat];
+         D27.f[TNW ] = &DD27[BSE *size_Mat];
+         D27.f[BNE ] = &DD27[TSW *size_Mat];
+         D27.f[BSW ] = &DD27[TNE *size_Mat];
+         D27.f[BSE ] = &DD27[TNW *size_Mat];
+         D27.f[BNW ] = &DD27[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -4728,32 +4728,32 @@ extern "C" __global__ void QNoSlipADincomp27(
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  real q;
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirW  ])[kw  ]=(c2o1*feqW27_W  -(f27_E  *(q*omegaD-c1o1)-omegaD*feq27_E  *(q-c1o1))/(omegaD-c1o1)+f27_W  *q)/(q+c1o1);
-      q = q_dirW[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirE  ])[ke  ]=(c2o1*feqW27_E  -(f27_W  *(q*omegaD-c1o1)-omegaD*feq27_W  *(q-c1o1))/(omegaD-c1o1)+f27_E  *q)/(q+c1o1);
-      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirS  ])[ks  ]=(c2o1*feqW27_S  -(f27_N  *(q*omegaD-c1o1)-omegaD*feq27_N  *(q-c1o1))/(omegaD-c1o1)+f27_S  *q)/(q+c1o1);
-      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirN  ])[kn  ]=(c2o1*feqW27_N  -(f27_S  *(q*omegaD-c1o1)-omegaD*feq27_S  *(q-c1o1))/(omegaD-c1o1)+f27_N  *q)/(q+c1o1);
-      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirB  ])[kb  ]=(c2o1*feqW27_B  -(f27_T  *(q*omegaD-c1o1)-omegaD*feq27_T  *(q-c1o1))/(omegaD-c1o1)+f27_B  *q)/(q+c1o1);
-      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirT  ])[kt  ]=(c2o1*feqW27_T  -(f27_B  *(q*omegaD-c1o1)-omegaD*feq27_B  *(q-c1o1))/(omegaD-c1o1)+f27_T  *q)/(q+c1o1);
-      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirSW ])[ksw ]=(c2o1*feqW27_SW -(f27_NE *(q*omegaD-c1o1)-omegaD*feq27_NE *(q-c1o1))/(omegaD-c1o1)+f27_SW *q)/(q+c1o1);
-      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirNE ])[kne ]=(c2o1*feqW27_NE -(f27_SW *(q*omegaD-c1o1)-omegaD*feq27_SW *(q-c1o1))/(omegaD-c1o1)+f27_NE *q)/(q+c1o1);
-      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirNW ])[knw ]=(c2o1*feqW27_NW -(f27_SE *(q*omegaD-c1o1)-omegaD*feq27_SE *(q-c1o1))/(omegaD-c1o1)+f27_NW *q)/(q+c1o1);
-      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirSE ])[kse ]=(c2o1*feqW27_SE -(f27_NW *(q*omegaD-c1o1)-omegaD*feq27_NW *(q-c1o1))/(omegaD-c1o1)+f27_SE *q)/(q+c1o1);
-      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBW ])[kbw ]=(c2o1*feqW27_BW -(f27_TE *(q*omegaD-c1o1)-omegaD*feq27_TE *(q-c1o1))/(omegaD-c1o1)+f27_BW *q)/(q+c1o1);
-      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTE ])[kte ]=(c2o1*feqW27_TE -(f27_BW *(q*omegaD-c1o1)-omegaD*feq27_BW *(q-c1o1))/(omegaD-c1o1)+f27_TE *q)/(q+c1o1);
-      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTW ])[ktw ]=(c2o1*feqW27_TW -(f27_BE *(q*omegaD-c1o1)-omegaD*feq27_BE *(q-c1o1))/(omegaD-c1o1)+f27_TW *q)/(q+c1o1);
-      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBE ])[kbe ]=(c2o1*feqW27_BE -(f27_TW *(q*omegaD-c1o1)-omegaD*feq27_TW *(q-c1o1))/(omegaD-c1o1)+f27_BE *q)/(q+c1o1);
-      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBS ])[kbs ]=(c2o1*feqW27_BS -(f27_TN *(q*omegaD-c1o1)-omegaD*feq27_TN *(q-c1o1))/(omegaD-c1o1)+f27_BS *q)/(q+c1o1);
-      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTN ])[ktn ]=(c2o1*feqW27_TN -(f27_BS *(q*omegaD-c1o1)-omegaD*feq27_BS *(q-c1o1))/(omegaD-c1o1)+f27_TN *q)/(q+c1o1);
-      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTS ])[kts ]=(c2o1*feqW27_TS -(f27_BN *(q*omegaD-c1o1)-omegaD*feq27_BN *(q-c1o1))/(omegaD-c1o1)+f27_TS *q)/(q+c1o1);
-      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBN ])[kbn ]=(c2o1*feqW27_BN -(f27_TS *(q*omegaD-c1o1)-omegaD*feq27_TS *(q-c1o1))/(omegaD-c1o1)+f27_BN *q)/(q+c1o1);
-      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSW])[kbsw]=(c2o1*feqW27_BSW-(f27_TNE*(q*omegaD-c1o1)-omegaD*feq27_TNE*(q-c1o1))/(omegaD-c1o1)+f27_BSW*q)/(q+c1o1);
-      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNE])[ktne]=(c2o1*feqW27_TNE-(f27_BSW*(q*omegaD-c1o1)-omegaD*feq27_BSW*(q-c1o1))/(omegaD-c1o1)+f27_TNE*q)/(q+c1o1);
-      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSW])[ktsw]=(c2o1*feqW27_TSW-(f27_BNE*(q*omegaD-c1o1)-omegaD*feq27_BNE*(q-c1o1))/(omegaD-c1o1)+f27_TSW*q)/(q+c1o1);
-      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNE])[kbne]=(c2o1*feqW27_BNE-(f27_TSW*(q*omegaD-c1o1)-omegaD*feq27_TSW*(q-c1o1))/(omegaD-c1o1)+f27_BNE*q)/(q+c1o1);
-      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNW])[kbnw]=(c2o1*feqW27_BNW-(f27_TSE*(q*omegaD-c1o1)-omegaD*feq27_TSE*(q-c1o1))/(omegaD-c1o1)+f27_BNW*q)/(q+c1o1);
-      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSE])[ktse]=(c2o1*feqW27_TSE-(f27_BNW*(q*omegaD-c1o1)-omegaD*feq27_BNW*(q-c1o1))/(omegaD-c1o1)+f27_TSE*q)/(q+c1o1);
-      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNW])[ktnw]=(c2o1*feqW27_TNW-(f27_BSE*(q*omegaD-c1o1)-omegaD*feq27_BSE*(q-c1o1))/(omegaD-c1o1)+f27_TNW*q)/(q+c1o1);
-      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSE])[kbse]=(c2o1*feqW27_BSE-(f27_TNW*(q*omegaD-c1o1)-omegaD*feq27_TNW*(q-c1o1))/(omegaD-c1o1)+f27_BSE*q)/(q+c1o1);
+      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1) (D27.f[W  ])[kw  ]=(c2o1*feqW27_W  -(f27_E  *(q*omegaD-c1o1)-omegaD*feq27_E  *(q-c1o1))/(omegaD-c1o1)+f27_W  *q)/(q+c1o1);
+      q = q_dirW[k];   if (q>=c0o1 && q<=c1o1) (D27.f[E  ])[ke  ]=(c2o1*feqW27_E  -(f27_W  *(q*omegaD-c1o1)-omegaD*feq27_W  *(q-c1o1))/(omegaD-c1o1)+f27_E  *q)/(q+c1o1);
+      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1) (D27.f[S  ])[ks  ]=(c2o1*feqW27_S  -(f27_N  *(q*omegaD-c1o1)-omegaD*feq27_N  *(q-c1o1))/(omegaD-c1o1)+f27_S  *q)/(q+c1o1);
+      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1) (D27.f[N  ])[kn  ]=(c2o1*feqW27_N  -(f27_S  *(q*omegaD-c1o1)-omegaD*feq27_S  *(q-c1o1))/(omegaD-c1o1)+f27_N  *q)/(q+c1o1);
+      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1) (D27.f[B  ])[kb  ]=(c2o1*feqW27_B  -(f27_T  *(q*omegaD-c1o1)-omegaD*feq27_T  *(q-c1o1))/(omegaD-c1o1)+f27_B  *q)/(q+c1o1);
+      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1) (D27.f[T  ])[kt  ]=(c2o1*feqW27_T  -(f27_B  *(q*omegaD-c1o1)-omegaD*feq27_B  *(q-c1o1))/(omegaD-c1o1)+f27_T  *q)/(q+c1o1);
+      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[SW ])[ksw ]=(c2o1*feqW27_SW -(f27_NE *(q*omegaD-c1o1)-omegaD*feq27_NE *(q-c1o1))/(omegaD-c1o1)+f27_SW *q)/(q+c1o1);
+      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[NE ])[kne ]=(c2o1*feqW27_NE -(f27_SW *(q*omegaD-c1o1)-omegaD*feq27_SW *(q-c1o1))/(omegaD-c1o1)+f27_NE *q)/(q+c1o1);
+      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[NW ])[knw ]=(c2o1*feqW27_NW -(f27_SE *(q*omegaD-c1o1)-omegaD*feq27_SE *(q-c1o1))/(omegaD-c1o1)+f27_NW *q)/(q+c1o1);
+      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[SE ])[kse ]=(c2o1*feqW27_SE -(f27_NW *(q*omegaD-c1o1)-omegaD*feq27_NW *(q-c1o1))/(omegaD-c1o1)+f27_SE *q)/(q+c1o1);
+      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BW ])[kbw ]=(c2o1*feqW27_BW -(f27_TE *(q*omegaD-c1o1)-omegaD*feq27_TE *(q-c1o1))/(omegaD-c1o1)+f27_BW *q)/(q+c1o1);
+      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TE ])[kte ]=(c2o1*feqW27_TE -(f27_BW *(q*omegaD-c1o1)-omegaD*feq27_BW *(q-c1o1))/(omegaD-c1o1)+f27_TE *q)/(q+c1o1);
+      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TW ])[ktw ]=(c2o1*feqW27_TW -(f27_BE *(q*omegaD-c1o1)-omegaD*feq27_BE *(q-c1o1))/(omegaD-c1o1)+f27_TW *q)/(q+c1o1);
+      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BE ])[kbe ]=(c2o1*feqW27_BE -(f27_TW *(q*omegaD-c1o1)-omegaD*feq27_TW *(q-c1o1))/(omegaD-c1o1)+f27_BE *q)/(q+c1o1);
+      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BS ])[kbs ]=(c2o1*feqW27_BS -(f27_TN *(q*omegaD-c1o1)-omegaD*feq27_TN *(q-c1o1))/(omegaD-c1o1)+f27_BS *q)/(q+c1o1);
+      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TN ])[ktn ]=(c2o1*feqW27_TN -(f27_BS *(q*omegaD-c1o1)-omegaD*feq27_BS *(q-c1o1))/(omegaD-c1o1)+f27_TN *q)/(q+c1o1);
+      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TS ])[kts ]=(c2o1*feqW27_TS -(f27_BN *(q*omegaD-c1o1)-omegaD*feq27_BN *(q-c1o1))/(omegaD-c1o1)+f27_TS *q)/(q+c1o1);
+      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BN ])[kbn ]=(c2o1*feqW27_BN -(f27_TS *(q*omegaD-c1o1)-omegaD*feq27_TS *(q-c1o1))/(omegaD-c1o1)+f27_BN *q)/(q+c1o1);
+      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BSW])[kbsw]=(c2o1*feqW27_BSW-(f27_TNE*(q*omegaD-c1o1)-omegaD*feq27_TNE*(q-c1o1))/(omegaD-c1o1)+f27_BSW*q)/(q+c1o1);
+      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TNE])[ktne]=(c2o1*feqW27_TNE-(f27_BSW*(q*omegaD-c1o1)-omegaD*feq27_BSW*(q-c1o1))/(omegaD-c1o1)+f27_TNE*q)/(q+c1o1);
+      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TSW])[ktsw]=(c2o1*feqW27_TSW-(f27_BNE*(q*omegaD-c1o1)-omegaD*feq27_BNE*(q-c1o1))/(omegaD-c1o1)+f27_TSW*q)/(q+c1o1);
+      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BNE])[kbne]=(c2o1*feqW27_BNE-(f27_TSW*(q*omegaD-c1o1)-omegaD*feq27_TSW*(q-c1o1))/(omegaD-c1o1)+f27_BNE*q)/(q+c1o1);
+      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BNW])[kbnw]=(c2o1*feqW27_BNW-(f27_TSE*(q*omegaD-c1o1)-omegaD*feq27_TSE*(q-c1o1))/(omegaD-c1o1)+f27_BNW*q)/(q+c1o1);
+      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TSE])[ktse]=(c2o1*feqW27_TSE-(f27_BNW*(q*omegaD-c1o1)-omegaD*feq27_BNW*(q-c1o1))/(omegaD-c1o1)+f27_TSE*q)/(q+c1o1);
+      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TNW])[ktnw]=(c2o1*feqW27_TNW-(f27_BSE*(q*omegaD-c1o1)-omegaD*feq27_BSE*(q-c1o1))/(omegaD-c1o1)+f27_TNW*q)/(q+c1o1);
+      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BSE])[kbse]=(c2o1*feqW27_BSE-(f27_TNW*(q*omegaD-c1o1)-omegaD*feq27_TNW*(q-c1o1))/(omegaD-c1o1)+f27_BSE*q)/(q+c1o1);
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -4816,63 +4816,63 @@ extern "C" __global__ void QADVeloIncomp7(
    //Distributions27 D;
    //if (isEvenTimestep==true)
    //{
-   //   D.f[dirE   ] = &DD[dirE   *size_Mat];
-   //   D.f[dirW   ] = &DD[dirW   *size_Mat];
-   //   D.f[dirN   ] = &DD[dirN   *size_Mat];
-   //   D.f[dirS   ] = &DD[dirS   *size_Mat];
-   //   D.f[dirT   ] = &DD[dirT   *size_Mat];
-   //   D.f[dirB   ] = &DD[dirB   *size_Mat];
-   //   D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-   //   D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-   //   D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-   //   D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-   //   D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-   //   D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-   //   D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-   //   D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-   //   D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-   //   D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-   //   D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-   //   D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+   //   D.f[E   ] = &DD[E   *size_Mat];
+   //   D.f[W   ] = &DD[W   *size_Mat];
+   //   D.f[N   ] = &DD[N   *size_Mat];
+   //   D.f[S   ] = &DD[S   *size_Mat];
+   //   D.f[T   ] = &DD[T   *size_Mat];
+   //   D.f[B   ] = &DD[B   *size_Mat];
+   //   D.f[NE  ] = &DD[NE  *size_Mat];
+   //   D.f[SW  ] = &DD[SW  *size_Mat];
+   //   D.f[SE  ] = &DD[SE  *size_Mat];
+   //   D.f[NW  ] = &DD[NW  *size_Mat];
+   //   D.f[TE  ] = &DD[TE  *size_Mat];
+   //   D.f[BW  ] = &DD[BW  *size_Mat];
+   //   D.f[BE  ] = &DD[BE  *size_Mat];
+   //   D.f[TW  ] = &DD[TW  *size_Mat];
+   //   D.f[TN  ] = &DD[TN  *size_Mat];
+   //   D.f[BS  ] = &DD[BS  *size_Mat];
+   //   D.f[BN  ] = &DD[BN  *size_Mat];
+   //   D.f[TS  ] = &DD[TS  *size_Mat];
    //   D.f[dirREST] = &DD[dirREST*size_Mat];
-   //   D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-   //   D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-   //   D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-   //   D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-   //   D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-   //   D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-   //   D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-   //   D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+   //   D.f[TNE ] = &DD[TNE *size_Mat];
+   //   D.f[TSW ] = &DD[TSW *size_Mat];
+   //   D.f[TSE ] = &DD[TSE *size_Mat];
+   //   D.f[TNW ] = &DD[TNW *size_Mat];
+   //   D.f[BNE ] = &DD[BNE *size_Mat];
+   //   D.f[BSW ] = &DD[BSW *size_Mat];
+   //   D.f[BSE ] = &DD[BSE *size_Mat];
+   //   D.f[BNW ] = &DD[BNW *size_Mat];
    //} 
    //else
    //{
-   //   D.f[dirW   ] = &DD[dirE   *size_Mat];
-   //   D.f[dirE   ] = &DD[dirW   *size_Mat];
-   //   D.f[dirS   ] = &DD[dirN   *size_Mat];
-   //   D.f[dirN   ] = &DD[dirS   *size_Mat];
-   //   D.f[dirB   ] = &DD[dirT   *size_Mat];
-   //   D.f[dirT   ] = &DD[dirB   *size_Mat];
-   //   D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-   //   D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-   //   D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-   //   D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-   //   D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-   //   D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-   //   D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-   //   D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-   //   D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-   //   D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-   //   D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-   //   D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+   //   D.f[W   ] = &DD[E   *size_Mat];
+   //   D.f[E   ] = &DD[W   *size_Mat];
+   //   D.f[S   ] = &DD[N   *size_Mat];
+   //   D.f[N   ] = &DD[S   *size_Mat];
+   //   D.f[B   ] = &DD[T   *size_Mat];
+   //   D.f[T   ] = &DD[B   *size_Mat];
+   //   D.f[SW  ] = &DD[NE  *size_Mat];
+   //   D.f[NE  ] = &DD[SW  *size_Mat];
+   //   D.f[NW  ] = &DD[SE  *size_Mat];
+   //   D.f[SE  ] = &DD[NW  *size_Mat];
+   //   D.f[BW  ] = &DD[TE  *size_Mat];
+   //   D.f[TE  ] = &DD[BW  *size_Mat];
+   //   D.f[TW  ] = &DD[BE  *size_Mat];
+   //   D.f[BE  ] = &DD[TW  *size_Mat];
+   //   D.f[BS  ] = &DD[TN  *size_Mat];
+   //   D.f[TN  ] = &DD[BS  *size_Mat];
+   //   D.f[TS  ] = &DD[BN  *size_Mat];
+   //   D.f[BN  ] = &DD[TS  *size_Mat];
    //   D.f[dirREST] = &DD[dirREST*size_Mat];
-   //   D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-   //   D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-   //   D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-   //   D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-   //   D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-   //   D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-   //   D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-   //   D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+   //   D.f[TNE ] = &DD[BSW *size_Mat];
+   //   D.f[TSW ] = &DD[BNE *size_Mat];
+   //   D.f[TSE ] = &DD[BNW *size_Mat];
+   //   D.f[TNW ] = &DD[BSE *size_Mat];
+   //   D.f[BNE ] = &DD[TSW *size_Mat];
+   //   D.f[BSW ] = &DD[TNE *size_Mat];
+   //   D.f[BSE ] = &DD[TNW *size_Mat];
+   //   D.f[BNW ] = &DD[TSE *size_Mat];
    //}
 
    Distributions7 D7;
@@ -4914,12 +4914,12 @@ extern "C" __global__ void QADVeloIncomp7(
       //////////////////////////////////////////////////////////////////////////////////
       real  *q_dirE,   *q_dirW,   *q_dirN,   *q_dirS,   *q_dirT,   *q_dirB; 
 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
       //////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -4951,32 +4951,32 @@ extern "C" __global__ void QADVeloIncomp7(
       //unsigned int ktne = KQK;
       //unsigned int kbsw = neighborZ[ksw];
       ////////////////////////////////////////////////////////////////////////////////
-      //real f_W    = (D.f[dirE   ])[ke   ];
-      //real f_E    = (D.f[dirW   ])[kw   ];
-      //real f_S    = (D.f[dirN   ])[kn   ];
-      //real f_N    = (D.f[dirS   ])[ks   ];
-      //real f_B    = (D.f[dirT   ])[kt   ];
-      //real f_T    = (D.f[dirB   ])[kb   ];
-      //real f_SW   = (D.f[dirNE  ])[kne  ];
-      //real f_NE   = (D.f[dirSW  ])[ksw  ];
-      //real f_NW   = (D.f[dirSE  ])[kse  ];
-      //real f_SE   = (D.f[dirNW  ])[knw  ];
-      //real f_BW   = (D.f[dirTE  ])[kte  ];
-      //real f_TE   = (D.f[dirBW  ])[kbw  ];
-      //real f_TW   = (D.f[dirBE  ])[kbe  ];
-      //real f_BE   = (D.f[dirTW  ])[ktw  ];
-      //real f_BS   = (D.f[dirTN  ])[ktn  ];
-      //real f_TN   = (D.f[dirBS  ])[kbs  ];
-      //real f_TS   = (D.f[dirBN  ])[kbn  ];
-      //real f_BN   = (D.f[dirTS  ])[kts  ];
-      //real f_BSW  = (D.f[dirTNE ])[ktne ];
-      //real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      //real f_BNW  = (D.f[dirTSE ])[ktse ];
-      //real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      //real f_TSW  = (D.f[dirBNE ])[kbne ];
-      //real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      //real f_TNW  = (D.f[dirBSE ])[kbse ];
-      //real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      //real f_W    = (D.f[E   ])[ke   ];
+      //real f_E    = (D.f[W   ])[kw   ];
+      //real f_S    = (D.f[N   ])[kn   ];
+      //real f_N    = (D.f[S   ])[ks   ];
+      //real f_B    = (D.f[T   ])[kt   ];
+      //real f_T    = (D.f[B   ])[kb   ];
+      //real f_SW   = (D.f[NE  ])[kne  ];
+      //real f_NE   = (D.f[SW  ])[ksw  ];
+      //real f_NW   = (D.f[SE  ])[kse  ];
+      //real f_SE   = (D.f[NW  ])[knw  ];
+      //real f_BW   = (D.f[TE  ])[kte  ];
+      //real f_TE   = (D.f[BW  ])[kbw  ];
+      //real f_TW   = (D.f[BE  ])[kbe  ];
+      //real f_BE   = (D.f[TW  ])[ktw  ];
+      //real f_BS   = (D.f[TN  ])[ktn  ];
+      //real f_TN   = (D.f[BS  ])[kbs  ];
+      //real f_TS   = (D.f[BN  ])[kbn  ];
+      //real f_BN   = (D.f[TS  ])[kts  ];
+      //real f_BSW  = (D.f[TNE ])[ktne ];
+      //real f_BNE  = (D.f[TSW ])[ktsw ];
+      //real f_BNW  = (D.f[TSE ])[ktse ];
+      //real f_BSE  = (D.f[TNW ])[ktnw ];
+      //real f_TSW  = (D.f[BNE ])[kbne ];
+      //real f_TNE  = (D.f[BSW ])[kbsw ];
+      //real f_TNW  = (D.f[BSE ])[kbse ];
+      //real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       //real vx1_Inflow   = c0o1;
       //real vx2_Inflow   = velo[k];
@@ -5294,125 +5294,125 @@ extern "C" __global__ void QADVeloIncomp27(
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
 
    Distributions27 D27;
    if (isEvenTimestep==true)
    {
-      D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+      D27.f[E   ] = &DD27[E   *size_Mat];
+      D27.f[W   ] = &DD27[W   *size_Mat];
+      D27.f[N   ] = &DD27[N   *size_Mat];
+      D27.f[S   ] = &DD27[S   *size_Mat];
+      D27.f[T   ] = &DD27[T   *size_Mat];
+      D27.f[B   ] = &DD27[B   *size_Mat];
+      D27.f[NE  ] = &DD27[NE  *size_Mat];
+      D27.f[SW  ] = &DD27[SW  *size_Mat];
+      D27.f[SE  ] = &DD27[SE  *size_Mat];
+      D27.f[NW  ] = &DD27[NW  *size_Mat];
+      D27.f[TE  ] = &DD27[TE  *size_Mat];
+      D27.f[BW  ] = &DD27[BW  *size_Mat];
+      D27.f[BE  ] = &DD27[BE  *size_Mat];
+      D27.f[TW  ] = &DD27[TW  *size_Mat];
+      D27.f[TN  ] = &DD27[TN  *size_Mat];
+      D27.f[BS  ] = &DD27[BS  *size_Mat];
+      D27.f[BN  ] = &DD27[BN  *size_Mat];
+      D27.f[TS  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+      D27.f[TNE ] = &DD27[TNE *size_Mat];
+      D27.f[TSW ] = &DD27[TSW *size_Mat];
+      D27.f[TSE ] = &DD27[TSE *size_Mat];
+      D27.f[TNW ] = &DD27[TNW *size_Mat];
+      D27.f[BNE ] = &DD27[BNE *size_Mat];
+      D27.f[BSW ] = &DD27[BSW *size_Mat];
+      D27.f[BSE ] = &DD27[BSE *size_Mat];
+      D27.f[BNW ] = &DD27[BNW *size_Mat];
    } 
    else
    {
-      D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+      D27.f[W   ] = &DD27[E   *size_Mat];
+      D27.f[E   ] = &DD27[W   *size_Mat];
+      D27.f[S   ] = &DD27[N   *size_Mat];
+      D27.f[N   ] = &DD27[S   *size_Mat];
+      D27.f[B   ] = &DD27[T   *size_Mat];
+      D27.f[T   ] = &DD27[B   *size_Mat];
+      D27.f[SW  ] = &DD27[NE  *size_Mat];
+      D27.f[NE  ] = &DD27[SW  *size_Mat];
+      D27.f[NW  ] = &DD27[SE  *size_Mat];
+      D27.f[SE  ] = &DD27[NW  *size_Mat];
+      D27.f[BW  ] = &DD27[TE  *size_Mat];
+      D27.f[TE  ] = &DD27[BW  *size_Mat];
+      D27.f[TW  ] = &DD27[BE  *size_Mat];
+      D27.f[BE  ] = &DD27[TW  *size_Mat];
+      D27.f[BS  ] = &DD27[TN  *size_Mat];
+      D27.f[TN  ] = &DD27[BS  *size_Mat];
+      D27.f[TS  ] = &DD27[BN  *size_Mat];
+      D27.f[BN  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+      D27.f[TNE ] = &DD27[BSW *size_Mat];
+      D27.f[TSW ] = &DD27[BNE *size_Mat];
+      D27.f[TSE ] = &DD27[BNW *size_Mat];
+      D27.f[TNW ] = &DD27[BSE *size_Mat];
+      D27.f[BNE ] = &DD27[TSW *size_Mat];
+      D27.f[BSW ] = &DD27[TNE *size_Mat];
+      D27.f[BSE ] = &DD27[TNW *size_Mat];
+      D27.f[BNW ] = &DD27[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -5433,32 +5433,32 @@ extern "C" __global__ void QADVeloIncomp27(
          *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
          *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
          *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -5490,65 +5490,65 @@ extern "C" __global__ void QADVeloIncomp27(
       unsigned int ktne = KQK;
       unsigned int kbsw = neighborZ[ksw];
       ////////////////////////////////////////////////////////////////////////////////
-      real f_W    = (D.f[dirE   ])[ke   ];
-      real f_E    = (D.f[dirW   ])[kw   ];
-      real f_S    = (D.f[dirN   ])[kn   ];
-      real f_N    = (D.f[dirS   ])[ks   ];
-      real f_B    = (D.f[dirT   ])[kt   ];
-      real f_T    = (D.f[dirB   ])[kb   ];
-      real f_SW   = (D.f[dirNE  ])[kne  ];
-      real f_NE   = (D.f[dirSW  ])[ksw  ];
-      real f_NW   = (D.f[dirSE  ])[kse  ];
-      real f_SE   = (D.f[dirNW  ])[knw  ];
-      real f_BW   = (D.f[dirTE  ])[kte  ];
-      real f_TE   = (D.f[dirBW  ])[kbw  ];
-      real f_TW   = (D.f[dirBE  ])[kbe  ];
-      real f_BE   = (D.f[dirTW  ])[ktw  ];
-      real f_BS   = (D.f[dirTN  ])[ktn  ];
-      real f_TN   = (D.f[dirBS  ])[kbs  ];
-      real f_TS   = (D.f[dirBN  ])[kbn  ];
-      real f_BN   = (D.f[dirTS  ])[kts  ];
+      real f_W    = (D.f[E   ])[ke   ];
+      real f_E    = (D.f[W   ])[kw   ];
+      real f_S    = (D.f[N   ])[kn   ];
+      real f_N    = (D.f[S   ])[ks   ];
+      real f_B    = (D.f[T   ])[kt   ];
+      real f_T    = (D.f[B   ])[kb   ];
+      real f_SW   = (D.f[NE  ])[kne  ];
+      real f_NE   = (D.f[SW  ])[ksw  ];
+      real f_NW   = (D.f[SE  ])[kse  ];
+      real f_SE   = (D.f[NW  ])[knw  ];
+      real f_BW   = (D.f[TE  ])[kte  ];
+      real f_TE   = (D.f[BW  ])[kbw  ];
+      real f_TW   = (D.f[BE  ])[kbe  ];
+      real f_BE   = (D.f[TW  ])[ktw  ];
+      real f_BS   = (D.f[TN  ])[ktn  ];
+      real f_TN   = (D.f[BS  ])[kbs  ];
+      real f_TS   = (D.f[BN  ])[kbn  ];
+      real f_BN   = (D.f[TS  ])[kts  ];
       //real f_ZERO = (D.f[dirREST])[kzero];
-      real f_BSW  = (D.f[dirTNE ])[ktne ];
-      real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      real f_BNW  = (D.f[dirTSE ])[ktse ];
-      real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      real f_TSW  = (D.f[dirBNE ])[kbne ];
-      real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      real f_TNW  = (D.f[dirBSE ])[kbse ];
-      real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      real f_BSW  = (D.f[TNE ])[ktne ];
+      real f_BNE  = (D.f[TSW ])[ktsw ];
+      real f_BNW  = (D.f[TSE ])[ktse ];
+      real f_BSE  = (D.f[TNW ])[ktnw ];
+      real f_TSW  = (D.f[BNE ])[kbne ];
+      real f_TNE  = (D.f[BSW ])[kbsw ];
+      real f_TNW  = (D.f[BSE ])[kbse ];
+      real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1 = ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)+(f_BSE-f_TNW) +(f_NE-f_SW)+(f_SE-f_NW)+(f_TE-f_BW)+(f_BE-f_TW)+(f_E-f_W));
       real vx2 = ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S));
       real vx3 = ((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B));
       ////////////////////////////////////////////////////////////////////////////////
-      //real f27_W    = (D27.f[dirE   ])[ke   ];
-      //real f27_E    = (D27.f[dirW   ])[kw   ];
-      //real f27_S    = (D27.f[dirN   ])[kn   ];
-      //real f27_N    = (D27.f[dirS   ])[ks   ];
-      //real f27_B    = (D27.f[dirT   ])[kt   ];
-      //real f27_T    = (D27.f[dirB   ])[kb   ];
-      //real f27_SW   = (D27.f[dirNE  ])[kne  ];
-      //real f27_NE   = (D27.f[dirSW  ])[ksw  ];
-      //real f27_NW   = (D27.f[dirSE  ])[kse  ];
-      //real f27_SE   = (D27.f[dirNW  ])[knw  ];
-      //real f27_BW   = (D27.f[dirTE  ])[kte  ];
-      //real f27_TE   = (D27.f[dirBW  ])[kbw  ];
-      //real f27_TW   = (D27.f[dirBE  ])[kbe  ];
-      //real f27_BE   = (D27.f[dirTW  ])[ktw  ];
-      //real f27_BS   = (D27.f[dirTN  ])[ktn  ];
-      //real f27_TN   = (D27.f[dirBS  ])[kbs  ];
-      //real f27_TS   = (D27.f[dirBN  ])[kbn  ];
-      //real f27_BN   = (D27.f[dirTS  ])[kts  ];
+      //real f27_W    = (D27.f[E   ])[ke   ];
+      //real f27_E    = (D27.f[W   ])[kw   ];
+      //real f27_S    = (D27.f[N   ])[kn   ];
+      //real f27_N    = (D27.f[S   ])[ks   ];
+      //real f27_B    = (D27.f[T   ])[kt   ];
+      //real f27_T    = (D27.f[B   ])[kb   ];
+      //real f27_SW   = (D27.f[NE  ])[kne  ];
+      //real f27_NE   = (D27.f[SW  ])[ksw  ];
+      //real f27_NW   = (D27.f[SE  ])[kse  ];
+      //real f27_SE   = (D27.f[NW  ])[knw  ];
+      //real f27_BW   = (D27.f[TE  ])[kte  ];
+      //real f27_TE   = (D27.f[BW  ])[kbw  ];
+      //real f27_TW   = (D27.f[BE  ])[kbe  ];
+      //real f27_BE   = (D27.f[TW  ])[ktw  ];
+      //real f27_BS   = (D27.f[TN  ])[ktn  ];
+      //real f27_TN   = (D27.f[BS  ])[kbs  ];
+      //real f27_TS   = (D27.f[BN  ])[kbn  ];
+      //real f27_BN   = (D27.f[TS  ])[kts  ];
       //real f27_ZERO = (D27.f[dirREST])[kzero];
-      //real f27_BSW  = (D27.f[dirTNE ])[ktne ];
-      //real f27_BNE  = (D27.f[dirTSW ])[ktsw ];
-      //real f27_BNW  = (D27.f[dirTSE ])[ktse ];
-      //real f27_BSE  = (D27.f[dirTNW ])[ktnw ];
-      //real f27_TSW  = (D27.f[dirBNE ])[kbne ];
-      //real f27_TNE  = (D27.f[dirBSW ])[kbsw ];
-      //real f27_TNW  = (D27.f[dirBSE ])[kbse ];
-      //real f27_TSE  = (D27.f[dirBNW ])[kbnw ];
+      //real f27_BSW  = (D27.f[TNE ])[ktne ];
+      //real f27_BNE  = (D27.f[TSW ])[ktsw ];
+      //real f27_BNW  = (D27.f[TSE ])[ktse ];
+      //real f27_BSE  = (D27.f[TNW ])[ktnw ];
+      //real f27_TSW  = (D27.f[BNE ])[kbne ];
+      //real f27_TNE  = (D27.f[BSW ])[kbsw ];
+      //real f27_TNW  = (D27.f[BSE ])[kbse ];
+      //real f27_TSE  = (D27.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
       ////////////////////////////////////////////////////////////////////////////////
@@ -5629,63 +5629,63 @@ extern "C" __global__ void QADVeloIncomp27(
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+         D27.f[E   ] = &DD27[E   *size_Mat];
+         D27.f[W   ] = &DD27[W   *size_Mat];
+         D27.f[N   ] = &DD27[N   *size_Mat];
+         D27.f[S   ] = &DD27[S   *size_Mat];
+         D27.f[T   ] = &DD27[T   *size_Mat];
+         D27.f[B   ] = &DD27[B   *size_Mat];
+         D27.f[NE  ] = &DD27[NE  *size_Mat];
+         D27.f[SW  ] = &DD27[SW  *size_Mat];
+         D27.f[SE  ] = &DD27[SE  *size_Mat];
+         D27.f[NW  ] = &DD27[NW  *size_Mat];
+         D27.f[TE  ] = &DD27[TE  *size_Mat];
+         D27.f[BW  ] = &DD27[BW  *size_Mat];
+         D27.f[BE  ] = &DD27[BE  *size_Mat];
+         D27.f[TW  ] = &DD27[TW  *size_Mat];
+         D27.f[TN  ] = &DD27[TN  *size_Mat];
+         D27.f[BS  ] = &DD27[BS  *size_Mat];
+         D27.f[BN  ] = &DD27[BN  *size_Mat];
+         D27.f[TS  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+         D27.f[TNE ] = &DD27[TNE *size_Mat];
+         D27.f[TSW ] = &DD27[TSW *size_Mat];
+         D27.f[TSE ] = &DD27[TSE *size_Mat];
+         D27.f[TNW ] = &DD27[TNW *size_Mat];
+         D27.f[BNE ] = &DD27[BNE *size_Mat];
+         D27.f[BSW ] = &DD27[BSW *size_Mat];
+         D27.f[BSE ] = &DD27[BSE *size_Mat];
+         D27.f[BNW ] = &DD27[BNW *size_Mat];
       } 
       else
       {
-         D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+         D27.f[W   ] = &DD27[E   *size_Mat];
+         D27.f[E   ] = &DD27[W   *size_Mat];
+         D27.f[S   ] = &DD27[N   *size_Mat];
+         D27.f[N   ] = &DD27[S   *size_Mat];
+         D27.f[B   ] = &DD27[T   *size_Mat];
+         D27.f[T   ] = &DD27[B   *size_Mat];
+         D27.f[SW  ] = &DD27[NE  *size_Mat];
+         D27.f[NE  ] = &DD27[SW  *size_Mat];
+         D27.f[NW  ] = &DD27[SE  *size_Mat];
+         D27.f[SE  ] = &DD27[NW  *size_Mat];
+         D27.f[BW  ] = &DD27[TE  *size_Mat];
+         D27.f[TE  ] = &DD27[BW  *size_Mat];
+         D27.f[TW  ] = &DD27[BE  *size_Mat];
+         D27.f[BE  ] = &DD27[TW  *size_Mat];
+         D27.f[BS  ] = &DD27[TN  *size_Mat];
+         D27.f[TN  ] = &DD27[BS  *size_Mat];
+         D27.f[TS  ] = &DD27[BN  *size_Mat];
+         D27.f[BN  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+         D27.f[TNE ] = &DD27[BSW *size_Mat];
+         D27.f[TSW ] = &DD27[BNE *size_Mat];
+         D27.f[TSE ] = &DD27[BNW *size_Mat];
+         D27.f[TNW ] = &DD27[BSE *size_Mat];
+         D27.f[BNE ] = &DD27[TSW *size_Mat];
+         D27.f[BSW ] = &DD27[TNE *size_Mat];
+         D27.f[BSE ] = &DD27[TNW *size_Mat];
+         D27.f[BNW ] = &DD27[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -5693,58 +5693,58 @@ extern "C" __global__ void QADVeloIncomp27(
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       real q;
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirW  ])[kw  ]= -feqW27_W  + c2o1 * c2o27  * TempD;
-      q = q_dirW[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirE  ])[ke  ]= -feqW27_E  + c2o1 * c2o27  * TempD;
-      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirS  ])[ks  ]= -feqW27_S  + c2o1 * c2o27  * TempD;
-      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirN  ])[kn  ]= -feqW27_N  + c2o1 * c2o27  * TempD;
-      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirB  ])[kb  ]= -feqW27_B  + c2o1 * c2o27  * TempD;
-      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirT  ])[kt  ]= -feqW27_T  + c2o1 * c2o27  * TempD;
-      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirSW ])[ksw ]= -feqW27_SW + c2o1 * c1o54  * TempD;
-      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirNE ])[kne ]= -feqW27_NE + c2o1 * c1o54  * TempD;
-      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirNW ])[knw ]= -feqW27_NW + c2o1 * c1o54  * TempD;
-      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirSE ])[kse ]= -feqW27_SE + c2o1 * c1o54  * TempD;
-      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBW ])[kbw ]= -feqW27_BW + c2o1 * c1o54  * TempD;
-      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTE ])[kte ]= -feqW27_TE + c2o1 * c1o54  * TempD;
-      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTW ])[ktw ]= -feqW27_TW + c2o1 * c1o54  * TempD;
-      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBE ])[kbe ]= -feqW27_BE + c2o1 * c1o54  * TempD;
-      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBS ])[kbs ]= -feqW27_BS + c2o1 * c1o54  * TempD;
-      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTN ])[ktn ]= -feqW27_TN + c2o1 * c1o54  * TempD;
-      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTS ])[kts ]= -feqW27_TS + c2o1 * c1o54  * TempD;
-      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBN ])[kbn ]= -feqW27_BN + c2o1 * c1o54  * TempD;
-      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSW])[kbsw]= -feqW27_BSW+ c2o1 * c1o216 * TempD;
-      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNE])[ktne]= -feqW27_TNE+ c2o1 * c1o216 * TempD;
-      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSW])[ktsw]= -feqW27_TSW+ c2o1 * c1o216 * TempD;
-      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNE])[kbne]= -feqW27_BNE+ c2o1 * c1o216 * TempD;
-      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNW])[kbnw]= -feqW27_BNW+ c2o1 * c1o216 * TempD;
-      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSE])[ktse]= -feqW27_TSE+ c2o1 * c1o216 * TempD;
-      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNW])[ktnw]= -feqW27_TNW+ c2o1 * c1o216 * TempD;
-      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSE])[kbse]= -feqW27_BSE+ c2o1 * c1o216 * TempD;
-      //q = q_dirE[k];   if (q>=zero && q<=one) (D27.f[dirW  ])[kw  ]=(two*feqW27_W  -(f27_E  *(q*omegaD-one)-omegaD*feq27_E  *(q-one))/(omegaD-one)+f27_W  *q)/(q+one);
-      //q = q_dirW[k];   if (q>=zero && q<=one) (D27.f[dirE  ])[ke  ]=(two*feqW27_E  -(f27_W  *(q*omegaD-one)-omegaD*feq27_W  *(q-one))/(omegaD-one)+f27_E  *q)/(q+one);
-      //q = q_dirN[k];   if (q>=zero && q<=one) (D27.f[dirS  ])[ks  ]=(two*feqW27_S  -(f27_N  *(q*omegaD-one)-omegaD*feq27_N  *(q-one))/(omegaD-one)+f27_S  *q)/(q+one);
-      //q = q_dirS[k];   if (q>=zero && q<=one) (D27.f[dirN  ])[kn  ]=(two*feqW27_N  -(f27_S  *(q*omegaD-one)-omegaD*feq27_S  *(q-one))/(omegaD-one)+f27_N  *q)/(q+one);
-      //q = q_dirT[k];   if (q>=zero && q<=one) (D27.f[dirB  ])[kb  ]=(two*feqW27_B  -(f27_T  *(q*omegaD-one)-omegaD*feq27_T  *(q-one))/(omegaD-one)+f27_B  *q)/(q+one);
-      //q = q_dirB[k];   if (q>=zero && q<=one) (D27.f[dirT  ])[kt  ]=(two*feqW27_T  -(f27_B  *(q*omegaD-one)-omegaD*feq27_B  *(q-one))/(omegaD-one)+f27_T  *q)/(q+one);
-      //q = q_dirNE[k];  if (q>=zero && q<=one) (D27.f[dirSW ])[ksw ]=(two*feqW27_SW -(f27_NE *(q*omegaD-one)-omegaD*feq27_NE *(q-one))/(omegaD-one)+f27_SW *q)/(q+one);
-      //q = q_dirSW[k];  if (q>=zero && q<=one) (D27.f[dirNE ])[kne ]=(two*feqW27_NE -(f27_SW *(q*omegaD-one)-omegaD*feq27_SW *(q-one))/(omegaD-one)+f27_NE *q)/(q+one);
-      //q = q_dirSE[k];  if (q>=zero && q<=one) (D27.f[dirNW ])[knw ]=(two*feqW27_NW -(f27_SE *(q*omegaD-one)-omegaD*feq27_SE *(q-one))/(omegaD-one)+f27_NW *q)/(q+one);
-      //q = q_dirNW[k];  if (q>=zero && q<=one) (D27.f[dirSE ])[kse ]=(two*feqW27_SE -(f27_NW *(q*omegaD-one)-omegaD*feq27_NW *(q-one))/(omegaD-one)+f27_SE *q)/(q+one);
-      //q = q_dirTE[k];  if (q>=zero && q<=one) (D27.f[dirBW ])[kbw ]=(two*feqW27_BW -(f27_TE *(q*omegaD-one)-omegaD*feq27_TE *(q-one))/(omegaD-one)+f27_BW *q)/(q+one);
-      //q = q_dirBW[k];  if (q>=zero && q<=one) (D27.f[dirTE ])[kte ]=(two*feqW27_TE -(f27_BW *(q*omegaD-one)-omegaD*feq27_BW *(q-one))/(omegaD-one)+f27_TE *q)/(q+one);
-      //q = q_dirBE[k];  if (q>=zero && q<=one) (D27.f[dirTW ])[ktw ]=(two*feqW27_TW -(f27_BE *(q*omegaD-one)-omegaD*feq27_BE *(q-one))/(omegaD-one)+f27_TW *q)/(q+one);
-      //q = q_dirTW[k];  if (q>=zero && q<=one) (D27.f[dirBE ])[kbe ]=(two*feqW27_BE -(f27_TW *(q*omegaD-one)-omegaD*feq27_TW *(q-one))/(omegaD-one)+f27_BE *q)/(q+one);
-      //q = q_dirTN[k];  if (q>=zero && q<=one) (D27.f[dirBS ])[kbs ]=(two*feqW27_BS -(f27_TN *(q*omegaD-one)-omegaD*feq27_TN *(q-one))/(omegaD-one)+f27_BS *q)/(q+one);
-      //q = q_dirBS[k];  if (q>=zero && q<=one) (D27.f[dirTN ])[ktn ]=(two*feqW27_TN -(f27_BS *(q*omegaD-one)-omegaD*feq27_BS *(q-one))/(omegaD-one)+f27_TN *q)/(q+one);
-      //q = q_dirBN[k];  if (q>=zero && q<=one) (D27.f[dirTS ])[kts ]=(two*feqW27_TS -(f27_BN *(q*omegaD-one)-omegaD*feq27_BN *(q-one))/(omegaD-one)+f27_TS *q)/(q+one);
-      //q = q_dirTS[k];  if (q>=zero && q<=one) (D27.f[dirBN ])[kbn ]=(two*feqW27_BN -(f27_TS *(q*omegaD-one)-omegaD*feq27_TS *(q-one))/(omegaD-one)+f27_BN *q)/(q+one);
-      //q = q_dirTNE[k]; if (q>=zero && q<=one) (D27.f[dirBSW])[kbsw]=(two*feqW27_BSW-(f27_TNE*(q*omegaD-one)-omegaD*feq27_TNE*(q-one))/(omegaD-one)+f27_BSW*q)/(q+one);
-      //q = q_dirBSW[k]; if (q>=zero && q<=one) (D27.f[dirTNE])[ktne]=(two*feqW27_TNE-(f27_BSW*(q*omegaD-one)-omegaD*feq27_BSW*(q-one))/(omegaD-one)+f27_TNE*q)/(q+one);
-      //q = q_dirBNE[k]; if (q>=zero && q<=one) (D27.f[dirTSW])[ktsw]=(two*feqW27_TSW-(f27_BNE*(q*omegaD-one)-omegaD*feq27_BNE*(q-one))/(omegaD-one)+f27_TSW*q)/(q+one);
-      //q = q_dirTSW[k]; if (q>=zero && q<=one) (D27.f[dirBNE])[kbne]=(two*feqW27_BNE-(f27_TSW*(q*omegaD-one)-omegaD*feq27_TSW*(q-one))/(omegaD-one)+f27_BNE*q)/(q+one);
-      //q = q_dirTSE[k]; if (q>=zero && q<=one) (D27.f[dirBNW])[kbnw]=(two*feqW27_BNW-(f27_TSE*(q*omegaD-one)-omegaD*feq27_TSE*(q-one))/(omegaD-one)+f27_BNW*q)/(q+one);
-      //q = q_dirBNW[k]; if (q>=zero && q<=one) (D27.f[dirTSE])[ktse]=(two*feqW27_TSE-(f27_BNW*(q*omegaD-one)-omegaD*feq27_BNW*(q-one))/(omegaD-one)+f27_TSE*q)/(q+one);
-      //q = q_dirBSE[k]; if (q>=zero && q<=one) (D27.f[dirTNW])[ktnw]=(two*feqW27_TNW-(f27_BSE*(q*omegaD-one)-omegaD*feq27_BSE*(q-one))/(omegaD-one)+f27_TNW*q)/(q+one);
-      //q = q_dirTNW[k]; if (q>=zero && q<=one) (D27.f[dirBSE])[kbse]=(two*feqW27_BSE-(f27_TNW*(q*omegaD-one)-omegaD*feq27_TNW*(q-one))/(omegaD-one)+f27_BSE*q)/(q+one);
+      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1) (D27.f[W  ])[kw  ]= -feqW27_W  + c2o1 * c2o27  * TempD;
+      q = q_dirW[k];   if (q>=c0o1 && q<=c1o1) (D27.f[E  ])[ke  ]= -feqW27_E  + c2o1 * c2o27  * TempD;
+      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1) (D27.f[S  ])[ks  ]= -feqW27_S  + c2o1 * c2o27  * TempD;
+      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1) (D27.f[N  ])[kn  ]= -feqW27_N  + c2o1 * c2o27  * TempD;
+      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1) (D27.f[B  ])[kb  ]= -feqW27_B  + c2o1 * c2o27  * TempD;
+      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1) (D27.f[T  ])[kt  ]= -feqW27_T  + c2o1 * c2o27  * TempD;
+      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[SW ])[ksw ]= -feqW27_SW + c2o1 * c1o54  * TempD;
+      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[NE ])[kne ]= -feqW27_NE + c2o1 * c1o54  * TempD;
+      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[NW ])[knw ]= -feqW27_NW + c2o1 * c1o54  * TempD;
+      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[SE ])[kse ]= -feqW27_SE + c2o1 * c1o54  * TempD;
+      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BW ])[kbw ]= -feqW27_BW + c2o1 * c1o54  * TempD;
+      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TE ])[kte ]= -feqW27_TE + c2o1 * c1o54  * TempD;
+      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TW ])[ktw ]= -feqW27_TW + c2o1 * c1o54  * TempD;
+      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BE ])[kbe ]= -feqW27_BE + c2o1 * c1o54  * TempD;
+      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BS ])[kbs ]= -feqW27_BS + c2o1 * c1o54  * TempD;
+      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TN ])[ktn ]= -feqW27_TN + c2o1 * c1o54  * TempD;
+      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TS ])[kts ]= -feqW27_TS + c2o1 * c1o54  * TempD;
+      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BN ])[kbn ]= -feqW27_BN + c2o1 * c1o54  * TempD;
+      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BSW])[kbsw]= -feqW27_BSW+ c2o1 * c1o216 * TempD;
+      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TNE])[ktne]= -feqW27_TNE+ c2o1 * c1o216 * TempD;
+      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TSW])[ktsw]= -feqW27_TSW+ c2o1 * c1o216 * TempD;
+      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BNE])[kbne]= -feqW27_BNE+ c2o1 * c1o216 * TempD;
+      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BNW])[kbnw]= -feqW27_BNW+ c2o1 * c1o216 * TempD;
+      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TSE])[ktse]= -feqW27_TSE+ c2o1 * c1o216 * TempD;
+      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TNW])[ktnw]= -feqW27_TNW+ c2o1 * c1o216 * TempD;
+      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BSE])[kbse]= -feqW27_BSE+ c2o1 * c1o216 * TempD;
+      //q = q_dirE[k];   if (q>=zero && q<=one) (D27.f[W  ])[kw  ]=(two*feqW27_W  -(f27_E  *(q*omegaD-one)-omegaD*feq27_E  *(q-one))/(omegaD-one)+f27_W  *q)/(q+one);
+      //q = q_dirW[k];   if (q>=zero && q<=one) (D27.f[E  ])[ke  ]=(two*feqW27_E  -(f27_W  *(q*omegaD-one)-omegaD*feq27_W  *(q-one))/(omegaD-one)+f27_E  *q)/(q+one);
+      //q = q_dirN[k];   if (q>=zero && q<=one) (D27.f[S  ])[ks  ]=(two*feqW27_S  -(f27_N  *(q*omegaD-one)-omegaD*feq27_N  *(q-one))/(omegaD-one)+f27_S  *q)/(q+one);
+      //q = q_dirS[k];   if (q>=zero && q<=one) (D27.f[N  ])[kn  ]=(two*feqW27_N  -(f27_S  *(q*omegaD-one)-omegaD*feq27_S  *(q-one))/(omegaD-one)+f27_N  *q)/(q+one);
+      //q = q_dirT[k];   if (q>=zero && q<=one) (D27.f[B  ])[kb  ]=(two*feqW27_B  -(f27_T  *(q*omegaD-one)-omegaD*feq27_T  *(q-one))/(omegaD-one)+f27_B  *q)/(q+one);
+      //q = q_dirB[k];   if (q>=zero && q<=one) (D27.f[T  ])[kt  ]=(two*feqW27_T  -(f27_B  *(q*omegaD-one)-omegaD*feq27_B  *(q-one))/(omegaD-one)+f27_T  *q)/(q+one);
+      //q = q_dirNE[k];  if (q>=zero && q<=one) (D27.f[SW ])[ksw ]=(two*feqW27_SW -(f27_NE *(q*omegaD-one)-omegaD*feq27_NE *(q-one))/(omegaD-one)+f27_SW *q)/(q+one);
+      //q = q_dirSW[k];  if (q>=zero && q<=one) (D27.f[NE ])[kne ]=(two*feqW27_NE -(f27_SW *(q*omegaD-one)-omegaD*feq27_SW *(q-one))/(omegaD-one)+f27_NE *q)/(q+one);
+      //q = q_dirSE[k];  if (q>=zero && q<=one) (D27.f[NW ])[knw ]=(two*feqW27_NW -(f27_SE *(q*omegaD-one)-omegaD*feq27_SE *(q-one))/(omegaD-one)+f27_NW *q)/(q+one);
+      //q = q_dirNW[k];  if (q>=zero && q<=one) (D27.f[SE ])[kse ]=(two*feqW27_SE -(f27_NW *(q*omegaD-one)-omegaD*feq27_NW *(q-one))/(omegaD-one)+f27_SE *q)/(q+one);
+      //q = q_dirTE[k];  if (q>=zero && q<=one) (D27.f[BW ])[kbw ]=(two*feqW27_BW -(f27_TE *(q*omegaD-one)-omegaD*feq27_TE *(q-one))/(omegaD-one)+f27_BW *q)/(q+one);
+      //q = q_dirBW[k];  if (q>=zero && q<=one) (D27.f[TE ])[kte ]=(two*feqW27_TE -(f27_BW *(q*omegaD-one)-omegaD*feq27_BW *(q-one))/(omegaD-one)+f27_TE *q)/(q+one);
+      //q = q_dirBE[k];  if (q>=zero && q<=one) (D27.f[TW ])[ktw ]=(two*feqW27_TW -(f27_BE *(q*omegaD-one)-omegaD*feq27_BE *(q-one))/(omegaD-one)+f27_TW *q)/(q+one);
+      //q = q_dirTW[k];  if (q>=zero && q<=one) (D27.f[BE ])[kbe ]=(two*feqW27_BE -(f27_TW *(q*omegaD-one)-omegaD*feq27_TW *(q-one))/(omegaD-one)+f27_BE *q)/(q+one);
+      //q = q_dirTN[k];  if (q>=zero && q<=one) (D27.f[BS ])[kbs ]=(two*feqW27_BS -(f27_TN *(q*omegaD-one)-omegaD*feq27_TN *(q-one))/(omegaD-one)+f27_BS *q)/(q+one);
+      //q = q_dirBS[k];  if (q>=zero && q<=one) (D27.f[TN ])[ktn ]=(two*feqW27_TN -(f27_BS *(q*omegaD-one)-omegaD*feq27_BS *(q-one))/(omegaD-one)+f27_TN *q)/(q+one);
+      //q = q_dirBN[k];  if (q>=zero && q<=one) (D27.f[TS ])[kts ]=(two*feqW27_TS -(f27_BN *(q*omegaD-one)-omegaD*feq27_BN *(q-one))/(omegaD-one)+f27_TS *q)/(q+one);
+      //q = q_dirTS[k];  if (q>=zero && q<=one) (D27.f[BN ])[kbn ]=(two*feqW27_BN -(f27_TS *(q*omegaD-one)-omegaD*feq27_TS *(q-one))/(omegaD-one)+f27_BN *q)/(q+one);
+      //q = q_dirTNE[k]; if (q>=zero && q<=one) (D27.f[BSW])[kbsw]=(two*feqW27_BSW-(f27_TNE*(q*omegaD-one)-omegaD*feq27_TNE*(q-one))/(omegaD-one)+f27_BSW*q)/(q+one);
+      //q = q_dirBSW[k]; if (q>=zero && q<=one) (D27.f[TNE])[ktne]=(two*feqW27_TNE-(f27_BSW*(q*omegaD-one)-omegaD*feq27_BSW*(q-one))/(omegaD-one)+f27_TNE*q)/(q+one);
+      //q = q_dirBNE[k]; if (q>=zero && q<=one) (D27.f[TSW])[ktsw]=(two*feqW27_TSW-(f27_BNE*(q*omegaD-one)-omegaD*feq27_BNE*(q-one))/(omegaD-one)+f27_TSW*q)/(q+one);
+      //q = q_dirTSW[k]; if (q>=zero && q<=one) (D27.f[BNE])[kbne]=(two*feqW27_BNE-(f27_TSW*(q*omegaD-one)-omegaD*feq27_TSW*(q-one))/(omegaD-one)+f27_BNE*q)/(q+one);
+      //q = q_dirTSE[k]; if (q>=zero && q<=one) (D27.f[BNW])[kbnw]=(two*feqW27_BNW-(f27_TSE*(q*omegaD-one)-omegaD*feq27_TSE*(q-one))/(omegaD-one)+f27_BNW*q)/(q+one);
+      //q = q_dirBNW[k]; if (q>=zero && q<=one) (D27.f[TSE])[ktse]=(two*feqW27_TSE-(f27_BNW*(q*omegaD-one)-omegaD*feq27_BNW*(q-one))/(omegaD-one)+f27_TSE*q)/(q+one);
+      //q = q_dirBSE[k]; if (q>=zero && q<=one) (D27.f[TNW])[ktnw]=(two*feqW27_TNW-(f27_BSE*(q*omegaD-one)-omegaD*feq27_BSE*(q-one))/(omegaD-one)+f27_TNW*q)/(q+one);
+      //q = q_dirTNW[k]; if (q>=zero && q<=one) (D27.f[BSE])[kbse]=(two*feqW27_BSE-(f27_TNW*(q*omegaD-one)-omegaD*feq27_TNW*(q-one))/(omegaD-one)+f27_BSE*q)/(q+one);
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -5808,63 +5808,63 @@ extern "C" __global__ void QADPressIncomp7(int inx,
   /* Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }*/
 
    Distributions7 D7;
@@ -5906,12 +5906,12 @@ extern "C" __global__ void QADPressIncomp7(int inx,
       //////////////////////////////////////////////////////////////////////////////////
       real  *q_dirE,   *q_dirW,   *q_dirN,   *q_dirS,   *q_dirT,   *q_dirB; 
 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
       //////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -5946,32 +5946,32 @@ extern "C" __global__ void QADPressIncomp7(int inx,
     /*  real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_W    = (D.f[dirE   ])[ke   ];
-      f_E    = (D.f[dirW   ])[kw   ];
-      f_S    = (D.f[dirN   ])[kn   ];
-      f_N    = (D.f[dirS   ])[ks   ];
-      f_B    = (D.f[dirT   ])[kt   ];
-      f_T    = (D.f[dirB   ])[kb   ];
-      f_SW   = (D.f[dirNE  ])[kne  ];
-      f_NE   = (D.f[dirSW  ])[ksw  ];
-      f_NW   = (D.f[dirSE  ])[kse  ];
-      f_SE   = (D.f[dirNW  ])[knw  ];
-      f_BW   = (D.f[dirTE  ])[kte  ];
-      f_TE   = (D.f[dirBW  ])[kbw  ];
-      f_TW   = (D.f[dirBE  ])[kbe  ];
-      f_BE   = (D.f[dirTW  ])[ktw  ];
-      f_BS   = (D.f[dirTN  ])[ktn  ];
-      f_TN   = (D.f[dirBS  ])[kbs  ];
-      f_TS   = (D.f[dirBN  ])[kbn  ];
-      f_BN   = (D.f[dirTS  ])[kts  ];
-      f_BSW  = (D.f[dirTNE ])[ktne ];
-      f_BNE  = (D.f[dirTSW ])[ktsw ];
-      f_BNW  = (D.f[dirTSE ])[ktse ];
-      f_BSE  = (D.f[dirTNW ])[ktnw ];
-      f_TSW  = (D.f[dirBNE ])[kbne ];
-      f_TNE  = (D.f[dirBSW ])[kbsw ];
-      f_TNW  = (D.f[dirBSE ])[kbse ];
-      f_TSE  = (D.f[dirBNW ])[kbnw ];*/
+      f_W    = (D.f[E   ])[ke   ];
+      f_E    = (D.f[W   ])[kw   ];
+      f_S    = (D.f[N   ])[kn   ];
+      f_N    = (D.f[S   ])[ks   ];
+      f_B    = (D.f[T   ])[kt   ];
+      f_T    = (D.f[B   ])[kb   ];
+      f_SW   = (D.f[NE  ])[kne  ];
+      f_NE   = (D.f[SW  ])[ksw  ];
+      f_NW   = (D.f[SE  ])[kse  ];
+      f_SE   = (D.f[NW  ])[knw  ];
+      f_BW   = (D.f[TE  ])[kte  ];
+      f_TE   = (D.f[BW  ])[kbw  ];
+      f_TW   = (D.f[BE  ])[kbe  ];
+      f_BE   = (D.f[TW  ])[ktw  ];
+      f_BS   = (D.f[TN  ])[ktn  ];
+      f_TN   = (D.f[BS  ])[kbs  ];
+      f_TS   = (D.f[BN  ])[kbn  ];
+      f_BN   = (D.f[TS  ])[kts  ];
+      f_BSW  = (D.f[TNE ])[ktne ];
+      f_BNE  = (D.f[TSW ])[ktsw ];
+      f_BNW  = (D.f[TSE ])[ktse ];
+      f_BSE  = (D.f[TNW ])[ktnw ];
+      f_TSW  = (D.f[BNE ])[kbne ];
+      f_TNE  = (D.f[BSW ])[kbsw ];
+      f_TNW  = (D.f[BSE ])[kbse ];
+      f_TSE  = (D.f[BNW ])[kbnw ];*/
       ////////////////////////////////////////////////////////////////////////////////
       //real vx1 = ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)+(f_BSE-f_TNW) +(f_NE-f_SW)+(f_SE-f_NW)+(f_TE-f_BW)+(f_BE-f_TW)+(f_E-f_W));
       //real vx2 = ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S));
@@ -6247,125 +6247,125 @@ extern "C" __global__ void QADPressIncomp27(
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
 
    Distributions27 D27;
    if (isEvenTimestep==true)
    {
-      D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+      D27.f[E   ] = &DD27[E   *size_Mat];
+      D27.f[W   ] = &DD27[W   *size_Mat];
+      D27.f[N   ] = &DD27[N   *size_Mat];
+      D27.f[S   ] = &DD27[S   *size_Mat];
+      D27.f[T   ] = &DD27[T   *size_Mat];
+      D27.f[B   ] = &DD27[B   *size_Mat];
+      D27.f[NE  ] = &DD27[NE  *size_Mat];
+      D27.f[SW  ] = &DD27[SW  *size_Mat];
+      D27.f[SE  ] = &DD27[SE  *size_Mat];
+      D27.f[NW  ] = &DD27[NW  *size_Mat];
+      D27.f[TE  ] = &DD27[TE  *size_Mat];
+      D27.f[BW  ] = &DD27[BW  *size_Mat];
+      D27.f[BE  ] = &DD27[BE  *size_Mat];
+      D27.f[TW  ] = &DD27[TW  *size_Mat];
+      D27.f[TN  ] = &DD27[TN  *size_Mat];
+      D27.f[BS  ] = &DD27[BS  *size_Mat];
+      D27.f[BN  ] = &DD27[BN  *size_Mat];
+      D27.f[TS  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+      D27.f[TNE ] = &DD27[TNE *size_Mat];
+      D27.f[TSW ] = &DD27[TSW *size_Mat];
+      D27.f[TSE ] = &DD27[TSE *size_Mat];
+      D27.f[TNW ] = &DD27[TNW *size_Mat];
+      D27.f[BNE ] = &DD27[BNE *size_Mat];
+      D27.f[BSW ] = &DD27[BSW *size_Mat];
+      D27.f[BSE ] = &DD27[BSE *size_Mat];
+      D27.f[BNW ] = &DD27[BNW *size_Mat];
    } 
    else
    {
-      D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+      D27.f[W   ] = &DD27[E   *size_Mat];
+      D27.f[E   ] = &DD27[W   *size_Mat];
+      D27.f[S   ] = &DD27[N   *size_Mat];
+      D27.f[N   ] = &DD27[S   *size_Mat];
+      D27.f[B   ] = &DD27[T   *size_Mat];
+      D27.f[T   ] = &DD27[B   *size_Mat];
+      D27.f[SW  ] = &DD27[NE  *size_Mat];
+      D27.f[NE  ] = &DD27[SW  *size_Mat];
+      D27.f[NW  ] = &DD27[SE  *size_Mat];
+      D27.f[SE  ] = &DD27[NW  *size_Mat];
+      D27.f[BW  ] = &DD27[TE  *size_Mat];
+      D27.f[TE  ] = &DD27[BW  *size_Mat];
+      D27.f[TW  ] = &DD27[BE  *size_Mat];
+      D27.f[BE  ] = &DD27[TW  *size_Mat];
+      D27.f[BS  ] = &DD27[TN  *size_Mat];
+      D27.f[TN  ] = &DD27[BS  *size_Mat];
+      D27.f[TS  ] = &DD27[BN  *size_Mat];
+      D27.f[BN  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+      D27.f[TNE ] = &DD27[BSW *size_Mat];
+      D27.f[TSW ] = &DD27[BNE *size_Mat];
+      D27.f[TSE ] = &DD27[BNW *size_Mat];
+      D27.f[TNW ] = &DD27[BSE *size_Mat];
+      D27.f[BNE ] = &DD27[TSW *size_Mat];
+      D27.f[BSW ] = &DD27[TNE *size_Mat];
+      D27.f[BSE ] = &DD27[TNW *size_Mat];
+      D27.f[BNW ] = &DD27[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -6386,32 +6386,32 @@ extern "C" __global__ void QADPressIncomp27(
          *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
          *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
          *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -6443,65 +6443,65 @@ extern "C" __global__ void QADPressIncomp27(
       unsigned int ktne = KQK;
       unsigned int kbsw = neighborZ[ksw];
       ////////////////////////////////////////////////////////////////////////////////
-      real f_W    = (D.f[dirE   ])[ke   ];
-      real f_E    = (D.f[dirW   ])[kw   ];
-      real f_S    = (D.f[dirN   ])[kn   ];
-      real f_N    = (D.f[dirS   ])[ks   ];
-      real f_B    = (D.f[dirT   ])[kt   ];
-      real f_T    = (D.f[dirB   ])[kb   ];
-      real f_SW   = (D.f[dirNE  ])[kne  ];
-      real f_NE   = (D.f[dirSW  ])[ksw  ];
-      real f_NW   = (D.f[dirSE  ])[kse  ];
-      real f_SE   = (D.f[dirNW  ])[knw  ];
-      real f_BW   = (D.f[dirTE  ])[kte  ];
-      real f_TE   = (D.f[dirBW  ])[kbw  ];
-      real f_TW   = (D.f[dirBE  ])[kbe  ];
-      real f_BE   = (D.f[dirTW  ])[ktw  ];
-      real f_BS   = (D.f[dirTN  ])[ktn  ];
-      real f_TN   = (D.f[dirBS  ])[kbs  ];
-      real f_TS   = (D.f[dirBN  ])[kbn  ];
-      real f_BN   = (D.f[dirTS  ])[kts  ];
+      real f_W    = (D.f[E   ])[ke   ];
+      real f_E    = (D.f[W   ])[kw   ];
+      real f_S    = (D.f[N   ])[kn   ];
+      real f_N    = (D.f[S   ])[ks   ];
+      real f_B    = (D.f[T   ])[kt   ];
+      real f_T    = (D.f[B   ])[kb   ];
+      real f_SW   = (D.f[NE  ])[kne  ];
+      real f_NE   = (D.f[SW  ])[ksw  ];
+      real f_NW   = (D.f[SE  ])[kse  ];
+      real f_SE   = (D.f[NW  ])[knw  ];
+      real f_BW   = (D.f[TE  ])[kte  ];
+      real f_TE   = (D.f[BW  ])[kbw  ];
+      real f_TW   = (D.f[BE  ])[kbe  ];
+      real f_BE   = (D.f[TW  ])[ktw  ];
+      real f_BS   = (D.f[TN  ])[ktn  ];
+      real f_TN   = (D.f[BS  ])[kbs  ];
+      real f_TS   = (D.f[BN  ])[kbn  ];
+      real f_BN   = (D.f[TS  ])[kts  ];
       //real f_ZERO = (D.f[dirREST])[kzero];
-      real f_BSW  = (D.f[dirTNE ])[ktne ];
-      real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      real f_BNW  = (D.f[dirTSE ])[ktse ];
-      real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      real f_TSW  = (D.f[dirBNE ])[kbne ];
-      real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      real f_TNW  = (D.f[dirBSE ])[kbse ];
-      real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      real f_BSW  = (D.f[TNE ])[ktne ];
+      real f_BNE  = (D.f[TSW ])[ktsw ];
+      real f_BNW  = (D.f[TSE ])[ktse ];
+      real f_BSE  = (D.f[TNW ])[ktnw ];
+      real f_TSW  = (D.f[BNE ])[kbne ];
+      real f_TNE  = (D.f[BSW ])[kbsw ];
+      real f_TNW  = (D.f[BSE ])[kbse ];
+      real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1      = ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)+(f_BSE-f_TNW) +(f_NE-f_SW)+(f_SE-f_NW)+(f_TE-f_BW)+(f_BE-f_TW)+(f_E-f_W));
       real vx2      = ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S));
       real vx3      = ((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B));
       ////////////////////////////////////////////////////////////////////////////////
-      //real f27_W    = (D27.f[dirE   ])[ke   ];
-      //real f27_E    = (D27.f[dirW   ])[kw   ];
-      //real f27_S    = (D27.f[dirN   ])[kn   ];
-      //real f27_N    = (D27.f[dirS   ])[ks   ];
-      //real f27_B    = (D27.f[dirT   ])[kt   ];
-      //real f27_T    = (D27.f[dirB   ])[kb   ];
-      //real f27_SW   = (D27.f[dirNE  ])[kne  ];
-      //real f27_NE   = (D27.f[dirSW  ])[ksw  ];
-      //real f27_NW   = (D27.f[dirSE  ])[kse  ];
-      //real f27_SE   = (D27.f[dirNW  ])[knw  ];
-      //real f27_BW   = (D27.f[dirTE  ])[kte  ];
-      //real f27_TE   = (D27.f[dirBW  ])[kbw  ];
-      //real f27_TW   = (D27.f[dirBE  ])[kbe  ];
-      //real f27_BE   = (D27.f[dirTW  ])[ktw  ];
-      //real f27_BS   = (D27.f[dirTN  ])[ktn  ];
-      //real f27_TN   = (D27.f[dirBS  ])[kbs  ];
-      //real f27_TS   = (D27.f[dirBN  ])[kbn  ];
-      //real f27_BN   = (D27.f[dirTS  ])[kts  ];
+      //real f27_W    = (D27.f[E   ])[ke   ];
+      //real f27_E    = (D27.f[W   ])[kw   ];
+      //real f27_S    = (D27.f[N   ])[kn   ];
+      //real f27_N    = (D27.f[S   ])[ks   ];
+      //real f27_B    = (D27.f[T   ])[kt   ];
+      //real f27_T    = (D27.f[B   ])[kb   ];
+      //real f27_SW   = (D27.f[NE  ])[kne  ];
+      //real f27_NE   = (D27.f[SW  ])[ksw  ];
+      //real f27_NW   = (D27.f[SE  ])[kse  ];
+      //real f27_SE   = (D27.f[NW  ])[knw  ];
+      //real f27_BW   = (D27.f[TE  ])[kte  ];
+      //real f27_TE   = (D27.f[BW  ])[kbw  ];
+      //real f27_TW   = (D27.f[BE  ])[kbe  ];
+      //real f27_BE   = (D27.f[TW  ])[ktw  ];
+      //real f27_BS   = (D27.f[TN  ])[ktn  ];
+      //real f27_TN   = (D27.f[BS  ])[kbs  ];
+      //real f27_TS   = (D27.f[BN  ])[kbn  ];
+      //real f27_BN   = (D27.f[TS  ])[kts  ];
       //real f27_ZERO = (D27.f[dirREST])[kzero];
-      //real f27_BSW  = (D27.f[dirTNE ])[ktne ];
-      //real f27_BNE  = (D27.f[dirTSW ])[ktsw ];
-      //real f27_BNW  = (D27.f[dirTSE ])[ktse ];
-      //real f27_BSE  = (D27.f[dirTNW ])[ktnw ];
-      //real f27_TSW  = (D27.f[dirBNE ])[kbne ];
-      //real f27_TNE  = (D27.f[dirBSW ])[kbsw ];
-      //real f27_TNW  = (D27.f[dirBSE ])[kbse ];
-      //real f27_TSE  = (D27.f[dirBNW ])[kbnw ];
+      //real f27_BSW  = (D27.f[TNE ])[ktne ];
+      //real f27_BNE  = (D27.f[TSW ])[ktsw ];
+      //real f27_BNW  = (D27.f[TSE ])[ktse ];
+      //real f27_BSE  = (D27.f[TNW ])[ktnw ];
+      //real f27_TSW  = (D27.f[BNE ])[kbne ];
+      //real f27_TNE  = (D27.f[BSW ])[kbsw ];
+      //real f27_TNW  = (D27.f[BSE ])[kbse ];
+      //real f27_TSE  = (D27.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
       ////////////////////////////////////////////////////////////////////////////////
@@ -6582,63 +6582,63 @@ extern "C" __global__ void QADPressIncomp27(
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+         D27.f[E   ] = &DD27[E   *size_Mat];
+         D27.f[W   ] = &DD27[W   *size_Mat];
+         D27.f[N   ] = &DD27[N   *size_Mat];
+         D27.f[S   ] = &DD27[S   *size_Mat];
+         D27.f[T   ] = &DD27[T   *size_Mat];
+         D27.f[B   ] = &DD27[B   *size_Mat];
+         D27.f[NE  ] = &DD27[NE  *size_Mat];
+         D27.f[SW  ] = &DD27[SW  *size_Mat];
+         D27.f[SE  ] = &DD27[SE  *size_Mat];
+         D27.f[NW  ] = &DD27[NW  *size_Mat];
+         D27.f[TE  ] = &DD27[TE  *size_Mat];
+         D27.f[BW  ] = &DD27[BW  *size_Mat];
+         D27.f[BE  ] = &DD27[BE  *size_Mat];
+         D27.f[TW  ] = &DD27[TW  *size_Mat];
+         D27.f[TN  ] = &DD27[TN  *size_Mat];
+         D27.f[BS  ] = &DD27[BS  *size_Mat];
+         D27.f[BN  ] = &DD27[BN  *size_Mat];
+         D27.f[TS  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+         D27.f[TNE ] = &DD27[TNE *size_Mat];
+         D27.f[TSW ] = &DD27[TSW *size_Mat];
+         D27.f[TSE ] = &DD27[TSE *size_Mat];
+         D27.f[TNW ] = &DD27[TNW *size_Mat];
+         D27.f[BNE ] = &DD27[BNE *size_Mat];
+         D27.f[BSW ] = &DD27[BSW *size_Mat];
+         D27.f[BSE ] = &DD27[BSE *size_Mat];
+         D27.f[BNW ] = &DD27[BNW *size_Mat];
       } 
       else
       {
-         D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-         D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-         D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-         D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-         D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-         D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-         D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-         D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-         D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-         D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-         D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-         D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-         D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-         D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-         D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-         D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-         D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-         D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+         D27.f[W   ] = &DD27[E   *size_Mat];
+         D27.f[E   ] = &DD27[W   *size_Mat];
+         D27.f[S   ] = &DD27[N   *size_Mat];
+         D27.f[N   ] = &DD27[S   *size_Mat];
+         D27.f[B   ] = &DD27[T   *size_Mat];
+         D27.f[T   ] = &DD27[B   *size_Mat];
+         D27.f[SW  ] = &DD27[NE  *size_Mat];
+         D27.f[NE  ] = &DD27[SW  *size_Mat];
+         D27.f[NW  ] = &DD27[SE  *size_Mat];
+         D27.f[SE  ] = &DD27[NW  *size_Mat];
+         D27.f[BW  ] = &DD27[TE  *size_Mat];
+         D27.f[TE  ] = &DD27[BW  *size_Mat];
+         D27.f[TW  ] = &DD27[BE  *size_Mat];
+         D27.f[BE  ] = &DD27[TW  *size_Mat];
+         D27.f[BS  ] = &DD27[TN  *size_Mat];
+         D27.f[TN  ] = &DD27[BS  *size_Mat];
+         D27.f[TS  ] = &DD27[BN  *size_Mat];
+         D27.f[BN  ] = &DD27[TS  *size_Mat];
          D27.f[dirREST] = &DD27[dirREST*size_Mat];
-         D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-         D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-         D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
-         D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-         D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-         D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-         D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-         D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
+         D27.f[TNE ] = &DD27[BSW *size_Mat];
+         D27.f[TSW ] = &DD27[BNE *size_Mat];
+         D27.f[TSE ] = &DD27[BNW *size_Mat];
+         D27.f[TNW ] = &DD27[BSE *size_Mat];
+         D27.f[BNE ] = &DD27[TSW *size_Mat];
+         D27.f[BSW ] = &DD27[TNE *size_Mat];
+         D27.f[BSE ] = &DD27[TNW *size_Mat];
+         D27.f[BNW ] = &DD27[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -6646,58 +6646,58 @@ extern "C" __global__ void QADPressIncomp27(
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       real q;
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirW  ])[kw  ]= -feqW27_W  + c2o1 * c2o27  * TempD;
-      q = q_dirW[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirE  ])[ke  ]= -feqW27_E  + c2o1 * c2o27  * TempD;
-      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirS  ])[ks  ]= -feqW27_S  + c2o1 * c2o27  * TempD;
-      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirN  ])[kn  ]= -feqW27_N  + c2o1 * c2o27  * TempD;
-      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirB  ])[kb  ]= -feqW27_B  + c2o1 * c2o27  * TempD;
-      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1) (D27.f[dirT  ])[kt  ]= -feqW27_T  + c2o1 * c2o27  * TempD;
-      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirSW ])[ksw ]= -feqW27_SW + c2o1 * c1o54  * TempD;
-      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirNE ])[kne ]= -feqW27_NE + c2o1 * c1o54  * TempD;
-      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirNW ])[knw ]= -feqW27_NW + c2o1 * c1o54  * TempD;
-      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirSE ])[kse ]= -feqW27_SE + c2o1 * c1o54  * TempD;
-      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBW ])[kbw ]= -feqW27_BW + c2o1 * c1o54  * TempD;
-      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTE ])[kte ]= -feqW27_TE + c2o1 * c1o54  * TempD;
-      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTW ])[ktw ]= -feqW27_TW + c2o1 * c1o54  * TempD;
-      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBE ])[kbe ]= -feqW27_BE + c2o1 * c1o54  * TempD;
-      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBS ])[kbs ]= -feqW27_BS + c2o1 * c1o54  * TempD;
-      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTN ])[ktn ]= -feqW27_TN + c2o1 * c1o54  * TempD;
-      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirTS ])[kts ]= -feqW27_TS + c2o1 * c1o54  * TempD;
-      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[dirBN ])[kbn ]= -feqW27_BN + c2o1 * c1o54  * TempD;
-      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSW])[kbsw]= -feqW27_BSW+ c2o1 * c1o216 * TempD;
-      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNE])[ktne]= -feqW27_TNE+ c2o1 * c1o216 * TempD;
-      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSW])[ktsw]= -feqW27_TSW+ c2o1 * c1o216 * TempD;
-      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNE])[kbne]= -feqW27_BNE+ c2o1 * c1o216 * TempD;
-      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBNW])[kbnw]= -feqW27_BNW+ c2o1 * c1o216 * TempD;
-      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTSE])[ktse]= -feqW27_TSE+ c2o1 * c1o216 * TempD;
-      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirTNW])[ktnw]= -feqW27_TNW+ c2o1 * c1o216 * TempD;
-      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dirBSE])[kbse]= -feqW27_BSE+ c2o1 * c1o216 * TempD;
-      //q = q_dirE[k];   if (q>=zero && q<=one) (D27.f[dirW  ])[kw  ]=(two*feqW27_W  -(f27_E  *(q*omegaD-one)-omegaD*feq27_E  *(q-one))/(omegaD-one)+f27_W  *q)/(q+one);
-      //q = q_dirW[k];   if (q>=zero && q<=one) (D27.f[dirE  ])[ke  ]=(two*feqW27_E  -(f27_W  *(q*omegaD-one)-omegaD*feq27_W  *(q-one))/(omegaD-one)+f27_E  *q)/(q+one);
-      //q = q_dirN[k];   if (q>=zero && q<=one) (D27.f[dirS  ])[ks  ]=(two*feqW27_S  -(f27_N  *(q*omegaD-one)-omegaD*feq27_N  *(q-one))/(omegaD-one)+f27_S  *q)/(q+one);
-      //q = q_dirS[k];   if (q>=zero && q<=one) (D27.f[dirN  ])[kn  ]=(two*feqW27_N  -(f27_S  *(q*omegaD-one)-omegaD*feq27_S  *(q-one))/(omegaD-one)+f27_N  *q)/(q+one);
-      //q = q_dirT[k];   if (q>=zero && q<=one) (D27.f[dirB  ])[kb  ]=(two*feqW27_B  -(f27_T  *(q*omegaD-one)-omegaD*feq27_T  *(q-one))/(omegaD-one)+f27_B  *q)/(q+one);
-      //q = q_dirB[k];   if (q>=zero && q<=one) (D27.f[dirT  ])[kt  ]=(two*feqW27_T  -(f27_B  *(q*omegaD-one)-omegaD*feq27_B  *(q-one))/(omegaD-one)+f27_T  *q)/(q+one);
-      //q = q_dirNE[k];  if (q>=zero && q<=one) (D27.f[dirSW ])[ksw ]=(two*feqW27_SW -(f27_NE *(q*omegaD-one)-omegaD*feq27_NE *(q-one))/(omegaD-one)+f27_SW *q)/(q+one);
-      //q = q_dirSW[k];  if (q>=zero && q<=one) (D27.f[dirNE ])[kne ]=(two*feqW27_NE -(f27_SW *(q*omegaD-one)-omegaD*feq27_SW *(q-one))/(omegaD-one)+f27_NE *q)/(q+one);
-      //q = q_dirSE[k];  if (q>=zero && q<=one) (D27.f[dirNW ])[knw ]=(two*feqW27_NW -(f27_SE *(q*omegaD-one)-omegaD*feq27_SE *(q-one))/(omegaD-one)+f27_NW *q)/(q+one);
-      //q = q_dirNW[k];  if (q>=zero && q<=one) (D27.f[dirSE ])[kse ]=(two*feqW27_SE -(f27_NW *(q*omegaD-one)-omegaD*feq27_NW *(q-one))/(omegaD-one)+f27_SE *q)/(q+one);
-      //q = q_dirTE[k];  if (q>=zero && q<=one) (D27.f[dirBW ])[kbw ]=(two*feqW27_BW -(f27_TE *(q*omegaD-one)-omegaD*feq27_TE *(q-one))/(omegaD-one)+f27_BW *q)/(q+one);
-      //q = q_dirBW[k];  if (q>=zero && q<=one) (D27.f[dirTE ])[kte ]=(two*feqW27_TE -(f27_BW *(q*omegaD-one)-omegaD*feq27_BW *(q-one))/(omegaD-one)+f27_TE *q)/(q+one);
-      //q = q_dirBE[k];  if (q>=zero && q<=one) (D27.f[dirTW ])[ktw ]=(two*feqW27_TW -(f27_BE *(q*omegaD-one)-omegaD*feq27_BE *(q-one))/(omegaD-one)+f27_TW *q)/(q+one);
-      //q = q_dirTW[k];  if (q>=zero && q<=one) (D27.f[dirBE ])[kbe ]=(two*feqW27_BE -(f27_TW *(q*omegaD-one)-omegaD*feq27_TW *(q-one))/(omegaD-one)+f27_BE *q)/(q+one);
-      //q = q_dirTN[k];  if (q>=zero && q<=one) (D27.f[dirBS ])[kbs ]=(two*feqW27_BS -(f27_TN *(q*omegaD-one)-omegaD*feq27_TN *(q-one))/(omegaD-one)+f27_BS *q)/(q+one);
-      //q = q_dirBS[k];  if (q>=zero && q<=one) (D27.f[dirTN ])[ktn ]=(two*feqW27_TN -(f27_BS *(q*omegaD-one)-omegaD*feq27_BS *(q-one))/(omegaD-one)+f27_TN *q)/(q+one);
-      //q = q_dirBN[k];  if (q>=zero && q<=one) (D27.f[dirTS ])[kts ]=(two*feqW27_TS -(f27_BN *(q*omegaD-one)-omegaD*feq27_BN *(q-one))/(omegaD-one)+f27_TS *q)/(q+one);
-      //q = q_dirTS[k];  if (q>=zero && q<=one) (D27.f[dirBN ])[kbn ]=(two*feqW27_BN -(f27_TS *(q*omegaD-one)-omegaD*feq27_TS *(q-one))/(omegaD-one)+f27_BN *q)/(q+one);
-      //q = q_dirTNE[k]; if (q>=zero && q<=one) (D27.f[dirBSW])[kbsw]=(two*feqW27_BSW-(f27_TNE*(q*omegaD-one)-omegaD*feq27_TNE*(q-one))/(omegaD-one)+f27_BSW*q)/(q+one);
-      //q = q_dirBSW[k]; if (q>=zero && q<=one) (D27.f[dirTNE])[ktne]=(two*feqW27_TNE-(f27_BSW*(q*omegaD-one)-omegaD*feq27_BSW*(q-one))/(omegaD-one)+f27_TNE*q)/(q+one);
-      //q = q_dirBNE[k]; if (q>=zero && q<=one) (D27.f[dirTSW])[ktsw]=(two*feqW27_TSW-(f27_BNE*(q*omegaD-one)-omegaD*feq27_BNE*(q-one))/(omegaD-one)+f27_TSW*q)/(q+one);
-      //q = q_dirTSW[k]; if (q>=zero && q<=one) (D27.f[dirBNE])[kbne]=(two*feqW27_BNE-(f27_TSW*(q*omegaD-one)-omegaD*feq27_TSW*(q-one))/(omegaD-one)+f27_BNE*q)/(q+one);
-      //q = q_dirTSE[k]; if (q>=zero && q<=one) (D27.f[dirBNW])[kbnw]=(two*feqW27_BNW-(f27_TSE*(q*omegaD-one)-omegaD*feq27_TSE*(q-one))/(omegaD-one)+f27_BNW*q)/(q+one);
-      //q = q_dirBNW[k]; if (q>=zero && q<=one) (D27.f[dirTSE])[ktse]=(two*feqW27_TSE-(f27_BNW*(q*omegaD-one)-omegaD*feq27_BNW*(q-one))/(omegaD-one)+f27_TSE*q)/(q+one);
-      //q = q_dirBSE[k]; if (q>=zero && q<=one) (D27.f[dirTNW])[ktnw]=(two*feqW27_TNW-(f27_BSE*(q*omegaD-one)-omegaD*feq27_BSE*(q-one))/(omegaD-one)+f27_TNW*q)/(q+one);
-      //q = q_dirTNW[k]; if (q>=zero && q<=one) (D27.f[dirBSE])[kbse]=(two*feqW27_BSE-(f27_TNW*(q*omegaD-one)-omegaD*feq27_TNW*(q-one))/(omegaD-one)+f27_BSE*q)/(q+one);
+      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1) (D27.f[W  ])[kw  ]= -feqW27_W  + c2o1 * c2o27  * TempD;
+      q = q_dirW[k];   if (q>=c0o1 && q<=c1o1) (D27.f[E  ])[ke  ]= -feqW27_E  + c2o1 * c2o27  * TempD;
+      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1) (D27.f[S  ])[ks  ]= -feqW27_S  + c2o1 * c2o27  * TempD;
+      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1) (D27.f[N  ])[kn  ]= -feqW27_N  + c2o1 * c2o27  * TempD;
+      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1) (D27.f[B  ])[kb  ]= -feqW27_B  + c2o1 * c2o27  * TempD;
+      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1) (D27.f[T  ])[kt  ]= -feqW27_T  + c2o1 * c2o27  * TempD;
+      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[SW ])[ksw ]= -feqW27_SW + c2o1 * c1o54  * TempD;
+      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[NE ])[kne ]= -feqW27_NE + c2o1 * c1o54  * TempD;
+      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[NW ])[knw ]= -feqW27_NW + c2o1 * c1o54  * TempD;
+      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[SE ])[kse ]= -feqW27_SE + c2o1 * c1o54  * TempD;
+      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BW ])[kbw ]= -feqW27_BW + c2o1 * c1o54  * TempD;
+      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TE ])[kte ]= -feqW27_TE + c2o1 * c1o54  * TempD;
+      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TW ])[ktw ]= -feqW27_TW + c2o1 * c1o54  * TempD;
+      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BE ])[kbe ]= -feqW27_BE + c2o1 * c1o54  * TempD;
+      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BS ])[kbs ]= -feqW27_BS + c2o1 * c1o54  * TempD;
+      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TN ])[ktn ]= -feqW27_TN + c2o1 * c1o54  * TempD;
+      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1) (D27.f[TS ])[kts ]= -feqW27_TS + c2o1 * c1o54  * TempD;
+      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1) (D27.f[BN ])[kbn ]= -feqW27_BN + c2o1 * c1o54  * TempD;
+      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BSW])[kbsw]= -feqW27_BSW+ c2o1 * c1o216 * TempD;
+      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TNE])[ktne]= -feqW27_TNE+ c2o1 * c1o216 * TempD;
+      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TSW])[ktsw]= -feqW27_TSW+ c2o1 * c1o216 * TempD;
+      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BNE])[kbne]= -feqW27_BNE+ c2o1 * c1o216 * TempD;
+      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BNW])[kbnw]= -feqW27_BNW+ c2o1 * c1o216 * TempD;
+      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TSE])[ktse]= -feqW27_TSE+ c2o1 * c1o216 * TempD;
+      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[TNW])[ktnw]= -feqW27_TNW+ c2o1 * c1o216 * TempD;
+      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[BSE])[kbse]= -feqW27_BSE+ c2o1 * c1o216 * TempD;
+      //q = q_dirE[k];   if (q>=zero && q<=one) (D27.f[W  ])[kw  ]=(two*feqW27_W  -(f27_E  *(q*omegaD-one)-omegaD*feq27_E  *(q-one))/(omegaD-one)+f27_W  *q)/(q+one);
+      //q = q_dirW[k];   if (q>=zero && q<=one) (D27.f[E  ])[ke  ]=(two*feqW27_E  -(f27_W  *(q*omegaD-one)-omegaD*feq27_W  *(q-one))/(omegaD-one)+f27_E  *q)/(q+one);
+      //q = q_dirN[k];   if (q>=zero && q<=one) (D27.f[S  ])[ks  ]=(two*feqW27_S  -(f27_N  *(q*omegaD-one)-omegaD*feq27_N  *(q-one))/(omegaD-one)+f27_S  *q)/(q+one);
+      //q = q_dirS[k];   if (q>=zero && q<=one) (D27.f[N  ])[kn  ]=(two*feqW27_N  -(f27_S  *(q*omegaD-one)-omegaD*feq27_S  *(q-one))/(omegaD-one)+f27_N  *q)/(q+one);
+      //q = q_dirT[k];   if (q>=zero && q<=one) (D27.f[B  ])[kb  ]=(two*feqW27_B  -(f27_T  *(q*omegaD-one)-omegaD*feq27_T  *(q-one))/(omegaD-one)+f27_B  *q)/(q+one);
+      //q = q_dirB[k];   if (q>=zero && q<=one) (D27.f[T  ])[kt  ]=(two*feqW27_T  -(f27_B  *(q*omegaD-one)-omegaD*feq27_B  *(q-one))/(omegaD-one)+f27_T  *q)/(q+one);
+      //q = q_dirNE[k];  if (q>=zero && q<=one) (D27.f[SW ])[ksw ]=(two*feqW27_SW -(f27_NE *(q*omegaD-one)-omegaD*feq27_NE *(q-one))/(omegaD-one)+f27_SW *q)/(q+one);
+      //q = q_dirSW[k];  if (q>=zero && q<=one) (D27.f[NE ])[kne ]=(two*feqW27_NE -(f27_SW *(q*omegaD-one)-omegaD*feq27_SW *(q-one))/(omegaD-one)+f27_NE *q)/(q+one);
+      //q = q_dirSE[k];  if (q>=zero && q<=one) (D27.f[NW ])[knw ]=(two*feqW27_NW -(f27_SE *(q*omegaD-one)-omegaD*feq27_SE *(q-one))/(omegaD-one)+f27_NW *q)/(q+one);
+      //q = q_dirNW[k];  if (q>=zero && q<=one) (D27.f[SE ])[kse ]=(two*feqW27_SE -(f27_NW *(q*omegaD-one)-omegaD*feq27_NW *(q-one))/(omegaD-one)+f27_SE *q)/(q+one);
+      //q = q_dirTE[k];  if (q>=zero && q<=one) (D27.f[BW ])[kbw ]=(two*feqW27_BW -(f27_TE *(q*omegaD-one)-omegaD*feq27_TE *(q-one))/(omegaD-one)+f27_BW *q)/(q+one);
+      //q = q_dirBW[k];  if (q>=zero && q<=one) (D27.f[TE ])[kte ]=(two*feqW27_TE -(f27_BW *(q*omegaD-one)-omegaD*feq27_BW *(q-one))/(omegaD-one)+f27_TE *q)/(q+one);
+      //q = q_dirBE[k];  if (q>=zero && q<=one) (D27.f[TW ])[ktw ]=(two*feqW27_TW -(f27_BE *(q*omegaD-one)-omegaD*feq27_BE *(q-one))/(omegaD-one)+f27_TW *q)/(q+one);
+      //q = q_dirTW[k];  if (q>=zero && q<=one) (D27.f[BE ])[kbe ]=(two*feqW27_BE -(f27_TW *(q*omegaD-one)-omegaD*feq27_TW *(q-one))/(omegaD-one)+f27_BE *q)/(q+one);
+      //q = q_dirTN[k];  if (q>=zero && q<=one) (D27.f[BS ])[kbs ]=(two*feqW27_BS -(f27_TN *(q*omegaD-one)-omegaD*feq27_TN *(q-one))/(omegaD-one)+f27_BS *q)/(q+one);
+      //q = q_dirBS[k];  if (q>=zero && q<=one) (D27.f[TN ])[ktn ]=(two*feqW27_TN -(f27_BS *(q*omegaD-one)-omegaD*feq27_BS *(q-one))/(omegaD-one)+f27_TN *q)/(q+one);
+      //q = q_dirBN[k];  if (q>=zero && q<=one) (D27.f[TS ])[kts ]=(two*feqW27_TS -(f27_BN *(q*omegaD-one)-omegaD*feq27_BN *(q-one))/(omegaD-one)+f27_TS *q)/(q+one);
+      //q = q_dirTS[k];  if (q>=zero && q<=one) (D27.f[BN ])[kbn ]=(two*feqW27_BN -(f27_TS *(q*omegaD-one)-omegaD*feq27_TS *(q-one))/(omegaD-one)+f27_BN *q)/(q+one);
+      //q = q_dirTNE[k]; if (q>=zero && q<=one) (D27.f[BSW])[kbsw]=(two*feqW27_BSW-(f27_TNE*(q*omegaD-one)-omegaD*feq27_TNE*(q-one))/(omegaD-one)+f27_BSW*q)/(q+one);
+      //q = q_dirBSW[k]; if (q>=zero && q<=one) (D27.f[TNE])[ktne]=(two*feqW27_TNE-(f27_BSW*(q*omegaD-one)-omegaD*feq27_BSW*(q-one))/(omegaD-one)+f27_TNE*q)/(q+one);
+      //q = q_dirBNE[k]; if (q>=zero && q<=one) (D27.f[TSW])[ktsw]=(two*feqW27_TSW-(f27_BNE*(q*omegaD-one)-omegaD*feq27_BNE*(q-one))/(omegaD-one)+f27_TSW*q)/(q+one);
+      //q = q_dirTSW[k]; if (q>=zero && q<=one) (D27.f[BNE])[kbne]=(two*feqW27_BNE-(f27_TSW*(q*omegaD-one)-omegaD*feq27_TSW*(q-one))/(omegaD-one)+f27_BNE*q)/(q+one);
+      //q = q_dirTSE[k]; if (q>=zero && q<=one) (D27.f[BNW])[kbnw]=(two*feqW27_BNW-(f27_TSE*(q*omegaD-one)-omegaD*feq27_TSE*(q-one))/(omegaD-one)+f27_BNW*q)/(q+one);
+      //q = q_dirBNW[k]; if (q>=zero && q<=one) (D27.f[TSE])[ktse]=(two*feqW27_TSE-(f27_BNW*(q*omegaD-one)-omegaD*feq27_BNW*(q-one))/(omegaD-one)+f27_TSE*q)/(q+one);
+      //q = q_dirBSE[k]; if (q>=zero && q<=one) (D27.f[TNW])[ktnw]=(two*feqW27_TNW-(f27_BSE*(q*omegaD-one)-omegaD*feq27_BSE*(q-one))/(omegaD-one)+f27_TNW*q)/(q+one);
+      //q = q_dirTNW[k]; if (q>=zero && q<=one) (D27.f[BSE])[kbse]=(two*feqW27_BSE-(f27_TNW*(q*omegaD-one)-omegaD*feq27_TNW*(q-one))/(omegaD-one)+f27_BSE*q)/(q+one);
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -6746,125 +6746,125 @@ extern "C" __global__ void AD_SlipVelDeviceComp(
     Distributions27 D;
     if (isEvenTimestep)
     {
-        D.f[dirE   ] = &distributions[dirE    * size_Mat];
-        D.f[dirW   ] = &distributions[dirW    * size_Mat];
-        D.f[dirN   ] = &distributions[dirN    * size_Mat];
-        D.f[dirS   ] = &distributions[dirS    * size_Mat];
-        D.f[dirT   ] = &distributions[dirT    * size_Mat];
-        D.f[dirB   ] = &distributions[dirB    * size_Mat];
-        D.f[dirNE  ] = &distributions[dirNE   * size_Mat];
-        D.f[dirSW  ] = &distributions[dirSW   * size_Mat];
-        D.f[dirSE  ] = &distributions[dirSE   * size_Mat];
-        D.f[dirNW  ] = &distributions[dirNW   * size_Mat];
-        D.f[dirTE  ] = &distributions[dirTE   * size_Mat];
-        D.f[dirBW  ] = &distributions[dirBW   * size_Mat];
-        D.f[dirBE  ] = &distributions[dirBE   * size_Mat];
-        D.f[dirTW  ] = &distributions[dirTW   * size_Mat];
-        D.f[dirTN  ] = &distributions[dirTN   * size_Mat];
-        D.f[dirBS  ] = &distributions[dirBS   * size_Mat];
-        D.f[dirBN  ] = &distributions[dirBN   * size_Mat];
-        D.f[dirTS  ] = &distributions[dirTS   * size_Mat];
+        D.f[E   ] = &distributions[E    * size_Mat];
+        D.f[W   ] = &distributions[W    * size_Mat];
+        D.f[N   ] = &distributions[N    * size_Mat];
+        D.f[S   ] = &distributions[S    * size_Mat];
+        D.f[T   ] = &distributions[T    * size_Mat];
+        D.f[B   ] = &distributions[B    * size_Mat];
+        D.f[NE  ] = &distributions[NE   * size_Mat];
+        D.f[SW  ] = &distributions[SW   * size_Mat];
+        D.f[SE  ] = &distributions[SE   * size_Mat];
+        D.f[NW  ] = &distributions[NW   * size_Mat];
+        D.f[TE  ] = &distributions[TE   * size_Mat];
+        D.f[BW  ] = &distributions[BW   * size_Mat];
+        D.f[BE  ] = &distributions[BE   * size_Mat];
+        D.f[TW  ] = &distributions[TW   * size_Mat];
+        D.f[TN  ] = &distributions[TN   * size_Mat];
+        D.f[BS  ] = &distributions[BS   * size_Mat];
+        D.f[BN  ] = &distributions[BN   * size_Mat];
+        D.f[TS  ] = &distributions[TS   * size_Mat];
         D.f[dirREST] = &distributions[dirREST * size_Mat];
-        D.f[dirTNE ] = &distributions[dirTNE  * size_Mat];
-        D.f[dirTSW ] = &distributions[dirTSW  * size_Mat];
-        D.f[dirTSE ] = &distributions[dirTSE  * size_Mat];
-        D.f[dirTNW ] = &distributions[dirTNW  * size_Mat];
-        D.f[dirBNE ] = &distributions[dirBNE  * size_Mat];
-        D.f[dirBSW ] = &distributions[dirBSW  * size_Mat];
-        D.f[dirBSE ] = &distributions[dirBSE  * size_Mat];
-        D.f[dirBNW ] = &distributions[dirBNW  * size_Mat];
+        D.f[TNE ] = &distributions[TNE  * size_Mat];
+        D.f[TSW ] = &distributions[TSW  * size_Mat];
+        D.f[TSE ] = &distributions[TSE  * size_Mat];
+        D.f[TNW ] = &distributions[TNW  * size_Mat];
+        D.f[BNE ] = &distributions[BNE  * size_Mat];
+        D.f[BSW ] = &distributions[BSW  * size_Mat];
+        D.f[BSE ] = &distributions[BSE  * size_Mat];
+        D.f[BNW ] = &distributions[BNW  * size_Mat];
     }
     else
     {
-        D.f[dirW   ] = &distributions[dirE    * size_Mat];
-        D.f[dirE   ] = &distributions[dirW    * size_Mat];
-        D.f[dirS   ] = &distributions[dirN    * size_Mat];
-        D.f[dirN   ] = &distributions[dirS    * size_Mat];
-        D.f[dirB   ] = &distributions[dirT    * size_Mat];
-        D.f[dirT   ] = &distributions[dirB    * size_Mat];
-        D.f[dirSW  ] = &distributions[dirNE   * size_Mat];
-        D.f[dirNE  ] = &distributions[dirSW   * size_Mat];
-        D.f[dirNW  ] = &distributions[dirSE   * size_Mat];
-        D.f[dirSE  ] = &distributions[dirNW   * size_Mat];
-        D.f[dirBW  ] = &distributions[dirTE   * size_Mat];
-        D.f[dirTE  ] = &distributions[dirBW   * size_Mat];
-        D.f[dirTW  ] = &distributions[dirBE   * size_Mat];
-        D.f[dirBE  ] = &distributions[dirTW   * size_Mat];
-        D.f[dirBS  ] = &distributions[dirTN   * size_Mat];
-        D.f[dirTN  ] = &distributions[dirBS   * size_Mat];
-        D.f[dirTS  ] = &distributions[dirBN   * size_Mat];
-        D.f[dirBN  ] = &distributions[dirTS   * size_Mat];
+        D.f[W   ] = &distributions[E    * size_Mat];
+        D.f[E   ] = &distributions[W    * size_Mat];
+        D.f[S   ] = &distributions[N    * size_Mat];
+        D.f[N   ] = &distributions[S    * size_Mat];
+        D.f[B   ] = &distributions[T    * size_Mat];
+        D.f[T   ] = &distributions[B    * size_Mat];
+        D.f[SW  ] = &distributions[NE   * size_Mat];
+        D.f[NE  ] = &distributions[SW   * size_Mat];
+        D.f[NW  ] = &distributions[SE   * size_Mat];
+        D.f[SE  ] = &distributions[NW   * size_Mat];
+        D.f[BW  ] = &distributions[TE   * size_Mat];
+        D.f[TE  ] = &distributions[BW   * size_Mat];
+        D.f[TW  ] = &distributions[BE   * size_Mat];
+        D.f[BE  ] = &distributions[TW   * size_Mat];
+        D.f[BS  ] = &distributions[TN   * size_Mat];
+        D.f[TN  ] = &distributions[BS   * size_Mat];
+        D.f[TS  ] = &distributions[BN   * size_Mat];
+        D.f[BN  ] = &distributions[TS   * size_Mat];
         D.f[dirREST] = &distributions[dirREST * size_Mat];
-        D.f[dirTNE ] = &distributions[dirBSW  * size_Mat];
-        D.f[dirTSW ] = &distributions[dirBNE  * size_Mat];
-        D.f[dirTSE ] = &distributions[dirBNW  * size_Mat];
-        D.f[dirTNW ] = &distributions[dirBSE  * size_Mat];
-        D.f[dirBNE ] = &distributions[dirTSW  * size_Mat];
-        D.f[dirBSW ] = &distributions[dirTNE  * size_Mat];
-        D.f[dirBSE ] = &distributions[dirTNW  * size_Mat];
-        D.f[dirBNW ] = &distributions[dirTSE  * size_Mat];
+        D.f[TNE ] = &distributions[BSW  * size_Mat];
+        D.f[TSW ] = &distributions[BNE  * size_Mat];
+        D.f[TSE ] = &distributions[BNW  * size_Mat];
+        D.f[TNW ] = &distributions[BSE  * size_Mat];
+        D.f[BNE ] = &distributions[TSW  * size_Mat];
+        D.f[BSW ] = &distributions[TNE  * size_Mat];
+        D.f[BSE ] = &distributions[TNW  * size_Mat];
+        D.f[BNW ] = &distributions[TSE  * size_Mat];
     }
     ////////////////////////////////////////////////////////////////////////////////
     Distributions27 DAD;
     if (isEvenTimestep)
     {
-        DAD.f[dirE   ] = &distributionsAD[dirE    * size_Mat];
-        DAD.f[dirW   ] = &distributionsAD[dirW    * size_Mat];
-        DAD.f[dirN   ] = &distributionsAD[dirN    * size_Mat];
-        DAD.f[dirS   ] = &distributionsAD[dirS    * size_Mat];
-        DAD.f[dirT   ] = &distributionsAD[dirT    * size_Mat];
-        DAD.f[dirB   ] = &distributionsAD[dirB    * size_Mat];
-        DAD.f[dirNE  ] = &distributionsAD[dirNE   * size_Mat];
-        DAD.f[dirSW  ] = &distributionsAD[dirSW   * size_Mat];
-        DAD.f[dirSE  ] = &distributionsAD[dirSE   * size_Mat];
-        DAD.f[dirNW  ] = &distributionsAD[dirNW   * size_Mat];
-        DAD.f[dirTE  ] = &distributionsAD[dirTE   * size_Mat];
-        DAD.f[dirBW  ] = &distributionsAD[dirBW   * size_Mat];
-        DAD.f[dirBE  ] = &distributionsAD[dirBE   * size_Mat];
-        DAD.f[dirTW  ] = &distributionsAD[dirTW   * size_Mat];
-        DAD.f[dirTN  ] = &distributionsAD[dirTN   * size_Mat];
-        DAD.f[dirBS  ] = &distributionsAD[dirBS   * size_Mat];
-        DAD.f[dirBN  ] = &distributionsAD[dirBN   * size_Mat];
-        DAD.f[dirTS  ] = &distributionsAD[dirTS   * size_Mat];
+        DAD.f[E   ] = &distributionsAD[E    * size_Mat];
+        DAD.f[W   ] = &distributionsAD[W    * size_Mat];
+        DAD.f[N   ] = &distributionsAD[N    * size_Mat];
+        DAD.f[S   ] = &distributionsAD[S    * size_Mat];
+        DAD.f[T   ] = &distributionsAD[T    * size_Mat];
+        DAD.f[B   ] = &distributionsAD[B    * size_Mat];
+        DAD.f[NE  ] = &distributionsAD[NE   * size_Mat];
+        DAD.f[SW  ] = &distributionsAD[SW   * size_Mat];
+        DAD.f[SE  ] = &distributionsAD[SE   * size_Mat];
+        DAD.f[NW  ] = &distributionsAD[NW   * size_Mat];
+        DAD.f[TE  ] = &distributionsAD[TE   * size_Mat];
+        DAD.f[BW  ] = &distributionsAD[BW   * size_Mat];
+        DAD.f[BE  ] = &distributionsAD[BE   * size_Mat];
+        DAD.f[TW  ] = &distributionsAD[TW   * size_Mat];
+        DAD.f[TN  ] = &distributionsAD[TN   * size_Mat];
+        DAD.f[BS  ] = &distributionsAD[BS   * size_Mat];
+        DAD.f[BN  ] = &distributionsAD[BN   * size_Mat];
+        DAD.f[TS  ] = &distributionsAD[TS   * size_Mat];
         DAD.f[dirREST] = &distributionsAD[dirREST * size_Mat];
-        DAD.f[dirTNE ] = &distributionsAD[dirTNE  * size_Mat];
-        DAD.f[dirTSW ] = &distributionsAD[dirTSW  * size_Mat];
-        DAD.f[dirTSE ] = &distributionsAD[dirTSE  * size_Mat];
-        DAD.f[dirTNW ] = &distributionsAD[dirTNW  * size_Mat];
-        DAD.f[dirBNE ] = &distributionsAD[dirBNE  * size_Mat];
-        DAD.f[dirBSW ] = &distributionsAD[dirBSW  * size_Mat];
-        DAD.f[dirBSE ] = &distributionsAD[dirBSE  * size_Mat];
-        DAD.f[dirBNW ] = &distributionsAD[dirBNW  * size_Mat];
+        DAD.f[TNE ] = &distributionsAD[TNE  * size_Mat];
+        DAD.f[TSW ] = &distributionsAD[TSW  * size_Mat];
+        DAD.f[TSE ] = &distributionsAD[TSE  * size_Mat];
+        DAD.f[TNW ] = &distributionsAD[TNW  * size_Mat];
+        DAD.f[BNE ] = &distributionsAD[BNE  * size_Mat];
+        DAD.f[BSW ] = &distributionsAD[BSW  * size_Mat];
+        DAD.f[BSE ] = &distributionsAD[BSE  * size_Mat];
+        DAD.f[BNW ] = &distributionsAD[BNW  * size_Mat];
     }
     else
     {
-        DAD.f[dirW   ] = &distributionsAD[dirE    * size_Mat];
-        DAD.f[dirE   ] = &distributionsAD[dirW    * size_Mat];
-        DAD.f[dirS   ] = &distributionsAD[dirN    * size_Mat];
-        DAD.f[dirN   ] = &distributionsAD[dirS    * size_Mat];
-        DAD.f[dirB   ] = &distributionsAD[dirT    * size_Mat];
-        DAD.f[dirT   ] = &distributionsAD[dirB    * size_Mat];
-        DAD.f[dirSW  ] = &distributionsAD[dirNE   * size_Mat];
-        DAD.f[dirNE  ] = &distributionsAD[dirSW   * size_Mat];
-        DAD.f[dirNW  ] = &distributionsAD[dirSE   * size_Mat];
-        DAD.f[dirSE  ] = &distributionsAD[dirNW   * size_Mat];
-        DAD.f[dirBW  ] = &distributionsAD[dirTE   * size_Mat];
-        DAD.f[dirTE  ] = &distributionsAD[dirBW   * size_Mat];
-        DAD.f[dirTW  ] = &distributionsAD[dirBE   * size_Mat];
-        DAD.f[dirBE  ] = &distributionsAD[dirTW   * size_Mat];
-        DAD.f[dirBS  ] = &distributionsAD[dirTN   * size_Mat];
-        DAD.f[dirTN  ] = &distributionsAD[dirBS   * size_Mat];
-        DAD.f[dirTS  ] = &distributionsAD[dirBN   * size_Mat];
-        DAD.f[dirBN  ] = &distributionsAD[dirTS   * size_Mat];
+        DAD.f[W   ] = &distributionsAD[E    * size_Mat];
+        DAD.f[E   ] = &distributionsAD[W    * size_Mat];
+        DAD.f[S   ] = &distributionsAD[N    * size_Mat];
+        DAD.f[N   ] = &distributionsAD[S    * size_Mat];
+        DAD.f[B   ] = &distributionsAD[T    * size_Mat];
+        DAD.f[T   ] = &distributionsAD[B    * size_Mat];
+        DAD.f[SW  ] = &distributionsAD[NE   * size_Mat];
+        DAD.f[NE  ] = &distributionsAD[SW   * size_Mat];
+        DAD.f[NW  ] = &distributionsAD[SE   * size_Mat];
+        DAD.f[SE  ] = &distributionsAD[NW   * size_Mat];
+        DAD.f[BW  ] = &distributionsAD[TE   * size_Mat];
+        DAD.f[TE  ] = &distributionsAD[BW   * size_Mat];
+        DAD.f[TW  ] = &distributionsAD[BE   * size_Mat];
+        DAD.f[BE  ] = &distributionsAD[TW   * size_Mat];
+        DAD.f[BS  ] = &distributionsAD[TN   * size_Mat];
+        DAD.f[TN  ] = &distributionsAD[BS   * size_Mat];
+        DAD.f[TS  ] = &distributionsAD[BN   * size_Mat];
+        DAD.f[BN  ] = &distributionsAD[TS   * size_Mat];
         DAD.f[dirREST] = &distributionsAD[dirREST * size_Mat];
-        DAD.f[dirTNE ] = &distributionsAD[dirBSW  * size_Mat];
-        DAD.f[dirTSW ] = &distributionsAD[dirBNE  * size_Mat];
-        DAD.f[dirTSE ] = &distributionsAD[dirBNW  * size_Mat];
-        DAD.f[dirTNW ] = &distributionsAD[dirBSE  * size_Mat];
-        DAD.f[dirBNE ] = &distributionsAD[dirTSW  * size_Mat];
-        DAD.f[dirBSW ] = &distributionsAD[dirTNE  * size_Mat];
-        DAD.f[dirBSE ] = &distributionsAD[dirTNW  * size_Mat];
-        DAD.f[dirBNW ] = &distributionsAD[dirTSE  * size_Mat];
+        DAD.f[TNE ] = &distributionsAD[BSW  * size_Mat];
+        DAD.f[TSW ] = &distributionsAD[BNE  * size_Mat];
+        DAD.f[TSE ] = &distributionsAD[BNW  * size_Mat];
+        DAD.f[TNW ] = &distributionsAD[BSE  * size_Mat];
+        DAD.f[BNE ] = &distributionsAD[TSW  * size_Mat];
+        DAD.f[BSW ] = &distributionsAD[TNE  * size_Mat];
+        DAD.f[BSE ] = &distributionsAD[TNW  * size_Mat];
+        DAD.f[BNW ] = &distributionsAD[TSE  * size_Mat];
     }
     ////////////////////////////////////////////////////////////////////////////////
     const unsigned  x = threadIdx.x;  // Globaler x-Index
@@ -6889,32 +6889,32 @@ extern "C" __global__ void AD_SlipVelDeviceComp(
             * q_dirBE, * q_dirTW, * q_dirTN, * q_dirBS, * q_dirBN, * q_dirTS,
             * q_dirTNE, * q_dirTSW, * q_dirTSE, * q_dirTNW, * q_dirBNE, * q_dirBSW,
             * q_dirBSE, * q_dirBNW;
-        q_dirE   = &Qarrays[dirE   * numberOfBCnodes];
-        q_dirW   = &Qarrays[dirW   * numberOfBCnodes];
-        q_dirN   = &Qarrays[dirN   * numberOfBCnodes];
-        q_dirS   = &Qarrays[dirS   * numberOfBCnodes];
-        q_dirT   = &Qarrays[dirT   * numberOfBCnodes];
-        q_dirB   = &Qarrays[dirB   * numberOfBCnodes];
-        q_dirNE  = &Qarrays[dirNE  * numberOfBCnodes];
-        q_dirSW  = &Qarrays[dirSW  * numberOfBCnodes];
-        q_dirSE  = &Qarrays[dirSE  * numberOfBCnodes];
-        q_dirNW  = &Qarrays[dirNW  * numberOfBCnodes];
-        q_dirTE  = &Qarrays[dirTE  * numberOfBCnodes];
-        q_dirBW  = &Qarrays[dirBW  * numberOfBCnodes];
-        q_dirBE  = &Qarrays[dirBE  * numberOfBCnodes];
-        q_dirTW  = &Qarrays[dirTW  * numberOfBCnodes];
-        q_dirTN  = &Qarrays[dirTN  * numberOfBCnodes];
-        q_dirBS  = &Qarrays[dirBS  * numberOfBCnodes];
-        q_dirBN  = &Qarrays[dirBN  * numberOfBCnodes];
-        q_dirTS  = &Qarrays[dirTS  * numberOfBCnodes];
-        q_dirTNE = &Qarrays[dirTNE * numberOfBCnodes];
-        q_dirTSW = &Qarrays[dirTSW * numberOfBCnodes];
-        q_dirTSE = &Qarrays[dirTSE * numberOfBCnodes];
-        q_dirTNW = &Qarrays[dirTNW * numberOfBCnodes];
-        q_dirBNE = &Qarrays[dirBNE * numberOfBCnodes];
-        q_dirBSW = &Qarrays[dirBSW * numberOfBCnodes];
-        q_dirBSE = &Qarrays[dirBSE * numberOfBCnodes];
-        q_dirBNW = &Qarrays[dirBNW * numberOfBCnodes];
+        q_dirE   = &Qarrays[E   * numberOfBCnodes];
+        q_dirW   = &Qarrays[W   * numberOfBCnodes];
+        q_dirN   = &Qarrays[N   * numberOfBCnodes];
+        q_dirS   = &Qarrays[S   * numberOfBCnodes];
+        q_dirT   = &Qarrays[T   * numberOfBCnodes];
+        q_dirB   = &Qarrays[B   * numberOfBCnodes];
+        q_dirNE  = &Qarrays[NE  * numberOfBCnodes];
+        q_dirSW  = &Qarrays[SW  * numberOfBCnodes];
+        q_dirSE  = &Qarrays[SE  * numberOfBCnodes];
+        q_dirNW  = &Qarrays[NW  * numberOfBCnodes];
+        q_dirTE  = &Qarrays[TE  * numberOfBCnodes];
+        q_dirBW  = &Qarrays[BW  * numberOfBCnodes];
+        q_dirBE  = &Qarrays[BE  * numberOfBCnodes];
+        q_dirTW  = &Qarrays[TW  * numberOfBCnodes];
+        q_dirTN  = &Qarrays[TN  * numberOfBCnodes];
+        q_dirBS  = &Qarrays[BS  * numberOfBCnodes];
+        q_dirBN  = &Qarrays[BN  * numberOfBCnodes];
+        q_dirTS  = &Qarrays[TS  * numberOfBCnodes];
+        q_dirTNE = &Qarrays[TNE * numberOfBCnodes];
+        q_dirTSW = &Qarrays[TSW * numberOfBCnodes];
+        q_dirTSE = &Qarrays[TSE * numberOfBCnodes];
+        q_dirTNW = &Qarrays[TNW * numberOfBCnodes];
+        q_dirBNE = &Qarrays[BNE * numberOfBCnodes];
+        q_dirBSW = &Qarrays[BSW * numberOfBCnodes];
+        q_dirBSE = &Qarrays[BSE * numberOfBCnodes];
+        q_dirBNW = &Qarrays[BNW * numberOfBCnodes];
         ////////////////////////////////////////////////////////////////////////////////
         //index
         unsigned int KQK   = QindexArray[k];
@@ -6949,32 +6949,32 @@ extern "C" __global__ void AD_SlipVelDeviceComp(
         real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE,
             f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-        f_W   = (D.f[dirE])[ke];
-        f_E   = (D.f[dirW])[kw];
-        f_S   = (D.f[dirN])[kn];
-        f_N   = (D.f[dirS])[ks];
-        f_B   = (D.f[dirT])[kt];
-        f_T   = (D.f[dirB])[kb];
-        f_SW  = (D.f[dirNE])[kne];
-        f_NE  = (D.f[dirSW])[ksw];
-        f_NW  = (D.f[dirSE])[kse];
-        f_SE  = (D.f[dirNW])[knw];
-        f_BW  = (D.f[dirTE])[kte];
-        f_TE  = (D.f[dirBW])[kbw];
-        f_TW  = (D.f[dirBE])[kbe];
-        f_BE  = (D.f[dirTW])[ktw];
-        f_BS  = (D.f[dirTN])[ktn];
-        f_TN  = (D.f[dirBS])[kbs];
-        f_TS  = (D.f[dirBN])[kbn];
-        f_BN  = (D.f[dirTS])[kts];
-        f_BSW = (D.f[dirTNE])[ktne];
-        f_BNE = (D.f[dirTSW])[ktsw];
-        f_BNW = (D.f[dirTSE])[ktse];
-        f_BSE = (D.f[dirTNW])[ktnw];
-        f_TSW = (D.f[dirBNE])[kbne];
-        f_TNE = (D.f[dirBSW])[kbsw];
-        f_TNW = (D.f[dirBSE])[kbse];
-        f_TSE = (D.f[dirBNW])[kbnw];
+        f_W   = (D.f[E])[ke];
+        f_E   = (D.f[W])[kw];
+        f_S   = (D.f[N])[kn];
+        f_N   = (D.f[S])[ks];
+        f_B   = (D.f[T])[kt];
+        f_T   = (D.f[B])[kb];
+        f_SW  = (D.f[NE])[kne];
+        f_NE  = (D.f[SW])[ksw];
+        f_NW  = (D.f[SE])[kse];
+        f_SE  = (D.f[NW])[knw];
+        f_BW  = (D.f[TE])[kte];
+        f_TE  = (D.f[BW])[kbw];
+        f_TW  = (D.f[BE])[kbe];
+        f_BE  = (D.f[TW])[ktw];
+        f_BS  = (D.f[TN])[ktn];
+        f_TN  = (D.f[BS])[kbs];
+        f_TS  = (D.f[BN])[kbn];
+        f_BN  = (D.f[TS])[kts];
+        f_BSW = (D.f[TNE])[ktne];
+        f_BNE = (D.f[TSW])[ktsw];
+        f_BNW = (D.f[TSE])[ktse];
+        f_BSE = (D.f[TNW])[ktnw];
+        f_TSW = (D.f[BNE])[kbne];
+        f_TNE = (D.f[BSW])[kbsw];
+        f_TNW = (D.f[BSE])[kbse];
+        f_TSE = (D.f[BNW])[kbnw];
         ////////////////////////////////////////////////////////////////////////////////
         real vx1, vx2, vx3, drho, q;
         drho = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -6997,92 +6997,92 @@ extern "C" __global__ void AD_SlipVelDeviceComp(
         real cu_sq = c3o2 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3) * (c1o1 + drho);
 
         ////////////////////////////////////////////////////////////////////////////////
-        f_W   = (DAD.f[dirE])[ke];
-        f_E   = (DAD.f[dirW])[kw];
-        f_S   = (DAD.f[dirN])[kn];
-        f_N   = (DAD.f[dirS])[ks];
-        f_B   = (DAD.f[dirT])[kt];
-        f_T   = (DAD.f[dirB])[kb];
-        f_SW  = (DAD.f[dirNE])[kne];
-        f_NE  = (DAD.f[dirSW])[ksw];
-        f_NW  = (DAD.f[dirSE])[kse];
-        f_SE  = (DAD.f[dirNW])[knw];
-        f_BW  = (DAD.f[dirTE])[kte];
-        f_TE  = (DAD.f[dirBW])[kbw];
-        f_TW  = (DAD.f[dirBE])[kbe];
-        f_BE  = (DAD.f[dirTW])[ktw];
-        f_BS  = (DAD.f[dirTN])[ktn];
-        f_TN  = (DAD.f[dirBS])[kbs];
-        f_TS  = (DAD.f[dirBN])[kbn];
-        f_BN  = (DAD.f[dirTS])[kts];
-        f_BSW = (DAD.f[dirTNE])[ktne];
-        f_BNE = (DAD.f[dirTSW])[ktsw];
-        f_BNW = (DAD.f[dirTSE])[ktse];
-        f_BSE = (DAD.f[dirTNW])[ktnw];
-        f_TSW = (DAD.f[dirBNE])[kbne];
-        f_TNE = (DAD.f[dirBSW])[kbsw];
-        f_TNW = (DAD.f[dirBSE])[kbse];
-        f_TSE = (DAD.f[dirBNW])[kbnw];
+        f_W   = (DAD.f[E])[ke];
+        f_E   = (DAD.f[W])[kw];
+        f_S   = (DAD.f[N])[kn];
+        f_N   = (DAD.f[S])[ks];
+        f_B   = (DAD.f[T])[kt];
+        f_T   = (DAD.f[B])[kb];
+        f_SW  = (DAD.f[NE])[kne];
+        f_NE  = (DAD.f[SW])[ksw];
+        f_NW  = (DAD.f[SE])[kse];
+        f_SE  = (DAD.f[NW])[knw];
+        f_BW  = (DAD.f[TE])[kte];
+        f_TE  = (DAD.f[BW])[kbw];
+        f_TW  = (DAD.f[BE])[kbe];
+        f_BE  = (DAD.f[TW])[ktw];
+        f_BS  = (DAD.f[TN])[ktn];
+        f_TN  = (DAD.f[BS])[kbs];
+        f_TS  = (DAD.f[BN])[kbn];
+        f_BN  = (DAD.f[TS])[kts];
+        f_BSW = (DAD.f[TNE])[ktne];
+        f_BNE = (DAD.f[TSW])[ktsw];
+        f_BNW = (DAD.f[TSE])[ktse];
+        f_BSE = (DAD.f[TNW])[ktnw];
+        f_TSW = (DAD.f[BNE])[kbne];
+        f_TNE = (DAD.f[BSW])[kbsw];
+        f_TNW = (DAD.f[BSE])[kbse];
+        f_TSE = (DAD.f[BNW])[kbnw];
         //////////////////////////////////////////////////////////////////////////
         if (!isEvenTimestep)
         {
-            DAD.f[dirE   ] = &distributionsAD[dirE    * size_Mat];
-            DAD.f[dirW   ] = &distributionsAD[dirW    * size_Mat];
-            DAD.f[dirN   ] = &distributionsAD[dirN    * size_Mat];
-            DAD.f[dirS   ] = &distributionsAD[dirS    * size_Mat];
-            DAD.f[dirT   ] = &distributionsAD[dirT    * size_Mat];
-            DAD.f[dirB   ] = &distributionsAD[dirB    * size_Mat];
-            DAD.f[dirNE  ] = &distributionsAD[dirNE   * size_Mat];
-            DAD.f[dirSW  ] = &distributionsAD[dirSW   * size_Mat];
-            DAD.f[dirSE  ] = &distributionsAD[dirSE   * size_Mat];
-            DAD.f[dirNW  ] = &distributionsAD[dirNW   * size_Mat];
-            DAD.f[dirTE  ] = &distributionsAD[dirTE   * size_Mat];
-            DAD.f[dirBW  ] = &distributionsAD[dirBW   * size_Mat];
-            DAD.f[dirBE  ] = &distributionsAD[dirBE   * size_Mat];
-            DAD.f[dirTW  ] = &distributionsAD[dirTW   * size_Mat];
-            DAD.f[dirTN  ] = &distributionsAD[dirTN   * size_Mat];
-            DAD.f[dirBS  ] = &distributionsAD[dirBS   * size_Mat];
-            DAD.f[dirBN  ] = &distributionsAD[dirBN   * size_Mat];
-            DAD.f[dirTS  ] = &distributionsAD[dirTS   * size_Mat];
+            DAD.f[E   ] = &distributionsAD[E    * size_Mat];
+            DAD.f[W   ] = &distributionsAD[W    * size_Mat];
+            DAD.f[N   ] = &distributionsAD[N    * size_Mat];
+            DAD.f[S   ] = &distributionsAD[S    * size_Mat];
+            DAD.f[T   ] = &distributionsAD[T    * size_Mat];
+            DAD.f[B   ] = &distributionsAD[B    * size_Mat];
+            DAD.f[NE  ] = &distributionsAD[NE   * size_Mat];
+            DAD.f[SW  ] = &distributionsAD[SW   * size_Mat];
+            DAD.f[SE  ] = &distributionsAD[SE   * size_Mat];
+            DAD.f[NW  ] = &distributionsAD[NW   * size_Mat];
+            DAD.f[TE  ] = &distributionsAD[TE   * size_Mat];
+            DAD.f[BW  ] = &distributionsAD[BW   * size_Mat];
+            DAD.f[BE  ] = &distributionsAD[BE   * size_Mat];
+            DAD.f[TW  ] = &distributionsAD[TW   * size_Mat];
+            DAD.f[TN  ] = &distributionsAD[TN   * size_Mat];
+            DAD.f[BS  ] = &distributionsAD[BS   * size_Mat];
+            DAD.f[BN  ] = &distributionsAD[BN   * size_Mat];
+            DAD.f[TS  ] = &distributionsAD[TS   * size_Mat];
             DAD.f[dirREST] = &distributionsAD[dirREST * size_Mat];
-            DAD.f[dirTNE ] = &distributionsAD[dirTNE  * size_Mat];
-            DAD.f[dirTSW ] = &distributionsAD[dirTSW  * size_Mat];
-            DAD.f[dirTSE ] = &distributionsAD[dirTSE  * size_Mat];
-            DAD.f[dirTNW ] = &distributionsAD[dirTNW  * size_Mat];
-            DAD.f[dirBNE ] = &distributionsAD[dirBNE  * size_Mat];
-            DAD.f[dirBSW ] = &distributionsAD[dirBSW  * size_Mat];
-            DAD.f[dirBSE ] = &distributionsAD[dirBSE  * size_Mat];
-            DAD.f[dirBNW ] = &distributionsAD[dirBNW  * size_Mat];
+            DAD.f[TNE ] = &distributionsAD[TNE  * size_Mat];
+            DAD.f[TSW ] = &distributionsAD[TSW  * size_Mat];
+            DAD.f[TSE ] = &distributionsAD[TSE  * size_Mat];
+            DAD.f[TNW ] = &distributionsAD[TNW  * size_Mat];
+            DAD.f[BNE ] = &distributionsAD[BNE  * size_Mat];
+            DAD.f[BSW ] = &distributionsAD[BSW  * size_Mat];
+            DAD.f[BSE ] = &distributionsAD[BSE  * size_Mat];
+            DAD.f[BNW ] = &distributionsAD[BNW  * size_Mat];
         }
         else
         {
-            DAD.f[dirW   ] = &distributionsAD[dirE    * size_Mat];
-            DAD.f[dirE   ] = &distributionsAD[dirW    * size_Mat];
-            DAD.f[dirS   ] = &distributionsAD[dirN    * size_Mat];
-            DAD.f[dirN   ] = &distributionsAD[dirS    * size_Mat];
-            DAD.f[dirB   ] = &distributionsAD[dirT    * size_Mat];
-            DAD.f[dirT   ] = &distributionsAD[dirB    * size_Mat];
-            DAD.f[dirSW  ] = &distributionsAD[dirNE   * size_Mat];
-            DAD.f[dirNE  ] = &distributionsAD[dirSW   * size_Mat];
-            DAD.f[dirNW  ] = &distributionsAD[dirSE   * size_Mat];
-            DAD.f[dirSE  ] = &distributionsAD[dirNW   * size_Mat];
-            DAD.f[dirBW  ] = &distributionsAD[dirTE   * size_Mat];
-            DAD.f[dirTE  ] = &distributionsAD[dirBW   * size_Mat];
-            DAD.f[dirTW  ] = &distributionsAD[dirBE   * size_Mat];
-            DAD.f[dirBE  ] = &distributionsAD[dirTW   * size_Mat];
-            DAD.f[dirBS  ] = &distributionsAD[dirTN   * size_Mat];
-            DAD.f[dirTN  ] = &distributionsAD[dirBS   * size_Mat];
-            DAD.f[dirTS  ] = &distributionsAD[dirBN   * size_Mat];
-            DAD.f[dirBN  ] = &distributionsAD[dirTS   * size_Mat];
+            DAD.f[W   ] = &distributionsAD[E    * size_Mat];
+            DAD.f[E   ] = &distributionsAD[W    * size_Mat];
+            DAD.f[S   ] = &distributionsAD[N    * size_Mat];
+            DAD.f[N   ] = &distributionsAD[S    * size_Mat];
+            DAD.f[B   ] = &distributionsAD[T    * size_Mat];
+            DAD.f[T   ] = &distributionsAD[B    * size_Mat];
+            DAD.f[SW  ] = &distributionsAD[NE   * size_Mat];
+            DAD.f[NE  ] = &distributionsAD[SW   * size_Mat];
+            DAD.f[NW  ] = &distributionsAD[SE   * size_Mat];
+            DAD.f[SE  ] = &distributionsAD[NW   * size_Mat];
+            DAD.f[BW  ] = &distributionsAD[TE   * size_Mat];
+            DAD.f[TE  ] = &distributionsAD[BW   * size_Mat];
+            DAD.f[TW  ] = &distributionsAD[BE   * size_Mat];
+            DAD.f[BE  ] = &distributionsAD[TW   * size_Mat];
+            DAD.f[BS  ] = &distributionsAD[TN   * size_Mat];
+            DAD.f[TN  ] = &distributionsAD[BS   * size_Mat];
+            DAD.f[TS  ] = &distributionsAD[BN   * size_Mat];
+            DAD.f[BN  ] = &distributionsAD[TS   * size_Mat];
             DAD.f[dirREST] = &distributionsAD[dirREST * size_Mat];
-            DAD.f[dirTNE ] = &distributionsAD[dirBSW  * size_Mat];
-            DAD.f[dirTSW ] = &distributionsAD[dirBNE  * size_Mat];
-            DAD.f[dirTSE ] = &distributionsAD[dirBNW  * size_Mat];
-            DAD.f[dirTNW ] = &distributionsAD[dirBSE  * size_Mat];
-            DAD.f[dirBNE ] = &distributionsAD[dirTSW  * size_Mat];
-            DAD.f[dirBSW ] = &distributionsAD[dirTNE  * size_Mat];
-            DAD.f[dirBSE ] = &distributionsAD[dirTNW  * size_Mat];
-            DAD.f[dirBNW ] = &distributionsAD[dirTSE  * size_Mat];
+            DAD.f[TNE ] = &distributionsAD[BSW  * size_Mat];
+            DAD.f[TSW ] = &distributionsAD[BNE  * size_Mat];
+            DAD.f[TSE ] = &distributionsAD[BNW  * size_Mat];
+            DAD.f[TNW ] = &distributionsAD[BSE  * size_Mat];
+            DAD.f[BNE ] = &distributionsAD[TSW  * size_Mat];
+            DAD.f[BSW ] = &distributionsAD[TNE  * size_Mat];
+            DAD.f[BSE ] = &distributionsAD[TNW  * size_Mat];
+            DAD.f[BNW ] = &distributionsAD[TSE  * size_Mat];
         }
         ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
         real concentration =
@@ -7116,32 +7116,32 @@ extern "C" __global__ void AD_SlipVelDeviceComp(
         real jTan3 = jx3 - NormJ * NormZ;
 
         ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-        q = q_dirE[k];   if (q >= c0o1 && q <= c1o1) { (DAD.f[dirW  ])[kw  ] = calcDistributionBC_AD(q, c2o27,   vx1,         cu_sq, f_E,   f_W,   omegaDiffusivity,        jTan1,       concentration); }
-        q = q_dirW[k];   if (q >= c0o1 && q <= c1o1) { (DAD.f[dirE  ])[ke  ] = calcDistributionBC_AD(q, c2o27,  -vx1,         cu_sq, f_W,   f_E,   omegaDiffusivity,       -jTan1,       concentration); }
-        q = q_dirN[k];   if (q >= c0o1 && q <= c1o1) { (DAD.f[dirS  ])[ks  ] = calcDistributionBC_AD(q, c2o27,   vx2,         cu_sq, f_N,   f_S,   omegaDiffusivity,        jTan2,       concentration); }
-        q = q_dirS[k];   if (q >= c0o1 && q <= c1o1) { (DAD.f[dirN  ])[kn  ] = calcDistributionBC_AD(q, c2o27,  -vx2,         cu_sq, f_S,   f_N,   omegaDiffusivity,       -jTan2,       concentration); }
-        q = q_dirT[k];   if (q >= c0o1 && q <= c1o1) { (DAD.f[dirB  ])[kb  ] = calcDistributionBC_AD(q, c2o27,   vx3,         cu_sq, f_T,   f_B,   omegaDiffusivity,        jTan3,       concentration); }
-        q = q_dirB[k];   if (q >= c0o1 && q <= c1o1) { (DAD.f[dirT  ])[kt  ] = calcDistributionBC_AD(q, c2o27,  -vx3,         cu_sq, f_B,   f_T,   omegaDiffusivity,       -jTan3,       concentration); }
-        q = q_dirNE[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[dirSW ])[ksw ] = calcDistributionBC_AD(q, c1o54,   vx1+vx2,     cu_sq, f_NE,  f_SW,  omegaDiffusivity,  jTan1+jTan2,       concentration); }
-        q = q_dirSW[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[dirNE ])[kne ] = calcDistributionBC_AD(q, c1o54,  -vx1-vx2,     cu_sq, f_SW,  f_NE,  omegaDiffusivity, -jTan1-jTan2,       concentration); }
-        q = q_dirSE[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[dirNW ])[knw ] = calcDistributionBC_AD(q, c1o54,   vx1-vx2,     cu_sq, f_SE,  f_NW,  omegaDiffusivity,  jTan1-jTan2,       concentration); }
-        q = q_dirNW[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[dirSE ])[kse ] = calcDistributionBC_AD(q, c1o54,  -vx1+vx2,     cu_sq, f_NW,  f_SE,  omegaDiffusivity, -jTan1+jTan2,       concentration); }
-        q = q_dirTE[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[dirBW ])[kbw ] = calcDistributionBC_AD(q, c1o54,   vx1    +vx3, cu_sq, f_TE,  f_BW,  omegaDiffusivity,  jTan1      +jTan3, concentration); }
-        q = q_dirBW[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[dirTE ])[kte ] = calcDistributionBC_AD(q, c1o54,  -vx1    -vx3, cu_sq, f_BW,  f_TE,  omegaDiffusivity, -jTan1      -jTan3, concentration); }
-        q = q_dirBE[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[dirTW ])[ktw ] = calcDistributionBC_AD(q, c1o54,   vx1    -vx3, cu_sq, f_BE,  f_TW,  omegaDiffusivity,  jTan1      -jTan3, concentration); }
-        q = q_dirTW[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[dirBE ])[kbe ] = calcDistributionBC_AD(q, c1o54,  -vx1    +vx3, cu_sq, f_TW,  f_BE,  omegaDiffusivity, -jTan1      +jTan3, concentration); }
-        q = q_dirTN[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[dirBS ])[kbs ] = calcDistributionBC_AD(q, c1o54,       vx2+vx3, cu_sq, f_TN,  f_BS,  omegaDiffusivity,        jTan2+jTan3, concentration); }
-        q = q_dirBS[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[dirTN ])[ktn ] = calcDistributionBC_AD(q, c1o54,      -vx2-vx3, cu_sq, f_BS,  f_TN,  omegaDiffusivity,       -jTan2-jTan3, concentration); }
-        q = q_dirBN[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[dirTS ])[kts ] = calcDistributionBC_AD(q, c1o54,       vx2-vx3, cu_sq, f_BN,  f_TS,  omegaDiffusivity,        jTan2-jTan3, concentration); }
-        q = q_dirTS[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[dirBN ])[kbn ] = calcDistributionBC_AD(q, c1o54,      -vx2+vx3, cu_sq, f_TS,  f_BN,  omegaDiffusivity,       -jTan2+jTan3, concentration); }
-        q = q_dirTNE[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[dirBSW])[kbsw] = calcDistributionBC_AD(q, c1o216,  vx1+vx2+vx3, cu_sq, f_TNE, f_BSW, omegaDiffusivity,  jTan1+jTan2+jTan3, concentration); }
-        q = q_dirBSW[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[dirTNE])[ktne] = calcDistributionBC_AD(q, c1o216, -vx1-vx2-vx3, cu_sq, f_BSW, f_TNE, omegaDiffusivity, -jTan1-jTan2-jTan3, concentration); }
-        q = q_dirBNE[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[dirTSW])[ktsw] = calcDistributionBC_AD(q, c1o216,  vx1+vx2-vx3, cu_sq, f_BNE, f_TSW, omegaDiffusivity,  jTan1+jTan2-jTan3, concentration); }
-        q = q_dirTSW[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[dirBNE])[kbne] = calcDistributionBC_AD(q, c1o216, -vx1-vx2+vx3, cu_sq, f_TSW, f_BNE, omegaDiffusivity, -jTan1-jTan2+jTan3, concentration); }
-        q = q_dirTSE[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[dirBNW])[kbnw] = calcDistributionBC_AD(q, c1o216,  vx1-vx2+vx3, cu_sq, f_TSE, f_BNW, omegaDiffusivity,  jTan1-jTan2+jTan3, concentration); }
-        q = q_dirBNW[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[dirTSE])[ktse] = calcDistributionBC_AD(q, c1o216, -vx1+vx2-vx3, cu_sq, f_BNW, f_TSE, omegaDiffusivity, -jTan1+jTan2-jTan3, concentration); }
-        q = q_dirBSE[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[dirTNW])[ktnw] = calcDistributionBC_AD(q, c1o216,  vx1-vx2-vx3, cu_sq, f_BSE, f_TNW, omegaDiffusivity,  jTan1-jTan2-jTan3, concentration); }
-        q = q_dirTNW[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[dirBSE])[kbse] = calcDistributionBC_AD(q, c1o216, -vx1+vx2+vx3, cu_sq, f_TNW, f_BSE, omegaDiffusivity, -jTan1+jTan2+jTan3, concentration); }
+        q = q_dirE[k];   if (q >= c0o1 && q <= c1o1) { (DAD.f[W  ])[kw  ] = calcDistributionBC_AD(q, c2o27,   vx1,         cu_sq, f_E,   f_W,   omegaDiffusivity,        jTan1,       concentration); }
+        q = q_dirW[k];   if (q >= c0o1 && q <= c1o1) { (DAD.f[E  ])[ke  ] = calcDistributionBC_AD(q, c2o27,  -vx1,         cu_sq, f_W,   f_E,   omegaDiffusivity,       -jTan1,       concentration); }
+        q = q_dirN[k];   if (q >= c0o1 && q <= c1o1) { (DAD.f[S  ])[ks  ] = calcDistributionBC_AD(q, c2o27,   vx2,         cu_sq, f_N,   f_S,   omegaDiffusivity,        jTan2,       concentration); }
+        q = q_dirS[k];   if (q >= c0o1 && q <= c1o1) { (DAD.f[N  ])[kn  ] = calcDistributionBC_AD(q, c2o27,  -vx2,         cu_sq, f_S,   f_N,   omegaDiffusivity,       -jTan2,       concentration); }
+        q = q_dirT[k];   if (q >= c0o1 && q <= c1o1) { (DAD.f[B  ])[kb  ] = calcDistributionBC_AD(q, c2o27,   vx3,         cu_sq, f_T,   f_B,   omegaDiffusivity,        jTan3,       concentration); }
+        q = q_dirB[k];   if (q >= c0o1 && q <= c1o1) { (DAD.f[T  ])[kt  ] = calcDistributionBC_AD(q, c2o27,  -vx3,         cu_sq, f_B,   f_T,   omegaDiffusivity,       -jTan3,       concentration); }
+        q = q_dirNE[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[SW ])[ksw ] = calcDistributionBC_AD(q, c1o54,   vx1+vx2,     cu_sq, f_NE,  f_SW,  omegaDiffusivity,  jTan1+jTan2,       concentration); }
+        q = q_dirSW[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[NE ])[kne ] = calcDistributionBC_AD(q, c1o54,  -vx1-vx2,     cu_sq, f_SW,  f_NE,  omegaDiffusivity, -jTan1-jTan2,       concentration); }
+        q = q_dirSE[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[NW ])[knw ] = calcDistributionBC_AD(q, c1o54,   vx1-vx2,     cu_sq, f_SE,  f_NW,  omegaDiffusivity,  jTan1-jTan2,       concentration); }
+        q = q_dirNW[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[SE ])[kse ] = calcDistributionBC_AD(q, c1o54,  -vx1+vx2,     cu_sq, f_NW,  f_SE,  omegaDiffusivity, -jTan1+jTan2,       concentration); }
+        q = q_dirTE[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[BW ])[kbw ] = calcDistributionBC_AD(q, c1o54,   vx1    +vx3, cu_sq, f_TE,  f_BW,  omegaDiffusivity,  jTan1      +jTan3, concentration); }
+        q = q_dirBW[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[TE ])[kte ] = calcDistributionBC_AD(q, c1o54,  -vx1    -vx3, cu_sq, f_BW,  f_TE,  omegaDiffusivity, -jTan1      -jTan3, concentration); }
+        q = q_dirBE[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[TW ])[ktw ] = calcDistributionBC_AD(q, c1o54,   vx1    -vx3, cu_sq, f_BE,  f_TW,  omegaDiffusivity,  jTan1      -jTan3, concentration); }
+        q = q_dirTW[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[BE ])[kbe ] = calcDistributionBC_AD(q, c1o54,  -vx1    +vx3, cu_sq, f_TW,  f_BE,  omegaDiffusivity, -jTan1      +jTan3, concentration); }
+        q = q_dirTN[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[BS ])[kbs ] = calcDistributionBC_AD(q, c1o54,       vx2+vx3, cu_sq, f_TN,  f_BS,  omegaDiffusivity,        jTan2+jTan3, concentration); }
+        q = q_dirBS[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[TN ])[ktn ] = calcDistributionBC_AD(q, c1o54,      -vx2-vx3, cu_sq, f_BS,  f_TN,  omegaDiffusivity,       -jTan2-jTan3, concentration); }
+        q = q_dirBN[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[TS ])[kts ] = calcDistributionBC_AD(q, c1o54,       vx2-vx3, cu_sq, f_BN,  f_TS,  omegaDiffusivity,        jTan2-jTan3, concentration); }
+        q = q_dirTS[k];  if (q >= c0o1 && q <= c1o1) { (DAD.f[BN ])[kbn ] = calcDistributionBC_AD(q, c1o54,      -vx2+vx3, cu_sq, f_TS,  f_BN,  omegaDiffusivity,       -jTan2+jTan3, concentration); }
+        q = q_dirTNE[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[BSW])[kbsw] = calcDistributionBC_AD(q, c1o216,  vx1+vx2+vx3, cu_sq, f_TNE, f_BSW, omegaDiffusivity,  jTan1+jTan2+jTan3, concentration); }
+        q = q_dirBSW[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[TNE])[ktne] = calcDistributionBC_AD(q, c1o216, -vx1-vx2-vx3, cu_sq, f_BSW, f_TNE, omegaDiffusivity, -jTan1-jTan2-jTan3, concentration); }
+        q = q_dirBNE[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[TSW])[ktsw] = calcDistributionBC_AD(q, c1o216,  vx1+vx2-vx3, cu_sq, f_BNE, f_TSW, omegaDiffusivity,  jTan1+jTan2-jTan3, concentration); }
+        q = q_dirTSW[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[BNE])[kbne] = calcDistributionBC_AD(q, c1o216, -vx1-vx2+vx3, cu_sq, f_TSW, f_BNE, omegaDiffusivity, -jTan1-jTan2+jTan3, concentration); }
+        q = q_dirTSE[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[BNW])[kbnw] = calcDistributionBC_AD(q, c1o216,  vx1-vx2+vx3, cu_sq, f_TSE, f_BNW, omegaDiffusivity,  jTan1-jTan2+jTan3, concentration); }
+        q = q_dirBNW[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[TSE])[ktse] = calcDistributionBC_AD(q, c1o216, -vx1+vx2-vx3, cu_sq, f_BNW, f_TSE, omegaDiffusivity, -jTan1+jTan2-jTan3, concentration); }
+        q = q_dirBSE[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[TNW])[ktnw] = calcDistributionBC_AD(q, c1o216,  vx1-vx2-vx3, cu_sq, f_BSE, f_TNW, omegaDiffusivity,  jTan1-jTan2-jTan3, concentration); }
+        q = q_dirTNW[k]; if (q >= c0o1 && q <= c1o1) { (DAD.f[BSE])[kbse] = calcDistributionBC_AD(q, c1o216, -vx1+vx2+vx3, cu_sq, f_TNW, f_BSE, omegaDiffusivity, -jTan1+jTan2+jTan3, concentration); }
         ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     }
 }
diff --git a/src/gpu/VirtualFluids_GPU/GPU/CP27.cu b/src/gpu/VirtualFluids_GPU/GPU/CP27.cu
index 2cceb3401..32b2df908 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/CP27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/CP27.cu
@@ -19,63 +19,63 @@ extern "C" __global__ void CalcCP27(real* DD,
 	Distributions27 D;
 	if (isEvenTimestep==true)
 	{
-		D.f[dirE   ] = &DD[dirE   *size_Mat];
-		D.f[dirW   ] = &DD[dirW   *size_Mat];
-		D.f[dirN   ] = &DD[dirN   *size_Mat];
-		D.f[dirS   ] = &DD[dirS   *size_Mat];
-		D.f[dirT   ] = &DD[dirT   *size_Mat];
-		D.f[dirB   ] = &DD[dirB   *size_Mat];
-		D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-		D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-		D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-		D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-		D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-		D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-		D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-		D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-		D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-		D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-		D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-		D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+		D.f[E   ] = &DD[E   *size_Mat];
+		D.f[W   ] = &DD[W   *size_Mat];
+		D.f[N   ] = &DD[N   *size_Mat];
+		D.f[S   ] = &DD[S   *size_Mat];
+		D.f[T   ] = &DD[T   *size_Mat];
+		D.f[B   ] = &DD[B   *size_Mat];
+		D.f[NE  ] = &DD[NE  *size_Mat];
+		D.f[SW  ] = &DD[SW  *size_Mat];
+		D.f[SE  ] = &DD[SE  *size_Mat];
+		D.f[NW  ] = &DD[NW  *size_Mat];
+		D.f[TE  ] = &DD[TE  *size_Mat];
+		D.f[BW  ] = &DD[BW  *size_Mat];
+		D.f[BE  ] = &DD[BE  *size_Mat];
+		D.f[TW  ] = &DD[TW  *size_Mat];
+		D.f[TN  ] = &DD[TN  *size_Mat];
+		D.f[BS  ] = &DD[BS  *size_Mat];
+		D.f[BN  ] = &DD[BN  *size_Mat];
+		D.f[TS  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-		D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-		D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-		D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-		D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-		D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+		D.f[TNE ] = &DD[TNE *size_Mat];
+		D.f[TSW ] = &DD[TSW *size_Mat];
+		D.f[TSE ] = &DD[TSE *size_Mat];
+		D.f[TNW ] = &DD[TNW *size_Mat];
+		D.f[BNE ] = &DD[BNE *size_Mat];
+		D.f[BSW ] = &DD[BSW *size_Mat];
+		D.f[BSE ] = &DD[BSE *size_Mat];
+		D.f[BNW ] = &DD[BNW *size_Mat];
 	} 
 	else
 	{
-		D.f[dirW   ] = &DD[dirE   *size_Mat];
-		D.f[dirE   ] = &DD[dirW   *size_Mat];
-		D.f[dirS   ] = &DD[dirN   *size_Mat];
-		D.f[dirN   ] = &DD[dirS   *size_Mat];
-		D.f[dirB   ] = &DD[dirT   *size_Mat];
-		D.f[dirT   ] = &DD[dirB   *size_Mat];
-		D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-		D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-		D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-		D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-		D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-		D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-		D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-		D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-		D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-		D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-		D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-		D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+		D.f[W   ] = &DD[E   *size_Mat];
+		D.f[E   ] = &DD[W   *size_Mat];
+		D.f[S   ] = &DD[N   *size_Mat];
+		D.f[N   ] = &DD[S   *size_Mat];
+		D.f[B   ] = &DD[T   *size_Mat];
+		D.f[T   ] = &DD[B   *size_Mat];
+		D.f[SW  ] = &DD[NE  *size_Mat];
+		D.f[NE  ] = &DD[SW  *size_Mat];
+		D.f[NW  ] = &DD[SE  *size_Mat];
+		D.f[SE  ] = &DD[NW  *size_Mat];
+		D.f[BW  ] = &DD[TE  *size_Mat];
+		D.f[TE  ] = &DD[BW  *size_Mat];
+		D.f[TW  ] = &DD[BE  *size_Mat];
+		D.f[BE  ] = &DD[TW  *size_Mat];
+		D.f[BS  ] = &DD[TN  *size_Mat];
+		D.f[TN  ] = &DD[BS  *size_Mat];
+		D.f[TS  ] = &DD[BN  *size_Mat];
+		D.f[BN  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-		D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-		D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-		D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-		D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-		D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+		D.f[TNE ] = &DD[BSW *size_Mat];
+		D.f[TSW ] = &DD[BNE *size_Mat];
+		D.f[TSE ] = &DD[BNW *size_Mat];
+		D.f[TNW ] = &DD[BSE *size_Mat];
+		D.f[BNE ] = &DD[TSW *size_Mat];
+		D.f[BSW ] = &DD[TNE *size_Mat];
+		D.f[BSE ] = &DD[TNW *size_Mat];
+		D.f[BNW ] = &DD[TSE *size_Mat];
 	}
 	////////////////////////////////////////////////////////////////////////////////
 	const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -123,20 +123,20 @@ extern "C" __global__ void CalcCP27(real* DD,
 		////////////////////////////////////////////////////////////////////////////////
 		double PressCP;
 
-		PressCP  =   (D.f[dirE   ])[ke  ]+ (D.f[dirW   ])[kw  ]+ 
-                     (D.f[dirN   ])[kn  ]+ (D.f[dirS   ])[ks  ]+
-                     (D.f[dirT   ])[kt  ]+ (D.f[dirB   ])[kb  ]+
-                     (D.f[dirNE  ])[kne ]+ (D.f[dirSW  ])[ksw ]+
-                     (D.f[dirSE  ])[kse ]+ (D.f[dirNW  ])[knw ]+
-                     (D.f[dirTE  ])[kte ]+ (D.f[dirBW  ])[kbw ]+
-                     (D.f[dirBE  ])[kbe ]+ (D.f[dirTW  ])[ktw ]+
-                     (D.f[dirTN  ])[ktn ]+ (D.f[dirBS  ])[kbs ]+
-                     (D.f[dirBN  ])[kbn ]+ (D.f[dirTS  ])[kts ]+
+		PressCP  =   (D.f[E   ])[ke  ]+ (D.f[W   ])[kw  ]+ 
+                     (D.f[N   ])[kn  ]+ (D.f[S   ])[ks  ]+
+                     (D.f[T   ])[kt  ]+ (D.f[B   ])[kb  ]+
+                     (D.f[NE  ])[kne ]+ (D.f[SW  ])[ksw ]+
+                     (D.f[SE  ])[kse ]+ (D.f[NW  ])[knw ]+
+                     (D.f[TE  ])[kte ]+ (D.f[BW  ])[kbw ]+
+                     (D.f[BE  ])[kbe ]+ (D.f[TW  ])[ktw ]+
+                     (D.f[TN  ])[ktn ]+ (D.f[BS  ])[kbs ]+
+                     (D.f[BN  ])[kbn ]+ (D.f[TS  ])[kts ]+
                      (D.f[dirREST])[kzero]+ 
-                     (D.f[dirTNE ])[ktne]+ (D.f[dirTSW ])[ktsw]+ 
-                     (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]+ 
-                     (D.f[dirBNE ])[kbne]+ (D.f[dirBSW ])[kbsw]+ 
-                     (D.f[dirBSE ])[kbse]+ (D.f[dirBNW ])[kbnw];
+                     (D.f[TNE ])[ktne]+ (D.f[TSW ])[ktsw]+ 
+                     (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]+ 
+                     (D.f[BNE ])[kbne]+ (D.f[BSW ])[kbsw]+ 
+                     (D.f[BSE ])[kbse]+ (D.f[BNW ])[kbnw];
 		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 		cpPress[k] = PressCP;
 		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Calc2ndMoments27.cu b/src/gpu/VirtualFluids_GPU/GPU/Calc2ndMoments27.cu
index 5dc47af0f..a769af512 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Calc2ndMoments27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Calc2ndMoments27.cu
@@ -23,63 +23,63 @@ extern "C" __global__ void LBCalc2ndMomentsIncompSP27(  real* kxyFromfcNEQ,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -125,33 +125,33 @@ extern "C" __global__ void LBCalc2ndMomentsIncompSP27(  real* kxyFromfcNEQ,
       unsigned int kbsw = neighborZ[ksw];
       //////////////////////////////////////////////////////////////////////////
       real        f_E,f_W,f_N,f_S,f_T,f_B,f_NE,f_SW,f_SE,f_NW,f_TE,f_BW,f_BE,f_TW,f_TN,f_BS,f_BN,f_TS,/*f_ZERO,*/f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
-	  f_E    = (D.f[dirE   ])[ke   ];
-	  f_W    = (D.f[dirW   ])[kw   ];
-	  f_N    = (D.f[dirN   ])[kn   ];
-	  f_S    = (D.f[dirS   ])[ks   ];
-	  f_T    = (D.f[dirT   ])[kt   ];
-	  f_B    = (D.f[dirB   ])[kb   ];
-	  f_NE   = (D.f[dirNE  ])[kne  ];
-	  f_SW   = (D.f[dirSW  ])[ksw  ];
-	  f_SE   = (D.f[dirSE  ])[kse  ];
-	  f_NW   = (D.f[dirNW  ])[knw  ];
-	  f_TE   = (D.f[dirTE  ])[kte  ];
-	  f_BW   = (D.f[dirBW  ])[kbw  ];
-	  f_BE   = (D.f[dirBE  ])[kbe  ];
-	  f_TW   = (D.f[dirTW  ])[ktw  ];
-	  f_TN   = (D.f[dirTN  ])[ktn  ];
-	  f_BS   = (D.f[dirBS  ])[kbs  ];
-	  f_BN   = (D.f[dirBN  ])[kbn  ];
-	  f_TS   = (D.f[dirTS  ])[kts  ];
+	  f_E    = (D.f[E   ])[ke   ];
+	  f_W    = (D.f[W   ])[kw   ];
+	  f_N    = (D.f[N   ])[kn   ];
+	  f_S    = (D.f[S   ])[ks   ];
+	  f_T    = (D.f[T   ])[kt   ];
+	  f_B    = (D.f[B   ])[kb   ];
+	  f_NE   = (D.f[NE  ])[kne  ];
+	  f_SW   = (D.f[SW  ])[ksw  ];
+	  f_SE   = (D.f[SE  ])[kse  ];
+	  f_NW   = (D.f[NW  ])[knw  ];
+	  f_TE   = (D.f[TE  ])[kte  ];
+	  f_BW   = (D.f[BW  ])[kbw  ];
+	  f_BE   = (D.f[BE  ])[kbe  ];
+	  f_TW   = (D.f[TW  ])[ktw  ];
+	  f_TN   = (D.f[TN  ])[ktn  ];
+	  f_BS   = (D.f[BS  ])[kbs  ];
+	  f_BN   = (D.f[BN  ])[kbn  ];
+	  f_TS   = (D.f[TS  ])[kts  ];
 	  //f_ZERO = (D.f[dirREST])[kzero];
-	  f_TNE  = (D.f[dirTNE ])[ktne ];
-	  f_TSW  = (D.f[dirTSW ])[ktsw ];
-	  f_TSE  = (D.f[dirTSE ])[ktse ];
-	  f_TNW  = (D.f[dirTNW ])[ktnw ];
-	  f_BNE  = (D.f[dirBNE ])[kbne ];
-	  f_BSW  = (D.f[dirBSW ])[kbsw ];
-	  f_BSE  = (D.f[dirBSE ])[kbse ];
-	  f_BNW  = (D.f[dirBNW ])[kbnw ];
+	  f_TNE  = (D.f[TNE ])[ktne ];
+	  f_TSW  = (D.f[TSW ])[ktsw ];
+	  f_TSE  = (D.f[TSE ])[ktse ];
+	  f_TNW  = (D.f[TNW ])[ktnw ];
+	  f_BNE  = (D.f[BNE ])[kbne ];
+	  f_BSW  = (D.f[BSW ])[kbsw ];
+	  f_BSE  = (D.f[BSE ])[kbse ];
+	  f_BNW  = (D.f[BNW ])[kbnw ];
       //////////////////////////////////////////////////////////////////////////
 	  real vx1, vx2, vx3;
       kxyFromfcNEQ[k]       = c0o1;
@@ -222,63 +222,63 @@ extern "C" __global__ void LBCalc2ndMomentsCompSP27(real* kxyFromfcNEQ,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -325,33 +325,33 @@ extern "C" __global__ void LBCalc2ndMomentsCompSP27(real* kxyFromfcNEQ,
       //////////////////////////////////////////////////////////////////////////
       real f_ZERO;
       real        f_E,f_W,f_N,f_S,f_T,f_B,f_NE,f_SW,f_SE,f_NW,f_TE,f_BW,f_BE,f_TW,f_TN,f_BS,f_BN,f_TS,f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
-	  f_E    = (D.f[dirE   ])[ke   ];
-	  f_W    = (D.f[dirW   ])[kw   ];
-	  f_N    = (D.f[dirN   ])[kn   ];
-	  f_S    = (D.f[dirS   ])[ks   ];
-	  f_T    = (D.f[dirT   ])[kt   ];
-	  f_B    = (D.f[dirB   ])[kb   ];
-	  f_NE   = (D.f[dirNE  ])[kne  ];
-	  f_SW   = (D.f[dirSW  ])[ksw  ];
-	  f_SE   = (D.f[dirSE  ])[kse  ];
-	  f_NW   = (D.f[dirNW  ])[knw  ];
-	  f_TE   = (D.f[dirTE  ])[kte  ];
-	  f_BW   = (D.f[dirBW  ])[kbw  ];
-	  f_BE   = (D.f[dirBE  ])[kbe  ];
-	  f_TW   = (D.f[dirTW  ])[ktw  ];
-	  f_TN   = (D.f[dirTN  ])[ktn  ];
-	  f_BS   = (D.f[dirBS  ])[kbs  ];
-	  f_BN   = (D.f[dirBN  ])[kbn  ];
-	  f_TS   = (D.f[dirTS  ])[kts  ];
+	  f_E    = (D.f[E   ])[ke   ];
+	  f_W    = (D.f[W   ])[kw   ];
+	  f_N    = (D.f[N   ])[kn   ];
+	  f_S    = (D.f[S   ])[ks   ];
+	  f_T    = (D.f[T   ])[kt   ];
+	  f_B    = (D.f[B   ])[kb   ];
+	  f_NE   = (D.f[NE  ])[kne  ];
+	  f_SW   = (D.f[SW  ])[ksw  ];
+	  f_SE   = (D.f[SE  ])[kse  ];
+	  f_NW   = (D.f[NW  ])[knw  ];
+	  f_TE   = (D.f[TE  ])[kte  ];
+	  f_BW   = (D.f[BW  ])[kbw  ];
+	  f_BE   = (D.f[BE  ])[kbe  ];
+	  f_TW   = (D.f[TW  ])[ktw  ];
+	  f_TN   = (D.f[TN  ])[ktn  ];
+	  f_BS   = (D.f[BS  ])[kbs  ];
+	  f_BN   = (D.f[BN  ])[kbn  ];
+	  f_TS   = (D.f[TS  ])[kts  ];
 	  f_ZERO = (D.f[dirREST])[kzero];
-	  f_TNE  = (D.f[dirTNE ])[ktne ];
-	  f_TSW  = (D.f[dirTSW ])[ktsw ];
-	  f_TSE  = (D.f[dirTSE ])[ktse ];
-	  f_TNW  = (D.f[dirTNW ])[ktnw ];
-	  f_BNE  = (D.f[dirBNE ])[kbne ];
-	  f_BSW  = (D.f[dirBSW ])[kbsw ];
-	  f_BSE  = (D.f[dirBSE ])[kbse ];
-	  f_BNW  = (D.f[dirBNW ])[kbnw ];
+	  f_TNE  = (D.f[TNE ])[ktne ];
+	  f_TSW  = (D.f[TSW ])[ktsw ];
+	  f_TSE  = (D.f[TSE ])[ktse ];
+	  f_TNW  = (D.f[TNW ])[ktnw ];
+	  f_BNE  = (D.f[BNE ])[kbne ];
+	  f_BSW  = (D.f[BSW ])[kbsw ];
+	  f_BSE  = (D.f[BSE ])[kbse ];
+	  f_BNW  = (D.f[BNW ])[kbnw ];
       //////////////////////////////////////////////////////////////////////////
 	  real drho;
 	  real vx1, vx2, vx3, rho;
@@ -448,63 +448,63 @@ extern "C" __global__ void LBCalc3rdMomentsIncompSP27(  real* CUMbbb,
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -517,33 +517,33 @@ extern "C" __global__ void LBCalc3rdMomentsIncompSP27(  real* CUMbbb,
 			unsigned int kbs  = neighborZ[ks];
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];
-			real mfabb = (D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN   ])[k  ];
-			real mfbab = (D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT   ])[k  ];
-			real mfbba = (D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE  ])[k  ];
-			real mfaab = (D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE  ])[ks ];
-			real mfacb = (D.f[dirNW  ])[kw ];
-			real mfcbc = (D.f[dirTE  ])[k  ];
-			real mfaba = (D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE  ])[kb ];
-			real mfabc = (D.f[dirTW  ])[kw ];
-			real mfbcc = (D.f[dirTN  ])[k  ];
-			real mfbaa = (D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN  ])[kb ];
-			real mfbac = (D.f[dirTS  ])[ks ];
+			real mfcbb = (D.f[E   ])[k  ];
+			real mfabb = (D.f[W   ])[kw ];
+			real mfbcb = (D.f[N   ])[k  ];
+			real mfbab = (D.f[S   ])[ks ];
+			real mfbbc = (D.f[T   ])[k  ];
+			real mfbba = (D.f[B   ])[kb ];
+			real mfccb = (D.f[NE  ])[k  ];
+			real mfaab = (D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE  ])[ks ];
+			real mfacb = (D.f[NW  ])[kw ];
+			real mfcbc = (D.f[TE  ])[k  ];
+			real mfaba = (D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE  ])[kb ];
+			real mfabc = (D.f[TW  ])[kw ];
+			real mfbcc = (D.f[TN  ])[k  ];
+			real mfbaa = (D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN  ])[kb ];
+			real mfbac = (D.f[TS  ])[ks ];
 			real mfbbb = (D.f[dirREST])[k  ];
-			real mfccc = (D.f[dirTNE ])[k  ];
-			real mfaac = (D.f[dirTSW ])[ksw];
-			real mfcac = (D.f[dirTSE ])[ks ];
-			real mfacc = (D.f[dirTNW ])[kw ];
-			real mfcca = (D.f[dirBNE ])[kb ];
-			real mfaaa = (D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs];
-			real mfaca = (D.f[dirBNW ])[kbw];
+			real mfccc = (D.f[TNE ])[k  ];
+			real mfaac = (D.f[TSW ])[ksw];
+			real mfcac = (D.f[TSE ])[ks ];
+			real mfacc = (D.f[TNW ])[kw ];
+			real mfcca = (D.f[BNE ])[kb ];
+			real mfaaa = (D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs];
+			real mfaca = (D.f[BNW ])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real vvx    =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + 
 						     (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) +
@@ -882,63 +882,63 @@ extern "C" __global__ void LBCalc3rdMomentsCompSP27(real* CUMbbb,
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -951,33 +951,33 @@ extern "C" __global__ void LBCalc3rdMomentsCompSP27(real* CUMbbb,
 			unsigned int kbs  = neighborZ[ks];
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];
-			real mfabb = (D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN   ])[k  ];
-			real mfbab = (D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT   ])[k  ];
-			real mfbba = (D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE  ])[k  ];
-			real mfaab = (D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE  ])[ks ];
-			real mfacb = (D.f[dirNW  ])[kw ];
-			real mfcbc = (D.f[dirTE  ])[k  ];
-			real mfaba = (D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE  ])[kb ];
-			real mfabc = (D.f[dirTW  ])[kw ];
-			real mfbcc = (D.f[dirTN  ])[k  ];
-			real mfbaa = (D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN  ])[kb ];
-			real mfbac = (D.f[dirTS  ])[ks ];
+			real mfcbb = (D.f[E   ])[k  ];
+			real mfabb = (D.f[W   ])[kw ];
+			real mfbcb = (D.f[N   ])[k  ];
+			real mfbab = (D.f[S   ])[ks ];
+			real mfbbc = (D.f[T   ])[k  ];
+			real mfbba = (D.f[B   ])[kb ];
+			real mfccb = (D.f[NE  ])[k  ];
+			real mfaab = (D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE  ])[ks ];
+			real mfacb = (D.f[NW  ])[kw ];
+			real mfcbc = (D.f[TE  ])[k  ];
+			real mfaba = (D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE  ])[kb ];
+			real mfabc = (D.f[TW  ])[kw ];
+			real mfbcc = (D.f[TN  ])[k  ];
+			real mfbaa = (D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN  ])[kb ];
+			real mfbac = (D.f[TS  ])[ks ];
 			real mfbbb = (D.f[dirREST])[k  ];
-			real mfccc = (D.f[dirTNE ])[k  ];
-			real mfaac = (D.f[dirTSW ])[ksw];
-			real mfcac = (D.f[dirTSE ])[ks ];
-			real mfacc = (D.f[dirTNW ])[kw ];
-			real mfcca = (D.f[dirBNE ])[kb ];
-			real mfaaa = (D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs];
-			real mfaca = (D.f[dirBNW ])[kbw];
+			real mfccc = (D.f[TNE ])[k  ];
+			real mfaac = (D.f[TSW ])[ksw];
+			real mfcac = (D.f[TSE ])[ks ];
+			real mfacc = (D.f[TNW ])[kw ];
+			real mfcca = (D.f[BNE ])[kb ];
+			real mfaaa = (D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs];
+			real mfaca = (D.f[BNW ])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
 							(((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) +
@@ -1323,63 +1323,63 @@ extern "C" __global__ void LBCalcHigherMomentsIncompSP27(   real* CUMcbb,
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -1392,33 +1392,33 @@ extern "C" __global__ void LBCalcHigherMomentsIncompSP27(   real* CUMcbb,
 			unsigned int kbs  = neighborZ[ks];
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];
-			real mfabb = (D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN   ])[k  ];
-			real mfbab = (D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT   ])[k  ];
-			real mfbba = (D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE  ])[k  ];
-			real mfaab = (D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE  ])[ks ];
-			real mfacb = (D.f[dirNW  ])[kw ];
-			real mfcbc = (D.f[dirTE  ])[k  ];
-			real mfaba = (D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE  ])[kb ];
-			real mfabc = (D.f[dirTW  ])[kw ];
-			real mfbcc = (D.f[dirTN  ])[k  ];
-			real mfbaa = (D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN  ])[kb ];
-			real mfbac = (D.f[dirTS  ])[ks ];
+			real mfcbb = (D.f[E   ])[k  ];
+			real mfabb = (D.f[W   ])[kw ];
+			real mfbcb = (D.f[N   ])[k  ];
+			real mfbab = (D.f[S   ])[ks ];
+			real mfbbc = (D.f[T   ])[k  ];
+			real mfbba = (D.f[B   ])[kb ];
+			real mfccb = (D.f[NE  ])[k  ];
+			real mfaab = (D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE  ])[ks ];
+			real mfacb = (D.f[NW  ])[kw ];
+			real mfcbc = (D.f[TE  ])[k  ];
+			real mfaba = (D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE  ])[kb ];
+			real mfabc = (D.f[TW  ])[kw ];
+			real mfbcc = (D.f[TN  ])[k  ];
+			real mfbaa = (D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN  ])[kb ];
+			real mfbac = (D.f[TS  ])[ks ];
 			real mfbbb = (D.f[dirREST])[k  ];
-			real mfccc = (D.f[dirTNE ])[k  ];
-			real mfaac = (D.f[dirTSW ])[ksw];
-			real mfcac = (D.f[dirTSE ])[ks ];
-			real mfacc = (D.f[dirTNW ])[kw ];
-			real mfcca = (D.f[dirBNE ])[kb ];
-			real mfaaa = (D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs];
-			real mfaca = (D.f[dirBNW ])[kbw];
+			real mfccc = (D.f[TNE ])[k  ];
+			real mfaac = (D.f[TSW ])[ksw];
+			real mfcac = (D.f[TSE ])[ks ];
+			real mfacc = (D.f[TNW ])[kw ];
+			real mfcca = (D.f[BNE ])[kb ];
+			real mfaaa = (D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs];
+			real mfaca = (D.f[BNW ])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real vvx    =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + 
 						     (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) +
@@ -1777,63 +1777,63 @@ extern "C" __global__ void LBCalcHigherMomentsCompSP27( real* CUMcbb,
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -1846,33 +1846,33 @@ extern "C" __global__ void LBCalcHigherMomentsCompSP27( real* CUMcbb,
 			unsigned int kbs  = neighborZ[ks];
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];
-			real mfabb = (D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN   ])[k  ];
-			real mfbab = (D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT   ])[k  ];
-			real mfbba = (D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE  ])[k  ];
-			real mfaab = (D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE  ])[ks ];
-			real mfacb = (D.f[dirNW  ])[kw ];
-			real mfcbc = (D.f[dirTE  ])[k  ];
-			real mfaba = (D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE  ])[kb ];
-			real mfabc = (D.f[dirTW  ])[kw ];
-			real mfbcc = (D.f[dirTN  ])[k  ];
-			real mfbaa = (D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN  ])[kb ];
-			real mfbac = (D.f[dirTS  ])[ks ];
+			real mfcbb = (D.f[E   ])[k  ];
+			real mfabb = (D.f[W   ])[kw ];
+			real mfbcb = (D.f[N   ])[k  ];
+			real mfbab = (D.f[S   ])[ks ];
+			real mfbbc = (D.f[T   ])[k  ];
+			real mfbba = (D.f[B   ])[kb ];
+			real mfccb = (D.f[NE  ])[k  ];
+			real mfaab = (D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE  ])[ks ];
+			real mfacb = (D.f[NW  ])[kw ];
+			real mfcbc = (D.f[TE  ])[k  ];
+			real mfaba = (D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE  ])[kb ];
+			real mfabc = (D.f[TW  ])[kw ];
+			real mfbcc = (D.f[TN  ])[k  ];
+			real mfbaa = (D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN  ])[kb ];
+			real mfbac = (D.f[TS  ])[ks ];
 			real mfbbb = (D.f[dirREST])[k  ];
-			real mfccc = (D.f[dirTNE ])[k  ];
-			real mfaac = (D.f[dirTSW ])[ksw];
-			real mfcac = (D.f[dirTSE ])[ks ];
-			real mfacc = (D.f[dirTNW ])[kw ];
-			real mfcca = (D.f[dirBNE ])[kb ];
-			real mfaaa = (D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs];
-			real mfaca = (D.f[dirBNW ])[kbw];
+			real mfccc = (D.f[TNE ])[k  ];
+			real mfaac = (D.f[TSW ])[ksw];
+			real mfcac = (D.f[TSE ])[ks ];
+			real mfacc = (D.f[TNW ])[kw ];
+			real mfcca = (D.f[BNE ])[kb ];
+			real mfaaa = (D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs];
+			real mfaca = (D.f[BNW ])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
 							(((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) +
diff --git a/src/gpu/VirtualFluids_GPU/GPU/CalcConc27.cu b/src/gpu/VirtualFluids_GPU/GPU/CalcConc27.cu
index 81ecbf8f4..1f3b2443c 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/CalcConc27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/CalcConc27.cu
@@ -75,63 +75,63 @@ extern "C" __global__ void CalcConc27(
       Distributions27 distAD;
       if (isEvenTimestep)
       {
-         distAD.f[dirE   ] = &distributionsAD[dirE   *size_Mat];
-         distAD.f[dirW   ] = &distributionsAD[dirW   *size_Mat];
-         distAD.f[dirN   ] = &distributionsAD[dirN   *size_Mat];
-         distAD.f[dirS   ] = &distributionsAD[dirS   *size_Mat];
-         distAD.f[dirT   ] = &distributionsAD[dirT   *size_Mat];
-         distAD.f[dirB   ] = &distributionsAD[dirB   *size_Mat];
-         distAD.f[dirNE  ] = &distributionsAD[dirNE  *size_Mat];
-         distAD.f[dirSW  ] = &distributionsAD[dirSW  *size_Mat];
-         distAD.f[dirSE  ] = &distributionsAD[dirSE  *size_Mat];
-         distAD.f[dirNW  ] = &distributionsAD[dirNW  *size_Mat];
-         distAD.f[dirTE  ] = &distributionsAD[dirTE  *size_Mat];
-         distAD.f[dirBW  ] = &distributionsAD[dirBW  *size_Mat];
-         distAD.f[dirBE  ] = &distributionsAD[dirBE  *size_Mat];
-         distAD.f[dirTW  ] = &distributionsAD[dirTW  *size_Mat];
-         distAD.f[dirTN  ] = &distributionsAD[dirTN  *size_Mat];
-         distAD.f[dirBS  ] = &distributionsAD[dirBS  *size_Mat];
-         distAD.f[dirBN  ] = &distributionsAD[dirBN  *size_Mat];
-         distAD.f[dirTS  ] = &distributionsAD[dirTS  *size_Mat];
+         distAD.f[E   ] = &distributionsAD[E   *size_Mat];
+         distAD.f[W   ] = &distributionsAD[W   *size_Mat];
+         distAD.f[N   ] = &distributionsAD[N   *size_Mat];
+         distAD.f[S   ] = &distributionsAD[S   *size_Mat];
+         distAD.f[T   ] = &distributionsAD[T   *size_Mat];
+         distAD.f[B   ] = &distributionsAD[B   *size_Mat];
+         distAD.f[NE  ] = &distributionsAD[NE  *size_Mat];
+         distAD.f[SW  ] = &distributionsAD[SW  *size_Mat];
+         distAD.f[SE  ] = &distributionsAD[SE  *size_Mat];
+         distAD.f[NW  ] = &distributionsAD[NW  *size_Mat];
+         distAD.f[TE  ] = &distributionsAD[TE  *size_Mat];
+         distAD.f[BW  ] = &distributionsAD[BW  *size_Mat];
+         distAD.f[BE  ] = &distributionsAD[BE  *size_Mat];
+         distAD.f[TW  ] = &distributionsAD[TW  *size_Mat];
+         distAD.f[TN  ] = &distributionsAD[TN  *size_Mat];
+         distAD.f[BS  ] = &distributionsAD[BS  *size_Mat];
+         distAD.f[BN  ] = &distributionsAD[BN  *size_Mat];
+         distAD.f[TS  ] = &distributionsAD[TS  *size_Mat];
          distAD.f[dirREST] = &distributionsAD[dirREST*size_Mat];
-         distAD.f[dirTNE ] = &distributionsAD[dirTNE *size_Mat];
-         distAD.f[dirTSW ] = &distributionsAD[dirTSW *size_Mat];
-         distAD.f[dirTSE ] = &distributionsAD[dirTSE *size_Mat];
-         distAD.f[dirTNW ] = &distributionsAD[dirTNW *size_Mat];
-         distAD.f[dirBNE ] = &distributionsAD[dirBNE *size_Mat];
-         distAD.f[dirBSW ] = &distributionsAD[dirBSW *size_Mat];
-         distAD.f[dirBSE ] = &distributionsAD[dirBSE *size_Mat];
-         distAD.f[dirBNW ] = &distributionsAD[dirBNW *size_Mat];
+         distAD.f[TNE ] = &distributionsAD[TNE *size_Mat];
+         distAD.f[TSW ] = &distributionsAD[TSW *size_Mat];
+         distAD.f[TSE ] = &distributionsAD[TSE *size_Mat];
+         distAD.f[TNW ] = &distributionsAD[TNW *size_Mat];
+         distAD.f[BNE ] = &distributionsAD[BNE *size_Mat];
+         distAD.f[BSW ] = &distributionsAD[BSW *size_Mat];
+         distAD.f[BSE ] = &distributionsAD[BSE *size_Mat];
+         distAD.f[BNW ] = &distributionsAD[BNW *size_Mat];
       }
       else
       {
-         distAD.f[dirW   ] = &distributionsAD[dirE   *size_Mat];
-         distAD.f[dirE   ] = &distributionsAD[dirW   *size_Mat];
-         distAD.f[dirS   ] = &distributionsAD[dirN   *size_Mat];
-         distAD.f[dirN   ] = &distributionsAD[dirS   *size_Mat];
-         distAD.f[dirB   ] = &distributionsAD[dirT   *size_Mat];
-         distAD.f[dirT   ] = &distributionsAD[dirB   *size_Mat];
-         distAD.f[dirSW  ] = &distributionsAD[dirNE  *size_Mat];
-         distAD.f[dirNE  ] = &distributionsAD[dirSW  *size_Mat];
-         distAD.f[dirNW  ] = &distributionsAD[dirSE  *size_Mat];
-         distAD.f[dirSE  ] = &distributionsAD[dirNW  *size_Mat];
-         distAD.f[dirBW  ] = &distributionsAD[dirTE  *size_Mat];
-         distAD.f[dirTE  ] = &distributionsAD[dirBW  *size_Mat];
-         distAD.f[dirTW  ] = &distributionsAD[dirBE  *size_Mat];
-         distAD.f[dirBE  ] = &distributionsAD[dirTW  *size_Mat];
-         distAD.f[dirBS  ] = &distributionsAD[dirTN  *size_Mat];
-         distAD.f[dirTN  ] = &distributionsAD[dirBS  *size_Mat];
-         distAD.f[dirTS  ] = &distributionsAD[dirBN  *size_Mat];
-         distAD.f[dirBN  ] = &distributionsAD[dirTS  *size_Mat];
+         distAD.f[W   ] = &distributionsAD[E   *size_Mat];
+         distAD.f[E   ] = &distributionsAD[W   *size_Mat];
+         distAD.f[S   ] = &distributionsAD[N   *size_Mat];
+         distAD.f[N   ] = &distributionsAD[S   *size_Mat];
+         distAD.f[B   ] = &distributionsAD[T   *size_Mat];
+         distAD.f[T   ] = &distributionsAD[B   *size_Mat];
+         distAD.f[SW  ] = &distributionsAD[NE  *size_Mat];
+         distAD.f[NE  ] = &distributionsAD[SW  *size_Mat];
+         distAD.f[NW  ] = &distributionsAD[SE  *size_Mat];
+         distAD.f[SE  ] = &distributionsAD[NW  *size_Mat];
+         distAD.f[BW  ] = &distributionsAD[TE  *size_Mat];
+         distAD.f[TE  ] = &distributionsAD[BW  *size_Mat];
+         distAD.f[TW  ] = &distributionsAD[BE  *size_Mat];
+         distAD.f[BE  ] = &distributionsAD[TW  *size_Mat];
+         distAD.f[BS  ] = &distributionsAD[TN  *size_Mat];
+         distAD.f[TN  ] = &distributionsAD[BS  *size_Mat];
+         distAD.f[TS  ] = &distributionsAD[BN  *size_Mat];
+         distAD.f[BN  ] = &distributionsAD[TS  *size_Mat];
          distAD.f[dirREST] = &distributionsAD[dirREST*size_Mat];
-         distAD.f[dirTNE ] = &distributionsAD[dirBSW *size_Mat];
-         distAD.f[dirTSW ] = &distributionsAD[dirBNE *size_Mat];
-         distAD.f[dirTSE ] = &distributionsAD[dirBNW *size_Mat];
-         distAD.f[dirTNW ] = &distributionsAD[dirBSE *size_Mat];
-         distAD.f[dirBNE ] = &distributionsAD[dirTSW *size_Mat];
-         distAD.f[dirBSW ] = &distributionsAD[dirTNE *size_Mat];
-         distAD.f[dirBSE ] = &distributionsAD[dirTNW *size_Mat];
-         distAD.f[dirBNW ] = &distributionsAD[dirTSE *size_Mat];
+         distAD.f[TNE ] = &distributionsAD[BSW *size_Mat];
+         distAD.f[TSW ] = &distributionsAD[BNE *size_Mat];
+         distAD.f[TSE ] = &distributionsAD[BNW *size_Mat];
+         distAD.f[TNW ] = &distributionsAD[BSE *size_Mat];
+         distAD.f[BNE ] = &distributionsAD[TSW *size_Mat];
+         distAD.f[BSW ] = &distributionsAD[TNE *size_Mat];
+         distAD.f[BSE ] = &distributionsAD[TNW *size_Mat];
+         distAD.f[BNW ] = &distributionsAD[TSE *size_Mat];
       }
 	  ////////////////////////////////////////////////////////////////////////////////
 	  //! - Set neighbor indices (necessary for indirect addressing)
@@ -165,33 +165,33 @@ extern "C" __global__ void CalcConc27(
 	  ////////////////////////////////////////////////////////////////////////////////
 	  //! - Set local distributions
 	  //!
-	  real mfcbb = (distAD.f[dirE   ])[ke  ];
-	  real mfabb = (distAD.f[dirW   ])[kw  ];
-	  real mfbcb = (distAD.f[dirN   ])[kn  ];
-	  real mfbab = (distAD.f[dirS   ])[ks  ];
-	  real mfbbc = (distAD.f[dirT   ])[kt  ];
-	  real mfbba = (distAD.f[dirB   ])[kb  ];
-	  real mfccb = (distAD.f[dirNE  ])[kne ];
-	  real mfaab = (distAD.f[dirSW  ])[ksw ];
-	  real mfcab = (distAD.f[dirSE  ])[kse ];
-	  real mfacb = (distAD.f[dirNW  ])[knw ];
-	  real mfcbc = (distAD.f[dirTE  ])[kte ];
-	  real mfaba = (distAD.f[dirBW  ])[kbw ];
-	  real mfcba = (distAD.f[dirBE  ])[kbe ];
-	  real mfabc = (distAD.f[dirTW  ])[ktw ];
-	  real mfbcc = (distAD.f[dirTN  ])[ktn ];
-	  real mfbaa = (distAD.f[dirBS  ])[kbs ];
-	  real mfbca = (distAD.f[dirBN  ])[kbn ];
-	  real mfbac = (distAD.f[dirTS  ])[kts ];
+	  real mfcbb = (distAD.f[E   ])[ke  ];
+	  real mfabb = (distAD.f[W   ])[kw  ];
+	  real mfbcb = (distAD.f[N   ])[kn  ];
+	  real mfbab = (distAD.f[S   ])[ks  ];
+	  real mfbbc = (distAD.f[T   ])[kt  ];
+	  real mfbba = (distAD.f[B   ])[kb  ];
+	  real mfccb = (distAD.f[NE  ])[kne ];
+	  real mfaab = (distAD.f[SW  ])[ksw ];
+	  real mfcab = (distAD.f[SE  ])[kse ];
+	  real mfacb = (distAD.f[NW  ])[knw ];
+	  real mfcbc = (distAD.f[TE  ])[kte ];
+	  real mfaba = (distAD.f[BW  ])[kbw ];
+	  real mfcba = (distAD.f[BE  ])[kbe ];
+	  real mfabc = (distAD.f[TW  ])[ktw ];
+	  real mfbcc = (distAD.f[TN  ])[ktn ];
+	  real mfbaa = (distAD.f[BS  ])[kbs ];
+	  real mfbca = (distAD.f[BN  ])[kbn ];
+	  real mfbac = (distAD.f[TS  ])[kts ];
 	  real mfbbb = (distAD.f[dirREST])[k   ];
-	  real mfccc = (distAD.f[dirTNE ])[ktne];
-	  real mfaac = (distAD.f[dirTSW ])[ktsw];
-	  real mfcac = (distAD.f[dirTSE ])[ktse];
-	  real mfacc = (distAD.f[dirTNW ])[ktnw];
-	  real mfcca = (distAD.f[dirBNE ])[kbne];
-	  real mfaaa = (distAD.f[dirBSW ])[kbsw];
-	  real mfcaa = (distAD.f[dirBSE ])[kbse];
-	  real mfaca = (distAD.f[dirBNW ])[kbnw];
+	  real mfccc = (distAD.f[TNE ])[ktne];
+	  real mfaac = (distAD.f[TSW ])[ktsw];
+	  real mfcac = (distAD.f[TSE ])[ktse];
+	  real mfacc = (distAD.f[TNW ])[ktnw];
+	  real mfcca = (distAD.f[BNE ])[kbne];
+	  real mfaaa = (distAD.f[BSW ])[kbsw];
+	  real mfcaa = (distAD.f[BSE ])[kbse];
+	  real mfaca = (distAD.f[BNW ])[kbnw];
       //////////////////////////////////////////////////////////////////////////
 	  //! - Calculate concentration 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>
@@ -326,63 +326,63 @@ extern "C" __global__ void CalcConc7( real* Conc,
 //    Distributions27 D27;
 //    if (isEvenTimestep==true)
 //    {
-//       D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-//       D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-//       D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-//       D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-//       D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-//       D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-//       D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-//       D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-//       D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-//       D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-//       D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-//       D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-//       D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-//       D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-//       D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-//       D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-//       D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-//       D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+//       D27.f[E   ] = &DD27[E   *size_Mat];
+//       D27.f[W   ] = &DD27[W   *size_Mat];
+//       D27.f[N   ] = &DD27[N   *size_Mat];
+//       D27.f[S   ] = &DD27[S   *size_Mat];
+//       D27.f[T   ] = &DD27[T   *size_Mat];
+//       D27.f[B   ] = &DD27[B   *size_Mat];
+//       D27.f[NE  ] = &DD27[NE  *size_Mat];
+//       D27.f[SW  ] = &DD27[SW  *size_Mat];
+//       D27.f[SE  ] = &DD27[SE  *size_Mat];
+//       D27.f[NW  ] = &DD27[NW  *size_Mat];
+//       D27.f[TE  ] = &DD27[TE  *size_Mat];
+//       D27.f[BW  ] = &DD27[BW  *size_Mat];
+//       D27.f[BE  ] = &DD27[BE  *size_Mat];
+//       D27.f[TW  ] = &DD27[TW  *size_Mat];
+//       D27.f[TN  ] = &DD27[TN  *size_Mat];
+//       D27.f[BS  ] = &DD27[BS  *size_Mat];
+//       D27.f[BN  ] = &DD27[BN  *size_Mat];
+//       D27.f[TS  ] = &DD27[TS  *size_Mat];
 //       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-//       D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-//       D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-//       D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-//       D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-//       D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-//       D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-//       D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-//       D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+//       D27.f[TNE ] = &DD27[TNE *size_Mat];
+//       D27.f[TSW ] = &DD27[TSW *size_Mat];
+//       D27.f[TSE ] = &DD27[TSE *size_Mat];
+//       D27.f[TNW ] = &DD27[TNW *size_Mat];
+//       D27.f[BNE ] = &DD27[BNE *size_Mat];
+//       D27.f[BSW ] = &DD27[BSW *size_Mat];
+//       D27.f[BSE ] = &DD27[BSE *size_Mat];
+//       D27.f[BNW ] = &DD27[BNW *size_Mat];
 //    }
 //    else
 //    {
-//       D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-//       D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-//       D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-//       D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-//       D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-//       D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-//       D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-//       D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-//       D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-//       D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-//       D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-//       D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-//       D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-//       D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-//       D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-//       D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-//       D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-//       D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+//       D27.f[W   ] = &DD27[E   *size_Mat];
+//       D27.f[E   ] = &DD27[W   *size_Mat];
+//       D27.f[S   ] = &DD27[N   *size_Mat];
+//       D27.f[N   ] = &DD27[S   *size_Mat];
+//       D27.f[B   ] = &DD27[T   *size_Mat];
+//       D27.f[T   ] = &DD27[B   *size_Mat];
+//       D27.f[SW  ] = &DD27[NE  *size_Mat];
+//       D27.f[NE  ] = &DD27[SW  *size_Mat];
+//       D27.f[NW  ] = &DD27[SE  *size_Mat];
+//       D27.f[SE  ] = &DD27[NW  *size_Mat];
+//       D27.f[BW  ] = &DD27[TE  *size_Mat];
+//       D27.f[TE  ] = &DD27[BW  *size_Mat];
+//       D27.f[TW  ] = &DD27[BE  *size_Mat];
+//       D27.f[BE  ] = &DD27[TW  *size_Mat];
+//       D27.f[BS  ] = &DD27[TN  *size_Mat];
+//       D27.f[TN  ] = &DD27[BS  *size_Mat];
+//       D27.f[TS  ] = &DD27[BN  *size_Mat];
+//       D27.f[BN  ] = &DD27[TS  *size_Mat];
 //       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-//       D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-//       D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-//       D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
-//       D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-//       D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-//       D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-//       D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-//       D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
+//       D27.f[BSW ] = &DD27[TNE *size_Mat];
+//       D27.f[BNE ] = &DD27[TSW *size_Mat];
+//       D27.f[BNW ] = &DD27[TSE *size_Mat];
+//       D27.f[BSE ] = &DD27[TNW *size_Mat];
+//       D27.f[TSW ] = &DD27[BNE *size_Mat];
+//       D27.f[TNE ] = &DD27[BSW *size_Mat];
+//       D27.f[TNW ] = &DD27[BSE *size_Mat];
+//       D27.f[TSE ] = &DD27[BNW *size_Mat];
 //    }
 //    ////////////////////////////////////////////////////////////////////////////////
 //    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -431,20 +431,20 @@ extern "C" __global__ void CalcConc7( real* Conc,
 
 //       if(geoD[k] == GEO_FLUID)
 //       {
-//          Conc[k]    =   (D27.f[dirE   ])[ke  ]+ (D27.f[dirW   ])[kw  ]+ 
-//                         (D27.f[dirN   ])[kn  ]+ (D27.f[dirS   ])[ks  ]+
-//                         (D27.f[dirT   ])[kt  ]+ (D27.f[dirB   ])[kb  ]+
-//                         (D27.f[dirNE  ])[kne ]+ (D27.f[dirSW  ])[ksw ]+
-//                         (D27.f[dirSE  ])[kse ]+ (D27.f[dirNW  ])[knw ]+
-//                         (D27.f[dirTE  ])[kte ]+ (D27.f[dirBW  ])[kbw ]+
-//                         (D27.f[dirBE  ])[kbe ]+ (D27.f[dirTW  ])[ktw ]+
-//                         (D27.f[dirTN  ])[ktn ]+ (D27.f[dirBS  ])[kbs ]+
-//                         (D27.f[dirBN  ])[kbn ]+ (D27.f[dirTS  ])[kts ]+
+//          Conc[k]    =   (D27.f[E   ])[ke  ]+ (D27.f[W   ])[kw  ]+ 
+//                         (D27.f[N   ])[kn  ]+ (D27.f[S   ])[ks  ]+
+//                         (D27.f[T   ])[kt  ]+ (D27.f[B   ])[kb  ]+
+//                         (D27.f[NE  ])[kne ]+ (D27.f[SW  ])[ksw ]+
+//                         (D27.f[SE  ])[kse ]+ (D27.f[NW  ])[knw ]+
+//                         (D27.f[TE  ])[kte ]+ (D27.f[BW  ])[kbw ]+
+//                         (D27.f[BE  ])[kbe ]+ (D27.f[TW  ])[ktw ]+
+//                         (D27.f[TN  ])[ktn ]+ (D27.f[BS  ])[kbs ]+
+//                         (D27.f[BN  ])[kbn ]+ (D27.f[TS  ])[kts ]+
 //                         (D27.f[dirREST])[kzero]+ 
-//                         (D27.f[dirTNE ])[ktne]+ (D27.f[dirTSW ])[ktsw]+
-//                         (D27.f[dirTSE ])[ktse]+ (D27.f[dirTNW ])[ktnw]+
-//                         (D27.f[dirBNE ])[kbne]+ (D27.f[dirBSW ])[kbsw]+
-//                         (D27.f[dirBSE ])[kbse]+ (D27.f[dirBNW ])[kbnw];
+//                         (D27.f[TNE ])[ktne]+ (D27.f[TSW ])[ktsw]+
+//                         (D27.f[TSE ])[ktse]+ (D27.f[TNW ])[ktnw]+
+//                         (D27.f[BNE ])[kbne]+ (D27.f[BSW ])[kbsw]+
+//                         (D27.f[BSE ])[kbse]+ (D27.f[BNW ])[kbnw];
 //       }
 //    }   
 // }
@@ -587,63 +587,63 @@ extern "C" __global__ void GetPlaneConc27(real* Conc,
    Distributions27 D27;
    if (isEvenTimestep==true)
    {
-      D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+      D27.f[E   ] = &DD27[E   *size_Mat];
+      D27.f[W   ] = &DD27[W   *size_Mat];
+      D27.f[N   ] = &DD27[N   *size_Mat];
+      D27.f[S   ] = &DD27[S   *size_Mat];
+      D27.f[T   ] = &DD27[T   *size_Mat];
+      D27.f[B   ] = &DD27[B   *size_Mat];
+      D27.f[NE  ] = &DD27[NE  *size_Mat];
+      D27.f[SW  ] = &DD27[SW  *size_Mat];
+      D27.f[SE  ] = &DD27[SE  *size_Mat];
+      D27.f[NW  ] = &DD27[NW  *size_Mat];
+      D27.f[TE  ] = &DD27[TE  *size_Mat];
+      D27.f[BW  ] = &DD27[BW  *size_Mat];
+      D27.f[BE  ] = &DD27[BE  *size_Mat];
+      D27.f[TW  ] = &DD27[TW  *size_Mat];
+      D27.f[TN  ] = &DD27[TN  *size_Mat];
+      D27.f[BS  ] = &DD27[BS  *size_Mat];
+      D27.f[BN  ] = &DD27[BN  *size_Mat];
+      D27.f[TS  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+      D27.f[TNE ] = &DD27[TNE *size_Mat];
+      D27.f[TSW ] = &DD27[TSW *size_Mat];
+      D27.f[TSE ] = &DD27[TSE *size_Mat];
+      D27.f[TNW ] = &DD27[TNW *size_Mat];
+      D27.f[BNE ] = &DD27[BNE *size_Mat];
+      D27.f[BSW ] = &DD27[BSW *size_Mat];
+      D27.f[BSE ] = &DD27[BSE *size_Mat];
+      D27.f[BNW ] = &DD27[BNW *size_Mat];
    }
    else
    {
-      D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-      D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-      D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-      D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-      D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-      D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-      D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-      D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-      D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-      D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-      D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-      D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-      D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-      D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-      D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-      D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-      D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-      D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+      D27.f[W   ] = &DD27[E   *size_Mat];
+      D27.f[E   ] = &DD27[W   *size_Mat];
+      D27.f[S   ] = &DD27[N   *size_Mat];
+      D27.f[N   ] = &DD27[S   *size_Mat];
+      D27.f[B   ] = &DD27[T   *size_Mat];
+      D27.f[T   ] = &DD27[B   *size_Mat];
+      D27.f[SW  ] = &DD27[NE  *size_Mat];
+      D27.f[NE  ] = &DD27[SW  *size_Mat];
+      D27.f[NW  ] = &DD27[SE  *size_Mat];
+      D27.f[SE  ] = &DD27[NW  *size_Mat];
+      D27.f[BW  ] = &DD27[TE  *size_Mat];
+      D27.f[TE  ] = &DD27[BW  *size_Mat];
+      D27.f[TW  ] = &DD27[BE  *size_Mat];
+      D27.f[BE  ] = &DD27[TW  *size_Mat];
+      D27.f[BS  ] = &DD27[TN  *size_Mat];
+      D27.f[TN  ] = &DD27[BS  *size_Mat];
+      D27.f[TS  ] = &DD27[BN  *size_Mat];
+      D27.f[BN  ] = &DD27[TS  *size_Mat];
       D27.f[dirREST] = &DD27[dirREST*size_Mat];
-      D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-      D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-      D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
-      D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-      D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-      D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-      D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-      D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
+      D27.f[BSW ] = &DD27[TNE *size_Mat];
+      D27.f[BNE ] = &DD27[TSW *size_Mat];
+      D27.f[BNW ] = &DD27[TSE *size_Mat];
+      D27.f[BSE ] = &DD27[TNW *size_Mat];
+      D27.f[TSW ] = &DD27[BNE *size_Mat];
+      D27.f[TNE ] = &DD27[BSW *size_Mat];
+      D27.f[TNW ] = &DD27[BSE *size_Mat];
+      D27.f[TSE ] = &DD27[BNW *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -692,20 +692,20 @@ extern "C" __global__ void GetPlaneConc27(real* Conc,
 
       if(geoD[k] == GEO_FLUID)
       {
-         Conc[k]    =   (D27.f[dirE   ])[ke  ]+ (D27.f[dirW   ])[kw  ]+ 
-                        (D27.f[dirN   ])[kn  ]+ (D27.f[dirS   ])[ks  ]+
-                        (D27.f[dirT   ])[kt  ]+ (D27.f[dirB   ])[kb  ]+
-                        (D27.f[dirNE  ])[kne ]+ (D27.f[dirSW  ])[ksw ]+
-                        (D27.f[dirSE  ])[kse ]+ (D27.f[dirNW  ])[knw ]+
-                        (D27.f[dirTE  ])[kte ]+ (D27.f[dirBW  ])[kbw ]+
-                        (D27.f[dirBE  ])[kbe ]+ (D27.f[dirTW  ])[ktw ]+
-                        (D27.f[dirTN  ])[ktn ]+ (D27.f[dirBS  ])[kbs ]+
-                        (D27.f[dirBN  ])[kbn ]+ (D27.f[dirTS  ])[kts ]+
+         Conc[k]    =   (D27.f[E   ])[ke  ]+ (D27.f[W   ])[kw  ]+ 
+                        (D27.f[N   ])[kn  ]+ (D27.f[S   ])[ks  ]+
+                        (D27.f[T   ])[kt  ]+ (D27.f[B   ])[kb  ]+
+                        (D27.f[NE  ])[kne ]+ (D27.f[SW  ])[ksw ]+
+                        (D27.f[SE  ])[kse ]+ (D27.f[NW  ])[knw ]+
+                        (D27.f[TE  ])[kte ]+ (D27.f[BW  ])[kbw ]+
+                        (D27.f[BE  ])[kbe ]+ (D27.f[TW  ])[ktw ]+
+                        (D27.f[TN  ])[ktn ]+ (D27.f[BS  ])[kbs ]+
+                        (D27.f[BN  ])[kbn ]+ (D27.f[TS  ])[kts ]+
                         (D27.f[dirREST])[kzero]+ 
-                        (D27.f[dirTNE ])[ktne]+ (D27.f[dirTSW ])[ktsw]+
-                        (D27.f[dirTSE ])[ktse]+ (D27.f[dirTNW ])[ktnw]+
-                        (D27.f[dirBNE ])[kbne]+ (D27.f[dirBSW ])[kbsw]+
-                        (D27.f[dirBSE ])[kbse]+ (D27.f[dirBNW ])[kbnw];
+                        (D27.f[TNE ])[ktne]+ (D27.f[TSW ])[ktsw]+
+                        (D27.f[TSE ])[ktse]+ (D27.f[TNW ])[ktnw]+
+                        (D27.f[BNE ])[kbne]+ (D27.f[BSW ])[kbsw]+
+                        (D27.f[BSE ])[kbse]+ (D27.f[BNW ])[kbnw];
       }
    }   
 }
\ No newline at end of file
diff --git a/src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu b/src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu
index ca4c70340..8d4aadefd 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/CalcMac27.cu
@@ -85,63 +85,63 @@ extern "C" __global__ void LBCalcMacSP27( real* vxD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -194,66 +194,66 @@ extern "C" __global__ void LBCalcMacSP27( real* vxD,
 
       if(geoD[k] == GEO_FLUID)
       {
-         rhoD[k]    =   (D.f[dirE   ])[ke  ]+ (D.f[dirW   ])[kw  ]+ 
-                        (D.f[dirN   ])[kn  ]+ (D.f[dirS   ])[ks  ]+
-                        (D.f[dirT   ])[kt  ]+ (D.f[dirB   ])[kb  ]+
-                        (D.f[dirNE  ])[kne ]+ (D.f[dirSW  ])[ksw ]+
-                        (D.f[dirSE  ])[kse ]+ (D.f[dirNW  ])[knw ]+
-                        (D.f[dirTE  ])[kte ]+ (D.f[dirBW  ])[kbw ]+
-                        (D.f[dirBE  ])[kbe ]+ (D.f[dirTW  ])[ktw ]+
-                        (D.f[dirTN  ])[ktn ]+ (D.f[dirBS  ])[kbs ]+
-                        (D.f[dirBN  ])[kbn ]+ (D.f[dirTS  ])[kts ]+
+         rhoD[k]    =   (D.f[E   ])[ke  ]+ (D.f[W   ])[kw  ]+ 
+                        (D.f[N   ])[kn  ]+ (D.f[S   ])[ks  ]+
+                        (D.f[T   ])[kt  ]+ (D.f[B   ])[kb  ]+
+                        (D.f[NE  ])[kne ]+ (D.f[SW  ])[ksw ]+
+                        (D.f[SE  ])[kse ]+ (D.f[NW  ])[knw ]+
+                        (D.f[TE  ])[kte ]+ (D.f[BW  ])[kbw ]+
+                        (D.f[BE  ])[kbe ]+ (D.f[TW  ])[ktw ]+
+                        (D.f[TN  ])[ktn ]+ (D.f[BS  ])[kbs ]+
+                        (D.f[BN  ])[kbn ]+ (D.f[TS  ])[kts ]+
                         (D.f[dirREST])[kzero]+ 
-                        (D.f[dirTNE ])[ktne]+ (D.f[dirTSW ])[ktsw]+ 
-                        (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]+ 
-                        (D.f[dirBNE ])[kbne]+ (D.f[dirBSW ])[kbsw]+ 
-                        (D.f[dirBSE ])[kbse]+ (D.f[dirBNW ])[kbnw];
-
-         vxD[k]     =   (D.f[dirE   ])[ke  ]- (D.f[dirW   ])[kw  ]+ 
-                        (D.f[dirNE  ])[kne ]- (D.f[dirSW  ])[ksw ]+
-                        (D.f[dirSE  ])[kse ]- (D.f[dirNW  ])[knw ]+
-                        (D.f[dirTE  ])[kte ]- (D.f[dirBW  ])[kbw ]+
-                        (D.f[dirBE  ])[kbe ]- (D.f[dirTW  ])[ktw ]+
-                        (D.f[dirTNE ])[ktne]- (D.f[dirTSW ])[ktsw]+ 
-                        (D.f[dirTSE ])[ktse]- (D.f[dirTNW ])[ktnw]+ 
-                        (D.f[dirBNE ])[kbne]- (D.f[dirBSW ])[kbsw]+ 
-                        (D.f[dirBSE ])[kbse]- (D.f[dirBNW ])[kbnw];
-
-         vyD[k]     =   (D.f[dirN   ])[kn  ]- (D.f[dirS   ])[ks  ]+
-                        (D.f[dirNE  ])[kne ]- (D.f[dirSW  ])[ksw ]-
-                        (D.f[dirSE  ])[kse ]+ (D.f[dirNW  ])[knw ]+
-                        (D.f[dirTN  ])[ktn ]- (D.f[dirBS  ])[kbs ]+
-                        (D.f[dirBN  ])[kbn ]- (D.f[dirTS  ])[kts ]+
-                        (D.f[dirTNE ])[ktne]- (D.f[dirTSW ])[ktsw]- 
-                        (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]+ 
-                        (D.f[dirBNE ])[kbne]- (D.f[dirBSW ])[kbsw]- 
-                        (D.f[dirBSE ])[kbse]+ (D.f[dirBNW ])[kbnw];
-
-         vzD[k]     =   (D.f[dirT   ])[kt  ]- (D.f[dirB   ])[kb  ]+
-                        (D.f[dirTE  ])[kte ]- (D.f[dirBW  ])[kbw ]-
-                        (D.f[dirBE  ])[kbe ]+ (D.f[dirTW  ])[ktw ]+
-                        (D.f[dirTN  ])[ktn ]- (D.f[dirBS  ])[kbs ]-
-                        (D.f[dirBN  ])[kbn ]+ (D.f[dirTS  ])[kts ]+
-                        (D.f[dirTNE ])[ktne]+ (D.f[dirTSW ])[ktsw]+ 
-                        (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]- 
-                        (D.f[dirBNE ])[kbne]- (D.f[dirBSW ])[kbsw]- 
-                        (D.f[dirBSE ])[kbse]- (D.f[dirBNW ])[kbnw];
-
-         pressD[k]  =  ((D.f[dirE   ])[ke  ]+ (D.f[dirW   ])[kw  ]+ 
-                        (D.f[dirN   ])[kn  ]+ (D.f[dirS   ])[ks  ]+
-                        (D.f[dirT   ])[kt  ]+ (D.f[dirB   ])[kb  ]+
+                        (D.f[TNE ])[ktne]+ (D.f[TSW ])[ktsw]+ 
+                        (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]+ 
+                        (D.f[BNE ])[kbne]+ (D.f[BSW ])[kbsw]+ 
+                        (D.f[BSE ])[kbse]+ (D.f[BNW ])[kbnw];
+
+         vxD[k]     =   (D.f[E   ])[ke  ]- (D.f[W   ])[kw  ]+ 
+                        (D.f[NE  ])[kne ]- (D.f[SW  ])[ksw ]+
+                        (D.f[SE  ])[kse ]- (D.f[NW  ])[knw ]+
+                        (D.f[TE  ])[kte ]- (D.f[BW  ])[kbw ]+
+                        (D.f[BE  ])[kbe ]- (D.f[TW  ])[ktw ]+
+                        (D.f[TNE ])[ktne]- (D.f[TSW ])[ktsw]+ 
+                        (D.f[TSE ])[ktse]- (D.f[TNW ])[ktnw]+ 
+                        (D.f[BNE ])[kbne]- (D.f[BSW ])[kbsw]+ 
+                        (D.f[BSE ])[kbse]- (D.f[BNW ])[kbnw];
+
+         vyD[k]     =   (D.f[N   ])[kn  ]- (D.f[S   ])[ks  ]+
+                        (D.f[NE  ])[kne ]- (D.f[SW  ])[ksw ]-
+                        (D.f[SE  ])[kse ]+ (D.f[NW  ])[knw ]+
+                        (D.f[TN  ])[ktn ]- (D.f[BS  ])[kbs ]+
+                        (D.f[BN  ])[kbn ]- (D.f[TS  ])[kts ]+
+                        (D.f[TNE ])[ktne]- (D.f[TSW ])[ktsw]- 
+                        (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]+ 
+                        (D.f[BNE ])[kbne]- (D.f[BSW ])[kbsw]- 
+                        (D.f[BSE ])[kbse]+ (D.f[BNW ])[kbnw];
+
+         vzD[k]     =   (D.f[T   ])[kt  ]- (D.f[B   ])[kb  ]+
+                        (D.f[TE  ])[kte ]- (D.f[BW  ])[kbw ]-
+                        (D.f[BE  ])[kbe ]+ (D.f[TW  ])[ktw ]+
+                        (D.f[TN  ])[ktn ]- (D.f[BS  ])[kbs ]-
+                        (D.f[BN  ])[kbn ]+ (D.f[TS  ])[kts ]+
+                        (D.f[TNE ])[ktne]+ (D.f[TSW ])[ktsw]+ 
+                        (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]- 
+                        (D.f[BNE ])[kbne]- (D.f[BSW ])[kbsw]- 
+                        (D.f[BSE ])[kbse]- (D.f[BNW ])[kbnw];
+
+         pressD[k]  =  ((D.f[E   ])[ke  ]+ (D.f[W   ])[kw  ]+ 
+                        (D.f[N   ])[kn  ]+ (D.f[S   ])[ks  ]+
+                        (D.f[T   ])[kt  ]+ (D.f[B   ])[kb  ]+
                         2.f*(
-                        (D.f[dirNE  ])[kne ]+ (D.f[dirSW  ])[ksw ]+
-                        (D.f[dirSE  ])[kse ]+ (D.f[dirNW  ])[knw ]+
-                        (D.f[dirTE  ])[kte ]+ (D.f[dirBW  ])[kbw ]+
-                        (D.f[dirBE  ])[kbe ]+ (D.f[dirTW  ])[ktw ]+
-                        (D.f[dirTN  ])[ktn ]+ (D.f[dirBS  ])[kbs ]+
-                        (D.f[dirBN  ])[kbn ]+ (D.f[dirTS  ])[kts ])+
+                        (D.f[NE  ])[kne ]+ (D.f[SW  ])[ksw ]+
+                        (D.f[SE  ])[kse ]+ (D.f[NW  ])[knw ]+
+                        (D.f[TE  ])[kte ]+ (D.f[BW  ])[kbw ]+
+                        (D.f[BE  ])[kbe ]+ (D.f[TW  ])[ktw ]+
+                        (D.f[TN  ])[ktn ]+ (D.f[BS  ])[kbs ]+
+                        (D.f[BN  ])[kbn ]+ (D.f[TS  ])[kts ])+
                         3.f*(
-                        (D.f[dirTNE ])[ktne]+ (D.f[dirTSW ])[ktsw]+ 
-                        (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]+ 
-                        (D.f[dirBNE ])[kbne]+ (D.f[dirBSW ])[kbsw]+ 
-                        (D.f[dirBSE ])[kbse]+ (D.f[dirBNW ])[kbnw])-
+                        (D.f[TNE ])[ktne]+ (D.f[TSW ])[ktsw]+ 
+                        (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]+ 
+                        (D.f[BNE ])[kbne]+ (D.f[BSW ])[kbsw]+ 
+                        (D.f[BSE ])[kbse]+ (D.f[BNW ])[kbnw])-
                         rhoD[k]-(vxD[k] * vxD[k] + vyD[k] * vyD[k] + vzD[k] * vzD[k]) * (c1o1+c0o1*rhoD[k])) * c1o2+rhoD[k]; // times zero for incompressible case   
          //achtung op hart gesetzt Annahme op = 1 ;                                                    ^^^^(1.0/op-0.5)=0.5
 
@@ -345,63 +345,63 @@ extern "C" __global__ void LBCalcMedSP27( real* vxD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -460,70 +460,70 @@ extern "C" __global__ void LBCalcMedSP27( real* vxD,
 
       if(geoD[k] == GEO_FLUID)
       {
-         rhoD[k]    =   (D.f[dirE   ])[ke  ]+ (D.f[dirW   ])[kw  ]+ 
-                        (D.f[dirN   ])[kn  ]+ (D.f[dirS   ])[ks  ]+
-                        (D.f[dirT   ])[kt  ]+ (D.f[dirB   ])[kb  ]+
-                        (D.f[dirNE  ])[kne ]+ (D.f[dirSW  ])[ksw ]+
-                        (D.f[dirSE  ])[kse ]+ (D.f[dirNW  ])[knw ]+
-                        (D.f[dirTE  ])[kte ]+ (D.f[dirBW  ])[kbw ]+
-                        (D.f[dirBE  ])[kbe ]+ (D.f[dirTW  ])[ktw ]+
-                        (D.f[dirTN  ])[ktn ]+ (D.f[dirBS  ])[kbs ]+
-                        (D.f[dirBN  ])[kbn ]+ (D.f[dirTS  ])[kts ]+
+         rhoD[k]    =   (D.f[E   ])[ke  ]+ (D.f[W   ])[kw  ]+ 
+                        (D.f[N   ])[kn  ]+ (D.f[S   ])[ks  ]+
+                        (D.f[T   ])[kt  ]+ (D.f[B   ])[kb  ]+
+                        (D.f[NE  ])[kne ]+ (D.f[SW  ])[ksw ]+
+                        (D.f[SE  ])[kse ]+ (D.f[NW  ])[knw ]+
+                        (D.f[TE  ])[kte ]+ (D.f[BW  ])[kbw ]+
+                        (D.f[BE  ])[kbe ]+ (D.f[TW  ])[ktw ]+
+                        (D.f[TN  ])[ktn ]+ (D.f[BS  ])[kbs ]+
+                        (D.f[BN  ])[kbn ]+ (D.f[TS  ])[kts ]+
                         (D.f[dirREST])[kzero]+ 
-                        (D.f[dirTNE ])[ktne]+ (D.f[dirTSW ])[ktsw]+ 
-                        (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]+ 
-                        (D.f[dirBNE ])[kbne]+ (D.f[dirBSW ])[kbsw]+ 
-                        (D.f[dirBSE ])[kbse]+ (D.f[dirBNW ])[kbnw]+
+                        (D.f[TNE ])[ktne]+ (D.f[TSW ])[ktsw]+ 
+                        (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]+ 
+                        (D.f[BNE ])[kbne]+ (D.f[BSW ])[kbsw]+ 
+                        (D.f[BSE ])[kbse]+ (D.f[BNW ])[kbnw]+
                         RHO;
 
-         vxD[k]     =   (D.f[dirE   ])[ke  ]- (D.f[dirW   ])[kw  ]+ 
-                        (D.f[dirNE  ])[kne ]- (D.f[dirSW  ])[ksw ]+
-                        (D.f[dirSE  ])[kse ]- (D.f[dirNW  ])[knw ]+
-                        (D.f[dirTE  ])[kte ]- (D.f[dirBW  ])[kbw ]+
-                        (D.f[dirBE  ])[kbe ]- (D.f[dirTW  ])[ktw ]+
-                        (D.f[dirTNE ])[ktne]- (D.f[dirTSW ])[ktsw]+ 
-                        (D.f[dirTSE ])[ktse]- (D.f[dirTNW ])[ktnw]+ 
-                        (D.f[dirBNE ])[kbne]- (D.f[dirBSW ])[kbsw]+ 
-                        (D.f[dirBSE ])[kbse]- (D.f[dirBNW ])[kbnw]+
+         vxD[k]     =   (D.f[E   ])[ke  ]- (D.f[W   ])[kw  ]+ 
+                        (D.f[NE  ])[kne ]- (D.f[SW  ])[ksw ]+
+                        (D.f[SE  ])[kse ]- (D.f[NW  ])[knw ]+
+                        (D.f[TE  ])[kte ]- (D.f[BW  ])[kbw ]+
+                        (D.f[BE  ])[kbe ]- (D.f[TW  ])[ktw ]+
+                        (D.f[TNE ])[ktne]- (D.f[TSW ])[ktsw]+ 
+                        (D.f[TSE ])[ktse]- (D.f[TNW ])[ktnw]+ 
+                        (D.f[BNE ])[kbne]- (D.f[BSW ])[kbsw]+ 
+                        (D.f[BSE ])[kbse]- (D.f[BNW ])[kbnw]+
                         VX;
 
-         vyD[k]     =   (D.f[dirN   ])[kn  ]- (D.f[dirS   ])[ks  ]+
-                        (D.f[dirNE  ])[kne ]- (D.f[dirSW  ])[ksw ]-
-                        (D.f[dirSE  ])[kse ]+ (D.f[dirNW  ])[knw ]+
-                        (D.f[dirTN  ])[ktn ]- (D.f[dirBS  ])[kbs ]+
-                        (D.f[dirBN  ])[kbn ]- (D.f[dirTS  ])[kts ]+
-                        (D.f[dirTNE ])[ktne]- (D.f[dirTSW ])[ktsw]- 
-                        (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]+ 
-                        (D.f[dirBNE ])[kbne]- (D.f[dirBSW ])[kbsw]- 
-                        (D.f[dirBSE ])[kbse]+ (D.f[dirBNW ])[kbnw]+
+         vyD[k]     =   (D.f[N   ])[kn  ]- (D.f[S   ])[ks  ]+
+                        (D.f[NE  ])[kne ]- (D.f[SW  ])[ksw ]-
+                        (D.f[SE  ])[kse ]+ (D.f[NW  ])[knw ]+
+                        (D.f[TN  ])[ktn ]- (D.f[BS  ])[kbs ]+
+                        (D.f[BN  ])[kbn ]- (D.f[TS  ])[kts ]+
+                        (D.f[TNE ])[ktne]- (D.f[TSW ])[ktsw]- 
+                        (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]+ 
+                        (D.f[BNE ])[kbne]- (D.f[BSW ])[kbsw]- 
+                        (D.f[BSE ])[kbse]+ (D.f[BNW ])[kbnw]+
                         VY;
 
-         vzD[k]     =   (D.f[dirT   ])[kt  ]- (D.f[dirB   ])[kb  ]+
-                        (D.f[dirTE  ])[kte ]- (D.f[dirBW  ])[kbw ]-
-                        (D.f[dirBE  ])[kbe ]+ (D.f[dirTW  ])[ktw ]+
-                        (D.f[dirTN  ])[ktn ]- (D.f[dirBS  ])[kbs ]-
-                        (D.f[dirBN  ])[kbn ]+ (D.f[dirTS  ])[kts ]+
-                        (D.f[dirTNE ])[ktne]+ (D.f[dirTSW ])[ktsw]+ 
-                        (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]- 
-                        (D.f[dirBNE ])[kbne]- (D.f[dirBSW ])[kbsw]- 
-                        (D.f[dirBSE ])[kbse]- (D.f[dirBNW ])[kbnw]+
+         vzD[k]     =   (D.f[T   ])[kt  ]- (D.f[B   ])[kb  ]+
+                        (D.f[TE  ])[kte ]- (D.f[BW  ])[kbw ]-
+                        (D.f[BE  ])[kbe ]+ (D.f[TW  ])[ktw ]+
+                        (D.f[TN  ])[ktn ]- (D.f[BS  ])[kbs ]-
+                        (D.f[BN  ])[kbn ]+ (D.f[TS  ])[kts ]+
+                        (D.f[TNE ])[ktne]+ (D.f[TSW ])[ktsw]+ 
+                        (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]- 
+                        (D.f[BNE ])[kbne]- (D.f[BSW ])[kbsw]- 
+                        (D.f[BSE ])[kbse]- (D.f[BNW ])[kbnw]+
                         VZ;
 
-         pressD[k]  =   ((D.f[dirE   ])[ke  ]+ (D.f[dirW   ])[kw  ]+ 
-                        (D.f[dirN   ])[kn  ]+ (D.f[dirS   ])[ks  ]+
-                        (D.f[dirT   ])[kt  ]+ (D.f[dirB   ])[kb  ]+
+         pressD[k]  =   ((D.f[E   ])[ke  ]+ (D.f[W   ])[kw  ]+ 
+                        (D.f[N   ])[kn  ]+ (D.f[S   ])[ks  ]+
+                        (D.f[T   ])[kt  ]+ (D.f[B   ])[kb  ]+
                         c2o1*(
-                        (D.f[dirNE  ])[kne ]+ (D.f[dirSW  ])[ksw ]+
-                        (D.f[dirSE  ])[kse ]+ (D.f[dirNW  ])[knw ]+
-                        (D.f[dirTE  ])[kte ]+ (D.f[dirBW  ])[kbw ]+
-                        (D.f[dirBE  ])[kbe ]+ (D.f[dirTW  ])[ktw ]+
-                        (D.f[dirTN  ])[ktn ]+ (D.f[dirBS  ])[kbs ]+
-                        (D.f[dirBN  ])[kbn ]+ (D.f[dirTS  ])[kts ])+
+                        (D.f[NE  ])[kne ]+ (D.f[SW  ])[ksw ]+
+                        (D.f[SE  ])[kse ]+ (D.f[NW  ])[knw ]+
+                        (D.f[TE  ])[kte ]+ (D.f[BW  ])[kbw ]+
+                        (D.f[BE  ])[kbe ]+ (D.f[TW  ])[ktw ]+
+                        (D.f[TN  ])[ktn ]+ (D.f[BS  ])[kbs ]+
+                        (D.f[BN  ])[kbn ]+ (D.f[TS  ])[kts ])+
                         c3o1*(
-                        (D.f[dirTNE ])[ktne]+ (D.f[dirTSW ])[ktsw]+ 
-                        (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]+ 
-                        (D.f[dirBNE ])[kbne]+ (D.f[dirBSW ])[kbsw]+ 
-                        (D.f[dirBSE ])[kbse]+ (D.f[dirBNW ])[kbnw])-
+                        (D.f[TNE ])[ktne]+ (D.f[TSW ])[ktsw]+ 
+                        (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]+ 
+                        (D.f[BNE ])[kbne]+ (D.f[BSW ])[kbsw]+ 
+                        (D.f[BSE ])[kbse]+ (D.f[BNW ])[kbnw])-
                         rhoD[k]-(vxD[k] * vxD[k] + vyD[k] * vyD[k] + vzD[k] * vzD[k]) * (c1o1+rhoD[k])) * c1o2+rhoD[k]+
                         PRESS;    
          //achtung op hart gesetzt Annahme op = 1 ;                                                    ^^^^(1.0/op-0.5)=0.5
@@ -569,63 +569,63 @@ extern "C" __global__ void LBCalcMedCompSP27( real* vxD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -684,33 +684,33 @@ extern "C" __global__ void LBCalcMedCompSP27( real* vxD,
 
       if(geoD[k] == GEO_FLUID)
       {
-		  real mfcbb = (D.f[dirE])[k];//[ke   ];
-		  real mfabb = (D.f[dirW])[kw];//[kw   ];  
-		  real mfbcb = (D.f[dirN])[k];//[kn   ];
-		  real mfbab = (D.f[dirS])[ks];//[ks   ];  
-		  real mfbbc = (D.f[dirT])[k];//[kt   ];
-		  real mfbba = (D.f[dirB])[kb];//[kb   ];  
-		  real mfccb = (D.f[dirNE])[k];//[kne  ];  
-		  real mfaab = (D.f[dirSW])[ksw];//[ksw  ];
-		  real mfcab = (D.f[dirSE])[ks];//[kse  ]; 
-		  real mfacb = (D.f[dirNW])[kw];//[knw  ]; 
-		  real mfcbc = (D.f[dirTE])[k];//[kte  ];  
-		  real mfaba = (D.f[dirBW])[kbw];//[kbw  ];
-		  real mfcba = (D.f[dirBE])[kb];//[kbe  ]; 
-		  real mfabc = (D.f[dirTW])[kw];//[ktw  ]; 
-		  real mfbcc = (D.f[dirTN])[k];//[ktn  ];  
-		  real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];
-		  real mfbca = (D.f[dirBN])[kb];//[kbn  ]; 
-		  real mfbac = (D.f[dirTS])[ks];//[kts  ]; 
+		  real mfcbb = (D.f[E])[k];//[ke   ];
+		  real mfabb = (D.f[W])[kw];//[kw   ];  
+		  real mfbcb = (D.f[N])[k];//[kn   ];
+		  real mfbab = (D.f[S])[ks];//[ks   ];  
+		  real mfbbc = (D.f[T])[k];//[kt   ];
+		  real mfbba = (D.f[B])[kb];//[kb   ];  
+		  real mfccb = (D.f[NE])[k];//[kne  ];  
+		  real mfaab = (D.f[SW])[ksw];//[ksw  ];
+		  real mfcab = (D.f[SE])[ks];//[kse  ]; 
+		  real mfacb = (D.f[NW])[kw];//[knw  ]; 
+		  real mfcbc = (D.f[TE])[k];//[kte  ];  
+		  real mfaba = (D.f[BW])[kbw];//[kbw  ];
+		  real mfcba = (D.f[BE])[kb];//[kbe  ]; 
+		  real mfabc = (D.f[TW])[kw];//[ktw  ]; 
+		  real mfbcc = (D.f[TN])[k];//[ktn  ];  
+		  real mfbaa = (D.f[BS])[kbs];//[kbs  ];
+		  real mfbca = (D.f[BN])[kb];//[kbn  ]; 
+		  real mfbac = (D.f[TS])[ks];//[kts  ]; 
 		  real mfbbb = (D.f[dirREST])[k];//[kzero];
-		  real mfccc = (D.f[dirTNE])[k];//[ktne ]; 
-		  real mfaac = (D.f[dirTSW])[ksw];//[ktsw ]; 
-		  real mfcac = (D.f[dirTSE])[ks];//[ktse ];
-		  real mfacc = (D.f[dirTNW])[kw];//[ktnw ];
-		  real mfcca = (D.f[dirBNE])[kb];//[kbne ];
-		  real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];
-		  real mfcaa = (D.f[dirBSE])[kbs];//[kbse ]; 
-		  real mfaca = (D.f[dirBNW])[kbw];//[kbnw ]; 
+		  real mfccc = (D.f[TNE])[k];//[ktne ]; 
+		  real mfaac = (D.f[TSW])[ksw];//[ktsw ]; 
+		  real mfcac = (D.f[TSE])[ks];//[ktse ];
+		  real mfacc = (D.f[TNW])[kw];//[ktnw ];
+		  real mfcca = (D.f[BNE])[kb];//[kbne ];
+		  real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];
+		  real mfcaa = (D.f[BSE])[kbs];//[kbse ]; 
+		  real mfaca = (D.f[BNW])[kbw];//[kbnw ]; 
 		  ////////////////////////////////////////////////////////////////////////////////////
 		  real drho = 
 			  ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
@@ -735,72 +735,72 @@ extern "C" __global__ void LBCalcMedCompSP27( real* vxD,
 			  (mfbbc - mfbba)) / rho) + VZ;
 
 		  //rhoD[k] =
-			 // (D.f[dirE])[ke] + (D.f[dirW])[kw] +
-			 // (D.f[dirN])[kn] + (D.f[dirS])[ks] +
-			 // (D.f[dirT])[kt] + (D.f[dirB])[kb] +
-			 // (D.f[dirNE])[kne] + (D.f[dirSW])[ksw] +
-			 // (D.f[dirSE])[kse] + (D.f[dirNW])[knw] +
-			 // (D.f[dirTE])[kte] + (D.f[dirBW])[kbw] +
-			 // (D.f[dirBE])[kbe] + (D.f[dirTW])[ktw] +
-			 // (D.f[dirTN])[ktn] + (D.f[dirBS])[kbs] +
-			 // (D.f[dirBN])[kbn] + (D.f[dirTS])[kts] +
+			 // (D.f[E])[ke] + (D.f[W])[kw] +
+			 // (D.f[N])[kn] + (D.f[S])[ks] +
+			 // (D.f[T])[kt] + (D.f[B])[kb] +
+			 // (D.f[NE])[kne] + (D.f[SW])[ksw] +
+			 // (D.f[SE])[kse] + (D.f[NW])[knw] +
+			 // (D.f[TE])[kte] + (D.f[BW])[kbw] +
+			 // (D.f[BE])[kbe] + (D.f[TW])[ktw] +
+			 // (D.f[TN])[ktn] + (D.f[BS])[kbs] +
+			 // (D.f[BN])[kbn] + (D.f[TS])[kts] +
 			 // (D.f[dirREST])[kzero] +
-			 // (D.f[dirTNE])[ktne] + (D.f[dirTSW])[ktsw] +
-			 // (D.f[dirTSE])[ktse] + (D.f[dirTNW])[ktnw] +
-			 // (D.f[dirBNE])[kbne] + (D.f[dirBSW])[kbsw] +
-			 // (D.f[dirBSE])[kbse] + (D.f[dirBNW])[kbnw];// +RHO;
+			 // (D.f[TNE])[ktne] + (D.f[TSW])[ktsw] +
+			 // (D.f[TSE])[ktse] + (D.f[TNW])[ktnw] +
+			 // (D.f[BNE])[kbne] + (D.f[BSW])[kbsw] +
+			 // (D.f[BSE])[kbse] + (D.f[BNW])[kbnw];// +RHO;
 
     //     vxD[k] =  
-			 //((D.f[dirE  ])[ke  ]- (D.f[dirW   ])[kw  ]+ 
-    //         (D.f[dirNE  ])[kne ]- (D.f[dirSW  ])[ksw ]+
-    //         (D.f[dirSE  ])[kse ]- (D.f[dirNW  ])[knw ]+
-    //         (D.f[dirTE  ])[kte ]- (D.f[dirBW  ])[kbw ]+
-    //         (D.f[dirBE  ])[kbe ]- (D.f[dirTW  ])[ktw ]+
-    //         (D.f[dirTNE ])[ktne]- (D.f[dirTSW ])[ktsw]+ 
-    //         (D.f[dirTSE ])[ktse]- (D.f[dirTNW ])[ktnw]+ 
-    //         (D.f[dirBNE ])[kbne]- (D.f[dirBSW ])[kbsw]+ 
-    //         (D.f[dirBSE ])[kbse]- (D.f[dirBNW ])[kbnw]) / (one + rhoD[k])+
+			 //((D.f[E  ])[ke  ]- (D.f[W   ])[kw  ]+ 
+    //         (D.f[NE  ])[kne ]- (D.f[SW  ])[ksw ]+
+    //         (D.f[SE  ])[kse ]- (D.f[NW  ])[knw ]+
+    //         (D.f[TE  ])[kte ]- (D.f[BW  ])[kbw ]+
+    //         (D.f[BE  ])[kbe ]- (D.f[TW  ])[ktw ]+
+    //         (D.f[TNE ])[ktne]- (D.f[TSW ])[ktsw]+ 
+    //         (D.f[TSE ])[ktse]- (D.f[TNW ])[ktnw]+ 
+    //         (D.f[BNE ])[kbne]- (D.f[BSW ])[kbsw]+ 
+    //         (D.f[BSE ])[kbse]- (D.f[BNW ])[kbnw]) / (one + rhoD[k])+
     //         VX;
 
     //     vyD[k] =  
-			 //((D.f[dirN  ])[kn  ]- (D.f[dirS   ])[ks  ]+
-    //         (D.f[dirNE  ])[kne ]- (D.f[dirSW  ])[ksw ]-
-    //         (D.f[dirSE  ])[kse ]+ (D.f[dirNW  ])[knw ]+
-    //         (D.f[dirTN  ])[ktn ]- (D.f[dirBS  ])[kbs ]+
-    //         (D.f[dirBN  ])[kbn ]- (D.f[dirTS  ])[kts ]+
-    //         (D.f[dirTNE ])[ktne]- (D.f[dirTSW ])[ktsw]- 
-    //         (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]+ 
-    //         (D.f[dirBNE ])[kbne]- (D.f[dirBSW ])[kbsw]- 
-    //         (D.f[dirBSE ])[kbse]+ (D.f[dirBNW ])[kbnw]) / (one + rhoD[k])+
+			 //((D.f[N  ])[kn  ]- (D.f[S   ])[ks  ]+
+    //         (D.f[NE  ])[kne ]- (D.f[SW  ])[ksw ]-
+    //         (D.f[SE  ])[kse ]+ (D.f[NW  ])[knw ]+
+    //         (D.f[TN  ])[ktn ]- (D.f[BS  ])[kbs ]+
+    //         (D.f[BN  ])[kbn ]- (D.f[TS  ])[kts ]+
+    //         (D.f[TNE ])[ktne]- (D.f[TSW ])[ktsw]- 
+    //         (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]+ 
+    //         (D.f[BNE ])[kbne]- (D.f[BSW ])[kbsw]- 
+    //         (D.f[BSE ])[kbse]+ (D.f[BNW ])[kbnw]) / (one + rhoD[k])+
     //         VY;
 
     //     vzD[k] =  
-			 //((D.f[dirT  ])[kt  ]- (D.f[dirB   ])[kb  ]+
-    //         (D.f[dirTE  ])[kte ]- (D.f[dirBW  ])[kbw ]-
-    //         (D.f[dirBE  ])[kbe ]+ (D.f[dirTW  ])[ktw ]+
-    //         (D.f[dirTN  ])[ktn ]- (D.f[dirBS  ])[kbs ]-
-    //         (D.f[dirBN  ])[kbn ]+ (D.f[dirTS  ])[kts ]+
-    //         (D.f[dirTNE ])[ktne]+ (D.f[dirTSW ])[ktsw]+ 
-    //         (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]- 
-    //         (D.f[dirBNE ])[kbne]- (D.f[dirBSW ])[kbsw]- 
-    //         (D.f[dirBSE ])[kbse]- (D.f[dirBNW ])[kbnw]) / (one + rhoD[k])+
+			 //((D.f[T  ])[kt  ]- (D.f[B   ])[kb  ]+
+    //         (D.f[TE  ])[kte ]- (D.f[BW  ])[kbw ]-
+    //         (D.f[BE  ])[kbe ]+ (D.f[TW  ])[ktw ]+
+    //         (D.f[TN  ])[ktn ]- (D.f[BS  ])[kbs ]-
+    //         (D.f[BN  ])[kbn ]+ (D.f[TS  ])[kts ]+
+    //         (D.f[TNE ])[ktne]+ (D.f[TSW ])[ktsw]+ 
+    //         (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]- 
+    //         (D.f[BNE ])[kbne]- (D.f[BSW ])[kbsw]- 
+    //         (D.f[BSE ])[kbse]- (D.f[BNW ])[kbnw]) / (one + rhoD[k])+
     //         VZ;
 
-         pressD[k]  =  ((D.f[dirE   ])[ke  ]+ (D.f[dirW   ])[kw  ]+ 
-                        (D.f[dirN   ])[kn  ]+ (D.f[dirS   ])[ks  ]+
-                        (D.f[dirT   ])[kt  ]+ (D.f[dirB   ])[kb  ]+
+         pressD[k]  =  ((D.f[E   ])[ke  ]+ (D.f[W   ])[kw  ]+ 
+                        (D.f[N   ])[kn  ]+ (D.f[S   ])[ks  ]+
+                        (D.f[T   ])[kt  ]+ (D.f[B   ])[kb  ]+
                         c2o1*(
-                        (D.f[dirNE  ])[kne ]+ (D.f[dirSW  ])[ksw ]+
-                        (D.f[dirSE  ])[kse ]+ (D.f[dirNW  ])[knw ]+
-                        (D.f[dirTE  ])[kte ]+ (D.f[dirBW  ])[kbw ]+
-                        (D.f[dirBE  ])[kbe ]+ (D.f[dirTW  ])[ktw ]+
-                        (D.f[dirTN  ])[ktn ]+ (D.f[dirBS  ])[kbs ]+
-                        (D.f[dirBN  ])[kbn ]+ (D.f[dirTS  ])[kts ])+
+                        (D.f[NE  ])[kne ]+ (D.f[SW  ])[ksw ]+
+                        (D.f[SE  ])[kse ]+ (D.f[NW  ])[knw ]+
+                        (D.f[TE  ])[kte ]+ (D.f[BW  ])[kbw ]+
+                        (D.f[BE  ])[kbe ]+ (D.f[TW  ])[ktw ]+
+                        (D.f[TN  ])[ktn ]+ (D.f[BS  ])[kbs ]+
+                        (D.f[BN  ])[kbn ]+ (D.f[TS  ])[kts ])+
                         c3o1*(
-                        (D.f[dirTNE ])[ktne]+ (D.f[dirTSW ])[ktsw]+ 
-                        (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]+ 
-                        (D.f[dirBNE ])[kbne]+ (D.f[dirBSW ])[kbsw]+ 
-                        (D.f[dirBSE ])[kbse]+ (D.f[dirBNW ])[kbnw])-
+                        (D.f[TNE ])[ktne]+ (D.f[TSW ])[ktsw]+ 
+                        (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]+ 
+                        (D.f[BNE ])[kbne]+ (D.f[BSW ])[kbsw]+ 
+                        (D.f[BSE ])[kbse]+ (D.f[BNW ])[kbnw])-
                         rhoD[k]-(vxD[k] * vxD[k] + vyD[k] * vyD[k] + vzD[k] * vzD[k]) * (c1o1+rhoD[k])) * c1o2+rhoD[k]+
                         PRESS;    
          //achtung op hart gesetzt Annahme op = 1 ;                                                    ^^^^(1.0/op-0.5)=0.5
@@ -849,125 +849,125 @@ extern "C" __global__ void LBCalcMedCompAD27(
 	Distributions27 D;
 	if (isEvenTimestep == true)
 	{
-		D.f[dirE] = &DD[dirE   *size_Mat];
-		D.f[dirW] = &DD[dirW   *size_Mat];
-		D.f[dirN] = &DD[dirN   *size_Mat];
-		D.f[dirS] = &DD[dirS   *size_Mat];
-		D.f[dirT] = &DD[dirT   *size_Mat];
-		D.f[dirB] = &DD[dirB   *size_Mat];
-		D.f[dirNE] = &DD[dirNE  *size_Mat];
-		D.f[dirSW] = &DD[dirSW  *size_Mat];
-		D.f[dirSE] = &DD[dirSE  *size_Mat];
-		D.f[dirNW] = &DD[dirNW  *size_Mat];
-		D.f[dirTE] = &DD[dirTE  *size_Mat];
-		D.f[dirBW] = &DD[dirBW  *size_Mat];
-		D.f[dirBE] = &DD[dirBE  *size_Mat];
-		D.f[dirTW] = &DD[dirTW  *size_Mat];
-		D.f[dirTN] = &DD[dirTN  *size_Mat];
-		D.f[dirBS] = &DD[dirBS  *size_Mat];
-		D.f[dirBN] = &DD[dirBN  *size_Mat];
-		D.f[dirTS] = &DD[dirTS  *size_Mat];
+		D.f[E] = &DD[E   *size_Mat];
+		D.f[W] = &DD[W   *size_Mat];
+		D.f[N] = &DD[N   *size_Mat];
+		D.f[S] = &DD[S   *size_Mat];
+		D.f[T] = &DD[T   *size_Mat];
+		D.f[B] = &DD[B   *size_Mat];
+		D.f[NE] = &DD[NE  *size_Mat];
+		D.f[SW] = &DD[SW  *size_Mat];
+		D.f[SE] = &DD[SE  *size_Mat];
+		D.f[NW] = &DD[NW  *size_Mat];
+		D.f[TE] = &DD[TE  *size_Mat];
+		D.f[BW] = &DD[BW  *size_Mat];
+		D.f[BE] = &DD[BE  *size_Mat];
+		D.f[TW] = &DD[TW  *size_Mat];
+		D.f[TN] = &DD[TN  *size_Mat];
+		D.f[BS] = &DD[BS  *size_Mat];
+		D.f[BN] = &DD[BN  *size_Mat];
+		D.f[TS] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE] = &DD[dirTNE *size_Mat];
-		D.f[dirTSW] = &DD[dirTSW *size_Mat];
-		D.f[dirTSE] = &DD[dirTSE *size_Mat];
-		D.f[dirTNW] = &DD[dirTNW *size_Mat];
-		D.f[dirBNE] = &DD[dirBNE *size_Mat];
-		D.f[dirBSW] = &DD[dirBSW *size_Mat];
-		D.f[dirBSE] = &DD[dirBSE *size_Mat];
-		D.f[dirBNW] = &DD[dirBNW *size_Mat];
+		D.f[TNE] = &DD[TNE *size_Mat];
+		D.f[TSW] = &DD[TSW *size_Mat];
+		D.f[TSE] = &DD[TSE *size_Mat];
+		D.f[TNW] = &DD[TNW *size_Mat];
+		D.f[BNE] = &DD[BNE *size_Mat];
+		D.f[BSW] = &DD[BSW *size_Mat];
+		D.f[BSE] = &DD[BSE *size_Mat];
+		D.f[BNW] = &DD[BNW *size_Mat];
 	}
 	else
 	{
-		D.f[dirW] = &DD[dirE   *size_Mat];
-		D.f[dirE] = &DD[dirW   *size_Mat];
-		D.f[dirS] = &DD[dirN   *size_Mat];
-		D.f[dirN] = &DD[dirS   *size_Mat];
-		D.f[dirB] = &DD[dirT   *size_Mat];
-		D.f[dirT] = &DD[dirB   *size_Mat];
-		D.f[dirSW] = &DD[dirNE  *size_Mat];
-		D.f[dirNE] = &DD[dirSW  *size_Mat];
-		D.f[dirNW] = &DD[dirSE  *size_Mat];
-		D.f[dirSE] = &DD[dirNW  *size_Mat];
-		D.f[dirBW] = &DD[dirTE  *size_Mat];
-		D.f[dirTE] = &DD[dirBW  *size_Mat];
-		D.f[dirTW] = &DD[dirBE  *size_Mat];
-		D.f[dirBE] = &DD[dirTW  *size_Mat];
-		D.f[dirBS] = &DD[dirTN  *size_Mat];
-		D.f[dirTN] = &DD[dirBS  *size_Mat];
-		D.f[dirTS] = &DD[dirBN  *size_Mat];
-		D.f[dirBN] = &DD[dirTS  *size_Mat];
+		D.f[W] = &DD[E   *size_Mat];
+		D.f[E] = &DD[W   *size_Mat];
+		D.f[S] = &DD[N   *size_Mat];
+		D.f[N] = &DD[S   *size_Mat];
+		D.f[B] = &DD[T   *size_Mat];
+		D.f[T] = &DD[B   *size_Mat];
+		D.f[SW] = &DD[NE  *size_Mat];
+		D.f[NE] = &DD[SW  *size_Mat];
+		D.f[NW] = &DD[SE  *size_Mat];
+		D.f[SE] = &DD[NW  *size_Mat];
+		D.f[BW] = &DD[TE  *size_Mat];
+		D.f[TE] = &DD[BW  *size_Mat];
+		D.f[TW] = &DD[BE  *size_Mat];
+		D.f[BE] = &DD[TW  *size_Mat];
+		D.f[BS] = &DD[TN  *size_Mat];
+		D.f[TN] = &DD[BS  *size_Mat];
+		D.f[TS] = &DD[BN  *size_Mat];
+		D.f[BN] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE] = &DD[dirBSW *size_Mat];
-		D.f[dirTSW] = &DD[dirBNE *size_Mat];
-		D.f[dirTSE] = &DD[dirBNW *size_Mat];
-		D.f[dirTNW] = &DD[dirBSE *size_Mat];
-		D.f[dirBNE] = &DD[dirTSW *size_Mat];
-		D.f[dirBSW] = &DD[dirTNE *size_Mat];
-		D.f[dirBSE] = &DD[dirTNW *size_Mat];
-		D.f[dirBNW] = &DD[dirTSE *size_Mat];
+		D.f[TNE] = &DD[BSW *size_Mat];
+		D.f[TSW] = &DD[BNE *size_Mat];
+		D.f[TSE] = &DD[BNW *size_Mat];
+		D.f[TNW] = &DD[BSE *size_Mat];
+		D.f[BNE] = &DD[TSW *size_Mat];
+		D.f[BSW] = &DD[TNE *size_Mat];
+		D.f[BSE] = &DD[TNW *size_Mat];
+		D.f[BNW] = &DD[TSE *size_Mat];
 	}
 	////////////////////////////////////////////////////////////////////////////////
 	Distributions27 Dad;
 	if (isEvenTimestep == true)
 	{
-		Dad.f[dirE]    = &DD_AD[dirE   *size_Mat];
-		Dad.f[dirW]    = &DD_AD[dirW   *size_Mat];
-		Dad.f[dirN]    = &DD_AD[dirN   *size_Mat];
-		Dad.f[dirS]    = &DD_AD[dirS   *size_Mat];
-		Dad.f[dirT]    = &DD_AD[dirT   *size_Mat];
-		Dad.f[dirB]    = &DD_AD[dirB   *size_Mat];
-		Dad.f[dirNE]   = &DD_AD[dirNE  *size_Mat];
-		Dad.f[dirSW]   = &DD_AD[dirSW  *size_Mat];
-		Dad.f[dirSE]   = &DD_AD[dirSE  *size_Mat];
-		Dad.f[dirNW]   = &DD_AD[dirNW  *size_Mat];
-		Dad.f[dirTE]   = &DD_AD[dirTE  *size_Mat];
-		Dad.f[dirBW]   = &DD_AD[dirBW  *size_Mat];
-		Dad.f[dirBE]   = &DD_AD[dirBE  *size_Mat];
-		Dad.f[dirTW]   = &DD_AD[dirTW  *size_Mat];
-		Dad.f[dirTN]   = &DD_AD[dirTN  *size_Mat];
-		Dad.f[dirBS]   = &DD_AD[dirBS  *size_Mat];
-		Dad.f[dirBN]   = &DD_AD[dirBN  *size_Mat];
-		Dad.f[dirTS]   = &DD_AD[dirTS  *size_Mat];
+		Dad.f[E]    = &DD_AD[E   *size_Mat];
+		Dad.f[W]    = &DD_AD[W   *size_Mat];
+		Dad.f[N]    = &DD_AD[N   *size_Mat];
+		Dad.f[S]    = &DD_AD[S   *size_Mat];
+		Dad.f[T]    = &DD_AD[T   *size_Mat];
+		Dad.f[B]    = &DD_AD[B   *size_Mat];
+		Dad.f[NE]   = &DD_AD[NE  *size_Mat];
+		Dad.f[SW]   = &DD_AD[SW  *size_Mat];
+		Dad.f[SE]   = &DD_AD[SE  *size_Mat];
+		Dad.f[NW]   = &DD_AD[NW  *size_Mat];
+		Dad.f[TE]   = &DD_AD[TE  *size_Mat];
+		Dad.f[BW]   = &DD_AD[BW  *size_Mat];
+		Dad.f[BE]   = &DD_AD[BE  *size_Mat];
+		Dad.f[TW]   = &DD_AD[TW  *size_Mat];
+		Dad.f[TN]   = &DD_AD[TN  *size_Mat];
+		Dad.f[BS]   = &DD_AD[BS  *size_Mat];
+		Dad.f[BN]   = &DD_AD[BN  *size_Mat];
+		Dad.f[TS]   = &DD_AD[TS  *size_Mat];
 		Dad.f[dirREST] = &DD_AD[dirREST*size_Mat];
-		Dad.f[dirTNE]  = &DD_AD[dirTNE *size_Mat];
-		Dad.f[dirTSW]  = &DD_AD[dirTSW *size_Mat];
-		Dad.f[dirTSE]  = &DD_AD[dirTSE *size_Mat];
-		Dad.f[dirTNW]  = &DD_AD[dirTNW *size_Mat];
-		Dad.f[dirBNE]  = &DD_AD[dirBNE *size_Mat];
-		Dad.f[dirBSW]  = &DD_AD[dirBSW *size_Mat];
-		Dad.f[dirBSE]  = &DD_AD[dirBSE *size_Mat];
-		Dad.f[dirBNW]  = &DD_AD[dirBNW *size_Mat];
+		Dad.f[TNE]  = &DD_AD[TNE *size_Mat];
+		Dad.f[TSW]  = &DD_AD[TSW *size_Mat];
+		Dad.f[TSE]  = &DD_AD[TSE *size_Mat];
+		Dad.f[TNW]  = &DD_AD[TNW *size_Mat];
+		Dad.f[BNE]  = &DD_AD[BNE *size_Mat];
+		Dad.f[BSW]  = &DD_AD[BSW *size_Mat];
+		Dad.f[BSE]  = &DD_AD[BSE *size_Mat];
+		Dad.f[BNW]  = &DD_AD[BNW *size_Mat];
 	}						
 	else					
 	{						
-		Dad.f[dirW]    = &DD_AD[dirE   *size_Mat];
-		Dad.f[dirE]    = &DD_AD[dirW   *size_Mat];
-		Dad.f[dirS]    = &DD_AD[dirN   *size_Mat];
-		Dad.f[dirN]    = &DD_AD[dirS   *size_Mat];
-		Dad.f[dirB]    = &DD_AD[dirT   *size_Mat];
-		Dad.f[dirT]    = &DD_AD[dirB   *size_Mat];
-		Dad.f[dirSW]   = &DD_AD[dirNE  *size_Mat];
-		Dad.f[dirNE]   = &DD_AD[dirSW  *size_Mat];
-		Dad.f[dirNW]   = &DD_AD[dirSE  *size_Mat];
-		Dad.f[dirSE]   = &DD_AD[dirNW  *size_Mat];
-		Dad.f[dirBW]   = &DD_AD[dirTE  *size_Mat];
-		Dad.f[dirTE]   = &DD_AD[dirBW  *size_Mat];
-		Dad.f[dirTW]   = &DD_AD[dirBE  *size_Mat];
-		Dad.f[dirBE]   = &DD_AD[dirTW  *size_Mat];
-		Dad.f[dirBS]   = &DD_AD[dirTN  *size_Mat];
-		Dad.f[dirTN]   = &DD_AD[dirBS  *size_Mat];
-		Dad.f[dirTS]   = &DD_AD[dirBN  *size_Mat];
-		Dad.f[dirBN]   = &DD_AD[dirTS  *size_Mat];
+		Dad.f[W]    = &DD_AD[E   *size_Mat];
+		Dad.f[E]    = &DD_AD[W   *size_Mat];
+		Dad.f[S]    = &DD_AD[N   *size_Mat];
+		Dad.f[N]    = &DD_AD[S   *size_Mat];
+		Dad.f[B]    = &DD_AD[T   *size_Mat];
+		Dad.f[T]    = &DD_AD[B   *size_Mat];
+		Dad.f[SW]   = &DD_AD[NE  *size_Mat];
+		Dad.f[NE]   = &DD_AD[SW  *size_Mat];
+		Dad.f[NW]   = &DD_AD[SE  *size_Mat];
+		Dad.f[SE]   = &DD_AD[NW  *size_Mat];
+		Dad.f[BW]   = &DD_AD[TE  *size_Mat];
+		Dad.f[TE]   = &DD_AD[BW  *size_Mat];
+		Dad.f[TW]   = &DD_AD[BE  *size_Mat];
+		Dad.f[BE]   = &DD_AD[TW  *size_Mat];
+		Dad.f[BS]   = &DD_AD[TN  *size_Mat];
+		Dad.f[TN]   = &DD_AD[BS  *size_Mat];
+		Dad.f[TS]   = &DD_AD[BN  *size_Mat];
+		Dad.f[BN]   = &DD_AD[TS  *size_Mat];
 		Dad.f[dirREST] = &DD_AD[dirREST*size_Mat];
-		Dad.f[dirTNE]  = &DD_AD[dirBSW *size_Mat];
-		Dad.f[dirTSW]  = &DD_AD[dirBNE *size_Mat];
-		Dad.f[dirTSE]  = &DD_AD[dirBNW *size_Mat];
-		Dad.f[dirTNW]  = &DD_AD[dirBSE *size_Mat];
-		Dad.f[dirBNE]  = &DD_AD[dirTSW *size_Mat];
-		Dad.f[dirBSW]  = &DD_AD[dirTNE *size_Mat];
-		Dad.f[dirBSE]  = &DD_AD[dirTNW *size_Mat];
-		Dad.f[dirBNW]  = &DD_AD[dirTSE *size_Mat];
+		Dad.f[TNE]  = &DD_AD[BSW *size_Mat];
+		Dad.f[TSW]  = &DD_AD[BNE *size_Mat];
+		Dad.f[TSE]  = &DD_AD[BNW *size_Mat];
+		Dad.f[TNW]  = &DD_AD[BSE *size_Mat];
+		Dad.f[BNE]  = &DD_AD[TSW *size_Mat];
+		Dad.f[BSW]  = &DD_AD[TNE *size_Mat];
+		Dad.f[BSE]  = &DD_AD[TNW *size_Mat];
+		Dad.f[BNW]  = &DD_AD[TSE *size_Mat];
 	}
 	////////////////////////////////////////////////////////////////////////////////
 	const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -1028,33 +1028,33 @@ extern "C" __global__ void LBCalcMedCompAD27(
 
 		if (geoD[k] == GEO_FLUID)
 		{
-			real mfcbb = (D.f[dirE])[k];//[ke   ];
-			real mfabb = (D.f[dirW])[kw];//[kw   ];  
-			real mfbcb = (D.f[dirN])[k];//[kn   ];
-			real mfbab = (D.f[dirS])[ks];//[ks   ];  
-			real mfbbc = (D.f[dirT])[k];//[kt   ];
-			real mfbba = (D.f[dirB])[kb];//[kb   ];  
-			real mfccb = (D.f[dirNE])[k];//[kne  ];  
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ]; 
-			real mfacb = (D.f[dirNW])[kw];//[knw  ]; 
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];  
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ]; 
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ]; 
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];  
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ]; 
-			real mfbac = (D.f[dirTS])[ks];//[kts  ]; 
+			real mfcbb = (D.f[E])[k];//[ke   ];
+			real mfabb = (D.f[W])[kw];//[kw   ];  
+			real mfbcb = (D.f[N])[k];//[kn   ];
+			real mfbab = (D.f[S])[ks];//[ks   ];  
+			real mfbbc = (D.f[T])[k];//[kt   ];
+			real mfbba = (D.f[B])[kb];//[kb   ];  
+			real mfccb = (D.f[NE])[k];//[kne  ];  
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];
+			real mfcab = (D.f[SE])[ks];//[kse  ]; 
+			real mfacb = (D.f[NW])[kw];//[knw  ]; 
+			real mfcbc = (D.f[TE])[k];//[kte  ];  
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];
+			real mfcba = (D.f[BE])[kb];//[kbe  ]; 
+			real mfabc = (D.f[TW])[kw];//[ktw  ]; 
+			real mfbcc = (D.f[TN])[k];//[ktn  ];  
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];
+			real mfbca = (D.f[BN])[kb];//[kbn  ]; 
+			real mfbac = (D.f[TS])[ks];//[kts  ]; 
 			real mfbbb = (D.f[dirREST])[k];//[kzero];
-			real mfccc = (D.f[dirTNE])[k];//[ktne ]; 
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ]; 
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ]; 
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ]; 
+			real mfccc = (D.f[TNE])[k];//[ktne ]; 
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ]; 
+			real mfcac = (D.f[TSE])[ks];//[ktse ];
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];
+			real mfcca = (D.f[BNE])[kb];//[kbne ];
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ]; 
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ]; 
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho =
 				((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
@@ -1081,52 +1081,52 @@ extern "C" __global__ void LBCalcMedCompAD27(
 					(mfbbc - mfbba)) / rho) + VZ;
 
 			pressD[k] = 
-				((D.f[dirE])[ke] + (D.f[dirW])[kw] +
-				 (D.f[dirN])[kn] + (D.f[dirS])[ks] +
-				 (D.f[dirT])[kt] + (D.f[dirB])[kb] +
+				((D.f[E])[ke] + (D.f[W])[kw] +
+				 (D.f[N])[kn] + (D.f[S])[ks] +
+				 (D.f[T])[kt] + (D.f[B])[kb] +
 				 c2o1*(
-				 (D.f[dirNE])[kne] + (D.f[dirSW])[ksw] +
-				 (D.f[dirSE])[kse] + (D.f[dirNW])[knw] +
-				 (D.f[dirTE])[kte] + (D.f[dirBW])[kbw] +
-				 (D.f[dirBE])[kbe] + (D.f[dirTW])[ktw] +
-				 (D.f[dirTN])[ktn] + (D.f[dirBS])[kbs] +
-				 (D.f[dirBN])[kbn] + (D.f[dirTS])[kts]) +
+				 (D.f[NE])[kne] + (D.f[SW])[ksw] +
+				 (D.f[SE])[kse] + (D.f[NW])[knw] +
+				 (D.f[TE])[kte] + (D.f[BW])[kbw] +
+				 (D.f[BE])[kbe] + (D.f[TW])[ktw] +
+				 (D.f[TN])[ktn] + (D.f[BS])[kbs] +
+				 (D.f[BN])[kbn] + (D.f[TS])[kts]) +
 				 c3o1*(
-				 (D.f[dirTNE])[ktne] + (D.f[dirTSW])[ktsw] +
-				 (D.f[dirTSE])[ktse] + (D.f[dirTNW])[ktnw] +
-				 (D.f[dirBNE])[kbne] + (D.f[dirBSW])[kbsw] +
-				 (D.f[dirBSE])[kbse] + (D.f[dirBNW])[kbnw]) -
+				 (D.f[TNE])[ktne] + (D.f[TSW])[ktsw] +
+				 (D.f[TSE])[ktse] + (D.f[TNW])[ktnw] +
+				 (D.f[BNE])[kbne] + (D.f[BSW])[kbsw] +
+				 (D.f[BSE])[kbse] + (D.f[BNW])[kbnw]) -
 				 rhoD[k] - (vxD[k] * vxD[k] + vyD[k] * vyD[k] + vzD[k] * vzD[k]) * (c1o1 + rhoD[k])) * c1o2 + rhoD[k] +
 				 PRESS;
 				 //achtung op hart gesetzt Annahme op = 1 ;                                                    ^^^^(1.0/op-0.5)=0.5
 			//////////////////////////////////////////////////////////////////////////
-			mfcbb = (Dad.f[dirE   ])[k   ];
-			mfabb = (Dad.f[dirW   ])[kw  ];
-			mfbcb = (Dad.f[dirN   ])[k   ];
-			mfbab = (Dad.f[dirS   ])[ks  ];
-			mfbbc = (Dad.f[dirT   ])[k   ];
-			mfbba = (Dad.f[dirB   ])[kb  ];
-			mfccb = (Dad.f[dirNE  ])[k   ];
-			mfaab = (Dad.f[dirSW  ])[ksw ];
-			mfcab = (Dad.f[dirSE  ])[ks  ];
-			mfacb = (Dad.f[dirNW  ])[kw  ];
-			mfcbc = (Dad.f[dirTE  ])[k   ];
-			mfaba = (Dad.f[dirBW  ])[kbw ];
-			mfcba = (Dad.f[dirBE  ])[kb  ];
-			mfabc = (Dad.f[dirTW  ])[kw  ];
-			mfbcc = (Dad.f[dirTN  ])[k   ];
-			mfbaa = (Dad.f[dirBS  ])[kbs ];
-			mfbca = (Dad.f[dirBN  ])[kb  ];
-			mfbac = (Dad.f[dirTS  ])[ks  ];
+			mfcbb = (Dad.f[E   ])[k   ];
+			mfabb = (Dad.f[W   ])[kw  ];
+			mfbcb = (Dad.f[N   ])[k   ];
+			mfbab = (Dad.f[S   ])[ks  ];
+			mfbbc = (Dad.f[T   ])[k   ];
+			mfbba = (Dad.f[B   ])[kb  ];
+			mfccb = (Dad.f[NE  ])[k   ];
+			mfaab = (Dad.f[SW  ])[ksw ];
+			mfcab = (Dad.f[SE  ])[ks  ];
+			mfacb = (Dad.f[NW  ])[kw  ];
+			mfcbc = (Dad.f[TE  ])[k   ];
+			mfaba = (Dad.f[BW  ])[kbw ];
+			mfcba = (Dad.f[BE  ])[kb  ];
+			mfabc = (Dad.f[TW  ])[kw  ];
+			mfbcc = (Dad.f[TN  ])[k   ];
+			mfbaa = (Dad.f[BS  ])[kbs ];
+			mfbca = (Dad.f[BN  ])[kb  ];
+			mfbac = (Dad.f[TS  ])[ks  ];
 			mfbbb = (Dad.f[dirREST])[k   ];
-			mfccc = (Dad.f[dirTNE ])[k   ];
-			mfaac = (Dad.f[dirTSW ])[ksw ];
-			mfcac = (Dad.f[dirTSE ])[ks  ];
-			mfacc = (Dad.f[dirTNW ])[kw  ];
-			mfcca = (Dad.f[dirBNE ])[kb  ];
-			mfaaa = (Dad.f[dirBSW ])[kbsw];
-			mfcaa = (Dad.f[dirBSE ])[kbs ];
-			mfaca = (Dad.f[dirBNW ])[kbw ];
+			mfccc = (Dad.f[TNE ])[k   ];
+			mfaac = (Dad.f[TSW ])[ksw ];
+			mfcac = (Dad.f[TSE ])[ks  ];
+			mfacc = (Dad.f[TNW ])[kw  ];
+			mfcca = (Dad.f[BNE ])[kb  ];
+			mfaaa = (Dad.f[BSW ])[kbsw];
+			mfcaa = (Dad.f[BSE ])[kbs ];
+			mfaca = (Dad.f[BNW ])[kbw ];
 			//////////////////////////////////////////////////////////////////////////
 			concD[k] = 
 				((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa)   + (mfaac + mfcca))) +
@@ -1357,63 +1357,63 @@ extern "C" __global__ void LBCalcMeasurePoints( real* vxMP,
 	Distributions27 D;
 	if (isEvenTimestep==true)
 	{
-		D.f[dirE   ] = &DD[dirE   *size_Mat];
-		D.f[dirW   ] = &DD[dirW   *size_Mat];
-		D.f[dirN   ] = &DD[dirN   *size_Mat];
-		D.f[dirS   ] = &DD[dirS   *size_Mat];
-		D.f[dirT   ] = &DD[dirT   *size_Mat];
-		D.f[dirB   ] = &DD[dirB   *size_Mat];
-		D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-		D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-		D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-		D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-		D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-		D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-		D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-		D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-		D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-		D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-		D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-		D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+		D.f[E   ] = &DD[E   *size_Mat];
+		D.f[W   ] = &DD[W   *size_Mat];
+		D.f[N   ] = &DD[N   *size_Mat];
+		D.f[S   ] = &DD[S   *size_Mat];
+		D.f[T   ] = &DD[T   *size_Mat];
+		D.f[B   ] = &DD[B   *size_Mat];
+		D.f[NE  ] = &DD[NE  *size_Mat];
+		D.f[SW  ] = &DD[SW  *size_Mat];
+		D.f[SE  ] = &DD[SE  *size_Mat];
+		D.f[NW  ] = &DD[NW  *size_Mat];
+		D.f[TE  ] = &DD[TE  *size_Mat];
+		D.f[BW  ] = &DD[BW  *size_Mat];
+		D.f[BE  ] = &DD[BE  *size_Mat];
+		D.f[TW  ] = &DD[TW  *size_Mat];
+		D.f[TN  ] = &DD[TN  *size_Mat];
+		D.f[BS  ] = &DD[BS  *size_Mat];
+		D.f[BN  ] = &DD[BN  *size_Mat];
+		D.f[TS  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-		D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-		D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-		D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-		D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-		D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+		D.f[TNE ] = &DD[TNE *size_Mat];
+		D.f[TSW ] = &DD[TSW *size_Mat];
+		D.f[TSE ] = &DD[TSE *size_Mat];
+		D.f[TNW ] = &DD[TNW *size_Mat];
+		D.f[BNE ] = &DD[BNE *size_Mat];
+		D.f[BSW ] = &DD[BSW *size_Mat];
+		D.f[BSE ] = &DD[BSE *size_Mat];
+		D.f[BNW ] = &DD[BNW *size_Mat];
 	} 
 	else
 	{
-		D.f[dirW   ] = &DD[dirE   *size_Mat];
-		D.f[dirE   ] = &DD[dirW   *size_Mat];
-		D.f[dirS   ] = &DD[dirN   *size_Mat];
-		D.f[dirN   ] = &DD[dirS   *size_Mat];
-		D.f[dirB   ] = &DD[dirT   *size_Mat];
-		D.f[dirT   ] = &DD[dirB   *size_Mat];
-		D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-		D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-		D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-		D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-		D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-		D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-		D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-		D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-		D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-		D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-		D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-		D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+		D.f[W   ] = &DD[E   *size_Mat];
+		D.f[E   ] = &DD[W   *size_Mat];
+		D.f[S   ] = &DD[N   *size_Mat];
+		D.f[N   ] = &DD[S   *size_Mat];
+		D.f[B   ] = &DD[T   *size_Mat];
+		D.f[T   ] = &DD[B   *size_Mat];
+		D.f[SW  ] = &DD[NE  *size_Mat];
+		D.f[NE  ] = &DD[SW  *size_Mat];
+		D.f[NW  ] = &DD[SE  *size_Mat];
+		D.f[SE  ] = &DD[NW  *size_Mat];
+		D.f[BW  ] = &DD[TE  *size_Mat];
+		D.f[TE  ] = &DD[BW  *size_Mat];
+		D.f[TW  ] = &DD[BE  *size_Mat];
+		D.f[BE  ] = &DD[TW  *size_Mat];
+		D.f[BS  ] = &DD[TN  *size_Mat];
+		D.f[TN  ] = &DD[BS  *size_Mat];
+		D.f[TS  ] = &DD[BN  *size_Mat];
+		D.f[BN  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-		D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-		D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-		D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-		D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-		D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+		D.f[TNE ] = &DD[BSW *size_Mat];
+		D.f[TSW ] = &DD[BNE *size_Mat];
+		D.f[TSE ] = &DD[BNW *size_Mat];
+		D.f[TNW ] = &DD[BSE *size_Mat];
+		D.f[BNE ] = &DD[TSW *size_Mat];
+		D.f[BSW ] = &DD[TNE *size_Mat];
+		D.f[BSE ] = &DD[TNW *size_Mat];
+		D.f[BNW ] = &DD[TSE *size_Mat];
 	}
 	////////////////////////////////////////////////////////////////////////////////
 	const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -1463,50 +1463,50 @@ extern "C" __global__ void LBCalcMeasurePoints( real* vxMP,
 
       if(geoD[kzero] == GEO_FLUID)
       {
-         rhoMP[kMac]=   (D.f[dirE   ])[ke  ]+ (D.f[dirW   ])[kw  ]+ 
-                        (D.f[dirN   ])[kn  ]+ (D.f[dirS   ])[ks  ]+
-                        (D.f[dirT   ])[kt  ]+ (D.f[dirB   ])[kb  ]+
-                        (D.f[dirNE  ])[kne ]+ (D.f[dirSW  ])[ksw ]+
-                        (D.f[dirSE  ])[kse ]+ (D.f[dirNW  ])[knw ]+
-                        (D.f[dirTE  ])[kte ]+ (D.f[dirBW  ])[kbw ]+
-                        (D.f[dirBE  ])[kbe ]+ (D.f[dirTW  ])[ktw ]+
-                        (D.f[dirTN  ])[ktn ]+ (D.f[dirBS  ])[kbs ]+
-                        (D.f[dirBN  ])[kbn ]+ (D.f[dirTS  ])[kts ]+
+         rhoMP[kMac]=   (D.f[E   ])[ke  ]+ (D.f[W   ])[kw  ]+ 
+                        (D.f[N   ])[kn  ]+ (D.f[S   ])[ks  ]+
+                        (D.f[T   ])[kt  ]+ (D.f[B   ])[kb  ]+
+                        (D.f[NE  ])[kne ]+ (D.f[SW  ])[ksw ]+
+                        (D.f[SE  ])[kse ]+ (D.f[NW  ])[knw ]+
+                        (D.f[TE  ])[kte ]+ (D.f[BW  ])[kbw ]+
+                        (D.f[BE  ])[kbe ]+ (D.f[TW  ])[ktw ]+
+                        (D.f[TN  ])[ktn ]+ (D.f[BS  ])[kbs ]+
+                        (D.f[BN  ])[kbn ]+ (D.f[TS  ])[kts ]+
                         (D.f[dirREST])[kzero]+ 
-                        (D.f[dirTNE ])[ktne]+ (D.f[dirTSW ])[ktsw]+ 
-                        (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]+ 
-                        (D.f[dirBNE ])[kbne]+ (D.f[dirBSW ])[kbsw]+ 
-                        (D.f[dirBSE ])[kbse]+ (D.f[dirBNW ])[kbnw];
-
-         vxMP[kMac] =   (D.f[dirE   ])[ke  ]- (D.f[dirW   ])[kw  ]+ 
-                        (D.f[dirNE  ])[kne ]- (D.f[dirSW  ])[ksw ]+
-                        (D.f[dirSE  ])[kse ]- (D.f[dirNW  ])[knw ]+
-                        (D.f[dirTE  ])[kte ]- (D.f[dirBW  ])[kbw ]+
-                        (D.f[dirBE  ])[kbe ]- (D.f[dirTW  ])[ktw ]+
-                        (D.f[dirTNE ])[ktne]- (D.f[dirTSW ])[ktsw]+ 
-                        (D.f[dirTSE ])[ktse]- (D.f[dirTNW ])[ktnw]+ 
-                        (D.f[dirBNE ])[kbne]- (D.f[dirBSW ])[kbsw]+ 
-                        (D.f[dirBSE ])[kbse]- (D.f[dirBNW ])[kbnw];
-
-         vyMP[kMac] =   (D.f[dirN   ])[kn  ]- (D.f[dirS   ])[ks  ]+
-                        (D.f[dirNE  ])[kne ]- (D.f[dirSW  ])[ksw ]-
-                        (D.f[dirSE  ])[kse ]+ (D.f[dirNW  ])[knw ]+
-                        (D.f[dirTN  ])[ktn ]- (D.f[dirBS  ])[kbs ]+
-                        (D.f[dirBN  ])[kbn ]- (D.f[dirTS  ])[kts ]+
-                        (D.f[dirTNE ])[ktne]- (D.f[dirTSW ])[ktsw]- 
-                        (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]+ 
-                        (D.f[dirBNE ])[kbne]- (D.f[dirBSW ])[kbsw]- 
-                        (D.f[dirBSE ])[kbse]+ (D.f[dirBNW ])[kbnw];
-
-         vzMP[kMac] =   (D.f[dirT   ])[kt  ]- (D.f[dirB   ])[kb  ]+
-                        (D.f[dirTE  ])[kte ]- (D.f[dirBW  ])[kbw ]-
-                        (D.f[dirBE  ])[kbe ]+ (D.f[dirTW  ])[ktw ]+
-                        (D.f[dirTN  ])[ktn ]- (D.f[dirBS  ])[kbs ]-
-                        (D.f[dirBN  ])[kbn ]+ (D.f[dirTS  ])[kts ]+
-                        (D.f[dirTNE ])[ktne]+ (D.f[dirTSW ])[ktsw]+ 
-                        (D.f[dirTSE ])[ktse]+ (D.f[dirTNW ])[ktnw]- 
-                        (D.f[dirBNE ])[kbne]- (D.f[dirBSW ])[kbsw]- 
-                        (D.f[dirBSE ])[kbse]- (D.f[dirBNW ])[kbnw];
+                        (D.f[TNE ])[ktne]+ (D.f[TSW ])[ktsw]+ 
+                        (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]+ 
+                        (D.f[BNE ])[kbne]+ (D.f[BSW ])[kbsw]+ 
+                        (D.f[BSE ])[kbse]+ (D.f[BNW ])[kbnw];
+
+         vxMP[kMac] =   (D.f[E   ])[ke  ]- (D.f[W   ])[kw  ]+ 
+                        (D.f[NE  ])[kne ]- (D.f[SW  ])[ksw ]+
+                        (D.f[SE  ])[kse ]- (D.f[NW  ])[knw ]+
+                        (D.f[TE  ])[kte ]- (D.f[BW  ])[kbw ]+
+                        (D.f[BE  ])[kbe ]- (D.f[TW  ])[ktw ]+
+                        (D.f[TNE ])[ktne]- (D.f[TSW ])[ktsw]+ 
+                        (D.f[TSE ])[ktse]- (D.f[TNW ])[ktnw]+ 
+                        (D.f[BNE ])[kbne]- (D.f[BSW ])[kbsw]+ 
+                        (D.f[BSE ])[kbse]- (D.f[BNW ])[kbnw];
+
+         vyMP[kMac] =   (D.f[N   ])[kn  ]- (D.f[S   ])[ks  ]+
+                        (D.f[NE  ])[kne ]- (D.f[SW  ])[ksw ]-
+                        (D.f[SE  ])[kse ]+ (D.f[NW  ])[knw ]+
+                        (D.f[TN  ])[ktn ]- (D.f[BS  ])[kbs ]+
+                        (D.f[BN  ])[kbn ]- (D.f[TS  ])[kts ]+
+                        (D.f[TNE ])[ktne]- (D.f[TSW ])[ktsw]- 
+                        (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]+ 
+                        (D.f[BNE ])[kbne]- (D.f[BSW ])[kbsw]- 
+                        (D.f[BSE ])[kbse]+ (D.f[BNW ])[kbnw];
+
+         vzMP[kMac] =   (D.f[T   ])[kt  ]- (D.f[B   ])[kb  ]+
+                        (D.f[TE  ])[kte ]- (D.f[BW  ])[kbw ]-
+                        (D.f[BE  ])[kbe ]+ (D.f[TW  ])[ktw ]+
+                        (D.f[TN  ])[ktn ]- (D.f[BS  ])[kbs ]-
+                        (D.f[BN  ])[kbn ]+ (D.f[TS  ])[kts ]+
+                        (D.f[TNE ])[ktne]+ (D.f[TSW ])[ktsw]+ 
+                        (D.f[TSE ])[ktse]+ (D.f[TNW ])[ktnw]- 
+                        (D.f[BNE ])[kbne]- (D.f[BSW ])[kbsw]- 
+                        (D.f[BSE ])[kbse]- (D.f[BNW ])[kbnw];
       }
    }
 }
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu b/src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu
index 189fdc914..e1445e92b 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Cascade27.cu
@@ -38,63 +38,63 @@ extern "C" __global__ void LB_Kernel_Cascade_SP_27(     real omega,
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -127,33 +127,33 @@ extern "C" __global__ void LB_Kernel_Cascade_SP_27(     real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW   ])[kw ];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN   ])[k  ];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS   ])[ks ];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT   ])[k  ];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB   ])[kb ];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE  ])[k  ];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW  ])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE  ])[ks ];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW  ])[kw ];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE  ])[k  ];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW  ])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE  ])[kb ];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW  ])[kw ];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN  ])[k  ];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS  ])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN  ])[kb ];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS  ])[ks ];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E   ])[k  ];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W   ])[kw ];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N   ])[k  ];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S   ])[ks ];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T   ])[k  ];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B   ])[kb ];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE  ])[k  ];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW  ])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE  ])[ks ];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW  ])[kw ];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE  ])[k  ];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW  ])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE  ])[kb ];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW  ])[kw ];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN  ])[k  ];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS  ])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN  ])[kb ];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS  ])[ks ];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k  ];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE ])[k  ];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW ])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE ])[ks ];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW ])[kw ];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE ])[kb ];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW ])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW ])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE ])[k  ];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW ])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE ])[ks ];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW ])[kw ];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE ])[kb ];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW ])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW ])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 			////////////////////////////////////////////////////////////////////////////////////
 			//slow
 			//real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
@@ -729,33 +729,33 @@ extern "C" __global__ void LB_Kernel_Cascade_SP_27(     real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[ dirE   ])[k   ] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[ dirW   ])[kw  ] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[ dirN   ])[k   ] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[ dirS   ])[ks  ] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[ dirT   ])[k   ] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[ dirB   ])[kb  ] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[ dirNE  ])[k   ] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[ dirSW  ])[ksw ] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[ dirSE  ])[ks  ] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[ dirNW  ])[kw  ] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[ dirTE  ])[k   ] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[ dirBW  ])[kbw ] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[ dirBE  ])[kb  ] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[ dirTW  ])[kw  ] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[ dirTN  ])[k   ] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[ dirBS  ])[kbs ] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[ dirBN  ])[kb  ] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[ dirTS  ])[ks  ] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[ E   ])[k   ] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[ W   ])[kw  ] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[ N   ])[k   ] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[ S   ])[ks  ] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[ T   ])[k   ] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[ B   ])[kb  ] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[ NE  ])[k   ] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[ SW  ])[ksw ] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[ SE  ])[ks  ] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[ NW  ])[kw  ] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[ TE  ])[k   ] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[ BW  ])[kbw ] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[ BE  ])[kb  ] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[ TW  ])[kw  ] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[ TN  ])[k   ] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[ BS  ])[kbs ] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[ BN  ])[kb  ] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[ TS  ])[ks  ] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[ dirREST])[k   ] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[ dirTNE ])[k   ] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[ dirTSE ])[ks  ] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[ dirBNE ])[kb  ] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[ dirBSE ])[kbs ] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[ dirTNW ])[kw  ] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[ dirTSW ])[ksw ] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[ dirBNW ])[kbw ] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[ dirBSW ])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[ TNE ])[k   ] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[ TSE ])[ks  ] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[ BNE ])[kb  ] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[ BSE ])[kbs ] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[ TNW ])[kw  ] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[ TSW ])[ksw ] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[ BNW ])[kbw ] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[ BSW ])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 			////////////////////////////////////////////////////////////////////////////////////
 		}                                                                                                                    
 	}
@@ -865,63 +865,63 @@ extern "C" __global__ void LB_Kernel_Casc_Comp_SP_27(      real omega,
          Distributions27 D;
          if (EvenOrOdd==true)
          {
-            D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-            D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-            D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-            D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-            D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-            D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-            D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-            D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-            D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-            D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-            D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-            D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-            D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-            D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-            D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-            D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-            D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-            D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+            D.f[E   ] = &DDStart[E   *size_Mat];
+            D.f[W   ] = &DDStart[W   *size_Mat];
+            D.f[N   ] = &DDStart[N   *size_Mat];
+            D.f[S   ] = &DDStart[S   *size_Mat];
+            D.f[T   ] = &DDStart[T   *size_Mat];
+            D.f[B   ] = &DDStart[B   *size_Mat];
+            D.f[NE  ] = &DDStart[NE  *size_Mat];
+            D.f[SW  ] = &DDStart[SW  *size_Mat];
+            D.f[SE  ] = &DDStart[SE  *size_Mat];
+            D.f[NW  ] = &DDStart[NW  *size_Mat];
+            D.f[TE  ] = &DDStart[TE  *size_Mat];
+            D.f[BW  ] = &DDStart[BW  *size_Mat];
+            D.f[BE  ] = &DDStart[BE  *size_Mat];
+            D.f[TW  ] = &DDStart[TW  *size_Mat];
+            D.f[TN  ] = &DDStart[TN  *size_Mat];
+            D.f[BS  ] = &DDStart[BS  *size_Mat];
+            D.f[BN  ] = &DDStart[BN  *size_Mat];
+            D.f[TS  ] = &DDStart[TS  *size_Mat];
             D.f[dirREST] = &DDStart[dirREST*size_Mat];
-            D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-            D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-            D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-            D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-            D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-            D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-            D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-            D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+            D.f[TNE ] = &DDStart[TNE *size_Mat];
+            D.f[TSW ] = &DDStart[TSW *size_Mat];
+            D.f[TSE ] = &DDStart[TSE *size_Mat];
+            D.f[TNW ] = &DDStart[TNW *size_Mat];
+            D.f[BNE ] = &DDStart[BNE *size_Mat];
+            D.f[BSW ] = &DDStart[BSW *size_Mat];
+            D.f[BSE ] = &DDStart[BSE *size_Mat];
+            D.f[BNW ] = &DDStart[BNW *size_Mat];
          }
          else
          {
-            D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-            D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-            D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-            D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-            D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-            D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-            D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-            D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-            D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-            D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-            D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-            D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-            D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-            D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-            D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-            D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-            D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-            D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+            D.f[W   ] = &DDStart[E   *size_Mat];
+            D.f[E   ] = &DDStart[W   *size_Mat];
+            D.f[S   ] = &DDStart[N   *size_Mat];
+            D.f[N   ] = &DDStart[S   *size_Mat];
+            D.f[B   ] = &DDStart[T   *size_Mat];
+            D.f[T   ] = &DDStart[B   *size_Mat];
+            D.f[SW  ] = &DDStart[NE  *size_Mat];
+            D.f[NE  ] = &DDStart[SW  *size_Mat];
+            D.f[NW  ] = &DDStart[SE  *size_Mat];
+            D.f[SE  ] = &DDStart[NW  *size_Mat];
+            D.f[BW  ] = &DDStart[TE  *size_Mat];
+            D.f[TE  ] = &DDStart[BW  *size_Mat];
+            D.f[TW  ] = &DDStart[BE  *size_Mat];
+            D.f[BE  ] = &DDStart[TW  *size_Mat];
+            D.f[BS  ] = &DDStart[TN  *size_Mat];
+            D.f[TN  ] = &DDStart[BS  *size_Mat];
+            D.f[TS  ] = &DDStart[BN  *size_Mat];
+            D.f[BN  ] = &DDStart[TS  *size_Mat];
             D.f[dirREST] = &DDStart[dirREST*size_Mat];
-            D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-            D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-            D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-            D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-            D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-            D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-            D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-            D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+            D.f[BSW ] = &DDStart[TNE *size_Mat];
+            D.f[BNE ] = &DDStart[TSW *size_Mat];
+            D.f[BNW ] = &DDStart[TSE *size_Mat];
+            D.f[BSE ] = &DDStart[TNW *size_Mat];
+            D.f[TSW ] = &DDStart[BNE *size_Mat];
+            D.f[TNE ] = &DDStart[BSW *size_Mat];
+            D.f[TNW ] = &DDStart[BSE *size_Mat];
+            D.f[TSE ] = &DDStart[BNW *size_Mat];
          }
 
          ////////////////////////////////////////////////////////////////////////////////
@@ -954,33 +954,33 @@ extern "C" __global__ void LB_Kernel_Casc_Comp_SP_27(      real omega,
          unsigned int ktne = k;
          unsigned int kbsw = neighborZ[ksw];
          //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-         real E     = (D.f[dirE   ])[ke   ];// +  c2over27 ;
-         real W     = (D.f[dirW   ])[kw   ];// +  c2over27 ;
-         real N     = (D.f[dirN   ])[kn   ];// +  c2over27 ;
-         real S     = (D.f[dirS   ])[ks   ];// +  c2over27 ;
-         real F     = (D.f[dirT   ])[kt   ];// +  c2over27 ;
-         real B     = (D.f[dirB   ])[kb   ];// +  c2over27 ;
-         real Ne    = (D.f[dirNE  ])[kne  ];// +  c1over54 ;
-         real Sw    = (D.f[dirSW  ])[ksw  ];// +  c1over54 ;
-         real Se    = (D.f[dirSE  ])[kse  ];// +  c1over54 ;
-         real Nw    = (D.f[dirNW  ])[knw  ];// +  c1over54 ;
-         real Ef    = (D.f[dirTE  ])[kte  ];// +  c1over54 ;
-         real Wb    = (D.f[dirBW  ])[kbw  ];// +  c1over54 ;
-         real Eb    = (D.f[dirBE  ])[kbe  ];// +  c1over54 ;
-         real Wf    = (D.f[dirTW  ])[ktw  ];// +  c1over54 ;
-         real Nf    = (D.f[dirTN  ])[ktn  ];// +  c1over54 ;
-         real Sb    = (D.f[dirBS  ])[kbs  ];// +  c1over54 ;
-         real Nb    = (D.f[dirBN  ])[kbn  ];// +  c1over54 ;
-         real Sf    = (D.f[dirTS  ])[kts  ];// +  c1over54 ;
+         real E     = (D.f[E   ])[ke   ];// +  c2over27 ;
+         real W     = (D.f[W   ])[kw   ];// +  c2over27 ;
+         real N     = (D.f[N   ])[kn   ];// +  c2over27 ;
+         real S     = (D.f[S   ])[ks   ];// +  c2over27 ;
+         real F     = (D.f[T   ])[kt   ];// +  c2over27 ;
+         real B     = (D.f[B   ])[kb   ];// +  c2over27 ;
+         real Ne    = (D.f[NE  ])[kne  ];// +  c1over54 ;
+         real Sw    = (D.f[SW  ])[ksw  ];// +  c1over54 ;
+         real Se    = (D.f[SE  ])[kse  ];// +  c1over54 ;
+         real Nw    = (D.f[NW  ])[knw  ];// +  c1over54 ;
+         real Ef    = (D.f[TE  ])[kte  ];// +  c1over54 ;
+         real Wb    = (D.f[BW  ])[kbw  ];// +  c1over54 ;
+         real Eb    = (D.f[BE  ])[kbe  ];// +  c1over54 ;
+         real Wf    = (D.f[TW  ])[ktw  ];// +  c1over54 ;
+         real Nf    = (D.f[TN  ])[ktn  ];// +  c1over54 ;
+         real Sb    = (D.f[BS  ])[kbs  ];// +  c1over54 ;
+         real Nb    = (D.f[BN  ])[kbn  ];// +  c1over54 ;
+         real Sf    = (D.f[TS  ])[kts  ];// +  c1over54 ;
          real R     = (D.f[dirREST])[kzero];// +  c8over27 ;
-         real Nef   = (D.f[dirTNE ])[ktne ];// +  c1over216;
-         real Swf   = (D.f[dirTSW ])[ktsw ];// +  c1over216;
-         real Sef   = (D.f[dirTSE ])[ktse ];// +  c1over216;
-         real Nwf   = (D.f[dirTNW ])[ktnw ];// +  c1over216;
-         real Neb   = (D.f[dirBNE ])[kbne ];// +  c1over216;
-         real Swb   = (D.f[dirBSW ])[kbsw ];// +  c1over216;
-         real Seb   = (D.f[dirBSE ])[kbse ];// +  c1over216;
-         real Nwb   = (D.f[dirBNW ])[kbnw ];// +  c1over216;
+         real Nef   = (D.f[TNE ])[ktne ];// +  c1over216;
+         real Swf   = (D.f[TSW ])[ktsw ];// +  c1over216;
+         real Sef   = (D.f[TSE ])[ktse ];// +  c1over216;
+         real Nwf   = (D.f[TNW ])[ktnw ];// +  c1over216;
+         real Neb   = (D.f[BNE ])[kbne ];// +  c1over216;
+         real Swb   = (D.f[BSW ])[kbsw ];// +  c1over216;
+         real Seb   = (D.f[BSE ])[kbse ];// +  c1over216;
+         real Nwb   = (D.f[BNW ])[kbnw ];// +  c1over216;
          ////////////////////////////////////////////////////////////////////////////////////
 		 real rho=Nw+W+Sw+S+Se+E+Ne+N+R+Nf+Nb+Sf+Sb+Ef+Eb+Wf+Wb+Nwf+Nwb+Nef+Neb+Swf+Swb+Sef+Seb+F+B+c1o1;// ACHTUNG ne EINS !!!!!!!!
 		 real pix=(Ne+E+Se+Ef+Eb-Nw-W-Sw-Wf-Wb+Nef+Neb+Sef+Seb-Nwf-Nwb-Swf-Swb);
@@ -1609,33 +1609,33 @@ extern "C" __global__ void LB_Kernel_Casc_Comp_SP_27(      real omega,
 		
 			   
 		 ////////////////////////////////////////////////////////////////////////////////////
-		 (D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;//                                                                     
-		 (D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;                                                                     
-		 (D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;
-		 (D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;
-		 (D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;
-		 (D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;
-		 (D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;
-		 (D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;
-		 (D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;
-		 (D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;
-		 (D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;
-		 (D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;
-		 (D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;
-		 (D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;
-		 (D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;
-		 (D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;
-		 (D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;
-		 (D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;
+		 (D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;//                                                                     
+		 (D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;                                                                     
+		 (D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;
+		 (D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;
+		 (D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;
+		 (D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;
+		 (D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;
+		 (D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;
+		 (D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;
+		 (D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;
+		 (D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;
+		 (D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;
+		 (D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;
+		 (D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;
+		 (D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;
+		 (D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;
+		 (D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;
+		 (D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;
 		 (D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;
-		 (D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;
-		 (D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;
-		 (D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;
-		 (D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;
-		 (D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;
-		 (D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;
-		 (D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;
-		 (D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;
+		 (D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;
+		 (D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;
+		 (D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;
+		 (D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;
+		 (D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;
+		 (D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;
+		 (D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;
+		 (D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;
 		 ////////////////////////////////////////////////////////////////////////////////////
       }                                                                                                                    
    }
@@ -1712,63 +1712,63 @@ extern "C" __global__ void LB_Kernel_Casc_SP_MS_OHM_27(  real omega,
          Distributions27 D;
          if (EvenOrOdd==true)
          {
-            D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-            D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-            D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-            D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-            D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-            D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-            D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-            D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-            D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-            D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-            D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-            D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-            D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-            D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-            D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-            D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-            D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-            D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+            D.f[E   ] = &DDStart[E   *size_Mat];
+            D.f[W   ] = &DDStart[W   *size_Mat];
+            D.f[N   ] = &DDStart[N   *size_Mat];
+            D.f[S   ] = &DDStart[S   *size_Mat];
+            D.f[T   ] = &DDStart[T   *size_Mat];
+            D.f[B   ] = &DDStart[B   *size_Mat];
+            D.f[NE  ] = &DDStart[NE  *size_Mat];
+            D.f[SW  ] = &DDStart[SW  *size_Mat];
+            D.f[SE  ] = &DDStart[SE  *size_Mat];
+            D.f[NW  ] = &DDStart[NW  *size_Mat];
+            D.f[TE  ] = &DDStart[TE  *size_Mat];
+            D.f[BW  ] = &DDStart[BW  *size_Mat];
+            D.f[BE  ] = &DDStart[BE  *size_Mat];
+            D.f[TW  ] = &DDStart[TW  *size_Mat];
+            D.f[TN  ] = &DDStart[TN  *size_Mat];
+            D.f[BS  ] = &DDStart[BS  *size_Mat];
+            D.f[BN  ] = &DDStart[BN  *size_Mat];
+            D.f[TS  ] = &DDStart[TS  *size_Mat];
             D.f[dirREST] = &DDStart[dirREST*size_Mat];
-            D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-            D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-            D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-            D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-            D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-            D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-            D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-            D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+            D.f[TNE ] = &DDStart[TNE *size_Mat];
+            D.f[TSW ] = &DDStart[TSW *size_Mat];
+            D.f[TSE ] = &DDStart[TSE *size_Mat];
+            D.f[TNW ] = &DDStart[TNW *size_Mat];
+            D.f[BNE ] = &DDStart[BNE *size_Mat];
+            D.f[BSW ] = &DDStart[BSW *size_Mat];
+            D.f[BSE ] = &DDStart[BSE *size_Mat];
+            D.f[BNW ] = &DDStart[BNW *size_Mat];
          }
          else
          {
-            D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-            D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-            D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-            D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-            D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-            D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-            D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-            D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-            D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-            D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-            D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-            D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-            D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-            D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-            D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-            D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-            D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-            D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+            D.f[W   ] = &DDStart[E   *size_Mat];
+            D.f[E   ] = &DDStart[W   *size_Mat];
+            D.f[S   ] = &DDStart[N   *size_Mat];
+            D.f[N   ] = &DDStart[S   *size_Mat];
+            D.f[B   ] = &DDStart[T   *size_Mat];
+            D.f[T   ] = &DDStart[B   *size_Mat];
+            D.f[SW  ] = &DDStart[NE  *size_Mat];
+            D.f[NE  ] = &DDStart[SW  *size_Mat];
+            D.f[NW  ] = &DDStart[SE  *size_Mat];
+            D.f[SE  ] = &DDStart[NW  *size_Mat];
+            D.f[BW  ] = &DDStart[TE  *size_Mat];
+            D.f[TE  ] = &DDStart[BW  *size_Mat];
+            D.f[TW  ] = &DDStart[BE  *size_Mat];
+            D.f[BE  ] = &DDStart[TW  *size_Mat];
+            D.f[BS  ] = &DDStart[TN  *size_Mat];
+            D.f[TN  ] = &DDStart[BS  *size_Mat];
+            D.f[TS  ] = &DDStart[BN  *size_Mat];
+            D.f[BN  ] = &DDStart[TS  *size_Mat];
             D.f[dirREST] = &DDStart[dirREST*size_Mat];
-            D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-            D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-            D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-            D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-            D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-            D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-            D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-            D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+            D.f[BSW ] = &DDStart[TNE *size_Mat];
+            D.f[BNE ] = &DDStart[TSW *size_Mat];
+            D.f[BNW ] = &DDStart[TSE *size_Mat];
+            D.f[BSE ] = &DDStart[TNW *size_Mat];
+            D.f[TSW ] = &DDStart[BNE *size_Mat];
+            D.f[TNE ] = &DDStart[BSW *size_Mat];
+            D.f[TNW ] = &DDStart[BSE *size_Mat];
+            D.f[TSE ] = &DDStart[BNW *size_Mat];
          }
 
          ////////////////////////////////////////////////////////////////////////////////
@@ -1801,33 +1801,33 @@ extern "C" __global__ void LB_Kernel_Casc_SP_MS_OHM_27(  real omega,
          //unsigned int ktne = k;
          unsigned int kbsw = neighborZ[ksw];
          //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-         real fE    =  (D.f[dirE   ])[k  ];//ke
-         real fW    =  (D.f[dirW   ])[kw ];
-         real fN    =  (D.f[dirN   ])[k  ];//kn
-         real fS    =  (D.f[dirS   ])[ks ];
-         real fT    =  (D.f[dirT   ])[k  ];//kt
-         real fB    =  (D.f[dirB   ])[kb ];
-         real fNE   =  (D.f[dirNE  ])[k  ];//kne
-         real fSW   =  (D.f[dirSW  ])[ksw];
-         real fSE   =  (D.f[dirSE  ])[ks ];//kse
-         real fNW   =  (D.f[dirNW  ])[kw ];//knw
-         real fTE   =  (D.f[dirTE  ])[k  ];//kte
-         real fBW   =  (D.f[dirBW  ])[kbw];
-         real fBE   =  (D.f[dirBE  ])[kb ];//kbe
-         real fTW   =  (D.f[dirTW  ])[kw ];//ktw
-         real fTN   =  (D.f[dirTN  ])[k  ];//ktn
-         real fBS   =  (D.f[dirBS  ])[kbs];
-         real fBN   =  (D.f[dirBN  ])[kb ];//kbn
-         real fTS   =  (D.f[dirTS  ])[ks ];//kts
+         real fE    =  (D.f[E   ])[k  ];//ke
+         real fW    =  (D.f[W   ])[kw ];
+         real fN    =  (D.f[N   ])[k  ];//kn
+         real fS    =  (D.f[S   ])[ks ];
+         real fT    =  (D.f[T   ])[k  ];//kt
+         real fB    =  (D.f[B   ])[kb ];
+         real fNE   =  (D.f[NE  ])[k  ];//kne
+         real fSW   =  (D.f[SW  ])[ksw];
+         real fSE   =  (D.f[SE  ])[ks ];//kse
+         real fNW   =  (D.f[NW  ])[kw ];//knw
+         real fTE   =  (D.f[TE  ])[k  ];//kte
+         real fBW   =  (D.f[BW  ])[kbw];
+         real fBE   =  (D.f[BE  ])[kb ];//kbe
+         real fTW   =  (D.f[TW  ])[kw ];//ktw
+         real fTN   =  (D.f[TN  ])[k  ];//ktn
+         real fBS   =  (D.f[BS  ])[kbs];
+         real fBN   =  (D.f[BN  ])[kb ];//kbn
+         real fTS   =  (D.f[TS  ])[ks ];//kts
          real fZERO =  (D.f[dirREST])[k  ];//kzero
-         real fTNE   = (D.f[dirTNE ])[k  ];//ktne
-         real fTSW   = (D.f[dirTSW ])[ksw];//ktsw
-         real fTSE   = (D.f[dirTSE ])[ks ];//ktse
-         real fTNW   = (D.f[dirTNW ])[kw ];//ktnw
-         real fBNE   = (D.f[dirBNE ])[kb ];//kbne
-         real fBSW   = (D.f[dirBSW ])[kbsw];
-         real fBSE   = (D.f[dirBSE ])[kbs];//kbse
-         real fBNW   = (D.f[dirBNW ])[kbw];//kbnw
+         real fTNE   = (D.f[TNE ])[k  ];//ktne
+         real fTSW   = (D.f[TSW ])[ksw];//ktsw
+         real fTSE   = (D.f[TSE ])[ks ];//ktse
+         real fTNW   = (D.f[TNW ])[kw ];//ktnw
+         real fBNE   = (D.f[BNE ])[kb ];//kbne
+         real fBSW   = (D.f[BSW ])[kbsw];
+         real fBSE   = (D.f[BSE ])[kbs];//kbse
+         real fBNW   = (D.f[BNW ])[kbw];//kbnw
          ////////////////////////////////////////////////////////////////////////////////
          real rho0   =  (fTNE+fBSW)+(fTSW+fBNE)+(fTSE+fBNW)+(fTNW+fBSE)+(fNE+fSW)+(fNW+fSE)+(fTE+fBW)+(fBE+fTW)+(fTN+fBS)+(fBN+fTS)+(fE+fW)+(fN+fS)+(fT+fB)+fZERO;
          real rho    =  rho0 + c1o1;
@@ -2183,92 +2183,92 @@ extern "C" __global__ void LB_Kernel_Casc_SP_MS_OHM_27(  real omega,
             c2o1*(/*vx2y*MzYZZ +*/  vx*MzXYYZZ + vz*MzXXYYZ /*+ vyz2*MzXXY + vx2z*MzYYZ + vxy2*MzXZZ + vxz2*MzXYY*/ + vy*MzXXYZZ/* + vy2z*MzXXZ*/);//+ 
             //four*(/*vxy2z*MzXZ + vx2yz*MzYZ + vxyz2*MzXY +*/ vxy*MzXYZZ + vxz*MzXYYZ + vyz*MzXXYZ);
 
-         //(D.f[ dirE   ])[k   ] =   c1o2*rho*( mu200  - mu220 + mu222 - mu202 +  mu120 - mu122 + mu102 - vx   );   //ke
-         //(D.f[ dirW   ])[kw  ] =   c1o2*rho*( mu200  - mu220 + mu222 - mu202 -  mu120 + mu122 - mu102 + vx   );   
-         //(D.f[ dirN   ])[k   ] =   c1o2*rho*( mu210  - mu220 + mu222 - mu212 +  mu020 - mu022 + mu012 - vy   );   //kn
-         //(D.f[ dirS   ])[ks  ] =   c1o2*rho*(-mu210  - mu220 + mu222 + mu212 +  mu020 - mu022 - mu012 + vy   );   
-         //(D.f[ dirT   ])[k   ] =   c1o2*rho*(-mu221  + mu222 + mu201 - mu202 +  mu021 - mu022 + mu002 - vz   );   //kt
-         //(D.f[ dirB   ])[kb  ] =   c1o2*rho*( mu221  + mu222 - mu201 - mu202 -  mu021 - mu022 + mu002 + vz   );   
-         //(D.f[ dirNE  ])[k   ] =  c1o4*rho*(-mu210  + mu220 - mu222 + mu212 +  mu110 - mu120 + mu122 - mu112);   //kne
-         //(D.f[ dirSW  ])[ksw ] =  c1o4*rho*( mu210  + mu220 - mu222 - mu212 +  mu110 + mu120 - mu122 - mu112);   
-         //(D.f[ dirSE  ])[ks  ] =  c1o4*rho*( mu210  + mu220 - mu222 - mu212 -  mu110 - mu120 + mu122 + mu112);   //kse
-         //(D.f[ dirNW  ])[kw  ] =  c1o4*rho*(-mu210  + mu220 - mu222 + mu212 -  mu110 + mu120 - mu122 + mu112);   //knw
-         //(D.f[ dirTE  ])[k   ] =  c1o4*rho*( mu221  - mu222 - mu201 + mu202 -  mu121 + mu122 + mu101 - mu102);   //kte
-         //(D.f[ dirBW  ])[kbw ] =  c1o4*rho*(-mu221  - mu222 + mu201 + mu202 -  mu121 - mu122 + mu101 + mu102);   
-         //(D.f[ dirBE  ])[kb  ] =  c1o4*rho*(-mu221  - mu222 + mu201 + mu202 +  mu121 + mu122 - mu101 - mu102);   //kbe
-         //(D.f[ dirTW  ])[kw  ] =  c1o4*rho*( mu221  - mu222 - mu201 + mu202 +  mu121 - mu122 - mu101 + mu102);   //ktw
-         //(D.f[ dirTN  ])[k   ] =  c1o4*rho*( mu221  - mu222 - mu211 + mu212 -  mu021 + mu022 + mu011 - mu012);   //ktn
-         //(D.f[ dirBS  ])[kbs ] =  c1o4*rho*(-mu221  - mu222 - mu211 - mu212 +  mu021 + mu022 + mu011 + mu012);   
-         //(D.f[ dirBN  ])[kb  ] =  c1o4*rho*(-mu221  - mu222 + mu211 + mu212 +  mu021 + mu022 - mu011 - mu012);   //kbn
-         //(D.f[ dirTS  ])[ks  ] =  c1o4*rho*( mu221  - mu222 + mu211 - mu212 -  mu021 + mu022 - mu011 + mu012);   //kts
+         //(D.f[ E   ])[k   ] =   c1o2*rho*( mu200  - mu220 + mu222 - mu202 +  mu120 - mu122 + mu102 - vx   );   //ke
+         //(D.f[ W   ])[kw  ] =   c1o2*rho*( mu200  - mu220 + mu222 - mu202 -  mu120 + mu122 - mu102 + vx   );   
+         //(D.f[ N   ])[k   ] =   c1o2*rho*( mu210  - mu220 + mu222 - mu212 +  mu020 - mu022 + mu012 - vy   );   //kn
+         //(D.f[ S   ])[ks  ] =   c1o2*rho*(-mu210  - mu220 + mu222 + mu212 +  mu020 - mu022 - mu012 + vy   );   
+         //(D.f[ T   ])[k   ] =   c1o2*rho*(-mu221  + mu222 + mu201 - mu202 +  mu021 - mu022 + mu002 - vz   );   //kt
+         //(D.f[ B   ])[kb  ] =   c1o2*rho*( mu221  + mu222 - mu201 - mu202 -  mu021 - mu022 + mu002 + vz   );   
+         //(D.f[ NE  ])[k   ] =  c1o4*rho*(-mu210  + mu220 - mu222 + mu212 +  mu110 - mu120 + mu122 - mu112);   //kne
+         //(D.f[ SW  ])[ksw ] =  c1o4*rho*( mu210  + mu220 - mu222 - mu212 +  mu110 + mu120 - mu122 - mu112);   
+         //(D.f[ SE  ])[ks  ] =  c1o4*rho*( mu210  + mu220 - mu222 - mu212 -  mu110 - mu120 + mu122 + mu112);   //kse
+         //(D.f[ NW  ])[kw  ] =  c1o4*rho*(-mu210  + mu220 - mu222 + mu212 -  mu110 + mu120 - mu122 + mu112);   //knw
+         //(D.f[ TE  ])[k   ] =  c1o4*rho*( mu221  - mu222 - mu201 + mu202 -  mu121 + mu122 + mu101 - mu102);   //kte
+         //(D.f[ BW  ])[kbw ] =  c1o4*rho*(-mu221  - mu222 + mu201 + mu202 -  mu121 - mu122 + mu101 + mu102);   
+         //(D.f[ BE  ])[kb  ] =  c1o4*rho*(-mu221  - mu222 + mu201 + mu202 +  mu121 + mu122 - mu101 - mu102);   //kbe
+         //(D.f[ TW  ])[kw  ] =  c1o4*rho*( mu221  - mu222 - mu201 + mu202 +  mu121 - mu122 - mu101 + mu102);   //ktw
+         //(D.f[ TN  ])[k   ] =  c1o4*rho*( mu221  - mu222 - mu211 + mu212 -  mu021 + mu022 + mu011 - mu012);   //ktn
+         //(D.f[ BS  ])[kbs ] =  c1o4*rho*(-mu221  - mu222 - mu211 - mu212 +  mu021 + mu022 + mu011 + mu012);   
+         //(D.f[ BN  ])[kb  ] =  c1o4*rho*(-mu221  - mu222 + mu211 + mu212 +  mu021 + mu022 - mu011 - mu012);   //kbn
+         //(D.f[ TS  ])[ks  ] =  c1o4*rho*( mu221  - mu222 + mu211 - mu212 -  mu021 + mu022 - mu011 + mu012);   //kts
          //(D.f[ dirREST])[k   ] =       rho*(-mu200  + mu220 - mu222 + mu202 -  mu020 + mu022 - mu002        )+rho0;   //kzero
-         //(D.f[ dirTNE ])[k   ] = c1o8*rho*(-mu221  + mu222 + mu211 - mu212 +  mu121 - mu122 - mu111 + mu112);   //ktne
-         //(D.f[ dirTSE ])[ks  ] = c1o8*rho*(-mu221  + mu222 - mu211 + mu212 +  mu121 - mu122 + mu111 - mu112);   //ktse
-         //(D.f[ dirBNE ])[kb  ] = c1o8*rho*( mu221  + mu222 - mu211 - mu212 -  mu121 - mu122 + mu111 + mu112);   //kbne
-         //(D.f[ dirBSE ])[kbs ] = c1o8*rho*( mu221  + mu222 + mu211 + mu212 -  mu121 - mu122 - mu111 - mu112);   //kbse
-         //(D.f[ dirTNW ])[kw  ] = c1o8*rho*(-mu221  + mu222 + mu211 - mu212 -  mu121 + mu122 + mu111 - mu112);   //ktnw
-         //(D.f[ dirTSW ])[ksw ] = c1o8*rho*(-mu221  + mu222 - mu211 + mu212 -  mu121 + mu122 - mu111 + mu112);   //ktsw
-         //(D.f[ dirBNW ])[kbw ] = c1o8*rho*( mu221  + mu222 - mu211 - mu212 +  mu121 + mu122 - mu111 - mu112);   //kbnw
-         //(D.f[ dirBSW ])[kbsw] = c1o8*rho*( mu221  + mu222 + mu211 + mu212 +  mu121 + mu122 + mu111 + mu112);   
-         (D.f[ dirE   ])[k   ] =   c1o2*rho*(+ mu222 + (                          - mu220 - mu202        ) + (                         + mu200                ) + (                 - mu122) + (                                          + mu102 + mu120) + ( - vx            ) );   //ke
-         (D.f[ dirW   ])[kw  ] =   c1o2*rho*(+ mu222 + (                          - mu220 - mu202        ) + (                         + mu200                ) + (                 + mu122) + (                                          - mu102 - mu120) + ( + vx            ) );   
-         (D.f[ dirN   ])[k   ] =   c1o2*rho*(+ mu222 + (                          - mu220         - mu022) + (                                 + mu020        ) + (         - mu212        ) + (                          + mu012 + mu210                ) + (      - vy       ) );   //kn
-         (D.f[ dirS   ])[ks  ] =   c1o2*rho*(+ mu222 + (                          - mu220         - mu022) + (                                 + mu020        ) + (         + mu212        ) + (                          - mu012 - mu210                ) + (      + vy       ) );   
-         (D.f[ dirT   ])[k   ] =   c1o2*rho*(+ mu222 + (                                  - mu202 - mu022) + (                                         + mu002) + ( - mu221                ) + (         + mu201 +  mu021                                ) + (           - vz  ) );   //kt
-         (D.f[ dirB   ])[kb  ] =   c1o2*rho*(+ mu222 + (                                  - mu202 - mu022) + (                                         + mu002) + ( + mu221                ) + (         - mu201 -  mu021                                ) + (           + vz  ) );   
-         (D.f[ dirNE  ])[k   ] =  c1o4*rho*(- mu222 + (                  - mu112 + mu220                ) + (+  mu110                                        ) + (         + mu212 + mu122) + (                                  - mu210         - mu120)                       );   //kne
-         (D.f[ dirSW  ])[ksw ] =  c1o4*rho*(- mu222 + (                  - mu112 + mu220                ) + (+  mu110                                        ) + (         - mu212 - mu122) + (                                  + mu210         + mu120)                       );   
-         (D.f[ dirSE  ])[ks  ] =  c1o4*rho*(- mu222 + (                  + mu112 + mu220                ) + (-  mu110                                        ) + (         - mu212 + mu122) + (                                  + mu210         - mu120)                       );   //kse
-         (D.f[ dirNW  ])[kw  ] =  c1o4*rho*(- mu222 + (                  + mu112 + mu220                ) + (-  mu110                                        ) + (         + mu212 - mu122) + (                                  - mu210         + mu120)                       );   //knw
-         (D.f[ dirTE  ])[k   ] =  c1o4*rho*(- mu222 + (        -  mu121                  + mu202        ) + (         + mu101                                ) + ( + mu221         + mu122) + (         - mu201                          - mu102        )                       );   //kte
-         (D.f[ dirBW  ])[kbw ] =  c1o4*rho*(- mu222 + (        -  mu121                  + mu202        ) + (         + mu101                                ) + ( - mu221         - mu122) + (         + mu201                          + mu102        )                       );   
-         (D.f[ dirBE  ])[kb  ] =  c1o4*rho*(- mu222 + (        +  mu121                  + mu202        ) + (         - mu101                                ) + ( - mu221         + mu122) + (         + mu201                          - mu102        )                       );   //kbe
-         (D.f[ dirTW  ])[kw  ] =  c1o4*rho*(- mu222 + (        +  mu121                  + mu202        ) + (         - mu101                                ) + ( + mu221         - mu122) + (         - mu201                          + mu102        )                       );   //ktw
-         (D.f[ dirTN  ])[k   ] =  c1o4*rho*(- mu222 + (- mu211                                   + mu022) + (                 + mu011                        ) + ( + mu221 + mu212        ) + (                 -  mu021 - mu012                        )                       );   //ktn
-         (D.f[ dirBS  ])[kbs ] =  c1o4*rho*(- mu222 + (- mu211                                   + mu022) + (                 + mu011                        ) + ( - mu221 - mu212        ) + (                 +  mu021 + mu012                        )                       );   
-         (D.f[ dirBN  ])[kb  ] =  c1o4*rho*(- mu222 + (+ mu211                                   + mu022) + (                 - mu011                        ) + ( - mu221 + mu212        ) + (                 +  mu021 - mu012                        )                       );   //kbn
-         (D.f[ dirTS  ])[ks  ] =  c1o4*rho*(- mu222 + (+ mu211                                   + mu022) + (                 - mu011                        ) + ( + mu221 - mu212        ) + (                 -  mu021 + mu012                        )                       );   //kts
+         //(D.f[ TNE ])[k   ] = c1o8*rho*(-mu221  + mu222 + mu211 - mu212 +  mu121 - mu122 - mu111 + mu112);   //ktne
+         //(D.f[ TSE ])[ks  ] = c1o8*rho*(-mu221  + mu222 - mu211 + mu212 +  mu121 - mu122 + mu111 - mu112);   //ktse
+         //(D.f[ BNE ])[kb  ] = c1o8*rho*( mu221  + mu222 - mu211 - mu212 -  mu121 - mu122 + mu111 + mu112);   //kbne
+         //(D.f[ BSE ])[kbs ] = c1o8*rho*( mu221  + mu222 + mu211 + mu212 -  mu121 - mu122 - mu111 - mu112);   //kbse
+         //(D.f[ TNW ])[kw  ] = c1o8*rho*(-mu221  + mu222 + mu211 - mu212 -  mu121 + mu122 + mu111 - mu112);   //ktnw
+         //(D.f[ TSW ])[ksw ] = c1o8*rho*(-mu221  + mu222 - mu211 + mu212 -  mu121 + mu122 - mu111 + mu112);   //ktsw
+         //(D.f[ BNW ])[kbw ] = c1o8*rho*( mu221  + mu222 - mu211 - mu212 +  mu121 + mu122 - mu111 - mu112);   //kbnw
+         //(D.f[ BSW ])[kbsw] = c1o8*rho*( mu221  + mu222 + mu211 + mu212 +  mu121 + mu122 + mu111 + mu112);   
+         (D.f[ E   ])[k   ] =   c1o2*rho*(+ mu222 + (                          - mu220 - mu202        ) + (                         + mu200                ) + (                 - mu122) + (                                          + mu102 + mu120) + ( - vx            ) );   //ke
+         (D.f[ W   ])[kw  ] =   c1o2*rho*(+ mu222 + (                          - mu220 - mu202        ) + (                         + mu200                ) + (                 + mu122) + (                                          - mu102 - mu120) + ( + vx            ) );   
+         (D.f[ N   ])[k   ] =   c1o2*rho*(+ mu222 + (                          - mu220         - mu022) + (                                 + mu020        ) + (         - mu212        ) + (                          + mu012 + mu210                ) + (      - vy       ) );   //kn
+         (D.f[ S   ])[ks  ] =   c1o2*rho*(+ mu222 + (                          - mu220         - mu022) + (                                 + mu020        ) + (         + mu212        ) + (                          - mu012 - mu210                ) + (      + vy       ) );   
+         (D.f[ T   ])[k   ] =   c1o2*rho*(+ mu222 + (                                  - mu202 - mu022) + (                                         + mu002) + ( - mu221                ) + (         + mu201 +  mu021                                ) + (           - vz  ) );   //kt
+         (D.f[ B   ])[kb  ] =   c1o2*rho*(+ mu222 + (                                  - mu202 - mu022) + (                                         + mu002) + ( + mu221                ) + (         - mu201 -  mu021                                ) + (           + vz  ) );   
+         (D.f[ NE  ])[k   ] =  c1o4*rho*(- mu222 + (                  - mu112 + mu220                ) + (+  mu110                                        ) + (         + mu212 + mu122) + (                                  - mu210         - mu120)                       );   //kne
+         (D.f[ SW  ])[ksw ] =  c1o4*rho*(- mu222 + (                  - mu112 + mu220                ) + (+  mu110                                        ) + (         - mu212 - mu122) + (                                  + mu210         + mu120)                       );   
+         (D.f[ SE  ])[ks  ] =  c1o4*rho*(- mu222 + (                  + mu112 + mu220                ) + (-  mu110                                        ) + (         - mu212 + mu122) + (                                  + mu210         - mu120)                       );   //kse
+         (D.f[ NW  ])[kw  ] =  c1o4*rho*(- mu222 + (                  + mu112 + mu220                ) + (-  mu110                                        ) + (         + mu212 - mu122) + (                                  - mu210         + mu120)                       );   //knw
+         (D.f[ TE  ])[k   ] =  c1o4*rho*(- mu222 + (        -  mu121                  + mu202        ) + (         + mu101                                ) + ( + mu221         + mu122) + (         - mu201                          - mu102        )                       );   //kte
+         (D.f[ BW  ])[kbw ] =  c1o4*rho*(- mu222 + (        -  mu121                  + mu202        ) + (         + mu101                                ) + ( - mu221         - mu122) + (         + mu201                          + mu102        )                       );   
+         (D.f[ BE  ])[kb  ] =  c1o4*rho*(- mu222 + (        +  mu121                  + mu202        ) + (         - mu101                                ) + ( - mu221         + mu122) + (         + mu201                          - mu102        )                       );   //kbe
+         (D.f[ TW  ])[kw  ] =  c1o4*rho*(- mu222 + (        +  mu121                  + mu202        ) + (         - mu101                                ) + ( + mu221         - mu122) + (         - mu201                          + mu102        )                       );   //ktw
+         (D.f[ TN  ])[k   ] =  c1o4*rho*(- mu222 + (- mu211                                   + mu022) + (                 + mu011                        ) + ( + mu221 + mu212        ) + (                 -  mu021 - mu012                        )                       );   //ktn
+         (D.f[ BS  ])[kbs ] =  c1o4*rho*(- mu222 + (- mu211                                   + mu022) + (                 + mu011                        ) + ( - mu221 - mu212        ) + (                 +  mu021 + mu012                        )                       );   
+         (D.f[ BN  ])[kb  ] =  c1o4*rho*(- mu222 + (+ mu211                                   + mu022) + (                 - mu011                        ) + ( - mu221 + mu212        ) + (                 +  mu021 - mu012                        )                       );   //kbn
+         (D.f[ TS  ])[ks  ] =  c1o4*rho*(- mu222 + (+ mu211                                   + mu022) + (                 - mu011                        ) + ( + mu221 - mu212        ) + (                 -  mu021 + mu012                        )                       );   //kts
          (D.f[ dirREST])[k   ] =       rho*(- mu222 + (                          + mu220 + mu202 + mu022) + (                         - mu200 - mu020 - mu002)                                                                                                                  )+rho0;   //kzero
-         (D.f[ dirTNE ])[k   ] = c1o8*rho*(+ mu222 + (+ mu211 +  mu121 + mu112                         )                                                      + ( - mu221 - mu212 - mu122) + ( - mu111                                                 )                       );   //ktne
-         (D.f[ dirTSE ])[ks  ] = c1o8*rho*(+ mu222 + (- mu211 +  mu121 - mu112                         )                                                      + ( - mu221 + mu212 - mu122) + ( + mu111                                                 )                       );   //ktse
-         (D.f[ dirBNE ])[kb  ] = c1o8*rho*(+ mu222 + (- mu211 -  mu121 + mu112                         )                                                      + ( + mu221 - mu212 - mu122) + ( + mu111                                                 )                       );   //kbne
-         (D.f[ dirBSE ])[kbs ] = c1o8*rho*(+ mu222 + (+ mu211 -  mu121 - mu112                         )                                                      + ( + mu221 + mu212 - mu122) + ( - mu111                                                 )                       );   //kbse
-         (D.f[ dirTNW ])[kw  ] = c1o8*rho*(+ mu222 + (+ mu211 -  mu121 - mu112                         )                                                      + ( - mu221 - mu212 + mu122) + ( + mu111                                                 )                       );   //ktnw
-         (D.f[ dirTSW ])[ksw ] = c1o8*rho*(+ mu222 + (- mu211 -  mu121 + mu112                         )                                                      + ( - mu221 + mu212 + mu122) + ( - mu111                                                 )                       );   //ktsw
-         (D.f[ dirBNW ])[kbw ] = c1o8*rho*(+ mu222 + (- mu211 +  mu121 - mu112                         )                                                      + ( + mu221 - mu212 + mu122) + ( - mu111                                                 )                       );   //kbnw
-         (D.f[ dirBSW ])[kbsw] = c1o8*rho*(+ mu222 + (+ mu211 +  mu121 + mu112                         )                                                      + ( + mu221 + mu212 + mu122) + ( + mu111                                                 )                       );   
+         (D.f[ TNE ])[k   ] = c1o8*rho*(+ mu222 + (+ mu211 +  mu121 + mu112                         )                                                      + ( - mu221 - mu212 - mu122) + ( - mu111                                                 )                       );   //ktne
+         (D.f[ TSE ])[ks  ] = c1o8*rho*(+ mu222 + (- mu211 +  mu121 - mu112                         )                                                      + ( - mu221 + mu212 - mu122) + ( + mu111                                                 )                       );   //ktse
+         (D.f[ BNE ])[kb  ] = c1o8*rho*(+ mu222 + (- mu211 -  mu121 + mu112                         )                                                      + ( + mu221 - mu212 - mu122) + ( + mu111                                                 )                       );   //kbne
+         (D.f[ BSE ])[kbs ] = c1o8*rho*(+ mu222 + (+ mu211 -  mu121 - mu112                         )                                                      + ( + mu221 + mu212 - mu122) + ( - mu111                                                 )                       );   //kbse
+         (D.f[ TNW ])[kw  ] = c1o8*rho*(+ mu222 + (+ mu211 -  mu121 - mu112                         )                                                      + ( - mu221 - mu212 + mu122) + ( + mu111                                                 )                       );   //ktnw
+         (D.f[ TSW ])[ksw ] = c1o8*rho*(+ mu222 + (- mu211 -  mu121 + mu112                         )                                                      + ( - mu221 + mu212 + mu122) + ( - mu111                                                 )                       );   //ktsw
+         (D.f[ BNW ])[kbw ] = c1o8*rho*(+ mu222 + (- mu211 +  mu121 - mu112                         )                                                      + ( + mu221 - mu212 + mu122) + ( - mu111                                                 )                       );   //kbnw
+         (D.f[ BSW ])[kbsw] = c1o8*rho*(+ mu222 + (+ mu211 +  mu121 + mu112                         )                                                      + ( + mu221 + mu212 + mu122) + ( + mu111                                                 )                       );   
                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                 
          //////////////////////////////////////////////////////////////////////////                                                                                                                                                                             
          //BGK                                                                                                 
          //////////////////////////////////////////////////////////////////////////                            
-         //(D.f[ dirE   ])[k   ] = fW    ;                                                                     
-         //(D.f[ dirW   ])[kw  ] = fE    ;                                                                     
-         //(D.f[ dirN   ])[k   ] = fS    ;
-         //(D.f[ dirS   ])[ks  ] = fN    ;
-         //(D.f[ dirT   ])[k   ] = fB    ;
-         //(D.f[ dirB   ])[kb  ] = fT    ;
-         //(D.f[ dirNE  ])[k   ] = fSW   ;
-         //(D.f[ dirSW  ])[ksw ] = fNE   ;
-         //(D.f[ dirSE  ])[ks  ] = fNW   ;
-         //(D.f[ dirNW  ])[kw  ] = fSE   ;
-         //(D.f[ dirTE  ])[k   ] = fBW   ;
-         //(D.f[ dirBW  ])[kbw ] = fTE   ;
-         //(D.f[ dirBE  ])[kb  ] = fTW   ;
-         //(D.f[ dirTW  ])[kw  ] = fBE   ;
-         //(D.f[ dirTN  ])[k   ] = fBS   ;
-         //(D.f[ dirBS  ])[kbs ] = fTN   ;
-         //(D.f[ dirBN  ])[kb  ] = fTS   ;
-         //(D.f[ dirTS  ])[ks  ] = fBN   ;
+         //(D.f[ E   ])[k   ] = fW    ;                                                                     
+         //(D.f[ W   ])[kw  ] = fE    ;                                                                     
+         //(D.f[ N   ])[k   ] = fS    ;
+         //(D.f[ S   ])[ks  ] = fN    ;
+         //(D.f[ T   ])[k   ] = fB    ;
+         //(D.f[ B   ])[kb  ] = fT    ;
+         //(D.f[ NE  ])[k   ] = fSW   ;
+         //(D.f[ SW  ])[ksw ] = fNE   ;
+         //(D.f[ SE  ])[ks  ] = fNW   ;
+         //(D.f[ NW  ])[kw  ] = fSE   ;
+         //(D.f[ TE  ])[k   ] = fBW   ;
+         //(D.f[ BW  ])[kbw ] = fTE   ;
+         //(D.f[ BE  ])[kb  ] = fTW   ;
+         //(D.f[ TW  ])[kw  ] = fBE   ;
+         //(D.f[ TN  ])[k   ] = fBS   ;
+         //(D.f[ BS  ])[kbs ] = fTN   ;
+         //(D.f[ BN  ])[kb  ] = fTS   ;
+         //(D.f[ TS  ])[ks  ] = fBN   ;
          //(D.f[ dirREST])[k   ] = fZERO ;
-         //(D.f[ dirTNE ])[k   ] = fBSW  ;
-         //(D.f[ dirTSE ])[ks  ] = fBNW  ;
-         //(D.f[ dirBNE ])[kb  ] = fTSW  ;
-         //(D.f[ dirBSE ])[kbs ] = fTNW  ;
-         //(D.f[ dirTNW ])[kw  ] = fBSE  ;
-         //(D.f[ dirTSW ])[ksw ] = fBNE  ;
-         //(D.f[ dirBNW ])[kbw ] = fTSE  ;
-         //(D.f[ dirBSW ])[kbsw] = fTNE  ;
+         //(D.f[ TNE ])[k   ] = fBSW  ;
+         //(D.f[ TSE ])[ks  ] = fBNW  ;
+         //(D.f[ BNE ])[kb  ] = fTSW  ;
+         //(D.f[ BSE ])[kbs ] = fTNW  ;
+         //(D.f[ TNW ])[kw  ] = fBSE  ;
+         //(D.f[ TSW ])[ksw ] = fBNE  ;
+         //(D.f[ BNW ])[kbw ] = fTSE  ;
+         //(D.f[ BSW ])[kbsw] = fTNE  ;
       }                                                                                                                    
    }
 }
@@ -2344,63 +2344,63 @@ extern "C" __global__ void LB_Kernel_Casc_SP_MS_27(   real omega,
          Distributions27 D;
          if (EvenOrOdd==true)
          {
-            D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-            D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-            D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-            D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-            D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-            D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-            D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-            D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-            D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-            D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-            D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-            D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-            D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-            D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-            D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-            D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-            D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-            D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+            D.f[E   ] = &DDStart[E   *size_Mat];
+            D.f[W   ] = &DDStart[W   *size_Mat];
+            D.f[N   ] = &DDStart[N   *size_Mat];
+            D.f[S   ] = &DDStart[S   *size_Mat];
+            D.f[T   ] = &DDStart[T   *size_Mat];
+            D.f[B   ] = &DDStart[B   *size_Mat];
+            D.f[NE  ] = &DDStart[NE  *size_Mat];
+            D.f[SW  ] = &DDStart[SW  *size_Mat];
+            D.f[SE  ] = &DDStart[SE  *size_Mat];
+            D.f[NW  ] = &DDStart[NW  *size_Mat];
+            D.f[TE  ] = &DDStart[TE  *size_Mat];
+            D.f[BW  ] = &DDStart[BW  *size_Mat];
+            D.f[BE  ] = &DDStart[BE  *size_Mat];
+            D.f[TW  ] = &DDStart[TW  *size_Mat];
+            D.f[TN  ] = &DDStart[TN  *size_Mat];
+            D.f[BS  ] = &DDStart[BS  *size_Mat];
+            D.f[BN  ] = &DDStart[BN  *size_Mat];
+            D.f[TS  ] = &DDStart[TS  *size_Mat];
             D.f[dirREST] = &DDStart[dirREST*size_Mat];
-            D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-            D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-            D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-            D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-            D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-            D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-            D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-            D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+            D.f[TNE ] = &DDStart[TNE *size_Mat];
+            D.f[TSW ] = &DDStart[TSW *size_Mat];
+            D.f[TSE ] = &DDStart[TSE *size_Mat];
+            D.f[TNW ] = &DDStart[TNW *size_Mat];
+            D.f[BNE ] = &DDStart[BNE *size_Mat];
+            D.f[BSW ] = &DDStart[BSW *size_Mat];
+            D.f[BSE ] = &DDStart[BSE *size_Mat];
+            D.f[BNW ] = &DDStart[BNW *size_Mat];
          }
          else
          {
-            D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-            D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-            D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-            D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-            D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-            D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-            D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-            D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-            D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-            D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-            D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-            D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-            D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-            D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-            D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-            D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-            D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-            D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+            D.f[W   ] = &DDStart[E   *size_Mat];
+            D.f[E   ] = &DDStart[W   *size_Mat];
+            D.f[S   ] = &DDStart[N   *size_Mat];
+            D.f[N   ] = &DDStart[S   *size_Mat];
+            D.f[B   ] = &DDStart[T   *size_Mat];
+            D.f[T   ] = &DDStart[B   *size_Mat];
+            D.f[SW  ] = &DDStart[NE  *size_Mat];
+            D.f[NE  ] = &DDStart[SW  *size_Mat];
+            D.f[NW  ] = &DDStart[SE  *size_Mat];
+            D.f[SE  ] = &DDStart[NW  *size_Mat];
+            D.f[BW  ] = &DDStart[TE  *size_Mat];
+            D.f[TE  ] = &DDStart[BW  *size_Mat];
+            D.f[TW  ] = &DDStart[BE  *size_Mat];
+            D.f[BE  ] = &DDStart[TW  *size_Mat];
+            D.f[BS  ] = &DDStart[TN  *size_Mat];
+            D.f[TN  ] = &DDStart[BS  *size_Mat];
+            D.f[TS  ] = &DDStart[BN  *size_Mat];
+            D.f[BN  ] = &DDStart[TS  *size_Mat];
             D.f[dirREST] = &DDStart[dirREST*size_Mat];
-            D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-            D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-            D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-            D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-            D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-            D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-            D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-            D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+            D.f[BSW ] = &DDStart[TNE *size_Mat];
+            D.f[BNE ] = &DDStart[TSW *size_Mat];
+            D.f[BNW ] = &DDStart[TSE *size_Mat];
+            D.f[BSE ] = &DDStart[TNW *size_Mat];
+            D.f[TSW ] = &DDStart[BNE *size_Mat];
+            D.f[TNE ] = &DDStart[BSW *size_Mat];
+            D.f[TNW ] = &DDStart[BSE *size_Mat];
+            D.f[TSE ] = &DDStart[BNW *size_Mat];
          }
 
          ////////////////////////////////////////////////////////////////////////////////
@@ -2433,33 +2433,33 @@ extern "C" __global__ void LB_Kernel_Casc_SP_MS_27(   real omega,
          //unsigned int ktne = k;
          unsigned int kbsw = neighborZ[ksw];
          //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-         real fE    =  (D.f[dirE   ])[k  ];//ke
-         real fW    =  (D.f[dirW   ])[kw ];
-         real fN    =  (D.f[dirN   ])[k  ];//kn
-         real fS    =  (D.f[dirS   ])[ks ];
-         real fT    =  (D.f[dirT   ])[k  ];//kt
-         real fB    =  (D.f[dirB   ])[kb ];
-         real fNE   =  (D.f[dirNE  ])[k  ];//kne
-         real fSW   =  (D.f[dirSW  ])[ksw];
-         real fSE   =  (D.f[dirSE  ])[ks ];//kse
-         real fNW   =  (D.f[dirNW  ])[kw ];//knw
-         real fTE   =  (D.f[dirTE  ])[k  ];//kte
-         real fBW   =  (D.f[dirBW  ])[kbw];
-         real fBE   =  (D.f[dirBE  ])[kb ];//kbe
-         real fTW   =  (D.f[dirTW  ])[kw ];//ktw
-         real fTN   =  (D.f[dirTN  ])[k  ];//ktn
-         real fBS   =  (D.f[dirBS  ])[kbs];
-         real fBN   =  (D.f[dirBN  ])[kb ];//kbn
-         real fTS   =  (D.f[dirTS  ])[ks ];//kts
+         real fE    =  (D.f[E   ])[k  ];//ke
+         real fW    =  (D.f[W   ])[kw ];
+         real fN    =  (D.f[N   ])[k  ];//kn
+         real fS    =  (D.f[S   ])[ks ];
+         real fT    =  (D.f[T   ])[k  ];//kt
+         real fB    =  (D.f[B   ])[kb ];
+         real fNE   =  (D.f[NE  ])[k  ];//kne
+         real fSW   =  (D.f[SW  ])[ksw];
+         real fSE   =  (D.f[SE  ])[ks ];//kse
+         real fNW   =  (D.f[NW  ])[kw ];//knw
+         real fTE   =  (D.f[TE  ])[k  ];//kte
+         real fBW   =  (D.f[BW  ])[kbw];
+         real fBE   =  (D.f[BE  ])[kb ];//kbe
+         real fTW   =  (D.f[TW  ])[kw ];//ktw
+         real fTN   =  (D.f[TN  ])[k  ];//ktn
+         real fBS   =  (D.f[BS  ])[kbs];
+         real fBN   =  (D.f[BN  ])[kb ];//kbn
+         real fTS   =  (D.f[TS  ])[ks ];//kts
          real fZERO =  (D.f[dirREST])[k  ];//kzero
-         real fTNE   = (D.f[dirTNE ])[k  ];//ktne
-         real fTSW   = (D.f[dirTSW ])[ksw];//ktsw
-         real fTSE   = (D.f[dirTSE ])[ks ];//ktse
-         real fTNW   = (D.f[dirTNW ])[kw ];//ktnw
-         real fBNE   = (D.f[dirBNE ])[kb ];//kbne
-         real fBSW   = (D.f[dirBSW ])[kbsw];
-         real fBSE   = (D.f[dirBSE ])[kbs];//kbse
-         real fBNW   = (D.f[dirBNW ])[kbw];//kbnw
+         real fTNE   = (D.f[TNE ])[k  ];//ktne
+         real fTSW   = (D.f[TSW ])[ksw];//ktsw
+         real fTSE   = (D.f[TSE ])[ks ];//ktse
+         real fTNW   = (D.f[TNW ])[kw ];//ktnw
+         real fBNE   = (D.f[BNE ])[kb ];//kbne
+         real fBSW   = (D.f[BSW ])[kbsw];
+         real fBSE   = (D.f[BSE ])[kbs];//kbse
+         real fBNW   = (D.f[BNW ])[kbw];//kbnw
          ////////////////////////////////////////////////////////////////////////////////
          real rho0   =  fZERO+fE+fW+fN+fS+fT+fB+fNE+fSW+fSE+fNW+fTE+fBW+fBE+fTW+fTN+fBS+fBN+fTS+fTNE+fTSW+fTSE+fTNW+fBNE+fBSW+fBSE+fBNW;
          real rho    =  rho0 + c1o1;
@@ -2735,65 +2735,65 @@ extern "C" __global__ void LB_Kernel_Casc_SP_MS_27(   real omega,
                   c2o1*(vx2y*MzYZZ +  vx*MzXYYZZ + vz*MzXXYYZ + vyz2*MzXXY + vx2z*MzYYZ + vxy2*MzXZZ + vxz2*MzXYY + vy*MzXXYZZ + vy2z*MzXXZ)+ 
                   c4o1*(vxy2z*MzXZ + vx2yz*MzYZ + vxyz2*MzXY + vxy*MzXYZZ + vxz*MzXYYZ + vyz*MzXXYZ);
 
-         (D.f[ dirE   ])[k   ] =   c1o2*rho*( mu200  - mu220 + mu222 - mu202 +  mu120 - mu122 + mu102 - vx   );   //ke
-         (D.f[ dirW   ])[kw  ] =   c1o2*rho*( mu200  - mu220 + mu222 - mu202 -  mu120 + mu122 - mu102 + vx   );   
-         (D.f[ dirN   ])[k   ] =   c1o2*rho*( mu210  - mu220 + mu222 - mu212 +  mu020 - mu022 + mu012 - vy   );   //kn
-         (D.f[ dirS   ])[ks  ] =   c1o2*rho*(-mu210  - mu220 + mu222 + mu212 +  mu020 - mu022 - mu012 + vy   );   
-         (D.f[ dirT   ])[k   ] =   c1o2*rho*(-mu221  + mu222 + mu201 - mu202 +  mu021 - mu022 + mu002 - vz   );   //kt
-         (D.f[ dirB   ])[kb  ] =   c1o2*rho*( mu221  + mu222 - mu201 - mu202 -  mu021 - mu022 + mu002 + vz   );   
-         (D.f[ dirNE  ])[k   ] =  c1o4*rho*(-mu210  + mu220 - mu222 + mu212 +  mu110 - mu120 + mu122 - mu112);   //kne
-         (D.f[ dirSW  ])[ksw ] =  c1o4*rho*( mu210  + mu220 - mu222 - mu212 +  mu110 + mu120 - mu122 - mu112);   
-         (D.f[ dirSE  ])[ks  ] =  c1o4*rho*( mu210  + mu220 - mu222 - mu212 -  mu110 - mu120 + mu122 + mu112);   //kse
-         (D.f[ dirNW  ])[kw  ] =  c1o4*rho*(-mu210  + mu220 - mu222 + mu212 -  mu110 + mu120 - mu122 + mu112);   //knw
-         (D.f[ dirTE  ])[k   ] =  c1o4*rho*( mu221  - mu222 - mu201 + mu202 -  mu121 + mu122 + mu101 - mu102);   //kte
-         (D.f[ dirBW  ])[kbw ] =  c1o4*rho*(-mu221  - mu222 + mu201 + mu202 -  mu121 - mu122 + mu101 + mu102);   
-         (D.f[ dirBE  ])[kb  ] =  c1o4*rho*(-mu221  - mu222 + mu201 + mu202 +  mu121 + mu122 - mu101 - mu102);   //kbe
-         (D.f[ dirTW  ])[kw  ] =  c1o4*rho*( mu221  - mu222 - mu201 + mu202 +  mu121 - mu122 - mu101 + mu102);   //ktw
-         (D.f[ dirTN  ])[k   ] =  c1o4*rho*( mu221  - mu222 - mu211 + mu212 -  mu021 + mu022 + mu011 - mu012);   //ktn
-         (D.f[ dirBS  ])[kbs ] =  c1o4*rho*(-mu221  - mu222 - mu211 - mu212 +  mu021 + mu022 + mu011 + mu012);   
-         (D.f[ dirBN  ])[kb  ] =  c1o4*rho*(-mu221  - mu222 + mu211 + mu212 +  mu021 + mu022 - mu011 - mu012);   //kbn
-         (D.f[ dirTS  ])[ks  ] =  c1o4*rho*( mu221  - mu222 + mu211 - mu212 -  mu021 + mu022 - mu011 + mu012);   //kts
+         (D.f[ E   ])[k   ] =   c1o2*rho*( mu200  - mu220 + mu222 - mu202 +  mu120 - mu122 + mu102 - vx   );   //ke
+         (D.f[ W   ])[kw  ] =   c1o2*rho*( mu200  - mu220 + mu222 - mu202 -  mu120 + mu122 - mu102 + vx   );   
+         (D.f[ N   ])[k   ] =   c1o2*rho*( mu210  - mu220 + mu222 - mu212 +  mu020 - mu022 + mu012 - vy   );   //kn
+         (D.f[ S   ])[ks  ] =   c1o2*rho*(-mu210  - mu220 + mu222 + mu212 +  mu020 - mu022 - mu012 + vy   );   
+         (D.f[ T   ])[k   ] =   c1o2*rho*(-mu221  + mu222 + mu201 - mu202 +  mu021 - mu022 + mu002 - vz   );   //kt
+         (D.f[ B   ])[kb  ] =   c1o2*rho*( mu221  + mu222 - mu201 - mu202 -  mu021 - mu022 + mu002 + vz   );   
+         (D.f[ NE  ])[k   ] =  c1o4*rho*(-mu210  + mu220 - mu222 + mu212 +  mu110 - mu120 + mu122 - mu112);   //kne
+         (D.f[ SW  ])[ksw ] =  c1o4*rho*( mu210  + mu220 - mu222 - mu212 +  mu110 + mu120 - mu122 - mu112);   
+         (D.f[ SE  ])[ks  ] =  c1o4*rho*( mu210  + mu220 - mu222 - mu212 -  mu110 - mu120 + mu122 + mu112);   //kse
+         (D.f[ NW  ])[kw  ] =  c1o4*rho*(-mu210  + mu220 - mu222 + mu212 -  mu110 + mu120 - mu122 + mu112);   //knw
+         (D.f[ TE  ])[k   ] =  c1o4*rho*( mu221  - mu222 - mu201 + mu202 -  mu121 + mu122 + mu101 - mu102);   //kte
+         (D.f[ BW  ])[kbw ] =  c1o4*rho*(-mu221  - mu222 + mu201 + mu202 -  mu121 - mu122 + mu101 + mu102);   
+         (D.f[ BE  ])[kb  ] =  c1o4*rho*(-mu221  - mu222 + mu201 + mu202 +  mu121 + mu122 - mu101 - mu102);   //kbe
+         (D.f[ TW  ])[kw  ] =  c1o4*rho*( mu221  - mu222 - mu201 + mu202 +  mu121 - mu122 - mu101 + mu102);   //ktw
+         (D.f[ TN  ])[k   ] =  c1o4*rho*( mu221  - mu222 - mu211 + mu212 -  mu021 + mu022 + mu011 - mu012);   //ktn
+         (D.f[ BS  ])[kbs ] =  c1o4*rho*(-mu221  - mu222 - mu211 - mu212 +  mu021 + mu022 + mu011 + mu012);   
+         (D.f[ BN  ])[kb  ] =  c1o4*rho*(-mu221  - mu222 + mu211 + mu212 +  mu021 + mu022 - mu011 - mu012);   //kbn
+         (D.f[ TS  ])[ks  ] =  c1o4*rho*( mu221  - mu222 + mu211 - mu212 -  mu021 + mu022 - mu011 + mu012);   //kts
          (D.f[ dirREST])[k   ] =       rho*(-mu200  + mu220 - mu222 + mu202 -  mu020 + mu022 - mu002        )+rho0;   //kzero
-         (D.f[ dirTNE ])[k   ] = c1o8*rho*(-mu221  + mu222 + mu211 - mu212 +  mu121 - mu122 - mu111 + mu112);   //ktne
-         (D.f[ dirTSE ])[ks  ] = c1o8*rho*(-mu221  + mu222 - mu211 + mu212 +  mu121 - mu122 + mu111 - mu112);   //ktse
-         (D.f[ dirBNE ])[kb  ] = c1o8*rho*( mu221  + mu222 - mu211 - mu212 -  mu121 - mu122 + mu111 + mu112);   //kbne
-         (D.f[ dirBSE ])[kbs ] = c1o8*rho*( mu221  + mu222 + mu211 + mu212 -  mu121 - mu122 - mu111 - mu112);   //kbse
-         (D.f[ dirTNW ])[kw  ] = c1o8*rho*(-mu221  + mu222 + mu211 - mu212 -  mu121 + mu122 + mu111 - mu112);   //ktnw
-         (D.f[ dirTSW ])[ksw ] = c1o8*rho*(-mu221  + mu222 - mu211 + mu212 -  mu121 + mu122 - mu111 + mu112);   //ktsw
-         (D.f[ dirBNW ])[kbw ] = c1o8*rho*( mu221  + mu222 - mu211 - mu212 +  mu121 + mu122 - mu111 - mu112);   //kbnw
-         (D.f[ dirBSW ])[kbsw] = c1o8*rho*( mu221  + mu222 + mu211 + mu212 +  mu121 + mu122 + mu111 + mu112);   
+         (D.f[ TNE ])[k   ] = c1o8*rho*(-mu221  + mu222 + mu211 - mu212 +  mu121 - mu122 - mu111 + mu112);   //ktne
+         (D.f[ TSE ])[ks  ] = c1o8*rho*(-mu221  + mu222 - mu211 + mu212 +  mu121 - mu122 + mu111 - mu112);   //ktse
+         (D.f[ BNE ])[kb  ] = c1o8*rho*( mu221  + mu222 - mu211 - mu212 -  mu121 - mu122 + mu111 + mu112);   //kbne
+         (D.f[ BSE ])[kbs ] = c1o8*rho*( mu221  + mu222 + mu211 + mu212 -  mu121 - mu122 - mu111 - mu112);   //kbse
+         (D.f[ TNW ])[kw  ] = c1o8*rho*(-mu221  + mu222 + mu211 - mu212 -  mu121 + mu122 + mu111 - mu112);   //ktnw
+         (D.f[ TSW ])[ksw ] = c1o8*rho*(-mu221  + mu222 - mu211 + mu212 -  mu121 + mu122 - mu111 + mu112);   //ktsw
+         (D.f[ BNW ])[kbw ] = c1o8*rho*( mu221  + mu222 - mu211 - mu212 +  mu121 + mu122 - mu111 - mu112);   //kbnw
+         (D.f[ BSW ])[kbsw] = c1o8*rho*( mu221  + mu222 + mu211 + mu212 +  mu121 + mu122 + mu111 + mu112);   
 
 
          //////////////////////////////////////////////////////////////////////////
          //BGK
          //////////////////////////////////////////////////////////////////////////
-         //(D.f[ dirE   ])[k   ] = fW    ;
-         //(D.f[ dirW   ])[kw  ] = fE    ;
-         //(D.f[ dirN   ])[k   ] = fS    ;
-         //(D.f[ dirS   ])[ks  ] = fN    ;
-         //(D.f[ dirT   ])[k   ] = fB    ;
-         //(D.f[ dirB   ])[kb  ] = fT    ;
-         //(D.f[ dirNE  ])[k   ] = fSW   ;
-         //(D.f[ dirSW  ])[ksw ] = fNE   ;
-         //(D.f[ dirSE  ])[ks  ] = fNW   ;
-         //(D.f[ dirNW  ])[kw  ] = fSE   ;
-         //(D.f[ dirTE  ])[k   ] = fBW   ;
-         //(D.f[ dirBW  ])[kbw ] = fTE   ;
-         //(D.f[ dirBE  ])[kb  ] = fTW   ;
-         //(D.f[ dirTW  ])[kw  ] = fBE   ;
-         //(D.f[ dirTN  ])[k   ] = fBS   ;
-         //(D.f[ dirBS  ])[kbs ] = fTN   ;
-         //(D.f[ dirBN  ])[kb  ] = fTS   ;
-         //(D.f[ dirTS  ])[ks  ] = fBN   ;
+         //(D.f[ E   ])[k   ] = fW    ;
+         //(D.f[ W   ])[kw  ] = fE    ;
+         //(D.f[ N   ])[k   ] = fS    ;
+         //(D.f[ S   ])[ks  ] = fN    ;
+         //(D.f[ T   ])[k   ] = fB    ;
+         //(D.f[ B   ])[kb  ] = fT    ;
+         //(D.f[ NE  ])[k   ] = fSW   ;
+         //(D.f[ SW  ])[ksw ] = fNE   ;
+         //(D.f[ SE  ])[ks  ] = fNW   ;
+         //(D.f[ NW  ])[kw  ] = fSE   ;
+         //(D.f[ TE  ])[k   ] = fBW   ;
+         //(D.f[ BW  ])[kbw ] = fTE   ;
+         //(D.f[ BE  ])[kb  ] = fTW   ;
+         //(D.f[ TW  ])[kw  ] = fBE   ;
+         //(D.f[ TN  ])[k   ] = fBS   ;
+         //(D.f[ BS  ])[kbs ] = fTN   ;
+         //(D.f[ BN  ])[kb  ] = fTS   ;
+         //(D.f[ TS  ])[ks  ] = fBN   ;
          //(D.f[ dirREST])[k   ] = fZERO ;
-         //(D.f[ dirTNE ])[k   ] = fBSW  ;
-         //(D.f[ dirTSE ])[ks  ] = fBNW  ;
-         //(D.f[ dirBNE ])[kb  ] = fTSW  ;
-         //(D.f[ dirBSE ])[kbs ] = fTNW  ;
-         //(D.f[ dirTNW ])[kw  ] = fBSE  ;
-         //(D.f[ dirTSW ])[ksw ] = fBNE  ;
-         //(D.f[ dirBNW ])[kbw ] = fTSE  ;
-         //(D.f[ dirBSW ])[kbsw] = fTNE  ;
+         //(D.f[ TNE ])[k   ] = fBSW  ;
+         //(D.f[ TSE ])[ks  ] = fBNW  ;
+         //(D.f[ BNE ])[kb  ] = fTSW  ;
+         //(D.f[ BSE ])[kbs ] = fTNW  ;
+         //(D.f[ TNW ])[kw  ] = fBSE  ;
+         //(D.f[ TSW ])[ksw ] = fBNE  ;
+         //(D.f[ BNW ])[kbw ] = fTSE  ;
+         //(D.f[ BSW ])[kbsw] = fTNE  ;
       }                                                                                                                    
    }
 }
@@ -2869,63 +2869,63 @@ extern "C" __global__ void LB_Kernel_Casc_SP_MS_Diff_27(real omega,
          Distributions27 D;
          if (EvenOrOdd==true)
          {
-            D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-            D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-            D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-            D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-            D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-            D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-            D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-            D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-            D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-            D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-            D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-            D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-            D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-            D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-            D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-            D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-            D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-            D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+            D.f[E   ] = &DDStart[E   *size_Mat];
+            D.f[W   ] = &DDStart[W   *size_Mat];
+            D.f[N   ] = &DDStart[N   *size_Mat];
+            D.f[S   ] = &DDStart[S   *size_Mat];
+            D.f[T   ] = &DDStart[T   *size_Mat];
+            D.f[B   ] = &DDStart[B   *size_Mat];
+            D.f[NE  ] = &DDStart[NE  *size_Mat];
+            D.f[SW  ] = &DDStart[SW  *size_Mat];
+            D.f[SE  ] = &DDStart[SE  *size_Mat];
+            D.f[NW  ] = &DDStart[NW  *size_Mat];
+            D.f[TE  ] = &DDStart[TE  *size_Mat];
+            D.f[BW  ] = &DDStart[BW  *size_Mat];
+            D.f[BE  ] = &DDStart[BE  *size_Mat];
+            D.f[TW  ] = &DDStart[TW  *size_Mat];
+            D.f[TN  ] = &DDStart[TN  *size_Mat];
+            D.f[BS  ] = &DDStart[BS  *size_Mat];
+            D.f[BN  ] = &DDStart[BN  *size_Mat];
+            D.f[TS  ] = &DDStart[TS  *size_Mat];
             D.f[dirREST] = &DDStart[dirREST*size_Mat];
-            D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-            D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-            D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-            D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-            D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-            D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-            D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-            D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+            D.f[TNE ] = &DDStart[TNE *size_Mat];
+            D.f[TSW ] = &DDStart[TSW *size_Mat];
+            D.f[TSE ] = &DDStart[TSE *size_Mat];
+            D.f[TNW ] = &DDStart[TNW *size_Mat];
+            D.f[BNE ] = &DDStart[BNE *size_Mat];
+            D.f[BSW ] = &DDStart[BSW *size_Mat];
+            D.f[BSE ] = &DDStart[BSE *size_Mat];
+            D.f[BNW ] = &DDStart[BNW *size_Mat];
          }
          else
          {
-            D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-            D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-            D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-            D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-            D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-            D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-            D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-            D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-            D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-            D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-            D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-            D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-            D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-            D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-            D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-            D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-            D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-            D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+            D.f[W   ] = &DDStart[E   *size_Mat];
+            D.f[E   ] = &DDStart[W   *size_Mat];
+            D.f[S   ] = &DDStart[N   *size_Mat];
+            D.f[N   ] = &DDStart[S   *size_Mat];
+            D.f[B   ] = &DDStart[T   *size_Mat];
+            D.f[T   ] = &DDStart[B   *size_Mat];
+            D.f[SW  ] = &DDStart[NE  *size_Mat];
+            D.f[NE  ] = &DDStart[SW  *size_Mat];
+            D.f[NW  ] = &DDStart[SE  *size_Mat];
+            D.f[SE  ] = &DDStart[NW  *size_Mat];
+            D.f[BW  ] = &DDStart[TE  *size_Mat];
+            D.f[TE  ] = &DDStart[BW  *size_Mat];
+            D.f[TW  ] = &DDStart[BE  *size_Mat];
+            D.f[BE  ] = &DDStart[TW  *size_Mat];
+            D.f[BS  ] = &DDStart[TN  *size_Mat];
+            D.f[TN  ] = &DDStart[BS  *size_Mat];
+            D.f[TS  ] = &DDStart[BN  *size_Mat];
+            D.f[BN  ] = &DDStart[TS  *size_Mat];
             D.f[dirREST] = &DDStart[dirREST*size_Mat];
-            D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-            D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-            D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-            D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-            D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-            D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-            D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-            D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+            D.f[BSW ] = &DDStart[TNE *size_Mat];
+            D.f[BNE ] = &DDStart[TSW *size_Mat];
+            D.f[BNW ] = &DDStart[TSE *size_Mat];
+            D.f[BSE ] = &DDStart[TNW *size_Mat];
+            D.f[TSW ] = &DDStart[BNE *size_Mat];
+            D.f[TNE ] = &DDStart[BSW *size_Mat];
+            D.f[TNW ] = &DDStart[BSE *size_Mat];
+            D.f[TSE ] = &DDStart[BNW *size_Mat];
          }
 
          ////////////////////////////////////////////////////////////////////////////////
@@ -2958,33 +2958,33 @@ extern "C" __global__ void LB_Kernel_Casc_SP_MS_Diff_27(real omega,
          //unsigned int ktne = k;
          unsigned int kbsw = neighborZ[ksw];
          //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-         real fE    =  (D.f[dirE   ])[k  ];//ke
-         real fW    =  (D.f[dirW   ])[kw ];
-         real fN    =  (D.f[dirN   ])[k  ];//kn
-         real fS    =  (D.f[dirS   ])[ks ];
-         real fT    =  (D.f[dirT   ])[k  ];//kt
-         real fB    =  (D.f[dirB   ])[kb ];
-         real fNE   =  (D.f[dirNE  ])[k  ];//kne
-         real fSW   =  (D.f[dirSW  ])[ksw];
-         real fSE   =  (D.f[dirSE  ])[ks ];//kse
-         real fNW   =  (D.f[dirNW  ])[kw ];//knw
-         real fTE   =  (D.f[dirTE  ])[k  ];//kte
-         real fBW   =  (D.f[dirBW  ])[kbw];
-         real fBE   =  (D.f[dirBE  ])[kb ];//kbe
-         real fTW   =  (D.f[dirTW  ])[kw ];//ktw
-         real fTN   =  (D.f[dirTN  ])[k  ];//ktn
-         real fBS   =  (D.f[dirBS  ])[kbs];
-         real fBN   =  (D.f[dirBN  ])[kb ];//kbn
-         real fTS   =  (D.f[dirTS  ])[ks ];//kts
+         real fE    =  (D.f[E   ])[k  ];//ke
+         real fW    =  (D.f[W   ])[kw ];
+         real fN    =  (D.f[N   ])[k  ];//kn
+         real fS    =  (D.f[S   ])[ks ];
+         real fT    =  (D.f[T   ])[k  ];//kt
+         real fB    =  (D.f[B   ])[kb ];
+         real fNE   =  (D.f[NE  ])[k  ];//kne
+         real fSW   =  (D.f[SW  ])[ksw];
+         real fSE   =  (D.f[SE  ])[ks ];//kse
+         real fNW   =  (D.f[NW  ])[kw ];//knw
+         real fTE   =  (D.f[TE  ])[k  ];//kte
+         real fBW   =  (D.f[BW  ])[kbw];
+         real fBE   =  (D.f[BE  ])[kb ];//kbe
+         real fTW   =  (D.f[TW  ])[kw ];//ktw
+         real fTN   =  (D.f[TN  ])[k  ];//ktn
+         real fBS   =  (D.f[BS  ])[kbs];
+         real fBN   =  (D.f[BN  ])[kb ];//kbn
+         real fTS   =  (D.f[TS  ])[ks ];//kts
          real fZERO =  (D.f[dirREST])[k  ];//kzero
-         real fTNE   = (D.f[dirTNE ])[k  ];//ktne
-         real fTSW   = (D.f[dirTSW ])[ksw];//ktsw
-         real fTSE   = (D.f[dirTSE ])[ks ];//ktse
-         real fTNW   = (D.f[dirTNW ])[kw ];//ktnw
-         real fBNE   = (D.f[dirBNE ])[kb ];//kbne
-         real fBSW   = (D.f[dirBSW ])[kbsw];
-         real fBSE   = (D.f[dirBSE ])[kbs];//kbse
-         real fBNW   = (D.f[dirBNW ])[kbw];//kbnw
+         real fTNE   = (D.f[TNE ])[k  ];//ktne
+         real fTSW   = (D.f[TSW ])[ksw];//ktsw
+         real fTSE   = (D.f[TSE ])[ks ];//ktse
+         real fTNW   = (D.f[TNW ])[kw ];//ktnw
+         real fBNE   = (D.f[BNE ])[kb ];//kbne
+         real fBSW   = (D.f[BSW ])[kbsw];
+         real fBSE   = (D.f[BSE ])[kbs];//kbse
+         real fBNW   = (D.f[BNW ])[kbw];//kbnw
          ////////////////////////////////////////////////////////////////////////////////
          real rho0   =  fZERO+fE+fW+fN+fS+fT+fB+fNE+fSW+fSE+fNW+fTE+fBW+fBE+fTW+fTN+fBS+fBN+fTS+fTNE+fTSW+fTSE+fTNW+fBNE+fBSW+fBSE+fBNW;
          real rho    =  rho0 + c1o1;
@@ -3257,65 +3257,65 @@ extern "C" __global__ void LB_Kernel_Casc_SP_MS_Diff_27(real omega,
             c2o1*(vx2y*MzYZZ +  vx*MzXYYZZ + vz*MzXXYYZ + vyz2*MzXXY + vx2z*MzYYZ + vxy2*MzXZZ + vxz2*MzXYY + vy*MzXXYZZ + vy2z*MzXXZ)+ 
             c4o1*(vxy2z*MzXZ + vx2yz*MzYZ + vxyz2*MzXY + vxy*MzXYZZ + vxz*MzXYYZ + vyz*MzXXYZ);
 
-         (D.f[ dirE   ])[k   ] = fW    -   c1o2*rho*( mu200  - mu220 + mu222 - mu202 +  mu120 - mu122 + mu102        );   //ke
-         (D.f[ dirW   ])[kw  ] = fE    -   c1o2*rho*( mu200  - mu220 + mu222 - mu202 -  mu120 + mu122 - mu102        );   
-         (D.f[ dirN   ])[k   ] = fS    -   c1o2*rho*( mu210  - mu220 + mu222 - mu212 +  mu020 - mu022 + mu012        );   //kn
-         (D.f[ dirS   ])[ks  ] = fN    -   c1o2*rho*(-mu210  - mu220 + mu222 + mu212 +  mu020 - mu022 - mu012        );   
-         (D.f[ dirT   ])[k   ] = fB    -   c1o2*rho*(-mu221  + mu222 + mu201 - mu202 +  mu021 - mu022 + mu002        );   //kt
-         (D.f[ dirB   ])[kb  ] = fT    -   c1o2*rho*( mu221  + mu222 - mu201 - mu202 -  mu021 - mu022 + mu002        );   
-         (D.f[ dirNE  ])[k   ] = fSW   -  c1o4*rho*(-mu210  + mu220 - mu222 + mu212 +  mu110 - mu120 + mu122 - mu112);   //kne
-         (D.f[ dirSW  ])[ksw ] = fNE   -  c1o4*rho*( mu210  + mu220 - mu222 - mu212 +  mu110 + mu120 - mu122 - mu112);   
-         (D.f[ dirSE  ])[ks  ] = fNW   -  c1o4*rho*( mu210  + mu220 - mu222 - mu212 -  mu110 - mu120 + mu122 + mu112);   //kse
-         (D.f[ dirNW  ])[kw  ] = fSE   -  c1o4*rho*(-mu210  + mu220 - mu222 + mu212 -  mu110 + mu120 - mu122 + mu112);   //knw
-         (D.f[ dirTE  ])[k   ] = fBW   -  c1o4*rho*( mu221  - mu222 - mu201 + mu202 -  mu121 + mu122 + mu101 - mu102);   //kte
-         (D.f[ dirBW  ])[kbw ] = fTE   -  c1o4*rho*(-mu221  - mu222 + mu201 + mu202 -  mu121 - mu122 + mu101 + mu102);   
-         (D.f[ dirBE  ])[kb  ] = fTW   -  c1o4*rho*(-mu221  - mu222 + mu201 + mu202 +  mu121 + mu122 - mu101 - mu102);   //kbe
-         (D.f[ dirTW  ])[kw  ] = fBE   -  c1o4*rho*( mu221  - mu222 - mu201 + mu202 +  mu121 - mu122 - mu101 + mu102);   //ktw
-         (D.f[ dirTN  ])[k   ] = fBS   -  c1o4*rho*( mu221  - mu222 - mu211 + mu212 -  mu021 + mu022 + mu011 - mu012);   //ktn
-         (D.f[ dirBS  ])[kbs ] = fTN   -  c1o4*rho*(-mu221  - mu222 - mu211 - mu212 +  mu021 + mu022 + mu011 + mu012);   
-         (D.f[ dirBN  ])[kb  ] = fTS   -  c1o4*rho*(-mu221  - mu222 + mu211 + mu212 +  mu021 + mu022 - mu011 - mu012);   //kbn
-         (D.f[ dirTS  ])[ks  ] = fBN   -  c1o4*rho*( mu221  - mu222 + mu211 - mu212 -  mu021 + mu022 - mu011 + mu012);   //kts
+         (D.f[ E   ])[k   ] = fW    -   c1o2*rho*( mu200  - mu220 + mu222 - mu202 +  mu120 - mu122 + mu102        );   //ke
+         (D.f[ W   ])[kw  ] = fE    -   c1o2*rho*( mu200  - mu220 + mu222 - mu202 -  mu120 + mu122 - mu102        );   
+         (D.f[ N   ])[k   ] = fS    -   c1o2*rho*( mu210  - mu220 + mu222 - mu212 +  mu020 - mu022 + mu012        );   //kn
+         (D.f[ S   ])[ks  ] = fN    -   c1o2*rho*(-mu210  - mu220 + mu222 + mu212 +  mu020 - mu022 - mu012        );   
+         (D.f[ T   ])[k   ] = fB    -   c1o2*rho*(-mu221  + mu222 + mu201 - mu202 +  mu021 - mu022 + mu002        );   //kt
+         (D.f[ B   ])[kb  ] = fT    -   c1o2*rho*( mu221  + mu222 - mu201 - mu202 -  mu021 - mu022 + mu002        );   
+         (D.f[ NE  ])[k   ] = fSW   -  c1o4*rho*(-mu210  + mu220 - mu222 + mu212 +  mu110 - mu120 + mu122 - mu112);   //kne
+         (D.f[ SW  ])[ksw ] = fNE   -  c1o4*rho*( mu210  + mu220 - mu222 - mu212 +  mu110 + mu120 - mu122 - mu112);   
+         (D.f[ SE  ])[ks  ] = fNW   -  c1o4*rho*( mu210  + mu220 - mu222 - mu212 -  mu110 - mu120 + mu122 + mu112);   //kse
+         (D.f[ NW  ])[kw  ] = fSE   -  c1o4*rho*(-mu210  + mu220 - mu222 + mu212 -  mu110 + mu120 - mu122 + mu112);   //knw
+         (D.f[ TE  ])[k   ] = fBW   -  c1o4*rho*( mu221  - mu222 - mu201 + mu202 -  mu121 + mu122 + mu101 - mu102);   //kte
+         (D.f[ BW  ])[kbw ] = fTE   -  c1o4*rho*(-mu221  - mu222 + mu201 + mu202 -  mu121 - mu122 + mu101 + mu102);   
+         (D.f[ BE  ])[kb  ] = fTW   -  c1o4*rho*(-mu221  - mu222 + mu201 + mu202 +  mu121 + mu122 - mu101 - mu102);   //kbe
+         (D.f[ TW  ])[kw  ] = fBE   -  c1o4*rho*( mu221  - mu222 - mu201 + mu202 +  mu121 - mu122 - mu101 + mu102);   //ktw
+         (D.f[ TN  ])[k   ] = fBS   -  c1o4*rho*( mu221  - mu222 - mu211 + mu212 -  mu021 + mu022 + mu011 - mu012);   //ktn
+         (D.f[ BS  ])[kbs ] = fTN   -  c1o4*rho*(-mu221  - mu222 - mu211 - mu212 +  mu021 + mu022 + mu011 + mu012);   
+         (D.f[ BN  ])[kb  ] = fTS   -  c1o4*rho*(-mu221  - mu222 + mu211 + mu212 +  mu021 + mu022 - mu011 - mu012);   //kbn
+         (D.f[ TS  ])[ks  ] = fBN   -  c1o4*rho*( mu221  - mu222 + mu211 - mu212 -  mu021 + mu022 - mu011 + mu012);   //kts
          (D.f[ dirREST])[k   ] = fZERO -       rho*(-mu200  + mu220 - mu222 + mu202 -  mu020 + mu022 - mu002        );   //kzero
-         (D.f[ dirTNE ])[k   ] = fBSW  - c1o8*rho*(-mu221  + mu222 + mu211 - mu212 +  mu121 - mu122 - mu111 + mu112);   //ktne
-         (D.f[ dirTSE ])[ks  ] = fBNW  - c1o8*rho*(-mu221  + mu222 - mu211 + mu212 +  mu121 - mu122 + mu111 - mu112);   //ktse
-         (D.f[ dirBNE ])[kb  ] = fTSW  - c1o8*rho*( mu221  + mu222 - mu211 - mu212 -  mu121 - mu122 + mu111 + mu112);   //kbne
-         (D.f[ dirBSE ])[kbs ] = fTNW  - c1o8*rho*( mu221  + mu222 + mu211 + mu212 -  mu121 - mu122 - mu111 - mu112);   //kbse
-         (D.f[ dirTNW ])[kw  ] = fBSE  - c1o8*rho*(-mu221  + mu222 + mu211 - mu212 -  mu121 + mu122 + mu111 - mu112);   //ktnw
-         (D.f[ dirTSW ])[ksw ] = fBNE  - c1o8*rho*(-mu221  + mu222 - mu211 + mu212 -  mu121 + mu122 - mu111 + mu112);   //ktsw
-         (D.f[ dirBNW ])[kbw ] = fTSE  - c1o8*rho*( mu221  + mu222 - mu211 - mu212 +  mu121 + mu122 - mu111 - mu112);   //kbnw
-         (D.f[ dirBSW ])[kbsw] = fTNE  - c1o8*rho*( mu221  + mu222 + mu211 + mu212 +  mu121 + mu122 + mu111 + mu112);   
+         (D.f[ TNE ])[k   ] = fBSW  - c1o8*rho*(-mu221  + mu222 + mu211 - mu212 +  mu121 - mu122 - mu111 + mu112);   //ktne
+         (D.f[ TSE ])[ks  ] = fBNW  - c1o8*rho*(-mu221  + mu222 - mu211 + mu212 +  mu121 - mu122 + mu111 - mu112);   //ktse
+         (D.f[ BNE ])[kb  ] = fTSW  - c1o8*rho*( mu221  + mu222 - mu211 - mu212 -  mu121 - mu122 + mu111 + mu112);   //kbne
+         (D.f[ BSE ])[kbs ] = fTNW  - c1o8*rho*( mu221  + mu222 + mu211 + mu212 -  mu121 - mu122 - mu111 - mu112);   //kbse
+         (D.f[ TNW ])[kw  ] = fBSE  - c1o8*rho*(-mu221  + mu222 + mu211 - mu212 -  mu121 + mu122 + mu111 - mu112);   //ktnw
+         (D.f[ TSW ])[ksw ] = fBNE  - c1o8*rho*(-mu221  + mu222 - mu211 + mu212 -  mu121 + mu122 - mu111 + mu112);   //ktsw
+         (D.f[ BNW ])[kbw ] = fTSE  - c1o8*rho*( mu221  + mu222 - mu211 - mu212 +  mu121 + mu122 - mu111 - mu112);   //kbnw
+         (D.f[ BSW ])[kbsw] = fTNE  - c1o8*rho*( mu221  + mu222 + mu211 + mu212 +  mu121 + mu122 + mu111 + mu112);   
 
 
          //////////////////////////////////////////////////////////////////////////
          //BGK
          //////////////////////////////////////////////////////////////////////////
-         //(D.f[ dirE   ])[k   ] = fW    ;
-         //(D.f[ dirW   ])[kw  ] = fE    ;
-         //(D.f[ dirN   ])[k   ] = fS    ;
-         //(D.f[ dirS   ])[ks  ] = fN    ;
-         //(D.f[ dirT   ])[k   ] = fB    ;
-         //(D.f[ dirB   ])[kb  ] = fT    ;
-         //(D.f[ dirNE  ])[k   ] = fSW   ;
-         //(D.f[ dirSW  ])[ksw ] = fNE   ;
-         //(D.f[ dirSE  ])[ks  ] = fNW   ;
-         //(D.f[ dirNW  ])[kw  ] = fSE   ;
-         //(D.f[ dirTE  ])[k   ] = fBW   ;
-         //(D.f[ dirBW  ])[kbw ] = fTE   ;
-         //(D.f[ dirBE  ])[kb  ] = fTW   ;
-         //(D.f[ dirTW  ])[kw  ] = fBE   ;
-         //(D.f[ dirTN  ])[k   ] = fBS   ;
-         //(D.f[ dirBS  ])[kbs ] = fTN   ;
-         //(D.f[ dirBN  ])[kb  ] = fTS   ;
-         //(D.f[ dirTS  ])[ks  ] = fBN   ;
+         //(D.f[ E   ])[k   ] = fW    ;
+         //(D.f[ W   ])[kw  ] = fE    ;
+         //(D.f[ N   ])[k   ] = fS    ;
+         //(D.f[ S   ])[ks  ] = fN    ;
+         //(D.f[ T   ])[k   ] = fB    ;
+         //(D.f[ B   ])[kb  ] = fT    ;
+         //(D.f[ NE  ])[k   ] = fSW   ;
+         //(D.f[ SW  ])[ksw ] = fNE   ;
+         //(D.f[ SE  ])[ks  ] = fNW   ;
+         //(D.f[ NW  ])[kw  ] = fSE   ;
+         //(D.f[ TE  ])[k   ] = fBW   ;
+         //(D.f[ BW  ])[kbw ] = fTE   ;
+         //(D.f[ BE  ])[kb  ] = fTW   ;
+         //(D.f[ TW  ])[kw  ] = fBE   ;
+         //(D.f[ TN  ])[k   ] = fBS   ;
+         //(D.f[ BS  ])[kbs ] = fTN   ;
+         //(D.f[ BN  ])[kb  ] = fTS   ;
+         //(D.f[ TS  ])[ks  ] = fBN   ;
          //(D.f[ dirREST])[k   ] = fZERO ;
-         //(D.f[ dirTNE ])[k   ] = fBSW  ;
-         //(D.f[ dirTSE ])[ks  ] = fBNW  ;
-         //(D.f[ dirBNE ])[kb  ] = fTSW  ;
-         //(D.f[ dirBSE ])[kbs ] = fTNW  ;
-         //(D.f[ dirTNW ])[kw  ] = fBSE  ;
-         //(D.f[ dirTSW ])[ksw ] = fBNE  ;
-         //(D.f[ dirBNW ])[kbw ] = fTSE  ;
-         //(D.f[ dirBSW ])[kbsw] = fTNE  ;
+         //(D.f[ TNE ])[k   ] = fBSW  ;
+         //(D.f[ TSE ])[ks  ] = fBNW  ;
+         //(D.f[ BNE ])[kb  ] = fTSW  ;
+         //(D.f[ BSE ])[kbs ] = fTNW  ;
+         //(D.f[ TNW ])[kw  ] = fBSE  ;
+         //(D.f[ TSW ])[ksw ] = fBNE  ;
+         //(D.f[ BNW ])[kbw ] = fTSE  ;
+         //(D.f[ BSW ])[kbsw] = fTNE  ;
       }                                                                                                                    
    }
 }
@@ -3391,63 +3391,63 @@ extern "C" __global__ void LB_Kernel_Casc_SP_27(  real omega,
        Distributions27 D;
        if (EvenOrOdd==true)
        {
-          D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-          D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-          D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-          D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-          D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-          D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-          D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-          D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-          D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-          D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-          D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-          D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-          D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-          D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-          D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-          D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-          D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-          D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+          D.f[E   ] = &DDStart[E   *size_Mat];
+          D.f[W   ] = &DDStart[W   *size_Mat];
+          D.f[N   ] = &DDStart[N   *size_Mat];
+          D.f[S   ] = &DDStart[S   *size_Mat];
+          D.f[T   ] = &DDStart[T   *size_Mat];
+          D.f[B   ] = &DDStart[B   *size_Mat];
+          D.f[NE  ] = &DDStart[NE  *size_Mat];
+          D.f[SW  ] = &DDStart[SW  *size_Mat];
+          D.f[SE  ] = &DDStart[SE  *size_Mat];
+          D.f[NW  ] = &DDStart[NW  *size_Mat];
+          D.f[TE  ] = &DDStart[TE  *size_Mat];
+          D.f[BW  ] = &DDStart[BW  *size_Mat];
+          D.f[BE  ] = &DDStart[BE  *size_Mat];
+          D.f[TW  ] = &DDStart[TW  *size_Mat];
+          D.f[TN  ] = &DDStart[TN  *size_Mat];
+          D.f[BS  ] = &DDStart[BS  *size_Mat];
+          D.f[BN  ] = &DDStart[BN  *size_Mat];
+          D.f[TS  ] = &DDStart[TS  *size_Mat];
           D.f[dirREST] = &DDStart[dirREST*size_Mat];
-          D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-          D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-          D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-          D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-          D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-          D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-          D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-          D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+          D.f[TNE ] = &DDStart[TNE *size_Mat];
+          D.f[TSW ] = &DDStart[TSW *size_Mat];
+          D.f[TSE ] = &DDStart[TSE *size_Mat];
+          D.f[TNW ] = &DDStart[TNW *size_Mat];
+          D.f[BNE ] = &DDStart[BNE *size_Mat];
+          D.f[BSW ] = &DDStart[BSW *size_Mat];
+          D.f[BSE ] = &DDStart[BSE *size_Mat];
+          D.f[BNW ] = &DDStart[BNW *size_Mat];
        }
        else
        {
-          D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-          D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-          D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-          D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-          D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-          D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-          D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-          D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-          D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-          D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-          D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-          D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-          D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-          D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-          D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-          D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-          D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-          D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+          D.f[W   ] = &DDStart[E   *size_Mat];
+          D.f[E   ] = &DDStart[W   *size_Mat];
+          D.f[S   ] = &DDStart[N   *size_Mat];
+          D.f[N   ] = &DDStart[S   *size_Mat];
+          D.f[B   ] = &DDStart[T   *size_Mat];
+          D.f[T   ] = &DDStart[B   *size_Mat];
+          D.f[SW  ] = &DDStart[NE  *size_Mat];
+          D.f[NE  ] = &DDStart[SW  *size_Mat];
+          D.f[NW  ] = &DDStart[SE  *size_Mat];
+          D.f[SE  ] = &DDStart[NW  *size_Mat];
+          D.f[BW  ] = &DDStart[TE  *size_Mat];
+          D.f[TE  ] = &DDStart[BW  *size_Mat];
+          D.f[TW  ] = &DDStart[BE  *size_Mat];
+          D.f[BE  ] = &DDStart[TW  *size_Mat];
+          D.f[BS  ] = &DDStart[TN  *size_Mat];
+          D.f[TN  ] = &DDStart[BS  *size_Mat];
+          D.f[TS  ] = &DDStart[BN  *size_Mat];
+          D.f[BN  ] = &DDStart[TS  *size_Mat];
           D.f[dirREST] = &DDStart[dirREST*size_Mat];
-          D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-          D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-          D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-          D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-          D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-          D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-          D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-          D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+          D.f[BSW ] = &DDStart[TNE *size_Mat];
+          D.f[BNE ] = &DDStart[TSW *size_Mat];
+          D.f[BNW ] = &DDStart[TSE *size_Mat];
+          D.f[BSE ] = &DDStart[TNW *size_Mat];
+          D.f[TSW ] = &DDStart[BNE *size_Mat];
+          D.f[TNE ] = &DDStart[BSW *size_Mat];
+          D.f[TNW ] = &DDStart[BSE *size_Mat];
+          D.f[TSE ] = &DDStart[BNW *size_Mat];
        }
 
        ////////////////////////////////////////////////////////////////////////////////
@@ -3510,33 +3510,33 @@ extern "C" __global__ void LB_Kernel_Casc_SP_27(  real omega,
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        real f_E,f_W,f_N,f_S,f_T,f_B,f_NE,f_SW,f_SE,f_NW,f_TE,f_BW,f_BE,f_TW,f_TN,f_BS,f_BN,f_TS,f_ZERO, f_TNE,f_TNW,f_TSE,f_TSW, f_BNE,f_BNW,f_BSE,f_BSW;
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-       f_E    =  (D.f[dirE   ])[ke]+c2o27;
-       f_W    =  (D.f[dirW   ])[kw]+c2o27;
-       f_N    =  (D.f[dirN   ])[kn]+c2o27;
-       f_S    =  (D.f[dirS   ])[ks]+c2o27;
-       f_T    =  (D.f[dirT   ])[kt]+c2o27;
-       f_B    =  (D.f[dirB   ])[kb]+c2o27;
-       f_NE   =  (D.f[dirNE  ])[kne]+c1o54;
-       f_SW   =  (D.f[dirSW  ])[ksw]+c1o54;
-       f_SE   =  (D.f[dirSE  ])[kse]+c1o54;
-       f_NW   =  (D.f[dirNW  ])[knw]+c1o54;
-       f_TE   =  (D.f[dirTE  ])[kte]+c1o54;
-       f_BW   =  (D.f[dirBW  ])[kbw]+c1o54;
-       f_BE   =  (D.f[dirBE  ])[kbe]+c1o54;
-       f_TW   =  (D.f[dirTW  ])[ktw]+c1o54;
-       f_TN   =  (D.f[dirTN  ])[ktn]+c1o54;
-       f_BS   =  (D.f[dirBS  ])[kbs]+c1o54;
-       f_BN   =  (D.f[dirBN  ])[kbn]+c1o54;
-       f_TS   =  (D.f[dirTS  ])[kts]+c1o54;
+       f_E    =  (D.f[E   ])[ke]+c2o27;
+       f_W    =  (D.f[W   ])[kw]+c2o27;
+       f_N    =  (D.f[N   ])[kn]+c2o27;
+       f_S    =  (D.f[S   ])[ks]+c2o27;
+       f_T    =  (D.f[T   ])[kt]+c2o27;
+       f_B    =  (D.f[B   ])[kb]+c2o27;
+       f_NE   =  (D.f[NE  ])[kne]+c1o54;
+       f_SW   =  (D.f[SW  ])[ksw]+c1o54;
+       f_SE   =  (D.f[SE  ])[kse]+c1o54;
+       f_NW   =  (D.f[NW  ])[knw]+c1o54;
+       f_TE   =  (D.f[TE  ])[kte]+c1o54;
+       f_BW   =  (D.f[BW  ])[kbw]+c1o54;
+       f_BE   =  (D.f[BE  ])[kbe]+c1o54;
+       f_TW   =  (D.f[TW  ])[ktw]+c1o54;
+       f_TN   =  (D.f[TN  ])[ktn]+c1o54;
+       f_BS   =  (D.f[BS  ])[kbs]+c1o54;
+       f_BN   =  (D.f[BN  ])[kbn]+c1o54;
+       f_TS   =  (D.f[TS  ])[kts]+c1o54;
        f_ZERO =  (D.f[dirREST])[kzero]+c8o27;
-       f_TNE   = (D.f[dirTNE ])[ktne]+c1o216;
-       f_TSW   = (D.f[dirTSW ])[ktsw]+c1o216;
-       f_TSE   = (D.f[dirTSE ])[ktse]+c1o216;
-       f_TNW   = (D.f[dirTNW ])[ktnw]+c1o216;
-       f_BNE   = (D.f[dirBNE ])[kbne]+c1o216;
-       f_BSW   = (D.f[dirBSW ])[kbsw]+c1o216;
-       f_BSE   = (D.f[dirBSE ])[kbse]+c1o216;
-       f_BNW   = (D.f[dirBNW ])[kbnw]+c1o216;
+       f_TNE   = (D.f[TNE ])[ktne]+c1o216;
+       f_TSW   = (D.f[TSW ])[ktsw]+c1o216;
+       f_TSE   = (D.f[TSE ])[ktse]+c1o216;
+       f_TNW   = (D.f[TNW ])[ktnw]+c1o216;
+       f_BNE   = (D.f[BNE ])[kbne]+c1o216;
+       f_BSW   = (D.f[BSW ])[kbsw]+c1o216;
+       f_BSE   = (D.f[BSE ])[kbse]+c1o216;
+       f_BNW   = (D.f[BNW ])[kbnw]+c1o216;
        ////////////////////////////////////////////////////////////////////////////////
 
        if( BC == GEO_FLUID || BC == GEO_VELO)
@@ -3975,38 +3975,38 @@ extern "C" __global__ void LB_Kernel_Casc_SP_27(  real omega,
           }
         }
 
-       (D.f[ dirE  ])[ke ] = f_W-c2o27;
-       (D.f[ dirW  ])[kw ] = f_E-c2o27;
+       (D.f[ E  ])[ke ] = f_W-c2o27;
+       (D.f[ W  ])[kw ] = f_E-c2o27;
 
-       (D.f[ dirN  ])[kn ] = f_S-c2o27;
-       (D.f[ dirS  ])[ks ] = f_N-c2o27;
-       (D.f[ dirT  ])[kt ] = f_B-c2o27;
-       (D.f[ dirB  ])[kb ] = f_T-c2o27;
+       (D.f[ N  ])[kn ] = f_S-c2o27;
+       (D.f[ S  ])[ks ] = f_N-c2o27;
+       (D.f[ T  ])[kt ] = f_B-c2o27;
+       (D.f[ B  ])[kb ] = f_T-c2o27;
 
-       (D.f[ dirNE ])[kne] = f_SW-c1o54;
-       (D.f[ dirSW ])[ksw] = f_NE-c1o54;
-       (D.f[ dirSE ])[kse] = f_NW-c1o54;
-       (D.f[ dirNW ])[knw] = f_SE-c1o54;
-       (D.f[ dirTE ])[kte] = f_BW-c1o54;
-       (D.f[ dirBW ])[kbw] = f_TE-c1o54;
-       (D.f[ dirBE ])[kbe] = f_TW-c1o54;
-       (D.f[ dirTW ])[ktw] = f_BE-c1o54;
+       (D.f[ NE ])[kne] = f_SW-c1o54;
+       (D.f[ SW ])[ksw] = f_NE-c1o54;
+       (D.f[ SE ])[kse] = f_NW-c1o54;
+       (D.f[ NW ])[knw] = f_SE-c1o54;
+       (D.f[ TE ])[kte] = f_BW-c1o54;
+       (D.f[ BW ])[kbw] = f_TE-c1o54;
+       (D.f[ BE ])[kbe] = f_TW-c1o54;
+       (D.f[ TW ])[ktw] = f_BE-c1o54;
 
-       (D.f[ dirTN ])[ktn] = f_BS-c1o54;
-       (D.f[ dirBS ])[kbs] = f_TN-c1o54;
-       (D.f[ dirBN ])[kbn] = f_TS-c1o54;
-       (D.f[ dirTS ])[kts] = f_BN-c1o54;
+       (D.f[ TN ])[ktn] = f_BS-c1o54;
+       (D.f[ BS ])[kbs] = f_TN-c1o54;
+       (D.f[ BN ])[kbn] = f_TS-c1o54;
+       (D.f[ TS ])[kts] = f_BN-c1o54;
 
        (D.f[ dirREST])[k] = f_ZERO-c8o27;
 
-       (D.f[ dirTNE ])[ktne] = f_BSW-c1o216;
-       (D.f[ dirTSE ])[ktse] = f_BNW-c1o216;
-       (D.f[ dirBNE ])[kbne] = f_TSW-c1o216;
-       (D.f[ dirBSE ])[kbse] = f_TNW-c1o216;
-       (D.f[ dirTNW ])[ktnw] = f_BSE-c1o216;
-       (D.f[ dirTSW ])[ktsw] = f_BNE-c1o216;
-       (D.f[ dirBNW ])[kbnw] = f_TSE-c1o216;
-       (D.f[ dirBSW ])[kbsw] = f_TNE-c1o216;
+       (D.f[ TNE ])[ktne] = f_BSW-c1o216;
+       (D.f[ TSE ])[ktse] = f_BNW-c1o216;
+       (D.f[ BNE ])[kbne] = f_TSW-c1o216;
+       (D.f[ BSE ])[kbse] = f_TNW-c1o216;
+       (D.f[ TNW ])[ktnw] = f_BSE-c1o216;
+       (D.f[ TSW ])[ktsw] = f_BNE-c1o216;
+       (D.f[ BNW ])[kbnw] = f_TSE-c1o216;
+       (D.f[ BSW ])[kbsw] = f_TNE-c1o216;
       }
      __syncthreads();
      }
@@ -4087,63 +4087,63 @@ extern "C" __global__ void LB_Kernel_Casc27(real omega,
       Distributions27 D;
       if (EvenOrOdd==true)
       {
-         D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-         D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-         D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-         D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-         D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-         D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-         D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+         D.f[E   ] = &DDStart[E   *size_Mat];
+         D.f[W   ] = &DDStart[W   *size_Mat];
+         D.f[N   ] = &DDStart[N   *size_Mat];
+         D.f[S   ] = &DDStart[S   *size_Mat];
+         D.f[T   ] = &DDStart[T   *size_Mat];
+         D.f[B   ] = &DDStart[B   *size_Mat];
+         D.f[NE  ] = &DDStart[NE  *size_Mat];
+         D.f[SW  ] = &DDStart[SW  *size_Mat];
+         D.f[SE  ] = &DDStart[SE  *size_Mat];
+         D.f[NW  ] = &DDStart[NW  *size_Mat];
+         D.f[TE  ] = &DDStart[TE  *size_Mat];
+         D.f[BW  ] = &DDStart[BW  *size_Mat];
+         D.f[BE  ] = &DDStart[BE  *size_Mat];
+         D.f[TW  ] = &DDStart[TW  *size_Mat];
+         D.f[TN  ] = &DDStart[TN  *size_Mat];
+         D.f[BS  ] = &DDStart[BS  *size_Mat];
+         D.f[BN  ] = &DDStart[BN  *size_Mat];
+         D.f[TS  ] = &DDStart[TS  *size_Mat];
          D.f[dirREST] = &DDStart[dirREST*size_Mat];
-         D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+         D.f[TNE ] = &DDStart[TNE *size_Mat];
+         D.f[TSW ] = &DDStart[TSW *size_Mat];
+         D.f[TSE ] = &DDStart[TSE *size_Mat];
+         D.f[TNW ] = &DDStart[TNW *size_Mat];
+         D.f[BNE ] = &DDStart[BNE *size_Mat];
+         D.f[BSW ] = &DDStart[BSW *size_Mat];
+         D.f[BSE ] = &DDStart[BSE *size_Mat];
+         D.f[BNW ] = &DDStart[BNW *size_Mat];
       }
       else
       {
-         D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-         D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-         D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-         D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-         D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-         D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-         D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+         D.f[W   ] = &DDStart[E   *size_Mat];
+         D.f[E   ] = &DDStart[W   *size_Mat];
+         D.f[S   ] = &DDStart[N   *size_Mat];
+         D.f[N   ] = &DDStart[S   *size_Mat];
+         D.f[B   ] = &DDStart[T   *size_Mat];
+         D.f[T   ] = &DDStart[B   *size_Mat];
+         D.f[SW  ] = &DDStart[NE  *size_Mat];
+         D.f[NE  ] = &DDStart[SW  *size_Mat];
+         D.f[NW  ] = &DDStart[SE  *size_Mat];
+         D.f[SE  ] = &DDStart[NW  *size_Mat];
+         D.f[BW  ] = &DDStart[TE  *size_Mat];
+         D.f[TE  ] = &DDStart[BW  *size_Mat];
+         D.f[TW  ] = &DDStart[BE  *size_Mat];
+         D.f[BE  ] = &DDStart[TW  *size_Mat];
+         D.f[BS  ] = &DDStart[TN  *size_Mat];
+         D.f[TN  ] = &DDStart[BS  *size_Mat];
+         D.f[TS  ] = &DDStart[BN  *size_Mat];
+         D.f[BN  ] = &DDStart[TS  *size_Mat];
          D.f[dirREST] = &DDStart[dirREST*size_Mat];
-         D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-         D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-         D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-         D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-         D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-         D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-         D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-         D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+         D.f[BSW ] = &DDStart[TNE *size_Mat];
+         D.f[BNE ] = &DDStart[TSW *size_Mat];
+         D.f[BNW ] = &DDStart[TSE *size_Mat];
+         D.f[BSE ] = &DDStart[TNW *size_Mat];
+         D.f[TSW ] = &DDStart[BNE *size_Mat];
+         D.f[TNE ] = &DDStart[BSW *size_Mat];
+         D.f[TNW ] = &DDStart[BSE *size_Mat];
+         D.f[TSE ] = &DDStart[BNW *size_Mat];
       }
 
       ////////////////////////////////////////////////////////////////////////////////
@@ -4206,33 +4206,33 @@ extern "C" __global__ void LB_Kernel_Casc27(real omega,
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       real f_E,f_W,f_N,f_S,f_T,f_B,f_NE,f_SW,f_SE,f_NW,f_TE,f_BW,f_BE,f_TW,f_TN,f_BS,f_BN,f_TS,f_ZERO, f_TNE,f_TNW,f_TSE,f_TSW, f_BNE,f_BNW,f_BSE,f_BSW;
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      f_E    =  (D.f[dirE   ])[ke]+c2o27;
-      f_W    =  (D.f[dirW   ])[kw]+c2o27;
-      f_N    =  (D.f[dirN   ])[kn]+c2o27;
-      f_S    =  (D.f[dirS   ])[ks]+c2o27;
-      f_T    =  (D.f[dirT   ])[kt]+c2o27;
-      f_B    =  (D.f[dirB   ])[kb]+c2o27;
-      f_NE   =  (D.f[dirNE  ])[kne]+c1o54;
-      f_SW   =  (D.f[dirSW  ])[ksw]+c1o54;
-      f_SE   =  (D.f[dirSE  ])[kse]+c1o54;
-      f_NW   =  (D.f[dirNW  ])[knw]+c1o54;
-      f_TE   =  (D.f[dirTE  ])[kte]+c1o54;
-      f_BW   =  (D.f[dirBW  ])[kbw]+c1o54;
-      f_BE   =  (D.f[dirBE  ])[kbe]+c1o54;
-      f_TW   =  (D.f[dirTW  ])[ktw]+c1o54;
-      f_TN   =  (D.f[dirTN  ])[ktn]+c1o54;
-      f_BS   =  (D.f[dirBS  ])[kbs]+c1o54;
-      f_BN   =  (D.f[dirBN  ])[kbn]+c1o54;
-      f_TS   =  (D.f[dirTS  ])[kts]+c1o54;
+      f_E    =  (D.f[E   ])[ke]+c2o27;
+      f_W    =  (D.f[W   ])[kw]+c2o27;
+      f_N    =  (D.f[N   ])[kn]+c2o27;
+      f_S    =  (D.f[S   ])[ks]+c2o27;
+      f_T    =  (D.f[T   ])[kt]+c2o27;
+      f_B    =  (D.f[B   ])[kb]+c2o27;
+      f_NE   =  (D.f[NE  ])[kne]+c1o54;
+      f_SW   =  (D.f[SW  ])[ksw]+c1o54;
+      f_SE   =  (D.f[SE  ])[kse]+c1o54;
+      f_NW   =  (D.f[NW  ])[knw]+c1o54;
+      f_TE   =  (D.f[TE  ])[kte]+c1o54;
+      f_BW   =  (D.f[BW  ])[kbw]+c1o54;
+      f_BE   =  (D.f[BE  ])[kbe]+c1o54;
+      f_TW   =  (D.f[TW  ])[ktw]+c1o54;
+      f_TN   =  (D.f[TN  ])[ktn]+c1o54;
+      f_BS   =  (D.f[BS  ])[kbs]+c1o54;
+      f_BN   =  (D.f[BN  ])[kbn]+c1o54;
+      f_TS   =  (D.f[TS  ])[kts]+c1o54;
       f_ZERO =  (D.f[dirREST])[kzero]+c8o27;
-      f_TNE   = (D.f[dirTNE ])[ktne]+c1o216;
-      f_TSW   = (D.f[dirTSW ])[ktsw]+c1o216;
-      f_TSE   = (D.f[dirTSE ])[ktse]+c1o216;
-      f_TNW   = (D.f[dirTNW ])[ktnw]+c1o216;
-      f_BNE   = (D.f[dirBNE ])[kbne]+c1o216;
-      f_BSW   = (D.f[dirBSW ])[kbsw]+c1o216;
-      f_BSE   = (D.f[dirBSE ])[kbse]+c1o216;
-      f_BNW   = (D.f[dirBNW ])[kbnw]+c1o216;
+      f_TNE   = (D.f[TNE ])[ktne]+c1o216;
+      f_TSW   = (D.f[TSW ])[ktsw]+c1o216;
+      f_TSE   = (D.f[TSE ])[ktse]+c1o216;
+      f_TNW   = (D.f[TNW ])[ktnw]+c1o216;
+      f_BNE   = (D.f[BNE ])[kbne]+c1o216;
+      f_BSW   = (D.f[BSW ])[kbsw]+c1o216;
+      f_BSE   = (D.f[BSE ])[kbse]+c1o216;
+      f_BNW   = (D.f[BNW ])[kbnw]+c1o216;
       ////////////////////////////////////////////////////////////////////////////////
 
       if( BC == GEO_FLUID || BC == GEO_VELO)
@@ -4671,38 +4671,38 @@ extern "C" __global__ void LB_Kernel_Casc27(real omega,
          }
       }
 
-      (D.f[ dirE  ])[ke ] = f_W-c2o27;
-      (D.f[ dirW  ])[kw ] = f_E-c2o27;
+      (D.f[ E  ])[ke ] = f_W-c2o27;
+      (D.f[ W  ])[kw ] = f_E-c2o27;
 
-      (D.f[ dirN  ])[kn ] = f_S-c2o27;
-      (D.f[ dirS  ])[ks ] = f_N-c2o27;
-      (D.f[ dirT  ])[kt ] = f_B-c2o27;
-      (D.f[ dirB  ])[kb ] = f_T-c2o27;
+      (D.f[ N  ])[kn ] = f_S-c2o27;
+      (D.f[ S  ])[ks ] = f_N-c2o27;
+      (D.f[ T  ])[kt ] = f_B-c2o27;
+      (D.f[ B  ])[kb ] = f_T-c2o27;
 
-      (D.f[ dirNE ])[kne] = f_SW-c1o54;
-      (D.f[ dirSW ])[ksw] = f_NE-c1o54;
-      (D.f[ dirSE ])[kse] = f_NW-c1o54;
-      (D.f[ dirNW ])[knw] = f_SE-c1o54;
-      (D.f[ dirTE ])[kte] = f_BW-c1o54;
-      (D.f[ dirBW ])[kbw] = f_TE-c1o54;
-      (D.f[ dirBE ])[kbe] = f_TW-c1o54;
-      (D.f[ dirTW ])[ktw] = f_BE-c1o54;
+      (D.f[ NE ])[kne] = f_SW-c1o54;
+      (D.f[ SW ])[ksw] = f_NE-c1o54;
+      (D.f[ SE ])[kse] = f_NW-c1o54;
+      (D.f[ NW ])[knw] = f_SE-c1o54;
+      (D.f[ TE ])[kte] = f_BW-c1o54;
+      (D.f[ BW ])[kbw] = f_TE-c1o54;
+      (D.f[ BE ])[kbe] = f_TW-c1o54;
+      (D.f[ TW ])[ktw] = f_BE-c1o54;
 
-      (D.f[ dirTN ])[ktn] = f_BS-c1o54;
-      (D.f[ dirBS ])[kbs] = f_TN-c1o54;
-      (D.f[ dirBN ])[kbn] = f_TS-c1o54;
-      (D.f[ dirTS ])[kts] = f_BN-c1o54;
+      (D.f[ TN ])[ktn] = f_BS-c1o54;
+      (D.f[ BS ])[kbs] = f_TN-c1o54;
+      (D.f[ BN ])[kbn] = f_TS-c1o54;
+      (D.f[ TS ])[kts] = f_BN-c1o54;
 
       (D.f[ dirREST])[k] = f_ZERO-c8o27;
 
-      (D.f[ dirTNE ])[ktne] = f_BSW-c1o216;
-      (D.f[ dirTSE ])[ktse] = f_BNW-c1o216;
-      (D.f[ dirBNE ])[kbne] = f_TSW-c1o216;
-      (D.f[ dirBSE ])[kbse] = f_TNW-c1o216;
-      (D.f[ dirTNW ])[ktnw] = f_BSE-c1o216;
-      (D.f[ dirTSW ])[ktsw] = f_BNE-c1o216;
-      (D.f[ dirBNW ])[kbnw] = f_TSE-c1o216;
-      (D.f[ dirBSW ])[kbsw] = f_TNE-c1o216;
+      (D.f[ TNE ])[ktne] = f_BSW-c1o216;
+      (D.f[ TSE ])[ktse] = f_BNW-c1o216;
+      (D.f[ BNE ])[kbne] = f_TSW-c1o216;
+      (D.f[ BSE ])[kbse] = f_TNW-c1o216;
+      (D.f[ TNW ])[ktnw] = f_BSE-c1o216;
+      (D.f[ TSW ])[ktsw] = f_BNE-c1o216;
+      (D.f[ BNW ])[kbnw] = f_TSE-c1o216;
+      (D.f[ BSW ])[kbsw] = f_TNE-c1o216;
    }
    __syncthreads();
 }
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu b/src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu
index 8765a7e78..b0ba7b052 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Cumulant27.cu
@@ -47,63 +47,63 @@ extern "C" __global__ void LB_Kernel_Kum_AA2016_Comp_Bulk_SP_27(real omega,
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -136,33 +136,33 @@ extern "C" __global__ void LB_Kernel_Kum_AA2016_Comp_Bulk_SP_27(real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW   ])[kw ];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN   ])[k  ];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS   ])[ks ];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT   ])[k  ];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB   ])[kb ];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE  ])[k  ];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW  ])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE  ])[ks ];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW  ])[kw ];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE  ])[k  ];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW  ])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE  ])[kb ];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW  ])[kw ];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN  ])[k  ];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS  ])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN  ])[kb ];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS  ])[ks ];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E   ])[k  ];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W   ])[kw ];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N   ])[k  ];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S   ])[ks ];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T   ])[k  ];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B   ])[kb ];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE  ])[k  ];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW  ])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE  ])[ks ];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW  ])[kw ];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE  ])[k  ];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW  ])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE  ])[kb ];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW  ])[kw ];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN  ])[k  ];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS  ])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN  ])[kb ];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS  ])[ks ];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k  ];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE ])[k  ];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW ])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE ])[ks ];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW ])[kw ];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE ])[kb ];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW ])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW ])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE ])[k  ];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW ])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE ])[ks ];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW ])[kw ];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE ])[kb ];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW ])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW ])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
 							(((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) +
@@ -893,33 +893,33 @@ extern "C" __global__ void LB_Kernel_Kum_AA2016_Comp_Bulk_SP_27(real omega,
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[ dirE   ])[k   ] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[ dirW   ])[kw  ] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[ dirN   ])[k   ] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[ dirS   ])[ks  ] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[ dirT   ])[k   ] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[ dirB   ])[kb  ] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[ dirNE  ])[k   ] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[ dirSW  ])[ksw ] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[ dirSE  ])[ks  ] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[ dirNW  ])[kw  ] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[ dirTE  ])[k   ] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[ dirBW  ])[kbw ] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[ dirBE  ])[kb  ] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[ dirTW  ])[kw  ] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[ dirTN  ])[k   ] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[ dirBS  ])[kbs ] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[ dirBN  ])[kb  ] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[ dirTS  ])[ks  ] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[ E   ])[k   ] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[ W   ])[kw  ] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[ N   ])[k   ] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[ S   ])[ks  ] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[ T   ])[k   ] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[ B   ])[kb  ] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[ NE  ])[k   ] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[ SW  ])[ksw ] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[ SE  ])[ks  ] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[ NW  ])[kw  ] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[ TE  ])[k   ] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[ BW  ])[kbw ] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[ BE  ])[kb  ] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[ TW  ])[kw  ] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[ TN  ])[k   ] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[ BS  ])[kbs ] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[ BN  ])[kb  ] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[ TS  ])[ks  ] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[ dirREST])[k   ] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[ dirTNE ])[k   ] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[ dirTSE ])[ks  ] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[ dirBNE ])[kb  ] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[ dirBSE ])[kbs ] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[ dirTNW ])[kw  ] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[ dirTSW ])[ksw ] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[ dirBNW ])[kbw ] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[ dirBSW ])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[ TNE ])[k   ] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[ TSE ])[ks  ] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[ BNE ])[kb  ] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[ BSE ])[kbs ] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[ TNW ])[kw  ] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[ TSW ])[ksw ] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[ BNW ])[kbw ] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[ BSW ])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 			////////////////////////////////////////////////////////////////////////////////////
 		}                                                                                                                    
 	}
@@ -999,63 +999,63 @@ extern "C" __global__ void LB_Kernel_Kum_IsoTest_SP_27( real omega,
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -1088,33 +1088,33 @@ extern "C" __global__ void LB_Kernel_Kum_IsoTest_SP_27( real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW   ])[kw ];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN   ])[k  ];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS   ])[ks ];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT   ])[k  ];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB   ])[kb ];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE  ])[k  ];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW  ])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE  ])[ks ];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW  ])[kw ];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE  ])[k  ];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW  ])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE  ])[kb ];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW  ])[kw ];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN  ])[k  ];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS  ])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN  ])[kb ];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS  ])[ks ];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E   ])[k  ];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W   ])[kw ];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N   ])[k  ];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S   ])[ks ];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T   ])[k  ];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B   ])[kb ];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE  ])[k  ];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW  ])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE  ])[ks ];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW  ])[kw ];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE  ])[k  ];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW  ])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE  ])[kb ];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW  ])[kw ];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN  ])[k  ];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS  ])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN  ])[kb ];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS  ])[ks ];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k  ];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE ])[k  ];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW ])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE ])[ks ];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW ])[kw ];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE ])[kb ];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW ])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW ])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE ])[k  ];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW ])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE ])[ks ];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW ])[kw ];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE ])[kb ];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW ])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW ])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 			////////////////////////////////////////////////////////////////////////////////////
 			//slow
 			//real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
@@ -1932,33 +1932,33 @@ extern "C" __global__ void LB_Kernel_Kum_IsoTest_SP_27( real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[ dirE   ])[k   ] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[ dirW   ])[kw  ] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[ dirN   ])[k   ] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[ dirS   ])[ks  ] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[ dirT   ])[k   ] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[ dirB   ])[kb  ] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[ dirNE  ])[k   ] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[ dirSW  ])[ksw ] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[ dirSE  ])[ks  ] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[ dirNW  ])[kw  ] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[ dirTE  ])[k   ] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[ dirBW  ])[kbw ] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[ dirBE  ])[kb  ] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[ dirTW  ])[kw  ] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[ dirTN  ])[k   ] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[ dirBS  ])[kbs ] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[ dirBN  ])[kb  ] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[ dirTS  ])[ks  ] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[ E   ])[k   ] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[ W   ])[kw  ] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[ N   ])[k   ] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[ S   ])[ks  ] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[ T   ])[k   ] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[ B   ])[kb  ] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[ NE  ])[k   ] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[ SW  ])[ksw ] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[ SE  ])[ks  ] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[ NW  ])[kw  ] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[ TE  ])[k   ] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[ BW  ])[kbw ] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[ BE  ])[kb  ] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[ TW  ])[kw  ] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[ TN  ])[k   ] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[ BS  ])[kbs ] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[ BN  ])[kb  ] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[ TS  ])[ks  ] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[ dirREST])[k   ] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[ dirTNE ])[k   ] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[ dirTSE ])[ks  ] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[ dirBNE ])[kb  ] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[ dirBSE ])[kbs ] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[ dirTNW ])[kw  ] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[ dirTSW ])[ksw ] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[ dirBNW ])[kbw ] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[ dirBSW ])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[ TNE ])[k   ] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[ TSE ])[ks  ] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[ BNE ])[kb  ] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[ BSE ])[kbs ] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[ TNW ])[kw  ] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[ TSW ])[ksw ] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[ BNW ])[kbw ] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[ BSW ])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 			////////////////////////////////////////////////////////////////////////////////////
 		}                                                                                                                    
 	}
@@ -2040,63 +2040,63 @@ extern "C" __global__ void LB_Kernel_Kum_1h_SP_27(  real omega,
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -2157,33 +2157,33 @@ extern "C" __global__ void LB_Kernel_Kum_1h_SP_27(  real omega,
 			//unsigned int ktne = k;
 			//unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW   ])[kw ];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN   ])[k  ];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS   ])[ks ];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT   ])[k  ];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB   ])[kb ];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE  ])[k  ];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW  ])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE  ])[ks ];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW  ])[kw ];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE  ])[k  ];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW  ])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE  ])[kb ];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW  ])[kw ];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN  ])[k  ];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS  ])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN  ])[kb ];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS  ])[ks ];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E   ])[k  ];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W   ])[kw ];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N   ])[k  ];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S   ])[ks ];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T   ])[k  ];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B   ])[kb ];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE  ])[k  ];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW  ])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE  ])[ks ];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW  ])[kw ];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE  ])[k  ];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW  ])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE  ])[kb ];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW  ])[kw ];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN  ])[k  ];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS  ])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN  ])[kb ];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS  ])[ks ];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k  ];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE ])[k  ];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW ])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE ])[ks ];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW ])[kw ];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE ])[kb ];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW ])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW ])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE ])[k  ];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW ])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE ])[ks ];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW ])[kw ];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE ])[kb ];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW ])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW ])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 			////////////////////////////////////////////////////////////////////////////////////
 			//Ship
 			real coord0X = 281.125f;//7.5f;
@@ -3159,33 +3159,33 @@ extern "C" __global__ void LB_Kernel_Kum_1h_SP_27(  real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[ dirE   ])[k   ] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[ dirW   ])[kw  ] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[ dirN   ])[k   ] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[ dirS   ])[ks  ] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[ dirT   ])[k   ] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[ dirB   ])[kb  ] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[ dirNE  ])[k   ] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[ dirSW  ])[ksw ] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[ dirSE  ])[ks  ] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[ dirNW  ])[kw  ] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[ dirTE  ])[k   ] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[ dirBW  ])[kbw ] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[ dirBE  ])[kb  ] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[ dirTW  ])[kw  ] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[ dirTN  ])[k   ] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[ dirBS  ])[kbs ] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[ dirBN  ])[kb  ] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[ dirTS  ])[ks  ] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[ E   ])[k   ] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[ W   ])[kw  ] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[ N   ])[k   ] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[ S   ])[ks  ] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[ T   ])[k   ] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[ B   ])[kb  ] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[ NE  ])[k   ] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[ SW  ])[ksw ] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[ SE  ])[ks  ] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[ NW  ])[kw  ] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[ TE  ])[k   ] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[ BW  ])[kbw ] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[ BE  ])[kb  ] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[ TW  ])[kw  ] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[ TN  ])[k   ] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[ BS  ])[kbs ] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[ BN  ])[kb  ] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[ TS  ])[ks  ] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[ dirREST])[k   ] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[ dirTNE ])[k   ] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[ dirTSE ])[ks  ] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[ dirBNE ])[kb  ] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[ dirBSE ])[kbs ] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[ dirTNW ])[kw  ] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[ dirTSW ])[ksw ] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[ dirBNW ])[kbw ] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[ dirBSW ])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[ TNE ])[k   ] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[ TSE ])[ks  ] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[ BNE ])[kb  ] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[ BSE ])[kbs ] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[ TNW ])[kw  ] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[ TSW ])[ksw ] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[ BNW ])[kbw ] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[ BSW ])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 			////////////////////////////////////////////////////////////////////////////////////
 		}                                                                                                                    
 	}
@@ -3262,63 +3262,63 @@ extern "C" __global__ void LB_Kernel_Kum_New_SP_27(     real omega,
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -3379,33 +3379,33 @@ extern "C" __global__ void LB_Kernel_Kum_New_SP_27(     real omega,
 			//unsigned int ktne = k;
 			//unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW   ])[kw ];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN   ])[k  ];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS   ])[ks ];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT   ])[k  ];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB   ])[kb ];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE  ])[k  ];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW  ])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE  ])[ks ];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW  ])[kw ];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE  ])[k  ];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW  ])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE  ])[kb ];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW  ])[kw ];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN  ])[k  ];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS  ])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN  ])[kb ];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS  ])[ks ];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E   ])[k  ];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W   ])[kw ];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N   ])[k  ];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S   ])[ks ];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T   ])[k  ];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B   ])[kb ];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE  ])[k  ];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW  ])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE  ])[ks ];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW  ])[kw ];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE  ])[k  ];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW  ])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE  ])[kb ];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW  ])[kw ];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN  ])[k  ];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS  ])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN  ])[kb ];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS  ])[ks ];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k  ];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE ])[k  ];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW ])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE ])[ks ];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW ])[kw ];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE ])[kb ];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW ])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW ])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE ])[k  ];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW ])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE ])[ks ];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW ])[kw ];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE ])[kb ];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW ])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW ])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 			////////////////////////////////////////////////////////////////////////////////////
 			//slow
 			//real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
@@ -4431,33 +4431,33 @@ extern "C" __global__ void LB_Kernel_Kum_New_SP_27(     real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[ dirE   ])[k   ] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[ dirW   ])[kw  ] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[ dirN   ])[k   ] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[ dirS   ])[ks  ] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[ dirT   ])[k   ] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[ dirB   ])[kb  ] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[ dirNE  ])[k   ] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[ dirSW  ])[ksw ] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[ dirSE  ])[ks  ] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[ dirNW  ])[kw  ] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[ dirTE  ])[k   ] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[ dirBW  ])[kbw ] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[ dirBE  ])[kb  ] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[ dirTW  ])[kw  ] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[ dirTN  ])[k   ] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[ dirBS  ])[kbs ] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[ dirBN  ])[kb  ] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[ dirTS  ])[ks  ] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[ E   ])[k   ] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[ W   ])[kw  ] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[ N   ])[k   ] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[ S   ])[ks  ] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[ T   ])[k   ] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[ B   ])[kb  ] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[ NE  ])[k   ] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[ SW  ])[ksw ] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[ SE  ])[ks  ] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[ NW  ])[kw  ] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[ TE  ])[k   ] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[ BW  ])[kbw ] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[ BE  ])[kb  ] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[ TW  ])[kw  ] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[ TN  ])[k   ] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[ BS  ])[kbs ] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[ BN  ])[kb  ] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[ TS  ])[ks  ] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[ dirREST])[k   ] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[ dirTNE ])[k   ] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[ dirTSE ])[ks  ] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[ dirBNE ])[kb  ] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[ dirBSE ])[kbs ] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[ dirTNW ])[kw  ] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[ dirTSW ])[ksw ] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[ dirBNW ])[kbw ] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[ dirBSW ])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[ TNE ])[k   ] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[ TSE ])[ks  ] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[ BNE ])[kb  ] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[ BSE ])[kbs ] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[ TNW ])[kw  ] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[ TSW ])[ksw ] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[ BNW ])[kbw ] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[ BSW ])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 			////////////////////////////////////////////////////////////////////////////////////
 		}                                                                                                                    
 	}
@@ -4534,63 +4534,63 @@ extern "C" __global__ void LB_Kernel_Kum_Comp_SP_27(    real omega,
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -4623,33 +4623,33 @@ extern "C" __global__ void LB_Kernel_Kum_Comp_SP_27(    real omega,
 			unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real E     = (D.f[dirE   ])[ke   ];// +  c2over27 ;
-			real W     = (D.f[dirW   ])[kw   ];// +  c2over27 ;
-			real N     = (D.f[dirN   ])[kn   ];// +  c2over27 ;
-			real S     = (D.f[dirS   ])[ks   ];// +  c2over27 ;
-			real F     = (D.f[dirT   ])[kt   ];// +  c2over27 ;
-			real B     = (D.f[dirB   ])[kb   ];// +  c2over27 ;
-			real Ne    = (D.f[dirNE  ])[kne  ];// +  c1over54 ;
-			real Sw    = (D.f[dirSW  ])[ksw  ];// +  c1over54 ;
-			real Se    = (D.f[dirSE  ])[kse  ];// +  c1over54 ;
-			real Nw    = (D.f[dirNW  ])[knw  ];// +  c1over54 ;
-			real Ef    = (D.f[dirTE  ])[kte  ];// +  c1over54 ;
-			real Wb    = (D.f[dirBW  ])[kbw  ];// +  c1over54 ;
-			real Eb    = (D.f[dirBE  ])[kbe  ];// +  c1over54 ;
-			real Wf    = (D.f[dirTW  ])[ktw  ];// +  c1over54 ;
-			real Nf    = (D.f[dirTN  ])[ktn  ];// +  c1over54 ;
-			real Sb    = (D.f[dirBS  ])[kbs  ];// +  c1over54 ;
-			real Nb    = (D.f[dirBN  ])[kbn  ];// +  c1over54 ;
-			real Sf    = (D.f[dirTS  ])[kts  ];// +  c1over54 ;
+			real E     = (D.f[E   ])[ke   ];// +  c2over27 ;
+			real W     = (D.f[W   ])[kw   ];// +  c2over27 ;
+			real N     = (D.f[N   ])[kn   ];// +  c2over27 ;
+			real S     = (D.f[S   ])[ks   ];// +  c2over27 ;
+			real F     = (D.f[T   ])[kt   ];// +  c2over27 ;
+			real B     = (D.f[B   ])[kb   ];// +  c2over27 ;
+			real Ne    = (D.f[NE  ])[kne  ];// +  c1over54 ;
+			real Sw    = (D.f[SW  ])[ksw  ];// +  c1over54 ;
+			real Se    = (D.f[SE  ])[kse  ];// +  c1over54 ;
+			real Nw    = (D.f[NW  ])[knw  ];// +  c1over54 ;
+			real Ef    = (D.f[TE  ])[kte  ];// +  c1over54 ;
+			real Wb    = (D.f[BW  ])[kbw  ];// +  c1over54 ;
+			real Eb    = (D.f[BE  ])[kbe  ];// +  c1over54 ;
+			real Wf    = (D.f[TW  ])[ktw  ];// +  c1over54 ;
+			real Nf    = (D.f[TN  ])[ktn  ];// +  c1over54 ;
+			real Sb    = (D.f[BS  ])[kbs  ];// +  c1over54 ;
+			real Nb    = (D.f[BN  ])[kbn  ];// +  c1over54 ;
+			real Sf    = (D.f[TS  ])[kts  ];// +  c1over54 ;
 			real R     = (D.f[dirREST])[kzero];// +  c8over27 ;
-			real Nef   = (D.f[dirTNE ])[ktne ];// +  c1over216;
-			real Swf   = (D.f[dirTSW ])[ktsw ];// +  c1over216;
-			real Sef   = (D.f[dirTSE ])[ktse ];// +  c1over216;
-			real Nwf   = (D.f[dirTNW ])[ktnw ];// +  c1over216;
-			real Neb   = (D.f[dirBNE ])[kbne ];// +  c1over216;
-			real Swb   = (D.f[dirBSW ])[kbsw ];// +  c1over216;
-			real Seb   = (D.f[dirBSE ])[kbse ];// +  c1over216;
-			real Nwb   = (D.f[dirBNW ])[kbnw ];// +  c1over216;
+			real Nef   = (D.f[TNE ])[ktne ];// +  c1over216;
+			real Swf   = (D.f[TSW ])[ktsw ];// +  c1over216;
+			real Sef   = (D.f[TSE ])[ktse ];// +  c1over216;
+			real Nwf   = (D.f[TNW ])[ktnw ];// +  c1over216;
+			real Neb   = (D.f[BNE ])[kbne ];// +  c1over216;
+			real Swb   = (D.f[BSW ])[kbsw ];// +  c1over216;
+			real Seb   = (D.f[BSE ])[kbse ];// +  c1over216;
+			real Nwb   = (D.f[BNW ])[kbnw ];// +  c1over216;
 			////////////////////////////////////////////////////////////////////////////////////
 			real fx = c0o1;
 			real fy = c0o1;
@@ -5371,33 +5371,33 @@ extern "C" __global__ void LB_Kernel_Kum_Comp_SP_27(    real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;//                                                                     
-			(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;                                                                     
-			(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;
-			(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;
-			(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;
-			(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;
-			(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;
-			(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;
-			(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;
-			(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;
-			(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;
-			(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;
-			(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;
-			(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;
-			(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;
-			(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;
-			(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;
-			(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;
+			(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;//                                                                     
+			(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;                                                                     
+			(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;
+			(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;
+			(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;
+			(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;
+			(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;
+			(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;
+			(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;
+			(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;
+			(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;
+			(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;
+			(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;
+			(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;
+			(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;
+			(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;
+			(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;
+			(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;
 			(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;
-			(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;
-			(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;
-			(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;
-			(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;
-			(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;
-			(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;
-			(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;
-			(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;
+			(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;
+			(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;
+			(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;
+			(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;
+			(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;
+			(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;
+			(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;
+			(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;
 			////////////////////////////////////////////////////////////////////////////////////
 		}                                                                                                                    
 	}
@@ -5477,63 +5477,63 @@ extern "C" __global__ void LB_Kernel_Kum_New_Comp_SRT_SP_27(
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -5567,33 +5567,33 @@ extern "C" __global__ void LB_Kernel_Kum_New_Comp_SRT_SP_27(
 			unsigned int kbsw = neighborZ[ksw];
 
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k   ];
-			real mfabb = (D.f[dirW   ])[kw  ];
-			real mfbcb = (D.f[dirN   ])[k   ];
-			real mfbab = (D.f[dirS   ])[ks  ];
-			real mfbbc = (D.f[dirT   ])[k   ];
-			real mfbba = (D.f[dirB   ])[kb  ];
-			real mfccb = (D.f[dirNE  ])[k   ];
-			real mfaab = (D.f[dirSW  ])[ksw ];
-			real mfcab = (D.f[dirSE  ])[ks  ];
-			real mfacb = (D.f[dirNW  ])[kw  ];
-			real mfcbc = (D.f[dirTE  ])[k   ];
-			real mfaba = (D.f[dirBW  ])[kbw ];
-			real mfcba = (D.f[dirBE  ])[kb  ];
-			real mfabc = (D.f[dirTW  ])[kw  ];
-			real mfbcc = (D.f[dirTN  ])[k   ];
-			real mfbaa = (D.f[dirBS  ])[kbs ];
-			real mfbca = (D.f[dirBN  ])[kb  ];
-			real mfbac = (D.f[dirTS  ])[ks  ];
+			real mfcbb = (D.f[E   ])[k   ];
+			real mfabb = (D.f[W   ])[kw  ];
+			real mfbcb = (D.f[N   ])[k   ];
+			real mfbab = (D.f[S   ])[ks  ];
+			real mfbbc = (D.f[T   ])[k   ];
+			real mfbba = (D.f[B   ])[kb  ];
+			real mfccb = (D.f[NE  ])[k   ];
+			real mfaab = (D.f[SW  ])[ksw ];
+			real mfcab = (D.f[SE  ])[ks  ];
+			real mfacb = (D.f[NW  ])[kw  ];
+			real mfcbc = (D.f[TE  ])[k   ];
+			real mfaba = (D.f[BW  ])[kbw ];
+			real mfcba = (D.f[BE  ])[kb  ];
+			real mfabc = (D.f[TW  ])[kw  ];
+			real mfbcc = (D.f[TN  ])[k   ];
+			real mfbaa = (D.f[BS  ])[kbs ];
+			real mfbca = (D.f[BN  ])[kb  ];
+			real mfbac = (D.f[TS  ])[ks  ];
 			real mfbbb = (D.f[dirREST])[k   ];
-			real mfccc = (D.f[dirTNE ])[k   ];
-			real mfaac = (D.f[dirTSW ])[ksw ];
-			real mfcac = (D.f[dirTSE ])[ks  ];
-			real mfacc = (D.f[dirTNW ])[kw  ];
-			real mfcca = (D.f[dirBNE ])[kb  ];
-			real mfaaa = (D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs ];
-			real mfaca = (D.f[dirBNW ])[kbw ];
+			real mfccc = (D.f[TNE ])[k   ];
+			real mfaac = (D.f[TSW ])[ksw ];
+			real mfcac = (D.f[TSE ])[ks  ];
+			real mfacc = (D.f[TNW ])[kw  ];
+			real mfcca = (D.f[BNE ])[kb  ];
+			real mfaaa = (D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs ];
+			real mfaca = (D.f[BNW ])[kbw ];
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -6348,33 +6348,33 @@ extern "C" __global__ void LB_Kernel_Kum_New_Comp_SRT_SP_27(
 					((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb;
 			mfbbb += drho - drhoPost;
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE   ])[k   ] = mfabb;                                                                   
-			(D.f[dirW   ])[kw  ] = mfcbb;                                                                 
-			(D.f[dirN   ])[k   ] = mfbab;
-			(D.f[dirS   ])[ks  ] = mfbcb;
-			(D.f[dirT   ])[k   ] = mfbba;
-			(D.f[dirB   ])[kb  ] = mfbbc;
-			(D.f[dirNE  ])[k   ] = mfaab;
-			(D.f[dirSW  ])[ksw ] = mfccb;
-			(D.f[dirSE  ])[ks  ] = mfacb;
-			(D.f[dirNW  ])[kw  ] = mfcab;
-			(D.f[dirTE  ])[k   ] = mfaba;
-			(D.f[dirBW  ])[kbw ] = mfcbc;
-			(D.f[dirBE  ])[kb  ] = mfabc;
-			(D.f[dirTW  ])[kw  ] = mfcba;
-			(D.f[dirTN  ])[k   ] = mfbaa;
-			(D.f[dirBS  ])[kbs ] = mfbcc;
-			(D.f[dirBN  ])[kb  ] = mfbac;
-			(D.f[dirTS  ])[ks  ] = mfbca;
+			(D.f[E   ])[k   ] = mfabb;                                                                   
+			(D.f[W   ])[kw  ] = mfcbb;                                                                 
+			(D.f[N   ])[k   ] = mfbab;
+			(D.f[S   ])[ks  ] = mfbcb;
+			(D.f[T   ])[k   ] = mfbba;
+			(D.f[B   ])[kb  ] = mfbbc;
+			(D.f[NE  ])[k   ] = mfaab;
+			(D.f[SW  ])[ksw ] = mfccb;
+			(D.f[SE  ])[ks  ] = mfacb;
+			(D.f[NW  ])[kw  ] = mfcab;
+			(D.f[TE  ])[k   ] = mfaba;
+			(D.f[BW  ])[kbw ] = mfcbc;
+			(D.f[BE  ])[kb  ] = mfabc;
+			(D.f[TW  ])[kw  ] = mfcba;
+			(D.f[TN  ])[k   ] = mfbaa;
+			(D.f[BS  ])[kbs ] = mfbcc;
+			(D.f[BN  ])[kb  ] = mfbac;
+			(D.f[TS  ])[ks  ] = mfbca;
 			(D.f[dirREST])[k   ] = mfbbb;
-			(D.f[dirTNE ])[k   ] = mfaaa;
-			(D.f[dirTSE ])[ks  ] = mfaca;
-			(D.f[dirBNE ])[kb  ] = mfaac;
-			(D.f[dirBSE ])[kbs ] = mfacc;
-			(D.f[dirTNW ])[kw  ] = mfcaa;
-			(D.f[dirTSW ])[ksw ] = mfcca;
-			(D.f[dirBNW ])[kbw ] = mfcac;
-			(D.f[dirBSW ])[kbsw] = mfccc;
+			(D.f[TNE ])[k   ] = mfaaa;
+			(D.f[TSE ])[ks  ] = mfaca;
+			(D.f[BNE ])[kb  ] = mfaac;
+			(D.f[BSE ])[kbs ] = mfacc;
+			(D.f[TNW ])[kw  ] = mfcaa;
+			(D.f[TSW ])[ksw ] = mfcca;
+			(D.f[BNW ])[kbw ] = mfcac;
+			(D.f[BSW ])[kbsw] = mfccc;
 		}
 	}
 }
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Cumulant27chim.cu b/src/gpu/VirtualFluids_GPU/GPU/Cumulant27chim.cu
index 14eb72fd9..577a0209c 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Cumulant27chim.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Cumulant27chim.cu
@@ -76,63 +76,63 @@ extern "C" __global__ void Cumulant_One_preconditioned_errorDiffusion_chim_Comp_
             Distributions27 D;
             if (EvenOrOdd == true)
             {
-                D.f[dirE] = &DDStart[dirE   *size_Mat];
-                D.f[dirW] = &DDStart[dirW   *size_Mat];
-                D.f[dirN] = &DDStart[dirN   *size_Mat];
-                D.f[dirS] = &DDStart[dirS   *size_Mat];
-                D.f[dirT] = &DDStart[dirT   *size_Mat];
-                D.f[dirB] = &DDStart[dirB   *size_Mat];
-                D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-                D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-                D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-                D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-                D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-                D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-                D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-                D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-                D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-                D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-                D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-                D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+                D.f[E] = &DDStart[E   *size_Mat];
+                D.f[W] = &DDStart[W   *size_Mat];
+                D.f[N] = &DDStart[N   *size_Mat];
+                D.f[S] = &DDStart[S   *size_Mat];
+                D.f[T] = &DDStart[T   *size_Mat];
+                D.f[B] = &DDStart[B   *size_Mat];
+                D.f[NE] = &DDStart[NE  *size_Mat];
+                D.f[SW] = &DDStart[SW  *size_Mat];
+                D.f[SE] = &DDStart[SE  *size_Mat];
+                D.f[NW] = &DDStart[NW  *size_Mat];
+                D.f[TE] = &DDStart[TE  *size_Mat];
+                D.f[BW] = &DDStart[BW  *size_Mat];
+                D.f[BE] = &DDStart[BE  *size_Mat];
+                D.f[TW] = &DDStart[TW  *size_Mat];
+                D.f[TN] = &DDStart[TN  *size_Mat];
+                D.f[BS] = &DDStart[BS  *size_Mat];
+                D.f[BN] = &DDStart[BN  *size_Mat];
+                D.f[TS] = &DDStart[TS  *size_Mat];
                 D.f[dirREST] = &DDStart[dirREST*size_Mat];
-                D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-                D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-                D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-                D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-                D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-                D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-                D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-                D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+                D.f[TNE] = &DDStart[TNE *size_Mat];
+                D.f[TSW] = &DDStart[TSW *size_Mat];
+                D.f[TSE] = &DDStart[TSE *size_Mat];
+                D.f[TNW] = &DDStart[TNW *size_Mat];
+                D.f[BNE] = &DDStart[BNE *size_Mat];
+                D.f[BSW] = &DDStart[BSW *size_Mat];
+                D.f[BSE] = &DDStart[BSE *size_Mat];
+                D.f[BNW] = &DDStart[BNW *size_Mat];
             }
             else
             {
-                D.f[dirW] = &DDStart[dirE   *size_Mat];
-                D.f[dirE] = &DDStart[dirW   *size_Mat];
-                D.f[dirS] = &DDStart[dirN   *size_Mat];
-                D.f[dirN] = &DDStart[dirS   *size_Mat];
-                D.f[dirB] = &DDStart[dirT   *size_Mat];
-                D.f[dirT] = &DDStart[dirB   *size_Mat];
-                D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-                D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-                D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-                D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-                D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-                D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-                D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-                D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-                D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-                D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-                D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-                D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+                D.f[W] = &DDStart[E   *size_Mat];
+                D.f[E] = &DDStart[W   *size_Mat];
+                D.f[S] = &DDStart[N   *size_Mat];
+                D.f[N] = &DDStart[S   *size_Mat];
+                D.f[B] = &DDStart[T   *size_Mat];
+                D.f[T] = &DDStart[B   *size_Mat];
+                D.f[SW] = &DDStart[NE  *size_Mat];
+                D.f[NE] = &DDStart[SW  *size_Mat];
+                D.f[NW] = &DDStart[SE  *size_Mat];
+                D.f[SE] = &DDStart[NW  *size_Mat];
+                D.f[BW] = &DDStart[TE  *size_Mat];
+                D.f[TE] = &DDStart[BW  *size_Mat];
+                D.f[TW] = &DDStart[BE  *size_Mat];
+                D.f[BE] = &DDStart[TW  *size_Mat];
+                D.f[BS] = &DDStart[TN  *size_Mat];
+                D.f[TN] = &DDStart[BS  *size_Mat];
+                D.f[TS] = &DDStart[BN  *size_Mat];
+                D.f[BN] = &DDStart[TS  *size_Mat];
                 D.f[dirREST] = &DDStart[dirREST*size_Mat];
-                D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-                D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-                D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-                D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-                D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-                D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-                D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-                D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+                D.f[BSW] = &DDStart[TNE *size_Mat];
+                D.f[BNE] = &DDStart[TSW *size_Mat];
+                D.f[BNW] = &DDStart[TSE *size_Mat];
+                D.f[BSE] = &DDStart[TNW *size_Mat];
+                D.f[TSW] = &DDStart[BNE *size_Mat];
+                D.f[TNE] = &DDStart[BSW *size_Mat];
+                D.f[TNW] = &DDStart[BSE *size_Mat];
+                D.f[TSE] = &DDStart[BNW *size_Mat];
             }
 
             ////////////////////////////////////////////////////////////////////////////////
@@ -168,33 +168,33 @@ extern "C" __global__ void Cumulant_One_preconditioned_errorDiffusion_chim_Comp_
 
 
             //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-            real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-            real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-            real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-            real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-            real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-            real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-            real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-            real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-            real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-            real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-            real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-            real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-            real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-            real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-            real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-            real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-            real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+            real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+            real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+            real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+            real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+            real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+            real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+            real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+            real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+            real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+            real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+            real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+            real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+            real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+            real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+            real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+            real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+            real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+            real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
             real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-            real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-            real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-            real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-            real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-            real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-            real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-            real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-            real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+            real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+            real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+            real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+            real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+            real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+            real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+            real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+            real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
                                                ////////////////////////////////////////////////////////////////////////////////////
             real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
                 (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -884,33 +884,33 @@ extern "C" __global__ void Cumulant_One_preconditioned_errorDiffusion_chim_Comp_
             //		((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb;
             //mfbbb += drho - drhoPost;
             ////////////////////////////////////////////////////////////////////////////////////
-            (D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-            (D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-            (D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-            (D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-            (D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-            (D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-            (D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-            (D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-            (D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-            (D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-            (D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-            (D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-            (D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-            (D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-            (D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-            (D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-            (D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-            (D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+            (D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+            (D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+            (D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+            (D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+            (D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+            (D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+            (D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+            (D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+            (D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+            (D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+            (D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+            (D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+            (D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+            (D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+            (D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+            (D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+            (D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+            (D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
             (D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-            (D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-            (D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-            (D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-            (D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-            (D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-            (D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-            (D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-            (D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+            (D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+            (D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+            (D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+            (D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+            (D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+            (D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+            (D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+            (D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
                                         ////////////////////////////////////////////////////////////////////////////////////
         }
     }
@@ -991,63 +991,63 @@ extern "C" __global__ void Cumulant_One_preconditioned_chim_Comp_SP_27(
             Distributions27 D;
             if (EvenOrOdd == true)
             {
-                D.f[dirE] = &DDStart[dirE   *size_Mat];
-                D.f[dirW] = &DDStart[dirW   *size_Mat];
-                D.f[dirN] = &DDStart[dirN   *size_Mat];
-                D.f[dirS] = &DDStart[dirS   *size_Mat];
-                D.f[dirT] = &DDStart[dirT   *size_Mat];
-                D.f[dirB] = &DDStart[dirB   *size_Mat];
-                D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-                D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-                D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-                D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-                D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-                D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-                D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-                D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-                D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-                D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-                D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-                D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+                D.f[E] = &DDStart[E   *size_Mat];
+                D.f[W] = &DDStart[W   *size_Mat];
+                D.f[N] = &DDStart[N   *size_Mat];
+                D.f[S] = &DDStart[S   *size_Mat];
+                D.f[T] = &DDStart[T   *size_Mat];
+                D.f[B] = &DDStart[B   *size_Mat];
+                D.f[NE] = &DDStart[NE  *size_Mat];
+                D.f[SW] = &DDStart[SW  *size_Mat];
+                D.f[SE] = &DDStart[SE  *size_Mat];
+                D.f[NW] = &DDStart[NW  *size_Mat];
+                D.f[TE] = &DDStart[TE  *size_Mat];
+                D.f[BW] = &DDStart[BW  *size_Mat];
+                D.f[BE] = &DDStart[BE  *size_Mat];
+                D.f[TW] = &DDStart[TW  *size_Mat];
+                D.f[TN] = &DDStart[TN  *size_Mat];
+                D.f[BS] = &DDStart[BS  *size_Mat];
+                D.f[BN] = &DDStart[BN  *size_Mat];
+                D.f[TS] = &DDStart[TS  *size_Mat];
                 D.f[dirREST] = &DDStart[dirREST*size_Mat];
-                D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-                D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-                D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-                D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-                D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-                D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-                D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-                D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+                D.f[TNE] = &DDStart[TNE *size_Mat];
+                D.f[TSW] = &DDStart[TSW *size_Mat];
+                D.f[TSE] = &DDStart[TSE *size_Mat];
+                D.f[TNW] = &DDStart[TNW *size_Mat];
+                D.f[BNE] = &DDStart[BNE *size_Mat];
+                D.f[BSW] = &DDStart[BSW *size_Mat];
+                D.f[BSE] = &DDStart[BSE *size_Mat];
+                D.f[BNW] = &DDStart[BNW *size_Mat];
             }
             else
             {
-                D.f[dirW] = &DDStart[dirE   *size_Mat];
-                D.f[dirE] = &DDStart[dirW   *size_Mat];
-                D.f[dirS] = &DDStart[dirN   *size_Mat];
-                D.f[dirN] = &DDStart[dirS   *size_Mat];
-                D.f[dirB] = &DDStart[dirT   *size_Mat];
-                D.f[dirT] = &DDStart[dirB   *size_Mat];
-                D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-                D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-                D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-                D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-                D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-                D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-                D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-                D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-                D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-                D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-                D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-                D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+                D.f[W] = &DDStart[E   *size_Mat];
+                D.f[E] = &DDStart[W   *size_Mat];
+                D.f[S] = &DDStart[N   *size_Mat];
+                D.f[N] = &DDStart[S   *size_Mat];
+                D.f[B] = &DDStart[T   *size_Mat];
+                D.f[T] = &DDStart[B   *size_Mat];
+                D.f[SW] = &DDStart[NE  *size_Mat];
+                D.f[NE] = &DDStart[SW  *size_Mat];
+                D.f[NW] = &DDStart[SE  *size_Mat];
+                D.f[SE] = &DDStart[NW  *size_Mat];
+                D.f[BW] = &DDStart[TE  *size_Mat];
+                D.f[TE] = &DDStart[BW  *size_Mat];
+                D.f[TW] = &DDStart[BE  *size_Mat];
+                D.f[BE] = &DDStart[TW  *size_Mat];
+                D.f[BS] = &DDStart[TN  *size_Mat];
+                D.f[TN] = &DDStart[BS  *size_Mat];
+                D.f[TS] = &DDStart[BN  *size_Mat];
+                D.f[BN] = &DDStart[TS  *size_Mat];
                 D.f[dirREST] = &DDStart[dirREST*size_Mat];
-                D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-                D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-                D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-                D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-                D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-                D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-                D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-                D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+                D.f[BSW] = &DDStart[TNE *size_Mat];
+                D.f[BNE] = &DDStart[TSW *size_Mat];
+                D.f[BNW] = &DDStart[TSE *size_Mat];
+                D.f[BSE] = &DDStart[TNW *size_Mat];
+                D.f[TSW] = &DDStart[BNE *size_Mat];
+                D.f[TNE] = &DDStart[BSW *size_Mat];
+                D.f[TNW] = &DDStart[BSE *size_Mat];
+                D.f[TSE] = &DDStart[BNW *size_Mat];
             }
 
             ////////////////////////////////////////////////////////////////////////////////
@@ -1083,33 +1083,33 @@ extern "C" __global__ void Cumulant_One_preconditioned_chim_Comp_SP_27(
 
 
             //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-            real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-            real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-            real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-            real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-            real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-            real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-            real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-            real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-            real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-            real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-            real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-            real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-            real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-            real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-            real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-            real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-            real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+            real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+            real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+            real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+            real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+            real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+            real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+            real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+            real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+            real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+            real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+            real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+            real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+            real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+            real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+            real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+            real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+            real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+            real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
             real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-            real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-            real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-            real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-            real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-            real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-            real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-            real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-            real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+            real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+            real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+            real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+            real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+            real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+            real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+            real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+            real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
                                                ////////////////////////////////////////////////////////////////////////////////////
             real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
                 (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -1680,33 +1680,33 @@ extern "C" __global__ void Cumulant_One_preconditioned_chim_Comp_SP_27(
                     ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb;
             mfbbb += drho - drhoPost;
             ////////////////////////////////////////////////////////////////////////////////////
-            (D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-            (D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-            (D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-            (D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-            (D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-            (D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-            (D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-            (D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-            (D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-            (D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-            (D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-            (D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-            (D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-            (D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-            (D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-            (D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-            (D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-            (D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+            (D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+            (D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+            (D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+            (D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+            (D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+            (D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+            (D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+            (D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+            (D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+            (D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+            (D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+            (D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+            (D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+            (D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+            (D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+            (D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+            (D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+            (D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
             (D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-            (D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-            (D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-            (D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-            (D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-            (D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-            (D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-            (D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-            (D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+            (D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+            (D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+            (D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+            (D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+            (D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+            (D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+            (D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+            (D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
             ////////////////////////////////////////////////////////////////////////////////////
         }
     }
@@ -1787,63 +1787,63 @@ extern "C" __global__ void Cumulant_One_chim_Comp_SP_27(
             Distributions27 D;
             if (EvenOrOdd == true)
             {
-                D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-                D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-                D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-                D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-                D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-                D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-                D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-                D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-                D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-                D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-                D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-                D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-                D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-                D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-                D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-                D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-                D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-                D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+                D.f[E   ] = &DDStart[E   *size_Mat];
+                D.f[W   ] = &DDStart[W   *size_Mat];
+                D.f[N   ] = &DDStart[N   *size_Mat];
+                D.f[S   ] = &DDStart[S   *size_Mat];
+                D.f[T   ] = &DDStart[T   *size_Mat];
+                D.f[B   ] = &DDStart[B   *size_Mat];
+                D.f[NE  ] = &DDStart[NE  *size_Mat];
+                D.f[SW  ] = &DDStart[SW  *size_Mat];
+                D.f[SE  ] = &DDStart[SE  *size_Mat];
+                D.f[NW  ] = &DDStart[NW  *size_Mat];
+                D.f[TE  ] = &DDStart[TE  *size_Mat];
+                D.f[BW  ] = &DDStart[BW  *size_Mat];
+                D.f[BE  ] = &DDStart[BE  *size_Mat];
+                D.f[TW  ] = &DDStart[TW  *size_Mat];
+                D.f[TN  ] = &DDStart[TN  *size_Mat];
+                D.f[BS  ] = &DDStart[BS  *size_Mat];
+                D.f[BN  ] = &DDStart[BN  *size_Mat];
+                D.f[TS  ] = &DDStart[TS  *size_Mat];
                 D.f[dirREST] = &DDStart[dirREST*size_Mat];
-                D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-                D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-                D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-                D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-                D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-                D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-                D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-                D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+                D.f[TNE ] = &DDStart[TNE *size_Mat];
+                D.f[TSW ] = &DDStart[TSW *size_Mat];
+                D.f[TSE ] = &DDStart[TSE *size_Mat];
+                D.f[TNW ] = &DDStart[TNW *size_Mat];
+                D.f[BNE ] = &DDStart[BNE *size_Mat];
+                D.f[BSW ] = &DDStart[BSW *size_Mat];
+                D.f[BSE ] = &DDStart[BSE *size_Mat];
+                D.f[BNW ] = &DDStart[BNW *size_Mat];
             }
             else
             {
-                D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-                D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-                D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-                D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-                D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-                D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-                D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-                D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-                D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-                D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-                D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-                D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-                D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-                D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-                D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-                D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-                D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-                D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+                D.f[W   ] = &DDStart[E   *size_Mat];
+                D.f[E   ] = &DDStart[W   *size_Mat];
+                D.f[S   ] = &DDStart[N   *size_Mat];
+                D.f[N   ] = &DDStart[S   *size_Mat];
+                D.f[B   ] = &DDStart[T   *size_Mat];
+                D.f[T   ] = &DDStart[B   *size_Mat];
+                D.f[SW  ] = &DDStart[NE  *size_Mat];
+                D.f[NE  ] = &DDStart[SW  *size_Mat];
+                D.f[NW  ] = &DDStart[SE  *size_Mat];
+                D.f[SE  ] = &DDStart[NW  *size_Mat];
+                D.f[BW  ] = &DDStart[TE  *size_Mat];
+                D.f[TE  ] = &DDStart[BW  *size_Mat];
+                D.f[TW  ] = &DDStart[BE  *size_Mat];
+                D.f[BE  ] = &DDStart[TW  *size_Mat];
+                D.f[BS  ] = &DDStart[TN  *size_Mat];
+                D.f[TN  ] = &DDStart[BS  *size_Mat];
+                D.f[TS  ] = &DDStart[BN  *size_Mat];
+                D.f[BN  ] = &DDStart[TS  *size_Mat];
                 D.f[dirREST] = &DDStart[dirREST*size_Mat];
-                D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-                D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-                D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-                D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-                D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-                D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-                D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-                D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+                D.f[BSW ] = &DDStart[TNE *size_Mat];
+                D.f[BNE ] = &DDStart[TSW *size_Mat];
+                D.f[BNW ] = &DDStart[TSE *size_Mat];
+                D.f[BSE ] = &DDStart[TNW *size_Mat];
+                D.f[TSW ] = &DDStart[BNE *size_Mat];
+                D.f[TNE ] = &DDStart[BSW *size_Mat];
+                D.f[TNW ] = &DDStart[BSE *size_Mat];
+                D.f[TSE ] = &DDStart[BNW *size_Mat];
             }
             ////////////////////////////////////////////////////////////////////////////////
             //index
@@ -1855,33 +1855,33 @@ extern "C" __global__ void Cumulant_One_chim_Comp_SP_27(
             unsigned int kbs = neighborZ[ks];
             unsigned int kbsw = neighborZ[ksw];
             ////////////////////////////////////////////////////////////////////////////////////
-            real mfcbb = (D.f[dirE   ])[k   ];
-            real mfabb = (D.f[dirW   ])[kw  ];
-            real mfbcb = (D.f[dirN   ])[k   ];
-            real mfbab = (D.f[dirS   ])[ks  ];
-            real mfbbc = (D.f[dirT   ])[k   ];
-            real mfbba = (D.f[dirB   ])[kb  ];
-            real mfccb = (D.f[dirNE  ])[k   ];
-            real mfaab = (D.f[dirSW  ])[ksw ];
-            real mfcab = (D.f[dirSE  ])[ks  ];
-            real mfacb = (D.f[dirNW  ])[kw  ];
-            real mfcbc = (D.f[dirTE  ])[k   ];
-            real mfaba = (D.f[dirBW  ])[kbw ];
-            real mfcba = (D.f[dirBE  ])[kb  ];
-            real mfabc = (D.f[dirTW  ])[kw  ];
-            real mfbcc = (D.f[dirTN  ])[k   ];
-            real mfbaa = (D.f[dirBS  ])[kbs ];
-            real mfbca = (D.f[dirBN  ])[kb  ];
-            real mfbac = (D.f[dirTS  ])[ks  ];
+            real mfcbb = (D.f[E   ])[k   ];
+            real mfabb = (D.f[W   ])[kw  ];
+            real mfbcb = (D.f[N   ])[k   ];
+            real mfbab = (D.f[S   ])[ks  ];
+            real mfbbc = (D.f[T   ])[k   ];
+            real mfbba = (D.f[B   ])[kb  ];
+            real mfccb = (D.f[NE  ])[k   ];
+            real mfaab = (D.f[SW  ])[ksw ];
+            real mfcab = (D.f[SE  ])[ks  ];
+            real mfacb = (D.f[NW  ])[kw  ];
+            real mfcbc = (D.f[TE  ])[k   ];
+            real mfaba = (D.f[BW  ])[kbw ];
+            real mfcba = (D.f[BE  ])[kb  ];
+            real mfabc = (D.f[TW  ])[kw  ];
+            real mfbcc = (D.f[TN  ])[k   ];
+            real mfbaa = (D.f[BS  ])[kbs ];
+            real mfbca = (D.f[BN  ])[kb  ];
+            real mfbac = (D.f[TS  ])[ks  ];
             real mfbbb = (D.f[dirREST])[k   ];
-            real mfccc = (D.f[dirTNE ])[k   ];
-            real mfaac = (D.f[dirTSW ])[ksw ];
-            real mfcac = (D.f[dirTSE ])[ks  ];
-            real mfacc = (D.f[dirTNW ])[kw  ];
-            real mfcca = (D.f[dirBNE ])[kb  ];
-            real mfaaa = (D.f[dirBSW ])[kbsw];
-            real mfcaa = (D.f[dirBSE ])[kbs ];
-            real mfaca = (D.f[dirBNW ])[kbw ];
+            real mfccc = (D.f[TNE ])[k   ];
+            real mfaac = (D.f[TSW ])[ksw ];
+            real mfcac = (D.f[TSE ])[ks  ];
+            real mfacc = (D.f[TNW ])[kw  ];
+            real mfcca = (D.f[BNE ])[kb  ];
+            real mfaaa = (D.f[BSW ])[kbsw];
+            real mfcaa = (D.f[BSE ])[kbs ];
+            real mfaca = (D.f[BNW ])[kbw ];
             ////////////////////////////////////////////////////////////////////////////////////
             real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
                 (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -2202,33 +2202,33 @@ extern "C" __global__ void Cumulant_One_chim_Comp_SP_27(
                     ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb;
             mfbbb += drho - drhoPost;
             ////////////////////////////////////////////////////////////////////////////////////
-            (D.f[dirE   ])[k   ] = mfabb;                                                                   
-            (D.f[dirW   ])[kw  ] = mfcbb;                                                                 
-            (D.f[dirN   ])[k   ] = mfbab;
-            (D.f[dirS   ])[ks  ] = mfbcb;
-            (D.f[dirT   ])[k   ] = mfbba;
-            (D.f[dirB   ])[kb  ] = mfbbc;
-            (D.f[dirNE  ])[k   ] = mfaab;
-            (D.f[dirSW  ])[ksw ] = mfccb;
-            (D.f[dirSE  ])[ks  ] = mfacb;
-            (D.f[dirNW  ])[kw  ] = mfcab;
-            (D.f[dirTE  ])[k   ] = mfaba;
-            (D.f[dirBW  ])[kbw ] = mfcbc;
-            (D.f[dirBE  ])[kb  ] = mfabc;
-            (D.f[dirTW  ])[kw  ] = mfcba;
-            (D.f[dirTN  ])[k   ] = mfbaa;
-            (D.f[dirBS  ])[kbs ] = mfbcc;
-            (D.f[dirBN  ])[kb  ] = mfbac;
-            (D.f[dirTS  ])[ks  ] = mfbca;
+            (D.f[E   ])[k   ] = mfabb;                                                                   
+            (D.f[W   ])[kw  ] = mfcbb;                                                                 
+            (D.f[N   ])[k   ] = mfbab;
+            (D.f[S   ])[ks  ] = mfbcb;
+            (D.f[T   ])[k   ] = mfbba;
+            (D.f[B   ])[kb  ] = mfbbc;
+            (D.f[NE  ])[k   ] = mfaab;
+            (D.f[SW  ])[ksw ] = mfccb;
+            (D.f[SE  ])[ks  ] = mfacb;
+            (D.f[NW  ])[kw  ] = mfcab;
+            (D.f[TE  ])[k   ] = mfaba;
+            (D.f[BW  ])[kbw ] = mfcbc;
+            (D.f[BE  ])[kb  ] = mfabc;
+            (D.f[TW  ])[kw  ] = mfcba;
+            (D.f[TN  ])[k   ] = mfbaa;
+            (D.f[BS  ])[kbs ] = mfbcc;
+            (D.f[BN  ])[kb  ] = mfbac;
+            (D.f[TS  ])[ks  ] = mfbca;
             (D.f[dirREST])[k   ] = mfbbb;
-            (D.f[dirTNE ])[k   ] = mfaaa;
-            (D.f[dirTSE ])[ks  ] = mfaca;
-            (D.f[dirBNE ])[kb  ] = mfaac;
-            (D.f[dirBSE ])[kbs ] = mfacc;
-            (D.f[dirTNW ])[kw  ] = mfcaa;
-            (D.f[dirTSW ])[ksw ] = mfcca;
-            (D.f[dirBNW ])[kbw ] = mfcac;
-            (D.f[dirBSW ])[kbsw] = mfccc;
+            (D.f[TNE ])[k   ] = mfaaa;
+            (D.f[TSE ])[ks  ] = mfaca;
+            (D.f[BNE ])[kb  ] = mfaac;
+            (D.f[BSE ])[kbs ] = mfacc;
+            (D.f[TNW ])[kw  ] = mfcaa;
+            (D.f[TSW ])[ksw ] = mfcca;
+            (D.f[BNW ])[kbw ] = mfcac;
+            (D.f[BSW ])[kbsw] = mfccc;
         }
     }
 }
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Cumulant_F3_27.cu b/src/gpu/VirtualFluids_GPU/GPU/Cumulant_F3_27.cu
index e6aaca2fa..e2df445c2 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Cumulant_F3_27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Cumulant_F3_27.cu
@@ -52,83 +52,83 @@ extern "C" __global__ void LB_PostProcessor_F3_2018_Fehlberg(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			Distributions6 G;
 			if (EvenOrOdd == true)
 			{
-				G.g[dirE] = &G6[dirE   *size_Mat];
-				G.g[dirW] = &G6[dirW   *size_Mat];
-				G.g[dirN] = &G6[dirN   *size_Mat];
-				G.g[dirS] = &G6[dirS   *size_Mat];
-				G.g[dirT] = &G6[dirT   *size_Mat];
-				G.g[dirB] = &G6[dirB   *size_Mat];
+				G.g[E] = &G6[E   *size_Mat];
+				G.g[W] = &G6[W   *size_Mat];
+				G.g[N] = &G6[N   *size_Mat];
+				G.g[S] = &G6[S   *size_Mat];
+				G.g[T] = &G6[T   *size_Mat];
+				G.g[B] = &G6[B   *size_Mat];
 			}
 			else
 			{
-				G.g[dirW] = &G6[dirE   *size_Mat];
-				G.g[dirE] = &G6[dirW   *size_Mat];
-				G.g[dirS] = &G6[dirN   *size_Mat];
-				G.g[dirN] = &G6[dirS   *size_Mat];
-				G.g[dirB] = &G6[dirT   *size_Mat];
-				G.g[dirT] = &G6[dirB   *size_Mat];
+				G.g[W] = &G6[E   *size_Mat];
+				G.g[E] = &G6[W   *size_Mat];
+				G.g[S] = &G6[N   *size_Mat];
+				G.g[N] = &G6[S   *size_Mat];
+				G.g[B] = &G6[T   *size_Mat];
+				G.g[T] = &G6[B   *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -161,43 +161,43 @@ extern "C" __global__ void LB_PostProcessor_F3_2018_Fehlberg(real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mgcbb = (G.g[dirE])[k];
-			real mgabb = (G.g[dirW])[kw];
-			real mgbcb = (G.g[dirN])[k];
-			real mgbab = (G.g[dirS])[ks];
-			real mgbbc = (G.g[dirT])[k];
-			real mgbba = (G.g[dirB])[kb];
+			real mgcbb = (G.g[E])[k];
+			real mgabb = (G.g[W])[kw];
+			real mgbcb = (G.g[N])[k];
+			real mgbab = (G.g[S])[ks];
+			real mgbbc = (G.g[T])[k];
+			real mgbba = (G.g[B])[kb];
 			real dxuxdxux = c1o2 * (-mgcbb + mgabb);
 			real dyuydyuy = c1o2 * (-mgbcb + mgbab);
 			real dzuzdzuz = c1o2 * (-mgbbc + mgbba);
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];
-			real mfabb = (D.f[dirW])[kw];
-			real mfbcb = (D.f[dirN])[k];
-			real mfbab = (D.f[dirS])[ks];
-			real mfbbc = (D.f[dirT])[k];
-			real mfbba = (D.f[dirB])[kb];
-			real mfccb = (D.f[dirNE])[k];
-			real mfaab = (D.f[dirSW])[ksw];
-			real mfcab = (D.f[dirSE])[ks];
-			real mfacb = (D.f[dirNW])[kw];
-			real mfcbc = (D.f[dirTE])[k];
-			real mfaba = (D.f[dirBW])[kbw];
-			real mfcba = (D.f[dirBE])[kb];
-			real mfabc = (D.f[dirTW])[kw];
-			real mfbcc = (D.f[dirTN])[k];
-			real mfbaa = (D.f[dirBS])[kbs];
-			real mfbca = (D.f[dirBN])[kb];
-			real mfbac = (D.f[dirTS])[ks];
+			real mfcbb = (D.f[E])[k];
+			real mfabb = (D.f[W])[kw];
+			real mfbcb = (D.f[N])[k];
+			real mfbab = (D.f[S])[ks];
+			real mfbbc = (D.f[T])[k];
+			real mfbba = (D.f[B])[kb];
+			real mfccb = (D.f[NE])[k];
+			real mfaab = (D.f[SW])[ksw];
+			real mfcab = (D.f[SE])[ks];
+			real mfacb = (D.f[NW])[kw];
+			real mfcbc = (D.f[TE])[k];
+			real mfaba = (D.f[BW])[kbw];
+			real mfcba = (D.f[BE])[kb];
+			real mfabc = (D.f[TW])[kw];
+			real mfbcc = (D.f[TN])[k];
+			real mfbaa = (D.f[BS])[kbs];
+			real mfbca = (D.f[BN])[kb];
+			real mfbac = (D.f[TS])[ks];
 			real mfbbb = (D.f[dirREST])[k];
-			real mfccc = (D.f[dirTNE])[k];
-			real mfaac = (D.f[dirTSW])[ksw];
-			real mfcac = (D.f[dirTSE])[ks];
-			real mfacc = (D.f[dirTNW])[kw];
-			real mfcca = (D.f[dirBNE])[kb];
-			real mfaaa = (D.f[dirBSW])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];
-			real mfaca = (D.f[dirBNW])[kbw];
+			real mfccc = (D.f[TNE])[k];
+			real mfaac = (D.f[TSW])[ksw];
+			real mfcac = (D.f[TSE])[ks];
+			real mfacc = (D.f[TNW])[kw];
+			real mfcca = (D.f[BNE])[kb];
+			real mfaaa = (D.f[BSW])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];
+			real mfaca = (D.f[BNW])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -911,41 +911,41 @@ extern "C" __global__ void LB_PostProcessor_F3_2018_Fehlberg(real omega,
 			//////////////////////////////////////////////////////////////////////////////////////
 
 			//////////////////////////////////////////////////////////////////////////////////////
-			//(D.f[dirE])[k] = mfabb;
-			//(D.f[dirW])[kw] = mfcbb;
-			//(D.f[dirN])[k] = mfbab;
-			//(D.f[dirS])[ks] = mfbcb;
-			//(D.f[dirT])[k] = mfbba;
-			//(D.f[dirB])[kb] = mfbbc;
-			//(D.f[dirNE])[k] = mfaab;
-			//(D.f[dirSW])[ksw] = mfccb;
-			//(D.f[dirSE])[ks] = mfacb;
-			//(D.f[dirNW])[kw] = mfcab;
-			//(D.f[dirTE])[k] = mfaba;
-			//(D.f[dirBW])[kbw] = mfcbc;
-			//(D.f[dirBE])[kb] = mfabc;
-			//(D.f[dirTW])[kw] = mfcba;
-			//(D.f[dirTN])[k] = mfbaa;
-			//(D.f[dirBS])[kbs] = mfbcc;
-			//(D.f[dirBN])[kb] = mfbac;
-			//(D.f[dirTS])[ks] = mfbca;
+			//(D.f[E])[k] = mfabb;
+			//(D.f[W])[kw] = mfcbb;
+			//(D.f[N])[k] = mfbab;
+			//(D.f[S])[ks] = mfbcb;
+			//(D.f[T])[k] = mfbba;
+			//(D.f[B])[kb] = mfbbc;
+			//(D.f[NE])[k] = mfaab;
+			//(D.f[SW])[ksw] = mfccb;
+			//(D.f[SE])[ks] = mfacb;
+			//(D.f[NW])[kw] = mfcab;
+			//(D.f[TE])[k] = mfaba;
+			//(D.f[BW])[kbw] = mfcbc;
+			//(D.f[BE])[kb] = mfabc;
+			//(D.f[TW])[kw] = mfcba;
+			//(D.f[TN])[k] = mfbaa;
+			//(D.f[BS])[kbs] = mfbcc;
+			//(D.f[BN])[kb] = mfbac;
+			//(D.f[TS])[ks] = mfbca;
 			//(D.f[dirREST])[k] = mfbbb;
-			//(D.f[dirTNE])[k] = mfaaa;
-			//(D.f[dirTSE])[ks] = mfaca;
-			//(D.f[dirBNE])[kb] = mfaac;
-			//(D.f[dirBSE])[kbs] = mfacc;
-			//(D.f[dirTNW])[kw] = mfcaa;
-			//(D.f[dirTSW])[ksw] = mfcca;
-			//(D.f[dirBNW])[kbw] = mfcac;
-			//(D.f[dirBSW])[kbsw] = mfccc;
+			//(D.f[TNE])[k] = mfaaa;
+			//(D.f[TSE])[ks] = mfaca;
+			//(D.f[BNE])[kb] = mfaac;
+			//(D.f[BSE])[kbs] = mfacc;
+			//(D.f[TNW])[kw] = mfcaa;
+			//(D.f[TSW])[ksw] = mfcca;
+			//(D.f[BNW])[kbw] = mfcac;
+			//(D.f[BSW])[kbsw] = mfccc;
 			//////////////////////////////////////////////////////////////////////////////////////
 
-			//(G.g[dirE])[k] = mgabb;
-			//(G.g[dirW])[kw] = mgcbb;
-			//(G.g[dirN])[k] = mgbab;
-			//(G.g[dirS])[ks] = mgbcb;
-			//(G.g[dirT])[k] = mgbba;
-			//(G.g[dirB])[kb] = mgbbc;
+			//(G.g[E])[k] = mgabb;
+			//(G.g[W])[kw] = mgcbb;
+			//(G.g[N])[k] = mgbab;
+			//(G.g[S])[ks] = mgbcb;
+			//(G.g[T])[k] = mgbba;
+			//(G.g[B])[kb] = mgbbc;
 		}
 	}
 }
@@ -1024,83 +1024,83 @@ extern "C" __global__ void LB_PostProcessor_F3_2018_Fehlberg(real omega,
 //			Distributions27 D;
 //			if (EvenOrOdd == true)
 //			{
-//				D.f[dirE] = &DDStart[dirE   *size_Mat];
-//				D.f[dirW] = &DDStart[dirW   *size_Mat];
-//				D.f[dirN] = &DDStart[dirN   *size_Mat];
-//				D.f[dirS] = &DDStart[dirS   *size_Mat];
-//				D.f[dirT] = &DDStart[dirT   *size_Mat];
-//				D.f[dirB] = &DDStart[dirB   *size_Mat];
-//				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-//				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-//				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-//				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-//				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-//				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-//				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-//				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-//				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-//				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-//				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-//				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+//				D.f[E] = &DDStart[E   *size_Mat];
+//				D.f[W] = &DDStart[W   *size_Mat];
+//				D.f[N] = &DDStart[N   *size_Mat];
+//				D.f[S] = &DDStart[S   *size_Mat];
+//				D.f[T] = &DDStart[T   *size_Mat];
+//				D.f[B] = &DDStart[B   *size_Mat];
+//				D.f[NE] = &DDStart[NE  *size_Mat];
+//				D.f[SW] = &DDStart[SW  *size_Mat];
+//				D.f[SE] = &DDStart[SE  *size_Mat];
+//				D.f[NW] = &DDStart[NW  *size_Mat];
+//				D.f[TE] = &DDStart[TE  *size_Mat];
+//				D.f[BW] = &DDStart[BW  *size_Mat];
+//				D.f[BE] = &DDStart[BE  *size_Mat];
+//				D.f[TW] = &DDStart[TW  *size_Mat];
+//				D.f[TN] = &DDStart[TN  *size_Mat];
+//				D.f[BS] = &DDStart[BS  *size_Mat];
+//				D.f[BN] = &DDStart[BN  *size_Mat];
+//				D.f[TS] = &DDStart[TS  *size_Mat];
 //				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-//				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-//				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-//				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-//				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-//				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-//				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-//				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-//				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+//				D.f[TNE] = &DDStart[TNE *size_Mat];
+//				D.f[TSW] = &DDStart[TSW *size_Mat];
+//				D.f[TSE] = &DDStart[TSE *size_Mat];
+//				D.f[TNW] = &DDStart[TNW *size_Mat];
+//				D.f[BNE] = &DDStart[BNE *size_Mat];
+//				D.f[BSW] = &DDStart[BSW *size_Mat];
+//				D.f[BSE] = &DDStart[BSE *size_Mat];
+//				D.f[BNW] = &DDStart[BNW *size_Mat];
 //			}
 //			else
 //			{
-//				D.f[dirW] = &DDStart[dirE   *size_Mat];
-//				D.f[dirE] = &DDStart[dirW   *size_Mat];
-//				D.f[dirS] = &DDStart[dirN   *size_Mat];
-//				D.f[dirN] = &DDStart[dirS   *size_Mat];
-//				D.f[dirB] = &DDStart[dirT   *size_Mat];
-//				D.f[dirT] = &DDStart[dirB   *size_Mat];
-//				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-//				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-//				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-//				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-//				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-//				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-//				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-//				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-//				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-//				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-//				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-//				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+//				D.f[W] = &DDStart[E   *size_Mat];
+//				D.f[E] = &DDStart[W   *size_Mat];
+//				D.f[S] = &DDStart[N   *size_Mat];
+//				D.f[N] = &DDStart[S   *size_Mat];
+//				D.f[B] = &DDStart[T   *size_Mat];
+//				D.f[T] = &DDStart[B   *size_Mat];
+//				D.f[SW] = &DDStart[NE  *size_Mat];
+//				D.f[NE] = &DDStart[SW  *size_Mat];
+//				D.f[NW] = &DDStart[SE  *size_Mat];
+//				D.f[SE] = &DDStart[NW  *size_Mat];
+//				D.f[BW] = &DDStart[TE  *size_Mat];
+//				D.f[TE] = &DDStart[BW  *size_Mat];
+//				D.f[TW] = &DDStart[BE  *size_Mat];
+//				D.f[BE] = &DDStart[TW  *size_Mat];
+//				D.f[BS] = &DDStart[TN  *size_Mat];
+//				D.f[TN] = &DDStart[BS  *size_Mat];
+//				D.f[TS] = &DDStart[BN  *size_Mat];
+//				D.f[BN] = &DDStart[TS  *size_Mat];
 //				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-//				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-//				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-//				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-//				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-//				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-//				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-//				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-//				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+//				D.f[BSW] = &DDStart[TNE *size_Mat];
+//				D.f[BNE] = &DDStart[TSW *size_Mat];
+//				D.f[BNW] = &DDStart[TSE *size_Mat];
+//				D.f[BSE] = &DDStart[TNW *size_Mat];
+//				D.f[TSW] = &DDStart[BNE *size_Mat];
+//				D.f[TNE] = &DDStart[BSW *size_Mat];
+//				D.f[TNW] = &DDStart[BSE *size_Mat];
+//				D.f[TSE] = &DDStart[BNW *size_Mat];
 //			}
 //
 //			Distributions6 G;
 //			if (EvenOrOdd == true)
 //			{
-//				G.g[dirE] = &G6[dirE   *size_Mat];
-//				G.g[dirW] = &G6[dirW   *size_Mat];
-//				G.g[dirN] = &G6[dirN   *size_Mat];
-//				G.g[dirS] = &G6[dirS   *size_Mat];
-//				G.g[dirT] = &G6[dirT   *size_Mat];
-//				G.g[dirB] = &G6[dirB   *size_Mat];
+//				G.g[E] = &G6[E   *size_Mat];
+//				G.g[W] = &G6[W   *size_Mat];
+//				G.g[N] = &G6[N   *size_Mat];
+//				G.g[S] = &G6[S   *size_Mat];
+//				G.g[T] = &G6[T   *size_Mat];
+//				G.g[B] = &G6[B   *size_Mat];
 //			}
 //			else
 //			{
-//				G.g[dirW] = &G6[dirE   *size_Mat];
-//				G.g[dirE] = &G6[dirW   *size_Mat];
-//				G.g[dirS] = &G6[dirN   *size_Mat];
-//				G.g[dirN] = &G6[dirS   *size_Mat];
-//				G.g[dirB] = &G6[dirT   *size_Mat];
-//				G.g[dirT] = &G6[dirB   *size_Mat];
+//				G.g[W] = &G6[E   *size_Mat];
+//				G.g[E] = &G6[W   *size_Mat];
+//				G.g[S] = &G6[N   *size_Mat];
+//				G.g[N] = &G6[S   *size_Mat];
+//				G.g[B] = &G6[T   *size_Mat];
+//				G.g[T] = &G6[B   *size_Mat];
 //			}
 //
 //			////////////////////////////////////////////////////////////////////////////////
@@ -1133,43 +1133,43 @@ extern "C" __global__ void LB_PostProcessor_F3_2018_Fehlberg(real omega,
 //			//unsigned int ktne = k;
 //			unsigned int kbsw = neighborZ[ksw];
 //			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//			real mgcbb = (G.g[dirE])[k];
-//			real mgabb = (G.g[dirW])[kw];
-//			real mgbcb = (G.g[dirN])[k];
-//			real mgbab = (G.g[dirS])[ks];
-//			real mgbbc = (G.g[dirT])[k];
-//			real mgbba = (G.g[dirB])[kb];
+//			real mgcbb = (G.g[E])[k];
+//			real mgabb = (G.g[W])[kw];
+//			real mgbcb = (G.g[N])[k];
+//			real mgbab = (G.g[S])[ks];
+//			real mgbbc = (G.g[T])[k];
+//			real mgbba = (G.g[B])[kb];
 //			real dxuxdxux = c1o2 * (-mgcbb + mgabb);
 //			real dyuydyuy = c1o2 * (-mgbcb + mgbab);
 //			real dzuzdzuz = c1o2 * (-mgbbc + mgbba);
 //			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//			real mfcbb = (D.f[dirE])[k];
-//			real mfabb = (D.f[dirW])[kw];
-//			real mfbcb = (D.f[dirN])[k];
-//			real mfbab = (D.f[dirS])[ks];
-//			real mfbbc = (D.f[dirT])[k];
-//			real mfbba = (D.f[dirB])[kb];
-//			real mfccb = (D.f[dirNE])[k];
-//			real mfaab = (D.f[dirSW])[ksw];
-//			real mfcab = (D.f[dirSE])[ks];
-//			real mfacb = (D.f[dirNW])[kw];
-//			real mfcbc = (D.f[dirTE])[k];
-//			real mfaba = (D.f[dirBW])[kbw];
-//			real mfcba = (D.f[dirBE])[kb];
-//			real mfabc = (D.f[dirTW])[kw];
-//			real mfbcc = (D.f[dirTN])[k];
-//			real mfbaa = (D.f[dirBS])[kbs];
-//			real mfbca = (D.f[dirBN])[kb];
-//			real mfbac = (D.f[dirTS])[ks];
+//			real mfcbb = (D.f[E])[k];
+//			real mfabb = (D.f[W])[kw];
+//			real mfbcb = (D.f[N])[k];
+//			real mfbab = (D.f[S])[ks];
+//			real mfbbc = (D.f[T])[k];
+//			real mfbba = (D.f[B])[kb];
+//			real mfccb = (D.f[NE])[k];
+//			real mfaab = (D.f[SW])[ksw];
+//			real mfcab = (D.f[SE])[ks];
+//			real mfacb = (D.f[NW])[kw];
+//			real mfcbc = (D.f[TE])[k];
+//			real mfaba = (D.f[BW])[kbw];
+//			real mfcba = (D.f[BE])[kb];
+//			real mfabc = (D.f[TW])[kw];
+//			real mfbcc = (D.f[TN])[k];
+//			real mfbaa = (D.f[BS])[kbs];
+//			real mfbca = (D.f[BN])[kb];
+//			real mfbac = (D.f[TS])[ks];
 //			real mfbbb = (D.f[dirREST])[k];
-//			real mfccc = (D.f[dirTNE])[k];
-//			real mfaac = (D.f[dirTSW])[ksw];
-//			real mfcac = (D.f[dirTSE])[ks];
-//			real mfacc = (D.f[dirTNW])[kw];
-//			real mfcca = (D.f[dirBNE])[kb];
-//			real mfaaa = (D.f[dirBSW])[kbsw];
-//			real mfcaa = (D.f[dirBSE])[kbs];
-//			real mfaca = (D.f[dirBNW])[kbw];
+//			real mfccc = (D.f[TNE])[k];
+//			real mfaac = (D.f[TSW])[ksw];
+//			real mfcac = (D.f[TSE])[ks];
+//			real mfacc = (D.f[TNW])[kw];
+//			real mfcca = (D.f[BNE])[kb];
+//			real mfaaa = (D.f[BSW])[kbsw];
+//			real mfcaa = (D.f[BSE])[kbs];
+//			real mfaca = (D.f[BNW])[kbw];
 //			////////////////////////////////////////////////////////////////////////////////////
 //			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 //				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -1891,41 +1891,41 @@ extern "C" __global__ void LB_PostProcessor_F3_2018_Fehlberg(real omega,
 //			////////////////////////////////////////////////////////////////////////////////////
 //
 //			////////////////////////////////////////////////////////////////////////////////////
-//			(D.f[dirE])[k] = mfabb;   
-//			(D.f[dirW])[kw] = mfcbb;  
-//			(D.f[dirN])[k] = mfbab;   
-//			(D.f[dirS])[ks] = mfbcb;  
-//			(D.f[dirT])[k] = mfbba;   
-//			(D.f[dirB])[kb] = mfbbc;  
-//			(D.f[dirNE])[k] = mfaab;  
-//			(D.f[dirSW])[ksw] = mfccb;
-//			(D.f[dirSE])[ks] = mfacb; 
-//			(D.f[dirNW])[kw] = mfcab; 
-//			(D.f[dirTE])[k] = mfaba;  
-//			(D.f[dirBW])[kbw] = mfcbc;
-//			(D.f[dirBE])[kb] = mfabc; 
-//			(D.f[dirTW])[kw] = mfcba; 
-//			(D.f[dirTN])[k] = mfbaa;  
-//			(D.f[dirBS])[kbs] = mfbcc;
-//			(D.f[dirBN])[kb] = mfbac; 
-//			(D.f[dirTS])[ks] = mfbca; 
+//			(D.f[E])[k] = mfabb;   
+//			(D.f[W])[kw] = mfcbb;  
+//			(D.f[N])[k] = mfbab;   
+//			(D.f[S])[ks] = mfbcb;  
+//			(D.f[T])[k] = mfbba;   
+//			(D.f[B])[kb] = mfbbc;  
+//			(D.f[NE])[k] = mfaab;  
+//			(D.f[SW])[ksw] = mfccb;
+//			(D.f[SE])[ks] = mfacb; 
+//			(D.f[NW])[kw] = mfcab; 
+//			(D.f[TE])[k] = mfaba;  
+//			(D.f[BW])[kbw] = mfcbc;
+//			(D.f[BE])[kb] = mfabc; 
+//			(D.f[TW])[kw] = mfcba; 
+//			(D.f[TN])[k] = mfbaa;  
+//			(D.f[BS])[kbs] = mfbcc;
+//			(D.f[BN])[kb] = mfbac; 
+//			(D.f[TS])[ks] = mfbca; 
 //			(D.f[dirREST])[k] = mfbbb;
-//			(D.f[dirTNE])[k] = mfaaa; 
-//			(D.f[dirTSE])[ks] = mfaca;
-//			(D.f[dirBNE])[kb] = mfaac;
-//			(D.f[dirBSE])[kbs] = mfacc;
-//			(D.f[dirTNW])[kw] = mfcaa;
-//			(D.f[dirTSW])[ksw] = mfcca;
-//			(D.f[dirBNW])[kbw] = mfcac;
-//			(D.f[dirBSW])[kbsw] = mfccc;
-//			////////////////////////////////////////////////////////////////////////////////////
-//
-//			(G.g[dirE])[k]  = mgabb;                                                               
-//			(G.g[dirW])[kw] = mgcbb;                                                              
-//			(G.g[dirN])[k]  = mgbab;
-//			(G.g[dirS])[ks] = mgbcb;
-//			(G.g[dirT])[k]  = mgbba;
-//			(G.g[dirB])[kb] = mgbbc;
+//			(D.f[TNE])[k] = mfaaa; 
+//			(D.f[TSE])[ks] = mfaca;
+//			(D.f[BNE])[kb] = mfaac;
+//			(D.f[BSE])[kbs] = mfacc;
+//			(D.f[TNW])[kw] = mfcaa;
+//			(D.f[TSW])[ksw] = mfcca;
+//			(D.f[BNW])[kbw] = mfcac;
+//			(D.f[BSW])[kbsw] = mfccc;
+//			////////////////////////////////////////////////////////////////////////////////////
+//
+//			(G.g[E])[k]  = mgabb;                                                               
+//			(G.g[W])[kw] = mgcbb;                                                              
+//			(G.g[N])[k]  = mgbab;
+//			(G.g[S])[ks] = mgbcb;
+//			(G.g[T])[k]  = mgbba;
+//			(G.g[B])[kb] = mgbbc;
 //		}
 //	}
 //}
@@ -2004,83 +2004,83 @@ extern "C" __global__ void LB_PostProcessor_F3_2018_Fehlberg(real omega,
 //			Distributions27 D;
 //			if (EvenOrOdd == true)
 //			{
-//				D.f[dirE] = &DDStart[dirE   *size_Mat];
-//				D.f[dirW] = &DDStart[dirW   *size_Mat];
-//				D.f[dirN] = &DDStart[dirN   *size_Mat];
-//				D.f[dirS] = &DDStart[dirS   *size_Mat];
-//				D.f[dirT] = &DDStart[dirT   *size_Mat];
-//				D.f[dirB] = &DDStart[dirB   *size_Mat];
-//				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-//				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-//				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-//				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-//				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-//				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-//				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-//				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-//				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-//				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-//				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-//				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+//				D.f[E] = &DDStart[E   *size_Mat];
+//				D.f[W] = &DDStart[W   *size_Mat];
+//				D.f[N] = &DDStart[N   *size_Mat];
+//				D.f[S] = &DDStart[S   *size_Mat];
+//				D.f[T] = &DDStart[T   *size_Mat];
+//				D.f[B] = &DDStart[B   *size_Mat];
+//				D.f[NE] = &DDStart[NE  *size_Mat];
+//				D.f[SW] = &DDStart[SW  *size_Mat];
+//				D.f[SE] = &DDStart[SE  *size_Mat];
+//				D.f[NW] = &DDStart[NW  *size_Mat];
+//				D.f[TE] = &DDStart[TE  *size_Mat];
+//				D.f[BW] = &DDStart[BW  *size_Mat];
+//				D.f[BE] = &DDStart[BE  *size_Mat];
+//				D.f[TW] = &DDStart[TW  *size_Mat];
+//				D.f[TN] = &DDStart[TN  *size_Mat];
+//				D.f[BS] = &DDStart[BS  *size_Mat];
+//				D.f[BN] = &DDStart[BN  *size_Mat];
+//				D.f[TS] = &DDStart[TS  *size_Mat];
 //				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-//				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-//				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-//				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-//				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-//				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-//				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-//				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-//				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+//				D.f[TNE] = &DDStart[TNE *size_Mat];
+//				D.f[TSW] = &DDStart[TSW *size_Mat];
+//				D.f[TSE] = &DDStart[TSE *size_Mat];
+//				D.f[TNW] = &DDStart[TNW *size_Mat];
+//				D.f[BNE] = &DDStart[BNE *size_Mat];
+//				D.f[BSW] = &DDStart[BSW *size_Mat];
+//				D.f[BSE] = &DDStart[BSE *size_Mat];
+//				D.f[BNW] = &DDStart[BNW *size_Mat];
 //			}
 //			else
 //			{
-//				D.f[dirW] = &DDStart[dirE   *size_Mat];
-//				D.f[dirE] = &DDStart[dirW   *size_Mat];
-//				D.f[dirS] = &DDStart[dirN   *size_Mat];
-//				D.f[dirN] = &DDStart[dirS   *size_Mat];
-//				D.f[dirB] = &DDStart[dirT   *size_Mat];
-//				D.f[dirT] = &DDStart[dirB   *size_Mat];
-//				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-//				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-//				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-//				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-//				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-//				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-//				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-//				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-//				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-//				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-//				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-//				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+//				D.f[W] = &DDStart[E   *size_Mat];
+//				D.f[E] = &DDStart[W   *size_Mat];
+//				D.f[S] = &DDStart[N   *size_Mat];
+//				D.f[N] = &DDStart[S   *size_Mat];
+//				D.f[B] = &DDStart[T   *size_Mat];
+//				D.f[T] = &DDStart[B   *size_Mat];
+//				D.f[SW] = &DDStart[NE  *size_Mat];
+//				D.f[NE] = &DDStart[SW  *size_Mat];
+//				D.f[NW] = &DDStart[SE  *size_Mat];
+//				D.f[SE] = &DDStart[NW  *size_Mat];
+//				D.f[BW] = &DDStart[TE  *size_Mat];
+//				D.f[TE] = &DDStart[BW  *size_Mat];
+//				D.f[TW] = &DDStart[BE  *size_Mat];
+//				D.f[BE] = &DDStart[TW  *size_Mat];
+//				D.f[BS] = &DDStart[TN  *size_Mat];
+//				D.f[TN] = &DDStart[BS  *size_Mat];
+//				D.f[TS] = &DDStart[BN  *size_Mat];
+//				D.f[BN] = &DDStart[TS  *size_Mat];
 //				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-//				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-//				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-//				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-//				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-//				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-//				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-//				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-//				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+//				D.f[BSW] = &DDStart[TNE *size_Mat];
+//				D.f[BNE] = &DDStart[TSW *size_Mat];
+//				D.f[BNW] = &DDStart[TSE *size_Mat];
+//				D.f[BSE] = &DDStart[TNW *size_Mat];
+//				D.f[TSW] = &DDStart[BNE *size_Mat];
+//				D.f[TNE] = &DDStart[BSW *size_Mat];
+//				D.f[TNW] = &DDStart[BSE *size_Mat];
+//				D.f[TSE] = &DDStart[BNW *size_Mat];
 //			}
 //
 //			Distributions6 G;
 //			if (EvenOrOdd == true)
 //			{
-//				G.g[dirE] = &G6[dirE   *size_Mat];
-//				G.g[dirW] = &G6[dirW   *size_Mat];
-//				G.g[dirN] = &G6[dirN   *size_Mat];
-//				G.g[dirS] = &G6[dirS   *size_Mat];
-//				G.g[dirT] = &G6[dirT   *size_Mat];
-//				G.g[dirB] = &G6[dirB   *size_Mat];
+//				G.g[E] = &G6[E   *size_Mat];
+//				G.g[W] = &G6[W   *size_Mat];
+//				G.g[N] = &G6[N   *size_Mat];
+//				G.g[S] = &G6[S   *size_Mat];
+//				G.g[T] = &G6[T   *size_Mat];
+//				G.g[B] = &G6[B   *size_Mat];
 //			}
 //			else
 //			{
-//				G.g[dirW] = &G6[dirE   *size_Mat];
-//				G.g[dirE] = &G6[dirW   *size_Mat];
-//				G.g[dirS] = &G6[dirN   *size_Mat];
-//				G.g[dirN] = &G6[dirS   *size_Mat];
-//				G.g[dirB] = &G6[dirT   *size_Mat];
-//				G.g[dirT] = &G6[dirB   *size_Mat];
+//				G.g[W] = &G6[E   *size_Mat];
+//				G.g[E] = &G6[W   *size_Mat];
+//				G.g[S] = &G6[N   *size_Mat];
+//				G.g[N] = &G6[S   *size_Mat];
+//				G.g[B] = &G6[T   *size_Mat];
+//				G.g[T] = &G6[B   *size_Mat];
 //			}
 //
 //			////////////////////////////////////////////////////////////////////////////////
@@ -2141,43 +2141,43 @@ extern "C" __global__ void LB_PostProcessor_F3_2018_Fehlberg(real omega,
 //			//unsigned int ktne = k;
 //			//unsigned int kbsw = neighborZ[ksw];
 //			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//			real mgcbb = (G.g[dirE])[k];
-//			real mgabb = (G.g[dirW])[kw];
-//			real mgbcb = (G.g[dirN])[k];
-//			real mgbab = (G.g[dirS])[ks];
-//			real mgbbc = (G.g[dirT])[k];
-//			real mgbba = (G.g[dirB])[kb];
+//			real mgcbb = (G.g[E])[k];
+//			real mgabb = (G.g[W])[kw];
+//			real mgbcb = (G.g[N])[k];
+//			real mgbab = (G.g[S])[ks];
+//			real mgbbc = (G.g[T])[k];
+//			real mgbba = (G.g[B])[kb];
 //			real dxxux = c1o2 * (-mgcbb + mgabb);
 //			real dyyuy = c1o2 * (-mgbcb + mgbab);
 //			real dzzuz = c1o2 * (-mgbbc + mgbba);
 //			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-//			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-//			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-//			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-//			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-//			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-//			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-//			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-//			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-//			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-//			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-//			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-//			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-//			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-//			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-//			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-//			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-//			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+//			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+//			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+//			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+//			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+//			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+//			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+//			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+//			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+//			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+//			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+//			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+//			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+//			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+//			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+//			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+//			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+//			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+//			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 //			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-//			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-//			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-//			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-//			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-//			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-//			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-//			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-//			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+//			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+//			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+//			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+//			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+//			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+//			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+//			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+//			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 //			////////////////////////////////////////////////////////////////////////////////////
 //			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 //				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -3011,41 +3011,41 @@ extern "C" __global__ void LB_PostProcessor_F3_2018_Fehlberg(real omega,
 //			////////////////////////////////////////////////////////////////////////////////////
 //
 //			////////////////////////////////////////////////////////////////////////////////////
-//			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-//			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-//			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-//			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-//			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-//			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-//			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-//			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-//			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-//			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-//			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-//			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-//			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-//			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-//			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-//			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-//			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-//			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+//			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+//			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+//			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+//			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+//			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+//			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+//			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+//			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+//			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+//			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+//			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+//			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+//			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+//			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+//			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+//			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+//			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+//			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 //			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-//			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-//			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-//			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-//			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-//			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-//			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-//			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-//			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
-//			////////////////////////////////////////////////////////////////////////////////////
-//
-//			(G.g[dirE])[k]  = mgabb;                                                               
-//			(G.g[dirW])[kw] = mgcbb;                                                              
-//			(G.g[dirN])[k]  = mgbab;
-//			(G.g[dirS])[ks] = mgbcb;
-//			(G.g[dirT])[k]  = mgbba;
-//			(G.g[dirB])[kb] = mgbbc;
+//			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+//			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+//			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+//			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+//			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+//			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+//			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+//			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
+//			////////////////////////////////////////////////////////////////////////////////////
+//
+//			(G.g[E])[k]  = mgabb;                                                               
+//			(G.g[W])[kw] = mgcbb;                                                              
+//			(G.g[N])[k]  = mgbab;
+//			(G.g[S])[ks] = mgbcb;
+//			(G.g[T])[k]  = mgbba;
+//			(G.g[B])[kb] = mgbbc;
 //		}
 //	}
 //}
diff --git a/src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu b/src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu
index 8d5d855b0..c7f6c23c0 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/DragLift27.cu
@@ -22,63 +22,63 @@ extern "C" __global__ void DragLiftPost27(  real* DD,
 	Distributions27 D;
 	if (isEvenTimestep==true)
 	{
-		D.f[dirE   ] = &DD[dirE   *size_Mat];
-		D.f[dirW   ] = &DD[dirW   *size_Mat];
-		D.f[dirN   ] = &DD[dirN   *size_Mat];
-		D.f[dirS   ] = &DD[dirS   *size_Mat];
-		D.f[dirT   ] = &DD[dirT   *size_Mat];
-		D.f[dirB   ] = &DD[dirB   *size_Mat];
-		D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-		D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-		D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-		D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-		D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-		D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-		D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-		D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-		D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-		D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-		D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-		D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+		D.f[E   ] = &DD[E   *size_Mat];
+		D.f[W   ] = &DD[W   *size_Mat];
+		D.f[N   ] = &DD[N   *size_Mat];
+		D.f[S   ] = &DD[S   *size_Mat];
+		D.f[T   ] = &DD[T   *size_Mat];
+		D.f[B   ] = &DD[B   *size_Mat];
+		D.f[NE  ] = &DD[NE  *size_Mat];
+		D.f[SW  ] = &DD[SW  *size_Mat];
+		D.f[SE  ] = &DD[SE  *size_Mat];
+		D.f[NW  ] = &DD[NW  *size_Mat];
+		D.f[TE  ] = &DD[TE  *size_Mat];
+		D.f[BW  ] = &DD[BW  *size_Mat];
+		D.f[BE  ] = &DD[BE  *size_Mat];
+		D.f[TW  ] = &DD[TW  *size_Mat];
+		D.f[TN  ] = &DD[TN  *size_Mat];
+		D.f[BS  ] = &DD[BS  *size_Mat];
+		D.f[BN  ] = &DD[BN  *size_Mat];
+		D.f[TS  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-		D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-		D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-		D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-		D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-		D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+		D.f[TNE ] = &DD[TNE *size_Mat];
+		D.f[TSW ] = &DD[TSW *size_Mat];
+		D.f[TSE ] = &DD[TSE *size_Mat];
+		D.f[TNW ] = &DD[TNW *size_Mat];
+		D.f[BNE ] = &DD[BNE *size_Mat];
+		D.f[BSW ] = &DD[BSW *size_Mat];
+		D.f[BSE ] = &DD[BSE *size_Mat];
+		D.f[BNW ] = &DD[BNW *size_Mat];
 	} 
 	else
 	{
-		D.f[dirW   ] = &DD[dirE   *size_Mat];
-		D.f[dirE   ] = &DD[dirW   *size_Mat];
-		D.f[dirS   ] = &DD[dirN   *size_Mat];
-		D.f[dirN   ] = &DD[dirS   *size_Mat];
-		D.f[dirB   ] = &DD[dirT   *size_Mat];
-		D.f[dirT   ] = &DD[dirB   *size_Mat];
-		D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-		D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-		D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-		D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-		D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-		D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-		D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-		D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-		D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-		D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-		D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-		D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+		D.f[W   ] = &DD[E   *size_Mat];
+		D.f[E   ] = &DD[W   *size_Mat];
+		D.f[S   ] = &DD[N   *size_Mat];
+		D.f[N   ] = &DD[S   *size_Mat];
+		D.f[B   ] = &DD[T   *size_Mat];
+		D.f[T   ] = &DD[B   *size_Mat];
+		D.f[SW  ] = &DD[NE  *size_Mat];
+		D.f[NE  ] = &DD[SW  *size_Mat];
+		D.f[NW  ] = &DD[SE  *size_Mat];
+		D.f[SE  ] = &DD[NW  *size_Mat];
+		D.f[BW  ] = &DD[TE  *size_Mat];
+		D.f[TE  ] = &DD[BW  *size_Mat];
+		D.f[TW  ] = &DD[BE  *size_Mat];
+		D.f[BE  ] = &DD[TW  *size_Mat];
+		D.f[BS  ] = &DD[TN  *size_Mat];
+		D.f[TN  ] = &DD[BS  *size_Mat];
+		D.f[TS  ] = &DD[BN  *size_Mat];
+		D.f[BN  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-		D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-		D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-		D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-		D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-		D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+		D.f[TNE ] = &DD[BSW *size_Mat];
+		D.f[TSW ] = &DD[BNE *size_Mat];
+		D.f[TSE ] = &DD[BNW *size_Mat];
+		D.f[TNW ] = &DD[BSE *size_Mat];
+		D.f[BNE ] = &DD[TSW *size_Mat];
+		D.f[BSW ] = &DD[TNE *size_Mat];
+		D.f[BSE ] = &DD[TNW *size_Mat];
+		D.f[BNW ] = &DD[TSE *size_Mat];
 	}
 	////////////////////////////////////////////////////////////////////////////////
 	const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -99,32 +99,32 @@ extern "C" __global__ void DragLiftPost27(  real* DD,
 			*q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
 			*q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
 			*q_dirBSE, *q_dirBNW; 
-		q_dirE   = &QQ[dirE   * numberOfBCnodes];
-		q_dirW   = &QQ[dirW   * numberOfBCnodes];
-		q_dirN   = &QQ[dirN   * numberOfBCnodes];
-		q_dirS   = &QQ[dirS   * numberOfBCnodes];
-		q_dirT   = &QQ[dirT   * numberOfBCnodes];
-		q_dirB   = &QQ[dirB   * numberOfBCnodes];
-		q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-		q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-		q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-		q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-		q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-		q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-		q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-		q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-		q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-		q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-		q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-		q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-		q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-		q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-		q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-		q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-		q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-		q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-		q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-		q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+		q_dirE   = &QQ[E   * numberOfBCnodes];
+		q_dirW   = &QQ[W   * numberOfBCnodes];
+		q_dirN   = &QQ[N   * numberOfBCnodes];
+		q_dirS   = &QQ[S   * numberOfBCnodes];
+		q_dirT   = &QQ[T   * numberOfBCnodes];
+		q_dirB   = &QQ[B   * numberOfBCnodes];
+		q_dirNE  = &QQ[NE  * numberOfBCnodes];
+		q_dirSW  = &QQ[SW  * numberOfBCnodes];
+		q_dirSE  = &QQ[SE  * numberOfBCnodes];
+		q_dirNW  = &QQ[NW  * numberOfBCnodes];
+		q_dirTE  = &QQ[TE  * numberOfBCnodes];
+		q_dirBW  = &QQ[BW  * numberOfBCnodes];
+		q_dirBE  = &QQ[BE  * numberOfBCnodes];
+		q_dirTW  = &QQ[TW  * numberOfBCnodes];
+		q_dirTN  = &QQ[TN  * numberOfBCnodes];
+		q_dirBS  = &QQ[BS  * numberOfBCnodes];
+		q_dirBN  = &QQ[BN  * numberOfBCnodes];
+		q_dirTS  = &QQ[TS  * numberOfBCnodes];
+		q_dirTNE = &QQ[TNE * numberOfBCnodes];
+		q_dirTSW = &QQ[TSW * numberOfBCnodes];
+		q_dirTSE = &QQ[TSE * numberOfBCnodes];
+		q_dirTNW = &QQ[TNW * numberOfBCnodes];
+		q_dirBNE = &QQ[BNE * numberOfBCnodes];
+		q_dirBSW = &QQ[BSW * numberOfBCnodes];
+		q_dirBSE = &QQ[BSE * numberOfBCnodes];
+		q_dirBNW = &QQ[BNW * numberOfBCnodes];
 		////////////////////////////////////////////////////////////////////////////////
 		//index
 		unsigned int KQK  = k_Q[k];
@@ -159,32 +159,32 @@ extern "C" __global__ void DragLiftPost27(  real* DD,
 		real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
                 f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-		f_W    = (D.f[dirE   ])[ke   ];
-		f_E    = (D.f[dirW   ])[kw   ];
-		f_S    = (D.f[dirN   ])[kn   ];
-		f_N    = (D.f[dirS   ])[ks   ];
-		f_B    = (D.f[dirT   ])[kt   ];
-		f_T    = (D.f[dirB   ])[kb   ];
-		f_SW   = (D.f[dirNE  ])[kne  ];
-		f_NE   = (D.f[dirSW  ])[ksw  ];
-		f_NW   = (D.f[dirSE  ])[kse  ];
-		f_SE   = (D.f[dirNW  ])[knw  ];
-		f_BW   = (D.f[dirTE  ])[kte  ];
-		f_TE   = (D.f[dirBW  ])[kbw  ];
-		f_TW   = (D.f[dirBE  ])[kbe  ];
-		f_BE   = (D.f[dirTW  ])[ktw  ];
-		f_BS   = (D.f[dirTN  ])[ktn  ];
-		f_TN   = (D.f[dirBS  ])[kbs  ];
-		f_TS   = (D.f[dirBN  ])[kbn  ];
-		f_BN   = (D.f[dirTS  ])[kts  ];
-		f_BSW  = (D.f[dirTNE ])[ktne ];
-		f_BNE  = (D.f[dirTSW ])[ktsw ];
-		f_BNW  = (D.f[dirTSE ])[ktse ];
-		f_BSE  = (D.f[dirTNW ])[ktnw ];
-		f_TSW  = (D.f[dirBNE ])[kbne ];
-		f_TNE  = (D.f[dirBSW ])[kbsw ];
-		f_TNW  = (D.f[dirBSE ])[kbse ];
-		f_TSE  = (D.f[dirBNW ])[kbnw ];
+		f_W    = (D.f[E   ])[ke   ];
+		f_E    = (D.f[W   ])[kw   ];
+		f_S    = (D.f[N   ])[kn   ];
+		f_N    = (D.f[S   ])[ks   ];
+		f_B    = (D.f[T   ])[kt   ];
+		f_T    = (D.f[B   ])[kb   ];
+		f_SW   = (D.f[NE  ])[kne  ];
+		f_NE   = (D.f[SW  ])[ksw  ];
+		f_NW   = (D.f[SE  ])[kse  ];
+		f_SE   = (D.f[NW  ])[knw  ];
+		f_BW   = (D.f[TE  ])[kte  ];
+		f_TE   = (D.f[BW  ])[kbw  ];
+		f_TW   = (D.f[BE  ])[kbe  ];
+		f_BE   = (D.f[TW  ])[ktw  ];
+		f_BS   = (D.f[TN  ])[ktn  ];
+		f_TN   = (D.f[BS  ])[kbs  ];
+		f_TS   = (D.f[BN  ])[kbn  ];
+		f_BN   = (D.f[TS  ])[kts  ];
+		f_BSW  = (D.f[TNE ])[ktne ];
+		f_BNE  = (D.f[TSW ])[ktsw ];
+		f_BNW  = (D.f[TSE ])[ktse ];
+		f_BSE  = (D.f[TNW ])[ktnw ];
+		f_TSW  = (D.f[BNE ])[kbne ];
+		f_TNE  = (D.f[BSW ])[kbsw ];
+		f_TNW  = (D.f[BSE ])[kbse ];
+		f_TSE  = (D.f[BNW ])[kbnw ];
 		////////////////////////////////////////////////////////////////////////////////
 		double	OnE   = c0o1, OnW   = c0o1, OnN   = c0o1, OnS   = c0o1, OnT = c0o1, OnB = c0o1, 
 				OnNE  = c0o1, OnSW  = c0o1, OnSE  = c0o1, OnNW  = c0o1, 
@@ -287,63 +287,63 @@ extern "C" __global__ void DragLiftPre27(   real* DD,
 	Distributions27 D;
 	if (isEvenTimestep==true)
 	{
-		D.f[dirE   ] = &DD[dirE   *size_Mat];
-		D.f[dirW   ] = &DD[dirW   *size_Mat];
-		D.f[dirN   ] = &DD[dirN   *size_Mat];
-		D.f[dirS   ] = &DD[dirS   *size_Mat];
-		D.f[dirT   ] = &DD[dirT   *size_Mat];
-		D.f[dirB   ] = &DD[dirB   *size_Mat];
-		D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-		D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-		D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-		D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-		D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-		D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-		D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-		D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-		D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-		D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-		D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-		D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+		D.f[E   ] = &DD[E   *size_Mat];
+		D.f[W   ] = &DD[W   *size_Mat];
+		D.f[N   ] = &DD[N   *size_Mat];
+		D.f[S   ] = &DD[S   *size_Mat];
+		D.f[T   ] = &DD[T   *size_Mat];
+		D.f[B   ] = &DD[B   *size_Mat];
+		D.f[NE  ] = &DD[NE  *size_Mat];
+		D.f[SW  ] = &DD[SW  *size_Mat];
+		D.f[SE  ] = &DD[SE  *size_Mat];
+		D.f[NW  ] = &DD[NW  *size_Mat];
+		D.f[TE  ] = &DD[TE  *size_Mat];
+		D.f[BW  ] = &DD[BW  *size_Mat];
+		D.f[BE  ] = &DD[BE  *size_Mat];
+		D.f[TW  ] = &DD[TW  *size_Mat];
+		D.f[TN  ] = &DD[TN  *size_Mat];
+		D.f[BS  ] = &DD[BS  *size_Mat];
+		D.f[BN  ] = &DD[BN  *size_Mat];
+		D.f[TS  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-		D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-		D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-		D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-		D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-		D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+		D.f[TNE ] = &DD[TNE *size_Mat];
+		D.f[TSW ] = &DD[TSW *size_Mat];
+		D.f[TSE ] = &DD[TSE *size_Mat];
+		D.f[TNW ] = &DD[TNW *size_Mat];
+		D.f[BNE ] = &DD[BNE *size_Mat];
+		D.f[BSW ] = &DD[BSW *size_Mat];
+		D.f[BSE ] = &DD[BSE *size_Mat];
+		D.f[BNW ] = &DD[BNW *size_Mat];
 	} 
 	else
 	{
-		D.f[dirW   ] = &DD[dirE   *size_Mat];
-		D.f[dirE   ] = &DD[dirW   *size_Mat];
-		D.f[dirS   ] = &DD[dirN   *size_Mat];
-		D.f[dirN   ] = &DD[dirS   *size_Mat];
-		D.f[dirB   ] = &DD[dirT   *size_Mat];
-		D.f[dirT   ] = &DD[dirB   *size_Mat];
-		D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-		D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-		D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-		D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-		D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-		D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-		D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-		D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-		D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-		D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-		D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-		D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+		D.f[W   ] = &DD[E   *size_Mat];
+		D.f[E   ] = &DD[W   *size_Mat];
+		D.f[S   ] = &DD[N   *size_Mat];
+		D.f[N   ] = &DD[S   *size_Mat];
+		D.f[B   ] = &DD[T   *size_Mat];
+		D.f[T   ] = &DD[B   *size_Mat];
+		D.f[SW  ] = &DD[NE  *size_Mat];
+		D.f[NE  ] = &DD[SW  *size_Mat];
+		D.f[NW  ] = &DD[SE  *size_Mat];
+		D.f[SE  ] = &DD[NW  *size_Mat];
+		D.f[BW  ] = &DD[TE  *size_Mat];
+		D.f[TE  ] = &DD[BW  *size_Mat];
+		D.f[TW  ] = &DD[BE  *size_Mat];
+		D.f[BE  ] = &DD[TW  *size_Mat];
+		D.f[BS  ] = &DD[TN  *size_Mat];
+		D.f[TN  ] = &DD[BS  *size_Mat];
+		D.f[TS  ] = &DD[BN  *size_Mat];
+		D.f[BN  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-		D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-		D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-		D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-		D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-		D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+		D.f[TNE ] = &DD[BSW *size_Mat];
+		D.f[TSW ] = &DD[BNE *size_Mat];
+		D.f[TSE ] = &DD[BNW *size_Mat];
+		D.f[TNW ] = &DD[BSE *size_Mat];
+		D.f[BNE ] = &DD[TSW *size_Mat];
+		D.f[BSW ] = &DD[TNE *size_Mat];
+		D.f[BSE ] = &DD[TNW *size_Mat];
+		D.f[BNW ] = &DD[TSE *size_Mat];
 	}
 	////////////////////////////////////////////////////////////////////////////////
 	const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -364,32 +364,32 @@ extern "C" __global__ void DragLiftPre27(   real* DD,
 			*q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
 			*q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
 			*q_dirBSE, *q_dirBNW; 
-		q_dirE   = &QQ[dirE   * numberOfBCnodes];
-		q_dirW   = &QQ[dirW   * numberOfBCnodes];
-		q_dirN   = &QQ[dirN   * numberOfBCnodes];
-		q_dirS   = &QQ[dirS   * numberOfBCnodes];
-		q_dirT   = &QQ[dirT   * numberOfBCnodes];
-		q_dirB   = &QQ[dirB   * numberOfBCnodes];
-		q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-		q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-		q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-		q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-		q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-		q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-		q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-		q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-		q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-		q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-		q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-		q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-		q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-		q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-		q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-		q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-		q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-		q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-		q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-		q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+		q_dirE   = &QQ[E   * numberOfBCnodes];
+		q_dirW   = &QQ[W   * numberOfBCnodes];
+		q_dirN   = &QQ[N   * numberOfBCnodes];
+		q_dirS   = &QQ[S   * numberOfBCnodes];
+		q_dirT   = &QQ[T   * numberOfBCnodes];
+		q_dirB   = &QQ[B   * numberOfBCnodes];
+		q_dirNE  = &QQ[NE  * numberOfBCnodes];
+		q_dirSW  = &QQ[SW  * numberOfBCnodes];
+		q_dirSE  = &QQ[SE  * numberOfBCnodes];
+		q_dirNW  = &QQ[NW  * numberOfBCnodes];
+		q_dirTE  = &QQ[TE  * numberOfBCnodes];
+		q_dirBW  = &QQ[BW  * numberOfBCnodes];
+		q_dirBE  = &QQ[BE  * numberOfBCnodes];
+		q_dirTW  = &QQ[TW  * numberOfBCnodes];
+		q_dirTN  = &QQ[TN  * numberOfBCnodes];
+		q_dirBS  = &QQ[BS  * numberOfBCnodes];
+		q_dirBN  = &QQ[BN  * numberOfBCnodes];
+		q_dirTS  = &QQ[TS  * numberOfBCnodes];
+		q_dirTNE = &QQ[TNE * numberOfBCnodes];
+		q_dirTSW = &QQ[TSW * numberOfBCnodes];
+		q_dirTSE = &QQ[TSE * numberOfBCnodes];
+		q_dirTNW = &QQ[TNW * numberOfBCnodes];
+		q_dirBNE = &QQ[BNE * numberOfBCnodes];
+		q_dirBSW = &QQ[BSW * numberOfBCnodes];
+		q_dirBSE = &QQ[BSE * numberOfBCnodes];
+		q_dirBNW = &QQ[BNW * numberOfBCnodes];
 		////////////////////////////////////////////////////////////////////////////////
 		//index
 		unsigned int KQK  = k_Q[k];
@@ -424,32 +424,32 @@ extern "C" __global__ void DragLiftPre27(   real* DD,
 		real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
                 f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-		f_E   = (D.f[dirE   ])[ke   ];
-		f_W   = (D.f[dirW   ])[kw   ];
-		f_N   = (D.f[dirN   ])[kn   ];
-		f_S   = (D.f[dirS   ])[ks   ];
-		f_T   = (D.f[dirT   ])[kt   ];
-		f_B   = (D.f[dirB   ])[kb   ];
-		f_NE  = (D.f[dirNE  ])[kne  ];
-		f_SW  = (D.f[dirSW  ])[ksw  ];
-		f_SE  = (D.f[dirSE  ])[kse  ];
-		f_NW  = (D.f[dirNW  ])[knw  ];
-		f_TE  = (D.f[dirTE  ])[kte  ];
-		f_BW  = (D.f[dirBW  ])[kbw  ];
-		f_BE  = (D.f[dirBE  ])[kbe  ];
-		f_TW  = (D.f[dirTW  ])[ktw  ];
-		f_TN  = (D.f[dirTN  ])[ktn  ];
-		f_BS  = (D.f[dirBS  ])[kbs  ];
-		f_BN  = (D.f[dirBN  ])[kbn  ];
-		f_TS  = (D.f[dirTS  ])[kts  ];
-		f_TNE = (D.f[dirTNE ])[ktne ];
-		f_TSW = (D.f[dirTSW ])[ktsw ];
-		f_TSE = (D.f[dirTSE ])[ktse ];
-		f_TNW = (D.f[dirTNW ])[ktnw ];
-		f_BNE = (D.f[dirBNE ])[kbne ];
-		f_BSW = (D.f[dirBSW ])[kbsw ];
-		f_BSE = (D.f[dirBSE ])[kbse ];
-		f_BNW = (D.f[dirBNW ])[kbnw ];
+		f_E   = (D.f[E   ])[ke   ];
+		f_W   = (D.f[W   ])[kw   ];
+		f_N   = (D.f[N   ])[kn   ];
+		f_S   = (D.f[S   ])[ks   ];
+		f_T   = (D.f[T   ])[kt   ];
+		f_B   = (D.f[B   ])[kb   ];
+		f_NE  = (D.f[NE  ])[kne  ];
+		f_SW  = (D.f[SW  ])[ksw  ];
+		f_SE  = (D.f[SE  ])[kse  ];
+		f_NW  = (D.f[NW  ])[knw  ];
+		f_TE  = (D.f[TE  ])[kte  ];
+		f_BW  = (D.f[BW  ])[kbw  ];
+		f_BE  = (D.f[BE  ])[kbe  ];
+		f_TW  = (D.f[TW  ])[ktw  ];
+		f_TN  = (D.f[TN  ])[ktn  ];
+		f_BS  = (D.f[BS  ])[kbs  ];
+		f_BN  = (D.f[BN  ])[kbn  ];
+		f_TS  = (D.f[TS  ])[kts  ];
+		f_TNE = (D.f[TNE ])[ktne ];
+		f_TSW = (D.f[TSW ])[ktsw ];
+		f_TSE = (D.f[TSE ])[ktse ];
+		f_TNW = (D.f[TNW ])[ktnw ];
+		f_BNE = (D.f[BNE ])[kbne ];
+		f_BSW = (D.f[BSW ])[kbsw ];
+		f_BSE = (D.f[BSE ])[kbse ];
+		f_BNW = (D.f[BNW ])[kbnw ];
 		 ////////////////////////////////////////////////////////////////////////////////
 		double	OnE   = c0o1, OnW   = c0o1, OnN   = c0o1, OnS   = c0o1, OnT = c0o1, OnB = c0o1, 
 				OnNE  = c0o1, OnSW  = c0o1, OnSE  = c0o1, OnNW  = c0o1, 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ExchangeData27.cu b/src/gpu/VirtualFluids_GPU/GPU/ExchangeData27.cu
index 928fc0dbb..933dd7c50 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ExchangeData27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ExchangeData27.cu
@@ -64,150 +64,150 @@ extern "C" __global__ void getSendFsPost27(real* DD,
       Distributions27 D;
       if (isEvenTimestep==true)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  //set Pointer for Buffer Fs
       Distributions27 Dbuff;
-      Dbuff.f[dirE   ] = &bufferFs[dirE   *buffmax];
-      Dbuff.f[dirW   ] = &bufferFs[dirW   *buffmax];
-      Dbuff.f[dirN   ] = &bufferFs[dirN   *buffmax];
-      Dbuff.f[dirS   ] = &bufferFs[dirS   *buffmax];
-      Dbuff.f[dirT   ] = &bufferFs[dirT   *buffmax];
-      Dbuff.f[dirB   ] = &bufferFs[dirB   *buffmax];
-      Dbuff.f[dirNE  ] = &bufferFs[dirNE  *buffmax];
-      Dbuff.f[dirSW  ] = &bufferFs[dirSW  *buffmax];
-      Dbuff.f[dirSE  ] = &bufferFs[dirSE  *buffmax];
-      Dbuff.f[dirNW  ] = &bufferFs[dirNW  *buffmax];
-      Dbuff.f[dirTE  ] = &bufferFs[dirTE  *buffmax];
-      Dbuff.f[dirBW  ] = &bufferFs[dirBW  *buffmax];
-      Dbuff.f[dirBE  ] = &bufferFs[dirBE  *buffmax];
-      Dbuff.f[dirTW  ] = &bufferFs[dirTW  *buffmax];
-      Dbuff.f[dirTN  ] = &bufferFs[dirTN  *buffmax];
-      Dbuff.f[dirBS  ] = &bufferFs[dirBS  *buffmax];
-      Dbuff.f[dirBN  ] = &bufferFs[dirBN  *buffmax];
-      Dbuff.f[dirTS  ] = &bufferFs[dirTS  *buffmax];
+      Dbuff.f[E   ] = &bufferFs[E   *buffmax];
+      Dbuff.f[W   ] = &bufferFs[W   *buffmax];
+      Dbuff.f[N   ] = &bufferFs[N   *buffmax];
+      Dbuff.f[S   ] = &bufferFs[S   *buffmax];
+      Dbuff.f[T   ] = &bufferFs[T   *buffmax];
+      Dbuff.f[B   ] = &bufferFs[B   *buffmax];
+      Dbuff.f[NE  ] = &bufferFs[NE  *buffmax];
+      Dbuff.f[SW  ] = &bufferFs[SW  *buffmax];
+      Dbuff.f[SE  ] = &bufferFs[SE  *buffmax];
+      Dbuff.f[NW  ] = &bufferFs[NW  *buffmax];
+      Dbuff.f[TE  ] = &bufferFs[TE  *buffmax];
+      Dbuff.f[BW  ] = &bufferFs[BW  *buffmax];
+      Dbuff.f[BE  ] = &bufferFs[BE  *buffmax];
+      Dbuff.f[TW  ] = &bufferFs[TW  *buffmax];
+      Dbuff.f[TN  ] = &bufferFs[TN  *buffmax];
+      Dbuff.f[BS  ] = &bufferFs[BS  *buffmax];
+      Dbuff.f[BN  ] = &bufferFs[BN  *buffmax];
+      Dbuff.f[TS  ] = &bufferFs[TS  *buffmax];
       Dbuff.f[dirREST] = &bufferFs[dirREST*buffmax];
-      Dbuff.f[dirTNE ] = &bufferFs[dirTNE *buffmax];
-      Dbuff.f[dirTSW ] = &bufferFs[dirTSW *buffmax];
-      Dbuff.f[dirTSE ] = &bufferFs[dirTSE *buffmax];
-      Dbuff.f[dirTNW ] = &bufferFs[dirTNW *buffmax];
-      Dbuff.f[dirBNE ] = &bufferFs[dirBNE *buffmax];
-      Dbuff.f[dirBSW ] = &bufferFs[dirBSW *buffmax];
-      Dbuff.f[dirBSE ] = &bufferFs[dirBSE *buffmax];
-      Dbuff.f[dirBNW ] = &bufferFs[dirBNW *buffmax];
+      Dbuff.f[TNE ] = &bufferFs[TNE *buffmax];
+      Dbuff.f[TSW ] = &bufferFs[TSW *buffmax];
+      Dbuff.f[TSE ] = &bufferFs[TSE *buffmax];
+      Dbuff.f[TNW ] = &bufferFs[TNW *buffmax];
+      Dbuff.f[BNE ] = &bufferFs[BNE *buffmax];
+      Dbuff.f[BSW ] = &bufferFs[BSW *buffmax];
+      Dbuff.f[BSE ] = &bufferFs[BSE *buffmax];
+      Dbuff.f[BNW ] = &bufferFs[BNW *buffmax];
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  //copy to buffer
-      //(Dbuff.f[dirE   ])[k] = (D.f[dirE   ])[ke   ];
-      //(Dbuff.f[dirW   ])[k] = (D.f[dirW   ])[kw   ];
-      //(Dbuff.f[dirN   ])[k] = (D.f[dirN   ])[kn   ];
-      //(Dbuff.f[dirS   ])[k] = (D.f[dirS   ])[ks   ];
-      //(Dbuff.f[dirT   ])[k] = (D.f[dirT   ])[kt   ];
-      //(Dbuff.f[dirB   ])[k] = (D.f[dirB   ])[kb   ];
-      //(Dbuff.f[dirNE  ])[k] = (D.f[dirNE  ])[kne  ];
-      //(Dbuff.f[dirSW  ])[k] = (D.f[dirSW  ])[ksw  ];
-      //(Dbuff.f[dirSE  ])[k] = (D.f[dirSE  ])[kse  ];
-      //(Dbuff.f[dirNW  ])[k] = (D.f[dirNW  ])[knw  ];
-      //(Dbuff.f[dirTE  ])[k] = (D.f[dirTE  ])[kte  ];
-      //(Dbuff.f[dirBW  ])[k] = (D.f[dirBW  ])[kbw  ];
-      //(Dbuff.f[dirBE  ])[k] = (D.f[dirBE  ])[kbe  ];
-      //(Dbuff.f[dirTW  ])[k] = (D.f[dirTW  ])[ktw  ];
-      //(Dbuff.f[dirTN  ])[k] = (D.f[dirTN  ])[ktn  ];
-      //(Dbuff.f[dirBS  ])[k] = (D.f[dirBS  ])[kbs  ];
-      //(Dbuff.f[dirBN  ])[k] = (D.f[dirBN  ])[kbn  ];
-      //(Dbuff.f[dirTS  ])[k] = (D.f[dirTS  ])[kts  ];
+      //(Dbuff.f[E   ])[k] = (D.f[E   ])[ke   ];
+      //(Dbuff.f[W   ])[k] = (D.f[W   ])[kw   ];
+      //(Dbuff.f[N   ])[k] = (D.f[N   ])[kn   ];
+      //(Dbuff.f[S   ])[k] = (D.f[S   ])[ks   ];
+      //(Dbuff.f[T   ])[k] = (D.f[T   ])[kt   ];
+      //(Dbuff.f[B   ])[k] = (D.f[B   ])[kb   ];
+      //(Dbuff.f[NE  ])[k] = (D.f[NE  ])[kne  ];
+      //(Dbuff.f[SW  ])[k] = (D.f[SW  ])[ksw  ];
+      //(Dbuff.f[SE  ])[k] = (D.f[SE  ])[kse  ];
+      //(Dbuff.f[NW  ])[k] = (D.f[NW  ])[knw  ];
+      //(Dbuff.f[TE  ])[k] = (D.f[TE  ])[kte  ];
+      //(Dbuff.f[BW  ])[k] = (D.f[BW  ])[kbw  ];
+      //(Dbuff.f[BE  ])[k] = (D.f[BE  ])[kbe  ];
+      //(Dbuff.f[TW  ])[k] = (D.f[TW  ])[ktw  ];
+      //(Dbuff.f[TN  ])[k] = (D.f[TN  ])[ktn  ];
+      //(Dbuff.f[BS  ])[k] = (D.f[BS  ])[kbs  ];
+      //(Dbuff.f[BN  ])[k] = (D.f[BN  ])[kbn  ];
+      //(Dbuff.f[TS  ])[k] = (D.f[TS  ])[kts  ];
       //(Dbuff.f[dirREST])[k] = (D.f[dirREST])[kzero];
-      //(Dbuff.f[dirTNE ])[k] = (D.f[dirTNE ])[ktne ];
-      //(Dbuff.f[dirTSW ])[k] = (D.f[dirTSW ])[ktsw ];
-      //(Dbuff.f[dirTSE ])[k] = (D.f[dirTSE ])[ktse ];
-      //(Dbuff.f[dirTNW ])[k] = (D.f[dirTNW ])[ktnw ];
-      //(Dbuff.f[dirBNE ])[k] = (D.f[dirBNE ])[kbne ];
-      //(Dbuff.f[dirBSW ])[k] = (D.f[dirBSW ])[kbsw ];
-      //(Dbuff.f[dirBSE ])[k] = (D.f[dirBSE ])[kbse ];
-      //(Dbuff.f[dirBNW ])[k] = (D.f[dirBNW ])[kbnw ];
-      (Dbuff.f[dirE   ])[k] = (D.f[dirW   ])[kw   ];
-      (Dbuff.f[dirW   ])[k] = (D.f[dirE   ])[ke   ];
-      (Dbuff.f[dirN   ])[k] = (D.f[dirS   ])[ks   ];
-      (Dbuff.f[dirS   ])[k] = (D.f[dirN   ])[kn   ];
-      (Dbuff.f[dirT   ])[k] = (D.f[dirB   ])[kb   ];
-      (Dbuff.f[dirB   ])[k] = (D.f[dirT   ])[kt   ];
-      (Dbuff.f[dirNE  ])[k] = (D.f[dirSW  ])[ksw  ];
-      (Dbuff.f[dirSW  ])[k] = (D.f[dirNE  ])[kne  ];
-      (Dbuff.f[dirSE  ])[k] = (D.f[dirNW  ])[knw  ];
-      (Dbuff.f[dirNW  ])[k] = (D.f[dirSE  ])[kse  ];
-      (Dbuff.f[dirTE  ])[k] = (D.f[dirBW  ])[kbw  ];
-      (Dbuff.f[dirBW  ])[k] = (D.f[dirTE  ])[kte  ];
-      (Dbuff.f[dirBE  ])[k] = (D.f[dirTW  ])[ktw  ];
-      (Dbuff.f[dirTW  ])[k] = (D.f[dirBE  ])[kbe  ];
-      (Dbuff.f[dirTN  ])[k] = (D.f[dirBS  ])[kbs  ];
-      (Dbuff.f[dirBS  ])[k] = (D.f[dirTN  ])[ktn  ];
-      (Dbuff.f[dirBN  ])[k] = (D.f[dirTS  ])[kts  ];
-      (Dbuff.f[dirTS  ])[k] = (D.f[dirBN  ])[kbn  ];
+      //(Dbuff.f[TNE ])[k] = (D.f[TNE ])[ktne ];
+      //(Dbuff.f[TSW ])[k] = (D.f[TSW ])[ktsw ];
+      //(Dbuff.f[TSE ])[k] = (D.f[TSE ])[ktse ];
+      //(Dbuff.f[TNW ])[k] = (D.f[TNW ])[ktnw ];
+      //(Dbuff.f[BNE ])[k] = (D.f[BNE ])[kbne ];
+      //(Dbuff.f[BSW ])[k] = (D.f[BSW ])[kbsw ];
+      //(Dbuff.f[BSE ])[k] = (D.f[BSE ])[kbse ];
+      //(Dbuff.f[BNW ])[k] = (D.f[BNW ])[kbnw ];
+      (Dbuff.f[E   ])[k] = (D.f[W   ])[kw   ];
+      (Dbuff.f[W   ])[k] = (D.f[E   ])[ke   ];
+      (Dbuff.f[N   ])[k] = (D.f[S   ])[ks   ];
+      (Dbuff.f[S   ])[k] = (D.f[N   ])[kn   ];
+      (Dbuff.f[T   ])[k] = (D.f[B   ])[kb   ];
+      (Dbuff.f[B   ])[k] = (D.f[T   ])[kt   ];
+      (Dbuff.f[NE  ])[k] = (D.f[SW  ])[ksw  ];
+      (Dbuff.f[SW  ])[k] = (D.f[NE  ])[kne  ];
+      (Dbuff.f[SE  ])[k] = (D.f[NW  ])[knw  ];
+      (Dbuff.f[NW  ])[k] = (D.f[SE  ])[kse  ];
+      (Dbuff.f[TE  ])[k] = (D.f[BW  ])[kbw  ];
+      (Dbuff.f[BW  ])[k] = (D.f[TE  ])[kte  ];
+      (Dbuff.f[BE  ])[k] = (D.f[TW  ])[ktw  ];
+      (Dbuff.f[TW  ])[k] = (D.f[BE  ])[kbe  ];
+      (Dbuff.f[TN  ])[k] = (D.f[BS  ])[kbs  ];
+      (Dbuff.f[BS  ])[k] = (D.f[TN  ])[ktn  ];
+      (Dbuff.f[BN  ])[k] = (D.f[TS  ])[kts  ];
+      (Dbuff.f[TS  ])[k] = (D.f[BN  ])[kbn  ];
       (Dbuff.f[dirREST])[k] = (D.f[dirREST])[kzero];
-      (Dbuff.f[dirTNE ])[k] = (D.f[dirBSW ])[kbsw ];
-      (Dbuff.f[dirTSW ])[k] = (D.f[dirBNE ])[kbne ];
-      (Dbuff.f[dirTSE ])[k] = (D.f[dirBNW ])[kbnw ];
-      (Dbuff.f[dirTNW ])[k] = (D.f[dirBSE ])[kbse ];
-      (Dbuff.f[dirBNE ])[k] = (D.f[dirTSW ])[ktsw ];
-      (Dbuff.f[dirBSW ])[k] = (D.f[dirTNE ])[ktne ];
-      (Dbuff.f[dirBSE ])[k] = (D.f[dirTNW ])[ktnw ];
-      (Dbuff.f[dirBNW ])[k] = (D.f[dirTSE ])[ktse ];
+      (Dbuff.f[TNE ])[k] = (D.f[BSW ])[kbsw ];
+      (Dbuff.f[TSW ])[k] = (D.f[BNE ])[kbne ];
+      (Dbuff.f[TSE ])[k] = (D.f[BNW ])[kbnw ];
+      (Dbuff.f[TNW ])[k] = (D.f[BSE ])[kbse ];
+      (Dbuff.f[BNE ])[k] = (D.f[TSW ])[ktsw ];
+      (Dbuff.f[BSW ])[k] = (D.f[TNE ])[ktne ];
+      (Dbuff.f[BSE ])[k] = (D.f[TNW ])[ktnw ];
+      (Dbuff.f[BNW ])[k] = (D.f[TSE ])[ktse ];
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -300,150 +300,150 @@ extern "C" __global__ void setRecvFsPost27(real* DD,
       Distributions27 D;
       if (isEvenTimestep==true)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  //set Pointer for Buffer Fs
       Distributions27 Dbuff;
-      Dbuff.f[dirE   ] = &bufferFs[dirE   *buffmax];
-      Dbuff.f[dirW   ] = &bufferFs[dirW   *buffmax];
-      Dbuff.f[dirN   ] = &bufferFs[dirN   *buffmax];
-      Dbuff.f[dirS   ] = &bufferFs[dirS   *buffmax];
-      Dbuff.f[dirT   ] = &bufferFs[dirT   *buffmax];
-      Dbuff.f[dirB   ] = &bufferFs[dirB   *buffmax];
-      Dbuff.f[dirNE  ] = &bufferFs[dirNE  *buffmax];
-      Dbuff.f[dirSW  ] = &bufferFs[dirSW  *buffmax];
-      Dbuff.f[dirSE  ] = &bufferFs[dirSE  *buffmax];
-      Dbuff.f[dirNW  ] = &bufferFs[dirNW  *buffmax];
-      Dbuff.f[dirTE  ] = &bufferFs[dirTE  *buffmax];
-      Dbuff.f[dirBW  ] = &bufferFs[dirBW  *buffmax];
-      Dbuff.f[dirBE  ] = &bufferFs[dirBE  *buffmax];
-      Dbuff.f[dirTW  ] = &bufferFs[dirTW  *buffmax];
-      Dbuff.f[dirTN  ] = &bufferFs[dirTN  *buffmax];
-      Dbuff.f[dirBS  ] = &bufferFs[dirBS  *buffmax];
-      Dbuff.f[dirBN  ] = &bufferFs[dirBN  *buffmax];
-      Dbuff.f[dirTS  ] = &bufferFs[dirTS  *buffmax];
+      Dbuff.f[E   ] = &bufferFs[E   *buffmax];
+      Dbuff.f[W   ] = &bufferFs[W   *buffmax];
+      Dbuff.f[N   ] = &bufferFs[N   *buffmax];
+      Dbuff.f[S   ] = &bufferFs[S   *buffmax];
+      Dbuff.f[T   ] = &bufferFs[T   *buffmax];
+      Dbuff.f[B   ] = &bufferFs[B   *buffmax];
+      Dbuff.f[NE  ] = &bufferFs[NE  *buffmax];
+      Dbuff.f[SW  ] = &bufferFs[SW  *buffmax];
+      Dbuff.f[SE  ] = &bufferFs[SE  *buffmax];
+      Dbuff.f[NW  ] = &bufferFs[NW  *buffmax];
+      Dbuff.f[TE  ] = &bufferFs[TE  *buffmax];
+      Dbuff.f[BW  ] = &bufferFs[BW  *buffmax];
+      Dbuff.f[BE  ] = &bufferFs[BE  *buffmax];
+      Dbuff.f[TW  ] = &bufferFs[TW  *buffmax];
+      Dbuff.f[TN  ] = &bufferFs[TN  *buffmax];
+      Dbuff.f[BS  ] = &bufferFs[BS  *buffmax];
+      Dbuff.f[BN  ] = &bufferFs[BN  *buffmax];
+      Dbuff.f[TS  ] = &bufferFs[TS  *buffmax];
       Dbuff.f[dirREST] = &bufferFs[dirREST*buffmax];
-      Dbuff.f[dirTNE ] = &bufferFs[dirTNE *buffmax];
-      Dbuff.f[dirTSW ] = &bufferFs[dirTSW *buffmax];
-      Dbuff.f[dirTSE ] = &bufferFs[dirTSE *buffmax];
-      Dbuff.f[dirTNW ] = &bufferFs[dirTNW *buffmax];
-      Dbuff.f[dirBNE ] = &bufferFs[dirBNE *buffmax];
-      Dbuff.f[dirBSW ] = &bufferFs[dirBSW *buffmax];
-      Dbuff.f[dirBSE ] = &bufferFs[dirBSE *buffmax];
-      Dbuff.f[dirBNW ] = &bufferFs[dirBNW *buffmax];
+      Dbuff.f[TNE ] = &bufferFs[TNE *buffmax];
+      Dbuff.f[TSW ] = &bufferFs[TSW *buffmax];
+      Dbuff.f[TSE ] = &bufferFs[TSE *buffmax];
+      Dbuff.f[TNW ] = &bufferFs[TNW *buffmax];
+      Dbuff.f[BNE ] = &bufferFs[BNE *buffmax];
+      Dbuff.f[BSW ] = &bufferFs[BSW *buffmax];
+      Dbuff.f[BSE ] = &bufferFs[BSE *buffmax];
+      Dbuff.f[BNW ] = &bufferFs[BNW *buffmax];
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  //copy from buffer
-      //(D.f[dirE   ])[ke   ] = (Dbuff.f[dirE   ])[k];
-      //(D.f[dirW   ])[kw   ] = (Dbuff.f[dirW   ])[k];
-      //(D.f[dirN   ])[kn   ] = (Dbuff.f[dirN   ])[k];
-      //(D.f[dirS   ])[ks   ] = (Dbuff.f[dirS   ])[k];
-      //(D.f[dirT   ])[kt   ] = (Dbuff.f[dirT   ])[k];
-      //(D.f[dirB   ])[kb   ] = (Dbuff.f[dirB   ])[k];
-      //(D.f[dirNE  ])[kne  ] = (Dbuff.f[dirNE  ])[k];
-      //(D.f[dirSW  ])[ksw  ] = (Dbuff.f[dirSW  ])[k];
-      //(D.f[dirSE  ])[kse  ] = (Dbuff.f[dirSE  ])[k];
-      //(D.f[dirNW  ])[knw  ] = (Dbuff.f[dirNW  ])[k];
-      //(D.f[dirTE  ])[kte  ] = (Dbuff.f[dirTE  ])[k];
-      //(D.f[dirBW  ])[kbw  ] = (Dbuff.f[dirBW  ])[k];
-      //(D.f[dirBE  ])[kbe  ] = (Dbuff.f[dirBE  ])[k];
-      //(D.f[dirTW  ])[ktw  ] = (Dbuff.f[dirTW  ])[k];
-      //(D.f[dirTN  ])[ktn  ] = (Dbuff.f[dirTN  ])[k];
-      //(D.f[dirBS  ])[kbs  ] = (Dbuff.f[dirBS  ])[k];
-      //(D.f[dirBN  ])[kbn  ] = (Dbuff.f[dirBN  ])[k];
-      //(D.f[dirTS  ])[kts  ] = (Dbuff.f[dirTS  ])[k];
+      //(D.f[E   ])[ke   ] = (Dbuff.f[E   ])[k];
+      //(D.f[W   ])[kw   ] = (Dbuff.f[W   ])[k];
+      //(D.f[N   ])[kn   ] = (Dbuff.f[N   ])[k];
+      //(D.f[S   ])[ks   ] = (Dbuff.f[S   ])[k];
+      //(D.f[T   ])[kt   ] = (Dbuff.f[T   ])[k];
+      //(D.f[B   ])[kb   ] = (Dbuff.f[B   ])[k];
+      //(D.f[NE  ])[kne  ] = (Dbuff.f[NE  ])[k];
+      //(D.f[SW  ])[ksw  ] = (Dbuff.f[SW  ])[k];
+      //(D.f[SE  ])[kse  ] = (Dbuff.f[SE  ])[k];
+      //(D.f[NW  ])[knw  ] = (Dbuff.f[NW  ])[k];
+      //(D.f[TE  ])[kte  ] = (Dbuff.f[TE  ])[k];
+      //(D.f[BW  ])[kbw  ] = (Dbuff.f[BW  ])[k];
+      //(D.f[BE  ])[kbe  ] = (Dbuff.f[BE  ])[k];
+      //(D.f[TW  ])[ktw  ] = (Dbuff.f[TW  ])[k];
+      //(D.f[TN  ])[ktn  ] = (Dbuff.f[TN  ])[k];
+      //(D.f[BS  ])[kbs  ] = (Dbuff.f[BS  ])[k];
+      //(D.f[BN  ])[kbn  ] = (Dbuff.f[BN  ])[k];
+      //(D.f[TS  ])[kts  ] = (Dbuff.f[TS  ])[k];
       //(D.f[dirREST])[kzero] = (Dbuff.f[dirREST])[k];
-      //(D.f[dirTNE ])[ktne ] = (Dbuff.f[dirTNE ])[k];
-      //(D.f[dirTSW ])[ktsw ] = (Dbuff.f[dirTSW ])[k];
-      //(D.f[dirTSE ])[ktse ] = (Dbuff.f[dirTSE ])[k];
-      //(D.f[dirTNW ])[ktnw ] = (Dbuff.f[dirTNW ])[k];
-      //(D.f[dirBNE ])[kbne ] = (Dbuff.f[dirBNE ])[k];
-      //(D.f[dirBSW ])[kbsw ] = (Dbuff.f[dirBSW ])[k];
-      //(D.f[dirBSE ])[kbse ] = (Dbuff.f[dirBSE ])[k];
-      //(D.f[dirBNW ])[kbnw ] = (Dbuff.f[dirBNW ])[k];
-      (D.f[dirW   ])[kw   ] = (Dbuff.f[dirE   ])[k];
-      (D.f[dirE   ])[ke   ] = (Dbuff.f[dirW   ])[k];
-      (D.f[dirS   ])[ks   ] = (Dbuff.f[dirN   ])[k];
-      (D.f[dirN   ])[kn   ] = (Dbuff.f[dirS   ])[k];
-      (D.f[dirB   ])[kb   ] = (Dbuff.f[dirT   ])[k];
-      (D.f[dirT   ])[kt   ] = (Dbuff.f[dirB   ])[k];
-      (D.f[dirSW  ])[ksw  ] = (Dbuff.f[dirNE  ])[k];
-      (D.f[dirNE  ])[kne  ] = (Dbuff.f[dirSW  ])[k];
-      (D.f[dirNW  ])[knw  ] = (Dbuff.f[dirSE  ])[k];
-      (D.f[dirSE  ])[kse  ] = (Dbuff.f[dirNW  ])[k];
-      (D.f[dirBW  ])[kbw  ] = (Dbuff.f[dirTE  ])[k];
-      (D.f[dirTE  ])[kte  ] = (Dbuff.f[dirBW  ])[k];
-      (D.f[dirTW  ])[ktw  ] = (Dbuff.f[dirBE  ])[k];
-      (D.f[dirBE  ])[kbe  ] = (Dbuff.f[dirTW  ])[k];
-      (D.f[dirBS  ])[kbs  ] = (Dbuff.f[dirTN  ])[k];
-      (D.f[dirTN  ])[ktn  ] = (Dbuff.f[dirBS  ])[k];
-      (D.f[dirTS  ])[kts  ] = (Dbuff.f[dirBN  ])[k];
-      (D.f[dirBN  ])[kbn  ] = (Dbuff.f[dirTS  ])[k];
+      //(D.f[TNE ])[ktne ] = (Dbuff.f[TNE ])[k];
+      //(D.f[TSW ])[ktsw ] = (Dbuff.f[TSW ])[k];
+      //(D.f[TSE ])[ktse ] = (Dbuff.f[TSE ])[k];
+      //(D.f[TNW ])[ktnw ] = (Dbuff.f[TNW ])[k];
+      //(D.f[BNE ])[kbne ] = (Dbuff.f[BNE ])[k];
+      //(D.f[BSW ])[kbsw ] = (Dbuff.f[BSW ])[k];
+      //(D.f[BSE ])[kbse ] = (Dbuff.f[BSE ])[k];
+      //(D.f[BNW ])[kbnw ] = (Dbuff.f[BNW ])[k];
+      (D.f[W   ])[kw   ] = (Dbuff.f[E   ])[k];
+      (D.f[E   ])[ke   ] = (Dbuff.f[W   ])[k];
+      (D.f[S   ])[ks   ] = (Dbuff.f[N   ])[k];
+      (D.f[N   ])[kn   ] = (Dbuff.f[S   ])[k];
+      (D.f[B   ])[kb   ] = (Dbuff.f[T   ])[k];
+      (D.f[T   ])[kt   ] = (Dbuff.f[B   ])[k];
+      (D.f[SW  ])[ksw  ] = (Dbuff.f[NE  ])[k];
+      (D.f[NE  ])[kne  ] = (Dbuff.f[SW  ])[k];
+      (D.f[NW  ])[knw  ] = (Dbuff.f[SE  ])[k];
+      (D.f[SE  ])[kse  ] = (Dbuff.f[NW  ])[k];
+      (D.f[BW  ])[kbw  ] = (Dbuff.f[TE  ])[k];
+      (D.f[TE  ])[kte  ] = (Dbuff.f[BW  ])[k];
+      (D.f[TW  ])[ktw  ] = (Dbuff.f[BE  ])[k];
+      (D.f[BE  ])[kbe  ] = (Dbuff.f[TW  ])[k];
+      (D.f[BS  ])[kbs  ] = (Dbuff.f[TN  ])[k];
+      (D.f[TN  ])[ktn  ] = (Dbuff.f[BS  ])[k];
+      (D.f[TS  ])[kts  ] = (Dbuff.f[BN  ])[k];
+      (D.f[BN  ])[kbn  ] = (Dbuff.f[TS  ])[k];
       (D.f[dirREST])[kzero] = (Dbuff.f[dirREST])[k];
-      (D.f[dirBSW ])[kbsw ] = (Dbuff.f[dirTNE ])[k];
-      (D.f[dirBNE ])[kbne ] = (Dbuff.f[dirTSW ])[k];
-      (D.f[dirBNW ])[kbnw ] = (Dbuff.f[dirTSE ])[k];
-      (D.f[dirBSE ])[kbse ] = (Dbuff.f[dirTNW ])[k];
-      (D.f[dirTSW ])[ktsw ] = (Dbuff.f[dirBNE ])[k];
-      (D.f[dirTNE ])[ktne ] = (Dbuff.f[dirBSW ])[k];
-      (D.f[dirTNW ])[ktnw ] = (Dbuff.f[dirBSE ])[k];
-      (D.f[dirTSE ])[ktse ] = (Dbuff.f[dirBNW ])[k];
+      (D.f[BSW ])[kbsw ] = (Dbuff.f[TNE ])[k];
+      (D.f[BNE ])[kbne ] = (Dbuff.f[TSW ])[k];
+      (D.f[BNW ])[kbnw ] = (Dbuff.f[TSE ])[k];
+      (D.f[BSE ])[kbse ] = (Dbuff.f[TNW ])[k];
+      (D.f[TSW ])[ktsw ] = (Dbuff.f[BNE ])[k];
+      (D.f[TNE ])[ktne ] = (Dbuff.f[BSW ])[k];
+      (D.f[TNW ])[ktnw ] = (Dbuff.f[BSE ])[k];
+      (D.f[TSE ])[ktse ] = (Dbuff.f[BNW ])[k];
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -535,123 +535,123 @@ extern "C" __global__ void getSendFsPre27(real* DD,
       Distributions27 D;
       if (isEvenTimestep==true)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  //set Pointer for Buffer Fs
       Distributions27 Dbuff;
-      Dbuff.f[dirE   ] = &bufferFs[dirE   *buffmax];
-      Dbuff.f[dirW   ] = &bufferFs[dirW   *buffmax];
-      Dbuff.f[dirN   ] = &bufferFs[dirN   *buffmax];
-      Dbuff.f[dirS   ] = &bufferFs[dirS   *buffmax];
-      Dbuff.f[dirT   ] = &bufferFs[dirT   *buffmax];
-      Dbuff.f[dirB   ] = &bufferFs[dirB   *buffmax];
-      Dbuff.f[dirNE  ] = &bufferFs[dirNE  *buffmax];
-      Dbuff.f[dirSW  ] = &bufferFs[dirSW  *buffmax];
-      Dbuff.f[dirSE  ] = &bufferFs[dirSE  *buffmax];
-      Dbuff.f[dirNW  ] = &bufferFs[dirNW  *buffmax];
-      Dbuff.f[dirTE  ] = &bufferFs[dirTE  *buffmax];
-      Dbuff.f[dirBW  ] = &bufferFs[dirBW  *buffmax];
-      Dbuff.f[dirBE  ] = &bufferFs[dirBE  *buffmax];
-      Dbuff.f[dirTW  ] = &bufferFs[dirTW  *buffmax];
-      Dbuff.f[dirTN  ] = &bufferFs[dirTN  *buffmax];
-      Dbuff.f[dirBS  ] = &bufferFs[dirBS  *buffmax];
-      Dbuff.f[dirBN  ] = &bufferFs[dirBN  *buffmax];
-      Dbuff.f[dirTS  ] = &bufferFs[dirTS  *buffmax];
+      Dbuff.f[E   ] = &bufferFs[E   *buffmax];
+      Dbuff.f[W   ] = &bufferFs[W   *buffmax];
+      Dbuff.f[N   ] = &bufferFs[N   *buffmax];
+      Dbuff.f[S   ] = &bufferFs[S   *buffmax];
+      Dbuff.f[T   ] = &bufferFs[T   *buffmax];
+      Dbuff.f[B   ] = &bufferFs[B   *buffmax];
+      Dbuff.f[NE  ] = &bufferFs[NE  *buffmax];
+      Dbuff.f[SW  ] = &bufferFs[SW  *buffmax];
+      Dbuff.f[SE  ] = &bufferFs[SE  *buffmax];
+      Dbuff.f[NW  ] = &bufferFs[NW  *buffmax];
+      Dbuff.f[TE  ] = &bufferFs[TE  *buffmax];
+      Dbuff.f[BW  ] = &bufferFs[BW  *buffmax];
+      Dbuff.f[BE  ] = &bufferFs[BE  *buffmax];
+      Dbuff.f[TW  ] = &bufferFs[TW  *buffmax];
+      Dbuff.f[TN  ] = &bufferFs[TN  *buffmax];
+      Dbuff.f[BS  ] = &bufferFs[BS  *buffmax];
+      Dbuff.f[BN  ] = &bufferFs[BN  *buffmax];
+      Dbuff.f[TS  ] = &bufferFs[TS  *buffmax];
       Dbuff.f[dirREST] = &bufferFs[dirREST*buffmax];
-      Dbuff.f[dirTNE ] = &bufferFs[dirTNE *buffmax];
-      Dbuff.f[dirTSW ] = &bufferFs[dirTSW *buffmax];
-      Dbuff.f[dirTSE ] = &bufferFs[dirTSE *buffmax];
-      Dbuff.f[dirTNW ] = &bufferFs[dirTNW *buffmax];
-      Dbuff.f[dirBNE ] = &bufferFs[dirBNE *buffmax];
-      Dbuff.f[dirBSW ] = &bufferFs[dirBSW *buffmax];
-      Dbuff.f[dirBSE ] = &bufferFs[dirBSE *buffmax];
-      Dbuff.f[dirBNW ] = &bufferFs[dirBNW *buffmax];
+      Dbuff.f[TNE ] = &bufferFs[TNE *buffmax];
+      Dbuff.f[TSW ] = &bufferFs[TSW *buffmax];
+      Dbuff.f[TSE ] = &bufferFs[TSE *buffmax];
+      Dbuff.f[TNW ] = &bufferFs[TNW *buffmax];
+      Dbuff.f[BNE ] = &bufferFs[BNE *buffmax];
+      Dbuff.f[BSW ] = &bufferFs[BSW *buffmax];
+      Dbuff.f[BSE ] = &bufferFs[BSE *buffmax];
+      Dbuff.f[BNW ] = &bufferFs[BNW *buffmax];
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  //copy to buffer
-      (Dbuff.f[dirE   ])[k] = (D.f[dirE   ])[ke   ];
-      (Dbuff.f[dirW   ])[k] = (D.f[dirW   ])[kw   ];
-      (Dbuff.f[dirN   ])[k] = (D.f[dirN   ])[kn   ];
-      (Dbuff.f[dirS   ])[k] = (D.f[dirS   ])[ks   ];
-      (Dbuff.f[dirT   ])[k] = (D.f[dirT   ])[kt   ];
-      (Dbuff.f[dirB   ])[k] = (D.f[dirB   ])[kb   ];
-      (Dbuff.f[dirNE  ])[k] = (D.f[dirNE  ])[kne  ];
-      (Dbuff.f[dirSW  ])[k] = (D.f[dirSW  ])[ksw  ];
-      (Dbuff.f[dirSE  ])[k] = (D.f[dirSE  ])[kse  ];
-      (Dbuff.f[dirNW  ])[k] = (D.f[dirNW  ])[knw  ];
-      (Dbuff.f[dirTE  ])[k] = (D.f[dirTE  ])[kte  ];
-      (Dbuff.f[dirBW  ])[k] = (D.f[dirBW  ])[kbw  ];
-      (Dbuff.f[dirBE  ])[k] = (D.f[dirBE  ])[kbe  ];
-      (Dbuff.f[dirTW  ])[k] = (D.f[dirTW  ])[ktw  ];
-      (Dbuff.f[dirTN  ])[k] = (D.f[dirTN  ])[ktn  ];
-      (Dbuff.f[dirBS  ])[k] = (D.f[dirBS  ])[kbs  ];
-      (Dbuff.f[dirBN  ])[k] = (D.f[dirBN  ])[kbn  ];
-      (Dbuff.f[dirTS  ])[k] = (D.f[dirTS  ])[kts  ];
+      (Dbuff.f[E   ])[k] = (D.f[E   ])[ke   ];
+      (Dbuff.f[W   ])[k] = (D.f[W   ])[kw   ];
+      (Dbuff.f[N   ])[k] = (D.f[N   ])[kn   ];
+      (Dbuff.f[S   ])[k] = (D.f[S   ])[ks   ];
+      (Dbuff.f[T   ])[k] = (D.f[T   ])[kt   ];
+      (Dbuff.f[B   ])[k] = (D.f[B   ])[kb   ];
+      (Dbuff.f[NE  ])[k] = (D.f[NE  ])[kne  ];
+      (Dbuff.f[SW  ])[k] = (D.f[SW  ])[ksw  ];
+      (Dbuff.f[SE  ])[k] = (D.f[SE  ])[kse  ];
+      (Dbuff.f[NW  ])[k] = (D.f[NW  ])[knw  ];
+      (Dbuff.f[TE  ])[k] = (D.f[TE  ])[kte  ];
+      (Dbuff.f[BW  ])[k] = (D.f[BW  ])[kbw  ];
+      (Dbuff.f[BE  ])[k] = (D.f[BE  ])[kbe  ];
+      (Dbuff.f[TW  ])[k] = (D.f[TW  ])[ktw  ];
+      (Dbuff.f[TN  ])[k] = (D.f[TN  ])[ktn  ];
+      (Dbuff.f[BS  ])[k] = (D.f[BS  ])[kbs  ];
+      (Dbuff.f[BN  ])[k] = (D.f[BN  ])[kbn  ];
+      (Dbuff.f[TS  ])[k] = (D.f[TS  ])[kts  ];
       (Dbuff.f[dirREST])[k] = (D.f[dirREST])[kzero];
-      (Dbuff.f[dirTNE ])[k] = (D.f[dirTNE ])[ktne ];
-      (Dbuff.f[dirTSW ])[k] = (D.f[dirTSW ])[ktsw ];
-      (Dbuff.f[dirTSE ])[k] = (D.f[dirTSE ])[ktse ];
-      (Dbuff.f[dirTNW ])[k] = (D.f[dirTNW ])[ktnw ];
-      (Dbuff.f[dirBNE ])[k] = (D.f[dirBNE ])[kbne ];
-      (Dbuff.f[dirBSW ])[k] = (D.f[dirBSW ])[kbsw ];
-      (Dbuff.f[dirBSE ])[k] = (D.f[dirBSE ])[kbse ];
-      (Dbuff.f[dirBNW ])[k] = (D.f[dirBNW ])[kbnw ];
+      (Dbuff.f[TNE ])[k] = (D.f[TNE ])[ktne ];
+      (Dbuff.f[TSW ])[k] = (D.f[TSW ])[ktsw ];
+      (Dbuff.f[TSE ])[k] = (D.f[TSE ])[ktse ];
+      (Dbuff.f[TNW ])[k] = (D.f[TNW ])[ktnw ];
+      (Dbuff.f[BNE ])[k] = (D.f[BNE ])[kbne ];
+      (Dbuff.f[BSW ])[k] = (D.f[BSW ])[kbsw ];
+      (Dbuff.f[BSE ])[k] = (D.f[BSE ])[kbse ];
+      (Dbuff.f[BNW ])[k] = (D.f[BNW ])[kbnw ];
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -744,123 +744,123 @@ extern "C" __global__ void setRecvFsPre27(real* DD,
       Distributions27 D;
       if (isEvenTimestep==true)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  //set Pointer for Buffer Fs
       Distributions27 Dbuff;
-      Dbuff.f[dirE   ] = &bufferFs[dirE   *buffmax];
-      Dbuff.f[dirW   ] = &bufferFs[dirW   *buffmax];
-      Dbuff.f[dirN   ] = &bufferFs[dirN   *buffmax];
-      Dbuff.f[dirS   ] = &bufferFs[dirS   *buffmax];
-      Dbuff.f[dirT   ] = &bufferFs[dirT   *buffmax];
-      Dbuff.f[dirB   ] = &bufferFs[dirB   *buffmax];
-      Dbuff.f[dirNE  ] = &bufferFs[dirNE  *buffmax];
-      Dbuff.f[dirSW  ] = &bufferFs[dirSW  *buffmax];
-      Dbuff.f[dirSE  ] = &bufferFs[dirSE  *buffmax];
-      Dbuff.f[dirNW  ] = &bufferFs[dirNW  *buffmax];
-      Dbuff.f[dirTE  ] = &bufferFs[dirTE  *buffmax];
-      Dbuff.f[dirBW  ] = &bufferFs[dirBW  *buffmax];
-      Dbuff.f[dirBE  ] = &bufferFs[dirBE  *buffmax];
-      Dbuff.f[dirTW  ] = &bufferFs[dirTW  *buffmax];
-      Dbuff.f[dirTN  ] = &bufferFs[dirTN  *buffmax];
-      Dbuff.f[dirBS  ] = &bufferFs[dirBS  *buffmax];
-      Dbuff.f[dirBN  ] = &bufferFs[dirBN  *buffmax];
-      Dbuff.f[dirTS  ] = &bufferFs[dirTS  *buffmax];
+      Dbuff.f[E   ] = &bufferFs[E   *buffmax];
+      Dbuff.f[W   ] = &bufferFs[W   *buffmax];
+      Dbuff.f[N   ] = &bufferFs[N   *buffmax];
+      Dbuff.f[S   ] = &bufferFs[S   *buffmax];
+      Dbuff.f[T   ] = &bufferFs[T   *buffmax];
+      Dbuff.f[B   ] = &bufferFs[B   *buffmax];
+      Dbuff.f[NE  ] = &bufferFs[NE  *buffmax];
+      Dbuff.f[SW  ] = &bufferFs[SW  *buffmax];
+      Dbuff.f[SE  ] = &bufferFs[SE  *buffmax];
+      Dbuff.f[NW  ] = &bufferFs[NW  *buffmax];
+      Dbuff.f[TE  ] = &bufferFs[TE  *buffmax];
+      Dbuff.f[BW  ] = &bufferFs[BW  *buffmax];
+      Dbuff.f[BE  ] = &bufferFs[BE  *buffmax];
+      Dbuff.f[TW  ] = &bufferFs[TW  *buffmax];
+      Dbuff.f[TN  ] = &bufferFs[TN  *buffmax];
+      Dbuff.f[BS  ] = &bufferFs[BS  *buffmax];
+      Dbuff.f[BN  ] = &bufferFs[BN  *buffmax];
+      Dbuff.f[TS  ] = &bufferFs[TS  *buffmax];
       Dbuff.f[dirREST] = &bufferFs[dirREST*buffmax];
-      Dbuff.f[dirTNE ] = &bufferFs[dirTNE *buffmax];
-      Dbuff.f[dirTSW ] = &bufferFs[dirTSW *buffmax];
-      Dbuff.f[dirTSE ] = &bufferFs[dirTSE *buffmax];
-      Dbuff.f[dirTNW ] = &bufferFs[dirTNW *buffmax];
-      Dbuff.f[dirBNE ] = &bufferFs[dirBNE *buffmax];
-      Dbuff.f[dirBSW ] = &bufferFs[dirBSW *buffmax];
-      Dbuff.f[dirBSE ] = &bufferFs[dirBSE *buffmax];
-      Dbuff.f[dirBNW ] = &bufferFs[dirBNW *buffmax];
+      Dbuff.f[TNE ] = &bufferFs[TNE *buffmax];
+      Dbuff.f[TSW ] = &bufferFs[TSW *buffmax];
+      Dbuff.f[TSE ] = &bufferFs[TSE *buffmax];
+      Dbuff.f[TNW ] = &bufferFs[TNW *buffmax];
+      Dbuff.f[BNE ] = &bufferFs[BNE *buffmax];
+      Dbuff.f[BSW ] = &bufferFs[BSW *buffmax];
+      Dbuff.f[BSE ] = &bufferFs[BSE *buffmax];
+      Dbuff.f[BNW ] = &bufferFs[BNW *buffmax];
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  //copy from buffer
-      (D.f[dirE   ])[ke   ] = (Dbuff.f[dirE   ])[k];
-      (D.f[dirW   ])[kw   ] = (Dbuff.f[dirW   ])[k];
-      (D.f[dirN   ])[kn   ] = (Dbuff.f[dirN   ])[k];
-      (D.f[dirS   ])[ks   ] = (Dbuff.f[dirS   ])[k];
-      (D.f[dirT   ])[kt   ] = (Dbuff.f[dirT   ])[k];
-      (D.f[dirB   ])[kb   ] = (Dbuff.f[dirB   ])[k];
-      (D.f[dirNE  ])[kne  ] = (Dbuff.f[dirNE  ])[k];
-      (D.f[dirSW  ])[ksw  ] = (Dbuff.f[dirSW  ])[k];
-      (D.f[dirSE  ])[kse  ] = (Dbuff.f[dirSE  ])[k];
-      (D.f[dirNW  ])[knw  ] = (Dbuff.f[dirNW  ])[k];
-      (D.f[dirTE  ])[kte  ] = (Dbuff.f[dirTE  ])[k];
-      (D.f[dirBW  ])[kbw  ] = (Dbuff.f[dirBW  ])[k];
-      (D.f[dirBE  ])[kbe  ] = (Dbuff.f[dirBE  ])[k];
-      (D.f[dirTW  ])[ktw  ] = (Dbuff.f[dirTW  ])[k];
-      (D.f[dirTN  ])[ktn  ] = (Dbuff.f[dirTN  ])[k];
-      (D.f[dirBS  ])[kbs  ] = (Dbuff.f[dirBS  ])[k];
-      (D.f[dirBN  ])[kbn  ] = (Dbuff.f[dirBN  ])[k];
-      (D.f[dirTS  ])[kts  ] = (Dbuff.f[dirTS  ])[k];
+      (D.f[E   ])[ke   ] = (Dbuff.f[E   ])[k];
+      (D.f[W   ])[kw   ] = (Dbuff.f[W   ])[k];
+      (D.f[N   ])[kn   ] = (Dbuff.f[N   ])[k];
+      (D.f[S   ])[ks   ] = (Dbuff.f[S   ])[k];
+      (D.f[T   ])[kt   ] = (Dbuff.f[T   ])[k];
+      (D.f[B   ])[kb   ] = (Dbuff.f[B   ])[k];
+      (D.f[NE  ])[kne  ] = (Dbuff.f[NE  ])[k];
+      (D.f[SW  ])[ksw  ] = (Dbuff.f[SW  ])[k];
+      (D.f[SE  ])[kse  ] = (Dbuff.f[SE  ])[k];
+      (D.f[NW  ])[knw  ] = (Dbuff.f[NW  ])[k];
+      (D.f[TE  ])[kte  ] = (Dbuff.f[TE  ])[k];
+      (D.f[BW  ])[kbw  ] = (Dbuff.f[BW  ])[k];
+      (D.f[BE  ])[kbe  ] = (Dbuff.f[BE  ])[k];
+      (D.f[TW  ])[ktw  ] = (Dbuff.f[TW  ])[k];
+      (D.f[TN  ])[ktn  ] = (Dbuff.f[TN  ])[k];
+      (D.f[BS  ])[kbs  ] = (Dbuff.f[BS  ])[k];
+      (D.f[BN  ])[kbn  ] = (Dbuff.f[BN  ])[k];
+      (D.f[TS  ])[kts  ] = (Dbuff.f[TS  ])[k];
       (D.f[dirREST])[kzero] = (Dbuff.f[dirREST])[k];
-      (D.f[dirTNE ])[ktne ] = (Dbuff.f[dirTNE ])[k];
-      (D.f[dirTSW ])[ktsw ] = (Dbuff.f[dirTSW ])[k];
-      (D.f[dirTSE ])[ktse ] = (Dbuff.f[dirTSE ])[k];
-      (D.f[dirTNW ])[ktnw ] = (Dbuff.f[dirTNW ])[k];
-      (D.f[dirBNE ])[kbne ] = (Dbuff.f[dirBNE ])[k];
-      (D.f[dirBSW ])[kbsw ] = (Dbuff.f[dirBSW ])[k];
-      (D.f[dirBSE ])[kbse ] = (Dbuff.f[dirBSE ])[k];
-      (D.f[dirBNW ])[kbnw ] = (Dbuff.f[dirBNW ])[k];
+      (D.f[TNE ])[ktne ] = (Dbuff.f[TNE ])[k];
+      (D.f[TSW ])[ktsw ] = (Dbuff.f[TSW ])[k];
+      (D.f[TSE ])[ktse ] = (Dbuff.f[TSE ])[k];
+      (D.f[TNW ])[ktnw ] = (Dbuff.f[TNW ])[k];
+      (D.f[BNE ])[kbne ] = (Dbuff.f[BNE ])[k];
+      (D.f[BSW ])[kbsw ] = (Dbuff.f[BSW ])[k];
+      (D.f[BSE ])[kbse ] = (Dbuff.f[BSE ])[k];
+      (D.f[BNW ])[kbnw ] = (Dbuff.f[BNW ])[k];
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -930,39 +930,39 @@ extern "C" __global__ void getSendGsF3(
 		Distributions6 G;
 		if (isEvenTimestep)
 		{
-			G.g[dirE] = &G6[dirE   *size_Mat];
-			G.g[dirW] = &G6[dirW   *size_Mat];
-			G.g[dirN] = &G6[dirN   *size_Mat];
-			G.g[dirS] = &G6[dirS   *size_Mat];
-			G.g[dirT] = &G6[dirT   *size_Mat];
-			G.g[dirB] = &G6[dirB   *size_Mat];
+			G.g[E] = &G6[E   *size_Mat];
+			G.g[W] = &G6[W   *size_Mat];
+			G.g[N] = &G6[N   *size_Mat];
+			G.g[S] = &G6[S   *size_Mat];
+			G.g[T] = &G6[T   *size_Mat];
+			G.g[B] = &G6[B   *size_Mat];
 		}
 		else
 		{
-			G.g[dirW] = &G6[dirE   *size_Mat];
-			G.g[dirE] = &G6[dirW   *size_Mat];
-			G.g[dirS] = &G6[dirN   *size_Mat];
-			G.g[dirN] = &G6[dirS   *size_Mat];
-			G.g[dirB] = &G6[dirT   *size_Mat];
-			G.g[dirT] = &G6[dirB   *size_Mat];
+			G.g[W] = &G6[E   *size_Mat];
+			G.g[E] = &G6[W   *size_Mat];
+			G.g[S] = &G6[N   *size_Mat];
+			G.g[N] = &G6[S   *size_Mat];
+			G.g[B] = &G6[T   *size_Mat];
+			G.g[T] = &G6[B   *size_Mat];
 		}
 		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 		//set Pointer for Buffer Gs
 		Distributions6 Dbuff;
-		Dbuff.g[dirE] = &bufferGs[dirE   *buffmax];
-		Dbuff.g[dirW] = &bufferGs[dirW   *buffmax];
-		Dbuff.g[dirN] = &bufferGs[dirN   *buffmax];
-		Dbuff.g[dirS] = &bufferGs[dirS   *buffmax];
-		Dbuff.g[dirT] = &bufferGs[dirT   *buffmax];
-		Dbuff.g[dirB] = &bufferGs[dirB   *buffmax];
+		Dbuff.g[E] = &bufferGs[E   *buffmax];
+		Dbuff.g[W] = &bufferGs[W   *buffmax];
+		Dbuff.g[N] = &bufferGs[N   *buffmax];
+		Dbuff.g[S] = &bufferGs[S   *buffmax];
+		Dbuff.g[T] = &bufferGs[T   *buffmax];
+		Dbuff.g[B] = &bufferGs[B   *buffmax];
 		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 		//write Gs to buffer
-		(Dbuff.g[dirE])[k] = (G.g[dirW])[kw];
-		(Dbuff.g[dirW])[k] = (G.g[dirE])[kr];
-		(Dbuff.g[dirN])[k] = (G.g[dirS])[ks];
-		(Dbuff.g[dirS])[k] = (G.g[dirN])[kr];
-		(Dbuff.g[dirT])[k] = (G.g[dirB])[kb];
-		(Dbuff.g[dirB])[k] = (G.g[dirT])[kr];
+		(Dbuff.g[E])[k] = (G.g[W])[kw];
+		(Dbuff.g[W])[k] = (G.g[E])[kr];
+		(Dbuff.g[N])[k] = (G.g[S])[ks];
+		(Dbuff.g[S])[k] = (G.g[N])[kr];
+		(Dbuff.g[T])[k] = (G.g[B])[kb];
+		(Dbuff.g[B])[k] = (G.g[T])[kr];
 	}
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1033,39 +1033,39 @@ extern "C" __global__ void setRecvGsF3(
 		Distributions6 G;
 		if (isEvenTimestep)
 		{
-			G.g[dirE] = &G6[dirE   *size_Mat];
-			G.g[dirW] = &G6[dirW   *size_Mat];
-			G.g[dirN] = &G6[dirN   *size_Mat];
-			G.g[dirS] = &G6[dirS   *size_Mat];
-			G.g[dirT] = &G6[dirT   *size_Mat];
-			G.g[dirB] = &G6[dirB   *size_Mat];
+			G.g[E] = &G6[E   *size_Mat];
+			G.g[W] = &G6[W   *size_Mat];
+			G.g[N] = &G6[N   *size_Mat];
+			G.g[S] = &G6[S   *size_Mat];
+			G.g[T] = &G6[T   *size_Mat];
+			G.g[B] = &G6[B   *size_Mat];
 		}
 		else
 		{
-			G.g[dirW] = &G6[dirE   *size_Mat];
-			G.g[dirE] = &G6[dirW   *size_Mat];
-			G.g[dirS] = &G6[dirN   *size_Mat];
-			G.g[dirN] = &G6[dirS   *size_Mat];
-			G.g[dirB] = &G6[dirT   *size_Mat];
-			G.g[dirT] = &G6[dirB   *size_Mat];
+			G.g[W] = &G6[E   *size_Mat];
+			G.g[E] = &G6[W   *size_Mat];
+			G.g[S] = &G6[N   *size_Mat];
+			G.g[N] = &G6[S   *size_Mat];
+			G.g[B] = &G6[T   *size_Mat];
+			G.g[T] = &G6[B   *size_Mat];
 		}
 		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 		//set Pointer for Buffer Gs
 		Distributions6 Dbuff;
-		Dbuff.g[dirE] = &bufferGs[dirE   *buffmax];
-		Dbuff.g[dirW] = &bufferGs[dirW   *buffmax];
-		Dbuff.g[dirN] = &bufferGs[dirN   *buffmax];
-		Dbuff.g[dirS] = &bufferGs[dirS   *buffmax];
-		Dbuff.g[dirT] = &bufferGs[dirT   *buffmax];
-		Dbuff.g[dirB] = &bufferGs[dirB   *buffmax];
+		Dbuff.g[E] = &bufferGs[E   *buffmax];
+		Dbuff.g[W] = &bufferGs[W   *buffmax];
+		Dbuff.g[N] = &bufferGs[N   *buffmax];
+		Dbuff.g[S] = &bufferGs[S   *buffmax];
+		Dbuff.g[T] = &bufferGs[T   *buffmax];
+		Dbuff.g[B] = &bufferGs[B   *buffmax];
 		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 		//write buffer to Gs
-		(G.g[dirW])[kw] = (Dbuff.g[dirE])[k];
-		(G.g[dirE])[kr] = (Dbuff.g[dirW])[k];
-		(G.g[dirS])[ks] = (Dbuff.g[dirN])[k];
-		(G.g[dirN])[kr] = (Dbuff.g[dirS])[k];
-		(G.g[dirB])[kb] = (Dbuff.g[dirT])[k];
-		(G.g[dirT])[kr] = (Dbuff.g[dirB])[k];
+		(G.g[W])[kw] = (Dbuff.g[E])[k];
+		(G.g[E])[kr] = (Dbuff.g[W])[k];
+		(G.g[S])[ks] = (Dbuff.g[N])[k];
+		(G.g[N])[kr] = (Dbuff.g[S])[k];
+		(G.g[B])[kb] = (Dbuff.g[T])[k];
+		(G.g[T])[kr] = (Dbuff.g[B])[k];
 	}
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Init27.cu b/src/gpu/VirtualFluids_GPU/GPU/Init27.cu
index 37b37a8f5..f44b2bcba 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Init27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Init27.cu
@@ -23,33 +23,33 @@ extern "C" __global__ void LBInit27( int myid,
                                      int maxlev)
 {
    Distributions27 D;
-   D.f[dirE   ] = &DD[dirE   *size_Mat];
-   D.f[dirW   ] = &DD[dirW   *size_Mat];
-   D.f[dirN   ] = &DD[dirN   *size_Mat];
-   D.f[dirS   ] = &DD[dirS   *size_Mat];
-   D.f[dirT   ] = &DD[dirT   *size_Mat];
-   D.f[dirB   ] = &DD[dirB   *size_Mat];
-   D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-   D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-   D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-   D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-   D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-   D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-   D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-   D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-   D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-   D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-   D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-   D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+   D.f[E   ] = &DD[E   *size_Mat];
+   D.f[W   ] = &DD[W   *size_Mat];
+   D.f[N   ] = &DD[N   *size_Mat];
+   D.f[S   ] = &DD[S   *size_Mat];
+   D.f[T   ] = &DD[T   *size_Mat];
+   D.f[B   ] = &DD[B   *size_Mat];
+   D.f[NE  ] = &DD[NE  *size_Mat];
+   D.f[SW  ] = &DD[SW  *size_Mat];
+   D.f[SE  ] = &DD[SE  *size_Mat];
+   D.f[NW  ] = &DD[NW  *size_Mat];
+   D.f[TE  ] = &DD[TE  *size_Mat];
+   D.f[BW  ] = &DD[BW  *size_Mat];
+   D.f[BE  ] = &DD[BE  *size_Mat];
+   D.f[TW  ] = &DD[TW  *size_Mat];
+   D.f[TN  ] = &DD[TN  *size_Mat];
+   D.f[BS  ] = &DD[BS  *size_Mat];
+   D.f[BN  ] = &DD[BN  *size_Mat];
+   D.f[TS  ] = &DD[TS  *size_Mat];
    D.f[dirREST] = &DD[dirREST*size_Mat];
-   D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-   D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-   D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-   D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-   D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-   D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-   D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-   D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+   D.f[TNE ] = &DD[TNE *size_Mat];
+   D.f[TSW ] = &DD[TSW *size_Mat];
+   D.f[TSE ] = &DD[TSE *size_Mat];
+   D.f[TNW ] = &DD[TNW *size_Mat];
+   D.f[BNE ] = &DD[BNE *size_Mat];
+   D.f[BSW ] = &DD[BSW *size_Mat];
+   D.f[BSE ] = &DD[BSE *size_Mat];
+   D.f[BNW ] = &DD[BNW *size_Mat];
    ////////////////////////////////////////////////////////////////////////////////
    unsigned int  k;                   // Zugriff auf arrays im device
    //
@@ -141,32 +141,32 @@ extern "C" __global__ void LBInit27( int myid,
    real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
    (D.f[dirREST])[kzero] =   c8o27* (drho-cu_sq);
-   (D.f[dirE   ])[ke   ] =   c2o27* (drho+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
-   (D.f[dirW   ])[kw   ] =   c2o27* (drho+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
-   (D.f[dirN   ])[kn   ] =   c2o27* (drho+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
-   (D.f[dirS   ])[ks   ] =   c2o27* (drho+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
-   (D.f[dirT   ])[kt   ] =   c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
-   (D.f[dirB   ])[kb   ] =   c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
-   (D.f[dirNE  ])[kne  ] =   c1o54* (drho+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
-   (D.f[dirSW  ])[ksw  ] =   c1o54* (drho+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
-   (D.f[dirSE  ])[kse  ] =   c1o54* (drho+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
-   (D.f[dirNW  ])[knw  ] =   c1o54* (drho+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
-   (D.f[dirTE  ])[kte  ] =   c1o54* (drho+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
-   (D.f[dirBW  ])[kbw  ] =   c1o54* (drho+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
-   (D.f[dirBE  ])[kbe  ] =   c1o54* (drho+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
-   (D.f[dirTW  ])[ktw  ] =   c1o54* (drho+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
-   (D.f[dirTN  ])[ktn  ] =   c1o54* (drho+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
-   (D.f[dirBS  ])[kbs  ] =   c1o54* (drho+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
-   (D.f[dirBN  ])[kbn  ] =   c1o54* (drho+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
-   (D.f[dirTS  ])[kts  ] =   c1o54* (drho+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
-   (D.f[dirTNE ])[ktne ] =   c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
-   (D.f[dirBSW ])[kbsw ] =   c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
-   (D.f[dirBNE ])[kbne ] =   c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
-   (D.f[dirTSW ])[ktsw ] =   c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
-   (D.f[dirTSE ])[ktse ] =   c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
-   (D.f[dirBNW ])[kbnw ] =   c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
-   (D.f[dirBSE ])[kbse ] =   c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
-   (D.f[dirTNW ])[ktnw ] =   c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
+   (D.f[E   ])[ke   ] =   c2o27* (drho+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
+   (D.f[W   ])[kw   ] =   c2o27* (drho+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
+   (D.f[N   ])[kn   ] =   c2o27* (drho+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
+   (D.f[S   ])[ks   ] =   c2o27* (drho+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
+   (D.f[T   ])[kt   ] =   c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
+   (D.f[B   ])[kb   ] =   c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
+   (D.f[NE  ])[kne  ] =   c1o54* (drho+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
+   (D.f[SW  ])[ksw  ] =   c1o54* (drho+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
+   (D.f[SE  ])[kse  ] =   c1o54* (drho+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
+   (D.f[NW  ])[knw  ] =   c1o54* (drho+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
+   (D.f[TE  ])[kte  ] =   c1o54* (drho+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
+   (D.f[BW  ])[kbw  ] =   c1o54* (drho+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
+   (D.f[BE  ])[kbe  ] =   c1o54* (drho+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
+   (D.f[TW  ])[ktw  ] =   c1o54* (drho+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
+   (D.f[TN  ])[ktn  ] =   c1o54* (drho+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
+   (D.f[BS  ])[kbs  ] =   c1o54* (drho+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
+   (D.f[BN  ])[kbn  ] =   c1o54* (drho+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
+   (D.f[TS  ])[kts  ] =   c1o54* (drho+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
+   (D.f[TNE ])[ktne ] =   c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
+   (D.f[BSW ])[kbsw ] =   c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
+   (D.f[BNE ])[kbne ] =   c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
+   (D.f[TSW ])[ktsw ] =   c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
+   (D.f[TSE ])[ktse ] =   c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
+   (D.f[BNW ])[kbnw ] =   c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
+   (D.f[BSE ])[kbse ] =   c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
+   (D.f[TNW ])[ktnw ] =   c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
 
 }
 ////////////////////////////////////////////////////////////////////////////////
@@ -217,63 +217,63 @@ extern "C" __global__ void LBInitNonEqPartSP27( unsigned int* neighborX,
             Distributions27 D;
             if (EvenOrOdd==true)
             {
-                D.f[dirE   ] = &DD[dirE   *size_Mat];
-                D.f[dirW   ] = &DD[dirW   *size_Mat];
-                D.f[dirN   ] = &DD[dirN   *size_Mat];
-                D.f[dirS   ] = &DD[dirS   *size_Mat];
-                D.f[dirT   ] = &DD[dirT   *size_Mat];
-                D.f[dirB   ] = &DD[dirB   *size_Mat];
-                D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-                D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-                D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-                D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-                D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-                D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-                D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-                D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-                D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-                D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-                D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-                D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+                D.f[E   ] = &DD[E   *size_Mat];
+                D.f[W   ] = &DD[W   *size_Mat];
+                D.f[N   ] = &DD[N   *size_Mat];
+                D.f[S   ] = &DD[S   *size_Mat];
+                D.f[T   ] = &DD[T   *size_Mat];
+                D.f[B   ] = &DD[B   *size_Mat];
+                D.f[NE  ] = &DD[NE  *size_Mat];
+                D.f[SW  ] = &DD[SW  *size_Mat];
+                D.f[SE  ] = &DD[SE  *size_Mat];
+                D.f[NW  ] = &DD[NW  *size_Mat];
+                D.f[TE  ] = &DD[TE  *size_Mat];
+                D.f[BW  ] = &DD[BW  *size_Mat];
+                D.f[BE  ] = &DD[BE  *size_Mat];
+                D.f[TW  ] = &DD[TW  *size_Mat];
+                D.f[TN  ] = &DD[TN  *size_Mat];
+                D.f[BS  ] = &DD[BS  *size_Mat];
+                D.f[BN  ] = &DD[BN  *size_Mat];
+                D.f[TS  ] = &DD[TS  *size_Mat];
                 D.f[dirREST] = &DD[dirREST*size_Mat];
-                D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-                D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-                D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-                D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-                D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-                D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-                D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-                D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+                D.f[TNE ] = &DD[TNE *size_Mat];
+                D.f[TSW ] = &DD[TSW *size_Mat];
+                D.f[TSE ] = &DD[TSE *size_Mat];
+                D.f[TNW ] = &DD[TNW *size_Mat];
+                D.f[BNE ] = &DD[BNE *size_Mat];
+                D.f[BSW ] = &DD[BSW *size_Mat];
+                D.f[BSE ] = &DD[BSE *size_Mat];
+                D.f[BNW ] = &DD[BNW *size_Mat];
             }
             else
             {
-                D.f[dirW   ] = &DD[dirE   *size_Mat];
-                D.f[dirE   ] = &DD[dirW   *size_Mat];
-                D.f[dirS   ] = &DD[dirN   *size_Mat];
-                D.f[dirN   ] = &DD[dirS   *size_Mat];
-                D.f[dirB   ] = &DD[dirT   *size_Mat];
-                D.f[dirT   ] = &DD[dirB   *size_Mat];
-                D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-                D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-                D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-                D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-                D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-                D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-                D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-                D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-                D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-                D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-                D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-                D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+                D.f[W   ] = &DD[E   *size_Mat];
+                D.f[E   ] = &DD[W   *size_Mat];
+                D.f[S   ] = &DD[N   *size_Mat];
+                D.f[N   ] = &DD[S   *size_Mat];
+                D.f[B   ] = &DD[T   *size_Mat];
+                D.f[T   ] = &DD[B   *size_Mat];
+                D.f[SW  ] = &DD[NE  *size_Mat];
+                D.f[NE  ] = &DD[SW  *size_Mat];
+                D.f[NW  ] = &DD[SE  *size_Mat];
+                D.f[SE  ] = &DD[NW  *size_Mat];
+                D.f[BW  ] = &DD[TE  *size_Mat];
+                D.f[TE  ] = &DD[BW  *size_Mat];
+                D.f[TW  ] = &DD[BE  *size_Mat];
+                D.f[BE  ] = &DD[TW  *size_Mat];
+                D.f[BS  ] = &DD[TN  *size_Mat];
+                D.f[TN  ] = &DD[BS  *size_Mat];
+                D.f[TS  ] = &DD[BN  *size_Mat];
+                D.f[BN  ] = &DD[TS  *size_Mat];
                 D.f[dirREST] = &DD[dirREST*size_Mat];
-                D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-                D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-                D.f[dirBNW ] = &DD[dirTSE *size_Mat];
-                D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-                D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-                D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-                D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-                D.f[dirTSE ] = &DD[dirBNW *size_Mat];
+                D.f[BSW ] = &DD[TNE *size_Mat];
+                D.f[BNE ] = &DD[TSW *size_Mat];
+                D.f[BNW ] = &DD[TSE *size_Mat];
+                D.f[BSE ] = &DD[TNW *size_Mat];
+                D.f[TSW ] = &DD[BNE *size_Mat];
+                D.f[TNE ] = &DD[BSW *size_Mat];
+                D.f[TNW ] = &DD[BSE *size_Mat];
+                D.f[TSE ] = &DD[BNW *size_Mat];
             }
             //////////////////////////////////////////////////////////////////////////
             real drho = rho[k];//0.0f;//
@@ -396,62 +396,62 @@ extern "C" __global__ void LBInitNonEqPartSP27( unsigned int* neighborX,
             real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
             
             (D.f[dirREST])[kzero] =   c8o27* (drho-cu_sq);
-            (D.f[dirE   ])[ke   ] =   c2o27* (drho+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
-            (D.f[dirW   ])[kw   ] =   c2o27* (drho+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
-            (D.f[dirN   ])[kn   ] =   c2o27* (drho+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
-            (D.f[dirS   ])[ks   ] =   c2o27* (drho+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
-            (D.f[dirT   ])[kt   ] =   c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
-            (D.f[dirB   ])[kb   ] =   c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
-            (D.f[dirNE  ])[kne  ] =   c1o54* (drho+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
-            (D.f[dirSW  ])[ksw  ] =   c1o54* (drho+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
-            (D.f[dirSE  ])[kse  ] =   c1o54* (drho+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
-            (D.f[dirNW  ])[knw  ] =   c1o54* (drho+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
-            (D.f[dirTE  ])[kte  ] =   c1o54* (drho+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
-            (D.f[dirBW  ])[kbw  ] =   c1o54* (drho+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
-            (D.f[dirBE  ])[kbe  ] =   c1o54* (drho+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
-            (D.f[dirTW  ])[ktw  ] =   c1o54* (drho+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
-            (D.f[dirTN  ])[ktn  ] =   c1o54* (drho+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
-            (D.f[dirBS  ])[kbs  ] =   c1o54* (drho+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
-            (D.f[dirBN  ])[kbn  ] =   c1o54* (drho+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
-            (D.f[dirTS  ])[kts  ] =   c1o54* (drho+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
-            (D.f[dirTNE ])[ktne ] =   c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
-            (D.f[dirBSW ])[kbsw ] =   c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
-            (D.f[dirBNE ])[kbne ] =   c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
-            (D.f[dirTSW ])[ktsw ] =   c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
-            (D.f[dirTSE ])[ktse ] =   c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
-            (D.f[dirBNW ])[kbnw ] =   c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
-            (D.f[dirBSE ])[kbse ] =   c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
-            (D.f[dirTNW ])[ktnw ] =   c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
+            (D.f[E   ])[ke   ] =   c2o27* (drho+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
+            (D.f[W   ])[kw   ] =   c2o27* (drho+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
+            (D.f[N   ])[kn   ] =   c2o27* (drho+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
+            (D.f[S   ])[ks   ] =   c2o27* (drho+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
+            (D.f[T   ])[kt   ] =   c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
+            (D.f[B   ])[kb   ] =   c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
+            (D.f[NE  ])[kne  ] =   c1o54* (drho+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
+            (D.f[SW  ])[ksw  ] =   c1o54* (drho+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
+            (D.f[SE  ])[kse  ] =   c1o54* (drho+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
+            (D.f[NW  ])[knw  ] =   c1o54* (drho+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
+            (D.f[TE  ])[kte  ] =   c1o54* (drho+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
+            (D.f[BW  ])[kbw  ] =   c1o54* (drho+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
+            (D.f[BE  ])[kbe  ] =   c1o54* (drho+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
+            (D.f[TW  ])[ktw  ] =   c1o54* (drho+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
+            (D.f[TN  ])[ktn  ] =   c1o54* (drho+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
+            (D.f[BS  ])[kbs  ] =   c1o54* (drho+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
+            (D.f[BN  ])[kbn  ] =   c1o54* (drho+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
+            (D.f[TS  ])[kts  ] =   c1o54* (drho+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
+            (D.f[TNE ])[ktne ] =   c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
+            (D.f[BSW ])[kbsw ] =   c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
+            (D.f[BNE ])[kbne ] =   c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
+            (D.f[TSW ])[ktsw ] =   c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
+            (D.f[TSE ])[ktse ] =   c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
+            (D.f[BNW ])[kbnw ] =   c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
+            (D.f[BSE ])[kbse ] =   c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
+            (D.f[TNW ])[ktnw ] =   c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
 
             //////////////////////////////////////////////////////////////////////////
 
             (D.f[dirREST])[kzero] += f_ZERO;
-            (D.f[dirE   ])[ke   ] += f_E   ;
-            (D.f[dirW   ])[kw   ] += f_E   ;
-            (D.f[dirN   ])[kn   ] += f_N   ;
-            (D.f[dirS   ])[ks   ] += f_N   ;
-            (D.f[dirT   ])[kt   ] += f_T   ;
-            (D.f[dirB   ])[kb   ] += f_T   ;
-            (D.f[dirNE  ])[kne  ] += f_NE  ;
-            (D.f[dirSW  ])[ksw  ] += f_NE  ;
-            (D.f[dirSE  ])[kse  ] += f_SE  ;
-            (D.f[dirNW  ])[knw  ] += f_SE  ;
-            (D.f[dirTE  ])[kte  ] += f_TE  ;
-            (D.f[dirBW  ])[kbw  ] += f_TE  ;
-            (D.f[dirBE  ])[kbe  ] += f_BE  ;
-            (D.f[dirTW  ])[ktw  ] += f_BE  ;
-            (D.f[dirTN  ])[ktn  ] += f_TN  ;
-            (D.f[dirBS  ])[kbs  ] += f_TN  ;
-            (D.f[dirBN  ])[kbn  ] += f_BN  ;
-            (D.f[dirTS  ])[kts  ] += f_BN  ;
-            (D.f[dirTNE ])[ktne ] += f_TNE ;
-            (D.f[dirBSW ])[kbsw ] += f_TNE ;
-            (D.f[dirBNE ])[kbne ] += f_TSW ;
-            (D.f[dirTSW ])[ktsw ] += f_TSW ;
-            (D.f[dirTSE ])[ktse ] += f_TSE ;
-            (D.f[dirBNW ])[kbnw ] += f_TSE ;
-            (D.f[dirBSE ])[kbse ] += f_TNW ;
-            (D.f[dirTNW ])[ktnw ] += f_TNW ;
+            (D.f[E   ])[ke   ] += f_E   ;
+            (D.f[W   ])[kw   ] += f_E   ;
+            (D.f[N   ])[kn   ] += f_N   ;
+            (D.f[S   ])[ks   ] += f_N   ;
+            (D.f[T   ])[kt   ] += f_T   ;
+            (D.f[B   ])[kb   ] += f_T   ;
+            (D.f[NE  ])[kne  ] += f_NE  ;
+            (D.f[SW  ])[ksw  ] += f_NE  ;
+            (D.f[SE  ])[kse  ] += f_SE  ;
+            (D.f[NW  ])[knw  ] += f_SE  ;
+            (D.f[TE  ])[kte  ] += f_TE  ;
+            (D.f[BW  ])[kbw  ] += f_TE  ;
+            (D.f[BE  ])[kbe  ] += f_BE  ;
+            (D.f[TW  ])[ktw  ] += f_BE  ;
+            (D.f[TN  ])[ktn  ] += f_TN  ;
+            (D.f[BS  ])[kbs  ] += f_TN  ;
+            (D.f[BN  ])[kbn  ] += f_BN  ;
+            (D.f[TS  ])[kts  ] += f_BN  ;
+            (D.f[TNE ])[ktne ] += f_TNE ;
+            (D.f[BSW ])[kbsw ] += f_TNE ;
+            (D.f[BNE ])[kbne ] += f_TSW ;
+            (D.f[TSW ])[ktsw ] += f_TSW ;
+            (D.f[TSE ])[ktse ] += f_TSE ;
+            (D.f[BNW ])[kbnw ] += f_TSE ;
+            (D.f[BSE ])[kbse ] += f_TNW ;
+            (D.f[TNW ])[ktnw ] += f_TNW ;
 
             //////////////////////////////////////////////////////////////////////////
         }
diff --git a/src/gpu/VirtualFluids_GPU/GPU/InitAdvectionDiffusion27.cu b/src/gpu/VirtualFluids_GPU/GPU/InitAdvectionDiffusion27.cu
index c1647bfe9..835706e76 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/InitAdvectionDiffusion27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/InitAdvectionDiffusion27.cu
@@ -77,63 +77,63 @@ extern "C" __global__ void InitAD27(
 		Distributions27 distAD;
 		if (isEvenTimestep)
 		{
-			distAD.f[dirE   ] = &distributionsAD[dirE   *size_Mat];
-			distAD.f[dirW   ] = &distributionsAD[dirW   *size_Mat];
-			distAD.f[dirN   ] = &distributionsAD[dirN   *size_Mat];
-			distAD.f[dirS   ] = &distributionsAD[dirS   *size_Mat];
-			distAD.f[dirT   ] = &distributionsAD[dirT   *size_Mat];
-			distAD.f[dirB   ] = &distributionsAD[dirB   *size_Mat];
-			distAD.f[dirNE  ] = &distributionsAD[dirNE  *size_Mat];
-			distAD.f[dirSW  ] = &distributionsAD[dirSW  *size_Mat];
-			distAD.f[dirSE  ] = &distributionsAD[dirSE  *size_Mat];
-			distAD.f[dirNW  ] = &distributionsAD[dirNW  *size_Mat];
-			distAD.f[dirTE  ] = &distributionsAD[dirTE  *size_Mat];
-			distAD.f[dirBW  ] = &distributionsAD[dirBW  *size_Mat];
-			distAD.f[dirBE  ] = &distributionsAD[dirBE  *size_Mat];
-			distAD.f[dirTW  ] = &distributionsAD[dirTW  *size_Mat];
-			distAD.f[dirTN  ] = &distributionsAD[dirTN  *size_Mat];
-			distAD.f[dirBS  ] = &distributionsAD[dirBS  *size_Mat];
-			distAD.f[dirBN  ] = &distributionsAD[dirBN  *size_Mat];
-			distAD.f[dirTS  ] = &distributionsAD[dirTS  *size_Mat];
+			distAD.f[E   ] = &distributionsAD[E   *size_Mat];
+			distAD.f[W   ] = &distributionsAD[W   *size_Mat];
+			distAD.f[N   ] = &distributionsAD[N   *size_Mat];
+			distAD.f[S   ] = &distributionsAD[S   *size_Mat];
+			distAD.f[T   ] = &distributionsAD[T   *size_Mat];
+			distAD.f[B   ] = &distributionsAD[B   *size_Mat];
+			distAD.f[NE  ] = &distributionsAD[NE  *size_Mat];
+			distAD.f[SW  ] = &distributionsAD[SW  *size_Mat];
+			distAD.f[SE  ] = &distributionsAD[SE  *size_Mat];
+			distAD.f[NW  ] = &distributionsAD[NW  *size_Mat];
+			distAD.f[TE  ] = &distributionsAD[TE  *size_Mat];
+			distAD.f[BW  ] = &distributionsAD[BW  *size_Mat];
+			distAD.f[BE  ] = &distributionsAD[BE  *size_Mat];
+			distAD.f[TW  ] = &distributionsAD[TW  *size_Mat];
+			distAD.f[TN  ] = &distributionsAD[TN  *size_Mat];
+			distAD.f[BS  ] = &distributionsAD[BS  *size_Mat];
+			distAD.f[BN  ] = &distributionsAD[BN  *size_Mat];
+			distAD.f[TS  ] = &distributionsAD[TS  *size_Mat];
 			distAD.f[dirREST] = &distributionsAD[dirREST*size_Mat];
-			distAD.f[dirTNE ] = &distributionsAD[dirTNE *size_Mat];
-			distAD.f[dirTSW ] = &distributionsAD[dirTSW *size_Mat];
-			distAD.f[dirTSE ] = &distributionsAD[dirTSE *size_Mat];
-			distAD.f[dirTNW ] = &distributionsAD[dirTNW *size_Mat];
-			distAD.f[dirBNE ] = &distributionsAD[dirBNE *size_Mat];
-			distAD.f[dirBSW ] = &distributionsAD[dirBSW *size_Mat];
-			distAD.f[dirBSE ] = &distributionsAD[dirBSE *size_Mat];
-			distAD.f[dirBNW ] = &distributionsAD[dirBNW *size_Mat];
+			distAD.f[TNE ] = &distributionsAD[TNE *size_Mat];
+			distAD.f[TSW ] = &distributionsAD[TSW *size_Mat];
+			distAD.f[TSE ] = &distributionsAD[TSE *size_Mat];
+			distAD.f[TNW ] = &distributionsAD[TNW *size_Mat];
+			distAD.f[BNE ] = &distributionsAD[BNE *size_Mat];
+			distAD.f[BSW ] = &distributionsAD[BSW *size_Mat];
+			distAD.f[BSE ] = &distributionsAD[BSE *size_Mat];
+			distAD.f[BNW ] = &distributionsAD[BNW *size_Mat];
 		}
 		else
 		{
-			distAD.f[dirW   ] = &distributionsAD[dirE   *size_Mat];
-			distAD.f[dirE   ] = &distributionsAD[dirW   *size_Mat];
-			distAD.f[dirS   ] = &distributionsAD[dirN   *size_Mat];
-			distAD.f[dirN   ] = &distributionsAD[dirS   *size_Mat];
-			distAD.f[dirB   ] = &distributionsAD[dirT   *size_Mat];
-			distAD.f[dirT   ] = &distributionsAD[dirB   *size_Mat];
-			distAD.f[dirSW  ] = &distributionsAD[dirNE  *size_Mat];
-			distAD.f[dirNE  ] = &distributionsAD[dirSW  *size_Mat];
-			distAD.f[dirNW  ] = &distributionsAD[dirSE  *size_Mat];
-			distAD.f[dirSE  ] = &distributionsAD[dirNW  *size_Mat];
-			distAD.f[dirBW  ] = &distributionsAD[dirTE  *size_Mat];
-			distAD.f[dirTE  ] = &distributionsAD[dirBW  *size_Mat];
-			distAD.f[dirTW  ] = &distributionsAD[dirBE  *size_Mat];
-			distAD.f[dirBE  ] = &distributionsAD[dirTW  *size_Mat];
-			distAD.f[dirBS  ] = &distributionsAD[dirTN  *size_Mat];
-			distAD.f[dirTN  ] = &distributionsAD[dirBS  *size_Mat];
-			distAD.f[dirTS  ] = &distributionsAD[dirBN  *size_Mat];
-			distAD.f[dirBN  ] = &distributionsAD[dirTS  *size_Mat];
+			distAD.f[W   ] = &distributionsAD[E   *size_Mat];
+			distAD.f[E   ] = &distributionsAD[W   *size_Mat];
+			distAD.f[S   ] = &distributionsAD[N   *size_Mat];
+			distAD.f[N   ] = &distributionsAD[S   *size_Mat];
+			distAD.f[B   ] = &distributionsAD[T   *size_Mat];
+			distAD.f[T   ] = &distributionsAD[B   *size_Mat];
+			distAD.f[SW  ] = &distributionsAD[NE  *size_Mat];
+			distAD.f[NE  ] = &distributionsAD[SW  *size_Mat];
+			distAD.f[NW  ] = &distributionsAD[SE  *size_Mat];
+			distAD.f[SE  ] = &distributionsAD[NW  *size_Mat];
+			distAD.f[BW  ] = &distributionsAD[TE  *size_Mat];
+			distAD.f[TE  ] = &distributionsAD[BW  *size_Mat];
+			distAD.f[TW  ] = &distributionsAD[BE  *size_Mat];
+			distAD.f[BE  ] = &distributionsAD[TW  *size_Mat];
+			distAD.f[BS  ] = &distributionsAD[TN  *size_Mat];
+			distAD.f[TN  ] = &distributionsAD[BS  *size_Mat];
+			distAD.f[TS  ] = &distributionsAD[BN  *size_Mat];
+			distAD.f[BN  ] = &distributionsAD[TS  *size_Mat];
 			distAD.f[dirREST] = &distributionsAD[dirREST*size_Mat];
-			distAD.f[dirBSW ] = &distributionsAD[dirTNE *size_Mat];
-			distAD.f[dirBNE ] = &distributionsAD[dirTSW *size_Mat];
-			distAD.f[dirBNW ] = &distributionsAD[dirTSE *size_Mat];
-			distAD.f[dirBSE ] = &distributionsAD[dirTNW *size_Mat];
-			distAD.f[dirTSW ] = &distributionsAD[dirBNE *size_Mat];
-			distAD.f[dirTNE ] = &distributionsAD[dirBSW *size_Mat];
-			distAD.f[dirTNW ] = &distributionsAD[dirBSE *size_Mat];
-			distAD.f[dirTSE ] = &distributionsAD[dirBNW *size_Mat];
+			distAD.f[BSW ] = &distributionsAD[TNE *size_Mat];
+			distAD.f[BNE ] = &distributionsAD[TSW *size_Mat];
+			distAD.f[BNW ] = &distributionsAD[TSE *size_Mat];
+			distAD.f[BSE ] = &distributionsAD[TNW *size_Mat];
+			distAD.f[TSW ] = &distributionsAD[BNE *size_Mat];
+			distAD.f[TNE ] = &distributionsAD[BSW *size_Mat];
+			distAD.f[TNW ] = &distributionsAD[BSE *size_Mat];
+			distAD.f[TSE ] = &distributionsAD[BNW *size_Mat];
 		}
 		//////////////////////////////////////////////////////////////////////////
 		//! - Set local velocities and concetration
@@ -178,32 +178,32 @@ extern "C" __global__ void InitAD27(
 		real cu_sq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3);
 
 		(distAD.f[dirREST])[kzero] = c8o27  * conc * (c1o1 - cu_sq);
-		(distAD.f[dirE   ])[ke   ] = c2o27  * conc * (c1o1 + c3o1 * ( vx1            ) + c9o2 * ( vx1            ) * ( vx1            ) - cu_sq);
-		(distAD.f[dirW   ])[kw   ] = c2o27  * conc * (c1o1 + c3o1 * (-vx1            ) + c9o2 * (-vx1            ) * (-vx1            ) - cu_sq);
-		(distAD.f[dirN   ])[kn   ] = c2o27  * conc * (c1o1 + c3o1 * (       vx2      ) + c9o2 * (       vx2      ) * (       vx2      ) - cu_sq);
-		(distAD.f[dirS   ])[ks   ] = c2o27  * conc * (c1o1 + c3o1 * (     - vx2      ) + c9o2 * (     - vx2      ) * (     - vx2      ) - cu_sq);
-		(distAD.f[dirT   ])[kt   ] = c2o27  * conc * (c1o1 + c3o1 * (             vx3) + c9o2 * (             vx3) * (             vx3) - cu_sq);
-		(distAD.f[dirB   ])[kb   ] = c2o27  * conc * (c1o1 + c3o1 * (           - vx3) + c9o2 * (           - vx3) * (           - vx3) - cu_sq);
-		(distAD.f[dirNE  ])[kne  ] = c1o54  * conc * (c1o1 + c3o1 * ( vx1 + vx2      ) + c9o2 * ( vx1 + vx2      ) * ( vx1 + vx2      ) - cu_sq);
-		(distAD.f[dirSW  ])[ksw  ] = c1o54  * conc * (c1o1 + c3o1 * (-vx1 - vx2      ) + c9o2 * (-vx1 - vx2      ) * (-vx1 - vx2      ) - cu_sq);
-		(distAD.f[dirSE  ])[kse  ] = c1o54  * conc * (c1o1 + c3o1 * ( vx1 - vx2      ) + c9o2 * ( vx1 - vx2      ) * ( vx1 - vx2      ) - cu_sq);
-		(distAD.f[dirNW  ])[knw  ] = c1o54  * conc * (c1o1 + c3o1 * (-vx1 + vx2      ) + c9o2 * (-vx1 + vx2      ) * (-vx1 + vx2      ) - cu_sq);
-		(distAD.f[dirTE  ])[kte  ] = c1o54  * conc * (c1o1 + c3o1 * ( vx1       + vx3) + c9o2 * ( vx1       + vx3) * ( vx1       + vx3) - cu_sq);
-		(distAD.f[dirBW  ])[kbw  ] = c1o54  * conc * (c1o1 + c3o1 * (-vx1       - vx3) + c9o2 * (-vx1       - vx3) * (-vx1       - vx3) - cu_sq);
-		(distAD.f[dirBE  ])[kbe  ] = c1o54  * conc * (c1o1 + c3o1 * ( vx1       - vx3) + c9o2 * ( vx1       - vx3) * ( vx1       - vx3) - cu_sq);
-		(distAD.f[dirTW  ])[ktw  ] = c1o54  * conc * (c1o1 + c3o1 * (-vx1       + vx3) + c9o2 * (-vx1       + vx3) * (-vx1       + vx3) - cu_sq);
-		(distAD.f[dirTN  ])[ktn  ] = c1o54  * conc * (c1o1 + c3o1 * (       vx2 + vx3) + c9o2 * (       vx2 + vx3) * (       vx2 + vx3) - cu_sq);
-		(distAD.f[dirBS  ])[kbs  ] = c1o54  * conc * (c1o1 + c3o1 * (     - vx2 - vx3) + c9o2 * (     - vx2 - vx3) * (     - vx2 - vx3) - cu_sq);
-		(distAD.f[dirBN  ])[kbn  ] = c1o54  * conc * (c1o1 + c3o1 * (       vx2 - vx3) + c9o2 * (       vx2 - vx3) * (       vx2 - vx3) - cu_sq);
-		(distAD.f[dirTS  ])[kts  ] = c1o54  * conc * (c1o1 + c3o1 * (     - vx2 + vx3) + c9o2 * (     - vx2 + vx3) * (     - vx2 + vx3) - cu_sq);
-		(distAD.f[dirTNE ])[ktne ] = c1o216 * conc * (c1o1 + c3o1 * ( vx1 + vx2 + vx3) + c9o2 * ( vx1 + vx2 + vx3) * ( vx1 + vx2 + vx3) - cu_sq);
-		(distAD.f[dirBSW ])[kbsw ] = c1o216 * conc * (c1o1 + c3o1 * (-vx1 - vx2 - vx3) + c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq);
-		(distAD.f[dirBNE ])[kbne ] = c1o216 * conc * (c1o1 + c3o1 * ( vx1 + vx2 - vx3) + c9o2 * ( vx1 + vx2 - vx3) * ( vx1 + vx2 - vx3) - cu_sq);
-		(distAD.f[dirTSW ])[ktsw ] = c1o216 * conc * (c1o1 + c3o1 * (-vx1 - vx2 + vx3) + c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq);
-		(distAD.f[dirTSE ])[ktse ] = c1o216 * conc * (c1o1 + c3o1 * ( vx1 - vx2 + vx3) + c9o2 * ( vx1 - vx2 + vx3) * ( vx1 - vx2 + vx3) - cu_sq);
-		(distAD.f[dirBNW ])[kbnw ] = c1o216 * conc * (c1o1 + c3o1 * (-vx1 + vx2 - vx3) + c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq);
-		(distAD.f[dirBSE ])[kbse ] = c1o216 * conc * (c1o1 + c3o1 * ( vx1 - vx2 - vx3) + c9o2 * ( vx1 - vx2 - vx3) * ( vx1 - vx2 - vx3) - cu_sq);
-		(distAD.f[dirTNW ])[ktnw ] = c1o216 * conc * (c1o1 + c3o1 * (-vx1 + vx2 + vx3) + c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq);
+		(distAD.f[E   ])[ke   ] = c2o27  * conc * (c1o1 + c3o1 * ( vx1            ) + c9o2 * ( vx1            ) * ( vx1            ) - cu_sq);
+		(distAD.f[W   ])[kw   ] = c2o27  * conc * (c1o1 + c3o1 * (-vx1            ) + c9o2 * (-vx1            ) * (-vx1            ) - cu_sq);
+		(distAD.f[N   ])[kn   ] = c2o27  * conc * (c1o1 + c3o1 * (       vx2      ) + c9o2 * (       vx2      ) * (       vx2      ) - cu_sq);
+		(distAD.f[S   ])[ks   ] = c2o27  * conc * (c1o1 + c3o1 * (     - vx2      ) + c9o2 * (     - vx2      ) * (     - vx2      ) - cu_sq);
+		(distAD.f[T   ])[kt   ] = c2o27  * conc * (c1o1 + c3o1 * (             vx3) + c9o2 * (             vx3) * (             vx3) - cu_sq);
+		(distAD.f[B   ])[kb   ] = c2o27  * conc * (c1o1 + c3o1 * (           - vx3) + c9o2 * (           - vx3) * (           - vx3) - cu_sq);
+		(distAD.f[NE  ])[kne  ] = c1o54  * conc * (c1o1 + c3o1 * ( vx1 + vx2      ) + c9o2 * ( vx1 + vx2      ) * ( vx1 + vx2      ) - cu_sq);
+		(distAD.f[SW  ])[ksw  ] = c1o54  * conc * (c1o1 + c3o1 * (-vx1 - vx2      ) + c9o2 * (-vx1 - vx2      ) * (-vx1 - vx2      ) - cu_sq);
+		(distAD.f[SE  ])[kse  ] = c1o54  * conc * (c1o1 + c3o1 * ( vx1 - vx2      ) + c9o2 * ( vx1 - vx2      ) * ( vx1 - vx2      ) - cu_sq);
+		(distAD.f[NW  ])[knw  ] = c1o54  * conc * (c1o1 + c3o1 * (-vx1 + vx2      ) + c9o2 * (-vx1 + vx2      ) * (-vx1 + vx2      ) - cu_sq);
+		(distAD.f[TE  ])[kte  ] = c1o54  * conc * (c1o1 + c3o1 * ( vx1       + vx3) + c9o2 * ( vx1       + vx3) * ( vx1       + vx3) - cu_sq);
+		(distAD.f[BW  ])[kbw  ] = c1o54  * conc * (c1o1 + c3o1 * (-vx1       - vx3) + c9o2 * (-vx1       - vx3) * (-vx1       - vx3) - cu_sq);
+		(distAD.f[BE  ])[kbe  ] = c1o54  * conc * (c1o1 + c3o1 * ( vx1       - vx3) + c9o2 * ( vx1       - vx3) * ( vx1       - vx3) - cu_sq);
+		(distAD.f[TW  ])[ktw  ] = c1o54  * conc * (c1o1 + c3o1 * (-vx1       + vx3) + c9o2 * (-vx1       + vx3) * (-vx1       + vx3) - cu_sq);
+		(distAD.f[TN  ])[ktn  ] = c1o54  * conc * (c1o1 + c3o1 * (       vx2 + vx3) + c9o2 * (       vx2 + vx3) * (       vx2 + vx3) - cu_sq);
+		(distAD.f[BS  ])[kbs  ] = c1o54  * conc * (c1o1 + c3o1 * (     - vx2 - vx3) + c9o2 * (     - vx2 - vx3) * (     - vx2 - vx3) - cu_sq);
+		(distAD.f[BN  ])[kbn  ] = c1o54  * conc * (c1o1 + c3o1 * (       vx2 - vx3) + c9o2 * (       vx2 - vx3) * (       vx2 - vx3) - cu_sq);
+		(distAD.f[TS  ])[kts  ] = c1o54  * conc * (c1o1 + c3o1 * (     - vx2 + vx3) + c9o2 * (     - vx2 + vx3) * (     - vx2 + vx3) - cu_sq);
+		(distAD.f[TNE ])[ktne ] = c1o216 * conc * (c1o1 + c3o1 * ( vx1 + vx2 + vx3) + c9o2 * ( vx1 + vx2 + vx3) * ( vx1 + vx2 + vx3) - cu_sq);
+		(distAD.f[BSW ])[kbsw ] = c1o216 * conc * (c1o1 + c3o1 * (-vx1 - vx2 - vx3) + c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq);
+		(distAD.f[BNE ])[kbne ] = c1o216 * conc * (c1o1 + c3o1 * ( vx1 + vx2 - vx3) + c9o2 * ( vx1 + vx2 - vx3) * ( vx1 + vx2 - vx3) - cu_sq);
+		(distAD.f[TSW ])[ktsw ] = c1o216 * conc * (c1o1 + c3o1 * (-vx1 - vx2 + vx3) + c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq);
+		(distAD.f[TSE ])[ktse ] = c1o216 * conc * (c1o1 + c3o1 * ( vx1 - vx2 + vx3) + c9o2 * ( vx1 - vx2 + vx3) * ( vx1 - vx2 + vx3) - cu_sq);
+		(distAD.f[BNW ])[kbnw ] = c1o216 * conc * (c1o1 + c3o1 * (-vx1 + vx2 - vx3) + c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq);
+		(distAD.f[BSE ])[kbse ] = c1o216 * conc * (c1o1 + c3o1 * ( vx1 - vx2 - vx3) + c9o2 * ( vx1 - vx2 - vx3) * ( vx1 - vx2 - vx3) - cu_sq);
+		(distAD.f[TNW ])[ktnw ] = c1o216 * conc * (c1o1 + c3o1 * (-vx1 + vx2 + vx3) + c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq);
 	}
 }
 
@@ -263,63 +263,63 @@ extern "C" __global__ void InitAD27(
 //          Distributions27 D27;
 //          if (EvenOrOdd==true)
 //          {
-//             D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-//             D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-//             D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-//             D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-//             D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-//             D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-//             D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-//             D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-//             D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-//             D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-//             D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-//             D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-//             D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-//             D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-//             D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-//             D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-//             D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-//             D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+//             D27.f[E   ] = &DD27[E   *size_Mat];
+//             D27.f[W   ] = &DD27[W   *size_Mat];
+//             D27.f[N   ] = &DD27[N   *size_Mat];
+//             D27.f[S   ] = &DD27[S   *size_Mat];
+//             D27.f[T   ] = &DD27[T   *size_Mat];
+//             D27.f[B   ] = &DD27[B   *size_Mat];
+//             D27.f[NE  ] = &DD27[NE  *size_Mat];
+//             D27.f[SW  ] = &DD27[SW  *size_Mat];
+//             D27.f[SE  ] = &DD27[SE  *size_Mat];
+//             D27.f[NW  ] = &DD27[NW  *size_Mat];
+//             D27.f[TE  ] = &DD27[TE  *size_Mat];
+//             D27.f[BW  ] = &DD27[BW  *size_Mat];
+//             D27.f[BE  ] = &DD27[BE  *size_Mat];
+//             D27.f[TW  ] = &DD27[TW  *size_Mat];
+//             D27.f[TN  ] = &DD27[TN  *size_Mat];
+//             D27.f[BS  ] = &DD27[BS  *size_Mat];
+//             D27.f[BN  ] = &DD27[BN  *size_Mat];
+//             D27.f[TS  ] = &DD27[TS  *size_Mat];
 //             D27.f[dirREST] = &DD27[dirREST*size_Mat];
-//             D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-//             D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-//             D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-//             D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-//             D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-//             D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-//             D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-//             D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+//             D27.f[TNE ] = &DD27[TNE *size_Mat];
+//             D27.f[TSW ] = &DD27[TSW *size_Mat];
+//             D27.f[TSE ] = &DD27[TSE *size_Mat];
+//             D27.f[TNW ] = &DD27[TNW *size_Mat];
+//             D27.f[BNE ] = &DD27[BNE *size_Mat];
+//             D27.f[BSW ] = &DD27[BSW *size_Mat];
+//             D27.f[BSE ] = &DD27[BSE *size_Mat];
+//             D27.f[BNW ] = &DD27[BNW *size_Mat];
 //          }
 //          else
 //          {
-//             D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-//             D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-//             D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-//             D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-//             D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-//             D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-//             D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-//             D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-//             D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-//             D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-//             D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-//             D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-//             D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-//             D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-//             D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-//             D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-//             D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-//             D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+//             D27.f[W   ] = &DD27[E   *size_Mat];
+//             D27.f[E   ] = &DD27[W   *size_Mat];
+//             D27.f[S   ] = &DD27[N   *size_Mat];
+//             D27.f[N   ] = &DD27[S   *size_Mat];
+//             D27.f[B   ] = &DD27[T   *size_Mat];
+//             D27.f[T   ] = &DD27[B   *size_Mat];
+//             D27.f[SW  ] = &DD27[NE  *size_Mat];
+//             D27.f[NE  ] = &DD27[SW  *size_Mat];
+//             D27.f[NW  ] = &DD27[SE  *size_Mat];
+//             D27.f[SE  ] = &DD27[NW  *size_Mat];
+//             D27.f[BW  ] = &DD27[TE  *size_Mat];
+//             D27.f[TE  ] = &DD27[BW  *size_Mat];
+//             D27.f[TW  ] = &DD27[BE  *size_Mat];
+//             D27.f[BE  ] = &DD27[TW  *size_Mat];
+//             D27.f[BS  ] = &DD27[TN  *size_Mat];
+//             D27.f[TN  ] = &DD27[BS  *size_Mat];
+//             D27.f[TS  ] = &DD27[BN  *size_Mat];
+//             D27.f[BN  ] = &DD27[TS  *size_Mat];
 //             D27.f[dirREST] = &DD27[dirREST*size_Mat];
-//             D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-//             D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-//             D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
-//             D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-//             D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-//             D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-//             D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-//             D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
+//             D27.f[BSW ] = &DD27[TNE *size_Mat];
+//             D27.f[BNE ] = &DD27[TSW *size_Mat];
+//             D27.f[BNW ] = &DD27[TSE *size_Mat];
+//             D27.f[BSE ] = &DD27[TNW *size_Mat];
+//             D27.f[TSW ] = &DD27[BNE *size_Mat];
+//             D27.f[TNE ] = &DD27[BSW *size_Mat];
+//             D27.f[TNW ] = &DD27[BSE *size_Mat];
+//             D27.f[TSE ] = &DD27[BNW *size_Mat];
 //          }
 //          //////////////////////////////////////////////////////////////////////////
 //          real ConcD = Conc[k];
@@ -391,32 +391,32 @@ extern "C" __global__ void InitAD27(
 //          real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
 //          (D27.f[dirREST])[kzero] =   c8o27* ConcD*(c1o1-cu_sq);
-//          (D27.f[dirE   ])[ke   ] =   c2o27* ConcD*(c1o1+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
-//          (D27.f[dirW   ])[kw   ] =   c2o27* ConcD*(c1o1+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
-//          (D27.f[dirN   ])[kn   ] =   c2o27* ConcD*(c1o1+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
-//          (D27.f[dirS   ])[ks   ] =   c2o27* ConcD*(c1o1+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
-//          (D27.f[dirT   ])[kt   ] =   c2o27* ConcD*(c1o1+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
-//          (D27.f[dirB   ])[kb   ] =   c2o27* ConcD*(c1o1+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
-//          (D27.f[dirNE  ])[kne  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
-//          (D27.f[dirSW  ])[ksw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
-//          (D27.f[dirSE  ])[kse  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
-//          (D27.f[dirNW  ])[knw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
-//          (D27.f[dirTE  ])[kte  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
-//          (D27.f[dirBW  ])[kbw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
-//          (D27.f[dirBE  ])[kbe  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
-//          (D27.f[dirTW  ])[ktw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
-//          (D27.f[dirTN  ])[ktn  ] =   c1o54* ConcD*(c1o1+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
-//          (D27.f[dirBS  ])[kbs  ] =   c1o54* ConcD*(c1o1+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
-//          (D27.f[dirBN  ])[kbn  ] =   c1o54* ConcD*(c1o1+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
-//          (D27.f[dirTS  ])[kts  ] =   c1o54* ConcD*(c1o1+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
-//          (D27.f[dirTNE ])[ktne ] =   c1o216*ConcD*(c1o1+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
-//          (D27.f[dirBSW ])[kbsw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
-//          (D27.f[dirBNE ])[kbne ] =   c1o216*ConcD*(c1o1+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
-//          (D27.f[dirTSW ])[ktsw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
-//          (D27.f[dirTSE ])[ktse ] =   c1o216*ConcD*(c1o1+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
-//          (D27.f[dirBNW ])[kbnw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
-//          (D27.f[dirBSE ])[kbse ] =   c1o216*ConcD*(c1o1+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
-//          (D27.f[dirTNW ])[ktnw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
+//          (D27.f[E   ])[ke   ] =   c2o27* ConcD*(c1o1+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
+//          (D27.f[W   ])[kw   ] =   c2o27* ConcD*(c1o1+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
+//          (D27.f[N   ])[kn   ] =   c2o27* ConcD*(c1o1+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
+//          (D27.f[S   ])[ks   ] =   c2o27* ConcD*(c1o1+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
+//          (D27.f[T   ])[kt   ] =   c2o27* ConcD*(c1o1+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
+//          (D27.f[B   ])[kb   ] =   c2o27* ConcD*(c1o1+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
+//          (D27.f[NE  ])[kne  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
+//          (D27.f[SW  ])[ksw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
+//          (D27.f[SE  ])[kse  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
+//          (D27.f[NW  ])[knw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
+//          (D27.f[TE  ])[kte  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
+//          (D27.f[BW  ])[kbw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
+//          (D27.f[BE  ])[kbe  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
+//          (D27.f[TW  ])[ktw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
+//          (D27.f[TN  ])[ktn  ] =   c1o54* ConcD*(c1o1+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
+//          (D27.f[BS  ])[kbs  ] =   c1o54* ConcD*(c1o1+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
+//          (D27.f[BN  ])[kbn  ] =   c1o54* ConcD*(c1o1+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
+//          (D27.f[TS  ])[kts  ] =   c1o54* ConcD*(c1o1+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
+//          (D27.f[TNE ])[ktne ] =   c1o216*ConcD*(c1o1+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
+//          (D27.f[BSW ])[kbsw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
+//          (D27.f[BNE ])[kbne ] =   c1o216*ConcD*(c1o1+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
+//          (D27.f[TSW ])[ktsw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
+//          (D27.f[TSE ])[ktse ] =   c1o216*ConcD*(c1o1+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
+//          (D27.f[BNW ])[kbnw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
+//          (D27.f[BSE ])[kbse ] =   c1o216*ConcD*(c1o1+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
+//          (D27.f[TNW ])[ktnw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
 //          ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //       }
 //    }
diff --git a/src/gpu/VirtualFluids_GPU/GPU/KernelUtilities.h b/src/gpu/VirtualFluids_GPU/GPU/KernelUtilities.h
index 98faf8fa0..1f2e69baa 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/KernelUtilities.h
+++ b/src/gpu/VirtualFluids_GPU/GPU/KernelUtilities.h
@@ -43,95 +43,95 @@ __inline__ __device__ void getPointersToDistributions(Distributions27 &dist, rea
 {
     if (isEvenTimestep)
     {
-        dist.f[dirE   ] = &distributionArray[dirE   *numberOfLBnodes];
-        dist.f[dirW   ] = &distributionArray[dirW   *numberOfLBnodes];
-        dist.f[dirN   ] = &distributionArray[dirN   *numberOfLBnodes];
-        dist.f[dirS   ] = &distributionArray[dirS   *numberOfLBnodes];
-        dist.f[dirT   ] = &distributionArray[dirT   *numberOfLBnodes];
-        dist.f[dirB   ] = &distributionArray[dirB   *numberOfLBnodes];
-        dist.f[dirNE  ] = &distributionArray[dirNE  *numberOfLBnodes];
-        dist.f[dirSW  ] = &distributionArray[dirSW  *numberOfLBnodes];
-        dist.f[dirSE  ] = &distributionArray[dirSE  *numberOfLBnodes];
-        dist.f[dirNW  ] = &distributionArray[dirNW  *numberOfLBnodes];
-        dist.f[dirTE  ] = &distributionArray[dirTE  *numberOfLBnodes];
-        dist.f[dirBW  ] = &distributionArray[dirBW  *numberOfLBnodes];
-        dist.f[dirBE  ] = &distributionArray[dirBE  *numberOfLBnodes];
-        dist.f[dirTW  ] = &distributionArray[dirTW  *numberOfLBnodes];
-        dist.f[dirTN  ] = &distributionArray[dirTN  *numberOfLBnodes];
-        dist.f[dirBS  ] = &distributionArray[dirBS  *numberOfLBnodes];
-        dist.f[dirBN  ] = &distributionArray[dirBN  *numberOfLBnodes];
-        dist.f[dirTS  ] = &distributionArray[dirTS  *numberOfLBnodes];
+        dist.f[E   ] = &distributionArray[E   *numberOfLBnodes];
+        dist.f[W   ] = &distributionArray[W   *numberOfLBnodes];
+        dist.f[N   ] = &distributionArray[N   *numberOfLBnodes];
+        dist.f[S   ] = &distributionArray[S   *numberOfLBnodes];
+        dist.f[T   ] = &distributionArray[T   *numberOfLBnodes];
+        dist.f[B   ] = &distributionArray[B   *numberOfLBnodes];
+        dist.f[NE  ] = &distributionArray[NE  *numberOfLBnodes];
+        dist.f[SW  ] = &distributionArray[SW  *numberOfLBnodes];
+        dist.f[SE  ] = &distributionArray[SE  *numberOfLBnodes];
+        dist.f[NW  ] = &distributionArray[NW  *numberOfLBnodes];
+        dist.f[TE  ] = &distributionArray[TE  *numberOfLBnodes];
+        dist.f[BW  ] = &distributionArray[BW  *numberOfLBnodes];
+        dist.f[BE  ] = &distributionArray[BE  *numberOfLBnodes];
+        dist.f[TW  ] = &distributionArray[TW  *numberOfLBnodes];
+        dist.f[TN  ] = &distributionArray[TN  *numberOfLBnodes];
+        dist.f[BS  ] = &distributionArray[BS  *numberOfLBnodes];
+        dist.f[BN  ] = &distributionArray[BN  *numberOfLBnodes];
+        dist.f[TS  ] = &distributionArray[TS  *numberOfLBnodes];
         dist.f[dirREST] = &distributionArray[dirREST*numberOfLBnodes];
-        dist.f[dirTNE ] = &distributionArray[dirTNE *numberOfLBnodes];
-        dist.f[dirTSW ] = &distributionArray[dirTSW *numberOfLBnodes];
-        dist.f[dirTSE ] = &distributionArray[dirTSE *numberOfLBnodes];
-        dist.f[dirTNW ] = &distributionArray[dirTNW *numberOfLBnodes];
-        dist.f[dirBNE ] = &distributionArray[dirBNE *numberOfLBnodes];
-        dist.f[dirBSW ] = &distributionArray[dirBSW *numberOfLBnodes];
-        dist.f[dirBSE ] = &distributionArray[dirBSE *numberOfLBnodes];
-        dist.f[dirBNW ] = &distributionArray[dirBNW *numberOfLBnodes];
+        dist.f[TNE ] = &distributionArray[TNE *numberOfLBnodes];
+        dist.f[TSW ] = &distributionArray[TSW *numberOfLBnodes];
+        dist.f[TSE ] = &distributionArray[TSE *numberOfLBnodes];
+        dist.f[TNW ] = &distributionArray[TNW *numberOfLBnodes];
+        dist.f[BNE ] = &distributionArray[BNE *numberOfLBnodes];
+        dist.f[BSW ] = &distributionArray[BSW *numberOfLBnodes];
+        dist.f[BSE ] = &distributionArray[BSE *numberOfLBnodes];
+        dist.f[BNW ] = &distributionArray[BNW *numberOfLBnodes];
     }
     else
     {
-         dist.f[dirW   ] = &distributionArray[dirE   *numberOfLBnodes];
-         dist.f[dirE   ] = &distributionArray[dirW   *numberOfLBnodes];
-         dist.f[dirS   ] = &distributionArray[dirN   *numberOfLBnodes];
-         dist.f[dirN   ] = &distributionArray[dirS   *numberOfLBnodes];
-         dist.f[dirB   ] = &distributionArray[dirT   *numberOfLBnodes];
-         dist.f[dirT   ] = &distributionArray[dirB   *numberOfLBnodes];
-         dist.f[dirSW  ] = &distributionArray[dirNE  *numberOfLBnodes];
-         dist.f[dirNE  ] = &distributionArray[dirSW  *numberOfLBnodes];
-         dist.f[dirNW  ] = &distributionArray[dirSE  *numberOfLBnodes];
-         dist.f[dirSE  ] = &distributionArray[dirNW  *numberOfLBnodes];
-         dist.f[dirBW  ] = &distributionArray[dirTE  *numberOfLBnodes];
-         dist.f[dirTE  ] = &distributionArray[dirBW  *numberOfLBnodes];
-         dist.f[dirTW  ] = &distributionArray[dirBE  *numberOfLBnodes];
-         dist.f[dirBE  ] = &distributionArray[dirTW  *numberOfLBnodes];
-         dist.f[dirBS  ] = &distributionArray[dirTN  *numberOfLBnodes];
-         dist.f[dirTN  ] = &distributionArray[dirBS  *numberOfLBnodes];
-         dist.f[dirTS  ] = &distributionArray[dirBN  *numberOfLBnodes];
-         dist.f[dirBN  ] = &distributionArray[dirTS  *numberOfLBnodes];
+         dist.f[W   ] = &distributionArray[E   *numberOfLBnodes];
+         dist.f[E   ] = &distributionArray[W   *numberOfLBnodes];
+         dist.f[S   ] = &distributionArray[N   *numberOfLBnodes];
+         dist.f[N   ] = &distributionArray[S   *numberOfLBnodes];
+         dist.f[B   ] = &distributionArray[T   *numberOfLBnodes];
+         dist.f[T   ] = &distributionArray[B   *numberOfLBnodes];
+         dist.f[SW  ] = &distributionArray[NE  *numberOfLBnodes];
+         dist.f[NE  ] = &distributionArray[SW  *numberOfLBnodes];
+         dist.f[NW  ] = &distributionArray[SE  *numberOfLBnodes];
+         dist.f[SE  ] = &distributionArray[NW  *numberOfLBnodes];
+         dist.f[BW  ] = &distributionArray[TE  *numberOfLBnodes];
+         dist.f[TE  ] = &distributionArray[BW  *numberOfLBnodes];
+         dist.f[TW  ] = &distributionArray[BE  *numberOfLBnodes];
+         dist.f[BE  ] = &distributionArray[TW  *numberOfLBnodes];
+         dist.f[BS  ] = &distributionArray[TN  *numberOfLBnodes];
+         dist.f[TN  ] = &distributionArray[BS  *numberOfLBnodes];
+         dist.f[TS  ] = &distributionArray[BN  *numberOfLBnodes];
+         dist.f[BN  ] = &distributionArray[TS  *numberOfLBnodes];
          dist.f[dirREST] = &distributionArray[dirREST*numberOfLBnodes];
-         dist.f[dirTNE ] = &distributionArray[dirBSW *numberOfLBnodes];
-         dist.f[dirTSW ] = &distributionArray[dirBNE *numberOfLBnodes];
-         dist.f[dirTSE ] = &distributionArray[dirBNW *numberOfLBnodes];
-         dist.f[dirTNW ] = &distributionArray[dirBSE *numberOfLBnodes];
-         dist.f[dirBNE ] = &distributionArray[dirTSW *numberOfLBnodes];
-         dist.f[dirBSW ] = &distributionArray[dirTNE *numberOfLBnodes];
-         dist.f[dirBSE ] = &distributionArray[dirTNW *numberOfLBnodes];
-         dist.f[dirBNW ] = &distributionArray[dirTSE *numberOfLBnodes];
+         dist.f[TNE ] = &distributionArray[BSW *numberOfLBnodes];
+         dist.f[TSW ] = &distributionArray[BNE *numberOfLBnodes];
+         dist.f[TSE ] = &distributionArray[BNW *numberOfLBnodes];
+         dist.f[TNW ] = &distributionArray[BSE *numberOfLBnodes];
+         dist.f[BNE ] = &distributionArray[TSW *numberOfLBnodes];
+         dist.f[BSW ] = &distributionArray[TNE *numberOfLBnodes];
+         dist.f[BSE ] = &distributionArray[TNW *numberOfLBnodes];
+         dist.f[BNW ] = &distributionArray[TSE *numberOfLBnodes];
     }
 }
 
 __inline__ __device__ void getPointersToSubgridDistances(SubgridDistances27& subgridD, real* subgridDistances, const unsigned int numberOfSubgridIndices)
 {
-    subgridD.q[dirE   ] = &subgridDistances[dirE    *numberOfSubgridIndices];
-    subgridD.q[dirW   ] = &subgridDistances[dirW    *numberOfSubgridIndices];
-    subgridD.q[dirN   ] = &subgridDistances[dirN    *numberOfSubgridIndices];
-    subgridD.q[dirS   ] = &subgridDistances[dirS    *numberOfSubgridIndices];
-    subgridD.q[dirT   ] = &subgridDistances[dirT    *numberOfSubgridIndices];
-    subgridD.q[dirB   ] = &subgridDistances[dirB    *numberOfSubgridIndices];
-    subgridD.q[dirNE  ] = &subgridDistances[dirNE   *numberOfSubgridIndices];
-    subgridD.q[dirSW  ] = &subgridDistances[dirSW   *numberOfSubgridIndices];
-    subgridD.q[dirSE  ] = &subgridDistances[dirSE   *numberOfSubgridIndices];
-    subgridD.q[dirNW  ] = &subgridDistances[dirNW   *numberOfSubgridIndices];
-    subgridD.q[dirTE  ] = &subgridDistances[dirTE   *numberOfSubgridIndices];
-    subgridD.q[dirBW  ] = &subgridDistances[dirBW   *numberOfSubgridIndices];
-    subgridD.q[dirBE  ] = &subgridDistances[dirBE   *numberOfSubgridIndices];
-    subgridD.q[dirTW  ] = &subgridDistances[dirTW   *numberOfSubgridIndices];
-    subgridD.q[dirTN  ] = &subgridDistances[dirTN   *numberOfSubgridIndices];
-    subgridD.q[dirBS  ] = &subgridDistances[dirBS   *numberOfSubgridIndices];
-    subgridD.q[dirBN  ] = &subgridDistances[dirBN   *numberOfSubgridIndices];
-    subgridD.q[dirTS  ] = &subgridDistances[dirTS   *numberOfSubgridIndices];
+    subgridD.q[E   ] = &subgridDistances[E    *numberOfSubgridIndices];
+    subgridD.q[W   ] = &subgridDistances[W    *numberOfSubgridIndices];
+    subgridD.q[N   ] = &subgridDistances[N    *numberOfSubgridIndices];
+    subgridD.q[S   ] = &subgridDistances[S    *numberOfSubgridIndices];
+    subgridD.q[T   ] = &subgridDistances[T    *numberOfSubgridIndices];
+    subgridD.q[B   ] = &subgridDistances[B    *numberOfSubgridIndices];
+    subgridD.q[NE  ] = &subgridDistances[NE   *numberOfSubgridIndices];
+    subgridD.q[SW  ] = &subgridDistances[SW   *numberOfSubgridIndices];
+    subgridD.q[SE  ] = &subgridDistances[SE   *numberOfSubgridIndices];
+    subgridD.q[NW  ] = &subgridDistances[NW   *numberOfSubgridIndices];
+    subgridD.q[TE  ] = &subgridDistances[TE   *numberOfSubgridIndices];
+    subgridD.q[BW  ] = &subgridDistances[BW   *numberOfSubgridIndices];
+    subgridD.q[BE  ] = &subgridDistances[BE   *numberOfSubgridIndices];
+    subgridD.q[TW  ] = &subgridDistances[TW   *numberOfSubgridIndices];
+    subgridD.q[TN  ] = &subgridDistances[TN   *numberOfSubgridIndices];
+    subgridD.q[BS  ] = &subgridDistances[BS   *numberOfSubgridIndices];
+    subgridD.q[BN  ] = &subgridDistances[BN   *numberOfSubgridIndices];
+    subgridD.q[TS  ] = &subgridDistances[TS   *numberOfSubgridIndices];
     subgridD.q[dirREST] = &subgridDistances[dirREST *numberOfSubgridIndices];
-    subgridD.q[dirTNE ] = &subgridDistances[dirTNE  *numberOfSubgridIndices];
-    subgridD.q[dirTSW ] = &subgridDistances[dirTSW  *numberOfSubgridIndices];
-    subgridD.q[dirTSE ] = &subgridDistances[dirTSE  *numberOfSubgridIndices];
-    subgridD.q[dirTNW ] = &subgridDistances[dirTNW  *numberOfSubgridIndices];
-    subgridD.q[dirBNE ] = &subgridDistances[dirBNE  *numberOfSubgridIndices];
-    subgridD.q[dirBSW ] = &subgridDistances[dirBSW  *numberOfSubgridIndices];
-    subgridD.q[dirBSE ] = &subgridDistances[dirBSE  *numberOfSubgridIndices];
-    subgridD.q[dirBNW ] = &subgridDistances[dirBNW  *numberOfSubgridIndices];
+    subgridD.q[TNE ] = &subgridDistances[TNE  *numberOfSubgridIndices];
+    subgridD.q[TSW ] = &subgridDistances[TSW  *numberOfSubgridIndices];
+    subgridD.q[TSE ] = &subgridDistances[TSE  *numberOfSubgridIndices];
+    subgridD.q[TNW ] = &subgridDistances[TNW  *numberOfSubgridIndices];
+    subgridD.q[BNE ] = &subgridDistances[BNE  *numberOfSubgridIndices];
+    subgridD.q[BSW ] = &subgridDistances[BSW  *numberOfSubgridIndices];
+    subgridD.q[BSE ] = &subgridDistances[BSE  *numberOfSubgridIndices];
+    subgridD.q[BNW ] = &subgridDistances[BNW  *numberOfSubgridIndices];
 }
 
 __inline__ __device__ real getEquilibriumForBC(const real& drho, const real& velocity, const real& cu_sq, const real weight)
diff --git a/src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu
index fccebd573..4943aec39 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/NoSlipBCs27.cu
@@ -29,63 +29,63 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &distributions[dirE   *numberOfLBnodes];
-      D.f[dirW   ] = &distributions[dirW   *numberOfLBnodes];
-      D.f[dirN   ] = &distributions[dirN   *numberOfLBnodes];
-      D.f[dirS   ] = &distributions[dirS   *numberOfLBnodes];
-      D.f[dirT   ] = &distributions[dirT   *numberOfLBnodes];
-      D.f[dirB   ] = &distributions[dirB   *numberOfLBnodes];
-      D.f[dirNE  ] = &distributions[dirNE  *numberOfLBnodes];
-      D.f[dirSW  ] = &distributions[dirSW  *numberOfLBnodes];
-      D.f[dirSE  ] = &distributions[dirSE  *numberOfLBnodes];
-      D.f[dirNW  ] = &distributions[dirNW  *numberOfLBnodes];
-      D.f[dirTE  ] = &distributions[dirTE  *numberOfLBnodes];
-      D.f[dirBW  ] = &distributions[dirBW  *numberOfLBnodes];
-      D.f[dirBE  ] = &distributions[dirBE  *numberOfLBnodes];
-      D.f[dirTW  ] = &distributions[dirTW  *numberOfLBnodes];
-      D.f[dirTN  ] = &distributions[dirTN  *numberOfLBnodes];
-      D.f[dirBS  ] = &distributions[dirBS  *numberOfLBnodes];
-      D.f[dirBN  ] = &distributions[dirBN  *numberOfLBnodes];
-      D.f[dirTS  ] = &distributions[dirTS  *numberOfLBnodes];
+      D.f[E   ] = &distributions[E   *numberOfLBnodes];
+      D.f[W   ] = &distributions[W   *numberOfLBnodes];
+      D.f[N   ] = &distributions[N   *numberOfLBnodes];
+      D.f[S   ] = &distributions[S   *numberOfLBnodes];
+      D.f[T   ] = &distributions[T   *numberOfLBnodes];
+      D.f[B   ] = &distributions[B   *numberOfLBnodes];
+      D.f[NE  ] = &distributions[NE  *numberOfLBnodes];
+      D.f[SW  ] = &distributions[SW  *numberOfLBnodes];
+      D.f[SE  ] = &distributions[SE  *numberOfLBnodes];
+      D.f[NW  ] = &distributions[NW  *numberOfLBnodes];
+      D.f[TE  ] = &distributions[TE  *numberOfLBnodes];
+      D.f[BW  ] = &distributions[BW  *numberOfLBnodes];
+      D.f[BE  ] = &distributions[BE  *numberOfLBnodes];
+      D.f[TW  ] = &distributions[TW  *numberOfLBnodes];
+      D.f[TN  ] = &distributions[TN  *numberOfLBnodes];
+      D.f[BS  ] = &distributions[BS  *numberOfLBnodes];
+      D.f[BN  ] = &distributions[BN  *numberOfLBnodes];
+      D.f[TS  ] = &distributions[TS  *numberOfLBnodes];
       D.f[dirREST] = &distributions[dirREST*numberOfLBnodes];
-      D.f[dirTNE ] = &distributions[dirTNE *numberOfLBnodes];
-      D.f[dirTSW ] = &distributions[dirTSW *numberOfLBnodes];
-      D.f[dirTSE ] = &distributions[dirTSE *numberOfLBnodes];
-      D.f[dirTNW ] = &distributions[dirTNW *numberOfLBnodes];
-      D.f[dirBNE ] = &distributions[dirBNE *numberOfLBnodes];
-      D.f[dirBSW ] = &distributions[dirBSW *numberOfLBnodes];
-      D.f[dirBSE ] = &distributions[dirBSE *numberOfLBnodes];
-      D.f[dirBNW ] = &distributions[dirBNW *numberOfLBnodes];
+      D.f[TNE ] = &distributions[TNE *numberOfLBnodes];
+      D.f[TSW ] = &distributions[TSW *numberOfLBnodes];
+      D.f[TSE ] = &distributions[TSE *numberOfLBnodes];
+      D.f[TNW ] = &distributions[TNW *numberOfLBnodes];
+      D.f[BNE ] = &distributions[BNE *numberOfLBnodes];
+      D.f[BSW ] = &distributions[BSW *numberOfLBnodes];
+      D.f[BSE ] = &distributions[BSE *numberOfLBnodes];
+      D.f[BNW ] = &distributions[BNW *numberOfLBnodes];
    } 
    else
    {
-      D.f[dirW   ] = &distributions[dirE   *numberOfLBnodes];
-      D.f[dirE   ] = &distributions[dirW   *numberOfLBnodes];
-      D.f[dirS   ] = &distributions[dirN   *numberOfLBnodes];
-      D.f[dirN   ] = &distributions[dirS   *numberOfLBnodes];
-      D.f[dirB   ] = &distributions[dirT   *numberOfLBnodes];
-      D.f[dirT   ] = &distributions[dirB   *numberOfLBnodes];
-      D.f[dirSW  ] = &distributions[dirNE  *numberOfLBnodes];
-      D.f[dirNE  ] = &distributions[dirSW  *numberOfLBnodes];
-      D.f[dirNW  ] = &distributions[dirSE  *numberOfLBnodes];
-      D.f[dirSE  ] = &distributions[dirNW  *numberOfLBnodes];
-      D.f[dirBW  ] = &distributions[dirTE  *numberOfLBnodes];
-      D.f[dirTE  ] = &distributions[dirBW  *numberOfLBnodes];
-      D.f[dirTW  ] = &distributions[dirBE  *numberOfLBnodes];
-      D.f[dirBE  ] = &distributions[dirTW  *numberOfLBnodes];
-      D.f[dirBS  ] = &distributions[dirTN  *numberOfLBnodes];
-      D.f[dirTN  ] = &distributions[dirBS  *numberOfLBnodes];
-      D.f[dirTS  ] = &distributions[dirBN  *numberOfLBnodes];
-      D.f[dirBN  ] = &distributions[dirTS  *numberOfLBnodes];
+      D.f[W   ] = &distributions[E   *numberOfLBnodes];
+      D.f[E   ] = &distributions[W   *numberOfLBnodes];
+      D.f[S   ] = &distributions[N   *numberOfLBnodes];
+      D.f[N   ] = &distributions[S   *numberOfLBnodes];
+      D.f[B   ] = &distributions[T   *numberOfLBnodes];
+      D.f[T   ] = &distributions[B   *numberOfLBnodes];
+      D.f[SW  ] = &distributions[NE  *numberOfLBnodes];
+      D.f[NE  ] = &distributions[SW  *numberOfLBnodes];
+      D.f[NW  ] = &distributions[SE  *numberOfLBnodes];
+      D.f[SE  ] = &distributions[NW  *numberOfLBnodes];
+      D.f[BW  ] = &distributions[TE  *numberOfLBnodes];
+      D.f[TE  ] = &distributions[BW  *numberOfLBnodes];
+      D.f[TW  ] = &distributions[BE  *numberOfLBnodes];
+      D.f[BE  ] = &distributions[TW  *numberOfLBnodes];
+      D.f[BS  ] = &distributions[TN  *numberOfLBnodes];
+      D.f[TN  ] = &distributions[BS  *numberOfLBnodes];
+      D.f[TS  ] = &distributions[BN  *numberOfLBnodes];
+      D.f[BN  ] = &distributions[TS  *numberOfLBnodes];
       D.f[dirREST] = &distributions[dirREST*numberOfLBnodes];
-      D.f[dirTNE ] = &distributions[dirBSW *numberOfLBnodes];
-      D.f[dirTSW ] = &distributions[dirBNE *numberOfLBnodes];
-      D.f[dirTSE ] = &distributions[dirBNW *numberOfLBnodes];
-      D.f[dirTNW ] = &distributions[dirBSE *numberOfLBnodes];
-      D.f[dirBNE ] = &distributions[dirTSW *numberOfLBnodes];
-      D.f[dirBSW ] = &distributions[dirTNE *numberOfLBnodes];
-      D.f[dirBSE ] = &distributions[dirTNW *numberOfLBnodes];
-      D.f[dirBNW ] = &distributions[dirTSE *numberOfLBnodes];
+      D.f[TNE ] = &distributions[BSW *numberOfLBnodes];
+      D.f[TSW ] = &distributions[BNE *numberOfLBnodes];
+      D.f[TSE ] = &distributions[BNW *numberOfLBnodes];
+      D.f[TNW ] = &distributions[BSE *numberOfLBnodes];
+      D.f[BNE ] = &distributions[TSW *numberOfLBnodes];
+      D.f[BSW ] = &distributions[TNE *numberOfLBnodes];
+      D.f[BSE ] = &distributions[TNW *numberOfLBnodes];
+      D.f[BNW ] = &distributions[TSE *numberOfLBnodes];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -106,32 +106,32 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &subgridDistances[dirE   * numberOfBCnodes];
-      q_dirW   = &subgridDistances[dirW   * numberOfBCnodes];
-      q_dirN   = &subgridDistances[dirN   * numberOfBCnodes];
-      q_dirS   = &subgridDistances[dirS   * numberOfBCnodes];
-      q_dirT   = &subgridDistances[dirT   * numberOfBCnodes];
-      q_dirB   = &subgridDistances[dirB   * numberOfBCnodes];
-      q_dirNE  = &subgridDistances[dirNE  * numberOfBCnodes];
-      q_dirSW  = &subgridDistances[dirSW  * numberOfBCnodes];
-      q_dirSE  = &subgridDistances[dirSE  * numberOfBCnodes];
-      q_dirNW  = &subgridDistances[dirNW  * numberOfBCnodes];
-      q_dirTE  = &subgridDistances[dirTE  * numberOfBCnodes];
-      q_dirBW  = &subgridDistances[dirBW  * numberOfBCnodes];
-      q_dirBE  = &subgridDistances[dirBE  * numberOfBCnodes];
-      q_dirTW  = &subgridDistances[dirTW  * numberOfBCnodes];
-      q_dirTN  = &subgridDistances[dirTN  * numberOfBCnodes];
-      q_dirBS  = &subgridDistances[dirBS  * numberOfBCnodes];
-      q_dirBN  = &subgridDistances[dirBN  * numberOfBCnodes];
-      q_dirTS  = &subgridDistances[dirTS  * numberOfBCnodes];
-      q_dirTNE = &subgridDistances[dirTNE * numberOfBCnodes];
-      q_dirTSW = &subgridDistances[dirTSW * numberOfBCnodes];
-      q_dirTSE = &subgridDistances[dirTSE * numberOfBCnodes];
-      q_dirTNW = &subgridDistances[dirTNW * numberOfBCnodes];
-      q_dirBNE = &subgridDistances[dirBNE * numberOfBCnodes];
-      q_dirBSW = &subgridDistances[dirBSW * numberOfBCnodes];
-      q_dirBSE = &subgridDistances[dirBSE * numberOfBCnodes];
-      q_dirBNW = &subgridDistances[dirBNW * numberOfBCnodes];
+      q_dirE   = &subgridDistances[E   * numberOfBCnodes];
+      q_dirW   = &subgridDistances[W   * numberOfBCnodes];
+      q_dirN   = &subgridDistances[N   * numberOfBCnodes];
+      q_dirS   = &subgridDistances[S   * numberOfBCnodes];
+      q_dirT   = &subgridDistances[T   * numberOfBCnodes];
+      q_dirB   = &subgridDistances[B   * numberOfBCnodes];
+      q_dirNE  = &subgridDistances[NE  * numberOfBCnodes];
+      q_dirSW  = &subgridDistances[SW  * numberOfBCnodes];
+      q_dirSE  = &subgridDistances[SE  * numberOfBCnodes];
+      q_dirNW  = &subgridDistances[NW  * numberOfBCnodes];
+      q_dirTE  = &subgridDistances[TE  * numberOfBCnodes];
+      q_dirBW  = &subgridDistances[BW  * numberOfBCnodes];
+      q_dirBE  = &subgridDistances[BE  * numberOfBCnodes];
+      q_dirTW  = &subgridDistances[TW  * numberOfBCnodes];
+      q_dirTN  = &subgridDistances[TN  * numberOfBCnodes];
+      q_dirBS  = &subgridDistances[BS  * numberOfBCnodes];
+      q_dirBN  = &subgridDistances[BN  * numberOfBCnodes];
+      q_dirTS  = &subgridDistances[TS  * numberOfBCnodes];
+      q_dirTNE = &subgridDistances[TNE * numberOfBCnodes];
+      q_dirTSW = &subgridDistances[TSW * numberOfBCnodes];
+      q_dirTSE = &subgridDistances[TSE * numberOfBCnodes];
+      q_dirTNW = &subgridDistances[TNW * numberOfBCnodes];
+      q_dirBNE = &subgridDistances[BNE * numberOfBCnodes];
+      q_dirBSW = &subgridDistances[BSW * numberOfBCnodes];
+      q_dirBSE = &subgridDistances[BSE * numberOfBCnodes];
+      q_dirBNW = &subgridDistances[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int numberOfNodesK  = subgridDistanceIndices[k];
@@ -166,32 +166,32 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
             f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_W    = (D.f[dirE   ])[ke   ];
-      f_E    = (D.f[dirW   ])[kw   ];
-      f_S    = (D.f[dirN   ])[kn   ];
-      f_N    = (D.f[dirS   ])[ks   ];
-      f_B    = (D.f[dirT   ])[kt   ];
-      f_T    = (D.f[dirB   ])[kb   ];
-      f_SW   = (D.f[dirNE  ])[kne  ];
-      f_NE   = (D.f[dirSW  ])[ksw  ];
-      f_NW   = (D.f[dirSE  ])[kse  ];
-      f_SE   = (D.f[dirNW  ])[knw  ];
-      f_BW   = (D.f[dirTE  ])[kte  ];
-      f_TE   = (D.f[dirBW  ])[kbw  ];
-      f_TW   = (D.f[dirBE  ])[kbe  ];
-      f_BE   = (D.f[dirTW  ])[ktw  ];
-      f_BS   = (D.f[dirTN  ])[ktn  ];
-      f_TN   = (D.f[dirBS  ])[kbs  ];
-      f_TS   = (D.f[dirBN  ])[kbn  ];
-      f_BN   = (D.f[dirTS  ])[kts  ];
-      f_BSW  = (D.f[dirTNE ])[ktne ];
-      f_BNE  = (D.f[dirTSW ])[ktsw ];
-      f_BNW  = (D.f[dirTSE ])[ktse ];
-      f_BSE  = (D.f[dirTNW ])[ktnw ];
-      f_TSW  = (D.f[dirBNE ])[kbne ];
-      f_TNE  = (D.f[dirBSW ])[kbsw ];
-      f_TNW  = (D.f[dirBSE ])[kbse ];
-      f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_W    = (D.f[E   ])[ke   ];
+      f_E    = (D.f[W   ])[kw   ];
+      f_S    = (D.f[N   ])[kn   ];
+      f_N    = (D.f[S   ])[ks   ];
+      f_B    = (D.f[T   ])[kt   ];
+      f_T    = (D.f[B   ])[kb   ];
+      f_SW   = (D.f[NE  ])[kne  ];
+      f_NE   = (D.f[SW  ])[ksw  ];
+      f_NW   = (D.f[SE  ])[kse  ];
+      f_SE   = (D.f[NW  ])[knw  ];
+      f_BW   = (D.f[TE  ])[kte  ];
+      f_TE   = (D.f[BW  ])[kbw  ];
+      f_TW   = (D.f[BE  ])[kbe  ];
+      f_BE   = (D.f[TW  ])[ktw  ];
+      f_BS   = (D.f[TN  ])[ktn  ];
+      f_TN   = (D.f[BS  ])[kbs  ];
+      f_TS   = (D.f[BN  ])[kbn  ];
+      f_BN   = (D.f[TS  ])[kts  ];
+      f_BSW  = (D.f[TNE ])[ktne ];
+      f_BNE  = (D.f[TSW ])[ktsw ];
+      f_BNW  = (D.f[TSE ])[ktse ];
+      f_BSE  = (D.f[TNW ])[ktnw ];
+      f_TSW  = (D.f[BNE ])[kbne ];
+      f_TNE  = (D.f[BSW ])[kbsw ];
+      f_TNW  = (D.f[BSE ])[kbse ];
+      f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q, m3;
       drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -216,63 +216,63 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &distributions[dirE   *numberOfLBnodes];
-         D.f[dirW   ] = &distributions[dirW   *numberOfLBnodes];
-         D.f[dirN   ] = &distributions[dirN   *numberOfLBnodes];
-         D.f[dirS   ] = &distributions[dirS   *numberOfLBnodes];
-         D.f[dirT   ] = &distributions[dirT   *numberOfLBnodes];
-         D.f[dirB   ] = &distributions[dirB   *numberOfLBnodes];
-         D.f[dirNE  ] = &distributions[dirNE  *numberOfLBnodes];
-         D.f[dirSW  ] = &distributions[dirSW  *numberOfLBnodes];
-         D.f[dirSE  ] = &distributions[dirSE  *numberOfLBnodes];
-         D.f[dirNW  ] = &distributions[dirNW  *numberOfLBnodes];
-         D.f[dirTE  ] = &distributions[dirTE  *numberOfLBnodes];
-         D.f[dirBW  ] = &distributions[dirBW  *numberOfLBnodes];
-         D.f[dirBE  ] = &distributions[dirBE  *numberOfLBnodes];
-         D.f[dirTW  ] = &distributions[dirTW  *numberOfLBnodes];
-         D.f[dirTN  ] = &distributions[dirTN  *numberOfLBnodes];
-         D.f[dirBS  ] = &distributions[dirBS  *numberOfLBnodes];
-         D.f[dirBN  ] = &distributions[dirBN  *numberOfLBnodes];
-         D.f[dirTS  ] = &distributions[dirTS  *numberOfLBnodes];
+         D.f[E   ] = &distributions[E   *numberOfLBnodes];
+         D.f[W   ] = &distributions[W   *numberOfLBnodes];
+         D.f[N   ] = &distributions[N   *numberOfLBnodes];
+         D.f[S   ] = &distributions[S   *numberOfLBnodes];
+         D.f[T   ] = &distributions[T   *numberOfLBnodes];
+         D.f[B   ] = &distributions[B   *numberOfLBnodes];
+         D.f[NE  ] = &distributions[NE  *numberOfLBnodes];
+         D.f[SW  ] = &distributions[SW  *numberOfLBnodes];
+         D.f[SE  ] = &distributions[SE  *numberOfLBnodes];
+         D.f[NW  ] = &distributions[NW  *numberOfLBnodes];
+         D.f[TE  ] = &distributions[TE  *numberOfLBnodes];
+         D.f[BW  ] = &distributions[BW  *numberOfLBnodes];
+         D.f[BE  ] = &distributions[BE  *numberOfLBnodes];
+         D.f[TW  ] = &distributions[TW  *numberOfLBnodes];
+         D.f[TN  ] = &distributions[TN  *numberOfLBnodes];
+         D.f[BS  ] = &distributions[BS  *numberOfLBnodes];
+         D.f[BN  ] = &distributions[BN  *numberOfLBnodes];
+         D.f[TS  ] = &distributions[TS  *numberOfLBnodes];
          D.f[dirREST] = &distributions[dirREST*numberOfLBnodes];
-         D.f[dirTNE ] = &distributions[dirTNE *numberOfLBnodes];
-         D.f[dirTSW ] = &distributions[dirTSW *numberOfLBnodes];
-         D.f[dirTSE ] = &distributions[dirTSE *numberOfLBnodes];
-         D.f[dirTNW ] = &distributions[dirTNW *numberOfLBnodes];
-         D.f[dirBNE ] = &distributions[dirBNE *numberOfLBnodes];
-         D.f[dirBSW ] = &distributions[dirBSW *numberOfLBnodes];
-         D.f[dirBSE ] = &distributions[dirBSE *numberOfLBnodes];
-         D.f[dirBNW ] = &distributions[dirBNW *numberOfLBnodes];
+         D.f[TNE ] = &distributions[TNE *numberOfLBnodes];
+         D.f[TSW ] = &distributions[TSW *numberOfLBnodes];
+         D.f[TSE ] = &distributions[TSE *numberOfLBnodes];
+         D.f[TNW ] = &distributions[TNW *numberOfLBnodes];
+         D.f[BNE ] = &distributions[BNE *numberOfLBnodes];
+         D.f[BSW ] = &distributions[BSW *numberOfLBnodes];
+         D.f[BSE ] = &distributions[BSE *numberOfLBnodes];
+         D.f[BNW ] = &distributions[BNW *numberOfLBnodes];
       } 
       else
       {
-         D.f[dirW   ] = &distributions[dirE   *numberOfLBnodes];
-         D.f[dirE   ] = &distributions[dirW   *numberOfLBnodes];
-         D.f[dirS   ] = &distributions[dirN   *numberOfLBnodes];
-         D.f[dirN   ] = &distributions[dirS   *numberOfLBnodes];
-         D.f[dirB   ] = &distributions[dirT   *numberOfLBnodes];
-         D.f[dirT   ] = &distributions[dirB   *numberOfLBnodes];
-         D.f[dirSW  ] = &distributions[dirNE  *numberOfLBnodes];
-         D.f[dirNE  ] = &distributions[dirSW  *numberOfLBnodes];
-         D.f[dirNW  ] = &distributions[dirSE  *numberOfLBnodes];
-         D.f[dirSE  ] = &distributions[dirNW  *numberOfLBnodes];
-         D.f[dirBW  ] = &distributions[dirTE  *numberOfLBnodes];
-         D.f[dirTE  ] = &distributions[dirBW  *numberOfLBnodes];
-         D.f[dirTW  ] = &distributions[dirBE  *numberOfLBnodes];
-         D.f[dirBE  ] = &distributions[dirTW  *numberOfLBnodes];
-         D.f[dirBS  ] = &distributions[dirTN  *numberOfLBnodes];
-         D.f[dirTN  ] = &distributions[dirBS  *numberOfLBnodes];
-         D.f[dirTS  ] = &distributions[dirBN  *numberOfLBnodes];
-         D.f[dirBN  ] = &distributions[dirTS  *numberOfLBnodes];
+         D.f[W   ] = &distributions[E   *numberOfLBnodes];
+         D.f[E   ] = &distributions[W   *numberOfLBnodes];
+         D.f[S   ] = &distributions[N   *numberOfLBnodes];
+         D.f[N   ] = &distributions[S   *numberOfLBnodes];
+         D.f[B   ] = &distributions[T   *numberOfLBnodes];
+         D.f[T   ] = &distributions[B   *numberOfLBnodes];
+         D.f[SW  ] = &distributions[NE  *numberOfLBnodes];
+         D.f[NE  ] = &distributions[SW  *numberOfLBnodes];
+         D.f[NW  ] = &distributions[SE  *numberOfLBnodes];
+         D.f[SE  ] = &distributions[NW  *numberOfLBnodes];
+         D.f[BW  ] = &distributions[TE  *numberOfLBnodes];
+         D.f[TE  ] = &distributions[BW  *numberOfLBnodes];
+         D.f[TW  ] = &distributions[BE  *numberOfLBnodes];
+         D.f[BE  ] = &distributions[TW  *numberOfLBnodes];
+         D.f[BS  ] = &distributions[TN  *numberOfLBnodes];
+         D.f[TN  ] = &distributions[BS  *numberOfLBnodes];
+         D.f[TS  ] = &distributions[BN  *numberOfLBnodes];
+         D.f[BN  ] = &distributions[TS  *numberOfLBnodes];
          D.f[dirREST] = &distributions[dirREST*numberOfLBnodes];
-         D.f[dirTNE ] = &distributions[dirBSW *numberOfLBnodes];
-         D.f[dirTSW ] = &distributions[dirBNE *numberOfLBnodes];
-         D.f[dirTSE ] = &distributions[dirBNW *numberOfLBnodes];
-         D.f[dirTNW ] = &distributions[dirBSE *numberOfLBnodes];
-         D.f[dirBNE ] = &distributions[dirTSW *numberOfLBnodes];
-         D.f[dirBSW ] = &distributions[dirTNE *numberOfLBnodes];
-         D.f[dirBSE ] = &distributions[dirTNW *numberOfLBnodes];
-         D.f[dirBNW ] = &distributions[dirTSE *numberOfLBnodes];
+         D.f[TNE ] = &distributions[BSW *numberOfLBnodes];
+         D.f[TSW ] = &distributions[BNE *numberOfLBnodes];
+         D.f[TSE ] = &distributions[BNW *numberOfLBnodes];
+         D.f[TNW ] = &distributions[BSE *numberOfLBnodes];
+         D.f[BNE ] = &distributions[TSW *numberOfLBnodes];
+         D.f[BSW ] = &distributions[TNE *numberOfLBnodes];
+         D.f[BSE ] = &distributions[TNW *numberOfLBnodes];
+         D.f[BNW ] = &distributions[TSE *numberOfLBnodes];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -287,8 +287,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_E - f_W - c2o1 * drho * c2o27 * (c3o1*( vx1        ));
          feq=c2o27* (drho/*+three*( vx1        )*/+c9o2*( vx1        )*( vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirW])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W-m3+(f_E+f_W-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_E+f_W))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirW])[kw]=zero;
+         (D.f[W])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W-m3+(f_E+f_W-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_E+f_W))/(c1o1+q)+(m3*c1o2);
+         //(D.f[W])[kw]=zero;
       }
 
       q = q_dirW[k];
@@ -296,8 +296,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_W - f_E - c2o1 * drho * c2o27 * (c3o1*(-vx1        ));
          feq=c2o27* (drho/*+three*(-vx1        )*/+c9o2*(-vx1        )*(-vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirE])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E-m3+(f_W+f_E-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_W+f_E))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirE])[ke]=zero;
+         (D.f[E])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E-m3+(f_W+f_E-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_W+f_E))/(c1o1+q)+(m3*c1o2);
+         //(D.f[E])[ke]=zero;
       }
 
       q = q_dirN[k];
@@ -305,8 +305,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_N - f_S - c2o1 * drho * c2o27 * (c3o1*( vx2        ));
          feq=c2o27* (drho/*+three*(    vx2     )*/+c9o2*(     vx2    )*(     vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirS])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S-m3+(f_N+f_S-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_N+f_S))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirS])[ks]=zero;
+         (D.f[S])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S-m3+(f_N+f_S-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_N+f_S))/(c1o1+q)+(m3*c1o2);
+         //(D.f[S])[ks]=zero;
       }
 
       q = q_dirS[k];
@@ -314,8 +314,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_S - f_N - c2o1 * drho * c2o27 * (c3o1*(   -vx2     ));
          feq=c2o27* (drho/*+three*(   -vx2     )*/+c9o2*(    -vx2    )*(    -vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirN])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N-m3+(f_S+f_N-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_S+f_N))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirN])[kn]=zero;
+         (D.f[N])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N-m3+(f_S+f_N-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_S+f_N))/(c1o1+q)+(m3*c1o2);
+         //(D.f[N])[kn]=zero;
       }
 
       q = q_dirT[k];
@@ -323,8 +323,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_T - f_B - c2o1 * drho * c2o27 * (c3o1*(         vx3));
          feq=c2o27* (drho/*+three*(         vx3)*/+c9o2*(         vx3)*(         vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirB])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B-m3+(f_T+f_B-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_T+f_B))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirB])[kb]=one;
+         (D.f[B])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B-m3+(f_T+f_B-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_T+f_B))/(c1o1+q)+(m3*c1o2);
+         //(D.f[B])[kb]=one;
       }
 
       q = q_dirB[k];
@@ -332,8 +332,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_B - f_T - c2o1 * drho * c2o27 * (c3o1*(        -vx3));
          feq=c2o27* (drho/*+three*(        -vx3)*/+c9o2*(        -vx3)*(        -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirT])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T-m3+(f_B+f_T-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_B+f_T))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirT])[kt]=zero;
+         (D.f[T])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T-m3+(f_B+f_T-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_B+f_T))/(c1o1+q)+(m3*c1o2);
+         //(D.f[T])[kt]=zero;
       }
 
       q = q_dirNE[k];
@@ -341,8 +341,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_NE - f_SW - c2o1 * drho * c1o54 * (c3o1*( vx1+vx2    ));
          feq=c1o54* (drho/*+three*( vx1+vx2    )*/+c9o2*( vx1+vx2    )*( vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW-m3+(f_NE+f_SW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_NE+f_SW))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirSW])[ksw]=zero;
+         (D.f[SW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW-m3+(f_NE+f_SW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_NE+f_SW))/(c1o1+q)+(m3*c1o2);
+         //(D.f[SW])[ksw]=zero;
       }
 
       q = q_dirSW[k];
@@ -350,8 +350,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_SW - f_NE - c2o1 * drho * c1o54 * (c3o1*(-vx1-vx2    ));
          feq=c1o54* (drho/*+three*(-vx1-vx2    )*/+c9o2*(-vx1-vx2    )*(-vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE-m3+(f_SW+f_NE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_SW+f_NE))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirNE])[kne]=zero;
+         (D.f[NE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE-m3+(f_SW+f_NE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_SW+f_NE))/(c1o1+q)+(m3*c1o2);
+         //(D.f[NE])[kne]=zero;
       }
 
       q = q_dirSE[k];
@@ -359,8 +359,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_SE - f_NW - c2o1 * drho * c1o54 * (c3o1*( vx1-vx2    ));
          feq=c1o54* (drho/*+three*( vx1-vx2    )*/+c9o2*( vx1-vx2    )*( vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW-m3+(f_SE+f_NW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_SE+f_NW))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirNW])[knw]=zero;
+         (D.f[NW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW-m3+(f_SE+f_NW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_SE+f_NW))/(c1o1+q)+(m3*c1o2);
+         //(D.f[NW])[knw]=zero;
       }
 
       q = q_dirNW[k];
@@ -368,8 +368,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_NW - f_SE - c2o1 * drho * c1o54 * (c3o1*(-vx1+vx2    ));
          feq=c1o54* (drho/*+three*(-vx1+vx2    )*/+c9o2*(-vx1+vx2    )*(-vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE-m3+(f_NW+f_SE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_NW+f_SE))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirSE])[kse]=zero;
+         (D.f[SE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE-m3+(f_NW+f_SE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_NW+f_SE))/(c1o1+q)+(m3*c1o2);
+         //(D.f[SE])[kse]=zero;
       }
 
       q = q_dirTE[k];
@@ -377,8 +377,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_TE - f_BW - c2o1 * drho * c1o54 * (c3o1*( vx1    +vx3));
          feq=c1o54* (drho/*+three*( vx1    +vx3)*/+c9o2*( vx1    +vx3)*( vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW-m3+(f_TE+f_BW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TE+f_BW))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirBW])[kbw]=zero;
+         (D.f[BW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW-m3+(f_TE+f_BW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TE+f_BW))/(c1o1+q)+(m3*c1o2);
+         //(D.f[BW])[kbw]=zero;
       }
 
       q = q_dirBW[k];
@@ -386,8 +386,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_BW - f_TE - c2o1 * drho * c1o54 * (c3o1*(-vx1    -vx3));
          feq=c1o54* (drho/*+three*(-vx1    -vx3)*/+c9o2*(-vx1    -vx3)*(-vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE-m3+(f_BW+f_TE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BW+f_TE))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirTE])[kte]=zero;
+         (D.f[TE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE-m3+(f_BW+f_TE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BW+f_TE))/(c1o1+q)+(m3*c1o2);
+         //(D.f[TE])[kte]=zero;
       }
 
       q = q_dirBE[k];
@@ -395,8 +395,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_BE - f_TW - c2o1 * drho * c1o54 * (c3o1*( vx1    -vx3));
          feq=c1o54* (drho/*+three*( vx1    -vx3)*/+c9o2*( vx1    -vx3)*( vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW-m3+(f_BE+f_TW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BE+f_TW))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirTW])[ktw]=zero;
+         (D.f[TW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW-m3+(f_BE+f_TW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BE+f_TW))/(c1o1+q)+(m3*c1o2);
+         //(D.f[TW])[ktw]=zero;
       }
 
       q = q_dirTW[k];
@@ -404,8 +404,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_TW - f_BE - c2o1 * drho * c1o54 * (c3o1*(-vx1    +vx3));
          feq=c1o54* (drho/*+three*(-vx1    +vx3)*/+c9o2*(-vx1    +vx3)*(-vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE-m3+(f_TW+f_BE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TW+f_BE))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirBE])[kbe]=zero;
+         (D.f[BE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE-m3+(f_TW+f_BE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TW+f_BE))/(c1o1+q)+(m3*c1o2);
+         //(D.f[BE])[kbe]=zero;
       }
 
       q = q_dirTN[k];
@@ -413,8 +413,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_TN - f_BS - c2o1 * drho * c1o54 * (c3o1*(     vx2+vx3));
          feq=c1o54* (drho/*+three*(     vx2+vx3)*/+c9o2*(     vx2+vx3)*(     vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS-m3+(f_TN+f_BS-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TN+f_BS))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirBS])[kbs]=zero;
+         (D.f[BS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS-m3+(f_TN+f_BS-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TN+f_BS))/(c1o1+q)+(m3*c1o2);
+         //(D.f[BS])[kbs]=zero;
       }
 
       q = q_dirBS[k];
@@ -422,8 +422,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_BS - f_TN - c2o1 * drho * c1o54 * (c3o1*(    -vx2-vx3));
          feq=c1o54* (drho/*+three*(    -vx2-vx3)*/+c9o2*(    -vx2-vx3)*(    -vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN-m3+(f_BS+f_TN-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BS+f_TN))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirTN])[ktn]=zero;
+         (D.f[TN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN-m3+(f_BS+f_TN-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BS+f_TN))/(c1o1+q)+(m3*c1o2);
+         //(D.f[TN])[ktn]=zero;
       }
 
       q = q_dirBN[k];
@@ -431,8 +431,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_BN - f_TS - c2o1 * drho * c1o54 * (c3o1*(     vx2-vx3));
          feq=c1o54* (drho/*+three*(     vx2-vx3)*/+c9o2*(     vx2-vx3)*(     vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS-m3+(f_BN+f_TS-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BN+f_TS))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirTS])[kts]=zero;
+         (D.f[TS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS-m3+(f_BN+f_TS-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BN+f_TS))/(c1o1+q)+(m3*c1o2);
+         //(D.f[TS])[kts]=zero;
       }
 
       q = q_dirTS[k];
@@ -440,8 +440,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_TS - f_BN - c2o1 * drho * c1o54 * (c3o1*(    -vx2+vx3));
          feq=c1o54* (drho/*+three*(    -vx2+vx3)*/+c9o2*(    -vx2+vx3)*(    -vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN-m3+(f_TS+f_BN-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TS+f_BN))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirBN])[kbn]=zero;
+         (D.f[BN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN-m3+(f_TS+f_BN-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TS+f_BN))/(c1o1+q)+(m3*c1o2);
+         //(D.f[BN])[kbn]=zero;
       }
 
       q = q_dirTNE[k];
@@ -449,8 +449,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_TNE - f_BSW - c2o1 * drho * c1o216 * (c3o1*( vx1+vx2+vx3));
          feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW-m3+(f_TNE+f_BSW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TNE+f_BSW))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirBSW])[kbsw]=zero;
+         (D.f[BSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW-m3+(f_TNE+f_BSW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TNE+f_BSW))/(c1o1+q)+(m3*c1o2);
+         //(D.f[BSW])[kbsw]=zero;
       }
 
       q = q_dirBSW[k];
@@ -458,8 +458,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_BSW - f_TNE - c2o1 * drho * c1o216 * (c3o1*(-vx1-vx2-vx3));
          feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE-m3+(f_BSW+f_TNE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BSW+f_TNE))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirTNE])[ktne]=zero;
+         (D.f[TNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE-m3+(f_BSW+f_TNE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BSW+f_TNE))/(c1o1+q)+(m3*c1o2);
+         //(D.f[TNE])[ktne]=zero;
       }
 
       q = q_dirBNE[k];
@@ -467,8 +467,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_BNE - f_TSW - c2o1 * drho * c1o216 * (c3o1*( vx1+vx2-vx3));
          feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW-m3+(f_BNE+f_TSW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BNE+f_TSW))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirTSW])[ktsw]=zero;
+         (D.f[TSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW-m3+(f_BNE+f_TSW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BNE+f_TSW))/(c1o1+q)+(m3*c1o2);
+         //(D.f[TSW])[ktsw]=zero;
       }
 
       q = q_dirTSW[k];
@@ -476,8 +476,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_TSW - f_BNE - c2o1 * drho * c1o216 * (c3o1*(-vx1-vx2+vx3));
          feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE-m3+(f_TSW+f_BNE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TSW+f_BNE))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirBNE])[kbne]=zero;
+         (D.f[BNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE-m3+(f_TSW+f_BNE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TSW+f_BNE))/(c1o1+q)+(m3*c1o2);
+         //(D.f[BNE])[kbne]=zero;
       }
 
       q = q_dirTSE[k];
@@ -485,8 +485,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_TSE - f_BNW - c2o1 * drho * c1o216 * (c3o1*( vx1-vx2+vx3));
          feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW-m3+(f_TSE+f_BNW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TSE+f_BNW))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirBNW])[kbnw]=zero;
+         (D.f[BNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW-m3+(f_TSE+f_BNW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TSE+f_BNW))/(c1o1+q)+(m3*c1o2);
+         //(D.f[BNW])[kbnw]=zero;
       }
 
       q = q_dirBNW[k];
@@ -494,8 +494,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_BNW - f_TSE - c2o1 * drho * c1o216 * (c3o1*(-vx1+vx2-vx3));
          feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE-m3+(f_BNW+f_TSE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BNW+f_TSE))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirTSE])[ktse]=zero;
+         (D.f[TSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE-m3+(f_BNW+f_TSE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BNW+f_TSE))/(c1o1+q)+(m3*c1o2);
+         //(D.f[TSE])[ktse]=zero;
       }
 
       q = q_dirBSE[k];
@@ -503,8 +503,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_BSE - f_TNW - c2o1 * drho * c1o216 * (c3o1*( vx1-vx2-vx3));
          feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW-m3+(f_BSE+f_TNW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BSE+f_TNW))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirTNW])[ktnw]=zero;
+         (D.f[TNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW-m3+(f_BSE+f_TNW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BSE+f_TNW))/(c1o1+q)+(m3*c1o2);
+         //(D.f[TNW])[ktnw]=zero;
       }
 
       q = q_dirTNW[k];
@@ -512,8 +512,8 @@ extern "C" __global__ void QDevice3rdMomentsComp27(
       {
 		 m3 = f_TNW - f_BSE - c2o1 * drho * c1o216 * (c3o1*(-vx1+vx2+vx3));
          feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE-m3+(f_TNW+f_BSE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TNW+f_BSE))/(c1o1+q)+(m3*c1o2);
-         //(D.f[dirBSE])[kbse]=zero;
+         (D.f[BSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE-m3+(f_TNW+f_BSE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TNW+f_BSE))/(c1o1+q)+(m3*c1o2);
+         //(D.f[BSE])[kbse]=zero;
       }
    }
 }
@@ -575,63 +575,63 @@ extern "C" __global__ void QDeviceIncompHighNu27(int inx,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -652,32 +652,32 @@ extern "C" __global__ void QDeviceIncompHighNu27(int inx,
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int numberOfNodesK  = k_Q[k];
@@ -712,32 +712,32 @@ extern "C" __global__ void QDeviceIncompHighNu27(int inx,
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
             f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_E   = (D.f[dirE   ])[ke   ];
-      f_W   = (D.f[dirW   ])[kw   ];
-      f_N   = (D.f[dirN   ])[kn   ];
-      f_S   = (D.f[dirS   ])[ks   ];
-      f_T   = (D.f[dirT   ])[kt   ];
-      f_B   = (D.f[dirB   ])[kb   ];
-      f_NE  = (D.f[dirNE  ])[kne  ];
-      f_SW  = (D.f[dirSW  ])[ksw  ];
-      f_SE  = (D.f[dirSE  ])[kse  ];
-      f_NW  = (D.f[dirNW  ])[knw  ];
-      f_TE  = (D.f[dirTE  ])[kte  ];
-      f_BW  = (D.f[dirBW  ])[kbw  ];
-      f_BE  = (D.f[dirBE  ])[kbe  ];
-      f_TW  = (D.f[dirTW  ])[ktw  ];
-      f_TN  = (D.f[dirTN  ])[ktn  ];
-      f_BS  = (D.f[dirBS  ])[kbs  ];
-      f_BN  = (D.f[dirBN  ])[kbn  ];
-      f_TS  = (D.f[dirTS  ])[kts  ];
-      f_TNE = (D.f[dirTNE ])[ktne ];
-      f_TSW = (D.f[dirTSW ])[ktsw ];
-      f_TSE = (D.f[dirTSE ])[ktse ];
-      f_TNW = (D.f[dirTNW ])[ktnw ];
-      f_BNE = (D.f[dirBNE ])[kbne ];
-      f_BSW = (D.f[dirBSW ])[kbsw ];
-      f_BSE = (D.f[dirBSE ])[kbse ];
-      f_BNW = (D.f[dirBNW ])[kbnw ];
+      f_E   = (D.f[E   ])[ke   ];
+      f_W   = (D.f[W   ])[kw   ];
+      f_N   = (D.f[N   ])[kn   ];
+      f_S   = (D.f[S   ])[ks   ];
+      f_T   = (D.f[T   ])[kt   ];
+      f_B   = (D.f[B   ])[kb   ];
+      f_NE  = (D.f[NE  ])[kne  ];
+      f_SW  = (D.f[SW  ])[ksw  ];
+      f_SE  = (D.f[SE  ])[kse  ];
+      f_NW  = (D.f[NW  ])[knw  ];
+      f_TE  = (D.f[TE  ])[kte  ];
+      f_BW  = (D.f[BW  ])[kbw  ];
+      f_BE  = (D.f[BE  ])[kbe  ];
+      f_TW  = (D.f[TW  ])[ktw  ];
+      f_TN  = (D.f[TN  ])[ktn  ];
+      f_BS  = (D.f[BS  ])[kbs  ];
+      f_BN  = (D.f[BN  ])[kbn  ];
+      f_TS  = (D.f[TS  ])[kts  ];
+      f_TNE = (D.f[TNE ])[ktne ];
+      f_TSW = (D.f[TSW ])[ktsw ];
+      f_TSE = (D.f[TSE ])[ktse ];
+      f_TNW = (D.f[TNW ])[ktnw ];
+      f_BNE = (D.f[BNE ])[kbne ];
+      f_BSW = (D.f[BSW ])[kbsw ];
+      f_BSE = (D.f[BSE ])[kbse ];
+      f_BNW = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q;
       drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -762,63 +762,63 @@ extern "C" __global__ void QDeviceIncompHighNu27(int inx,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -836,182 +836,182 @@ extern "C" __global__ void QDeviceIncompHighNu27(int inx,
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*( vx1        )*/+c9o2*( vx1        )*( vx1        ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirW])[kw]=((c1o1 - q) * f_E + q * ((f_E + f_W) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloX     )) / (q + c1o1) ;
+         (D.f[W])[kw]=((c1o1 - q) * f_E + q * ((f_E + f_W) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloX     )) / (q + c1o1) ;
       }
 
       q = q_dirW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(-vx1        )*/+c9o2*(-vx1        )*(-vx1        ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirE])[ke]=((c1o1 - q) * f_W + q * ((f_W + f_E) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloX     )) / (q + c1o1) ;
+         (D.f[E])[ke]=((c1o1 - q) * f_W + q * ((f_W + f_E) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloX     )) / (q + c1o1) ;
       }
 
       q = q_dirN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(    vx2     )*/+c9o2*(     vx2    )*(     vx2    ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirS])[ks]=((c1o1 - q) * f_N + q * ((f_N + f_S) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloY     )) / (q + c1o1) ;
+         (D.f[S])[ks]=((c1o1 - q) * f_N + q * ((f_N + f_S) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloY     )) / (q + c1o1) ;
       }
 
       q = q_dirS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(   -vx2     )*/+c9o2*(    -vx2    )*(    -vx2    ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirN])[kn]=((c1o1 - q) * f_S + q * ((f_S + f_N) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloY     )) / (q + c1o1) ;
+         (D.f[N])[kn]=((c1o1 - q) * f_S + q * ((f_S + f_N) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloY     )) / (q + c1o1) ;
       }
 
       q = q_dirT[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(         vx3)*/+c9o2*(         vx3)*(         vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirB])[kb]=((c1o1 - q) * f_T + q * ((f_T + f_B) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloZ     )) / (q + c1o1) ;
+         (D.f[B])[kb]=((c1o1 - q) * f_T + q * ((f_T + f_B) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloZ     )) / (q + c1o1) ;
       }
 
       q = q_dirB[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(        -vx3)*/+c9o2*(        -vx3)*(        -vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirT])[kt]=((c1o1 - q) * f_B + q * ((f_B + f_T) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloZ     )) / (q + c1o1) ;
+         (D.f[T])[kt]=((c1o1 - q) * f_B + q * ((f_B + f_T) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloZ     )) / (q + c1o1) ;
       }
 
       q = q_dirNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1+vx2    )*/+c9o2*( vx1+vx2    )*( vx1+vx2    ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirSW])[ksw]=((c1o1 - q) * f_NE + q * ((f_NE + f_SW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloY)) / (q + c1o1) ;
+         (D.f[SW])[ksw]=((c1o1 - q) * f_NE + q * ((f_NE + f_SW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloY)) / (q + c1o1) ;
       }
 
       q = q_dirSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1-vx2    )*/+c9o2*(-vx1-vx2    )*(-vx1-vx2    ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirNE])[kne]=((c1o1 - q) * f_SW + q * ((f_SW + f_NE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloY)) / (q + c1o1) ;
+         (D.f[NE])[kne]=((c1o1 - q) * f_SW + q * ((f_SW + f_NE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloY)) / (q + c1o1) ;
       }
 
       q = q_dirSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1-vx2    )*/+c9o2*( vx1-vx2    )*( vx1-vx2    ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirNW])[knw]=((c1o1 - q) * f_SE + q * ((f_SE + f_NW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloY)) / (q + c1o1) ;
+         (D.f[NW])[knw]=((c1o1 - q) * f_SE + q * ((f_SE + f_NW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloY)) / (q + c1o1) ;
       }
 
       q = q_dirNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1+vx2    )*/+c9o2*(-vx1+vx2    )*(-vx1+vx2    ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirSE])[kse]=((c1o1 - q) * f_NW + q * ((f_NW + f_SE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloY)) / (q + c1o1) ;
+         (D.f[SE])[kse]=((c1o1 - q) * f_NW + q * ((f_NW + f_SE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloY)) / (q + c1o1) ;
       }
 
       q = q_dirTE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1    +vx3)*/+c9o2*( vx1    +vx3)*( vx1    +vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBW])[kbw]=((c1o1 - q) * f_TE + q * ((f_TE + f_BW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloZ)) / (q + c1o1) ;
+         (D.f[BW])[kbw]=((c1o1 - q) * f_TE + q * ((f_TE + f_BW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1    -vx3)*/+c9o2*(-vx1    -vx3)*(-vx1    -vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTE])[kte]=((c1o1 - q) * f_BW + q * ((f_BW + f_TE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloZ)) / (q + c1o1) ;
+         (D.f[TE])[kte]=((c1o1 - q) * f_BW + q * ((f_BW + f_TE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1    -vx3)*/+c9o2*( vx1    -vx3)*( vx1    -vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTW])[ktw]=((c1o1 - q) * f_BE + q * ((f_BE + f_TW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloZ)) / (q + c1o1) ;
+         (D.f[TW])[ktw]=((c1o1 - q) * f_BE + q * ((f_BE + f_TW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1    +vx3)*/+c9o2*(-vx1    +vx3)*(-vx1    +vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBE])[kbe]=((c1o1 - q) * f_TW + q * ((f_TW + f_BE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloZ)) / (q + c1o1) ;
+         (D.f[BE])[kbe]=((c1o1 - q) * f_TW + q * ((f_TW + f_BE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(     vx2+vx3)*/+c9o2*(     vx2+vx3)*(     vx2+vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBS])[kbs]=((c1o1 - q) * f_TN + q * ((f_TN + f_BS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY+VeloZ)) / (q + c1o1) ;
+         (D.f[BS])[kbs]=((c1o1 - q) * f_TN + q * ((f_TN + f_BS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(    -vx2-vx3)*/+c9o2*(    -vx2-vx3)*(    -vx2-vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTN])[ktn]=((c1o1 - q) * f_BS + q * ((f_BS + f_TN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY-VeloZ)) / (q + c1o1) ;
+         (D.f[TN])[ktn]=((c1o1 - q) * f_BS + q * ((f_BS + f_TN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(     vx2-vx3)*/+c9o2*(     vx2-vx3)*(     vx2-vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTS])[kts]=((c1o1 - q) * f_BN + q * ((f_BN + f_TS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY-VeloZ)) / (q + c1o1) ;
+         (D.f[TS])[kts]=((c1o1 - q) * f_BN + q * ((f_BN + f_TS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(    -vx2+vx3)*/+c9o2*(    -vx2+vx3)*(    -vx2+vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBN])[kbn]=((c1o1 - q) * f_TS + q * ((f_TS + f_BN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY+VeloZ)) / (q + c1o1) ;
+         (D.f[BN])[kbn]=((c1o1 - q) * f_TS + q * ((f_TS + f_BN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBSW])[kbsw]=((c1o1 - q) * f_TNE + q * ((f_TNE + f_BSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY+VeloZ)) / (q + c1o1) ;
+         (D.f[BSW])[kbsw]=((c1o1 - q) * f_TNE + q * ((f_TNE + f_BSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTNE])[ktne]=((c1o1 - q) * f_BSW + q * ((f_BSW + f_TNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY-VeloZ)) / (q + c1o1) ;
+         (D.f[TNE])[ktne]=((c1o1 - q) * f_BSW + q * ((f_BSW + f_TNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTSW])[ktsw]=((c1o1 - q) * f_BNE + q * ((f_BNE + f_TSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY-VeloZ)) / (q + c1o1) ;
+         (D.f[TSW])[ktsw]=((c1o1 - q) * f_BNE + q * ((f_BNE + f_TSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBNE])[kbne]=((c1o1 - q) * f_TSW + q * ((f_TSW + f_BNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY+VeloZ)) / (q + c1o1) ;
+         (D.f[BNE])[kbne]=((c1o1 - q) * f_TSW + q * ((f_TSW + f_BNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBNW])[kbnw]=((c1o1 - q) * f_TSE + q * ((f_TSE + f_BNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY+VeloZ)) / (q + c1o1) ;
+         (D.f[BNW])[kbnw]=((c1o1 - q) * f_TSE + q * ((f_TSE + f_BNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTSE])[ktse]=((c1o1 - q) * f_BNW + q * ((f_BNW + f_TSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY-VeloZ)) / (q + c1o1) ;
+         (D.f[TSE])[ktse]=((c1o1 - q) * f_BNW + q * ((f_BNW + f_TSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTNW])[ktnw]=((c1o1 - q) * f_BSE + q * ((f_BSE + f_TNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY-VeloZ)) / (q + c1o1) ;
+         (D.f[TNW])[ktnw]=((c1o1 - q) * f_BSE + q * ((f_BSE + f_TNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBSE])[kbse]=((c1o1 - q) * f_TNW + q * ((f_TNW + f_BSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY+VeloZ)) / (q + c1o1) ;
+         (D.f[BSE])[kbse]=((c1o1 - q) * f_TNW + q * ((f_TNW + f_BSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY+VeloZ)) / (q + c1o1) ;
       }
    }
 }
@@ -1071,63 +1071,63 @@ extern "C" __global__ void QDeviceCompHighNu27(
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -1148,32 +1148,32 @@ extern "C" __global__ void QDeviceCompHighNu27(
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int numberOfNodesK  = k_Q[k];
@@ -1208,58 +1208,58 @@ extern "C" __global__ void QDeviceCompHighNu27(
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
             f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_E   = (D.f[dirE   ])[ke   ];
-      f_W   = (D.f[dirW   ])[kw   ];
-      f_N   = (D.f[dirN   ])[kn   ];
-      f_S   = (D.f[dirS   ])[ks   ];
-      f_T   = (D.f[dirT   ])[kt   ];
-      f_B   = (D.f[dirB   ])[kb   ];
-      f_NE  = (D.f[dirNE  ])[kne  ];
-      f_SW  = (D.f[dirSW  ])[ksw  ];
-      f_SE  = (D.f[dirSE  ])[kse  ];
-      f_NW  = (D.f[dirNW  ])[knw  ];
-      f_TE  = (D.f[dirTE  ])[kte  ];
-      f_BW  = (D.f[dirBW  ])[kbw  ];
-      f_BE  = (D.f[dirBE  ])[kbe  ];
-      f_TW  = (D.f[dirTW  ])[ktw  ];
-      f_TN  = (D.f[dirTN  ])[ktn  ];
-      f_BS  = (D.f[dirBS  ])[kbs  ];
-      f_BN  = (D.f[dirBN  ])[kbn  ];
-      f_TS  = (D.f[dirTS  ])[kts  ];
-      f_TNE = (D.f[dirTNE ])[ktne ];
-      f_TSW = (D.f[dirTSW ])[ktsw ];
-      f_TSE = (D.f[dirTSE ])[ktse ];
-      f_TNW = (D.f[dirTNW ])[ktnw ];
-      f_BNE = (D.f[dirBNE ])[kbne ];
-      f_BSW = (D.f[dirBSW ])[kbsw ];
-      f_BSE = (D.f[dirBSE ])[kbse ];
-      f_BNW = (D.f[dirBNW ])[kbnw ];
-      //f_W    = (D.f[dirE   ])[ke   ];
-      //f_E    = (D.f[dirW   ])[kw   ];
-      //f_S    = (D.f[dirN   ])[kn   ];
-      //f_N    = (D.f[dirS   ])[ks   ];
-      //f_B    = (D.f[dirT   ])[kt   ];
-      //f_T    = (D.f[dirB   ])[kb   ];
-      //f_SW   = (D.f[dirNE  ])[kne  ];
-      //f_NE   = (D.f[dirSW  ])[ksw  ];
-      //f_NW   = (D.f[dirSE  ])[kse  ];
-      //f_SE   = (D.f[dirNW  ])[knw  ];
-      //f_BW   = (D.f[dirTE  ])[kte  ];
-      //f_TE   = (D.f[dirBW  ])[kbw  ];
-      //f_TW   = (D.f[dirBE  ])[kbe  ];
-      //f_BE   = (D.f[dirTW  ])[ktw  ];
-      //f_BS   = (D.f[dirTN  ])[ktn  ];
-      //f_TN   = (D.f[dirBS  ])[kbs  ];
-      //f_TS   = (D.f[dirBN  ])[kbn  ];
-      //f_BN   = (D.f[dirTS  ])[kts  ];
-      //f_BSW  = (D.f[dirTNE ])[ktne ];
-      //f_BNE  = (D.f[dirTSW ])[ktsw ];
-      //f_BNW  = (D.f[dirTSE ])[ktse ];
-      //f_BSE  = (D.f[dirTNW ])[ktnw ];
-      //f_TSW  = (D.f[dirBNE ])[kbne ];
-      //f_TNE  = (D.f[dirBSW ])[kbsw ];
-      //f_TNW  = (D.f[dirBSE ])[kbse ];
-      //f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_E   = (D.f[E   ])[ke   ];
+      f_W   = (D.f[W   ])[kw   ];
+      f_N   = (D.f[N   ])[kn   ];
+      f_S   = (D.f[S   ])[ks   ];
+      f_T   = (D.f[T   ])[kt   ];
+      f_B   = (D.f[B   ])[kb   ];
+      f_NE  = (D.f[NE  ])[kne  ];
+      f_SW  = (D.f[SW  ])[ksw  ];
+      f_SE  = (D.f[SE  ])[kse  ];
+      f_NW  = (D.f[NW  ])[knw  ];
+      f_TE  = (D.f[TE  ])[kte  ];
+      f_BW  = (D.f[BW  ])[kbw  ];
+      f_BE  = (D.f[BE  ])[kbe  ];
+      f_TW  = (D.f[TW  ])[ktw  ];
+      f_TN  = (D.f[TN  ])[ktn  ];
+      f_BS  = (D.f[BS  ])[kbs  ];
+      f_BN  = (D.f[BN  ])[kbn  ];
+      f_TS  = (D.f[TS  ])[kts  ];
+      f_TNE = (D.f[TNE ])[ktne ];
+      f_TSW = (D.f[TSW ])[ktsw ];
+      f_TSE = (D.f[TSE ])[ktse ];
+      f_TNW = (D.f[TNW ])[ktnw ];
+      f_BNE = (D.f[BNE ])[kbne ];
+      f_BSW = (D.f[BSW ])[kbsw ];
+      f_BSE = (D.f[BSE ])[kbse ];
+      f_BNW = (D.f[BNW ])[kbnw ];
+      //f_W    = (D.f[E   ])[ke   ];
+      //f_E    = (D.f[W   ])[kw   ];
+      //f_S    = (D.f[N   ])[kn   ];
+      //f_N    = (D.f[S   ])[ks   ];
+      //f_B    = (D.f[T   ])[kt   ];
+      //f_T    = (D.f[B   ])[kb   ];
+      //f_SW   = (D.f[NE  ])[kne  ];
+      //f_NE   = (D.f[SW  ])[ksw  ];
+      //f_NW   = (D.f[SE  ])[kse  ];
+      //f_SE   = (D.f[NW  ])[knw  ];
+      //f_BW   = (D.f[TE  ])[kte  ];
+      //f_TE   = (D.f[BW  ])[kbw  ];
+      //f_TW   = (D.f[BE  ])[kbe  ];
+      //f_BE   = (D.f[TW  ])[ktw  ];
+      //f_BS   = (D.f[TN  ])[ktn  ];
+      //f_TN   = (D.f[BS  ])[kbs  ];
+      //f_TS   = (D.f[BN  ])[kbn  ];
+      //f_BN   = (D.f[TS  ])[kts  ];
+      //f_BSW  = (D.f[TNE ])[ktne ];
+      //f_BNE  = (D.f[TSW ])[ktsw ];
+      //f_BNW  = (D.f[TSE ])[ktse ];
+      //f_BSE  = (D.f[TNW ])[ktnw ];
+      //f_TSW  = (D.f[BNE ])[kbne ];
+      //f_TNE  = (D.f[BSW ])[kbsw ];
+      //f_TNW  = (D.f[BSE ])[kbse ];
+      //f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q;
       drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -1284,63 +1284,63 @@ extern "C" __global__ void QDeviceCompHighNu27(
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -1358,234 +1358,234 @@ extern "C" __global__ void QDeviceCompHighNu27(
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*( vx1        )*/+c9o2*( vx1        )*( vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirW])[kw]=((c1o1 - q) * f_E + q * ((f_E + f_W) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloX     )) / (q + c1o1) ;
-         //(D.f[dirW])[kw]=(one-q)/(one+q)*(f_E-f_W+(f_E+f_W-two*feq*om1)/(one-om1))*c1o2+(q*(f_E+f_W)-six*c2over27*( VeloX     ))/(one+q) - c2over27 * drho;
-         //(D.f[dirW])[kw]=zero;
+         (D.f[W])[kw]=((c1o1 - q) * f_E + q * ((f_E + f_W) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloX     )) / (q + c1o1) ;
+         //(D.f[W])[kw]=(one-q)/(one+q)*(f_E-f_W+(f_E+f_W-two*feq*om1)/(one-om1))*c1o2+(q*(f_E+f_W)-six*c2over27*( VeloX     ))/(one+q) - c2over27 * drho;
+         //(D.f[W])[kw]=zero;
       }
 
       q = q_dirW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(-vx1        )*/+c9o2*(-vx1        )*(-vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirE])[ke]=((c1o1 - q) * f_W + q * ((f_W + f_E) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloX     )) / (q + c1o1) ;
-         //(D.f[dirE])[ke]=(one-q)/(one+q)*(f_W-f_E+(f_W+f_E-two*feq*om1)/(one-om1))*c1o2+(q*(f_W+f_E)-six*c2over27*(-VeloX     ))/(one+q) - c2over27 * drho;
-         //(D.f[dirE])[ke]=zero;
+         (D.f[E])[ke]=((c1o1 - q) * f_W + q * ((f_W + f_E) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloX     )) / (q + c1o1) ;
+         //(D.f[E])[ke]=(one-q)/(one+q)*(f_W-f_E+(f_W+f_E-two*feq*om1)/(one-om1))*c1o2+(q*(f_W+f_E)-six*c2over27*(-VeloX     ))/(one+q) - c2over27 * drho;
+         //(D.f[E])[ke]=zero;
       }
 
       q = q_dirN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(    vx2     )*/+c9o2*(     vx2    )*(     vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirS])[ks]=((c1o1 - q) * f_N + q * ((f_N + f_S) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloY     )) / (q + c1o1) ;
-         //(D.f[dirS])[ks]=(one-q)/(one+q)*(f_N-f_S+(f_N+f_S-two*feq*om1)/(one-om1))*c1o2+(q*(f_N+f_S)-six*c2over27*( VeloY     ))/(one+q) - c2over27 * drho;
-         //(D.f[dirS])[ks]=zero;
+         (D.f[S])[ks]=((c1o1 - q) * f_N + q * ((f_N + f_S) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloY     )) / (q + c1o1) ;
+         //(D.f[S])[ks]=(one-q)/(one+q)*(f_N-f_S+(f_N+f_S-two*feq*om1)/(one-om1))*c1o2+(q*(f_N+f_S)-six*c2over27*( VeloY     ))/(one+q) - c2over27 * drho;
+         //(D.f[S])[ks]=zero;
       }
 
       q = q_dirS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(   -vx2     )*/+c9o2*(    -vx2    )*(    -vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirN])[kn]=((c1o1 - q) * f_S + q * ((f_S + f_N) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloY     )) / (q + c1o1) ;
-         //(D.f[dirN])[kn]=(one-q)/(one+q)*(f_S-f_N+(f_S+f_N-two*feq*om1)/(one-om1))*c1o2+(q*(f_S+f_N)-six*c2over27*(-VeloY     ))/(one+q) - c2over27 * drho;
-         //(D.f[dirN])[kn]=zero;
+         (D.f[N])[kn]=((c1o1 - q) * f_S + q * ((f_S + f_N) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloY     )) / (q + c1o1) ;
+         //(D.f[N])[kn]=(one-q)/(one+q)*(f_S-f_N+(f_S+f_N-two*feq*om1)/(one-om1))*c1o2+(q*(f_S+f_N)-six*c2over27*(-VeloY     ))/(one+q) - c2over27 * drho;
+         //(D.f[N])[kn]=zero;
       }
 
       q = q_dirT[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(         vx3)*/+c9o2*(         vx3)*(         vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirB])[kb]=((c1o1 - q) * f_T + q * ((f_T + f_B) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloZ     )) / (q + c1o1) ;
-         //(D.f[dirB])[kb]=(one-q)/(one+q)*(f_T-f_B+(f_T+f_B-two*feq*om1)/(one-om1))*c1o2+(q*(f_T+f_B)-six*c2over27*( VeloZ     ))/(one+q) - c2over27 * drho;
-         //(D.f[dirB])[kb]=one;
+         (D.f[B])[kb]=((c1o1 - q) * f_T + q * ((f_T + f_B) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloZ     )) / (q + c1o1) ;
+         //(D.f[B])[kb]=(one-q)/(one+q)*(f_T-f_B+(f_T+f_B-two*feq*om1)/(one-om1))*c1o2+(q*(f_T+f_B)-six*c2over27*( VeloZ     ))/(one+q) - c2over27 * drho;
+         //(D.f[B])[kb]=one;
       }
 
       q = q_dirB[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(        -vx3)*/+c9o2*(        -vx3)*(        -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirT])[kt]=((c1o1 - q) * f_B + q * ((f_B + f_T) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloZ     )) / (q + c1o1) ;
-         //(D.f[dirT])[kt]=(one-q)/(one+q)*(f_B-f_T+(f_B+f_T-two*feq*om1)/(one-om1))*c1o2+(q*(f_B+f_T)-six*c2over27*(-VeloZ     ))/(one+q) - c2over27 * drho;
-         //(D.f[dirT])[kt]=zero;
+         (D.f[T])[kt]=((c1o1 - q) * f_B + q * ((f_B + f_T) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloZ     )) / (q + c1o1) ;
+         //(D.f[T])[kt]=(one-q)/(one+q)*(f_B-f_T+(f_B+f_T-two*feq*om1)/(one-om1))*c1o2+(q*(f_B+f_T)-six*c2over27*(-VeloZ     ))/(one+q) - c2over27 * drho;
+         //(D.f[T])[kt]=zero;
       }
 
       q = q_dirNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1+vx2    )*/+c9o2*( vx1+vx2    )*( vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSW])[ksw]=((c1o1 - q) * f_NE + q * ((f_NE + f_SW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloY)) / (q + c1o1) ;
-         //(D.f[dirSW])[ksw]=(one-q)/(one+q)*(f_NE-f_SW+(f_NE+f_SW-two*feq*om1)/(one-om1))*c1o2+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q) - c1over54 * drho;
-         //(D.f[dirSW])[ksw]=zero;
+         (D.f[SW])[ksw]=((c1o1 - q) * f_NE + q * ((f_NE + f_SW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloY)) / (q + c1o1) ;
+         //(D.f[SW])[ksw]=(one-q)/(one+q)*(f_NE-f_SW+(f_NE+f_SW-two*feq*om1)/(one-om1))*c1o2+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q) - c1over54 * drho;
+         //(D.f[SW])[ksw]=zero;
       }
 
       q = q_dirSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1-vx2    )*/+c9o2*(-vx1-vx2    )*(-vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNE])[kne]=((c1o1 - q) * f_SW + q * ((f_SW + f_NE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloY)) / (q + c1o1) ;
-         //(D.f[dirNE])[kne]=(one-q)/(one+q)*(f_SW-f_NE+(f_SW+f_NE-two*feq*om1)/(one-om1))*c1o2+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q) - c1over54 * drho;
-         //(D.f[dirNE])[kne]=zero;
+         (D.f[NE])[kne]=((c1o1 - q) * f_SW + q * ((f_SW + f_NE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloY)) / (q + c1o1) ;
+         //(D.f[NE])[kne]=(one-q)/(one+q)*(f_SW-f_NE+(f_SW+f_NE-two*feq*om1)/(one-om1))*c1o2+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q) - c1over54 * drho;
+         //(D.f[NE])[kne]=zero;
       }
 
       q = q_dirSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1-vx2    )*/+c9o2*( vx1-vx2    )*( vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNW])[knw]=((c1o1 - q) * f_SE + q * ((f_SE + f_NW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloY)) / (q + c1o1) ;
-         //(D.f[dirNW])[knw]=(one-q)/(one+q)*(f_SE-f_NW+(f_SE+f_NW-two*feq*om1)/(one-om1))*c1o2+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q) - c1over54 * drho;
-         //(D.f[dirNW])[knw]=zero;
+         (D.f[NW])[knw]=((c1o1 - q) * f_SE + q * ((f_SE + f_NW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloY)) / (q + c1o1) ;
+         //(D.f[NW])[knw]=(one-q)/(one+q)*(f_SE-f_NW+(f_SE+f_NW-two*feq*om1)/(one-om1))*c1o2+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q) - c1over54 * drho;
+         //(D.f[NW])[knw]=zero;
       }
 
       q = q_dirNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1+vx2    )*/+c9o2*(-vx1+vx2    )*(-vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSE])[kse]=((c1o1 - q) * f_NW + q * ((f_NW + f_SE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloY)) / (q + c1o1) ;
-         //(D.f[dirSE])[kse]=(one-q)/(one+q)*(f_NW-f_SE+(f_NW+f_SE-two*feq*om1)/(one-om1))*c1o2+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q) - c1over54 * drho;
-         //(D.f[dirSE])[kse]=zero;
+         (D.f[SE])[kse]=((c1o1 - q) * f_NW + q * ((f_NW + f_SE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloY)) / (q + c1o1) ;
+         //(D.f[SE])[kse]=(one-q)/(one+q)*(f_NW-f_SE+(f_NW+f_SE-two*feq*om1)/(one-om1))*c1o2+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q) - c1over54 * drho;
+         //(D.f[SE])[kse]=zero;
       }
 
       q = q_dirTE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1    +vx3)*/+c9o2*( vx1    +vx3)*( vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBW])[kbw]=((c1o1 - q) * f_TE + q * ((f_TE + f_BW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBW])[kbw]=(one-q)/(one+q)*(f_TE-f_BW+(f_TE+f_BW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirBW])[kbw]=zero;
+         (D.f[BW])[kbw]=((c1o1 - q) * f_TE + q * ((f_TE + f_BW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloZ)) / (q + c1o1) ;
+         //(D.f[BW])[kbw]=(one-q)/(one+q)*(f_TE-f_BW+(f_TE+f_BW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[BW])[kbw]=zero;
       }
 
       q = q_dirBW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1    -vx3)*/+c9o2*(-vx1    -vx3)*(-vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTE])[kte]=((c1o1 - q) * f_BW + q * ((f_BW + f_TE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTE])[kte]=(one-q)/(one+q)*(f_BW-f_TE+(f_BW+f_TE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirTE])[kte]=zero;
+         (D.f[TE])[kte]=((c1o1 - q) * f_BW + q * ((f_BW + f_TE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloZ)) / (q + c1o1) ;
+         //(D.f[TE])[kte]=(one-q)/(one+q)*(f_BW-f_TE+(f_BW+f_TE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[TE])[kte]=zero;
       }
 
       q = q_dirBE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1    -vx3)*/+c9o2*( vx1    -vx3)*( vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTW])[ktw]=((c1o1 - q) * f_BE + q * ((f_BE + f_TW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTW])[ktw]=(one-q)/(one+q)*(f_BE-f_TW+(f_BE+f_TW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirTW])[ktw]=zero;
+         (D.f[TW])[ktw]=((c1o1 - q) * f_BE + q * ((f_BE + f_TW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloZ)) / (q + c1o1) ;
+         //(D.f[TW])[ktw]=(one-q)/(one+q)*(f_BE-f_TW+(f_BE+f_TW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[TW])[ktw]=zero;
       }
 
       q = q_dirTW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1    +vx3)*/+c9o2*(-vx1    +vx3)*(-vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBE])[kbe]=((c1o1 - q) * f_TW + q * ((f_TW + f_BE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBE])[kbe]=(one-q)/(one+q)*(f_TW-f_BE+(f_TW+f_BE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirBE])[kbe]=zero;
+         (D.f[BE])[kbe]=((c1o1 - q) * f_TW + q * ((f_TW + f_BE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloZ)) / (q + c1o1) ;
+         //(D.f[BE])[kbe]=(one-q)/(one+q)*(f_TW-f_BE+(f_TW+f_BE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[BE])[kbe]=zero;
       }
 
       q = q_dirTN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(     vx2+vx3)*/+c9o2*(     vx2+vx3)*(     vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBS])[kbs]=((c1o1 - q) * f_TN + q * ((f_TN + f_BS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBS])[kbs]=(one-q)/(one+q)*(f_TN-f_BS+(f_TN+f_BS-two*feq*om1)/(one-om1))*c1o2+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirBS])[kbs]=zero;
+         (D.f[BS])[kbs]=((c1o1 - q) * f_TN + q * ((f_TN + f_BS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY+VeloZ)) / (q + c1o1) ;
+         //(D.f[BS])[kbs]=(one-q)/(one+q)*(f_TN-f_BS+(f_TN+f_BS-two*feq*om1)/(one-om1))*c1o2+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[BS])[kbs]=zero;
       }
 
       q = q_dirBS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(    -vx2-vx3)*/+c9o2*(    -vx2-vx3)*(    -vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTN])[ktn]=((c1o1 - q) * f_BS + q * ((f_BS + f_TN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTN])[ktn]=(one-q)/(one+q)*(f_BS-f_TN+(f_BS+f_TN-two*feq*om1)/(one-om1))*c1o2+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirTN])[ktn]=zero;
+         (D.f[TN])[ktn]=((c1o1 - q) * f_BS + q * ((f_BS + f_TN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY-VeloZ)) / (q + c1o1) ;
+         //(D.f[TN])[ktn]=(one-q)/(one+q)*(f_BS-f_TN+(f_BS+f_TN-two*feq*om1)/(one-om1))*c1o2+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[TN])[ktn]=zero;
       }
 
       q = q_dirBN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(     vx2-vx3)*/+c9o2*(     vx2-vx3)*(     vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTS])[kts]=((c1o1 - q) * f_BN + q * ((f_BN + f_TS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTS])[kts]=(one-q)/(one+q)*(f_BN-f_TS+(f_BN+f_TS-two*feq*om1)/(one-om1))*c1o2+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirTS])[kts]=zero;
+         (D.f[TS])[kts]=((c1o1 - q) * f_BN + q * ((f_BN + f_TS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY-VeloZ)) / (q + c1o1) ;
+         //(D.f[TS])[kts]=(one-q)/(one+q)*(f_BN-f_TS+(f_BN+f_TS-two*feq*om1)/(one-om1))*c1o2+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[TS])[kts]=zero;
       }
 
       q = q_dirTS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(    -vx2+vx3)*/+c9o2*(    -vx2+vx3)*(    -vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBN])[kbn]=((c1o1 - q) * f_TS + q * ((f_TS + f_BN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBN])[kbn]=(one-q)/(one+q)*(f_TS-f_BN+(f_TS+f_BN-two*feq*om1)/(one-om1))*c1o2+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirBN])[kbn]=zero;
+         (D.f[BN])[kbn]=((c1o1 - q) * f_TS + q * ((f_TS + f_BN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY+VeloZ)) / (q + c1o1) ;
+         //(D.f[BN])[kbn]=(one-q)/(one+q)*(f_TS-f_BN+(f_TS+f_BN-two*feq*om1)/(one-om1))*c1o2+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[BN])[kbn]=zero;
       }
 
       q = q_dirTNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSW])[kbsw]=((c1o1 - q) * f_TNE + q * ((f_TNE + f_BSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBSW])[kbsw]=(one-q)/(one+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirBSW])[kbsw]=zero;
+         (D.f[BSW])[kbsw]=((c1o1 - q) * f_TNE + q * ((f_TNE + f_BSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY+VeloZ)) / (q + c1o1) ;
+         //(D.f[BSW])[kbsw]=(one-q)/(one+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[BSW])[kbsw]=zero;
       }
 
       q = q_dirBSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNE])[ktne]=((c1o1 - q) * f_BSW + q * ((f_BSW + f_TNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTNE])[ktne]=(one-q)/(one+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirTNE])[ktne]=zero;
+         (D.f[TNE])[ktne]=((c1o1 - q) * f_BSW + q * ((f_BSW + f_TNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY-VeloZ)) / (q + c1o1) ;
+         //(D.f[TNE])[ktne]=(one-q)/(one+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[TNE])[ktne]=zero;
       }
 
       q = q_dirBNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSW])[ktsw]=((c1o1 - q) * f_BNE + q * ((f_BNE + f_TSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTSW])[ktsw]=(one-q)/(one+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirTSW])[ktsw]=zero;
+         (D.f[TSW])[ktsw]=((c1o1 - q) * f_BNE + q * ((f_BNE + f_TSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY-VeloZ)) / (q + c1o1) ;
+         //(D.f[TSW])[ktsw]=(one-q)/(one+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[TSW])[ktsw]=zero;
       }
 
       q = q_dirTSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNE])[kbne]=((c1o1 - q) * f_TSW + q * ((f_TSW + f_BNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBNE])[kbne]=(one-q)/(one+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirBNE])[kbne]=zero;
+         (D.f[BNE])[kbne]=((c1o1 - q) * f_TSW + q * ((f_TSW + f_BNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY+VeloZ)) / (q + c1o1) ;
+         //(D.f[BNE])[kbne]=(one-q)/(one+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[BNE])[kbne]=zero;
       }
 
       q = q_dirTSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNW])[kbnw]=((c1o1 - q) * f_TSE + q * ((f_TSE + f_BNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBNW])[kbnw]=(one-q)/(one+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirBNW])[kbnw]=zero;
+         (D.f[BNW])[kbnw]=((c1o1 - q) * f_TSE + q * ((f_TSE + f_BNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY+VeloZ)) / (q + c1o1) ;
+         //(D.f[BNW])[kbnw]=(one-q)/(one+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[BNW])[kbnw]=zero;
       }
 
       q = q_dirBNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSE])[ktse]=((c1o1 - q) * f_BNW + q * ((f_BNW + f_TSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTSE])[ktse]=(one-q)/(one+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirTSE])[ktse]=zero;
+         (D.f[TSE])[ktse]=((c1o1 - q) * f_BNW + q * ((f_BNW + f_TSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY-VeloZ)) / (q + c1o1) ;
+         //(D.f[TSE])[ktse]=(one-q)/(one+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[TSE])[ktse]=zero;
       }
 
       q = q_dirBSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNW])[ktnw]=((c1o1 - q) * f_BSE + q * ((f_BSE + f_TNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTNW])[ktnw]=(one-q)/(one+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirTNW])[ktnw]=zero;
+         (D.f[TNW])[ktnw]=((c1o1 - q) * f_BSE + q * ((f_BSE + f_TNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY-VeloZ)) / (q + c1o1) ;
+         //(D.f[TNW])[ktnw]=(one-q)/(one+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[TNW])[ktnw]=zero;
       }
 
       q = q_dirTNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSE])[kbse]=((c1o1 - q) * f_TNW + q * ((f_TNW + f_BSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBSE])[kbse]=(one-q)/(one+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirBSE])[kbse]=zero;
+         (D.f[BSE])[kbse]=((c1o1 - q) * f_TNW + q * ((f_TNW + f_BSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY+VeloZ)) / (q + c1o1) ;
+         //(D.f[BSE])[kbse]=(one-q)/(one+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[BSE])[kbse]=zero;
       }
    }
 }
@@ -1707,32 +1707,32 @@ extern "C" __global__ void QDeviceComp27(
       ////////////////////////////////////////////////////////////////////////////////
       //! - Set local distributions
       //!
-      real f_W    = (dist.f[dirE   ])[ke   ];
-      real f_E    = (dist.f[dirW   ])[kw   ];
-      real f_S    = (dist.f[dirN   ])[kn   ];
-      real f_N    = (dist.f[dirS   ])[ks   ];
-      real f_B    = (dist.f[dirT   ])[kt   ];
-      real f_T    = (dist.f[dirB   ])[kb   ];
-      real f_SW   = (dist.f[dirNE  ])[kne  ];
-      real f_NE   = (dist.f[dirSW  ])[ksw  ];
-      real f_NW   = (dist.f[dirSE  ])[kse  ];
-      real f_SE   = (dist.f[dirNW  ])[knw  ];
-      real f_BW   = (dist.f[dirTE  ])[kte  ];
-      real f_TE   = (dist.f[dirBW  ])[kbw  ];
-      real f_TW   = (dist.f[dirBE  ])[kbe  ];
-      real f_BE   = (dist.f[dirTW  ])[ktw  ];
-      real f_BS   = (dist.f[dirTN  ])[ktn  ];
-      real f_TN   = (dist.f[dirBS  ])[kbs  ];
-      real f_TS   = (dist.f[dirBN  ])[kbn  ];
-      real f_BN   = (dist.f[dirTS  ])[kts  ];
-      real f_BSW  = (dist.f[dirTNE ])[ktne ];
-      real f_BNE  = (dist.f[dirTSW ])[ktsw ];
-      real f_BNW  = (dist.f[dirTSE ])[ktse ];
-      real f_BSE  = (dist.f[dirTNW ])[ktnw ];
-      real f_TSW  = (dist.f[dirBNE ])[kbne ];
-      real f_TNE  = (dist.f[dirBSW ])[kbsw ];
-      real f_TNW  = (dist.f[dirBSE ])[kbse ];
-      real f_TSE  = (dist.f[dirBNW ])[kbnw ];
+      real f_W    = (dist.f[E   ])[ke   ];
+      real f_E    = (dist.f[W   ])[kw   ];
+      real f_S    = (dist.f[N   ])[kn   ];
+      real f_N    = (dist.f[S   ])[ks   ];
+      real f_B    = (dist.f[T   ])[kt   ];
+      real f_T    = (dist.f[B   ])[kb   ];
+      real f_SW   = (dist.f[NE  ])[kne  ];
+      real f_NE   = (dist.f[SW  ])[ksw  ];
+      real f_NW   = (dist.f[SE  ])[kse  ];
+      real f_SE   = (dist.f[NW  ])[knw  ];
+      real f_BW   = (dist.f[TE  ])[kte  ];
+      real f_TE   = (dist.f[BW  ])[kbw  ];
+      real f_TW   = (dist.f[BE  ])[kbe  ];
+      real f_BE   = (dist.f[TW  ])[ktw  ];
+      real f_BS   = (dist.f[TN  ])[ktn  ];
+      real f_TN   = (dist.f[BS  ])[kbs  ];
+      real f_TS   = (dist.f[BN  ])[kbn  ];
+      real f_BN   = (dist.f[TS  ])[kts  ];
+      real f_BSW  = (dist.f[TNE ])[ktne ];
+      real f_BNE  = (dist.f[TSW ])[ktsw ];
+      real f_BNW  = (dist.f[TSE ])[ktse ];
+      real f_BSE  = (dist.f[TNW ])[ktnw ];
+      real f_TSW  = (dist.f[BNE ])[kbne ];
+      real f_TNE  = (dist.f[BSW ])[kbsw ];
+      real f_TNW  = (dist.f[BSE ])[kbse ];
+      real f_TSE  = (dist.f[BNW ])[kbnw ];
 
       ////////////////////////////////////////////////////////////////////////////////
       //! - Calculate macroscopic quantities
@@ -1763,213 +1763,213 @@ extern "C" __global__ void QDeviceComp27(
        ////////////////////////////////////////////////////////////////////////////////
       //! - Update distributions with subgrid distance (q) between zero and one
       real feq, q, velocityLB;
-      q = (subgridD.q[dirE])[k];
+      q = (subgridD.q[E])[k];
       if (q>=c0o1 && q<=c1o1) // only update distribution for q between zero and one
       {
          velocityLB = vx1;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
-         (dist.f[dirW])[kw] = getInterpolatedDistributionForNoSlipBC(q, f_E, f_W, feq, omega);
+         (dist.f[W])[kw] = getInterpolatedDistributionForNoSlipBC(q, f_E, f_W, feq, omega);
       }
 
-      q = (subgridD.q[dirW])[k];
+      q = (subgridD.q[W])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1;
          
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
-         (dist.f[dirE])[ke] = getInterpolatedDistributionForNoSlipBC(q, f_W, f_E, feq, omega);
+         (dist.f[E])[ke] = getInterpolatedDistributionForNoSlipBC(q, f_W, f_E, feq, omega);
       }
 
-      q = (subgridD.q[dirN])[k];
+      q = (subgridD.q[N])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
-         (dist.f[dirS])[ks] = getInterpolatedDistributionForNoSlipBC(q, f_N, f_S, feq, omega);
+         (dist.f[S])[ks] = getInterpolatedDistributionForNoSlipBC(q, f_N, f_S, feq, omega);
       }
 
-      q = (subgridD.q[dirS])[k];
+      q = (subgridD.q[S])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
-         (dist.f[dirN])[kn] = getInterpolatedDistributionForNoSlipBC(q, f_S, f_N, feq, omega);
+         (dist.f[N])[kn] = getInterpolatedDistributionForNoSlipBC(q, f_S, f_N, feq, omega);
       }
 
-      q = (subgridD.q[dirT])[k];
+      q = (subgridD.q[T])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
-         (dist.f[dirB])[kb] = getInterpolatedDistributionForNoSlipBC(q, f_T, f_B, feq, omega);
+         (dist.f[B])[kb] = getInterpolatedDistributionForNoSlipBC(q, f_T, f_B, feq, omega);
       }
 
-      q = (subgridD.q[dirB])[k];
+      q = (subgridD.q[B])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
-         (dist.f[dirT])[kt] = getInterpolatedDistributionForNoSlipBC(q, f_B, f_T, feq, omega);
+         (dist.f[T])[kt] = getInterpolatedDistributionForNoSlipBC(q, f_B, f_T, feq, omega);
       }
 
-      q = (subgridD.q[dirNE])[k];
+      q = (subgridD.q[NE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirSW])[ksw] = getInterpolatedDistributionForNoSlipBC(q, f_NE, f_SW, feq, omega);
+         (dist.f[SW])[ksw] = getInterpolatedDistributionForNoSlipBC(q, f_NE, f_SW, feq, omega);
       }
 
-      q = (subgridD.q[dirSW])[k];
+      q = (subgridD.q[SW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirNE])[kne] = getInterpolatedDistributionForNoSlipBC(q, f_SW, f_NE, feq, omega);
+         (dist.f[NE])[kne] = getInterpolatedDistributionForNoSlipBC(q, f_SW, f_NE, feq, omega);
       }
 
-      q = (subgridD.q[dirSE])[k];
+      q = (subgridD.q[SE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirNW])[knw] = getInterpolatedDistributionForNoSlipBC(q, f_SE, f_NW, feq, omega);
+         (dist.f[NW])[knw] = getInterpolatedDistributionForNoSlipBC(q, f_SE, f_NW, feq, omega);
       }
 
-      q = (subgridD.q[dirNW])[k];
+      q = (subgridD.q[NW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirSE])[kse] = getInterpolatedDistributionForNoSlipBC(q, f_NW, f_SE, feq, omega);
+         (dist.f[SE])[kse] = getInterpolatedDistributionForNoSlipBC(q, f_NW, f_SE, feq, omega);
       }
 
-      q = (subgridD.q[dirTE])[k];
+      q = (subgridD.q[TE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirBW])[kbw] = getInterpolatedDistributionForNoSlipBC(q, f_TE, f_BW, feq, omega);
+         (dist.f[BW])[kbw] = getInterpolatedDistributionForNoSlipBC(q, f_TE, f_BW, feq, omega);
       }
 
-      q = (subgridD.q[dirBW])[k];
+      q = (subgridD.q[BW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirTE])[kte] = getInterpolatedDistributionForNoSlipBC(q, f_BW, f_TE, feq, omega);
+         (dist.f[TE])[kte] = getInterpolatedDistributionForNoSlipBC(q, f_BW, f_TE, feq, omega);
       }
 
-      q = (subgridD.q[dirBE])[k];
+      q = (subgridD.q[BE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirTW])[ktw] = getInterpolatedDistributionForNoSlipBC(q, f_BE, f_TW, feq, omega);
+         (dist.f[TW])[ktw] = getInterpolatedDistributionForNoSlipBC(q, f_BE, f_TW, feq, omega);
       }
 
-      q = (subgridD.q[dirTW])[k];
+      q = (subgridD.q[TW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirBE])[kbe] = getInterpolatedDistributionForNoSlipBC(q, f_TW, f_BE, feq, omega);
+         (dist.f[BE])[kbe] = getInterpolatedDistributionForNoSlipBC(q, f_TW, f_BE, feq, omega);
       }
 
-      q = (subgridD.q[dirTN])[k];
+      q = (subgridD.q[TN])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirBS])[kbs] = getInterpolatedDistributionForNoSlipBC(q, f_TN, f_BS, feq, omega);
+         (dist.f[BS])[kbs] = getInterpolatedDistributionForNoSlipBC(q, f_TN, f_BS, feq, omega);
       }
 
-      q = (subgridD.q[dirBS])[k];
+      q = (subgridD.q[BS])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirTN])[ktn] = getInterpolatedDistributionForNoSlipBC(q, f_BS, f_TN, feq, omega);
+         (dist.f[TN])[ktn] = getInterpolatedDistributionForNoSlipBC(q, f_BS, f_TN, feq, omega);
       }
 
-      q = (subgridD.q[dirBN])[k];
+      q = (subgridD.q[BN])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirTS])[kts] = getInterpolatedDistributionForNoSlipBC(q, f_BN, f_TS, feq, omega);
+         (dist.f[TS])[kts] = getInterpolatedDistributionForNoSlipBC(q, f_BN, f_TS, feq, omega);
       }
 
-      q = (subgridD.q[dirTS])[k];
+      q = (subgridD.q[TS])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirBN])[kbn] = getInterpolatedDistributionForNoSlipBC(q, f_TS, f_BN, feq, omega);
+         (dist.f[BN])[kbn] = getInterpolatedDistributionForNoSlipBC(q, f_TS, f_BN, feq, omega);
       }
 
-      q = (subgridD.q[dirTNE])[k];
+      q = (subgridD.q[TNE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirBSW])[kbsw] = getInterpolatedDistributionForNoSlipBC(q, f_TNE, f_BSW, feq, omega);
+         (dist.f[BSW])[kbsw] = getInterpolatedDistributionForNoSlipBC(q, f_TNE, f_BSW, feq, omega);
       }
 
-      q = (subgridD.q[dirBSW])[k];
+      q = (subgridD.q[BSW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirTNE])[ktne] = getInterpolatedDistributionForNoSlipBC(q, f_BSW, f_TNE, feq, omega);
+         (dist.f[TNE])[ktne] = getInterpolatedDistributionForNoSlipBC(q, f_BSW, f_TNE, feq, omega);
       }
 
-      q = (subgridD.q[dirBNE])[k];
+      q = (subgridD.q[BNE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirTSW])[ktsw] = getInterpolatedDistributionForNoSlipBC(q, f_BNE, f_TSW, feq, omega);
+         (dist.f[TSW])[ktsw] = getInterpolatedDistributionForNoSlipBC(q, f_BNE, f_TSW, feq, omega);
       }
 
-      q = (subgridD.q[dirTSW])[k];
+      q = (subgridD.q[TSW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirBNE])[kbne] = getInterpolatedDistributionForNoSlipBC(q, f_TSW, f_BNE, feq, omega);
+         (dist.f[BNE])[kbne] = getInterpolatedDistributionForNoSlipBC(q, f_TSW, f_BNE, feq, omega);
       }
 
-      q = (subgridD.q[dirTSE])[k];
+      q = (subgridD.q[TSE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirBNW])[kbnw] = getInterpolatedDistributionForNoSlipBC(q, f_TSE, f_BNW, feq, omega);
+         (dist.f[BNW])[kbnw] = getInterpolatedDistributionForNoSlipBC(q, f_TSE, f_BNW, feq, omega);
       }
 
-      q = (subgridD.q[dirBNW])[k];
+      q = (subgridD.q[BNW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirTSE])[ktse] = getInterpolatedDistributionForNoSlipBC(q, f_BNW, f_TSE, feq, omega);
+         (dist.f[TSE])[ktse] = getInterpolatedDistributionForNoSlipBC(q, f_BNW, f_TSE, feq, omega);
       }
 
-      q = (subgridD.q[dirBSE])[k];
+      q = (subgridD.q[BSE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirTNW])[ktnw] = getInterpolatedDistributionForNoSlipBC(q, f_BSE, f_TNW, feq, omega);
+         (dist.f[TNW])[ktnw] = getInterpolatedDistributionForNoSlipBC(q, f_BSE, f_TNW, feq, omega);
       }
 
-      q = (subgridD.q[dirTNW])[k];
+      q = (subgridD.q[TNW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirBSE])[kbse] = getInterpolatedDistributionForNoSlipBC(q, f_TNW, f_BSE, feq, omega);
+         (dist.f[BSE])[kbse] = getInterpolatedDistributionForNoSlipBC(q, f_TNW, f_BSE, feq, omega);
       }
    }
 }
@@ -2094,32 +2094,32 @@ extern "C" __global__ void QDevice27(real* distributions,
       ////////////////////////////////////////////////////////////////////////////////
       //! - Set local distributions
       //!
-      real f_W    = (dist.f[dirE   ])[ke   ];
-      real f_E    = (dist.f[dirW   ])[kw   ];
-      real f_S    = (dist.f[dirN   ])[kn   ];
-      real f_N    = (dist.f[dirS   ])[ks   ];
-      real f_B    = (dist.f[dirT   ])[kt   ];
-      real f_T    = (dist.f[dirB   ])[kb   ];
-      real f_SW   = (dist.f[dirNE  ])[kne  ];
-      real f_NE   = (dist.f[dirSW  ])[ksw  ];
-      real f_NW   = (dist.f[dirSE  ])[kse  ];
-      real f_SE   = (dist.f[dirNW  ])[knw  ];
-      real f_BW   = (dist.f[dirTE  ])[kte  ];
-      real f_TE   = (dist.f[dirBW  ])[kbw  ];
-      real f_TW   = (dist.f[dirBE  ])[kbe  ];
-      real f_BE   = (dist.f[dirTW  ])[ktw  ];
-      real f_BS   = (dist.f[dirTN  ])[ktn  ];
-      real f_TN   = (dist.f[dirBS  ])[kbs  ];
-      real f_TS   = (dist.f[dirBN  ])[kbn  ];
-      real f_BN   = (dist.f[dirTS  ])[kts  ];
-      real f_BSW  = (dist.f[dirTNE ])[ktne ];
-      real f_BNE  = (dist.f[dirTSW ])[ktsw ];
-      real f_BNW  = (dist.f[dirTSE ])[ktse ];
-      real f_BSE  = (dist.f[dirTNW ])[ktnw ];
-      real f_TSW  = (dist.f[dirBNE ])[kbne ];
-      real f_TNE  = (dist.f[dirBSW ])[kbsw ];
-      real f_TNW  = (dist.f[dirBSE ])[kbse ];
-      real f_TSE  = (dist.f[dirBNW ])[kbnw ];
+      real f_W    = (dist.f[E   ])[ke   ];
+      real f_E    = (dist.f[W   ])[kw   ];
+      real f_S    = (dist.f[N   ])[kn   ];
+      real f_N    = (dist.f[S   ])[ks   ];
+      real f_B    = (dist.f[T   ])[kt   ];
+      real f_T    = (dist.f[B   ])[kb   ];
+      real f_SW   = (dist.f[NE  ])[kne  ];
+      real f_NE   = (dist.f[SW  ])[ksw  ];
+      real f_NW   = (dist.f[SE  ])[kse  ];
+      real f_SE   = (dist.f[NW  ])[knw  ];
+      real f_BW   = (dist.f[TE  ])[kte  ];
+      real f_TE   = (dist.f[BW  ])[kbw  ];
+      real f_TW   = (dist.f[BE  ])[kbe  ];
+      real f_BE   = (dist.f[TW  ])[ktw  ];
+      real f_BS   = (dist.f[TN  ])[ktn  ];
+      real f_TN   = (dist.f[BS  ])[kbs  ];
+      real f_TS   = (dist.f[BN  ])[kbn  ];
+      real f_BN   = (dist.f[TS  ])[kts  ];
+      real f_BSW  = (dist.f[TNE ])[ktne ];
+      real f_BNE  = (dist.f[TSW ])[ktsw ];
+      real f_BNW  = (dist.f[TSE ])[ktse ];
+      real f_BSE  = (dist.f[TNW ])[ktnw ];
+      real f_TSW  = (dist.f[BNE ])[kbne ];
+      real f_TNE  = (dist.f[BSW ])[kbsw ];
+      real f_TNW  = (dist.f[BSE ])[kbse ];
+      real f_TSE  = (dist.f[BNW ])[kbnw ];
 
       ////////////////////////////////////////////////////////////////////////////////
       //! - Calculate macroscopic quantities
@@ -2151,212 +2151,212 @@ extern "C" __global__ void QDevice27(real* distributions,
       //! - Update distributions with subgrid distance (q) between zero and one
       //!
       real feq, q, velocityLB;
-      q = (subgridD.q[dirE])[k];
+      q = (subgridD.q[E])[k];
       if (q>=c0o1 && q<=c1o1) // only update distribution for q between zero and one
       {
          velocityLB = vx1;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
-         (dist.f[dirW])[kw] = getInterpolatedDistributionForNoSlipBC(q, f_E, f_W, feq, omega);
+         (dist.f[W])[kw] = getInterpolatedDistributionForNoSlipBC(q, f_E, f_W, feq, omega);
       }
 
-      q = (subgridD.q[dirW])[k];
+      q = (subgridD.q[W])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
-         (dist.f[dirE])[ke] = getInterpolatedDistributionForNoSlipBC(q, f_W, f_E, feq, omega);
+         (dist.f[E])[ke] = getInterpolatedDistributionForNoSlipBC(q, f_W, f_E, feq, omega);
       }
 
-      q = (subgridD.q[dirN])[k];
+      q = (subgridD.q[N])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
-         (dist.f[dirS])[ks] = getInterpolatedDistributionForNoSlipBC(q, f_N, f_S, feq, omega);
+         (dist.f[S])[ks] = getInterpolatedDistributionForNoSlipBC(q, f_N, f_S, feq, omega);
       }
 
-      q = (subgridD.q[dirS])[k];
+      q = (subgridD.q[S])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
-         (dist.f[dirN])[kn] = getInterpolatedDistributionForNoSlipBC(q, f_S, f_N, feq, omega);
+         (dist.f[N])[kn] = getInterpolatedDistributionForNoSlipBC(q, f_S, f_N, feq, omega);
       }
 
-      q = (subgridD.q[dirT])[k];
+      q = (subgridD.q[T])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
-         (dist.f[dirB])[kb] = getInterpolatedDistributionForNoSlipBC(q, f_T, f_B, feq, omega);
+         (dist.f[B])[kb] = getInterpolatedDistributionForNoSlipBC(q, f_T, f_B, feq, omega);
       }
 
-      q = (subgridD.q[dirB])[k];
+      q = (subgridD.q[B])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
-         (dist.f[dirT])[kt] = getInterpolatedDistributionForNoSlipBC(q, f_B, f_T, feq, omega);
+         (dist.f[T])[kt] = getInterpolatedDistributionForNoSlipBC(q, f_B, f_T, feq, omega);
       }
 
-      q = (subgridD.q[dirNE])[k];
+      q = (subgridD.q[NE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirSW])[ksw] = getInterpolatedDistributionForNoSlipBC(q, f_NE, f_SW, feq, omega);
+         (dist.f[SW])[ksw] = getInterpolatedDistributionForNoSlipBC(q, f_NE, f_SW, feq, omega);
       }
 
-      q = (subgridD.q[dirSW])[k];
+      q = (subgridD.q[SW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirNE])[kne] = getInterpolatedDistributionForNoSlipBC(q, f_SW, f_NE, feq, omega);
+         (dist.f[NE])[kne] = getInterpolatedDistributionForNoSlipBC(q, f_SW, f_NE, feq, omega);
       }
 
-      q = (subgridD.q[dirSE])[k];
+      q = (subgridD.q[SE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirNW])[knw] = getInterpolatedDistributionForNoSlipBC(q, f_SE, f_NW, feq, omega);
+         (dist.f[NW])[knw] = getInterpolatedDistributionForNoSlipBC(q, f_SE, f_NW, feq, omega);
       }
 
-      q = (subgridD.q[dirNW])[k];
+      q = (subgridD.q[NW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirSE])[kse] = getInterpolatedDistributionForNoSlipBC(q, f_NW, f_SE, feq, omega);
+         (dist.f[SE])[kse] = getInterpolatedDistributionForNoSlipBC(q, f_NW, f_SE, feq, omega);
       }
 
-      q = (subgridD.q[dirTE])[k];
+      q = (subgridD.q[TE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirBW])[kbw] = getInterpolatedDistributionForNoSlipBC(q, f_TE, f_BW, feq, omega);
+         (dist.f[BW])[kbw] = getInterpolatedDistributionForNoSlipBC(q, f_TE, f_BW, feq, omega);
       }
 
-      q = (subgridD.q[dirBW])[k];
+      q = (subgridD.q[BW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirTE])[kte] = getInterpolatedDistributionForNoSlipBC(q, f_BW, f_TE, feq, omega);
+         (dist.f[TE])[kte] = getInterpolatedDistributionForNoSlipBC(q, f_BW, f_TE, feq, omega);
       }
 
-      q = (subgridD.q[dirBE])[k];
+      q = (subgridD.q[BE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirTW])[ktw] = getInterpolatedDistributionForNoSlipBC(q, f_BE, f_TW, feq, omega);
+         (dist.f[TW])[ktw] = getInterpolatedDistributionForNoSlipBC(q, f_BE, f_TW, feq, omega);
       }
 
-      q = (subgridD.q[dirTW])[k];
+      q = (subgridD.q[TW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirBE])[kbe] = getInterpolatedDistributionForNoSlipBC(q, f_TW, f_BE, feq, omega);
+         (dist.f[BE])[kbe] = getInterpolatedDistributionForNoSlipBC(q, f_TW, f_BE, feq, omega);
       }
 
-      q = (subgridD.q[dirTN])[k];
+      q = (subgridD.q[TN])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirBS])[kbs] = getInterpolatedDistributionForNoSlipBC(q, f_TN, f_BS, feq, omega);
+         (dist.f[BS])[kbs] = getInterpolatedDistributionForNoSlipBC(q, f_TN, f_BS, feq, omega);
       }
 
-      q = (subgridD.q[dirBS])[k];
+      q = (subgridD.q[BS])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirTN])[ktn] = getInterpolatedDistributionForNoSlipBC(q, f_BS, f_TN, feq, omega);
+         (dist.f[TN])[ktn] = getInterpolatedDistributionForNoSlipBC(q, f_BS, f_TN, feq, omega);
       }
 
-      q = (subgridD.q[dirBN])[k];
+      q = (subgridD.q[BN])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirTS])[kts] = getInterpolatedDistributionForNoSlipBC(q, f_BN, f_TS, feq, omega);
+         (dist.f[TS])[kts] = getInterpolatedDistributionForNoSlipBC(q, f_BN, f_TS, feq, omega);
       }
 
-      q = (subgridD.q[dirTS])[k];
+      q = (subgridD.q[TS])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
-         (dist.f[dirBN])[kbn] = getInterpolatedDistributionForNoSlipBC(q, f_TS, f_BN, feq, omega);
+         (dist.f[BN])[kbn] = getInterpolatedDistributionForNoSlipBC(q, f_TS, f_BN, feq, omega);
       }
 
-      q = (subgridD.q[dirTNE])[k];
+      q = (subgridD.q[TNE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirBSW])[kbsw] = getInterpolatedDistributionForNoSlipBC(q, f_TNE, f_BSW, feq, omega);
+         (dist.f[BSW])[kbsw] = getInterpolatedDistributionForNoSlipBC(q, f_TNE, f_BSW, feq, omega);
       }
 
-      q = (subgridD.q[dirBSW])[k];
+      q = (subgridD.q[BSW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirTNE])[ktne] = getInterpolatedDistributionForNoSlipBC(q, f_BSW, f_TNE, feq, omega);
+         (dist.f[TNE])[ktne] = getInterpolatedDistributionForNoSlipBC(q, f_BSW, f_TNE, feq, omega);
       }
 
-      q = (subgridD.q[dirBNE])[k];
+      q = (subgridD.q[BNE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirTSW])[ktsw] = getInterpolatedDistributionForNoSlipBC(q, f_BNE, f_TSW, feq, omega);
+         (dist.f[TSW])[ktsw] = getInterpolatedDistributionForNoSlipBC(q, f_BNE, f_TSW, feq, omega);
       }
 
-      q = (subgridD.q[dirTSW])[k];
+      q = (subgridD.q[TSW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirBNE])[kbne] = getInterpolatedDistributionForNoSlipBC(q, f_TSW, f_BNE, feq, omega);
+         (dist.f[BNE])[kbne] = getInterpolatedDistributionForNoSlipBC(q, f_TSW, f_BNE, feq, omega);
       }
 
-      q = (subgridD.q[dirTSE])[k];
+      q = (subgridD.q[TSE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirBNW])[kbnw] = getInterpolatedDistributionForNoSlipBC(q, f_TSE, f_BNW, feq, omega);
+         (dist.f[BNW])[kbnw] = getInterpolatedDistributionForNoSlipBC(q, f_TSE, f_BNW, feq, omega);
       }
 
-      q = (subgridD.q[dirBNW])[k];
+      q = (subgridD.q[BNW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirTSE])[ktse] = getInterpolatedDistributionForNoSlipBC(q, f_BNW, f_TSE, feq, omega);
+         (dist.f[TSE])[ktse] = getInterpolatedDistributionForNoSlipBC(q, f_BNW, f_TSE, feq, omega);
       }
 
-      q = (subgridD.q[dirBSE])[k];
+      q = (subgridD.q[BSE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirTNW])[ktnw] = getInterpolatedDistributionForNoSlipBC(q, f_BSE, f_TNW, feq, omega);
+         (dist.f[TNW])[ktnw] = getInterpolatedDistributionForNoSlipBC(q, f_BSE, f_TNW, feq, omega);
       }
 
-      q = (subgridD.q[dirTNW])[k];
+      q = (subgridD.q[TNW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
-         (dist.f[dirBSE])[kbse] = getInterpolatedDistributionForNoSlipBC(q, f_TNW, f_BSE, feq, omega);
+         (dist.f[BSE])[kbse] = getInterpolatedDistributionForNoSlipBC(q, f_TNW, f_BSE, feq, omega);
       }
    }
 }
@@ -2477,32 +2477,32 @@ extern "C" __global__ void BBDevice27(real* distributions,
       ////////////////////////////////////////////////////////////////////////////////
       //! - Set local distributions
       //!
-      real f_W    = (dist.f[dirE   ])[ke   ];
-      real f_E    = (dist.f[dirW   ])[kw   ];
-      real f_S    = (dist.f[dirN   ])[kn   ];
-      real f_N    = (dist.f[dirS   ])[ks   ];
-      real f_B    = (dist.f[dirT   ])[kt   ];
-      real f_T    = (dist.f[dirB   ])[kb   ];
-      real f_SW   = (dist.f[dirNE  ])[kne  ];
-      real f_NE   = (dist.f[dirSW  ])[ksw  ];
-      real f_NW   = (dist.f[dirSE  ])[kse  ];
-      real f_SE   = (dist.f[dirNW  ])[knw  ];
-      real f_BW   = (dist.f[dirTE  ])[kte  ];
-      real f_TE   = (dist.f[dirBW  ])[kbw  ];
-      real f_TW   = (dist.f[dirBE  ])[kbe  ];
-      real f_BE   = (dist.f[dirTW  ])[ktw  ];
-      real f_BS   = (dist.f[dirTN  ])[ktn  ];
-      real f_TN   = (dist.f[dirBS  ])[kbs  ];
-      real f_TS   = (dist.f[dirBN  ])[kbn  ];
-      real f_BN   = (dist.f[dirTS  ])[kts  ];
-      real f_BSW  = (dist.f[dirTNE ])[ktne ];
-      real f_BNE  = (dist.f[dirTSW ])[ktsw ];
-      real f_BNW  = (dist.f[dirTSE ])[ktse ];
-      real f_BSE  = (dist.f[dirTNW ])[ktnw ];
-      real f_TSW  = (dist.f[dirBNE ])[kbne ];
-      real f_TNE  = (dist.f[dirBSW ])[kbsw ];
-      real f_TNW  = (dist.f[dirBSE ])[kbse ];
-      real f_TSE  = (dist.f[dirBNW ])[kbnw ];
+      real f_W    = (dist.f[E   ])[ke   ];
+      real f_E    = (dist.f[W   ])[kw   ];
+      real f_S    = (dist.f[N   ])[kn   ];
+      real f_N    = (dist.f[S   ])[ks   ];
+      real f_B    = (dist.f[T   ])[kt   ];
+      real f_T    = (dist.f[B   ])[kb   ];
+      real f_SW   = (dist.f[NE  ])[kne  ];
+      real f_NE   = (dist.f[SW  ])[ksw  ];
+      real f_NW   = (dist.f[SE  ])[kse  ];
+      real f_SE   = (dist.f[NW  ])[knw  ];
+      real f_BW   = (dist.f[TE  ])[kte  ];
+      real f_TE   = (dist.f[BW  ])[kbw  ];
+      real f_TW   = (dist.f[BE  ])[kbe  ];
+      real f_BE   = (dist.f[TW  ])[ktw  ];
+      real f_BS   = (dist.f[TN  ])[ktn  ];
+      real f_TN   = (dist.f[BS  ])[kbs  ];
+      real f_TS   = (dist.f[BN  ])[kbn  ];
+      real f_BN   = (dist.f[TS  ])[kts  ];
+      real f_BSW  = (dist.f[TNE ])[ktne ];
+      real f_BNE  = (dist.f[TSW ])[ktsw ];
+      real f_BNW  = (dist.f[TSE ])[ktse ];
+      real f_BSE  = (dist.f[TNW ])[ktnw ];
+      real f_TSW  = (dist.f[BNE ])[kbne ];
+      real f_TNE  = (dist.f[BSW ])[kbsw ];
+      real f_TNW  = (dist.f[BSE ])[kbse ];
+      real f_TSE  = (dist.f[BNW ])[kbnw ];
 
       ////////////////////////////////////////////////////////////////////////////////
       //! - change the pointer to write the results in the correct array
@@ -2512,32 +2512,32 @@ extern "C" __global__ void BBDevice27(real* distributions,
       ////////////////////////////////////////////////////////////////////////////////
       //! - rewrite distributions if there is a sub-grid distance (q) in same direction
       real q;
-      q = (subgridD.q[dirE  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirW  ])[kw  ]=f_E  ;
-      q = (subgridD.q[dirW  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirE  ])[ke  ]=f_W  ;
-      q = (subgridD.q[dirN  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirS  ])[ks  ]=f_N  ;
-      q = (subgridD.q[dirS  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirN  ])[kn  ]=f_S  ;
-      q = (subgridD.q[dirT  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirB  ])[kb  ]=f_T  ;
-      q = (subgridD.q[dirB  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirT  ])[kt  ]=f_B  ;
-      q = (subgridD.q[dirNE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirSW ])[ksw ]=f_NE ;
-      q = (subgridD.q[dirSW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirNE ])[kne ]=f_SW ;
-      q = (subgridD.q[dirSE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirNW ])[knw ]=f_SE ;
-      q = (subgridD.q[dirNW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirSE ])[kse ]=f_NW ;
-      q = (subgridD.q[dirTE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBW ])[kbw ]=f_TE ;
-      q = (subgridD.q[dirBW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTE ])[kte ]=f_BW ;
-      q = (subgridD.q[dirBE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTW ])[ktw ]=f_BE ;
-      q = (subgridD.q[dirTW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBE ])[kbe ]=f_TW ;
-      q = (subgridD.q[dirTN ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBS ])[kbs ]=f_TN ;
-      q = (subgridD.q[dirBS ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTN ])[ktn ]=f_BS ;
-      q = (subgridD.q[dirBN ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTS ])[kts ]=f_BN ;
-      q = (subgridD.q[dirTS ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBN ])[kbn ]=f_TS ;
-      q = (subgridD.q[dirTNE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBSW])[kbsw]=f_TNE;
-      q = (subgridD.q[dirBSW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTNE])[ktne]=f_BSW;
-      q = (subgridD.q[dirBNE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTSW])[ktsw]=f_BNE;
-      q = (subgridD.q[dirTSW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBNE])[kbne]=f_TSW;
-      q = (subgridD.q[dirTSE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBNW])[kbnw]=f_TSE;
-      q = (subgridD.q[dirBNW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTSE])[ktse]=f_BNW;
-      q = (subgridD.q[dirBSE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTNW])[ktnw]=f_BSE;
-      q = (subgridD.q[dirTNW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBSE])[kbse]=f_TNW;
+      q = (subgridD.q[E  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[W  ])[kw  ]=f_E  ;
+      q = (subgridD.q[W  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[E  ])[ke  ]=f_W  ;
+      q = (subgridD.q[N  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[S  ])[ks  ]=f_N  ;
+      q = (subgridD.q[S  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[N  ])[kn  ]=f_S  ;
+      q = (subgridD.q[T  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[B  ])[kb  ]=f_T  ;
+      q = (subgridD.q[B  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[T  ])[kt  ]=f_B  ;
+      q = (subgridD.q[NE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[SW ])[ksw ]=f_NE ;
+      q = (subgridD.q[SW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[NE ])[kne ]=f_SW ;
+      q = (subgridD.q[SE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[NW ])[knw ]=f_SE ;
+      q = (subgridD.q[NW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[SE ])[kse ]=f_NW ;
+      q = (subgridD.q[TE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BW ])[kbw ]=f_TE ;
+      q = (subgridD.q[BW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TE ])[kte ]=f_BW ;
+      q = (subgridD.q[BE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TW ])[ktw ]=f_BE ;
+      q = (subgridD.q[TW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BE ])[kbe ]=f_TW ;
+      q = (subgridD.q[TN ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BS ])[kbs ]=f_TN ;
+      q = (subgridD.q[BS ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TN ])[ktn ]=f_BS ;
+      q = (subgridD.q[BN ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TS ])[kts ]=f_BN ;
+      q = (subgridD.q[TS ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BN ])[kbn ]=f_TS ;
+      q = (subgridD.q[TNE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BSW])[kbsw]=f_TNE;
+      q = (subgridD.q[BSW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TNE])[ktne]=f_BSW;
+      q = (subgridD.q[BNE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TSW])[ktsw]=f_BNE;
+      q = (subgridD.q[TSW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BNE])[kbne]=f_TSW;
+      q = (subgridD.q[TSE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BNW])[kbnw]=f_TSE;
+      q = (subgridD.q[BNW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TSE])[ktse]=f_BNW;
+      q = (subgridD.q[BSE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TNW])[ktnw]=f_BSE;
+      q = (subgridD.q[TNW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BSE])[kbse]=f_TNW;
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/Particles.cu b/src/gpu/VirtualFluids_GPU/GPU/Particles.cu
index f5b4c76eb..724f9ecfc 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/Particles.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/Particles.cu
@@ -248,63 +248,63 @@ extern "C" __global__ void MoveParticles( real* coordX,
 		{
 		   if (isEvenTimestep==true)
 		   {
-			  feC    = &DD[dirE   *size_Mat];
-			  fwC    = &DD[dirW   *size_Mat];
-			  fnC    = &DD[dirN   *size_Mat];
-			  fsC    = &DD[dirS   *size_Mat];
-			  ftC    = &DD[dirT   *size_Mat];
-			  fbC    = &DD[dirB   *size_Mat];
-			  fneC   = &DD[dirNE  *size_Mat];
-			  fswC   = &DD[dirSW  *size_Mat];
-			  fseC   = &DD[dirSE  *size_Mat];
-			  fnwC   = &DD[dirNW  *size_Mat];
-			  fteC   = &DD[dirTE  *size_Mat];
-			  fbwC   = &DD[dirBW  *size_Mat];
-			  fbeC   = &DD[dirBE  *size_Mat];
-			  ftwC   = &DD[dirTW  *size_Mat];
-			  ftnC   = &DD[dirTN  *size_Mat];
-			  fbsC   = &DD[dirBS  *size_Mat];
-			  fbnC   = &DD[dirBN  *size_Mat];
-			  ftsC   = &DD[dirTS  *size_Mat];
+			  feC    = &DD[E   *size_Mat];
+			  fwC    = &DD[W   *size_Mat];
+			  fnC    = &DD[N   *size_Mat];
+			  fsC    = &DD[S   *size_Mat];
+			  ftC    = &DD[T   *size_Mat];
+			  fbC    = &DD[B   *size_Mat];
+			  fneC   = &DD[NE  *size_Mat];
+			  fswC   = &DD[SW  *size_Mat];
+			  fseC   = &DD[SE  *size_Mat];
+			  fnwC   = &DD[NW  *size_Mat];
+			  fteC   = &DD[TE  *size_Mat];
+			  fbwC   = &DD[BW  *size_Mat];
+			  fbeC   = &DD[BE  *size_Mat];
+			  ftwC   = &DD[TW  *size_Mat];
+			  ftnC   = &DD[TN  *size_Mat];
+			  fbsC   = &DD[BS  *size_Mat];
+			  fbnC   = &DD[BN  *size_Mat];
+			  ftsC   = &DD[TS  *size_Mat];
 			  fzeroC = &DD[dirREST*size_Mat];
-			  ftneC  = &DD[dirTNE *size_Mat];
-			  ftswC  = &DD[dirTSW *size_Mat];
-			  ftseC  = &DD[dirTSE *size_Mat];
-			  ftnwC  = &DD[dirTNW *size_Mat];
-			  fbneC  = &DD[dirBNE *size_Mat];
-			  fbswC  = &DD[dirBSW *size_Mat];
-			  fbseC  = &DD[dirBSE *size_Mat];
-			  fbnwC  = &DD[dirBNW *size_Mat];
+			  ftneC  = &DD[TNE *size_Mat];
+			  ftswC  = &DD[TSW *size_Mat];
+			  ftseC  = &DD[TSE *size_Mat];
+			  ftnwC  = &DD[TNW *size_Mat];
+			  fbneC  = &DD[BNE *size_Mat];
+			  fbswC  = &DD[BSW *size_Mat];
+			  fbseC  = &DD[BSE *size_Mat];
+			  fbnwC  = &DD[BNW *size_Mat];
 		   } 			 
 		   else			 
 		   {			 
-			  fwC    = &DD[dirE   *size_Mat];
-			  feC    = &DD[dirW   *size_Mat];
-			  fsC    = &DD[dirN   *size_Mat];
-			  fnC    = &DD[dirS   *size_Mat];
-			  fbC    = &DD[dirT   *size_Mat];
-			  ftC    = &DD[dirB   *size_Mat];
-			  fswC   = &DD[dirNE  *size_Mat];
-			  fneC   = &DD[dirSW  *size_Mat];
-			  fnwC   = &DD[dirSE  *size_Mat];
-			  fseC   = &DD[dirNW  *size_Mat];
-			  fbwC   = &DD[dirTE  *size_Mat];
-			  fteC   = &DD[dirBW  *size_Mat];
-			  ftwC   = &DD[dirBE  *size_Mat];
-			  fbeC   = &DD[dirTW  *size_Mat];
-			  fbsC   = &DD[dirTN  *size_Mat];
-			  ftnC   = &DD[dirBS  *size_Mat];
-			  ftsC   = &DD[dirBN  *size_Mat];
-			  fbnC   = &DD[dirTS  *size_Mat];
+			  fwC    = &DD[E   *size_Mat];
+			  feC    = &DD[W   *size_Mat];
+			  fsC    = &DD[N   *size_Mat];
+			  fnC    = &DD[S   *size_Mat];
+			  fbC    = &DD[T   *size_Mat];
+			  ftC    = &DD[B   *size_Mat];
+			  fswC   = &DD[NE  *size_Mat];
+			  fneC   = &DD[SW  *size_Mat];
+			  fnwC   = &DD[SE  *size_Mat];
+			  fseC   = &DD[NW  *size_Mat];
+			  fbwC   = &DD[TE  *size_Mat];
+			  fteC   = &DD[BW  *size_Mat];
+			  ftwC   = &DD[BE  *size_Mat];
+			  fbeC   = &DD[TW  *size_Mat];
+			  fbsC   = &DD[TN  *size_Mat];
+			  ftnC   = &DD[BS  *size_Mat];
+			  ftsC   = &DD[BN  *size_Mat];
+			  fbnC   = &DD[TS  *size_Mat];
 			  fzeroC = &DD[dirREST*size_Mat];
-			  fbswC  = &DD[dirTNE *size_Mat];
-			  fbneC  = &DD[dirTSW *size_Mat];
-			  fbnwC  = &DD[dirTSE *size_Mat];
-			  fbseC  = &DD[dirTNW *size_Mat];
-			  ftswC  = &DD[dirBNE *size_Mat];
-			  ftneC  = &DD[dirBSW *size_Mat];
-			  ftnwC  = &DD[dirBSE *size_Mat];
-			  ftseC  = &DD[dirBNW *size_Mat];
+			  fbswC  = &DD[TNE *size_Mat];
+			  fbneC  = &DD[TSW *size_Mat];
+			  fbnwC  = &DD[TSE *size_Mat];
+			  fbseC  = &DD[TNW *size_Mat];
+			  ftswC  = &DD[BNE *size_Mat];
+			  ftneC  = &DD[BSW *size_Mat];
+			  ftnwC  = &DD[BSE *size_Mat];
+			  ftseC  = &DD[BNW *size_Mat];
 		   }
 
 			  //////////////////////////////////////////////////////////////////////////
@@ -1114,63 +1114,63 @@ extern "C" __global__ void MoveParticlesWithoutBCs(   real* coordX,
 		{
 		   if (isEvenTimestep==true)
 		   {
-			  feC    = &DD[dirE   *size_Mat];
-			  fwC    = &DD[dirW   *size_Mat];
-			  fnC    = &DD[dirN   *size_Mat];
-			  fsC    = &DD[dirS   *size_Mat];
-			  ftC    = &DD[dirT   *size_Mat];
-			  fbC    = &DD[dirB   *size_Mat];
-			  fneC   = &DD[dirNE  *size_Mat];
-			  fswC   = &DD[dirSW  *size_Mat];
-			  fseC   = &DD[dirSE  *size_Mat];
-			  fnwC   = &DD[dirNW  *size_Mat];
-			  fteC   = &DD[dirTE  *size_Mat];
-			  fbwC   = &DD[dirBW  *size_Mat];
-			  fbeC   = &DD[dirBE  *size_Mat];
-			  ftwC   = &DD[dirTW  *size_Mat];
-			  ftnC   = &DD[dirTN  *size_Mat];
-			  fbsC   = &DD[dirBS  *size_Mat];
-			  fbnC   = &DD[dirBN  *size_Mat];
-			  ftsC   = &DD[dirTS  *size_Mat];
+			  feC    = &DD[E   *size_Mat];
+			  fwC    = &DD[W   *size_Mat];
+			  fnC    = &DD[N   *size_Mat];
+			  fsC    = &DD[S   *size_Mat];
+			  ftC    = &DD[T   *size_Mat];
+			  fbC    = &DD[B   *size_Mat];
+			  fneC   = &DD[NE  *size_Mat];
+			  fswC   = &DD[SW  *size_Mat];
+			  fseC   = &DD[SE  *size_Mat];
+			  fnwC   = &DD[NW  *size_Mat];
+			  fteC   = &DD[TE  *size_Mat];
+			  fbwC   = &DD[BW  *size_Mat];
+			  fbeC   = &DD[BE  *size_Mat];
+			  ftwC   = &DD[TW  *size_Mat];
+			  ftnC   = &DD[TN  *size_Mat];
+			  fbsC   = &DD[BS  *size_Mat];
+			  fbnC   = &DD[BN  *size_Mat];
+			  ftsC   = &DD[TS  *size_Mat];
 			  fzeroC = &DD[dirREST*size_Mat];
-			  ftneC  = &DD[dirTNE *size_Mat];
-			  ftswC  = &DD[dirTSW *size_Mat];
-			  ftseC  = &DD[dirTSE *size_Mat];
-			  ftnwC  = &DD[dirTNW *size_Mat];
-			  fbneC  = &DD[dirBNE *size_Mat];
-			  fbswC  = &DD[dirBSW *size_Mat];
-			  fbseC  = &DD[dirBSE *size_Mat];
-			  fbnwC  = &DD[dirBNW *size_Mat];
+			  ftneC  = &DD[TNE *size_Mat];
+			  ftswC  = &DD[TSW *size_Mat];
+			  ftseC  = &DD[TSE *size_Mat];
+			  ftnwC  = &DD[TNW *size_Mat];
+			  fbneC  = &DD[BNE *size_Mat];
+			  fbswC  = &DD[BSW *size_Mat];
+			  fbseC  = &DD[BSE *size_Mat];
+			  fbnwC  = &DD[BNW *size_Mat];
 		   } 			 
 		   else			 
 		   {			 
-			  fwC    = &DD[dirE   *size_Mat];
-			  feC    = &DD[dirW   *size_Mat];
-			  fsC    = &DD[dirN   *size_Mat];
-			  fnC    = &DD[dirS   *size_Mat];
-			  fbC    = &DD[dirT   *size_Mat];
-			  ftC    = &DD[dirB   *size_Mat];
-			  fswC   = &DD[dirNE  *size_Mat];
-			  fneC   = &DD[dirSW  *size_Mat];
-			  fnwC   = &DD[dirSE  *size_Mat];
-			  fseC   = &DD[dirNW  *size_Mat];
-			  fbwC   = &DD[dirTE  *size_Mat];
-			  fteC   = &DD[dirBW  *size_Mat];
-			  ftwC   = &DD[dirBE  *size_Mat];
-			  fbeC   = &DD[dirTW  *size_Mat];
-			  fbsC   = &DD[dirTN  *size_Mat];
-			  ftnC   = &DD[dirBS  *size_Mat];
-			  ftsC   = &DD[dirBN  *size_Mat];
-			  fbnC   = &DD[dirTS  *size_Mat];
+			  fwC    = &DD[E   *size_Mat];
+			  feC    = &DD[W   *size_Mat];
+			  fsC    = &DD[N   *size_Mat];
+			  fnC    = &DD[S   *size_Mat];
+			  fbC    = &DD[T   *size_Mat];
+			  ftC    = &DD[B   *size_Mat];
+			  fswC   = &DD[NE  *size_Mat];
+			  fneC   = &DD[SW  *size_Mat];
+			  fnwC   = &DD[SE  *size_Mat];
+			  fseC   = &DD[NW  *size_Mat];
+			  fbwC   = &DD[TE  *size_Mat];
+			  fteC   = &DD[BW  *size_Mat];
+			  ftwC   = &DD[BE  *size_Mat];
+			  fbeC   = &DD[TW  *size_Mat];
+			  fbsC   = &DD[TN  *size_Mat];
+			  ftnC   = &DD[BS  *size_Mat];
+			  ftsC   = &DD[BN  *size_Mat];
+			  fbnC   = &DD[TS  *size_Mat];
 			  fzeroC = &DD[dirREST*size_Mat];
-			  fbswC  = &DD[dirTNE *size_Mat];
-			  fbneC  = &DD[dirTSW *size_Mat];
-			  fbnwC  = &DD[dirTSE *size_Mat];
-			  fbseC  = &DD[dirTNW *size_Mat];
-			  ftswC  = &DD[dirBNE *size_Mat];
-			  ftneC  = &DD[dirBSW *size_Mat];
-			  ftnwC  = &DD[dirBSE *size_Mat];
-			  ftseC  = &DD[dirBNW *size_Mat];
+			  fbswC  = &DD[TNE *size_Mat];
+			  fbneC  = &DD[TSW *size_Mat];
+			  fbnwC  = &DD[TSE *size_Mat];
+			  fbseC  = &DD[TNW *size_Mat];
+			  ftswC  = &DD[BNE *size_Mat];
+			  ftneC  = &DD[BSW *size_Mat];
+			  ftnwC  = &DD[BSE *size_Mat];
+			  ftseC  = &DD[BNW *size_Mat];
 		   }
 
 			  //////////////////////////////////////////////////////////////////////////
@@ -1937,63 +1937,63 @@ extern "C" __global__ void ParticleNoSlipDeviceComp27(real* coordX,
    //Distributions27 D;
    //if (isEvenTimestep==true)
    //{
-   //   D.f[dirE   ] = &DD[dirE   *size_Mat];
-   //   D.f[dirW   ] = &DD[dirW   *size_Mat];
-   //   D.f[dirN   ] = &DD[dirN   *size_Mat];
-   //   D.f[dirS   ] = &DD[dirS   *size_Mat];
-   //   D.f[dirT   ] = &DD[dirT   *size_Mat];
-   //   D.f[dirB   ] = &DD[dirB   *size_Mat];
-   //   D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-   //   D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-   //   D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-   //   D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-   //   D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-   //   D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-   //   D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-   //   D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-   //   D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-   //   D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-   //   D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-   //   D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+   //   D.f[E   ] = &DD[E   *size_Mat];
+   //   D.f[W   ] = &DD[W   *size_Mat];
+   //   D.f[N   ] = &DD[N   *size_Mat];
+   //   D.f[S   ] = &DD[S   *size_Mat];
+   //   D.f[T   ] = &DD[T   *size_Mat];
+   //   D.f[B   ] = &DD[B   *size_Mat];
+   //   D.f[NE  ] = &DD[NE  *size_Mat];
+   //   D.f[SW  ] = &DD[SW  *size_Mat];
+   //   D.f[SE  ] = &DD[SE  *size_Mat];
+   //   D.f[NW  ] = &DD[NW  *size_Mat];
+   //   D.f[TE  ] = &DD[TE  *size_Mat];
+   //   D.f[BW  ] = &DD[BW  *size_Mat];
+   //   D.f[BE  ] = &DD[BE  *size_Mat];
+   //   D.f[TW  ] = &DD[TW  *size_Mat];
+   //   D.f[TN  ] = &DD[TN  *size_Mat];
+   //   D.f[BS  ] = &DD[BS  *size_Mat];
+   //   D.f[BN  ] = &DD[BN  *size_Mat];
+   //   D.f[TS  ] = &DD[TS  *size_Mat];
    //   D.f[dirREST] = &DD[dirREST*size_Mat];
-   //   D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-   //   D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-   //   D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-   //   D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-   //   D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-   //   D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-   //   D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-   //   D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+   //   D.f[TNE ] = &DD[TNE *size_Mat];
+   //   D.f[TSW ] = &DD[TSW *size_Mat];
+   //   D.f[TSE ] = &DD[TSE *size_Mat];
+   //   D.f[TNW ] = &DD[TNW *size_Mat];
+   //   D.f[BNE ] = &DD[BNE *size_Mat];
+   //   D.f[BSW ] = &DD[BSW *size_Mat];
+   //   D.f[BSE ] = &DD[BSE *size_Mat];
+   //   D.f[BNW ] = &DD[BNW *size_Mat];
    //} 
    //else
    //{
-   //   D.f[dirW   ] = &DD[dirE   *size_Mat];
-   //   D.f[dirE   ] = &DD[dirW   *size_Mat];
-   //   D.f[dirS   ] = &DD[dirN   *size_Mat];
-   //   D.f[dirN   ] = &DD[dirS   *size_Mat];
-   //   D.f[dirB   ] = &DD[dirT   *size_Mat];
-   //   D.f[dirT   ] = &DD[dirB   *size_Mat];
-   //   D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-   //   D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-   //   D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-   //   D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-   //   D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-   //   D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-   //   D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-   //   D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-   //   D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-   //   D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-   //   D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-   //   D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+   //   D.f[W   ] = &DD[E   *size_Mat];
+   //   D.f[E   ] = &DD[W   *size_Mat];
+   //   D.f[S   ] = &DD[N   *size_Mat];
+   //   D.f[N   ] = &DD[S   *size_Mat];
+   //   D.f[B   ] = &DD[T   *size_Mat];
+   //   D.f[T   ] = &DD[B   *size_Mat];
+   //   D.f[SW  ] = &DD[NE  *size_Mat];
+   //   D.f[NE  ] = &DD[SW  *size_Mat];
+   //   D.f[NW  ] = &DD[SE  *size_Mat];
+   //   D.f[SE  ] = &DD[NW  *size_Mat];
+   //   D.f[BW  ] = &DD[TE  *size_Mat];
+   //   D.f[TE  ] = &DD[BW  *size_Mat];
+   //   D.f[TW  ] = &DD[BE  *size_Mat];
+   //   D.f[BE  ] = &DD[TW  *size_Mat];
+   //   D.f[BS  ] = &DD[TN  *size_Mat];
+   //   D.f[TN  ] = &DD[BS  *size_Mat];
+   //   D.f[TS  ] = &DD[BN  *size_Mat];
+   //   D.f[BN  ] = &DD[TS  *size_Mat];
    //   D.f[dirREST] = &DD[dirREST*size_Mat];
-   //   D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-   //   D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-   //   D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-   //   D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-   //   D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-   //   D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-   //   D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-   //   D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+   //   D.f[TNE ] = &DD[BSW *size_Mat];
+   //   D.f[TSW ] = &DD[BNE *size_Mat];
+   //   D.f[TSE ] = &DD[BNW *size_Mat];
+   //   D.f[TNW ] = &DD[BSE *size_Mat];
+   //   D.f[BNE ] = &DD[TSW *size_Mat];
+   //   D.f[BSW ] = &DD[TNE *size_Mat];
+   //   D.f[BSE ] = &DD[TNW *size_Mat];
+   //   D.f[BNW ] = &DD[TSE *size_Mat];
    //}
    //////////////////////////////////////////////////////////////////////////////////
    //const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -2015,128 +2015,128 @@ extern "C" __global__ void ParticleNoSlipDeviceComp27(real* coordX,
    // //         *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
    // //         *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
    // //         *q_dirBSE, *q_dirBNW; 
-   // //   q_dirE   = &QQ[dirE   * numberOfBCnodes];
-   //    q_dirW   = &QQ[dirW   * numberOfBCnodes];
-   // //   q_dirN   = &QQ[dirN   * numberOfBCnodes];
-   //    q_dirS   = &QQ[dirS   * numberOfBCnodes];
-   // //   q_dirT   = &QQ[dirT   * numberOfBCnodes];
-   //    q_dirB   = &QQ[dirB   * numberOfBCnodes];
-   // //   q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-   // //   q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-   // //   q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-   // //   q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-   // //   q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-   // //   q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-   // //   q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-   // //   q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-   // //   q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-   // //   q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-   // //   q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-   // //   q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-   // //   q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-   // //   q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-   // //   q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-   // //   q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-   // //   q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-   // //   q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-   // //   q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-   // //   q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+   // //   q_dirE   = &QQ[E   * numberOfBCnodes];
+   //    q_dirW   = &QQ[W   * numberOfBCnodes];
+   // //   q_dirN   = &QQ[N   * numberOfBCnodes];
+   //    q_dirS   = &QQ[S   * numberOfBCnodes];
+   // //   q_dirT   = &QQ[T   * numberOfBCnodes];
+   //    q_dirB   = &QQ[B   * numberOfBCnodes];
+   // //   q_dirNE  = &QQ[NE  * numberOfBCnodes];
+   // //   q_dirSW  = &QQ[SW  * numberOfBCnodes];
+   // //   q_dirSE  = &QQ[SE  * numberOfBCnodes];
+   // //   q_dirNW  = &QQ[NW  * numberOfBCnodes];
+   // //   q_dirTE  = &QQ[TE  * numberOfBCnodes];
+   // //   q_dirBW  = &QQ[BW  * numberOfBCnodes];
+   // //   q_dirBE  = &QQ[BE  * numberOfBCnodes];
+   // //   q_dirTW  = &QQ[TW  * numberOfBCnodes];
+   // //   q_dirTN  = &QQ[TN  * numberOfBCnodes];
+   // //   q_dirBS  = &QQ[BS  * numberOfBCnodes];
+   // //   q_dirBN  = &QQ[BN  * numberOfBCnodes];
+   // //   q_dirTS  = &QQ[TS  * numberOfBCnodes];
+   // //   q_dirTNE = &QQ[TNE * numberOfBCnodes];
+   // //   q_dirTSW = &QQ[TSW * numberOfBCnodes];
+   // //   q_dirTSE = &QQ[TSE * numberOfBCnodes];
+   // //   q_dirTNW = &QQ[TNW * numberOfBCnodes];
+   // //   q_dirBNE = &QQ[BNE * numberOfBCnodes];
+   // //   q_dirBSW = &QQ[BSW * numberOfBCnodes];
+   // //   q_dirBSE = &QQ[BSE * numberOfBCnodes];
+   // //   q_dirBNW = &QQ[BNW * numberOfBCnodes];
    //   ////////////////////////////////////////////////////////////////////////////////
    // //   real *nx_dirE,   *nx_dirW,   *nx_dirN,   *nx_dirS,   *nx_dirT,   *nx_dirB, 
    // //           *nx_dirNE,  *nx_dirSW,  *nx_dirSE,  *nx_dirNW,  *nx_dirTE,  *nx_dirBW,
    // //           *nx_dirBE,  *nx_dirTW,  *nx_dirTN,  *nx_dirBS,  *nx_dirBN,  *nx_dirTS,
    // //           *nx_dirTNE, *nx_dirTSW, *nx_dirTSE, *nx_dirTNW, *nx_dirBNE, *nx_dirBSW,
    // //           *nx_dirBSE, *nx_dirBNW; 
-   // //   nx_dirE   = &NormalX[dirE   * numberOfBCnodes];
-   // //   nx_dirW   = &NormalX[dirW   * numberOfBCnodes];
-   // //   nx_dirN   = &NormalX[dirN   * numberOfBCnodes];
-   // //   nx_dirS   = &NormalX[dirS   * numberOfBCnodes];
-   // //   nx_dirT   = &NormalX[dirT   * numberOfBCnodes];
-   // //   nx_dirB   = &NormalX[dirB   * numberOfBCnodes];
-   // //   nx_dirNE  = &NormalX[dirNE  * numberOfBCnodes];
-   // //   nx_dirSW  = &NormalX[dirSW  * numberOfBCnodes];
-   // //   nx_dirSE  = &NormalX[dirSE  * numberOfBCnodes];
-   // //   nx_dirNW  = &NormalX[dirNW  * numberOfBCnodes];
-   // //   nx_dirTE  = &NormalX[dirTE  * numberOfBCnodes];
-   // //   nx_dirBW  = &NormalX[dirBW  * numberOfBCnodes];
-   // //   nx_dirBE  = &NormalX[dirBE  * numberOfBCnodes];
-   // //   nx_dirTW  = &NormalX[dirTW  * numberOfBCnodes];
-   // //   nx_dirTN  = &NormalX[dirTN  * numberOfBCnodes];
-   // //   nx_dirBS  = &NormalX[dirBS  * numberOfBCnodes];
-   // //   nx_dirBN  = &NormalX[dirBN  * numberOfBCnodes];
-   // //   nx_dirTS  = &NormalX[dirTS  * numberOfBCnodes];
-   // //   nx_dirTNE = &NormalX[dirTNE * numberOfBCnodes];
-   // //   nx_dirTSW = &NormalX[dirTSW * numberOfBCnodes];
-   // //   nx_dirTSE = &NormalX[dirTSE * numberOfBCnodes];
-   // //   nx_dirTNW = &NormalX[dirTNW * numberOfBCnodes];
-   // //   nx_dirBNE = &NormalX[dirBNE * numberOfBCnodes];
-   // //   nx_dirBSW = &NormalX[dirBSW * numberOfBCnodes];
-   // //   nx_dirBSE = &NormalX[dirBSE * numberOfBCnodes];
-   // //   nx_dirBNW = &NormalX[dirBNW * numberOfBCnodes];
+   // //   nx_dirE   = &NormalX[E   * numberOfBCnodes];
+   // //   nx_dirW   = &NormalX[W   * numberOfBCnodes];
+   // //   nx_dirN   = &NormalX[N   * numberOfBCnodes];
+   // //   nx_dirS   = &NormalX[S   * numberOfBCnodes];
+   // //   nx_dirT   = &NormalX[T   * numberOfBCnodes];
+   // //   nx_dirB   = &NormalX[B   * numberOfBCnodes];
+   // //   nx_dirNE  = &NormalX[NE  * numberOfBCnodes];
+   // //   nx_dirSW  = &NormalX[SW  * numberOfBCnodes];
+   // //   nx_dirSE  = &NormalX[SE  * numberOfBCnodes];
+   // //   nx_dirNW  = &NormalX[NW  * numberOfBCnodes];
+   // //   nx_dirTE  = &NormalX[TE  * numberOfBCnodes];
+   // //   nx_dirBW  = &NormalX[BW  * numberOfBCnodes];
+   // //   nx_dirBE  = &NormalX[BE  * numberOfBCnodes];
+   // //   nx_dirTW  = &NormalX[TW  * numberOfBCnodes];
+   // //   nx_dirTN  = &NormalX[TN  * numberOfBCnodes];
+   // //   nx_dirBS  = &NormalX[BS  * numberOfBCnodes];
+   // //   nx_dirBN  = &NormalX[BN  * numberOfBCnodes];
+   // //   nx_dirTS  = &NormalX[TS  * numberOfBCnodes];
+   // //   nx_dirTNE = &NormalX[TNE * numberOfBCnodes];
+   // //   nx_dirTSW = &NormalX[TSW * numberOfBCnodes];
+   // //   nx_dirTSE = &NormalX[TSE * numberOfBCnodes];
+   // //   nx_dirTNW = &NormalX[TNW * numberOfBCnodes];
+   // //   nx_dirBNE = &NormalX[BNE * numberOfBCnodes];
+   // //   nx_dirBSW = &NormalX[BSW * numberOfBCnodes];
+   // //   nx_dirBSE = &NormalX[BSE * numberOfBCnodes];
+   // //   nx_dirBNW = &NormalX[BNW * numberOfBCnodes];
    //   ////////////////////////////////////////////////////////////////////////////////
    // //   real *ny_dirE,   *ny_dirW,   *ny_dirN,   *ny_dirS,   *ny_dirT,   *ny_dirB, 
    // //           *ny_dirNE,  *ny_dirSW,  *ny_dirSE,  *ny_dirNW,  *ny_dirTE,  *ny_dirBW,
    // //           *ny_dirBE,  *ny_dirTW,  *ny_dirTN,  *ny_dirBS,  *ny_dirBN,  *ny_dirTS,
    // //           *ny_dirTNE, *ny_dirTSW, *ny_dirTSE, *ny_dirTNW, *ny_dirBNE, *ny_dirBSW,
    // //           *ny_dirBSE, *ny_dirBNW; 
-   // //   ny_dirE   = &NormalY[dirE   * numberOfBCnodes];
-   // //   ny_dirW   = &NormalY[dirW   * numberOfBCnodes];
-   // //   ny_dirN   = &NormalY[dirN   * numberOfBCnodes];
-   // //   ny_dirS   = &NormalY[dirS   * numberOfBCnodes];
-   // //   ny_dirT   = &NormalY[dirT   * numberOfBCnodes];
-   // //   ny_dirB   = &NormalY[dirB   * numberOfBCnodes];
-   // //   ny_dirNE  = &NormalY[dirNE  * numberOfBCnodes];
-   // //   ny_dirSW  = &NormalY[dirSW  * numberOfBCnodes];
-   // //   ny_dirSE  = &NormalY[dirSE  * numberOfBCnodes];
-   // //   ny_dirNW  = &NormalY[dirNW  * numberOfBCnodes];
-   // //   ny_dirTE  = &NormalY[dirTE  * numberOfBCnodes];
-   // //   ny_dirBW  = &NormalY[dirBW  * numberOfBCnodes];
-   // //   ny_dirBE  = &NormalY[dirBE  * numberOfBCnodes];
-   // //   ny_dirTW  = &NormalY[dirTW  * numberOfBCnodes];
-   // //   ny_dirTN  = &NormalY[dirTN  * numberOfBCnodes];
-   // //   ny_dirBS  = &NormalY[dirBS  * numberOfBCnodes];
-   // //   ny_dirBN  = &NormalY[dirBN  * numberOfBCnodes];
-   // //   ny_dirTS  = &NormalY[dirTS  * numberOfBCnodes];
-   // //   ny_dirTNE = &NormalY[dirTNE * numberOfBCnodes];
-   // //   ny_dirTSW = &NormalY[dirTSW * numberOfBCnodes];
-   // //   ny_dirTSE = &NormalY[dirTSE * numberOfBCnodes];
-   // //   ny_dirTNW = &NormalY[dirTNW * numberOfBCnodes];
-   // //   ny_dirBNE = &NormalY[dirBNE * numberOfBCnodes];
-   // //   ny_dirBSW = &NormalY[dirBSW * numberOfBCnodes];
-   // //   ny_dirBSE = &NormalY[dirBSE * numberOfBCnodes];
-   // //   ny_dirBNW = &NormalY[dirBNW * numberOfBCnodes];
+   // //   ny_dirE   = &NormalY[E   * numberOfBCnodes];
+   // //   ny_dirW   = &NormalY[W   * numberOfBCnodes];
+   // //   ny_dirN   = &NormalY[N   * numberOfBCnodes];
+   // //   ny_dirS   = &NormalY[S   * numberOfBCnodes];
+   // //   ny_dirT   = &NormalY[T   * numberOfBCnodes];
+   // //   ny_dirB   = &NormalY[B   * numberOfBCnodes];
+   // //   ny_dirNE  = &NormalY[NE  * numberOfBCnodes];
+   // //   ny_dirSW  = &NormalY[SW  * numberOfBCnodes];
+   // //   ny_dirSE  = &NormalY[SE  * numberOfBCnodes];
+   // //   ny_dirNW  = &NormalY[NW  * numberOfBCnodes];
+   // //   ny_dirTE  = &NormalY[TE  * numberOfBCnodes];
+   // //   ny_dirBW  = &NormalY[BW  * numberOfBCnodes];
+   // //   ny_dirBE  = &NormalY[BE  * numberOfBCnodes];
+   // //   ny_dirTW  = &NormalY[TW  * numberOfBCnodes];
+   // //   ny_dirTN  = &NormalY[TN  * numberOfBCnodes];
+   // //   ny_dirBS  = &NormalY[BS  * numberOfBCnodes];
+   // //   ny_dirBN  = &NormalY[BN  * numberOfBCnodes];
+   // //   ny_dirTS  = &NormalY[TS  * numberOfBCnodes];
+   // //   ny_dirTNE = &NormalY[TNE * numberOfBCnodes];
+   // //   ny_dirTSW = &NormalY[TSW * numberOfBCnodes];
+   // //   ny_dirTSE = &NormalY[TSE * numberOfBCnodes];
+   // //   ny_dirTNW = &NormalY[TNW * numberOfBCnodes];
+   // //   ny_dirBNE = &NormalY[BNE * numberOfBCnodes];
+   // //   ny_dirBSW = &NormalY[BSW * numberOfBCnodes];
+   // //   ny_dirBSE = &NormalY[BSE * numberOfBCnodes];
+   // //   ny_dirBNW = &NormalY[BNW * numberOfBCnodes];
    //   ////////////////////////////////////////////////////////////////////////////////
    // //   real *nz_dirE,   *nz_dirW,   *nz_dirN,   *nz_dirS,   *nz_dirT,   *nz_dirB, 
    // //           *nz_dirNE,  *nz_dirSW,  *nz_dirSE,  *nz_dirNW,  *nz_dirTE,  *nz_dirBW,
    // //           *nz_dirBE,  *nz_dirTW,  *nz_dirTN,  *nz_dirBS,  *nz_dirBN,  *nz_dirTS,
    // //           *nz_dirTNE, *nz_dirTSW, *nz_dirTSE, *nz_dirTNW, *nz_dirBNE, *nz_dirBSW,
    // //           *nz_dirBSE, *nz_dirBNW; 
-   // //   nz_dirE   = &NormalZ[dirE   * numberOfBCnodes];
-   // //   nz_dirW   = &NormalZ[dirW   * numberOfBCnodes];
-   // //   nz_dirN   = &NormalZ[dirN   * numberOfBCnodes];
-   // //   nz_dirS   = &NormalZ[dirS   * numberOfBCnodes];
-   // //   nz_dirT   = &NormalZ[dirT   * numberOfBCnodes];
-   // //   nz_dirB   = &NormalZ[dirB   * numberOfBCnodes];
-   // //   nz_dirNE  = &NormalZ[dirNE  * numberOfBCnodes];
-   // //   nz_dirSW  = &NormalZ[dirSW  * numberOfBCnodes];
-   // //   nz_dirSE  = &NormalZ[dirSE  * numberOfBCnodes];
-   // //   nz_dirNW  = &NormalZ[dirNW  * numberOfBCnodes];
-   // //   nz_dirTE  = &NormalZ[dirTE  * numberOfBCnodes];
-   // //   nz_dirBW  = &NormalZ[dirBW  * numberOfBCnodes];
-   // //   nz_dirBE  = &NormalZ[dirBE  * numberOfBCnodes];
-   // //   nz_dirTW  = &NormalZ[dirTW  * numberOfBCnodes];
-   // //   nz_dirTN  = &NormalZ[dirTN  * numberOfBCnodes];
-   // //   nz_dirBS  = &NormalZ[dirBS  * numberOfBCnodes];
-   // //   nz_dirBN  = &NormalZ[dirBN  * numberOfBCnodes];
-   // //   nz_dirTS  = &NormalZ[dirTS  * numberOfBCnodes];
-   // //   nz_dirTNE = &NormalZ[dirTNE * numberOfBCnodes];
-   // //   nz_dirTSW = &NormalZ[dirTSW * numberOfBCnodes];
-   // //   nz_dirTSE = &NormalZ[dirTSE * numberOfBCnodes];
-   // //   nz_dirTNW = &NormalZ[dirTNW * numberOfBCnodes];
-   // //   nz_dirBNE = &NormalZ[dirBNE * numberOfBCnodes];
-   // //   nz_dirBSW = &NormalZ[dirBSW * numberOfBCnodes];
-   // //   nz_dirBSE = &NormalZ[dirBSE * numberOfBCnodes];
-   // //   nz_dirBNW = &NormalZ[dirBNW * numberOfBCnodes];
+   // //   nz_dirE   = &NormalZ[E   * numberOfBCnodes];
+   // //   nz_dirW   = &NormalZ[W   * numberOfBCnodes];
+   // //   nz_dirN   = &NormalZ[N   * numberOfBCnodes];
+   // //   nz_dirS   = &NormalZ[S   * numberOfBCnodes];
+   // //   nz_dirT   = &NormalZ[T   * numberOfBCnodes];
+   // //   nz_dirB   = &NormalZ[B   * numberOfBCnodes];
+   // //   nz_dirNE  = &NormalZ[NE  * numberOfBCnodes];
+   // //   nz_dirSW  = &NormalZ[SW  * numberOfBCnodes];
+   // //   nz_dirSE  = &NormalZ[SE  * numberOfBCnodes];
+   // //   nz_dirNW  = &NormalZ[NW  * numberOfBCnodes];
+   // //   nz_dirTE  = &NormalZ[TE  * numberOfBCnodes];
+   // //   nz_dirBW  = &NormalZ[BW  * numberOfBCnodes];
+   // //   nz_dirBE  = &NormalZ[BE  * numberOfBCnodes];
+   // //   nz_dirTW  = &NormalZ[TW  * numberOfBCnodes];
+   // //   nz_dirTN  = &NormalZ[TN  * numberOfBCnodes];
+   // //   nz_dirBS  = &NormalZ[BS  * numberOfBCnodes];
+   // //   nz_dirBN  = &NormalZ[BN  * numberOfBCnodes];
+   // //   nz_dirTS  = &NormalZ[TS  * numberOfBCnodes];
+   // //   nz_dirTNE = &NormalZ[TNE * numberOfBCnodes];
+   // //   nz_dirTSW = &NormalZ[TSW * numberOfBCnodes];
+   // //   nz_dirTSE = &NormalZ[TSE * numberOfBCnodes];
+   // //   nz_dirTNW = &NormalZ[TNW * numberOfBCnodes];
+   // //   nz_dirBNE = &NormalZ[BNE * numberOfBCnodes];
+   // //   nz_dirBSW = &NormalZ[BSW * numberOfBCnodes];
+   // //   nz_dirBSE = &NormalZ[BSE * numberOfBCnodes];
+   // //   nz_dirBNW = &NormalZ[BNW * numberOfBCnodes];
    //   ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  //bool changeCell = false;
    //   unsigned int KQK  = k_Q[k];
@@ -2190,32 +2190,32 @@ extern "C" __global__ void ParticleNoSlipDeviceComp27(real* coordX,
    //   unsigned int ktne = KQK;
    //   unsigned int kbsw = neighborZ[ksw];
    //   ////////////////////////////////////////////////////////////////////////////////
-   //   real f_W    = (D.f[dirE   ])[ke   ];
-   //   real f_E    = (D.f[dirW   ])[kw   ];
-   //   real f_S    = (D.f[dirN   ])[kn   ];
-   //   real f_N    = (D.f[dirS   ])[ks   ];
-   //   real f_B    = (D.f[dirT   ])[kt   ];
-   //   real f_T    = (D.f[dirB   ])[kb   ];
-   //   real f_SW   = (D.f[dirNE  ])[kne  ];
-   //   real f_NE   = (D.f[dirSW  ])[ksw  ];
-   //   real f_NW   = (D.f[dirSE  ])[kse  ];
-   //   real f_SE   = (D.f[dirNW  ])[knw  ];
-   //   real f_BW   = (D.f[dirTE  ])[kte  ];
-   //   real f_TE   = (D.f[dirBW  ])[kbw  ];
-   //   real f_TW   = (D.f[dirBE  ])[kbe  ];
-   //   real f_BE   = (D.f[dirTW  ])[ktw  ];
-   //   real f_BS   = (D.f[dirTN  ])[ktn  ];
-   //   real f_TN   = (D.f[dirBS  ])[kbs  ];
-   //   real f_TS   = (D.f[dirBN  ])[kbn  ];
-   //   real f_BN   = (D.f[dirTS  ])[kts  ];
-   //   real f_BSW  = (D.f[dirTNE ])[ktne ];
-   //   real f_BNE  = (D.f[dirTSW ])[ktsw ];
-   //   real f_BNW  = (D.f[dirTSE ])[ktse ];
-   //   real f_BSE  = (D.f[dirTNW ])[ktnw ];
-   //   real f_TSW  = (D.f[dirBNE ])[kbne ];
-   //   real f_TNE  = (D.f[dirBSW ])[kbsw ];
-   //   real f_TNW  = (D.f[dirBSE ])[kbse ];
-   //   real f_TSE  = (D.f[dirBNW ])[kbnw ];
+   //   real f_W    = (D.f[E   ])[ke   ];
+   //   real f_E    = (D.f[W   ])[kw   ];
+   //   real f_S    = (D.f[N   ])[kn   ];
+   //   real f_N    = (D.f[S   ])[ks   ];
+   //   real f_B    = (D.f[T   ])[kt   ];
+   //   real f_T    = (D.f[B   ])[kb   ];
+   //   real f_SW   = (D.f[NE  ])[kne  ];
+   //   real f_NE   = (D.f[SW  ])[ksw  ];
+   //   real f_NW   = (D.f[SE  ])[kse  ];
+   //   real f_SE   = (D.f[NW  ])[knw  ];
+   //   real f_BW   = (D.f[TE  ])[kte  ];
+   //   real f_TE   = (D.f[BW  ])[kbw  ];
+   //   real f_TW   = (D.f[BE  ])[kbe  ];
+   //   real f_BE   = (D.f[TW  ])[ktw  ];
+   //   real f_BS   = (D.f[TN  ])[ktn  ];
+   //   real f_TN   = (D.f[BS  ])[kbs  ];
+   //   real f_TS   = (D.f[BN  ])[kbn  ];
+   //   real f_BN   = (D.f[TS  ])[kts  ];
+   //   real f_BSW  = (D.f[TNE ])[ktne ];
+   //   real f_BNE  = (D.f[TSW ])[ktsw ];
+   //   real f_BNW  = (D.f[TSE ])[ktse ];
+   //   real f_BSE  = (D.f[TNW ])[ktnw ];
+   //   real f_TSW  = (D.f[BNE ])[kbne ];
+   //   real f_TNE  = (D.f[BSW ])[kbsw ];
+   //   real f_TNW  = (D.f[BSE ])[kbse ];
+   //   real f_TSE  = (D.f[BNW ])[kbnw ];
    //   ////////////////////////////////////////////////////////////////////////////////
    //   // real feq, q;
    //   real vx1, vx2, vx3, drho;
@@ -2241,63 +2241,63 @@ extern "C" __global__ void ParticleNoSlipDeviceComp27(real* coordX,
    //   //////////////////////////////////////////////////////////////////////////
    //   if (isEvenTimestep==false)
    //   {
-   //      D.f[dirE   ] = &DD[dirE   *size_Mat];
-   //      D.f[dirW   ] = &DD[dirW   *size_Mat];
-   //      D.f[dirN   ] = &DD[dirN   *size_Mat];
-   //      D.f[dirS   ] = &DD[dirS   *size_Mat];
-   //      D.f[dirT   ] = &DD[dirT   *size_Mat];
-   //      D.f[dirB   ] = &DD[dirB   *size_Mat];
-   //      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-   //      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-   //      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-   //      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-   //      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-   //      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-   //      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-   //      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-   //      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-   //      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-   //      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-   //      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+   //      D.f[E   ] = &DD[E   *size_Mat];
+   //      D.f[W   ] = &DD[W   *size_Mat];
+   //      D.f[N   ] = &DD[N   *size_Mat];
+   //      D.f[S   ] = &DD[S   *size_Mat];
+   //      D.f[T   ] = &DD[T   *size_Mat];
+   //      D.f[B   ] = &DD[B   *size_Mat];
+   //      D.f[NE  ] = &DD[NE  *size_Mat];
+   //      D.f[SW  ] = &DD[SW  *size_Mat];
+   //      D.f[SE  ] = &DD[SE  *size_Mat];
+   //      D.f[NW  ] = &DD[NW  *size_Mat];
+   //      D.f[TE  ] = &DD[TE  *size_Mat];
+   //      D.f[BW  ] = &DD[BW  *size_Mat];
+   //      D.f[BE  ] = &DD[BE  *size_Mat];
+   //      D.f[TW  ] = &DD[TW  *size_Mat];
+   //      D.f[TN  ] = &DD[TN  *size_Mat];
+   //      D.f[BS  ] = &DD[BS  *size_Mat];
+   //      D.f[BN  ] = &DD[BN  *size_Mat];
+   //      D.f[TS  ] = &DD[TS  *size_Mat];
    //      D.f[dirREST] = &DD[dirREST*size_Mat];
-   //      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-   //      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-   //      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-   //      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-   //      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-   //      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-   //      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-   //      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+   //      D.f[TNE ] = &DD[TNE *size_Mat];
+   //      D.f[TSW ] = &DD[TSW *size_Mat];
+   //      D.f[TSE ] = &DD[TSE *size_Mat];
+   //      D.f[TNW ] = &DD[TNW *size_Mat];
+   //      D.f[BNE ] = &DD[BNE *size_Mat];
+   //      D.f[BSW ] = &DD[BSW *size_Mat];
+   //      D.f[BSE ] = &DD[BSE *size_Mat];
+   //      D.f[BNW ] = &DD[BNW *size_Mat];
    //   } 
    //   else
    //   {
-   //      D.f[dirW   ] = &DD[dirE   *size_Mat];
-   //      D.f[dirE   ] = &DD[dirW   *size_Mat];
-   //      D.f[dirS   ] = &DD[dirN   *size_Mat];
-   //      D.f[dirN   ] = &DD[dirS   *size_Mat];
-   //      D.f[dirB   ] = &DD[dirT   *size_Mat];
-   //      D.f[dirT   ] = &DD[dirB   *size_Mat];
-   //      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-   //      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-   //      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-   //      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-   //      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-   //      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-   //      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-   //      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-   //      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-   //      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-   //      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-   //      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+   //      D.f[W   ] = &DD[E   *size_Mat];
+   //      D.f[E   ] = &DD[W   *size_Mat];
+   //      D.f[S   ] = &DD[N   *size_Mat];
+   //      D.f[N   ] = &DD[S   *size_Mat];
+   //      D.f[B   ] = &DD[T   *size_Mat];
+   //      D.f[T   ] = &DD[B   *size_Mat];
+   //      D.f[SW  ] = &DD[NE  *size_Mat];
+   //      D.f[NE  ] = &DD[SW  *size_Mat];
+   //      D.f[NW  ] = &DD[SE  *size_Mat];
+   //      D.f[SE  ] = &DD[NW  *size_Mat];
+   //      D.f[BW  ] = &DD[TE  *size_Mat];
+   //      D.f[TE  ] = &DD[BW  *size_Mat];
+   //      D.f[TW  ] = &DD[BE  *size_Mat];
+   //      D.f[BE  ] = &DD[TW  *size_Mat];
+   //      D.f[BS  ] = &DD[TN  *size_Mat];
+   //      D.f[TN  ] = &DD[BS  *size_Mat];
+   //      D.f[TS  ] = &DD[BN  *size_Mat];
+   //      D.f[BN  ] = &DD[TS  *size_Mat];
    //      D.f[dirREST] = &DD[dirREST*size_Mat];
-   //      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-   //      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-   //      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-   //      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-   //      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-   //      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-   //      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-   //      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+   //      D.f[TNE ] = &DD[BSW *size_Mat];
+   //      D.f[TSW ] = &DD[BNE *size_Mat];
+   //      D.f[TSE ] = &DD[BNW *size_Mat];
+   //      D.f[TNW ] = &DD[BSE *size_Mat];
+   //      D.f[BNE ] = &DD[TSW *size_Mat];
+   //      D.f[BSW ] = &DD[TNE *size_Mat];
+   //      D.f[BSE ] = &DD[TNW *size_Mat];
+   //      D.f[BNW ] = &DD[TSE *size_Mat];
    //   }
    //}
 }
diff --git a/src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu
index 1c6936876..2fa0635ae 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/PressBCs27.cu
@@ -96,120 +96,120 @@ extern "C" __global__ void QInflowScaleByPressDevice27(  real* rhoBC,
       Distributions27 D;
       if (isEvenTimestep==true)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      real f1_E    = (D.f[dirE   ])[k1e   ];
-      real f1_W    = (D.f[dirW   ])[k1w   ];
-      real f1_N    = (D.f[dirN   ])[k1n   ];
-      real f1_S    = (D.f[dirS   ])[k1s   ];
-      real f1_T    = (D.f[dirT   ])[k1t   ];
-      real f1_B    = (D.f[dirB   ])[k1b   ];
-      real f1_NE   = (D.f[dirNE  ])[k1ne  ];
-      real f1_SW   = (D.f[dirSW  ])[k1sw  ];
-      real f1_SE   = (D.f[dirSE  ])[k1se  ];
-      real f1_NW   = (D.f[dirNW  ])[k1nw  ];
-      real f1_TE   = (D.f[dirTE  ])[k1te  ];
-      real f1_BW   = (D.f[dirBW  ])[k1bw  ];
-      real f1_BE   = (D.f[dirBE  ])[k1be  ];
-      real f1_TW   = (D.f[dirTW  ])[k1tw  ];
-      real f1_TN   = (D.f[dirTN  ])[k1tn  ];
-      real f1_BS   = (D.f[dirBS  ])[k1bs  ];
-      real f1_BN   = (D.f[dirBN  ])[k1bn  ];
-      real f1_TS   = (D.f[dirTS  ])[k1ts  ];
+      real f1_E    = (D.f[E   ])[k1e   ];
+      real f1_W    = (D.f[W   ])[k1w   ];
+      real f1_N    = (D.f[N   ])[k1n   ];
+      real f1_S    = (D.f[S   ])[k1s   ];
+      real f1_T    = (D.f[T   ])[k1t   ];
+      real f1_B    = (D.f[B   ])[k1b   ];
+      real f1_NE   = (D.f[NE  ])[k1ne  ];
+      real f1_SW   = (D.f[SW  ])[k1sw  ];
+      real f1_SE   = (D.f[SE  ])[k1se  ];
+      real f1_NW   = (D.f[NW  ])[k1nw  ];
+      real f1_TE   = (D.f[TE  ])[k1te  ];
+      real f1_BW   = (D.f[BW  ])[k1bw  ];
+      real f1_BE   = (D.f[BE  ])[k1be  ];
+      real f1_TW   = (D.f[TW  ])[k1tw  ];
+      real f1_TN   = (D.f[TN  ])[k1tn  ];
+      real f1_BS   = (D.f[BS  ])[k1bs  ];
+      real f1_BN   = (D.f[BN  ])[k1bn  ];
+      real f1_TS   = (D.f[TS  ])[k1ts  ];
       //real f1_ZERO = (D.f[dirREST])[k1zero];
-      real f1_TNE  = (D.f[dirTNE ])[k1tne ];
-      real f1_TSW  = (D.f[dirTSW ])[k1tsw ];
-      real f1_TSE  = (D.f[dirTSE ])[k1tse ];
-      real f1_TNW  = (D.f[dirTNW ])[k1tnw ];
-      real f1_BNE  = (D.f[dirBNE ])[k1bne ];
-      real f1_BSW  = (D.f[dirBSW ])[k1bsw ];
-      real f1_BSE  = (D.f[dirBSE ])[k1bse ];
-      real f1_BNW  = (D.f[dirBNW ])[k1bnw ];
+      real f1_TNE  = (D.f[TNE ])[k1tne ];
+      real f1_TSW  = (D.f[TSW ])[k1tsw ];
+      real f1_TSE  = (D.f[TSE ])[k1tse ];
+      real f1_TNW  = (D.f[TNW ])[k1tnw ];
+      real f1_BNE  = (D.f[BNE ])[k1bne ];
+      real f1_BSW  = (D.f[BSW ])[k1bsw ];
+      real f1_BSE  = (D.f[BSE ])[k1bse ];
+      real f1_BNW  = (D.f[BNW ])[k1bnw ];
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      real f_E    = (D.f[dirE   ])[ke   ];
-      real f_W    = (D.f[dirW   ])[kw   ];
-      real f_N    = (D.f[dirN   ])[kn   ];
-      real f_S    = (D.f[dirS   ])[ks   ];
-      real f_T    = (D.f[dirT   ])[kt   ];
-      real f_B    = (D.f[dirB   ])[kb   ];
-      real f_NE   = (D.f[dirNE  ])[kne  ];
-      real f_SW   = (D.f[dirSW  ])[ksw  ];
-      real f_SE   = (D.f[dirSE  ])[kse  ];
-      real f_NW   = (D.f[dirNW  ])[knw  ];
-      real f_TE   = (D.f[dirTE  ])[kte  ];
-      real f_BW   = (D.f[dirBW  ])[kbw  ];
-      real f_BE   = (D.f[dirBE  ])[kbe  ];
-      real f_TW   = (D.f[dirTW  ])[ktw  ];
-      real f_TN   = (D.f[dirTN  ])[ktn  ];
-      real f_BS   = (D.f[dirBS  ])[kbs  ];
-      real f_BN   = (D.f[dirBN  ])[kbn  ];
-      real f_TS   = (D.f[dirTS  ])[kts  ];
+      real f_E    = (D.f[E   ])[ke   ];
+      real f_W    = (D.f[W   ])[kw   ];
+      real f_N    = (D.f[N   ])[kn   ];
+      real f_S    = (D.f[S   ])[ks   ];
+      real f_T    = (D.f[T   ])[kt   ];
+      real f_B    = (D.f[B   ])[kb   ];
+      real f_NE   = (D.f[NE  ])[kne  ];
+      real f_SW   = (D.f[SW  ])[ksw  ];
+      real f_SE   = (D.f[SE  ])[kse  ];
+      real f_NW   = (D.f[NW  ])[knw  ];
+      real f_TE   = (D.f[TE  ])[kte  ];
+      real f_BW   = (D.f[BW  ])[kbw  ];
+      real f_BE   = (D.f[BE  ])[kbe  ];
+      real f_TW   = (D.f[TW  ])[ktw  ];
+      real f_TN   = (D.f[TN  ])[ktn  ];
+      real f_BS   = (D.f[BS  ])[kbs  ];
+      real f_BN   = (D.f[BN  ])[kbn  ];
+      real f_TS   = (D.f[TS  ])[kts  ];
       //real f_ZERO = (D.f[dirREST])[kzero];
-      real f_TNE  = (D.f[dirTNE ])[ktne ];
-      real f_TSW  = (D.f[dirTSW ])[ktsw ];
-      real f_TSE  = (D.f[dirTSE ])[ktse ];
-      real f_TNW  = (D.f[dirTNW ])[ktnw ];
-      real f_BNE  = (D.f[dirBNE ])[kbne ];
-      real f_BSW  = (D.f[dirBSW ])[kbsw ];
-      real f_BSE  = (D.f[dirBSE ])[kbse ];
-      real f_BNW  = (D.f[dirBNW ])[kbnw ];
+      real f_TNE  = (D.f[TNE ])[ktne ];
+      real f_TSW  = (D.f[TSW ])[ktsw ];
+      real f_TSE  = (D.f[TSE ])[ktse ];
+      real f_TNW  = (D.f[TNW ])[ktnw ];
+      real f_BNE  = (D.f[BNE ])[kbne ];
+      real f_BSW  = (D.f[BSW ])[kbsw ];
+      real f_BSE  = (D.f[BSE ])[kbse ];
+      real f_BNW  = (D.f[BNW ])[kbnw ];
       //////////////////////////////////////////////////////////////////////////
       // real vx1, vx2, vx3;
       real drho, drho1;
@@ -320,106 +320,106 @@ extern "C" __global__ void QInflowScaleByPressDevice27(  real* rhoBC,
 	  //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       //////////////////////////////////////////////////////////////////////////
       //__syncthreads();
 	  // -X
-	  //(D.f[dirE   ])[ke   ] = f_E   ;
-	  //(D.f[dirSE  ])[kse  ] = f_SE  ;
-	  //(D.f[dirNE  ])[kne  ] = f_NE  ;
-	  //(D.f[dirBE  ])[kbe  ] = f_BE  ;
-	  //(D.f[dirTE  ])[kte  ] = f_TE  ;
-	  //(D.f[dirTSE ])[ktse ] = f_TSE ;
-	  //(D.f[dirTNE ])[ktne ] = f_TNE ;
-	  //(D.f[dirBSE ])[kbse ] = f_BSE ;
-	  //(D.f[dirBNE ])[kbne ] = f_BNE ;     
+	  //(D.f[E   ])[ke   ] = f_E   ;
+	  //(D.f[SE  ])[kse  ] = f_SE  ;
+	  //(D.f[NE  ])[kne  ] = f_NE  ;
+	  //(D.f[BE  ])[kbe  ] = f_BE  ;
+	  //(D.f[TE  ])[kte  ] = f_TE  ;
+	  //(D.f[TSE ])[ktse ] = f_TSE ;
+	  //(D.f[TNE ])[ktne ] = f_TNE ;
+	  //(D.f[BSE ])[kbse ] = f_BSE ;
+	  //(D.f[BNE ])[kbne ] = f_BNE ;     
 	  // X
-	  (D.f[dirW   ])[kw   ] = f_W   ;
-	  (D.f[dirSW  ])[ksw  ] = f_SW  ;
-	  (D.f[dirNW  ])[knw  ] = f_NW  ;
-	  (D.f[dirBW  ])[kbw  ] = f_BW  ;
-	  (D.f[dirTW  ])[ktw  ] = f_TW  ;
-	  (D.f[dirTSW ])[ktsw ] = f_TSW ;
-	  (D.f[dirTNW ])[ktnw ] = f_TNW ;
-	  (D.f[dirBSW ])[kbsw ] = f_BSW ;
-	  (D.f[dirBNW ])[kbnw ] = f_BNW ;     
+	  (D.f[W   ])[kw   ] = f_W   ;
+	  (D.f[SW  ])[ksw  ] = f_SW  ;
+	  (D.f[NW  ])[knw  ] = f_NW  ;
+	  (D.f[BW  ])[kbw  ] = f_BW  ;
+	  (D.f[TW  ])[ktw  ] = f_TW  ;
+	  (D.f[TSW ])[ktsw ] = f_TSW ;
+	  (D.f[TNW ])[ktnw ] = f_TNW ;
+	  (D.f[BSW ])[kbsw ] = f_BSW ;
+	  (D.f[BNW ])[kbnw ] = f_BNW ;     
 	  // Y
-	  //(D.f[dirS   ])[ks   ] = f_S   ;
-	  //(D.f[dirSE  ])[kse  ] = f_SE  ;
-	  //(D.f[dirSW  ])[ksw  ] = f_SW  ;
-	  //(D.f[dirTS  ])[kts  ] = f_TS  ;
-	  //(D.f[dirBS  ])[kbs  ] = f_BS  ;
-	  //(D.f[dirTSE ])[ktse ] = f_TSE ;
-	  //(D.f[dirTSW ])[ktsw ] = f_TSW ;
-	  //(D.f[dirBSE ])[kbse ] = f_BSE ;
-	  //(D.f[dirBSW ])[kbsw ] = f_BSW ;     
+	  //(D.f[S   ])[ks   ] = f_S   ;
+	  //(D.f[SE  ])[kse  ] = f_SE  ;
+	  //(D.f[SW  ])[ksw  ] = f_SW  ;
+	  //(D.f[TS  ])[kts  ] = f_TS  ;
+	  //(D.f[BS  ])[kbs  ] = f_BS  ;
+	  //(D.f[TSE ])[ktse ] = f_TSE ;
+	  //(D.f[TSW ])[ktsw ] = f_TSW ;
+	  //(D.f[BSE ])[kbse ] = f_BSE ;
+	  //(D.f[BSW ])[kbsw ] = f_BSW ;     
 	  // Z
-	  //(D.f[dirB   ])[kb   ] = f_B   ;
-	  //(D.f[dirBE  ])[kbe  ] = f_BE  ;
-	  //(D.f[dirBW  ])[kbw  ] = f_BW  ;
-	  //(D.f[dirBN  ])[kbn  ] = f_BN  ;
-	  //(D.f[dirBS  ])[kbs  ] = f_BS  ;
-	  //(D.f[dirBNE ])[kbne ] = f_BNE ;
-	  //(D.f[dirBNW ])[kbnw ] = f_BNW ;
-	  //(D.f[dirBSE ])[kbse ] = f_BSE ;
-	  //(D.f[dirBSW ])[kbsw ] = f_BSW ;     
+	  //(D.f[B   ])[kb   ] = f_B   ;
+	  //(D.f[BE  ])[kbe  ] = f_BE  ;
+	  //(D.f[BW  ])[kbw  ] = f_BW  ;
+	  //(D.f[BN  ])[kbn  ] = f_BN  ;
+	  //(D.f[BS  ])[kbs  ] = f_BS  ;
+	  //(D.f[BNE ])[kbne ] = f_BNE ;
+	  //(D.f[BNW ])[kbnw ] = f_BNW ;
+	  //(D.f[BSE ])[kbse ] = f_BSE ;
+	  //(D.f[BSW ])[kbsw ] = f_BSW ;     
       //////////////////////////////////////////////////////////////////////////
    }
 }
@@ -553,95 +553,95 @@ extern "C" __global__ void QPressDeviceIncompNEQ27( real* rhoBC,
       Distributions27 D;
       if (isEvenTimestep==true) //// ACHTUNG PREColl !!!!!!!!!!!!!!
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       real        f1_E,f1_W,f1_N,f1_S,f1_T,f1_B,f1_NE,f1_SW,f1_SE,f1_NW,f1_TE,f1_BW,f1_BE,f1_TW,f1_TN,f1_BS,f1_BN,f1_TS,f1_ZERO,
                      f1_TNE,f1_TSW,f1_TSE,f1_TNW,f1_BNE,f1_BSW,f1_BSE,f1_BNW;
 
-      f1_W    = (D.f[dirE   ])[k1e   ];
-      f1_E    = (D.f[dirW   ])[k1w   ];
-      f1_S    = (D.f[dirN   ])[k1n   ];
-      f1_N    = (D.f[dirS   ])[k1s   ];
-      f1_B    = (D.f[dirT   ])[k1t   ];
-      f1_T    = (D.f[dirB   ])[k1b   ];
-      f1_SW   = (D.f[dirNE  ])[k1ne  ];
-      f1_NE   = (D.f[dirSW  ])[k1sw  ];
-      f1_NW   = (D.f[dirSE  ])[k1se  ];
-      f1_SE   = (D.f[dirNW  ])[k1nw  ];
-      f1_BW   = (D.f[dirTE  ])[k1te  ];
-      f1_TE   = (D.f[dirBW  ])[k1bw  ];
-      f1_TW   = (D.f[dirBE  ])[k1be  ];
-      f1_BE   = (D.f[dirTW  ])[k1tw  ];
-      f1_BS   = (D.f[dirTN  ])[k1tn  ];
-      f1_TN   = (D.f[dirBS  ])[k1bs  ];
-      f1_TS   = (D.f[dirBN  ])[k1bn  ];
-      f1_BN   = (D.f[dirTS  ])[k1ts  ];
+      f1_W    = (D.f[E   ])[k1e   ];
+      f1_E    = (D.f[W   ])[k1w   ];
+      f1_S    = (D.f[N   ])[k1n   ];
+      f1_N    = (D.f[S   ])[k1s   ];
+      f1_B    = (D.f[T   ])[k1t   ];
+      f1_T    = (D.f[B   ])[k1b   ];
+      f1_SW   = (D.f[NE  ])[k1ne  ];
+      f1_NE   = (D.f[SW  ])[k1sw  ];
+      f1_NW   = (D.f[SE  ])[k1se  ];
+      f1_SE   = (D.f[NW  ])[k1nw  ];
+      f1_BW   = (D.f[TE  ])[k1te  ];
+      f1_TE   = (D.f[BW  ])[k1bw  ];
+      f1_TW   = (D.f[BE  ])[k1be  ];
+      f1_BE   = (D.f[TW  ])[k1tw  ];
+      f1_BS   = (D.f[TN  ])[k1tn  ];
+      f1_TN   = (D.f[BS  ])[k1bs  ];
+      f1_TS   = (D.f[BN  ])[k1bn  ];
+      f1_BN   = (D.f[TS  ])[k1ts  ];
       f1_ZERO = (D.f[dirREST])[k1zero];
-      f1_BSW  = (D.f[dirTNE ])[k1tne ];
-      f1_BNE  = (D.f[dirTSW ])[k1tsw ];
-      f1_BNW  = (D.f[dirTSE ])[k1tse ];
-      f1_BSE  = (D.f[dirTNW ])[k1tnw ];
-      f1_TSW  = (D.f[dirBNE ])[k1bne ];
-      f1_TNE  = (D.f[dirBSW ])[k1bsw ];
-      f1_TNW  = (D.f[dirBSE ])[k1bse ];
-      f1_TSE  = (D.f[dirBNW ])[k1bnw ];
+      f1_BSW  = (D.f[TNE ])[k1tne ];
+      f1_BNE  = (D.f[TSW ])[k1tsw ];
+      f1_BNW  = (D.f[TSE ])[k1tse ];
+      f1_BSE  = (D.f[TNW ])[k1tnw ];
+      f1_TSW  = (D.f[BNE ])[k1bne ];
+      f1_TNE  = (D.f[BSW ])[k1bsw ];
+      f1_TNW  = (D.f[BSE ])[k1bse ];
+      f1_TSE  = (D.f[BNW ])[k1bnw ];
 
       //////////////////////////////////////////////////////////////////////////
       real drho1    =  f1_ZERO+f1_E+f1_W+f1_N+f1_S+f1_T+f1_B+f1_NE+f1_SW+f1_SE+f1_NW+f1_TE+f1_BW+f1_BE+f1_TW+f1_TN+f1_BS+f1_BN+f1_TS+
@@ -733,33 +733,33 @@ extern "C" __global__ void QPressDeviceIncompNEQ27( real* rhoBC,
 
       __syncthreads();
 
-      (D.f[dirE   ])[ke   ] = f1_W   ;  
-      (D.f[dirW   ])[kw   ] = f1_E   ;	
-      (D.f[dirN   ])[kn   ] = f1_S   ;	
-      (D.f[dirS   ])[ks   ] = f1_N   ;	
-      (D.f[dirT   ])[kt   ] = f1_B   ;	
-      (D.f[dirB   ])[kb   ] = f1_T   ;	
-      (D.f[dirNE  ])[kne  ] = f1_SW  ;	
-      (D.f[dirSW  ])[ksw  ] = f1_NE  ;	
-      (D.f[dirSE  ])[kse  ] = f1_NW  ;	
-      (D.f[dirNW  ])[knw  ] = f1_SE  ;	
-      (D.f[dirTE  ])[kte  ] = f1_BW  ;	
-      (D.f[dirBW  ])[kbw  ] = f1_TE  ;	
-      (D.f[dirBE  ])[kbe  ] = f1_TW  ;	
-      (D.f[dirTW  ])[ktw  ] = f1_BE  ;	
-      (D.f[dirTN  ])[ktn  ] = f1_BS  ;	
-      (D.f[dirBS  ])[kbs  ] = f1_TN  ;	
-      (D.f[dirBN  ])[kbn  ] = f1_TS  ;	
-      (D.f[dirTS  ])[kts  ] = f1_BN  ;	
+      (D.f[E   ])[ke   ] = f1_W   ;  
+      (D.f[W   ])[kw   ] = f1_E   ;	
+      (D.f[N   ])[kn   ] = f1_S   ;	
+      (D.f[S   ])[ks   ] = f1_N   ;	
+      (D.f[T   ])[kt   ] = f1_B   ;	
+      (D.f[B   ])[kb   ] = f1_T   ;	
+      (D.f[NE  ])[kne  ] = f1_SW  ;	
+      (D.f[SW  ])[ksw  ] = f1_NE  ;	
+      (D.f[SE  ])[kse  ] = f1_NW  ;	
+      (D.f[NW  ])[knw  ] = f1_SE  ;	
+      (D.f[TE  ])[kte  ] = f1_BW  ;	
+      (D.f[BW  ])[kbw  ] = f1_TE  ;	
+      (D.f[BE  ])[kbe  ] = f1_TW  ;	
+      (D.f[TW  ])[ktw  ] = f1_BE  ;	
+      (D.f[TN  ])[ktn  ] = f1_BS  ;	
+      (D.f[BS  ])[kbs  ] = f1_TN  ;	
+      (D.f[BN  ])[kbn  ] = f1_TS  ;	
+      (D.f[TS  ])[kts  ] = f1_BN  ;	
       (D.f[dirREST])[kzero] = f1_ZERO;	
-      (D.f[dirTNE ])[ktne ] = f1_BSW ;	
-      (D.f[dirTSW ])[ktsw ] = f1_BNE ;	
-      (D.f[dirTSE ])[ktse ] = f1_BNW ;	
-      (D.f[dirTNW ])[ktnw ] = f1_BSE ;	
-      (D.f[dirBNE ])[kbne ] = f1_TSW ;	
-      (D.f[dirBSW ])[kbsw ] = f1_TNE ;	
-      (D.f[dirBSE ])[kbse ] = f1_TNW ;	
-      (D.f[dirBNW ])[kbnw ] = f1_TSE ;       
+      (D.f[TNE ])[ktne ] = f1_BSW ;	
+      (D.f[TSW ])[ktsw ] = f1_BNE ;	
+      (D.f[TSE ])[ktse ] = f1_BNW ;	
+      (D.f[TNW ])[ktnw ] = f1_BSE ;	
+      (D.f[BNE ])[kbne ] = f1_TSW ;	
+      (D.f[BSW ])[kbsw ] = f1_TNE ;	
+      (D.f[BSE ])[kbse ] = f1_TNW ;	
+      (D.f[BNW ])[kbnw ] = f1_TSE ;       
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -913,33 +913,33 @@ extern "C" __global__ void QPressDeviceNEQ27(real* rhoBC,
       ////////////////////////////////////////////////////////////////////////////////
       //! - Set local distributions for neighboring node
       //!
-      real f1_W    = (dist.f[dirE   ])[k1e   ];
-      real f1_E    = (dist.f[dirW   ])[k1w   ];
-      real f1_S    = (dist.f[dirN   ])[k1n   ];
-      real f1_N    = (dist.f[dirS   ])[k1s   ];
-      real f1_B    = (dist.f[dirT   ])[k1t   ];
-      real f1_T    = (dist.f[dirB   ])[k1b   ];
-      real f1_SW   = (dist.f[dirNE  ])[k1ne  ];
-      real f1_NE   = (dist.f[dirSW  ])[k1sw  ];
-      real f1_NW   = (dist.f[dirSE  ])[k1se  ];
-      real f1_SE   = (dist.f[dirNW  ])[k1nw  ];
-      real f1_BW   = (dist.f[dirTE  ])[k1te  ];
-      real f1_TE   = (dist.f[dirBW  ])[k1bw  ];
-      real f1_TW   = (dist.f[dirBE  ])[k1be  ];
-      real f1_BE   = (dist.f[dirTW  ])[k1tw  ];
-      real f1_BS   = (dist.f[dirTN  ])[k1tn  ];
-      real f1_TN   = (dist.f[dirBS  ])[k1bs  ];
-      real f1_TS   = (dist.f[dirBN  ])[k1bn  ];
-      real f1_BN   = (dist.f[dirTS  ])[k1ts  ];
+      real f1_W    = (dist.f[E   ])[k1e   ];
+      real f1_E    = (dist.f[W   ])[k1w   ];
+      real f1_S    = (dist.f[N   ])[k1n   ];
+      real f1_N    = (dist.f[S   ])[k1s   ];
+      real f1_B    = (dist.f[T   ])[k1t   ];
+      real f1_T    = (dist.f[B   ])[k1b   ];
+      real f1_SW   = (dist.f[NE  ])[k1ne  ];
+      real f1_NE   = (dist.f[SW  ])[k1sw  ];
+      real f1_NW   = (dist.f[SE  ])[k1se  ];
+      real f1_SE   = (dist.f[NW  ])[k1nw  ];
+      real f1_BW   = (dist.f[TE  ])[k1te  ];
+      real f1_TE   = (dist.f[BW  ])[k1bw  ];
+      real f1_TW   = (dist.f[BE  ])[k1be  ];
+      real f1_BE   = (dist.f[TW  ])[k1tw  ];
+      real f1_BS   = (dist.f[TN  ])[k1tn  ];
+      real f1_TN   = (dist.f[BS  ])[k1bs  ];
+      real f1_TS   = (dist.f[BN  ])[k1bn  ];
+      real f1_BN   = (dist.f[TS  ])[k1ts  ];
       real f1_ZERO = (dist.f[dirREST])[k1zero];
-      real f1_BSW  = (dist.f[dirTNE ])[k1tne ];
-      real f1_BNE  = (dist.f[dirTSW ])[k1tsw ];
-      real f1_BNW  = (dist.f[dirTSE ])[k1tse ];
-      real f1_BSE  = (dist.f[dirTNW ])[k1tnw ];
-      real f1_TSW  = (dist.f[dirBNE ])[k1bne ];
-      real f1_TNE  = (dist.f[dirBSW ])[k1bsw ];
-      real f1_TNW  = (dist.f[dirBSE ])[k1bse ];
-      real f1_TSE  = (dist.f[dirBNW ])[k1bnw ];
+      real f1_BSW  = (dist.f[TNE ])[k1tne ];
+      real f1_BNE  = (dist.f[TSW ])[k1tsw ];
+      real f1_BNW  = (dist.f[TSE ])[k1tse ];
+      real f1_BSE  = (dist.f[TNW ])[k1tnw ];
+      real f1_TSW  = (dist.f[BNE ])[k1bne ];
+      real f1_TNE  = (dist.f[BSW ])[k1bsw ];
+      real f1_TNW  = (dist.f[BSE ])[k1bse ];
+      real f1_TSE  = (dist.f[BNW ])[k1bnw ];
 
       ////////////////////////////////////////////////////////////////////////////////
       //! - Calculate macroscopic quantities (for neighboring node)
@@ -1036,33 +1036,33 @@ extern "C" __global__ void QPressDeviceNEQ27(real* rhoBC,
       ////////////////////////////////////////////////////////////////////////////////
       //! write the new distributions to the bc nodes
       //!
-      (dist.f[dirE   ])[ke   ] = f1_W   ;
-      (dist.f[dirW   ])[kw   ] = f1_E   ;
-      (dist.f[dirN   ])[kn   ] = f1_S   ;
-      (dist.f[dirS   ])[ks   ] = f1_N   ;
-      (dist.f[dirT   ])[kt   ] = f1_B   ;
-      (dist.f[dirB   ])[kb   ] = f1_T   ;
-      (dist.f[dirNE  ])[kne  ] = f1_SW  ;
-      (dist.f[dirSW  ])[ksw  ] = f1_NE  ;
-      (dist.f[dirSE  ])[kse  ] = f1_NW  ;
-      (dist.f[dirNW  ])[knw  ] = f1_SE  ;
-      (dist.f[dirTE  ])[kte  ] = f1_BW  ;
-      (dist.f[dirBW  ])[kbw  ] = f1_TE  ;
-      (dist.f[dirBE  ])[kbe  ] = f1_TW  ;
-      (dist.f[dirTW  ])[ktw  ] = f1_BE  ;
-      (dist.f[dirTN  ])[ktn  ] = f1_BS  ;
-      (dist.f[dirBS  ])[kbs  ] = f1_TN  ;
-      (dist.f[dirBN  ])[kbn  ] = f1_TS  ;
-      (dist.f[dirTS  ])[kts  ] = f1_BN  ;
+      (dist.f[E   ])[ke   ] = f1_W   ;
+      (dist.f[W   ])[kw   ] = f1_E   ;
+      (dist.f[N   ])[kn   ] = f1_S   ;
+      (dist.f[S   ])[ks   ] = f1_N   ;
+      (dist.f[T   ])[kt   ] = f1_B   ;
+      (dist.f[B   ])[kb   ] = f1_T   ;
+      (dist.f[NE  ])[kne  ] = f1_SW  ;
+      (dist.f[SW  ])[ksw  ] = f1_NE  ;
+      (dist.f[SE  ])[kse  ] = f1_NW  ;
+      (dist.f[NW  ])[knw  ] = f1_SE  ;
+      (dist.f[TE  ])[kte  ] = f1_BW  ;
+      (dist.f[BW  ])[kbw  ] = f1_TE  ;
+      (dist.f[BE  ])[kbe  ] = f1_TW  ;
+      (dist.f[TW  ])[ktw  ] = f1_BE  ;
+      (dist.f[TN  ])[ktn  ] = f1_BS  ;
+      (dist.f[BS  ])[kbs  ] = f1_TN  ;
+      (dist.f[BN  ])[kbn  ] = f1_TS  ;
+      (dist.f[TS  ])[kts  ] = f1_BN  ;
       (dist.f[dirREST])[kzero] = f1_ZERO;
-      (dist.f[dirTNE ])[ktne ] = f1_BSW ;
-      (dist.f[dirTSW ])[ktsw ] = f1_BNE ;
-      (dist.f[dirTSE ])[ktse ] = f1_BNW ;
-      (dist.f[dirTNW ])[ktnw ] = f1_BSE ;
-      (dist.f[dirBNE ])[kbne ] = f1_TSW ;
-      (dist.f[dirBSW ])[kbsw ] = f1_TNE ;
-      (dist.f[dirBSE ])[kbse ] = f1_TNW ;
-      (dist.f[dirBNW ])[kbnw ] = f1_TSE ;
+      (dist.f[TNE ])[ktne ] = f1_BSW ;
+      (dist.f[TSW ])[ktsw ] = f1_BNE ;
+      (dist.f[TSE ])[ktse ] = f1_BNW ;
+      (dist.f[TNW ])[ktnw ] = f1_BSE ;
+      (dist.f[BNE ])[kbne ] = f1_TSW ;
+      (dist.f[BSW ])[kbsw ] = f1_TNE ;
+      (dist.f[BSE ])[kbse ] = f1_TNW ;
+      (dist.f[BNW ])[kbnw ] = f1_TSE ;
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1136,63 +1136,63 @@ extern "C" __global__ void LB_BC_Press_East27( int nx,
       Distributions27 D;
       if (isEvenTimestep==true)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////
       ////////////////////////////////////////////////////////////////////////////////
@@ -1311,66 +1311,66 @@ extern "C" __global__ void LB_BC_Press_East27( int nx,
       real        f1_E,f1_W,f1_N,f1_S,f1_T,f1_B,f1_NE,f1_SW,f1_SE,f1_NW,f1_TE,f1_BW,f1_BE,f1_TW,f1_TN,f1_BS,f1_BN,f1_TS,f1_ZERO,
                    f1_TNE,f1_TSW,f1_TSE,f1_TNW,f1_BNE,f1_BSW,f1_BSE,f1_BNW;
 
-      f1_W    = (D.f[dirE   ])[k1e   ];
-      f1_E    = (D.f[dirW   ])[k1w   ];
-      f1_S    = (D.f[dirN   ])[k1n   ];
-      f1_N    = (D.f[dirS   ])[k1s   ];
-      f1_B    = (D.f[dirT   ])[k1t   ];
-      f1_T    = (D.f[dirB   ])[k1b   ];
-      f1_SW   = (D.f[dirNE  ])[k1ne  ];
-      f1_NE   = (D.f[dirSW  ])[k1sw  ];
-      f1_NW   = (D.f[dirSE  ])[k1se  ];
-      f1_SE   = (D.f[dirNW  ])[k1nw  ];
-      f1_BW   = (D.f[dirTE  ])[k1te  ];
-      f1_TE   = (D.f[dirBW  ])[k1bw  ];
-      f1_TW   = (D.f[dirBE  ])[k1be  ];
-      f1_BE   = (D.f[dirTW  ])[k1tw  ];
-      f1_BS   = (D.f[dirTN  ])[k1tn  ];
-      f1_TN   = (D.f[dirBS  ])[k1bs  ];
-      f1_TS   = (D.f[dirBN  ])[k1bn  ];
-      f1_BN   = (D.f[dirTS  ])[k1ts  ];
+      f1_W    = (D.f[E   ])[k1e   ];
+      f1_E    = (D.f[W   ])[k1w   ];
+      f1_S    = (D.f[N   ])[k1n   ];
+      f1_N    = (D.f[S   ])[k1s   ];
+      f1_B    = (D.f[T   ])[k1t   ];
+      f1_T    = (D.f[B   ])[k1b   ];
+      f1_SW   = (D.f[NE  ])[k1ne  ];
+      f1_NE   = (D.f[SW  ])[k1sw  ];
+      f1_NW   = (D.f[SE  ])[k1se  ];
+      f1_SE   = (D.f[NW  ])[k1nw  ];
+      f1_BW   = (D.f[TE  ])[k1te  ];
+      f1_TE   = (D.f[BW  ])[k1bw  ];
+      f1_TW   = (D.f[BE  ])[k1be  ];
+      f1_BE   = (D.f[TW  ])[k1tw  ];
+      f1_BS   = (D.f[TN  ])[k1tn  ];
+      f1_TN   = (D.f[BS  ])[k1bs  ];
+      f1_TS   = (D.f[BN  ])[k1bn  ];
+      f1_BN   = (D.f[TS  ])[k1ts  ];
       f1_ZERO = (D.f[dirREST])[k1zero];
-      f1_BSW  = (D.f[dirTNE ])[k1tne ];
-      f1_BNE  = (D.f[dirTSW ])[k1tsw ];
-      f1_BNW  = (D.f[dirTSE ])[k1tse ];
-      f1_BSE  = (D.f[dirTNW ])[k1tnw ];
-      f1_TSW  = (D.f[dirBNE ])[k1bne ];
-      f1_TNE  = (D.f[dirBSW ])[k1bsw ];
-      f1_TNW  = (D.f[dirBSE ])[k1bse ];
-      f1_TSE  = (D.f[dirBNW ])[k1bnw ];
+      f1_BSW  = (D.f[TNE ])[k1tne ];
+      f1_BNE  = (D.f[TSW ])[k1tsw ];
+      f1_BNW  = (D.f[TSE ])[k1tse ];
+      f1_BSE  = (D.f[TNW ])[k1tnw ];
+      f1_TSW  = (D.f[BNE ])[k1bne ];
+      f1_TNE  = (D.f[BSW ])[k1bsw ];
+      f1_TNW  = (D.f[BSE ])[k1bse ];
+      f1_TSE  = (D.f[BNW ])[k1bnw ];
 
       real drho1    =  f1_ZERO+f1_E+f1_W+f1_N+f1_S+f1_T+f1_B+f1_NE+f1_SW+f1_SE+f1_NW+f1_TE+f1_BW+f1_BE+f1_TW+f1_TN+f1_BS+f1_BN+f1_TS+
                         f1_TNE+f1_TSW+f1_TSE+f1_TNW+f1_BNE+f1_BSW+f1_BSE+f1_BNW;
 
       __syncthreads();
 
-      (D.f[dirE   ])[ke   ] = f1_W   -c2o27*drho1;
-      (D.f[dirW   ])[kw   ] = f1_E   -c2o27*drho1;
-      (D.f[dirN   ])[kn   ] = f1_S   -c2o27*drho1;
-      (D.f[dirS   ])[ks   ] = f1_N   -c2o27*drho1;
-      (D.f[dirT   ])[kt   ] = f1_B   -c2o27*drho1;
-      (D.f[dirB   ])[kb   ] = f1_T   -c2o27*drho1;
-      (D.f[dirNE  ])[kne  ] = f1_SW  -c1o54*drho1;
-      (D.f[dirSW  ])[ksw  ] = f1_NE  -c1o54*drho1;
-      (D.f[dirSE  ])[kse  ] = f1_NW  -c1o54*drho1;
-      (D.f[dirNW  ])[knw  ] = f1_SE  -c1o54*drho1;
-      (D.f[dirTE  ])[kte  ] = f1_BW  -c1o54*drho1;
-      (D.f[dirBW  ])[kbw  ] = f1_TE  -c1o54*drho1;
-      (D.f[dirBE  ])[kbe  ] = f1_TW  -c1o54*drho1;
-      (D.f[dirTW  ])[ktw  ] = f1_BE  -c1o54*drho1;
-      (D.f[dirTN  ])[ktn  ] = f1_BS  -c1o54*drho1;
-      (D.f[dirBS  ])[kbs  ] = f1_TN  -c1o54*drho1;
-      (D.f[dirBN  ])[kbn  ] = f1_TS  -c1o54*drho1;
-      (D.f[dirTS  ])[kts  ] = f1_BN  -c1o54*drho1;
+      (D.f[E   ])[ke   ] = f1_W   -c2o27*drho1;
+      (D.f[W   ])[kw   ] = f1_E   -c2o27*drho1;
+      (D.f[N   ])[kn   ] = f1_S   -c2o27*drho1;
+      (D.f[S   ])[ks   ] = f1_N   -c2o27*drho1;
+      (D.f[T   ])[kt   ] = f1_B   -c2o27*drho1;
+      (D.f[B   ])[kb   ] = f1_T   -c2o27*drho1;
+      (D.f[NE  ])[kne  ] = f1_SW  -c1o54*drho1;
+      (D.f[SW  ])[ksw  ] = f1_NE  -c1o54*drho1;
+      (D.f[SE  ])[kse  ] = f1_NW  -c1o54*drho1;
+      (D.f[NW  ])[knw  ] = f1_SE  -c1o54*drho1;
+      (D.f[TE  ])[kte  ] = f1_BW  -c1o54*drho1;
+      (D.f[BW  ])[kbw  ] = f1_TE  -c1o54*drho1;
+      (D.f[BE  ])[kbe  ] = f1_TW  -c1o54*drho1;
+      (D.f[TW  ])[ktw  ] = f1_BE  -c1o54*drho1;
+      (D.f[TN  ])[ktn  ] = f1_BS  -c1o54*drho1;
+      (D.f[BS  ])[kbs  ] = f1_TN  -c1o54*drho1;
+      (D.f[BN  ])[kbn  ] = f1_TS  -c1o54*drho1;
+      (D.f[TS  ])[kts  ] = f1_BN  -c1o54*drho1;
       (D.f[dirREST])[kzero] = f1_ZERO-c8o27*drho1;
-      (D.f[dirTNE ])[ktne ] = f1_BSW -c1o216*drho1;
-      (D.f[dirTSW ])[ktsw ] = f1_BNE -c1o216*drho1;
-      (D.f[dirTSE ])[ktse ] = f1_BNW -c1o216*drho1;
-      (D.f[dirTNW ])[ktnw ] = f1_BSE -c1o216*drho1;
-      (D.f[dirBNE ])[kbne ] = f1_TSW -c1o216*drho1;
-      (D.f[dirBSW ])[kbsw ] = f1_TNE -c1o216*drho1;
-      (D.f[dirBSE ])[kbse ] = f1_TNW -c1o216*drho1;
-      (D.f[dirBNW ])[kbnw ] = f1_TSE -c1o216*drho1;       
+      (D.f[TNE ])[ktne ] = f1_BSW -c1o216*drho1;
+      (D.f[TSW ])[ktsw ] = f1_BNE -c1o216*drho1;
+      (D.f[TSE ])[ktse ] = f1_BNW -c1o216*drho1;
+      (D.f[TNW ])[ktnw ] = f1_BSE -c1o216*drho1;
+      (D.f[BNE ])[kbne ] = f1_TSW -c1o216*drho1;
+      (D.f[BSW ])[kbsw ] = f1_TNE -c1o216*drho1;
+      (D.f[BSE ])[kbse ] = f1_TNW -c1o216*drho1;
+      (D.f[BNW ])[kbnw ] = f1_TSE -c1o216*drho1;       
    }
    __syncthreads();
 }          
@@ -1430,63 +1430,63 @@ extern "C" __global__ void QPressDevice27(real* rhoBC,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -1506,32 +1506,32 @@ extern "C" __global__ void QPressDevice27(real* rhoBC,
          *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
          *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
          *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -1566,32 +1566,32 @@ extern "C" __global__ void QPressDevice27(real* rhoBC,
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_W    = (D.f[dirE   ])[ke   ];
-      f_E    = (D.f[dirW   ])[kw   ];
-      f_S    = (D.f[dirN   ])[kn   ];
-      f_N    = (D.f[dirS   ])[ks   ];
-      f_B    = (D.f[dirT   ])[kt   ];
-      f_T    = (D.f[dirB   ])[kb   ];
-      f_SW   = (D.f[dirNE  ])[kne  ];
-      f_NE   = (D.f[dirSW  ])[ksw  ];
-      f_NW   = (D.f[dirSE  ])[kse  ];
-      f_SE   = (D.f[dirNW  ])[knw  ];
-      f_BW   = (D.f[dirTE  ])[kte  ];
-      f_TE   = (D.f[dirBW  ])[kbw  ];
-      f_TW   = (D.f[dirBE  ])[kbe  ];
-      f_BE   = (D.f[dirTW  ])[ktw  ];
-      f_BS   = (D.f[dirTN  ])[ktn  ];
-      f_TN   = (D.f[dirBS  ])[kbs  ];
-      f_TS   = (D.f[dirBN  ])[kbn  ];
-      f_BN   = (D.f[dirTS  ])[kts  ];
-      f_BSW  = (D.f[dirTNE ])[ktne ];
-      f_BNE  = (D.f[dirTSW ])[ktsw ];
-      f_BNW  = (D.f[dirTSE ])[ktse ];
-      f_BSE  = (D.f[dirTNW ])[ktnw ];
-      f_TSW  = (D.f[dirBNE ])[kbne ];
-      f_TNE  = (D.f[dirBSW ])[kbsw ];
-      f_TNW  = (D.f[dirBSE ])[kbse ];
-      f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_W    = (D.f[E   ])[ke   ];
+      f_E    = (D.f[W   ])[kw   ];
+      f_S    = (D.f[N   ])[kn   ];
+      f_N    = (D.f[S   ])[ks   ];
+      f_B    = (D.f[T   ])[kt   ];
+      f_T    = (D.f[B   ])[kb   ];
+      f_SW   = (D.f[NE  ])[kne  ];
+      f_NE   = (D.f[SW  ])[ksw  ];
+      f_NW   = (D.f[SE  ])[kse  ];
+      f_SE   = (D.f[NW  ])[knw  ];
+      f_BW   = (D.f[TE  ])[kte  ];
+      f_TE   = (D.f[BW  ])[kbw  ];
+      f_TW   = (D.f[BE  ])[kbe  ];
+      f_BE   = (D.f[TW  ])[ktw  ];
+      f_BS   = (D.f[TN  ])[ktn  ];
+      f_TN   = (D.f[BS  ])[kbs  ];
+      f_TS   = (D.f[BN  ])[kbn  ];
+      f_BN   = (D.f[TS  ])[kts  ];
+      f_BSW  = (D.f[TNE ])[ktne ];
+      f_BNE  = (D.f[TSW ])[ktsw ];
+      f_BNW  = (D.f[TSE ])[ktse ];
+      f_BSE  = (D.f[TNW ])[ktnw ];
+      f_TSW  = (D.f[BNE ])[kbne ];
+      f_TNE  = (D.f[BSW ])[kbsw ];
+      f_TNW  = (D.f[BSE ])[kbse ];
+      f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real q, vx1, vx2, vx3, drho;
       vx1    =  ((f_TSE - f_BNW) - (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) +
@@ -1615,245 +1615,245 @@ extern "C" __global__ void QPressDevice27(real* rhoBC,
       ////////////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       q = q_dirE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirW])[kw]=c2o27* (drho+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq); 
-         //(D.f[dirE])[ke]=c2over27* (drho+three*( vx1        )+c9over2*( vx1        )*( vx1        )-cu_sq); 
+         (D.f[W])[kw]=c2o27* (drho+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq); 
+         //(D.f[E])[ke]=c2over27* (drho+three*( vx1        )+c9over2*( vx1        )*( vx1        )-cu_sq); 
       }
 
       q = q_dirW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirE])[ke]=c2o27* (drho+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq); 
-         //(D.f[dirW])[kw]=c2over27* (drho+three*(-vx1        )+c9over2*(-vx1        )*(-vx1        )-cu_sq); 
+         (D.f[E])[ke]=c2o27* (drho+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq); 
+         //(D.f[W])[kw]=c2over27* (drho+three*(-vx1        )+c9over2*(-vx1        )*(-vx1        )-cu_sq); 
       }
 
       q = q_dirN[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirS])[ks]=c2o27* (drho+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq); 
-         //(D.f[dirN])[kn]=c2over27* (drho+three*(    vx2     )+c9over2*(     vx2    )*(     vx2    )-cu_sq); 
+         (D.f[S])[ks]=c2o27* (drho+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq); 
+         //(D.f[N])[kn]=c2over27* (drho+three*(    vx2     )+c9over2*(     vx2    )*(     vx2    )-cu_sq); 
       }
 
       q = q_dirS[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirN])[kn]=c2o27* (drho+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq); 
-         //(D.f[dirS])[ks]=c2over27* (drho+three*(   -vx2     )+c9over2*(    -vx2    )*(    -vx2    )-cu_sq); 
+         (D.f[N])[kn]=c2o27* (drho+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq); 
+         //(D.f[S])[ks]=c2over27* (drho+three*(   -vx2     )+c9over2*(    -vx2    )*(    -vx2    )-cu_sq); 
       }
 
       q = q_dirT[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirB])[kb]=c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq); 
-         //(D.f[dirT])[kt]=c2over27* (drho+three*(         vx3)+c9over2*(         vx3)*(         vx3)-cu_sq); 
+         (D.f[B])[kb]=c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq); 
+         //(D.f[T])[kt]=c2over27* (drho+three*(         vx3)+c9over2*(         vx3)*(         vx3)-cu_sq); 
       }
 
       q = q_dirB[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirT])[kt]=c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq); 
-         //(D.f[dirB])[kb]=c2over27* (drho+three*(        -vx3)+c9over2*(        -vx3)*(        -vx3)-cu_sq); 
+         (D.f[T])[kt]=c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq); 
+         //(D.f[B])[kb]=c2over27* (drho+three*(        -vx3)+c9over2*(        -vx3)*(        -vx3)-cu_sq); 
       }
 
       q = q_dirNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirSW])[ksw]=c1o54* (drho+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq); 
-         //(D.f[dirNE])[kne]=c1over54* (drho+three*( vx1+vx2    )+c9over2*( vx1+vx2    )*( vx1+vx2    )-cu_sq); 
+         (D.f[SW])[ksw]=c1o54* (drho+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq); 
+         //(D.f[NE])[kne]=c1over54* (drho+three*( vx1+vx2    )+c9over2*( vx1+vx2    )*( vx1+vx2    )-cu_sq); 
       }
 
       q = q_dirSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirNE])[kne]=c1o54* (drho+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq); 
-         //(D.f[dirSW])[ksw]=c1over54* (drho+three*(-vx1-vx2    )+c9over2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq); 
+         (D.f[NE])[kne]=c1o54* (drho+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq); 
+         //(D.f[SW])[ksw]=c1over54* (drho+three*(-vx1-vx2    )+c9over2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq); 
       }
 
       q = q_dirSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirNW])[knw]=c1o54* (drho+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq); 
-         //(D.f[dirSE])[kse]=c1over54* (drho+three*( vx1-vx2    )+c9over2*( vx1-vx2    )*( vx1-vx2    )-cu_sq); 
+         (D.f[NW])[knw]=c1o54* (drho+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq); 
+         //(D.f[SE])[kse]=c1over54* (drho+three*( vx1-vx2    )+c9over2*( vx1-vx2    )*( vx1-vx2    )-cu_sq); 
       }
 
       q = q_dirNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirSE])[kse]=c1o54* (drho+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq); 
-         //(D.f[dirNW])[knw]=c1over54* (drho+three*(-vx1+vx2    )+c9over2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq); 
+         (D.f[SE])[kse]=c1o54* (drho+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq); 
+         //(D.f[NW])[knw]=c1over54* (drho+three*(-vx1+vx2    )+c9over2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq); 
       }
 
       q = q_dirTE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBW])[kbw]=c1o54* (drho+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq); 
-         //(D.f[dirTE])[kte]=c1over54* (drho+three*( vx1    +vx3)+c9over2*( vx1    +vx3)*( vx1    +vx3)-cu_sq); 
+         (D.f[BW])[kbw]=c1o54* (drho+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq); 
+         //(D.f[TE])[kte]=c1over54* (drho+three*( vx1    +vx3)+c9over2*( vx1    +vx3)*( vx1    +vx3)-cu_sq); 
       }
 
       q = q_dirBW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTE])[kte]=c1o54* (drho+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq); 
-         //(D.f[dirBW])[kbw]=c1over54* (drho+three*(-vx1    -vx3)+c9over2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq); 
+         (D.f[TE])[kte]=c1o54* (drho+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq); 
+         //(D.f[BW])[kbw]=c1over54* (drho+three*(-vx1    -vx3)+c9over2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq); 
       }
 
       q = q_dirBE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTW])[ktw]=c1o54* (drho+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq); 
-         //(D.f[dirBE])[kbe]=c1over54* (drho+three*( vx1    -vx3)+c9over2*( vx1    -vx3)*( vx1    -vx3)-cu_sq); 
+         (D.f[TW])[ktw]=c1o54* (drho+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq); 
+         //(D.f[BE])[kbe]=c1over54* (drho+three*( vx1    -vx3)+c9over2*( vx1    -vx3)*( vx1    -vx3)-cu_sq); 
       }
 
       q = q_dirTW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBE])[kbe]=c1o54* (drho+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq); 
-         //(D.f[dirTW])[ktw]=c1over54* (drho+three*(-vx1    +vx3)+c9over2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq); 
+         (D.f[BE])[kbe]=c1o54* (drho+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq); 
+         //(D.f[TW])[ktw]=c1over54* (drho+three*(-vx1    +vx3)+c9over2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq); 
       }
 
       q = q_dirTN[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBS])[kbs]=c1o54* (drho+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq); 
-         //(D.f[dirTN])[ktn]=c1over54* (drho+three*(     vx2+vx3)+c9over2*(     vx2+vx3)*(     vx2+vx3)-cu_sq); 
+         (D.f[BS])[kbs]=c1o54* (drho+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq); 
+         //(D.f[TN])[ktn]=c1over54* (drho+three*(     vx2+vx3)+c9over2*(     vx2+vx3)*(     vx2+vx3)-cu_sq); 
       }
 
       q = q_dirBS[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTN])[ktn]=c1o54* (drho+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq); 
-         //(D.f[dirBS])[kbs]=c1over54* (drho+three*(    -vx2-vx3)+c9over2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq); 
+         (D.f[TN])[ktn]=c1o54* (drho+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq); 
+         //(D.f[BS])[kbs]=c1over54* (drho+three*(    -vx2-vx3)+c9over2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq); 
       }
 
       q = q_dirBN[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTS])[kts]=c1o54* (drho+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq); 
-         //(D.f[dirBN])[kbn]=c1over54* (drho+three*(     vx2-vx3)+c9over2*(     vx2-vx3)*(     vx2-vx3)-cu_sq); 
+         (D.f[TS])[kts]=c1o54* (drho+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq); 
+         //(D.f[BN])[kbn]=c1over54* (drho+three*(     vx2-vx3)+c9over2*(     vx2-vx3)*(     vx2-vx3)-cu_sq); 
       }
 
       q = q_dirTS[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBN])[kbn]=c1o54* (drho+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq); 
-         //(D.f[dirTS])[kts]=c1over54* (drho+three*(    -vx2+vx3)+c9over2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq); 
+         (D.f[BN])[kbn]=c1o54* (drho+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq); 
+         //(D.f[TS])[kts]=c1over54* (drho+three*(    -vx2+vx3)+c9over2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq); 
       }
 
       q = q_dirTNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBSW])[kbsw]=c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); 
-         //(D.f[dirTNE])[ktne]=c1over216*(drho+three*( vx1+vx2+vx3)+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); 
+         (D.f[BSW])[kbsw]=c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); 
+         //(D.f[TNE])[ktne]=c1over216*(drho+three*( vx1+vx2+vx3)+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); 
       }
 
       q = q_dirBSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTNE])[ktne]=c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); 
-         //(D.f[dirBSW])[kbsw]=c1over216*(drho+three*(-vx1-vx2-vx3)+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); 
+         (D.f[TNE])[ktne]=c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); 
+         //(D.f[BSW])[kbsw]=c1over216*(drho+three*(-vx1-vx2-vx3)+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); 
       }
 
       q = q_dirBNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTSW])[ktsw]=c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); 
-         //(D.f[dirBNE])[kbne]=c1over216*(drho+three*( vx1+vx2-vx3)+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); 
+         (D.f[TSW])[ktsw]=c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); 
+         //(D.f[BNE])[kbne]=c1over216*(drho+three*( vx1+vx2-vx3)+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); 
       }
 
       q = q_dirTSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBNE])[kbne]=c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); 
-         //(D.f[dirTSW])[ktsw]=c1over216*(drho+three*(-vx1-vx2+vx3)+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); 
+         (D.f[BNE])[kbne]=c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); 
+         //(D.f[TSW])[ktsw]=c1over216*(drho+three*(-vx1-vx2+vx3)+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); 
       }
 
       q = q_dirTSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBNW])[kbnw]=c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); 
-         //(D.f[dirTSE])[ktse]=c1over216*(drho+three*( vx1-vx2+vx3)+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); 
+         (D.f[BNW])[kbnw]=c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); 
+         //(D.f[TSE])[ktse]=c1over216*(drho+three*( vx1-vx2+vx3)+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); 
       }
 
       q = q_dirBNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTSE])[ktse]=c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); 
-         //(D.f[dirBNW])[kbnw]=c1over216*(drho+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); 
+         (D.f[TSE])[ktse]=c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); 
+         //(D.f[BNW])[kbnw]=c1over216*(drho+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); 
       }
 
       q = q_dirBSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTNW])[ktnw]=c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); 
-         //(D.f[dirBSE])[kbse]=c1over216*(drho+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); 
+         (D.f[TNW])[ktnw]=c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); 
+         //(D.f[BSE])[kbse]=c1over216*(drho+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); 
       }
 
       q = q_dirTNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBSE])[kbse]=c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); 
-         //(D.f[dirTNW])[ktnw]=c1over216*(drho+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); 
+         (D.f[BSE])[kbse]=c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); 
+         //(D.f[TNW])[ktnw]=c1over216*(drho+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); 
       }
    }
 }
@@ -1916,63 +1916,63 @@ extern "C" __global__ void QPressDeviceAntiBB27(   real* rhoBC,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -1992,32 +1992,32 @@ extern "C" __global__ void QPressDeviceAntiBB27(   real* rhoBC,
          *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
          *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
          *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   *numberOfBCnodes];
-      q_dirW   = &QQ[dirW   *numberOfBCnodes];
-      q_dirN   = &QQ[dirN   *numberOfBCnodes];
-      q_dirS   = &QQ[dirS   *numberOfBCnodes];
-      q_dirT   = &QQ[dirT   *numberOfBCnodes];
-      q_dirB   = &QQ[dirB   *numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  *numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  *numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  *numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  *numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  *numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  *numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  *numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  *numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  *numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  *numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  *numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  *numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE *numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW *numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE *numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW *numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE *numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW *numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE *numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW *numberOfBCnodes];
+      q_dirE   = &QQ[E   *numberOfBCnodes];
+      q_dirW   = &QQ[W   *numberOfBCnodes];
+      q_dirN   = &QQ[N   *numberOfBCnodes];
+      q_dirS   = &QQ[S   *numberOfBCnodes];
+      q_dirT   = &QQ[T   *numberOfBCnodes];
+      q_dirB   = &QQ[B   *numberOfBCnodes];
+      q_dirNE  = &QQ[NE  *numberOfBCnodes];
+      q_dirSW  = &QQ[SW  *numberOfBCnodes];
+      q_dirSE  = &QQ[SE  *numberOfBCnodes];
+      q_dirNW  = &QQ[NW  *numberOfBCnodes];
+      q_dirTE  = &QQ[TE  *numberOfBCnodes];
+      q_dirBW  = &QQ[BW  *numberOfBCnodes];
+      q_dirBE  = &QQ[BE  *numberOfBCnodes];
+      q_dirTW  = &QQ[TW  *numberOfBCnodes];
+      q_dirTN  = &QQ[TN  *numberOfBCnodes];
+      q_dirBS  = &QQ[BS  *numberOfBCnodes];
+      q_dirBN  = &QQ[BN  *numberOfBCnodes];
+      q_dirTS  = &QQ[TS  *numberOfBCnodes];
+      q_dirTNE = &QQ[TNE *numberOfBCnodes];
+      q_dirTSW = &QQ[TSW *numberOfBCnodes];
+      q_dirTSE = &QQ[TSE *numberOfBCnodes];
+      q_dirTNW = &QQ[TNW *numberOfBCnodes];
+      q_dirBNE = &QQ[BNE *numberOfBCnodes];
+      q_dirBSW = &QQ[BSW *numberOfBCnodes];
+      q_dirBSE = &QQ[BSE *numberOfBCnodes];
+      q_dirBNW = &QQ[BNW *numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -2052,32 +2052,32 @@ extern "C" __global__ void QPressDeviceAntiBB27(   real* rhoBC,
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW, f_ZERO;
 
-      f_W    = (D.f[dirE   ])[ke   ];
-      f_E    = (D.f[dirW   ])[kw   ];
-      f_S    = (D.f[dirN   ])[kn   ];
-      f_N    = (D.f[dirS   ])[ks   ];
-      f_B    = (D.f[dirT   ])[kt   ];
-      f_T    = (D.f[dirB   ])[kb   ];
-      f_SW   = (D.f[dirNE  ])[kne  ];
-      f_NE   = (D.f[dirSW  ])[ksw  ];
-      f_NW   = (D.f[dirSE  ])[kse  ];
-      f_SE   = (D.f[dirNW  ])[knw  ];
-      f_BW   = (D.f[dirTE  ])[kte  ];
-      f_TE   = (D.f[dirBW  ])[kbw  ];
-      f_TW   = (D.f[dirBE  ])[kbe  ];
-      f_BE   = (D.f[dirTW  ])[ktw  ];
-      f_BS   = (D.f[dirTN  ])[ktn  ];
-      f_TN   = (D.f[dirBS  ])[kbs  ];
-      f_TS   = (D.f[dirBN  ])[kbn  ];
-      f_BN   = (D.f[dirTS  ])[kts  ];
-      f_BSW  = (D.f[dirTNE ])[ktne ];
-      f_BNE  = (D.f[dirTSW ])[ktsw ];
-      f_BNW  = (D.f[dirTSE ])[ktse ];
-      f_BSE  = (D.f[dirTNW ])[ktnw ];
-      f_TSW  = (D.f[dirBNE ])[kbne ];
-      f_TNE  = (D.f[dirBSW ])[kbsw ];
-      f_TNW  = (D.f[dirBSE ])[kbse ];
-      f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_W    = (D.f[E   ])[ke   ];
+      f_E    = (D.f[W   ])[kw   ];
+      f_S    = (D.f[N   ])[kn   ];
+      f_N    = (D.f[S   ])[ks   ];
+      f_B    = (D.f[T   ])[kt   ];
+      f_T    = (D.f[B   ])[kb   ];
+      f_SW   = (D.f[NE  ])[kne  ];
+      f_NE   = (D.f[SW  ])[ksw  ];
+      f_NW   = (D.f[SE  ])[kse  ];
+      f_SE   = (D.f[NW  ])[knw  ];
+      f_BW   = (D.f[TE  ])[kte  ];
+      f_TE   = (D.f[BW  ])[kbw  ];
+      f_TW   = (D.f[BE  ])[kbe  ];
+      f_BE   = (D.f[TW  ])[ktw  ];
+      f_BS   = (D.f[TN  ])[ktn  ];
+      f_TN   = (D.f[BS  ])[kbs  ];
+      f_TS   = (D.f[BN  ])[kbn  ];
+      f_BN   = (D.f[TS  ])[kts  ];
+      f_BSW  = (D.f[TNE ])[ktne ];
+      f_BNE  = (D.f[TSW ])[ktsw ];
+      f_BNW  = (D.f[TSE ])[ktse ];
+      f_BSE  = (D.f[TNW ])[ktnw ];
+      f_TSW  = (D.f[BNE ])[kbne ];
+      f_TNE  = (D.f[BSW ])[kbsw ];
+      f_TNW  = (D.f[BSE ])[kbse ];
+      f_TSE  = (D.f[BNW ])[kbnw ];
       f_ZERO = (D.f[dirREST])[kzero];
       ////////////////////////////////////////////////////////////////////////////////
       //real vx1, vx2, vx3, drho;
@@ -2106,219 +2106,219 @@ extern "C" __global__ void QPressDeviceAntiBB27(   real* rhoBC,
       ////////////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       q = q_dirE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirW])[kw]=f_W-c2o27*drho; 
+         (D.f[W])[kw]=f_W-c2o27*drho; 
       }
 
       q = q_dirW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirE])[ke]=f_E-c2o27*drho;
+         (D.f[E])[ke]=f_E-c2o27*drho;
       }
 
       q = q_dirN[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirS])[ks]=f_S-c2o27*drho; 
+         (D.f[S])[ks]=f_S-c2o27*drho; 
       }
 
       q = q_dirS[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirN])[kn]=f_N-c2o27*drho; 
+         (D.f[N])[kn]=f_N-c2o27*drho; 
       }
 
       q = q_dirT[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirB])[kb]=f_B-c2o27*drho; 
+         (D.f[B])[kb]=f_B-c2o27*drho; 
       }
 
       q = q_dirB[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirT])[kt]=f_T-c2o27*drho;
+         (D.f[T])[kt]=f_T-c2o27*drho;
       }
 
       q = q_dirNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirSW])[ksw]=f_SW-c1o54*drho;
+         (D.f[SW])[ksw]=f_SW-c1o54*drho;
       }
 
       q = q_dirSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirNE])[kne]=f_NE-c1o54*drho;
+         (D.f[NE])[kne]=f_NE-c1o54*drho;
       }
 
       q = q_dirSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirNW])[knw]=f_NW-c1o54*drho;
+         (D.f[NW])[knw]=f_NW-c1o54*drho;
       }
 
       q = q_dirNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirSE])[kse]=f_SE-c1o54*drho;
+         (D.f[SE])[kse]=f_SE-c1o54*drho;
       }
 
       q = q_dirTE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBW])[kbw]=f_BW-c1o54*drho; 
+         (D.f[BW])[kbw]=f_BW-c1o54*drho; 
       }
 
       q = q_dirBW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTE])[kte]=f_TE-c1o54*drho; 
+         (D.f[TE])[kte]=f_TE-c1o54*drho; 
       }
 
       q = q_dirBE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTW])[ktw]=f_TW-c1o54*drho;
+         (D.f[TW])[ktw]=f_TW-c1o54*drho;
       }
 
       q = q_dirTW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBE])[kbe]=f_BE-c1o54*drho;
+         (D.f[BE])[kbe]=f_BE-c1o54*drho;
       }
 
       q = q_dirTN[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBS])[kbs]=f_BS-c1o54*drho;
+         (D.f[BS])[kbs]=f_BS-c1o54*drho;
       }
 
       q = q_dirBS[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTN])[ktn]=f_TN-c1o54*drho;
+         (D.f[TN])[ktn]=f_TN-c1o54*drho;
       }
 
       q = q_dirBN[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTS])[kts]=f_TS-c1o54*drho;
+         (D.f[TS])[kts]=f_TS-c1o54*drho;
       }
 
       q = q_dirTS[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBN])[kbn]=f_BN-c1o54*drho;
+         (D.f[BN])[kbn]=f_BN-c1o54*drho;
       }
 
       q = q_dirTNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBSW])[kbsw]=f_BSW-c1o216*drho;
+         (D.f[BSW])[kbsw]=f_BSW-c1o216*drho;
       }
 
       q = q_dirBSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTNE])[ktne]=f_TNE-c1o216*drho;
+         (D.f[TNE])[ktne]=f_TNE-c1o216*drho;
       }
 
       q = q_dirBNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTSW])[ktsw]=f_TSW-c1o216*drho;
+         (D.f[TSW])[ktsw]=f_TSW-c1o216*drho;
       }
 
       q = q_dirTSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBNE])[kbne]=f_BNE-c1o216*drho;
+         (D.f[BNE])[kbne]=f_BNE-c1o216*drho;
       }
 
       q = q_dirTSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBNW])[kbnw]=f_BNW-c1o216*drho;
+         (D.f[BNW])[kbnw]=f_BNW-c1o216*drho;
       }
 
       q = q_dirBNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTSE])[ktse]=f_TSE-c1o216*drho;
+         (D.f[TSE])[ktse]=f_TSE-c1o216*drho;
       }
 
       q = q_dirBSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTNW])[ktnw]=f_TNW-c1o216*drho;
+         (D.f[TNW])[ktnw]=f_TNW-c1o216*drho;
       }
 
       q = q_dirTNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBSE])[kbse]=f_BSE-c1o216*drho;
+         (D.f[BSE])[kbse]=f_BSE-c1o216*drho;
       }
    }
 }
@@ -2425,91 +2425,91 @@ extern "C" __global__ void QPressDeviceFixBackflow27( real* rhoBC,
       Distributions27 D;
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-         (D.f[dirW])[kw]       = c2o27  * deltaRho;
-         (D.f[dirE])[ke]       = c2o27  * deltaRho;
-         (D.f[dirS])[ks]       = c2o27  * deltaRho;
-         (D.f[dirN])[kn]       = c2o27  * deltaRho;
-         (D.f[dirB])[kb]       = c2o27  * deltaRho;
-         (D.f[dirT])[kt]       = c2o27  * deltaRho;
-         (D.f[dirSW])[ksw]     = c1o54  * deltaRho;
-         (D.f[dirNE])[kne]     = c1o54  * deltaRho;
-         (D.f[dirNW])[knw]     = c1o54  * deltaRho;
-         (D.f[dirSE])[kse]     = c1o54  * deltaRho;
-         (D.f[dirBW])[kbw]     = c1o54  * deltaRho;
-         (D.f[dirTE])[kte]     = c1o54  * deltaRho;
-         (D.f[dirTW])[ktw]     = c1o54  * deltaRho;
-         (D.f[dirBE])[kbe]     = c1o54  * deltaRho;
-         (D.f[dirBS])[kbs]     = c1o54  * deltaRho;
-         (D.f[dirTN])[ktn]     = c1o54  * deltaRho;
-         (D.f[dirTS])[kts]     = c1o54  * deltaRho;
-         (D.f[dirBN])[kbn]     = c1o54  * deltaRho;
-         (D.f[dirBSW])[kbsw]   = c1o216 * deltaRho;
-         (D.f[dirTNE])[ktne]   = c1o216 * deltaRho;
-         (D.f[dirTSW])[ktsw]   = c1o216 * deltaRho;
-         (D.f[dirBNE])[kbne]   = c1o216 * deltaRho;
-         (D.f[dirBNW])[kbnw]   = c1o216 * deltaRho;
-         (D.f[dirTSE])[ktse]   = c1o216 * deltaRho;
-         (D.f[dirTNW])[ktnw]   = c1o216 * deltaRho;
-         (D.f[dirBSE])[kbse]   = c1o216 * deltaRho;
+         (D.f[W])[kw]       = c2o27  * deltaRho;
+         (D.f[E])[ke]       = c2o27  * deltaRho;
+         (D.f[S])[ks]       = c2o27  * deltaRho;
+         (D.f[N])[kn]       = c2o27  * deltaRho;
+         (D.f[B])[kb]       = c2o27  * deltaRho;
+         (D.f[T])[kt]       = c2o27  * deltaRho;
+         (D.f[SW])[ksw]     = c1o54  * deltaRho;
+         (D.f[NE])[kne]     = c1o54  * deltaRho;
+         (D.f[NW])[knw]     = c1o54  * deltaRho;
+         (D.f[SE])[kse]     = c1o54  * deltaRho;
+         (D.f[BW])[kbw]     = c1o54  * deltaRho;
+         (D.f[TE])[kte]     = c1o54  * deltaRho;
+         (D.f[TW])[ktw]     = c1o54  * deltaRho;
+         (D.f[BE])[kbe]     = c1o54  * deltaRho;
+         (D.f[BS])[kbs]     = c1o54  * deltaRho;
+         (D.f[TN])[ktn]     = c1o54  * deltaRho;
+         (D.f[TS])[kts]     = c1o54  * deltaRho;
+         (D.f[BN])[kbn]     = c1o54  * deltaRho;
+         (D.f[BSW])[kbsw]   = c1o216 * deltaRho;
+         (D.f[TNE])[ktne]   = c1o216 * deltaRho;
+         (D.f[TSW])[ktsw]   = c1o216 * deltaRho;
+         (D.f[BNE])[kbne]   = c1o216 * deltaRho;
+         (D.f[BNW])[kbnw]   = c1o216 * deltaRho;
+         (D.f[TSE])[ktse]   = c1o216 * deltaRho;
+         (D.f[TNW])[ktnw]   = c1o216 * deltaRho;
+         (D.f[BSE])[kbse]   = c1o216 * deltaRho;
          (D.f[dirREST])[kzero] = c8o27  * deltaRho;
    }
 }
@@ -2616,86 +2616,86 @@ extern "C" __global__ void QPressDeviceDirDepBot27(  real* rhoBC,
       Distributions27 D;
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       real f_E,f_W,f_N,f_S,f_T,f_NE,f_SW,f_SE,f_NW,f_TE,f_TW,f_TN,f_TS,f_ZERO,f_TNE,f_TSW,f_TSE,f_TNW;//,
             //f_B,f_BW,f_BE,f_BS,f_BN,f_BSW,f_BNE,f_BNW,f_BSE;
 
-      f_E    = (D.f[dirE   ])[ke   ];
-      f_W    = (D.f[dirW   ])[kw   ];
-      f_N    = (D.f[dirN   ])[kn   ];
-      f_S    = (D.f[dirS   ])[ks   ];
-      f_T    = (D.f[dirT   ])[kt   ];
-      f_NE   = (D.f[dirNE  ])[kne  ];
-      f_SW   = (D.f[dirSW  ])[ksw  ];
-      f_SE   = (D.f[dirSE  ])[kse  ];
-      f_NW   = (D.f[dirNW  ])[knw  ];
-      f_TE   = (D.f[dirTE  ])[kte  ];
-      f_TW   = (D.f[dirTW  ])[ktw  ];
-      f_TN   = (D.f[dirTN  ])[ktn  ];
-      f_TS   = (D.f[dirTS  ])[kts  ];
+      f_E    = (D.f[E   ])[ke   ];
+      f_W    = (D.f[W   ])[kw   ];
+      f_N    = (D.f[N   ])[kn   ];
+      f_S    = (D.f[S   ])[ks   ];
+      f_T    = (D.f[T   ])[kt   ];
+      f_NE   = (D.f[NE  ])[kne  ];
+      f_SW   = (D.f[SW  ])[ksw  ];
+      f_SE   = (D.f[SE  ])[kse  ];
+      f_NW   = (D.f[NW  ])[knw  ];
+      f_TE   = (D.f[TE  ])[kte  ];
+      f_TW   = (D.f[TW  ])[ktw  ];
+      f_TN   = (D.f[TN  ])[ktn  ];
+      f_TS   = (D.f[TS  ])[kts  ];
       f_ZERO = (D.f[dirREST])[kzero];
-      f_TNE  = (D.f[dirTNE ])[ktne ];
-      f_TSW  = (D.f[dirTSW ])[ktsw ];
-      f_TSE  = (D.f[dirTSE ])[ktse ];
-      f_TNW  = (D.f[dirTNW ])[ktnw ];
+      f_TNE  = (D.f[TNE ])[ktne ];
+      f_TSW  = (D.f[TSW ])[ktsw ];
+      f_TSE  = (D.f[TSE ])[ktse ];
+      f_TNW  = (D.f[TNW ])[ktnw ];
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
       //f_B   = (four*rho- four*f_SW-     eight*f_TSW-four*f_W-   eight*f_TW- four*f_NW-     eight*f_TNW-four*f_S-   eight*f_TS-four*f_ZERO+     f_T-four*f_N-   eight*f_TN- four*f_SE-     eight*f_TSE-four*f_E-   eight*f_TE- four*f_NE-     eight*f_TNE)/nine;
@@ -2716,43 +2716,43 @@ extern "C" __global__ void QPressDeviceDirDepBot27(  real* rhoBC,
       //real cusq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
       //(D.f[dirREST])[kzero] = c8over27*  (drho-cusq);
-      //(D.f[dirE])[ke]    = c2over27*  (drho+three*( vx1        )+c9over2*( vx1        )*( vx1        )-cusq);
-      //(D.f[dirW])[kw]    = c2over27*  (drho+three*(-vx1        )+c9over2*(-vx1        )*(-vx1        )-cusq);
-      //(D.f[dirN])[kn]     = c2over27*  (drho+three*(    vx2     )+c9over2*(     vx2    )*(     vx2    )-cusq);
-      //(D.f[dirS])[ks]    = c2over27*  (drho+three*(   -vx2     )+c9over2*(    -vx2    )*(    -vx2    )-cusq);
-      //(D.f[dirT])[kt]    = c2over27*  (drho+three*(         vx3)+c9over2*(         vx3)*(         vx3)-cusq);
-      //(D.f[dirB])[kb]    = c2over27*  (drho+three*(        -vx3)+c9over2*(        -vx3)*(        -vx3)-cusq);
-      //(D.f[dirNE])[kne]   = c1over54*  (drho+three*( vx1+vx2    )+c9over2*( vx1+vx2    )*( vx1+vx2    )-cusq);
-      //(D.f[dirSW])[ksw]   = c1over54*  (drho+three*(-vx1-vx2    )+c9over2*(-vx1-vx2    )*(-vx1-vx2    )-cusq);
-      //(D.f[dirSE])[kse]   =  c1over54* (drho+three*( vx1-vx2    )+c9over2*( vx1-vx2    )*( vx1-vx2    )-cusq);
-      //(D.f[dirNW])[knw]   =  c1over54* (drho+three*(-vx1+vx2    )+c9over2*(-vx1+vx2    )*(-vx1+vx2    )-cusq);
-      //(D.f[dirTE])[kte]   =  c1over54* (drho+three*( vx1    +vx3)+c9over2*( vx1    +vx3)*( vx1    +vx3)-cusq);
-      //(D.f[dirBW])[kbw]   =  c1over54* (drho+three*(-vx1    -vx3)+c9over2*(-vx1    -vx3)*(-vx1    -vx3)-cusq);
-      //(D.f[dirBE])[kbe]   =  c1over54* (drho+three*( vx1    -vx3)+c9over2*( vx1    -vx3)*( vx1    -vx3)-cusq);
-      //(D.f[dirTW])[ktw]   =  c1over54* (drho+three*(-vx1    +vx3)+c9over2*(-vx1    +vx3)*(-vx1    +vx3)-cusq);
-      //(D.f[dirTN])[ktn]   =  c1over54* (drho+three*(     vx2+vx3)+c9over2*(     vx2+vx3)*(     vx2+vx3)-cusq);
-      //(D.f[dirBS])[kbs]   =  c1over54* (drho+three*(    -vx2-vx3)+c9over2*(    -vx2-vx3)*(    -vx2-vx3)-cusq);
-      //(D.f[dirBN])[kbn]   =  c1over54* (drho+three*(     vx2-vx3)+c9over2*(     vx2-vx3)*(     vx2-vx3)-cusq);
-      //(D.f[dirTS])[kts]   =  c1over54* (drho+three*(    -vx2+vx3)+c9over2*(    -vx2+vx3)*(    -vx2+vx3)-cusq);
-      //(D.f[dirTNE])[ktne]  =  c1over216*(drho+three*( vx1+vx2+vx3)+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cusq);
-      //(D.f[dirBSW])[kbsw]  =  c1over216*(drho+three*(-vx1-vx2-vx3)+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cusq);
-      //(D.f[dirBNE])[kbne]  =  c1over216*(drho+three*( vx1+vx2-vx3)+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cusq);
-      //(D.f[dirTSW])[ktsw]  =  c1over216*(drho+three*(-vx1-vx2+vx3)+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cusq);
-      //(D.f[dirTSE])[ktse]  =  c1over216*(drho+three*( vx1-vx2+vx3)+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cusq);
-      //(D.f[dirBNW])[kbnw]  =  c1over216*(drho+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cusq);
-      //(D.f[dirBSE])[kbse]  =  c1over216*(drho+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cusq);
-      //(D.f[dirTNW])[ktnw]  =  c1over216*(drho+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cusq);
+      //(D.f[E])[ke]    = c2over27*  (drho+three*( vx1        )+c9over2*( vx1        )*( vx1        )-cusq);
+      //(D.f[W])[kw]    = c2over27*  (drho+three*(-vx1        )+c9over2*(-vx1        )*(-vx1        )-cusq);
+      //(D.f[N])[kn]     = c2over27*  (drho+three*(    vx2     )+c9over2*(     vx2    )*(     vx2    )-cusq);
+      //(D.f[S])[ks]    = c2over27*  (drho+three*(   -vx2     )+c9over2*(    -vx2    )*(    -vx2    )-cusq);
+      //(D.f[T])[kt]    = c2over27*  (drho+three*(         vx3)+c9over2*(         vx3)*(         vx3)-cusq);
+      //(D.f[B])[kb]    = c2over27*  (drho+three*(        -vx3)+c9over2*(        -vx3)*(        -vx3)-cusq);
+      //(D.f[NE])[kne]   = c1over54*  (drho+three*( vx1+vx2    )+c9over2*( vx1+vx2    )*( vx1+vx2    )-cusq);
+      //(D.f[SW])[ksw]   = c1over54*  (drho+three*(-vx1-vx2    )+c9over2*(-vx1-vx2    )*(-vx1-vx2    )-cusq);
+      //(D.f[SE])[kse]   =  c1over54* (drho+three*( vx1-vx2    )+c9over2*( vx1-vx2    )*( vx1-vx2    )-cusq);
+      //(D.f[NW])[knw]   =  c1over54* (drho+three*(-vx1+vx2    )+c9over2*(-vx1+vx2    )*(-vx1+vx2    )-cusq);
+      //(D.f[TE])[kte]   =  c1over54* (drho+three*( vx1    +vx3)+c9over2*( vx1    +vx3)*( vx1    +vx3)-cusq);
+      //(D.f[BW])[kbw]   =  c1over54* (drho+three*(-vx1    -vx3)+c9over2*(-vx1    -vx3)*(-vx1    -vx3)-cusq);
+      //(D.f[BE])[kbe]   =  c1over54* (drho+three*( vx1    -vx3)+c9over2*( vx1    -vx3)*( vx1    -vx3)-cusq);
+      //(D.f[TW])[ktw]   =  c1over54* (drho+three*(-vx1    +vx3)+c9over2*(-vx1    +vx3)*(-vx1    +vx3)-cusq);
+      //(D.f[TN])[ktn]   =  c1over54* (drho+three*(     vx2+vx3)+c9over2*(     vx2+vx3)*(     vx2+vx3)-cusq);
+      //(D.f[BS])[kbs]   =  c1over54* (drho+three*(    -vx2-vx3)+c9over2*(    -vx2-vx3)*(    -vx2-vx3)-cusq);
+      //(D.f[BN])[kbn]   =  c1over54* (drho+three*(     vx2-vx3)+c9over2*(     vx2-vx3)*(     vx2-vx3)-cusq);
+      //(D.f[TS])[kts]   =  c1over54* (drho+three*(    -vx2+vx3)+c9over2*(    -vx2+vx3)*(    -vx2+vx3)-cusq);
+      //(D.f[TNE])[ktne]  =  c1over216*(drho+three*( vx1+vx2+vx3)+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cusq);
+      //(D.f[BSW])[kbsw]  =  c1over216*(drho+three*(-vx1-vx2-vx3)+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cusq);
+      //(D.f[BNE])[kbne]  =  c1over216*(drho+three*( vx1+vx2-vx3)+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cusq);
+      //(D.f[TSW])[ktsw]  =  c1over216*(drho+three*(-vx1-vx2+vx3)+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cusq);
+      //(D.f[TSE])[ktse]  =  c1over216*(drho+three*( vx1-vx2+vx3)+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cusq);
+      //(D.f[BNW])[kbnw]  =  c1over216*(drho+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cusq);
+      //(D.f[BSE])[kbse]  =  c1over216*(drho+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cusq);
+      //(D.f[TNW])[ktnw]  =  c1over216*(drho+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cusq);
       real drho   =    f_ZERO+f_E+f_W+f_N+f_S+f_T+f_NE+f_SW+f_SE+f_NW+f_TE+f_TW+f_TN+f_TS+f_TNE+f_TSW+f_TSE+f_TNW;
       real dTop   =    f_T+f_TE+f_TW+f_TN+f_TS+f_TNE+f_TSW+f_TSE+f_TNW;
-      (D.f[dirB])[kb]     = (f_T+c2o27)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c2o27;
-      (D.f[dirBW])[kbw]   = (f_TW+c1o54)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o54;
-      (D.f[dirBE])[kbe]   = (f_TE+c1o54)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o54;
-      (D.f[dirBS])[kbs]   = (f_TS+c1o54)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o54;
-      (D.f[dirBN])[kbn]   = (f_TN+c1o54)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o54;
-      (D.f[dirBSW])[kbsw] = (f_TSW+c1o216)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o216;
-      (D.f[dirBNE])[kbne] = (f_TNE+c1o216)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o216;
-      (D.f[dirBNW])[kbnw] = (f_TNW+c1o216)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o216;
-      (D.f[dirBSE])[kbse] = (f_TSE+c1o216)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o216;
+      (D.f[B])[kb]     = (f_T+c2o27)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c2o27;
+      (D.f[BW])[kbw]   = (f_TW+c1o54)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o54;
+      (D.f[BE])[kbe]   = (f_TE+c1o54)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o54;
+      (D.f[BS])[kbs]   = (f_TS+c1o54)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o54;
+      (D.f[BN])[kbn]   = (f_TN+c1o54)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o54;
+      (D.f[BSW])[kbsw] = (f_TSW+c1o216)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o216;
+      (D.f[BNE])[kbne] = (f_TNE+c1o216)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o216;
+      (D.f[BNW])[kbnw] = (f_TNW+c1o216)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o216;
+      (D.f[BSE])[kbse] = (f_TSE+c1o216)*(rho-drho+c1o1/c6o1)/(dTop+c1o1/c6o1)-c1o216;
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -2885,120 +2885,120 @@ extern "C" __global__ void QPressNoRhoDevice27(  real* rhoBC,
       Distributions27 D;
       if (isEvenTimestep==true)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      real f1_E    = (D.f[dirE   ])[k1e   ];
-      real f1_W    = (D.f[dirW   ])[k1w   ];
-      real f1_N    = (D.f[dirN   ])[k1n   ];
-      real f1_S    = (D.f[dirS   ])[k1s   ];
-      real f1_T    = (D.f[dirT   ])[k1t   ];
-      real f1_B    = (D.f[dirB   ])[k1b   ];
-      real f1_NE   = (D.f[dirNE  ])[k1ne  ];
-      real f1_SW   = (D.f[dirSW  ])[k1sw  ];
-      real f1_SE   = (D.f[dirSE  ])[k1se  ];
-      real f1_NW   = (D.f[dirNW  ])[k1nw  ];
-      real f1_TE   = (D.f[dirTE  ])[k1te  ];
-      real f1_BW   = (D.f[dirBW  ])[k1bw  ];
-      real f1_BE   = (D.f[dirBE  ])[k1be  ];
-      real f1_TW   = (D.f[dirTW  ])[k1tw  ];
-      real f1_TN   = (D.f[dirTN  ])[k1tn  ];
-      real f1_BS   = (D.f[dirBS  ])[k1bs  ];
-      real f1_BN   = (D.f[dirBN  ])[k1bn  ];
-      real f1_TS   = (D.f[dirTS  ])[k1ts  ];
+      real f1_E    = (D.f[E   ])[k1e   ];
+      real f1_W    = (D.f[W   ])[k1w   ];
+      real f1_N    = (D.f[N   ])[k1n   ];
+      real f1_S    = (D.f[S   ])[k1s   ];
+      real f1_T    = (D.f[T   ])[k1t   ];
+      real f1_B    = (D.f[B   ])[k1b   ];
+      real f1_NE   = (D.f[NE  ])[k1ne  ];
+      real f1_SW   = (D.f[SW  ])[k1sw  ];
+      real f1_SE   = (D.f[SE  ])[k1se  ];
+      real f1_NW   = (D.f[NW  ])[k1nw  ];
+      real f1_TE   = (D.f[TE  ])[k1te  ];
+      real f1_BW   = (D.f[BW  ])[k1bw  ];
+      real f1_BE   = (D.f[BE  ])[k1be  ];
+      real f1_TW   = (D.f[TW  ])[k1tw  ];
+      real f1_TN   = (D.f[TN  ])[k1tn  ];
+      real f1_BS   = (D.f[BS  ])[k1bs  ];
+      real f1_BN   = (D.f[BN  ])[k1bn  ];
+      real f1_TS   = (D.f[TS  ])[k1ts  ];
       //real f1_ZERO = (D.f[dirREST])[k1zero];
-      real f1_TNE  = (D.f[dirTNE ])[k1tne ];
-      real f1_TSW  = (D.f[dirTSW ])[k1tsw ];
-      real f1_TSE  = (D.f[dirTSE ])[k1tse ];
-      real f1_TNW  = (D.f[dirTNW ])[k1tnw ];
-      real f1_BNE  = (D.f[dirBNE ])[k1bne ];
-      real f1_BSW  = (D.f[dirBSW ])[k1bsw ];
-      real f1_BSE  = (D.f[dirBSE ])[k1bse ];
-      real f1_BNW  = (D.f[dirBNW ])[k1bnw ];
+      real f1_TNE  = (D.f[TNE ])[k1tne ];
+      real f1_TSW  = (D.f[TSW ])[k1tsw ];
+      real f1_TSE  = (D.f[TSE ])[k1tse ];
+      real f1_TNW  = (D.f[TNW ])[k1tnw ];
+      real f1_BNE  = (D.f[BNE ])[k1bne ];
+      real f1_BSW  = (D.f[BSW ])[k1bsw ];
+      real f1_BSE  = (D.f[BSE ])[k1bse ];
+      real f1_BNW  = (D.f[BNW ])[k1bnw ];
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      real f_E    = (D.f[dirE   ])[ke   ];
-      real f_W    = (D.f[dirW   ])[kw   ];
-      real f_N    = (D.f[dirN   ])[kn   ];
-      real f_S    = (D.f[dirS   ])[ks   ];
-      real f_T    = (D.f[dirT   ])[kt   ];
-      real f_B    = (D.f[dirB   ])[kb   ];
-      real f_NE   = (D.f[dirNE  ])[kne  ];
-      real f_SW   = (D.f[dirSW  ])[ksw  ];
-      real f_SE   = (D.f[dirSE  ])[kse  ];
-      real f_NW   = (D.f[dirNW  ])[knw  ];
-      real f_TE   = (D.f[dirTE  ])[kte  ];
-      real f_BW   = (D.f[dirBW  ])[kbw  ];
-      real f_BE   = (D.f[dirBE  ])[kbe  ];
-      real f_TW   = (D.f[dirTW  ])[ktw  ];
-      real f_TN   = (D.f[dirTN  ])[ktn  ];
-      real f_BS   = (D.f[dirBS  ])[kbs  ];
-      real f_BN   = (D.f[dirBN  ])[kbn  ];
-      real f_TS   = (D.f[dirTS  ])[kts  ];
+      real f_E    = (D.f[E   ])[ke   ];
+      real f_W    = (D.f[W   ])[kw   ];
+      real f_N    = (D.f[N   ])[kn   ];
+      real f_S    = (D.f[S   ])[ks   ];
+      real f_T    = (D.f[T   ])[kt   ];
+      real f_B    = (D.f[B   ])[kb   ];
+      real f_NE   = (D.f[NE  ])[kne  ];
+      real f_SW   = (D.f[SW  ])[ksw  ];
+      real f_SE   = (D.f[SE  ])[kse  ];
+      real f_NW   = (D.f[NW  ])[knw  ];
+      real f_TE   = (D.f[TE  ])[kte  ];
+      real f_BW   = (D.f[BW  ])[kbw  ];
+      real f_BE   = (D.f[BE  ])[kbe  ];
+      real f_TW   = (D.f[TW  ])[ktw  ];
+      real f_TN   = (D.f[TN  ])[ktn  ];
+      real f_BS   = (D.f[BS  ])[kbs  ];
+      real f_BN   = (D.f[BN  ])[kbn  ];
+      real f_TS   = (D.f[TS  ])[kts  ];
       //real f_ZERO = (D.f[dirREST])[kzero];
-      real f_TNE  = (D.f[dirTNE ])[ktne ];
-      real f_TSW  = (D.f[dirTSW ])[ktsw ];
-      real f_TSE  = (D.f[dirTSE ])[ktse ];
-      real f_TNW  = (D.f[dirTNW ])[ktnw ];
-      real f_BNE  = (D.f[dirBNE ])[kbne ];
-      real f_BSW  = (D.f[dirBSW ])[kbsw ];
-      real f_BSE  = (D.f[dirBSE ])[kbse ];
-      real f_BNW  = (D.f[dirBNW ])[kbnw ];
+      real f_TNE  = (D.f[TNE ])[ktne ];
+      real f_TSW  = (D.f[TSW ])[ktsw ];
+      real f_TSE  = (D.f[TSE ])[ktse ];
+      real f_TNW  = (D.f[TNW ])[ktnw ];
+      real f_BNE  = (D.f[BNE ])[kbne ];
+      real f_BSW  = (D.f[BSW ])[kbsw ];
+      real f_BSE  = (D.f[BSE ])[kbse ];
+      real f_BNW  = (D.f[BNW ])[kbnw ];
       //////////////////////////////////////////////////////////////////////////
 
       //real vx1, vx2, vx3, drho;
@@ -3169,106 +3169,106 @@ extern "C" __global__ void QPressNoRhoDevice27(  real* rhoBC,
 	  //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       //////////////////////////////////////////////////////////////////////////
       //__syncthreads();
 	  // -X
-	  //(D.f[dirE   ])[ke   ] = f_E   ;
-	  //(D.f[dirSE  ])[kse  ] = f_SE  ;
-	  //(D.f[dirNE  ])[kne  ] = f_NE  ;
-	  //(D.f[dirBE  ])[kbe  ] = f_BE  ;
-	  //(D.f[dirTE  ])[kte  ] = f_TE  ;
-	  //(D.f[dirTSE ])[ktse ] = f_TSE ;
-	  //(D.f[dirTNE ])[ktne ] = f_TNE ;
-	  //(D.f[dirBSE ])[kbse ] = f_BSE ;
-	  //(D.f[dirBNE ])[kbne ] = f_BNE ;     
+	  //(D.f[E   ])[ke   ] = f_E   ;
+	  //(D.f[SE  ])[kse  ] = f_SE  ;
+	  //(D.f[NE  ])[kne  ] = f_NE  ;
+	  //(D.f[BE  ])[kbe  ] = f_BE  ;
+	  //(D.f[TE  ])[kte  ] = f_TE  ;
+	  //(D.f[TSE ])[ktse ] = f_TSE ;
+	  //(D.f[TNE ])[ktne ] = f_TNE ;
+	  //(D.f[BSE ])[kbse ] = f_BSE ;
+	  //(D.f[BNE ])[kbne ] = f_BNE ;     
 	  // X
-	  (D.f[dirW   ])[kw   ] = f_W   ;
-	  (D.f[dirSW  ])[ksw  ] = f_SW  ;
-	  (D.f[dirNW  ])[knw  ] = f_NW  ;
-	  (D.f[dirBW  ])[kbw  ] = f_BW  ;
-	  (D.f[dirTW  ])[ktw  ] = f_TW  ;
-	  (D.f[dirTSW ])[ktsw ] = f_TSW ;
-	  (D.f[dirTNW ])[ktnw ] = f_TNW ;
-	  (D.f[dirBSW ])[kbsw ] = f_BSW ;
-	  (D.f[dirBNW ])[kbnw ] = f_BNW ;     
+	  (D.f[W   ])[kw   ] = f_W   ;
+	  (D.f[SW  ])[ksw  ] = f_SW  ;
+	  (D.f[NW  ])[knw  ] = f_NW  ;
+	  (D.f[BW  ])[kbw  ] = f_BW  ;
+	  (D.f[TW  ])[ktw  ] = f_TW  ;
+	  (D.f[TSW ])[ktsw ] = f_TSW ;
+	  (D.f[TNW ])[ktnw ] = f_TNW ;
+	  (D.f[BSW ])[kbsw ] = f_BSW ;
+	  (D.f[BNW ])[kbnw ] = f_BNW ;     
 	  // Y
-	  //(D.f[dirS   ])[ks   ] = f_S   ;
-	  //(D.f[dirSE  ])[kse  ] = f_SE  ;
-	  //(D.f[dirSW  ])[ksw  ] = f_SW  ;
-	  //(D.f[dirTS  ])[kts  ] = f_TS  ;
-	  //(D.f[dirBS  ])[kbs  ] = f_BS  ;
-	  //(D.f[dirTSE ])[ktse ] = f_TSE ;
-	  //(D.f[dirTSW ])[ktsw ] = f_TSW ;
-	  //(D.f[dirBSE ])[kbse ] = f_BSE ;
-	  //(D.f[dirBSW ])[kbsw ] = f_BSW ;     
+	  //(D.f[S   ])[ks   ] = f_S   ;
+	  //(D.f[SE  ])[kse  ] = f_SE  ;
+	  //(D.f[SW  ])[ksw  ] = f_SW  ;
+	  //(D.f[TS  ])[kts  ] = f_TS  ;
+	  //(D.f[BS  ])[kbs  ] = f_BS  ;
+	  //(D.f[TSE ])[ktse ] = f_TSE ;
+	  //(D.f[TSW ])[ktsw ] = f_TSW ;
+	  //(D.f[BSE ])[kbse ] = f_BSE ;
+	  //(D.f[BSW ])[kbsw ] = f_BSW ;     
 	  // Z
-	  //(D.f[dirB   ])[kb   ] = f_B   ;
-	  //(D.f[dirBE  ])[kbe  ] = f_BE  ;
-	  //(D.f[dirBW  ])[kbw  ] = f_BW  ;
-	  //(D.f[dirBN  ])[kbn  ] = f_BN  ;
-	  //(D.f[dirBS  ])[kbs  ] = f_BS  ;
-	  //(D.f[dirBNE ])[kbne ] = f_BNE ;
-	  //(D.f[dirBNW ])[kbnw ] = f_BNW ;
-	  //(D.f[dirBSE ])[kbse ] = f_BSE ;
-	  //(D.f[dirBSW ])[kbsw ] = f_BSW ;     
+	  //(D.f[B   ])[kb   ] = f_B   ;
+	  //(D.f[BE  ])[kbe  ] = f_BE  ;
+	  //(D.f[BW  ])[kbw  ] = f_BW  ;
+	  //(D.f[BN  ])[kbn  ] = f_BN  ;
+	  //(D.f[BS  ])[kbs  ] = f_BS  ;
+	  //(D.f[BNE ])[kbne ] = f_BNE ;
+	  //(D.f[BNW ])[kbnw ] = f_BNW ;
+	  //(D.f[BSE ])[kbse ] = f_BSE ;
+	  //(D.f[BSW ])[kbsw ] = f_BSW ;     
       //////////////////////////////////////////////////////////////////////////
    }
 }
@@ -3402,95 +3402,95 @@ extern "C" __global__ void QPressDeviceOld27(real* rhoBC,
       Distributions27 D;
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       real        f1_E,f1_W,f1_N,f1_S,f1_T,f1_B,f1_NE,f1_SW,f1_SE,f1_NW,f1_TE,f1_BW,f1_BE,f1_TW,f1_TN,f1_BS,f1_BN,f1_TS,f1_ZERO,
                      f1_TNE,f1_TSW,f1_TSE,f1_TNW,f1_BNE,f1_BSW,f1_BSE,f1_BNW;
 
-      f1_W    = (D.f[dirE   ])[k1e   ];
-      f1_E    = (D.f[dirW   ])[k1w   ];
-      f1_S    = (D.f[dirN   ])[k1n   ];
-      f1_N    = (D.f[dirS   ])[k1s   ];
-      f1_B    = (D.f[dirT   ])[k1t   ];
-      f1_T    = (D.f[dirB   ])[k1b   ];
-      f1_SW   = (D.f[dirNE  ])[k1ne  ];
-      f1_NE   = (D.f[dirSW  ])[k1sw  ];
-      f1_NW   = (D.f[dirSE  ])[k1se  ];
-      f1_SE   = (D.f[dirNW  ])[k1nw  ];
-      f1_BW   = (D.f[dirTE  ])[k1te  ];
-      f1_TE   = (D.f[dirBW  ])[k1bw  ];
-      f1_TW   = (D.f[dirBE  ])[k1be  ];
-      f1_BE   = (D.f[dirTW  ])[k1tw  ];
-      f1_BS   = (D.f[dirTN  ])[k1tn  ];
-      f1_TN   = (D.f[dirBS  ])[k1bs  ];
-      f1_TS   = (D.f[dirBN  ])[k1bn  ];
-      f1_BN   = (D.f[dirTS  ])[k1ts  ];
+      f1_W    = (D.f[E   ])[k1e   ];
+      f1_E    = (D.f[W   ])[k1w   ];
+      f1_S    = (D.f[N   ])[k1n   ];
+      f1_N    = (D.f[S   ])[k1s   ];
+      f1_B    = (D.f[T   ])[k1t   ];
+      f1_T    = (D.f[B   ])[k1b   ];
+      f1_SW   = (D.f[NE  ])[k1ne  ];
+      f1_NE   = (D.f[SW  ])[k1sw  ];
+      f1_NW   = (D.f[SE  ])[k1se  ];
+      f1_SE   = (D.f[NW  ])[k1nw  ];
+      f1_BW   = (D.f[TE  ])[k1te  ];
+      f1_TE   = (D.f[BW  ])[k1bw  ];
+      f1_TW   = (D.f[BE  ])[k1be  ];
+      f1_BE   = (D.f[TW  ])[k1tw  ];
+      f1_BS   = (D.f[TN  ])[k1tn  ];
+      f1_TN   = (D.f[BS  ])[k1bs  ];
+      f1_TS   = (D.f[BN  ])[k1bn  ];
+      f1_BN   = (D.f[TS  ])[k1ts  ];
       f1_ZERO = (D.f[dirREST])[k1zero];
-      f1_BSW  = (D.f[dirTNE ])[k1tne ];
-      f1_BNE  = (D.f[dirTSW ])[k1tsw ];
-      f1_BNW  = (D.f[dirTSE ])[k1tse ];
-      f1_BSE  = (D.f[dirTNW ])[k1tnw ];
-      f1_TSW  = (D.f[dirBNE ])[k1bne ];
-      f1_TNE  = (D.f[dirBSW ])[k1bsw ];
-      f1_TNW  = (D.f[dirBSE ])[k1bse ];
-      f1_TSE  = (D.f[dirBNW ])[k1bnw ];
+      f1_BSW  = (D.f[TNE ])[k1tne ];
+      f1_BNE  = (D.f[TSW ])[k1tsw ];
+      f1_BNW  = (D.f[TSE ])[k1tse ];
+      f1_BSE  = (D.f[TNW ])[k1tnw ];
+      f1_TSW  = (D.f[BNE ])[k1bne ];
+      f1_TNE  = (D.f[BSW ])[k1bsw ];
+      f1_TNW  = (D.f[BSE ])[k1bse ];
+      f1_TSE  = (D.f[BNW ])[k1bnw ];
 
       //////////////////////////////////////////////////////////////////////////
       real drho1    =  f1_ZERO+f1_E+f1_W+f1_N+f1_S+f1_T+f1_B+f1_NE+f1_SW+f1_SE+f1_NW+f1_TE+f1_BW+f1_BE+f1_TW+f1_TN+f1_BS+f1_BN+f1_TS+
@@ -3502,33 +3502,33 @@ extern "C" __global__ void QPressDeviceOld27(real* rhoBC,
 
       __syncthreads();
 
-      (D.f[dirE   ])[ke   ] = f1_W   -c2o27*drho1;   //  c1o100;  // zero;  //
-      (D.f[dirW   ])[kw   ] = f1_E   -c2o27*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirN   ])[kn   ] = f1_S   -c2o27*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirS   ])[ks   ] = f1_N   -c2o27*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirT   ])[kt   ] = f1_B   -c2o27*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirB   ])[kb   ] = f1_T   -c2o27*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirNE  ])[kne  ] = f1_SW  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirSW  ])[ksw  ] = f1_NE  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirSE  ])[kse  ] = f1_NW  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirNW  ])[knw  ] = f1_SE  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTE  ])[kte  ] = f1_BW  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBW  ])[kbw  ] = f1_TE  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBE  ])[kbe  ] = f1_TW  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTW  ])[ktw  ] = f1_BE  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTN  ])[ktn  ] = f1_BS  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBS  ])[kbs  ] = f1_TN  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBN  ])[kbn  ] = f1_TS  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTS  ])[kts  ] = f1_BN  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[E   ])[ke   ] = f1_W   -c2o27*drho1;   //  c1o100;  // zero;  //
+      (D.f[W   ])[kw   ] = f1_E   -c2o27*drho1;	//  c1o100;  // zero;  //
+      (D.f[N   ])[kn   ] = f1_S   -c2o27*drho1;	//  c1o100;  // zero;  //
+      (D.f[S   ])[ks   ] = f1_N   -c2o27*drho1;	//  c1o100;  // zero;  //
+      (D.f[T   ])[kt   ] = f1_B   -c2o27*drho1;	//  c1o100;  // zero;  //
+      (D.f[B   ])[kb   ] = f1_T   -c2o27*drho1;	//  c1o100;  // zero;  //
+      (D.f[NE  ])[kne  ] = f1_SW  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[SW  ])[ksw  ] = f1_NE  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[SE  ])[kse  ] = f1_NW  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[NW  ])[knw  ] = f1_SE  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[TE  ])[kte  ] = f1_BW  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[BW  ])[kbw  ] = f1_TE  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[BE  ])[kbe  ] = f1_TW  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[TW  ])[ktw  ] = f1_BE  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[TN  ])[ktn  ] = f1_BS  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[BS  ])[kbs  ] = f1_TN  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[BN  ])[kbn  ] = f1_TS  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[TS  ])[kts  ] = f1_BN  -c1o54*drho1;	//  c1o100;  // zero;  //
       (D.f[dirREST])[kzero] = f1_ZERO-c8o27*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTNE ])[ktne ] = f1_BSW -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTSW ])[ktsw ] = f1_BNE -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTSE ])[ktse ] = f1_BNW -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTNW ])[ktnw ] = f1_BSE -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBNE ])[kbne ] = f1_TSW -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBSW ])[kbsw ] = f1_TNE -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBSE ])[kbse ] = f1_TNW -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBNW ])[kbnw ] = f1_TSE -c1o216*drho1;  //  c1o100;  // zero;  //      
+      (D.f[TNE ])[ktne ] = f1_BSW -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[TSW ])[ktsw ] = f1_BNE -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[TSE ])[ktse ] = f1_BNW -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[TNW ])[ktnw ] = f1_BSE -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[BNE ])[kbne ] = f1_TSW -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[BSW ])[kbsw ] = f1_TNE -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[BSE ])[kbse ] = f1_TNW -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[BNW ])[kbnw ] = f1_TSE -c1o216*drho1;  //  c1o100;  // zero;  //      
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -3662,153 +3662,153 @@ extern "C" __global__ void QPressDeviceEQZ27(real* rhoBC,
       Distributions27 D;
       if (isEvenTimestep==true)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////
     //   Distributions27 kDistTest;
-    //      kDistTest.f[dirE   ] = &kTestRE[dirE   *numberOfBCnodes];
-    //      kDistTest.f[dirW   ] = &kTestRE[dirW   *numberOfBCnodes];
-    //      kDistTest.f[dirN   ] = &kTestRE[dirN   *numberOfBCnodes];
-    //      kDistTest.f[dirS   ] = &kTestRE[dirS   *numberOfBCnodes];
-    //      kDistTest.f[dirT   ] = &kTestRE[dirT   *numberOfBCnodes];
-    //      kDistTest.f[dirB   ] = &kTestRE[dirB   *numberOfBCnodes];
-    //      kDistTest.f[dirNE  ] = &kTestRE[dirNE  *numberOfBCnodes];
-    //      kDistTest.f[dirSW  ] = &kTestRE[dirSW  *numberOfBCnodes];
-    //      kDistTest.f[dirSE  ] = &kTestRE[dirSE  *numberOfBCnodes];
-    //      kDistTest.f[dirNW  ] = &kTestRE[dirNW  *numberOfBCnodes];
-    //      kDistTest.f[dirTE  ] = &kTestRE[dirTE  *numberOfBCnodes];
-    //      kDistTest.f[dirBW  ] = &kTestRE[dirBW  *numberOfBCnodes];
-    //      kDistTest.f[dirBE  ] = &kTestRE[dirBE  *numberOfBCnodes];
-    //      kDistTest.f[dirTW  ] = &kTestRE[dirTW  *numberOfBCnodes];
-    //      kDistTest.f[dirTN  ] = &kTestRE[dirTN  *numberOfBCnodes];
-    //      kDistTest.f[dirBS  ] = &kTestRE[dirBS  *numberOfBCnodes];
-    //      kDistTest.f[dirBN  ] = &kTestRE[dirBN  *numberOfBCnodes];
-    //      kDistTest.f[dirTS  ] = &kTestRE[dirTS  *numberOfBCnodes];
+    //      kDistTest.f[E   ] = &kTestRE[E   *numberOfBCnodes];
+    //      kDistTest.f[W   ] = &kTestRE[W   *numberOfBCnodes];
+    //      kDistTest.f[N   ] = &kTestRE[N   *numberOfBCnodes];
+    //      kDistTest.f[S   ] = &kTestRE[S   *numberOfBCnodes];
+    //      kDistTest.f[T   ] = &kTestRE[T   *numberOfBCnodes];
+    //      kDistTest.f[B   ] = &kTestRE[B   *numberOfBCnodes];
+    //      kDistTest.f[NE  ] = &kTestRE[NE  *numberOfBCnodes];
+    //      kDistTest.f[SW  ] = &kTestRE[SW  *numberOfBCnodes];
+    //      kDistTest.f[SE  ] = &kTestRE[SE  *numberOfBCnodes];
+    //      kDistTest.f[NW  ] = &kTestRE[NW  *numberOfBCnodes];
+    //      kDistTest.f[TE  ] = &kTestRE[TE  *numberOfBCnodes];
+    //      kDistTest.f[BW  ] = &kTestRE[BW  *numberOfBCnodes];
+    //      kDistTest.f[BE  ] = &kTestRE[BE  *numberOfBCnodes];
+    //      kDistTest.f[TW  ] = &kTestRE[TW  *numberOfBCnodes];
+    //      kDistTest.f[TN  ] = &kTestRE[TN  *numberOfBCnodes];
+    //      kDistTest.f[BS  ] = &kTestRE[BS  *numberOfBCnodes];
+    //      kDistTest.f[BN  ] = &kTestRE[BN  *numberOfBCnodes];
+    //      kDistTest.f[TS  ] = &kTestRE[TS  *numberOfBCnodes];
     //      kDistTest.f[dirREST] = &kTestRE[dirREST*numberOfBCnodes];
-    //      kDistTest.f[dirTNE ] = &kTestRE[dirTNE *numberOfBCnodes];
-    //      kDistTest.f[dirTSW ] = &kTestRE[dirTSW *numberOfBCnodes];
-    //      kDistTest.f[dirTSE ] = &kTestRE[dirTSE *numberOfBCnodes];
-    //      kDistTest.f[dirTNW ] = &kTestRE[dirTNW *numberOfBCnodes];
-    //      kDistTest.f[dirBNE ] = &kTestRE[dirBNE *numberOfBCnodes];
-    //      kDistTest.f[dirBSW ] = &kTestRE[dirBSW *numberOfBCnodes];
-    //      kDistTest.f[dirBSE ] = &kTestRE[dirBSE *numberOfBCnodes];
-    //      kDistTest.f[dirBNW ] = &kTestRE[dirBNW *numberOfBCnodes];
+    //      kDistTest.f[TNE ] = &kTestRE[TNE *numberOfBCnodes];
+    //      kDistTest.f[TSW ] = &kTestRE[TSW *numberOfBCnodes];
+    //      kDistTest.f[TSE ] = &kTestRE[TSE *numberOfBCnodes];
+    //      kDistTest.f[TNW ] = &kTestRE[TNW *numberOfBCnodes];
+    //      kDistTest.f[BNE ] = &kTestRE[BNE *numberOfBCnodes];
+    //      kDistTest.f[BSW ] = &kTestRE[BSW *numberOfBCnodes];
+    //      kDistTest.f[BSE ] = &kTestRE[BSE *numberOfBCnodes];
+    //      kDistTest.f[BNW ] = &kTestRE[BNW *numberOfBCnodes];
    //   ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //   //real f1_E,f1_W,f1_N,f1_S,f1_T,f1_B,f1_NE,f1_SW,f1_SE,f1_NW,f1_TE,f1_BW,f1_BE,f1_TW,f1_TN,f1_BS,f1_BN,f1_TS,f1_ZERO,f1_TNE,f1_TSW,f1_TSE,f1_TNW,f1_BNE,f1_BSW,f1_BSE,f1_BNW;
-   //   //f1_W    = (D.f[dirE   ])[k1e   ];
-   //   //f1_E    = (D.f[dirW   ])[k1w   ];
-   //   //f1_S    = (D.f[dirN   ])[k1n   ];
-   //   //f1_N    = (D.f[dirS   ])[k1s   ];
-   //   //f1_B    = (D.f[dirT   ])[k1t   ];
-   //   //f1_T    = (D.f[dirB   ])[k1b   ];
-   //   //f1_SW   = (D.f[dirNE  ])[k1ne  ];
-   //   //f1_NE   = (D.f[dirSW  ])[k1sw  ];
-   //   //f1_NW   = (D.f[dirSE  ])[k1se  ];
-   //   //f1_SE   = (D.f[dirNW  ])[k1nw  ];
-   //   //f1_BW   = (D.f[dirTE  ])[k1te  ];
-   //   //f1_TE   = (D.f[dirBW  ])[k1bw  ];
-   //   //f1_TW   = (D.f[dirBE  ])[k1be  ];
-   //   //f1_BE   = (D.f[dirTW  ])[k1tw  ];
-   //   //f1_BS   = (D.f[dirTN  ])[k1tn  ];
-   //   //f1_TN   = (D.f[dirBS  ])[k1bs  ];
-   //   //f1_TS   = (D.f[dirBN  ])[k1bn  ];
-   //   //f1_BN   = (D.f[dirTS  ])[k1ts  ];
+   //   //f1_W    = (D.f[E   ])[k1e   ];
+   //   //f1_E    = (D.f[W   ])[k1w   ];
+   //   //f1_S    = (D.f[N   ])[k1n   ];
+   //   //f1_N    = (D.f[S   ])[k1s   ];
+   //   //f1_B    = (D.f[T   ])[k1t   ];
+   //   //f1_T    = (D.f[B   ])[k1b   ];
+   //   //f1_SW   = (D.f[NE  ])[k1ne  ];
+   //   //f1_NE   = (D.f[SW  ])[k1sw  ];
+   //   //f1_NW   = (D.f[SE  ])[k1se  ];
+   //   //f1_SE   = (D.f[NW  ])[k1nw  ];
+   //   //f1_BW   = (D.f[TE  ])[k1te  ];
+   //   //f1_TE   = (D.f[BW  ])[k1bw  ];
+   //   //f1_TW   = (D.f[BE  ])[k1be  ];
+   //   //f1_BE   = (D.f[TW  ])[k1tw  ];
+   //   //f1_BS   = (D.f[TN  ])[k1tn  ];
+   //   //f1_TN   = (D.f[BS  ])[k1bs  ];
+   //   //f1_TS   = (D.f[BN  ])[k1bn  ];
+   //   //f1_BN   = (D.f[TS  ])[k1ts  ];
    //   //f1_ZERO = (D.f[dirREST])[k1zero];
-   //   //f1_BSW  = (D.f[dirTNE ])[k1tne ];
-   //   //f1_BNE  = (D.f[dirTSW ])[k1tsw ];
-   //   //f1_BNW  = (D.f[dirTSE ])[k1tse ];
-   //   //f1_BSE  = (D.f[dirTNW ])[k1tnw ];
-   //   //f1_TSW  = (D.f[dirBNE ])[k1bne ];
-   //   //f1_TNE  = (D.f[dirBSW ])[k1bsw ];
-   //   //f1_TNW  = (D.f[dirBSE ])[k1bse ];
-   //   //f1_TSE  = (D.f[dirBNW ])[k1bnw ];
+   //   //f1_BSW  = (D.f[TNE ])[k1tne ];
+   //   //f1_BNE  = (D.f[TSW ])[k1tsw ];
+   //   //f1_BNW  = (D.f[TSE ])[k1tse ];
+   //   //f1_BSE  = (D.f[TNW ])[k1tnw ];
+   //   //f1_TSW  = (D.f[BNE ])[k1bne ];
+   //   //f1_TNE  = (D.f[BSW ])[k1bsw ];
+   //   //f1_TNW  = (D.f[BSE ])[k1bse ];
+   //   //f1_TSE  = (D.f[BNW ])[k1bnw ];
    //   ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
    //   //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //   real f1_E,f1_W,f1_N,f1_S,f1_T,f1_B,f1_NE,f1_SW,f1_SE,f1_NW,f1_TE,f1_BW,f1_BE,f1_TW,f1_TN,f1_BS,f1_BN,f1_TS,f1_ZERO,f1_TNE,f1_TSW,f1_TSE,f1_TNW,f1_BNE,f1_BSW,f1_BSE,f1_BNW;
-   //   f1_E    = (D.f[dirE   ])[k1e   ];
-   //   f1_W    = (D.f[dirW   ])[k1w   ];
-   //   f1_N    = (D.f[dirN   ])[k1n   ];
-   //   f1_S    = (D.f[dirS   ])[k1s   ];
-   //   f1_T    = (D.f[dirT   ])[k1t   ];
-   //   f1_B    = (D.f[dirB   ])[k1b   ];
-   //   f1_NE   = (D.f[dirNE  ])[k1ne  ];
-   //   f1_SW   = (D.f[dirSW  ])[k1sw  ];
-   //   f1_SE   = (D.f[dirSE  ])[k1se  ];
-   //   f1_NW   = (D.f[dirNW  ])[k1nw  ];
-   //   f1_TE   = (D.f[dirTE  ])[k1te  ];
-   //   f1_BW   = (D.f[dirBW  ])[k1bw  ];
-   //   f1_BE   = (D.f[dirBE  ])[k1be  ];
-   //   f1_TW   = (D.f[dirTW  ])[k1tw  ];
-   //   f1_TN   = (D.f[dirTN  ])[k1tn  ];
-   //   f1_BS   = (D.f[dirBS  ])[k1bs  ];
-   //   f1_BN   = (D.f[dirBN  ])[k1bn  ];
-   //   f1_TS   = (D.f[dirTS  ])[k1ts  ];
+   //   f1_E    = (D.f[E   ])[k1e   ];
+   //   f1_W    = (D.f[W   ])[k1w   ];
+   //   f1_N    = (D.f[N   ])[k1n   ];
+   //   f1_S    = (D.f[S   ])[k1s   ];
+   //   f1_T    = (D.f[T   ])[k1t   ];
+   //   f1_B    = (D.f[B   ])[k1b   ];
+   //   f1_NE   = (D.f[NE  ])[k1ne  ];
+   //   f1_SW   = (D.f[SW  ])[k1sw  ];
+   //   f1_SE   = (D.f[SE  ])[k1se  ];
+   //   f1_NW   = (D.f[NW  ])[k1nw  ];
+   //   f1_TE   = (D.f[TE  ])[k1te  ];
+   //   f1_BW   = (D.f[BW  ])[k1bw  ];
+   //   f1_BE   = (D.f[BE  ])[k1be  ];
+   //   f1_TW   = (D.f[TW  ])[k1tw  ];
+   //   f1_TN   = (D.f[TN  ])[k1tn  ];
+   //   f1_BS   = (D.f[BS  ])[k1bs  ];
+   //   f1_BN   = (D.f[BN  ])[k1bn  ];
+   //   f1_TS   = (D.f[TS  ])[k1ts  ];
    //   f1_ZERO = (D.f[dirREST])[k1zero];
-   //   f1_TNE  = (D.f[dirTNE ])[k1tne ];
-   //   f1_TSW  = (D.f[dirTSW ])[k1tsw ];
-   //   f1_TSE  = (D.f[dirTSE ])[k1tse ];
-   //   f1_TNW  = (D.f[dirTNW ])[k1tnw ];
-   //   f1_BNE  = (D.f[dirBNE ])[k1bne ];
-   //   f1_BSW  = (D.f[dirBSW ])[k1bsw ];
-   //   f1_BSE  = (D.f[dirBSE ])[k1bse ];
-   //   f1_BNW  = (D.f[dirBNW ])[k1bnw ];
+   //   f1_TNE  = (D.f[TNE ])[k1tne ];
+   //   f1_TSW  = (D.f[TSW ])[k1tsw ];
+   //   f1_TSE  = (D.f[TSE ])[k1tse ];
+   //   f1_TNW  = (D.f[TNW ])[k1tnw ];
+   //   f1_BNE  = (D.f[BNE ])[k1bne ];
+   //   f1_BSW  = (D.f[BSW ])[k1bsw ];
+   //   f1_BSE  = (D.f[BSE ])[k1bse ];
+   //   f1_BNW  = (D.f[BNW ])[k1bnw ];
    //   //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
    //   //////////////////////////////////////////////////////////////////////////
@@ -3913,88 +3913,88 @@ extern "C" __global__ void QPressDeviceEQZ27(real* rhoBC,
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
             // based on BGK Plus Comp
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			//double mfabb = (D.f[dirE   ])[k1e   ];
-			//double mfcbb = (D.f[dirW   ])[k1w   ];
-			//double mfbab = (D.f[dirN   ])[k1n   ];
-			//double mfbcb = (D.f[dirS   ])[k1s   ];
-			//double mfbba = (D.f[dirT   ])[k1t   ];
-			//double mfbbc = (D.f[dirB   ])[k1b   ];
-			//double mfaab = (D.f[dirNE  ])[k1ne  ];
-			//double mfccb = (D.f[dirSW  ])[k1sw  ];
-			//double mfacb = (D.f[dirSE  ])[k1se  ];
-			//double mfcab = (D.f[dirNW  ])[k1nw  ];
-			//double mfaba = (D.f[dirTE  ])[k1te  ];
-			//double mfcbc = (D.f[dirBW  ])[k1bw  ];
-			//double mfabc = (D.f[dirBE  ])[k1be  ];
-			//double mfcba = (D.f[dirTW  ])[k1tw  ];
-			//double mfbaa = (D.f[dirTN  ])[k1tn  ];
-			//double mfbcc = (D.f[dirBS  ])[k1bs  ];
-			//double mfbac = (D.f[dirBN  ])[k1bn  ];
-			//double mfbca = (D.f[dirTS  ])[k1ts  ];
+			//double mfabb = (D.f[E   ])[k1e   ];
+			//double mfcbb = (D.f[W   ])[k1w   ];
+			//double mfbab = (D.f[N   ])[k1n   ];
+			//double mfbcb = (D.f[S   ])[k1s   ];
+			//double mfbba = (D.f[T   ])[k1t   ];
+			//double mfbbc = (D.f[B   ])[k1b   ];
+			//double mfaab = (D.f[NE  ])[k1ne  ];
+			//double mfccb = (D.f[SW  ])[k1sw  ];
+			//double mfacb = (D.f[SE  ])[k1se  ];
+			//double mfcab = (D.f[NW  ])[k1nw  ];
+			//double mfaba = (D.f[TE  ])[k1te  ];
+			//double mfcbc = (D.f[BW  ])[k1bw  ];
+			//double mfabc = (D.f[BE  ])[k1be  ];
+			//double mfcba = (D.f[TW  ])[k1tw  ];
+			//double mfbaa = (D.f[TN  ])[k1tn  ];
+			//double mfbcc = (D.f[BS  ])[k1bs  ];
+			//double mfbac = (D.f[BN  ])[k1bn  ];
+			//double mfbca = (D.f[TS  ])[k1ts  ];
 			//double mfbbb = (D.f[dirREST])[k1zero];
-			//double mfaaa = (D.f[dirTNE ])[k1tne ];
-			//double mfcca = (D.f[dirTSW ])[k1tsw ];
-			//double mfaca = (D.f[dirTSE ])[k1tse ];
-			//double mfcaa = (D.f[dirTNW ])[k1tnw ];
-			//double mfaac = (D.f[dirBNE ])[k1bne ];
-			//double mfccc = (D.f[dirBSW ])[k1bsw ];
-			//double mfacc = (D.f[dirBSE ])[k1bse ];
-			//double mfcac = (D.f[dirBNW ])[k1bnw ];
-			real mfabb = (D.f[dirE   ])[k1e   ];
-			real mfcbb = (D.f[dirW   ])[k1w   ];
-			real mfbab = (D.f[dirN   ])[k1n   ];
-			real mfbcb = (D.f[dirS   ])[k1s   ];
-			real mfbba = (D.f[dirT   ])[k1t   ];
-			real mfbbc = (D.f[dirB   ])[k1b   ];
-			real mfaab = (D.f[dirNE  ])[k1ne  ];
-			real mfccb = (D.f[dirSW  ])[k1sw  ];
-			real mfacb = (D.f[dirSE  ])[k1se  ];
-			real mfcab = (D.f[dirNW  ])[k1nw  ];
-			real mfaba = (D.f[dirTE  ])[k1te  ];
-			real mfcbc = (D.f[dirBW  ])[k1bw  ];
-			real mfabc = (D.f[dirBE  ])[k1be  ];
-			real mfcba = (D.f[dirTW  ])[k1tw  ];
-			real mfbaa = (D.f[dirTN  ])[k1tn  ];
-			real mfbcc = (D.f[dirBS  ])[k1bs  ];
-			real mfbac = (D.f[dirBN  ])[k1bn  ];
-			real mfbca = (D.f[dirTS  ])[k1ts  ];
+			//double mfaaa = (D.f[TNE ])[k1tne ];
+			//double mfcca = (D.f[TSW ])[k1tsw ];
+			//double mfaca = (D.f[TSE ])[k1tse ];
+			//double mfcaa = (D.f[TNW ])[k1tnw ];
+			//double mfaac = (D.f[BNE ])[k1bne ];
+			//double mfccc = (D.f[BSW ])[k1bsw ];
+			//double mfacc = (D.f[BSE ])[k1bse ];
+			//double mfcac = (D.f[BNW ])[k1bnw ];
+			real mfabb = (D.f[E   ])[k1e   ];
+			real mfcbb = (D.f[W   ])[k1w   ];
+			real mfbab = (D.f[N   ])[k1n   ];
+			real mfbcb = (D.f[S   ])[k1s   ];
+			real mfbba = (D.f[T   ])[k1t   ];
+			real mfbbc = (D.f[B   ])[k1b   ];
+			real mfaab = (D.f[NE  ])[k1ne  ];
+			real mfccb = (D.f[SW  ])[k1sw  ];
+			real mfacb = (D.f[SE  ])[k1se  ];
+			real mfcab = (D.f[NW  ])[k1nw  ];
+			real mfaba = (D.f[TE  ])[k1te  ];
+			real mfcbc = (D.f[BW  ])[k1bw  ];
+			real mfabc = (D.f[BE  ])[k1be  ];
+			real mfcba = (D.f[TW  ])[k1tw  ];
+			real mfbaa = (D.f[TN  ])[k1tn  ];
+			real mfbcc = (D.f[BS  ])[k1bs  ];
+			real mfbac = (D.f[BN  ])[k1bn  ];
+			real mfbca = (D.f[TS  ])[k1ts  ];
 			real mfbbb = (D.f[dirREST])[k1zero];
-			real mfaaa = (D.f[dirTNE ])[k1tne ];
-			real mfcca = (D.f[dirTSW ])[k1tsw ];
-			real mfaca = (D.f[dirTSE ])[k1tse ];
-			real mfcaa = (D.f[dirTNW ])[k1tnw ];
-			real mfaac = (D.f[dirBNE ])[k1bne ];
-			real mfccc = (D.f[dirBSW ])[k1bsw ];
-			real mfacc = (D.f[dirBSE ])[k1bse ];
-			real mfcac = (D.f[dirBNW ])[k1bnw ];
-
-			//real mfcbb = (D.f[dirE   ])[ke   ];
-			//real mfabb = (D.f[dirW   ])[kw   ];
-			//real mfbcb = (D.f[dirN   ])[kn   ];
-			//real mfbab = (D.f[dirS   ])[ks   ];
-			//real mfbbc = (D.f[dirT   ])[kt   ];
-			//real mfbba = (D.f[dirB   ])[kb   ];
-			//real mfccb = (D.f[dirNE  ])[kne  ];
-			//real mfaab = (D.f[dirSW  ])[ksw  ];
-			//real mfcab = (D.f[dirSE  ])[kse  ];
-			//real mfacb = (D.f[dirNW  ])[knw  ];
-			//real mfcbc = (D.f[dirTE  ])[kte  ];
-			//real mfaba = (D.f[dirBW  ])[kbw  ];
-			//real mfcba = (D.f[dirBE  ])[kbe  ];
-			//real mfabc = (D.f[dirTW  ])[ktw  ];
-			//real mfbcc = (D.f[dirTN  ])[ktn  ];
-			//real mfbaa = (D.f[dirBS  ])[kbs  ];
-			//real mfbca = (D.f[dirBN  ])[kbn  ];
-			//real mfbac = (D.f[dirTS  ])[kts  ];
+			real mfaaa = (D.f[TNE ])[k1tne ];
+			real mfcca = (D.f[TSW ])[k1tsw ];
+			real mfaca = (D.f[TSE ])[k1tse ];
+			real mfcaa = (D.f[TNW ])[k1tnw ];
+			real mfaac = (D.f[BNE ])[k1bne ];
+			real mfccc = (D.f[BSW ])[k1bsw ];
+			real mfacc = (D.f[BSE ])[k1bse ];
+			real mfcac = (D.f[BNW ])[k1bnw ];
+
+			//real mfcbb = (D.f[E   ])[ke   ];
+			//real mfabb = (D.f[W   ])[kw   ];
+			//real mfbcb = (D.f[N   ])[kn   ];
+			//real mfbab = (D.f[S   ])[ks   ];
+			//real mfbbc = (D.f[T   ])[kt   ];
+			//real mfbba = (D.f[B   ])[kb   ];
+			//real mfccb = (D.f[NE  ])[kne  ];
+			//real mfaab = (D.f[SW  ])[ksw  ];
+			//real mfcab = (D.f[SE  ])[kse  ];
+			//real mfacb = (D.f[NW  ])[knw  ];
+			//real mfcbc = (D.f[TE  ])[kte  ];
+			//real mfaba = (D.f[BW  ])[kbw  ];
+			//real mfcba = (D.f[BE  ])[kbe  ];
+			//real mfabc = (D.f[TW  ])[ktw  ];
+			//real mfbcc = (D.f[TN  ])[ktn  ];
+			//real mfbaa = (D.f[BS  ])[kbs  ];
+			//real mfbca = (D.f[BN  ])[kbn  ];
+			//real mfbac = (D.f[TS  ])[kts  ];
 			//real mfbbb = (D.f[dirREST])[kzero];
-			//real mfccc = (D.f[dirTNE ])[ktne ];
-			//real mfaac = (D.f[dirTSW ])[ktsw ];
-			//real mfcac = (D.f[dirTSE ])[ktse ];
-			//real mfacc = (D.f[dirTNW ])[ktnw ];
-			//real mfcca = (D.f[dirBNE ])[kbne ];
-			//real mfaaa = (D.f[dirBSW ])[kbsw ];
-			//real mfcaa = (D.f[dirBSE ])[kbse ];
-			//real mfaca = (D.f[dirBNW ])[kbnw ];
+			//real mfccc = (D.f[TNE ])[ktne ];
+			//real mfaac = (D.f[TSW ])[ktsw ];
+			//real mfcac = (D.f[TSE ])[ktse ];
+			//real mfacc = (D.f[TNW ])[ktnw ];
+			//real mfcca = (D.f[BNE ])[kbne ];
+			//real mfaaa = (D.f[BSW ])[kbsw ];
+			//real mfcaa = (D.f[BSE ])[kbse ];
+			//real mfaca = (D.f[BNW ])[kbnw ];
 			////////////////////////////////////////////////////////////////////////////////////
 			//real rho   = (((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
 			//				(((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) +
@@ -4021,61 +4021,61 @@ extern "C" __global__ void QPressDeviceEQZ27(real* rhoBC,
 			////////////////////////////////////////////////////////////////////////////////////////
 			////round off error test
 			//if(vvx!=zero){
-			//	(kDistTest.f[dirE   ])[k] = mfabb;
-			//	(kDistTest.f[dirW   ])[k] = mfcbb;
-			//	(kDistTest.f[dirN   ])[k] = mfbab;
-			//	(kDistTest.f[dirS   ])[k] = mfbcb;
-			//	(kDistTest.f[dirT   ])[k] = mfbba;
-			//	(kDistTest.f[dirB   ])[k] = mfbbc;
-			//	(kDistTest.f[dirNE  ])[k] = mfaab;
-			//	(kDistTest.f[dirSW  ])[k] = mfccb;
-			//	(kDistTest.f[dirSE  ])[k] = mfacb;
-			//	(kDistTest.f[dirNW  ])[k] = mfcab;
-			//	(kDistTest.f[dirTE  ])[k] = mfaba;
-			//	(kDistTest.f[dirBW  ])[k] = mfcbc;
-			//	(kDistTest.f[dirBE  ])[k] = mfabc;
-			//	(kDistTest.f[dirTW  ])[k] = mfcba;
-			//	(kDistTest.f[dirTN  ])[k] = mfbaa;
-			//	(kDistTest.f[dirBS  ])[k] = mfbcc;
-			//	(kDistTest.f[dirBN  ])[k] = mfbac;
-			//	(kDistTest.f[dirTS  ])[k] = mfbca;
+			//	(kDistTest.f[E   ])[k] = mfabb;
+			//	(kDistTest.f[W   ])[k] = mfcbb;
+			//	(kDistTest.f[N   ])[k] = mfbab;
+			//	(kDistTest.f[S   ])[k] = mfbcb;
+			//	(kDistTest.f[T   ])[k] = mfbba;
+			//	(kDistTest.f[B   ])[k] = mfbbc;
+			//	(kDistTest.f[NE  ])[k] = mfaab;
+			//	(kDistTest.f[SW  ])[k] = mfccb;
+			//	(kDistTest.f[SE  ])[k] = mfacb;
+			//	(kDistTest.f[NW  ])[k] = mfcab;
+			//	(kDistTest.f[TE  ])[k] = mfaba;
+			//	(kDistTest.f[BW  ])[k] = mfcbc;
+			//	(kDistTest.f[BE  ])[k] = mfabc;
+			//	(kDistTest.f[TW  ])[k] = mfcba;
+			//	(kDistTest.f[TN  ])[k] = mfbaa;
+			//	(kDistTest.f[BS  ])[k] = mfbcc;
+			//	(kDistTest.f[BN  ])[k] = mfbac;
+			//	(kDistTest.f[TS  ])[k] = mfbca;
 			//	(kDistTest.f[dirREST])[k] = KQK;
-			//	(kDistTest.f[dirTNE ])[k] = mfaaa;
-			//	(kDistTest.f[dirTSW ])[k] = mfcca;
-			//	(kDistTest.f[dirTSE ])[k] = mfaca;
-			//	(kDistTest.f[dirTNW ])[k] = mfcaa;
-			//	(kDistTest.f[dirBNE ])[k] = mfaac;
-			//	(kDistTest.f[dirBSW ])[k] = mfccc;
-			//	(kDistTest.f[dirBSE ])[k] = mfacc;
-			//	(kDistTest.f[dirBNW ])[k] = mfcac;
+			//	(kDistTest.f[TNE ])[k] = mfaaa;
+			//	(kDistTest.f[TSW ])[k] = mfcca;
+			//	(kDistTest.f[TSE ])[k] = mfaca;
+			//	(kDistTest.f[TNW ])[k] = mfcaa;
+			//	(kDistTest.f[BNE ])[k] = mfaac;
+			//	(kDistTest.f[BSW ])[k] = mfccc;
+			//	(kDistTest.f[BSE ])[k] = mfacc;
+			//	(kDistTest.f[BNW ])[k] = mfcac;
 			//}else{
-			//	(kDistTest.f[dirE   ])[k] = zero;
-			//	(kDistTest.f[dirW   ])[k] = zero;
-			//	(kDistTest.f[dirN   ])[k] = zero;
-			//	(kDistTest.f[dirS   ])[k] = zero;
-			//	(kDistTest.f[dirT   ])[k] = zero;
-			//	(kDistTest.f[dirB   ])[k] = zero;
-			//	(kDistTest.f[dirNE  ])[k] = zero;
-			//	(kDistTest.f[dirSW  ])[k] = zero;
-			//	(kDistTest.f[dirSE  ])[k] = zero;
-			//	(kDistTest.f[dirNW  ])[k] = zero;
-			//	(kDistTest.f[dirTE  ])[k] = zero;
-			//	(kDistTest.f[dirBW  ])[k] = zero;
-			//	(kDistTest.f[dirBE  ])[k] = zero;
-			//	(kDistTest.f[dirTW  ])[k] = zero;
-			//	(kDistTest.f[dirTN  ])[k] = zero;
-			//	(kDistTest.f[dirBS  ])[k] = zero;
-			//	(kDistTest.f[dirBN  ])[k] = zero;
-			//	(kDistTest.f[dirTS  ])[k] = zero;
+			//	(kDistTest.f[E   ])[k] = zero;
+			//	(kDistTest.f[W   ])[k] = zero;
+			//	(kDistTest.f[N   ])[k] = zero;
+			//	(kDistTest.f[S   ])[k] = zero;
+			//	(kDistTest.f[T   ])[k] = zero;
+			//	(kDistTest.f[B   ])[k] = zero;
+			//	(kDistTest.f[NE  ])[k] = zero;
+			//	(kDistTest.f[SW  ])[k] = zero;
+			//	(kDistTest.f[SE  ])[k] = zero;
+			//	(kDistTest.f[NW  ])[k] = zero;
+			//	(kDistTest.f[TE  ])[k] = zero;
+			//	(kDistTest.f[BW  ])[k] = zero;
+			//	(kDistTest.f[BE  ])[k] = zero;
+			//	(kDistTest.f[TW  ])[k] = zero;
+			//	(kDistTest.f[TN  ])[k] = zero;
+			//	(kDistTest.f[BS  ])[k] = zero;
+			//	(kDistTest.f[BN  ])[k] = zero;
+			//	(kDistTest.f[TS  ])[k] = zero;
 			//	(kDistTest.f[dirREST])[k] = zero;
-			//	(kDistTest.f[dirTNE ])[k] = zero;
-			//	(kDistTest.f[dirTSW ])[k] = zero;
-			//	(kDistTest.f[dirTSE ])[k] = zero;
-			//	(kDistTest.f[dirTNW ])[k] = zero;
-			//	(kDistTest.f[dirBNE ])[k] = zero;
-			//	(kDistTest.f[dirBSW ])[k] = zero;
-			//	(kDistTest.f[dirBSE ])[k] = zero;
-			//	(kDistTest.f[dirBNW ])[k] = zero;
+			//	(kDistTest.f[TNE ])[k] = zero;
+			//	(kDistTest.f[TSW ])[k] = zero;
+			//	(kDistTest.f[TSE ])[k] = zero;
+			//	(kDistTest.f[TNW ])[k] = zero;
+			//	(kDistTest.f[BNE ])[k] = zero;
+			//	(kDistTest.f[BSW ])[k] = zero;
+			//	(kDistTest.f[BSE ])[k] = zero;
+			//	(kDistTest.f[BNW ])[k] = zero;
 			//}
 
 			//////////////////////////////////////////////////////////////////////////////////////
@@ -4167,149 +4167,149 @@ extern "C" __global__ void QPressDeviceEQZ27(real* rhoBC,
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //if (isEvenTimestep==true)
       //{
-      //   D.f[dirE   ] = &DD[dirE   *size_Mat];
-      //   D.f[dirW   ] = &DD[dirW   *size_Mat];
-      //   D.f[dirN   ] = &DD[dirN   *size_Mat];
-      //   D.f[dirS   ] = &DD[dirS   *size_Mat];
-      //   D.f[dirT   ] = &DD[dirT   *size_Mat];
-      //   D.f[dirB   ] = &DD[dirB   *size_Mat];
-      //   D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      //   D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      //   D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      //   D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      //   D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      //   D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      //   D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      //   D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      //   D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      //   D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      //   D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      //   D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      //   D.f[E   ] = &DD[E   *size_Mat];
+      //   D.f[W   ] = &DD[W   *size_Mat];
+      //   D.f[N   ] = &DD[N   *size_Mat];
+      //   D.f[S   ] = &DD[S   *size_Mat];
+      //   D.f[T   ] = &DD[T   *size_Mat];
+      //   D.f[B   ] = &DD[B   *size_Mat];
+      //   D.f[NE  ] = &DD[NE  *size_Mat];
+      //   D.f[SW  ] = &DD[SW  *size_Mat];
+      //   D.f[SE  ] = &DD[SE  *size_Mat];
+      //   D.f[NW  ] = &DD[NW  *size_Mat];
+      //   D.f[TE  ] = &DD[TE  *size_Mat];
+      //   D.f[BW  ] = &DD[BW  *size_Mat];
+      //   D.f[BE  ] = &DD[BE  *size_Mat];
+      //   D.f[TW  ] = &DD[TW  *size_Mat];
+      //   D.f[TN  ] = &DD[TN  *size_Mat];
+      //   D.f[BS  ] = &DD[BS  *size_Mat];
+      //   D.f[BN  ] = &DD[BN  *size_Mat];
+      //   D.f[TS  ] = &DD[TS  *size_Mat];
       //   D.f[dirREST] = &DD[dirREST*size_Mat];
-      //   D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      //   D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      //   D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      //   D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      //   D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      //   D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      //   D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      //   D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      //   D.f[TNE ] = &DD[TNE *size_Mat];
+      //   D.f[TSW ] = &DD[TSW *size_Mat];
+      //   D.f[TSE ] = &DD[TSE *size_Mat];
+      //   D.f[TNW ] = &DD[TNW *size_Mat];
+      //   D.f[BNE ] = &DD[BNE *size_Mat];
+      //   D.f[BSW ] = &DD[BSW *size_Mat];
+      //   D.f[BSE ] = &DD[BSE *size_Mat];
+      //   D.f[BNW ] = &DD[BNW *size_Mat];
       //} 
       //else
       //{
-      //   D.f[dirW   ] = &DD[dirE   *size_Mat];
-      //   D.f[dirE   ] = &DD[dirW   *size_Mat];
-      //   D.f[dirS   ] = &DD[dirN   *size_Mat];
-      //   D.f[dirN   ] = &DD[dirS   *size_Mat];
-      //   D.f[dirB   ] = &DD[dirT   *size_Mat];
-      //   D.f[dirT   ] = &DD[dirB   *size_Mat];
-      //   D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      //   D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      //   D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      //   D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      //   D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      //   D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      //   D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      //   D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      //   D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      //   D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      //   D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      //   D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      //   D.f[W   ] = &DD[E   *size_Mat];
+      //   D.f[E   ] = &DD[W   *size_Mat];
+      //   D.f[S   ] = &DD[N   *size_Mat];
+      //   D.f[N   ] = &DD[S   *size_Mat];
+      //   D.f[B   ] = &DD[T   *size_Mat];
+      //   D.f[T   ] = &DD[B   *size_Mat];
+      //   D.f[SW  ] = &DD[NE  *size_Mat];
+      //   D.f[NE  ] = &DD[SW  *size_Mat];
+      //   D.f[NW  ] = &DD[SE  *size_Mat];
+      //   D.f[SE  ] = &DD[NW  *size_Mat];
+      //   D.f[BW  ] = &DD[TE  *size_Mat];
+      //   D.f[TE  ] = &DD[BW  *size_Mat];
+      //   D.f[TW  ] = &DD[BE  *size_Mat];
+      //   D.f[BE  ] = &DD[TW  *size_Mat];
+      //   D.f[BS  ] = &DD[TN  *size_Mat];
+      //   D.f[TN  ] = &DD[BS  *size_Mat];
+      //   D.f[TS  ] = &DD[BN  *size_Mat];
+      //   D.f[BN  ] = &DD[TS  *size_Mat];
       //   D.f[dirREST] = &DD[dirREST*size_Mat];
-      //   D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      //   D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      //   D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      //   D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      //   D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      //   D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      //   D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      //   D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      //   D.f[TNE ] = &DD[BSW *size_Mat];
+      //   D.f[TSW ] = &DD[BNE *size_Mat];
+      //   D.f[TSE ] = &DD[BNW *size_Mat];
+      //   D.f[TNW ] = &DD[BSE *size_Mat];
+      //   D.f[BNE ] = &DD[TSW *size_Mat];
+      //   D.f[BSW ] = &DD[TNE *size_Mat];
+      //   D.f[BSE ] = &DD[TNW *size_Mat];
+      //   D.f[BNW ] = &DD[TSE *size_Mat];
       //}
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //__syncthreads();
 
-			(D.f[dirE   ])[ke   ] = mfabb;//mfcbb;
-			(D.f[dirW   ])[kw   ] = mfcbb;//mfabb;
-			(D.f[dirN   ])[kn   ] = mfbab;//mfbcb;
-			(D.f[dirS   ])[ks   ] = mfbcb;//mfbab;
-			(D.f[dirT   ])[kt   ] = mfbba;//mfbbc;
-			(D.f[dirB   ])[kb   ] = mfbbc;//mfbba;
-			(D.f[dirNE  ])[kne  ] = mfaab;//mfccb;
-			(D.f[dirSW  ])[ksw  ] = mfccb;//mfaab;
-			(D.f[dirSE  ])[kse  ] = mfacb;//mfcab;
-			(D.f[dirNW  ])[knw  ] = mfcab;//mfacb;
-			(D.f[dirTE  ])[kte  ] = mfaba;//mfcbc;
-			(D.f[dirBW  ])[kbw  ] = mfcbc;//mfaba;
-			(D.f[dirBE  ])[kbe  ] = mfabc;//mfcba;
-			(D.f[dirTW  ])[ktw  ] = mfcba;//mfabc;
-			(D.f[dirTN  ])[ktn  ] = mfbaa;//mfbcc;
-			(D.f[dirBS  ])[kbs  ] = mfbcc;//mfbaa;
-			(D.f[dirBN  ])[kbn  ] = mfbac;//mfbca;
-			(D.f[dirTS  ])[kts  ] = mfbca;//mfbac;
+			(D.f[E   ])[ke   ] = mfabb;//mfcbb;
+			(D.f[W   ])[kw   ] = mfcbb;//mfabb;
+			(D.f[N   ])[kn   ] = mfbab;//mfbcb;
+			(D.f[S   ])[ks   ] = mfbcb;//mfbab;
+			(D.f[T   ])[kt   ] = mfbba;//mfbbc;
+			(D.f[B   ])[kb   ] = mfbbc;//mfbba;
+			(D.f[NE  ])[kne  ] = mfaab;//mfccb;
+			(D.f[SW  ])[ksw  ] = mfccb;//mfaab;
+			(D.f[SE  ])[kse  ] = mfacb;//mfcab;
+			(D.f[NW  ])[knw  ] = mfcab;//mfacb;
+			(D.f[TE  ])[kte  ] = mfaba;//mfcbc;
+			(D.f[BW  ])[kbw  ] = mfcbc;//mfaba;
+			(D.f[BE  ])[kbe  ] = mfabc;//mfcba;
+			(D.f[TW  ])[ktw  ] = mfcba;//mfabc;
+			(D.f[TN  ])[ktn  ] = mfbaa;//mfbcc;
+			(D.f[BS  ])[kbs  ] = mfbcc;//mfbaa;
+			(D.f[BN  ])[kbn  ] = mfbac;//mfbca;
+			(D.f[TS  ])[kts  ] = mfbca;//mfbac;
 			(D.f[dirREST])[kzero] = mfbbb;//mfbbb;
-			(D.f[dirTNE ])[ktne ] = mfaaa;//mfccc;
-			(D.f[dirTSW ])[ktsw ] = mfcca;//mfaac;
-			(D.f[dirTSE ])[ktse ] = mfaca;//mfcac;
-			(D.f[dirTNW ])[ktnw ] = mfcaa;//mfacc;
-			(D.f[dirBNE ])[kbne ] = mfaac;//mfcca;
-			(D.f[dirBSW ])[kbsw ] = mfccc;//mfaaa;
-			(D.f[dirBSE ])[kbse ] = mfacc;//mfcaa;
-			(D.f[dirBNW ])[kbnw ] = mfcac;//mfaca;
-			//(D.f[dirE   ])[ke   ] = mfcbb;
-			//(D.f[dirW   ])[kw   ] = mfabb;
-			//(D.f[dirN   ])[kn   ] = mfbcb;
-			//(D.f[dirS   ])[ks   ] = mfbab;
-			//(D.f[dirT   ])[kt   ] = mfbbc;
-			//(D.f[dirB   ])[kb   ] = mfbba;
-			//(D.f[dirNE  ])[kne  ] = mfccb;
-			//(D.f[dirSW  ])[ksw  ] = mfaab;
-			//(D.f[dirSE  ])[kse  ] = mfcab;
-			//(D.f[dirNW  ])[knw  ] = mfacb;
-			//(D.f[dirTE  ])[kte  ] = mfcbc;
-			//(D.f[dirBW  ])[kbw  ] = mfaba;
-			//(D.f[dirBE  ])[kbe  ] = mfcba;
-			//(D.f[dirTW  ])[ktw  ] = mfabc;
-			//(D.f[dirTN  ])[ktn  ] = mfbcc;
-			//(D.f[dirBS  ])[kbs  ] = mfbaa;
-			//(D.f[dirBN  ])[kbn  ] = mfbca;
-			//(D.f[dirTS  ])[kts  ] = mfbac;
+			(D.f[TNE ])[ktne ] = mfaaa;//mfccc;
+			(D.f[TSW ])[ktsw ] = mfcca;//mfaac;
+			(D.f[TSE ])[ktse ] = mfaca;//mfcac;
+			(D.f[TNW ])[ktnw ] = mfcaa;//mfacc;
+			(D.f[BNE ])[kbne ] = mfaac;//mfcca;
+			(D.f[BSW ])[kbsw ] = mfccc;//mfaaa;
+			(D.f[BSE ])[kbse ] = mfacc;//mfcaa;
+			(D.f[BNW ])[kbnw ] = mfcac;//mfaca;
+			//(D.f[E   ])[ke   ] = mfcbb;
+			//(D.f[W   ])[kw   ] = mfabb;
+			//(D.f[N   ])[kn   ] = mfbcb;
+			//(D.f[S   ])[ks   ] = mfbab;
+			//(D.f[T   ])[kt   ] = mfbbc;
+			//(D.f[B   ])[kb   ] = mfbba;
+			//(D.f[NE  ])[kne  ] = mfccb;
+			//(D.f[SW  ])[ksw  ] = mfaab;
+			//(D.f[SE  ])[kse  ] = mfcab;
+			//(D.f[NW  ])[knw  ] = mfacb;
+			//(D.f[TE  ])[kte  ] = mfcbc;
+			//(D.f[BW  ])[kbw  ] = mfaba;
+			//(D.f[BE  ])[kbe  ] = mfcba;
+			//(D.f[TW  ])[ktw  ] = mfabc;
+			//(D.f[TN  ])[ktn  ] = mfbcc;
+			//(D.f[BS  ])[kbs  ] = mfbaa;
+			//(D.f[BN  ])[kbn  ] = mfbca;
+			//(D.f[TS  ])[kts  ] = mfbac;
 			//(D.f[dirREST])[kzero] = mfbbb;
-			//(D.f[dirTNE ])[ktne ] = mfccc;
-			//(D.f[dirTSW ])[ktsw ] = mfaac;
-			//(D.f[dirTSE ])[ktse ] = mfcac;
-			//(D.f[dirTNW ])[ktnw ] = mfacc;
-			//(D.f[dirBNE ])[kbne ] = mfcca;
-			//(D.f[dirBSW ])[kbsw ] = mfaaa;
-			//(D.f[dirBSE ])[kbse ] = mfcaa;
-			//(D.f[dirBNW ])[kbnw ] = mfaca;
-
-      //(D.f[dirE   ])[ke   ] = fE ;  //f1_E ;   //fW;    //fE ;  
-      //(D.f[dirW   ])[kw   ] = fW ;  //f1_W ;   //fE;    //fW ;  
-      //(D.f[dirN   ])[kn   ] = fN ;  //f1_N ;   //fS;    //fN ;  
-      //(D.f[dirS   ])[ks   ] = fS ;  //f1_S ;   //fN;    //fS ;  
-      //(D.f[dirT   ])[kt   ] = fT ;  //f1_T ;   //fB;    //fT ;  
-      //(D.f[dirB   ])[kb   ] = fB ;  //f1_B ;   //fT;    //fB ;  
-      //(D.f[dirNE  ])[kne  ] = fNE;  //f1_NE;   //fSW;   //fNE;  
-      //(D.f[dirSW  ])[ksw  ] = fSW;  //f1_SW;   //fNE;   //fSW;  
-      //(D.f[dirSE  ])[kse  ] = fSE;  //f1_SE;   //fNW;   //fSE;  
-      //(D.f[dirNW  ])[knw  ] = fNW;  //f1_NW;   //fSE;   //fNW;  
-      //(D.f[dirTE  ])[kte  ] = fTE;  //f1_TE;   //fBW;   //fTE;  
-      //(D.f[dirBW  ])[kbw  ] = fBW;  //f1_BW;   //fTE;   //fBW;  
-      //(D.f[dirBE  ])[kbe  ] = fBE;  //f1_BE;   //fTW;   //fBE;  
-      //(D.f[dirTW  ])[ktw  ] = fTW;  //f1_TW;   //fBE;   //fTW;  
-      //(D.f[dirTN  ])[ktn  ] = fTN;  //f1_TN;   //fBS;   //fTN;  
-      //(D.f[dirBS  ])[kbs  ] = fBS;  //f1_BS;   //fTN;   //fBS;  
-      //(D.f[dirBN  ])[kbn  ] = fBN;  //f1_BN;   //fTS;   //fBN;  
-      //(D.f[dirTS  ])[kts  ] = fTS;  //f1_TS;   //fBN;   //fTS;  
+			//(D.f[TNE ])[ktne ] = mfccc;
+			//(D.f[TSW ])[ktsw ] = mfaac;
+			//(D.f[TSE ])[ktse ] = mfcac;
+			//(D.f[TNW ])[ktnw ] = mfacc;
+			//(D.f[BNE ])[kbne ] = mfcca;
+			//(D.f[BSW ])[kbsw ] = mfaaa;
+			//(D.f[BSE ])[kbse ] = mfcaa;
+			//(D.f[BNW ])[kbnw ] = mfaca;
+
+      //(D.f[E   ])[ke   ] = fE ;  //f1_E ;   //fW;    //fE ;  
+      //(D.f[W   ])[kw   ] = fW ;  //f1_W ;   //fE;    //fW ;  
+      //(D.f[N   ])[kn   ] = fN ;  //f1_N ;   //fS;    //fN ;  
+      //(D.f[S   ])[ks   ] = fS ;  //f1_S ;   //fN;    //fS ;  
+      //(D.f[T   ])[kt   ] = fT ;  //f1_T ;   //fB;    //fT ;  
+      //(D.f[B   ])[kb   ] = fB ;  //f1_B ;   //fT;    //fB ;  
+      //(D.f[NE  ])[kne  ] = fNE;  //f1_NE;   //fSW;   //fNE;  
+      //(D.f[SW  ])[ksw  ] = fSW;  //f1_SW;   //fNE;   //fSW;  
+      //(D.f[SE  ])[kse  ] = fSE;  //f1_SE;   //fNW;   //fSE;  
+      //(D.f[NW  ])[knw  ] = fNW;  //f1_NW;   //fSE;   //fNW;  
+      //(D.f[TE  ])[kte  ] = fTE;  //f1_TE;   //fBW;   //fTE;  
+      //(D.f[BW  ])[kbw  ] = fBW;  //f1_BW;   //fTE;   //fBW;  
+      //(D.f[BE  ])[kbe  ] = fBE;  //f1_BE;   //fTW;   //fBE;  
+      //(D.f[TW  ])[ktw  ] = fTW;  //f1_TW;   //fBE;   //fTW;  
+      //(D.f[TN  ])[ktn  ] = fTN;  //f1_TN;   //fBS;   //fTN;  
+      //(D.f[BS  ])[kbs  ] = fBS;  //f1_BS;   //fTN;   //fBS;  
+      //(D.f[BN  ])[kbn  ] = fBN;  //f1_BN;   //fTS;   //fBN;  
+      //(D.f[TS  ])[kts  ] = fTS;  //f1_TS;   //fBN;   //fTS;  
       //(D.f[dirREST])[kzero] = fZERO;//f1_ZERO; //fZERO; //fZERO;
-      //(D.f[dirTNE ])[ktne ] = fTNE; //f1_TNE;  //fBSW;  //fTNE; 
-      //(D.f[dirBSW ])[kbsw ] = fBSW; //f1_BSW;  //fTNE;  //fBSW; 
-      //(D.f[dirBNE ])[kbne ] = fBNE; //f1_BNE;  //fTSW;  //fBNE; 
-      //(D.f[dirTSW ])[ktsw ] = fTSW; //f1_TSW;  //fBNE;  //fTSW; 
-      //(D.f[dirTSE ])[ktse ] = fTSE; //f1_TSE;  //fBNW;  //fTSE; 
-      //(D.f[dirBNW ])[kbnw ] = fBNW; //f1_BNW;  //fTSE;  //fBNW; 
-      //(D.f[dirBSE ])[kbse ] = fBSE; //f1_BSE;  //fTNW;  //fBSE; 
-      //(D.f[dirTNW ])[ktnw ] = fTNW; //f1_TNW;  //fBSE;  //fTNW; 
+      //(D.f[TNE ])[ktne ] = fTNE; //f1_TNE;  //fBSW;  //fTNE; 
+      //(D.f[BSW ])[kbsw ] = fBSW; //f1_BSW;  //fTNE;  //fBSW; 
+      //(D.f[BNE ])[kbne ] = fBNE; //f1_BNE;  //fTSW;  //fBNE; 
+      //(D.f[TSW ])[ktsw ] = fTSW; //f1_TSW;  //fBNE;  //fTSW; 
+      //(D.f[TSE ])[ktse ] = fTSE; //f1_TSE;  //fBNW;  //fTSE; 
+      //(D.f[BNW ])[kbnw ] = fBNW; //f1_BNW;  //fTSE;  //fBNW; 
+      //(D.f[BSE ])[kbse ] = fBSE; //f1_BSE;  //fTNW;  //fBSE; 
+      //(D.f[TNW ])[ktnw ] = fTNW; //f1_TNW;  //fBSE;  //fTNW; 
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -4409,94 +4409,94 @@ extern "C" __global__ void QPressDeviceZero27(	 real* DD,
       Distributions27 D;
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //__syncthreads();
 	  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-      (D.f[dirE   ])[ke   ] =c0o1;
-      (D.f[dirW   ])[kw   ] =c0o1;
-      (D.f[dirN   ])[kn   ] =c0o1;
-      (D.f[dirS   ])[ks   ] =c0o1;
-      (D.f[dirT   ])[kt   ] =c0o1;
-      (D.f[dirB   ])[kb   ] =c0o1;
-      (D.f[dirNE  ])[kne  ] =c0o1;
-      (D.f[dirSW  ])[ksw  ] =c0o1;
-      (D.f[dirSE  ])[kse  ] =c0o1;
-      (D.f[dirNW  ])[knw  ] =c0o1;
-      (D.f[dirTE  ])[kte  ] =c0o1;
-      (D.f[dirBW  ])[kbw  ] =c0o1;
-      (D.f[dirBE  ])[kbe  ] =c0o1;
-      (D.f[dirTW  ])[ktw  ] =c0o1;
-      (D.f[dirTN  ])[ktn  ] =c0o1;
-      (D.f[dirBS  ])[kbs  ] =c0o1;
-      (D.f[dirBN  ])[kbn  ] =c0o1;
-      (D.f[dirTS  ])[kts  ] =c0o1;
+      (D.f[E   ])[ke   ] =c0o1;
+      (D.f[W   ])[kw   ] =c0o1;
+      (D.f[N   ])[kn   ] =c0o1;
+      (D.f[S   ])[ks   ] =c0o1;
+      (D.f[T   ])[kt   ] =c0o1;
+      (D.f[B   ])[kb   ] =c0o1;
+      (D.f[NE  ])[kne  ] =c0o1;
+      (D.f[SW  ])[ksw  ] =c0o1;
+      (D.f[SE  ])[kse  ] =c0o1;
+      (D.f[NW  ])[knw  ] =c0o1;
+      (D.f[TE  ])[kte  ] =c0o1;
+      (D.f[BW  ])[kbw  ] =c0o1;
+      (D.f[BE  ])[kbe  ] =c0o1;
+      (D.f[TW  ])[ktw  ] =c0o1;
+      (D.f[TN  ])[ktn  ] =c0o1;
+      (D.f[BS  ])[kbs  ] =c0o1;
+      (D.f[BN  ])[kbn  ] =c0o1;
+      (D.f[TS  ])[kts  ] =c0o1;
       (D.f[dirREST])[kzero] =c0o1;
-      (D.f[dirTNE ])[ktne ] =c0o1;
-      (D.f[dirTSW ])[ktsw ] =c0o1;
-      (D.f[dirTSE ])[ktse ] =c0o1;
-      (D.f[dirTNW ])[ktnw ] =c0o1;
-      (D.f[dirBNE ])[kbne ] =c0o1;
-      (D.f[dirBSW ])[kbsw ] =c0o1;
-      (D.f[dirBSE ])[kbse ] =c0o1;
-      (D.f[dirBNW ])[kbnw ] =c0o1;
+      (D.f[TNE ])[ktne ] =c0o1;
+      (D.f[TSW ])[ktsw ] =c0o1;
+      (D.f[TSE ])[ktse ] =c0o1;
+      (D.f[TNW ])[ktnw ] =c0o1;
+      (D.f[BNE ])[kbne ] =c0o1;
+      (D.f[BSW ])[kbsw ] =c0o1;
+      (D.f[BSE ])[kbse ] =c0o1;
+      (D.f[BNW ])[kbnw ] =c0o1;
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -4629,95 +4629,95 @@ extern "C" __global__ void QPressDeviceFake27(	 real* rhoBC,
       Distributions27 D;
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       real        f1_E,f1_W,f1_N,f1_S,f1_T,f1_B,f1_NE,f1_SW,f1_SE,f1_NW,f1_TE,f1_BW,f1_BE,f1_TW,f1_TN,f1_BS,f1_BN,f1_TS,f1_ZERO,
          f1_TNE,f1_TSW,f1_TSE,f1_TNW,f1_BNE,f1_BSW,f1_BSE,f1_BNW;
 
-      f1_W    = (D.f[dirE   ])[k1e   ];
-      f1_E    = (D.f[dirW   ])[k1w   ];
-      f1_S    = (D.f[dirN   ])[k1n   ];
-      f1_N    = (D.f[dirS   ])[k1s   ];
-      f1_B    = (D.f[dirT   ])[k1t   ];
-      f1_T    = (D.f[dirB   ])[k1b   ];
-      f1_SW   = (D.f[dirNE  ])[k1ne  ];
-      f1_NE   = (D.f[dirSW  ])[k1sw  ];
-      f1_NW   = (D.f[dirSE  ])[k1se  ];
-      f1_SE   = (D.f[dirNW  ])[k1nw  ];
-      f1_BW   = (D.f[dirTE  ])[k1te  ];
-      f1_TE   = (D.f[dirBW  ])[k1bw  ];
-      f1_TW   = (D.f[dirBE  ])[k1be  ];
-      f1_BE   = (D.f[dirTW  ])[k1tw  ];
-      f1_BS   = (D.f[dirTN  ])[k1tn  ];
-      f1_TN   = (D.f[dirBS  ])[k1bs  ];
-      f1_TS   = (D.f[dirBN  ])[k1bn  ];
-      f1_BN   = (D.f[dirTS  ])[k1ts  ];
+      f1_W    = (D.f[E   ])[k1e   ];
+      f1_E    = (D.f[W   ])[k1w   ];
+      f1_S    = (D.f[N   ])[k1n   ];
+      f1_N    = (D.f[S   ])[k1s   ];
+      f1_B    = (D.f[T   ])[k1t   ];
+      f1_T    = (D.f[B   ])[k1b   ];
+      f1_SW   = (D.f[NE  ])[k1ne  ];
+      f1_NE   = (D.f[SW  ])[k1sw  ];
+      f1_NW   = (D.f[SE  ])[k1se  ];
+      f1_SE   = (D.f[NW  ])[k1nw  ];
+      f1_BW   = (D.f[TE  ])[k1te  ];
+      f1_TE   = (D.f[BW  ])[k1bw  ];
+      f1_TW   = (D.f[BE  ])[k1be  ];
+      f1_BE   = (D.f[TW  ])[k1tw  ];
+      f1_BS   = (D.f[TN  ])[k1tn  ];
+      f1_TN   = (D.f[BS  ])[k1bs  ];
+      f1_TS   = (D.f[BN  ])[k1bn  ];
+      f1_BN   = (D.f[TS  ])[k1ts  ];
       f1_ZERO = (D.f[dirREST])[k1zero];
-      f1_BSW  = (D.f[dirTNE ])[k1tne ];
-      f1_BNE  = (D.f[dirTSW ])[k1tsw ];
-      f1_BNW  = (D.f[dirTSE ])[k1tse ];
-      f1_BSE  = (D.f[dirTNW ])[k1tnw ];
-      f1_TSW  = (D.f[dirBNE ])[k1bne ];
-      f1_TNE  = (D.f[dirBSW ])[k1bsw ];
-      f1_TNW  = (D.f[dirBSE ])[k1bse ];
-      f1_TSE  = (D.f[dirBNW ])[k1bnw ];
+      f1_BSW  = (D.f[TNE ])[k1tne ];
+      f1_BNE  = (D.f[TSW ])[k1tsw ];
+      f1_BNW  = (D.f[TSE ])[k1tse ];
+      f1_BSE  = (D.f[TNW ])[k1tnw ];
+      f1_TSW  = (D.f[BNE ])[k1bne ];
+      f1_TNE  = (D.f[BSW ])[k1bsw ];
+      f1_TNW  = (D.f[BSE ])[k1bse ];
+      f1_TSE  = (D.f[BNW ])[k1bnw ];
 
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3;
@@ -4744,33 +4744,33 @@ extern "C" __global__ void QPressDeviceFake27(	 real* rhoBC,
 
       __syncthreads();
 
-      (D.f[dirE   ])[ke   ] = c2o27* (rhoBC[k]+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
-      (D.f[dirW   ])[kw   ] = c2o27* (rhoBC[k]+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
-      (D.f[dirN   ])[kn   ] = c2o27* (rhoBC[k]+c3o1*(    -vx2    )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
-      (D.f[dirS   ])[ks   ] = c2o27* (rhoBC[k]+c3o1*(     vx2    )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
-      (D.f[dirT   ])[kt   ] = c2o27* (rhoBC[k]+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
-      (D.f[dirB   ])[kb   ] = c2o27* (rhoBC[k]+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
-      (D.f[dirNE  ])[kne  ] = f1_SW  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirSW  ])[ksw  ] = f1_NE  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirSE  ])[kse  ] = f1_NW  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirNW  ])[knw  ] = f1_SE  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTE  ])[kte  ] = f1_BW  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBW  ])[kbw  ] = f1_TE  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBE  ])[kbe  ] = f1_TW  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTW  ])[ktw  ] = f1_BE  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTN  ])[ktn  ] = f1_BS  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBS  ])[kbs  ] = f1_TN  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBN  ])[kbn  ] = f1_TS  -c1o54*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTS  ])[kts  ] = f1_BN  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[E   ])[ke   ] = c2o27* (rhoBC[k]+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
+      (D.f[W   ])[kw   ] = c2o27* (rhoBC[k]+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
+      (D.f[N   ])[kn   ] = c2o27* (rhoBC[k]+c3o1*(    -vx2    )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
+      (D.f[S   ])[ks   ] = c2o27* (rhoBC[k]+c3o1*(     vx2    )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
+      (D.f[T   ])[kt   ] = c2o27* (rhoBC[k]+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
+      (D.f[B   ])[kb   ] = c2o27* (rhoBC[k]+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
+      (D.f[NE  ])[kne  ] = f1_SW  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[SW  ])[ksw  ] = f1_NE  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[SE  ])[kse  ] = f1_NW  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[NW  ])[knw  ] = f1_SE  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[TE  ])[kte  ] = f1_BW  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[BW  ])[kbw  ] = f1_TE  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[BE  ])[kbe  ] = f1_TW  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[TW  ])[ktw  ] = f1_BE  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[TN  ])[ktn  ] = f1_BS  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[BS  ])[kbs  ] = f1_TN  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[BN  ])[kbn  ] = f1_TS  -c1o54*drho1;	//  c1o100;  // zero;  //
+      (D.f[TS  ])[kts  ] = f1_BN  -c1o54*drho1;	//  c1o100;  // zero;  //
       (D.f[dirREST])[kzero] = f1_ZERO-c8o27*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTNE ])[ktne ] = f1_BSW -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTSW ])[ktsw ] = f1_BNE -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTSE ])[ktse ] = f1_BNW -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirTNW ])[ktnw ] = f1_BSE -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBNE ])[kbne ] = f1_TSW -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBSW ])[kbsw ] = f1_TNE -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBSE ])[kbse ] = f1_TNW -c1o216*drho1;	//  c1o100;  // zero;  //
-      (D.f[dirBNW ])[kbnw ] = f1_TSE -c1o216*drho1;  //  c1o100;  // zero;  //      
+      (D.f[TNE ])[ktne ] = f1_BSW -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[TSW ])[ktsw ] = f1_BNE -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[TSE ])[ktse ] = f1_BNW -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[TNW ])[ktnw ] = f1_BSE -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[BNE ])[kbne ] = f1_TSW -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[BSW ])[kbsw ] = f1_TNE -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[BSE ])[kbse ] = f1_TNW -c1o216*drho1;	//  c1o100;  // zero;  //
+      (D.f[BNW ])[kbnw ] = f1_TSE -c1o216*drho1;  //  c1o100;  // zero;  //      
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -4829,63 +4829,63 @@ extern "C" __global__ void QPressDevice27_IntBB(real* rho,
 	Distributions27 D;
 	if (isEvenTimestep==true)
 	{
-		D.f[dirE   ] = &DD[dirE   *size_Mat];
-		D.f[dirW   ] = &DD[dirW   *size_Mat];
-		D.f[dirN   ] = &DD[dirN   *size_Mat];
-		D.f[dirS   ] = &DD[dirS   *size_Mat];
-		D.f[dirT   ] = &DD[dirT   *size_Mat];
-		D.f[dirB   ] = &DD[dirB   *size_Mat];
-		D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-		D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-		D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-		D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-		D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-		D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-		D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-		D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-		D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-		D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-		D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-		D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+		D.f[E   ] = &DD[E   *size_Mat];
+		D.f[W   ] = &DD[W   *size_Mat];
+		D.f[N   ] = &DD[N   *size_Mat];
+		D.f[S   ] = &DD[S   *size_Mat];
+		D.f[T   ] = &DD[T   *size_Mat];
+		D.f[B   ] = &DD[B   *size_Mat];
+		D.f[NE  ] = &DD[NE  *size_Mat];
+		D.f[SW  ] = &DD[SW  *size_Mat];
+		D.f[SE  ] = &DD[SE  *size_Mat];
+		D.f[NW  ] = &DD[NW  *size_Mat];
+		D.f[TE  ] = &DD[TE  *size_Mat];
+		D.f[BW  ] = &DD[BW  *size_Mat];
+		D.f[BE  ] = &DD[BE  *size_Mat];
+		D.f[TW  ] = &DD[TW  *size_Mat];
+		D.f[TN  ] = &DD[TN  *size_Mat];
+		D.f[BS  ] = &DD[BS  *size_Mat];
+		D.f[BN  ] = &DD[BN  *size_Mat];
+		D.f[TS  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-		D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-		D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-		D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-		D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-		D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+		D.f[TNE ] = &DD[TNE *size_Mat];
+		D.f[TSW ] = &DD[TSW *size_Mat];
+		D.f[TSE ] = &DD[TSE *size_Mat];
+		D.f[TNW ] = &DD[TNW *size_Mat];
+		D.f[BNE ] = &DD[BNE *size_Mat];
+		D.f[BSW ] = &DD[BSW *size_Mat];
+		D.f[BSE ] = &DD[BSE *size_Mat];
+		D.f[BNW ] = &DD[BNW *size_Mat];
 	} 
 	else
 	{
-		D.f[dirW   ] = &DD[dirE   *size_Mat];
-		D.f[dirE   ] = &DD[dirW   *size_Mat];
-		D.f[dirS   ] = &DD[dirN   *size_Mat];
-		D.f[dirN   ] = &DD[dirS   *size_Mat];
-		D.f[dirB   ] = &DD[dirT   *size_Mat];
-		D.f[dirT   ] = &DD[dirB   *size_Mat];
-		D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-		D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-		D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-		D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-		D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-		D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-		D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-		D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-		D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-		D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-		D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-		D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+		D.f[W   ] = &DD[E   *size_Mat];
+		D.f[E   ] = &DD[W   *size_Mat];
+		D.f[S   ] = &DD[N   *size_Mat];
+		D.f[N   ] = &DD[S   *size_Mat];
+		D.f[B   ] = &DD[T   *size_Mat];
+		D.f[T   ] = &DD[B   *size_Mat];
+		D.f[SW  ] = &DD[NE  *size_Mat];
+		D.f[NE  ] = &DD[SW  *size_Mat];
+		D.f[NW  ] = &DD[SE  *size_Mat];
+		D.f[SE  ] = &DD[NW  *size_Mat];
+		D.f[BW  ] = &DD[TE  *size_Mat];
+		D.f[TE  ] = &DD[BW  *size_Mat];
+		D.f[TW  ] = &DD[BE  *size_Mat];
+		D.f[BE  ] = &DD[TW  *size_Mat];
+		D.f[BS  ] = &DD[TN  *size_Mat];
+		D.f[TN  ] = &DD[BS  *size_Mat];
+		D.f[TS  ] = &DD[BN  *size_Mat];
+		D.f[BN  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-		D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-		D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-		D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-		D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-		D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+		D.f[TNE ] = &DD[BSW *size_Mat];
+		D.f[TSW ] = &DD[BNE *size_Mat];
+		D.f[TSE ] = &DD[BNW *size_Mat];
+		D.f[TNW ] = &DD[BSE *size_Mat];
+		D.f[BNE ] = &DD[TSW *size_Mat];
+		D.f[BSW ] = &DD[TNE *size_Mat];
+		D.f[BSE ] = &DD[TNW *size_Mat];
+		D.f[BNW ] = &DD[TSE *size_Mat];
 	}
 	////////////////////////////////////////////////////////////////////////////////
 	const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -4910,32 +4910,32 @@ extern "C" __global__ void QPressDevice27_IntBB(real* rho,
 			*q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
 			*q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
 			*q_dirBSE, *q_dirBNW; 
-		q_dirE   = &QQ[dirE   * numberOfBCnodes];
-		q_dirW   = &QQ[dirW   * numberOfBCnodes];
-		q_dirN   = &QQ[dirN   * numberOfBCnodes];
-		q_dirS   = &QQ[dirS   * numberOfBCnodes];
-		q_dirT   = &QQ[dirT   * numberOfBCnodes];
-		q_dirB   = &QQ[dirB   * numberOfBCnodes];
-		q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-		q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-		q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-		q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-		q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-		q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-		q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-		q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-		q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-		q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-		q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-		q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-		q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-		q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-		q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-		q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-		q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-		q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-		q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-		q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+		q_dirE   = &QQ[E   * numberOfBCnodes];
+		q_dirW   = &QQ[W   * numberOfBCnodes];
+		q_dirN   = &QQ[N   * numberOfBCnodes];
+		q_dirS   = &QQ[S   * numberOfBCnodes];
+		q_dirT   = &QQ[T   * numberOfBCnodes];
+		q_dirB   = &QQ[B   * numberOfBCnodes];
+		q_dirNE  = &QQ[NE  * numberOfBCnodes];
+		q_dirSW  = &QQ[SW  * numberOfBCnodes];
+		q_dirSE  = &QQ[SE  * numberOfBCnodes];
+		q_dirNW  = &QQ[NW  * numberOfBCnodes];
+		q_dirTE  = &QQ[TE  * numberOfBCnodes];
+		q_dirBW  = &QQ[BW  * numberOfBCnodes];
+		q_dirBE  = &QQ[BE  * numberOfBCnodes];
+		q_dirTW  = &QQ[TW  * numberOfBCnodes];
+		q_dirTN  = &QQ[TN  * numberOfBCnodes];
+		q_dirBS  = &QQ[BS  * numberOfBCnodes];
+		q_dirBN  = &QQ[BN  * numberOfBCnodes];
+		q_dirTS  = &QQ[TS  * numberOfBCnodes];
+		q_dirTNE = &QQ[TNE * numberOfBCnodes];
+		q_dirTSW = &QQ[TSW * numberOfBCnodes];
+		q_dirTSE = &QQ[TSE * numberOfBCnodes];
+		q_dirTNW = &QQ[TNW * numberOfBCnodes];
+		q_dirBNE = &QQ[BNE * numberOfBCnodes];
+		q_dirBSW = &QQ[BSW * numberOfBCnodes];
+		q_dirBSE = &QQ[BSE * numberOfBCnodes];
+		q_dirBNW = &QQ[BNW * numberOfBCnodes];
 		////////////////////////////////////////////////////////////////////////////////
 		//index
 		unsigned int KQK  = k_Q[k];
@@ -4970,32 +4970,32 @@ extern "C" __global__ void QPressDevice27_IntBB(real* rho,
 		real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
 			f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-		f_W    = (D.f[dirE   ])[ke   ];
-		f_E    = (D.f[dirW   ])[kw   ];
-		f_S    = (D.f[dirN   ])[kn   ];
-		f_N    = (D.f[dirS   ])[ks   ];
-		f_B    = (D.f[dirT   ])[kt   ];
-		f_T    = (D.f[dirB   ])[kb   ];
-		f_SW   = (D.f[dirNE  ])[kne  ];
-		f_NE   = (D.f[dirSW  ])[ksw  ];
-		f_NW   = (D.f[dirSE  ])[kse  ];
-		f_SE   = (D.f[dirNW  ])[knw  ];
-		f_BW   = (D.f[dirTE  ])[kte  ];
-		f_TE   = (D.f[dirBW  ])[kbw  ];
-		f_TW   = (D.f[dirBE  ])[kbe  ];
-		f_BE   = (D.f[dirTW  ])[ktw  ];
-		f_BS   = (D.f[dirTN  ])[ktn  ];
-		f_TN   = (D.f[dirBS  ])[kbs  ];
-		f_TS   = (D.f[dirBN  ])[kbn  ];
-		f_BN   = (D.f[dirTS  ])[kts  ];
-		f_BSW  = (D.f[dirTNE ])[ktne ];
-		f_BNE  = (D.f[dirTSW ])[ktsw ];
-		f_BNW  = (D.f[dirTSE ])[ktse ];
-		f_BSE  = (D.f[dirTNW ])[ktnw ];
-		f_TSW  = (D.f[dirBNE ])[kbne ];
-		f_TNE  = (D.f[dirBSW ])[kbsw ];
-		f_TNW  = (D.f[dirBSE ])[kbse ];
-		f_TSE  = (D.f[dirBNW ])[kbnw ];
+		f_W    = (D.f[E   ])[ke   ];
+		f_E    = (D.f[W   ])[kw   ];
+		f_S    = (D.f[N   ])[kn   ];
+		f_N    = (D.f[S   ])[ks   ];
+		f_B    = (D.f[T   ])[kt   ];
+		f_T    = (D.f[B   ])[kb   ];
+		f_SW   = (D.f[NE  ])[kne  ];
+		f_NE   = (D.f[SW  ])[ksw  ];
+		f_NW   = (D.f[SE  ])[kse  ];
+		f_SE   = (D.f[NW  ])[knw  ];
+		f_BW   = (D.f[TE  ])[kte  ];
+		f_TE   = (D.f[BW  ])[kbw  ];
+		f_TW   = (D.f[BE  ])[kbe  ];
+		f_BE   = (D.f[TW  ])[ktw  ];
+		f_BS   = (D.f[TN  ])[ktn  ];
+		f_TN   = (D.f[BS  ])[kbs  ];
+		f_TS   = (D.f[BN  ])[kbn  ];
+		f_BN   = (D.f[TS  ])[kts  ];
+		f_BSW  = (D.f[TNE ])[ktne ];
+		f_BNE  = (D.f[TSW ])[ktsw ];
+		f_BNW  = (D.f[TSE ])[ktse ];
+		f_BSE  = (D.f[TNW ])[ktnw ];
+		f_TSW  = (D.f[BNE ])[kbne ];
+		f_TNE  = (D.f[BSW ])[kbsw ];
+		f_TNW  = (D.f[BSE ])[kbse ];
+		f_TSE  = (D.f[BNW ])[kbnw ];
 		////////////////////////////////////////////////////////////////////////////////
 		real vx1, vx2, vx3, drho, feq, q;
 		drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -5020,63 +5020,63 @@ extern "C" __global__ void QPressDevice27_IntBB(real* rho,
 		//////////////////////////////////////////////////////////////////////////
 		if (isEvenTimestep==false)
 		{
-			D.f[dirE   ] = &DD[dirE   *size_Mat];
-			D.f[dirW   ] = &DD[dirW   *size_Mat];
-			D.f[dirN   ] = &DD[dirN   *size_Mat];
-			D.f[dirS   ] = &DD[dirS   *size_Mat];
-			D.f[dirT   ] = &DD[dirT   *size_Mat];
-			D.f[dirB   ] = &DD[dirB   *size_Mat];
-			D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-			D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-			D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-			D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-			D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-			D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-			D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-			D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-			D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-			D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-			D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-			D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+			D.f[E   ] = &DD[E   *size_Mat];
+			D.f[W   ] = &DD[W   *size_Mat];
+			D.f[N   ] = &DD[N   *size_Mat];
+			D.f[S   ] = &DD[S   *size_Mat];
+			D.f[T   ] = &DD[T   *size_Mat];
+			D.f[B   ] = &DD[B   *size_Mat];
+			D.f[NE  ] = &DD[NE  *size_Mat];
+			D.f[SW  ] = &DD[SW  *size_Mat];
+			D.f[SE  ] = &DD[SE  *size_Mat];
+			D.f[NW  ] = &DD[NW  *size_Mat];
+			D.f[TE  ] = &DD[TE  *size_Mat];
+			D.f[BW  ] = &DD[BW  *size_Mat];
+			D.f[BE  ] = &DD[BE  *size_Mat];
+			D.f[TW  ] = &DD[TW  *size_Mat];
+			D.f[TN  ] = &DD[TN  *size_Mat];
+			D.f[BS  ] = &DD[BS  *size_Mat];
+			D.f[BN  ] = &DD[BN  *size_Mat];
+			D.f[TS  ] = &DD[TS  *size_Mat];
 			D.f[dirREST] = &DD[dirREST*size_Mat];
-			D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-			D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-			D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-			D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-			D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-			D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-			D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-			D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+			D.f[TNE ] = &DD[TNE *size_Mat];
+			D.f[TSW ] = &DD[TSW *size_Mat];
+			D.f[TSE ] = &DD[TSE *size_Mat];
+			D.f[TNW ] = &DD[TNW *size_Mat];
+			D.f[BNE ] = &DD[BNE *size_Mat];
+			D.f[BSW ] = &DD[BSW *size_Mat];
+			D.f[BSE ] = &DD[BSE *size_Mat];
+			D.f[BNW ] = &DD[BNW *size_Mat];
 		} 
 		else
 		{
-			D.f[dirW   ] = &DD[dirE   *size_Mat];
-			D.f[dirE   ] = &DD[dirW   *size_Mat];
-			D.f[dirS   ] = &DD[dirN   *size_Mat];
-			D.f[dirN   ] = &DD[dirS   *size_Mat];
-			D.f[dirB   ] = &DD[dirT   *size_Mat];
-			D.f[dirT   ] = &DD[dirB   *size_Mat];
-			D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-			D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-			D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-			D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-			D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-			D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-			D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-			D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-			D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-			D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-			D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-			D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+			D.f[W   ] = &DD[E   *size_Mat];
+			D.f[E   ] = &DD[W   *size_Mat];
+			D.f[S   ] = &DD[N   *size_Mat];
+			D.f[N   ] = &DD[S   *size_Mat];
+			D.f[B   ] = &DD[T   *size_Mat];
+			D.f[T   ] = &DD[B   *size_Mat];
+			D.f[SW  ] = &DD[NE  *size_Mat];
+			D.f[NE  ] = &DD[SW  *size_Mat];
+			D.f[NW  ] = &DD[SE  *size_Mat];
+			D.f[SE  ] = &DD[NW  *size_Mat];
+			D.f[BW  ] = &DD[TE  *size_Mat];
+			D.f[TE  ] = &DD[BW  *size_Mat];
+			D.f[TW  ] = &DD[BE  *size_Mat];
+			D.f[BE  ] = &DD[TW  *size_Mat];
+			D.f[BS  ] = &DD[TN  *size_Mat];
+			D.f[TN  ] = &DD[BS  *size_Mat];
+			D.f[TS  ] = &DD[BN  *size_Mat];
+			D.f[BN  ] = &DD[TS  *size_Mat];
 			D.f[dirREST] = &DD[dirREST*size_Mat];
-			D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-			D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-			D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-			D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-			D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-			D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-			D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-			D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+			D.f[TNE ] = &DD[BSW *size_Mat];
+			D.f[TSW ] = &DD[BNE *size_Mat];
+			D.f[TSE ] = &DD[BNW *size_Mat];
+			D.f[TNW ] = &DD[BSE *size_Mat];
+			D.f[BNE ] = &DD[TSW *size_Mat];
+			D.f[BSW ] = &DD[TNE *size_Mat];
+			D.f[BSE ] = &DD[TNW *size_Mat];
+			D.f[BNW ] = &DD[TSE *size_Mat];
 		}
 		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 		//Test
@@ -5091,182 +5091,182 @@ extern "C" __global__ void QPressDevice27_IntBB(real* rho,
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c2o27* (drho+c9o2*( vx1        )*( vx1        )-cu_sq); 
-			(D.f[dirW])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W)-c2o27*(rhoDiff + c6o1*( VeloX     )))/(c1o1+q);
+			(D.f[W])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W)-c2o27*(rhoDiff + c6o1*( VeloX     )))/(c1o1+q);
 		}
 
 		q = q_dirW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c2o27* (drho+c9o2*(-vx1        )*(-vx1        )-cu_sq); 
-			(D.f[dirE])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E)-c2o27*(rhoDiff + c6o1*(-VeloX     )))/(c1o1+q);
+			(D.f[E])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E)-c2o27*(rhoDiff + c6o1*(-VeloX     )))/(c1o1+q);
 		}
 
 		q = q_dirN[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c2o27* (drho+c9o2*(     vx2    )*(     vx2    )-cu_sq); 
-			(D.f[dirS])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S)-c2o27*(rhoDiff + c6o1*( VeloY     )))/(c1o1+q);
+			(D.f[S])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S)-c2o27*(rhoDiff + c6o1*( VeloY     )))/(c1o1+q);
 		}
 
 		q = q_dirS[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c2o27* (drho+c9o2*(    -vx2    )*(    -vx2    )-cu_sq); 
-			(D.f[dirN])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N)-c2o27*(rhoDiff + c6o1*(-VeloY     )))/(c1o1+q);
+			(D.f[N])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N)-c2o27*(rhoDiff + c6o1*(-VeloY     )))/(c1o1+q);
 		}
 
 		q = q_dirT[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c2o27* (drho+c9o2*(         vx3)*(         vx3)-cu_sq); 
-			(D.f[dirB])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B)-c2o27*(rhoDiff + c6o1*( VeloZ     )))/(c1o1+q);
+			(D.f[B])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B)-c2o27*(rhoDiff + c6o1*( VeloZ     )))/(c1o1+q);
 		}
 
 		q = q_dirB[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c2o27* (drho+c9o2*(        -vx3)*(        -vx3)-cu_sq); 
-			(D.f[dirT])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T)-c2o27*(rhoDiff + c6o1*(-VeloZ     )))/(c1o1+q);
+			(D.f[T])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T)-c2o27*(rhoDiff + c6o1*(-VeloZ     )))/(c1o1+q);
 		}
 
 		q = q_dirNE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq); 
-			(D.f[dirSW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c1o54*(rhoDiff + c6o1*(VeloX+VeloY)))/(c1o1+q);
+			(D.f[SW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c1o54*(rhoDiff + c6o1*(VeloX+VeloY)))/(c1o1+q);
 		}
 
 		q = q_dirSW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq); 
-			(D.f[dirNE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c1o54*(rhoDiff + c6o1*(-VeloX-VeloY)))/(c1o1+q);
+			(D.f[NE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c1o54*(rhoDiff + c6o1*(-VeloX-VeloY)))/(c1o1+q);
 		}
 
 		q = q_dirSE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq); 
-			(D.f[dirNW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c1o54*(rhoDiff + c6o1*( VeloX-VeloY)))/(c1o1+q);
+			(D.f[NW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c1o54*(rhoDiff + c6o1*( VeloX-VeloY)))/(c1o1+q);
 		}
 
 		q = q_dirNW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq); 
-			(D.f[dirSE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c1o54*(rhoDiff + c6o1*(-VeloX+VeloY)))/(c1o1+q);
+			(D.f[SE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c1o54*(rhoDiff + c6o1*(-VeloX+VeloY)))/(c1o1+q);
 		}
 
 		q = q_dirTE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq); 
-			(D.f[dirBW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c1o54*(rhoDiff + c6o1*( VeloX+VeloZ)))/(c1o1+q);
+			(D.f[BW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c1o54*(rhoDiff + c6o1*( VeloX+VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirBW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq); 
-			(D.f[dirTE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c1o54*(rhoDiff + c6o1*(-VeloX-VeloZ)))/(c1o1+q);
+			(D.f[TE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c1o54*(rhoDiff + c6o1*(-VeloX-VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirBE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq); 
-			(D.f[dirTW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c1o54*(rhoDiff + c6o1*( VeloX-VeloZ)))/(c1o1+q);
+			(D.f[TW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c1o54*(rhoDiff + c6o1*( VeloX-VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirTW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq); 
-			(D.f[dirBE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c1o54*(rhoDiff + c6o1*(-VeloX+VeloZ)))/(c1o1+q);
+			(D.f[BE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c1o54*(rhoDiff + c6o1*(-VeloX+VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirTN[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq); 
-			(D.f[dirBS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c1o54*(rhoDiff + c6o1*( VeloY+VeloZ)))/(c1o1+q);
+			(D.f[BS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c1o54*(rhoDiff + c6o1*( VeloY+VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirBS[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq); 
-			(D.f[dirTN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c1o54*(rhoDiff + c6o1*( -VeloY-VeloZ)))/(c1o1+q);
+			(D.f[TN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c1o54*(rhoDiff + c6o1*( -VeloY-VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirBN[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq); 
-			(D.f[dirTS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c1o54*(rhoDiff + c6o1*( VeloY-VeloZ)))/(c1o1+q);
+			(D.f[TS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c1o54*(rhoDiff + c6o1*( VeloY-VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirTS[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq); 
-			(D.f[dirBN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c1o54*(rhoDiff + c6o1*( -VeloY+VeloZ)))/(c1o1+q);
+			(D.f[BN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c1o54*(rhoDiff + c6o1*( -VeloY+VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirTNE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); 
-			(D.f[dirBSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c1o216*(rhoDiff + c6o1*( VeloX+VeloY+VeloZ)))/(c1o1+q);
+			(D.f[BSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c1o216*(rhoDiff + c6o1*( VeloX+VeloY+VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirBSW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); 
-			(D.f[dirTNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c1o216*(rhoDiff + c6o1*(-VeloX-VeloY-VeloZ)))/(c1o1+q);
+			(D.f[TNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c1o216*(rhoDiff + c6o1*(-VeloX-VeloY-VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirBNE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); 
-			(D.f[dirTSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c1o216*(rhoDiff + c6o1*( VeloX+VeloY-VeloZ)))/(c1o1+q);
+			(D.f[TSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c1o216*(rhoDiff + c6o1*( VeloX+VeloY-VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirTSW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); 
-			(D.f[dirBNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c1o216*(rhoDiff + c6o1*(-VeloX-VeloY+VeloZ)))/(c1o1+q);
+			(D.f[BNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c1o216*(rhoDiff + c6o1*(-VeloX-VeloY+VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirTSE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); 
-			(D.f[dirBNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c1o216*(rhoDiff + c6o1*( VeloX-VeloY+VeloZ)))/(c1o1+q);
+			(D.f[BNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c1o216*(rhoDiff + c6o1*( VeloX-VeloY+VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirBNW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); 
-			(D.f[dirTSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c1o216*(rhoDiff + c6o1*(-VeloX+VeloY-VeloZ)))/(c1o1+q);
+			(D.f[TSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c1o216*(rhoDiff + c6o1*(-VeloX+VeloY-VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirBSE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); 
-			(D.f[dirTNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c1o216*(rhoDiff + c6o1*( VeloX-VeloY-VeloZ)))/(c1o1+q);
+			(D.f[TNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c1o216*(rhoDiff + c6o1*( VeloX-VeloY-VeloZ)))/(c1o1+q);
 		}
 
 		q = q_dirTNW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); 
-			(D.f[dirBSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c1o216*(rhoDiff + c6o1*(-VeloX+VeloY+VeloZ)))/(c1o1+q);
+			(D.f[BSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c1o216*(rhoDiff + c6o1*(-VeloX+VeloY+VeloZ)))/(c1o1+q);
 		}
 	}
 }
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ScaleCF27.cu b/src/gpu/VirtualFluids_GPU/GPU/ScaleCF27.cu
index 6171e2c90..9b98b6df8 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ScaleCF27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ScaleCF27.cu
@@ -42,33 +42,33 @@ extern "C" __global__ void scaleCF_0817_comp_27( real* DC,
 		*f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest;
 
 
-	fP00dest = &DF[dirE   *size_MatF];
-	fM00dest = &DF[dirW   *size_MatF];
-	f0P0dest = &DF[dirN   *size_MatF];
-	f0M0dest = &DF[dirS   *size_MatF];
-	f00Pdest = &DF[dirT   *size_MatF];
-	f00Mdest = &DF[dirB   *size_MatF];
-	fPP0dest = &DF[dirNE  *size_MatF];
-	fMM0dest = &DF[dirSW  *size_MatF];
-	fPM0dest = &DF[dirSE  *size_MatF];
-	fMP0dest = &DF[dirNW  *size_MatF];
-	fP0Pdest = &DF[dirTE  *size_MatF];
-	fM0Mdest = &DF[dirBW  *size_MatF];
-	fP0Mdest = &DF[dirBE  *size_MatF];
-	fM0Pdest = &DF[dirTW  *size_MatF];
-	f0PPdest = &DF[dirTN  *size_MatF];
-	f0MMdest = &DF[dirBS  *size_MatF];
-	f0PMdest = &DF[dirBN  *size_MatF];
-	f0MPdest = &DF[dirTS  *size_MatF];
+	fP00dest = &DF[E   *size_MatF];
+	fM00dest = &DF[W   *size_MatF];
+	f0P0dest = &DF[N   *size_MatF];
+	f0M0dest = &DF[S   *size_MatF];
+	f00Pdest = &DF[T   *size_MatF];
+	f00Mdest = &DF[B   *size_MatF];
+	fPP0dest = &DF[NE  *size_MatF];
+	fMM0dest = &DF[SW  *size_MatF];
+	fPM0dest = &DF[SE  *size_MatF];
+	fMP0dest = &DF[NW  *size_MatF];
+	fP0Pdest = &DF[TE  *size_MatF];
+	fM0Mdest = &DF[BW  *size_MatF];
+	fP0Mdest = &DF[BE  *size_MatF];
+	fM0Pdest = &DF[TW  *size_MatF];
+	f0PPdest = &DF[TN  *size_MatF];
+	f0MMdest = &DF[BS  *size_MatF];
+	f0PMdest = &DF[BN  *size_MatF];
+	f0MPdest = &DF[TS  *size_MatF];
 	f000dest = &DF[dirREST*size_MatF];
-	fMMMdest = &DF[dirBSW *size_MatF];
-	fMMPdest = &DF[dirTSW *size_MatF];
-	fMPPdest = &DF[dirTNW *size_MatF];
-	fMPMdest = &DF[dirBNW *size_MatF];
-	fPPMdest = &DF[dirBNE *size_MatF];
-	fPPPdest = &DF[dirTNE *size_MatF];
-	fPMPdest = &DF[dirTSE *size_MatF];
-	fPMMdest = &DF[dirBSE *size_MatF];
+	fMMMdest = &DF[BSW *size_MatF];
+	fMMPdest = &DF[TSW *size_MatF];
+	fMPPdest = &DF[TNW *size_MatF];
+	fMPMdest = &DF[BNW *size_MatF];
+	fPPMdest = &DF[BNE *size_MatF];
+	fPPPdest = &DF[TNE *size_MatF];
+	fPMPdest = &DF[TSE *size_MatF];
+	fPMMdest = &DF[BSE *size_MatF];
 
 	real
 		*fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source,
@@ -77,63 +77,63 @@ extern "C" __global__ void scaleCF_0817_comp_27( real* DC,
 
 	if (isEvenTimestep == true)
 	{
-		fP00source = &DC[dirE   *size_MatC];
-		fM00source = &DC[dirW   *size_MatC];
-		f0P0source = &DC[dirN   *size_MatC];
-		f0M0source = &DC[dirS   *size_MatC];
-		f00Psource = &DC[dirT   *size_MatC];
-		f00Msource = &DC[dirB   *size_MatC];
-		fPP0source = &DC[dirNE  *size_MatC];
-		fMM0source = &DC[dirSW  *size_MatC];
-		fPM0source = &DC[dirSE  *size_MatC];
-		fMP0source = &DC[dirNW  *size_MatC];
-		fP0Psource = &DC[dirTE  *size_MatC];
-		fM0Msource = &DC[dirBW  *size_MatC];
-		fP0Msource = &DC[dirBE  *size_MatC];
-		fM0Psource = &DC[dirTW  *size_MatC];
-		f0PPsource = &DC[dirTN  *size_MatC];
-		f0MMsource = &DC[dirBS  *size_MatC];
-		f0PMsource = &DC[dirBN  *size_MatC];
-		f0MPsource = &DC[dirTS  *size_MatC];
+		fP00source = &DC[E   *size_MatC];
+		fM00source = &DC[W   *size_MatC];
+		f0P0source = &DC[N   *size_MatC];
+		f0M0source = &DC[S   *size_MatC];
+		f00Psource = &DC[T   *size_MatC];
+		f00Msource = &DC[B   *size_MatC];
+		fPP0source = &DC[NE  *size_MatC];
+		fMM0source = &DC[SW  *size_MatC];
+		fPM0source = &DC[SE  *size_MatC];
+		fMP0source = &DC[NW  *size_MatC];
+		fP0Psource = &DC[TE  *size_MatC];
+		fM0Msource = &DC[BW  *size_MatC];
+		fP0Msource = &DC[BE  *size_MatC];
+		fM0Psource = &DC[TW  *size_MatC];
+		f0PPsource = &DC[TN  *size_MatC];
+		f0MMsource = &DC[BS  *size_MatC];
+		f0PMsource = &DC[BN  *size_MatC];
+		f0MPsource = &DC[TS  *size_MatC];
 		f000source = &DC[dirREST*size_MatC];
-		fMMMsource = &DC[dirBSW *size_MatC];
-		fMMPsource = &DC[dirTSW *size_MatC];
-		fMPPsource = &DC[dirTNW *size_MatC];
-		fMPMsource = &DC[dirBNW *size_MatC];
-		fPPMsource = &DC[dirBNE *size_MatC];
-		fPPPsource = &DC[dirTNE *size_MatC];
-		fPMPsource = &DC[dirTSE *size_MatC];
-		fPMMsource = &DC[dirBSE *size_MatC];
+		fMMMsource = &DC[BSW *size_MatC];
+		fMMPsource = &DC[TSW *size_MatC];
+		fMPPsource = &DC[TNW *size_MatC];
+		fMPMsource = &DC[BNW *size_MatC];
+		fPPMsource = &DC[BNE *size_MatC];
+		fPPPsource = &DC[TNE *size_MatC];
+		fPMPsource = &DC[TSE *size_MatC];
+		fPMMsource = &DC[BSE *size_MatC];
 	}
 	else
 	{
-		fP00source = &DC[dirW   *size_MatC];
-		fM00source = &DC[dirE   *size_MatC];
-		f0P0source = &DC[dirS   *size_MatC];
-		f0M0source = &DC[dirN   *size_MatC];
-		f00Psource = &DC[dirB   *size_MatC];
-		f00Msource = &DC[dirT   *size_MatC];
-		fPP0source = &DC[dirSW  *size_MatC];
-		fMM0source = &DC[dirNE  *size_MatC];
-		fPM0source = &DC[dirNW  *size_MatC];
-		fMP0source = &DC[dirSE  *size_MatC];
-		fP0Psource = &DC[dirBW  *size_MatC];
-		fM0Msource = &DC[dirTE  *size_MatC];
-		fP0Msource = &DC[dirTW  *size_MatC];
-		fM0Psource = &DC[dirBE  *size_MatC];
-		f0PPsource = &DC[dirBS  *size_MatC];
-		f0MMsource = &DC[dirTN  *size_MatC];
-		f0PMsource = &DC[dirTS  *size_MatC];
-		f0MPsource = &DC[dirBN  *size_MatC];
+		fP00source = &DC[W   *size_MatC];
+		fM00source = &DC[E   *size_MatC];
+		f0P0source = &DC[S   *size_MatC];
+		f0M0source = &DC[N   *size_MatC];
+		f00Psource = &DC[B   *size_MatC];
+		f00Msource = &DC[T   *size_MatC];
+		fPP0source = &DC[SW  *size_MatC];
+		fMM0source = &DC[NE  *size_MatC];
+		fPM0source = &DC[NW  *size_MatC];
+		fMP0source = &DC[SE  *size_MatC];
+		fP0Psource = &DC[BW  *size_MatC];
+		fM0Msource = &DC[TE  *size_MatC];
+		fP0Msource = &DC[TW  *size_MatC];
+		fM0Psource = &DC[BE  *size_MatC];
+		f0PPsource = &DC[BS  *size_MatC];
+		f0MMsource = &DC[TN  *size_MatC];
+		f0PMsource = &DC[TS  *size_MatC];
+		f0MPsource = &DC[BN  *size_MatC];
 		f000source = &DC[dirREST*size_MatC];
-		fMMMsource = &DC[dirTNE *size_MatC];
-		fMMPsource = &DC[dirBNE *size_MatC];
-		fMPPsource = &DC[dirBSE *size_MatC];
-		fMPMsource = &DC[dirTSE *size_MatC];
-		fPPMsource = &DC[dirTSW *size_MatC];
-		fPPPsource = &DC[dirBSW *size_MatC];
-		fPMPsource = &DC[dirBNW *size_MatC];
-		fPMMsource = &DC[dirTNW *size_MatC];
+		fMMMsource = &DC[TNE *size_MatC];
+		fMMPsource = &DC[BNE *size_MatC];
+		fMPPsource = &DC[BSE *size_MatC];
+		fMPMsource = &DC[TSE *size_MatC];
+		fPPMsource = &DC[TSW *size_MatC];
+		fPPPsource = &DC[BSW *size_MatC];
+		fPMPsource = &DC[BNW *size_MatC];
+		fPMMsource = &DC[TNW *size_MatC];
 	}
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -4108,96 +4108,96 @@ extern "C" __global__ void scaleCF_AA2016_comp_27(real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -10991,96 +10991,96 @@ extern "C" __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -17866,96 +17866,96 @@ extern "C" __global__ void scaleCF_RhoSq_comp_27(real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -22114,96 +22114,96 @@ extern "C" __global__ void scaleCF_staggered_time_comp_27(   real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -26350,96 +26350,96 @@ extern "C" __global__ void scaleCF_Fix_comp_27(  real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -31117,96 +31117,96 @@ extern "C" __global__ void scaleCF_NSPress_27(   real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -35061,96 +35061,96 @@ extern "C" __global__ void scaleCF_Fix_27(   real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -39319,96 +39319,96 @@ extern "C" __global__ void scaleCFpress27(   real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -40993,96 +40993,96 @@ extern "C" __global__ void scaleCFLast27( real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -43224,96 +43224,96 @@ extern "C" __global__ void scaleCFThSMG7(    real* DC,
 {
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, /**fzeroF,*/ *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    //fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, //*fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       //fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       //fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
 
@@ -44450,96 +44450,96 @@ extern "C" __global__ void scaleCFThS7(   real* DC,
 {
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, /**fzeroF,*/ *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    //fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, //*fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       //fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       //fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
 
@@ -45574,188 +45574,188 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
 {
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, /**fzeroF,*/ *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    //fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, //*fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       //fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       //fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
 
    Distributions27 D27F;
-   D27F.f[dirE   ] = &DD27F[dirE   *size_MatF];
-   D27F.f[dirW   ] = &DD27F[dirW   *size_MatF];
-   D27F.f[dirN   ] = &DD27F[dirN   *size_MatF];
-   D27F.f[dirS   ] = &DD27F[dirS   *size_MatF];
-   D27F.f[dirT   ] = &DD27F[dirT   *size_MatF];
-   D27F.f[dirB   ] = &DD27F[dirB   *size_MatF];
-   D27F.f[dirNE  ] = &DD27F[dirNE  *size_MatF];
-   D27F.f[dirSW  ] = &DD27F[dirSW  *size_MatF];
-   D27F.f[dirSE  ] = &DD27F[dirSE  *size_MatF];
-   D27F.f[dirNW  ] = &DD27F[dirNW  *size_MatF];
-   D27F.f[dirTE  ] = &DD27F[dirTE  *size_MatF];
-   D27F.f[dirBW  ] = &DD27F[dirBW  *size_MatF];
-   D27F.f[dirBE  ] = &DD27F[dirBE  *size_MatF];
-   D27F.f[dirTW  ] = &DD27F[dirTW  *size_MatF];
-   D27F.f[dirTN  ] = &DD27F[dirTN  *size_MatF];
-   D27F.f[dirBS  ] = &DD27F[dirBS  *size_MatF];
-   D27F.f[dirBN  ] = &DD27F[dirBN  *size_MatF];
-   D27F.f[dirTS  ] = &DD27F[dirTS  *size_MatF];
+   D27F.f[E   ] = &DD27F[E   *size_MatF];
+   D27F.f[W   ] = &DD27F[W   *size_MatF];
+   D27F.f[N   ] = &DD27F[N   *size_MatF];
+   D27F.f[S   ] = &DD27F[S   *size_MatF];
+   D27F.f[T   ] = &DD27F[T   *size_MatF];
+   D27F.f[B   ] = &DD27F[B   *size_MatF];
+   D27F.f[NE  ] = &DD27F[NE  *size_MatF];
+   D27F.f[SW  ] = &DD27F[SW  *size_MatF];
+   D27F.f[SE  ] = &DD27F[SE  *size_MatF];
+   D27F.f[NW  ] = &DD27F[NW  *size_MatF];
+   D27F.f[TE  ] = &DD27F[TE  *size_MatF];
+   D27F.f[BW  ] = &DD27F[BW  *size_MatF];
+   D27F.f[BE  ] = &DD27F[BE  *size_MatF];
+   D27F.f[TW  ] = &DD27F[TW  *size_MatF];
+   D27F.f[TN  ] = &DD27F[TN  *size_MatF];
+   D27F.f[BS  ] = &DD27F[BS  *size_MatF];
+   D27F.f[BN  ] = &DD27F[BN  *size_MatF];
+   D27F.f[TS  ] = &DD27F[TS  *size_MatF];
    D27F.f[dirREST] = &DD27F[dirREST*size_MatF];
-   D27F.f[dirTNE ] = &DD27F[dirTNE *size_MatF];
-   D27F.f[dirTSW ] = &DD27F[dirTSW *size_MatF];
-   D27F.f[dirTSE ] = &DD27F[dirTSE *size_MatF];
-   D27F.f[dirTNW ] = &DD27F[dirTNW *size_MatF];
-   D27F.f[dirBNE ] = &DD27F[dirBNE *size_MatF];
-   D27F.f[dirBSW ] = &DD27F[dirBSW *size_MatF];
-   D27F.f[dirBSE ] = &DD27F[dirBSE *size_MatF];
-   D27F.f[dirBNW ] = &DD27F[dirBNW *size_MatF];
+   D27F.f[TNE ] = &DD27F[TNE *size_MatF];
+   D27F.f[TSW ] = &DD27F[TSW *size_MatF];
+   D27F.f[TSE ] = &DD27F[TSE *size_MatF];
+   D27F.f[TNW ] = &DD27F[TNW *size_MatF];
+   D27F.f[BNE ] = &DD27F[BNE *size_MatF];
+   D27F.f[BSW ] = &DD27F[BSW *size_MatF];
+   D27F.f[BSE ] = &DD27F[BSE *size_MatF];
+   D27F.f[BNW ] = &DD27F[BNW *size_MatF];
 
    Distributions27 D27C;
    if (isEvenTimestep==true)
    {
-      D27C.f[dirE   ] = &DD27C[dirE   *size_MatC];
-      D27C.f[dirW   ] = &DD27C[dirW   *size_MatC];
-      D27C.f[dirN   ] = &DD27C[dirN   *size_MatC];
-      D27C.f[dirS   ] = &DD27C[dirS   *size_MatC];
-      D27C.f[dirT   ] = &DD27C[dirT   *size_MatC];
-      D27C.f[dirB   ] = &DD27C[dirB   *size_MatC];
-      D27C.f[dirNE  ] = &DD27C[dirNE  *size_MatC];
-      D27C.f[dirSW  ] = &DD27C[dirSW  *size_MatC];
-      D27C.f[dirSE  ] = &DD27C[dirSE  *size_MatC];
-      D27C.f[dirNW  ] = &DD27C[dirNW  *size_MatC];
-      D27C.f[dirTE  ] = &DD27C[dirTE  *size_MatC];
-      D27C.f[dirBW  ] = &DD27C[dirBW  *size_MatC];
-      D27C.f[dirBE  ] = &DD27C[dirBE  *size_MatC];
-      D27C.f[dirTW  ] = &DD27C[dirTW  *size_MatC];
-      D27C.f[dirTN  ] = &DD27C[dirTN  *size_MatC];
-      D27C.f[dirBS  ] = &DD27C[dirBS  *size_MatC];
-      D27C.f[dirBN  ] = &DD27C[dirBN  *size_MatC];
-      D27C.f[dirTS  ] = &DD27C[dirTS  *size_MatC];
+      D27C.f[E   ] = &DD27C[E   *size_MatC];
+      D27C.f[W   ] = &DD27C[W   *size_MatC];
+      D27C.f[N   ] = &DD27C[N   *size_MatC];
+      D27C.f[S   ] = &DD27C[S   *size_MatC];
+      D27C.f[T   ] = &DD27C[T   *size_MatC];
+      D27C.f[B   ] = &DD27C[B   *size_MatC];
+      D27C.f[NE  ] = &DD27C[NE  *size_MatC];
+      D27C.f[SW  ] = &DD27C[SW  *size_MatC];
+      D27C.f[SE  ] = &DD27C[SE  *size_MatC];
+      D27C.f[NW  ] = &DD27C[NW  *size_MatC];
+      D27C.f[TE  ] = &DD27C[TE  *size_MatC];
+      D27C.f[BW  ] = &DD27C[BW  *size_MatC];
+      D27C.f[BE  ] = &DD27C[BE  *size_MatC];
+      D27C.f[TW  ] = &DD27C[TW  *size_MatC];
+      D27C.f[TN  ] = &DD27C[TN  *size_MatC];
+      D27C.f[BS  ] = &DD27C[BS  *size_MatC];
+      D27C.f[BN  ] = &DD27C[BN  *size_MatC];
+      D27C.f[TS  ] = &DD27C[TS  *size_MatC];
       D27C.f[dirREST] = &DD27C[dirREST*size_MatC];
-      D27C.f[dirTNE ] = &DD27C[dirTNE *size_MatC];
-      D27C.f[dirTSW ] = &DD27C[dirTSW *size_MatC];
-      D27C.f[dirTSE ] = &DD27C[dirTSE *size_MatC];
-      D27C.f[dirTNW ] = &DD27C[dirTNW *size_MatC];
-      D27C.f[dirBNE ] = &DD27C[dirBNE *size_MatC];
-      D27C.f[dirBSW ] = &DD27C[dirBSW *size_MatC];
-      D27C.f[dirBSE ] = &DD27C[dirBSE *size_MatC];
-      D27C.f[dirBNW ] = &DD27C[dirBNW *size_MatC];
+      D27C.f[TNE ] = &DD27C[TNE *size_MatC];
+      D27C.f[TSW ] = &DD27C[TSW *size_MatC];
+      D27C.f[TSE ] = &DD27C[TSE *size_MatC];
+      D27C.f[TNW ] = &DD27C[TNW *size_MatC];
+      D27C.f[BNE ] = &DD27C[BNE *size_MatC];
+      D27C.f[BSW ] = &DD27C[BSW *size_MatC];
+      D27C.f[BSE ] = &DD27C[BSE *size_MatC];
+      D27C.f[BNW ] = &DD27C[BNW *size_MatC];
    }
    else
    {
-      D27C.f[dirW   ] = &DD27C[dirE   *size_MatC];
-      D27C.f[dirE   ] = &DD27C[dirW   *size_MatC];
-      D27C.f[dirS   ] = &DD27C[dirN   *size_MatC];
-      D27C.f[dirN   ] = &DD27C[dirS   *size_MatC];
-      D27C.f[dirB   ] = &DD27C[dirT   *size_MatC];
-      D27C.f[dirT   ] = &DD27C[dirB   *size_MatC];
-      D27C.f[dirSW  ] = &DD27C[dirNE  *size_MatC];
-      D27C.f[dirNE  ] = &DD27C[dirSW  *size_MatC];
-      D27C.f[dirNW  ] = &DD27C[dirSE  *size_MatC];
-      D27C.f[dirSE  ] = &DD27C[dirNW  *size_MatC];
-      D27C.f[dirBW  ] = &DD27C[dirTE  *size_MatC];
-      D27C.f[dirTE  ] = &DD27C[dirBW  *size_MatC];
-      D27C.f[dirTW  ] = &DD27C[dirBE  *size_MatC];
-      D27C.f[dirBE  ] = &DD27C[dirTW  *size_MatC];
-      D27C.f[dirBS  ] = &DD27C[dirTN  *size_MatC];
-      D27C.f[dirTN  ] = &DD27C[dirBS  *size_MatC];
-      D27C.f[dirTS  ] = &DD27C[dirBN  *size_MatC];
-      D27C.f[dirBN  ] = &DD27C[dirTS  *size_MatC];
+      D27C.f[W   ] = &DD27C[E   *size_MatC];
+      D27C.f[E   ] = &DD27C[W   *size_MatC];
+      D27C.f[S   ] = &DD27C[N   *size_MatC];
+      D27C.f[N   ] = &DD27C[S   *size_MatC];
+      D27C.f[B   ] = &DD27C[T   *size_MatC];
+      D27C.f[T   ] = &DD27C[B   *size_MatC];
+      D27C.f[SW  ] = &DD27C[NE  *size_MatC];
+      D27C.f[NE  ] = &DD27C[SW  *size_MatC];
+      D27C.f[NW  ] = &DD27C[SE  *size_MatC];
+      D27C.f[SE  ] = &DD27C[NW  *size_MatC];
+      D27C.f[BW  ] = &DD27C[TE  *size_MatC];
+      D27C.f[TE  ] = &DD27C[BW  *size_MatC];
+      D27C.f[TW  ] = &DD27C[BE  *size_MatC];
+      D27C.f[BE  ] = &DD27C[TW  *size_MatC];
+      D27C.f[BS  ] = &DD27C[TN  *size_MatC];
+      D27C.f[TN  ] = &DD27C[BS  *size_MatC];
+      D27C.f[TS  ] = &DD27C[BN  *size_MatC];
+      D27C.f[BN  ] = &DD27C[TS  *size_MatC];
       D27C.f[dirREST] = &DD27C[dirREST*size_MatC];
-      D27C.f[dirBSW ] = &DD27C[dirTNE *size_MatC];
-      D27C.f[dirBNE ] = &DD27C[dirTSW *size_MatC];
-      D27C.f[dirBNW ] = &DD27C[dirTSE *size_MatC];
-      D27C.f[dirBSE ] = &DD27C[dirTNW *size_MatC];
-      D27C.f[dirTSW ] = &DD27C[dirBNE *size_MatC];
-      D27C.f[dirTNE ] = &DD27C[dirBSW *size_MatC];
-      D27C.f[dirTNW ] = &DD27C[dirBSE *size_MatC];
-      D27C.f[dirTSE ] = &DD27C[dirBNW *size_MatC];
+      D27C.f[BSW ] = &DD27C[TNE *size_MatC];
+      D27C.f[BNE ] = &DD27C[TSW *size_MatC];
+      D27C.f[BNW ] = &DD27C[TSE *size_MatC];
+      D27C.f[BSE ] = &DD27C[TNW *size_MatC];
+      D27C.f[TSW ] = &DD27C[BNE *size_MatC];
+      D27C.f[TNE ] = &DD27C[BSW *size_MatC];
+      D27C.f[TNW ] = &DD27C[BSE *size_MatC];
+      D27C.f[TSE ] = &DD27C[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -45855,33 +45855,33 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       f_BSE  = fbseC[kbs];
       f_BNW  = fbnwC[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27C.f[dirE   ])[kzero];//ke
-      f27W    =  (D27C.f[dirW   ])[kw   ];
-      f27N    =  (D27C.f[dirN   ])[kzero];//kn
-      f27S    =  (D27C.f[dirS   ])[ks   ];
-      f27T    =  (D27C.f[dirT   ])[kzero];//kt
-      f27B    =  (D27C.f[dirB   ])[kb   ];
-      f27NE   =  (D27C.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27C.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27C.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27C.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27C.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27C.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27C.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27C.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27C.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27C.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27C.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27C.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27C.f[E   ])[kzero];//ke
+      f27W    =  (D27C.f[W   ])[kw   ];
+      f27N    =  (D27C.f[N   ])[kzero];//kn
+      f27S    =  (D27C.f[S   ])[ks   ];
+      f27T    =  (D27C.f[T   ])[kzero];//kt
+      f27B    =  (D27C.f[B   ])[kb   ];
+      f27NE   =  (D27C.f[NE  ])[kzero];//kne
+      f27SW   =  (D27C.f[SW  ])[ksw  ];
+      f27SE   =  (D27C.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27C.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27C.f[TE  ])[kzero];//kte
+      f27BW   =  (D27C.f[BW  ])[kbw  ];
+      f27BE   =  (D27C.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27C.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27C.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27C.f[BS  ])[kbs  ];
+      f27BN   =  (D27C.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27C.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27C.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27C.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27C.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27C.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27C.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27C.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27C.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27C.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27C.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27C.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27C.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27C.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27C.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27C.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27C.f[BSW ])[kbsw ];
+      f27BSE   = (D27C.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27C.f[BNW ])[kbw  ];//kbnw
 
       Conc_C_SWB = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -45942,33 +45942,33 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       f_BSE  = fbseC[kbs];
       f_BNW  = fbnwC[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27C.f[dirE   ])[kzero];//ke
-      f27W    =  (D27C.f[dirW   ])[kw   ];
-      f27N    =  (D27C.f[dirN   ])[kzero];//kn
-      f27S    =  (D27C.f[dirS   ])[ks   ];
-      f27T    =  (D27C.f[dirT   ])[kzero];//kt
-      f27B    =  (D27C.f[dirB   ])[kb   ];
-      f27NE   =  (D27C.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27C.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27C.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27C.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27C.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27C.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27C.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27C.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27C.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27C.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27C.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27C.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27C.f[E   ])[kzero];//ke
+      f27W    =  (D27C.f[W   ])[kw   ];
+      f27N    =  (D27C.f[N   ])[kzero];//kn
+      f27S    =  (D27C.f[S   ])[ks   ];
+      f27T    =  (D27C.f[T   ])[kzero];//kt
+      f27B    =  (D27C.f[B   ])[kb   ];
+      f27NE   =  (D27C.f[NE  ])[kzero];//kne
+      f27SW   =  (D27C.f[SW  ])[ksw  ];
+      f27SE   =  (D27C.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27C.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27C.f[TE  ])[kzero];//kte
+      f27BW   =  (D27C.f[BW  ])[kbw  ];
+      f27BE   =  (D27C.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27C.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27C.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27C.f[BS  ])[kbs  ];
+      f27BN   =  (D27C.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27C.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27C.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27C.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27C.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27C.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27C.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27C.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27C.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27C.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27C.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27C.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27C.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27C.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27C.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27C.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27C.f[BSW ])[kbsw ];
+      f27BSE   = (D27C.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27C.f[BNW ])[kbw  ];//kbnw
 
       Conc_C_SWT = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -46029,33 +46029,33 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       f_BSE  = fbseC[kbs];
       f_BNW  = fbnwC[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27C.f[dirE   ])[kzero];//ke
-      f27W    =  (D27C.f[dirW   ])[kw   ];
-      f27N    =  (D27C.f[dirN   ])[kzero];//kn
-      f27S    =  (D27C.f[dirS   ])[ks   ];
-      f27T    =  (D27C.f[dirT   ])[kzero];//kt
-      f27B    =  (D27C.f[dirB   ])[kb   ];
-      f27NE   =  (D27C.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27C.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27C.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27C.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27C.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27C.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27C.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27C.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27C.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27C.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27C.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27C.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27C.f[E   ])[kzero];//ke
+      f27W    =  (D27C.f[W   ])[kw   ];
+      f27N    =  (D27C.f[N   ])[kzero];//kn
+      f27S    =  (D27C.f[S   ])[ks   ];
+      f27T    =  (D27C.f[T   ])[kzero];//kt
+      f27B    =  (D27C.f[B   ])[kb   ];
+      f27NE   =  (D27C.f[NE  ])[kzero];//kne
+      f27SW   =  (D27C.f[SW  ])[ksw  ];
+      f27SE   =  (D27C.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27C.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27C.f[TE  ])[kzero];//kte
+      f27BW   =  (D27C.f[BW  ])[kbw  ];
+      f27BE   =  (D27C.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27C.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27C.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27C.f[BS  ])[kbs  ];
+      f27BN   =  (D27C.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27C.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27C.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27C.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27C.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27C.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27C.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27C.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27C.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27C.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27C.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27C.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27C.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27C.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27C.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27C.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27C.f[BSW ])[kbsw ];
+      f27BSE   = (D27C.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27C.f[BNW ])[kbw  ];//kbnw
 
       Conc_C_SET = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -46116,33 +46116,33 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       f_BSE  = fbseC[kbs];
       f_BNW  = fbnwC[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27C.f[dirE   ])[kzero];//ke
-      f27W    =  (D27C.f[dirW   ])[kw   ];
-      f27N    =  (D27C.f[dirN   ])[kzero];//kn
-      f27S    =  (D27C.f[dirS   ])[ks   ];
-      f27T    =  (D27C.f[dirT   ])[kzero];//kt
-      f27B    =  (D27C.f[dirB   ])[kb   ];
-      f27NE   =  (D27C.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27C.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27C.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27C.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27C.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27C.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27C.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27C.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27C.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27C.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27C.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27C.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27C.f[E   ])[kzero];//ke
+      f27W    =  (D27C.f[W   ])[kw   ];
+      f27N    =  (D27C.f[N   ])[kzero];//kn
+      f27S    =  (D27C.f[S   ])[ks   ];
+      f27T    =  (D27C.f[T   ])[kzero];//kt
+      f27B    =  (D27C.f[B   ])[kb   ];
+      f27NE   =  (D27C.f[NE  ])[kzero];//kne
+      f27SW   =  (D27C.f[SW  ])[ksw  ];
+      f27SE   =  (D27C.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27C.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27C.f[TE  ])[kzero];//kte
+      f27BW   =  (D27C.f[BW  ])[kbw  ];
+      f27BE   =  (D27C.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27C.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27C.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27C.f[BS  ])[kbs  ];
+      f27BN   =  (D27C.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27C.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27C.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27C.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27C.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27C.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27C.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27C.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27C.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27C.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27C.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27C.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27C.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27C.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27C.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27C.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27C.f[BSW ])[kbsw ];
+      f27BSE   = (D27C.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27C.f[BNW ])[kbw  ];//kbnw
 
       Conc_C_SEB = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -46213,33 +46213,33 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       f_BSE  = fbseC[kbs];
       f_BNW  = fbnwC[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27C.f[dirE   ])[kzero];//ke
-      f27W    =  (D27C.f[dirW   ])[kw   ];
-      f27N    =  (D27C.f[dirN   ])[kzero];//kn
-      f27S    =  (D27C.f[dirS   ])[ks   ];
-      f27T    =  (D27C.f[dirT   ])[kzero];//kt
-      f27B    =  (D27C.f[dirB   ])[kb   ];
-      f27NE   =  (D27C.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27C.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27C.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27C.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27C.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27C.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27C.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27C.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27C.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27C.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27C.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27C.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27C.f[E   ])[kzero];//ke
+      f27W    =  (D27C.f[W   ])[kw   ];
+      f27N    =  (D27C.f[N   ])[kzero];//kn
+      f27S    =  (D27C.f[S   ])[ks   ];
+      f27T    =  (D27C.f[T   ])[kzero];//kt
+      f27B    =  (D27C.f[B   ])[kb   ];
+      f27NE   =  (D27C.f[NE  ])[kzero];//kne
+      f27SW   =  (D27C.f[SW  ])[ksw  ];
+      f27SE   =  (D27C.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27C.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27C.f[TE  ])[kzero];//kte
+      f27BW   =  (D27C.f[BW  ])[kbw  ];
+      f27BE   =  (D27C.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27C.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27C.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27C.f[BS  ])[kbs  ];
+      f27BN   =  (D27C.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27C.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27C.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27C.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27C.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27C.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27C.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27C.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27C.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27C.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27C.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27C.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27C.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27C.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27C.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27C.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27C.f[BSW ])[kbsw ];
+      f27BSE   = (D27C.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27C.f[BNW ])[kbw  ];//kbnw
 
       Conc_C_NWB = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -46300,33 +46300,33 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       f_BSE  = fbseC[kbs];
       f_BNW  = fbnwC[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27C.f[dirE   ])[kzero];//ke
-      f27W    =  (D27C.f[dirW   ])[kw   ];
-      f27N    =  (D27C.f[dirN   ])[kzero];//kn
-      f27S    =  (D27C.f[dirS   ])[ks   ];
-      f27T    =  (D27C.f[dirT   ])[kzero];//kt
-      f27B    =  (D27C.f[dirB   ])[kb   ];
-      f27NE   =  (D27C.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27C.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27C.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27C.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27C.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27C.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27C.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27C.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27C.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27C.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27C.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27C.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27C.f[E   ])[kzero];//ke
+      f27W    =  (D27C.f[W   ])[kw   ];
+      f27N    =  (D27C.f[N   ])[kzero];//kn
+      f27S    =  (D27C.f[S   ])[ks   ];
+      f27T    =  (D27C.f[T   ])[kzero];//kt
+      f27B    =  (D27C.f[B   ])[kb   ];
+      f27NE   =  (D27C.f[NE  ])[kzero];//kne
+      f27SW   =  (D27C.f[SW  ])[ksw  ];
+      f27SE   =  (D27C.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27C.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27C.f[TE  ])[kzero];//kte
+      f27BW   =  (D27C.f[BW  ])[kbw  ];
+      f27BE   =  (D27C.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27C.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27C.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27C.f[BS  ])[kbs  ];
+      f27BN   =  (D27C.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27C.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27C.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27C.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27C.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27C.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27C.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27C.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27C.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27C.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27C.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27C.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27C.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27C.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27C.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27C.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27C.f[BSW ])[kbsw ];
+      f27BSE   = (D27C.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27C.f[BNW ])[kbw  ];//kbnw
 
       Conc_C_NWT = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -46387,33 +46387,33 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       f_BSE  = fbseC[kbs];
       f_BNW  = fbnwC[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27C.f[dirE   ])[kzero];//ke
-      f27W    =  (D27C.f[dirW   ])[kw   ];
-      f27N    =  (D27C.f[dirN   ])[kzero];//kn
-      f27S    =  (D27C.f[dirS   ])[ks   ];
-      f27T    =  (D27C.f[dirT   ])[kzero];//kt
-      f27B    =  (D27C.f[dirB   ])[kb   ];
-      f27NE   =  (D27C.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27C.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27C.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27C.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27C.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27C.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27C.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27C.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27C.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27C.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27C.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27C.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27C.f[E   ])[kzero];//ke
+      f27W    =  (D27C.f[W   ])[kw   ];
+      f27N    =  (D27C.f[N   ])[kzero];//kn
+      f27S    =  (D27C.f[S   ])[ks   ];
+      f27T    =  (D27C.f[T   ])[kzero];//kt
+      f27B    =  (D27C.f[B   ])[kb   ];
+      f27NE   =  (D27C.f[NE  ])[kzero];//kne
+      f27SW   =  (D27C.f[SW  ])[ksw  ];
+      f27SE   =  (D27C.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27C.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27C.f[TE  ])[kzero];//kte
+      f27BW   =  (D27C.f[BW  ])[kbw  ];
+      f27BE   =  (D27C.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27C.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27C.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27C.f[BS  ])[kbs  ];
+      f27BN   =  (D27C.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27C.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27C.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27C.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27C.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27C.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27C.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27C.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27C.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27C.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27C.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27C.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27C.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27C.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27C.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27C.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27C.f[BSW ])[kbsw ];
+      f27BSE   = (D27C.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27C.f[BNW ])[kbw  ];//kbnw
 
       Conc_C_NET = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -46474,33 +46474,33 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       f_BSE  = fbseC[kbs];
       f_BNW  = fbnwC[kbw];
       ////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27C.f[dirE   ])[kzero];//ke
-      f27W    =  (D27C.f[dirW   ])[kw   ];
-      f27N    =  (D27C.f[dirN   ])[kzero];//kn
-      f27S    =  (D27C.f[dirS   ])[ks   ];
-      f27T    =  (D27C.f[dirT   ])[kzero];//kt
-      f27B    =  (D27C.f[dirB   ])[kb   ];
-      f27NE   =  (D27C.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27C.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27C.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27C.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27C.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27C.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27C.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27C.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27C.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27C.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27C.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27C.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27C.f[E   ])[kzero];//ke
+      f27W    =  (D27C.f[W   ])[kw   ];
+      f27N    =  (D27C.f[N   ])[kzero];//kn
+      f27S    =  (D27C.f[S   ])[ks   ];
+      f27T    =  (D27C.f[T   ])[kzero];//kt
+      f27B    =  (D27C.f[B   ])[kb   ];
+      f27NE   =  (D27C.f[NE  ])[kzero];//kne
+      f27SW   =  (D27C.f[SW  ])[ksw  ];
+      f27SE   =  (D27C.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27C.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27C.f[TE  ])[kzero];//kte
+      f27BW   =  (D27C.f[BW  ])[kbw  ];
+      f27BE   =  (D27C.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27C.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27C.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27C.f[BS  ])[kbs  ];
+      f27BN   =  (D27C.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27C.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27C.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27C.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27C.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27C.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27C.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27C.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27C.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27C.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27C.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27C.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27C.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27C.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27C.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27C.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27C.f[BSW ])[kbsw ];
+      f27BSE   = (D27C.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27C.f[BNW ])[kbw  ];//kbnw
 
       Conc_C_NEB = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -46619,32 +46619,32 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
       (D27F.f[dirREST])[kzero] =   c8o27* Conc_F*(c1o1-cu_sq);
-      (D27F.f[dirE   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
-      (D27F.f[dirW   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
-      (D27F.f[dirN   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
-      (D27F.f[dirS   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
-      (D27F.f[dirT   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
-      (D27F.f[dirB   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
-      (D27F.f[dirNE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
-      (D27F.f[dirSW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
-      (D27F.f[dirSE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
-      (D27F.f[dirNW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
-      (D27F.f[dirTE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
-      (D27F.f[dirBW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
-      (D27F.f[dirBE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
-      (D27F.f[dirTW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
-      (D27F.f[dirTN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
-      (D27F.f[dirBS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
-      (D27F.f[dirBN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
-      (D27F.f[dirTS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
-      (D27F.f[dirTNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
-      (D27F.f[dirBSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirBNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirTSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirTSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirBNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirBSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirTNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
+      (D27F.f[E   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
+      (D27F.f[W   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
+      (D27F.f[N   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
+      (D27F.f[S   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
+      (D27F.f[T   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
+      (D27F.f[B   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
+      (D27F.f[NE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
+      (D27F.f[SW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
+      (D27F.f[SE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
+      (D27F.f[NW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
+      (D27F.f[TE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
+      (D27F.f[BW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
+      (D27F.f[BE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
+      (D27F.f[TW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
+      (D27F.f[TN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
+      (D27F.f[BS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
+      (D27F.f[BN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
+      (D27F.f[TS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
+      (D27F.f[TNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
+      (D27F.f[BSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
+      (D27F.f[BNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
+      (D27F.f[TSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
+      (D27F.f[TSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
+      (D27F.f[BNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
+      (D27F.f[BSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
+      (D27F.f[TNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
 
 
 
@@ -46697,32 +46697,32 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
       (D27F.f[dirREST])[kzero] =   c8o27* Conc_F*(c1o1-cu_sq);
-      (D27F.f[dirE   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
-      (D27F.f[dirW   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
-      (D27F.f[dirN   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
-      (D27F.f[dirS   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
-      (D27F.f[dirT   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
-      (D27F.f[dirB   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
-      (D27F.f[dirNE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
-      (D27F.f[dirSW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
-      (D27F.f[dirSE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
-      (D27F.f[dirNW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
-      (D27F.f[dirTE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
-      (D27F.f[dirBW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
-      (D27F.f[dirBE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
-      (D27F.f[dirTW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
-      (D27F.f[dirTN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
-      (D27F.f[dirBS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
-      (D27F.f[dirBN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
-      (D27F.f[dirTS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
-      (D27F.f[dirTNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
-      (D27F.f[dirBSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirBNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirTSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirTSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirBNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirBSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirTNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
+      (D27F.f[E   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
+      (D27F.f[W   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
+      (D27F.f[N   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
+      (D27F.f[S   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
+      (D27F.f[T   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
+      (D27F.f[B   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
+      (D27F.f[NE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
+      (D27F.f[SW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
+      (D27F.f[SE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
+      (D27F.f[NW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
+      (D27F.f[TE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
+      (D27F.f[BW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
+      (D27F.f[BE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
+      (D27F.f[TW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
+      (D27F.f[TN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
+      (D27F.f[BS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
+      (D27F.f[BN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
+      (D27F.f[TS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
+      (D27F.f[TNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
+      (D27F.f[BSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
+      (D27F.f[BNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
+      (D27F.f[TSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
+      (D27F.f[TSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
+      (D27F.f[BNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
+      (D27F.f[BSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
+      (D27F.f[TNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
 
 
 
@@ -46775,32 +46775,32 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
       (D27F.f[dirREST])[kzero] =   c8o27* Conc_F*(c1o1-cu_sq);
-      (D27F.f[dirE   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
-      (D27F.f[dirW   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
-      (D27F.f[dirN   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
-      (D27F.f[dirS   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
-      (D27F.f[dirT   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
-      (D27F.f[dirB   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
-      (D27F.f[dirNE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
-      (D27F.f[dirSW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
-      (D27F.f[dirSE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
-      (D27F.f[dirNW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
-      (D27F.f[dirTE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
-      (D27F.f[dirBW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
-      (D27F.f[dirBE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
-      (D27F.f[dirTW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
-      (D27F.f[dirTN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
-      (D27F.f[dirBS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
-      (D27F.f[dirBN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
-      (D27F.f[dirTS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
-      (D27F.f[dirTNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
-      (D27F.f[dirBSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirBNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirTSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirTSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirBNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirBSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirTNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
+      (D27F.f[E   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
+      (D27F.f[W   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
+      (D27F.f[N   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
+      (D27F.f[S   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
+      (D27F.f[T   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
+      (D27F.f[B   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
+      (D27F.f[NE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
+      (D27F.f[SW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
+      (D27F.f[SE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
+      (D27F.f[NW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
+      (D27F.f[TE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
+      (D27F.f[BW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
+      (D27F.f[BE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
+      (D27F.f[TW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
+      (D27F.f[TN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
+      (D27F.f[BS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
+      (D27F.f[BN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
+      (D27F.f[TS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
+      (D27F.f[TNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
+      (D27F.f[BSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
+      (D27F.f[BNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
+      (D27F.f[TSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
+      (D27F.f[TSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
+      (D27F.f[BNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
+      (D27F.f[BSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
+      (D27F.f[TNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
 
 
 
@@ -46853,32 +46853,32 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
       (D27F.f[dirREST])[kzero] =   c8o27* Conc_F*(c1o1-cu_sq);
-      (D27F.f[dirE   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
-      (D27F.f[dirW   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
-      (D27F.f[dirN   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
-      (D27F.f[dirS   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
-      (D27F.f[dirT   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
-      (D27F.f[dirB   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
-      (D27F.f[dirNE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
-      (D27F.f[dirSW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
-      (D27F.f[dirSE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
-      (D27F.f[dirNW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
-      (D27F.f[dirTE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
-      (D27F.f[dirBW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
-      (D27F.f[dirBE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
-      (D27F.f[dirTW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
-      (D27F.f[dirTN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
-      (D27F.f[dirBS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
-      (D27F.f[dirBN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
-      (D27F.f[dirTS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
-      (D27F.f[dirTNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
-      (D27F.f[dirBSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirBNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirTSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirTSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirBNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirBSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirTNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
+      (D27F.f[E   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
+      (D27F.f[W   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
+      (D27F.f[N   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
+      (D27F.f[S   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
+      (D27F.f[T   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
+      (D27F.f[B   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
+      (D27F.f[NE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
+      (D27F.f[SW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
+      (D27F.f[SE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
+      (D27F.f[NW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
+      (D27F.f[TE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
+      (D27F.f[BW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
+      (D27F.f[BE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
+      (D27F.f[TW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
+      (D27F.f[TN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
+      (D27F.f[BS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
+      (D27F.f[BN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
+      (D27F.f[TS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
+      (D27F.f[TNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
+      (D27F.f[BSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
+      (D27F.f[BNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
+      (D27F.f[TSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
+      (D27F.f[TSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
+      (D27F.f[BNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
+      (D27F.f[BSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
+      (D27F.f[TNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
 
 
 
@@ -46941,32 +46941,32 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
       (D27F.f[dirREST])[kzero] =   c8o27* Conc_F*(c1o1-cu_sq);
-      (D27F.f[dirE   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
-      (D27F.f[dirW   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
-      (D27F.f[dirN   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
-      (D27F.f[dirS   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
-      (D27F.f[dirT   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
-      (D27F.f[dirB   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
-      (D27F.f[dirNE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
-      (D27F.f[dirSW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
-      (D27F.f[dirSE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
-      (D27F.f[dirNW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
-      (D27F.f[dirTE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
-      (D27F.f[dirBW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
-      (D27F.f[dirBE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
-      (D27F.f[dirTW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
-      (D27F.f[dirTN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
-      (D27F.f[dirBS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
-      (D27F.f[dirBN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
-      (D27F.f[dirTS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
-      (D27F.f[dirTNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
-      (D27F.f[dirBSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirBNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirTSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirTSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirBNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirBSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirTNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
+      (D27F.f[E   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
+      (D27F.f[W   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
+      (D27F.f[N   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
+      (D27F.f[S   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
+      (D27F.f[T   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
+      (D27F.f[B   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
+      (D27F.f[NE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
+      (D27F.f[SW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
+      (D27F.f[SE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
+      (D27F.f[NW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
+      (D27F.f[TE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
+      (D27F.f[BW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
+      (D27F.f[BE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
+      (D27F.f[TW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
+      (D27F.f[TN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
+      (D27F.f[BS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
+      (D27F.f[BN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
+      (D27F.f[TS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
+      (D27F.f[TNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
+      (D27F.f[BSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
+      (D27F.f[BNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
+      (D27F.f[TSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
+      (D27F.f[TSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
+      (D27F.f[BNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
+      (D27F.f[BSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
+      (D27F.f[TNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
 
 
 
@@ -47019,32 +47019,32 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
       (D27F.f[dirREST])[kzero] =   c8o27* Conc_F*(c1o1-cu_sq);
-      (D27F.f[dirE   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
-      (D27F.f[dirW   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
-      (D27F.f[dirN   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
-      (D27F.f[dirS   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
-      (D27F.f[dirT   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
-      (D27F.f[dirB   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
-      (D27F.f[dirNE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
-      (D27F.f[dirSW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
-      (D27F.f[dirSE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
-      (D27F.f[dirNW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
-      (D27F.f[dirTE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
-      (D27F.f[dirBW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
-      (D27F.f[dirBE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
-      (D27F.f[dirTW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
-      (D27F.f[dirTN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
-      (D27F.f[dirBS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
-      (D27F.f[dirBN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
-      (D27F.f[dirTS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
-      (D27F.f[dirTNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
-      (D27F.f[dirBSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirBNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirTSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirTSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirBNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirBSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirTNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
+      (D27F.f[E   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
+      (D27F.f[W   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
+      (D27F.f[N   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
+      (D27F.f[S   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
+      (D27F.f[T   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
+      (D27F.f[B   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
+      (D27F.f[NE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
+      (D27F.f[SW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
+      (D27F.f[SE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
+      (D27F.f[NW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
+      (D27F.f[TE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
+      (D27F.f[BW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
+      (D27F.f[BE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
+      (D27F.f[TW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
+      (D27F.f[TN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
+      (D27F.f[BS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
+      (D27F.f[BN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
+      (D27F.f[TS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
+      (D27F.f[TNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
+      (D27F.f[BSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
+      (D27F.f[BNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
+      (D27F.f[TSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
+      (D27F.f[TSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
+      (D27F.f[BNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
+      (D27F.f[BSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
+      (D27F.f[TNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
 
 
 
@@ -47097,32 +47097,32 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
       (D27F.f[dirREST])[kzero] =   c8o27* Conc_F*(c1o1-cu_sq);
-      (D27F.f[dirE   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
-      (D27F.f[dirW   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
-      (D27F.f[dirN   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
-      (D27F.f[dirS   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
-      (D27F.f[dirT   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
-      (D27F.f[dirB   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
-      (D27F.f[dirNE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
-      (D27F.f[dirSW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
-      (D27F.f[dirSE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
-      (D27F.f[dirNW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
-      (D27F.f[dirTE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
-      (D27F.f[dirBW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
-      (D27F.f[dirBE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
-      (D27F.f[dirTW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
-      (D27F.f[dirTN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
-      (D27F.f[dirBS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
-      (D27F.f[dirBN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
-      (D27F.f[dirTS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
-      (D27F.f[dirTNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
-      (D27F.f[dirBSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirBNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirTSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirTSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirBNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirBSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirTNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
+      (D27F.f[E   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
+      (D27F.f[W   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
+      (D27F.f[N   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
+      (D27F.f[S   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
+      (D27F.f[T   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
+      (D27F.f[B   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
+      (D27F.f[NE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
+      (D27F.f[SW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
+      (D27F.f[SE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
+      (D27F.f[NW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
+      (D27F.f[TE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
+      (D27F.f[BW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
+      (D27F.f[BE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
+      (D27F.f[TW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
+      (D27F.f[TN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
+      (D27F.f[BS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
+      (D27F.f[BN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
+      (D27F.f[TS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
+      (D27F.f[TNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
+      (D27F.f[BSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
+      (D27F.f[BNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
+      (D27F.f[TSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
+      (D27F.f[TSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
+      (D27F.f[BNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
+      (D27F.f[BSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
+      (D27F.f[TNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
 
 
 
@@ -47175,32 +47175,32 @@ extern "C" __global__ void scaleCFThS27(     real* DC,
       cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
       (D27F.f[dirREST])[kzero] =   c8o27* Conc_F*(c1o1-cu_sq);
-      (D27F.f[dirE   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
-      (D27F.f[dirW   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
-      (D27F.f[dirN   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
-      (D27F.f[dirS   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
-      (D27F.f[dirT   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
-      (D27F.f[dirB   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
-      (D27F.f[dirNE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
-      (D27F.f[dirSW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
-      (D27F.f[dirSE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
-      (D27F.f[dirNW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
-      (D27F.f[dirTE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
-      (D27F.f[dirBW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
-      (D27F.f[dirBE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
-      (D27F.f[dirTW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
-      (D27F.f[dirTN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
-      (D27F.f[dirBS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
-      (D27F.f[dirBN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
-      (D27F.f[dirTS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
-      (D27F.f[dirTNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
-      (D27F.f[dirBSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirBNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirTSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirTSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
-      (D27F.f[dirBNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
-      (D27F.f[dirBSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
-      (D27F.f[dirTNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
+      (D27F.f[E   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_F*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
+      (D27F.f[W   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_F*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
+      (D27F.f[N   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_F*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
+      (D27F.f[S   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_F*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
+      (D27F.f[T   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_F*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
+      (D27F.f[B   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_F*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
+      (D27F.f[NE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_F*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
+      (D27F.f[SW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_F*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
+      (D27F.f[SE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_F*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
+      (D27F.f[NW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_F*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
+      (D27F.f[TE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_F*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
+      (D27F.f[BW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_F*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
+      (D27F.f[BE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_F*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
+      (D27F.f[TW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_F*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
+      (D27F.f[TN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_F*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
+      (D27F.f[BS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_F*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
+      (D27F.f[BN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_F*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
+      (D27F.f[TS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_F*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
+      (D27F.f[TNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
+      (D27F.f[BSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
+      (D27F.f[BNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_F*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
+      (D27F.f[TSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_F*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
+      (D27F.f[TSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
+      (D27F.f[BNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
+      (D27F.f[BSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_F*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
+      (D27F.f[TNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_F*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -47268,96 +47268,96 @@ extern "C" __global__ void scaleCFEff27(real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -48977,96 +48977,96 @@ extern "C" __global__ void scaleCF27(real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ScaleCF_F3_27.cu b/src/gpu/VirtualFluids_GPU/GPU/ScaleCF_F3_27.cu
index f6b824aab..5bf1f844f 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ScaleCF_F3_27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ScaleCF_F3_27.cu
@@ -43,33 +43,33 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3_2018(real* DC,
 		*f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest;
 
 
-	fP00dest = &DF[dirE   *size_MatF];
-	fM00dest = &DF[dirW   *size_MatF];
-	f0P0dest = &DF[dirN   *size_MatF];
-	f0M0dest = &DF[dirS   *size_MatF];
-	f00Pdest = &DF[dirT   *size_MatF];
-	f00Mdest = &DF[dirB   *size_MatF];
-	fPP0dest = &DF[dirNE  *size_MatF];
-	fMM0dest = &DF[dirSW  *size_MatF];
-	fPM0dest = &DF[dirSE  *size_MatF];
-	fMP0dest = &DF[dirNW  *size_MatF];
-	fP0Pdest = &DF[dirTE  *size_MatF];
-	fM0Mdest = &DF[dirBW  *size_MatF];
-	fP0Mdest = &DF[dirBE  *size_MatF];
-	fM0Pdest = &DF[dirTW  *size_MatF];
-	f0PPdest = &DF[dirTN  *size_MatF];
-	f0MMdest = &DF[dirBS  *size_MatF];
-	f0PMdest = &DF[dirBN  *size_MatF];
-	f0MPdest = &DF[dirTS  *size_MatF];
+	fP00dest = &DF[E   *size_MatF];
+	fM00dest = &DF[W   *size_MatF];
+	f0P0dest = &DF[N   *size_MatF];
+	f0M0dest = &DF[S   *size_MatF];
+	f00Pdest = &DF[T   *size_MatF];
+	f00Mdest = &DF[B   *size_MatF];
+	fPP0dest = &DF[NE  *size_MatF];
+	fMM0dest = &DF[SW  *size_MatF];
+	fPM0dest = &DF[SE  *size_MatF];
+	fMP0dest = &DF[NW  *size_MatF];
+	fP0Pdest = &DF[TE  *size_MatF];
+	fM0Mdest = &DF[BW  *size_MatF];
+	fP0Mdest = &DF[BE  *size_MatF];
+	fM0Pdest = &DF[TW  *size_MatF];
+	f0PPdest = &DF[TN  *size_MatF];
+	f0MMdest = &DF[BS  *size_MatF];
+	f0PMdest = &DF[BN  *size_MatF];
+	f0MPdest = &DF[TS  *size_MatF];
 	f000dest = &DF[dirREST*size_MatF];
-	fMMMdest = &DF[dirBSW *size_MatF];
-	fMMPdest = &DF[dirTSW *size_MatF];
-	fMPPdest = &DF[dirTNW *size_MatF];
-	fMPMdest = &DF[dirBNW *size_MatF];
-	fPPMdest = &DF[dirBNE *size_MatF];
-	fPPPdest = &DF[dirTNE *size_MatF];
-	fPMPdest = &DF[dirTSE *size_MatF];
-	fPMMdest = &DF[dirBSE *size_MatF];
+	fMMMdest = &DF[BSW *size_MatF];
+	fMMPdest = &DF[TSW *size_MatF];
+	fMPPdest = &DF[TNW *size_MatF];
+	fMPMdest = &DF[BNW *size_MatF];
+	fPPMdest = &DF[BNE *size_MatF];
+	fPPPdest = &DF[TNE *size_MatF];
+	fPMPdest = &DF[TSE *size_MatF];
+	fPMMdest = &DF[BSE *size_MatF];
 
 	real
 		*fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source,
@@ -78,72 +78,72 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3_2018(real* DC,
 
 	if (isEvenTimestep == true)
 	{
-		fP00source = &DC[dirE   *size_MatC];
-		fM00source = &DC[dirW   *size_MatC];
-		f0P0source = &DC[dirN   *size_MatC];
-		f0M0source = &DC[dirS   *size_MatC];
-		f00Psource = &DC[dirT   *size_MatC];
-		f00Msource = &DC[dirB   *size_MatC];
-		fPP0source = &DC[dirNE  *size_MatC];
-		fMM0source = &DC[dirSW  *size_MatC];
-		fPM0source = &DC[dirSE  *size_MatC];
-		fMP0source = &DC[dirNW  *size_MatC];
-		fP0Psource = &DC[dirTE  *size_MatC];
-		fM0Msource = &DC[dirBW  *size_MatC];
-		fP0Msource = &DC[dirBE  *size_MatC];
-		fM0Psource = &DC[dirTW  *size_MatC];
-		f0PPsource = &DC[dirTN  *size_MatC];
-		f0MMsource = &DC[dirBS  *size_MatC];
-		f0PMsource = &DC[dirBN  *size_MatC];
-		f0MPsource = &DC[dirTS  *size_MatC];
+		fP00source = &DC[E   *size_MatC];
+		fM00source = &DC[W   *size_MatC];
+		f0P0source = &DC[N   *size_MatC];
+		f0M0source = &DC[S   *size_MatC];
+		f00Psource = &DC[T   *size_MatC];
+		f00Msource = &DC[B   *size_MatC];
+		fPP0source = &DC[NE  *size_MatC];
+		fMM0source = &DC[SW  *size_MatC];
+		fPM0source = &DC[SE  *size_MatC];
+		fMP0source = &DC[NW  *size_MatC];
+		fP0Psource = &DC[TE  *size_MatC];
+		fM0Msource = &DC[BW  *size_MatC];
+		fP0Msource = &DC[BE  *size_MatC];
+		fM0Psource = &DC[TW  *size_MatC];
+		f0PPsource = &DC[TN  *size_MatC];
+		f0MMsource = &DC[BS  *size_MatC];
+		f0PMsource = &DC[BN  *size_MatC];
+		f0MPsource = &DC[TS  *size_MatC];
 		f000source = &DC[dirREST*size_MatC];
-		fMMMsource = &DC[dirBSW *size_MatC];
-		fMMPsource = &DC[dirTSW *size_MatC];
-		fMPPsource = &DC[dirTNW *size_MatC];
-		fMPMsource = &DC[dirBNW *size_MatC];
-		fPPMsource = &DC[dirBNE *size_MatC];
-		fPPPsource = &DC[dirTNE *size_MatC];
-		fPMPsource = &DC[dirTSE *size_MatC];
-		fPMMsource = &DC[dirBSE *size_MatC];
+		fMMMsource = &DC[BSW *size_MatC];
+		fMMPsource = &DC[TSW *size_MatC];
+		fMPPsource = &DC[TNW *size_MatC];
+		fMPMsource = &DC[BNW *size_MatC];
+		fPPMsource = &DC[BNE *size_MatC];
+		fPPPsource = &DC[TNE *size_MatC];
+		fPMPsource = &DC[TSE *size_MatC];
+		fPMMsource = &DC[BSE *size_MatC];
 	}
 	else
 	{
-		fP00source = &DC[dirW   *size_MatC];
-		fM00source = &DC[dirE   *size_MatC];
-		f0P0source = &DC[dirS   *size_MatC];
-		f0M0source = &DC[dirN   *size_MatC];
-		f00Psource = &DC[dirB   *size_MatC];
-		f00Msource = &DC[dirT   *size_MatC];
-		fPP0source = &DC[dirSW  *size_MatC];
-		fMM0source = &DC[dirNE  *size_MatC];
-		fPM0source = &DC[dirNW  *size_MatC];
-		fMP0source = &DC[dirSE  *size_MatC];
-		fP0Psource = &DC[dirBW  *size_MatC];
-		fM0Msource = &DC[dirTE  *size_MatC];
-		fP0Msource = &DC[dirTW  *size_MatC];
-		fM0Psource = &DC[dirBE  *size_MatC];
-		f0PPsource = &DC[dirBS  *size_MatC];
-		f0MMsource = &DC[dirTN  *size_MatC];
-		f0PMsource = &DC[dirTS  *size_MatC];
-		f0MPsource = &DC[dirBN  *size_MatC];
+		fP00source = &DC[W   *size_MatC];
+		fM00source = &DC[E   *size_MatC];
+		f0P0source = &DC[S   *size_MatC];
+		f0M0source = &DC[N   *size_MatC];
+		f00Psource = &DC[B   *size_MatC];
+		f00Msource = &DC[T   *size_MatC];
+		fPP0source = &DC[SW  *size_MatC];
+		fMM0source = &DC[NE  *size_MatC];
+		fPM0source = &DC[NW  *size_MatC];
+		fMP0source = &DC[SE  *size_MatC];
+		fP0Psource = &DC[BW  *size_MatC];
+		fM0Msource = &DC[TE  *size_MatC];
+		fP0Msource = &DC[TW  *size_MatC];
+		fM0Psource = &DC[BE  *size_MatC];
+		f0PPsource = &DC[BS  *size_MatC];
+		f0MMsource = &DC[TN  *size_MatC];
+		f0PMsource = &DC[TS  *size_MatC];
+		f0MPsource = &DC[BN  *size_MatC];
 		f000source = &DC[dirREST*size_MatC];
-		fMMMsource = &DC[dirTNE *size_MatC];
-		fMMPsource = &DC[dirBNE *size_MatC];
-		fMPPsource = &DC[dirBSE *size_MatC];
-		fMPMsource = &DC[dirTSE *size_MatC];
-		fPPMsource = &DC[dirTSW *size_MatC];
-		fPPPsource = &DC[dirBSW *size_MatC];
-		fPMPsource = &DC[dirBNW *size_MatC];
-		fPMMsource = &DC[dirTNW *size_MatC];
+		fMMMsource = &DC[TNE *size_MatC];
+		fMMPsource = &DC[BNE *size_MatC];
+		fMPPsource = &DC[BSE *size_MatC];
+		fMPMsource = &DC[TSE *size_MatC];
+		fPPMsource = &DC[TSW *size_MatC];
+		fPPPsource = &DC[BSW *size_MatC];
+		fPMPsource = &DC[BNW *size_MatC];
+		fPMMsource = &DC[TNW *size_MatC];
 	}
 
 	Distributions6 G;
-	G.g[dirE] = &G6[dirE   *size_MatF];
-	G.g[dirW] = &G6[dirW   *size_MatF];
-	G.g[dirN] = &G6[dirN   *size_MatF];
-	G.g[dirS] = &G6[dirS   *size_MatF];
-	G.g[dirT] = &G6[dirT   *size_MatF];
-	G.g[dirB] = &G6[dirB   *size_MatF];
+	G.g[E] = &G6[E   *size_MatF];
+	G.g[W] = &G6[W   *size_MatF];
+	G.g[N] = &G6[N   *size_MatF];
+	G.g[S] = &G6[S   *size_MatF];
+	G.g[T] = &G6[T   *size_MatF];
+	G.g[B] = &G6[B   *size_MatF];
 
 	////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -1186,12 +1186,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3_2018(real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -1622,12 +1622,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3_2018(real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -2061,12 +2061,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3_2018(real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -2500,12 +2500,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3_2018(real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -2949,12 +2949,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3_2018(real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -3388,12 +3388,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3_2018(real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -3827,12 +3827,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3_2018(real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -4266,12 +4266,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3_2018(real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -4390,33 +4390,33 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3( real* DC,
 		*f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest;
 
 
-	fP00dest = &DF[dirE   *size_MatF];
-	fM00dest = &DF[dirW   *size_MatF];
-	f0P0dest = &DF[dirN   *size_MatF];
-	f0M0dest = &DF[dirS   *size_MatF];
-	f00Pdest = &DF[dirT   *size_MatF];
-	f00Mdest = &DF[dirB   *size_MatF];
-	fPP0dest = &DF[dirNE  *size_MatF];
-	fMM0dest = &DF[dirSW  *size_MatF];
-	fPM0dest = &DF[dirSE  *size_MatF];
-	fMP0dest = &DF[dirNW  *size_MatF];
-	fP0Pdest = &DF[dirTE  *size_MatF];
-	fM0Mdest = &DF[dirBW  *size_MatF];
-	fP0Mdest = &DF[dirBE  *size_MatF];
-	fM0Pdest = &DF[dirTW  *size_MatF];
-	f0PPdest = &DF[dirTN  *size_MatF];
-	f0MMdest = &DF[dirBS  *size_MatF];
-	f0PMdest = &DF[dirBN  *size_MatF];
-	f0MPdest = &DF[dirTS  *size_MatF];
+	fP00dest = &DF[E   *size_MatF];
+	fM00dest = &DF[W   *size_MatF];
+	f0P0dest = &DF[N   *size_MatF];
+	f0M0dest = &DF[S   *size_MatF];
+	f00Pdest = &DF[T   *size_MatF];
+	f00Mdest = &DF[B   *size_MatF];
+	fPP0dest = &DF[NE  *size_MatF];
+	fMM0dest = &DF[SW  *size_MatF];
+	fPM0dest = &DF[SE  *size_MatF];
+	fMP0dest = &DF[NW  *size_MatF];
+	fP0Pdest = &DF[TE  *size_MatF];
+	fM0Mdest = &DF[BW  *size_MatF];
+	fP0Mdest = &DF[BE  *size_MatF];
+	fM0Pdest = &DF[TW  *size_MatF];
+	f0PPdest = &DF[TN  *size_MatF];
+	f0MMdest = &DF[BS  *size_MatF];
+	f0PMdest = &DF[BN  *size_MatF];
+	f0MPdest = &DF[TS  *size_MatF];
 	f000dest = &DF[dirREST*size_MatF];
-	fMMMdest = &DF[dirBSW *size_MatF];
-	fMMPdest = &DF[dirTSW *size_MatF];
-	fMPPdest = &DF[dirTNW *size_MatF];
-	fMPMdest = &DF[dirBNW *size_MatF];
-	fPPMdest = &DF[dirBNE *size_MatF];
-	fPPPdest = &DF[dirTNE *size_MatF];
-	fPMPdest = &DF[dirTSE *size_MatF];
-	fPMMdest = &DF[dirBSE *size_MatF];
+	fMMMdest = &DF[BSW *size_MatF];
+	fMMPdest = &DF[TSW *size_MatF];
+	fMPPdest = &DF[TNW *size_MatF];
+	fMPMdest = &DF[BNW *size_MatF];
+	fPPMdest = &DF[BNE *size_MatF];
+	fPPPdest = &DF[TNE *size_MatF];
+	fPMPdest = &DF[TSE *size_MatF];
+	fPMMdest = &DF[BSE *size_MatF];
 
 	real
 		*fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source,
@@ -4425,72 +4425,72 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3( real* DC,
 
 	if (isEvenTimestep == true)
 	{
-		fP00source = &DC[dirE   *size_MatC];
-		fM00source = &DC[dirW   *size_MatC];
-		f0P0source = &DC[dirN   *size_MatC];
-		f0M0source = &DC[dirS   *size_MatC];
-		f00Psource = &DC[dirT   *size_MatC];
-		f00Msource = &DC[dirB   *size_MatC];
-		fPP0source = &DC[dirNE  *size_MatC];
-		fMM0source = &DC[dirSW  *size_MatC];
-		fPM0source = &DC[dirSE  *size_MatC];
-		fMP0source = &DC[dirNW  *size_MatC];
-		fP0Psource = &DC[dirTE  *size_MatC];
-		fM0Msource = &DC[dirBW  *size_MatC];
-		fP0Msource = &DC[dirBE  *size_MatC];
-		fM0Psource = &DC[dirTW  *size_MatC];
-		f0PPsource = &DC[dirTN  *size_MatC];
-		f0MMsource = &DC[dirBS  *size_MatC];
-		f0PMsource = &DC[dirBN  *size_MatC];
-		f0MPsource = &DC[dirTS  *size_MatC];
+		fP00source = &DC[E   *size_MatC];
+		fM00source = &DC[W   *size_MatC];
+		f0P0source = &DC[N   *size_MatC];
+		f0M0source = &DC[S   *size_MatC];
+		f00Psource = &DC[T   *size_MatC];
+		f00Msource = &DC[B   *size_MatC];
+		fPP0source = &DC[NE  *size_MatC];
+		fMM0source = &DC[SW  *size_MatC];
+		fPM0source = &DC[SE  *size_MatC];
+		fMP0source = &DC[NW  *size_MatC];
+		fP0Psource = &DC[TE  *size_MatC];
+		fM0Msource = &DC[BW  *size_MatC];
+		fP0Msource = &DC[BE  *size_MatC];
+		fM0Psource = &DC[TW  *size_MatC];
+		f0PPsource = &DC[TN  *size_MatC];
+		f0MMsource = &DC[BS  *size_MatC];
+		f0PMsource = &DC[BN  *size_MatC];
+		f0MPsource = &DC[TS  *size_MatC];
 		f000source = &DC[dirREST*size_MatC];
-		fMMMsource = &DC[dirBSW *size_MatC];
-		fMMPsource = &DC[dirTSW *size_MatC];
-		fMPPsource = &DC[dirTNW *size_MatC];
-		fMPMsource = &DC[dirBNW *size_MatC];
-		fPPMsource = &DC[dirBNE *size_MatC];
-		fPPPsource = &DC[dirTNE *size_MatC];
-		fPMPsource = &DC[dirTSE *size_MatC];
-		fPMMsource = &DC[dirBSE *size_MatC];
+		fMMMsource = &DC[BSW *size_MatC];
+		fMMPsource = &DC[TSW *size_MatC];
+		fMPPsource = &DC[TNW *size_MatC];
+		fMPMsource = &DC[BNW *size_MatC];
+		fPPMsource = &DC[BNE *size_MatC];
+		fPPPsource = &DC[TNE *size_MatC];
+		fPMPsource = &DC[TSE *size_MatC];
+		fPMMsource = &DC[BSE *size_MatC];
 	}
 	else
 	{
-		fP00source = &DC[dirW   *size_MatC];
-		fM00source = &DC[dirE   *size_MatC];
-		f0P0source = &DC[dirS   *size_MatC];
-		f0M0source = &DC[dirN   *size_MatC];
-		f00Psource = &DC[dirB   *size_MatC];
-		f00Msource = &DC[dirT   *size_MatC];
-		fPP0source = &DC[dirSW  *size_MatC];
-		fMM0source = &DC[dirNE  *size_MatC];
-		fPM0source = &DC[dirNW  *size_MatC];
-		fMP0source = &DC[dirSE  *size_MatC];
-		fP0Psource = &DC[dirBW  *size_MatC];
-		fM0Msource = &DC[dirTE  *size_MatC];
-		fP0Msource = &DC[dirTW  *size_MatC];
-		fM0Psource = &DC[dirBE  *size_MatC];
-		f0PPsource = &DC[dirBS  *size_MatC];
-		f0MMsource = &DC[dirTN  *size_MatC];
-		f0PMsource = &DC[dirTS  *size_MatC];
-		f0MPsource = &DC[dirBN  *size_MatC];
+		fP00source = &DC[W   *size_MatC];
+		fM00source = &DC[E   *size_MatC];
+		f0P0source = &DC[S   *size_MatC];
+		f0M0source = &DC[N   *size_MatC];
+		f00Psource = &DC[B   *size_MatC];
+		f00Msource = &DC[T   *size_MatC];
+		fPP0source = &DC[SW  *size_MatC];
+		fMM0source = &DC[NE  *size_MatC];
+		fPM0source = &DC[NW  *size_MatC];
+		fMP0source = &DC[SE  *size_MatC];
+		fP0Psource = &DC[BW  *size_MatC];
+		fM0Msource = &DC[TE  *size_MatC];
+		fP0Msource = &DC[TW  *size_MatC];
+		fM0Psource = &DC[BE  *size_MatC];
+		f0PPsource = &DC[BS  *size_MatC];
+		f0MMsource = &DC[TN  *size_MatC];
+		f0PMsource = &DC[TS  *size_MatC];
+		f0MPsource = &DC[BN  *size_MatC];
 		f000source = &DC[dirREST*size_MatC];
-		fMMMsource = &DC[dirTNE *size_MatC];
-		fMMPsource = &DC[dirBNE *size_MatC];
-		fMPPsource = &DC[dirBSE *size_MatC];
-		fMPMsource = &DC[dirTSE *size_MatC];
-		fPPMsource = &DC[dirTSW *size_MatC];
-		fPPPsource = &DC[dirBSW *size_MatC];
-		fPMPsource = &DC[dirBNW *size_MatC];
-		fPMMsource = &DC[dirTNW *size_MatC];
+		fMMMsource = &DC[TNE *size_MatC];
+		fMMPsource = &DC[BNE *size_MatC];
+		fMPPsource = &DC[BSE *size_MatC];
+		fMPMsource = &DC[TSE *size_MatC];
+		fPPMsource = &DC[TSW *size_MatC];
+		fPPPsource = &DC[BSW *size_MatC];
+		fPMPsource = &DC[BNW *size_MatC];
+		fPMMsource = &DC[TNW *size_MatC];
 	}
 
 	Distributions6 G;
-	G.g[dirE] = &G6[dirE   *size_MatF];
-	G.g[dirW] = &G6[dirW   *size_MatF];
-	G.g[dirN] = &G6[dirN   *size_MatF];
-	G.g[dirS] = &G6[dirS   *size_MatF];
-	G.g[dirT] = &G6[dirT   *size_MatF];
-	G.g[dirB] = &G6[dirB   *size_MatF];
+	G.g[E] = &G6[E   *size_MatF];
+	G.g[W] = &G6[W   *size_MatF];
+	G.g[N] = &G6[N   *size_MatF];
+	G.g[S] = &G6[S   *size_MatF];
+	G.g[T] = &G6[T   *size_MatF];
+	G.g[B] = &G6[B   *size_MatF];
 
 	////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -5521,12 +5521,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3( real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -5948,12 +5948,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3( real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -6378,12 +6378,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3( real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -6808,12 +6808,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3( real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -7248,12 +7248,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3( real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -7678,12 +7678,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3( real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -8108,12 +8108,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3( real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
@@ -8538,12 +8538,12 @@ extern "C" __global__ void scaleCF_comp_D3Q27F3( real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;
 	  fM00dest[kM00] = mfabb;
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu b/src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu
index a0a3f2b0e..18bc38f60 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu
@@ -42,33 +42,33 @@ extern "C" __global__ void scaleFC_0817_comp_27( real* DC,
 	   *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource;
 
 
-   fP00source = &DF[dirE   *size_MatF];
-   fM00source = &DF[dirW   *size_MatF];
-   f0P0source = &DF[dirN   *size_MatF];
-   f0M0source = &DF[dirS   *size_MatF];
-   f00Psource = &DF[dirT   *size_MatF];
-   f00Msource = &DF[dirB   *size_MatF];
-   fPP0source = &DF[dirNE  *size_MatF];
-   fMM0source = &DF[dirSW  *size_MatF];
-   fPM0source = &DF[dirSE  *size_MatF];
-   fMP0source = &DF[dirNW  *size_MatF];
-   fP0Psource = &DF[dirTE  *size_MatF];
-   fM0Msource = &DF[dirBW  *size_MatF];
-   fP0Msource = &DF[dirBE  *size_MatF];
-   fM0Psource = &DF[dirTW  *size_MatF];
-   f0PPsource = &DF[dirTN  *size_MatF];
-   f0MMsource = &DF[dirBS  *size_MatF];
-   f0PMsource = &DF[dirBN  *size_MatF];
-   f0MPsource = &DF[dirTS  *size_MatF];
+   fP00source = &DF[E   *size_MatF];
+   fM00source = &DF[W   *size_MatF];
+   f0P0source = &DF[N   *size_MatF];
+   f0M0source = &DF[S   *size_MatF];
+   f00Psource = &DF[T   *size_MatF];
+   f00Msource = &DF[B   *size_MatF];
+   fPP0source = &DF[NE  *size_MatF];
+   fMM0source = &DF[SW  *size_MatF];
+   fPM0source = &DF[SE  *size_MatF];
+   fMP0source = &DF[NW  *size_MatF];
+   fP0Psource = &DF[TE  *size_MatF];
+   fM0Msource = &DF[BW  *size_MatF];
+   fP0Msource = &DF[BE  *size_MatF];
+   fM0Psource = &DF[TW  *size_MatF];
+   f0PPsource = &DF[TN  *size_MatF];
+   f0MMsource = &DF[BS  *size_MatF];
+   f0PMsource = &DF[BN  *size_MatF];
+   f0MPsource = &DF[TS  *size_MatF];
    f000source = &DF[dirREST*size_MatF];
-   fMMMsource = &DF[dirBSW *size_MatF];
-   fMMPsource = &DF[dirTSW *size_MatF];
-   fMPPsource = &DF[dirTNW *size_MatF];
-   fMPMsource = &DF[dirBNW *size_MatF];
-   fPPMsource = &DF[dirBNE *size_MatF];
-   fPPPsource = &DF[dirTNE *size_MatF];
-   fPMPsource = &DF[dirTSE *size_MatF];
-   fPMMsource = &DF[dirBSE *size_MatF];
+   fMMMsource = &DF[BSW *size_MatF];
+   fMMPsource = &DF[TSW *size_MatF];
+   fMPPsource = &DF[TNW *size_MatF];
+   fMPMsource = &DF[BNW *size_MatF];
+   fPPMsource = &DF[BNE *size_MatF];
+   fPPPsource = &DF[TNE *size_MatF];
+   fPMPsource = &DF[TSE *size_MatF];
+   fPMMsource = &DF[BSE *size_MatF];
 
    real
 	   *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest,
@@ -77,63 +77,63 @@ extern "C" __global__ void scaleFC_0817_comp_27( real* DC,
 
    if (isEvenTimestep==true)
    {
-	   fP00dest = &DC[dirE   *size_MatC];
-	   fM00dest = &DC[dirW   *size_MatC];
-	   f0P0dest = &DC[dirN   *size_MatC];
-	   f0M0dest = &DC[dirS   *size_MatC];
-	   f00Pdest = &DC[dirT   *size_MatC];
-	   f00Mdest = &DC[dirB   *size_MatC];
-	   fPP0dest = &DC[dirNE  *size_MatC];
-	   fMM0dest = &DC[dirSW  *size_MatC];
-	   fPM0dest = &DC[dirSE  *size_MatC];
-	   fMP0dest = &DC[dirNW  *size_MatC];
-	   fP0Pdest = &DC[dirTE  *size_MatC];
-	   fM0Mdest = &DC[dirBW  *size_MatC];
-	   fP0Mdest = &DC[dirBE  *size_MatC];
-	   fM0Pdest = &DC[dirTW  *size_MatC];
-	   f0PPdest = &DC[dirTN  *size_MatC];
-	   f0MMdest = &DC[dirBS  *size_MatC];
-	   f0PMdest = &DC[dirBN  *size_MatC];
-	   f0MPdest = &DC[dirTS  *size_MatC];
+	   fP00dest = &DC[E   *size_MatC];
+	   fM00dest = &DC[W   *size_MatC];
+	   f0P0dest = &DC[N   *size_MatC];
+	   f0M0dest = &DC[S   *size_MatC];
+	   f00Pdest = &DC[T   *size_MatC];
+	   f00Mdest = &DC[B   *size_MatC];
+	   fPP0dest = &DC[NE  *size_MatC];
+	   fMM0dest = &DC[SW  *size_MatC];
+	   fPM0dest = &DC[SE  *size_MatC];
+	   fMP0dest = &DC[NW  *size_MatC];
+	   fP0Pdest = &DC[TE  *size_MatC];
+	   fM0Mdest = &DC[BW  *size_MatC];
+	   fP0Mdest = &DC[BE  *size_MatC];
+	   fM0Pdest = &DC[TW  *size_MatC];
+	   f0PPdest = &DC[TN  *size_MatC];
+	   f0MMdest = &DC[BS  *size_MatC];
+	   f0PMdest = &DC[BN  *size_MatC];
+	   f0MPdest = &DC[TS  *size_MatC];
 	   f000dest = &DC[dirREST*size_MatC];
-	   fMMMdest = &DC[dirBSW *size_MatC];
-	   fMMPdest = &DC[dirTSW *size_MatC];
-	   fMPPdest = &DC[dirTNW *size_MatC];
-	   fMPMdest = &DC[dirBNW *size_MatC];
-	   fPPMdest = &DC[dirBNE *size_MatC];
-	   fPPPdest = &DC[dirTNE *size_MatC];
-	   fPMPdest = &DC[dirTSE *size_MatC];
-	   fPMMdest = &DC[dirBSE *size_MatC];
+	   fMMMdest = &DC[BSW *size_MatC];
+	   fMMPdest = &DC[TSW *size_MatC];
+	   fMPPdest = &DC[TNW *size_MatC];
+	   fMPMdest = &DC[BNW *size_MatC];
+	   fPPMdest = &DC[BNE *size_MatC];
+	   fPPPdest = &DC[TNE *size_MatC];
+	   fPMPdest = &DC[TSE *size_MatC];
+	   fPMMdest = &DC[BSE *size_MatC];
    } 
    else
    {
-	   fP00dest = &DC[dirW   *size_MatC];
-	   fM00dest = &DC[dirE   *size_MatC];
-	   f0P0dest = &DC[dirS   *size_MatC];
-	   f0M0dest = &DC[dirN   *size_MatC];
-	   f00Pdest = &DC[dirB   *size_MatC];
-	   f00Mdest = &DC[dirT   *size_MatC];
-	   fPP0dest = &DC[dirSW  *size_MatC];
-	   fMM0dest = &DC[dirNE  *size_MatC];
-	   fPM0dest = &DC[dirNW  *size_MatC];
-	   fMP0dest = &DC[dirSE  *size_MatC];
-	   fP0Pdest = &DC[dirBW  *size_MatC];
-	   fM0Mdest = &DC[dirTE  *size_MatC];
-	   fP0Mdest = &DC[dirTW  *size_MatC];
-	   fM0Pdest = &DC[dirBE  *size_MatC];
-	   f0PPdest = &DC[dirBS  *size_MatC];
-	   f0MMdest = &DC[dirTN  *size_MatC];
-	   f0PMdest = &DC[dirTS  *size_MatC];
-	   f0MPdest = &DC[dirBN  *size_MatC];
+	   fP00dest = &DC[W   *size_MatC];
+	   fM00dest = &DC[E   *size_MatC];
+	   f0P0dest = &DC[S   *size_MatC];
+	   f0M0dest = &DC[N   *size_MatC];
+	   f00Pdest = &DC[B   *size_MatC];
+	   f00Mdest = &DC[T   *size_MatC];
+	   fPP0dest = &DC[SW  *size_MatC];
+	   fMM0dest = &DC[NE  *size_MatC];
+	   fPM0dest = &DC[NW  *size_MatC];
+	   fMP0dest = &DC[SE  *size_MatC];
+	   fP0Pdest = &DC[BW  *size_MatC];
+	   fM0Mdest = &DC[TE  *size_MatC];
+	   fP0Mdest = &DC[TW  *size_MatC];
+	   fM0Pdest = &DC[BE  *size_MatC];
+	   f0PPdest = &DC[BS  *size_MatC];
+	   f0MMdest = &DC[TN  *size_MatC];
+	   f0PMdest = &DC[TS  *size_MatC];
+	   f0MPdest = &DC[BN  *size_MatC];
 	   f000dest = &DC[dirREST*size_MatC];
-	   fMMMdest = &DC[dirTNE *size_MatC];
-	   fMMPdest = &DC[dirBNE *size_MatC];
-	   fMPPdest = &DC[dirBSE *size_MatC];
-	   fMPMdest = &DC[dirTSE *size_MatC];
-	   fPPMdest = &DC[dirTSW *size_MatC];
-	   fPPPdest = &DC[dirBSW *size_MatC];
-	   fPMPdest = &DC[dirBNW *size_MatC];
-	   fPMMdest = &DC[dirTNW *size_MatC];
+	   fMMMdest = &DC[TNE *size_MatC];
+	   fMMPdest = &DC[BNE *size_MatC];
+	   fMPPdest = &DC[BSE *size_MatC];
+	   fMPMdest = &DC[TSE *size_MatC];
+	   fPPMdest = &DC[TSW *size_MatC];
+	   fPPPdest = &DC[BSW *size_MatC];
+	   fPMPdest = &DC[BNW *size_MatC];
+	   fPMMdest = &DC[TNW *size_MatC];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -1235,96 +1235,96 @@ extern "C" __global__ void scaleFC_AA2016_comp_27(real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -5424,96 +5424,96 @@ extern "C" __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -9596,93 +9596,93 @@ __device__ void scaleFC_RhoSq_comp_27_Calculation(real *DC, real *DF, unsigned i
     real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF,
         *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-    feF    = &DF[dirE * size_MatF];
-    fwF    = &DF[dirW * size_MatF];
-    fnF    = &DF[dirN * size_MatF];
-    fsF    = &DF[dirS * size_MatF];
-    ftF    = &DF[dirT * size_MatF];
-    fbF    = &DF[dirB * size_MatF];
-    fneF   = &DF[dirNE * size_MatF];
-    fswF   = &DF[dirSW * size_MatF];
-    fseF   = &DF[dirSE * size_MatF];
-    fnwF   = &DF[dirNW * size_MatF];
-    fteF   = &DF[dirTE * size_MatF];
-    fbwF   = &DF[dirBW * size_MatF];
-    fbeF   = &DF[dirBE * size_MatF];
-    ftwF   = &DF[dirTW * size_MatF];
-    ftnF   = &DF[dirTN * size_MatF];
-    fbsF   = &DF[dirBS * size_MatF];
-    fbnF   = &DF[dirBN * size_MatF];
-    ftsF   = &DF[dirTS * size_MatF];
+    feF    = &DF[E * size_MatF];
+    fwF    = &DF[W * size_MatF];
+    fnF    = &DF[N * size_MatF];
+    fsF    = &DF[S * size_MatF];
+    ftF    = &DF[T * size_MatF];
+    fbF    = &DF[B * size_MatF];
+    fneF   = &DF[NE * size_MatF];
+    fswF   = &DF[SW * size_MatF];
+    fseF   = &DF[SE * size_MatF];
+    fnwF   = &DF[NW * size_MatF];
+    fteF   = &DF[TE * size_MatF];
+    fbwF   = &DF[BW * size_MatF];
+    fbeF   = &DF[BE * size_MatF];
+    ftwF   = &DF[TW * size_MatF];
+    ftnF   = &DF[TN * size_MatF];
+    fbsF   = &DF[BS * size_MatF];
+    fbnF   = &DF[BN * size_MatF];
+    ftsF   = &DF[TS * size_MatF];
     fzeroF = &DF[dirREST * size_MatF];
-    ftneF  = &DF[dirTNE * size_MatF];
-    ftswF  = &DF[dirTSW * size_MatF];
-    ftseF  = &DF[dirTSE * size_MatF];
-    ftnwF  = &DF[dirTNW * size_MatF];
-    fbneF  = &DF[dirBNE * size_MatF];
-    fbswF  = &DF[dirBSW * size_MatF];
-    fbseF  = &DF[dirBSE * size_MatF];
-    fbnwF  = &DF[dirBNW * size_MatF];
+    ftneF  = &DF[TNE * size_MatF];
+    ftswF  = &DF[TSW * size_MatF];
+    ftseF  = &DF[TSE * size_MatF];
+    ftnwF  = &DF[TNW * size_MatF];
+    fbneF  = &DF[BNE * size_MatF];
+    fbswF  = &DF[BSW * size_MatF];
+    fbseF  = &DF[BSE * size_MatF];
+    fbnwF  = &DF[BNW * size_MatF];
 
     real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC,
         *fbnC, *ftsC, *fzeroC, *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
     if (isEvenTimestep == true) {
-        feC    = &DC[dirE * size_MatC];
-        fwC    = &DC[dirW * size_MatC];
-        fnC    = &DC[dirN * size_MatC];
-        fsC    = &DC[dirS * size_MatC];
-        ftC    = &DC[dirT * size_MatC];
-        fbC    = &DC[dirB * size_MatC];
-        fneC   = &DC[dirNE * size_MatC];
-        fswC   = &DC[dirSW * size_MatC];
-        fseC   = &DC[dirSE * size_MatC];
-        fnwC   = &DC[dirNW * size_MatC];
-        fteC   = &DC[dirTE * size_MatC];
-        fbwC   = &DC[dirBW * size_MatC];
-        fbeC   = &DC[dirBE * size_MatC];
-        ftwC   = &DC[dirTW * size_MatC];
-        ftnC   = &DC[dirTN * size_MatC];
-        fbsC   = &DC[dirBS * size_MatC];
-        fbnC   = &DC[dirBN * size_MatC];
-        ftsC   = &DC[dirTS * size_MatC];
+        feC    = &DC[E * size_MatC];
+        fwC    = &DC[W * size_MatC];
+        fnC    = &DC[N * size_MatC];
+        fsC    = &DC[S * size_MatC];
+        ftC    = &DC[T * size_MatC];
+        fbC    = &DC[B * size_MatC];
+        fneC   = &DC[NE * size_MatC];
+        fswC   = &DC[SW * size_MatC];
+        fseC   = &DC[SE * size_MatC];
+        fnwC   = &DC[NW * size_MatC];
+        fteC   = &DC[TE * size_MatC];
+        fbwC   = &DC[BW * size_MatC];
+        fbeC   = &DC[BE * size_MatC];
+        ftwC   = &DC[TW * size_MatC];
+        ftnC   = &DC[TN * size_MatC];
+        fbsC   = &DC[BS * size_MatC];
+        fbnC   = &DC[BN * size_MatC];
+        ftsC   = &DC[TS * size_MatC];
         fzeroC = &DC[dirREST * size_MatC];
-        ftneC  = &DC[dirTNE * size_MatC];
-        ftswC  = &DC[dirTSW * size_MatC];
-        ftseC  = &DC[dirTSE * size_MatC];
-        ftnwC  = &DC[dirTNW * size_MatC];
-        fbneC  = &DC[dirBNE * size_MatC];
-        fbswC  = &DC[dirBSW * size_MatC];
-        fbseC  = &DC[dirBSE * size_MatC];
-        fbnwC  = &DC[dirBNW * size_MatC];
+        ftneC  = &DC[TNE * size_MatC];
+        ftswC  = &DC[TSW * size_MatC];
+        ftseC  = &DC[TSE * size_MatC];
+        ftnwC  = &DC[TNW * size_MatC];
+        fbneC  = &DC[BNE * size_MatC];
+        fbswC  = &DC[BSW * size_MatC];
+        fbseC  = &DC[BSE * size_MatC];
+        fbnwC  = &DC[BNW * size_MatC];
     } else {
-        fwC    = &DC[dirE * size_MatC];
-        feC    = &DC[dirW * size_MatC];
-        fsC    = &DC[dirN * size_MatC];
-        fnC    = &DC[dirS * size_MatC];
-        fbC    = &DC[dirT * size_MatC];
-        ftC    = &DC[dirB * size_MatC];
-        fswC   = &DC[dirNE * size_MatC];
-        fneC   = &DC[dirSW * size_MatC];
-        fnwC   = &DC[dirSE * size_MatC];
-        fseC   = &DC[dirNW * size_MatC];
-        fbwC   = &DC[dirTE * size_MatC];
-        fteC   = &DC[dirBW * size_MatC];
-        ftwC   = &DC[dirBE * size_MatC];
-        fbeC   = &DC[dirTW * size_MatC];
-        fbsC   = &DC[dirTN * size_MatC];
-        ftnC   = &DC[dirBS * size_MatC];
-        ftsC   = &DC[dirBN * size_MatC];
-        fbnC   = &DC[dirTS * size_MatC];
+        fwC    = &DC[E * size_MatC];
+        feC    = &DC[W * size_MatC];
+        fsC    = &DC[N * size_MatC];
+        fnC    = &DC[S * size_MatC];
+        fbC    = &DC[T * size_MatC];
+        ftC    = &DC[B * size_MatC];
+        fswC   = &DC[NE * size_MatC];
+        fneC   = &DC[SW * size_MatC];
+        fnwC   = &DC[SE * size_MatC];
+        fseC   = &DC[NW * size_MatC];
+        fbwC   = &DC[TE * size_MatC];
+        fteC   = &DC[BW * size_MatC];
+        ftwC   = &DC[BE * size_MatC];
+        fbeC   = &DC[TW * size_MatC];
+        fbsC   = &DC[TN * size_MatC];
+        ftnC   = &DC[BS * size_MatC];
+        ftsC   = &DC[BN * size_MatC];
+        fbnC   = &DC[TS * size_MatC];
         fzeroC = &DC[dirREST * size_MatC];
-        fbswC  = &DC[dirTNE * size_MatC];
-        fbneC  = &DC[dirTSW * size_MatC];
-        fbnwC  = &DC[dirTSE * size_MatC];
-        fbseC  = &DC[dirTNW * size_MatC];
-        ftswC  = &DC[dirBNE * size_MatC];
-        ftneC  = &DC[dirBSW * size_MatC];
-        ftnwC  = &DC[dirBSE * size_MatC];
-        ftseC  = &DC[dirBNW * size_MatC];
+        fbswC  = &DC[TNE * size_MatC];
+        fbneC  = &DC[TSW * size_MatC];
+        fbnwC  = &DC[TSE * size_MatC];
+        fbseC  = &DC[TNW * size_MatC];
+        ftswC  = &DC[BNE * size_MatC];
+        ftneC  = &DC[BSW * size_MatC];
+        ftnwC  = &DC[BSE * size_MatC];
+        ftseC  = &DC[BNW * size_MatC];
     }
 
     ////////////////////////////////////////////////////////////////////////////////
@@ -11174,96 +11174,96 @@ extern "C" __global__ void scaleFC_staggered_time_comp_27(   real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -11758,63 +11758,63 @@ extern "C" __global__ void scaleFC_staggered_time_comp_27(   real* DC,
 	  ////pointertausch
 	  // if (isEvenTimestep==false)
 	  // {
-		 // feC    = &DC[dirE   *size_MatC];
-		 // fwC    = &DC[dirW   *size_MatC];
-		 // fnC    = &DC[dirN   *size_MatC];
-		 // fsC    = &DC[dirS   *size_MatC];
-		 // ftC    = &DC[dirT   *size_MatC];
-		 // fbC    = &DC[dirB   *size_MatC];
-		 // fneC   = &DC[dirNE  *size_MatC];
-		 // fswC   = &DC[dirSW  *size_MatC];
-		 // fseC   = &DC[dirSE  *size_MatC];
-		 // fnwC   = &DC[dirNW  *size_MatC];
-		 // fteC   = &DC[dirTE  *size_MatC];
-		 // fbwC   = &DC[dirBW  *size_MatC];
-		 // fbeC   = &DC[dirBE  *size_MatC];
-		 // ftwC   = &DC[dirTW  *size_MatC];
-		 // ftnC   = &DC[dirTN  *size_MatC];
-		 // fbsC   = &DC[dirBS  *size_MatC];
-		 // fbnC   = &DC[dirBN  *size_MatC];
-		 // ftsC   = &DC[dirTS  *size_MatC];
+		 // feC    = &DC[E   *size_MatC];
+		 // fwC    = &DC[W   *size_MatC];
+		 // fnC    = &DC[N   *size_MatC];
+		 // fsC    = &DC[S   *size_MatC];
+		 // ftC    = &DC[T   *size_MatC];
+		 // fbC    = &DC[B   *size_MatC];
+		 // fneC   = &DC[NE  *size_MatC];
+		 // fswC   = &DC[SW  *size_MatC];
+		 // fseC   = &DC[SE  *size_MatC];
+		 // fnwC   = &DC[NW  *size_MatC];
+		 // fteC   = &DC[TE  *size_MatC];
+		 // fbwC   = &DC[BW  *size_MatC];
+		 // fbeC   = &DC[BE  *size_MatC];
+		 // ftwC   = &DC[TW  *size_MatC];
+		 // ftnC   = &DC[TN  *size_MatC];
+		 // fbsC   = &DC[BS  *size_MatC];
+		 // fbnC   = &DC[BN  *size_MatC];
+		 // ftsC   = &DC[TS  *size_MatC];
 		 // fzeroC = &DC[dirREST*size_MatC];
-		 // ftneC  = &DC[dirTNE *size_MatC];
-		 // ftswC  = &DC[dirTSW *size_MatC];
-		 // ftseC  = &DC[dirTSE *size_MatC];
-		 // ftnwC  = &DC[dirTNW *size_MatC];
-		 // fbneC  = &DC[dirBNE *size_MatC];
-		 // fbswC  = &DC[dirBSW *size_MatC];
-		 // fbseC  = &DC[dirBSE *size_MatC];
-		 // fbnwC  = &DC[dirBNW *size_MatC];
+		 // ftneC  = &DC[TNE *size_MatC];
+		 // ftswC  = &DC[TSW *size_MatC];
+		 // ftseC  = &DC[TSE *size_MatC];
+		 // ftnwC  = &DC[TNW *size_MatC];
+		 // fbneC  = &DC[BNE *size_MatC];
+		 // fbswC  = &DC[BSW *size_MatC];
+		 // fbseC  = &DC[BSE *size_MatC];
+		 // fbnwC  = &DC[BNW *size_MatC];
 	  // } 
 	  // else
 	  // {
-		 // fwC    = &DC[dirE   *size_MatC];
-		 // feC    = &DC[dirW   *size_MatC];
-		 // fsC    = &DC[dirN   *size_MatC];
-		 // fnC    = &DC[dirS   *size_MatC];
-		 // fbC    = &DC[dirT   *size_MatC];
-		 // ftC    = &DC[dirB   *size_MatC];
-		 // fswC   = &DC[dirNE  *size_MatC];
-		 // fneC   = &DC[dirSW  *size_MatC];
-		 // fnwC   = &DC[dirSE  *size_MatC];
-		 // fseC   = &DC[dirNW  *size_MatC];
-		 // fbwC   = &DC[dirTE  *size_MatC];
-		 // fteC   = &DC[dirBW  *size_MatC];
-		 // ftwC   = &DC[dirBE  *size_MatC];
-		 // fbeC   = &DC[dirTW  *size_MatC];
-		 // fbsC   = &DC[dirTN  *size_MatC];
-		 // ftnC   = &DC[dirBS  *size_MatC];
-		 // ftsC   = &DC[dirBN  *size_MatC];
-		 // fbnC   = &DC[dirTS  *size_MatC];
+		 // fwC    = &DC[E   *size_MatC];
+		 // feC    = &DC[W   *size_MatC];
+		 // fsC    = &DC[N   *size_MatC];
+		 // fnC    = &DC[S   *size_MatC];
+		 // fbC    = &DC[T   *size_MatC];
+		 // ftC    = &DC[B   *size_MatC];
+		 // fswC   = &DC[NE  *size_MatC];
+		 // fneC   = &DC[SW  *size_MatC];
+		 // fnwC   = &DC[SE  *size_MatC];
+		 // fseC   = &DC[NW  *size_MatC];
+		 // fbwC   = &DC[TE  *size_MatC];
+		 // fteC   = &DC[BW  *size_MatC];
+		 // ftwC   = &DC[BE  *size_MatC];
+		 // fbeC   = &DC[TW  *size_MatC];
+		 // fbsC   = &DC[TN  *size_MatC];
+		 // ftnC   = &DC[BS  *size_MatC];
+		 // ftsC   = &DC[BN  *size_MatC];
+		 // fbnC   = &DC[TS  *size_MatC];
 		 // fzeroC = &DC[dirREST*size_MatC];
-		 // fbswC  = &DC[dirTNE *size_MatC];
-		 // fbneC  = &DC[dirTSW *size_MatC];
-		 // fbnwC  = &DC[dirTSE *size_MatC];
-		 // fbseC  = &DC[dirTNW *size_MatC];
-		 // ftswC  = &DC[dirBNE *size_MatC];
-		 // ftneC  = &DC[dirBSW *size_MatC];
-		 // ftnwC  = &DC[dirBSE *size_MatC];
-		 // ftseC  = &DC[dirBNW *size_MatC];
+		 // fbswC  = &DC[TNE *size_MatC];
+		 // fbneC  = &DC[TSW *size_MatC];
+		 // fbnwC  = &DC[TSE *size_MatC];
+		 // fbseC  = &DC[TNW *size_MatC];
+		 // ftswC  = &DC[BNE *size_MatC];
+		 // ftneC  = &DC[BSW *size_MatC];
+		 // ftnwC  = &DC[BSE *size_MatC];
+		 // ftseC  = &DC[BNW *size_MatC];
 	  // }
 
  	 // real rho_tmp;
@@ -13295,96 +13295,96 @@ extern "C" __global__ void scaleFC_Fix_comp_27(  real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -15155,96 +15155,96 @@ extern "C" __global__ void scaleFC_NSPress_27(   real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -16361,96 +16361,96 @@ extern "C" __global__ void scaleFC_Fix_27(   real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -17721,96 +17721,96 @@ extern "C" __global__ void scaleFCpress27(real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -18646,96 +18646,96 @@ extern "C" __global__ void scaleFCLast27( real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -20039,96 +20039,96 @@ extern "C" __global__ void scaleFCThSMG7(    real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, //*fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    //fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, //*fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       //fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       //fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    Distributions7 D7F;
@@ -20911,96 +20911,96 @@ extern "C" __global__ void scaleFCThS7(   real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, //*fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    //fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, //*fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       //fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       //fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    Distributions7 D7F;
@@ -21703,187 +21703,187 @@ extern "C" __global__ void scaleFCThS27(     real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, //*fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    //fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, //*fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       //fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       //fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
 
    Distributions27 D27F;
-   D27F.f[dirE   ] = &DD27F[dirE   *size_MatF];
-   D27F.f[dirW   ] = &DD27F[dirW   *size_MatF];
-   D27F.f[dirN   ] = &DD27F[dirN   *size_MatF];
-   D27F.f[dirS   ] = &DD27F[dirS   *size_MatF];
-   D27F.f[dirT   ] = &DD27F[dirT   *size_MatF];
-   D27F.f[dirB   ] = &DD27F[dirB   *size_MatF];
-   D27F.f[dirNE  ] = &DD27F[dirNE  *size_MatF];
-   D27F.f[dirSW  ] = &DD27F[dirSW  *size_MatF];
-   D27F.f[dirSE  ] = &DD27F[dirSE  *size_MatF];
-   D27F.f[dirNW  ] = &DD27F[dirNW  *size_MatF];
-   D27F.f[dirTE  ] = &DD27F[dirTE  *size_MatF];
-   D27F.f[dirBW  ] = &DD27F[dirBW  *size_MatF];
-   D27F.f[dirBE  ] = &DD27F[dirBE  *size_MatF];
-   D27F.f[dirTW  ] = &DD27F[dirTW  *size_MatF];
-   D27F.f[dirTN  ] = &DD27F[dirTN  *size_MatF];
-   D27F.f[dirBS  ] = &DD27F[dirBS  *size_MatF];
-   D27F.f[dirBN  ] = &DD27F[dirBN  *size_MatF];
-   D27F.f[dirTS  ] = &DD27F[dirTS  *size_MatF];
+   D27F.f[E   ] = &DD27F[E   *size_MatF];
+   D27F.f[W   ] = &DD27F[W   *size_MatF];
+   D27F.f[N   ] = &DD27F[N   *size_MatF];
+   D27F.f[S   ] = &DD27F[S   *size_MatF];
+   D27F.f[T   ] = &DD27F[T   *size_MatF];
+   D27F.f[B   ] = &DD27F[B   *size_MatF];
+   D27F.f[NE  ] = &DD27F[NE  *size_MatF];
+   D27F.f[SW  ] = &DD27F[SW  *size_MatF];
+   D27F.f[SE  ] = &DD27F[SE  *size_MatF];
+   D27F.f[NW  ] = &DD27F[NW  *size_MatF];
+   D27F.f[TE  ] = &DD27F[TE  *size_MatF];
+   D27F.f[BW  ] = &DD27F[BW  *size_MatF];
+   D27F.f[BE  ] = &DD27F[BE  *size_MatF];
+   D27F.f[TW  ] = &DD27F[TW  *size_MatF];
+   D27F.f[TN  ] = &DD27F[TN  *size_MatF];
+   D27F.f[BS  ] = &DD27F[BS  *size_MatF];
+   D27F.f[BN  ] = &DD27F[BN  *size_MatF];
+   D27F.f[TS  ] = &DD27F[TS  *size_MatF];
    D27F.f[dirREST] = &DD27F[dirREST*size_MatF];
-   D27F.f[dirTNE ] = &DD27F[dirTNE *size_MatF];
-   D27F.f[dirTSW ] = &DD27F[dirTSW *size_MatF];
-   D27F.f[dirTSE ] = &DD27F[dirTSE *size_MatF];
-   D27F.f[dirTNW ] = &DD27F[dirTNW *size_MatF];
-   D27F.f[dirBNE ] = &DD27F[dirBNE *size_MatF];
-   D27F.f[dirBSW ] = &DD27F[dirBSW *size_MatF];
-   D27F.f[dirBSE ] = &DD27F[dirBSE *size_MatF];
-   D27F.f[dirBNW ] = &DD27F[dirBNW *size_MatF];
+   D27F.f[TNE ] = &DD27F[TNE *size_MatF];
+   D27F.f[TSW ] = &DD27F[TSW *size_MatF];
+   D27F.f[TSE ] = &DD27F[TSE *size_MatF];
+   D27F.f[TNW ] = &DD27F[TNW *size_MatF];
+   D27F.f[BNE ] = &DD27F[BNE *size_MatF];
+   D27F.f[BSW ] = &DD27F[BSW *size_MatF];
+   D27F.f[BSE ] = &DD27F[BSE *size_MatF];
+   D27F.f[BNW ] = &DD27F[BNW *size_MatF];
 
    Distributions27 D27C;
    if (isEvenTimestep==true)
    {
-      D27C.f[dirE   ] = &DD27C[dirE   *size_MatC];
-      D27C.f[dirW   ] = &DD27C[dirW   *size_MatC];
-      D27C.f[dirN   ] = &DD27C[dirN   *size_MatC];
-      D27C.f[dirS   ] = &DD27C[dirS   *size_MatC];
-      D27C.f[dirT   ] = &DD27C[dirT   *size_MatC];
-      D27C.f[dirB   ] = &DD27C[dirB   *size_MatC];
-      D27C.f[dirNE  ] = &DD27C[dirNE  *size_MatC];
-      D27C.f[dirSW  ] = &DD27C[dirSW  *size_MatC];
-      D27C.f[dirSE  ] = &DD27C[dirSE  *size_MatC];
-      D27C.f[dirNW  ] = &DD27C[dirNW  *size_MatC];
-      D27C.f[dirTE  ] = &DD27C[dirTE  *size_MatC];
-      D27C.f[dirBW  ] = &DD27C[dirBW  *size_MatC];
-      D27C.f[dirBE  ] = &DD27C[dirBE  *size_MatC];
-      D27C.f[dirTW  ] = &DD27C[dirTW  *size_MatC];
-      D27C.f[dirTN  ] = &DD27C[dirTN  *size_MatC];
-      D27C.f[dirBS  ] = &DD27C[dirBS  *size_MatC];
-      D27C.f[dirBN  ] = &DD27C[dirBN  *size_MatC];
-      D27C.f[dirTS  ] = &DD27C[dirTS  *size_MatC];
+      D27C.f[E   ] = &DD27C[E   *size_MatC];
+      D27C.f[W   ] = &DD27C[W   *size_MatC];
+      D27C.f[N   ] = &DD27C[N   *size_MatC];
+      D27C.f[S   ] = &DD27C[S   *size_MatC];
+      D27C.f[T   ] = &DD27C[T   *size_MatC];
+      D27C.f[B   ] = &DD27C[B   *size_MatC];
+      D27C.f[NE  ] = &DD27C[NE  *size_MatC];
+      D27C.f[SW  ] = &DD27C[SW  *size_MatC];
+      D27C.f[SE  ] = &DD27C[SE  *size_MatC];
+      D27C.f[NW  ] = &DD27C[NW  *size_MatC];
+      D27C.f[TE  ] = &DD27C[TE  *size_MatC];
+      D27C.f[BW  ] = &DD27C[BW  *size_MatC];
+      D27C.f[BE  ] = &DD27C[BE  *size_MatC];
+      D27C.f[TW  ] = &DD27C[TW  *size_MatC];
+      D27C.f[TN  ] = &DD27C[TN  *size_MatC];
+      D27C.f[BS  ] = &DD27C[BS  *size_MatC];
+      D27C.f[BN  ] = &DD27C[BN  *size_MatC];
+      D27C.f[TS  ] = &DD27C[TS  *size_MatC];
       D27C.f[dirREST] = &DD27C[dirREST*size_MatC];
-      D27C.f[dirTNE ] = &DD27C[dirTNE *size_MatC];
-      D27C.f[dirTSW ] = &DD27C[dirTSW *size_MatC];
-      D27C.f[dirTSE ] = &DD27C[dirTSE *size_MatC];
-      D27C.f[dirTNW ] = &DD27C[dirTNW *size_MatC];
-      D27C.f[dirBNE ] = &DD27C[dirBNE *size_MatC];
-      D27C.f[dirBSW ] = &DD27C[dirBSW *size_MatC];
-      D27C.f[dirBSE ] = &DD27C[dirBSE *size_MatC];
-      D27C.f[dirBNW ] = &DD27C[dirBNW *size_MatC];
+      D27C.f[TNE ] = &DD27C[TNE *size_MatC];
+      D27C.f[TSW ] = &DD27C[TSW *size_MatC];
+      D27C.f[TSE ] = &DD27C[TSE *size_MatC];
+      D27C.f[TNW ] = &DD27C[TNW *size_MatC];
+      D27C.f[BNE ] = &DD27C[BNE *size_MatC];
+      D27C.f[BSW ] = &DD27C[BSW *size_MatC];
+      D27C.f[BSE ] = &DD27C[BSE *size_MatC];
+      D27C.f[BNW ] = &DD27C[BNW *size_MatC];
    }
    else
    {
-      D27C.f[dirW   ] = &DD27C[dirE   *size_MatC];
-      D27C.f[dirE   ] = &DD27C[dirW   *size_MatC];
-      D27C.f[dirS   ] = &DD27C[dirN   *size_MatC];
-      D27C.f[dirN   ] = &DD27C[dirS   *size_MatC];
-      D27C.f[dirB   ] = &DD27C[dirT   *size_MatC];
-      D27C.f[dirT   ] = &DD27C[dirB   *size_MatC];
-      D27C.f[dirSW  ] = &DD27C[dirNE  *size_MatC];
-      D27C.f[dirNE  ] = &DD27C[dirSW  *size_MatC];
-      D27C.f[dirNW  ] = &DD27C[dirSE  *size_MatC];
-      D27C.f[dirSE  ] = &DD27C[dirNW  *size_MatC];
-      D27C.f[dirBW  ] = &DD27C[dirTE  *size_MatC];
-      D27C.f[dirTE  ] = &DD27C[dirBW  *size_MatC];
-      D27C.f[dirTW  ] = &DD27C[dirBE  *size_MatC];
-      D27C.f[dirBE  ] = &DD27C[dirTW  *size_MatC];
-      D27C.f[dirBS  ] = &DD27C[dirTN  *size_MatC];
-      D27C.f[dirTN  ] = &DD27C[dirBS  *size_MatC];
-      D27C.f[dirTS  ] = &DD27C[dirBN  *size_MatC];
-      D27C.f[dirBN  ] = &DD27C[dirTS  *size_MatC];
+      D27C.f[W   ] = &DD27C[E   *size_MatC];
+      D27C.f[E   ] = &DD27C[W   *size_MatC];
+      D27C.f[S   ] = &DD27C[N   *size_MatC];
+      D27C.f[N   ] = &DD27C[S   *size_MatC];
+      D27C.f[B   ] = &DD27C[T   *size_MatC];
+      D27C.f[T   ] = &DD27C[B   *size_MatC];
+      D27C.f[SW  ] = &DD27C[NE  *size_MatC];
+      D27C.f[NE  ] = &DD27C[SW  *size_MatC];
+      D27C.f[NW  ] = &DD27C[SE  *size_MatC];
+      D27C.f[SE  ] = &DD27C[NW  *size_MatC];
+      D27C.f[BW  ] = &DD27C[TE  *size_MatC];
+      D27C.f[TE  ] = &DD27C[BW  *size_MatC];
+      D27C.f[TW  ] = &DD27C[BE  *size_MatC];
+      D27C.f[BE  ] = &DD27C[TW  *size_MatC];
+      D27C.f[BS  ] = &DD27C[TN  *size_MatC];
+      D27C.f[TN  ] = &DD27C[BS  *size_MatC];
+      D27C.f[TS  ] = &DD27C[BN  *size_MatC];
+      D27C.f[BN  ] = &DD27C[TS  *size_MatC];
       D27C.f[dirREST] = &DD27C[dirREST*size_MatC];
-      D27C.f[dirBSW ] = &DD27C[dirTNE *size_MatC];
-      D27C.f[dirBNE ] = &DD27C[dirTSW *size_MatC];
-      D27C.f[dirBNW ] = &DD27C[dirTSE *size_MatC];
-      D27C.f[dirBSE ] = &DD27C[dirTNW *size_MatC];
-      D27C.f[dirTSW ] = &DD27C[dirBNE *size_MatC];
-      D27C.f[dirTNE ] = &DD27C[dirBSW *size_MatC];
-      D27C.f[dirTNW ] = &DD27C[dirBSE *size_MatC];
-      D27C.f[dirTSE ] = &DD27C[dirBNW *size_MatC];
+      D27C.f[BSW ] = &DD27C[TNE *size_MatC];
+      D27C.f[BNE ] = &DD27C[TSW *size_MatC];
+      D27C.f[BNW ] = &DD27C[TSE *size_MatC];
+      D27C.f[BSE ] = &DD27C[TNW *size_MatC];
+      D27C.f[TSW ] = &DD27C[BNE *size_MatC];
+      D27C.f[TNE ] = &DD27C[BSW *size_MatC];
+      D27C.f[TNW ] = &DD27C[BSE *size_MatC];
+      D27C.f[TSE ] = &DD27C[BNW *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -21979,33 +21979,33 @@ extern "C" __global__ void scaleFCThS27(     real* DC,
       f_BSE  = fbseF[kbs];
       f_BNW  = fbnwF[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27F.f[dirE   ])[kzero];//ke
-      f27W    =  (D27F.f[dirW   ])[kw   ];
-      f27N    =  (D27F.f[dirN   ])[kzero];//kn
-      f27S    =  (D27F.f[dirS   ])[ks   ];
-      f27T    =  (D27F.f[dirT   ])[kzero];//kt
-      f27B    =  (D27F.f[dirB   ])[kb   ];
-      f27NE   =  (D27F.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27F.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27F.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27F.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27F.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27F.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27F.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27F.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27F.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27F.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27F.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27F.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27F.f[E   ])[kzero];//ke
+      f27W    =  (D27F.f[W   ])[kw   ];
+      f27N    =  (D27F.f[N   ])[kzero];//kn
+      f27S    =  (D27F.f[S   ])[ks   ];
+      f27T    =  (D27F.f[T   ])[kzero];//kt
+      f27B    =  (D27F.f[B   ])[kb   ];
+      f27NE   =  (D27F.f[NE  ])[kzero];//kne
+      f27SW   =  (D27F.f[SW  ])[ksw  ];
+      f27SE   =  (D27F.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27F.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27F.f[TE  ])[kzero];//kte
+      f27BW   =  (D27F.f[BW  ])[kbw  ];
+      f27BE   =  (D27F.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27F.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27F.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27F.f[BS  ])[kbs  ];
+      f27BN   =  (D27F.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27F.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27F.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27F.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27F.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27F.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27F.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27F.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27F.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27F.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27F.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27F.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27F.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27F.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27F.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27F.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27F.f[BSW ])[kbsw ];
+      f27BSE   = (D27F.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27F.f[BNW ])[kbw  ];//kbnw
 
       Conc_F_SWB = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -22066,33 +22066,33 @@ extern "C" __global__ void scaleFCThS27(     real* DC,
       f_BSE  = fbseF[kbs];
       f_BNW  = fbnwF[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27F.f[dirE   ])[kzero];//ke
-      f27W    =  (D27F.f[dirW   ])[kw   ];
-      f27N    =  (D27F.f[dirN   ])[kzero];//kn
-      f27S    =  (D27F.f[dirS   ])[ks   ];
-      f27T    =  (D27F.f[dirT   ])[kzero];//kt
-      f27B    =  (D27F.f[dirB   ])[kb   ];
-      f27NE   =  (D27F.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27F.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27F.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27F.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27F.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27F.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27F.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27F.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27F.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27F.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27F.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27F.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27F.f[E   ])[kzero];//ke
+      f27W    =  (D27F.f[W   ])[kw   ];
+      f27N    =  (D27F.f[N   ])[kzero];//kn
+      f27S    =  (D27F.f[S   ])[ks   ];
+      f27T    =  (D27F.f[T   ])[kzero];//kt
+      f27B    =  (D27F.f[B   ])[kb   ];
+      f27NE   =  (D27F.f[NE  ])[kzero];//kne
+      f27SW   =  (D27F.f[SW  ])[ksw  ];
+      f27SE   =  (D27F.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27F.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27F.f[TE  ])[kzero];//kte
+      f27BW   =  (D27F.f[BW  ])[kbw  ];
+      f27BE   =  (D27F.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27F.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27F.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27F.f[BS  ])[kbs  ];
+      f27BN   =  (D27F.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27F.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27F.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27F.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27F.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27F.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27F.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27F.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27F.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27F.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27F.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27F.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27F.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27F.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27F.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27F.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27F.f[BSW ])[kbsw ];
+      f27BSE   = (D27F.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27F.f[BNW ])[kbw  ];//kbnw
 
       Conc_F_SWT = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -22153,33 +22153,33 @@ extern "C" __global__ void scaleFCThS27(     real* DC,
       f_BSE  = fbseF[kbs];
       f_BNW  = fbnwF[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27F.f[dirE   ])[kzero];//ke
-      f27W    =  (D27F.f[dirW   ])[kw   ];
-      f27N    =  (D27F.f[dirN   ])[kzero];//kn
-      f27S    =  (D27F.f[dirS   ])[ks   ];
-      f27T    =  (D27F.f[dirT   ])[kzero];//kt
-      f27B    =  (D27F.f[dirB   ])[kb   ];
-      f27NE   =  (D27F.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27F.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27F.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27F.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27F.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27F.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27F.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27F.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27F.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27F.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27F.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27F.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27F.f[E   ])[kzero];//ke
+      f27W    =  (D27F.f[W   ])[kw   ];
+      f27N    =  (D27F.f[N   ])[kzero];//kn
+      f27S    =  (D27F.f[S   ])[ks   ];
+      f27T    =  (D27F.f[T   ])[kzero];//kt
+      f27B    =  (D27F.f[B   ])[kb   ];
+      f27NE   =  (D27F.f[NE  ])[kzero];//kne
+      f27SW   =  (D27F.f[SW  ])[ksw  ];
+      f27SE   =  (D27F.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27F.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27F.f[TE  ])[kzero];//kte
+      f27BW   =  (D27F.f[BW  ])[kbw  ];
+      f27BE   =  (D27F.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27F.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27F.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27F.f[BS  ])[kbs  ];
+      f27BN   =  (D27F.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27F.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27F.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27F.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27F.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27F.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27F.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27F.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27F.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27F.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27F.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27F.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27F.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27F.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27F.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27F.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27F.f[BSW ])[kbsw ];
+      f27BSE   = (D27F.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27F.f[BNW ])[kbw  ];//kbnw
 
       Conc_F_SET = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -22240,33 +22240,33 @@ extern "C" __global__ void scaleFCThS27(     real* DC,
       f_BSE  = fbseF[kbs];
       f_BNW  = fbnwF[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27F.f[dirE   ])[kzero];//ke
-      f27W    =  (D27F.f[dirW   ])[kw   ];
-      f27N    =  (D27F.f[dirN   ])[kzero];//kn
-      f27S    =  (D27F.f[dirS   ])[ks   ];
-      f27T    =  (D27F.f[dirT   ])[kzero];//kt
-      f27B    =  (D27F.f[dirB   ])[kb   ];
-      f27NE   =  (D27F.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27F.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27F.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27F.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27F.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27F.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27F.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27F.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27F.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27F.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27F.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27F.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27F.f[E   ])[kzero];//ke
+      f27W    =  (D27F.f[W   ])[kw   ];
+      f27N    =  (D27F.f[N   ])[kzero];//kn
+      f27S    =  (D27F.f[S   ])[ks   ];
+      f27T    =  (D27F.f[T   ])[kzero];//kt
+      f27B    =  (D27F.f[B   ])[kb   ];
+      f27NE   =  (D27F.f[NE  ])[kzero];//kne
+      f27SW   =  (D27F.f[SW  ])[ksw  ];
+      f27SE   =  (D27F.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27F.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27F.f[TE  ])[kzero];//kte
+      f27BW   =  (D27F.f[BW  ])[kbw  ];
+      f27BE   =  (D27F.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27F.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27F.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27F.f[BS  ])[kbs  ];
+      f27BN   =  (D27F.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27F.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27F.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27F.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27F.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27F.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27F.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27F.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27F.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27F.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27F.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27F.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27F.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27F.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27F.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27F.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27F.f[BSW ])[kbsw ];
+      f27BSE   = (D27F.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27F.f[BNW ])[kbw  ];//kbnw
 
       Conc_F_SEB = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -22337,33 +22337,33 @@ extern "C" __global__ void scaleFCThS27(     real* DC,
       f_BSE  = fbseF[kbs];
       f_BNW  = fbnwF[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27F.f[dirE   ])[kzero];//ke
-      f27W    =  (D27F.f[dirW   ])[kw   ];
-      f27N    =  (D27F.f[dirN   ])[kzero];//kn
-      f27S    =  (D27F.f[dirS   ])[ks   ];
-      f27T    =  (D27F.f[dirT   ])[kzero];//kt
-      f27B    =  (D27F.f[dirB   ])[kb   ];
-      f27NE   =  (D27F.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27F.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27F.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27F.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27F.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27F.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27F.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27F.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27F.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27F.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27F.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27F.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27F.f[E   ])[kzero];//ke
+      f27W    =  (D27F.f[W   ])[kw   ];
+      f27N    =  (D27F.f[N   ])[kzero];//kn
+      f27S    =  (D27F.f[S   ])[ks   ];
+      f27T    =  (D27F.f[T   ])[kzero];//kt
+      f27B    =  (D27F.f[B   ])[kb   ];
+      f27NE   =  (D27F.f[NE  ])[kzero];//kne
+      f27SW   =  (D27F.f[SW  ])[ksw  ];
+      f27SE   =  (D27F.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27F.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27F.f[TE  ])[kzero];//kte
+      f27BW   =  (D27F.f[BW  ])[kbw  ];
+      f27BE   =  (D27F.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27F.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27F.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27F.f[BS  ])[kbs  ];
+      f27BN   =  (D27F.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27F.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27F.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27F.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27F.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27F.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27F.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27F.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27F.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27F.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27F.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27F.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27F.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27F.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27F.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27F.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27F.f[BSW ])[kbsw ];
+      f27BSE   = (D27F.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27F.f[BNW ])[kbw  ];//kbnw
 
       Conc_F_NWB = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -22424,33 +22424,33 @@ extern "C" __global__ void scaleFCThS27(     real* DC,
       f_BSE  = fbseF[kbs];
       f_BNW  = fbnwF[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27F.f[dirE   ])[kzero];//ke
-      f27W    =  (D27F.f[dirW   ])[kw   ];
-      f27N    =  (D27F.f[dirN   ])[kzero];//kn
-      f27S    =  (D27F.f[dirS   ])[ks   ];
-      f27T    =  (D27F.f[dirT   ])[kzero];//kt
-      f27B    =  (D27F.f[dirB   ])[kb   ];
-      f27NE   =  (D27F.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27F.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27F.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27F.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27F.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27F.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27F.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27F.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27F.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27F.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27F.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27F.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27F.f[E   ])[kzero];//ke
+      f27W    =  (D27F.f[W   ])[kw   ];
+      f27N    =  (D27F.f[N   ])[kzero];//kn
+      f27S    =  (D27F.f[S   ])[ks   ];
+      f27T    =  (D27F.f[T   ])[kzero];//kt
+      f27B    =  (D27F.f[B   ])[kb   ];
+      f27NE   =  (D27F.f[NE  ])[kzero];//kne
+      f27SW   =  (D27F.f[SW  ])[ksw  ];
+      f27SE   =  (D27F.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27F.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27F.f[TE  ])[kzero];//kte
+      f27BW   =  (D27F.f[BW  ])[kbw  ];
+      f27BE   =  (D27F.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27F.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27F.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27F.f[BS  ])[kbs  ];
+      f27BN   =  (D27F.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27F.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27F.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27F.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27F.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27F.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27F.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27F.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27F.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27F.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27F.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27F.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27F.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27F.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27F.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27F.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27F.f[BSW ])[kbsw ];
+      f27BSE   = (D27F.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27F.f[BNW ])[kbw  ];//kbnw
 
       Conc_F_NWT = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -22511,33 +22511,33 @@ extern "C" __global__ void scaleFCThS27(     real* DC,
       f_BSE  = fbseF[kbs];
       f_BNW  = fbnwF[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27F.f[dirE   ])[kzero];//ke
-      f27W    =  (D27F.f[dirW   ])[kw   ];
-      f27N    =  (D27F.f[dirN   ])[kzero];//kn
-      f27S    =  (D27F.f[dirS   ])[ks   ];
-      f27T    =  (D27F.f[dirT   ])[kzero];//kt
-      f27B    =  (D27F.f[dirB   ])[kb   ];
-      f27NE   =  (D27F.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27F.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27F.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27F.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27F.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27F.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27F.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27F.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27F.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27F.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27F.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27F.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27F.f[E   ])[kzero];//ke
+      f27W    =  (D27F.f[W   ])[kw   ];
+      f27N    =  (D27F.f[N   ])[kzero];//kn
+      f27S    =  (D27F.f[S   ])[ks   ];
+      f27T    =  (D27F.f[T   ])[kzero];//kt
+      f27B    =  (D27F.f[B   ])[kb   ];
+      f27NE   =  (D27F.f[NE  ])[kzero];//kne
+      f27SW   =  (D27F.f[SW  ])[ksw  ];
+      f27SE   =  (D27F.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27F.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27F.f[TE  ])[kzero];//kte
+      f27BW   =  (D27F.f[BW  ])[kbw  ];
+      f27BE   =  (D27F.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27F.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27F.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27F.f[BS  ])[kbs  ];
+      f27BN   =  (D27F.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27F.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27F.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27F.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27F.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27F.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27F.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27F.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27F.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27F.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27F.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27F.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27F.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27F.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27F.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27F.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27F.f[BSW ])[kbsw ];
+      f27BSE   = (D27F.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27F.f[BNW ])[kbw  ];//kbnw
 
       Conc_F_NET = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -22598,33 +22598,33 @@ extern "C" __global__ void scaleFCThS27(     real* DC,
       f_BSE  = fbseF[kbs];
       f_BNW  = fbnwF[kbw];
       //////////////////////////////////////////////////////////////////////////////////
-      f27E    =  (D27F.f[dirE   ])[kzero];//ke
-      f27W    =  (D27F.f[dirW   ])[kw   ];
-      f27N    =  (D27F.f[dirN   ])[kzero];//kn
-      f27S    =  (D27F.f[dirS   ])[ks   ];
-      f27T    =  (D27F.f[dirT   ])[kzero];//kt
-      f27B    =  (D27F.f[dirB   ])[kb   ];
-      f27NE   =  (D27F.f[dirNE  ])[kzero];//kne
-      f27SW   =  (D27F.f[dirSW  ])[ksw  ];
-      f27SE   =  (D27F.f[dirSE  ])[ks   ];//kse
-      f27NW   =  (D27F.f[dirNW  ])[kw   ];//knw
-      f27TE   =  (D27F.f[dirTE  ])[kzero];//kte
-      f27BW   =  (D27F.f[dirBW  ])[kbw  ];
-      f27BE   =  (D27F.f[dirBE  ])[kb   ];//kbe
-      f27TW   =  (D27F.f[dirTW  ])[kw   ];//ktw
-      f27TN   =  (D27F.f[dirTN  ])[kzero];//ktn
-      f27BS   =  (D27F.f[dirBS  ])[kbs  ];
-      f27BN   =  (D27F.f[dirBN  ])[kb   ];//kbn
-      f27TS   =  (D27F.f[dirTS  ])[ks   ];//kts
+      f27E    =  (D27F.f[E   ])[kzero];//ke
+      f27W    =  (D27F.f[W   ])[kw   ];
+      f27N    =  (D27F.f[N   ])[kzero];//kn
+      f27S    =  (D27F.f[S   ])[ks   ];
+      f27T    =  (D27F.f[T   ])[kzero];//kt
+      f27B    =  (D27F.f[B   ])[kb   ];
+      f27NE   =  (D27F.f[NE  ])[kzero];//kne
+      f27SW   =  (D27F.f[SW  ])[ksw  ];
+      f27SE   =  (D27F.f[SE  ])[ks   ];//kse
+      f27NW   =  (D27F.f[NW  ])[kw   ];//knw
+      f27TE   =  (D27F.f[TE  ])[kzero];//kte
+      f27BW   =  (D27F.f[BW  ])[kbw  ];
+      f27BE   =  (D27F.f[BE  ])[kb   ];//kbe
+      f27TW   =  (D27F.f[TW  ])[kw   ];//ktw
+      f27TN   =  (D27F.f[TN  ])[kzero];//ktn
+      f27BS   =  (D27F.f[BS  ])[kbs  ];
+      f27BN   =  (D27F.f[BN  ])[kb   ];//kbn
+      f27TS   =  (D27F.f[TS  ])[ks   ];//kts
       f27ZERO =  (D27F.f[dirREST])[kzero];//kzero
-      f27TNE   = (D27F.f[dirTNE ])[kzero];//ktne
-      f27TSW   = (D27F.f[dirTSW ])[ksw  ];//ktsw
-      f27TSE   = (D27F.f[dirTSE ])[ks   ];//ktse
-      f27TNW   = (D27F.f[dirTNW ])[kw   ];//ktnw
-      f27BNE   = (D27F.f[dirBNE ])[kb   ];//kbne
-      f27BSW   = (D27F.f[dirBSW ])[kbsw ];
-      f27BSE   = (D27F.f[dirBSE ])[kbs  ];//kbse
-      f27BNW   = (D27F.f[dirBNW ])[kbw  ];//kbnw
+      f27TNE   = (D27F.f[TNE ])[kzero];//ktne
+      f27TSW   = (D27F.f[TSW ])[ksw  ];//ktsw
+      f27TSE   = (D27F.f[TSE ])[ks   ];//ktse
+      f27TNW   = (D27F.f[TNW ])[kw   ];//ktnw
+      f27BNE   = (D27F.f[BNE ])[kb   ];//kbne
+      f27BSW   = (D27F.f[BSW ])[kbsw ];
+      f27BSE   = (D27F.f[BSE ])[kbs  ];//kbse
+      f27BNW   = (D27F.f[BNW ])[kbw  ];//kbnw
 
       Conc_F_NEB = f27E + f27W + f27N + f27S + f27T + f27B + f27NE + f27SW + f27SE + f27NW + 
                    f27TE + f27BW + f27BE + f27TW + f27TN + f27BS + f27BN + f27TS + f27ZERO + 
@@ -22738,32 +22738,32 @@ extern "C" __global__ void scaleFCThS27(     real* DC,
       cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
       (D27C.f[dirREST])[kzero] =   c8o27* Conc_C*(c1o1-cu_sq);
-      (D27C.f[dirE   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_C*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
-      (D27C.f[dirW   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_C*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
-      (D27C.f[dirN   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_C*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
-      (D27C.f[dirS   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_C*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
-      (D27C.f[dirT   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_C*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
-      (D27C.f[dirB   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_C*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
-      (D27C.f[dirNE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_C*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
-      (D27C.f[dirSW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_C*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
-      (D27C.f[dirSE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_C*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
-      (D27C.f[dirNW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_C*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
-      (D27C.f[dirTE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_C*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
-      (D27C.f[dirBW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_C*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
-      (D27C.f[dirBE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_C*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
-      (D27C.f[dirTW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_C*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
-      (D27C.f[dirTN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_C*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
-      (D27C.f[dirBS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_C*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
-      (D27C.f[dirBN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_C*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
-      (D27C.f[dirTS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_C*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
-      (D27C.f[dirTNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_C*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
-      (D27C.f[dirBSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_C*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
-      (D27C.f[dirBNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_C*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
-      (D27C.f[dirTSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_C*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
-      (D27C.f[dirTSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_C*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
-      (D27C.f[dirBNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_C*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
-      (D27C.f[dirBSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_C*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
-      (D27C.f[dirTNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_C*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
+      (D27C.f[E   ])[kzero] =   c2o27* (c3o1*( Mx        )+Conc_C*(c1o1+c9o2*( vx1        )*( vx1        )-cu_sq));
+      (D27C.f[W   ])[kw   ] =   c2o27* (c3o1*(-Mx        )+Conc_C*(c1o1+c9o2*(-vx1        )*(-vx1        )-cu_sq));
+      (D27C.f[N   ])[kzero] =   c2o27* (c3o1*(     My    )+Conc_C*(c1o1+c9o2*(     vx2    )*(     vx2    )-cu_sq));
+      (D27C.f[S   ])[ks   ] =   c2o27* (c3o1*(    -My    )+Conc_C*(c1o1+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
+      (D27C.f[T   ])[kzero] =   c2o27* (c3o1*(         Mz)+Conc_C*(c1o1+c9o2*(         vx3)*(         vx3)-cu_sq));
+      (D27C.f[B   ])[kb   ] =   c2o27* (c3o1*(        -Mz)+Conc_C*(c1o1+c9o2*(        -vx3)*(        -vx3)-cu_sq));
+      (D27C.f[NE  ])[kzero] =   c1o54* (c3o1*( Mx +My    )+Conc_C*(c1o1+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
+      (D27C.f[SW  ])[ksw  ] =   c1o54* (c3o1*(-Mx -My    )+Conc_C*(c1o1+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
+      (D27C.f[SE  ])[ks   ] =   c1o54* (c3o1*( Mx -My    )+Conc_C*(c1o1+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
+      (D27C.f[NW  ])[kw   ] =   c1o54* (c3o1*(-Mx +My    )+Conc_C*(c1o1+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
+      (D27C.f[TE  ])[kzero] =   c1o54* (c3o1*( Mx     +Mz)+Conc_C*(c1o1+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
+      (D27C.f[BW  ])[kbw  ] =   c1o54* (c3o1*(-Mx     -Mz)+Conc_C*(c1o1+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
+      (D27C.f[BE  ])[kb   ] =   c1o54* (c3o1*( Mx     -Mz)+Conc_C*(c1o1+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
+      (D27C.f[TW  ])[kw   ] =   c1o54* (c3o1*(-Mx     +Mz)+Conc_C*(c1o1+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
+      (D27C.f[TN  ])[kzero] =   c1o54* (c3o1*(     My +Mz)+Conc_C*(c1o1+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
+      (D27C.f[BS  ])[kbs  ] =   c1o54* (c3o1*(    -My -Mz)+Conc_C*(c1o1+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
+      (D27C.f[BN  ])[kb   ] =   c1o54* (c3o1*(     My -Mz)+Conc_C*(c1o1+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
+      (D27C.f[TS  ])[ks   ] =   c1o54* (c3o1*(    -My +Mz)+Conc_C*(c1o1+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
+      (D27C.f[TNE ])[kzero] =   c1o216*(c3o1*( Mx +My +Mz)+Conc_C*(c1o1+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
+      (D27C.f[BSW ])[kbsw ] =   c1o216*(c3o1*(-Mx -My -Mz)+Conc_C*(c1o1+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
+      (D27C.f[BNE ])[kb   ] =   c1o216*(c3o1*( Mx +My -Mz)+Conc_C*(c1o1+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
+      (D27C.f[TSW ])[ksw  ] =   c1o216*(c3o1*(-Mx -My +Mz)+Conc_C*(c1o1+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
+      (D27C.f[TSE ])[ks   ] =   c1o216*(c3o1*( Mx -My +Mz)+Conc_C*(c1o1+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
+      (D27C.f[BNW ])[kbw  ] =   c1o216*(c3o1*(-Mx +My -Mz)+Conc_C*(c1o1+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
+      (D27C.f[BSE ])[kbs  ] =   c1o216*(c3o1*( Mx -My -Mz)+Conc_C*(c1o1+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
+      (D27C.f[TNW ])[kw   ] =   c1o216*(c3o1*(-Mx +My +Mz)+Conc_C*(c1o1+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
 
    }
 }
@@ -22829,96 +22829,96 @@ extern "C" __global__ void scaleFCEff27(real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
       *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
       *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
@@ -23807,96 +23807,96 @@ extern "C" __global__ void scaleFC27(real* DC,
    real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, 
          *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF;
 
-   feF    = &DF[dirE   *size_MatF];
-   fwF    = &DF[dirW   *size_MatF];
-   fnF    = &DF[dirN   *size_MatF];
-   fsF    = &DF[dirS   *size_MatF];
-   ftF    = &DF[dirT   *size_MatF];
-   fbF    = &DF[dirB   *size_MatF];
-   fneF   = &DF[dirNE  *size_MatF];
-   fswF   = &DF[dirSW  *size_MatF];
-   fseF   = &DF[dirSE  *size_MatF];
-   fnwF   = &DF[dirNW  *size_MatF];
-   fteF   = &DF[dirTE  *size_MatF];
-   fbwF   = &DF[dirBW  *size_MatF];
-   fbeF   = &DF[dirBE  *size_MatF];
-   ftwF   = &DF[dirTW  *size_MatF];
-   ftnF   = &DF[dirTN  *size_MatF];
-   fbsF   = &DF[dirBS  *size_MatF];
-   fbnF   = &DF[dirBN  *size_MatF];
-   ftsF   = &DF[dirTS  *size_MatF];
+   feF    = &DF[E   *size_MatF];
+   fwF    = &DF[W   *size_MatF];
+   fnF    = &DF[N   *size_MatF];
+   fsF    = &DF[S   *size_MatF];
+   ftF    = &DF[T   *size_MatF];
+   fbF    = &DF[B   *size_MatF];
+   fneF   = &DF[NE  *size_MatF];
+   fswF   = &DF[SW  *size_MatF];
+   fseF   = &DF[SE  *size_MatF];
+   fnwF   = &DF[NW  *size_MatF];
+   fteF   = &DF[TE  *size_MatF];
+   fbwF   = &DF[BW  *size_MatF];
+   fbeF   = &DF[BE  *size_MatF];
+   ftwF   = &DF[TW  *size_MatF];
+   ftnF   = &DF[TN  *size_MatF];
+   fbsF   = &DF[BS  *size_MatF];
+   fbnF   = &DF[BN  *size_MatF];
+   ftsF   = &DF[TS  *size_MatF];
    fzeroF = &DF[dirREST*size_MatF];
-   ftneF  = &DF[dirTNE *size_MatF];
-   ftswF  = &DF[dirTSW *size_MatF];
-   ftseF  = &DF[dirTSE *size_MatF];
-   ftnwF  = &DF[dirTNW *size_MatF];
-   fbneF  = &DF[dirBNE *size_MatF];
-   fbswF  = &DF[dirBSW *size_MatF];
-   fbseF  = &DF[dirBSE *size_MatF];
-   fbnwF  = &DF[dirBNW *size_MatF];
+   ftneF  = &DF[TNE *size_MatF];
+   ftswF  = &DF[TSW *size_MatF];
+   ftseF  = &DF[TSE *size_MatF];
+   ftnwF  = &DF[TNW *size_MatF];
+   fbneF  = &DF[BNE *size_MatF];
+   fbswF  = &DF[BSW *size_MatF];
+   fbseF  = &DF[BSE *size_MatF];
+   fbnwF  = &DF[BNW *size_MatF];
 
    real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC,
          *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC;
 
    if (isEvenTimestep==true)
    {
-      feC    = &DC[dirE   *size_MatC];
-      fwC    = &DC[dirW   *size_MatC];
-      fnC    = &DC[dirN   *size_MatC];
-      fsC    = &DC[dirS   *size_MatC];
-      ftC    = &DC[dirT   *size_MatC];
-      fbC    = &DC[dirB   *size_MatC];
-      fneC   = &DC[dirNE  *size_MatC];
-      fswC   = &DC[dirSW  *size_MatC];
-      fseC   = &DC[dirSE  *size_MatC];
-      fnwC   = &DC[dirNW  *size_MatC];
-      fteC   = &DC[dirTE  *size_MatC];
-      fbwC   = &DC[dirBW  *size_MatC];
-      fbeC   = &DC[dirBE  *size_MatC];
-      ftwC   = &DC[dirTW  *size_MatC];
-      ftnC   = &DC[dirTN  *size_MatC];
-      fbsC   = &DC[dirBS  *size_MatC];
-      fbnC   = &DC[dirBN  *size_MatC];
-      ftsC   = &DC[dirTS  *size_MatC];
+      feC    = &DC[E   *size_MatC];
+      fwC    = &DC[W   *size_MatC];
+      fnC    = &DC[N   *size_MatC];
+      fsC    = &DC[S   *size_MatC];
+      ftC    = &DC[T   *size_MatC];
+      fbC    = &DC[B   *size_MatC];
+      fneC   = &DC[NE  *size_MatC];
+      fswC   = &DC[SW  *size_MatC];
+      fseC   = &DC[SE  *size_MatC];
+      fnwC   = &DC[NW  *size_MatC];
+      fteC   = &DC[TE  *size_MatC];
+      fbwC   = &DC[BW  *size_MatC];
+      fbeC   = &DC[BE  *size_MatC];
+      ftwC   = &DC[TW  *size_MatC];
+      ftnC   = &DC[TN  *size_MatC];
+      fbsC   = &DC[BS  *size_MatC];
+      fbnC   = &DC[BN  *size_MatC];
+      ftsC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      ftneC  = &DC[dirTNE *size_MatC];
-      ftswC  = &DC[dirTSW *size_MatC];
-      ftseC  = &DC[dirTSE *size_MatC];
-      ftnwC  = &DC[dirTNW *size_MatC];
-      fbneC  = &DC[dirBNE *size_MatC];
-      fbswC  = &DC[dirBSW *size_MatC];
-      fbseC  = &DC[dirBSE *size_MatC];
-      fbnwC  = &DC[dirBNW *size_MatC];
+      ftneC  = &DC[TNE *size_MatC];
+      ftswC  = &DC[TSW *size_MatC];
+      ftseC  = &DC[TSE *size_MatC];
+      ftnwC  = &DC[TNW *size_MatC];
+      fbneC  = &DC[BNE *size_MatC];
+      fbswC  = &DC[BSW *size_MatC];
+      fbseC  = &DC[BSE *size_MatC];
+      fbnwC  = &DC[BNW *size_MatC];
    } 
    else
    {
-      fwC    = &DC[dirE   *size_MatC];
-      feC    = &DC[dirW   *size_MatC];
-      fsC    = &DC[dirN   *size_MatC];
-      fnC    = &DC[dirS   *size_MatC];
-      fbC    = &DC[dirT   *size_MatC];
-      ftC    = &DC[dirB   *size_MatC];
-      fswC   = &DC[dirNE  *size_MatC];
-      fneC   = &DC[dirSW  *size_MatC];
-      fnwC   = &DC[dirSE  *size_MatC];
-      fseC   = &DC[dirNW  *size_MatC];
-      fbwC   = &DC[dirTE  *size_MatC];
-      fteC   = &DC[dirBW  *size_MatC];
-      ftwC   = &DC[dirBE  *size_MatC];
-      fbeC   = &DC[dirTW  *size_MatC];
-      fbsC   = &DC[dirTN  *size_MatC];
-      ftnC   = &DC[dirBS  *size_MatC];
-      ftsC   = &DC[dirBN  *size_MatC];
-      fbnC   = &DC[dirTS  *size_MatC];
+      fwC    = &DC[E   *size_MatC];
+      feC    = &DC[W   *size_MatC];
+      fsC    = &DC[N   *size_MatC];
+      fnC    = &DC[S   *size_MatC];
+      fbC    = &DC[T   *size_MatC];
+      ftC    = &DC[B   *size_MatC];
+      fswC   = &DC[NE  *size_MatC];
+      fneC   = &DC[SW  *size_MatC];
+      fnwC   = &DC[SE  *size_MatC];
+      fseC   = &DC[NW  *size_MatC];
+      fbwC   = &DC[TE  *size_MatC];
+      fteC   = &DC[BW  *size_MatC];
+      ftwC   = &DC[BE  *size_MatC];
+      fbeC   = &DC[TW  *size_MatC];
+      fbsC   = &DC[TN  *size_MatC];
+      ftnC   = &DC[BS  *size_MatC];
+      ftsC   = &DC[BN  *size_MatC];
+      fbnC   = &DC[TS  *size_MatC];
       fzeroC = &DC[dirREST*size_MatC];
-      fbswC  = &DC[dirTNE *size_MatC];
-      fbneC  = &DC[dirTSW *size_MatC];
-      fbnwC  = &DC[dirTSE *size_MatC];
-      fbseC  = &DC[dirTNW *size_MatC];
-      ftswC  = &DC[dirBNE *size_MatC];
-      ftneC  = &DC[dirBSW *size_MatC];
-      ftnwC  = &DC[dirBSE *size_MatC];
-      ftseC  = &DC[dirBNW *size_MatC];
+      fbswC  = &DC[TNE *size_MatC];
+      fbneC  = &DC[TSW *size_MatC];
+      fbnwC  = &DC[TSE *size_MatC];
+      fbseC  = &DC[TNW *size_MatC];
+      ftswC  = &DC[BNE *size_MatC];
+      ftneC  = &DC[BSW *size_MatC];
+      ftnwC  = &DC[BSE *size_MatC];
+      ftseC  = &DC[BNW *size_MatC];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  ix = threadIdx.x;  // Globaler x-Index 
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ScaleFC_F3_27.cu b/src/gpu/VirtualFluids_GPU/GPU/ScaleFC_F3_27.cu
index 6e2c7e9b5..ec2e14074 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ScaleFC_F3_27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ScaleFC_F3_27.cu
@@ -43,33 +43,33 @@ extern "C" __global__ void scaleFC_comp_D3Q27F3_2018(real* DC,
 	   *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource;
 
 
-   fP00source = &DF[dirE   *size_MatF];
-   fM00source = &DF[dirW   *size_MatF];
-   f0P0source = &DF[dirN   *size_MatF];
-   f0M0source = &DF[dirS   *size_MatF];
-   f00Psource = &DF[dirT   *size_MatF];
-   f00Msource = &DF[dirB   *size_MatF];
-   fPP0source = &DF[dirNE  *size_MatF];
-   fMM0source = &DF[dirSW  *size_MatF];
-   fPM0source = &DF[dirSE  *size_MatF];
-   fMP0source = &DF[dirNW  *size_MatF];
-   fP0Psource = &DF[dirTE  *size_MatF];
-   fM0Msource = &DF[dirBW  *size_MatF];
-   fP0Msource = &DF[dirBE  *size_MatF];
-   fM0Psource = &DF[dirTW  *size_MatF];
-   f0PPsource = &DF[dirTN  *size_MatF];
-   f0MMsource = &DF[dirBS  *size_MatF];
-   f0PMsource = &DF[dirBN  *size_MatF];
-   f0MPsource = &DF[dirTS  *size_MatF];
+   fP00source = &DF[E   *size_MatF];
+   fM00source = &DF[W   *size_MatF];
+   f0P0source = &DF[N   *size_MatF];
+   f0M0source = &DF[S   *size_MatF];
+   f00Psource = &DF[T   *size_MatF];
+   f00Msource = &DF[B   *size_MatF];
+   fPP0source = &DF[NE  *size_MatF];
+   fMM0source = &DF[SW  *size_MatF];
+   fPM0source = &DF[SE  *size_MatF];
+   fMP0source = &DF[NW  *size_MatF];
+   fP0Psource = &DF[TE  *size_MatF];
+   fM0Msource = &DF[BW  *size_MatF];
+   fP0Msource = &DF[BE  *size_MatF];
+   fM0Psource = &DF[TW  *size_MatF];
+   f0PPsource = &DF[TN  *size_MatF];
+   f0MMsource = &DF[BS  *size_MatF];
+   f0PMsource = &DF[BN  *size_MatF];
+   f0MPsource = &DF[TS  *size_MatF];
    f000source = &DF[dirREST*size_MatF];
-   fMMMsource = &DF[dirBSW *size_MatF];
-   fMMPsource = &DF[dirTSW *size_MatF];
-   fMPPsource = &DF[dirTNW *size_MatF];
-   fMPMsource = &DF[dirBNW *size_MatF];
-   fPPMsource = &DF[dirBNE *size_MatF];
-   fPPPsource = &DF[dirTNE *size_MatF];
-   fPMPsource = &DF[dirTSE *size_MatF];
-   fPMMsource = &DF[dirBSE *size_MatF];
+   fMMMsource = &DF[BSW *size_MatF];
+   fMMPsource = &DF[TSW *size_MatF];
+   fMPPsource = &DF[TNW *size_MatF];
+   fMPMsource = &DF[BNW *size_MatF];
+   fPPMsource = &DF[BNE *size_MatF];
+   fPPPsource = &DF[TNE *size_MatF];
+   fPMPsource = &DF[TSE *size_MatF];
+   fPMMsource = &DF[BSE *size_MatF];
 
    real
 	   *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest,
@@ -78,83 +78,83 @@ extern "C" __global__ void scaleFC_comp_D3Q27F3_2018(real* DC,
 
    if (isEvenTimestep==true)
    {
-	   fP00dest = &DC[dirE   *size_MatC];
-	   fM00dest = &DC[dirW   *size_MatC];
-	   f0P0dest = &DC[dirN   *size_MatC];
-	   f0M0dest = &DC[dirS   *size_MatC];
-	   f00Pdest = &DC[dirT   *size_MatC];
-	   f00Mdest = &DC[dirB   *size_MatC];
-	   fPP0dest = &DC[dirNE  *size_MatC];
-	   fMM0dest = &DC[dirSW  *size_MatC];
-	   fPM0dest = &DC[dirSE  *size_MatC];
-	   fMP0dest = &DC[dirNW  *size_MatC];
-	   fP0Pdest = &DC[dirTE  *size_MatC];
-	   fM0Mdest = &DC[dirBW  *size_MatC];
-	   fP0Mdest = &DC[dirBE  *size_MatC];
-	   fM0Pdest = &DC[dirTW  *size_MatC];
-	   f0PPdest = &DC[dirTN  *size_MatC];
-	   f0MMdest = &DC[dirBS  *size_MatC];
-	   f0PMdest = &DC[dirBN  *size_MatC];
-	   f0MPdest = &DC[dirTS  *size_MatC];
+	   fP00dest = &DC[E   *size_MatC];
+	   fM00dest = &DC[W   *size_MatC];
+	   f0P0dest = &DC[N   *size_MatC];
+	   f0M0dest = &DC[S   *size_MatC];
+	   f00Pdest = &DC[T   *size_MatC];
+	   f00Mdest = &DC[B   *size_MatC];
+	   fPP0dest = &DC[NE  *size_MatC];
+	   fMM0dest = &DC[SW  *size_MatC];
+	   fPM0dest = &DC[SE  *size_MatC];
+	   fMP0dest = &DC[NW  *size_MatC];
+	   fP0Pdest = &DC[TE  *size_MatC];
+	   fM0Mdest = &DC[BW  *size_MatC];
+	   fP0Mdest = &DC[BE  *size_MatC];
+	   fM0Pdest = &DC[TW  *size_MatC];
+	   f0PPdest = &DC[TN  *size_MatC];
+	   f0MMdest = &DC[BS  *size_MatC];
+	   f0PMdest = &DC[BN  *size_MatC];
+	   f0MPdest = &DC[TS  *size_MatC];
 	   f000dest = &DC[dirREST*size_MatC];
-	   fMMMdest = &DC[dirBSW *size_MatC];
-	   fMMPdest = &DC[dirTSW *size_MatC];
-	   fMPPdest = &DC[dirTNW *size_MatC];
-	   fMPMdest = &DC[dirBNW *size_MatC];
-	   fPPMdest = &DC[dirBNE *size_MatC];
-	   fPPPdest = &DC[dirTNE *size_MatC];
-	   fPMPdest = &DC[dirTSE *size_MatC];
-	   fPMMdest = &DC[dirBSE *size_MatC];
+	   fMMMdest = &DC[BSW *size_MatC];
+	   fMMPdest = &DC[TSW *size_MatC];
+	   fMPPdest = &DC[TNW *size_MatC];
+	   fMPMdest = &DC[BNW *size_MatC];
+	   fPPMdest = &DC[BNE *size_MatC];
+	   fPPPdest = &DC[TNE *size_MatC];
+	   fPMPdest = &DC[TSE *size_MatC];
+	   fPMMdest = &DC[BSE *size_MatC];
    } 
    else
    {
-	   fP00dest = &DC[dirW   *size_MatC];
-	   fM00dest = &DC[dirE   *size_MatC];
-	   f0P0dest = &DC[dirS   *size_MatC];
-	   f0M0dest = &DC[dirN   *size_MatC];
-	   f00Pdest = &DC[dirB   *size_MatC];
-	   f00Mdest = &DC[dirT   *size_MatC];
-	   fPP0dest = &DC[dirSW  *size_MatC];
-	   fMM0dest = &DC[dirNE  *size_MatC];
-	   fPM0dest = &DC[dirNW  *size_MatC];
-	   fMP0dest = &DC[dirSE  *size_MatC];
-	   fP0Pdest = &DC[dirBW  *size_MatC];
-	   fM0Mdest = &DC[dirTE  *size_MatC];
-	   fP0Mdest = &DC[dirTW  *size_MatC];
-	   fM0Pdest = &DC[dirBE  *size_MatC];
-	   f0PPdest = &DC[dirBS  *size_MatC];
-	   f0MMdest = &DC[dirTN  *size_MatC];
-	   f0PMdest = &DC[dirTS  *size_MatC];
-	   f0MPdest = &DC[dirBN  *size_MatC];
+	   fP00dest = &DC[W   *size_MatC];
+	   fM00dest = &DC[E   *size_MatC];
+	   f0P0dest = &DC[S   *size_MatC];
+	   f0M0dest = &DC[N   *size_MatC];
+	   f00Pdest = &DC[B   *size_MatC];
+	   f00Mdest = &DC[T   *size_MatC];
+	   fPP0dest = &DC[SW  *size_MatC];
+	   fMM0dest = &DC[NE  *size_MatC];
+	   fPM0dest = &DC[NW  *size_MatC];
+	   fMP0dest = &DC[SE  *size_MatC];
+	   fP0Pdest = &DC[BW  *size_MatC];
+	   fM0Mdest = &DC[TE  *size_MatC];
+	   fP0Mdest = &DC[TW  *size_MatC];
+	   fM0Pdest = &DC[BE  *size_MatC];
+	   f0PPdest = &DC[BS  *size_MatC];
+	   f0MMdest = &DC[TN  *size_MatC];
+	   f0PMdest = &DC[TS  *size_MatC];
+	   f0MPdest = &DC[BN  *size_MatC];
 	   f000dest = &DC[dirREST*size_MatC];
-	   fMMMdest = &DC[dirTNE *size_MatC];
-	   fMMPdest = &DC[dirBNE *size_MatC];
-	   fMPPdest = &DC[dirBSE *size_MatC];
-	   fMPMdest = &DC[dirTSE *size_MatC];
-	   fPPMdest = &DC[dirTSW *size_MatC];
-	   fPPPdest = &DC[dirBSW *size_MatC];
-	   fPMPdest = &DC[dirBNW *size_MatC];
-	   fPMMdest = &DC[dirTNW *size_MatC];
+	   fMMMdest = &DC[TNE *size_MatC];
+	   fMMPdest = &DC[BNE *size_MatC];
+	   fMPPdest = &DC[BSE *size_MatC];
+	   fMPMdest = &DC[TSE *size_MatC];
+	   fPPMdest = &DC[TSW *size_MatC];
+	   fPPPdest = &DC[BSW *size_MatC];
+	   fPMPdest = &DC[BNW *size_MatC];
+	   fPMMdest = &DC[TNW *size_MatC];
    }
 
    Distributions6 G;
    if (isEvenTimestep == true)
    {
-	   G.g[dirE] = &G6[dirE   *size_MatC];
-	   G.g[dirW] = &G6[dirW   *size_MatC];
-	   G.g[dirN] = &G6[dirN   *size_MatC];
-	   G.g[dirS] = &G6[dirS   *size_MatC];
-	   G.g[dirT] = &G6[dirT   *size_MatC];
-	   G.g[dirB] = &G6[dirB   *size_MatC];
+	   G.g[E] = &G6[E   *size_MatC];
+	   G.g[W] = &G6[W   *size_MatC];
+	   G.g[N] = &G6[N   *size_MatC];
+	   G.g[S] = &G6[S   *size_MatC];
+	   G.g[T] = &G6[T   *size_MatC];
+	   G.g[B] = &G6[B   *size_MatC];
    }
    else
    {
-	   G.g[dirW] = &G6[dirE   *size_MatC];
-	   G.g[dirE] = &G6[dirW   *size_MatC];
-	   G.g[dirS] = &G6[dirN   *size_MatC];
-	   G.g[dirN] = &G6[dirS   *size_MatC];
-	   G.g[dirB] = &G6[dirT   *size_MatC];
-	   G.g[dirT] = &G6[dirB   *size_MatC];
+	   G.g[W] = &G6[E   *size_MatC];
+	   G.g[E] = &G6[W   *size_MatC];
+	   G.g[S] = &G6[N   *size_MatC];
+	   G.g[N] = &G6[S   *size_MatC];
+	   G.g[B] = &G6[T   *size_MatC];
+	   G.g[T] = &G6[B   *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -1167,12 +1167,12 @@ extern "C" __global__ void scaleFC_comp_D3Q27F3_2018(real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;                                                                 
 	  fM00dest[kM00] = mfabb;                                                               
@@ -1290,33 +1290,33 @@ extern "C" __global__ void scaleFC_comp_D3Q27F3( real* DC,
 	   *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource;
 
 
-   fP00source = &DF[dirE   *size_MatF];
-   fM00source = &DF[dirW   *size_MatF];
-   f0P0source = &DF[dirN   *size_MatF];
-   f0M0source = &DF[dirS   *size_MatF];
-   f00Psource = &DF[dirT   *size_MatF];
-   f00Msource = &DF[dirB   *size_MatF];
-   fPP0source = &DF[dirNE  *size_MatF];
-   fMM0source = &DF[dirSW  *size_MatF];
-   fPM0source = &DF[dirSE  *size_MatF];
-   fMP0source = &DF[dirNW  *size_MatF];
-   fP0Psource = &DF[dirTE  *size_MatF];
-   fM0Msource = &DF[dirBW  *size_MatF];
-   fP0Msource = &DF[dirBE  *size_MatF];
-   fM0Psource = &DF[dirTW  *size_MatF];
-   f0PPsource = &DF[dirTN  *size_MatF];
-   f0MMsource = &DF[dirBS  *size_MatF];
-   f0PMsource = &DF[dirBN  *size_MatF];
-   f0MPsource = &DF[dirTS  *size_MatF];
+   fP00source = &DF[E   *size_MatF];
+   fM00source = &DF[W   *size_MatF];
+   f0P0source = &DF[N   *size_MatF];
+   f0M0source = &DF[S   *size_MatF];
+   f00Psource = &DF[T   *size_MatF];
+   f00Msource = &DF[B   *size_MatF];
+   fPP0source = &DF[NE  *size_MatF];
+   fMM0source = &DF[SW  *size_MatF];
+   fPM0source = &DF[SE  *size_MatF];
+   fMP0source = &DF[NW  *size_MatF];
+   fP0Psource = &DF[TE  *size_MatF];
+   fM0Msource = &DF[BW  *size_MatF];
+   fP0Msource = &DF[BE  *size_MatF];
+   fM0Psource = &DF[TW  *size_MatF];
+   f0PPsource = &DF[TN  *size_MatF];
+   f0MMsource = &DF[BS  *size_MatF];
+   f0PMsource = &DF[BN  *size_MatF];
+   f0MPsource = &DF[TS  *size_MatF];
    f000source = &DF[dirREST*size_MatF];
-   fMMMsource = &DF[dirBSW *size_MatF];
-   fMMPsource = &DF[dirTSW *size_MatF];
-   fMPPsource = &DF[dirTNW *size_MatF];
-   fMPMsource = &DF[dirBNW *size_MatF];
-   fPPMsource = &DF[dirBNE *size_MatF];
-   fPPPsource = &DF[dirTNE *size_MatF];
-   fPMPsource = &DF[dirTSE *size_MatF];
-   fPMMsource = &DF[dirBSE *size_MatF];
+   fMMMsource = &DF[BSW *size_MatF];
+   fMMPsource = &DF[TSW *size_MatF];
+   fMPPsource = &DF[TNW *size_MatF];
+   fMPMsource = &DF[BNW *size_MatF];
+   fPPMsource = &DF[BNE *size_MatF];
+   fPPPsource = &DF[TNE *size_MatF];
+   fPMPsource = &DF[TSE *size_MatF];
+   fPMMsource = &DF[BSE *size_MatF];
 
    real
 	   *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest,
@@ -1325,83 +1325,83 @@ extern "C" __global__ void scaleFC_comp_D3Q27F3( real* DC,
 
    if (isEvenTimestep==true)
    {
-	   fP00dest = &DC[dirE   *size_MatC];
-	   fM00dest = &DC[dirW   *size_MatC];
-	   f0P0dest = &DC[dirN   *size_MatC];
-	   f0M0dest = &DC[dirS   *size_MatC];
-	   f00Pdest = &DC[dirT   *size_MatC];
-	   f00Mdest = &DC[dirB   *size_MatC];
-	   fPP0dest = &DC[dirNE  *size_MatC];
-	   fMM0dest = &DC[dirSW  *size_MatC];
-	   fPM0dest = &DC[dirSE  *size_MatC];
-	   fMP0dest = &DC[dirNW  *size_MatC];
-	   fP0Pdest = &DC[dirTE  *size_MatC];
-	   fM0Mdest = &DC[dirBW  *size_MatC];
-	   fP0Mdest = &DC[dirBE  *size_MatC];
-	   fM0Pdest = &DC[dirTW  *size_MatC];
-	   f0PPdest = &DC[dirTN  *size_MatC];
-	   f0MMdest = &DC[dirBS  *size_MatC];
-	   f0PMdest = &DC[dirBN  *size_MatC];
-	   f0MPdest = &DC[dirTS  *size_MatC];
+	   fP00dest = &DC[E   *size_MatC];
+	   fM00dest = &DC[W   *size_MatC];
+	   f0P0dest = &DC[N   *size_MatC];
+	   f0M0dest = &DC[S   *size_MatC];
+	   f00Pdest = &DC[T   *size_MatC];
+	   f00Mdest = &DC[B   *size_MatC];
+	   fPP0dest = &DC[NE  *size_MatC];
+	   fMM0dest = &DC[SW  *size_MatC];
+	   fPM0dest = &DC[SE  *size_MatC];
+	   fMP0dest = &DC[NW  *size_MatC];
+	   fP0Pdest = &DC[TE  *size_MatC];
+	   fM0Mdest = &DC[BW  *size_MatC];
+	   fP0Mdest = &DC[BE  *size_MatC];
+	   fM0Pdest = &DC[TW  *size_MatC];
+	   f0PPdest = &DC[TN  *size_MatC];
+	   f0MMdest = &DC[BS  *size_MatC];
+	   f0PMdest = &DC[BN  *size_MatC];
+	   f0MPdest = &DC[TS  *size_MatC];
 	   f000dest = &DC[dirREST*size_MatC];
-	   fMMMdest = &DC[dirBSW *size_MatC];
-	   fMMPdest = &DC[dirTSW *size_MatC];
-	   fMPPdest = &DC[dirTNW *size_MatC];
-	   fMPMdest = &DC[dirBNW *size_MatC];
-	   fPPMdest = &DC[dirBNE *size_MatC];
-	   fPPPdest = &DC[dirTNE *size_MatC];
-	   fPMPdest = &DC[dirTSE *size_MatC];
-	   fPMMdest = &DC[dirBSE *size_MatC];
+	   fMMMdest = &DC[BSW *size_MatC];
+	   fMMPdest = &DC[TSW *size_MatC];
+	   fMPPdest = &DC[TNW *size_MatC];
+	   fMPMdest = &DC[BNW *size_MatC];
+	   fPPMdest = &DC[BNE *size_MatC];
+	   fPPPdest = &DC[TNE *size_MatC];
+	   fPMPdest = &DC[TSE *size_MatC];
+	   fPMMdest = &DC[BSE *size_MatC];
    } 
    else
    {
-	   fP00dest = &DC[dirW   *size_MatC];
-	   fM00dest = &DC[dirE   *size_MatC];
-	   f0P0dest = &DC[dirS   *size_MatC];
-	   f0M0dest = &DC[dirN   *size_MatC];
-	   f00Pdest = &DC[dirB   *size_MatC];
-	   f00Mdest = &DC[dirT   *size_MatC];
-	   fPP0dest = &DC[dirSW  *size_MatC];
-	   fMM0dest = &DC[dirNE  *size_MatC];
-	   fPM0dest = &DC[dirNW  *size_MatC];
-	   fMP0dest = &DC[dirSE  *size_MatC];
-	   fP0Pdest = &DC[dirBW  *size_MatC];
-	   fM0Mdest = &DC[dirTE  *size_MatC];
-	   fP0Mdest = &DC[dirTW  *size_MatC];
-	   fM0Pdest = &DC[dirBE  *size_MatC];
-	   f0PPdest = &DC[dirBS  *size_MatC];
-	   f0MMdest = &DC[dirTN  *size_MatC];
-	   f0PMdest = &DC[dirTS  *size_MatC];
-	   f0MPdest = &DC[dirBN  *size_MatC];
+	   fP00dest = &DC[W   *size_MatC];
+	   fM00dest = &DC[E   *size_MatC];
+	   f0P0dest = &DC[S   *size_MatC];
+	   f0M0dest = &DC[N   *size_MatC];
+	   f00Pdest = &DC[B   *size_MatC];
+	   f00Mdest = &DC[T   *size_MatC];
+	   fPP0dest = &DC[SW  *size_MatC];
+	   fMM0dest = &DC[NE  *size_MatC];
+	   fPM0dest = &DC[NW  *size_MatC];
+	   fMP0dest = &DC[SE  *size_MatC];
+	   fP0Pdest = &DC[BW  *size_MatC];
+	   fM0Mdest = &DC[TE  *size_MatC];
+	   fP0Mdest = &DC[TW  *size_MatC];
+	   fM0Pdest = &DC[BE  *size_MatC];
+	   f0PPdest = &DC[BS  *size_MatC];
+	   f0MMdest = &DC[TN  *size_MatC];
+	   f0PMdest = &DC[TS  *size_MatC];
+	   f0MPdest = &DC[BN  *size_MatC];
 	   f000dest = &DC[dirREST*size_MatC];
-	   fMMMdest = &DC[dirTNE *size_MatC];
-	   fMMPdest = &DC[dirBNE *size_MatC];
-	   fMPPdest = &DC[dirBSE *size_MatC];
-	   fMPMdest = &DC[dirTSE *size_MatC];
-	   fPPMdest = &DC[dirTSW *size_MatC];
-	   fPPPdest = &DC[dirBSW *size_MatC];
-	   fPMPdest = &DC[dirBNW *size_MatC];
-	   fPMMdest = &DC[dirTNW *size_MatC];
+	   fMMMdest = &DC[TNE *size_MatC];
+	   fMMPdest = &DC[BNE *size_MatC];
+	   fMPPdest = &DC[BSE *size_MatC];
+	   fMPMdest = &DC[TSE *size_MatC];
+	   fPPMdest = &DC[TSW *size_MatC];
+	   fPPPdest = &DC[BSW *size_MatC];
+	   fPMPdest = &DC[BNW *size_MatC];
+	   fPMMdest = &DC[TNW *size_MatC];
    }
 
    Distributions6 G;
    if (isEvenTimestep == true)
    {
-	   G.g[dirE] = &G6[dirE   *size_MatC];
-	   G.g[dirW] = &G6[dirW   *size_MatC];
-	   G.g[dirN] = &G6[dirN   *size_MatC];
-	   G.g[dirS] = &G6[dirS   *size_MatC];
-	   G.g[dirT] = &G6[dirT   *size_MatC];
-	   G.g[dirB] = &G6[dirB   *size_MatC];
+	   G.g[E] = &G6[E   *size_MatC];
+	   G.g[W] = &G6[W   *size_MatC];
+	   G.g[N] = &G6[N   *size_MatC];
+	   G.g[S] = &G6[S   *size_MatC];
+	   G.g[T] = &G6[T   *size_MatC];
+	   G.g[B] = &G6[B   *size_MatC];
    }
    else
    {
-	   G.g[dirW] = &G6[dirE   *size_MatC];
-	   G.g[dirE] = &G6[dirW   *size_MatC];
-	   G.g[dirS] = &G6[dirN   *size_MatC];
-	   G.g[dirN] = &G6[dirS   *size_MatC];
-	   G.g[dirB] = &G6[dirT   *size_MatC];
-	   G.g[dirT] = &G6[dirB   *size_MatC];
+	   G.g[W] = &G6[E   *size_MatC];
+	   G.g[E] = &G6[W   *size_MatC];
+	   G.g[S] = &G6[N   *size_MatC];
+	   G.g[N] = &G6[S   *size_MatC];
+	   G.g[B] = &G6[T   *size_MatC];
+	   G.g[T] = &G6[B   *size_MatC];
    }
 
    ////////////////////////////////////////////////////////////////////////////////
@@ -2408,12 +2408,12 @@ extern "C" __global__ void scaleFC_comp_D3Q27F3( real* DC,
 	  ////////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////////
-	  (G.g[dirE])[k000] = mgcbb;
-	  (G.g[dirW])[kM00] = mgabb;
-	  (G.g[dirN])[k000] = mgbcb;
-	  (G.g[dirS])[k0M0] = mgbab;
-	  (G.g[dirT])[k000] = mgbbc;
-	  (G.g[dirB])[k00M] = mgbba;
+	  (G.g[E])[k000] = mgcbb;
+	  (G.g[W])[kM00] = mgabb;
+	  (G.g[N])[k000] = mgbcb;
+	  (G.g[S])[k0M0] = mgbab;
+	  (G.g[T])[k000] = mgbbc;
+	  (G.g[B])[k00M] = mgbba;
 	  ////////////////////////////////////////////////////////////////////////////////////
 	  fP00dest[k000] = mfcbb;                                                                 
 	  fM00dest[kM00] = mfabb;                                                               
diff --git a/src/gpu/VirtualFluids_GPU/GPU/SchlafferBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/SchlafferBCs27.cu
index c6c3255ab..9ff4f8ec1 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/SchlafferBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/SchlafferBCs27.cu
@@ -70,94 +70,94 @@ extern "C" __global__ void PressSchlaff27(real* rhoBC,
       Distributions27 D;
       if (isEvenTimestep==true)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       }
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       real        f1_E,f1_W,f1_N,f1_S,f1_T,f1_B,f1_NE,f1_SW,f1_SE,f1_NW,f1_TE,f1_BW,f1_BE,f1_TW,f1_TN,f1_BS,f1_BN,f1_TS,f1_ZERO,f1_TNE,f1_TSW,f1_TSE,f1_TNW,f1_BNE,f1_BSW,f1_BSE,f1_BNW;
 
-      f1_E    = (D.f[dirE   ])[ke   ];
-      f1_W    = (D.f[dirW   ])[kw   ];
-      f1_N    = (D.f[dirN   ])[kn   ];
-      f1_S    = (D.f[dirS   ])[ks   ];
-      f1_T    = (D.f[dirT   ])[kt   ];
-      f1_B    = (D.f[dirB   ])[kb   ];
-      f1_NE   = (D.f[dirNE  ])[kne  ];
-      f1_SW   = (D.f[dirSW  ])[ksw  ];
-      f1_SE   = (D.f[dirSE  ])[kse  ];
-      f1_NW   = (D.f[dirNW  ])[knw  ];
-      f1_TE   = (D.f[dirTE  ])[kte  ];
-      f1_BW   = (D.f[dirBW  ])[kbw  ];
-      f1_BE   = (D.f[dirBE  ])[kbe  ];
-      f1_TW   = (D.f[dirTW  ])[ktw  ];
-      f1_TN   = (D.f[dirTN  ])[ktn  ];
-      f1_BS   = (D.f[dirBS  ])[kbs  ];
-      f1_BN   = (D.f[dirBN  ])[kbn  ];
-      f1_TS   = (D.f[dirTS  ])[kts  ];
+      f1_E    = (D.f[E   ])[ke   ];
+      f1_W    = (D.f[W   ])[kw   ];
+      f1_N    = (D.f[N   ])[kn   ];
+      f1_S    = (D.f[S   ])[ks   ];
+      f1_T    = (D.f[T   ])[kt   ];
+      f1_B    = (D.f[B   ])[kb   ];
+      f1_NE   = (D.f[NE  ])[kne  ];
+      f1_SW   = (D.f[SW  ])[ksw  ];
+      f1_SE   = (D.f[SE  ])[kse  ];
+      f1_NW   = (D.f[NW  ])[knw  ];
+      f1_TE   = (D.f[TE  ])[kte  ];
+      f1_BW   = (D.f[BW  ])[kbw  ];
+      f1_BE   = (D.f[BE  ])[kbe  ];
+      f1_TW   = (D.f[TW  ])[ktw  ];
+      f1_TN   = (D.f[TN  ])[ktn  ];
+      f1_BS   = (D.f[BS  ])[kbs  ];
+      f1_BN   = (D.f[BN  ])[kbn  ];
+      f1_TS   = (D.f[TS  ])[kts  ];
       f1_ZERO = (D.f[dirREST])[kzero];
-      f1_TNE  = (D.f[dirTNE ])[ktne ];
-      f1_TSW  = (D.f[dirTSW ])[ktsw ];
-      f1_TSE  = (D.f[dirTSE ])[ktse ];
-      f1_TNW  = (D.f[dirTNW ])[ktnw ];
-      f1_BNE  = (D.f[dirBNE ])[kbne ];
-      f1_BSW  = (D.f[dirBSW ])[kbsw ];
-      f1_BSE  = (D.f[dirBSE ])[kbse ];
-      f1_BNW  = (D.f[dirBNW ])[kbnw ];
+      f1_TNE  = (D.f[TNE ])[ktne ];
+      f1_TSW  = (D.f[TSW ])[ktsw ];
+      f1_TSE  = (D.f[TSE ])[ktse ];
+      f1_TNW  = (D.f[TNW ])[ktnw ];
+      f1_BNE  = (D.f[BNE ])[kbne ];
+      f1_BSW  = (D.f[BSW ])[kbsw ];
+      f1_BSE  = (D.f[BSE ])[kbse ];
+      f1_BNW  = (D.f[BNW ])[kbnw ];
       //////////////////////////////////////////////////////////////////////////
       real cs       = c1o1/sqrt(c3o1);
       real csp1     = cs + c1o1;
@@ -221,15 +221,15 @@ extern "C" __global__ void PressSchlaff27(real* rhoBC,
 
       deltaVz0[k] = tempDeltaV;
 
-      (D.f[dirB   ])[kb   ] = f1_B   ;
-      (D.f[dirBW  ])[kbw  ] = f1_BW  ;
-      (D.f[dirBE  ])[kbe  ] = f1_BE  ;
-      (D.f[dirBS  ])[kbs  ] = f1_BS  ;
-      (D.f[dirBN  ])[kbn  ] = f1_BN  ;
-      (D.f[dirBNE ])[kbne ] = f1_BNE ;
-      (D.f[dirBSW ])[kbsw ] = f1_BSW ;
-      (D.f[dirBSE ])[kbse ] = f1_BSE ;
-      (D.f[dirBNW ])[kbnw ] = f1_BNW ;
+      (D.f[B   ])[kb   ] = f1_B   ;
+      (D.f[BW  ])[kbw  ] = f1_BW  ;
+      (D.f[BE  ])[kbe  ] = f1_BE  ;
+      (D.f[BS  ])[kbs  ] = f1_BS  ;
+      (D.f[BN  ])[kbn  ] = f1_BN  ;
+      (D.f[BNE ])[kbne ] = f1_BNE ;
+      (D.f[BSW ])[kbsw ] = f1_BSW ;
+      (D.f[BSE ])[kbse ] = f1_BSE ;
+      (D.f[BNW ])[kbnw ] = f1_BNW ;
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -334,122 +334,122 @@ extern "C" __global__ void VelSchlaff27(  int t,
       Distributions27 D;
       if (isEvenTimestep==true)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       }
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       real        f1_E,f1_W,f1_N,f1_S,f1_T,f1_B,f1_NE,f1_SW,f1_SE,f1_NW,f1_TE,f1_BW,f1_BE,f1_TW,f1_TN,f1_BS,f1_BN,f1_TS,f1_ZERO,
                      f1_TNE,f1_TSW,f1_TSE,f1_TNW,f1_BNE,f1_BSW,f1_BSE,f1_BNW;
 
-      f1_E    = (D.f[dirE   ])[ke   ];
-      f1_W    = (D.f[dirW   ])[kw   ];
-      f1_N    = (D.f[dirN   ])[kn   ];
-      f1_S    = (D.f[dirS   ])[ks   ];
-      f1_T    = (D.f[dirT   ])[kt   ];
-      f1_B    = (D.f[dirB   ])[kb   ];
-      f1_NE   = (D.f[dirNE  ])[kne  ];
-      f1_SW   = (D.f[dirSW  ])[ksw  ];
-      f1_SE   = (D.f[dirSE  ])[kse  ];
-      f1_NW   = (D.f[dirNW  ])[knw  ];
-      f1_TE   = (D.f[dirTE  ])[kte  ];
-      f1_BW   = (D.f[dirBW  ])[kbw  ];
-      f1_BE   = (D.f[dirBE  ])[kbe  ];
-      f1_TW   = (D.f[dirTW  ])[ktw  ];
-      f1_TN   = (D.f[dirTN  ])[ktn  ];
-      f1_BS   = (D.f[dirBS  ])[kbs  ];
-      f1_BN   = (D.f[dirBN  ])[kbn  ];
-      f1_TS   = (D.f[dirTS  ])[kts  ];
+      f1_E    = (D.f[E   ])[ke   ];
+      f1_W    = (D.f[W   ])[kw   ];
+      f1_N    = (D.f[N   ])[kn   ];
+      f1_S    = (D.f[S   ])[ks   ];
+      f1_T    = (D.f[T   ])[kt   ];
+      f1_B    = (D.f[B   ])[kb   ];
+      f1_NE   = (D.f[NE  ])[kne  ];
+      f1_SW   = (D.f[SW  ])[ksw  ];
+      f1_SE   = (D.f[SE  ])[kse  ];
+      f1_NW   = (D.f[NW  ])[knw  ];
+      f1_TE   = (D.f[TE  ])[kte  ];
+      f1_BW   = (D.f[BW  ])[kbw  ];
+      f1_BE   = (D.f[BE  ])[kbe  ];
+      f1_TW   = (D.f[TW  ])[ktw  ];
+      f1_TN   = (D.f[TN  ])[ktn  ];
+      f1_BS   = (D.f[BS  ])[kbs  ];
+      f1_BN   = (D.f[BN  ])[kbn  ];
+      f1_TS   = (D.f[TS  ])[kts  ];
       f1_ZERO = (D.f[dirREST])[kzero];
-      f1_TNE  = (D.f[dirTNE ])[ktne ];
-      f1_TSW  = (D.f[dirTSW ])[ktsw ];
-      f1_TSE  = (D.f[dirTSE ])[ktse ];
-      f1_TNW  = (D.f[dirTNW ])[ktnw ];
-      f1_BNE  = (D.f[dirBNE ])[kbne ];
-      f1_BSW  = (D.f[dirBSW ])[kbsw ];
-      f1_BSE  = (D.f[dirBSE ])[kbse ];
-      f1_BNW  = (D.f[dirBNW ])[kbnw ];
-      //f1_W    = (D.f[dirE   ])[ke   ];
-      //f1_E    = (D.f[dirW   ])[kw   ];
-      //f1_S    = (D.f[dirN   ])[kn   ];
-      //f1_N    = (D.f[dirS   ])[ks   ];
-      //f1_B    = (D.f[dirT   ])[kt   ];
-      //f1_T    = (D.f[dirB   ])[kb   ];
-      //f1_SW   = (D.f[dirNE  ])[kne  ];
-      //f1_NE   = (D.f[dirSW  ])[ksw  ];
-      //f1_NW   = (D.f[dirSE  ])[kse  ];
-      //f1_SE   = (D.f[dirNW  ])[knw  ];
-      //f1_BW   = (D.f[dirTE  ])[kte  ];
-      //f1_TE   = (D.f[dirBW  ])[kbw  ];
-      //f1_TW   = (D.f[dirBE  ])[kbe  ];
-      //f1_BE   = (D.f[dirTW  ])[ktw  ];
-      //f1_BS   = (D.f[dirTN  ])[ktn  ];
-      //f1_TN   = (D.f[dirBS  ])[kbs  ];
-      //f1_TS   = (D.f[dirBN  ])[kbn  ];
-      //f1_BN   = (D.f[dirTS  ])[kts  ];
+      f1_TNE  = (D.f[TNE ])[ktne ];
+      f1_TSW  = (D.f[TSW ])[ktsw ];
+      f1_TSE  = (D.f[TSE ])[ktse ];
+      f1_TNW  = (D.f[TNW ])[ktnw ];
+      f1_BNE  = (D.f[BNE ])[kbne ];
+      f1_BSW  = (D.f[BSW ])[kbsw ];
+      f1_BSE  = (D.f[BSE ])[kbse ];
+      f1_BNW  = (D.f[BNW ])[kbnw ];
+      //f1_W    = (D.f[E   ])[ke   ];
+      //f1_E    = (D.f[W   ])[kw   ];
+      //f1_S    = (D.f[N   ])[kn   ];
+      //f1_N    = (D.f[S   ])[ks   ];
+      //f1_B    = (D.f[T   ])[kt   ];
+      //f1_T    = (D.f[B   ])[kb   ];
+      //f1_SW   = (D.f[NE  ])[kne  ];
+      //f1_NE   = (D.f[SW  ])[ksw  ];
+      //f1_NW   = (D.f[SE  ])[kse  ];
+      //f1_SE   = (D.f[NW  ])[knw  ];
+      //f1_BW   = (D.f[TE  ])[kte  ];
+      //f1_TE   = (D.f[BW  ])[kbw  ];
+      //f1_TW   = (D.f[BE  ])[kbe  ];
+      //f1_BE   = (D.f[TW  ])[ktw  ];
+      //f1_BS   = (D.f[TN  ])[ktn  ];
+      //f1_TN   = (D.f[BS  ])[kbs  ];
+      //f1_TS   = (D.f[BN  ])[kbn  ];
+      //f1_BN   = (D.f[TS  ])[kts  ];
       //f1_ZERO = (D.f[dirREST])[kzero];
-      //f1_BSW  = (D.f[dirTNE ])[ktne ];
-      //f1_BNE  = (D.f[dirTSW ])[ktsw ];
-      //f1_BNW  = (D.f[dirTSE ])[ktse ];
-      //f1_BSE  = (D.f[dirTNW ])[ktnw ];
-      //f1_TSW  = (D.f[dirBNE ])[kbne ];
-      //f1_TNE  = (D.f[dirBSW ])[kbsw ];
-      //f1_TNW  = (D.f[dirBSE ])[kbse ];
-      //f1_TSE  = (D.f[dirBNW ])[kbnw ];
+      //f1_BSW  = (D.f[TNE ])[ktne ];
+      //f1_BNE  = (D.f[TSW ])[ktsw ];
+      //f1_BNW  = (D.f[TSE ])[ktse ];
+      //f1_BSE  = (D.f[TNW ])[ktnw ];
+      //f1_TSW  = (D.f[BNE ])[kbne ];
+      //f1_TNE  = (D.f[BSW ])[kbsw ];
+      //f1_TNW  = (D.f[BSE ])[kbse ];
+      //f1_TSE  = (D.f[BNW ])[kbnw ];
       //////////////////////////////////////////////////////////////////////////
       real cs       = c1o1/sqrt(c3o1);
       real csp1     = cs + c1o1;
@@ -521,64 +521,64 @@ extern "C" __global__ void VelSchlaff27(  int t,
       f1_TNW = f1_BSE - c1o36 * (VX - VY - VZ);
 
       deltaVz0[k] = tempDeltaV;
-      (D.f[dirT   ])[kt   ] = f1_T  ;
-      (D.f[dirTE  ])[kte  ] = f1_TE ;
-      (D.f[dirTW  ])[ktw  ] = f1_TW ;
-      (D.f[dirTN  ])[ktn  ] = f1_TN ;
-      (D.f[dirTS  ])[kts  ] = f1_TS ;
-      (D.f[dirTNE ])[ktne ] = f1_TNE;
-      (D.f[dirTSW ])[ktsw ] = f1_TSW;
-      (D.f[dirTSE ])[ktse ] = f1_TSE;
-      (D.f[dirTNW ])[ktnw ] = f1_TNW;
-
-      //(D.f[dirB   ])[kb   ] = f1_B   ;
-      //(D.f[dirBW  ])[kbw  ] = f1_BW  ;
-      //(D.f[dirBE  ])[kbe  ] = f1_BE  ;
-      //(D.f[dirBS  ])[kbs  ] = f1_BS  ;
-      //(D.f[dirBN  ])[kbn  ] = f1_BN  ;
-      //(D.f[dirBNE ])[kbne ] = f1_BNE ;
-      //(D.f[dirBSW ])[kbsw ] = f1_BSW ;
-      //(D.f[dirBSE ])[kbse ] = f1_BSE ;
-      //(D.f[dirBNW ])[kbnw ] = f1_BNW ;
-
-
-      //(D.f[dirT   ])[kt   ] = f1_B  ;
-      //(D.f[dirTE  ])[kte  ] = f1_BW ;
-      //(D.f[dirTW  ])[ktw  ] = f1_BE ;
-      //(D.f[dirTN  ])[ktn  ] = f1_BS ;
-      //(D.f[dirTS  ])[kts  ] = f1_BN ;
-      //(D.f[dirTNE ])[ktne ] = f1_BSW;
-      //(D.f[dirTSW ])[ktsw ] = f1_BNE;
-      //(D.f[dirTSE ])[ktse ] = f1_BNW;
-      //(D.f[dirTNW ])[ktnw ] = f1_BSE;
-
-      //(D.f[dirE   ])[ke   ] = f1_W   -c2over27*drho1;
-      //(D.f[dirW   ])[kw   ] = f1_E   -c2over27*drho1;
-      //(D.f[dirN   ])[kn   ] = f1_S   -c2over27*drho1;
-      //(D.f[dirS   ])[ks   ] = f1_N   -c2over27*drho1;
-      //(D.f[dirT   ])[kt   ] = f1_B   -c2over27*drho1;
-      //(D.f[dirB   ])[kb   ] = f1_T   -c2over27*drho1;
-      //(D.f[dirNE  ])[kne  ] = f1_SW  -c1over54*drho1;
-      //(D.f[dirSW  ])[ksw  ] = f1_NE  -c1over54*drho1;
-      //(D.f[dirSE  ])[kse  ] = f1_NW  -c1over54*drho1;
-      //(D.f[dirNW  ])[knw  ] = f1_SE  -c1over54*drho1;
-      //(D.f[dirTE  ])[kte  ] = f1_BW  -c1over54*drho1;
-      //(D.f[dirBW  ])[kbw  ] = f1_TE  -c1over54*drho1;
-      //(D.f[dirBE  ])[kbe  ] = f1_TW  -c1over54*drho1;
-      //(D.f[dirTW  ])[ktw  ] = f1_BE  -c1over54*drho1;
-      //(D.f[dirTN  ])[ktn  ] = f1_BS  -c1over54*drho1;
-      //(D.f[dirBS  ])[kbs  ] = f1_TN  -c1over54*drho1;
-      //(D.f[dirBN  ])[kbn  ] = f1_TS  -c1over54*drho1;
-      //(D.f[dirTS  ])[kts  ] = f1_BN  -c1over54*drho1;
+      (D.f[T   ])[kt   ] = f1_T  ;
+      (D.f[TE  ])[kte  ] = f1_TE ;
+      (D.f[TW  ])[ktw  ] = f1_TW ;
+      (D.f[TN  ])[ktn  ] = f1_TN ;
+      (D.f[TS  ])[kts  ] = f1_TS ;
+      (D.f[TNE ])[ktne ] = f1_TNE;
+      (D.f[TSW ])[ktsw ] = f1_TSW;
+      (D.f[TSE ])[ktse ] = f1_TSE;
+      (D.f[TNW ])[ktnw ] = f1_TNW;
+
+      //(D.f[B   ])[kb   ] = f1_B   ;
+      //(D.f[BW  ])[kbw  ] = f1_BW  ;
+      //(D.f[BE  ])[kbe  ] = f1_BE  ;
+      //(D.f[BS  ])[kbs  ] = f1_BS  ;
+      //(D.f[BN  ])[kbn  ] = f1_BN  ;
+      //(D.f[BNE ])[kbne ] = f1_BNE ;
+      //(D.f[BSW ])[kbsw ] = f1_BSW ;
+      //(D.f[BSE ])[kbse ] = f1_BSE ;
+      //(D.f[BNW ])[kbnw ] = f1_BNW ;
+
+
+      //(D.f[T   ])[kt   ] = f1_B  ;
+      //(D.f[TE  ])[kte  ] = f1_BW ;
+      //(D.f[TW  ])[ktw  ] = f1_BE ;
+      //(D.f[TN  ])[ktn  ] = f1_BS ;
+      //(D.f[TS  ])[kts  ] = f1_BN ;
+      //(D.f[TNE ])[ktne ] = f1_BSW;
+      //(D.f[TSW ])[ktsw ] = f1_BNE;
+      //(D.f[TSE ])[ktse ] = f1_BNW;
+      //(D.f[TNW ])[ktnw ] = f1_BSE;
+
+      //(D.f[E   ])[ke   ] = f1_W   -c2over27*drho1;
+      //(D.f[W   ])[kw   ] = f1_E   -c2over27*drho1;
+      //(D.f[N   ])[kn   ] = f1_S   -c2over27*drho1;
+      //(D.f[S   ])[ks   ] = f1_N   -c2over27*drho1;
+      //(D.f[T   ])[kt   ] = f1_B   -c2over27*drho1;
+      //(D.f[B   ])[kb   ] = f1_T   -c2over27*drho1;
+      //(D.f[NE  ])[kne  ] = f1_SW  -c1over54*drho1;
+      //(D.f[SW  ])[ksw  ] = f1_NE  -c1over54*drho1;
+      //(D.f[SE  ])[kse  ] = f1_NW  -c1over54*drho1;
+      //(D.f[NW  ])[knw  ] = f1_SE  -c1over54*drho1;
+      //(D.f[TE  ])[kte  ] = f1_BW  -c1over54*drho1;
+      //(D.f[BW  ])[kbw  ] = f1_TE  -c1over54*drho1;
+      //(D.f[BE  ])[kbe  ] = f1_TW  -c1over54*drho1;
+      //(D.f[TW  ])[ktw  ] = f1_BE  -c1over54*drho1;
+      //(D.f[TN  ])[ktn  ] = f1_BS  -c1over54*drho1;
+      //(D.f[BS  ])[kbs  ] = f1_TN  -c1over54*drho1;
+      //(D.f[BN  ])[kbn  ] = f1_TS  -c1over54*drho1;
+      //(D.f[TS  ])[kts  ] = f1_BN  -c1over54*drho1;
       //(D.f[dirREST])[kzero] = f1_ZERO-c8over27*drho1;
-      //(D.f[dirTNE ])[ktne ] = f1_BSW -c1over216*drho1;
-      //(D.f[dirTSW ])[ktsw ] = f1_BNE -c1over216*drho1;
-      //(D.f[dirTSE ])[ktse ] = f1_BNW -c1over216*drho1;
-      //(D.f[dirTNW ])[ktnw ] = f1_BSE -c1over216*drho1;
-      //(D.f[dirBNE ])[kbne ] = f1_TSW -c1over216*drho1;
-      //(D.f[dirBSW ])[kbsw ] = f1_TNE -c1over216*drho1;
-      //(D.f[dirBSE ])[kbse ] = f1_TNW -c1over216*drho1;
-      //(D.f[dirBNW ])[kbnw ] = f1_TSE -c1over216*drho1;
+      //(D.f[TNE ])[ktne ] = f1_BSW -c1over216*drho1;
+      //(D.f[TSW ])[ktsw ] = f1_BNE -c1over216*drho1;
+      //(D.f[TSE ])[ktse ] = f1_BNW -c1over216*drho1;
+      //(D.f[TNW ])[ktnw ] = f1_BSE -c1over216*drho1;
+      //(D.f[BNE ])[kbne ] = f1_TSW -c1over216*drho1;
+      //(D.f[BSW ])[kbsw ] = f1_TNE -c1over216*drho1;
+      //(D.f[BSE ])[kbse ] = f1_TNW -c1over216*drho1;
+      //(D.f[BNW ])[kbnw ] = f1_TSE -c1over216*drho1;
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu b/src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu
index a16aaa8ca..f5019babf 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/SetForcing27.cu
@@ -21,63 +21,63 @@ extern "C" __global__ void GetVeloforForcing27( real* DD,
 	Distributions27 D;
 	if (isEvenTimestep==false)
 	{
-		D.f[dirE   ] = &DD[dirE   *size_Mat];
-		D.f[dirW   ] = &DD[dirW   *size_Mat];
-		D.f[dirN   ] = &DD[dirN   *size_Mat];
-		D.f[dirS   ] = &DD[dirS   *size_Mat];
-		D.f[dirT   ] = &DD[dirT   *size_Mat];
-		D.f[dirB   ] = &DD[dirB   *size_Mat];
-		D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-		D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-		D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-		D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-		D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-		D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-		D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-		D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-		D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-		D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-		D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-		D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+		D.f[E   ] = &DD[E   *size_Mat];
+		D.f[W   ] = &DD[W   *size_Mat];
+		D.f[N   ] = &DD[N   *size_Mat];
+		D.f[S   ] = &DD[S   *size_Mat];
+		D.f[T   ] = &DD[T   *size_Mat];
+		D.f[B   ] = &DD[B   *size_Mat];
+		D.f[NE  ] = &DD[NE  *size_Mat];
+		D.f[SW  ] = &DD[SW  *size_Mat];
+		D.f[SE  ] = &DD[SE  *size_Mat];
+		D.f[NW  ] = &DD[NW  *size_Mat];
+		D.f[TE  ] = &DD[TE  *size_Mat];
+		D.f[BW  ] = &DD[BW  *size_Mat];
+		D.f[BE  ] = &DD[BE  *size_Mat];
+		D.f[TW  ] = &DD[TW  *size_Mat];
+		D.f[TN  ] = &DD[TN  *size_Mat];
+		D.f[BS  ] = &DD[BS  *size_Mat];
+		D.f[BN  ] = &DD[BN  *size_Mat];
+		D.f[TS  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-		D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-		D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-		D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-		D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-		D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+		D.f[TNE ] = &DD[TNE *size_Mat];
+		D.f[TSW ] = &DD[TSW *size_Mat];
+		D.f[TSE ] = &DD[TSE *size_Mat];
+		D.f[TNW ] = &DD[TNW *size_Mat];
+		D.f[BNE ] = &DD[BNE *size_Mat];
+		D.f[BSW ] = &DD[BSW *size_Mat];
+		D.f[BSE ] = &DD[BSE *size_Mat];
+		D.f[BNW ] = &DD[BNW *size_Mat];
 	} 
 	else
 	{
-		D.f[dirW   ] = &DD[dirE   *size_Mat];
-		D.f[dirE   ] = &DD[dirW   *size_Mat];
-		D.f[dirS   ] = &DD[dirN   *size_Mat];
-		D.f[dirN   ] = &DD[dirS   *size_Mat];
-		D.f[dirB   ] = &DD[dirT   *size_Mat];
-		D.f[dirT   ] = &DD[dirB   *size_Mat];
-		D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-		D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-		D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-		D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-		D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-		D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-		D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-		D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-		D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-		D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-		D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-		D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+		D.f[W   ] = &DD[E   *size_Mat];
+		D.f[E   ] = &DD[W   *size_Mat];
+		D.f[S   ] = &DD[N   *size_Mat];
+		D.f[N   ] = &DD[S   *size_Mat];
+		D.f[B   ] = &DD[T   *size_Mat];
+		D.f[T   ] = &DD[B   *size_Mat];
+		D.f[SW  ] = &DD[NE  *size_Mat];
+		D.f[NE  ] = &DD[SW  *size_Mat];
+		D.f[NW  ] = &DD[SE  *size_Mat];
+		D.f[SE  ] = &DD[NW  *size_Mat];
+		D.f[BW  ] = &DD[TE  *size_Mat];
+		D.f[TE  ] = &DD[BW  *size_Mat];
+		D.f[TW  ] = &DD[BE  *size_Mat];
+		D.f[BE  ] = &DD[TW  *size_Mat];
+		D.f[BS  ] = &DD[TN  *size_Mat];
+		D.f[TN  ] = &DD[BS  *size_Mat];
+		D.f[TS  ] = &DD[BN  *size_Mat];
+		D.f[BN  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-		D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-		D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-		D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-		D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-		D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+		D.f[TNE ] = &DD[BSW *size_Mat];
+		D.f[TSW ] = &DD[BNE *size_Mat];
+		D.f[TSE ] = &DD[BNW *size_Mat];
+		D.f[TNW ] = &DD[BSE *size_Mat];
+		D.f[BNE ] = &DD[TSW *size_Mat];
+		D.f[BSW ] = &DD[TNE *size_Mat];
+		D.f[BSE ] = &DD[TNW *size_Mat];
+		D.f[BNW ] = &DD[TSE *size_Mat];
 	}
 	////////////////////////////////////////////////////////////////////////////////
 	const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -122,33 +122,33 @@ extern "C" __global__ void GetVeloforForcing27( real* DD,
 		unsigned int ktne = KQK;
 		unsigned int kbsw = neighborZ[ksw];
 		////////////////////////////////////////////////////////////////////////////////
-		real mfcbb = (D.f[dirE   ])[ke   ];
-		real mfabb = (D.f[dirW   ])[kw   ];
-		real mfbcb = (D.f[dirN   ])[kn   ];
-		real mfbab = (D.f[dirS   ])[ks   ];
-		real mfbbc = (D.f[dirT   ])[kt   ];
-		real mfbba = (D.f[dirB   ])[kb   ];
-		real mfccb = (D.f[dirNE  ])[kne  ];
-		real mfaab = (D.f[dirSW  ])[ksw  ];
-		real mfcab = (D.f[dirSE  ])[kse  ];
-		real mfacb = (D.f[dirNW  ])[knw  ];
-		real mfcbc = (D.f[dirTE  ])[kte  ];
-		real mfaba = (D.f[dirBW  ])[kbw  ];
-		real mfcba = (D.f[dirBE  ])[kbe  ];
-		real mfabc = (D.f[dirTW  ])[ktw  ];
-		real mfbcc = (D.f[dirTN  ])[ktn  ];
-		real mfbaa = (D.f[dirBS  ])[kbs  ];
-		real mfbca = (D.f[dirBN  ])[kbn  ];
-		real mfbac = (D.f[dirTS  ])[kts  ];
+		real mfcbb = (D.f[E   ])[ke   ];
+		real mfabb = (D.f[W   ])[kw   ];
+		real mfbcb = (D.f[N   ])[kn   ];
+		real mfbab = (D.f[S   ])[ks   ];
+		real mfbbc = (D.f[T   ])[kt   ];
+		real mfbba = (D.f[B   ])[kb   ];
+		real mfccb = (D.f[NE  ])[kne  ];
+		real mfaab = (D.f[SW  ])[ksw  ];
+		real mfcab = (D.f[SE  ])[kse  ];
+		real mfacb = (D.f[NW  ])[knw  ];
+		real mfcbc = (D.f[TE  ])[kte  ];
+		real mfaba = (D.f[BW  ])[kbw  ];
+		real mfcba = (D.f[BE  ])[kbe  ];
+		real mfabc = (D.f[TW  ])[ktw  ];
+		real mfbcc = (D.f[TN  ])[ktn  ];
+		real mfbaa = (D.f[BS  ])[kbs  ];
+		real mfbca = (D.f[BN  ])[kbn  ];
+		real mfbac = (D.f[TS  ])[kts  ];
 		real mfbbb = (D.f[dirREST])[kzero];
-		real mfccc = (D.f[dirTNE ])[ktne ];
-		real mfaac = (D.f[dirTSW ])[ktsw ];
-		real mfcac = (D.f[dirTSE ])[ktse ];
-		real mfacc = (D.f[dirTNW ])[ktnw ];
-		real mfcca = (D.f[dirBNE ])[kbne ];
-		real mfaaa = (D.f[dirBSW ])[kbsw ];
-		real mfcaa = (D.f[dirBSE ])[kbse ];
-		real mfaca = (D.f[dirBNW ])[kbnw ];
+		real mfccc = (D.f[TNE ])[ktne ];
+		real mfaac = (D.f[TSW ])[ktsw ];
+		real mfcac = (D.f[TSE ])[ktse ];
+		real mfacc = (D.f[TNW ])[ktnw ];
+		real mfcca = (D.f[BNE ])[kbne ];
+		real mfaaa = (D.f[BSW ])[kbsw ];
+		real mfcaa = (D.f[BSE ])[kbse ];
+		real mfaca = (D.f[BNW ])[kbnw ];
 		////////////////////////////////////////////////////////////////////////////////////
 		real rho   = (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + 
 					 	 mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb +
diff --git a/src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu
index 650ce293e..eb6f62b3c 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/SlipBCs27.cu
@@ -20,63 +20,63 @@ extern "C" __global__ void QSlipDevice27(real* DD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -97,32 +97,32 @@ extern "C" __global__ void QSlipDevice27(real* DD,
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -154,32 +154,32 @@ extern "C" __global__ void QSlipDevice27(real* DD,
       unsigned int ktne = KQK;
       unsigned int kbsw = neighborZ[ksw];
       ////////////////////////////////////////////////////////////////////////////////
-      real f_W    = (D.f[dirE   ])[ke   ];
-      real f_E    = (D.f[dirW   ])[kw   ];
-      real f_S    = (D.f[dirN   ])[kn   ];
-      real f_N    = (D.f[dirS   ])[ks   ];
-      real f_B    = (D.f[dirT   ])[kt   ];
-      real f_T    = (D.f[dirB   ])[kb   ];
-      real f_SW   = (D.f[dirNE  ])[kne  ];
-      real f_NE   = (D.f[dirSW  ])[ksw  ];
-      real f_NW   = (D.f[dirSE  ])[kse  ];
-      real f_SE   = (D.f[dirNW  ])[knw  ];
-      real f_BW   = (D.f[dirTE  ])[kte  ];
-      real f_TE   = (D.f[dirBW  ])[kbw  ];
-      real f_TW   = (D.f[dirBE  ])[kbe  ];
-      real f_BE   = (D.f[dirTW  ])[ktw  ];
-      real f_BS   = (D.f[dirTN  ])[ktn  ];
-      real f_TN   = (D.f[dirBS  ])[kbs  ];
-      real f_TS   = (D.f[dirBN  ])[kbn  ];
-      real f_BN   = (D.f[dirTS  ])[kts  ];
-      real f_BSW  = (D.f[dirTNE ])[ktne ];
-      real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      real f_BNW  = (D.f[dirTSE ])[ktse ];
-      real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      real f_TSW  = (D.f[dirBNE ])[kbne ];
-      real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      real f_TNW  = (D.f[dirBSE ])[kbse ];
-      real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      real f_W    = (D.f[E   ])[ke   ];
+      real f_E    = (D.f[W   ])[kw   ];
+      real f_S    = (D.f[N   ])[kn   ];
+      real f_N    = (D.f[S   ])[ks   ];
+      real f_B    = (D.f[T   ])[kt   ];
+      real f_T    = (D.f[B   ])[kb   ];
+      real f_SW   = (D.f[NE  ])[kne  ];
+      real f_NE   = (D.f[SW  ])[ksw  ];
+      real f_NW   = (D.f[SE  ])[kse  ];
+      real f_SE   = (D.f[NW  ])[knw  ];
+      real f_BW   = (D.f[TE  ])[kte  ];
+      real f_TE   = (D.f[BW  ])[kbw  ];
+      real f_TW   = (D.f[BE  ])[kbe  ];
+      real f_BE   = (D.f[TW  ])[ktw  ];
+      real f_BS   = (D.f[TN  ])[ktn  ];
+      real f_TN   = (D.f[BS  ])[kbs  ];
+      real f_TS   = (D.f[BN  ])[kbn  ];
+      real f_BN   = (D.f[TS  ])[kts  ];
+      real f_BSW  = (D.f[TNE ])[ktne ];
+      real f_BNE  = (D.f[TSW ])[ktsw ];
+      real f_BNW  = (D.f[TSE ])[ktse ];
+      real f_BSE  = (D.f[TNW ])[ktnw ];
+      real f_TSW  = (D.f[BNE ])[kbne ];
+      real f_TNE  = (D.f[BSW ])[kbsw ];
+      real f_TNW  = (D.f[BSE ])[kbse ];
+      real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q;
       drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -204,63 +204,63 @@ extern "C" __global__ void QSlipDevice27(real* DD,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -282,8 +282,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 	     VeloZ = fac*vx3;
 		 x = true;
          feq=c2o27* (drho+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq); 
-         (D.f[dirW])[kw]=(c1o1-q)/(c1o1+q)*(f_E-feq*om1)/(c1o1-om1)+(q*(f_E+f_W)-c6o1*c2o27*( VeloX     ))/(c1o1+q);
-         //(D.f[dirW])[kw]=zero;
+         (D.f[W])[kw]=(c1o1-q)/(c1o1+q)*(f_E-feq*om1)/(c1o1-om1)+(q*(f_E+f_W)-c6o1*c2o27*( VeloX     ))/(c1o1+q);
+         //(D.f[W])[kw]=zero;
       }
 
       q = q_dirW[k];
@@ -294,8 +294,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 	     VeloZ = fac*vx3;
 		 x = true;
          feq=c2o27* (drho+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq); 
-         (D.f[dirE])[ke]=(c1o1-q)/(c1o1+q)*(f_W-feq*om1)/(c1o1-om1)+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX     ))/(c1o1+q);
-         //(D.f[dirE])[ke]=zero;
+         (D.f[E])[ke]=(c1o1-q)/(c1o1+q)*(f_W-feq*om1)/(c1o1-om1)+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX     ))/(c1o1+q);
+         //(D.f[E])[ke]=zero;
       }
 
       q = q_dirN[k];
@@ -306,8 +306,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 	     VeloZ = fac*vx3;
 		 y = true;
          feq=c2o27* (drho+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq); 
-         (D.f[dirS])[ks]=(c1o1-q)/(c1o1+q)*(f_N-feq*om1)/(c1o1-om1)+(q*(f_N+f_S)-c6o1*c2o27*( VeloY     ))/(c1o1+q);
-         //(D.f[dirS])[ks]=zero;
+         (D.f[S])[ks]=(c1o1-q)/(c1o1+q)*(f_N-feq*om1)/(c1o1-om1)+(q*(f_N+f_S)-c6o1*c2o27*( VeloY     ))/(c1o1+q);
+         //(D.f[S])[ks]=zero;
       }
 
       q = q_dirS[k];
@@ -318,8 +318,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 	     VeloZ = fac*vx3;
 		 y = true;
          feq=c2o27* (drho+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq); 
-         (D.f[dirN])[kn]=(c1o1-q)/(c1o1+q)*(f_S-feq*om1)/(c1o1-om1)+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY     ))/(c1o1+q);
-         //(D.f[dirN])[kn]=zero;
+         (D.f[N])[kn]=(c1o1-q)/(c1o1+q)*(f_S-feq*om1)/(c1o1-om1)+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY     ))/(c1o1+q);
+         //(D.f[N])[kn]=zero;
       }
 
       q = q_dirT[k];
@@ -330,8 +330,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 VeloZ = c0o1;
 		 z = true;
          feq=c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq); 
-         (D.f[dirB])[kb]=(c1o1-q)/(c1o1+q)*(f_T-feq*om1)/(c1o1-om1)+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ     ))/(c1o1+q);
-         //(D.f[dirB])[kb]=one;
+         (D.f[B])[kb]=(c1o1-q)/(c1o1+q)*(f_T-feq*om1)/(c1o1-om1)+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ     ))/(c1o1+q);
+         //(D.f[B])[kb]=one;
       }
 
       q = q_dirB[k];
@@ -342,8 +342,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 VeloZ = c0o1;
 		 z = true;
          feq=c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq); 
-         (D.f[dirT])[kt]=(c1o1-q)/(c1o1+q)*(f_B-feq*om1)/(c1o1-om1)+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ     ))/(c1o1+q);
-         //(D.f[dirT])[kt]=zero;
+         (D.f[T])[kt]=(c1o1-q)/(c1o1+q)*(f_B-feq*om1)/(c1o1-om1)+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ     ))/(c1o1+q);
+         //(D.f[T])[kt]=zero;
       }
 
       q = q_dirNE[k];
@@ -355,8 +355,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (y == true) VeloY = c0o1;
          feq=c1o54* (drho+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq); 
-         (D.f[dirSW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-feq*om1)/(c1o1-om1)+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q);
-         //(D.f[dirSW])[ksw]=zero;
+         (D.f[SW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-feq*om1)/(c1o1-om1)+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q);
+         //(D.f[SW])[ksw]=zero;
       }
 
       q = q_dirSW[k];
@@ -368,8 +368,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (y == true) VeloY = c0o1;
          feq=c1o54* (drho+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq); 
-         (D.f[dirNE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-feq*om1)/(c1o1-om1)+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q);
-         //(D.f[dirNE])[kne]=zero;
+         (D.f[NE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-feq*om1)/(c1o1-om1)+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q);
+         //(D.f[NE])[kne]=zero;
       }
 
       q = q_dirSE[k];
@@ -381,8 +381,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (y == true) VeloY = c0o1;
          feq=c1o54* (drho+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq); 
-         (D.f[dirNW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-feq*om1)/(c1o1-om1)+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q);
-         //(D.f[dirNW])[knw]=zero;
+         (D.f[NW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-feq*om1)/(c1o1-om1)+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q);
+         //(D.f[NW])[knw]=zero;
       }
 
       q = q_dirNW[k];
@@ -394,8 +394,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (y == true) VeloY = c0o1;
          feq=c1o54* (drho+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq); 
-         (D.f[dirSE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-feq*om1)/(c1o1-om1)+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q);
-         //(D.f[dirSE])[kse]=zero;
+         (D.f[SE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-feq*om1)/(c1o1-om1)+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q);
+         //(D.f[SE])[kse]=zero;
       }
 
       q = q_dirTE[k];
@@ -407,8 +407,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq); 
-         (D.f[dirBW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-feq*om1)/(c1o1-om1)+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q);
-         //(D.f[dirBW])[kbw]=zero;
+         (D.f[BW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-feq*om1)/(c1o1-om1)+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q);
+         //(D.f[BW])[kbw]=zero;
       }
 
       q = q_dirBW[k];
@@ -420,8 +420,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq); 
-         (D.f[dirTE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-feq*om1)/(c1o1-om1)+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q);
-         //(D.f[dirTE])[kte]=zero;
+         (D.f[TE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-feq*om1)/(c1o1-om1)+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q);
+         //(D.f[TE])[kte]=zero;
       }
 
       q = q_dirBE[k];
@@ -433,8 +433,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq); 
-         (D.f[dirTW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-feq*om1)/(c1o1-om1)+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q);
-         //(D.f[dirTW])[ktw]=zero;
+         (D.f[TW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-feq*om1)/(c1o1-om1)+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q);
+         //(D.f[TW])[ktw]=zero;
       }
 
       q = q_dirTW[k];
@@ -446,8 +446,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq); 
-         (D.f[dirBE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-feq*om1)/(c1o1-om1)+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q);
-         //(D.f[dirBE])[kbe]=zero;
+         (D.f[BE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-feq*om1)/(c1o1-om1)+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q);
+         //(D.f[BE])[kbe]=zero;
       }
 
       q = q_dirTN[k];
@@ -459,8 +459,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq); 
-         (D.f[dirBS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-feq*om1)/(c1o1-om1)+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q);
-         //(D.f[dirBS])[kbs]=zero;
+         (D.f[BS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-feq*om1)/(c1o1-om1)+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q);
+         //(D.f[BS])[kbs]=zero;
       }
 
       q = q_dirBS[k];
@@ -472,8 +472,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq); 
-         (D.f[dirTN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-feq*om1)/(c1o1-om1)+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q);
-         //(D.f[dirTN])[ktn]=zero;
+         (D.f[TN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-feq*om1)/(c1o1-om1)+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q);
+         //(D.f[TN])[ktn]=zero;
       }
 
       q = q_dirBN[k];
@@ -485,8 +485,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq); 
-         (D.f[dirTS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-feq*om1)/(c1o1-om1)+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q);
-         //(D.f[dirTS])[kts]=zero;
+         (D.f[TS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-feq*om1)/(c1o1-om1)+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q);
+         //(D.f[TS])[kts]=zero;
       }
 
       q = q_dirTS[k];
@@ -498,8 +498,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq); 
-         (D.f[dirBN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-feq*om1)/(c1o1-om1)+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q);
-         //(D.f[dirBN])[kbn]=zero;
+         (D.f[BN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-feq*om1)/(c1o1-om1)+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q);
+         //(D.f[BN])[kbn]=zero;
       }
 
       q = q_dirTNE[k];
@@ -512,8 +512,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); 
-         (D.f[dirBSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-feq*om1)/(c1o1-om1)+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);
-         //(D.f[dirBSW])[kbsw]=zero;
+         (D.f[BSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-feq*om1)/(c1o1-om1)+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);
+         //(D.f[BSW])[kbsw]=zero;
       }
 
       q = q_dirBSW[k];
@@ -526,8 +526,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); 
-         (D.f[dirTNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-feq*om1)/(c1o1-om1)+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);
-         //(D.f[dirTNE])[ktne]=zero;
+         (D.f[TNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-feq*om1)/(c1o1-om1)+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);
+         //(D.f[TNE])[ktne]=zero;
       }
 
       q = q_dirBNE[k];
@@ -540,8 +540,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); 
-         (D.f[dirTSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-feq*om1)/(c1o1-om1)+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);
-         //(D.f[dirTSW])[ktsw]=zero;
+         (D.f[TSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-feq*om1)/(c1o1-om1)+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);
+         //(D.f[TSW])[ktsw]=zero;
       }
 
       q = q_dirTSW[k];
@@ -554,8 +554,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); 
-         (D.f[dirBNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-feq*om1)/(c1o1-om1)+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);
-         //(D.f[dirBNE])[kbne]=zero;
+         (D.f[BNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-feq*om1)/(c1o1-om1)+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);
+         //(D.f[BNE])[kbne]=zero;
       }
 
       q = q_dirTSE[k];
@@ -568,8 +568,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); 
-         (D.f[dirBNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-feq*om1)/(c1o1-om1)+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);
-         //(D.f[dirBNW])[kbnw]=zero;
+         (D.f[BNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-feq*om1)/(c1o1-om1)+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);
+         //(D.f[BNW])[kbnw]=zero;
       }
 
       q = q_dirBNW[k];
@@ -582,8 +582,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); 
-         (D.f[dirTSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-feq*om1)/(c1o1-om1)+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);
-         //(D.f[dirTSE])[ktse]=zero;
+         (D.f[TSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-feq*om1)/(c1o1-om1)+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);
+         //(D.f[TSE])[ktse]=zero;
       }
 
       q = q_dirBSE[k];
@@ -596,8 +596,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); 
-         (D.f[dirTNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-feq*om1)/(c1o1-om1)+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);
-         //(D.f[dirTNW])[ktnw]=zero;
+         (D.f[TNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-feq*om1)/(c1o1-om1)+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);
+         //(D.f[TNW])[ktnw]=zero;
       }
 
       q = q_dirTNW[k];
@@ -610,8 +610,8 @@ extern "C" __global__ void QSlipDevice27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); 
-         (D.f[dirBSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-feq*om1)/(c1o1-om1)+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);
-         //(D.f[dirBSE])[kbse]=zero;
+         (D.f[BSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-feq*om1)/(c1o1-om1)+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);
+         //(D.f[BSE])[kbse]=zero;
       }
    }
 }
@@ -670,63 +670,63 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -747,32 +747,32 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -805,32 +805,32 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
       unsigned int kbsw = neighborZ[ksw];
       
       ////////////////////////////////////////////////////////////////////////////////
-      real f_W    = (D.f[dirE   ])[ke   ];
-      real f_E    = (D.f[dirW   ])[kw   ];
-      real f_S    = (D.f[dirN   ])[kn   ];
-      real f_N    = (D.f[dirS   ])[ks   ];
-      real f_B    = (D.f[dirT   ])[kt   ];
-      real f_T    = (D.f[dirB   ])[kb   ];
-      real f_SW   = (D.f[dirNE  ])[kne  ];
-      real f_NE   = (D.f[dirSW  ])[ksw  ];
-      real f_NW   = (D.f[dirSE  ])[kse  ];
-      real f_SE   = (D.f[dirNW  ])[knw  ];
-      real f_BW   = (D.f[dirTE  ])[kte  ];
-      real f_TE   = (D.f[dirBW  ])[kbw  ];
-      real f_TW   = (D.f[dirBE  ])[kbe  ];
-      real f_BE   = (D.f[dirTW  ])[ktw  ];
-      real f_BS   = (D.f[dirTN  ])[ktn  ];
-      real f_TN   = (D.f[dirBS  ])[kbs  ];
-      real f_TS   = (D.f[dirBN  ])[kbn  ];
-      real f_BN   = (D.f[dirTS  ])[kts  ];
-      real f_BSW  = (D.f[dirTNE ])[ktne ];
-      real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      real f_BNW  = (D.f[dirTSE ])[ktse ];
-      real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      real f_TSW  = (D.f[dirBNE ])[kbne ];
-      real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      real f_TNW  = (D.f[dirBSE ])[kbse ];
-      real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      real f_W    = (D.f[E   ])[ke   ];
+      real f_E    = (D.f[W   ])[kw   ];
+      real f_S    = (D.f[N   ])[kn   ];
+      real f_N    = (D.f[S   ])[ks   ];
+      real f_B    = (D.f[T   ])[kt   ];
+      real f_T    = (D.f[B   ])[kb   ];
+      real f_SW   = (D.f[NE  ])[kne  ];
+      real f_NE   = (D.f[SW  ])[ksw  ];
+      real f_NW   = (D.f[SE  ])[kse  ];
+      real f_SE   = (D.f[NW  ])[knw  ];
+      real f_BW   = (D.f[TE  ])[kte  ];
+      real f_TE   = (D.f[BW  ])[kbw  ];
+      real f_TW   = (D.f[BE  ])[kbe  ];
+      real f_BE   = (D.f[TW  ])[ktw  ];
+      real f_BS   = (D.f[TN  ])[ktn  ];
+      real f_TN   = (D.f[BS  ])[kbs  ];
+      real f_TS   = (D.f[BN  ])[kbn  ];
+      real f_BN   = (D.f[TS  ])[kts  ];
+      real f_BSW  = (D.f[TNE ])[ktne ];
+      real f_BNE  = (D.f[TSW ])[ktsw ];
+      real f_BNW  = (D.f[TSE ])[ktse ];
+      real f_BSE  = (D.f[TNW ])[ktnw ];
+      real f_TSW  = (D.f[BNE ])[kbne ];
+      real f_TNE  = (D.f[BSW ])[kbsw ];
+      real f_TNW  = (D.f[BSE ])[kbse ];
+      real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q;
       drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -855,63 +855,63 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -933,10 +933,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 	     VeloZ = fac*vx3;
 		 x = true;
          feq=c2o27* (drho/*+three*( vx1        )*/+c9o2*( vx1        )*( vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirW])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W)-c6o1*c2o27*( VeloX     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[W])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W)-c6o1*c2o27*( VeloX     ))/(c1o1+q) - c2o27 * drho;
          //feq=c2over27* (drho+three*( vx1        )+c9over2*( vx1        )*( vx1        )-cu_sq); 
-         //(D.f[dirW])[kw]=(one-q)/(one+q)*(f_E-feq*om1)/(one-om1)+(q*(f_E+f_W)-six*c2over27*( VeloX     ))/(one+q);
-         //(D.f[dirW])[kw]=zero;
+         //(D.f[W])[kw]=(one-q)/(one+q)*(f_E-feq*om1)/(one-om1)+(q*(f_E+f_W)-six*c2over27*( VeloX     ))/(one+q);
+         //(D.f[W])[kw]=zero;
       }
 
       q = q_dirW[k];
@@ -947,10 +947,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 	     VeloZ = fac*vx3;
 		 x = true;
          feq=c2o27* (drho/*+three*(-vx1        )*/+c9o2*(-vx1        )*(-vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirE])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[E])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX     ))/(c1o1+q) - c2o27 * drho;
          //feq=c2over27* (drho+three*(-vx1        )+c9over2*(-vx1        )*(-vx1        )-cu_sq); 
-         //(D.f[dirE])[ke]=(one-q)/(one+q)*(f_W-feq*om1)/(one-om1)+(q*(f_W+f_E)-six*c2over27*(-VeloX     ))/(one+q);
-         //(D.f[dirE])[ke]=zero;
+         //(D.f[E])[ke]=(one-q)/(one+q)*(f_W-feq*om1)/(one-om1)+(q*(f_W+f_E)-six*c2over27*(-VeloX     ))/(one+q);
+         //(D.f[E])[ke]=zero;
       }
 
       q = q_dirN[k];
@@ -961,10 +961,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 	     VeloZ = fac*vx3;
 		 y = true;
          feq=c2o27* (drho/*+three*(    vx2     )*/+c9o2*(     vx2    )*(     vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirS])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S)-c6o1*c2o27*( VeloY     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[S])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S)-c6o1*c2o27*( VeloY     ))/(c1o1+q) - c2o27 * drho;
          //feq=c2over27* (drho+three*(    vx2     )+c9over2*(     vx2    )*(     vx2    )-cu_sq); 
-         //(D.f[dirS])[ks]=(one-q)/(one+q)*(f_N-feq*om1)/(one-om1)+(q*(f_N+f_S)-six*c2over27*( VeloY     ))/(one+q);
-         //(D.f[dirS])[ks]=zero;
+         //(D.f[S])[ks]=(one-q)/(one+q)*(f_N-feq*om1)/(one-om1)+(q*(f_N+f_S)-six*c2over27*( VeloY     ))/(one+q);
+         //(D.f[S])[ks]=zero;
       }
 
       q = q_dirS[k];
@@ -975,10 +975,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 	     VeloZ = fac*vx3;
 		 y = true;
          feq=c2o27* (drho/*+three*(   -vx2     )*/+c9o2*(    -vx2    )*(    -vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirN])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[N])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY     ))/(c1o1+q) - c2o27 * drho;
          //feq=c2over27* (drho+three*(   -vx2     )+c9over2*(    -vx2    )*(    -vx2    )-cu_sq); 
-         //(D.f[dirN])[kn]=(one-q)/(one+q)*(f_S-feq*om1)/(one-om1)+(q*(f_S+f_N)-six*c2over27*(-VeloY     ))/(one+q);
-         //(D.f[dirN])[kn]=zero;
+         //(D.f[N])[kn]=(one-q)/(one+q)*(f_S-feq*om1)/(one-om1)+(q*(f_S+f_N)-six*c2over27*(-VeloY     ))/(one+q);
+         //(D.f[N])[kn]=zero;
       }
 
       q = q_dirT[k];
@@ -989,10 +989,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 VeloZ = c0o1;
 		 z = true;
          feq=c2o27* (drho/*+three*(         vx3)*/+c9o2*(         vx3)*(         vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirB])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[B])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ     ))/(c1o1+q) - c2o27 * drho;
          //feq=c2over27* (drho+three*(         vx3)+c9over2*(         vx3)*(         vx3)-cu_sq); 
-         //(D.f[dirB])[kb]=(one-q)/(one+q)*(f_T-feq*om1)/(one-om1)+(q*(f_T+f_B)-six*c2over27*( VeloZ     ))/(one+q);
-         //(D.f[dirB])[kb]=one;
+         //(D.f[B])[kb]=(one-q)/(one+q)*(f_T-feq*om1)/(one-om1)+(q*(f_T+f_B)-six*c2over27*( VeloZ     ))/(one+q);
+         //(D.f[B])[kb]=one;
       }
 
       q = q_dirB[k];
@@ -1003,10 +1003,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 VeloZ = c0o1;
 		 z = true;
          feq=c2o27* (drho/*+three*(        -vx3)*/+c9o2*(        -vx3)*(        -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirT])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[T])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ     ))/(c1o1+q) - c2o27 * drho;
          //feq=c2over27* (drho+three*(        -vx3)+c9over2*(        -vx3)*(        -vx3)-cu_sq); 
-         //(D.f[dirT])[kt]=(one-q)/(one+q)*(f_B-feq*om1)/(one-om1)+(q*(f_B+f_T)-six*c2over27*(-VeloZ     ))/(one+q);
-         //(D.f[dirT])[kt]=zero;
+         //(D.f[T])[kt]=(one-q)/(one+q)*(f_B-feq*om1)/(one-om1)+(q*(f_B+f_T)-six*c2over27*(-VeloZ     ))/(one+q);
+         //(D.f[T])[kt]=zero;
       }
 
       q = q_dirNE[k];
@@ -1018,10 +1018,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (y == true) VeloY = c0o1;
          feq=c1o54* (drho/*+three*( vx1+vx2    )*/+c9o2*( vx1+vx2    )*( vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q) - c1o54 * drho;
+         (D.f[SW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*( vx1+vx2    )+c9over2*( vx1+vx2    )*( vx1+vx2    )-cu_sq); 
-         //(D.f[dirSW])[ksw]=(one-q)/(one+q)*(f_NE-feq*om1)/(one-om1)+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q);
-         //(D.f[dirSW])[ksw]=zero;
+         //(D.f[SW])[ksw]=(one-q)/(one+q)*(f_NE-feq*om1)/(one-om1)+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q);
+         //(D.f[SW])[ksw]=zero;
       }
 
       q = q_dirSW[k];
@@ -1033,10 +1033,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (y == true) VeloY = c0o1;
          feq=c1o54* (drho/*+three*(-vx1-vx2    )*/+c9o2*(-vx1-vx2    )*(-vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q) - c1o54 * drho;
+         (D.f[NE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(-vx1-vx2    )+c9over2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq); 
-         //(D.f[dirNE])[kne]=(one-q)/(one+q)*(f_SW-feq*om1)/(one-om1)+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q);
-         //(D.f[dirNE])[kne]=zero;
+         //(D.f[NE])[kne]=(one-q)/(one+q)*(f_SW-feq*om1)/(one-om1)+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q);
+         //(D.f[NE])[kne]=zero;
       }
 
       q = q_dirSE[k];
@@ -1048,10 +1048,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (y == true) VeloY = c0o1;
          feq=c1o54* (drho/*+three*( vx1-vx2    )*/+c9o2*( vx1-vx2    )*( vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q) - c1o54 * drho;
+         (D.f[NW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*( vx1-vx2    )+c9over2*( vx1-vx2    )*( vx1-vx2    )-cu_sq); 
-         //(D.f[dirNW])[knw]=(one-q)/(one+q)*(f_SE-feq*om1)/(one-om1)+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q);
-         //(D.f[dirNW])[knw]=zero;
+         //(D.f[NW])[knw]=(one-q)/(one+q)*(f_SE-feq*om1)/(one-om1)+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q);
+         //(D.f[NW])[knw]=zero;
       }
 
       q = q_dirNW[k];
@@ -1063,10 +1063,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (y == true) VeloY = c0o1;
          feq=c1o54* (drho/*+three*(-vx1+vx2    )*/+c9o2*(-vx1+vx2    )*(-vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q) - c1o54 * drho;
+         (D.f[SE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(-vx1+vx2    )+c9over2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq); 
-         //(D.f[dirSE])[kse]=(one-q)/(one+q)*(f_NW-feq*om1)/(one-om1)+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q);
-         //(D.f[dirSE])[kse]=zero;
+         //(D.f[SE])[kse]=(one-q)/(one+q)*(f_NW-feq*om1)/(one-om1)+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q);
+         //(D.f[SE])[kse]=zero;
       }
 
       q = q_dirTE[k];
@@ -1079,10 +1079,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (z == true) VeloZ = c0o1;
       //  if (k==10000) printf("AFTER x: %u \t  y: %u \t z: %u \n  VeloX: %f \t VeloY: %f \t VeloZ: %f \n\n", x,y,z, VeloX,VeloY,VeloZ);
          feq=c1o54* (drho/*+three*( vx1    +vx3)*/+c9o2*( vx1    +vx3)*( vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[BW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*( vx1    +vx3)+c9over2*( vx1    +vx3)*( vx1    +vx3)-cu_sq); 
-         //(D.f[dirBW])[kbw]=(one-q)/(one+q)*(f_TE-feq*om1)/(one-om1)+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q);
-         //(D.f[dirBW])[kbw]=zero;
+         //(D.f[BW])[kbw]=(one-q)/(one+q)*(f_TE-feq*om1)/(one-om1)+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q);
+         //(D.f[BW])[kbw]=zero;
       }
 
       q = q_dirBW[k];
@@ -1094,10 +1094,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*(-vx1    -vx3)*/+c9o2*(-vx1    -vx3)*(-vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[TE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(-vx1    -vx3)+c9over2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq); 
-         //(D.f[dirTE])[kte]=(one-q)/(one+q)*(f_BW-feq*om1)/(one-om1)+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q);
-         //(D.f[dirTE])[kte]=zero;
+         //(D.f[TE])[kte]=(one-q)/(one+q)*(f_BW-feq*om1)/(one-om1)+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q);
+         //(D.f[TE])[kte]=zero;
       }
 
       q = q_dirBE[k];
@@ -1109,10 +1109,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*( vx1    -vx3)*/+c9o2*( vx1    -vx3)*( vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[TW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*( vx1    -vx3)+c9over2*( vx1    -vx3)*( vx1    -vx3)-cu_sq); 
-         //(D.f[dirTW])[ktw]=(one-q)/(one+q)*(f_BE-feq*om1)/(one-om1)+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q);
-         //(D.f[dirTW])[ktw]=zero;
+         //(D.f[TW])[ktw]=(one-q)/(one+q)*(f_BE-feq*om1)/(one-om1)+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q);
+         //(D.f[TW])[ktw]=zero;
       }
 
       q = q_dirTW[k];
@@ -1124,10 +1124,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*(-vx1    +vx3)*/+c9o2*(-vx1    +vx3)*(-vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[BE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(-vx1    +vx3)+c9over2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq); 
-         //(D.f[dirBE])[kbe]=(one-q)/(one+q)*(f_TW-feq*om1)/(one-om1)+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q);
-         //(D.f[dirBE])[kbe]=zero;
+         //(D.f[BE])[kbe]=(one-q)/(one+q)*(f_TW-feq*om1)/(one-om1)+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q);
+         //(D.f[BE])[kbe]=zero;
       }
 
       q = q_dirTN[k];
@@ -1139,10 +1139,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*(     vx2+vx3)*/+c9o2*(     vx2+vx3)*(     vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[BS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(     vx2+vx3)+c9over2*(     vx2+vx3)*(     vx2+vx3)-cu_sq); 
-         //(D.f[dirBS])[kbs]=(one-q)/(one+q)*(f_TN-feq*om1)/(one-om1)+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q);
-         //(D.f[dirBS])[kbs]=zero;
+         //(D.f[BS])[kbs]=(one-q)/(one+q)*(f_TN-feq*om1)/(one-om1)+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q);
+         //(D.f[BS])[kbs]=zero;
       }
 
       q = q_dirBS[k];
@@ -1154,10 +1154,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*(    -vx2-vx3)*/+c9o2*(    -vx2-vx3)*(    -vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[TN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(    -vx2-vx3)+c9over2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq); 
-         //(D.f[dirTN])[ktn]=(one-q)/(one+q)*(f_BS-feq*om1)/(one-om1)+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q);
-         //(D.f[dirTN])[ktn]=zero;
+         //(D.f[TN])[ktn]=(one-q)/(one+q)*(f_BS-feq*om1)/(one-om1)+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q);
+         //(D.f[TN])[ktn]=zero;
       }
 
       q = q_dirBN[k];
@@ -1169,10 +1169,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*(     vx2-vx3)*/+c9o2*(     vx2-vx3)*(     vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[TS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(     vx2-vx3)+c9over2*(     vx2-vx3)*(     vx2-vx3)-cu_sq); 
-         //(D.f[dirTS])[kts]=(one-q)/(one+q)*(f_BN-feq*om1)/(one-om1)+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q);
-         //(D.f[dirTS])[kts]=zero;
+         //(D.f[TS])[kts]=(one-q)/(one+q)*(f_BN-feq*om1)/(one-om1)+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q);
+         //(D.f[TS])[kts]=zero;
       }
 
       q = q_dirTS[k];
@@ -1184,10 +1184,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*(    -vx2+vx3)*/+c9o2*(    -vx2+vx3)*(    -vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[BN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(    -vx2+vx3)+c9over2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq); 
-         //(D.f[dirBN])[kbn]=(one-q)/(one+q)*(f_TS-feq*om1)/(one-om1)+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q);
-         //(D.f[dirBN])[kbn]=zero;
+         //(D.f[BN])[kbn]=(one-q)/(one+q)*(f_TS-feq*om1)/(one-om1)+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q);
+         //(D.f[BN])[kbn]=zero;
       }
 
       q = q_dirTNE[k];
@@ -1200,10 +1200,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[BSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*( vx1+vx2+vx3)+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); 
-         //(D.f[dirBSW])[kbsw]=(one-q)/(one+q)*(f_TNE-feq*om1)/(one-om1)+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q);
-         //(D.f[dirBSW])[kbsw]=zero;
+         //(D.f[BSW])[kbsw]=(one-q)/(one+q)*(f_TNE-feq*om1)/(one-om1)+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q);
+         //(D.f[BSW])[kbsw]=zero;
       }
 
       q = q_dirBSW[k];
@@ -1216,10 +1216,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[TNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*(-vx1-vx2-vx3)+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); 
-         //(D.f[dirTNE])[ktne]=(one-q)/(one+q)*(f_BSW-feq*om1)/(one-om1)+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q);
-         //(D.f[dirTNE])[ktne]=zero;
+         //(D.f[TNE])[ktne]=(one-q)/(one+q)*(f_BSW-feq*om1)/(one-om1)+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q);
+         //(D.f[TNE])[ktne]=zero;
       }
 
       q = q_dirBNE[k];
@@ -1232,10 +1232,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[TSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*( vx1+vx2-vx3)+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); 
-         //(D.f[dirTSW])[ktsw]=(one-q)/(one+q)*(f_BNE-feq*om1)/(one-om1)+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q);
-         //(D.f[dirTSW])[ktsw]=zero;
+         //(D.f[TSW])[ktsw]=(one-q)/(one+q)*(f_BNE-feq*om1)/(one-om1)+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q);
+         //(D.f[TSW])[ktsw]=zero;
       }
 
       q = q_dirTSW[k];
@@ -1248,10 +1248,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[BNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*(-vx1-vx2+vx3)+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); 
-         //(D.f[dirBNE])[kbne]=(one-q)/(one+q)*(f_TSW-feq*om1)/(one-om1)+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q);
-         //(D.f[dirBNE])[kbne]=zero;
+         //(D.f[BNE])[kbne]=(one-q)/(one+q)*(f_TSW-feq*om1)/(one-om1)+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q);
+         //(D.f[BNE])[kbne]=zero;
       }
 
       q = q_dirTSE[k];
@@ -1264,10 +1264,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[BNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*( vx1-vx2+vx3)+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); 
-         //(D.f[dirBNW])[kbnw]=(one-q)/(one+q)*(f_TSE-feq*om1)/(one-om1)+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q);
-         //(D.f[dirBNW])[kbnw]=zero;
+         //(D.f[BNW])[kbnw]=(one-q)/(one+q)*(f_TSE-feq*om1)/(one-om1)+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q);
+         //(D.f[BNW])[kbnw]=zero;
       }
 
       q = q_dirBNW[k];
@@ -1280,10 +1280,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[TSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); 
-         //(D.f[dirTSE])[ktse]=(one-q)/(one+q)*(f_BNW-feq*om1)/(one-om1)+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q);
-         //(D.f[dirTSE])[ktse]=zero;
+         //(D.f[TSE])[ktse]=(one-q)/(one+q)*(f_BNW-feq*om1)/(one-om1)+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q);
+         //(D.f[TSE])[ktse]=zero;
       }
 
       q = q_dirBSE[k];
@@ -1296,10 +1296,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[TNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); 
-         //(D.f[dirTNW])[ktnw]=(one-q)/(one+q)*(f_BSE-feq*om1)/(one-om1)+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q);
-         //(D.f[dirTNW])[ktnw]=zero;
+         //(D.f[TNW])[ktnw]=(one-q)/(one+q)*(f_BSE-feq*om1)/(one-om1)+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q);
+         //(D.f[TNW])[ktnw]=zero;
       }
 
       q = q_dirTNW[k];
@@ -1312,10 +1312,10 @@ extern "C" __global__ void QSlipDeviceComp27(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[BSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); 
-         //(D.f[dirBSE])[kbse]=(one-q)/(one+q)*(f_TNW-feq*om1)/(one-om1)+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q);
-         //(D.f[dirBSE])[kbse]=zero;
+         //(D.f[BSE])[kbse]=(one-q)/(one+q)*(f_TNW-feq*om1)/(one-om1)+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q);
+         //(D.f[BSE])[kbse]=zero;
       }
    }
 }
@@ -1336,63 +1336,63 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -1413,32 +1413,32 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -1471,32 +1471,32 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
       unsigned int kbsw = neighborZ[ksw];
       
       ////////////////////////////////////////////////////////////////////////////////
-      real f_W    = (D.f[dirE   ])[ke   ];
-      real f_E    = (D.f[dirW   ])[kw   ];
-      real f_S    = (D.f[dirN   ])[kn   ];
-      real f_N    = (D.f[dirS   ])[ks   ];
-      real f_B    = (D.f[dirT   ])[kt   ];
-      real f_T    = (D.f[dirB   ])[kb   ];
-      real f_SW   = (D.f[dirNE  ])[kne  ];
-      real f_NE   = (D.f[dirSW  ])[ksw  ];
-      real f_NW   = (D.f[dirSE  ])[kse  ];
-      real f_SE   = (D.f[dirNW  ])[knw  ];
-      real f_BW   = (D.f[dirTE  ])[kte  ];
-      real f_TE   = (D.f[dirBW  ])[kbw  ];
-      real f_TW   = (D.f[dirBE  ])[kbe  ];
-      real f_BE   = (D.f[dirTW  ])[ktw  ];
-      real f_BS   = (D.f[dirTN  ])[ktn  ];
-      real f_TN   = (D.f[dirBS  ])[kbs  ];
-      real f_TS   = (D.f[dirBN  ])[kbn  ];
-      real f_BN   = (D.f[dirTS  ])[kts  ];
-      real f_BSW  = (D.f[dirTNE ])[ktne ];
-      real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      real f_BNW  = (D.f[dirTSE ])[ktse ];
-      real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      real f_TSW  = (D.f[dirBNE ])[kbne ];
-      real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      real f_TNW  = (D.f[dirBSE ])[kbse ];
-      real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      real f_W    = (D.f[E   ])[ke   ];
+      real f_E    = (D.f[W   ])[kw   ];
+      real f_S    = (D.f[N   ])[kn   ];
+      real f_N    = (D.f[S   ])[ks   ];
+      real f_B    = (D.f[T   ])[kt   ];
+      real f_T    = (D.f[B   ])[kb   ];
+      real f_SW   = (D.f[NE  ])[kne  ];
+      real f_NE   = (D.f[SW  ])[ksw  ];
+      real f_NW   = (D.f[SE  ])[kse  ];
+      real f_SE   = (D.f[NW  ])[knw  ];
+      real f_BW   = (D.f[TE  ])[kte  ];
+      real f_TE   = (D.f[BW  ])[kbw  ];
+      real f_TW   = (D.f[BE  ])[kbe  ];
+      real f_BE   = (D.f[TW  ])[ktw  ];
+      real f_BS   = (D.f[TN  ])[ktn  ];
+      real f_TN   = (D.f[BS  ])[kbs  ];
+      real f_TS   = (D.f[BN  ])[kbn  ];
+      real f_BN   = (D.f[TS  ])[kts  ];
+      real f_BSW  = (D.f[TNE ])[ktne ];
+      real f_BNE  = (D.f[TSW ])[ktsw ];
+      real f_BNW  = (D.f[TSE ])[ktse ];
+      real f_BSE  = (D.f[TNW ])[ktnw ];
+      real f_TSW  = (D.f[BNE ])[kbne ];
+      real f_TNE  = (D.f[BSW ])[kbsw ];
+      real f_TNW  = (D.f[BSE ])[kbse ];
+      real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q;
       drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -1521,63 +1521,63 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -1601,10 +1601,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 	     VeloZ = fac*vx3;
 		 x = true;
          feq=c2o27* (drho/*+three*( vx1        )*/+c9o2*( vx1        )*( vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirW])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_E+f_W)-c6o1*c2o27*( VeloX     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[W])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_E+f_W)-c6o1*c2o27*( VeloX     ))/(c1o1+q) - c2o27 * drho;
          //feq=c2over27* (drho+three*( vx1        )+c9over2*( vx1        )*( vx1        )-cu_sq); 
-         //(D.f[dirW])[kw]=(one-q)/(one+q)*(f_E-feq*om1)/(one-om1)+(q*(f_E+f_W)-six*c2over27*( VeloX     ))/(one+q);
-         //(D.f[dirW])[kw]=zero;
+         //(D.f[W])[kw]=(one-q)/(one+q)*(f_E-feq*om1)/(one-om1)+(q*(f_E+f_W)-six*c2over27*( VeloX     ))/(one+q);
+         //(D.f[W])[kw]=zero;
       }
 
       q = q_dirW[k];
@@ -1615,10 +1615,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 	     VeloZ = fac*vx3;
 		 x = true;
          feq=c2o27* (drho/*+three*(-vx1        )*/+c9o2*(-vx1        )*(-vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirE])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[E])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX     ))/(c1o1+q) - c2o27 * drho;
          //feq=c2over27* (drho+three*(-vx1        )+c9over2*(-vx1        )*(-vx1        )-cu_sq); 
-         //(D.f[dirE])[ke]=(one-q)/(one+q)*(f_W-feq*om_turb)/(one-om_turb)+(q*(f_W+f_E)-six*c2over27*(-VeloX     ))/(one+q);
-         //(D.f[dirE])[ke]=zero;
+         //(D.f[E])[ke]=(one-q)/(one+q)*(f_W-feq*om_turb)/(one-om_turb)+(q*(f_W+f_E)-six*c2over27*(-VeloX     ))/(one+q);
+         //(D.f[E])[ke]=zero;
       }
 
       q = q_dirN[k];
@@ -1629,10 +1629,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 	     VeloZ = fac*vx3;
 		 y = true;
          feq=c2o27* (drho/*+three*(    vx2     )*/+c9o2*(     vx2    )*(     vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirS])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_N+f_S)-c6o1*c2o27*( VeloY     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[S])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_N+f_S)-c6o1*c2o27*( VeloY     ))/(c1o1+q) - c2o27 * drho;
          //feq=c2over27* (drho+three*(    vx2     )+c9over2*(     vx2    )*(     vx2    )-cu_sq); 
-         //(D.f[dirS])[ks]=(one-q)/(one+q)*(f_N-feq*om_turb)/(one-om_turb)+(q*(f_N+f_S)-six*c2over27*( VeloY     ))/(one+q);
-         //(D.f[dirS])[ks]=zero;
+         //(D.f[S])[ks]=(one-q)/(one+q)*(f_N-feq*om_turb)/(one-om_turb)+(q*(f_N+f_S)-six*c2over27*( VeloY     ))/(one+q);
+         //(D.f[S])[ks]=zero;
       }
 
       q = q_dirS[k];
@@ -1643,10 +1643,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 	     VeloZ = fac*vx3;
 		 y = true;
          feq=c2o27* (drho/*+three*(   -vx2     )*/+c9o2*(    -vx2    )*(    -vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirN])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[N])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY     ))/(c1o1+q) - c2o27 * drho;
          //feq=c2over27* (drho+three*(   -vx2     )+c9over2*(    -vx2    )*(    -vx2    )-cu_sq); 
-         //(D.f[dirN])[kn]=(one-q)/(one+q)*(f_S-feq*om_turb)/(one-om_turb)+(q*(f_S+f_N)-six*c2over27*(-VeloY     ))/(one+q);
-         //(D.f[dirN])[kn]=zero;
+         //(D.f[N])[kn]=(one-q)/(one+q)*(f_S-feq*om_turb)/(one-om_turb)+(q*(f_S+f_N)-six*c2over27*(-VeloY     ))/(one+q);
+         //(D.f[N])[kn]=zero;
       }
 
       q = q_dirT[k];
@@ -1657,10 +1657,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 VeloZ = c0o1;
 		 z = true;
          feq=c2o27* (drho/*+three*(         vx3)*/+c9o2*(         vx3)*(         vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirB])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[B])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ     ))/(c1o1+q) - c2o27 * drho;
          //feq=c2over27* (drho+three*(         vx3)+c9over2*(         vx3)*(         vx3)-cu_sq); 
-         //(D.f[dirB])[kb]=(one-q)/(one+q)*(f_T-feq*om_turb)/(one-om_turb)+(q*(f_T+f_B)-six*c2over27*( VeloZ     ))/(one+q);
-         //(D.f[dirB])[kb]=one;
+         //(D.f[B])[kb]=(one-q)/(one+q)*(f_T-feq*om_turb)/(one-om_turb)+(q*(f_T+f_B)-six*c2over27*( VeloZ     ))/(one+q);
+         //(D.f[B])[kb]=one;
       }
 
       q = q_dirB[k];
@@ -1671,10 +1671,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 VeloZ = c0o1;
 		 z = true;
          feq=c2o27* (drho/*+three*(        -vx3)*/+c9o2*(        -vx3)*(        -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirT])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[T])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ     ))/(c1o1+q) - c2o27 * drho;
          //feq=c2over27* (drho+three*(        -vx3)+c9over2*(        -vx3)*(        -vx3)-cu_sq); 
-         //(D.f[dirT])[kt]=(one-q)/(one+q)*(f_B-feq*om_turb)/(one-om_turb)+(q*(f_B+f_T)-six*c2over27*(-VeloZ     ))/(one+q);
-         //(D.f[dirT])[kt]=zero;
+         //(D.f[T])[kt]=(one-q)/(one+q)*(f_B-feq*om_turb)/(one-om_turb)+(q*(f_B+f_T)-six*c2over27*(-VeloZ     ))/(one+q);
+         //(D.f[T])[kt]=zero;
       }
 
       q = q_dirNE[k];
@@ -1686,10 +1686,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (y == true) VeloY = c0o1;
          feq=c1o54* (drho/*+three*( vx1+vx2    )*/+c9o2*( vx1+vx2    )*( vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q) - c1o54 * drho;
+         (D.f[SW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*( vx1+vx2    )+c9over2*( vx1+vx2    )*( vx1+vx2    )-cu_sq); 
-         //(D.f[dirSW])[ksw]=(one-q)/(one+q)*(f_NE-feq*om_turb)/(one-om_turb)+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q);
-         //(D.f[dirSW])[ksw]=zero;
+         //(D.f[SW])[ksw]=(one-q)/(one+q)*(f_NE-feq*om_turb)/(one-om_turb)+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q);
+         //(D.f[SW])[ksw]=zero;
       }
 
       q = q_dirSW[k];
@@ -1701,10 +1701,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (y == true) VeloY = c0o1;
          feq=c1o54* (drho/*+three*(-vx1-vx2    )*/+c9o2*(-vx1-vx2    )*(-vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q) - c1o54 * drho;
+         (D.f[NE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(-vx1-vx2    )+c9over2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq); 
-         //(D.f[dirNE])[kne]=(one-q)/(one+q)*(f_SW-feq*om_turb)/(one-om_turb)+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q);
-         //(D.f[dirNE])[kne]=zero;
+         //(D.f[NE])[kne]=(one-q)/(one+q)*(f_SW-feq*om_turb)/(one-om_turb)+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q);
+         //(D.f[NE])[kne]=zero;
       }
 
       q = q_dirSE[k];
@@ -1716,10 +1716,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (y == true) VeloY = c0o1;
          feq=c1o54* (drho/*+three*( vx1-vx2    )*/+c9o2*( vx1-vx2    )*( vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q) - c1o54 * drho;
+         (D.f[NW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*( vx1-vx2    )+c9over2*( vx1-vx2    )*( vx1-vx2    )-cu_sq); 
-         //(D.f[dirNW])[knw]=(one-q)/(one+q)*(f_SE-feq*om_turb)/(one-om_turb)+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q);
-         //(D.f[dirNW])[knw]=zero;
+         //(D.f[NW])[knw]=(one-q)/(one+q)*(f_SE-feq*om_turb)/(one-om_turb)+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q);
+         //(D.f[NW])[knw]=zero;
       }
 
       q = q_dirNW[k];
@@ -1731,10 +1731,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (y == true) VeloY = c0o1;
          feq=c1o54* (drho/*+three*(-vx1+vx2    )*/+c9o2*(-vx1+vx2    )*(-vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q) - c1o54 * drho;
+         (D.f[SE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(-vx1+vx2    )+c9over2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq); 
-         //(D.f[dirSE])[kse]=(one-q)/(one+q)*(f_NW-feq*om_turb)/(one-om_turb)+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q);
-         //(D.f[dirSE])[kse]=zero;
+         //(D.f[SE])[kse]=(one-q)/(one+q)*(f_NW-feq*om_turb)/(one-om_turb)+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q);
+         //(D.f[SE])[kse]=zero;
       }
 
       q = q_dirTE[k];
@@ -1747,10 +1747,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (z == true) VeloZ = c0o1;
       //  if (k==10000) printf("AFTER x: %u \t  y: %u \t z: %u \n  VeloX: %f \t VeloY: %f \t VeloZ: %f \n\n", x,y,z, VeloX,VeloY,VeloZ);
          feq=c1o54* (drho/*+three*( vx1    +vx3)*/+c9o2*( vx1    +vx3)*( vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[BW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*( vx1    +vx3)+c9over2*( vx1    +vx3)*( vx1    +vx3)-cu_sq); 
-         //(D.f[dirBW])[kbw]=(one-q)/(one+q)*(f_TE-feq*om_turb)/(one-om_turb)+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q);
-         //(D.f[dirBW])[kbw]=zero;
+         //(D.f[BW])[kbw]=(one-q)/(one+q)*(f_TE-feq*om_turb)/(one-om_turb)+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q);
+         //(D.f[BW])[kbw]=zero;
       }
 
       q = q_dirBW[k];
@@ -1762,10 +1762,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*(-vx1    -vx3)*/+c9o2*(-vx1    -vx3)*(-vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[TE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(-vx1    -vx3)+c9over2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq); 
-         //(D.f[dirTE])[kte]=(one-q)/(one+q)*(f_BW-feq*om_turb)/(one-om_turb)+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q);
-         //(D.f[dirTE])[kte]=zero;
+         //(D.f[TE])[kte]=(one-q)/(one+q)*(f_BW-feq*om_turb)/(one-om_turb)+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q);
+         //(D.f[TE])[kte]=zero;
       }
 
       q = q_dirBE[k];
@@ -1777,10 +1777,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*( vx1    -vx3)*/+c9o2*( vx1    -vx3)*( vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[TW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*( vx1    -vx3)+c9over2*( vx1    -vx3)*( vx1    -vx3)-cu_sq); 
-         //(D.f[dirTW])[ktw]=(one-q)/(one+q)*(f_BE-feq*om_turb)/(one-om_turb)+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q);
-         //(D.f[dirTW])[ktw]=zero;
+         //(D.f[TW])[ktw]=(one-q)/(one+q)*(f_BE-feq*om_turb)/(one-om_turb)+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q);
+         //(D.f[TW])[ktw]=zero;
       }
 
       q = q_dirTW[k];
@@ -1792,10 +1792,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (x == true) VeloX = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*(-vx1    +vx3)*/+c9o2*(-vx1    +vx3)*(-vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[BE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(-vx1    +vx3)+c9over2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq); 
-         //(D.f[dirBE])[kbe]=(one-q)/(one+q)*(f_TW-feq*om_turb)/(one-om_turb)+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q);
-         //(D.f[dirBE])[kbe]=zero;
+         //(D.f[BE])[kbe]=(one-q)/(one+q)*(f_TW-feq*om_turb)/(one-om_turb)+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q);
+         //(D.f[BE])[kbe]=zero;
       }
 
       q = q_dirTN[k];
@@ -1807,10 +1807,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*(     vx2+vx3)*/+c9o2*(     vx2+vx3)*(     vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[BS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(     vx2+vx3)+c9over2*(     vx2+vx3)*(     vx2+vx3)-cu_sq); 
-         //(D.f[dirBS])[kbs]=(one-q)/(one+q)*(f_TN-feq*om_turb)/(one-om_turb)+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q);
-         //(D.f[dirBS])[kbs]=zero;
+         //(D.f[BS])[kbs]=(one-q)/(one+q)*(f_TN-feq*om_turb)/(one-om_turb)+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q);
+         //(D.f[BS])[kbs]=zero;
       }
 
       q = q_dirBS[k];
@@ -1822,10 +1822,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*(    -vx2-vx3)*/+c9o2*(    -vx2-vx3)*(    -vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[TN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(    -vx2-vx3)+c9over2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq); 
-         //(D.f[dirTN])[ktn]=(one-q)/(one+q)*(f_BS-feq*om_turb)/(one-om_turb)+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q);
-         //(D.f[dirTN])[ktn]=zero;
+         //(D.f[TN])[ktn]=(one-q)/(one+q)*(f_BS-feq*om_turb)/(one-om_turb)+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q);
+         //(D.f[TN])[ktn]=zero;
       }
 
       q = q_dirBN[k];
@@ -1837,10 +1837,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*(     vx2-vx3)*/+c9o2*(     vx2-vx3)*(     vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[TS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(     vx2-vx3)+c9over2*(     vx2-vx3)*(     vx2-vx3)-cu_sq); 
-         //(D.f[dirTS])[kts]=(one-q)/(one+q)*(f_BN-feq*om_turb)/(one-om_turb)+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q);
-         //(D.f[dirTS])[kts]=zero;
+         //(D.f[TS])[kts]=(one-q)/(one+q)*(f_BN-feq*om_turb)/(one-om_turb)+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q);
+         //(D.f[TS])[kts]=zero;
       }
 
       q = q_dirTS[k];
@@ -1852,10 +1852,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o54* (drho/*+three*(    -vx2+vx3)*/+c9o2*(    -vx2+vx3)*(    -vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[BN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q) - c1o54 * drho;
          //feq=c1over54* (drho+three*(    -vx2+vx3)+c9over2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq); 
-         //(D.f[dirBN])[kbn]=(one-q)/(one+q)*(f_TS-feq*om_turb)/(one-om_turb)+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q);
-         //(D.f[dirBN])[kbn]=zero;
+         //(D.f[BN])[kbn]=(one-q)/(one+q)*(f_TS-feq*om_turb)/(one-om_turb)+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q);
+         //(D.f[BN])[kbn]=zero;
       }
 
       q = q_dirTNE[k];
@@ -1868,10 +1868,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[BSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*( vx1+vx2+vx3)+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); 
-         //(D.f[dirBSW])[kbsw]=(one-q)/(one+q)*(f_TNE-feq*om_turb)/(one-om_turb)+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q);
-         //(D.f[dirBSW])[kbsw]=zero;
+         //(D.f[BSW])[kbsw]=(one-q)/(one+q)*(f_TNE-feq*om_turb)/(one-om_turb)+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q);
+         //(D.f[BSW])[kbsw]=zero;
       }
 
       q = q_dirBSW[k];
@@ -1884,10 +1884,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[TNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*(-vx1-vx2-vx3)+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); 
-         //(D.f[dirTNE])[ktne]=(one-q)/(one+q)*(f_BSW-feq*om_turb)/(one-om_turb)+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q);
-         //(D.f[dirTNE])[ktne]=zero;
+         //(D.f[TNE])[ktne]=(one-q)/(one+q)*(f_BSW-feq*om_turb)/(one-om_turb)+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q);
+         //(D.f[TNE])[ktne]=zero;
       }
 
       q = q_dirBNE[k];
@@ -1900,10 +1900,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[TSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*( vx1+vx2-vx3)+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); 
-         //(D.f[dirTSW])[ktsw]=(one-q)/(one+q)*(f_BNE-feq*om_turb)/(one-om_turb)+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q);
-         //(D.f[dirTSW])[ktsw]=zero;
+         //(D.f[TSW])[ktsw]=(one-q)/(one+q)*(f_BNE-feq*om_turb)/(one-om_turb)+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q);
+         //(D.f[TSW])[ktsw]=zero;
       }
 
       q = q_dirTSW[k];
@@ -1916,10 +1916,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[BNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*(-vx1-vx2+vx3)+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); 
-         //(D.f[dirBNE])[kbne]=(one-q)/(one+q)*(f_TSW-feq*om_turb)/(one-om_turb)+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q);
-         //(D.f[dirBNE])[kbne]=zero;
+         //(D.f[BNE])[kbne]=(one-q)/(one+q)*(f_TSW-feq*om_turb)/(one-om_turb)+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q);
+         //(D.f[BNE])[kbne]=zero;
       }
 
       q = q_dirTSE[k];
@@ -1932,10 +1932,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[BNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*( vx1-vx2+vx3)+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); 
-         //(D.f[dirBNW])[kbnw]=(one-q)/(one+q)*(f_TSE-feq*om_turb)/(one-om_turb)+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q);
-         //(D.f[dirBNW])[kbnw]=zero;
+         //(D.f[BNW])[kbnw]=(one-q)/(one+q)*(f_TSE-feq*om_turb)/(one-om_turb)+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q);
+         //(D.f[BNW])[kbnw]=zero;
       }
 
       q = q_dirBNW[k];
@@ -1948,10 +1948,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[TSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); 
-         //(D.f[dirTSE])[ktse]=(one-q)/(one+q)*(f_BNW-feq*om_turb)/(one-om_turb)+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q);
-         //(D.f[dirTSE])[ktse]=zero;
+         //(D.f[TSE])[ktse]=(one-q)/(one+q)*(f_BNW-feq*om_turb)/(one-om_turb)+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q);
+         //(D.f[TSE])[ktse]=zero;
       }
 
       q = q_dirBSE[k];
@@ -1964,10 +1964,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[TNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); 
-         //(D.f[dirTNW])[ktnw]=(one-q)/(one+q)*(f_BSE-feq*om_turb)/(one-om_turb)+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q);
-         //(D.f[dirTNW])[ktnw]=zero;
+         //(D.f[TNW])[ktnw]=(one-q)/(one+q)*(f_BSE-feq*om_turb)/(one-om_turb)+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q);
+         //(D.f[TNW])[ktnw]=zero;
       }
 
       q = q_dirTNW[k];
@@ -1980,10 +1980,10 @@ extern "C" __global__ void QSlipDeviceComp27TurbViscosity(real* DD,
 		 if (y == true) VeloY = c0o1;
 		 if (z == true) VeloZ = c0o1;
          feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[BSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
          //feq=c1over216*(drho+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); 
-         //(D.f[dirBSE])[kbse]=(one-q)/(one+q)*(f_TNW-feq*om_turb)/(one-om_turb)+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q);
-         //(D.f[dirBSE])[kbse]=zero;
+         //(D.f[BSE])[kbse]=(one-q)/(one+q)*(f_TNW-feq*om_turb)/(one-om_turb)+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q);
+         //(D.f[BSE])[kbse]=zero;
       }
    }
 }
@@ -2043,63 +2043,63 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -2120,128 +2120,128 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       real *nx_dirE,   *nx_dirW,   *nx_dirN,   *nx_dirS,   *nx_dirT,   *nx_dirB, 
               *nx_dirNE,  *nx_dirSW,  *nx_dirSE,  *nx_dirNW,  *nx_dirTE,  *nx_dirBW,
               *nx_dirBE,  *nx_dirTW,  *nx_dirTN,  *nx_dirBS,  *nx_dirBN,  *nx_dirTS,
               *nx_dirTNE, *nx_dirTSW, *nx_dirTSE, *nx_dirTNW, *nx_dirBNE, *nx_dirBSW,
               *nx_dirBSE, *nx_dirBNW; 
-      nx_dirE   = &NormalX[dirE   * numberOfBCnodes];
-      nx_dirW   = &NormalX[dirW   * numberOfBCnodes];
-      nx_dirN   = &NormalX[dirN   * numberOfBCnodes];
-      nx_dirS   = &NormalX[dirS   * numberOfBCnodes];
-      nx_dirT   = &NormalX[dirT   * numberOfBCnodes];
-      nx_dirB   = &NormalX[dirB   * numberOfBCnodes];
-      nx_dirNE  = &NormalX[dirNE  * numberOfBCnodes];
-      nx_dirSW  = &NormalX[dirSW  * numberOfBCnodes];
-      nx_dirSE  = &NormalX[dirSE  * numberOfBCnodes];
-      nx_dirNW  = &NormalX[dirNW  * numberOfBCnodes];
-      nx_dirTE  = &NormalX[dirTE  * numberOfBCnodes];
-      nx_dirBW  = &NormalX[dirBW  * numberOfBCnodes];
-      nx_dirBE  = &NormalX[dirBE  * numberOfBCnodes];
-      nx_dirTW  = &NormalX[dirTW  * numberOfBCnodes];
-      nx_dirTN  = &NormalX[dirTN  * numberOfBCnodes];
-      nx_dirBS  = &NormalX[dirBS  * numberOfBCnodes];
-      nx_dirBN  = &NormalX[dirBN  * numberOfBCnodes];
-      nx_dirTS  = &NormalX[dirTS  * numberOfBCnodes];
-      nx_dirTNE = &NormalX[dirTNE * numberOfBCnodes];
-      nx_dirTSW = &NormalX[dirTSW * numberOfBCnodes];
-      nx_dirTSE = &NormalX[dirTSE * numberOfBCnodes];
-      nx_dirTNW = &NormalX[dirTNW * numberOfBCnodes];
-      nx_dirBNE = &NormalX[dirBNE * numberOfBCnodes];
-      nx_dirBSW = &NormalX[dirBSW * numberOfBCnodes];
-      nx_dirBSE = &NormalX[dirBSE * numberOfBCnodes];
-      nx_dirBNW = &NormalX[dirBNW * numberOfBCnodes];
+      nx_dirE   = &NormalX[E   * numberOfBCnodes];
+      nx_dirW   = &NormalX[W   * numberOfBCnodes];
+      nx_dirN   = &NormalX[N   * numberOfBCnodes];
+      nx_dirS   = &NormalX[S   * numberOfBCnodes];
+      nx_dirT   = &NormalX[T   * numberOfBCnodes];
+      nx_dirB   = &NormalX[B   * numberOfBCnodes];
+      nx_dirNE  = &NormalX[NE  * numberOfBCnodes];
+      nx_dirSW  = &NormalX[SW  * numberOfBCnodes];
+      nx_dirSE  = &NormalX[SE  * numberOfBCnodes];
+      nx_dirNW  = &NormalX[NW  * numberOfBCnodes];
+      nx_dirTE  = &NormalX[TE  * numberOfBCnodes];
+      nx_dirBW  = &NormalX[BW  * numberOfBCnodes];
+      nx_dirBE  = &NormalX[BE  * numberOfBCnodes];
+      nx_dirTW  = &NormalX[TW  * numberOfBCnodes];
+      nx_dirTN  = &NormalX[TN  * numberOfBCnodes];
+      nx_dirBS  = &NormalX[BS  * numberOfBCnodes];
+      nx_dirBN  = &NormalX[BN  * numberOfBCnodes];
+      nx_dirTS  = &NormalX[TS  * numberOfBCnodes];
+      nx_dirTNE = &NormalX[TNE * numberOfBCnodes];
+      nx_dirTSW = &NormalX[TSW * numberOfBCnodes];
+      nx_dirTSE = &NormalX[TSE * numberOfBCnodes];
+      nx_dirTNW = &NormalX[TNW * numberOfBCnodes];
+      nx_dirBNE = &NormalX[BNE * numberOfBCnodes];
+      nx_dirBSW = &NormalX[BSW * numberOfBCnodes];
+      nx_dirBSE = &NormalX[BSE * numberOfBCnodes];
+      nx_dirBNW = &NormalX[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       real *ny_dirE,   *ny_dirW,   *ny_dirN,   *ny_dirS,   *ny_dirT,   *ny_dirB, 
               *ny_dirNE,  *ny_dirSW,  *ny_dirSE,  *ny_dirNW,  *ny_dirTE,  *ny_dirBW,
               *ny_dirBE,  *ny_dirTW,  *ny_dirTN,  *ny_dirBS,  *ny_dirBN,  *ny_dirTS,
               *ny_dirTNE, *ny_dirTSW, *ny_dirTSE, *ny_dirTNW, *ny_dirBNE, *ny_dirBSW,
               *ny_dirBSE, *ny_dirBNW; 
-      ny_dirE   = &NormalY[dirE   * numberOfBCnodes];
-      ny_dirW   = &NormalY[dirW   * numberOfBCnodes];
-      ny_dirN   = &NormalY[dirN   * numberOfBCnodes];
-      ny_dirS   = &NormalY[dirS   * numberOfBCnodes];
-      ny_dirT   = &NormalY[dirT   * numberOfBCnodes];
-      ny_dirB   = &NormalY[dirB   * numberOfBCnodes];
-      ny_dirNE  = &NormalY[dirNE  * numberOfBCnodes];
-      ny_dirSW  = &NormalY[dirSW  * numberOfBCnodes];
-      ny_dirSE  = &NormalY[dirSE  * numberOfBCnodes];
-      ny_dirNW  = &NormalY[dirNW  * numberOfBCnodes];
-      ny_dirTE  = &NormalY[dirTE  * numberOfBCnodes];
-      ny_dirBW  = &NormalY[dirBW  * numberOfBCnodes];
-      ny_dirBE  = &NormalY[dirBE  * numberOfBCnodes];
-      ny_dirTW  = &NormalY[dirTW  * numberOfBCnodes];
-      ny_dirTN  = &NormalY[dirTN  * numberOfBCnodes];
-      ny_dirBS  = &NormalY[dirBS  * numberOfBCnodes];
-      ny_dirBN  = &NormalY[dirBN  * numberOfBCnodes];
-      ny_dirTS  = &NormalY[dirTS  * numberOfBCnodes];
-      ny_dirTNE = &NormalY[dirTNE * numberOfBCnodes];
-      ny_dirTSW = &NormalY[dirTSW * numberOfBCnodes];
-      ny_dirTSE = &NormalY[dirTSE * numberOfBCnodes];
-      ny_dirTNW = &NormalY[dirTNW * numberOfBCnodes];
-      ny_dirBNE = &NormalY[dirBNE * numberOfBCnodes];
-      ny_dirBSW = &NormalY[dirBSW * numberOfBCnodes];
-      ny_dirBSE = &NormalY[dirBSE * numberOfBCnodes];
-      ny_dirBNW = &NormalY[dirBNW * numberOfBCnodes];
+      ny_dirE   = &NormalY[E   * numberOfBCnodes];
+      ny_dirW   = &NormalY[W   * numberOfBCnodes];
+      ny_dirN   = &NormalY[N   * numberOfBCnodes];
+      ny_dirS   = &NormalY[S   * numberOfBCnodes];
+      ny_dirT   = &NormalY[T   * numberOfBCnodes];
+      ny_dirB   = &NormalY[B   * numberOfBCnodes];
+      ny_dirNE  = &NormalY[NE  * numberOfBCnodes];
+      ny_dirSW  = &NormalY[SW  * numberOfBCnodes];
+      ny_dirSE  = &NormalY[SE  * numberOfBCnodes];
+      ny_dirNW  = &NormalY[NW  * numberOfBCnodes];
+      ny_dirTE  = &NormalY[TE  * numberOfBCnodes];
+      ny_dirBW  = &NormalY[BW  * numberOfBCnodes];
+      ny_dirBE  = &NormalY[BE  * numberOfBCnodes];
+      ny_dirTW  = &NormalY[TW  * numberOfBCnodes];
+      ny_dirTN  = &NormalY[TN  * numberOfBCnodes];
+      ny_dirBS  = &NormalY[BS  * numberOfBCnodes];
+      ny_dirBN  = &NormalY[BN  * numberOfBCnodes];
+      ny_dirTS  = &NormalY[TS  * numberOfBCnodes];
+      ny_dirTNE = &NormalY[TNE * numberOfBCnodes];
+      ny_dirTSW = &NormalY[TSW * numberOfBCnodes];
+      ny_dirTSE = &NormalY[TSE * numberOfBCnodes];
+      ny_dirTNW = &NormalY[TNW * numberOfBCnodes];
+      ny_dirBNE = &NormalY[BNE * numberOfBCnodes];
+      ny_dirBSW = &NormalY[BSW * numberOfBCnodes];
+      ny_dirBSE = &NormalY[BSE * numberOfBCnodes];
+      ny_dirBNW = &NormalY[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       real *nz_dirE,   *nz_dirW,   *nz_dirN,   *nz_dirS,   *nz_dirT,   *nz_dirB, 
               *nz_dirNE,  *nz_dirSW,  *nz_dirSE,  *nz_dirNW,  *nz_dirTE,  *nz_dirBW,
               *nz_dirBE,  *nz_dirTW,  *nz_dirTN,  *nz_dirBS,  *nz_dirBN,  *nz_dirTS,
               *nz_dirTNE, *nz_dirTSW, *nz_dirTSE, *nz_dirTNW, *nz_dirBNE, *nz_dirBSW,
               *nz_dirBSE, *nz_dirBNW; 
-      nz_dirE   = &NormalZ[dirE   * numberOfBCnodes];
-      nz_dirW   = &NormalZ[dirW   * numberOfBCnodes];
-      nz_dirN   = &NormalZ[dirN   * numberOfBCnodes];
-      nz_dirS   = &NormalZ[dirS   * numberOfBCnodes];
-      nz_dirT   = &NormalZ[dirT   * numberOfBCnodes];
-      nz_dirB   = &NormalZ[dirB   * numberOfBCnodes];
-      nz_dirNE  = &NormalZ[dirNE  * numberOfBCnodes];
-      nz_dirSW  = &NormalZ[dirSW  * numberOfBCnodes];
-      nz_dirSE  = &NormalZ[dirSE  * numberOfBCnodes];
-      nz_dirNW  = &NormalZ[dirNW  * numberOfBCnodes];
-      nz_dirTE  = &NormalZ[dirTE  * numberOfBCnodes];
-      nz_dirBW  = &NormalZ[dirBW  * numberOfBCnodes];
-      nz_dirBE  = &NormalZ[dirBE  * numberOfBCnodes];
-      nz_dirTW  = &NormalZ[dirTW  * numberOfBCnodes];
-      nz_dirTN  = &NormalZ[dirTN  * numberOfBCnodes];
-      nz_dirBS  = &NormalZ[dirBS  * numberOfBCnodes];
-      nz_dirBN  = &NormalZ[dirBN  * numberOfBCnodes];
-      nz_dirTS  = &NormalZ[dirTS  * numberOfBCnodes];
-      nz_dirTNE = &NormalZ[dirTNE * numberOfBCnodes];
-      nz_dirTSW = &NormalZ[dirTSW * numberOfBCnodes];
-      nz_dirTSE = &NormalZ[dirTSE * numberOfBCnodes];
-      nz_dirTNW = &NormalZ[dirTNW * numberOfBCnodes];
-      nz_dirBNE = &NormalZ[dirBNE * numberOfBCnodes];
-      nz_dirBSW = &NormalZ[dirBSW * numberOfBCnodes];
-      nz_dirBSE = &NormalZ[dirBSE * numberOfBCnodes];
-      nz_dirBNW = &NormalZ[dirBNW * numberOfBCnodes];
+      nz_dirE   = &NormalZ[E   * numberOfBCnodes];
+      nz_dirW   = &NormalZ[W   * numberOfBCnodes];
+      nz_dirN   = &NormalZ[N   * numberOfBCnodes];
+      nz_dirS   = &NormalZ[S   * numberOfBCnodes];
+      nz_dirT   = &NormalZ[T   * numberOfBCnodes];
+      nz_dirB   = &NormalZ[B   * numberOfBCnodes];
+      nz_dirNE  = &NormalZ[NE  * numberOfBCnodes];
+      nz_dirSW  = &NormalZ[SW  * numberOfBCnodes];
+      nz_dirSE  = &NormalZ[SE  * numberOfBCnodes];
+      nz_dirNW  = &NormalZ[NW  * numberOfBCnodes];
+      nz_dirTE  = &NormalZ[TE  * numberOfBCnodes];
+      nz_dirBW  = &NormalZ[BW  * numberOfBCnodes];
+      nz_dirBE  = &NormalZ[BE  * numberOfBCnodes];
+      nz_dirTW  = &NormalZ[TW  * numberOfBCnodes];
+      nz_dirTN  = &NormalZ[TN  * numberOfBCnodes];
+      nz_dirBS  = &NormalZ[BS  * numberOfBCnodes];
+      nz_dirBN  = &NormalZ[BN  * numberOfBCnodes];
+      nz_dirTS  = &NormalZ[TS  * numberOfBCnodes];
+      nz_dirTNE = &NormalZ[TNE * numberOfBCnodes];
+      nz_dirTSW = &NormalZ[TSW * numberOfBCnodes];
+      nz_dirTSE = &NormalZ[TSE * numberOfBCnodes];
+      nz_dirTNW = &NormalZ[TNW * numberOfBCnodes];
+      nz_dirBNE = &NormalZ[BNE * numberOfBCnodes];
+      nz_dirBSW = &NormalZ[BSW * numberOfBCnodes];
+      nz_dirBSE = &NormalZ[BSE * numberOfBCnodes];
+      nz_dirBNW = &NormalZ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -2273,32 +2273,32 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
       unsigned int ktne = KQK;
       unsigned int kbsw = neighborZ[ksw];
       ////////////////////////////////////////////////////////////////////////////////
-      real f_W    = (D.f[dirE   ])[ke   ];
-      real f_E    = (D.f[dirW   ])[kw   ];
-      real f_S    = (D.f[dirN   ])[kn   ];
-      real f_N    = (D.f[dirS   ])[ks   ];
-      real f_B    = (D.f[dirT   ])[kt   ];
-      real f_T    = (D.f[dirB   ])[kb   ];
-      real f_SW   = (D.f[dirNE  ])[kne  ];
-      real f_NE   = (D.f[dirSW  ])[ksw  ];
-      real f_NW   = (D.f[dirSE  ])[kse  ];
-      real f_SE   = (D.f[dirNW  ])[knw  ];
-      real f_BW   = (D.f[dirTE  ])[kte  ];
-      real f_TE   = (D.f[dirBW  ])[kbw  ];
-      real f_TW   = (D.f[dirBE  ])[kbe  ];
-      real f_BE   = (D.f[dirTW  ])[ktw  ];
-      real f_BS   = (D.f[dirTN  ])[ktn  ];
-      real f_TN   = (D.f[dirBS  ])[kbs  ];
-      real f_TS   = (D.f[dirBN  ])[kbn  ];
-      real f_BN   = (D.f[dirTS  ])[kts  ];
-      real f_BSW  = (D.f[dirTNE ])[ktne ];
-      real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      real f_BNW  = (D.f[dirTSE ])[ktse ];
-      real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      real f_TSW  = (D.f[dirBNE ])[kbne ];
-      real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      real f_TNW  = (D.f[dirBSE ])[kbse ];
-      real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      real f_W    = (D.f[E   ])[ke   ];
+      real f_E    = (D.f[W   ])[kw   ];
+      real f_S    = (D.f[N   ])[kn   ];
+      real f_N    = (D.f[S   ])[ks   ];
+      real f_B    = (D.f[T   ])[kt   ];
+      real f_T    = (D.f[B   ])[kb   ];
+      real f_SW   = (D.f[NE  ])[kne  ];
+      real f_NE   = (D.f[SW  ])[ksw  ];
+      real f_NW   = (D.f[SE  ])[kse  ];
+      real f_SE   = (D.f[NW  ])[knw  ];
+      real f_BW   = (D.f[TE  ])[kte  ];
+      real f_TE   = (D.f[BW  ])[kbw  ];
+      real f_TW   = (D.f[BE  ])[kbe  ];
+      real f_BE   = (D.f[TW  ])[ktw  ];
+      real f_BS   = (D.f[TN  ])[ktn  ];
+      real f_TN   = (D.f[BS  ])[kbs  ];
+      real f_TS   = (D.f[BN  ])[kbn  ];
+      real f_BN   = (D.f[TS  ])[kts  ];
+      real f_BSW  = (D.f[TNE ])[ktne ];
+      real f_BNE  = (D.f[TSW ])[ktsw ];
+      real f_BNW  = (D.f[TSE ])[ktse ];
+      real f_BSE  = (D.f[TNW ])[ktnw ];
+      real f_TSW  = (D.f[BNE ])[kbne ];
+      real f_TNE  = (D.f[BSW ])[kbsw ];
+      real f_TNW  = (D.f[BSE ])[kbse ];
+      real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q;
       drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -2323,63 +2323,63 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  real VeloX = vx1;
@@ -2461,7 +2461,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 phi = fac / (q * fabs( nx_dirE[k]) + fac);
 		 VeloX *= phi;
          feq=c2o27* (drho/*+three*( vx1        )*/+c9o2*( vx1        )*( vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirW])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W)-c6o1*c2o27*( VeloX     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[W])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W)-c6o1*c2o27*( VeloX     ))/(c1o1+q) - c2o27 * drho;
       }
 
       q = q_dirW[k];
@@ -2475,7 +2475,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 phi = fac / (q * fabs(-nx_dirW[k]) + fac);
 		 VeloX *= phi;
          feq=c2o27* (drho/*+three*(-vx1        )*/+c9o2*(-vx1        )*(-vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirE])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[E])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX     ))/(c1o1+q) - c2o27 * drho;
       }
 
       q = q_dirN[k];
@@ -2489,7 +2489,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 phi = fac / (q * fabs( ny_dirN[k]) + fac);
 		 VeloY *= phi;
          feq=c2o27* (drho/*+three*(    vx2     )*/+c9o2*(     vx2    )*(     vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirS])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S)-c6o1*c2o27*( VeloY     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[S])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S)-c6o1*c2o27*( VeloY     ))/(c1o1+q) - c2o27 * drho;
       }
 
       q = q_dirS[k];
@@ -2503,7 +2503,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 phi = fac / (q * fabs(-ny_dirS[k]) + fac);
 		 VeloY *= phi;
          feq=c2o27* (drho/*+three*(   -vx2     )*/+c9o2*(    -vx2    )*(    -vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirN])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[N])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY     ))/(c1o1+q) - c2o27 * drho;
       }
 
       q = q_dirT[k];
@@ -2517,7 +2517,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 phi = fac / (q * fabs( nz_dirT[k]) + fac);
 		 VeloZ *= phi;
          feq=c2o27* (drho/*+three*(         vx3)*/+c9o2*(         vx3)*(         vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirB])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[B])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ     ))/(c1o1+q) - c2o27 * drho;
       }
 
       q = q_dirB[k];
@@ -2531,7 +2531,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 phi = fac / (q * fabs(-nz_dirB[k]) + fac);
 		 VeloZ *= phi;
          feq=c2o27* (drho/*+three*(        -vx3)*/+c9o2*(        -vx3)*(        -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirT])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ     ))/(c1o1+q) - c2o27 * drho;
+         (D.f[T])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ     ))/(c1o1+q) - c2o27 * drho;
       }
 
       q = q_dirNE[k];
@@ -2547,7 +2547,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloX *= phi;
 		 VeloY *= phi;
          feq=c1o54* (drho/*+three*( vx1+vx2    )*/+c9o2*( vx1+vx2    )*( vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q) - c1o54 * drho;
+         (D.f[SW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirSW[k];
@@ -2563,7 +2563,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloX *= phi;
 		 VeloY *= phi;
          feq=c1o54* (drho/*+three*(-vx1-vx2    )*/+c9o2*(-vx1-vx2    )*(-vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q) - c1o54 * drho;
+         (D.f[NE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirSE[k];
@@ -2579,7 +2579,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloX *= phi;
 		 VeloY *= phi;
          feq=c1o54* (drho/*+three*( vx1-vx2    )*/+c9o2*( vx1-vx2    )*( vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q) - c1o54 * drho;
+         (D.f[NW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirNW[k];
@@ -2595,7 +2595,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloX *= phi;
 		 VeloY *= phi;
          feq=c1o54* (drho/*+three*(-vx1+vx2    )*/+c9o2*(-vx1+vx2    )*(-vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q) - c1o54 * drho;
+         (D.f[SE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirTE[k];
@@ -2611,7 +2611,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloX *= phi;
 		 VeloZ *= phi;
          feq=c1o54* (drho/*+three*( vx1    +vx3)*/+c9o2*( vx1    +vx3)*( vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[BW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirBW[k];
@@ -2627,7 +2627,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloX *= phi;
 		 VeloZ *= phi;
          feq=c1o54* (drho/*+three*(-vx1    -vx3)*/+c9o2*(-vx1    -vx3)*(-vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[TE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirBE[k];
@@ -2643,7 +2643,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloX *= phi;
 		 VeloZ *= phi;
          feq=c1o54* (drho/*+three*( vx1    -vx3)*/+c9o2*( vx1    -vx3)*( vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[TW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirTW[k];
@@ -2659,7 +2659,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloX *= phi;
 		 VeloZ *= phi;
          feq=c1o54* (drho/*+three*(-vx1    +vx3)*/+c9o2*(-vx1    +vx3)*(-vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[BE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirTN[k];
@@ -2675,7 +2675,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloY *= phi;
 		 VeloZ *= phi;
          feq=c1o54* (drho/*+three*(     vx2+vx3)*/+c9o2*(     vx2+vx3)*(     vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[BS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirBS[k];
@@ -2691,7 +2691,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloY *= phi;
 		 VeloZ *= phi;
          feq=c1o54* (drho/*+three*(    -vx2-vx3)*/+c9o2*(    -vx2-vx3)*(    -vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[TN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirBN[k];
@@ -2707,7 +2707,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloY *= phi;
 		 VeloZ *= phi;
          feq=c1o54* (drho/*+three*(     vx2-vx3)*/+c9o2*(     vx2-vx3)*(     vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[TS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirTS[k];
@@ -2723,7 +2723,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloY *= phi;
 		 VeloZ *= phi;
          feq=c1o54* (drho/*+three*(    -vx2+vx3)*/+c9o2*(    -vx2+vx3)*(    -vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q) - c1o54 * drho;
+         (D.f[BN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirTNE[k];
@@ -2741,7 +2741,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloY *= phi;
 		 VeloZ *= phi;
          feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[BSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirBSW[k];
@@ -2759,7 +2759,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloY *= phi;
 		 VeloZ *= phi;
          feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[TNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirBNE[k];
@@ -2777,7 +2777,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloY *= phi;
 		 VeloZ *= phi;
          feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[TSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirTSW[k];
@@ -2795,7 +2795,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloY *= phi;
 		 VeloZ *= phi;
          feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[BNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirTSE[k];
@@ -2813,7 +2813,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloY *= phi;
 		 VeloZ *= phi;
          feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[BNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirBNW[k];
@@ -2831,7 +2831,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloY *= phi;
 		 VeloZ *= phi;
          feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[TSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirBSE[k];
@@ -2849,7 +2849,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloY *= phi;
 		 VeloZ *= phi;
          feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[TNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirTNW[k];
@@ -2867,7 +2867,7 @@ extern "C" __global__ void QSlipGeomDeviceComp27(real* DD,
 		 VeloY *= phi;
 		 VeloZ *= phi;
          feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
+         (D.f[BSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho;
       }
    }
 }
@@ -2929,63 +2929,63 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -3006,128 +3006,128 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       real *nx_dirE,   *nx_dirW,   *nx_dirN,   *nx_dirS,   *nx_dirT,   *nx_dirB, 
               *nx_dirNE,  *nx_dirSW,  *nx_dirSE,  *nx_dirNW,  *nx_dirTE,  *nx_dirBW,
               *nx_dirBE,  *nx_dirTW,  *nx_dirTN,  *nx_dirBS,  *nx_dirBN,  *nx_dirTS,
               *nx_dirTNE, *nx_dirTSW, *nx_dirTSE, *nx_dirTNW, *nx_dirBNE, *nx_dirBSW,
               *nx_dirBSE, *nx_dirBNW; 
-      nx_dirE   = &NormalX[dirE   * numberOfBCnodes];
-      nx_dirW   = &NormalX[dirW   * numberOfBCnodes];
-      nx_dirN   = &NormalX[dirN   * numberOfBCnodes];
-      nx_dirS   = &NormalX[dirS   * numberOfBCnodes];
-      nx_dirT   = &NormalX[dirT   * numberOfBCnodes];
-      nx_dirB   = &NormalX[dirB   * numberOfBCnodes];
-      nx_dirNE  = &NormalX[dirNE  * numberOfBCnodes];
-      nx_dirSW  = &NormalX[dirSW  * numberOfBCnodes];
-      nx_dirSE  = &NormalX[dirSE  * numberOfBCnodes];
-      nx_dirNW  = &NormalX[dirNW  * numberOfBCnodes];
-      nx_dirTE  = &NormalX[dirTE  * numberOfBCnodes];
-      nx_dirBW  = &NormalX[dirBW  * numberOfBCnodes];
-      nx_dirBE  = &NormalX[dirBE  * numberOfBCnodes];
-      nx_dirTW  = &NormalX[dirTW  * numberOfBCnodes];
-      nx_dirTN  = &NormalX[dirTN  * numberOfBCnodes];
-      nx_dirBS  = &NormalX[dirBS  * numberOfBCnodes];
-      nx_dirBN  = &NormalX[dirBN  * numberOfBCnodes];
-      nx_dirTS  = &NormalX[dirTS  * numberOfBCnodes];
-      nx_dirTNE = &NormalX[dirTNE * numberOfBCnodes];
-      nx_dirTSW = &NormalX[dirTSW * numberOfBCnodes];
-      nx_dirTSE = &NormalX[dirTSE * numberOfBCnodes];
-      nx_dirTNW = &NormalX[dirTNW * numberOfBCnodes];
-      nx_dirBNE = &NormalX[dirBNE * numberOfBCnodes];
-      nx_dirBSW = &NormalX[dirBSW * numberOfBCnodes];
-      nx_dirBSE = &NormalX[dirBSE * numberOfBCnodes];
-      nx_dirBNW = &NormalX[dirBNW * numberOfBCnodes];
+      nx_dirE   = &NormalX[E   * numberOfBCnodes];
+      nx_dirW   = &NormalX[W   * numberOfBCnodes];
+      nx_dirN   = &NormalX[N   * numberOfBCnodes];
+      nx_dirS   = &NormalX[S   * numberOfBCnodes];
+      nx_dirT   = &NormalX[T   * numberOfBCnodes];
+      nx_dirB   = &NormalX[B   * numberOfBCnodes];
+      nx_dirNE  = &NormalX[NE  * numberOfBCnodes];
+      nx_dirSW  = &NormalX[SW  * numberOfBCnodes];
+      nx_dirSE  = &NormalX[SE  * numberOfBCnodes];
+      nx_dirNW  = &NormalX[NW  * numberOfBCnodes];
+      nx_dirTE  = &NormalX[TE  * numberOfBCnodes];
+      nx_dirBW  = &NormalX[BW  * numberOfBCnodes];
+      nx_dirBE  = &NormalX[BE  * numberOfBCnodes];
+      nx_dirTW  = &NormalX[TW  * numberOfBCnodes];
+      nx_dirTN  = &NormalX[TN  * numberOfBCnodes];
+      nx_dirBS  = &NormalX[BS  * numberOfBCnodes];
+      nx_dirBN  = &NormalX[BN  * numberOfBCnodes];
+      nx_dirTS  = &NormalX[TS  * numberOfBCnodes];
+      nx_dirTNE = &NormalX[TNE * numberOfBCnodes];
+      nx_dirTSW = &NormalX[TSW * numberOfBCnodes];
+      nx_dirTSE = &NormalX[TSE * numberOfBCnodes];
+      nx_dirTNW = &NormalX[TNW * numberOfBCnodes];
+      nx_dirBNE = &NormalX[BNE * numberOfBCnodes];
+      nx_dirBSW = &NormalX[BSW * numberOfBCnodes];
+      nx_dirBSE = &NormalX[BSE * numberOfBCnodes];
+      nx_dirBNW = &NormalX[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       real *ny_dirE,   *ny_dirW,   *ny_dirN,   *ny_dirS,   *ny_dirT,   *ny_dirB, 
               *ny_dirNE,  *ny_dirSW,  *ny_dirSE,  *ny_dirNW,  *ny_dirTE,  *ny_dirBW,
               *ny_dirBE,  *ny_dirTW,  *ny_dirTN,  *ny_dirBS,  *ny_dirBN,  *ny_dirTS,
               *ny_dirTNE, *ny_dirTSW, *ny_dirTSE, *ny_dirTNW, *ny_dirBNE, *ny_dirBSW,
               *ny_dirBSE, *ny_dirBNW; 
-      ny_dirE   = &NormalY[dirE   * numberOfBCnodes];
-      ny_dirW   = &NormalY[dirW   * numberOfBCnodes];
-      ny_dirN   = &NormalY[dirN   * numberOfBCnodes];
-      ny_dirS   = &NormalY[dirS   * numberOfBCnodes];
-      ny_dirT   = &NormalY[dirT   * numberOfBCnodes];
-      ny_dirB   = &NormalY[dirB   * numberOfBCnodes];
-      ny_dirNE  = &NormalY[dirNE  * numberOfBCnodes];
-      ny_dirSW  = &NormalY[dirSW  * numberOfBCnodes];
-      ny_dirSE  = &NormalY[dirSE  * numberOfBCnodes];
-      ny_dirNW  = &NormalY[dirNW  * numberOfBCnodes];
-      ny_dirTE  = &NormalY[dirTE  * numberOfBCnodes];
-      ny_dirBW  = &NormalY[dirBW  * numberOfBCnodes];
-      ny_dirBE  = &NormalY[dirBE  * numberOfBCnodes];
-      ny_dirTW  = &NormalY[dirTW  * numberOfBCnodes];
-      ny_dirTN  = &NormalY[dirTN  * numberOfBCnodes];
-      ny_dirBS  = &NormalY[dirBS  * numberOfBCnodes];
-      ny_dirBN  = &NormalY[dirBN  * numberOfBCnodes];
-      ny_dirTS  = &NormalY[dirTS  * numberOfBCnodes];
-      ny_dirTNE = &NormalY[dirTNE * numberOfBCnodes];
-      ny_dirTSW = &NormalY[dirTSW * numberOfBCnodes];
-      ny_dirTSE = &NormalY[dirTSE * numberOfBCnodes];
-      ny_dirTNW = &NormalY[dirTNW * numberOfBCnodes];
-      ny_dirBNE = &NormalY[dirBNE * numberOfBCnodes];
-      ny_dirBSW = &NormalY[dirBSW * numberOfBCnodes];
-      ny_dirBSE = &NormalY[dirBSE * numberOfBCnodes];
-      ny_dirBNW = &NormalY[dirBNW * numberOfBCnodes];
+      ny_dirE   = &NormalY[E   * numberOfBCnodes];
+      ny_dirW   = &NormalY[W   * numberOfBCnodes];
+      ny_dirN   = &NormalY[N   * numberOfBCnodes];
+      ny_dirS   = &NormalY[S   * numberOfBCnodes];
+      ny_dirT   = &NormalY[T   * numberOfBCnodes];
+      ny_dirB   = &NormalY[B   * numberOfBCnodes];
+      ny_dirNE  = &NormalY[NE  * numberOfBCnodes];
+      ny_dirSW  = &NormalY[SW  * numberOfBCnodes];
+      ny_dirSE  = &NormalY[SE  * numberOfBCnodes];
+      ny_dirNW  = &NormalY[NW  * numberOfBCnodes];
+      ny_dirTE  = &NormalY[TE  * numberOfBCnodes];
+      ny_dirBW  = &NormalY[BW  * numberOfBCnodes];
+      ny_dirBE  = &NormalY[BE  * numberOfBCnodes];
+      ny_dirTW  = &NormalY[TW  * numberOfBCnodes];
+      ny_dirTN  = &NormalY[TN  * numberOfBCnodes];
+      ny_dirBS  = &NormalY[BS  * numberOfBCnodes];
+      ny_dirBN  = &NormalY[BN  * numberOfBCnodes];
+      ny_dirTS  = &NormalY[TS  * numberOfBCnodes];
+      ny_dirTNE = &NormalY[TNE * numberOfBCnodes];
+      ny_dirTSW = &NormalY[TSW * numberOfBCnodes];
+      ny_dirTSE = &NormalY[TSE * numberOfBCnodes];
+      ny_dirTNW = &NormalY[TNW * numberOfBCnodes];
+      ny_dirBNE = &NormalY[BNE * numberOfBCnodes];
+      ny_dirBSW = &NormalY[BSW * numberOfBCnodes];
+      ny_dirBSE = &NormalY[BSE * numberOfBCnodes];
+      ny_dirBNW = &NormalY[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       real *nz_dirE,   *nz_dirW,   *nz_dirN,   *nz_dirS,   *nz_dirT,   *nz_dirB, 
               *nz_dirNE,  *nz_dirSW,  *nz_dirSE,  *nz_dirNW,  *nz_dirTE,  *nz_dirBW,
               *nz_dirBE,  *nz_dirTW,  *nz_dirTN,  *nz_dirBS,  *nz_dirBN,  *nz_dirTS,
               *nz_dirTNE, *nz_dirTSW, *nz_dirTSE, *nz_dirTNW, *nz_dirBNE, *nz_dirBSW,
               *nz_dirBSE, *nz_dirBNW; 
-      nz_dirE   = &NormalZ[dirE   * numberOfBCnodes];
-      nz_dirW   = &NormalZ[dirW   * numberOfBCnodes];
-      nz_dirN   = &NormalZ[dirN   * numberOfBCnodes];
-      nz_dirS   = &NormalZ[dirS   * numberOfBCnodes];
-      nz_dirT   = &NormalZ[dirT   * numberOfBCnodes];
-      nz_dirB   = &NormalZ[dirB   * numberOfBCnodes];
-      nz_dirNE  = &NormalZ[dirNE  * numberOfBCnodes];
-      nz_dirSW  = &NormalZ[dirSW  * numberOfBCnodes];
-      nz_dirSE  = &NormalZ[dirSE  * numberOfBCnodes];
-      nz_dirNW  = &NormalZ[dirNW  * numberOfBCnodes];
-      nz_dirTE  = &NormalZ[dirTE  * numberOfBCnodes];
-      nz_dirBW  = &NormalZ[dirBW  * numberOfBCnodes];
-      nz_dirBE  = &NormalZ[dirBE  * numberOfBCnodes];
-      nz_dirTW  = &NormalZ[dirTW  * numberOfBCnodes];
-      nz_dirTN  = &NormalZ[dirTN  * numberOfBCnodes];
-      nz_dirBS  = &NormalZ[dirBS  * numberOfBCnodes];
-      nz_dirBN  = &NormalZ[dirBN  * numberOfBCnodes];
-      nz_dirTS  = &NormalZ[dirTS  * numberOfBCnodes];
-      nz_dirTNE = &NormalZ[dirTNE * numberOfBCnodes];
-      nz_dirTSW = &NormalZ[dirTSW * numberOfBCnodes];
-      nz_dirTSE = &NormalZ[dirTSE * numberOfBCnodes];
-      nz_dirTNW = &NormalZ[dirTNW * numberOfBCnodes];
-      nz_dirBNE = &NormalZ[dirBNE * numberOfBCnodes];
-      nz_dirBSW = &NormalZ[dirBSW * numberOfBCnodes];
-      nz_dirBSE = &NormalZ[dirBSE * numberOfBCnodes];
-      nz_dirBNW = &NormalZ[dirBNW * numberOfBCnodes];
+      nz_dirE   = &NormalZ[E   * numberOfBCnodes];
+      nz_dirW   = &NormalZ[W   * numberOfBCnodes];
+      nz_dirN   = &NormalZ[N   * numberOfBCnodes];
+      nz_dirS   = &NormalZ[S   * numberOfBCnodes];
+      nz_dirT   = &NormalZ[T   * numberOfBCnodes];
+      nz_dirB   = &NormalZ[B   * numberOfBCnodes];
+      nz_dirNE  = &NormalZ[NE  * numberOfBCnodes];
+      nz_dirSW  = &NormalZ[SW  * numberOfBCnodes];
+      nz_dirSE  = &NormalZ[SE  * numberOfBCnodes];
+      nz_dirNW  = &NormalZ[NW  * numberOfBCnodes];
+      nz_dirTE  = &NormalZ[TE  * numberOfBCnodes];
+      nz_dirBW  = &NormalZ[BW  * numberOfBCnodes];
+      nz_dirBE  = &NormalZ[BE  * numberOfBCnodes];
+      nz_dirTW  = &NormalZ[TW  * numberOfBCnodes];
+      nz_dirTN  = &NormalZ[TN  * numberOfBCnodes];
+      nz_dirBS  = &NormalZ[BS  * numberOfBCnodes];
+      nz_dirBN  = &NormalZ[BN  * numberOfBCnodes];
+      nz_dirTS  = &NormalZ[TS  * numberOfBCnodes];
+      nz_dirTNE = &NormalZ[TNE * numberOfBCnodes];
+      nz_dirTSW = &NormalZ[TSW * numberOfBCnodes];
+      nz_dirTSE = &NormalZ[TSE * numberOfBCnodes];
+      nz_dirTNW = &NormalZ[TNW * numberOfBCnodes];
+      nz_dirBNE = &NormalZ[BNE * numberOfBCnodes];
+      nz_dirBSW = &NormalZ[BSW * numberOfBCnodes];
+      nz_dirBSE = &NormalZ[BSE * numberOfBCnodes];
+      nz_dirBNW = &NormalZ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -3159,32 +3159,32 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
       unsigned int ktne = KQK;
       unsigned int kbsw = neighborZ[ksw];
       ////////////////////////////////////////////////////////////////////////////////
-      real f_W    = (D.f[dirE   ])[ke   ];
-      real f_E    = (D.f[dirW   ])[kw   ];
-      real f_S    = (D.f[dirN   ])[kn   ];
-      real f_N    = (D.f[dirS   ])[ks   ];
-      real f_B    = (D.f[dirT   ])[kt   ];
-      real f_T    = (D.f[dirB   ])[kb   ];
-      real f_SW   = (D.f[dirNE  ])[kne  ];
-      real f_NE   = (D.f[dirSW  ])[ksw  ];
-      real f_NW   = (D.f[dirSE  ])[kse  ];
-      real f_SE   = (D.f[dirNW  ])[knw  ];
-      real f_BW   = (D.f[dirTE  ])[kte  ];
-      real f_TE   = (D.f[dirBW  ])[kbw  ];
-      real f_TW   = (D.f[dirBE  ])[kbe  ];
-      real f_BE   = (D.f[dirTW  ])[ktw  ];
-      real f_BS   = (D.f[dirTN  ])[ktn  ];
-      real f_TN   = (D.f[dirBS  ])[kbs  ];
-      real f_TS   = (D.f[dirBN  ])[kbn  ];
-      real f_BN   = (D.f[dirTS  ])[kts  ];
-      real f_BSW  = (D.f[dirTNE ])[ktne ];
-      real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      real f_BNW  = (D.f[dirTSE ])[ktse ];
-      real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      real f_TSW  = (D.f[dirBNE ])[kbne ];
-      real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      real f_TNW  = (D.f[dirBSE ])[kbse ];
-      real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      real f_W    = (D.f[E   ])[ke   ];
+      real f_E    = (D.f[W   ])[kw   ];
+      real f_S    = (D.f[N   ])[kn   ];
+      real f_N    = (D.f[S   ])[ks   ];
+      real f_B    = (D.f[T   ])[kt   ];
+      real f_T    = (D.f[B   ])[kb   ];
+      real f_SW   = (D.f[NE  ])[kne  ];
+      real f_NE   = (D.f[SW  ])[ksw  ];
+      real f_NW   = (D.f[SE  ])[kse  ];
+      real f_SE   = (D.f[NW  ])[knw  ];
+      real f_BW   = (D.f[TE  ])[kte  ];
+      real f_TE   = (D.f[BW  ])[kbw  ];
+      real f_TW   = (D.f[BE  ])[kbe  ];
+      real f_BE   = (D.f[TW  ])[ktw  ];
+      real f_BS   = (D.f[TN  ])[ktn  ];
+      real f_TN   = (D.f[BS  ])[kbs  ];
+      real f_TS   = (D.f[BN  ])[kbn  ];
+      real f_BN   = (D.f[TS  ])[kts  ];
+      real f_BSW  = (D.f[TNE ])[ktne ];
+      real f_BNE  = (D.f[TSW ])[ktsw ];
+      real f_BNW  = (D.f[TSE ])[ktse ];
+      real f_BSE  = (D.f[TNW ])[ktnw ];
+      real f_TSW  = (D.f[BNE ])[kbne ];
+      real f_TNE  = (D.f[BSW ])[kbsw ];
+      real f_TNW  = (D.f[BSE ])[kbse ];
+      real f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q;
       drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -3209,63 +3209,63 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  real VeloX = vx1;
@@ -3353,7 +3353,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c2o27* (drho/*+three*( vx1        )*/+c9o2*( vx1        )*( vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirW])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W))/(c1o1+q) - c2o27 * drho;
+         (D.f[W])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W))/(c1o1+q) - c2o27 * drho;
       }
 
       q = q_dirW[k];
@@ -3368,7 +3368,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c2o27* (drho/*+three*(-vx1        )*/+c9o2*(-vx1        )*(-vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirE])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E))/(c1o1+q) - c2o27 * drho;
+         (D.f[E])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E))/(c1o1+q) - c2o27 * drho;
       }
 
       q = q_dirN[k];
@@ -3383,7 +3383,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c2o27* (drho/*+three*(    vx2     )*/+c9o2*(     vx2    )*(     vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirS])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S))/(c1o1+q) - c2o27 * drho;
+         (D.f[S])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S))/(c1o1+q) - c2o27 * drho;
       }
 
       q = q_dirS[k];
@@ -3398,7 +3398,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c2o27* (drho/*+three*(   -vx2     )*/+c9o2*(    -vx2    )*(    -vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirN])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N))/(c1o1+q) - c2o27 * drho;
+         (D.f[N])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N))/(c1o1+q) - c2o27 * drho;
       }
 
       q = q_dirT[k];
@@ -3413,7 +3413,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c2o27* (drho/*+three*(         vx3)*/+c9o2*(         vx3)*(         vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirB])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B))/(c1o1+q) - c2o27 * drho;
+         (D.f[B])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B))/(c1o1+q) - c2o27 * drho;
       }
 
       q = q_dirB[k];
@@ -3428,7 +3428,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c2o27* (drho/*+three*(        -vx3)*/+c9o2*(        -vx3)*(        -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirT])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T))/(c1o1+q) - c2o27 * drho;
+         (D.f[T])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T))/(c1o1+q) - c2o27 * drho;
       }
 
       q = q_dirNE[k];
@@ -3444,7 +3444,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o54* (drho/*+three*( vx1+vx2    )*/+c9o2*( vx1+vx2    )*( vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW))/(c1o1+q) - c1o54 * drho;
+         (D.f[SW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirSW[k];
@@ -3460,7 +3460,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o54* (drho/*+three*(-vx1-vx2    )*/+c9o2*(-vx1-vx2    )*(-vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE))/(c1o1+q) - c1o54 * drho;
+         (D.f[NE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirSE[k];
@@ -3476,7 +3476,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o54* (drho/*+three*( vx1-vx2    )*/+c9o2*( vx1-vx2    )*( vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW))/(c1o1+q) - c1o54 * drho;
+         (D.f[NW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirNW[k];
@@ -3492,7 +3492,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o54* (drho/*+three*(-vx1+vx2    )*/+c9o2*(-vx1+vx2    )*(-vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE))/(c1o1+q) - c1o54 * drho;
+         (D.f[SE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirTE[k];
@@ -3508,7 +3508,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o54* (drho/*+three*( vx1    +vx3)*/+c9o2*( vx1    +vx3)*( vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW))/(c1o1+q) - c1o54 * drho;
+         (D.f[BW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirBW[k];
@@ -3524,7 +3524,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o54* (drho/*+three*(-vx1    -vx3)*/+c9o2*(-vx1    -vx3)*(-vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE))/(c1o1+q) - c1o54 * drho;
+         (D.f[TE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirBE[k];
@@ -3540,7 +3540,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o54* (drho/*+three*( vx1    -vx3)*/+c9o2*( vx1    -vx3)*( vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW))/(c1o1+q) - c1o54 * drho;
+         (D.f[TW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirTW[k];
@@ -3556,7 +3556,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o54* (drho/*+three*(-vx1    +vx3)*/+c9o2*(-vx1    +vx3)*(-vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE))/(c1o1+q) - c1o54 * drho;
+         (D.f[BE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirTN[k];
@@ -3572,7 +3572,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o54* (drho/*+three*(     vx2+vx3)*/+c9o2*(     vx2+vx3)*(     vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS))/(c1o1+q) - c1o54 * drho;
+         (D.f[BS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirBS[k];
@@ -3588,7 +3588,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o54* (drho/*+three*(    -vx2-vx3)*/+c9o2*(    -vx2-vx3)*(    -vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN))/(c1o1+q) - c1o54 * drho;
+         (D.f[TN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirBN[k];
@@ -3604,7 +3604,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o54* (drho/*+three*(     vx2-vx3)*/+c9o2*(     vx2-vx3)*(     vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS))/(c1o1+q) - c1o54 * drho;
+         (D.f[TS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirTS[k];
@@ -3620,7 +3620,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o54* (drho/*+three*(    -vx2+vx3)*/+c9o2*(    -vx2+vx3)*(    -vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN))/(c1o1+q) - c1o54 * drho;
+         (D.f[BN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN))/(c1o1+q) - c1o54 * drho;
       }
 
       q = q_dirTNE[k];
@@ -3639,7 +3639,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW))/(c1o1+q) - c1o216 * drho;
+         (D.f[BSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirBSW[k];
@@ -3658,7 +3658,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE))/(c1o1+q) - c1o216 * drho;
+         (D.f[TNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirBNE[k];
@@ -3677,7 +3677,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW))/(c1o1+q) - c1o216 * drho;
+         (D.f[TSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirTSW[k];
@@ -3696,7 +3696,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE))/(c1o1+q) - c1o216 * drho;
+         (D.f[BNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirTSE[k];
@@ -3715,7 +3715,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW))/(c1o1+q) - c1o216 * drho;
+         (D.f[BNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirBNW[k];
@@ -3734,7 +3734,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE))/(c1o1+q) - c1o216 * drho;
+         (D.f[TSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirBSE[k];
@@ -3753,7 +3753,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW))/(c1o1+q) - c1o216 * drho;
+         (D.f[TNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW))/(c1o1+q) - c1o216 * drho;
       }
 
       q = q_dirTNW[k];
@@ -3772,7 +3772,7 @@ extern "C" __global__ void QSlipNormDeviceComp27(real* DD,
 		 //tangential = (tangential > one) ? one:tangential;
 		 q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (smallSingle + q));
          feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE))/(c1o1+q) - c1o216 * drho;
+         (D.f[BSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE))/(c1o1+q) - c1o216 * drho;
       }
    }
 }
diff --git a/src/gpu/VirtualFluids_GPU/GPU/StressBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/StressBCs27.cu
index 97731f982..1c715b604 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/StressBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/StressBCs27.cu
@@ -170,63 +170,63 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
    Distributions27 D;
    if (isEvenTimestep==true)//get right array of post coll f's
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    }
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index
@@ -247,32 +247,32 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW;
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -307,32 +307,32 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_W    = (D.f[dirE   ])[ke   ];     //post-coll f's
-      f_E    = (D.f[dirW   ])[kw   ];
-      f_S    = (D.f[dirN   ])[kn   ];
-      f_N    = (D.f[dirS   ])[ks   ];
-      f_B    = (D.f[dirT   ])[kt   ];
-      f_T    = (D.f[dirB   ])[kb   ];
-      f_SW   = (D.f[dirNE  ])[kne  ];
-      f_NE   = (D.f[dirSW  ])[ksw  ];
-      f_NW   = (D.f[dirSE  ])[kse  ];
-      f_SE   = (D.f[dirNW  ])[knw  ];
-      f_BW   = (D.f[dirTE  ])[kte  ];
-      f_TE   = (D.f[dirBW  ])[kbw  ];
-      f_TW   = (D.f[dirBE  ])[kbe  ];
-      f_BE   = (D.f[dirTW  ])[ktw  ];
-      f_BS   = (D.f[dirTN  ])[ktn  ];
-      f_TN   = (D.f[dirBS  ])[kbs  ];
-      f_TS   = (D.f[dirBN  ])[kbn  ];
-      f_BN   = (D.f[dirTS  ])[kts  ];
-      f_BSW  = (D.f[dirTNE ])[ktne ];
-      f_BNE  = (D.f[dirTSW ])[ktsw ];
-      f_BNW  = (D.f[dirTSE ])[ktse ];
-      f_BSE  = (D.f[dirTNW ])[ktnw ];
-      f_TSW  = (D.f[dirBNE ])[kbne ];
-      f_TNE  = (D.f[dirBSW ])[kbsw ];
-      f_TNW  = (D.f[dirBSE ])[kbse ];
-      f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_W    = (D.f[E   ])[ke   ];     //post-coll f's
+      f_E    = (D.f[W   ])[kw   ];
+      f_S    = (D.f[N   ])[kn   ];
+      f_N    = (D.f[S   ])[ks   ];
+      f_B    = (D.f[T   ])[kt   ];
+      f_T    = (D.f[B   ])[kb   ];
+      f_SW   = (D.f[NE  ])[kne  ];
+      f_NE   = (D.f[SW  ])[ksw  ];
+      f_NW   = (D.f[SE  ])[kse  ];
+      f_SE   = (D.f[NW  ])[knw  ];
+      f_BW   = (D.f[TE  ])[kte  ];
+      f_TE   = (D.f[BW  ])[kbw  ];
+      f_TW   = (D.f[BE  ])[kbe  ];
+      f_BE   = (D.f[TW  ])[ktw  ];
+      f_BS   = (D.f[TN  ])[ktn  ];
+      f_TN   = (D.f[BS  ])[kbs  ];
+      f_TS   = (D.f[BN  ])[kbn  ];
+      f_BN   = (D.f[TS  ])[kts  ];
+      f_BSW  = (D.f[TNE ])[ktne ];
+      f_BNE  = (D.f[TSW ])[ktsw ];
+      f_BNW  = (D.f[TSE ])[ktse ];
+      f_BSE  = (D.f[TNW ])[ktnw ];
+      f_TSW  = (D.f[BNE ])[kbne ];
+      f_TNE  = (D.f[BSW ])[kbsw ];
+      f_TNW  = (D.f[BSE ])[kbse ];
+      f_TSE  = (D.f[BNW ])[kbnw ];
 
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q;
@@ -359,63 +359,63 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)      //get adress where incoming f's should be written to
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       }
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Compute incoming f's with zero wall velocity
@@ -694,49 +694,49 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirW])[kw] = f_W_in - (c6o1*c2o27*( VeloX     ))/(c1o1+q);
+         (D.f[W])[kw] = f_W_in - (c6o1*c2o27*( VeloX     ))/(c1o1+q);
          wallMomentumX += -(c6o1*c2o27*( VeloX     ))/(c1o1+q);
       }
 
       q = q_dirW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirE])[ke] = f_E_in - (c6o1*c2o27*(-VeloX     ))/(c1o1+q);
+         (D.f[E])[ke] = f_E_in - (c6o1*c2o27*(-VeloX     ))/(c1o1+q);
          wallMomentumX -= - (c6o1*c2o27*(-VeloX     ))/(c1o1+q);
       }
 
       q = q_dirN[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirS])[ks] = f_S_in - (c6o1*c2o27*( VeloY     ))/(c1o1+q);
+         (D.f[S])[ks] = f_S_in - (c6o1*c2o27*( VeloY     ))/(c1o1+q);
          wallMomentumY += - (c6o1*c2o27*( VeloY     ))/(c1o1+q);
       }
 
       q = q_dirS[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirN])[kn] = f_N_in - (c6o1*c2o27*(-VeloY     ))/(c1o1+q);
+         (D.f[N])[kn] = f_N_in - (c6o1*c2o27*(-VeloY     ))/(c1o1+q);
          wallMomentumY -=  -(c6o1*c2o27*(-VeloY     ))/(c1o1+q);
       }
 
       q = q_dirT[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirB])[kb] = f_B_in - (c6o1*c2o27*( VeloZ     ))/(c1o1+q);
+         (D.f[B])[kb] = f_B_in - (c6o1*c2o27*( VeloZ     ))/(c1o1+q);
          wallMomentumZ += - (c6o1*c2o27*( VeloZ     ))/(c1o1+q);
       }
 
       q = q_dirB[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirT])[kt] = f_T_in - (c6o1*c2o27*(-VeloZ     ))/(c1o1+q);
+         (D.f[T])[kt] = f_T_in - (c6o1*c2o27*(-VeloZ     ))/(c1o1+q);
          wallMomentumZ -= -(c6o1*c2o27*(-VeloZ     ))/(c1o1+q);
       }
 
       q = q_dirNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirSW])[ksw] = f_SW_in - (c6o1*c1o54*(VeloX+VeloY))/(c1o1+q);
+         (D.f[SW])[ksw] = f_SW_in - (c6o1*c1o54*(VeloX+VeloY))/(c1o1+q);
          wallMomentumX +=  -(c6o1*c1o54*(VeloX+VeloY))/(c1o1+q);
          wallMomentumY +=  -(c6o1*c1o54*(VeloX+VeloY))/(c1o1+q);
       }
@@ -744,7 +744,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirNE])[kne] = f_NE_in - (c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q);
+         (D.f[NE])[kne] = f_NE_in - (c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q);
          wallMomentumX -= - (c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q);
          wallMomentumY -= - (c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q);
       }
@@ -752,7 +752,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirNW])[knw] = f_NW_in - (c6o1*c1o54*( VeloX-VeloY))/(c1o1+q);
+         (D.f[NW])[knw] = f_NW_in - (c6o1*c1o54*( VeloX-VeloY))/(c1o1+q);
          wallMomentumX += -(c6o1*c1o54*( VeloX-VeloY))/(c1o1+q);
          wallMomentumY -= -(c6o1*c1o54*( VeloX-VeloY))/(c1o1+q);
       }
@@ -760,7 +760,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirSE])[kse] = f_SE_in - (c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q);
+         (D.f[SE])[kse] = f_SE_in - (c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q);
          wallMomentumX -= - (c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q);
          wallMomentumY += - (c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q);
       }
@@ -768,7 +768,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirTE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBW])[kbw] = f_BW_in - (c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q);
+         (D.f[BW])[kbw] = f_BW_in - (c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q);
          wallMomentumX += - (c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q);
          wallMomentumZ += - (c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q);
       }
@@ -776,7 +776,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirBW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTE])[kte] = f_TE_in - (c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q);
+         (D.f[TE])[kte] = f_TE_in - (c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q);
          wallMomentumX -= - (c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q);
          wallMomentumZ -= - (c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q);
       }
@@ -784,7 +784,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirBE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTW])[ktw] = f_TW_in - (c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q);
+         (D.f[TW])[ktw] = f_TW_in - (c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q);
          wallMomentumX += - (c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q);
          wallMomentumZ -= - (c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q);
       }
@@ -792,7 +792,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirTW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBE])[kbe] = f_BE_in - (c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q);
+         (D.f[BE])[kbe] = f_BE_in - (c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q);
          wallMomentumX -= - (c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q);
          wallMomentumZ += - (c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q);
       }
@@ -800,7 +800,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirTN[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBS])[kbs] = f_BS_in - (c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q);
+         (D.f[BS])[kbs] = f_BS_in - (c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q);
          wallMomentumY += - (c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q);
          wallMomentumZ += - (c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q);
       }
@@ -808,7 +808,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirBS[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTN])[ktn] = f_TN_in - (c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q);
+         (D.f[TN])[ktn] = f_TN_in - (c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q);
          wallMomentumY -= - (c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q);
          wallMomentumZ -= - (c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q);
       }
@@ -816,7 +816,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirBN[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTS])[kts] = f_TS_in - (c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q);
+         (D.f[TS])[kts] = f_TS_in - (c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q);
          wallMomentumY += - (c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q);
          wallMomentumZ -= - (c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q);
       }
@@ -824,7 +824,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirTS[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBN])[kbn] = f_BN_in - (c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q);
+         (D.f[BN])[kbn] = f_BN_in - (c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q);
          wallMomentumY -= - (c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q);
          wallMomentumZ += - (c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q);
       }
@@ -832,7 +832,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirTNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBSW])[kbsw] = f_BSW_in - (c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);
+         (D.f[BSW])[kbsw] = f_BSW_in - (c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);
          wallMomentumX += - (c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);
          wallMomentumY += - (c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);
          wallMomentumZ += - (c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);
@@ -841,7 +841,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirBSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTNE])[ktne] = f_TNE_in - (c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);
+         (D.f[TNE])[ktne] = f_TNE_in - (c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);
          wallMomentumX -= - (c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);
          wallMomentumY -= - (c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);
          wallMomentumZ -= - (c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);
@@ -850,7 +850,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirBNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTSW])[ktsw] = f_TSW_in - (c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);
+         (D.f[TSW])[ktsw] = f_TSW_in - (c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);
          wallMomentumX += - (c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);
          wallMomentumY += - (c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);
          wallMomentumZ -= - (c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);
@@ -859,7 +859,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirTSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBNE])[kbne] = f_BNE_in - (c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);
+         (D.f[BNE])[kbne] = f_BNE_in - (c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);
          wallMomentumX -= - (c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);
          wallMomentumY -= - (c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);
          wallMomentumZ += - (c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);
@@ -868,7 +868,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirTSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBNW])[kbnw] = f_BNW_in - (c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);
+         (D.f[BNW])[kbnw] = f_BNW_in - (c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);
          wallMomentumX += - (c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);
          wallMomentumY -= - (c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);
          wallMomentumZ += - (c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);
@@ -877,7 +877,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirBNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTSE])[ktse] = f_TSE_in - (c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);
+         (D.f[TSE])[ktse] = f_TSE_in - (c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);
          wallMomentumX -= - (c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);
          wallMomentumY += - (c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);
          wallMomentumZ -= - (c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);
@@ -886,7 +886,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirBSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTNW])[ktnw] = f_TNW_in - (c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);
+         (D.f[TNW])[ktnw] = f_TNW_in - (c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);
          wallMomentumX += - (c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);
          wallMomentumY -= - (c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);
          wallMomentumZ -= - (c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);
@@ -895,7 +895,7 @@ extern "C" __global__ void QStressDeviceComp27(real* DD,
       q = q_dirTNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBSE])[kbse] = f_BSE_in - (c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);
+         (D.f[BSE])[kbse] = f_BSE_in - (c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);
          wallMomentumX -= - (c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);
          wallMomentumY += - (c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);
          wallMomentumZ += - (c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);
@@ -945,63 +945,63 @@ extern "C" __global__ void BBStressDevice27( real* DD,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    }
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index
@@ -1022,32 +1022,32 @@ extern "C" __global__ void BBStressDevice27( real* DD,
          *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
          *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
          *q_dirBSE, *q_dirBNW;
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -1083,32 +1083,32 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_W    = (D.f[dirE   ])[ke   ];
-      f_E    = (D.f[dirW   ])[kw   ];
-      f_S    = (D.f[dirN   ])[kn   ];
-      f_N    = (D.f[dirS   ])[ks   ];
-      f_B    = (D.f[dirT   ])[kt   ];
-      f_T    = (D.f[dirB   ])[kb   ];
-      f_SW   = (D.f[dirNE  ])[kne  ];
-      f_NE   = (D.f[dirSW  ])[ksw  ];
-      f_NW   = (D.f[dirSE  ])[kse  ];
-      f_SE   = (D.f[dirNW  ])[knw  ];
-      f_BW   = (D.f[dirTE  ])[kte  ];
-      f_TE   = (D.f[dirBW  ])[kbw  ];
-      f_TW   = (D.f[dirBE  ])[kbe  ];
-      f_BE   = (D.f[dirTW  ])[ktw  ];
-      f_BS   = (D.f[dirTN  ])[ktn  ];
-      f_TN   = (D.f[dirBS  ])[kbs  ];
-      f_TS   = (D.f[dirBN  ])[kbn  ];
-      f_BN   = (D.f[dirTS  ])[kts  ];
-      f_BSW  = (D.f[dirTNE ])[ktne ];
-      f_BNE  = (D.f[dirTSW ])[ktsw ];
-      f_BNW  = (D.f[dirTSE ])[ktse ];
-      f_BSE  = (D.f[dirTNW ])[ktnw ];
-      f_TSW  = (D.f[dirBNE ])[kbne ];
-      f_TNE  = (D.f[dirBSW ])[kbsw ];
-      f_TNW  = (D.f[dirBSE ])[kbse ];
-      f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_W    = (D.f[E   ])[ke   ];
+      f_E    = (D.f[W   ])[kw   ];
+      f_S    = (D.f[N   ])[kn   ];
+      f_N    = (D.f[S   ])[ks   ];
+      f_B    = (D.f[T   ])[kt   ];
+      f_T    = (D.f[B   ])[kb   ];
+      f_SW   = (D.f[NE  ])[kne  ];
+      f_NE   = (D.f[SW  ])[ksw  ];
+      f_NW   = (D.f[SE  ])[kse  ];
+      f_SE   = (D.f[NW  ])[knw  ];
+      f_BW   = (D.f[TE  ])[kte  ];
+      f_TE   = (D.f[BW  ])[kbw  ];
+      f_TW   = (D.f[BE  ])[kbe  ];
+      f_BE   = (D.f[TW  ])[ktw  ];
+      f_BS   = (D.f[TN  ])[ktn  ];
+      f_TN   = (D.f[BS  ])[kbs  ];
+      f_TS   = (D.f[BN  ])[kbn  ];
+      f_BN   = (D.f[TS  ])[kts  ];
+      f_BSW  = (D.f[TNE ])[ktne ];
+      f_BNE  = (D.f[TSW ])[ktsw ];
+      f_BNW  = (D.f[TSE ])[ktse ];
+      f_BSE  = (D.f[TNW ])[ktnw ];
+      f_TSW  = (D.f[BNE ])[kbne ];
+      f_TNE  = (D.f[BSW ])[kbsw ];
+      f_TNW  = (D.f[BSE ])[kbse ];
+      f_TSE  = (D.f[BNW ])[kbnw ];
 
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho;
@@ -1132,63 +1132,63 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       }
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       real f_E_in,  f_W_in,  f_N_in,  f_S_in,  f_T_in,  f_B_in,   f_NE_in,  f_SW_in,  f_SE_in,  f_NW_in,  f_TE_in,  f_BW_in,  f_BE_in,
@@ -1440,49 +1440,49 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirW])[kw] = f_W_in - (c6o1*c2o27*( VeloX     ));
+         (D.f[W])[kw] = f_W_in - (c6o1*c2o27*( VeloX     ));
          wallMomentumX += -(c6o1*c2o27*( VeloX     ));
       }
 
       q = q_dirW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirE])[ke] = f_E_in - (c6o1*c2o27*(-VeloX     ));
+         (D.f[E])[ke] = f_E_in - (c6o1*c2o27*(-VeloX     ));
          wallMomentumX -= - (c6o1*c2o27*(-VeloX     ));
       }
 
       q = q_dirN[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirS])[ks] = f_S_in - (c6o1*c2o27*( VeloY     ));
+         (D.f[S])[ks] = f_S_in - (c6o1*c2o27*( VeloY     ));
          wallMomentumY += - (c6o1*c2o27*( VeloY     ));
       }
 
       q = q_dirS[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirN])[kn] = f_N_in - (c6o1*c2o27*(-VeloY     ));
+         (D.f[N])[kn] = f_N_in - (c6o1*c2o27*(-VeloY     ));
          wallMomentumY -=  -(c6o1*c2o27*(-VeloY     ));
       }
 
       q = q_dirT[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirB])[kb] = f_B_in - (c6o1*c2o27*( VeloZ     ));
+         (D.f[B])[kb] = f_B_in - (c6o1*c2o27*( VeloZ     ));
          wallMomentumZ += - (c6o1*c2o27*( VeloZ     ));
       }
 
       q = q_dirB[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirT])[kt] = f_T_in - (c6o1*c2o27*(-VeloZ     ));
+         (D.f[T])[kt] = f_T_in - (c6o1*c2o27*(-VeloZ     ));
          wallMomentumZ -= -(c6o1*c2o27*(-VeloZ     ));
       }
 
       q = q_dirNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirSW])[ksw] = f_SW_in - (c6o1*c1o54*(VeloX+VeloY));
+         (D.f[SW])[ksw] = f_SW_in - (c6o1*c1o54*(VeloX+VeloY));
          wallMomentumX +=  -(c6o1*c1o54*(VeloX+VeloY));
          wallMomentumY +=  -(c6o1*c1o54*(VeloX+VeloY));
       }
@@ -1490,7 +1490,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirNE])[kne] = f_NE_in - (c6o1*c1o54*(-VeloX-VeloY));
+         (D.f[NE])[kne] = f_NE_in - (c6o1*c1o54*(-VeloX-VeloY));
          wallMomentumX -= - (c6o1*c1o54*(-VeloX-VeloY));
          wallMomentumY -= - (c6o1*c1o54*(-VeloX-VeloY));
       }
@@ -1498,7 +1498,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirNW])[knw] = f_NW_in - (c6o1*c1o54*( VeloX-VeloY));
+         (D.f[NW])[knw] = f_NW_in - (c6o1*c1o54*( VeloX-VeloY));
          wallMomentumX += -(c6o1*c1o54*( VeloX-VeloY));
          wallMomentumY -= -(c6o1*c1o54*( VeloX-VeloY));
       }
@@ -1506,7 +1506,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirSE])[kse] = f_SE_in - (c6o1*c1o54*(-VeloX+VeloY));
+         (D.f[SE])[kse] = f_SE_in - (c6o1*c1o54*(-VeloX+VeloY));
          wallMomentumX -= - (c6o1*c1o54*(-VeloX+VeloY));
          wallMomentumY += - (c6o1*c1o54*(-VeloX+VeloY));
       }
@@ -1514,7 +1514,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirTE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBW])[kbw] = f_BW_in - (c6o1*c1o54*( VeloX+VeloZ));
+         (D.f[BW])[kbw] = f_BW_in - (c6o1*c1o54*( VeloX+VeloZ));
          wallMomentumX += - (c6o1*c1o54*( VeloX+VeloZ));
          wallMomentumZ += - (c6o1*c1o54*( VeloX+VeloZ));
       }
@@ -1522,7 +1522,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirBW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTE])[kte] = f_TE_in - (c6o1*c1o54*(-VeloX-VeloZ));
+         (D.f[TE])[kte] = f_TE_in - (c6o1*c1o54*(-VeloX-VeloZ));
          wallMomentumX -= - (c6o1*c1o54*(-VeloX-VeloZ));
          wallMomentumZ -= - (c6o1*c1o54*(-VeloX-VeloZ));
       }
@@ -1530,7 +1530,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirBE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTW])[ktw] = f_TW_in - (c6o1*c1o54*( VeloX-VeloZ));
+         (D.f[TW])[ktw] = f_TW_in - (c6o1*c1o54*( VeloX-VeloZ));
          wallMomentumX += - (c6o1*c1o54*( VeloX-VeloZ));
          wallMomentumZ -= - (c6o1*c1o54*( VeloX-VeloZ));
       }
@@ -1538,7 +1538,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirTW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBE])[kbe] = f_BE_in - (c6o1*c1o54*(-VeloX+VeloZ));
+         (D.f[BE])[kbe] = f_BE_in - (c6o1*c1o54*(-VeloX+VeloZ));
          wallMomentumX -= - (c6o1*c1o54*(-VeloX+VeloZ));
          wallMomentumZ += - (c6o1*c1o54*(-VeloX+VeloZ));
       }
@@ -1546,7 +1546,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirTN[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBS])[kbs] = f_BS_in - (c6o1*c1o54*( VeloY+VeloZ));
+         (D.f[BS])[kbs] = f_BS_in - (c6o1*c1o54*( VeloY+VeloZ));
          wallMomentumY += - (c6o1*c1o54*( VeloY+VeloZ));
          wallMomentumZ += - (c6o1*c1o54*( VeloY+VeloZ));
       }
@@ -1554,7 +1554,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirBS[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTN])[ktn] = f_TN_in - (c6o1*c1o54*( -VeloY-VeloZ));
+         (D.f[TN])[ktn] = f_TN_in - (c6o1*c1o54*( -VeloY-VeloZ));
          wallMomentumY -= - (c6o1*c1o54*( -VeloY-VeloZ));
          wallMomentumZ -= - (c6o1*c1o54*( -VeloY-VeloZ));
       }
@@ -1562,7 +1562,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirBN[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTS])[kts] = f_TS_in - (c6o1*c1o54*( VeloY-VeloZ));
+         (D.f[TS])[kts] = f_TS_in - (c6o1*c1o54*( VeloY-VeloZ));
          wallMomentumY += - (c6o1*c1o54*( VeloY-VeloZ));
          wallMomentumZ -= - (c6o1*c1o54*( VeloY-VeloZ));
       }
@@ -1570,7 +1570,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirTS[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBN])[kbn] = f_BN_in - (c6o1*c1o54*( -VeloY+VeloZ));
+         (D.f[BN])[kbn] = f_BN_in - (c6o1*c1o54*( -VeloY+VeloZ));
          wallMomentumY -= - (c6o1*c1o54*( -VeloY+VeloZ));
          wallMomentumZ += - (c6o1*c1o54*( -VeloY+VeloZ));
       }
@@ -1578,7 +1578,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirTNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBSW])[kbsw] = f_BSW_in - (c6o1*c1o216*( VeloX+VeloY+VeloZ));
+         (D.f[BSW])[kbsw] = f_BSW_in - (c6o1*c1o216*( VeloX+VeloY+VeloZ));
          wallMomentumX += - (c6o1*c1o216*( VeloX+VeloY+VeloZ));
          wallMomentumY += - (c6o1*c1o216*( VeloX+VeloY+VeloZ));
          wallMomentumZ += - (c6o1*c1o216*( VeloX+VeloY+VeloZ));
@@ -1587,7 +1587,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirBSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTNE])[ktne] = f_TNE_in - (c6o1*c1o216*(-VeloX-VeloY-VeloZ));
+         (D.f[TNE])[ktne] = f_TNE_in - (c6o1*c1o216*(-VeloX-VeloY-VeloZ));
          wallMomentumX -= - (c6o1*c1o216*(-VeloX-VeloY-VeloZ));
          wallMomentumY -= - (c6o1*c1o216*(-VeloX-VeloY-VeloZ));
          wallMomentumZ -= - (c6o1*c1o216*(-VeloX-VeloY-VeloZ));
@@ -1596,7 +1596,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirBNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTSW])[ktsw] = f_TSW_in - (c6o1*c1o216*( VeloX+VeloY-VeloZ));
+         (D.f[TSW])[ktsw] = f_TSW_in - (c6o1*c1o216*( VeloX+VeloY-VeloZ));
          wallMomentumX += - (c6o1*c1o216*( VeloX+VeloY-VeloZ));
          wallMomentumY += - (c6o1*c1o216*( VeloX+VeloY-VeloZ));
          wallMomentumZ -= - (c6o1*c1o216*( VeloX+VeloY-VeloZ));
@@ -1605,7 +1605,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirTSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBNE])[kbne] = f_BNE_in - (c6o1*c1o216*(-VeloX-VeloY+VeloZ));
+         (D.f[BNE])[kbne] = f_BNE_in - (c6o1*c1o216*(-VeloX-VeloY+VeloZ));
          wallMomentumX -= - (c6o1*c1o216*(-VeloX-VeloY+VeloZ));
          wallMomentumY -= - (c6o1*c1o216*(-VeloX-VeloY+VeloZ));
          wallMomentumZ += - (c6o1*c1o216*(-VeloX-VeloY+VeloZ));
@@ -1614,7 +1614,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirTSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBNW])[kbnw] = f_BNW_in - (c6o1*c1o216*( VeloX-VeloY+VeloZ));
+         (D.f[BNW])[kbnw] = f_BNW_in - (c6o1*c1o216*( VeloX-VeloY+VeloZ));
          wallMomentumX += - (c6o1*c1o216*( VeloX-VeloY+VeloZ));
          wallMomentumY -= - (c6o1*c1o216*( VeloX-VeloY+VeloZ));
          wallMomentumZ += - (c6o1*c1o216*( VeloX-VeloY+VeloZ));
@@ -1623,7 +1623,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirBNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTSE])[ktse] = f_TSE_in - (c6o1*c1o216*(-VeloX+VeloY-VeloZ));
+         (D.f[TSE])[ktse] = f_TSE_in - (c6o1*c1o216*(-VeloX+VeloY-VeloZ));
          wallMomentumX -= - (c6o1*c1o216*(-VeloX+VeloY-VeloZ));
          wallMomentumY += - (c6o1*c1o216*(-VeloX+VeloY-VeloZ));
          wallMomentumZ -= - (c6o1*c1o216*(-VeloX+VeloY-VeloZ));
@@ -1632,7 +1632,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirBSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirTNW])[ktnw] = f_TNW_in - (c6o1*c1o216*( VeloX-VeloY-VeloZ));
+         (D.f[TNW])[ktnw] = f_TNW_in - (c6o1*c1o216*( VeloX-VeloY-VeloZ));
          wallMomentumX += - (c6o1*c1o216*( VeloX-VeloY-VeloZ));
          wallMomentumY -= - (c6o1*c1o216*( VeloX-VeloY-VeloZ));
          wallMomentumZ -= - (c6o1*c1o216*( VeloX-VeloY-VeloZ));
@@ -1641,7 +1641,7 @@ extern "C" __global__ void BBStressDevice27( real* DD,
       q = q_dirTNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
-         (D.f[dirBSE])[kbse] = f_BSE_in - (c6o1*c1o216*(-VeloX+VeloY+VeloZ));
+         (D.f[BSE])[kbse] = f_BSE_in - (c6o1*c1o216*(-VeloX+VeloY+VeloZ));
          wallMomentumX -= - (c6o1*c1o216*(-VeloX+VeloY+VeloZ));
          wallMomentumY += - (c6o1*c1o216*(-VeloX+VeloY+VeloZ));
          wallMomentumZ += - (c6o1*c1o216*(-VeloX+VeloY+VeloZ));
diff --git a/src/gpu/VirtualFluids_GPU/GPU/ThinWallBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/ThinWallBCs27.cu
index 3f396b7ab..2cace923d 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/ThinWallBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/ThinWallBCs27.cu
@@ -32,63 +32,63 @@ extern "C" __global__ void QVelDeviceCompThinWallsPartOne27(
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -113,32 +113,32 @@ extern "C" __global__ void QVelDeviceCompThinWallsPartOne27(
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       uint KQK  = k_Q[k];
@@ -173,32 +173,32 @@ extern "C" __global__ void QVelDeviceCompThinWallsPartOne27(
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_W    = (D.f[dirE   ])[ke   ];
-      f_E    = (D.f[dirW   ])[kw   ];
-      f_S    = (D.f[dirN   ])[kn   ];
-      f_N    = (D.f[dirS   ])[ks   ];
-      f_B    = (D.f[dirT   ])[kt   ];
-      f_T    = (D.f[dirB   ])[kb   ];
-      f_SW   = (D.f[dirNE  ])[kne  ];
-      f_NE   = (D.f[dirSW  ])[ksw  ];
-      f_NW   = (D.f[dirSE  ])[kse  ];
-      f_SE   = (D.f[dirNW  ])[knw  ];
-      f_BW   = (D.f[dirTE  ])[kte  ];
-      f_TE   = (D.f[dirBW  ])[kbw  ];
-      f_TW   = (D.f[dirBE  ])[kbe  ];
-      f_BE   = (D.f[dirTW  ])[ktw  ];
-      f_BS   = (D.f[dirTN  ])[ktn  ];
-      f_TN   = (D.f[dirBS  ])[kbs  ];
-      f_TS   = (D.f[dirBN  ])[kbn  ];
-      f_BN   = (D.f[dirTS  ])[kts  ];
-      f_BSW  = (D.f[dirTNE ])[ktne ];
-      f_BNE  = (D.f[dirTSW ])[ktsw ];
-      f_BNW  = (D.f[dirTSE ])[ktse ];
-      f_BSE  = (D.f[dirTNW ])[ktnw ];
-      f_TSW  = (D.f[dirBNE ])[kbne ];
-      f_TNE  = (D.f[dirBSW ])[kbsw ];
-      f_TNW  = (D.f[dirBSE ])[kbse ];
-      f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_W    = (D.f[E   ])[ke   ];
+      f_E    = (D.f[W   ])[kw   ];
+      f_S    = (D.f[N   ])[kn   ];
+      f_N    = (D.f[S   ])[ks   ];
+      f_B    = (D.f[T   ])[kt   ];
+      f_T    = (D.f[B   ])[kb   ];
+      f_SW   = (D.f[NE  ])[kne  ];
+      f_NE   = (D.f[SW  ])[ksw  ];
+      f_NW   = (D.f[SE  ])[kse  ];
+      f_SE   = (D.f[NW  ])[knw  ];
+      f_BW   = (D.f[TE  ])[kte  ];
+      f_TE   = (D.f[BW  ])[kbw  ];
+      f_TW   = (D.f[BE  ])[kbe  ];
+      f_BE   = (D.f[TW  ])[ktw  ];
+      f_BS   = (D.f[TN  ])[ktn  ];
+      f_TN   = (D.f[BS  ])[kbs  ];
+      f_TS   = (D.f[BN  ])[kbn  ];
+      f_BN   = (D.f[TS  ])[kts  ];
+      f_BSW  = (D.f[TNE ])[ktne ];
+      f_BNE  = (D.f[TSW ])[ktsw ];
+      f_BNW  = (D.f[TSE ])[ktse ];
+      f_BSE  = (D.f[TNW ])[ktnw ];
+      f_TSW  = (D.f[BNE ])[kbne ];
+      f_TNE  = (D.f[BSW ])[kbsw ];
+      f_TNW  = (D.f[BSE ])[kbse ];
+      f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q;
       drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -226,182 +226,182 @@ extern "C" __global__ void QVelDeviceCompThinWallsPartOne27(
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho + c9o2 * ( vx1        )*( vx1        ) * (c1o1 + drho)-cu_sq);
-		 (D.f[dirW])[kw] = (c1o1 - q) / (c1o1 + q)*(f_E - f_W + (f_E + f_W - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_E + f_W) - c6o1*c2o27*(VeloX)) / (c1o1 + q);
+		 (D.f[W])[kw] = (c1o1 - q) / (c1o1 + q)*(f_E - f_W + (f_E + f_W - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_E + f_W) - c6o1*c2o27*(VeloX)) / (c1o1 + q);
 	  }
 
 	  q = q_dirW[k];
 	  if (q >= c0o1 && q <= c1o1)
 	  {
 		  feq = c2o27* (drho + c9o2 * (-vx1)*(-vx1) * (c1o1 + drho) - cu_sq);
-		  (D.f[dirE])[ke] = (c1o1 - q) / (c1o1 + q)*(f_W - f_E + (f_W + f_E - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_W + f_E) - c6o1*c2o27*(-VeloX)) / (c1o1 + q);
+		  (D.f[E])[ke] = (c1o1 - q) / (c1o1 + q)*(f_W - f_E + (f_W + f_E - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_W + f_E) - c6o1*c2o27*(-VeloX)) / (c1o1 + q);
 	  }
 
 	  q = q_dirN[k];
 	  if (q >= c0o1 && q <= c1o1)
 	  {
 		  feq = c2o27* (drho + c9o2 * (vx2)*(vx2) * (c1o1 + drho) - cu_sq);
-		  (D.f[dirS])[ks] = (c1o1 - q) / (c1o1 + q)*(f_N - f_S + (f_N + f_S - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_N + f_S) - c6o1*c2o27*(VeloY)) / (c1o1 + q);
+		  (D.f[S])[ks] = (c1o1 - q) / (c1o1 + q)*(f_N - f_S + (f_N + f_S - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_N + f_S) - c6o1*c2o27*(VeloY)) / (c1o1 + q);
 	  }
 
 	  q = q_dirS[k];
 	  if (q >= c0o1 && q <= c1o1)
 	  {
 		  feq = c2o27* (drho + c9o2 * (-vx2)*(-vx2) * (c1o1 + drho) - cu_sq);
-		  (D.f[dirN])[kn] = (c1o1 - q) / (c1o1 + q)*(f_S - f_N + (f_S + f_N - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_S + f_N) - c6o1*c2o27*(-VeloY)) / (c1o1 + q);
+		  (D.f[N])[kn] = (c1o1 - q) / (c1o1 + q)*(f_S - f_N + (f_S + f_N - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_S + f_N) - c6o1*c2o27*(-VeloY)) / (c1o1 + q);
 	  }
 
 	  q = q_dirT[k];
 	  if (q >= c0o1 && q <= c1o1)
 	  {
 		  feq = c2o27* (drho + c9o2 * (vx3)*(vx3) * (c1o1 + drho) - cu_sq);
-		  (D.f[dirB])[kb] = (c1o1 - q) / (c1o1 + q)*(f_T - f_B + (f_T + f_B - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_T + f_B) - c6o1*c2o27*(VeloZ)) / (c1o1 + q);
+		  (D.f[B])[kb] = (c1o1 - q) / (c1o1 + q)*(f_T - f_B + (f_T + f_B - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_T + f_B) - c6o1*c2o27*(VeloZ)) / (c1o1 + q);
 	  }
 
 	  q = q_dirB[k];
 	  if (q >= c0o1 && q <= c1o1)
 	  {
 		  feq = c2o27* (drho + c9o2 * (-vx3)*(-vx3) * (c1o1 + drho) - cu_sq);
-		  (D.f[dirT])[kt] = (c1o1 - q) / (c1o1 + q)*(f_B - f_T + (f_B + f_T - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_B + f_T) - c6o1*c2o27*(-VeloZ)) / (c1o1 + q);
+		  (D.f[T])[kt] = (c1o1 - q) / (c1o1 + q)*(f_B - f_T + (f_B + f_T - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_B + f_T) - c6o1*c2o27*(-VeloZ)) / (c1o1 + q);
       }
 
       q = q_dirNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho + c9o2 * ( vx1+vx2    )*( vx1+vx2    ) * (c1o1 + drho)-cu_sq);
-         (D.f[dirSW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*( VeloX+VeloY))/(c1o1+q);
+         (D.f[SW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*( VeloX+VeloY))/(c1o1+q);
       }
 
       q = q_dirSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho + c9o2 * (-vx1-vx2    )*(-vx1-vx2    ) * (c1o1 + drho)-cu_sq);
-         (D.f[dirNE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q);
+         (D.f[NE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q);
       }
 
       q = q_dirSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho + c9o2 * ( vx1-vx2    )*( vx1-vx2    ) * (c1o1 + drho)-cu_sq);
-         (D.f[dirNW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q);
+         (D.f[NW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q);
       }
 
       q = q_dirNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho + c9o2 * (-vx1+vx2    )*(-vx1+vx2    ) * (c1o1 + drho)-cu_sq);
-         (D.f[dirSE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q);
+         (D.f[SE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q);
       }
 
       q = q_dirTE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho + c9o2 * ( vx1    +vx3)*( vx1    +vx3) * (c1o1 + drho)-cu_sq);
-         (D.f[dirBW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q);
+         (D.f[BW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q);
       }
 
       q = q_dirBW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho + c9o2 * (-vx1    -vx3)*(-vx1    -vx3) * (c1o1 + drho)-cu_sq);
-         (D.f[dirTE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q);
+         (D.f[TE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q);
       }
 
       q = q_dirBE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho + c9o2 * ( vx1    -vx3)*( vx1    -vx3) * (c1o1 + drho)-cu_sq);
-         (D.f[dirTW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q);
+         (D.f[TW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q);
       }
 
       q = q_dirTW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho + c9o2 * (-vx1    +vx3)*(-vx1    +vx3) * (c1o1 + drho)-cu_sq);
-         (D.f[dirBE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q);
+         (D.f[BE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q);
       }
 
       q = q_dirTN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho + c9o2 * (     vx2+vx3)*(     vx2+vx3) * (c1o1 + drho)-cu_sq);
-         (D.f[dirBS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q);
+         (D.f[BS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q);
       }
 
       q = q_dirBS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho + c9o2 * (    -vx2-vx3)*(    -vx2-vx3) * (c1o1 + drho)-cu_sq);
-         (D.f[dirTN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*(-VeloY-VeloZ))/(c1o1+q);
+         (D.f[TN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*(-VeloY-VeloZ))/(c1o1+q);
       }
 
       q = q_dirBN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho + c9o2 * (     vx2-vx3)*(     vx2-vx3) * (c1o1 + drho)-cu_sq);
-         (D.f[dirTS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q);
+         (D.f[TS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q);
       }
 
       q = q_dirTS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho + c9o2 * (    -vx2+vx3)*(    -vx2+vx3) * (c1o1 + drho)-cu_sq);
-         (D.f[dirBN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*(-VeloY+VeloZ))/(c1o1+q);
+         (D.f[BN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*(-VeloY+VeloZ))/(c1o1+q);
       }
 
       q = q_dirTNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho + c9o2 * ( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);
+         (D.f[BSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);
       }
 
       q = q_dirBSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho + c9o2 * (-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);
+         (D.f[TNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);
       }
 
       q = q_dirBNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho + c9o2 * ( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);
+         (D.f[TSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);
       }
 
       q = q_dirTSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho + c9o2 * (-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);
+         (D.f[BNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);
       }
 
       q = q_dirTSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho + c9o2 * ( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);
+         (D.f[BNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);
       }
 
       q = q_dirBNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho + c9o2 * (-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);
+         (D.f[TSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);
       }
 
       q = q_dirBSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho + c9o2 * ( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);
+         (D.f[TNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);
       }
 
       q = q_dirTNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho + c9o2 * (-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);
+         (D.f[BSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);
       }
    }
 }
@@ -461,63 +461,63 @@ extern "C" __global__ void QDeviceCompThinWallsPartOne27(
 	Distributions27 D;
 	if (isEvenTimestep == true)
 	{
-		D.f[dirE] = &DD[dirE   *size_Mat];
-		D.f[dirW] = &DD[dirW   *size_Mat];
-		D.f[dirN] = &DD[dirN   *size_Mat];
-		D.f[dirS] = &DD[dirS   *size_Mat];
-		D.f[dirT] = &DD[dirT   *size_Mat];
-		D.f[dirB] = &DD[dirB   *size_Mat];
-		D.f[dirNE] = &DD[dirNE  *size_Mat];
-		D.f[dirSW] = &DD[dirSW  *size_Mat];
-		D.f[dirSE] = &DD[dirSE  *size_Mat];
-		D.f[dirNW] = &DD[dirNW  *size_Mat];
-		D.f[dirTE] = &DD[dirTE  *size_Mat];
-		D.f[dirBW] = &DD[dirBW  *size_Mat];
-		D.f[dirBE] = &DD[dirBE  *size_Mat];
-		D.f[dirTW] = &DD[dirTW  *size_Mat];
-		D.f[dirTN] = &DD[dirTN  *size_Mat];
-		D.f[dirBS] = &DD[dirBS  *size_Mat];
-		D.f[dirBN] = &DD[dirBN  *size_Mat];
-		D.f[dirTS] = &DD[dirTS  *size_Mat];
+		D.f[E] = &DD[E   *size_Mat];
+		D.f[W] = &DD[W   *size_Mat];
+		D.f[N] = &DD[N   *size_Mat];
+		D.f[S] = &DD[S   *size_Mat];
+		D.f[T] = &DD[T   *size_Mat];
+		D.f[B] = &DD[B   *size_Mat];
+		D.f[NE] = &DD[NE  *size_Mat];
+		D.f[SW] = &DD[SW  *size_Mat];
+		D.f[SE] = &DD[SE  *size_Mat];
+		D.f[NW] = &DD[NW  *size_Mat];
+		D.f[TE] = &DD[TE  *size_Mat];
+		D.f[BW] = &DD[BW  *size_Mat];
+		D.f[BE] = &DD[BE  *size_Mat];
+		D.f[TW] = &DD[TW  *size_Mat];
+		D.f[TN] = &DD[TN  *size_Mat];
+		D.f[BS] = &DD[BS  *size_Mat];
+		D.f[BN] = &DD[BN  *size_Mat];
+		D.f[TS] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE] = &DD[dirTNE *size_Mat];
-		D.f[dirTSW] = &DD[dirTSW *size_Mat];
-		D.f[dirTSE] = &DD[dirTSE *size_Mat];
-		D.f[dirTNW] = &DD[dirTNW *size_Mat];
-		D.f[dirBNE] = &DD[dirBNE *size_Mat];
-		D.f[dirBSW] = &DD[dirBSW *size_Mat];
-		D.f[dirBSE] = &DD[dirBSE *size_Mat];
-		D.f[dirBNW] = &DD[dirBNW *size_Mat];
+		D.f[TNE] = &DD[TNE *size_Mat];
+		D.f[TSW] = &DD[TSW *size_Mat];
+		D.f[TSE] = &DD[TSE *size_Mat];
+		D.f[TNW] = &DD[TNW *size_Mat];
+		D.f[BNE] = &DD[BNE *size_Mat];
+		D.f[BSW] = &DD[BSW *size_Mat];
+		D.f[BSE] = &DD[BSE *size_Mat];
+		D.f[BNW] = &DD[BNW *size_Mat];
 	}
 	else
 	{
-		D.f[dirW] = &DD[dirE   *size_Mat];
-		D.f[dirE] = &DD[dirW   *size_Mat];
-		D.f[dirS] = &DD[dirN   *size_Mat];
-		D.f[dirN] = &DD[dirS   *size_Mat];
-		D.f[dirB] = &DD[dirT   *size_Mat];
-		D.f[dirT] = &DD[dirB   *size_Mat];
-		D.f[dirSW] = &DD[dirNE  *size_Mat];
-		D.f[dirNE] = &DD[dirSW  *size_Mat];
-		D.f[dirNW] = &DD[dirSE  *size_Mat];
-		D.f[dirSE] = &DD[dirNW  *size_Mat];
-		D.f[dirBW] = &DD[dirTE  *size_Mat];
-		D.f[dirTE] = &DD[dirBW  *size_Mat];
-		D.f[dirTW] = &DD[dirBE  *size_Mat];
-		D.f[dirBE] = &DD[dirTW  *size_Mat];
-		D.f[dirBS] = &DD[dirTN  *size_Mat];
-		D.f[dirTN] = &DD[dirBS  *size_Mat];
-		D.f[dirTS] = &DD[dirBN  *size_Mat];
-		D.f[dirBN] = &DD[dirTS  *size_Mat];
+		D.f[W] = &DD[E   *size_Mat];
+		D.f[E] = &DD[W   *size_Mat];
+		D.f[S] = &DD[N   *size_Mat];
+		D.f[N] = &DD[S   *size_Mat];
+		D.f[B] = &DD[T   *size_Mat];
+		D.f[T] = &DD[B   *size_Mat];
+		D.f[SW] = &DD[NE  *size_Mat];
+		D.f[NE] = &DD[SW  *size_Mat];
+		D.f[NW] = &DD[SE  *size_Mat];
+		D.f[SE] = &DD[NW  *size_Mat];
+		D.f[BW] = &DD[TE  *size_Mat];
+		D.f[TE] = &DD[BW  *size_Mat];
+		D.f[TW] = &DD[BE  *size_Mat];
+		D.f[BE] = &DD[TW  *size_Mat];
+		D.f[BS] = &DD[TN  *size_Mat];
+		D.f[TN] = &DD[BS  *size_Mat];
+		D.f[TS] = &DD[BN  *size_Mat];
+		D.f[BN] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE] = &DD[dirBSW *size_Mat];
-		D.f[dirTSW] = &DD[dirBNE *size_Mat];
-		D.f[dirTSE] = &DD[dirBNW *size_Mat];
-		D.f[dirTNW] = &DD[dirBSE *size_Mat];
-		D.f[dirBNE] = &DD[dirTSW *size_Mat];
-		D.f[dirBSW] = &DD[dirTNE *size_Mat];
-		D.f[dirBSE] = &DD[dirTNW *size_Mat];
-		D.f[dirBNW] = &DD[dirTSE *size_Mat];
+		D.f[TNE] = &DD[BSW *size_Mat];
+		D.f[TSW] = &DD[BNE *size_Mat];
+		D.f[TSE] = &DD[BNW *size_Mat];
+		D.f[TNW] = &DD[BSE *size_Mat];
+		D.f[BNE] = &DD[TSW *size_Mat];
+		D.f[BSW] = &DD[TNE *size_Mat];
+		D.f[BSE] = &DD[TNW *size_Mat];
+		D.f[BNW] = &DD[TSE *size_Mat];
 	}
 	////////////////////////////////////////////////////////////////////////////////
 	const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -538,32 +538,32 @@ extern "C" __global__ void QDeviceCompThinWallsPartOne27(
 			*q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS,
 			*q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
 			*q_dirBSE, *q_dirBNW;
-		q_dirE = &QQ[dirE   * numberOfBCnodes];
-		q_dirW = &QQ[dirW   * numberOfBCnodes];
-		q_dirN = &QQ[dirN   * numberOfBCnodes];
-		q_dirS = &QQ[dirS   * numberOfBCnodes];
-		q_dirT = &QQ[dirT   * numberOfBCnodes];
-		q_dirB = &QQ[dirB   * numberOfBCnodes];
-		q_dirNE = &QQ[dirNE  * numberOfBCnodes];
-		q_dirSW = &QQ[dirSW  * numberOfBCnodes];
-		q_dirSE = &QQ[dirSE  * numberOfBCnodes];
-		q_dirNW = &QQ[dirNW  * numberOfBCnodes];
-		q_dirTE = &QQ[dirTE  * numberOfBCnodes];
-		q_dirBW = &QQ[dirBW  * numberOfBCnodes];
-		q_dirBE = &QQ[dirBE  * numberOfBCnodes];
-		q_dirTW = &QQ[dirTW  * numberOfBCnodes];
-		q_dirTN = &QQ[dirTN  * numberOfBCnodes];
-		q_dirBS = &QQ[dirBS  * numberOfBCnodes];
-		q_dirBN = &QQ[dirBN  * numberOfBCnodes];
-		q_dirTS = &QQ[dirTS  * numberOfBCnodes];
-		q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-		q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-		q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-		q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-		q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-		q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-		q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-		q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+		q_dirE = &QQ[E   * numberOfBCnodes];
+		q_dirW = &QQ[W   * numberOfBCnodes];
+		q_dirN = &QQ[N   * numberOfBCnodes];
+		q_dirS = &QQ[S   * numberOfBCnodes];
+		q_dirT = &QQ[T   * numberOfBCnodes];
+		q_dirB = &QQ[B   * numberOfBCnodes];
+		q_dirNE = &QQ[NE  * numberOfBCnodes];
+		q_dirSW = &QQ[SW  * numberOfBCnodes];
+		q_dirSE = &QQ[SE  * numberOfBCnodes];
+		q_dirNW = &QQ[NW  * numberOfBCnodes];
+		q_dirTE = &QQ[TE  * numberOfBCnodes];
+		q_dirBW = &QQ[BW  * numberOfBCnodes];
+		q_dirBE = &QQ[BE  * numberOfBCnodes];
+		q_dirTW = &QQ[TW  * numberOfBCnodes];
+		q_dirTN = &QQ[TN  * numberOfBCnodes];
+		q_dirBS = &QQ[BS  * numberOfBCnodes];
+		q_dirBN = &QQ[BN  * numberOfBCnodes];
+		q_dirTS = &QQ[TS  * numberOfBCnodes];
+		q_dirTNE = &QQ[TNE * numberOfBCnodes];
+		q_dirTSW = &QQ[TSW * numberOfBCnodes];
+		q_dirTSE = &QQ[TSE * numberOfBCnodes];
+		q_dirTNW = &QQ[TNW * numberOfBCnodes];
+		q_dirBNE = &QQ[BNE * numberOfBCnodes];
+		q_dirBSW = &QQ[BSW * numberOfBCnodes];
+		q_dirBSE = &QQ[BSE * numberOfBCnodes];
+		q_dirBNW = &QQ[BNW * numberOfBCnodes];
 		////////////////////////////////////////////////////////////////////////////////
 		//index
 		unsigned int KQK = k_Q[k];
@@ -598,32 +598,32 @@ extern "C" __global__ void QDeviceCompThinWallsPartOne27(
 		real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE,
 			f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-		f_W = (D.f[dirE])[ke];
-		f_E = (D.f[dirW])[kw];
-		f_S = (D.f[dirN])[kn];
-		f_N = (D.f[dirS])[ks];
-		f_B = (D.f[dirT])[kt];
-		f_T = (D.f[dirB])[kb];
-		f_SW = (D.f[dirNE])[kne];
-		f_NE = (D.f[dirSW])[ksw];
-		f_NW = (D.f[dirSE])[kse];
-		f_SE = (D.f[dirNW])[knw];
-		f_BW = (D.f[dirTE])[kte];
-		f_TE = (D.f[dirBW])[kbw];
-		f_TW = (D.f[dirBE])[kbe];
-		f_BE = (D.f[dirTW])[ktw];
-		f_BS = (D.f[dirTN])[ktn];
-		f_TN = (D.f[dirBS])[kbs];
-		f_TS = (D.f[dirBN])[kbn];
-		f_BN = (D.f[dirTS])[kts];
-		f_BSW = (D.f[dirTNE])[ktne];
-		f_BNE = (D.f[dirTSW])[ktsw];
-		f_BNW = (D.f[dirTSE])[ktse];
-		f_BSE = (D.f[dirTNW])[ktnw];
-		f_TSW = (D.f[dirBNE])[kbne];
-		f_TNE = (D.f[dirBSW])[kbsw];
-		f_TNW = (D.f[dirBSE])[kbse];
-		f_TSE = (D.f[dirBNW])[kbnw];
+		f_W = (D.f[E])[ke];
+		f_E = (D.f[W])[kw];
+		f_S = (D.f[N])[kn];
+		f_N = (D.f[S])[ks];
+		f_B = (D.f[T])[kt];
+		f_T = (D.f[B])[kb];
+		f_SW = (D.f[NE])[kne];
+		f_NE = (D.f[SW])[ksw];
+		f_NW = (D.f[SE])[kse];
+		f_SE = (D.f[NW])[knw];
+		f_BW = (D.f[TE])[kte];
+		f_TE = (D.f[BW])[kbw];
+		f_TW = (D.f[BE])[kbe];
+		f_BE = (D.f[TW])[ktw];
+		f_BS = (D.f[TN])[ktn];
+		f_TN = (D.f[BS])[kbs];
+		f_TS = (D.f[BN])[kbn];
+		f_BN = (D.f[TS])[kts];
+		f_BSW = (D.f[TNE])[ktne];
+		f_BNE = (D.f[TSW])[ktsw];
+		f_BNW = (D.f[TSE])[ktse];
+		f_BSE = (D.f[TNW])[ktnw];
+		f_TSW = (D.f[BNE])[kbne];
+		f_TNE = (D.f[BSW])[kbsw];
+		f_TNW = (D.f[BSE])[kbse];
+		f_TSE = (D.f[BNW])[kbnw];
 		////////////////////////////////////////////////////////////////////////////////
 		real vx1, vx2, vx3, drho, feq, q;
 		drho = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -651,182 +651,182 @@ extern "C" __global__ void QDeviceCompThinWallsPartOne27(
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c2o27* (drho + c9o2*(vx1)*(vx1) * (c1o1 + drho) - cu_sq);
-			(D.f[dirW])[kw] = (c1o1 - q) / (c1o1 + q)*(f_E - f_W + (f_E + f_W - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_E + f_W)) / (c1o1 + q);
+			(D.f[W])[kw] = (c1o1 - q) / (c1o1 + q)*(f_E - f_W + (f_E + f_W - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_E + f_W)) / (c1o1 + q);
 		}
 
 		q = q_dirW[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c2o27* (drho + c9o2*(-vx1)*(-vx1) * (c1o1 + drho) - cu_sq);
-			(D.f[dirE])[ke] = (c1o1 - q) / (c1o1 + q)*(f_W - f_E + (f_W + f_E - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_W + f_E)) / (c1o1 + q);
+			(D.f[E])[ke] = (c1o1 - q) / (c1o1 + q)*(f_W - f_E + (f_W + f_E - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_W + f_E)) / (c1o1 + q);
 		}
 
 		q = q_dirN[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c2o27* (drho + c9o2*(vx2)*(vx2) * (c1o1 + drho) - cu_sq);
-			(D.f[dirS])[ks] = (c1o1 - q) / (c1o1 + q)*(f_N - f_S + (f_N + f_S - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_N + f_S)) / (c1o1 + q);
+			(D.f[S])[ks] = (c1o1 - q) / (c1o1 + q)*(f_N - f_S + (f_N + f_S - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_N + f_S)) / (c1o1 + q);
 		}
 
 		q = q_dirS[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c2o27* (drho + c9o2*(-vx2)*(-vx2) * (c1o1 + drho) - cu_sq);
-			(D.f[dirN])[kn] = (c1o1 - q) / (c1o1 + q)*(f_S - f_N + (f_S + f_N - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_S + f_N)) / (c1o1 + q);
+			(D.f[N])[kn] = (c1o1 - q) / (c1o1 + q)*(f_S - f_N + (f_S + f_N - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_S + f_N)) / (c1o1 + q);
 		}
 
 		q = q_dirT[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c2o27* (drho + c9o2*(vx3)*(vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirB])[kb] = (c1o1 - q) / (c1o1 + q)*(f_T - f_B + (f_T + f_B - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_T + f_B)) / (c1o1 + q);
+			(D.f[B])[kb] = (c1o1 - q) / (c1o1 + q)*(f_T - f_B + (f_T + f_B - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_T + f_B)) / (c1o1 + q);
 		}
 
 		q = q_dirB[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c2o27* (drho + c9o2*(-vx3)*(-vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirT])[kt] = (c1o1 - q) / (c1o1 + q)*(f_B - f_T + (f_B + f_T - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_B + f_T)) / (c1o1 + q);
+			(D.f[T])[kt] = (c1o1 - q) / (c1o1 + q)*(f_B - f_T + (f_B + f_T - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_B + f_T)) / (c1o1 + q);
 		}
 
 		q = q_dirNE[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o54* (drho + c9o2*(vx1 + vx2)*(vx1 + vx2) * (c1o1 + drho) - cu_sq);
-			(D.f[dirSW])[ksw] = (c1o1 - q) / (c1o1 + q)*(f_NE - f_SW + (f_NE + f_SW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_NE + f_SW)) / (c1o1 + q);
+			(D.f[SW])[ksw] = (c1o1 - q) / (c1o1 + q)*(f_NE - f_SW + (f_NE + f_SW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_NE + f_SW)) / (c1o1 + q);
 		}
 
 		q = q_dirSW[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o54* (drho + c9o2*(-vx1 - vx2)*(-vx1 - vx2) * (c1o1 + drho) - cu_sq);
-			(D.f[dirNE])[kne] = (c1o1 - q) / (c1o1 + q)*(f_SW - f_NE + (f_SW + f_NE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_SW + f_NE)) / (c1o1 + q);
+			(D.f[NE])[kne] = (c1o1 - q) / (c1o1 + q)*(f_SW - f_NE + (f_SW + f_NE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_SW + f_NE)) / (c1o1 + q);
 		}
 
 		q = q_dirSE[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o54* (drho + c9o2*(vx1 - vx2)*(vx1 - vx2) * (c1o1 + drho) - cu_sq);
-			(D.f[dirNW])[knw] = (c1o1 - q) / (c1o1 + q)*(f_SE - f_NW + (f_SE + f_NW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_SE + f_NW)) / (c1o1 + q);
+			(D.f[NW])[knw] = (c1o1 - q) / (c1o1 + q)*(f_SE - f_NW + (f_SE + f_NW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_SE + f_NW)) / (c1o1 + q);
 		}
 
 		q = q_dirNW[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o54* (drho + c9o2*(-vx1 + vx2)*(-vx1 + vx2) * (c1o1 + drho) - cu_sq);
-			(D.f[dirSE])[kse] = (c1o1 - q) / (c1o1 + q)*(f_NW - f_SE + (f_NW + f_SE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_NW + f_SE)) / (c1o1 + q);
+			(D.f[SE])[kse] = (c1o1 - q) / (c1o1 + q)*(f_NW - f_SE + (f_NW + f_SE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_NW + f_SE)) / (c1o1 + q);
 		}
 
 		q = q_dirTE[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o54* (drho + c9o2*(vx1 + vx3)*(vx1 + vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirBW])[kbw] = (c1o1 - q) / (c1o1 + q)*(f_TE - f_BW + (f_TE + f_BW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TE + f_BW)) / (c1o1 + q);
+			(D.f[BW])[kbw] = (c1o1 - q) / (c1o1 + q)*(f_TE - f_BW + (f_TE + f_BW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TE + f_BW)) / (c1o1 + q);
 		}
 
 		q = q_dirBW[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o54* (drho + c9o2*(-vx1 - vx3)*(-vx1 - vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirTE])[kte] = (c1o1 - q) / (c1o1 + q)*(f_BW - f_TE + (f_BW + f_TE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BW + f_TE)) / (c1o1 + q);
+			(D.f[TE])[kte] = (c1o1 - q) / (c1o1 + q)*(f_BW - f_TE + (f_BW + f_TE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BW + f_TE)) / (c1o1 + q);
 		}
 
 		q = q_dirBE[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o54* (drho + c9o2*(vx1 - vx3)*(vx1 - vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirTW])[ktw] = (c1o1 - q) / (c1o1 + q)*(f_BE - f_TW + (f_BE + f_TW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BE + f_TW)) / (c1o1 + q);
+			(D.f[TW])[ktw] = (c1o1 - q) / (c1o1 + q)*(f_BE - f_TW + (f_BE + f_TW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BE + f_TW)) / (c1o1 + q);
 		}
 
 		q = q_dirTW[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o54* (drho + c9o2*(-vx1 + vx3)*(-vx1 + vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirBE])[kbe] = (c1o1 - q) / (c1o1 + q)*(f_TW - f_BE + (f_TW + f_BE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TW + f_BE)) / (c1o1 + q);
+			(D.f[BE])[kbe] = (c1o1 - q) / (c1o1 + q)*(f_TW - f_BE + (f_TW + f_BE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TW + f_BE)) / (c1o1 + q);
 		}
 
 		q = q_dirTN[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o54* (drho + c9o2*(vx2 + vx3)*(vx2 + vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirBS])[kbs] = (c1o1 - q) / (c1o1 + q)*(f_TN - f_BS + (f_TN + f_BS - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TN + f_BS)) / (c1o1 + q);
+			(D.f[BS])[kbs] = (c1o1 - q) / (c1o1 + q)*(f_TN - f_BS + (f_TN + f_BS - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TN + f_BS)) / (c1o1 + q);
 		}
 
 		q = q_dirBS[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o54* (drho + c9o2*(-vx2 - vx3)*(-vx2 - vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirTN])[ktn] = (c1o1 - q) / (c1o1 + q)*(f_BS - f_TN + (f_BS + f_TN - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BS + f_TN)) / (c1o1 + q);
+			(D.f[TN])[ktn] = (c1o1 - q) / (c1o1 + q)*(f_BS - f_TN + (f_BS + f_TN - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BS + f_TN)) / (c1o1 + q);
 		}
 
 		q = q_dirBN[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o54* (drho + c9o2*(vx2 - vx3)*(vx2 - vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirTS])[kts] = (c1o1 - q) / (c1o1 + q)*(f_BN - f_TS + (f_BN + f_TS - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BN + f_TS)) / (c1o1 + q);
+			(D.f[TS])[kts] = (c1o1 - q) / (c1o1 + q)*(f_BN - f_TS + (f_BN + f_TS - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BN + f_TS)) / (c1o1 + q);
 		}
 
 		q = q_dirTS[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o54* (drho + c9o2*(-vx2 + vx3)*(-vx2 + vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirBN])[kbn] = (c1o1 - q) / (c1o1 + q)*(f_TS - f_BN + (f_TS + f_BN - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TS + f_BN)) / (c1o1 + q);
+			(D.f[BN])[kbn] = (c1o1 - q) / (c1o1 + q)*(f_TS - f_BN + (f_TS + f_BN - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TS + f_BN)) / (c1o1 + q);
 		}
 
 		q = q_dirTNE[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o216*(drho + c9o2*(vx1 + vx2 + vx3)*(vx1 + vx2 + vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirBSW])[kbsw] = (c1o1 - q) / (c1o1 + q)*(f_TNE - f_BSW + (f_TNE + f_BSW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TNE + f_BSW)) / (c1o1 + q);
+			(D.f[BSW])[kbsw] = (c1o1 - q) / (c1o1 + q)*(f_TNE - f_BSW + (f_TNE + f_BSW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TNE + f_BSW)) / (c1o1 + q);
 		}
 
 		q = q_dirBSW[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o216*(drho + c9o2*(-vx1 - vx2 - vx3)*(-vx1 - vx2 - vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirTNE])[ktne] = (c1o1 - q) / (c1o1 + q)*(f_BSW - f_TNE + (f_BSW + f_TNE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BSW + f_TNE)) / (c1o1 + q);
+			(D.f[TNE])[ktne] = (c1o1 - q) / (c1o1 + q)*(f_BSW - f_TNE + (f_BSW + f_TNE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BSW + f_TNE)) / (c1o1 + q);
 		}
 
 		q = q_dirBNE[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o216*(drho + c9o2*(vx1 + vx2 - vx3)*(vx1 + vx2 - vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirTSW])[ktsw] = (c1o1 - q) / (c1o1 + q)*(f_BNE - f_TSW + (f_BNE + f_TSW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BNE + f_TSW)) / (c1o1 + q);
+			(D.f[TSW])[ktsw] = (c1o1 - q) / (c1o1 + q)*(f_BNE - f_TSW + (f_BNE + f_TSW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BNE + f_TSW)) / (c1o1 + q);
 		}
 
 		q = q_dirTSW[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o216*(drho + c9o2*(-vx1 - vx2 + vx3)*(-vx1 - vx2 + vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirBNE])[kbne] = (c1o1 - q) / (c1o1 + q)*(f_TSW - f_BNE + (f_TSW + f_BNE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TSW + f_BNE)) / (c1o1 + q);
+			(D.f[BNE])[kbne] = (c1o1 - q) / (c1o1 + q)*(f_TSW - f_BNE + (f_TSW + f_BNE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TSW + f_BNE)) / (c1o1 + q);
 		}
 
 		q = q_dirTSE[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o216*(drho + c9o2*(vx1 - vx2 + vx3)*(vx1 - vx2 + vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirBNW])[kbnw] = (c1o1 - q) / (c1o1 + q)*(f_TSE - f_BNW + (f_TSE + f_BNW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TSE + f_BNW)) / (c1o1 + q);
+			(D.f[BNW])[kbnw] = (c1o1 - q) / (c1o1 + q)*(f_TSE - f_BNW + (f_TSE + f_BNW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TSE + f_BNW)) / (c1o1 + q);
 		}
 
 		q = q_dirBNW[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o216*(drho + c9o2*(-vx1 + vx2 - vx3)*(-vx1 + vx2 - vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirTSE])[ktse] = (c1o1 - q) / (c1o1 + q)*(f_BNW - f_TSE + (f_BNW + f_TSE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BNW + f_TSE)) / (c1o1 + q);
+			(D.f[TSE])[ktse] = (c1o1 - q) / (c1o1 + q)*(f_BNW - f_TSE + (f_BNW + f_TSE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BNW + f_TSE)) / (c1o1 + q);
 		}
 
 		q = q_dirBSE[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o216*(drho + c9o2*(vx1 - vx2 - vx3)*(vx1 - vx2 - vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirTNW])[ktnw] = (c1o1 - q) / (c1o1 + q)*(f_BSE - f_TNW + (f_BSE + f_TNW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BSE + f_TNW)) / (c1o1 + q);
+			(D.f[TNW])[ktnw] = (c1o1 - q) / (c1o1 + q)*(f_BSE - f_TNW + (f_BSE + f_TNW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BSE + f_TNW)) / (c1o1 + q);
 		}
 
 		q = q_dirTNW[k];
 		if (q >= c0o1 && q <= c1o1)
 		{
 			feq = c1o216*(drho + c9o2*(-vx1 + vx2 + vx3)*(-vx1 + vx2 + vx3) * (c1o1 + drho) - cu_sq);
-			(D.f[dirBSE])[kbse] = (c1o1 - q) / (c1o1 + q)*(f_TNW - f_BSE + (f_TNW + f_BSE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TNW + f_BSE)) / (c1o1 + q);
+			(D.f[BSE])[kbse] = (c1o1 - q) / (c1o1 + q)*(f_TNW - f_BSE + (f_TNW + f_BSE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TNW + f_BSE)) / (c1o1 + q);
 		}
 	}
 }
@@ -903,32 +903,32 @@ extern "C" __global__ void QThinWallsPartTwo27(
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       uint KQK  = k_Q[k];
@@ -979,123 +979,123 @@ extern "C" __global__ void QThinWallsPartTwo27(
 	  Distributions27 D, DN;
 	  if (isEvenTimestep == true)
 	  {
-		  D.f[dirE] = &DD[dirE   *size_Mat];
-		  D.f[dirW] = &DD[dirW   *size_Mat];
-		  D.f[dirN] = &DD[dirN   *size_Mat];
-		  D.f[dirS] = &DD[dirS   *size_Mat];
-		  D.f[dirT] = &DD[dirT   *size_Mat];
-		  D.f[dirB] = &DD[dirB   *size_Mat];
-		  D.f[dirNE] = &DD[dirNE  *size_Mat];
-		  D.f[dirSW] = &DD[dirSW  *size_Mat];
-		  D.f[dirSE] = &DD[dirSE  *size_Mat];
-		  D.f[dirNW] = &DD[dirNW  *size_Mat];
-		  D.f[dirTE] = &DD[dirTE  *size_Mat];
-		  D.f[dirBW] = &DD[dirBW  *size_Mat];
-		  D.f[dirBE] = &DD[dirBE  *size_Mat];
-		  D.f[dirTW] = &DD[dirTW  *size_Mat];
-		  D.f[dirTN] = &DD[dirTN  *size_Mat];
-		  D.f[dirBS] = &DD[dirBS  *size_Mat];
-		  D.f[dirBN] = &DD[dirBN  *size_Mat];
-		  D.f[dirTS] = &DD[dirTS  *size_Mat];
+		  D.f[E] = &DD[E   *size_Mat];
+		  D.f[W] = &DD[W   *size_Mat];
+		  D.f[N] = &DD[N   *size_Mat];
+		  D.f[S] = &DD[S   *size_Mat];
+		  D.f[T] = &DD[T   *size_Mat];
+		  D.f[B] = &DD[B   *size_Mat];
+		  D.f[NE] = &DD[NE  *size_Mat];
+		  D.f[SW] = &DD[SW  *size_Mat];
+		  D.f[SE] = &DD[SE  *size_Mat];
+		  D.f[NW] = &DD[NW  *size_Mat];
+		  D.f[TE] = &DD[TE  *size_Mat];
+		  D.f[BW] = &DD[BW  *size_Mat];
+		  D.f[BE] = &DD[BE  *size_Mat];
+		  D.f[TW] = &DD[TW  *size_Mat];
+		  D.f[TN] = &DD[TN  *size_Mat];
+		  D.f[BS] = &DD[BS  *size_Mat];
+		  D.f[BN] = &DD[BN  *size_Mat];
+		  D.f[TS] = &DD[TS  *size_Mat];
 		  D.f[dirREST] = &DD[dirREST*size_Mat];
-		  D.f[dirTNE] = &DD[dirTNE *size_Mat];
-		  D.f[dirTSW] = &DD[dirTSW *size_Mat];
-		  D.f[dirTSE] = &DD[dirTSE *size_Mat];
-		  D.f[dirTNW] = &DD[dirTNW *size_Mat];
-		  D.f[dirBNE] = &DD[dirBNE *size_Mat];
-		  D.f[dirBSW] = &DD[dirBSW *size_Mat];
-		  D.f[dirBSE] = &DD[dirBSE *size_Mat];
-		  D.f[dirBNW] = &DD[dirBNW *size_Mat];
+		  D.f[TNE] = &DD[TNE *size_Mat];
+		  D.f[TSW] = &DD[TSW *size_Mat];
+		  D.f[TSE] = &DD[TSE *size_Mat];
+		  D.f[TNW] = &DD[TNW *size_Mat];
+		  D.f[BNE] = &DD[BNE *size_Mat];
+		  D.f[BSW] = &DD[BSW *size_Mat];
+		  D.f[BSE] = &DD[BSE *size_Mat];
+		  D.f[BNW] = &DD[BNW *size_Mat];
 	  }
 	  else
 	  {
-		  D.f[dirW] = &DD[dirE   *size_Mat];
-		  D.f[dirE] = &DD[dirW   *size_Mat];
-		  D.f[dirS] = &DD[dirN   *size_Mat];
-		  D.f[dirN] = &DD[dirS   *size_Mat];
-		  D.f[dirB] = &DD[dirT   *size_Mat];
-		  D.f[dirT] = &DD[dirB   *size_Mat];
-		  D.f[dirSW] = &DD[dirNE  *size_Mat];
-		  D.f[dirNE] = &DD[dirSW  *size_Mat];
-		  D.f[dirNW] = &DD[dirSE  *size_Mat];
-		  D.f[dirSE] = &DD[dirNW  *size_Mat];
-		  D.f[dirBW] = &DD[dirTE  *size_Mat];
-		  D.f[dirTE] = &DD[dirBW  *size_Mat];
-		  D.f[dirTW] = &DD[dirBE  *size_Mat];
-		  D.f[dirBE] = &DD[dirTW  *size_Mat];
-		  D.f[dirBS] = &DD[dirTN  *size_Mat];
-		  D.f[dirTN] = &DD[dirBS  *size_Mat];
-		  D.f[dirTS] = &DD[dirBN  *size_Mat];
-		  D.f[dirBN] = &DD[dirTS  *size_Mat];
+		  D.f[W] = &DD[E   *size_Mat];
+		  D.f[E] = &DD[W   *size_Mat];
+		  D.f[S] = &DD[N   *size_Mat];
+		  D.f[N] = &DD[S   *size_Mat];
+		  D.f[B] = &DD[T   *size_Mat];
+		  D.f[T] = &DD[B   *size_Mat];
+		  D.f[SW] = &DD[NE  *size_Mat];
+		  D.f[NE] = &DD[SW  *size_Mat];
+		  D.f[NW] = &DD[SE  *size_Mat];
+		  D.f[SE] = &DD[NW  *size_Mat];
+		  D.f[BW] = &DD[TE  *size_Mat];
+		  D.f[TE] = &DD[BW  *size_Mat];
+		  D.f[TW] = &DD[BE  *size_Mat];
+		  D.f[BE] = &DD[TW  *size_Mat];
+		  D.f[BS] = &DD[TN  *size_Mat];
+		  D.f[TN] = &DD[BS  *size_Mat];
+		  D.f[TS] = &DD[BN  *size_Mat];
+		  D.f[BN] = &DD[TS  *size_Mat];
 		  D.f[dirREST] = &DD[dirREST*size_Mat];
-		  D.f[dirTNE] = &DD[dirBSW *size_Mat];
-		  D.f[dirTSW] = &DD[dirBNE *size_Mat];
-		  D.f[dirTSE] = &DD[dirBNW *size_Mat];
-		  D.f[dirTNW] = &DD[dirBSE *size_Mat];
-		  D.f[dirBNE] = &DD[dirTSW *size_Mat];
-		  D.f[dirBSW] = &DD[dirTNE *size_Mat];
-		  D.f[dirBSE] = &DD[dirTNW *size_Mat];
-		  D.f[dirBNW] = &DD[dirTSE *size_Mat];
+		  D.f[TNE] = &DD[BSW *size_Mat];
+		  D.f[TSW] = &DD[BNE *size_Mat];
+		  D.f[TSE] = &DD[BNW *size_Mat];
+		  D.f[TNW] = &DD[BSE *size_Mat];
+		  D.f[BNE] = &DD[TSW *size_Mat];
+		  D.f[BSW] = &DD[TNE *size_Mat];
+		  D.f[BSE] = &DD[TNW *size_Mat];
+		  D.f[BNW] = &DD[TSE *size_Mat];
 	  }
 	  if (isEvenTimestep==false)
       {
-         DN.f[dirE   ] = &DD[dirE   *size_Mat];
-         DN.f[dirW   ] = &DD[dirW   *size_Mat];
-         DN.f[dirN   ] = &DD[dirN   *size_Mat];
-         DN.f[dirS   ] = &DD[dirS   *size_Mat];
-         DN.f[dirT   ] = &DD[dirT   *size_Mat];
-         DN.f[dirB   ] = &DD[dirB   *size_Mat];
-         DN.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         DN.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         DN.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         DN.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         DN.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         DN.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         DN.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         DN.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         DN.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         DN.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         DN.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         DN.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         DN.f[E   ] = &DD[E   *size_Mat];
+         DN.f[W   ] = &DD[W   *size_Mat];
+         DN.f[N   ] = &DD[N   *size_Mat];
+         DN.f[S   ] = &DD[S   *size_Mat];
+         DN.f[T   ] = &DD[T   *size_Mat];
+         DN.f[B   ] = &DD[B   *size_Mat];
+         DN.f[NE  ] = &DD[NE  *size_Mat];
+         DN.f[SW  ] = &DD[SW  *size_Mat];
+         DN.f[SE  ] = &DD[SE  *size_Mat];
+         DN.f[NW  ] = &DD[NW  *size_Mat];
+         DN.f[TE  ] = &DD[TE  *size_Mat];
+         DN.f[BW  ] = &DD[BW  *size_Mat];
+         DN.f[BE  ] = &DD[BE  *size_Mat];
+         DN.f[TW  ] = &DD[TW  *size_Mat];
+         DN.f[TN  ] = &DD[TN  *size_Mat];
+         DN.f[BS  ] = &DD[BS  *size_Mat];
+         DN.f[BN  ] = &DD[BN  *size_Mat];
+         DN.f[TS  ] = &DD[TS  *size_Mat];
          DN.f[dirREST] = &DD[dirREST*size_Mat];
-         DN.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         DN.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         DN.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         DN.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         DN.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         DN.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         DN.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         DN.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         DN.f[TNE ] = &DD[TNE *size_Mat];
+         DN.f[TSW ] = &DD[TSW *size_Mat];
+         DN.f[TSE ] = &DD[TSE *size_Mat];
+         DN.f[TNW ] = &DD[TNW *size_Mat];
+         DN.f[BNE ] = &DD[BNE *size_Mat];
+         DN.f[BSW ] = &DD[BSW *size_Mat];
+         DN.f[BSE ] = &DD[BSE *size_Mat];
+         DN.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         DN.f[dirW   ] = &DD[dirE   *size_Mat];
-         DN.f[dirE   ] = &DD[dirW   *size_Mat];
-         DN.f[dirS   ] = &DD[dirN   *size_Mat];
-         DN.f[dirN   ] = &DD[dirS   *size_Mat];
-         DN.f[dirB   ] = &DD[dirT   *size_Mat];
-         DN.f[dirT   ] = &DD[dirB   *size_Mat];
-         DN.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         DN.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         DN.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         DN.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         DN.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         DN.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         DN.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         DN.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         DN.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         DN.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         DN.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         DN.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         DN.f[W   ] = &DD[E   *size_Mat];
+         DN.f[E   ] = &DD[W   *size_Mat];
+         DN.f[S   ] = &DD[N   *size_Mat];
+         DN.f[N   ] = &DD[S   *size_Mat];
+         DN.f[B   ] = &DD[T   *size_Mat];
+         DN.f[T   ] = &DD[B   *size_Mat];
+         DN.f[SW  ] = &DD[NE  *size_Mat];
+         DN.f[NE  ] = &DD[SW  *size_Mat];
+         DN.f[NW  ] = &DD[SE  *size_Mat];
+         DN.f[SE  ] = &DD[NW  *size_Mat];
+         DN.f[BW  ] = &DD[TE  *size_Mat];
+         DN.f[TE  ] = &DD[BW  *size_Mat];
+         DN.f[TW  ] = &DD[BE  *size_Mat];
+         DN.f[BE  ] = &DD[TW  *size_Mat];
+         DN.f[BS  ] = &DD[TN  *size_Mat];
+         DN.f[TN  ] = &DD[BS  *size_Mat];
+         DN.f[TS  ] = &DD[BN  *size_Mat];
+         DN.f[BN  ] = &DD[TS  *size_Mat];
          DN.f[dirREST] = &DD[dirREST*size_Mat];
-         DN.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         DN.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         DN.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         DN.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         DN.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         DN.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         DN.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         DN.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         DN.f[TNE ] = &DD[BSW *size_Mat];
+         DN.f[TSW ] = &DD[BNE *size_Mat];
+         DN.f[TSE ] = &DD[BNW *size_Mat];
+         DN.f[TNW ] = &DD[BSE *size_Mat];
+         DN.f[BNE ] = &DD[TSW *size_Mat];
+         DN.f[BSW ] = &DD[TNE *size_Mat];
+         DN.f[BSE ] = &DD[TNW *size_Mat];
+         DN.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  //directions allways exchange
@@ -1105,32 +1105,32 @@ extern "C" __global__ void QThinWallsPartTwo27(
 	  //( 1  1  1) ( 1  0  0) ( 0  1  0) ( 0  0  1) ( 1  1  0) ( 1  0  1) ( 0  1  1) (-1 -1  1) (-1  1 -1) ( 1 -1 -1) (-1  1  0) (-1  0  1) ( 0 -1  1)
 	  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  real q, tmp;
-      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1){ if (geom[kw  ] < GEO_FLUID){tmp = (DN.f[dirW  ])[kw  ]; (DN.f[dirW  ])[kw  ]=(D.f[dirW  ])[kw  ]; (D.f[dirW  ])[kw  ]=tmp;}}
-	  q = q_dirW[k];   if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirE  ])[ke  ]; (DN.f[dirE  ])[ke  ]=(D.f[dirE  ])[ke  ]; (D.f[dirE  ])[ke  ]=tmp;}}
-      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1){ if (geom[ks  ] < GEO_FLUID){tmp = (DN.f[dirS  ])[ks  ]; (DN.f[dirS  ])[ks  ]=(D.f[dirS  ])[ks  ]; (D.f[dirS  ])[ks  ]=tmp;}}
-      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirN  ])[kn  ]; (DN.f[dirN  ])[kn  ]=(D.f[dirN  ])[kn  ]; (D.f[dirN  ])[kn  ]=tmp;}}
-      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1){ if (geom[kb  ] < GEO_FLUID){tmp = (DN.f[dirB  ])[kb  ]; (DN.f[dirB  ])[kb  ]=(D.f[dirB  ])[kb  ]; (D.f[dirB  ])[kb  ]=tmp;}}
-      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirT  ])[kt  ]; (DN.f[dirT  ])[kt  ]=(D.f[dirT  ])[kt  ]; (D.f[dirT  ])[kt  ]=tmp;}}
-      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1){ if (geom[ksw ] < GEO_FLUID){tmp = (DN.f[dirSW ])[ksw ]; (DN.f[dirSW ])[ksw ]=(D.f[dirSW ])[ksw ]; (D.f[dirSW ])[ksw ]=tmp;}}
-      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirNE ])[kne ]; (DN.f[dirNE ])[kne ]=(D.f[dirNE ])[kne ]; (D.f[dirNE ])[kne ]=tmp;}}
-      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirNW ])[knw ]; (DN.f[dirNW ])[knw ]=(D.f[dirNW ])[knw ]; (D.f[dirNW ])[knw ]=tmp;}}
-      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1){ if (geom[kmp0] < GEO_FLUID){tmp = (DN.f[dirSE ])[kse ]; (DN.f[dirSE ])[kse ]=(D.f[dirSE ])[kse ]; (D.f[dirSE ])[kse ]=tmp;}}
-      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1){ if (geom[kbw ] < GEO_FLUID){tmp = (DN.f[dirBW ])[kbw ]; (DN.f[dirBW ])[kbw ]=(D.f[dirBW ])[kbw ]; (D.f[dirBW ])[kbw ]=tmp;}}
-      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirTE ])[kte ]; (DN.f[dirTE ])[kte ]=(D.f[dirTE ])[kte ]; (D.f[dirTE ])[kte ]=tmp;}}
-      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirTW ])[ktw ]; (DN.f[dirTW ])[ktw ]=(D.f[dirTW ])[ktw ]; (D.f[dirTW ])[ktw ]=tmp;}}
-      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1){ if (geom[km0p] < GEO_FLUID){tmp = (DN.f[dirBE ])[kbe ]; (DN.f[dirBE ])[kbe ]=(D.f[dirBE ])[kbe ]; (D.f[dirBE ])[kbe ]=tmp;}}
-      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1){ if (geom[kbs ] < GEO_FLUID){tmp = (DN.f[dirBS ])[kbs ]; (DN.f[dirBS ])[kbs ]=(D.f[dirBS ])[kbs ]; (D.f[dirBS ])[kbs ]=tmp;}}
-      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirTN ])[ktn ]; (DN.f[dirTN ])[ktn ]=(D.f[dirTN ])[ktn ]; (D.f[dirTN ])[ktn ]=tmp;}}
-      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirTS ])[kts ]; (DN.f[dirTS ])[kts ]=(D.f[dirTS ])[kts ]; (D.f[dirTS ])[kts ]=tmp;}}
-      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1){ if (geom[k0mp] < GEO_FLUID){tmp = (DN.f[dirBN ])[kbn ]; (DN.f[dirBN ])[kbn ]=(D.f[dirBN ])[kbn ]; (D.f[dirBN ])[kbn ]=tmp;}}
-      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1){ if (geom[kbsw] < GEO_FLUID){tmp = (DN.f[dirBSW])[kbsw]; (DN.f[dirBSW])[kbsw]=(D.f[dirBSW])[kbsw]; (D.f[dirBSW])[kbsw]=tmp;}}
-      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirTNE])[ktne]; (DN.f[dirTNE])[ktne]=(D.f[dirTNE])[ktne]; (D.f[dirTNE])[ktne]=tmp;}}
-      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirTSW])[ktsw]; (DN.f[dirTSW])[ktsw]=(D.f[dirTSW])[ktsw]; (D.f[dirTSW])[ktsw]=tmp;}}
-      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1){ if (geom[kmmp] < GEO_FLUID){tmp = (DN.f[dirBNE])[kbne]; (DN.f[dirBNE])[kbne]=(D.f[dirBNE])[kbne]; (D.f[dirBNE])[kbne]=tmp;}}
-      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirBNW])[kbnw]; (DN.f[dirBNW])[kbnw]=(D.f[dirBNW])[kbnw]; (D.f[dirBNW])[kbnw]=tmp;}}
-      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1){ if (geom[kmpm] < GEO_FLUID){tmp = (DN.f[dirTSE])[ktse]; (DN.f[dirTSE])[ktse]=(D.f[dirTSE])[ktse]; (D.f[dirTSE])[ktse]=tmp;}}
-      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1){ if (geom[kpmm] < GEO_FLUID){tmp = (DN.f[dirTNW])[ktnw]; (DN.f[dirTNW])[ktnw]=(D.f[dirTNW])[ktnw]; (D.f[dirTNW])[ktnw]=tmp;}}
-      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[dirBSE])[kbse]; (DN.f[dirBSE])[kbse]=(D.f[dirBSE])[kbse]; (D.f[dirBSE])[kbse]=tmp;}}
+      q = q_dirE[k];   if (q>=c0o1 && q<=c1o1){ if (geom[kw  ] < GEO_FLUID){tmp = (DN.f[W  ])[kw  ]; (DN.f[W  ])[kw  ]=(D.f[W  ])[kw  ]; (D.f[W  ])[kw  ]=tmp;}}
+	  q = q_dirW[k];   if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[E  ])[ke  ]; (DN.f[E  ])[ke  ]=(D.f[E  ])[ke  ]; (D.f[E  ])[ke  ]=tmp;}}
+      q = q_dirN[k];   if (q>=c0o1 && q<=c1o1){ if (geom[ks  ] < GEO_FLUID){tmp = (DN.f[S  ])[ks  ]; (DN.f[S  ])[ks  ]=(D.f[S  ])[ks  ]; (D.f[S  ])[ks  ]=tmp;}}
+      q = q_dirS[k];   if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[N  ])[kn  ]; (DN.f[N  ])[kn  ]=(D.f[N  ])[kn  ]; (D.f[N  ])[kn  ]=tmp;}}
+      q = q_dirT[k];   if (q>=c0o1 && q<=c1o1){ if (geom[kb  ] < GEO_FLUID){tmp = (DN.f[B  ])[kb  ]; (DN.f[B  ])[kb  ]=(D.f[B  ])[kb  ]; (D.f[B  ])[kb  ]=tmp;}}
+      q = q_dirB[k];   if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[T  ])[kt  ]; (DN.f[T  ])[kt  ]=(D.f[T  ])[kt  ]; (D.f[T  ])[kt  ]=tmp;}}
+      q = q_dirNE[k];  if (q>=c0o1 && q<=c1o1){ if (geom[ksw ] < GEO_FLUID){tmp = (DN.f[SW ])[ksw ]; (DN.f[SW ])[ksw ]=(D.f[SW ])[ksw ]; (D.f[SW ])[ksw ]=tmp;}}
+      q = q_dirSW[k];  if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[NE ])[kne ]; (DN.f[NE ])[kne ]=(D.f[NE ])[kne ]; (D.f[NE ])[kne ]=tmp;}}
+      q = q_dirSE[k];  if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[NW ])[knw ]; (DN.f[NW ])[knw ]=(D.f[NW ])[knw ]; (D.f[NW ])[knw ]=tmp;}}
+      q = q_dirNW[k];  if (q>=c0o1 && q<=c1o1){ if (geom[kmp0] < GEO_FLUID){tmp = (DN.f[SE ])[kse ]; (DN.f[SE ])[kse ]=(D.f[SE ])[kse ]; (D.f[SE ])[kse ]=tmp;}}
+      q = q_dirTE[k];  if (q>=c0o1 && q<=c1o1){ if (geom[kbw ] < GEO_FLUID){tmp = (DN.f[BW ])[kbw ]; (DN.f[BW ])[kbw ]=(D.f[BW ])[kbw ]; (D.f[BW ])[kbw ]=tmp;}}
+      q = q_dirBW[k];  if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[TE ])[kte ]; (DN.f[TE ])[kte ]=(D.f[TE ])[kte ]; (D.f[TE ])[kte ]=tmp;}}
+      q = q_dirBE[k];  if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[TW ])[ktw ]; (DN.f[TW ])[ktw ]=(D.f[TW ])[ktw ]; (D.f[TW ])[ktw ]=tmp;}}
+      q = q_dirTW[k];  if (q>=c0o1 && q<=c1o1){ if (geom[km0p] < GEO_FLUID){tmp = (DN.f[BE ])[kbe ]; (DN.f[BE ])[kbe ]=(D.f[BE ])[kbe ]; (D.f[BE ])[kbe ]=tmp;}}
+      q = q_dirTN[k];  if (q>=c0o1 && q<=c1o1){ if (geom[kbs ] < GEO_FLUID){tmp = (DN.f[BS ])[kbs ]; (DN.f[BS ])[kbs ]=(D.f[BS ])[kbs ]; (D.f[BS ])[kbs ]=tmp;}}
+      q = q_dirBS[k];  if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[TN ])[ktn ]; (DN.f[TN ])[ktn ]=(D.f[TN ])[ktn ]; (D.f[TN ])[ktn ]=tmp;}}
+      q = q_dirBN[k];  if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[TS ])[kts ]; (DN.f[TS ])[kts ]=(D.f[TS ])[kts ]; (D.f[TS ])[kts ]=tmp;}}
+      q = q_dirTS[k];  if (q>=c0o1 && q<=c1o1){ if (geom[k0mp] < GEO_FLUID){tmp = (DN.f[BN ])[kbn ]; (DN.f[BN ])[kbn ]=(D.f[BN ])[kbn ]; (D.f[BN ])[kbn ]=tmp;}}
+      q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1){ if (geom[kbsw] < GEO_FLUID){tmp = (DN.f[BSW])[kbsw]; (DN.f[BSW])[kbsw]=(D.f[BSW])[kbsw]; (D.f[BSW])[kbsw]=tmp;}}
+      q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[TNE])[ktne]; (DN.f[TNE])[ktne]=(D.f[TNE])[ktne]; (D.f[TNE])[ktne]=tmp;}}
+      q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[TSW])[ktsw]; (DN.f[TSW])[ktsw]=(D.f[TSW])[ktsw]; (D.f[TSW])[ktsw]=tmp;}}
+      q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1){ if (geom[kmmp] < GEO_FLUID){tmp = (DN.f[BNE])[kbne]; (DN.f[BNE])[kbne]=(D.f[BNE])[kbne]; (D.f[BNE])[kbne]=tmp;}}
+      q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[BNW])[kbnw]; (DN.f[BNW])[kbnw]=(D.f[BNW])[kbnw]; (D.f[BNW])[kbnw]=tmp;}}
+      q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1){ if (geom[kmpm] < GEO_FLUID){tmp = (DN.f[TSE])[ktse]; (DN.f[TSE])[ktse]=(D.f[TSE])[ktse]; (D.f[TSE])[ktse]=tmp;}}
+      q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1){ if (geom[kpmm] < GEO_FLUID){tmp = (DN.f[TNW])[ktnw]; (DN.f[TNW])[ktnw]=(D.f[TNW])[ktnw]; (D.f[TNW])[ktnw]=tmp;}}
+      q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1){                            {tmp = (DN.f[BSE])[kbse]; (DN.f[BSE])[kbse]=(D.f[BSE])[kbse]; (D.f[BSE])[kbse]=tmp;}}
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/GPU/VelocityBCs27.cu b/src/gpu/VirtualFluids_GPU/GPU/VelocityBCs27.cu
index 942aa76de..44b949241 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/VelocityBCs27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/VelocityBCs27.cu
@@ -33,63 +33,63 @@ extern "C" __global__ void QVelDeviceCompPlusSlip27(
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -114,32 +114,32 @@ extern "C" __global__ void QVelDeviceCompPlusSlip27(
 		   *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS,
 		   *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
 		   *q_dirBSE, *q_dirBNW;
-	   q_dirE = &QQ[dirE   * numberOfBCnodes];
-	   q_dirW = &QQ[dirW   * numberOfBCnodes];
-	   q_dirN = &QQ[dirN   * numberOfBCnodes];
-	   q_dirS = &QQ[dirS   * numberOfBCnodes];
-	   q_dirT = &QQ[dirT   * numberOfBCnodes];
-	   q_dirB = &QQ[dirB   * numberOfBCnodes];
-	   q_dirNE = &QQ[dirNE  * numberOfBCnodes];
-	   q_dirSW = &QQ[dirSW  * numberOfBCnodes];
-	   q_dirSE = &QQ[dirSE  * numberOfBCnodes];
-	   q_dirNW = &QQ[dirNW  * numberOfBCnodes];
-	   q_dirTE = &QQ[dirTE  * numberOfBCnodes];
-	   q_dirBW = &QQ[dirBW  * numberOfBCnodes];
-	   q_dirBE = &QQ[dirBE  * numberOfBCnodes];
-	   q_dirTW = &QQ[dirTW  * numberOfBCnodes];
-	   q_dirTN = &QQ[dirTN  * numberOfBCnodes];
-	   q_dirBS = &QQ[dirBS  * numberOfBCnodes];
-	   q_dirBN = &QQ[dirBN  * numberOfBCnodes];
-	   q_dirTS = &QQ[dirTS  * numberOfBCnodes];
-	   q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-	   q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-	   q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-	   q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-	   q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-	   q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-	   q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-	   q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+	   q_dirE = &QQ[E   * numberOfBCnodes];
+	   q_dirW = &QQ[W   * numberOfBCnodes];
+	   q_dirN = &QQ[N   * numberOfBCnodes];
+	   q_dirS = &QQ[S   * numberOfBCnodes];
+	   q_dirT = &QQ[T   * numberOfBCnodes];
+	   q_dirB = &QQ[B   * numberOfBCnodes];
+	   q_dirNE = &QQ[NE  * numberOfBCnodes];
+	   q_dirSW = &QQ[SW  * numberOfBCnodes];
+	   q_dirSE = &QQ[SE  * numberOfBCnodes];
+	   q_dirNW = &QQ[NW  * numberOfBCnodes];
+	   q_dirTE = &QQ[TE  * numberOfBCnodes];
+	   q_dirBW = &QQ[BW  * numberOfBCnodes];
+	   q_dirBE = &QQ[BE  * numberOfBCnodes];
+	   q_dirTW = &QQ[TW  * numberOfBCnodes];
+	   q_dirTN = &QQ[TN  * numberOfBCnodes];
+	   q_dirBS = &QQ[BS  * numberOfBCnodes];
+	   q_dirBN = &QQ[BN  * numberOfBCnodes];
+	   q_dirTS = &QQ[TS  * numberOfBCnodes];
+	   q_dirTNE = &QQ[TNE * numberOfBCnodes];
+	   q_dirTSW = &QQ[TSW * numberOfBCnodes];
+	   q_dirTSE = &QQ[TSE * numberOfBCnodes];
+	   q_dirTNW = &QQ[TNW * numberOfBCnodes];
+	   q_dirBNE = &QQ[BNE * numberOfBCnodes];
+	   q_dirBSW = &QQ[BSW * numberOfBCnodes];
+	   q_dirBSE = &QQ[BSE * numberOfBCnodes];
+	   q_dirBNW = &QQ[BNW * numberOfBCnodes];
 	   ////////////////////////////////////////////////////////////////////////////////
 	   //index
 	   unsigned int KQK = k_Q[k];
@@ -174,32 +174,32 @@ extern "C" __global__ void QVelDeviceCompPlusSlip27(
 	   real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE,
 		   f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-	   f_W = (D.f[dirE])[ke];
-	   f_E = (D.f[dirW])[kw];
-	   f_S = (D.f[dirN])[kn];
-	   f_N = (D.f[dirS])[ks];
-	   f_B = (D.f[dirT])[kt];
-	   f_T = (D.f[dirB])[kb];
-	   f_SW = (D.f[dirNE])[kne];
-	   f_NE = (D.f[dirSW])[ksw];
-	   f_NW = (D.f[dirSE])[kse];
-	   f_SE = (D.f[dirNW])[knw];
-	   f_BW = (D.f[dirTE])[kte];
-	   f_TE = (D.f[dirBW])[kbw];
-	   f_TW = (D.f[dirBE])[kbe];
-	   f_BE = (D.f[dirTW])[ktw];
-	   f_BS = (D.f[dirTN])[ktn];
-	   f_TN = (D.f[dirBS])[kbs];
-	   f_TS = (D.f[dirBN])[kbn];
-	   f_BN = (D.f[dirTS])[kts];
-	   f_BSW = (D.f[dirTNE])[ktne];
-	   f_BNE = (D.f[dirTSW])[ktsw];
-	   f_BNW = (D.f[dirTSE])[ktse];
-	   f_BSE = (D.f[dirTNW])[ktnw];
-	   f_TSW = (D.f[dirBNE])[kbne];
-	   f_TNE = (D.f[dirBSW])[kbsw];
-	   f_TNW = (D.f[dirBSE])[kbse];
-	   f_TSE = (D.f[dirBNW])[kbnw];
+	   f_W = (D.f[E])[ke];
+	   f_E = (D.f[W])[kw];
+	   f_S = (D.f[N])[kn];
+	   f_N = (D.f[S])[ks];
+	   f_B = (D.f[T])[kt];
+	   f_T = (D.f[B])[kb];
+	   f_SW = (D.f[NE])[kne];
+	   f_NE = (D.f[SW])[ksw];
+	   f_NW = (D.f[SE])[kse];
+	   f_SE = (D.f[NW])[knw];
+	   f_BW = (D.f[TE])[kte];
+	   f_TE = (D.f[BW])[kbw];
+	   f_TW = (D.f[BE])[kbe];
+	   f_BE = (D.f[TW])[ktw];
+	   f_BS = (D.f[TN])[ktn];
+	   f_TN = (D.f[BS])[kbs];
+	   f_TS = (D.f[BN])[kbn];
+	   f_BN = (D.f[TS])[kts];
+	   f_BSW = (D.f[TNE])[ktne];
+	   f_BNE = (D.f[TSW])[ktsw];
+	   f_BNW = (D.f[TSE])[ktse];
+	   f_BSE = (D.f[TNW])[ktnw];
+	   f_TSW = (D.f[BNE])[kbne];
+	   f_TNE = (D.f[BSW])[kbsw];
+	   f_TNW = (D.f[BSE])[kbse];
+	   f_TSE = (D.f[BNW])[kbnw];
 	   ////////////////////////////////////////////////////////////////////////////////
 	   real vx1, vx2, vx3, drho, feq, q;
 	   drho = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -224,63 +224,63 @@ extern "C" __global__ void QVelDeviceCompPlusSlip27(
 	   //////////////////////////////////////////////////////////////////////////
 	   if (isEvenTimestep == false)
 	   {
-		   D.f[dirE] = &DD[dirE   *size_Mat];
-		   D.f[dirW] = &DD[dirW   *size_Mat];
-		   D.f[dirN] = &DD[dirN   *size_Mat];
-		   D.f[dirS] = &DD[dirS   *size_Mat];
-		   D.f[dirT] = &DD[dirT   *size_Mat];
-		   D.f[dirB] = &DD[dirB   *size_Mat];
-		   D.f[dirNE] = &DD[dirNE  *size_Mat];
-		   D.f[dirSW] = &DD[dirSW  *size_Mat];
-		   D.f[dirSE] = &DD[dirSE  *size_Mat];
-		   D.f[dirNW] = &DD[dirNW  *size_Mat];
-		   D.f[dirTE] = &DD[dirTE  *size_Mat];
-		   D.f[dirBW] = &DD[dirBW  *size_Mat];
-		   D.f[dirBE] = &DD[dirBE  *size_Mat];
-		   D.f[dirTW] = &DD[dirTW  *size_Mat];
-		   D.f[dirTN] = &DD[dirTN  *size_Mat];
-		   D.f[dirBS] = &DD[dirBS  *size_Mat];
-		   D.f[dirBN] = &DD[dirBN  *size_Mat];
-		   D.f[dirTS] = &DD[dirTS  *size_Mat];
+		   D.f[E] = &DD[E   *size_Mat];
+		   D.f[W] = &DD[W   *size_Mat];
+		   D.f[N] = &DD[N   *size_Mat];
+		   D.f[S] = &DD[S   *size_Mat];
+		   D.f[T] = &DD[T   *size_Mat];
+		   D.f[B] = &DD[B   *size_Mat];
+		   D.f[NE] = &DD[NE  *size_Mat];
+		   D.f[SW] = &DD[SW  *size_Mat];
+		   D.f[SE] = &DD[SE  *size_Mat];
+		   D.f[NW] = &DD[NW  *size_Mat];
+		   D.f[TE] = &DD[TE  *size_Mat];
+		   D.f[BW] = &DD[BW  *size_Mat];
+		   D.f[BE] = &DD[BE  *size_Mat];
+		   D.f[TW] = &DD[TW  *size_Mat];
+		   D.f[TN] = &DD[TN  *size_Mat];
+		   D.f[BS] = &DD[BS  *size_Mat];
+		   D.f[BN] = &DD[BN  *size_Mat];
+		   D.f[TS] = &DD[TS  *size_Mat];
 		   D.f[dirREST] = &DD[dirREST*size_Mat];
-		   D.f[dirTNE] = &DD[dirTNE *size_Mat];
-		   D.f[dirTSW] = &DD[dirTSW *size_Mat];
-		   D.f[dirTSE] = &DD[dirTSE *size_Mat];
-		   D.f[dirTNW] = &DD[dirTNW *size_Mat];
-		   D.f[dirBNE] = &DD[dirBNE *size_Mat];
-		   D.f[dirBSW] = &DD[dirBSW *size_Mat];
-		   D.f[dirBSE] = &DD[dirBSE *size_Mat];
-		   D.f[dirBNW] = &DD[dirBNW *size_Mat];
+		   D.f[TNE] = &DD[TNE *size_Mat];
+		   D.f[TSW] = &DD[TSW *size_Mat];
+		   D.f[TSE] = &DD[TSE *size_Mat];
+		   D.f[TNW] = &DD[TNW *size_Mat];
+		   D.f[BNE] = &DD[BNE *size_Mat];
+		   D.f[BSW] = &DD[BSW *size_Mat];
+		   D.f[BSE] = &DD[BSE *size_Mat];
+		   D.f[BNW] = &DD[BNW *size_Mat];
 	   }
 	   else
 	   {
-		   D.f[dirW] = &DD[dirE   *size_Mat];
-		   D.f[dirE] = &DD[dirW   *size_Mat];
-		   D.f[dirS] = &DD[dirN   *size_Mat];
-		   D.f[dirN] = &DD[dirS   *size_Mat];
-		   D.f[dirB] = &DD[dirT   *size_Mat];
-		   D.f[dirT] = &DD[dirB   *size_Mat];
-		   D.f[dirSW] = &DD[dirNE  *size_Mat];
-		   D.f[dirNE] = &DD[dirSW  *size_Mat];
-		   D.f[dirNW] = &DD[dirSE  *size_Mat];
-		   D.f[dirSE] = &DD[dirNW  *size_Mat];
-		   D.f[dirBW] = &DD[dirTE  *size_Mat];
-		   D.f[dirTE] = &DD[dirBW  *size_Mat];
-		   D.f[dirTW] = &DD[dirBE  *size_Mat];
-		   D.f[dirBE] = &DD[dirTW  *size_Mat];
-		   D.f[dirBS] = &DD[dirTN  *size_Mat];
-		   D.f[dirTN] = &DD[dirBS  *size_Mat];
-		   D.f[dirTS] = &DD[dirBN  *size_Mat];
-		   D.f[dirBN] = &DD[dirTS  *size_Mat];
+		   D.f[W] = &DD[E   *size_Mat];
+		   D.f[E] = &DD[W   *size_Mat];
+		   D.f[S] = &DD[N   *size_Mat];
+		   D.f[N] = &DD[S   *size_Mat];
+		   D.f[B] = &DD[T   *size_Mat];
+		   D.f[T] = &DD[B   *size_Mat];
+		   D.f[SW] = &DD[NE  *size_Mat];
+		   D.f[NE] = &DD[SW  *size_Mat];
+		   D.f[NW] = &DD[SE  *size_Mat];
+		   D.f[SE] = &DD[NW  *size_Mat];
+		   D.f[BW] = &DD[TE  *size_Mat];
+		   D.f[TE] = &DD[BW  *size_Mat];
+		   D.f[TW] = &DD[BE  *size_Mat];
+		   D.f[BE] = &DD[TW  *size_Mat];
+		   D.f[BS] = &DD[TN  *size_Mat];
+		   D.f[TN] = &DD[BS  *size_Mat];
+		   D.f[TS] = &DD[BN  *size_Mat];
+		   D.f[BN] = &DD[TS  *size_Mat];
 		   D.f[dirREST] = &DD[dirREST*size_Mat];
-		   D.f[dirTNE] = &DD[dirBSW *size_Mat];
-		   D.f[dirTSW] = &DD[dirBNE *size_Mat];
-		   D.f[dirTSE] = &DD[dirBNW *size_Mat];
-		   D.f[dirTNW] = &DD[dirBSE *size_Mat];
-		   D.f[dirBNE] = &DD[dirTSW *size_Mat];
-		   D.f[dirBSW] = &DD[dirTNE *size_Mat];
-		   D.f[dirBSE] = &DD[dirTNW *size_Mat];
-		   D.f[dirBNW] = &DD[dirTSE *size_Mat];
+		   D.f[TNE] = &DD[BSW *size_Mat];
+		   D.f[TSW] = &DD[BNE *size_Mat];
+		   D.f[TSE] = &DD[BNW *size_Mat];
+		   D.f[TNW] = &DD[BSE *size_Mat];
+		   D.f[BNE] = &DD[TSW *size_Mat];
+		   D.f[BSW] = &DD[TNE *size_Mat];
+		   D.f[BSE] = &DD[TNW *size_Mat];
+		   D.f[BNW] = &DD[TSE *size_Mat];
 	   }
 	   ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	   //Test
@@ -306,208 +306,208 @@ extern "C" __global__ void QVelDeviceCompPlusSlip27(
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*( vx1        )*/+c9o2*( vx1        )*( vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirW])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W)-c6o1*c2o27*( VeloX     ))/(c1o1+q);// - c2over27 * drho;
-         //(D.f[dirW])[kw]=zero;
+         (D.f[W])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W)-c6o1*c2o27*( VeloX     ))/(c1o1+q);// - c2over27 * drho;
+         //(D.f[W])[kw]=zero;
       }
 
       q = q_dirW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(-vx1        )*/+c9o2*(-vx1        )*(-vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirE])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX     ))/(c1o1+q);// - c2over27 * drho;
-         //(D.f[dirE])[ke]=zero;
+         (D.f[E])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX     ))/(c1o1+q);// - c2over27 * drho;
+         //(D.f[E])[ke]=zero;
       }
 
       q = q_dirN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(    vx2     )*/+c9o2*(     vx2    )*(     vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirS])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S)-c6o1*c2o27*( VeloY     ))/(c1o1+q);// - c2over27 * drho;
-         //(D.f[dirS])[ks]=zero;
+         (D.f[S])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S)-c6o1*c2o27*( VeloY     ))/(c1o1+q);// - c2over27 * drho;
+         //(D.f[S])[ks]=zero;
       }
 
       q = q_dirS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(   -vx2     )*/+c9o2*(    -vx2    )*(    -vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirN])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY     ))/(c1o1+q);// - c2over27 * drho;
-         //(D.f[dirN])[kn]=zero;
+         (D.f[N])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY     ))/(c1o1+q);// - c2over27 * drho;
+         //(D.f[N])[kn]=zero;
       }
 
       q = q_dirT[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(         vx3)*/+c9o2*(         vx3)*(         vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirB])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ     ))/(c1o1+q);// - c2over27 * drho;
-         //(D.f[dirB])[kb]=one;
+         (D.f[B])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ     ))/(c1o1+q);// - c2over27 * drho;
+         //(D.f[B])[kb]=one;
       }
 
       q = q_dirB[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(        -vx3)*/+c9o2*(        -vx3)*(        -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirT])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ     ))/(c1o1+q);// - c2over27 * drho;
-         //(D.f[dirT])[kt]=zero;
+         (D.f[T])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ     ))/(c1o1+q);// - c2over27 * drho;
+         //(D.f[T])[kt]=zero;
       }
 
       q = q_dirNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1+vx2    )*/+c9o2*( vx1+vx2    )*( vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q);// - c1over54 * drho;
-         //(D.f[dirSW])[ksw]=zero;
+         (D.f[SW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q);// - c1over54 * drho;
+         //(D.f[SW])[ksw]=zero;
       }
 
       q = q_dirSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1-vx2    )*/+c9o2*(-vx1-vx2    )*(-vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q);// - c1over54 * drho;
-         //(D.f[dirNE])[kne]=zero;
+         (D.f[NE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q);// - c1over54 * drho;
+         //(D.f[NE])[kne]=zero;
       }
 
       q = q_dirSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1-vx2    )*/+c9o2*( vx1-vx2    )*( vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q);// - c1over54 * drho;
-         //(D.f[dirNW])[knw]=zero;
+         (D.f[NW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q);// - c1over54 * drho;
+         //(D.f[NW])[knw]=zero;
       }
 
       q = q_dirNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1+vx2    )*/+c9o2*(-vx1+vx2    )*(-vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q);// - c1over54 * drho;
-         //(D.f[dirSE])[kse]=zero;
+         (D.f[SE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q);// - c1over54 * drho;
+         //(D.f[SE])[kse]=zero;
       }
 
       q = q_dirTE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1    +vx3)*/+c9o2*( vx1    +vx3)*( vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q);// - c1over54 * drho;
-         //(D.f[dirBW])[kbw]=zero;
+         (D.f[BW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q);// - c1over54 * drho;
+         //(D.f[BW])[kbw]=zero;
       }
 
       q = q_dirBW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1    -vx3)*/+c9o2*(-vx1    -vx3)*(-vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q);// - c1over54 * drho;
-         //(D.f[dirTE])[kte]=zero;
+         (D.f[TE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q);// - c1over54 * drho;
+         //(D.f[TE])[kte]=zero;
       }
 
       q = q_dirBE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1    -vx3)*/+c9o2*( vx1    -vx3)*( vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q);// - c1over54 * drho;
-         //(D.f[dirTW])[ktw]=zero;
+         (D.f[TW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q);// - c1over54 * drho;
+         //(D.f[TW])[ktw]=zero;
       }
 
       q = q_dirTW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1    +vx3)*/+c9o2*(-vx1    +vx3)*(-vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q);// - c1over54 * drho;
-         //(D.f[dirBE])[kbe]=zero;
+         (D.f[BE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q);// - c1over54 * drho;
+         //(D.f[BE])[kbe]=zero;
       }
 
       q = q_dirTN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(     vx2+vx3)*/+c9o2*(     vx2+vx3)*(     vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q);// - c1over54 * drho;
-         //(D.f[dirBS])[kbs]=zero;
+         (D.f[BS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q);// - c1over54 * drho;
+         //(D.f[BS])[kbs]=zero;
       }
 
       q = q_dirBS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(    -vx2-vx3)*/+c9o2*(    -vx2-vx3)*(    -vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q);// - c1over54 * drho;
-         //(D.f[dirTN])[ktn]=zero;
+         (D.f[TN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q);// - c1over54 * drho;
+         //(D.f[TN])[ktn]=zero;
       }
 
       q = q_dirBN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(     vx2-vx3)*/+c9o2*(     vx2-vx3)*(     vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q);// - c1over54 * drho;
-         //(D.f[dirTS])[kts]=zero;
+         (D.f[TS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q);// - c1over54 * drho;
+         //(D.f[TS])[kts]=zero;
       }
 
       q = q_dirTS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(    -vx2+vx3)*/+c9o2*(    -vx2+vx3)*(    -vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q);// - c1over54 * drho;
-         //(D.f[dirBN])[kbn]=zero;
+         (D.f[BN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q);// - c1over54 * drho;
+         //(D.f[BN])[kbn]=zero;
       }
 
       q = q_dirTNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);// - c1over216 * drho;
-         //(D.f[dirBSW])[kbsw]=zero;
+         (D.f[BSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);// - c1over216 * drho;
+         //(D.f[BSW])[kbsw]=zero;
       }
 
       q = q_dirBSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);// - c1over216 * drho;
-         //(D.f[dirTNE])[ktne]=zero;
+         (D.f[TNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);// - c1over216 * drho;
+         //(D.f[TNE])[ktne]=zero;
       }
 
       q = q_dirBNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);// - c1over216 * drho;
-         //(D.f[dirTSW])[ktsw]=zero;
+         (D.f[TSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);// - c1over216 * drho;
+         //(D.f[TSW])[ktsw]=zero;
       }
 
       q = q_dirTSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);// - c1over216 * drho;
-         //(D.f[dirBNE])[kbne]=zero;
+         (D.f[BNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);// - c1over216 * drho;
+         //(D.f[BNE])[kbne]=zero;
       }
 
       q = q_dirTSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);// - c1over216 * drho;
-         //(D.f[dirBNW])[kbnw]=zero;
+         (D.f[BNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);// - c1over216 * drho;
+         //(D.f[BNW])[kbnw]=zero;
       }
 
       q = q_dirBNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);// - c1over216 * drho;
-         //(D.f[dirTSE])[ktse]=zero;
+         (D.f[TSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);// - c1over216 * drho;
+         //(D.f[TSE])[ktse]=zero;
       }
 
       q = q_dirBSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);// - c1over216 * drho;
-         //(D.f[dirTNW])[ktnw]=zero;
+         (D.f[TNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);// - c1over216 * drho;
+         //(D.f[TNW])[ktnw]=zero;
       }
 
       q = q_dirTNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);// - c1over216 * drho;
-         //(D.f[dirBSE])[kbse]=zero;
+         (D.f[BSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);// - c1over216 * drho;
+         //(D.f[BSE])[kbse]=zero;
       }
    }
 }
@@ -612,95 +612,95 @@ extern "C" __global__ void QVeloDeviceEQ27(real* VeloX,
       Distributions27 D;
       if (isEvenTimestep==true)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
 
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
             // based on BGK Plus Comp
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[ke   ];
-			real mfabb = (D.f[dirW   ])[kw   ];
-			real mfbcb = (D.f[dirN   ])[kn   ];
-			real mfbab = (D.f[dirS   ])[ks   ];
-			real mfbbc = (D.f[dirT   ])[kt   ];
-			real mfbba = (D.f[dirB   ])[kb   ];
-			real mfccb = (D.f[dirNE  ])[kne  ];
-			real mfaab = (D.f[dirSW  ])[ksw  ];
-			real mfcab = (D.f[dirSE  ])[kse  ];
-			real mfacb = (D.f[dirNW  ])[knw  ];
-			real mfcbc = (D.f[dirTE  ])[kte  ];
-			real mfaba = (D.f[dirBW  ])[kbw  ];
-			real mfcba = (D.f[dirBE  ])[kbe  ];
-			real mfabc = (D.f[dirTW  ])[ktw  ];
-			real mfbcc = (D.f[dirTN  ])[ktn  ];
-			real mfbaa = (D.f[dirBS  ])[kbs  ];
-			real mfbca = (D.f[dirBN  ])[kbn  ];
-			real mfbac = (D.f[dirTS  ])[kts  ];
+			real mfcbb = (D.f[E   ])[ke   ];
+			real mfabb = (D.f[W   ])[kw   ];
+			real mfbcb = (D.f[N   ])[kn   ];
+			real mfbab = (D.f[S   ])[ks   ];
+			real mfbbc = (D.f[T   ])[kt   ];
+			real mfbba = (D.f[B   ])[kb   ];
+			real mfccb = (D.f[NE  ])[kne  ];
+			real mfaab = (D.f[SW  ])[ksw  ];
+			real mfcab = (D.f[SE  ])[kse  ];
+			real mfacb = (D.f[NW  ])[knw  ];
+			real mfcbc = (D.f[TE  ])[kte  ];
+			real mfaba = (D.f[BW  ])[kbw  ];
+			real mfcba = (D.f[BE  ])[kbe  ];
+			real mfabc = (D.f[TW  ])[ktw  ];
+			real mfbcc = (D.f[TN  ])[ktn  ];
+			real mfbaa = (D.f[BS  ])[kbs  ];
+			real mfbca = (D.f[BN  ])[kbn  ];
+			real mfbac = (D.f[TS  ])[kts  ];
 			real mfbbb = (D.f[dirREST])[kzero];
-			real mfccc = (D.f[dirTNE ])[ktne ];
-			real mfaac = (D.f[dirTSW ])[ktsw ];
-			real mfcac = (D.f[dirTSE ])[ktse ];
-			real mfacc = (D.f[dirTNW ])[ktnw ];
-			real mfcca = (D.f[dirBNE ])[kbne ];
-			real mfaaa = (D.f[dirBSW ])[kbsw ];
-			real mfcaa = (D.f[dirBSE ])[kbse ];
-			real mfaca = (D.f[dirBNW ])[kbnw ];
+			real mfccc = (D.f[TNE ])[ktne ];
+			real mfaac = (D.f[TSW ])[ktsw ];
+			real mfcac = (D.f[TSE ])[ktse ];
+			real mfacc = (D.f[TNW ])[ktnw ];
+			real mfcca = (D.f[BNE ])[kbne ];
+			real mfaaa = (D.f[BSW ])[kbsw ];
+			real mfcaa = (D.f[BSE ])[kbse ];
+			real mfaca = (D.f[BNW ])[kbnw ];
 			////////////////////////////////////////////////////////////////////////////////////
 			real rho   = (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + 
 							 mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb +
@@ -762,33 +762,33 @@ extern "C" __global__ void QVeloDeviceEQ27(real* VeloX,
 			mfcaa = -rho * XXc * YYa * ZZa - c1o216;
 			mfaca = -rho * XXa * YYc * ZZa - c1o216;
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE   ])[ke   ] = mfabb;//mfcbb;
-			(D.f[dirW   ])[kw   ] = mfcbb;//mfabb;
-			(D.f[dirN   ])[kn   ] = mfbab;//mfbcb;
-			(D.f[dirS   ])[ks   ] = mfbcb;//mfbab;
-			(D.f[dirT   ])[kt   ] = mfbba;//mfbbc;
-			(D.f[dirB   ])[kb   ] = mfbbc;//mfbba;
-			(D.f[dirNE  ])[kne  ] = mfaab;//mfccb;
-			(D.f[dirSW  ])[ksw  ] = mfccb;//mfaab;
-			(D.f[dirSE  ])[kse  ] = mfacb;//mfcab;
-			(D.f[dirNW  ])[knw  ] = mfcab;//mfacb;
-			(D.f[dirTE  ])[kte  ] = mfaba;//mfcbc;
-			(D.f[dirBW  ])[kbw  ] = mfcbc;//mfaba;
-			(D.f[dirBE  ])[kbe  ] = mfabc;//mfcba;
-			(D.f[dirTW  ])[ktw  ] = mfcba;//mfabc;
-			(D.f[dirTN  ])[ktn  ] = mfbaa;//mfbcc;
-			(D.f[dirBS  ])[kbs  ] = mfbcc;//mfbaa;
-			(D.f[dirBN  ])[kbn  ] = mfbac;//mfbca;
-			(D.f[dirTS  ])[kts  ] = mfbca;//mfbac;
+			(D.f[E   ])[ke   ] = mfabb;//mfcbb;
+			(D.f[W   ])[kw   ] = mfcbb;//mfabb;
+			(D.f[N   ])[kn   ] = mfbab;//mfbcb;
+			(D.f[S   ])[ks   ] = mfbcb;//mfbab;
+			(D.f[T   ])[kt   ] = mfbba;//mfbbc;
+			(D.f[B   ])[kb   ] = mfbbc;//mfbba;
+			(D.f[NE  ])[kne  ] = mfaab;//mfccb;
+			(D.f[SW  ])[ksw  ] = mfccb;//mfaab;
+			(D.f[SE  ])[kse  ] = mfacb;//mfcab;
+			(D.f[NW  ])[knw  ] = mfcab;//mfacb;
+			(D.f[TE  ])[kte  ] = mfaba;//mfcbc;
+			(D.f[BW  ])[kbw  ] = mfcbc;//mfaba;
+			(D.f[BE  ])[kbe  ] = mfabc;//mfcba;
+			(D.f[TW  ])[ktw  ] = mfcba;//mfabc;
+			(D.f[TN  ])[ktn  ] = mfbaa;//mfbcc;
+			(D.f[BS  ])[kbs  ] = mfbcc;//mfbaa;
+			(D.f[BN  ])[kbn  ] = mfbac;//mfbca;
+			(D.f[TS  ])[kts  ] = mfbca;//mfbac;
 			(D.f[dirREST])[kzero] = mfbbb;//mfbbb;
-			(D.f[dirTNE ])[ktne ] = mfaaa;//mfccc;
-			(D.f[dirTSW ])[ktsw ] = mfcca;//mfaac;
-			(D.f[dirTSE ])[ktse ] = mfaca;//mfcac;
-			(D.f[dirTNW ])[ktnw ] = mfcaa;//mfacc;
-			(D.f[dirBNE ])[kbne ] = mfaac;//mfcca;
-			(D.f[dirBSW ])[kbsw ] = mfccc;//mfaaa;
-			(D.f[dirBSE ])[kbse ] = mfacc;//mfcaa;
-			(D.f[dirBNW ])[kbnw ] = mfcac;//mfaca;
+			(D.f[TNE ])[ktne ] = mfaaa;//mfccc;
+			(D.f[TSW ])[ktsw ] = mfcca;//mfaac;
+			(D.f[TSE ])[ktse ] = mfaca;//mfcac;
+			(D.f[TNW ])[ktnw ] = mfcaa;//mfacc;
+			(D.f[BNE ])[kbne ] = mfaac;//mfcca;
+			(D.f[BSW ])[kbsw ] = mfccc;//mfaaa;
+			(D.f[BSE ])[kbse ] = mfacc;//mfcaa;
+			(D.f[BNW ])[kbnw ] = mfcac;//mfaca;
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -893,95 +893,95 @@ extern "C" __global__ void QVeloStreetDeviceEQ27(
 		Distributions27 D;
 		if (isEvenTimestep == true)
 		{
-			D.f[dirE   ] = &DD[dirE   *size_Mat];
-			D.f[dirW   ] = &DD[dirW   *size_Mat];
-			D.f[dirN   ] = &DD[dirN   *size_Mat];
-			D.f[dirS   ] = &DD[dirS   *size_Mat];
-			D.f[dirT   ] = &DD[dirT   *size_Mat];
-			D.f[dirB   ] = &DD[dirB   *size_Mat];
-			D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-			D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-			D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-			D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-			D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-			D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-			D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-			D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-			D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-			D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-			D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-			D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+			D.f[E   ] = &DD[E   *size_Mat];
+			D.f[W   ] = &DD[W   *size_Mat];
+			D.f[N   ] = &DD[N   *size_Mat];
+			D.f[S   ] = &DD[S   *size_Mat];
+			D.f[T   ] = &DD[T   *size_Mat];
+			D.f[B   ] = &DD[B   *size_Mat];
+			D.f[NE  ] = &DD[NE  *size_Mat];
+			D.f[SW  ] = &DD[SW  *size_Mat];
+			D.f[SE  ] = &DD[SE  *size_Mat];
+			D.f[NW  ] = &DD[NW  *size_Mat];
+			D.f[TE  ] = &DD[TE  *size_Mat];
+			D.f[BW  ] = &DD[BW  *size_Mat];
+			D.f[BE  ] = &DD[BE  *size_Mat];
+			D.f[TW  ] = &DD[TW  *size_Mat];
+			D.f[TN  ] = &DD[TN  *size_Mat];
+			D.f[BS  ] = &DD[BS  *size_Mat];
+			D.f[BN  ] = &DD[BN  *size_Mat];
+			D.f[TS  ] = &DD[TS  *size_Mat];
 			D.f[dirREST] = &DD[dirREST*size_Mat];
-			D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-			D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-			D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-			D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-			D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-			D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-			D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-			D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+			D.f[TNE ] = &DD[TNE *size_Mat];
+			D.f[TSW ] = &DD[TSW *size_Mat];
+			D.f[TSE ] = &DD[TSE *size_Mat];
+			D.f[TNW ] = &DD[TNW *size_Mat];
+			D.f[BNE ] = &DD[BNE *size_Mat];
+			D.f[BSW ] = &DD[BSW *size_Mat];
+			D.f[BSE ] = &DD[BSE *size_Mat];
+			D.f[BNW ] = &DD[BNW *size_Mat];
 		}
 		else
 		{
-			D.f[dirW   ] = &DD[dirE   *size_Mat];
-			D.f[dirE   ] = &DD[dirW   *size_Mat];
-			D.f[dirS   ] = &DD[dirN   *size_Mat];
-			D.f[dirN   ] = &DD[dirS   *size_Mat];
-			D.f[dirB   ] = &DD[dirT   *size_Mat];
-			D.f[dirT   ] = &DD[dirB   *size_Mat];
-			D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-			D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-			D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-			D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-			D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-			D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-			D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-			D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-			D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-			D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-			D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-			D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+			D.f[W   ] = &DD[E   *size_Mat];
+			D.f[E   ] = &DD[W   *size_Mat];
+			D.f[S   ] = &DD[N   *size_Mat];
+			D.f[N   ] = &DD[S   *size_Mat];
+			D.f[B   ] = &DD[T   *size_Mat];
+			D.f[T   ] = &DD[B   *size_Mat];
+			D.f[SW  ] = &DD[NE  *size_Mat];
+			D.f[NE  ] = &DD[SW  *size_Mat];
+			D.f[NW  ] = &DD[SE  *size_Mat];
+			D.f[SE  ] = &DD[NW  *size_Mat];
+			D.f[BW  ] = &DD[TE  *size_Mat];
+			D.f[TE  ] = &DD[BW  *size_Mat];
+			D.f[TW  ] = &DD[BE  *size_Mat];
+			D.f[BE  ] = &DD[TW  *size_Mat];
+			D.f[BS  ] = &DD[TN  *size_Mat];
+			D.f[TN  ] = &DD[BS  *size_Mat];
+			D.f[TS  ] = &DD[BN  *size_Mat];
+			D.f[BN  ] = &DD[TS  *size_Mat];
 			D.f[dirREST] = &DD[dirREST*size_Mat];
-			D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-			D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-			D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-			D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-			D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-			D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-			D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-			D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+			D.f[TNE ] = &DD[BSW *size_Mat];
+			D.f[TSW ] = &DD[BNE *size_Mat];
+			D.f[TSE ] = &DD[BNW *size_Mat];
+			D.f[TNW ] = &DD[BSE *size_Mat];
+			D.f[BNE ] = &DD[TSW *size_Mat];
+			D.f[BSW ] = &DD[TNE *size_Mat];
+			D.f[BSE ] = &DD[TNW *size_Mat];
+			D.f[BNW ] = &DD[TSE *size_Mat];
 		}
 
 		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 		// based on BGK Plus Comp
 		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-		real mfcbb = (D.f[dirE   ])[ke   ];
-		real mfabb = (D.f[dirW   ])[kw   ];
-		real mfbcb = (D.f[dirN   ])[kn   ];
-		real mfbab = (D.f[dirS   ])[ks   ];
-		real mfbbc = (D.f[dirT   ])[kt   ];
-		real mfbba = (D.f[dirB   ])[kb   ];
-		real mfccb = (D.f[dirNE  ])[kne  ];
-		real mfaab = (D.f[dirSW  ])[ksw  ];
-		real mfcab = (D.f[dirSE  ])[kse  ];
-		real mfacb = (D.f[dirNW  ])[knw  ];
-		real mfcbc = (D.f[dirTE  ])[kte  ];
-		real mfaba = (D.f[dirBW  ])[kbw  ];
-		real mfcba = (D.f[dirBE  ])[kbe  ];
-		real mfabc = (D.f[dirTW  ])[ktw  ];
-		real mfbcc = (D.f[dirTN  ])[ktn  ];
-		real mfbaa = (D.f[dirBS  ])[kbs  ];
-		real mfbca = (D.f[dirBN  ])[kbn  ];
-		real mfbac = (D.f[dirTS  ])[kts  ];
+		real mfcbb = (D.f[E   ])[ke   ];
+		real mfabb = (D.f[W   ])[kw   ];
+		real mfbcb = (D.f[N   ])[kn   ];
+		real mfbab = (D.f[S   ])[ks   ];
+		real mfbbc = (D.f[T   ])[kt   ];
+		real mfbba = (D.f[B   ])[kb   ];
+		real mfccb = (D.f[NE  ])[kne  ];
+		real mfaab = (D.f[SW  ])[ksw  ];
+		real mfcab = (D.f[SE  ])[kse  ];
+		real mfacb = (D.f[NW  ])[knw  ];
+		real mfcbc = (D.f[TE  ])[kte  ];
+		real mfaba = (D.f[BW  ])[kbw  ];
+		real mfcba = (D.f[BE  ])[kbe  ];
+		real mfabc = (D.f[TW  ])[ktw  ];
+		real mfbcc = (D.f[TN  ])[ktn  ];
+		real mfbaa = (D.f[BS  ])[kbs  ];
+		real mfbca = (D.f[BN  ])[kbn  ];
+		real mfbac = (D.f[TS  ])[kts  ];
 		real mfbbb = (D.f[dirREST])[kzero];
-		real mfccc = (D.f[dirTNE ])[ktne ];
-		real mfaac = (D.f[dirTSW ])[ktsw ];
-		real mfcac = (D.f[dirTSE ])[ktse ];
-		real mfacc = (D.f[dirTNW ])[ktnw ];
-		real mfcca = (D.f[dirBNE ])[kbne ];
-		real mfaaa = (D.f[dirBSW ])[kbsw ];
-		real mfcaa = (D.f[dirBSE ])[kbse ];
-		real mfaca = (D.f[dirBNW ])[kbnw ];
+		real mfccc = (D.f[TNE ])[ktne ];
+		real mfaac = (D.f[TSW ])[ktsw ];
+		real mfcac = (D.f[TSE ])[ktse ];
+		real mfacc = (D.f[TNW ])[ktnw ];
+		real mfcca = (D.f[BNE ])[kbne ];
+		real mfaaa = (D.f[BSW ])[kbsw ];
+		real mfcaa = (D.f[BSE ])[kbse ];
+		real mfaca = (D.f[BNW ])[kbnw ];
 		////////////////////////////////////////////////////////////////////////////////////
 		real rho = (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca +
 			        mfbac + mfbca + mfbaa + mfbcc + mfabc + mfcba + mfaba + mfcbc + mfacb + mfcab + mfaab + mfccb +
@@ -1048,33 +1048,33 @@ extern "C" __global__ void QVeloStreetDeviceEQ27(
 		mfcaa = -rho * XXc * YYa * ZZa - c1o216;
 		mfaca = -rho * XXa * YYc * ZZa - c1o216;
 		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-		(D.f[dirE   ])[ke   ] = mfabb;//mfcbb;
-		(D.f[dirW   ])[kw   ] = mfcbb;//mfabb;
-		(D.f[dirN   ])[kn   ] = mfbab;//mfbcb;
-		(D.f[dirS   ])[ks   ] = mfbcb;//mfbab;
-		(D.f[dirT   ])[kt   ] = mfbba;//mfbbc;
-		(D.f[dirB   ])[kb   ] = mfbbc;//mfbba;
-		(D.f[dirNE  ])[kne  ] = mfaab;//mfccb;
-		(D.f[dirSW  ])[ksw  ] = mfccb;//mfaab;
-		(D.f[dirSE  ])[kse  ] = mfacb;//mfcab;
-		(D.f[dirNW  ])[knw  ] = mfcab;//mfacb;
-		(D.f[dirTE  ])[kte  ] = mfaba;//mfcbc;
-		(D.f[dirBW  ])[kbw  ] = mfcbc;//mfaba;
-		(D.f[dirBE  ])[kbe  ] = mfabc;//mfcba;
-		(D.f[dirTW  ])[ktw  ] = mfcba;//mfabc;
-		(D.f[dirTN  ])[ktn  ] = mfbaa;//mfbcc;
-		(D.f[dirBS  ])[kbs  ] = mfbcc;//mfbaa;
-		(D.f[dirBN  ])[kbn  ] = mfbac;//mfbca;
-		(D.f[dirTS  ])[kts  ] = mfbca;//mfbac;
+		(D.f[E   ])[ke   ] = mfabb;//mfcbb;
+		(D.f[W   ])[kw   ] = mfcbb;//mfabb;
+		(D.f[N   ])[kn   ] = mfbab;//mfbcb;
+		(D.f[S   ])[ks   ] = mfbcb;//mfbab;
+		(D.f[T   ])[kt   ] = mfbba;//mfbbc;
+		(D.f[B   ])[kb   ] = mfbbc;//mfbba;
+		(D.f[NE  ])[kne  ] = mfaab;//mfccb;
+		(D.f[SW  ])[ksw  ] = mfccb;//mfaab;
+		(D.f[SE  ])[kse  ] = mfacb;//mfcab;
+		(D.f[NW  ])[knw  ] = mfcab;//mfacb;
+		(D.f[TE  ])[kte  ] = mfaba;//mfcbc;
+		(D.f[BW  ])[kbw  ] = mfcbc;//mfaba;
+		(D.f[BE  ])[kbe  ] = mfabc;//mfcba;
+		(D.f[TW  ])[ktw  ] = mfcba;//mfabc;
+		(D.f[TN  ])[ktn  ] = mfbaa;//mfbcc;
+		(D.f[BS  ])[kbs  ] = mfbcc;//mfbaa;
+		(D.f[BN  ])[kbn  ] = mfbac;//mfbca;
+		(D.f[TS  ])[kts  ] = mfbca;//mfbac;
 		(D.f[dirREST])[kzero] = mfbbb;//mfbbb;
-		(D.f[dirTNE ])[ktne ] = mfaaa;//mfccc;
-		(D.f[dirTSW ])[ktsw ] = mfcca;//mfaac;
-		(D.f[dirTSE ])[ktse ] = mfaca;//mfcac;
-		(D.f[dirTNW ])[ktnw ] = mfcaa;//mfacc;
-		(D.f[dirBNE ])[kbne ] = mfaac;//mfcca;
-		(D.f[dirBSW ])[kbsw ] = mfccc;//mfaaa;
-		(D.f[dirBSE ])[kbse ] = mfacc;//mfcaa;
-		(D.f[dirBNW ])[kbnw ] = mfcac;//mfaca;
+		(D.f[TNE ])[ktne ] = mfaaa;//mfccc;
+		(D.f[TSW ])[ktsw ] = mfcca;//mfaac;
+		(D.f[TSE ])[ktse ] = mfaca;//mfcac;
+		(D.f[TNW ])[ktnw ] = mfcaa;//mfacc;
+		(D.f[BNE ])[kbne ] = mfaac;//mfcca;
+		(D.f[BSW ])[kbsw ] = mfccc;//mfaaa;
+		(D.f[BSE ])[kbse ] = mfacc;//mfcaa;
+		(D.f[BNW ])[kbnw ] = mfcac;//mfaca;
 	}
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1137,63 +1137,63 @@ extern "C" __global__ void QVelDeviceIncompHighNu27(int inx,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -1218,32 +1218,32 @@ extern "C" __global__ void QVelDeviceIncompHighNu27(int inx,
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -1278,32 +1278,32 @@ extern "C" __global__ void QVelDeviceIncompHighNu27(int inx,
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_E   = (D.f[dirE   ])[ke   ];
-      f_W   = (D.f[dirW   ])[kw   ];
-      f_N   = (D.f[dirN   ])[kn   ];
-      f_S   = (D.f[dirS   ])[ks   ];
-      f_T   = (D.f[dirT   ])[kt   ];
-      f_B   = (D.f[dirB   ])[kb   ];
-      f_NE  = (D.f[dirNE  ])[kne  ];
-      f_SW  = (D.f[dirSW  ])[ksw  ];
-      f_SE  = (D.f[dirSE  ])[kse  ];
-      f_NW  = (D.f[dirNW  ])[knw  ];
-      f_TE  = (D.f[dirTE  ])[kte  ];
-      f_BW  = (D.f[dirBW  ])[kbw  ];
-      f_BE  = (D.f[dirBE  ])[kbe  ];
-      f_TW  = (D.f[dirTW  ])[ktw  ];
-      f_TN  = (D.f[dirTN  ])[ktn  ];
-      f_BS  = (D.f[dirBS  ])[kbs  ];
-      f_BN  = (D.f[dirBN  ])[kbn  ];
-      f_TS  = (D.f[dirTS  ])[kts  ];
-      f_TNE = (D.f[dirTNE ])[ktne ];
-      f_TSW = (D.f[dirTSW ])[ktsw ];
-      f_TSE = (D.f[dirTSE ])[ktse ];
-      f_TNW = (D.f[dirTNW ])[ktnw ];
-      f_BNE = (D.f[dirBNE ])[kbne ];
-      f_BSW = (D.f[dirBSW ])[kbsw ];
-      f_BSE = (D.f[dirBSE ])[kbse ];
-      f_BNW = (D.f[dirBNW ])[kbnw ];
+      f_E   = (D.f[E   ])[ke   ];
+      f_W   = (D.f[W   ])[kw   ];
+      f_N   = (D.f[N   ])[kn   ];
+      f_S   = (D.f[S   ])[ks   ];
+      f_T   = (D.f[T   ])[kt   ];
+      f_B   = (D.f[B   ])[kb   ];
+      f_NE  = (D.f[NE  ])[kne  ];
+      f_SW  = (D.f[SW  ])[ksw  ];
+      f_SE  = (D.f[SE  ])[kse  ];
+      f_NW  = (D.f[NW  ])[knw  ];
+      f_TE  = (D.f[TE  ])[kte  ];
+      f_BW  = (D.f[BW  ])[kbw  ];
+      f_BE  = (D.f[BE  ])[kbe  ];
+      f_TW  = (D.f[TW  ])[ktw  ];
+      f_TN  = (D.f[TN  ])[ktn  ];
+      f_BS  = (D.f[BS  ])[kbs  ];
+      f_BN  = (D.f[BN  ])[kbn  ];
+      f_TS  = (D.f[TS  ])[kts  ];
+      f_TNE = (D.f[TNE ])[ktne ];
+      f_TSW = (D.f[TSW ])[ktsw ];
+      f_TSE = (D.f[TSE ])[ktse ];
+      f_TNW = (D.f[TNW ])[ktnw ];
+      f_BNE = (D.f[BNE ])[kbne ];
+      f_BSW = (D.f[BSW ])[kbsw ];
+      f_BSE = (D.f[BSE ])[kbse ];
+      f_BNW = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q;
       drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -1328,63 +1328,63 @@ extern "C" __global__ void QVelDeviceIncompHighNu27(int inx,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -1397,182 +1397,182 @@ extern "C" __global__ void QVelDeviceIncompHighNu27(int inx,
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*( vx1        )*/+c9o2*( vx1        )*( vx1        ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirW])[kw]=((c1o1 - q) * f_E + q * ((f_E + f_W) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloX     )) / (q + c1o1) ;
+         (D.f[W])[kw]=((c1o1 - q) * f_E + q * ((f_E + f_W) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloX     )) / (q + c1o1) ;
       }
 
       q = q_dirW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(-vx1        )*/+c9o2*(-vx1        )*(-vx1        ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirE])[ke]=((c1o1 - q) * f_W + q * ((f_W + f_E) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloX     )) / (q + c1o1) ;
+         (D.f[E])[ke]=((c1o1 - q) * f_W + q * ((f_W + f_E) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloX     )) / (q + c1o1) ;
       }
 
       q = q_dirN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(    vx2     )*/+c9o2*(     vx2    )*(     vx2    ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirS])[ks]=((c1o1 - q) * f_N + q * ((f_N + f_S) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloY     )) / (q + c1o1) ;
+         (D.f[S])[ks]=((c1o1 - q) * f_N + q * ((f_N + f_S) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloY     )) / (q + c1o1) ;
       }
 
       q = q_dirS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(   -vx2     )*/+c9o2*(    -vx2    )*(    -vx2    ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirN])[kn]=((c1o1 - q) * f_S + q * ((f_S + f_N) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloY     )) / (q + c1o1) ;
+         (D.f[N])[kn]=((c1o1 - q) * f_S + q * ((f_S + f_N) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloY     )) / (q + c1o1) ;
       }
 
       q = q_dirT[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(         vx3)*/+c9o2*(         vx3)*(         vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirB])[kb]=((c1o1 - q) * f_T + q * ((f_T + f_B) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloZ     )) / (q + c1o1) ;
+         (D.f[B])[kb]=((c1o1 - q) * f_T + q * ((f_T + f_B) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloZ     )) / (q + c1o1) ;
       }
 
       q = q_dirB[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(        -vx3)*/+c9o2*(        -vx3)*(        -vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirT])[kt]=((c1o1 - q) * f_B + q * ((f_B + f_T) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloZ     )) / (q + c1o1) ;
+         (D.f[T])[kt]=((c1o1 - q) * f_B + q * ((f_B + f_T) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloZ     )) / (q + c1o1) ;
       }
 
       q = q_dirNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1+vx2    )*/+c9o2*( vx1+vx2    )*( vx1+vx2    ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirSW])[ksw]=((c1o1 - q) * f_NE + q * ((f_NE + f_SW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloY)) / (q + c1o1) ;
+         (D.f[SW])[ksw]=((c1o1 - q) * f_NE + q * ((f_NE + f_SW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloY)) / (q + c1o1) ;
       }
 
       q = q_dirSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1-vx2    )*/+c9o2*(-vx1-vx2    )*(-vx1-vx2    ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirNE])[kne]=((c1o1 - q) * f_SW + q * ((f_SW + f_NE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloY)) / (q + c1o1) ;
+         (D.f[NE])[kne]=((c1o1 - q) * f_SW + q * ((f_SW + f_NE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloY)) / (q + c1o1) ;
       }
 
       q = q_dirSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1-vx2    )*/+c9o2*( vx1-vx2    )*( vx1-vx2    ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirNW])[knw]=((c1o1 - q) * f_SE + q * ((f_SE + f_NW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloY)) / (q + c1o1) ;
+         (D.f[NW])[knw]=((c1o1 - q) * f_SE + q * ((f_SE + f_NW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloY)) / (q + c1o1) ;
       }
 
       q = q_dirNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1+vx2    )*/+c9o2*(-vx1+vx2    )*(-vx1+vx2    ) /** (one + drho)*/-cu_sq); 
-         (D.f[dirSE])[kse]=((c1o1 - q) * f_NW + q * ((f_NW + f_SE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloY)) / (q + c1o1) ;
+         (D.f[SE])[kse]=((c1o1 - q) * f_NW + q * ((f_NW + f_SE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloY)) / (q + c1o1) ;
       }
 
       q = q_dirTE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1    +vx3)*/+c9o2*( vx1    +vx3)*( vx1    +vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBW])[kbw]=((c1o1 - q) * f_TE + q * ((f_TE + f_BW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloZ)) / (q + c1o1) ;
+         (D.f[BW])[kbw]=((c1o1 - q) * f_TE + q * ((f_TE + f_BW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1    -vx3)*/+c9o2*(-vx1    -vx3)*(-vx1    -vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTE])[kte]=((c1o1 - q) * f_BW + q * ((f_BW + f_TE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloZ)) / (q + c1o1) ;
+         (D.f[TE])[kte]=((c1o1 - q) * f_BW + q * ((f_BW + f_TE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1    -vx3)*/+c9o2*( vx1    -vx3)*( vx1    -vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTW])[ktw]=((c1o1 - q) * f_BE + q * ((f_BE + f_TW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloZ)) / (q + c1o1) ;
+         (D.f[TW])[ktw]=((c1o1 - q) * f_BE + q * ((f_BE + f_TW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1    +vx3)*/+c9o2*(-vx1    +vx3)*(-vx1    +vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBE])[kbe]=((c1o1 - q) * f_TW + q * ((f_TW + f_BE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloZ)) / (q + c1o1) ;
+         (D.f[BE])[kbe]=((c1o1 - q) * f_TW + q * ((f_TW + f_BE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(     vx2+vx3)*/+c9o2*(     vx2+vx3)*(     vx2+vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBS])[kbs]=((c1o1 - q) * f_TN + q * ((f_TN + f_BS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY+VeloZ)) / (q + c1o1) ;
+         (D.f[BS])[kbs]=((c1o1 - q) * f_TN + q * ((f_TN + f_BS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(    -vx2-vx3)*/+c9o2*(    -vx2-vx3)*(    -vx2-vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTN])[ktn]=((c1o1 - q) * f_BS + q * ((f_BS + f_TN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY-VeloZ)) / (q + c1o1) ;
+         (D.f[TN])[ktn]=((c1o1 - q) * f_BS + q * ((f_BS + f_TN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(     vx2-vx3)*/+c9o2*(     vx2-vx3)*(     vx2-vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTS])[kts]=((c1o1 - q) * f_BN + q * ((f_BN + f_TS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY-VeloZ)) / (q + c1o1) ;
+         (D.f[TS])[kts]=((c1o1 - q) * f_BN + q * ((f_BN + f_TS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(    -vx2+vx3)*/+c9o2*(    -vx2+vx3)*(    -vx2+vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBN])[kbn]=((c1o1 - q) * f_TS + q * ((f_TS + f_BN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY+VeloZ)) / (q + c1o1) ;
+         (D.f[BN])[kbn]=((c1o1 - q) * f_TS + q * ((f_TS + f_BN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBSW])[kbsw]=((c1o1 - q) * f_TNE + q * ((f_TNE + f_BSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY+VeloZ)) / (q + c1o1) ;
+         (D.f[BSW])[kbsw]=((c1o1 - q) * f_TNE + q * ((f_TNE + f_BSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTNE])[ktne]=((c1o1 - q) * f_BSW + q * ((f_BSW + f_TNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY-VeloZ)) / (q + c1o1) ;
+         (D.f[TNE])[ktne]=((c1o1 - q) * f_BSW + q * ((f_BSW + f_TNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTSW])[ktsw]=((c1o1 - q) * f_BNE + q * ((f_BNE + f_TSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY-VeloZ)) / (q + c1o1) ;
+         (D.f[TSW])[ktsw]=((c1o1 - q) * f_BNE + q * ((f_BNE + f_TSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBNE])[kbne]=((c1o1 - q) * f_TSW + q * ((f_TSW + f_BNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY+VeloZ)) / (q + c1o1) ;
+         (D.f[BNE])[kbne]=((c1o1 - q) * f_TSW + q * ((f_TSW + f_BNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBNW])[kbnw]=((c1o1 - q) * f_TSE + q * ((f_TSE + f_BNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY+VeloZ)) / (q + c1o1) ;
+         (D.f[BNW])[kbnw]=((c1o1 - q) * f_TSE + q * ((f_TSE + f_BNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY+VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTSE])[ktse]=((c1o1 - q) * f_BNW + q * ((f_BNW + f_TSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY-VeloZ)) / (q + c1o1) ;
+         (D.f[TSE])[ktse]=((c1o1 - q) * f_BNW + q * ((f_BNW + f_TSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirBSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirTNW])[ktnw]=((c1o1 - q) * f_BSE + q * ((f_BSE + f_TNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY-VeloZ)) / (q + c1o1) ;
+         (D.f[TNW])[ktnw]=((c1o1 - q) * f_BSE + q * ((f_BSE + f_TNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY-VeloZ)) / (q + c1o1) ;
       }
 
       q = q_dirTNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) /** (one + drho)*/-cu_sq); 
-         (D.f[dirBSE])[kbse]=((c1o1 - q) * f_TNW + q * ((f_TNW + f_BSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY+VeloZ)) / (q + c1o1) ;
+         (D.f[BSE])[kbse]=((c1o1 - q) * f_TNW + q * ((f_TNW + f_BSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY+VeloZ)) / (q + c1o1) ;
       }
    }
 }
@@ -1635,63 +1635,63 @@ extern "C" __global__ void QVelDeviceCompHighNu27(
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -1716,32 +1716,32 @@ extern "C" __global__ void QVelDeviceCompHighNu27(
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -1776,58 +1776,58 @@ extern "C" __global__ void QVelDeviceCompHighNu27(
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_E   = (D.f[dirE   ])[ke   ];
-      f_W   = (D.f[dirW   ])[kw   ];
-      f_N   = (D.f[dirN   ])[kn   ];
-      f_S   = (D.f[dirS   ])[ks   ];
-      f_T   = (D.f[dirT   ])[kt   ];
-      f_B   = (D.f[dirB   ])[kb   ];
-      f_NE  = (D.f[dirNE  ])[kne  ];
-      f_SW  = (D.f[dirSW  ])[ksw  ];
-      f_SE  = (D.f[dirSE  ])[kse  ];
-      f_NW  = (D.f[dirNW  ])[knw  ];
-      f_TE  = (D.f[dirTE  ])[kte  ];
-      f_BW  = (D.f[dirBW  ])[kbw  ];
-      f_BE  = (D.f[dirBE  ])[kbe  ];
-      f_TW  = (D.f[dirTW  ])[ktw  ];
-      f_TN  = (D.f[dirTN  ])[ktn  ];
-      f_BS  = (D.f[dirBS  ])[kbs  ];
-      f_BN  = (D.f[dirBN  ])[kbn  ];
-      f_TS  = (D.f[dirTS  ])[kts  ];
-      f_TNE = (D.f[dirTNE ])[ktne ];
-      f_TSW = (D.f[dirTSW ])[ktsw ];
-      f_TSE = (D.f[dirTSE ])[ktse ];
-      f_TNW = (D.f[dirTNW ])[ktnw ];
-      f_BNE = (D.f[dirBNE ])[kbne ];
-      f_BSW = (D.f[dirBSW ])[kbsw ];
-      f_BSE = (D.f[dirBSE ])[kbse ];
-      f_BNW = (D.f[dirBNW ])[kbnw ];
-      //f_W    = (D.f[dirE   ])[ke   ];
-      //f_E    = (D.f[dirW   ])[kw   ];
-      //f_S    = (D.f[dirN   ])[kn   ];
-      //f_N    = (D.f[dirS   ])[ks   ];
-      //f_B    = (D.f[dirT   ])[kt   ];
-      //f_T    = (D.f[dirB   ])[kb   ];
-      //f_SW   = (D.f[dirNE  ])[kne  ];
-      //f_NE   = (D.f[dirSW  ])[ksw  ];
-      //f_NW   = (D.f[dirSE  ])[kse  ];
-      //f_SE   = (D.f[dirNW  ])[knw  ];
-      //f_BW   = (D.f[dirTE  ])[kte  ];
-      //f_TE   = (D.f[dirBW  ])[kbw  ];
-      //f_TW   = (D.f[dirBE  ])[kbe  ];
-      //f_BE   = (D.f[dirTW  ])[ktw  ];
-      //f_BS   = (D.f[dirTN  ])[ktn  ];
-      //f_TN   = (D.f[dirBS  ])[kbs  ];
-      //f_TS   = (D.f[dirBN  ])[kbn  ];
-      //f_BN   = (D.f[dirTS  ])[kts  ];
-      //f_BSW  = (D.f[dirTNE ])[ktne ];
-      //f_BNE  = (D.f[dirTSW ])[ktsw ];
-      //f_BNW  = (D.f[dirTSE ])[ktse ];
-      //f_BSE  = (D.f[dirTNW ])[ktnw ];
-      //f_TSW  = (D.f[dirBNE ])[kbne ];
-      //f_TNE  = (D.f[dirBSW ])[kbsw ];
-      //f_TNW  = (D.f[dirBSE ])[kbse ];
-      //f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_E   = (D.f[E   ])[ke   ];
+      f_W   = (D.f[W   ])[kw   ];
+      f_N   = (D.f[N   ])[kn   ];
+      f_S   = (D.f[S   ])[ks   ];
+      f_T   = (D.f[T   ])[kt   ];
+      f_B   = (D.f[B   ])[kb   ];
+      f_NE  = (D.f[NE  ])[kne  ];
+      f_SW  = (D.f[SW  ])[ksw  ];
+      f_SE  = (D.f[SE  ])[kse  ];
+      f_NW  = (D.f[NW  ])[knw  ];
+      f_TE  = (D.f[TE  ])[kte  ];
+      f_BW  = (D.f[BW  ])[kbw  ];
+      f_BE  = (D.f[BE  ])[kbe  ];
+      f_TW  = (D.f[TW  ])[ktw  ];
+      f_TN  = (D.f[TN  ])[ktn  ];
+      f_BS  = (D.f[BS  ])[kbs  ];
+      f_BN  = (D.f[BN  ])[kbn  ];
+      f_TS  = (D.f[TS  ])[kts  ];
+      f_TNE = (D.f[TNE ])[ktne ];
+      f_TSW = (D.f[TSW ])[ktsw ];
+      f_TSE = (D.f[TSE ])[ktse ];
+      f_TNW = (D.f[TNW ])[ktnw ];
+      f_BNE = (D.f[BNE ])[kbne ];
+      f_BSW = (D.f[BSW ])[kbsw ];
+      f_BSE = (D.f[BSE ])[kbse ];
+      f_BNW = (D.f[BNW ])[kbnw ];
+      //f_W    = (D.f[E   ])[ke   ];
+      //f_E    = (D.f[W   ])[kw   ];
+      //f_S    = (D.f[N   ])[kn   ];
+      //f_N    = (D.f[S   ])[ks   ];
+      //f_B    = (D.f[T   ])[kt   ];
+      //f_T    = (D.f[B   ])[kb   ];
+      //f_SW   = (D.f[NE  ])[kne  ];
+      //f_NE   = (D.f[SW  ])[ksw  ];
+      //f_NW   = (D.f[SE  ])[kse  ];
+      //f_SE   = (D.f[NW  ])[knw  ];
+      //f_BW   = (D.f[TE  ])[kte  ];
+      //f_TE   = (D.f[BW  ])[kbw  ];
+      //f_TW   = (D.f[BE  ])[kbe  ];
+      //f_BE   = (D.f[TW  ])[ktw  ];
+      //f_BS   = (D.f[TN  ])[ktn  ];
+      //f_TN   = (D.f[BS  ])[kbs  ];
+      //f_TS   = (D.f[BN  ])[kbn  ];
+      //f_BN   = (D.f[TS  ])[kts  ];
+      //f_BSW  = (D.f[TNE ])[ktne ];
+      //f_BNE  = (D.f[TSW ])[ktsw ];
+      //f_BNW  = (D.f[TSE ])[ktse ];
+      //f_BSE  = (D.f[TNW ])[ktnw ];
+      //f_TSW  = (D.f[BNE ])[kbne ];
+      //f_TNE  = (D.f[BSW ])[kbsw ];
+      //f_TNW  = (D.f[BSE ])[kbse ];
+      //f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q;
       drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -1852,63 +1852,63 @@ extern "C" __global__ void QVelDeviceCompHighNu27(
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -1921,234 +1921,234 @@ extern "C" __global__ void QVelDeviceCompHighNu27(
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*( vx1        )*/+c9o2*( vx1        )*( vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirW])[kw]=((c1o1 - q) * f_E + q * ((f_E + f_W) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloX     )) / (q + c1o1) ;
-         //(D.f[dirW])[kw]=(one-q)/(one+q)*(f_E-f_W+(f_E+f_W-two*feq*om1)/(one-om1))*c1o2+(q*(f_E+f_W)-six*c2over27*( VeloX     ))/(one+q) - c2over27 * drho;
-         //(D.f[dirW])[kw]=zero;
+         (D.f[W])[kw]=((c1o1 - q) * f_E + q * ((f_E + f_W) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloX     )) / (q + c1o1) ;
+         //(D.f[W])[kw]=(one-q)/(one+q)*(f_E-f_W+(f_E+f_W-two*feq*om1)/(one-om1))*c1o2+(q*(f_E+f_W)-six*c2over27*( VeloX     ))/(one+q) - c2over27 * drho;
+         //(D.f[W])[kw]=zero;
       }
 
       q = q_dirW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(-vx1        )*/+c9o2*(-vx1        )*(-vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirE])[ke]=((c1o1 - q) * f_W + q * ((f_W + f_E) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloX     )) / (q + c1o1) ;
-         //(D.f[dirE])[ke]=(one-q)/(one+q)*(f_W-f_E+(f_W+f_E-two*feq*om1)/(one-om1))*c1o2+(q*(f_W+f_E)-six*c2over27*(-VeloX     ))/(one+q) - c2over27 * drho;
-         //(D.f[dirE])[ke]=zero;
+         (D.f[E])[ke]=((c1o1 - q) * f_W + q * ((f_W + f_E) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloX     )) / (q + c1o1) ;
+         //(D.f[E])[ke]=(one-q)/(one+q)*(f_W-f_E+(f_W+f_E-two*feq*om1)/(one-om1))*c1o2+(q*(f_W+f_E)-six*c2over27*(-VeloX     ))/(one+q) - c2over27 * drho;
+         //(D.f[E])[ke]=zero;
       }
 
       q = q_dirN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(    vx2     )*/+c9o2*(     vx2    )*(     vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirS])[ks]=((c1o1 - q) * f_N + q * ((f_N + f_S) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloY     )) / (q + c1o1) ;
-         //(D.f[dirS])[ks]=(one-q)/(one+q)*(f_N-f_S+(f_N+f_S-two*feq*om1)/(one-om1))*c1o2+(q*(f_N+f_S)-six*c2over27*( VeloY     ))/(one+q) - c2over27 * drho;
-         //(D.f[dirS])[ks]=zero;
+         (D.f[S])[ks]=((c1o1 - q) * f_N + q * ((f_N + f_S) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloY     )) / (q + c1o1) ;
+         //(D.f[S])[ks]=(one-q)/(one+q)*(f_N-f_S+(f_N+f_S-two*feq*om1)/(one-om1))*c1o2+(q*(f_N+f_S)-six*c2over27*( VeloY     ))/(one+q) - c2over27 * drho;
+         //(D.f[S])[ks]=zero;
       }
 
       q = q_dirS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(   -vx2     )*/+c9o2*(    -vx2    )*(    -vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirN])[kn]=((c1o1 - q) * f_S + q * ((f_S + f_N) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloY     )) / (q + c1o1) ;
-         //(D.f[dirN])[kn]=(one-q)/(one+q)*(f_S-f_N+(f_S+f_N-two*feq*om1)/(one-om1))*c1o2+(q*(f_S+f_N)-six*c2over27*(-VeloY     ))/(one+q) - c2over27 * drho;
-         //(D.f[dirN])[kn]=zero;
+         (D.f[N])[kn]=((c1o1 - q) * f_S + q * ((f_S + f_N) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloY     )) / (q + c1o1) ;
+         //(D.f[N])[kn]=(one-q)/(one+q)*(f_S-f_N+(f_S+f_N-two*feq*om1)/(one-om1))*c1o2+(q*(f_S+f_N)-six*c2over27*(-VeloY     ))/(one+q) - c2over27 * drho;
+         //(D.f[N])[kn]=zero;
       }
 
       q = q_dirT[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(         vx3)*/+c9o2*(         vx3)*(         vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirB])[kb]=((c1o1 - q) * f_T + q * ((f_T + f_B) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloZ     )) / (q + c1o1) ;
-         //(D.f[dirB])[kb]=(one-q)/(one+q)*(f_T-f_B+(f_T+f_B-two*feq*om1)/(one-om1))*c1o2+(q*(f_T+f_B)-six*c2over27*( VeloZ     ))/(one+q) - c2over27 * drho;
-         //(D.f[dirB])[kb]=one;
+         (D.f[B])[kb]=((c1o1 - q) * f_T + q * ((f_T + f_B) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*( VeloZ     )) / (q + c1o1) ;
+         //(D.f[B])[kb]=(one-q)/(one+q)*(f_T-f_B+(f_T+f_B-two*feq*om1)/(one-om1))*c1o2+(q*(f_T+f_B)-six*c2over27*( VeloZ     ))/(one+q) - c2over27 * drho;
+         //(D.f[B])[kb]=one;
       }
 
       q = q_dirB[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(        -vx3)*/+c9o2*(        -vx3)*(        -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirT])[kt]=((c1o1 - q) * f_B + q * ((f_B + f_T) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloZ     )) / (q + c1o1) ;
-         //(D.f[dirT])[kt]=(one-q)/(one+q)*(f_B-f_T+(f_B+f_T-two*feq*om1)/(one-om1))*c1o2+(q*(f_B+f_T)-six*c2over27*(-VeloZ     ))/(one+q) - c2over27 * drho;
-         //(D.f[dirT])[kt]=zero;
+         (D.f[T])[kt]=((c1o1 - q) * f_B + q * ((f_B + f_T) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c2o27*(-VeloZ     )) / (q + c1o1) ;
+         //(D.f[T])[kt]=(one-q)/(one+q)*(f_B-f_T+(f_B+f_T-two*feq*om1)/(one-om1))*c1o2+(q*(f_B+f_T)-six*c2over27*(-VeloZ     ))/(one+q) - c2over27 * drho;
+         //(D.f[T])[kt]=zero;
       }
 
       q = q_dirNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1+vx2    )*/+c9o2*( vx1+vx2    )*( vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSW])[ksw]=((c1o1 - q) * f_NE + q * ((f_NE + f_SW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloY)) / (q + c1o1) ;
-         //(D.f[dirSW])[ksw]=(one-q)/(one+q)*(f_NE-f_SW+(f_NE+f_SW-two*feq*om1)/(one-om1))*c1o2+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q) - c1over54 * drho;
-         //(D.f[dirSW])[ksw]=zero;
+         (D.f[SW])[ksw]=((c1o1 - q) * f_NE + q * ((f_NE + f_SW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloY)) / (q + c1o1) ;
+         //(D.f[SW])[ksw]=(one-q)/(one+q)*(f_NE-f_SW+(f_NE+f_SW-two*feq*om1)/(one-om1))*c1o2+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q) - c1over54 * drho;
+         //(D.f[SW])[ksw]=zero;
       }
 
       q = q_dirSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1-vx2    )*/+c9o2*(-vx1-vx2    )*(-vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNE])[kne]=((c1o1 - q) * f_SW + q * ((f_SW + f_NE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloY)) / (q + c1o1) ;
-         //(D.f[dirNE])[kne]=(one-q)/(one+q)*(f_SW-f_NE+(f_SW+f_NE-two*feq*om1)/(one-om1))*c1o2+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q) - c1over54 * drho;
-         //(D.f[dirNE])[kne]=zero;
+         (D.f[NE])[kne]=((c1o1 - q) * f_SW + q * ((f_SW + f_NE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloY)) / (q + c1o1) ;
+         //(D.f[NE])[kne]=(one-q)/(one+q)*(f_SW-f_NE+(f_SW+f_NE-two*feq*om1)/(one-om1))*c1o2+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q) - c1over54 * drho;
+         //(D.f[NE])[kne]=zero;
       }
 
       q = q_dirSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1-vx2    )*/+c9o2*( vx1-vx2    )*( vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNW])[knw]=((c1o1 - q) * f_SE + q * ((f_SE + f_NW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloY)) / (q + c1o1) ;
-         //(D.f[dirNW])[knw]=(one-q)/(one+q)*(f_SE-f_NW+(f_SE+f_NW-two*feq*om1)/(one-om1))*c1o2+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q) - c1over54 * drho;
-         //(D.f[dirNW])[knw]=zero;
+         (D.f[NW])[knw]=((c1o1 - q) * f_SE + q * ((f_SE + f_NW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloY)) / (q + c1o1) ;
+         //(D.f[NW])[knw]=(one-q)/(one+q)*(f_SE-f_NW+(f_SE+f_NW-two*feq*om1)/(one-om1))*c1o2+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q) - c1over54 * drho;
+         //(D.f[NW])[knw]=zero;
       }
 
       q = q_dirNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1+vx2    )*/+c9o2*(-vx1+vx2    )*(-vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSE])[kse]=((c1o1 - q) * f_NW + q * ((f_NW + f_SE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloY)) / (q + c1o1) ;
-         //(D.f[dirSE])[kse]=(one-q)/(one+q)*(f_NW-f_SE+(f_NW+f_SE-two*feq*om1)/(one-om1))*c1o2+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q) - c1over54 * drho;
-         //(D.f[dirSE])[kse]=zero;
+         (D.f[SE])[kse]=((c1o1 - q) * f_NW + q * ((f_NW + f_SE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloY)) / (q + c1o1) ;
+         //(D.f[SE])[kse]=(one-q)/(one+q)*(f_NW-f_SE+(f_NW+f_SE-two*feq*om1)/(one-om1))*c1o2+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q) - c1over54 * drho;
+         //(D.f[SE])[kse]=zero;
       }
 
       q = q_dirTE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1    +vx3)*/+c9o2*( vx1    +vx3)*( vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBW])[kbw]=((c1o1 - q) * f_TE + q * ((f_TE + f_BW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBW])[kbw]=(one-q)/(one+q)*(f_TE-f_BW+(f_TE+f_BW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirBW])[kbw]=zero;
+         (D.f[BW])[kbw]=((c1o1 - q) * f_TE + q * ((f_TE + f_BW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX+VeloZ)) / (q + c1o1) ;
+         //(D.f[BW])[kbw]=(one-q)/(one+q)*(f_TE-f_BW+(f_TE+f_BW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[BW])[kbw]=zero;
       }
 
       q = q_dirBW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1    -vx3)*/+c9o2*(-vx1    -vx3)*(-vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTE])[kte]=((c1o1 - q) * f_BW + q * ((f_BW + f_TE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTE])[kte]=(one-q)/(one+q)*(f_BW-f_TE+(f_BW+f_TE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirTE])[kte]=zero;
+         (D.f[TE])[kte]=((c1o1 - q) * f_BW + q * ((f_BW + f_TE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX-VeloZ)) / (q + c1o1) ;
+         //(D.f[TE])[kte]=(one-q)/(one+q)*(f_BW-f_TE+(f_BW+f_TE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[TE])[kte]=zero;
       }
 
       q = q_dirBE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1    -vx3)*/+c9o2*( vx1    -vx3)*( vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTW])[ktw]=((c1o1 - q) * f_BE + q * ((f_BE + f_TW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTW])[ktw]=(one-q)/(one+q)*(f_BE-f_TW+(f_BE+f_TW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirTW])[ktw]=zero;
+         (D.f[TW])[ktw]=((c1o1 - q) * f_BE + q * ((f_BE + f_TW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloX-VeloZ)) / (q + c1o1) ;
+         //(D.f[TW])[ktw]=(one-q)/(one+q)*(f_BE-f_TW+(f_BE+f_TW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[TW])[ktw]=zero;
       }
 
       q = q_dirTW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1    +vx3)*/+c9o2*(-vx1    +vx3)*(-vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBE])[kbe]=((c1o1 - q) * f_TW + q * ((f_TW + f_BE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBE])[kbe]=(one-q)/(one+q)*(f_TW-f_BE+(f_TW+f_BE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirBE])[kbe]=zero;
+         (D.f[BE])[kbe]=((c1o1 - q) * f_TW + q * ((f_TW + f_BE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloX+VeloZ)) / (q + c1o1) ;
+         //(D.f[BE])[kbe]=(one-q)/(one+q)*(f_TW-f_BE+(f_TW+f_BE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[BE])[kbe]=zero;
       }
 
       q = q_dirTN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(     vx2+vx3)*/+c9o2*(     vx2+vx3)*(     vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBS])[kbs]=((c1o1 - q) * f_TN + q * ((f_TN + f_BS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBS])[kbs]=(one-q)/(one+q)*(f_TN-f_BS+(f_TN+f_BS-two*feq*om1)/(one-om1))*c1o2+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirBS])[kbs]=zero;
+         (D.f[BS])[kbs]=((c1o1 - q) * f_TN + q * ((f_TN + f_BS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY+VeloZ)) / (q + c1o1) ;
+         //(D.f[BS])[kbs]=(one-q)/(one+q)*(f_TN-f_BS+(f_TN+f_BS-two*feq*om1)/(one-om1))*c1o2+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[BS])[kbs]=zero;
       }
 
       q = q_dirBS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(    -vx2-vx3)*/+c9o2*(    -vx2-vx3)*(    -vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTN])[ktn]=((c1o1 - q) * f_BS + q * ((f_BS + f_TN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTN])[ktn]=(one-q)/(one+q)*(f_BS-f_TN+(f_BS+f_TN-two*feq*om1)/(one-om1))*c1o2+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirTN])[ktn]=zero;
+         (D.f[TN])[ktn]=((c1o1 - q) * f_BS + q * ((f_BS + f_TN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY-VeloZ)) / (q + c1o1) ;
+         //(D.f[TN])[ktn]=(one-q)/(one+q)*(f_BS-f_TN+(f_BS+f_TN-two*feq*om1)/(one-om1))*c1o2+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[TN])[ktn]=zero;
       }
 
       q = q_dirBN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(     vx2-vx3)*/+c9o2*(     vx2-vx3)*(     vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTS])[kts]=((c1o1 - q) * f_BN + q * ((f_BN + f_TS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTS])[kts]=(one-q)/(one+q)*(f_BN-f_TS+(f_BN+f_TS-two*feq*om1)/(one-om1))*c1o2+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirTS])[kts]=zero;
+         (D.f[TS])[kts]=((c1o1 - q) * f_BN + q * ((f_BN + f_TS) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*( VeloY-VeloZ)) / (q + c1o1) ;
+         //(D.f[TS])[kts]=(one-q)/(one+q)*(f_BN-f_TS+(f_BN+f_TS-two*feq*om1)/(one-om1))*c1o2+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[TS])[kts]=zero;
       }
 
       q = q_dirTS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(    -vx2+vx3)*/+c9o2*(    -vx2+vx3)*(    -vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBN])[kbn]=((c1o1 - q) * f_TS + q * ((f_TS + f_BN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBN])[kbn]=(one-q)/(one+q)*(f_TS-f_BN+(f_TS+f_BN-two*feq*om1)/(one-om1))*c1o2+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q) - c1over54 * drho;
-         //(D.f[dirBN])[kbn]=zero;
+         (D.f[BN])[kbn]=((c1o1 - q) * f_TS + q * ((f_TS + f_BN) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o54*(-VeloY+VeloZ)) / (q + c1o1) ;
+         //(D.f[BN])[kbn]=(one-q)/(one+q)*(f_TS-f_BN+(f_TS+f_BN-two*feq*om1)/(one-om1))*c1o2+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q) - c1over54 * drho;
+         //(D.f[BN])[kbn]=zero;
       }
 
       q = q_dirTNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSW])[kbsw]=((c1o1 - q) * f_TNE + q * ((f_TNE + f_BSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBSW])[kbsw]=(one-q)/(one+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirBSW])[kbsw]=zero;
+         (D.f[BSW])[kbsw]=((c1o1 - q) * f_TNE + q * ((f_TNE + f_BSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY+VeloZ)) / (q + c1o1) ;
+         //(D.f[BSW])[kbsw]=(one-q)/(one+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[BSW])[kbsw]=zero;
       }
 
       q = q_dirBSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNE])[ktne]=((c1o1 - q) * f_BSW + q * ((f_BSW + f_TNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTNE])[ktne]=(one-q)/(one+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirTNE])[ktne]=zero;
+         (D.f[TNE])[ktne]=((c1o1 - q) * f_BSW + q * ((f_BSW + f_TNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY-VeloZ)) / (q + c1o1) ;
+         //(D.f[TNE])[ktne]=(one-q)/(one+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[TNE])[ktne]=zero;
       }
 
       q = q_dirBNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSW])[ktsw]=((c1o1 - q) * f_BNE + q * ((f_BNE + f_TSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTSW])[ktsw]=(one-q)/(one+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirTSW])[ktsw]=zero;
+         (D.f[TSW])[ktsw]=((c1o1 - q) * f_BNE + q * ((f_BNE + f_TSW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX+VeloY-VeloZ)) / (q + c1o1) ;
+         //(D.f[TSW])[ktsw]=(one-q)/(one+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[TSW])[ktsw]=zero;
       }
 
       q = q_dirTSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNE])[kbne]=((c1o1 - q) * f_TSW + q * ((f_TSW + f_BNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBNE])[kbne]=(one-q)/(one+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirBNE])[kbne]=zero;
+         (D.f[BNE])[kbne]=((c1o1 - q) * f_TSW + q * ((f_TSW + f_BNE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX-VeloY+VeloZ)) / (q + c1o1) ;
+         //(D.f[BNE])[kbne]=(one-q)/(one+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[BNE])[kbne]=zero;
       }
 
       q = q_dirTSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNW])[kbnw]=((c1o1 - q) * f_TSE + q * ((f_TSE + f_BNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBNW])[kbnw]=(one-q)/(one+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirBNW])[kbnw]=zero;
+         (D.f[BNW])[kbnw]=((c1o1 - q) * f_TSE + q * ((f_TSE + f_BNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY+VeloZ)) / (q + c1o1) ;
+         //(D.f[BNW])[kbnw]=(one-q)/(one+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[BNW])[kbnw]=zero;
       }
 
       q = q_dirBNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSE])[ktse]=((c1o1 - q) * f_BNW + q * ((f_BNW + f_TSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTSE])[ktse]=(one-q)/(one+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirTSE])[ktse]=zero;
+         (D.f[TSE])[ktse]=((c1o1 - q) * f_BNW + q * ((f_BNW + f_TSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY-VeloZ)) / (q + c1o1) ;
+         //(D.f[TSE])[ktse]=(one-q)/(one+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[TSE])[ktse]=zero;
       }
 
       q = q_dirBSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNW])[ktnw]=((c1o1 - q) * f_BSE + q * ((f_BSE + f_TNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY-VeloZ)) / (q + c1o1) ;
-         //(D.f[dirTNW])[ktnw]=(one-q)/(one+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirTNW])[ktnw]=zero;
+         (D.f[TNW])[ktnw]=((c1o1 - q) * f_BSE + q * ((f_BSE + f_TNW) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*( VeloX-VeloY-VeloZ)) / (q + c1o1) ;
+         //(D.f[TNW])[ktnw]=(one-q)/(one+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[TNW])[ktnw]=zero;
       }
 
       q = q_dirTNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSE])[kbse]=((c1o1 - q) * f_TNW + q * ((f_TNW + f_BSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY+VeloZ)) / (q + c1o1) ;
-         //(D.f[dirBSE])[kbse]=(one-q)/(one+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q) - c1over216 * drho;
-         //(D.f[dirBSE])[kbse]=zero;
+         (D.f[BSE])[kbse]=((c1o1 - q) * f_TNW + q * ((f_TNW + f_BSE) * (c1o1 - om1) + om1 * c2o1 * feq) - c6o1*c1o216*(-VeloX+VeloY+VeloZ)) / (q + c1o1) ;
+         //(D.f[BSE])[kbse]=(one-q)/(one+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q) - c1over216 * drho;
+         //(D.f[BSE])[kbse]=zero;
       }
    }
 }
@@ -2285,32 +2285,32 @@ extern "C" __global__ void QVelDeviceCompZeroPress27(
       ////////////////////////////////////////////////////////////////////////////////
       //! - Set local distributions
       //!
-      real f_W    = (dist.f[dirE   ])[ke   ];
-      real f_E    = (dist.f[dirW   ])[kw   ];
-      real f_S    = (dist.f[dirN   ])[kn   ];
-      real f_N    = (dist.f[dirS   ])[ks   ];
-      real f_B    = (dist.f[dirT   ])[kt   ];
-      real f_T    = (dist.f[dirB   ])[kb   ];
-      real f_SW   = (dist.f[dirNE  ])[kne  ];
-      real f_NE   = (dist.f[dirSW  ])[ksw  ];
-      real f_NW   = (dist.f[dirSE  ])[kse  ];
-      real f_SE   = (dist.f[dirNW  ])[knw  ];
-      real f_BW   = (dist.f[dirTE  ])[kte  ];
-      real f_TE   = (dist.f[dirBW  ])[kbw  ];
-      real f_TW   = (dist.f[dirBE  ])[kbe  ];
-      real f_BE   = (dist.f[dirTW  ])[ktw  ];
-      real f_BS   = (dist.f[dirTN  ])[ktn  ];
-      real f_TN   = (dist.f[dirBS  ])[kbs  ];
-      real f_TS   = (dist.f[dirBN  ])[kbn  ];
-      real f_BN   = (dist.f[dirTS  ])[kts  ];
-      real f_BSW  = (dist.f[dirTNE ])[ktne ];
-      real f_BNE  = (dist.f[dirTSW ])[ktsw ];
-      real f_BNW  = (dist.f[dirTSE ])[ktse ];
-      real f_BSE  = (dist.f[dirTNW ])[ktnw ];
-      real f_TSW  = (dist.f[dirBNE ])[kbne ];
-      real f_TNE  = (dist.f[dirBSW ])[kbsw ];
-      real f_TNW  = (dist.f[dirBSE ])[kbse ];
-      real f_TSE  = (dist.f[dirBNW ])[kbnw ];
+      real f_W    = (dist.f[E   ])[ke   ];
+      real f_E    = (dist.f[W   ])[kw   ];
+      real f_S    = (dist.f[N   ])[kn   ];
+      real f_N    = (dist.f[S   ])[ks   ];
+      real f_B    = (dist.f[T   ])[kt   ];
+      real f_T    = (dist.f[B   ])[kb   ];
+      real f_SW   = (dist.f[NE  ])[kne  ];
+      real f_NE   = (dist.f[SW  ])[ksw  ];
+      real f_NW   = (dist.f[SE  ])[kse  ];
+      real f_SE   = (dist.f[NW  ])[knw  ];
+      real f_BW   = (dist.f[TE  ])[kte  ];
+      real f_TE   = (dist.f[BW  ])[kbw  ];
+      real f_TW   = (dist.f[BE  ])[kbe  ];
+      real f_BE   = (dist.f[TW  ])[ktw  ];
+      real f_BS   = (dist.f[TN  ])[ktn  ];
+      real f_TN   = (dist.f[BS  ])[kbs  ];
+      real f_TS   = (dist.f[BN  ])[kbn  ];
+      real f_BN   = (dist.f[TS  ])[kts  ];
+      real f_BSW  = (dist.f[TNE ])[ktne ];
+      real f_BNE  = (dist.f[TSW ])[ktsw ];
+      real f_BNW  = (dist.f[TSE ])[ktse ];
+      real f_BSE  = (dist.f[TNW ])[ktnw ];
+      real f_TSW  = (dist.f[BNE ])[kbne ];
+      real f_TNE  = (dist.f[BSW ])[kbsw ];
+      real f_TNW  = (dist.f[BSE ])[kbse ];
+      real f_TSE  = (dist.f[BNW ])[kbnw ];
 
       ////////////////////////////////////////////////////////////////////////////////
       //! - Calculate macroscopic quantities
@@ -2342,238 +2342,238 @@ extern "C" __global__ void QVelDeviceCompZeroPress27(
       ////////////////////////////////////////////////////////////////////////////////
       //! - Update distributions with subgrid distance (q) between zero and one
       real feq, q, velocityLB, velocityBC;
-      q = (subgridD.q[dirE])[k];
+      q = (subgridD.q[E])[k];
       if (q>=c0o1 && q<=c1o1) // only update distribution for q between zero and one
       {
          velocityLB = vx1;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
          velocityBC = VeloX;
-         (dist.f[dirW])[kw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_E, f_W, feq, omega, drho, velocityBC, c2o27);
+         (dist.f[W])[kw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_E, f_W, feq, omega, drho, velocityBC, c2o27);
       }
 
-      q = (subgridD.q[dirW])[k];
+      q = (subgridD.q[W])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
          velocityBC = -VeloX;
-         (dist.f[dirE])[ke] = getInterpolatedDistributionForVeloWithPressureBC(q, f_W, f_E, feq, omega, drho, velocityBC, c2o27);
+         (dist.f[E])[ke] = getInterpolatedDistributionForVeloWithPressureBC(q, f_W, f_E, feq, omega, drho, velocityBC, c2o27);
       }
 
-      q = (subgridD.q[dirN])[k];
+      q = (subgridD.q[N])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
          velocityBC = VeloY;
-         (dist.f[dirS])[ks] = getInterpolatedDistributionForVeloWithPressureBC(q, f_N, f_S, feq, omega, drho, velocityBC, c2o27);
+         (dist.f[S])[ks] = getInterpolatedDistributionForVeloWithPressureBC(q, f_N, f_S, feq, omega, drho, velocityBC, c2o27);
       }
 
-      q = (subgridD.q[dirS])[k];
+      q = (subgridD.q[S])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
          velocityBC = -VeloY;
-         (dist.f[dirN])[kn] = getInterpolatedDistributionForVeloWithPressureBC(q, f_S, f_N, feq, omega, drho, velocityBC, c2o27);
+         (dist.f[N])[kn] = getInterpolatedDistributionForVeloWithPressureBC(q, f_S, f_N, feq, omega, drho, velocityBC, c2o27);
       }
 
-      q = (subgridD.q[dirT])[k];
+      q = (subgridD.q[T])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
          velocityBC = VeloZ;
-         (dist.f[dirB])[kb] = getInterpolatedDistributionForVeloWithPressureBC(q, f_T, f_B, feq, omega, drho, velocityBC, c2o27);
+         (dist.f[B])[kb] = getInterpolatedDistributionForVeloWithPressureBC(q, f_T, f_B, feq, omega, drho, velocityBC, c2o27);
       }
 
-      q = (subgridD.q[dirB])[k];
+      q = (subgridD.q[B])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
          velocityBC = -VeloZ;
-         (dist.f[dirT])[kt] = getInterpolatedDistributionForVeloWithPressureBC(q, f_B, f_T, feq, omega, drho, velocityBC, c2o27);
+         (dist.f[T])[kt] = getInterpolatedDistributionForVeloWithPressureBC(q, f_B, f_T, feq, omega, drho, velocityBC, c2o27);
       }
 
-      q = (subgridD.q[dirNE])[k];
+      q = (subgridD.q[NE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = VeloX + VeloY;
-         (dist.f[dirSW])[ksw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_NE, f_SW, feq, omega, drho, velocityBC, c1o54);
+         (dist.f[SW])[ksw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_NE, f_SW, feq, omega, drho, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirSW])[k];
+      q = (subgridD.q[SW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = -VeloX - VeloY;
-         (dist.f[dirNE])[kne] = getInterpolatedDistributionForVeloWithPressureBC(q, f_SW, f_NE, feq, omega, drho, velocityBC, c1o54);
+         (dist.f[NE])[kne] = getInterpolatedDistributionForVeloWithPressureBC(q, f_SW, f_NE, feq, omega, drho, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirSE])[k];
+      q = (subgridD.q[SE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = VeloX - VeloY;
-         (dist.f[dirNW])[knw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_SE, f_NW, feq, omega, drho, velocityBC, c1o54);
+         (dist.f[NW])[knw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_SE, f_NW, feq, omega, drho, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirNW])[k];
+      q = (subgridD.q[NW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = -VeloX + VeloY;
-         (dist.f[dirSE])[kse] = getInterpolatedDistributionForVeloWithPressureBC(q, f_NW, f_SE, feq, omega, drho, velocityBC, c1o54);
+         (dist.f[SE])[kse] = getInterpolatedDistributionForVeloWithPressureBC(q, f_NW, f_SE, feq, omega, drho, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirTE])[k];
+      q = (subgridD.q[TE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = VeloX + VeloZ;
-         (dist.f[dirBW])[kbw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TE, f_BW, feq, omega, drho, velocityBC, c1o54);
+         (dist.f[BW])[kbw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TE, f_BW, feq, omega, drho, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirBW])[k];
+      q = (subgridD.q[BW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = -VeloX - VeloZ;
-         (dist.f[dirTE])[kte] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BW, f_TE, feq, omega, drho, velocityBC, c1o54);
+         (dist.f[TE])[kte] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BW, f_TE, feq, omega, drho, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirBE])[k];
+      q = (subgridD.q[BE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = VeloX - VeloZ;
-         (dist.f[dirTW])[ktw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BE, f_TW, feq, omega, drho, velocityBC, c1o54);
+         (dist.f[TW])[ktw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BE, f_TW, feq, omega, drho, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirTW])[k];
+      q = (subgridD.q[TW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = -VeloX + VeloZ;
-         (dist.f[dirBE])[kbe] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TW, f_BE, feq, omega, drho, velocityBC, c1o54);
+         (dist.f[BE])[kbe] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TW, f_BE, feq, omega, drho, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirTN])[k];
+      q = (subgridD.q[TN])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = VeloY + VeloZ;
-         (dist.f[dirBS])[kbs] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TN, f_BS, feq, omega, drho, velocityBC, c1o54);
+         (dist.f[BS])[kbs] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TN, f_BS, feq, omega, drho, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirBS])[k];
+      q = (subgridD.q[BS])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = -VeloY - VeloZ;
-         (dist.f[dirTN])[ktn] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BS, f_TN, feq, omega, drho, velocityBC, c1o54);
+         (dist.f[TN])[ktn] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BS, f_TN, feq, omega, drho, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirBN])[k];
+      q = (subgridD.q[BN])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = VeloY - VeloZ;
-         (dist.f[dirTS])[kts] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BN, f_TS, feq, omega, drho, velocityBC, c1o54);
+         (dist.f[TS])[kts] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BN, f_TS, feq, omega, drho, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirTS])[k];
+      q = (subgridD.q[TS])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = -VeloY + VeloZ;
-         (dist.f[dirBN])[kbn] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TS, f_BN, feq, omega, drho, velocityBC, c1o54);
+         (dist.f[BN])[kbn] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TS, f_BN, feq, omega, drho, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirTNE])[k];
+      q = (subgridD.q[TNE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = VeloX + VeloY + VeloZ;
-         (dist.f[dirBSW])[kbsw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TNE, f_BSW, feq, omega, drho, velocityBC, c1o216);
+         (dist.f[BSW])[kbsw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TNE, f_BSW, feq, omega, drho, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirBSW])[k];
+      q = (subgridD.q[BSW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = -VeloX - VeloY - VeloZ;
-         (dist.f[dirTNE])[ktne] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BSW, f_TNE, feq, omega, drho, velocityBC, c1o216);
+         (dist.f[TNE])[ktne] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BSW, f_TNE, feq, omega, drho, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirBNE])[k];
+      q = (subgridD.q[BNE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = VeloX + VeloY - VeloZ;
-         (dist.f[dirTSW])[ktsw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BNE, f_TSW, feq, omega, drho, velocityBC, c1o216);
+         (dist.f[TSW])[ktsw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BNE, f_TSW, feq, omega, drho, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirTSW])[k];
+      q = (subgridD.q[TSW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = -VeloX - VeloY + VeloZ;
-         (dist.f[dirBNE])[kbne] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TSW, f_BNE, feq, omega, drho, velocityBC, c1o216);
+         (dist.f[BNE])[kbne] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TSW, f_BNE, feq, omega, drho, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirTSE])[k];
+      q = (subgridD.q[TSE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = VeloX - VeloY + VeloZ;
-         (dist.f[dirBNW])[kbnw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TSE, f_BNW, feq, omega, drho, velocityBC, c1o216);
+         (dist.f[BNW])[kbnw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TSE, f_BNW, feq, omega, drho, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirBNW])[k];
+      q = (subgridD.q[BNW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = -VeloX + VeloY - VeloZ;
-         (dist.f[dirTSE])[ktse] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BNW, f_TSE, feq, omega, drho, velocityBC, c1o216);
+         (dist.f[TSE])[ktse] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BNW, f_TSE, feq, omega, drho, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirBSE])[k];
+      q = (subgridD.q[BSE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = VeloX - VeloY - VeloZ;
-         (dist.f[dirTNW])[ktnw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BSE, f_TNW, feq, omega, drho, velocityBC, c1o216);
+         (dist.f[TNW])[ktnw] = getInterpolatedDistributionForVeloWithPressureBC(q, f_BSE, f_TNW, feq, omega, drho, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirTNW])[k];
+      q = (subgridD.q[TNW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = -VeloX + VeloY + VeloZ;
-         (dist.f[dirBSE])[kbse] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TNW, f_BSE, feq, omega, drho, velocityBC, c1o216);
+         (dist.f[BSE])[kbse] = getInterpolatedDistributionForVeloWithPressureBC(q, f_TNW, f_BSE, feq, omega, drho, velocityBC, c1o216);
       }
    }
 }
@@ -2643,63 +2643,63 @@ extern "C" __global__ void QVelDeviceCompZeroPress1h27( int inx,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -2738,32 +2738,32 @@ extern "C" __global__ void QVelDeviceCompZeroPress1h27( int inx,
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -2797,63 +2797,63 @@ extern "C" __global__ void QVelDeviceCompZeroPress1h27( int inx,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  real vx1, vx2, vx3, drho, feq, q, cu_sq;
@@ -2870,182 +2870,182 @@ extern "C" __global__ void QVelDeviceCompZeroPress1h27( int inx,
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho+c3o1*( VeloXpur        )+c9o2*( vx1        )*( vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirW])[kw]= feq - c2o27 * drho;
+         (D.f[W])[kw]= feq - c2o27 * drho;
       }
 
       q = q_dirW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho+c3o1*(-VeloXpur        )+c9o2*(-vx1        )*(-vx1        ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirE])[ke]= feq - c2o27 * drho;
+         (D.f[E])[ke]= feq - c2o27 * drho;
       }
 
       q = q_dirN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho+c3o1*(    VeloYpur     )+c9o2*(     vx2    )*(     vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirS])[ks]= feq - c2o27 * drho;
+         (D.f[S])[ks]= feq - c2o27 * drho;
       }
 
       q = q_dirS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho+c3o1*(   -VeloYpur     )+c9o2*(    -vx2    )*(    -vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirN])[kn]= feq - c2o27 * drho;
+         (D.f[N])[kn]= feq - c2o27 * drho;
       }
 
       q = q_dirT[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirB])[kb]= feq - c2o27 * drho;
+         (D.f[B])[kb]= feq - c2o27 * drho;
       }
 
       q = q_dirB[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirT])[kt]= feq - c2o27 * drho;
+         (D.f[T])[kt]= feq - c2o27 * drho;
       }
 
       q = q_dirNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho+c3o1*( VeloXpur+VeloYpur    )+c9o2*( vx1+vx2    )*( vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSW])[ksw]= feq - c1o54 * drho;
+         (D.f[SW])[ksw]= feq - c1o54 * drho;
       }
 
       q = q_dirSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho+c3o1*(-VeloXpur-VeloYpur    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNE])[kne]= feq - c1o54 * drho;
+         (D.f[NE])[kne]= feq - c1o54 * drho;
       }
 
       q = q_dirSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho+c3o1*( VeloXpur-VeloYpur    )+c9o2*( vx1-vx2    )*( vx1-vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirNW])[knw]= feq - c1o54 * drho;
+         (D.f[NW])[knw]= feq - c1o54 * drho;
       }
 
       q = q_dirNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho+c3o1*(-VeloXpur+VeloYpur    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    ) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirSE])[kse]= feq - c1o54 * drho;
+         (D.f[SE])[kse]= feq - c1o54 * drho;
       }
 
       q = q_dirTE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho+c3o1*( VeloXpur    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBW])[kbw]= feq - c1o54 * drho;
+         (D.f[BW])[kbw]= feq - c1o54 * drho;
       }
 
       q = q_dirBW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho+c3o1*(-VeloXpur    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTE])[kte]= feq - c1o54 * drho;
+         (D.f[TE])[kte]= feq - c1o54 * drho;
       }
 
       q = q_dirBE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho+c3o1*( VeloXpur    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTW])[ktw]= feq - c1o54 * drho;
+         (D.f[TW])[ktw]= feq - c1o54 * drho;
       }
 
       q = q_dirTW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho+c3o1*(-VeloXpur    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBE])[kbe]= feq - c1o54 * drho;
+         (D.f[BE])[kbe]= feq - c1o54 * drho;
       }
 
       q = q_dirTN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho+c3o1*(     VeloYpur+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBS])[kbs]= feq - c1o54 * drho;
+         (D.f[BS])[kbs]= feq - c1o54 * drho;
       }
 
       q = q_dirBS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho+c3o1*(    -VeloYpur-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTN])[ktn]= feq - c1o54 * drho;
+         (D.f[TN])[ktn]= feq - c1o54 * drho;
       }
 
       q = q_dirBN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho+c3o1*(     VeloYpur-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTS])[kts]= feq - c1o54 * drho;
+         (D.f[TS])[kts]= feq - c1o54 * drho;
       }
 
       q = q_dirTS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho+c3o1*(    -VeloYpur+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBN])[kbn]= feq - c1o54 * drho;
+         (D.f[BN])[kbn]= feq - c1o54 * drho;
       }
 
       q = q_dirTNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho+c3o1*( VeloXpur+VeloYpur+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSW])[kbsw]= feq - c1o216 * drho;
+         (D.f[BSW])[kbsw]= feq - c1o216 * drho;
       }
 
       q = q_dirBSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho+c3o1*(-VeloXpur-VeloYpur-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNE])[ktne]= feq - c1o216 * drho;
+         (D.f[TNE])[ktne]= feq - c1o216 * drho;
       }
 
       q = q_dirBNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho+c3o1*( VeloXpur+VeloYpur-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSW])[ktsw]= feq - c1o216 * drho;
+         (D.f[TSW])[ktsw]= feq - c1o216 * drho;
       }
 
       q = q_dirTSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho+c3o1*(-VeloXpur-VeloYpur+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNE])[kbne]= feq - c1o216 * drho;
+         (D.f[BNE])[kbne]= feq - c1o216 * drho;
       }
 
       q = q_dirTSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho+c3o1*( VeloXpur-VeloYpur+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBNW])[kbnw]= feq - c1o216 * drho;
+         (D.f[BNW])[kbnw]= feq - c1o216 * drho;
       }
 
       q = q_dirBNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho+c3o1*(-VeloXpur+VeloYpur-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTSE])[ktse]= feq - c1o216 * drho;
+         (D.f[TSE])[ktse]= feq - c1o216 * drho;
       }
 
       q = q_dirBSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho+c3o1*( VeloXpur-VeloYpur-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirTNW])[ktnw]= feq - c1o216 * drho;
+         (D.f[TNW])[ktnw]= feq - c1o216 * drho;
       }
 
       q = q_dirTNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho+c3o1*(-VeloXpur+VeloYpur+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); 
-         (D.f[dirBSE])[kbse]= feq - c1o216 * drho;
+         (D.f[BSE])[kbse]= feq - c1o216 * drho;
       }
    }
 }
@@ -3125,63 +3125,63 @@ extern "C" __global__ void LB_BC_Vel_West_27( int nx,
       Distributions27 D;
       if (isEvenTimestep==true)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
 
       ////////////////////////////////////////////////////////////////////////////////
@@ -3300,33 +3300,33 @@ extern "C" __global__ void LB_BC_Vel_West_27( int nx,
       real        f1_E,f1_W,f1_N,f1_S,f1_T,f1_B,f1_NE,f1_SW,f1_SE,f1_NW,f1_TE,f1_BW,f1_BE,f1_TW,f1_TN,f1_BS,f1_BN,f1_TS,f1_ZERO,
          f1_TNE,f1_TSW,f1_TSE,f1_TNW,f1_BNE,f1_BSW,f1_BSE,f1_BNW;
 
-      f1_W    = (D.f[dirE   ])[k1e   ];
-      f1_E    = (D.f[dirW   ])[k1w   ];
-      f1_S    = (D.f[dirN   ])[k1n   ];
-      f1_N    = (D.f[dirS   ])[k1s   ];
-      f1_B    = (D.f[dirT   ])[k1t   ];
-      f1_T    = (D.f[dirB   ])[k1b   ];
-      f1_SW   = (D.f[dirNE  ])[k1ne  ];
-      f1_NE   = (D.f[dirSW  ])[k1sw  ];
-      f1_NW   = (D.f[dirSE  ])[k1se  ];
-      f1_SE   = (D.f[dirNW  ])[k1nw  ];
-      f1_BW   = (D.f[dirTE  ])[k1te  ];
-      f1_TE   = (D.f[dirBW  ])[k1bw  ];
-      f1_TW   = (D.f[dirBE  ])[k1be  ];
-      f1_BE   = (D.f[dirTW  ])[k1tw  ];
-      f1_BS   = (D.f[dirTN  ])[k1tn  ];
-      f1_TN   = (D.f[dirBS  ])[k1bs  ];
-      f1_TS   = (D.f[dirBN  ])[k1bn  ];
-      f1_BN   = (D.f[dirTS  ])[k1ts  ];
+      f1_W    = (D.f[E   ])[k1e   ];
+      f1_E    = (D.f[W   ])[k1w   ];
+      f1_S    = (D.f[N   ])[k1n   ];
+      f1_N    = (D.f[S   ])[k1s   ];
+      f1_B    = (D.f[T   ])[k1t   ];
+      f1_T    = (D.f[B   ])[k1b   ];
+      f1_SW   = (D.f[NE  ])[k1ne  ];
+      f1_NE   = (D.f[SW  ])[k1sw  ];
+      f1_NW   = (D.f[SE  ])[k1se  ];
+      f1_SE   = (D.f[NW  ])[k1nw  ];
+      f1_BW   = (D.f[TE  ])[k1te  ];
+      f1_TE   = (D.f[BW  ])[k1bw  ];
+      f1_TW   = (D.f[BE  ])[k1be  ];
+      f1_BE   = (D.f[TW  ])[k1tw  ];
+      f1_BS   = (D.f[TN  ])[k1tn  ];
+      f1_TN   = (D.f[BS  ])[k1bs  ];
+      f1_TS   = (D.f[BN  ])[k1bn  ];
+      f1_BN   = (D.f[TS  ])[k1ts  ];
       f1_ZERO = (D.f[dirREST])[k1zero];
-      f1_BSW  = (D.f[dirTNE ])[k1tne ];
-      f1_BNE  = (D.f[dirTSW ])[k1tsw ];
-      f1_BNW  = (D.f[dirTSE ])[k1tse ];
-      f1_BSE  = (D.f[dirTNW ])[k1tnw ];
-      f1_TSW  = (D.f[dirBNE ])[k1bne ];
-      f1_TNE  = (D.f[dirBSW ])[k1bsw ];
-      f1_TNW  = (D.f[dirBSE ])[k1bse ];
-      f1_TSE  = (D.f[dirBNW ])[k1bnw ];
+      f1_BSW  = (D.f[TNE ])[k1tne ];
+      f1_BNE  = (D.f[TSW ])[k1tsw ];
+      f1_BNW  = (D.f[TSE ])[k1tse ];
+      f1_BSE  = (D.f[TNW ])[k1tnw ];
+      f1_TSW  = (D.f[BNE ])[k1bne ];
+      f1_TNE  = (D.f[BSW ])[k1bsw ];
+      f1_TNW  = (D.f[BSE ])[k1bse ];
+      f1_TSE  = (D.f[BNW ])[k1bnw ];
 
       real drho1    =  f1_ZERO+f1_E+f1_W+f1_N+f1_S+f1_T+f1_B+f1_NE+f1_SW+f1_SE+f1_NW+f1_TE+f1_BW+f1_BE+f1_TW+f1_TN+f1_BS+f1_BN+f1_TS+
          f1_TNE+f1_TSW+f1_TSE+f1_TNW+f1_BNE+f1_BSW+f1_BSE+f1_BNW;
@@ -3343,32 +3343,32 @@ extern "C" __global__ void LB_BC_Vel_West_27( int nx,
       real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
       (D.f[dirREST])[kzero] =   c8o27* (drho-cu_sq);
-      (D.f[dirE   ])[ke   ] =   c2o27* (drho+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
-      (D.f[dirW   ])[kw   ] =   c2o27* (drho+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
-      (D.f[dirN   ])[kn   ] =   c2o27* (drho+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
-      (D.f[dirS   ])[ks   ] =   c2o27* (drho+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
-      (D.f[dirT   ])[kt   ] =   c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
-      (D.f[dirB   ])[kb   ] =   c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
-      (D.f[dirNE  ])[kne  ] =   c1o54* (drho+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
-      (D.f[dirSW  ])[ksw  ] =   c1o54* (drho+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
-      (D.f[dirSE  ])[kse  ] =   c1o54* (drho+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
-      (D.f[dirNW  ])[knw  ] =   c1o54* (drho+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
-      (D.f[dirTE  ])[kte  ] =   c1o54* (drho+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
-      (D.f[dirBW  ])[kbw  ] =   c1o54* (drho+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
-      (D.f[dirBE  ])[kbe  ] =   c1o54* (drho+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
-      (D.f[dirTW  ])[ktw  ] =   c1o54* (drho+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
-      (D.f[dirTN  ])[ktn  ] =   c1o54* (drho+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
-      (D.f[dirBS  ])[kbs  ] =   c1o54* (drho+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
-      (D.f[dirBN  ])[kbn  ] =   c1o54* (drho+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
-      (D.f[dirTS  ])[kts  ] =   c1o54* (drho+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
-      (D.f[dirTNE ])[ktne ] =   c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
-      (D.f[dirBSW ])[kbsw ] =   c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
-      (D.f[dirBNE ])[kbne ] =   c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
-      (D.f[dirTSW ])[ktsw ] =   c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
-      (D.f[dirTSE ])[ktse ] =   c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
-      (D.f[dirBNW ])[kbnw ] =   c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
-      (D.f[dirBSE ])[kbse ] =   c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
-      (D.f[dirTNW ])[ktnw ] =   c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
+      (D.f[E   ])[ke   ] =   c2o27* (drho+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
+      (D.f[W   ])[kw   ] =   c2o27* (drho+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
+      (D.f[N   ])[kn   ] =   c2o27* (drho+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
+      (D.f[S   ])[ks   ] =   c2o27* (drho+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
+      (D.f[T   ])[kt   ] =   c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
+      (D.f[B   ])[kb   ] =   c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
+      (D.f[NE  ])[kne  ] =   c1o54* (drho+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
+      (D.f[SW  ])[ksw  ] =   c1o54* (drho+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
+      (D.f[SE  ])[kse  ] =   c1o54* (drho+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
+      (D.f[NW  ])[knw  ] =   c1o54* (drho+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
+      (D.f[TE  ])[kte  ] =   c1o54* (drho+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
+      (D.f[BW  ])[kbw  ] =   c1o54* (drho+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
+      (D.f[BE  ])[kbe  ] =   c1o54* (drho+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
+      (D.f[TW  ])[ktw  ] =   c1o54* (drho+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
+      (D.f[TN  ])[ktn  ] =   c1o54* (drho+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
+      (D.f[BS  ])[kbs  ] =   c1o54* (drho+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
+      (D.f[BN  ])[kbn  ] =   c1o54* (drho+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
+      (D.f[TS  ])[kts  ] =   c1o54* (drho+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
+      (D.f[TNE ])[ktne ] =   c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
+      (D.f[BSW ])[kbsw ] =   c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
+      (D.f[BNE ])[kbne ] =   c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
+      (D.f[TSW ])[ktsw ] =   c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
+      (D.f[TSE ])[ktse ] =   c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
+      (D.f[BNW ])[kbnw ] =   c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
+      (D.f[BSE ])[kbse ] =   c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
+      (D.f[TNW ])[ktnw ] =   c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
    }
    __syncthreads();
 }          
@@ -3500,32 +3500,32 @@ extern "C" __global__ void QVelDevPlainBB27(
       ////////////////////////////////////////////////////////////////////////////////
       //! - Set local distributions
       //!
-      real f_W    = (dist.f[dirE   ])[ke   ];
-      real f_E    = (dist.f[dirW   ])[kw   ];
-      real f_S    = (dist.f[dirN   ])[kn   ];
-      real f_N    = (dist.f[dirS   ])[ks   ];
-      real f_B    = (dist.f[dirT   ])[kt   ];
-      real f_T    = (dist.f[dirB   ])[kb   ];
-      real f_SW   = (dist.f[dirNE  ])[kne  ];
-      real f_NE   = (dist.f[dirSW  ])[ksw  ];
-      real f_NW   = (dist.f[dirSE  ])[kse  ];
-      real f_SE   = (dist.f[dirNW  ])[knw  ];
-      real f_BW   = (dist.f[dirTE  ])[kte  ];
-      real f_TE   = (dist.f[dirBW  ])[kbw  ];
-      real f_TW   = (dist.f[dirBE  ])[kbe  ];
-      real f_BE   = (dist.f[dirTW  ])[ktw  ];
-      real f_BS   = (dist.f[dirTN  ])[ktn  ];
-      real f_TN   = (dist.f[dirBS  ])[kbs  ];
-      real f_TS   = (dist.f[dirBN  ])[kbn  ];
-      real f_BN   = (dist.f[dirTS  ])[kts  ];
-      real f_BSW  = (dist.f[dirTNE ])[ktne ];
-      real f_BNE  = (dist.f[dirTSW ])[ktsw ];
-      real f_BNW  = (dist.f[dirTSE ])[ktse ];
-      real f_BSE  = (dist.f[dirTNW ])[ktnw ];
-      real f_TSW  = (dist.f[dirBNE ])[kbne ];
-      real f_TNE  = (dist.f[dirBSW ])[kbsw ];
-      real f_TNW  = (dist.f[dirBSE ])[kbse ];
-      real f_TSE  = (dist.f[dirBNW ])[kbnw ];
+      real f_W    = (dist.f[E   ])[ke   ];
+      real f_E    = (dist.f[W   ])[kw   ];
+      real f_S    = (dist.f[N   ])[kn   ];
+      real f_N    = (dist.f[S   ])[ks   ];
+      real f_B    = (dist.f[T   ])[kt   ];
+      real f_T    = (dist.f[B   ])[kb   ];
+      real f_SW   = (dist.f[NE  ])[kne  ];
+      real f_NE   = (dist.f[SW  ])[ksw  ];
+      real f_NW   = (dist.f[SE  ])[kse  ];
+      real f_SE   = (dist.f[NW  ])[knw  ];
+      real f_BW   = (dist.f[TE  ])[kte  ];
+      real f_TE   = (dist.f[BW  ])[kbw  ];
+      real f_TW   = (dist.f[BE  ])[kbe  ];
+      real f_BE   = (dist.f[TW  ])[ktw  ];
+      real f_BS   = (dist.f[TN  ])[ktn  ];
+      real f_TN   = (dist.f[BS  ])[kbs  ];
+      real f_TS   = (dist.f[BN  ])[kbn  ];
+      real f_BN   = (dist.f[TS  ])[kts  ];
+      real f_BSW  = (dist.f[TNE ])[ktne ];
+      real f_BNE  = (dist.f[TSW ])[ktsw ];
+      real f_BNW  = (dist.f[TSE ])[ktse ];
+      real f_BSE  = (dist.f[TNW ])[ktnw ];
+      real f_TSW  = (dist.f[BNE ])[kbne ];
+      real f_TNE  = (dist.f[BSW ])[kbsw ];
+      real f_TNW  = (dist.f[BSE ])[kbse ];
+      real f_TSE  = (dist.f[BNW ])[kbnw ];
 
       ////////////////////////////////////////////////////////////////////////////////
       //! - change the pointer to write the results in the correct array
@@ -3535,32 +3535,32 @@ extern "C" __global__ void QVelDevPlainBB27(
       ////////////////////////////////////////////////////////////////////////////////
       //! - rewrite distributions if there is a sub-grid distance (q) in same direction
       real q;
-      q = (subgridD.q[dirE  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirW  ])[kw  ]=f_E   + c4o9  * (-VeloX);
-      q = (subgridD.q[dirW  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirE  ])[ke  ]=f_W   + c4o9  * ( VeloX);
-      q = (subgridD.q[dirN  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirS  ])[ks  ]=f_N   + c4o9  * (-VeloY);
-      q = (subgridD.q[dirS  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirN  ])[kn  ]=f_S   + c4o9  * ( VeloY);
-      q = (subgridD.q[dirT  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirB  ])[kb  ]=f_T   + c4o9  * (-VeloZ);
-      q = (subgridD.q[dirB  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirT  ])[kt  ]=f_B   + c4o9  * ( VeloZ);
-      q = (subgridD.q[dirNE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirSW ])[ksw ]=f_NE  + c1o9  * (-VeloX - VeloY);
-      q = (subgridD.q[dirSW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirNE ])[kne ]=f_SW  + c1o9  * ( VeloX + VeloY);
-      q = (subgridD.q[dirSE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirNW ])[knw ]=f_SE  + c1o9  * (-VeloX + VeloY);
-      q = (subgridD.q[dirNW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirSE ])[kse ]=f_NW  + c1o9  * ( VeloX - VeloY);
-      q = (subgridD.q[dirTE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBW ])[kbw ]=f_TE  + c1o9  * (-VeloX - VeloZ);
-      q = (subgridD.q[dirBW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTE ])[kte ]=f_BW  + c1o9  * ( VeloX + VeloZ);
-      q = (subgridD.q[dirBE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTW ])[ktw ]=f_BE  + c1o9  * (-VeloX + VeloZ);
-      q = (subgridD.q[dirTW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBE ])[kbe ]=f_TW  + c1o9  * ( VeloX - VeloZ);
-      q = (subgridD.q[dirTN ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBS ])[kbs ]=f_TN  + c1o9  * (-VeloY - VeloZ);
-      q = (subgridD.q[dirBS ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTN ])[ktn ]=f_BS  + c1o9  * ( VeloY + VeloZ);
-      q = (subgridD.q[dirBN ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTS ])[kts ]=f_BN  + c1o9  * (-VeloY + VeloZ);
-      q = (subgridD.q[dirTS ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBN ])[kbn ]=f_TS  + c1o9  * ( VeloY - VeloZ);
-      q = (subgridD.q[dirTNE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBSW])[kbsw]=f_TNE + c1o36 * (-VeloX - VeloY - VeloZ);
-      q = (subgridD.q[dirBSW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTNE])[ktne]=f_BSW + c1o36 * ( VeloX + VeloY + VeloZ);
-      q = (subgridD.q[dirBNE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTSW])[ktsw]=f_BNE + c1o36 * (-VeloX - VeloY + VeloZ);
-      q = (subgridD.q[dirTSW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBNE])[kbne]=f_TSW + c1o36 * ( VeloX + VeloY - VeloZ);
-      q = (subgridD.q[dirTSE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBNW])[kbnw]=f_TSE + c1o36 * (-VeloX + VeloY - VeloZ);
-      q = (subgridD.q[dirBNW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTSE])[ktse]=f_BNW + c1o36 * ( VeloX - VeloY + VeloZ);
-      q = (subgridD.q[dirBSE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirTNW])[ktnw]=f_BSE + c1o36 * (-VeloX + VeloY + VeloZ);
-      q = (subgridD.q[dirTNW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[dirBSE])[kbse]=f_TNW + c1o36 * ( VeloX - VeloY - VeloZ);
+      q = (subgridD.q[E  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[W  ])[kw  ]=f_E   + c4o9  * (-VeloX);
+      q = (subgridD.q[W  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[E  ])[ke  ]=f_W   + c4o9  * ( VeloX);
+      q = (subgridD.q[N  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[S  ])[ks  ]=f_N   + c4o9  * (-VeloY);
+      q = (subgridD.q[S  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[N  ])[kn  ]=f_S   + c4o9  * ( VeloY);
+      q = (subgridD.q[T  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[B  ])[kb  ]=f_T   + c4o9  * (-VeloZ);
+      q = (subgridD.q[B  ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[T  ])[kt  ]=f_B   + c4o9  * ( VeloZ);
+      q = (subgridD.q[NE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[SW ])[ksw ]=f_NE  + c1o9  * (-VeloX - VeloY);
+      q = (subgridD.q[SW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[NE ])[kne ]=f_SW  + c1o9  * ( VeloX + VeloY);
+      q = (subgridD.q[SE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[NW ])[knw ]=f_SE  + c1o9  * (-VeloX + VeloY);
+      q = (subgridD.q[NW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[SE ])[kse ]=f_NW  + c1o9  * ( VeloX - VeloY);
+      q = (subgridD.q[TE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BW ])[kbw ]=f_TE  + c1o9  * (-VeloX - VeloZ);
+      q = (subgridD.q[BW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TE ])[kte ]=f_BW  + c1o9  * ( VeloX + VeloZ);
+      q = (subgridD.q[BE ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TW ])[ktw ]=f_BE  + c1o9  * (-VeloX + VeloZ);
+      q = (subgridD.q[TW ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BE ])[kbe ]=f_TW  + c1o9  * ( VeloX - VeloZ);
+      q = (subgridD.q[TN ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BS ])[kbs ]=f_TN  + c1o9  * (-VeloY - VeloZ);
+      q = (subgridD.q[BS ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TN ])[ktn ]=f_BS  + c1o9  * ( VeloY + VeloZ);
+      q = (subgridD.q[BN ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TS ])[kts ]=f_BN  + c1o9  * (-VeloY + VeloZ);
+      q = (subgridD.q[TS ])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BN ])[kbn ]=f_TS  + c1o9  * ( VeloY - VeloZ);
+      q = (subgridD.q[TNE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BSW])[kbsw]=f_TNE + c1o36 * (-VeloX - VeloY - VeloZ);
+      q = (subgridD.q[BSW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TNE])[ktne]=f_BSW + c1o36 * ( VeloX + VeloY + VeloZ);
+      q = (subgridD.q[BNE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TSW])[ktsw]=f_BNE + c1o36 * (-VeloX - VeloY + VeloZ);
+      q = (subgridD.q[TSW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BNE])[kbne]=f_TSW + c1o36 * ( VeloX + VeloY - VeloZ);
+      q = (subgridD.q[TSE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BNW])[kbnw]=f_TSE + c1o36 * (-VeloX + VeloY - VeloZ);
+      q = (subgridD.q[BNW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TSE])[ktse]=f_BNW + c1o36 * ( VeloX - VeloY + VeloZ);
+      q = (subgridD.q[BSE])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[TNW])[ktnw]=f_BSE + c1o36 * (-VeloX + VeloY + VeloZ);
+      q = (subgridD.q[TNW])[k];   if (q>=c0o1 && q<=c1o1)    (dist.f[BSE])[kbse]=f_TNW + c1o36 * ( VeloX - VeloY - VeloZ);
    }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -3621,63 +3621,63 @@ extern "C" __global__ void QVelDevCouette27(real* vx,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -3702,32 +3702,32 @@ extern "C" __global__ void QVelDevCouette27(real* vx,
 			 *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
 			 *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
 			 *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -3761,94 +3761,94 @@ extern "C" __global__ void QVelDevCouette27(real* vx,
       ////////////////////////////////////////////////////////////////////////////////
      
       ////////////////////////////////////////////////////////////////////////////////
-      real f_W    = (D.f[dirE   ])[ke   ];
-      real f_E    = (D.f[dirW   ])[kw   ];
-      real f_S    = (D.f[dirN   ])[kn   ];
-      real f_N    = (D.f[dirS   ])[ks   ];
-      real f_B    = (D.f[dirT   ])[kt   ];
-      real f_T    = (D.f[dirB   ])[kb   ];
-      real f_SW   = (D.f[dirNE  ])[kne  ];
-      real f_NE   = (D.f[dirSW  ])[ksw  ];
-      real f_NW   = (D.f[dirSE  ])[kse  ];
-      real f_SE   = (D.f[dirNW  ])[knw  ];
-      real f_BW   = (D.f[dirTE  ])[kte  ];
-      real f_TE   = (D.f[dirBW  ])[kbw  ];
-      real f_TW   = (D.f[dirBE  ])[kbe  ];
-      real f_BE   = (D.f[dirTW  ])[ktw  ];
-      real f_BS   = (D.f[dirTN  ])[ktn  ];
-      real f_TN   = (D.f[dirBS  ])[kbs  ];
-      real f_TS   = (D.f[dirBN  ])[kbn  ];
-      real f_BN   = (D.f[dirTS  ])[kts  ];
-      real f_BSW  = (D.f[dirTNE ])[ktne ];
-      real f_BNE  = (D.f[dirTSW ])[ktsw ];
-      real f_BNW  = (D.f[dirTSE ])[ktse ];
-      real f_BSE  = (D.f[dirTNW ])[ktnw ];
-      real f_TSW  = (D.f[dirBNE ])[kbne ];
-      real f_TNE  = (D.f[dirBSW ])[kbsw ];
-      real f_TNW  = (D.f[dirBSE ])[kbse ];
-      real f_TSE  = (D.f[dirBNW ])[kbnw ];
+      real f_W    = (D.f[E   ])[ke   ];
+      real f_E    = (D.f[W   ])[kw   ];
+      real f_S    = (D.f[N   ])[kn   ];
+      real f_N    = (D.f[S   ])[ks   ];
+      real f_B    = (D.f[T   ])[kt   ];
+      real f_T    = (D.f[B   ])[kb   ];
+      real f_SW   = (D.f[NE  ])[kne  ];
+      real f_NE   = (D.f[SW  ])[ksw  ];
+      real f_NW   = (D.f[SE  ])[kse  ];
+      real f_SE   = (D.f[NW  ])[knw  ];
+      real f_BW   = (D.f[TE  ])[kte  ];
+      real f_TE   = (D.f[BW  ])[kbw  ];
+      real f_TW   = (D.f[BE  ])[kbe  ];
+      real f_BE   = (D.f[TW  ])[ktw  ];
+      real f_BS   = (D.f[TN  ])[ktn  ];
+      real f_TN   = (D.f[BS  ])[kbs  ];
+      real f_TS   = (D.f[BN  ])[kbn  ];
+      real f_BN   = (D.f[TS  ])[kts  ];
+      real f_BSW  = (D.f[TNE ])[ktne ];
+      real f_BNE  = (D.f[TSW ])[ktsw ];
+      real f_BNW  = (D.f[TSE ])[ktse ];
+      real f_BSE  = (D.f[TNW ])[ktnw ];
+      real f_TSW  = (D.f[BNE ])[kbne ];
+      real f_TNE  = (D.f[BSW ])[kbsw ];
+      real f_TNW  = (D.f[BSE ])[kbse ];
+      real f_TSE  = (D.f[BNW ])[kbnw ];
 	  ////////////////////////////////////////////////////////////////////////////////
 
 	  ////////////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
 	  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  ///////               FlowDirection Y !!!!!!!!!!                                                           ///////////////////////////////////
@@ -3868,58 +3868,58 @@ extern "C" __global__ void QVelDevCouette27(real* vx,
 	  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	  //set distributions
       real q;
-      q = q_dirE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirW  ])[kw  ]=f_E   + ms*c2o27  * VeloX;	
-      q = q_dirW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirE  ])[ke  ]=f_W   - ms*c2o27  * VeloX;	
-      q = q_dirN[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirS  ])[ks  ]=f_N   + ms*c2o27  * VeloY;	
-      q = q_dirS[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirN  ])[kn  ]=f_S   - ms*c2o27  * VeloY;	
-	  q = q_dirT[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirB  ])[kb  ]=f_T   + ms*c2o27  * VeloZ - c3o2*c2o27*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on;
-      q = q_dirB[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirT  ])[kt  ]=f_B   - ms*c2o27  * VeloZ;
-      q = q_dirNE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirSW ])[ksw ]=f_NE  + ms*c1o54  * VeloX + ms*c1o54  * VeloY;
-	  q = q_dirSW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirNE ])[kne ]=f_SW  - ms*c1o54  * VeloX - ms*c1o54  * VeloY;
-	  q = q_dirSE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirNW ])[knw ]=f_SE  + ms*c1o54  * VeloX - ms*c1o54  * VeloY;
-	  q = q_dirNW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirSE ])[kse ]=f_NW  - ms*c1o54  * VeloX + ms*c1o54  * VeloY;
-	  q = q_dirTE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirBW ])[kbw ]=f_TE  + ms*c1o54  * VeloX + ms*c1o54  * VeloZ - c3o2*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on-c1o12*kxxMyyFromfcNEQ;
-	  q = q_dirBW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirTE ])[kte ]=f_BW  - ms*c1o54  * VeloX - ms*c1o54  * VeloZ;
-	  q = q_dirBE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirTW ])[ktw ]=f_BE  + ms*c1o54  * VeloX - ms*c1o54  * VeloZ;
-	  q = q_dirTW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirBE ])[kbe ]=f_TW  - ms*c1o54  * VeloX + ms*c1o54  * VeloZ - c3o2*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on-c1o12*kxxMyyFromfcNEQ;
-	  q = q_dirTN[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirBS ])[kbs ]=f_TN  + ms*c1o54  * VeloY + ms*c1o54  * VeloZ + c3o1*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on+c1o12*kxxMyyFromfcNEQ;
-	  q = q_dirBS[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirTN ])[ktn ]=f_BS  - ms*c1o54  * VeloY - ms*c1o54  * VeloZ;
-	  q = q_dirBN[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirTS ])[kts ]=f_BN  + ms*c1o54  * VeloY - ms*c1o54  * VeloZ;
-	  q = q_dirTS[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirBN ])[kbn ]=f_TS  - ms*c1o54  * VeloY + ms*c1o54  * VeloZ + c3o1*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on+c1o12*kxxMyyFromfcNEQ;
-      q = q_dirTNE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirBSW])[kbsw]=f_TNE + ms*c1o216 * VeloX + ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on;
-      q = q_dirBSW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirTNE])[ktne]=f_BSW - ms*c1o216 * VeloX - ms*c1o216 * VeloY - ms*c1o216 * VeloZ;
-      q = q_dirBNE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirTSW])[ktsw]=f_BNE + ms*c1o216 * VeloX + ms*c1o216 * VeloY - ms*c1o216 * VeloZ;
-      q = q_dirTSW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirBNE])[kbne]=f_TSW - ms*c1o216 * VeloX - ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on;
-      q = q_dirTSE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirBNW])[kbnw]=f_TSE + ms*c1o216 * VeloX - ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on;
-      q = q_dirBNW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirTSE])[ktse]=f_BNW - ms*c1o216 * VeloX + ms*c1o216 * VeloY - ms*c1o216 * VeloZ;
-      q = q_dirBSE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirTNW])[ktnw]=f_BSE + ms*c1o216 * VeloX - ms*c1o216 * VeloY - ms*c1o216 * VeloZ;
-      q = q_dirTNW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[dirBSE])[kbse]=f_TNW - ms*c1o216 * VeloX + ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on;
-      //q = q_dirE[k];	if (q>=zero && q<=one)	(D.f[dirW  ])[kw  ]=f_E   + ms*c2over27  * VeloX;	
-   //   q = q_dirW[k];	if (q>=zero && q<=one)	(D.f[dirE  ])[ke  ]=f_W   - ms*c2over27  * VeloX;	
-   //   q = q_dirN[k];	if (q>=zero && q<=one)	(D.f[dirS  ])[ks  ]=f_N   + ms*c2over27  * VeloY;	
-   //   q = q_dirS[k];	if (q>=zero && q<=one)	(D.f[dirN  ])[kn  ]=f_S   - ms*c2over27  * VeloY;	
-	  //q = q_dirT[k];	if (q>=zero && q<=one)	(D.f[dirB  ])[kb  ]=f_T   + ms*c2over27  * VeloZ - c1o9*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
-   //   q = q_dirB[k];	if (q>=zero && q<=one)	(D.f[dirT  ])[kt  ]=f_B   - ms*c2over27  * VeloZ;
-   //   q = q_dirNE[k];	if (q>=zero && q<=one)	(D.f[dirSW ])[ksw ]=f_NE  + ms*c1over54  * VeloX + ms*c1over54  * VeloY;
-	  //q = q_dirSW[k];	if (q>=zero && q<=one)	(D.f[dirNE ])[kne ]=f_SW  - ms*c1over54  * VeloX - ms*c1over54  * VeloY;
-	  //q = q_dirSE[k];	if (q>=zero && q<=one)	(D.f[dirNW ])[knw ]=f_SE  + ms*c1over54  * VeloX - ms*c1over54  * VeloY;
-	  //q = q_dirNW[k];	if (q>=zero && q<=one)	(D.f[dirSE ])[kse ]=f_NW  - ms*c1over54  * VeloX + ms*c1over54  * VeloY;
-	  //q = q_dirTE[k];	if (q>=zero && q<=one)	(D.f[dirBW ])[kbw ]=f_TE  + ms*c1over54  * VeloX + ms*c1over54  * VeloZ - c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
-	  //q = q_dirBW[k];	if (q>=zero && q<=one)	(D.f[dirTE ])[kte ]=f_BW  - ms*c1over54  * VeloX - ms*c1over54  * VeloZ;
-	  //q = q_dirBE[k];	if (q>=zero && q<=one)	(D.f[dirTW ])[ktw ]=f_BE  + ms*c1over54  * VeloX - ms*c1over54  * VeloZ;
-	  //q = q_dirTW[k];	if (q>=zero && q<=one)	(D.f[dirBE ])[kbe ]=f_TW  - ms*c1over54  * VeloX + ms*c1over54  * VeloZ - c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
-	  //q = q_dirTN[k];	if (q>=zero && q<=one)	(D.f[dirBS ])[kbs ]=f_TN  + ms*c1over54  * VeloY + ms*c1over54  * VeloZ + c1o2*c1o9*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
-	  //q = q_dirBS[k];	if (q>=zero && q<=one)	(D.f[dirTN ])[ktn ]=f_BS  - ms*c1over54  * VeloY - ms*c1over54  * VeloZ;
-	  //q = q_dirBN[k];	if (q>=zero && q<=one)	(D.f[dirTS ])[kts ]=f_BN  + ms*c1over54  * VeloY - ms*c1over54  * VeloZ;
-	  //q = q_dirTS[k];	if (q>=zero && q<=one)	(D.f[dirBN ])[kbn ]=f_TS  - ms*c1over54  * VeloY + ms*c1over54  * VeloZ + c1o2*c1o9*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
-   //   q = q_dirTNE[k];	if (q>=zero && q<=one)	(D.f[dirBSW])[kbsw]=f_TNE + ms*c1over216 * VeloX + ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
-   //   q = q_dirBSW[k];	if (q>=zero && q<=one)	(D.f[dirTNE])[ktne]=f_BSW - ms*c1over216 * VeloX - ms*c1over216 * VeloY - ms*c1over216 * VeloZ;
-   //   q = q_dirBNE[k];	if (q>=zero && q<=one)	(D.f[dirTSW])[ktsw]=f_BNE + ms*c1over216 * VeloX + ms*c1over216 * VeloY - ms*c1over216 * VeloZ;
-   //   q = q_dirTSW[k];	if (q>=zero && q<=one)	(D.f[dirBNE])[kbne]=f_TSW - ms*c1over216 * VeloX - ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
-   //   q = q_dirTSE[k];	if (q>=zero && q<=one)	(D.f[dirBNW])[kbnw]=f_TSE + ms*c1over216 * VeloX - ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
-   //   q = q_dirBNW[k];	if (q>=zero && q<=one)	(D.f[dirTSE])[ktse]=f_BNW - ms*c1over216 * VeloX + ms*c1over216 * VeloY - ms*c1over216 * VeloZ;
-   //   q = q_dirBSE[k];	if (q>=zero && q<=one)	(D.f[dirTNW])[ktnw]=f_BSE + ms*c1over216 * VeloX - ms*c1over216 * VeloY - ms*c1over216 * VeloZ;
-   //   q = q_dirTNW[k];	if (q>=zero && q<=one)	(D.f[dirBSE])[kbse]=f_TNW - ms*c1over216 * VeloX + ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
+      q = q_dirE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[W  ])[kw  ]=f_E   + ms*c2o27  * VeloX;	
+      q = q_dirW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[E  ])[ke  ]=f_W   - ms*c2o27  * VeloX;	
+      q = q_dirN[k];	if (q>=c0o1 && q<=c1o1)	(D.f[S  ])[ks  ]=f_N   + ms*c2o27  * VeloY;	
+      q = q_dirS[k];	if (q>=c0o1 && q<=c1o1)	(D.f[N  ])[kn  ]=f_S   - ms*c2o27  * VeloY;	
+	  q = q_dirT[k];	if (q>=c0o1 && q<=c1o1)	(D.f[B  ])[kb  ]=f_T   + ms*c2o27  * VeloZ - c3o2*c2o27*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on;
+      q = q_dirB[k];	if (q>=c0o1 && q<=c1o1)	(D.f[T  ])[kt  ]=f_B   - ms*c2o27  * VeloZ;
+      q = q_dirNE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[SW ])[ksw ]=f_NE  + ms*c1o54  * VeloX + ms*c1o54  * VeloY;
+	  q = q_dirSW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[NE ])[kne ]=f_SW  - ms*c1o54  * VeloX - ms*c1o54  * VeloY;
+	  q = q_dirSE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[NW ])[knw ]=f_SE  + ms*c1o54  * VeloX - ms*c1o54  * VeloY;
+	  q = q_dirNW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[SE ])[kse ]=f_NW  - ms*c1o54  * VeloX + ms*c1o54  * VeloY;
+	  q = q_dirTE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[BW ])[kbw ]=f_TE  + ms*c1o54  * VeloX + ms*c1o54  * VeloZ - c3o2*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on-c1o12*kxxMyyFromfcNEQ;
+	  q = q_dirBW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[TE ])[kte ]=f_BW  - ms*c1o54  * VeloX - ms*c1o54  * VeloZ;
+	  q = q_dirBE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[TW ])[ktw ]=f_BE  + ms*c1o54  * VeloX - ms*c1o54  * VeloZ;
+	  q = q_dirTW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[BE ])[kbe ]=f_TW  - ms*c1o54  * VeloX + ms*c1o54  * VeloZ - c3o2*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on-c1o12*kxxMyyFromfcNEQ;
+	  q = q_dirTN[k];	if (q>=c0o1 && q<=c1o1)	(D.f[BS ])[kbs ]=f_TN  + ms*c1o54  * VeloY + ms*c1o54  * VeloZ + c3o1*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on+c1o12*kxxMyyFromfcNEQ;
+	  q = q_dirBS[k];	if (q>=c0o1 && q<=c1o1)	(D.f[TN ])[ktn ]=f_BS  - ms*c1o54  * VeloY - ms*c1o54  * VeloZ;
+	  q = q_dirBN[k];	if (q>=c0o1 && q<=c1o1)	(D.f[TS ])[kts ]=f_BN  + ms*c1o54  * VeloY - ms*c1o54  * VeloZ;
+	  q = q_dirTS[k];	if (q>=c0o1 && q<=c1o1)	(D.f[BN ])[kbn ]=f_TS  - ms*c1o54  * VeloY + ms*c1o54  * VeloZ + c3o1*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on+c1o12*kxxMyyFromfcNEQ;
+      q = q_dirTNE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[BSW])[kbsw]=f_TNE + ms*c1o216 * VeloX + ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on;
+      q = q_dirBSW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[TNE])[ktne]=f_BSW - ms*c1o216 * VeloX - ms*c1o216 * VeloY - ms*c1o216 * VeloZ;
+      q = q_dirBNE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[TSW])[ktsw]=f_BNE + ms*c1o216 * VeloX + ms*c1o216 * VeloY - ms*c1o216 * VeloZ;
+      q = q_dirTSW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[BNE])[kbne]=f_TSW - ms*c1o216 * VeloX - ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on;
+      q = q_dirTSE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[BNW])[kbnw]=f_TSE + ms*c1o216 * VeloX - ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on;
+      q = q_dirBNW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[TSE])[ktse]=f_BNW - ms*c1o216 * VeloX + ms*c1o216 * VeloY - ms*c1o216 * VeloZ;
+      q = q_dirBSE[k];	if (q>=c0o1 && q<=c1o1)	(D.f[TNW])[ktnw]=f_BSE + ms*c1o216 * VeloX - ms*c1o216 * VeloY - ms*c1o216 * VeloZ;
+      q = q_dirTNW[k];	if (q>=c0o1 && q<=c1o1)	(D.f[BSE])[kbse]=f_TNW - ms*c1o216 * VeloX + ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on;
+      //q = q_dirE[k];	if (q>=zero && q<=one)	(D.f[W  ])[kw  ]=f_E   + ms*c2over27  * VeloX;	
+   //   q = q_dirW[k];	if (q>=zero && q<=one)	(D.f[E  ])[ke  ]=f_W   - ms*c2over27  * VeloX;	
+   //   q = q_dirN[k];	if (q>=zero && q<=one)	(D.f[S  ])[ks  ]=f_N   + ms*c2over27  * VeloY;	
+   //   q = q_dirS[k];	if (q>=zero && q<=one)	(D.f[N  ])[kn  ]=f_S   - ms*c2over27  * VeloY;	
+	  //q = q_dirT[k];	if (q>=zero && q<=one)	(D.f[B  ])[kb  ]=f_T   + ms*c2over27  * VeloZ - c1o9*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
+   //   q = q_dirB[k];	if (q>=zero && q<=one)	(D.f[T  ])[kt  ]=f_B   - ms*c2over27  * VeloZ;
+   //   q = q_dirNE[k];	if (q>=zero && q<=one)	(D.f[SW ])[ksw ]=f_NE  + ms*c1over54  * VeloX + ms*c1over54  * VeloY;
+	  //q = q_dirSW[k];	if (q>=zero && q<=one)	(D.f[NE ])[kne ]=f_SW  - ms*c1over54  * VeloX - ms*c1over54  * VeloY;
+	  //q = q_dirSE[k];	if (q>=zero && q<=one)	(D.f[NW ])[knw ]=f_SE  + ms*c1over54  * VeloX - ms*c1over54  * VeloY;
+	  //q = q_dirNW[k];	if (q>=zero && q<=one)	(D.f[SE ])[kse ]=f_NW  - ms*c1over54  * VeloX + ms*c1over54  * VeloY;
+	  //q = q_dirTE[k];	if (q>=zero && q<=one)	(D.f[BW ])[kbw ]=f_TE  + ms*c1over54  * VeloX + ms*c1over54  * VeloZ - c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
+	  //q = q_dirBW[k];	if (q>=zero && q<=one)	(D.f[TE ])[kte ]=f_BW  - ms*c1over54  * VeloX - ms*c1over54  * VeloZ;
+	  //q = q_dirBE[k];	if (q>=zero && q<=one)	(D.f[TW ])[ktw ]=f_BE  + ms*c1over54  * VeloX - ms*c1over54  * VeloZ;
+	  //q = q_dirTW[k];	if (q>=zero && q<=one)	(D.f[BE ])[kbe ]=f_TW  - ms*c1over54  * VeloX + ms*c1over54  * VeloZ - c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
+	  //q = q_dirTN[k];	if (q>=zero && q<=one)	(D.f[BS ])[kbs ]=f_TN  + ms*c1over54  * VeloY + ms*c1over54  * VeloZ + c1o2*c1o9*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
+	  //q = q_dirBS[k];	if (q>=zero && q<=one)	(D.f[TN ])[ktn ]=f_BS  - ms*c1over54  * VeloY - ms*c1over54  * VeloZ;
+	  //q = q_dirBN[k];	if (q>=zero && q<=one)	(D.f[TS ])[kts ]=f_BN  + ms*c1over54  * VeloY - ms*c1over54  * VeloZ;
+	  //q = q_dirTS[k];	if (q>=zero && q<=one)	(D.f[BN ])[kbn ]=f_TS  - ms*c1over54  * VeloY + ms*c1over54  * VeloZ + c1o2*c1o9*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
+   //   q = q_dirTNE[k];	if (q>=zero && q<=one)	(D.f[BSW])[kbsw]=f_TNE + ms*c1over216 * VeloX + ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
+   //   q = q_dirBSW[k];	if (q>=zero && q<=one)	(D.f[TNE])[ktne]=f_BSW - ms*c1over216 * VeloX - ms*c1over216 * VeloY - ms*c1over216 * VeloZ;
+   //   q = q_dirBNE[k];	if (q>=zero && q<=one)	(D.f[TSW])[ktsw]=f_BNE + ms*c1over216 * VeloX + ms*c1over216 * VeloY - ms*c1over216 * VeloZ;
+   //   q = q_dirTSW[k];	if (q>=zero && q<=one)	(D.f[BNE])[kbne]=f_TSW - ms*c1over216 * VeloX - ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
+   //   q = q_dirTSE[k];	if (q>=zero && q<=one)	(D.f[BNW])[kbnw]=f_TSE + ms*c1over216 * VeloX - ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
+   //   q = q_dirBNW[k];	if (q>=zero && q<=one)	(D.f[TSE])[ktse]=f_BNW - ms*c1over216 * VeloX + ms*c1over216 * VeloY - ms*c1over216 * VeloZ;
+   //   q = q_dirBSE[k];	if (q>=zero && q<=one)	(D.f[TNW])[ktnw]=f_BSE + ms*c1over216 * VeloX - ms*c1over216 * VeloY - ms*c1over216 * VeloZ;
+   //   q = q_dirTNW[k];	if (q>=zero && q<=one)	(D.f[BSE])[kbse]=f_TNW - ms*c1over216 * VeloX + ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on;
 	  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    }
 }
@@ -3988,63 +3988,63 @@ extern "C" __global__ void QVelDev1h27( int inx,
 	Distributions27 D;
 	if (isEvenTimestep==true)
 	{
-		D.f[dirE   ] = &DD[dirE   *size_Mat];
-		D.f[dirW   ] = &DD[dirW   *size_Mat];
-		D.f[dirN   ] = &DD[dirN   *size_Mat];
-		D.f[dirS   ] = &DD[dirS   *size_Mat];
-		D.f[dirT   ] = &DD[dirT   *size_Mat];
-		D.f[dirB   ] = &DD[dirB   *size_Mat];
-		D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-		D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-		D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-		D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-		D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-		D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-		D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-		D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-		D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-		D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-		D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-		D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+		D.f[E   ] = &DD[E   *size_Mat];
+		D.f[W   ] = &DD[W   *size_Mat];
+		D.f[N   ] = &DD[N   *size_Mat];
+		D.f[S   ] = &DD[S   *size_Mat];
+		D.f[T   ] = &DD[T   *size_Mat];
+		D.f[B   ] = &DD[B   *size_Mat];
+		D.f[NE  ] = &DD[NE  *size_Mat];
+		D.f[SW  ] = &DD[SW  *size_Mat];
+		D.f[SE  ] = &DD[SE  *size_Mat];
+		D.f[NW  ] = &DD[NW  *size_Mat];
+		D.f[TE  ] = &DD[TE  *size_Mat];
+		D.f[BW  ] = &DD[BW  *size_Mat];
+		D.f[BE  ] = &DD[BE  *size_Mat];
+		D.f[TW  ] = &DD[TW  *size_Mat];
+		D.f[TN  ] = &DD[TN  *size_Mat];
+		D.f[BS  ] = &DD[BS  *size_Mat];
+		D.f[BN  ] = &DD[BN  *size_Mat];
+		D.f[TS  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-		D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-		D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-		D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-		D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-		D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+		D.f[TNE ] = &DD[TNE *size_Mat];
+		D.f[TSW ] = &DD[TSW *size_Mat];
+		D.f[TSE ] = &DD[TSE *size_Mat];
+		D.f[TNW ] = &DD[TNW *size_Mat];
+		D.f[BNE ] = &DD[BNE *size_Mat];
+		D.f[BSW ] = &DD[BSW *size_Mat];
+		D.f[BSE ] = &DD[BSE *size_Mat];
+		D.f[BNW ] = &DD[BNW *size_Mat];
 	} 
 	else
 	{
-		D.f[dirW   ] = &DD[dirE   *size_Mat];
-		D.f[dirE   ] = &DD[dirW   *size_Mat];
-		D.f[dirS   ] = &DD[dirN   *size_Mat];
-		D.f[dirN   ] = &DD[dirS   *size_Mat];
-		D.f[dirB   ] = &DD[dirT   *size_Mat];
-		D.f[dirT   ] = &DD[dirB   *size_Mat];
-		D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-		D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-		D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-		D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-		D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-		D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-		D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-		D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-		D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-		D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-		D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-		D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+		D.f[W   ] = &DD[E   *size_Mat];
+		D.f[E   ] = &DD[W   *size_Mat];
+		D.f[S   ] = &DD[N   *size_Mat];
+		D.f[N   ] = &DD[S   *size_Mat];
+		D.f[B   ] = &DD[T   *size_Mat];
+		D.f[T   ] = &DD[B   *size_Mat];
+		D.f[SW  ] = &DD[NE  *size_Mat];
+		D.f[NE  ] = &DD[SW  *size_Mat];
+		D.f[NW  ] = &DD[SE  *size_Mat];
+		D.f[SE  ] = &DD[NW  *size_Mat];
+		D.f[BW  ] = &DD[TE  *size_Mat];
+		D.f[TE  ] = &DD[BW  *size_Mat];
+		D.f[TW  ] = &DD[BE  *size_Mat];
+		D.f[BE  ] = &DD[TW  *size_Mat];
+		D.f[BS  ] = &DD[TN  *size_Mat];
+		D.f[TN  ] = &DD[BS  *size_Mat];
+		D.f[TS  ] = &DD[BN  *size_Mat];
+		D.f[BN  ] = &DD[TS  *size_Mat];
 		D.f[dirREST] = &DD[dirREST*size_Mat];
-		D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-		D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-		D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-		D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-		D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-		D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-		D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-		D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+		D.f[TNE ] = &DD[BSW *size_Mat];
+		D.f[TSW ] = &DD[BNE *size_Mat];
+		D.f[TSE ] = &DD[BNW *size_Mat];
+		D.f[TNW ] = &DD[BSE *size_Mat];
+		D.f[BNE ] = &DD[TSW *size_Mat];
+		D.f[BSW ] = &DD[TNE *size_Mat];
+		D.f[BSE ] = &DD[TNW *size_Mat];
+		D.f[BNW ] = &DD[TSE *size_Mat];
 	}
 	////////////////////////////////////////////////////////////////////////////////
 	const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -4079,32 +4079,32 @@ extern "C" __global__ void QVelDev1h27( int inx,
 			*q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
 			*q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
 			*q_dirBSE, *q_dirBNW; 
-		q_dirE   = &QQ[dirE   * numberOfBCnodes];
-		q_dirW   = &QQ[dirW   * numberOfBCnodes];
-		q_dirN   = &QQ[dirN   * numberOfBCnodes];
-		q_dirS   = &QQ[dirS   * numberOfBCnodes];
-		q_dirT   = &QQ[dirT   * numberOfBCnodes];
-		q_dirB   = &QQ[dirB   * numberOfBCnodes];
-		q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-		q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-		q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-		q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-		q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-		q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-		q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-		q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-		q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-		q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-		q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-		q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-		q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-		q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-		q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-		q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-		q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-		q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-		q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-		q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+		q_dirE   = &QQ[E   * numberOfBCnodes];
+		q_dirW   = &QQ[W   * numberOfBCnodes];
+		q_dirN   = &QQ[N   * numberOfBCnodes];
+		q_dirS   = &QQ[S   * numberOfBCnodes];
+		q_dirT   = &QQ[T   * numberOfBCnodes];
+		q_dirB   = &QQ[B   * numberOfBCnodes];
+		q_dirNE  = &QQ[NE  * numberOfBCnodes];
+		q_dirSW  = &QQ[SW  * numberOfBCnodes];
+		q_dirSE  = &QQ[SE  * numberOfBCnodes];
+		q_dirNW  = &QQ[NW  * numberOfBCnodes];
+		q_dirTE  = &QQ[TE  * numberOfBCnodes];
+		q_dirBW  = &QQ[BW  * numberOfBCnodes];
+		q_dirBE  = &QQ[BE  * numberOfBCnodes];
+		q_dirTW  = &QQ[TW  * numberOfBCnodes];
+		q_dirTN  = &QQ[TN  * numberOfBCnodes];
+		q_dirBS  = &QQ[BS  * numberOfBCnodes];
+		q_dirBN  = &QQ[BN  * numberOfBCnodes];
+		q_dirTS  = &QQ[TS  * numberOfBCnodes];
+		q_dirTNE = &QQ[TNE * numberOfBCnodes];
+		q_dirTSW = &QQ[TSW * numberOfBCnodes];
+		q_dirTSE = &QQ[TSE * numberOfBCnodes];
+		q_dirTNW = &QQ[TNW * numberOfBCnodes];
+		q_dirBNE = &QQ[BNE * numberOfBCnodes];
+		q_dirBSW = &QQ[BSW * numberOfBCnodes];
+		q_dirBSE = &QQ[BSE * numberOfBCnodes];
+		q_dirBNW = &QQ[BNW * numberOfBCnodes];
 		////////////////////////////////////////////////////////////////////////////////
 		//index
 		unsigned int KQK  = k_Q[k];
@@ -4167,32 +4167,32 @@ extern "C" __global__ void QVelDev1h27( int inx,
 		//real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
 		//	f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-		//f_W    = (D.f[dirE   ])[ke   ];
-		//f_E    = (D.f[dirW   ])[kw   ];
-		//f_S    = (D.f[dirN   ])[kn   ];
-		//f_N    = (D.f[dirS   ])[ks   ];
-		//f_B    = (D.f[dirT   ])[kt   ];
-		//f_T    = (D.f[dirB   ])[kb   ];
-		//f_SW   = (D.f[dirNE  ])[kne  ];
-		//f_NE   = (D.f[dirSW  ])[ksw  ];
-		//f_NW   = (D.f[dirSE  ])[kse  ];
-		//f_SE   = (D.f[dirNW  ])[knw  ];
-		//f_BW   = (D.f[dirTE  ])[kte  ];
-		//f_TE   = (D.f[dirBW  ])[kbw  ];
-		//f_TW   = (D.f[dirBE  ])[kbe  ];
-		//f_BE   = (D.f[dirTW  ])[ktw  ];
-		//f_BS   = (D.f[dirTN  ])[ktn  ];
-		//f_TN   = (D.f[dirBS  ])[kbs  ];
-		//f_TS   = (D.f[dirBN  ])[kbn  ];
-		//f_BN   = (D.f[dirTS  ])[kts  ];
-		//f_BSW  = (D.f[dirTNE ])[ktne ];
-		//f_BNE  = (D.f[dirTSW ])[ktsw ];
-		//f_BNW  = (D.f[dirTSE ])[ktse ];
-		//f_BSE  = (D.f[dirTNW ])[ktnw ];
-		//f_TSW  = (D.f[dirBNE ])[kbne ];
-		//f_TNE  = (D.f[dirBSW ])[kbsw ];
-		//f_TNW  = (D.f[dirBSE ])[kbse ];
-		//f_TSE  = (D.f[dirBNW ])[kbnw ];
+		//f_W    = (D.f[E   ])[ke   ];
+		//f_E    = (D.f[W   ])[kw   ];
+		//f_S    = (D.f[N   ])[kn   ];
+		//f_N    = (D.f[S   ])[ks   ];
+		//f_B    = (D.f[T   ])[kt   ];
+		//f_T    = (D.f[B   ])[kb   ];
+		//f_SW   = (D.f[NE  ])[kne  ];
+		//f_NE   = (D.f[SW  ])[ksw  ];
+		//f_NW   = (D.f[SE  ])[kse  ];
+		//f_SE   = (D.f[NW  ])[knw  ];
+		//f_BW   = (D.f[TE  ])[kte  ];
+		//f_TE   = (D.f[BW  ])[kbw  ];
+		//f_TW   = (D.f[BE  ])[kbe  ];
+		//f_BE   = (D.f[TW  ])[ktw  ];
+		//f_BS   = (D.f[TN  ])[ktn  ];
+		//f_TN   = (D.f[BS  ])[kbs  ];
+		//f_TS   = (D.f[BN  ])[kbn  ];
+		//f_BN   = (D.f[TS  ])[kts  ];
+		//f_BSW  = (D.f[TNE ])[ktne ];
+		//f_BNE  = (D.f[TSW ])[ktsw ];
+		//f_BNW  = (D.f[TSE ])[ktse ];
+		//f_BSE  = (D.f[TNW ])[ktnw ];
+		//f_TSW  = (D.f[BNE ])[kbne ];
+		//f_TNE  = (D.f[BSW ])[kbsw ];
+		//f_TNW  = (D.f[BSE ])[kbse ];
+		//f_TSE  = (D.f[BNW ])[kbnw ];
 		////////////////////////////////////////////////////////////////////////////////
 		real /*vx1, vx2,*/ vx3, drho, feq, q, cu_sq;
 		//drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -4217,63 +4217,63 @@ extern "C" __global__ void QVelDev1h27( int inx,
 		//////////////////////////////////////////////////////////////////////////
 		if (isEvenTimestep==false)
 		{
-			D.f[dirE   ] = &DD[dirE   *size_Mat];
-			D.f[dirW   ] = &DD[dirW   *size_Mat];
-			D.f[dirN   ] = &DD[dirN   *size_Mat];
-			D.f[dirS   ] = &DD[dirS   *size_Mat];
-			D.f[dirT   ] = &DD[dirT   *size_Mat];
-			D.f[dirB   ] = &DD[dirB   *size_Mat];
-			D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-			D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-			D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-			D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-			D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-			D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-			D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-			D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-			D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-			D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-			D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-			D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+			D.f[E   ] = &DD[E   *size_Mat];
+			D.f[W   ] = &DD[W   *size_Mat];
+			D.f[N   ] = &DD[N   *size_Mat];
+			D.f[S   ] = &DD[S   *size_Mat];
+			D.f[T   ] = &DD[T   *size_Mat];
+			D.f[B   ] = &DD[B   *size_Mat];
+			D.f[NE  ] = &DD[NE  *size_Mat];
+			D.f[SW  ] = &DD[SW  *size_Mat];
+			D.f[SE  ] = &DD[SE  *size_Mat];
+			D.f[NW  ] = &DD[NW  *size_Mat];
+			D.f[TE  ] = &DD[TE  *size_Mat];
+			D.f[BW  ] = &DD[BW  *size_Mat];
+			D.f[BE  ] = &DD[BE  *size_Mat];
+			D.f[TW  ] = &DD[TW  *size_Mat];
+			D.f[TN  ] = &DD[TN  *size_Mat];
+			D.f[BS  ] = &DD[BS  *size_Mat];
+			D.f[BN  ] = &DD[BN  *size_Mat];
+			D.f[TS  ] = &DD[TS  *size_Mat];
 			D.f[dirREST] = &DD[dirREST*size_Mat];
-			D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-			D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-			D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-			D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-			D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-			D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-			D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-			D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+			D.f[TNE ] = &DD[TNE *size_Mat];
+			D.f[TSW ] = &DD[TSW *size_Mat];
+			D.f[TSE ] = &DD[TSE *size_Mat];
+			D.f[TNW ] = &DD[TNW *size_Mat];
+			D.f[BNE ] = &DD[BNE *size_Mat];
+			D.f[BSW ] = &DD[BSW *size_Mat];
+			D.f[BSE ] = &DD[BSE *size_Mat];
+			D.f[BNW ] = &DD[BNW *size_Mat];
 		} 
 		else
 		{
-			D.f[dirW   ] = &DD[dirE   *size_Mat];
-			D.f[dirE   ] = &DD[dirW   *size_Mat];
-			D.f[dirS   ] = &DD[dirN   *size_Mat];
-			D.f[dirN   ] = &DD[dirS   *size_Mat];
-			D.f[dirB   ] = &DD[dirT   *size_Mat];
-			D.f[dirT   ] = &DD[dirB   *size_Mat];
-			D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-			D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-			D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-			D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-			D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-			D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-			D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-			D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-			D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-			D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-			D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-			D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+			D.f[W   ] = &DD[E   *size_Mat];
+			D.f[E   ] = &DD[W   *size_Mat];
+			D.f[S   ] = &DD[N   *size_Mat];
+			D.f[N   ] = &DD[S   *size_Mat];
+			D.f[B   ] = &DD[T   *size_Mat];
+			D.f[T   ] = &DD[B   *size_Mat];
+			D.f[SW  ] = &DD[NE  *size_Mat];
+			D.f[NE  ] = &DD[SW  *size_Mat];
+			D.f[NW  ] = &DD[SE  *size_Mat];
+			D.f[SE  ] = &DD[NW  *size_Mat];
+			D.f[BW  ] = &DD[TE  *size_Mat];
+			D.f[TE  ] = &DD[BW  *size_Mat];
+			D.f[TW  ] = &DD[BE  *size_Mat];
+			D.f[BE  ] = &DD[TW  *size_Mat];
+			D.f[BS  ] = &DD[TN  *size_Mat];
+			D.f[TN  ] = &DD[BS  *size_Mat];
+			D.f[TS  ] = &DD[BN  *size_Mat];
+			D.f[BN  ] = &DD[TS  *size_Mat];
 			D.f[dirREST] = &DD[dirREST*size_Mat];
-			D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-			D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-			D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-			D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-			D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-			D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-			D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-			D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+			D.f[TNE ] = &DD[BSW *size_Mat];
+			D.f[TSW ] = &DD[BNE *size_Mat];
+			D.f[TSE ] = &DD[BNW *size_Mat];
+			D.f[TNW ] = &DD[BSE *size_Mat];
+			D.f[BNE ] = &DD[TSW *size_Mat];
+			D.f[BSW ] = &DD[TNE *size_Mat];
+			D.f[BSE ] = &DD[TNW *size_Mat];
+			D.f[BNW ] = &DD[TSE *size_Mat];
 		}
 		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 		//Test
@@ -4286,208 +4286,208 @@ extern "C" __global__ void QVelDev1h27( int inx,
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c2over27* (drho/*+three*( vx1        )*/+c9over2*( vx1        )*( vx1        )-cu_sq); 
-		//	(D.f[dirW])[kw]=(one-q)/(one+q)*(f_E-f_W+(f_E+f_W-two*feq*om1)/(one-om1))*c1o2+(q*(f_E+f_W)-six*c2over27*( VeloX     ))/(one+q);
-		//	//(D.f[dirW])[kw]=zero;
+		//	(D.f[W])[kw]=(one-q)/(one+q)*(f_E-f_W+(f_E+f_W-two*feq*om1)/(one-om1))*c1o2+(q*(f_E+f_W)-six*c2over27*( VeloX     ))/(one+q);
+		//	//(D.f[W])[kw]=zero;
 		//}
 
 		//q = q_dirW[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c2over27* (drho/*+three*(-vx1        )*/+c9over2*(-vx1        )*(-vx1        )-cu_sq); 
-		//	(D.f[dirE])[ke]=(one-q)/(one+q)*(f_W-f_E+(f_W+f_E-two*feq*om1)/(one-om1))*c1o2+(q*(f_W+f_E)-six*c2over27*(-VeloX     ))/(one+q);
-		//	//(D.f[dirE])[ke]=zero;
+		//	(D.f[E])[ke]=(one-q)/(one+q)*(f_W-f_E+(f_W+f_E-two*feq*om1)/(one-om1))*c1o2+(q*(f_W+f_E)-six*c2over27*(-VeloX     ))/(one+q);
+		//	//(D.f[E])[ke]=zero;
 		//}
 
 		//q = q_dirN[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c2over27* (drho/*+three*(    vx2     )*/+c9over2*(     vx2    )*(     vx2    )-cu_sq); 
-		//	(D.f[dirS])[ks]=(one-q)/(one+q)*(f_N-f_S+(f_N+f_S-two*feq*om1)/(one-om1))*c1o2+(q*(f_N+f_S)-six*c2over27*( VeloY     ))/(one+q);
-		//	//(D.f[dirS])[ks]=zero;
+		//	(D.f[S])[ks]=(one-q)/(one+q)*(f_N-f_S+(f_N+f_S-two*feq*om1)/(one-om1))*c1o2+(q*(f_N+f_S)-six*c2over27*( VeloY     ))/(one+q);
+		//	//(D.f[S])[ks]=zero;
 		//}
 
 		//q = q_dirS[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c2over27* (drho/*+three*(   -vx2     )*/+c9over2*(    -vx2    )*(    -vx2    )-cu_sq); 
-		//	(D.f[dirN])[kn]=(one-q)/(one+q)*(f_S-f_N+(f_S+f_N-two*feq*om1)/(one-om1))*c1o2+(q*(f_S+f_N)-six*c2over27*(-VeloY     ))/(one+q);
-		//	//(D.f[dirN])[kn]=zero;
+		//	(D.f[N])[kn]=(one-q)/(one+q)*(f_S-f_N+(f_S+f_N-two*feq*om1)/(one-om1))*c1o2+(q*(f_S+f_N)-six*c2over27*(-VeloY     ))/(one+q);
+		//	//(D.f[N])[kn]=zero;
 		//}
 
 		//q = q_dirT[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c2over27* (drho/*+three*(         vx3)*/+c9over2*(         vx3)*(         vx3)-cu_sq); 
-		//	(D.f[dirB])[kb]=(one-q)/(one+q)*(f_T-f_B+(f_T+f_B-two*feq*om1)/(one-om1))*c1o2+(q*(f_T+f_B)-six*c2over27*( VeloZ     ))/(one+q);
-		//	//(D.f[dirB])[kb]=one;
+		//	(D.f[B])[kb]=(one-q)/(one+q)*(f_T-f_B+(f_T+f_B-two*feq*om1)/(one-om1))*c1o2+(q*(f_T+f_B)-six*c2over27*( VeloZ     ))/(one+q);
+		//	//(D.f[B])[kb]=one;
 		//}
 
 		//q = q_dirB[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c2over27* (drho/*+three*(        -vx3)*/+c9over2*(        -vx3)*(        -vx3)-cu_sq); 
-		//	(D.f[dirT])[kt]=(one-q)/(one+q)*(f_B-f_T+(f_B+f_T-two*feq*om1)/(one-om1))*c1o2+(q*(f_B+f_T)-six*c2over27*(-VeloZ     ))/(one+q);
-		//	//(D.f[dirT])[kt]=zero;
+		//	(D.f[T])[kt]=(one-q)/(one+q)*(f_B-f_T+(f_B+f_T-two*feq*om1)/(one-om1))*c1o2+(q*(f_B+f_T)-six*c2over27*(-VeloZ     ))/(one+q);
+		//	//(D.f[T])[kt]=zero;
 		//}
 
 		//q = q_dirNE[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over54* (drho/*+three*( vx1+vx2    )*/+c9over2*( vx1+vx2    )*( vx1+vx2    )-cu_sq); 
-		//	(D.f[dirSW])[ksw]=(one-q)/(one+q)*(f_NE-f_SW+(f_NE+f_SW-two*feq*om1)/(one-om1))*c1o2+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q);
-		//	//(D.f[dirSW])[ksw]=zero;
+		//	(D.f[SW])[ksw]=(one-q)/(one+q)*(f_NE-f_SW+(f_NE+f_SW-two*feq*om1)/(one-om1))*c1o2+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q);
+		//	//(D.f[SW])[ksw]=zero;
 		//}
 
 		//q = q_dirSW[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over54* (drho/*+three*(-vx1-vx2    )*/+c9over2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq); 
-		//	(D.f[dirNE])[kne]=(one-q)/(one+q)*(f_SW-f_NE+(f_SW+f_NE-two*feq*om1)/(one-om1))*c1o2+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q);
-		//	//(D.f[dirNE])[kne]=zero;
+		//	(D.f[NE])[kne]=(one-q)/(one+q)*(f_SW-f_NE+(f_SW+f_NE-two*feq*om1)/(one-om1))*c1o2+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q);
+		//	//(D.f[NE])[kne]=zero;
 		//}
 
 		//q = q_dirSE[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over54* (drho/*+three*( vx1-vx2    )*/+c9over2*( vx1-vx2    )*( vx1-vx2    )-cu_sq); 
-		//	(D.f[dirNW])[knw]=(one-q)/(one+q)*(f_SE-f_NW+(f_SE+f_NW-two*feq*om1)/(one-om1))*c1o2+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q);
-		//	//(D.f[dirNW])[knw]=zero;
+		//	(D.f[NW])[knw]=(one-q)/(one+q)*(f_SE-f_NW+(f_SE+f_NW-two*feq*om1)/(one-om1))*c1o2+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q);
+		//	//(D.f[NW])[knw]=zero;
 		//}
 
 		//q = q_dirNW[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over54* (drho/*+three*(-vx1+vx2    )*/+c9over2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq); 
-		//	(D.f[dirSE])[kse]=(one-q)/(one+q)*(f_NW-f_SE+(f_NW+f_SE-two*feq*om1)/(one-om1))*c1o2+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q);
-		//	//(D.f[dirSE])[kse]=zero;
+		//	(D.f[SE])[kse]=(one-q)/(one+q)*(f_NW-f_SE+(f_NW+f_SE-two*feq*om1)/(one-om1))*c1o2+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q);
+		//	//(D.f[SE])[kse]=zero;
 		//}
 
 		//q = q_dirTE[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over54* (drho/*+three*( vx1    +vx3)*/+c9over2*( vx1    +vx3)*( vx1    +vx3)-cu_sq); 
-		//	(D.f[dirBW])[kbw]=(one-q)/(one+q)*(f_TE-f_BW+(f_TE+f_BW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q);
-		//	//(D.f[dirBW])[kbw]=zero;
+		//	(D.f[BW])[kbw]=(one-q)/(one+q)*(f_TE-f_BW+(f_TE+f_BW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q);
+		//	//(D.f[BW])[kbw]=zero;
 		//}
 
 		//q = q_dirBW[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over54* (drho/*+three*(-vx1    -vx3)*/+c9over2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq); 
-		//	(D.f[dirTE])[kte]=(one-q)/(one+q)*(f_BW-f_TE+(f_BW+f_TE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q);
-		//	//(D.f[dirTE])[kte]=zero;
+		//	(D.f[TE])[kte]=(one-q)/(one+q)*(f_BW-f_TE+(f_BW+f_TE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q);
+		//	//(D.f[TE])[kte]=zero;
 		//}
 
 		//q = q_dirBE[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over54* (drho/*+three*( vx1    -vx3)*/+c9over2*( vx1    -vx3)*( vx1    -vx3)-cu_sq); 
-		//	(D.f[dirTW])[ktw]=(one-q)/(one+q)*(f_BE-f_TW+(f_BE+f_TW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q);
-		//	//(D.f[dirTW])[ktw]=zero;
+		//	(D.f[TW])[ktw]=(one-q)/(one+q)*(f_BE-f_TW+(f_BE+f_TW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q);
+		//	//(D.f[TW])[ktw]=zero;
 		//}
 
 		//q = q_dirTW[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over54* (drho/*+three*(-vx1    +vx3)*/+c9over2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq); 
-		//	(D.f[dirBE])[kbe]=(one-q)/(one+q)*(f_TW-f_BE+(f_TW+f_BE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q);
-		//	//(D.f[dirBE])[kbe]=zero;
+		//	(D.f[BE])[kbe]=(one-q)/(one+q)*(f_TW-f_BE+(f_TW+f_BE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q);
+		//	//(D.f[BE])[kbe]=zero;
 		//}
 
 		//q = q_dirTN[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over54* (drho/*+three*(     vx2+vx3)*/+c9over2*(     vx2+vx3)*(     vx2+vx3)-cu_sq); 
-		//	(D.f[dirBS])[kbs]=(one-q)/(one+q)*(f_TN-f_BS+(f_TN+f_BS-two*feq*om1)/(one-om1))*c1o2+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q);
-		//	//(D.f[dirBS])[kbs]=zero;
+		//	(D.f[BS])[kbs]=(one-q)/(one+q)*(f_TN-f_BS+(f_TN+f_BS-two*feq*om1)/(one-om1))*c1o2+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q);
+		//	//(D.f[BS])[kbs]=zero;
 		//}
 
 		//q = q_dirBS[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over54* (drho/*+three*(    -vx2-vx3)*/+c9over2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq); 
-		//	(D.f[dirTN])[ktn]=(one-q)/(one+q)*(f_BS-f_TN+(f_BS+f_TN-two*feq*om1)/(one-om1))*c1o2+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q);
-		//	//(D.f[dirTN])[ktn]=zero;
+		//	(D.f[TN])[ktn]=(one-q)/(one+q)*(f_BS-f_TN+(f_BS+f_TN-two*feq*om1)/(one-om1))*c1o2+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q);
+		//	//(D.f[TN])[ktn]=zero;
 		//}
 
 		//q = q_dirBN[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over54* (drho/*+three*(     vx2-vx3)*/+c9over2*(     vx2-vx3)*(     vx2-vx3)-cu_sq); 
-		//	(D.f[dirTS])[kts]=(one-q)/(one+q)*(f_BN-f_TS+(f_BN+f_TS-two*feq*om1)/(one-om1))*c1o2+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q);
-		//	//(D.f[dirTS])[kts]=zero;
+		//	(D.f[TS])[kts]=(one-q)/(one+q)*(f_BN-f_TS+(f_BN+f_TS-two*feq*om1)/(one-om1))*c1o2+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q);
+		//	//(D.f[TS])[kts]=zero;
 		//}
 
 		//q = q_dirTS[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over54* (drho/*+three*(    -vx2+vx3)*/+c9over2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq); 
-		//	(D.f[dirBN])[kbn]=(one-q)/(one+q)*(f_TS-f_BN+(f_TS+f_BN-two*feq*om1)/(one-om1))*c1o2+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q);
-		//	//(D.f[dirBN])[kbn]=zero;
+		//	(D.f[BN])[kbn]=(one-q)/(one+q)*(f_TS-f_BN+(f_TS+f_BN-two*feq*om1)/(one-om1))*c1o2+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q);
+		//	//(D.f[BN])[kbn]=zero;
 		//}
 
 		//q = q_dirTNE[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over216*(drho/*+three*( vx1+vx2+vx3)*/+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); 
-		//	(D.f[dirBSW])[kbsw]=(one-q)/(one+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q);
-		//	//(D.f[dirBSW])[kbsw]=zero;
+		//	(D.f[BSW])[kbsw]=(one-q)/(one+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q);
+		//	//(D.f[BSW])[kbsw]=zero;
 		//}
 
 		//q = q_dirBSW[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over216*(drho/*+three*(-vx1-vx2-vx3)*/+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); 
-		//	(D.f[dirTNE])[ktne]=(one-q)/(one+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q);
-		//	//(D.f[dirTNE])[ktne]=zero;
+		//	(D.f[TNE])[ktne]=(one-q)/(one+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q);
+		//	//(D.f[TNE])[ktne]=zero;
 		//}
 
 		//q = q_dirBNE[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over216*(drho/*+three*( vx1+vx2-vx3)*/+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); 
-		//	(D.f[dirTSW])[ktsw]=(one-q)/(one+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q);
-		//	//(D.f[dirTSW])[ktsw]=zero;
+		//	(D.f[TSW])[ktsw]=(one-q)/(one+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q);
+		//	//(D.f[TSW])[ktsw]=zero;
 		//}
 
 		//q = q_dirTSW[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over216*(drho/*+three*(-vx1-vx2+vx3)*/+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); 
-		//	(D.f[dirBNE])[kbne]=(one-q)/(one+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q);
-		//	//(D.f[dirBNE])[kbne]=zero;
+		//	(D.f[BNE])[kbne]=(one-q)/(one+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q);
+		//	//(D.f[BNE])[kbne]=zero;
 		//}
 
 		//q = q_dirTSE[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over216*(drho/*+three*( vx1-vx2+vx3)*/+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); 
-		//	(D.f[dirBNW])[kbnw]=(one-q)/(one+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q);
-		//	//(D.f[dirBNW])[kbnw]=zero;
+		//	(D.f[BNW])[kbnw]=(one-q)/(one+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q);
+		//	//(D.f[BNW])[kbnw]=zero;
 		//}
 
 		//q = q_dirBNW[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over216*(drho/*+three*(-vx1+vx2-vx3)*/+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); 
-		//	(D.f[dirTSE])[ktse]=(one-q)/(one+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q);
-		//	//(D.f[dirTSE])[ktse]=zero;
+		//	(D.f[TSE])[ktse]=(one-q)/(one+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q);
+		//	//(D.f[TSE])[ktse]=zero;
 		//}
 
 		//q = q_dirBSE[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over216*(drho/*+three*( vx1-vx2-vx3)*/+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); 
-		//	(D.f[dirTNW])[ktnw]=(one-q)/(one+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q);
-		//	//(D.f[dirTNW])[ktnw]=zero;
+		//	(D.f[TNW])[ktnw]=(one-q)/(one+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q);
+		//	//(D.f[TNW])[ktnw]=zero;
 		//}
 
 		//q = q_dirTNW[k];
 		//if (q>=zero && q<=one)
 		//{
 		//	feq=c1over216*(drho/*+three*(-vx1+vx2+vx3)*/+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); 
-		//	(D.f[dirBSE])[kbse]=(one-q)/(one+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q);
-		//	//(D.f[dirBSE])[kbse]=zero;
+		//	(D.f[BSE])[kbse]=(one-q)/(one+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q);
+		//	//(D.f[BSE])[kbse]=zero;
 		//}
 
 		///////// equilibrium BC
@@ -4500,208 +4500,208 @@ extern "C" __global__ void QVelDev1h27( int inx,
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c2o27* (drho+c3o1*( VeloXpur        )+c9o2*( VeloX        )*( VeloX        )-cu_sq); 
-			(D.f[dirW])[kw]=feq;
-			//(D.f[dirW])[kw]=zero;
+			(D.f[W])[kw]=feq;
+			//(D.f[W])[kw]=zero;
 		}
 
 		q = q_dirW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c2o27* (drho+c3o1*(-VeloXpur        )+c9o2*(-VeloX        )*(-VeloX        )-cu_sq); 
-			(D.f[dirE])[ke]=feq;
-			//(D.f[dirE])[ke]=zero;
+			(D.f[E])[ke]=feq;
+			//(D.f[E])[ke]=zero;
 		}
 
 		q = q_dirN[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c2o27* (drho+c3o1*(    VeloYpur     )+c9o2*(     VeloY    )*(     VeloY    )-cu_sq); 
-			(D.f[dirS])[ks]=feq;
-			//(D.f[dirS])[ks]=zero;
+			(D.f[S])[ks]=feq;
+			//(D.f[S])[ks]=zero;
 		}
 
 		q = q_dirS[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c2o27* (drho+c3o1*(   -VeloYpur     )+c9o2*(    -VeloY    )*(    -VeloY    )-cu_sq); 
-			(D.f[dirN])[kn]=feq;
-			//(D.f[dirN])[kn]=zero;
+			(D.f[N])[kn]=feq;
+			//(D.f[N])[kn]=zero;
 		}
 
 		q = q_dirT[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq); 
-			(D.f[dirB])[kb]=feq;
-			//(D.f[dirB])[kb]=one;
+			(D.f[B])[kb]=feq;
+			//(D.f[B])[kb]=one;
 		}
 
 		q = q_dirB[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq); 
-			(D.f[dirT])[kt]=feq;
-			//(D.f[dirT])[kt]=zero;
+			(D.f[T])[kt]=feq;
+			//(D.f[T])[kt]=zero;
 		}
 
 		q = q_dirNE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c3o1*( VeloXpur+VeloYpur    )+c9o2*( VeloX+VeloY    )*( VeloX+VeloY    )-cu_sq); 
-			(D.f[dirSW])[ksw]=feq;
-			//(D.f[dirSW])[ksw]=zero;
+			(D.f[SW])[ksw]=feq;
+			//(D.f[SW])[ksw]=zero;
 		}
 
 		q = q_dirSW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c3o1*(-VeloXpur-VeloYpur    )+c9o2*(-VeloX-VeloY    )*(-VeloX-VeloY    )-cu_sq); 
-			(D.f[dirNE])[kne]=feq;
-			//(D.f[dirNE])[kne]=zero;
+			(D.f[NE])[kne]=feq;
+			//(D.f[NE])[kne]=zero;
 		}
 
 		q = q_dirSE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c3o1*( VeloXpur-VeloYpur    )+c9o2*( VeloX-VeloY    )*( VeloX-VeloY    )-cu_sq); 
-			(D.f[dirNW])[knw]=feq;
-			//(D.f[dirNW])[knw]=zero;
+			(D.f[NW])[knw]=feq;
+			//(D.f[NW])[knw]=zero;
 		}
 
 		q = q_dirNW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c3o1*(-VeloXpur+VeloYpur    )+c9o2*(-VeloX+VeloY    )*(-VeloX+VeloY    )-cu_sq); 
-			(D.f[dirSE])[kse]=feq;
-			//(D.f[dirSE])[kse]=zero;
+			(D.f[SE])[kse]=feq;
+			//(D.f[SE])[kse]=zero;
 		}
 
 		q = q_dirTE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c3o1*( VeloXpur    +vx3)+c9o2*( VeloX    +vx3)*( VeloX    +vx3)-cu_sq); 
-			(D.f[dirBW])[kbw]=feq;
-			//(D.f[dirBW])[kbw]=zero;
+			(D.f[BW])[kbw]=feq;
+			//(D.f[BW])[kbw]=zero;
 		}
 
 		q = q_dirBW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c3o1*(-VeloXpur    -vx3)+c9o2*(-VeloX    -vx3)*(-VeloX    -vx3)-cu_sq); 
-			(D.f[dirTE])[kte]=feq;
-			//(D.f[dirTE])[kte]=zero;
+			(D.f[TE])[kte]=feq;
+			//(D.f[TE])[kte]=zero;
 		}
 
 		q = q_dirBE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c3o1*( VeloXpur    -vx3)+c9o2*( VeloX    -vx3)*( VeloX    -vx3)-cu_sq); 
-			(D.f[dirTW])[ktw]=feq;
-			//(D.f[dirTW])[ktw]=zero;
+			(D.f[TW])[ktw]=feq;
+			//(D.f[TW])[ktw]=zero;
 		}
 
 		q = q_dirTW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c3o1*(-VeloXpur    +vx3)+c9o2*(-VeloX    +vx3)*(-VeloX    +vx3)-cu_sq); 
-			(D.f[dirBE])[kbe]=feq;
-			//(D.f[dirBE])[kbe]=zero;
+			(D.f[BE])[kbe]=feq;
+			//(D.f[BE])[kbe]=zero;
 		}
 
 		q = q_dirTN[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c3o1*(     VeloYpur+vx3)+c9o2*(     VeloY+vx3)*(     VeloY+vx3)-cu_sq); 
-			(D.f[dirBS])[kbs]=feq;
-			//(D.f[dirBS])[kbs]=zero;
+			(D.f[BS])[kbs]=feq;
+			//(D.f[BS])[kbs]=zero;
 		}
 
 		q = q_dirBS[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c3o1*(    -VeloYpur-vx3)+c9o2*(    -VeloY-vx3)*(    -VeloY-vx3)-cu_sq); 
-			(D.f[dirTN])[ktn]=feq;
-			//(D.f[dirTN])[ktn]=zero;
+			(D.f[TN])[ktn]=feq;
+			//(D.f[TN])[ktn]=zero;
 		}
 
 		q = q_dirBN[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c3o1*(     VeloYpur-vx3)+c9o2*(     VeloY-vx3)*(     VeloY-vx3)-cu_sq); 
-			(D.f[dirTS])[kts]=feq;
-			//(D.f[dirTS])[kts]=zero;
+			(D.f[TS])[kts]=feq;
+			//(D.f[TS])[kts]=zero;
 		}
 
 		q = q_dirTS[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o54* (drho+c3o1*(    -VeloYpur+vx3)+c9o2*(    -VeloY+vx3)*(    -VeloY+vx3)-cu_sq); 
-			(D.f[dirBN])[kbn]=feq;
-			//(D.f[dirBN])[kbn]=zero;
+			(D.f[BN])[kbn]=feq;
+			//(D.f[BN])[kbn]=zero;
 		}
 
 		q = q_dirTNE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c3o1*( VeloXpur+VeloYpur+vx3)+c9o2*( VeloX+VeloY+vx3)*( VeloX+VeloY+vx3)-cu_sq); 
-			(D.f[dirBSW])[kbsw]=feq;
-			//(D.f[dirBSW])[kbsw]=zero;
+			(D.f[BSW])[kbsw]=feq;
+			//(D.f[BSW])[kbsw]=zero;
 		}
 
 		q = q_dirBSW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c3o1*(-VeloXpur-VeloYpur-vx3)+c9o2*(-VeloX-VeloY-vx3)*(-VeloX-VeloY-vx3)-cu_sq); 
-			(D.f[dirTNE])[ktne]=feq;
-			//(D.f[dirTNE])[ktne]=zero;
+			(D.f[TNE])[ktne]=feq;
+			//(D.f[TNE])[ktne]=zero;
 		}
 
 		q = q_dirBNE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c3o1*( VeloXpur+VeloYpur-vx3)+c9o2*( VeloX+VeloY-vx3)*( VeloX+VeloY-vx3)-cu_sq); 
-			(D.f[dirTSW])[ktsw]=feq;
-			//(D.f[dirTSW])[ktsw]=zero;
+			(D.f[TSW])[ktsw]=feq;
+			//(D.f[TSW])[ktsw]=zero;
 		}
 
 		q = q_dirTSW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c3o1*(-VeloXpur-VeloYpur+vx3)+c9o2*(-VeloX-VeloY+vx3)*(-VeloX-VeloY+vx3)-cu_sq); 
-			(D.f[dirBNE])[kbne]=feq;
-			//(D.f[dirBNE])[kbne]=zero;
+			(D.f[BNE])[kbne]=feq;
+			//(D.f[BNE])[kbne]=zero;
 		}
 
 		q = q_dirTSE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c3o1*( VeloXpur-VeloYpur+vx3)+c9o2*( VeloX-VeloY+vx3)*( VeloX-VeloY+vx3)-cu_sq); 
-			(D.f[dirBNW])[kbnw]=feq;
-			//(D.f[dirBNW])[kbnw]=zero;
+			(D.f[BNW])[kbnw]=feq;
+			//(D.f[BNW])[kbnw]=zero;
 		}
 
 		q = q_dirBNW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c3o1*(-VeloXpur+VeloYpur-vx3)+c9o2*(-VeloX+VeloY-vx3)*(-VeloX+VeloY-vx3)-cu_sq); 
-			(D.f[dirTSE])[ktse]=feq;
-			//(D.f[dirTSE])[ktse]=zero;
+			(D.f[TSE])[ktse]=feq;
+			//(D.f[TSE])[ktse]=zero;
 		}
 
 		q = q_dirBSE[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c3o1*( VeloXpur-VeloYpur-vx3)+c9o2*( VeloX-VeloY-vx3)*( VeloX-VeloY-vx3)-cu_sq); 
-			(D.f[dirTNW])[ktnw]=feq;
-			//(D.f[dirTNW])[ktnw]=zero;
+			(D.f[TNW])[ktnw]=feq;
+			//(D.f[TNW])[ktnw]=zero;
 		}
 
 		q = q_dirTNW[k];
 		if (q>=c0o1 && q<=c1o1)
 		{
 			feq=c1o216*(drho+c3o1*(-VeloXpur+VeloYpur+vx3)+c9o2*(-VeloX+VeloY+vx3)*(-VeloX+VeloY+vx3)-cu_sq); 
-			(D.f[dirBSE])[kbse]=feq;
-			//(D.f[dirBSE])[kbse]=zero;
+			(D.f[BSE])[kbse]=feq;
+			//(D.f[BSE])[kbse]=zero;
 		}
 	
 	}
@@ -4837,32 +4837,32 @@ extern "C" __global__ void QVelDeviceComp27(
       ////////////////////////////////////////////////////////////////////////////////
       //! - Set local distributions
       //!
-      real f_W    = (dist.f[dirE   ])[ke   ];
-      real f_E    = (dist.f[dirW   ])[kw   ];
-      real f_S    = (dist.f[dirN   ])[kn   ];
-      real f_N    = (dist.f[dirS   ])[ks   ];
-      real f_B    = (dist.f[dirT   ])[kt   ];
-      real f_T    = (dist.f[dirB   ])[kb   ];
-      real f_SW   = (dist.f[dirNE  ])[kne  ];
-      real f_NE   = (dist.f[dirSW  ])[ksw  ];
-      real f_NW   = (dist.f[dirSE  ])[kse  ];
-      real f_SE   = (dist.f[dirNW  ])[knw  ];
-      real f_BW   = (dist.f[dirTE  ])[kte  ];
-      real f_TE   = (dist.f[dirBW  ])[kbw  ];
-      real f_TW   = (dist.f[dirBE  ])[kbe  ];
-      real f_BE   = (dist.f[dirTW  ])[ktw  ];
-      real f_BS   = (dist.f[dirTN  ])[ktn  ];
-      real f_TN   = (dist.f[dirBS  ])[kbs  ];
-      real f_TS   = (dist.f[dirBN  ])[kbn  ];
-      real f_BN   = (dist.f[dirTS  ])[kts  ];
-      real f_BSW  = (dist.f[dirTNE ])[ktne ];
-      real f_BNE  = (dist.f[dirTSW ])[ktsw ];
-      real f_BNW  = (dist.f[dirTSE ])[ktse ];
-      real f_BSE  = (dist.f[dirTNW ])[ktnw ];
-      real f_TSW  = (dist.f[dirBNE ])[kbne ];
-      real f_TNE  = (dist.f[dirBSW ])[kbsw ];
-      real f_TNW  = (dist.f[dirBSE ])[kbse ];
-      real f_TSE  = (dist.f[dirBNW ])[kbnw ];
+      real f_W    = (dist.f[E   ])[ke   ];
+      real f_E    = (dist.f[W   ])[kw   ];
+      real f_S    = (dist.f[N   ])[kn   ];
+      real f_N    = (dist.f[S   ])[ks   ];
+      real f_B    = (dist.f[T   ])[kt   ];
+      real f_T    = (dist.f[B   ])[kb   ];
+      real f_SW   = (dist.f[NE  ])[kne  ];
+      real f_NE   = (dist.f[SW  ])[ksw  ];
+      real f_NW   = (dist.f[SE  ])[kse  ];
+      real f_SE   = (dist.f[NW  ])[knw  ];
+      real f_BW   = (dist.f[TE  ])[kte  ];
+      real f_TE   = (dist.f[BW  ])[kbw  ];
+      real f_TW   = (dist.f[BE  ])[kbe  ];
+      real f_BE   = (dist.f[TW  ])[ktw  ];
+      real f_BS   = (dist.f[TN  ])[ktn  ];
+      real f_TN   = (dist.f[BS  ])[kbs  ];
+      real f_TS   = (dist.f[BN  ])[kbn  ];
+      real f_BN   = (dist.f[TS  ])[kts  ];
+      real f_BSW  = (dist.f[TNE ])[ktne ];
+      real f_BNE  = (dist.f[TSW ])[ktsw ];
+      real f_BNW  = (dist.f[TSE ])[ktse ];
+      real f_BSE  = (dist.f[TNW ])[ktnw ];
+      real f_TSW  = (dist.f[BNE ])[kbne ];
+      real f_TNE  = (dist.f[BSW ])[kbsw ];
+      real f_TNW  = (dist.f[BSE ])[kbse ];
+      real f_TSE  = (dist.f[BNW ])[kbnw ];
 
       ////////////////////////////////////////////////////////////////////////////////
       //! - Calculate macroscopic quantities
@@ -4894,238 +4894,238 @@ extern "C" __global__ void QVelDeviceComp27(
       //! - Update distributions with subgrid distance (q) between zero and one
       //!
       real feq, q, velocityLB, velocityBC;
-      q = (subgridD.q[dirE])[k];
+      q = (subgridD.q[E])[k];
       if (q>=c0o1 && q<=c1o1) // only update distribution for q between zero and one
       {
          velocityLB = vx1;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
          velocityBC = VeloX;
-         (dist.f[dirW])[kw] = getInterpolatedDistributionForVeloBC(q, f_E, f_W, feq, omega, velocityBC, c2o27);
+         (dist.f[W])[kw] = getInterpolatedDistributionForVeloBC(q, f_E, f_W, feq, omega, velocityBC, c2o27);
       }
 
-      q = (subgridD.q[dirW])[k];
+      q = (subgridD.q[W])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
          velocityBC = -VeloX;
-         (dist.f[dirE])[ke] = getInterpolatedDistributionForVeloBC(q, f_W, f_E, feq, omega, velocityBC, c2o27);
+         (dist.f[E])[ke] = getInterpolatedDistributionForVeloBC(q, f_W, f_E, feq, omega, velocityBC, c2o27);
       }
 
-      q = (subgridD.q[dirN])[k];
+      q = (subgridD.q[N])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
          velocityBC = VeloY;
-         (dist.f[dirS])[ks] = getInterpolatedDistributionForVeloBC(q, f_N, f_S, feq, omega, velocityBC, c2o27);
+         (dist.f[S])[ks] = getInterpolatedDistributionForVeloBC(q, f_N, f_S, feq, omega, velocityBC, c2o27);
       }
 
-      q = (subgridD.q[dirS])[k];
+      q = (subgridD.q[S])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
          velocityBC = -VeloY;
-         (dist.f[dirN])[kn] = getInterpolatedDistributionForVeloBC(q, f_S, f_N, feq, omega, velocityBC, c2o27);
+         (dist.f[N])[kn] = getInterpolatedDistributionForVeloBC(q, f_S, f_N, feq, omega, velocityBC, c2o27);
       }
 
-      q = (subgridD.q[dirT])[k];
+      q = (subgridD.q[T])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
          velocityBC = VeloZ;
-         (dist.f[dirB])[kb] = getInterpolatedDistributionForVeloBC(q, f_T, f_B, feq, omega, velocityBC, c2o27);
+         (dist.f[B])[kb] = getInterpolatedDistributionForVeloBC(q, f_T, f_B, feq, omega, velocityBC, c2o27);
       }
 
-      q = (subgridD.q[dirB])[k];
+      q = (subgridD.q[B])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c2o27);
          velocityBC = -VeloZ;
-         (dist.f[dirT])[kt] = getInterpolatedDistributionForVeloBC(q, f_B, f_T, feq, omega, velocityBC, c2o27);
+         (dist.f[T])[kt] = getInterpolatedDistributionForVeloBC(q, f_B, f_T, feq, omega, velocityBC, c2o27);
       }
 
-      q = (subgridD.q[dirNE])[k];
+      q = (subgridD.q[NE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = VeloX + VeloY;
-         (dist.f[dirSW])[ksw] = getInterpolatedDistributionForVeloBC(q, f_NE, f_SW, feq, omega, velocityBC, c1o54);
+         (dist.f[SW])[ksw] = getInterpolatedDistributionForVeloBC(q, f_NE, f_SW, feq, omega, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirSW])[k];
+      q = (subgridD.q[SW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = -VeloX - VeloY;
-         (dist.f[dirNE])[kne] = getInterpolatedDistributionForVeloBC(q, f_SW, f_NE, feq, omega, velocityBC, c1o54);
+         (dist.f[NE])[kne] = getInterpolatedDistributionForVeloBC(q, f_SW, f_NE, feq, omega, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirSE])[k];
+      q = (subgridD.q[SE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = VeloX - VeloY;
-         (dist.f[dirNW])[knw] = getInterpolatedDistributionForVeloBC(q, f_SE, f_NW, feq, omega, velocityBC, c1o54);
+         (dist.f[NW])[knw] = getInterpolatedDistributionForVeloBC(q, f_SE, f_NW, feq, omega, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirNW])[k];
+      q = (subgridD.q[NW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx2;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = -VeloX + VeloY;
-         (dist.f[dirSE])[kse] = getInterpolatedDistributionForVeloBC(q, f_NW, f_SE, feq, omega, velocityBC, c1o54);
+         (dist.f[SE])[kse] = getInterpolatedDistributionForVeloBC(q, f_NW, f_SE, feq, omega, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirTE])[k];
+      q = (subgridD.q[TE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = VeloX + VeloZ;
-         (dist.f[dirBW])[kbw] = getInterpolatedDistributionForVeloBC(q, f_TE, f_BW, feq, omega, velocityBC, c1o54);
+         (dist.f[BW])[kbw] = getInterpolatedDistributionForVeloBC(q, f_TE, f_BW, feq, omega, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirBW])[k];
+      q = (subgridD.q[BW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = -VeloX - VeloZ;
-         (dist.f[dirTE])[kte] = getInterpolatedDistributionForVeloBC(q, f_BW, f_TE, feq, omega, velocityBC, c1o54);
+         (dist.f[TE])[kte] = getInterpolatedDistributionForVeloBC(q, f_BW, f_TE, feq, omega, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirBE])[k];
+      q = (subgridD.q[BE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = VeloX - VeloZ;
-         (dist.f[dirTW])[ktw] = getInterpolatedDistributionForVeloBC(q, f_BE, f_TW, feq, omega, velocityBC, c1o54);
+         (dist.f[TW])[ktw] = getInterpolatedDistributionForVeloBC(q, f_BE, f_TW, feq, omega, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirTW])[k];
+      q = (subgridD.q[TW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = -VeloX + VeloZ;
-         (dist.f[dirBE])[kbe] = getInterpolatedDistributionForVeloBC(q, f_TW, f_BE, feq, omega, velocityBC, c1o54);
+         (dist.f[BE])[kbe] = getInterpolatedDistributionForVeloBC(q, f_TW, f_BE, feq, omega, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirTN])[k];
+      q = (subgridD.q[TN])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = VeloY + VeloZ;
-         (dist.f[dirBS])[kbs] = getInterpolatedDistributionForVeloBC(q, f_TN, f_BS, feq, omega, velocityBC, c1o54);
+         (dist.f[BS])[kbs] = getInterpolatedDistributionForVeloBC(q, f_TN, f_BS, feq, omega, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirBS])[k];
+      q = (subgridD.q[BS])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = -VeloY - VeloZ;
-         (dist.f[dirTN])[ktn] = getInterpolatedDistributionForVeloBC(q, f_BS, f_TN, feq, omega, velocityBC, c1o54);
+         (dist.f[TN])[ktn] = getInterpolatedDistributionForVeloBC(q, f_BS, f_TN, feq, omega, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirBN])[k];
+      q = (subgridD.q[BN])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = VeloY - VeloZ;
-         (dist.f[dirTS])[kts] = getInterpolatedDistributionForVeloBC(q, f_BN, f_TS, feq, omega, velocityBC, c1o54);
+         (dist.f[TS])[kts] = getInterpolatedDistributionForVeloBC(q, f_BN, f_TS, feq, omega, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirTS])[k];
+      q = (subgridD.q[TS])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o54);
          velocityBC = -VeloY + VeloZ;
-         (dist.f[dirBN])[kbn] = getInterpolatedDistributionForVeloBC(q, f_TS, f_BN, feq, omega, velocityBC, c1o54);
+         (dist.f[BN])[kbn] = getInterpolatedDistributionForVeloBC(q, f_TS, f_BN, feq, omega, velocityBC, c1o54);
       }
 
-      q = (subgridD.q[dirTNE])[k];
+      q = (subgridD.q[TNE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = VeloX + VeloY + VeloZ;
-         (dist.f[dirBSW])[kbsw] = getInterpolatedDistributionForVeloBC(q, f_TNE, f_BSW, feq, omega, velocityBC, c1o216);
+         (dist.f[BSW])[kbsw] = getInterpolatedDistributionForVeloBC(q, f_TNE, f_BSW, feq, omega, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirBSW])[k];
+      q = (subgridD.q[BSW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = -VeloX - VeloY - VeloZ;
-         (dist.f[dirTNE])[ktne] = getInterpolatedDistributionForVeloBC(q, f_BSW, f_TNE, feq, omega, velocityBC, c1o216);
+         (dist.f[TNE])[ktne] = getInterpolatedDistributionForVeloBC(q, f_BSW, f_TNE, feq, omega, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirBNE])[k];
+      q = (subgridD.q[BNE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 + vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = VeloX + VeloY - VeloZ;
-         (dist.f[dirTSW])[ktsw] = getInterpolatedDistributionForVeloBC(q, f_BNE, f_TSW, feq, omega, velocityBC, c1o216);
+         (dist.f[TSW])[ktsw] = getInterpolatedDistributionForVeloBC(q, f_BNE, f_TSW, feq, omega, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirTSW])[k];
+      q = (subgridD.q[TSW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 - vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = -VeloX - VeloY + VeloZ;
-         (dist.f[dirBNE])[kbne] = getInterpolatedDistributionForVeloBC(q, f_TSW, f_BNE, feq, omega, velocityBC, c1o216);
+         (dist.f[BNE])[kbne] = getInterpolatedDistributionForVeloBC(q, f_TSW, f_BNE, feq, omega, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirTSE])[k];
+      q = (subgridD.q[TSE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = VeloX - VeloY + VeloZ;
-         (dist.f[dirBNW])[kbnw] = getInterpolatedDistributionForVeloBC(q, f_TSE, f_BNW, feq, omega, velocityBC, c1o216);
+         (dist.f[BNW])[kbnw] = getInterpolatedDistributionForVeloBC(q, f_TSE, f_BNW, feq, omega, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirBNW])[k];
+      q = (subgridD.q[BNW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = -VeloX + VeloY - VeloZ;
-         (dist.f[dirTSE])[ktse] = getInterpolatedDistributionForVeloBC(q, f_BNW, f_TSE, feq, omega, velocityBC, c1o216);
+         (dist.f[TSE])[ktse] = getInterpolatedDistributionForVeloBC(q, f_BNW, f_TSE, feq, omega, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirBSE])[k];
+      q = (subgridD.q[BSE])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = vx1 - vx2 - vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = VeloX - VeloY - VeloZ;
-         (dist.f[dirTNW])[ktnw] = getInterpolatedDistributionForVeloBC(q, f_BSE, f_TNW, feq, omega, velocityBC, c1o216);
+         (dist.f[TNW])[ktnw] = getInterpolatedDistributionForVeloBC(q, f_BSE, f_TNW, feq, omega, velocityBC, c1o216);
       }
 
-      q = (subgridD.q[dirTNW])[k];
+      q = (subgridD.q[TNW])[k];
       if (q>=c0o1 && q<=c1o1)
       {
          velocityLB = -vx1 + vx2 + vx3;
          feq = getEquilibriumForBC(drho, velocityLB, cu_sq, c1o216);
          velocityBC = -VeloX + VeloY + VeloZ;
-         (dist.f[dirBSE])[kbse] = getInterpolatedDistributionForVeloBC(q, f_TNW, f_BSE, feq, omega, velocityBC, c1o216);
+         (dist.f[BSE])[kbse] = getInterpolatedDistributionForVeloBC(q, f_TNW, f_BSE, feq, omega, velocityBC, c1o216);
       }
    }
 }
@@ -5189,63 +5189,63 @@ extern "C" __global__ void QVelDevice27(int inx,
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -5270,32 +5270,32 @@ extern "C" __global__ void QVelDevice27(int inx,
             *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
             *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
             *q_dirBSE, *q_dirBNW; 
-      q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      q_dirE   = &QQ[E   * numberOfBCnodes];
+      q_dirW   = &QQ[W   * numberOfBCnodes];
+      q_dirN   = &QQ[N   * numberOfBCnodes];
+      q_dirS   = &QQ[S   * numberOfBCnodes];
+      q_dirT   = &QQ[T   * numberOfBCnodes];
+      q_dirB   = &QQ[B   * numberOfBCnodes];
+      q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -5358,32 +5358,32 @@ extern "C" __global__ void QVelDevice27(int inx,
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_W    = (D.f[dirE   ])[ke   ];
-      f_E    = (D.f[dirW   ])[kw   ];
-      f_S    = (D.f[dirN   ])[kn   ];
-      f_N    = (D.f[dirS   ])[ks   ];
-      f_B    = (D.f[dirT   ])[kt   ];
-      f_T    = (D.f[dirB   ])[kb   ];
-      f_SW   = (D.f[dirNE  ])[kne  ];
-      f_NE   = (D.f[dirSW  ])[ksw  ];
-      f_NW   = (D.f[dirSE  ])[kse  ];
-      f_SE   = (D.f[dirNW  ])[knw  ];
-      f_BW   = (D.f[dirTE  ])[kte  ];
-      f_TE   = (D.f[dirBW  ])[kbw  ];
-      f_TW   = (D.f[dirBE  ])[kbe  ];
-      f_BE   = (D.f[dirTW  ])[ktw  ];
-      f_BS   = (D.f[dirTN  ])[ktn  ];
-      f_TN   = (D.f[dirBS  ])[kbs  ];
-      f_TS   = (D.f[dirBN  ])[kbn  ];
-      f_BN   = (D.f[dirTS  ])[kts  ];
-      f_BSW  = (D.f[dirTNE ])[ktne ];
-      f_BNE  = (D.f[dirTSW ])[ktsw ];
-      f_BNW  = (D.f[dirTSE ])[ktse ];
-      f_BSE  = (D.f[dirTNW ])[ktnw ];
-      f_TSW  = (D.f[dirBNE ])[kbne ];
-      f_TNE  = (D.f[dirBSW ])[kbsw ];
-      f_TNW  = (D.f[dirBSE ])[kbse ];
-      f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_W    = (D.f[E   ])[ke   ];
+      f_E    = (D.f[W   ])[kw   ];
+      f_S    = (D.f[N   ])[kn   ];
+      f_N    = (D.f[S   ])[ks   ];
+      f_B    = (D.f[T   ])[kt   ];
+      f_T    = (D.f[B   ])[kb   ];
+      f_SW   = (D.f[NE  ])[kne  ];
+      f_NE   = (D.f[SW  ])[ksw  ];
+      f_NW   = (D.f[SE  ])[kse  ];
+      f_SE   = (D.f[NW  ])[knw  ];
+      f_BW   = (D.f[TE  ])[kte  ];
+      f_TE   = (D.f[BW  ])[kbw  ];
+      f_TW   = (D.f[BE  ])[kbe  ];
+      f_BE   = (D.f[TW  ])[ktw  ];
+      f_BS   = (D.f[TN  ])[ktn  ];
+      f_TN   = (D.f[BS  ])[kbs  ];
+      f_TS   = (D.f[BN  ])[kbn  ];
+      f_BN   = (D.f[TS  ])[kts  ];
+      f_BSW  = (D.f[TNE ])[ktne ];
+      f_BNE  = (D.f[TSW ])[ktsw ];
+      f_BNW  = (D.f[TSE ])[ktse ];
+      f_BSE  = (D.f[TNW ])[ktnw ];
+      f_TSW  = (D.f[BNE ])[kbne ];
+      f_TNE  = (D.f[BSW ])[kbsw ];
+      f_TNW  = (D.f[BSE ])[kbse ];
+      f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       real vx1, vx2, vx3, drho, feq, q;
       drho   =  f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -5408,63 +5408,63 @@ extern "C" __global__ void QVelDevice27(int inx,
       //////////////////////////////////////////////////////////////////////////
       if (isEvenTimestep==false)
       {
-         D.f[dirE   ] = &DD[dirE   *size_Mat];
-         D.f[dirW   ] = &DD[dirW   *size_Mat];
-         D.f[dirN   ] = &DD[dirN   *size_Mat];
-         D.f[dirS   ] = &DD[dirS   *size_Mat];
-         D.f[dirT   ] = &DD[dirT   *size_Mat];
-         D.f[dirB   ] = &DD[dirB   *size_Mat];
-         D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-         D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-         D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-         D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-         D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-         D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-         D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-         D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-         D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-         D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-         D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-         D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+         D.f[E   ] = &DD[E   *size_Mat];
+         D.f[W   ] = &DD[W   *size_Mat];
+         D.f[N   ] = &DD[N   *size_Mat];
+         D.f[S   ] = &DD[S   *size_Mat];
+         D.f[T   ] = &DD[T   *size_Mat];
+         D.f[B   ] = &DD[B   *size_Mat];
+         D.f[NE  ] = &DD[NE  *size_Mat];
+         D.f[SW  ] = &DD[SW  *size_Mat];
+         D.f[SE  ] = &DD[SE  *size_Mat];
+         D.f[NW  ] = &DD[NW  *size_Mat];
+         D.f[TE  ] = &DD[TE  *size_Mat];
+         D.f[BW  ] = &DD[BW  *size_Mat];
+         D.f[BE  ] = &DD[BE  *size_Mat];
+         D.f[TW  ] = &DD[TW  *size_Mat];
+         D.f[TN  ] = &DD[TN  *size_Mat];
+         D.f[BS  ] = &DD[BS  *size_Mat];
+         D.f[BN  ] = &DD[BN  *size_Mat];
+         D.f[TS  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-         D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-         D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-         D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-         D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-         D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+         D.f[TNE ] = &DD[TNE *size_Mat];
+         D.f[TSW ] = &DD[TSW *size_Mat];
+         D.f[TSE ] = &DD[TSE *size_Mat];
+         D.f[TNW ] = &DD[TNW *size_Mat];
+         D.f[BNE ] = &DD[BNE *size_Mat];
+         D.f[BSW ] = &DD[BSW *size_Mat];
+         D.f[BSE ] = &DD[BSE *size_Mat];
+         D.f[BNW ] = &DD[BNW *size_Mat];
       } 
       else
       {
-         D.f[dirW   ] = &DD[dirE   *size_Mat];
-         D.f[dirE   ] = &DD[dirW   *size_Mat];
-         D.f[dirS   ] = &DD[dirN   *size_Mat];
-         D.f[dirN   ] = &DD[dirS   *size_Mat];
-         D.f[dirB   ] = &DD[dirT   *size_Mat];
-         D.f[dirT   ] = &DD[dirB   *size_Mat];
-         D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-         D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-         D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-         D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-         D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-         D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-         D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-         D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-         D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-         D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-         D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-         D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+         D.f[W   ] = &DD[E   *size_Mat];
+         D.f[E   ] = &DD[W   *size_Mat];
+         D.f[S   ] = &DD[N   *size_Mat];
+         D.f[N   ] = &DD[S   *size_Mat];
+         D.f[B   ] = &DD[T   *size_Mat];
+         D.f[T   ] = &DD[B   *size_Mat];
+         D.f[SW  ] = &DD[NE  *size_Mat];
+         D.f[NE  ] = &DD[SW  *size_Mat];
+         D.f[NW  ] = &DD[SE  *size_Mat];
+         D.f[SE  ] = &DD[NW  *size_Mat];
+         D.f[BW  ] = &DD[TE  *size_Mat];
+         D.f[TE  ] = &DD[BW  *size_Mat];
+         D.f[TW  ] = &DD[BE  *size_Mat];
+         D.f[BE  ] = &DD[TW  *size_Mat];
+         D.f[BS  ] = &DD[TN  *size_Mat];
+         D.f[TN  ] = &DD[BS  *size_Mat];
+         D.f[TS  ] = &DD[BN  *size_Mat];
+         D.f[BN  ] = &DD[TS  *size_Mat];
          D.f[dirREST] = &DD[dirREST*size_Mat];
-         D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-         D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-         D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-         D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-         D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-         D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-         D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-         D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+         D.f[TNE ] = &DD[BSW *size_Mat];
+         D.f[TSW ] = &DD[BNE *size_Mat];
+         D.f[TSE ] = &DD[BNW *size_Mat];
+         D.f[TNW ] = &DD[BSE *size_Mat];
+         D.f[BNE ] = &DD[TSW *size_Mat];
+         D.f[BSW ] = &DD[TNE *size_Mat];
+         D.f[BSE ] = &DD[TNW *size_Mat];
+         D.f[BNW ] = &DD[TSE *size_Mat];
       }
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       //Test
@@ -5477,208 +5477,208 @@ extern "C" __global__ void QVelDevice27(int inx,
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*( vx1        )*/+c9o2*( vx1        )*( vx1        )-cu_sq); 
-         (D.f[dirW])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W)-c6o1*c2o27*( VeloX     ))/(c1o1+q);
-         //(D.f[dirW])[kw]=zero;
+         (D.f[W])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W)-c6o1*c2o27*( VeloX     ))/(c1o1+q);
+         //(D.f[W])[kw]=zero;
       }
 
       q = q_dirW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(-vx1        )*/+c9o2*(-vx1        )*(-vx1        )-cu_sq); 
-         (D.f[dirE])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX     ))/(c1o1+q);
-         //(D.f[dirE])[ke]=zero;
+         (D.f[E])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX     ))/(c1o1+q);
+         //(D.f[E])[ke]=zero;
       }
 
       q = q_dirN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(    vx2     )*/+c9o2*(     vx2    )*(     vx2    )-cu_sq); 
-         (D.f[dirS])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S)-c6o1*c2o27*( VeloY     ))/(c1o1+q);
-         //(D.f[dirS])[ks]=zero;
+         (D.f[S])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S)-c6o1*c2o27*( VeloY     ))/(c1o1+q);
+         //(D.f[S])[ks]=zero;
       }
 
       q = q_dirS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(   -vx2     )*/+c9o2*(    -vx2    )*(    -vx2    )-cu_sq); 
-         (D.f[dirN])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY     ))/(c1o1+q);
-         //(D.f[dirN])[kn]=zero;
+         (D.f[N])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY     ))/(c1o1+q);
+         //(D.f[N])[kn]=zero;
       }
 
       q = q_dirT[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(         vx3)*/+c9o2*(         vx3)*(         vx3)-cu_sq); 
-         (D.f[dirB])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ     ))/(c1o1+q);
-         //(D.f[dirB])[kb]=one;
+         (D.f[B])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ     ))/(c1o1+q);
+         //(D.f[B])[kb]=one;
       }
 
       q = q_dirB[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c2o27* (drho/*+three*(        -vx3)*/+c9o2*(        -vx3)*(        -vx3)-cu_sq); 
-         (D.f[dirT])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ     ))/(c1o1+q);
-         //(D.f[dirT])[kt]=zero;
+         (D.f[T])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ     ))/(c1o1+q);
+         //(D.f[T])[kt]=zero;
       }
 
       q = q_dirNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1+vx2    )*/+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq); 
-         (D.f[dirSW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q);
-         //(D.f[dirSW])[ksw]=zero;
+         (D.f[SW])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q);
+         //(D.f[SW])[ksw]=zero;
       }
 
       q = q_dirSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1-vx2    )*/+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq); 
-         (D.f[dirNE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q);
-         //(D.f[dirNE])[kne]=zero;
+         (D.f[NE])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q);
+         //(D.f[NE])[kne]=zero;
       }
 
       q = q_dirSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1-vx2    )*/+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq); 
-         (D.f[dirNW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q);
-         //(D.f[dirNW])[knw]=zero;
+         (D.f[NW])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q);
+         //(D.f[NW])[knw]=zero;
       }
 
       q = q_dirNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1+vx2    )*/+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq); 
-         (D.f[dirSE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q);
-         //(D.f[dirSE])[kse]=zero;
+         (D.f[SE])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q);
+         //(D.f[SE])[kse]=zero;
       }
 
       q = q_dirTE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1    +vx3)*/+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq); 
-         (D.f[dirBW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q);
-         //(D.f[dirBW])[kbw]=zero;
+         (D.f[BW])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q);
+         //(D.f[BW])[kbw]=zero;
       }
 
       q = q_dirBW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1    -vx3)*/+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq); 
-         (D.f[dirTE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q);
-         //(D.f[dirTE])[kte]=zero;
+         (D.f[TE])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q);
+         //(D.f[TE])[kte]=zero;
       }
 
       q = q_dirBE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*( vx1    -vx3)*/+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq); 
-         (D.f[dirTW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q);
-         //(D.f[dirTW])[ktw]=zero;
+         (D.f[TW])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q);
+         //(D.f[TW])[ktw]=zero;
       }
 
       q = q_dirTW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(-vx1    +vx3)*/+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq); 
-         (D.f[dirBE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q);
-         //(D.f[dirBE])[kbe]=zero;
+         (D.f[BE])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q);
+         //(D.f[BE])[kbe]=zero;
       }
 
       q = q_dirTN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(     vx2+vx3)*/+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq); 
-         (D.f[dirBS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q);
-         //(D.f[dirBS])[kbs]=zero;
+         (D.f[BS])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q);
+         //(D.f[BS])[kbs]=zero;
       }
 
       q = q_dirBS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(    -vx2-vx3)*/+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq); 
-         (D.f[dirTN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q);
-         //(D.f[dirTN])[ktn]=zero;
+         (D.f[TN])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q);
+         //(D.f[TN])[ktn]=zero;
       }
 
       q = q_dirBN[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(     vx2-vx3)*/+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq); 
-         (D.f[dirTS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q);
-         //(D.f[dirTS])[kts]=zero;
+         (D.f[TS])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q);
+         //(D.f[TS])[kts]=zero;
       }
 
       q = q_dirTS[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o54* (drho/*+three*(    -vx2+vx3)*/+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq); 
-         (D.f[dirBN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q);
-         //(D.f[dirBN])[kbn]=zero;
+         (D.f[BN])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q);
+         //(D.f[BN])[kbn]=zero;
       }
 
       q = q_dirTNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); 
-         (D.f[dirBSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);
-         //(D.f[dirBSW])[kbsw]=zero;
+         (D.f[BSW])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q);
+         //(D.f[BSW])[kbsw]=zero;
       }
 
       q = q_dirBSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); 
-         (D.f[dirTNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);
-         //(D.f[dirTNE])[ktne]=zero;
+         (D.f[TNE])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q);
+         //(D.f[TNE])[ktne]=zero;
       }
 
       q = q_dirBNE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); 
-         (D.f[dirTSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);
-         //(D.f[dirTSW])[ktsw]=zero;
+         (D.f[TSW])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q);
+         //(D.f[TSW])[ktsw]=zero;
       }
 
       q = q_dirTSW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); 
-         (D.f[dirBNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);
-         //(D.f[dirBNE])[kbne]=zero;
+         (D.f[BNE])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q);
+         //(D.f[BNE])[kbne]=zero;
       }
 
       q = q_dirTSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); 
-         (D.f[dirBNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);
-         //(D.f[dirBNW])[kbnw]=zero;
+         (D.f[BNW])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q);
+         //(D.f[BNW])[kbnw]=zero;
       }
 
       q = q_dirBNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); 
-         (D.f[dirTSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);
-         //(D.f[dirTSE])[ktse]=zero;
+         (D.f[TSE])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q);
+         //(D.f[TSE])[ktse]=zero;
       }
 
       q = q_dirBSE[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); 
-         (D.f[dirTNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);
-         //(D.f[dirTNW])[ktnw]=zero;
+         (D.f[TNW])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q);
+         //(D.f[TNW])[ktnw]=zero;
       }
 
       q = q_dirTNW[k];
       if (q>=c0o1 && q<=c1o1)
       {
          feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); 
-         (D.f[dirBSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);
-         //(D.f[dirBSE])[kbse]=zero;
+         (D.f[BSE])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q);
+         //(D.f[BSE])[kbse]=zero;
       }
    }
 }
@@ -5754,63 +5754,63 @@ extern "C" __global__ void PropellerBC(unsigned int* neighborX,
         Distributions27 D;
         if (EvenOrOdd==true)
         {
-			D.f[dirE   ] = &DD[dirE   *size_Mat];
-			D.f[dirW   ] = &DD[dirW   *size_Mat];
-			D.f[dirN   ] = &DD[dirN   *size_Mat];
-			D.f[dirS   ] = &DD[dirS   *size_Mat];
-			D.f[dirT   ] = &DD[dirT   *size_Mat];
-			D.f[dirB   ] = &DD[dirB   *size_Mat];
-			D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-			D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-			D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-			D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-			D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-			D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-			D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-			D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-			D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-			D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-			D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-			D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+			D.f[E   ] = &DD[E   *size_Mat];
+			D.f[W   ] = &DD[W   *size_Mat];
+			D.f[N   ] = &DD[N   *size_Mat];
+			D.f[S   ] = &DD[S   *size_Mat];
+			D.f[T   ] = &DD[T   *size_Mat];
+			D.f[B   ] = &DD[B   *size_Mat];
+			D.f[NE  ] = &DD[NE  *size_Mat];
+			D.f[SW  ] = &DD[SW  *size_Mat];
+			D.f[SE  ] = &DD[SE  *size_Mat];
+			D.f[NW  ] = &DD[NW  *size_Mat];
+			D.f[TE  ] = &DD[TE  *size_Mat];
+			D.f[BW  ] = &DD[BW  *size_Mat];
+			D.f[BE  ] = &DD[BE  *size_Mat];
+			D.f[TW  ] = &DD[TW  *size_Mat];
+			D.f[TN  ] = &DD[TN  *size_Mat];
+			D.f[BS  ] = &DD[BS  *size_Mat];
+			D.f[BN  ] = &DD[BN  *size_Mat];
+			D.f[TS  ] = &DD[TS  *size_Mat];
 			D.f[dirREST] = &DD[dirREST*size_Mat];
-			D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-			D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-			D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-			D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-			D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-			D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-			D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-			D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+			D.f[TNE ] = &DD[TNE *size_Mat];
+			D.f[TSW ] = &DD[TSW *size_Mat];
+			D.f[TSE ] = &DD[TSE *size_Mat];
+			D.f[TNW ] = &DD[TNW *size_Mat];
+			D.f[BNE ] = &DD[BNE *size_Mat];
+			D.f[BSW ] = &DD[BSW *size_Mat];
+			D.f[BSE ] = &DD[BSE *size_Mat];
+			D.f[BNW ] = &DD[BNW *size_Mat];
         }
         else
         {
-			D.f[dirW   ] = &DD[dirE   *size_Mat];
-			D.f[dirE   ] = &DD[dirW   *size_Mat];
-			D.f[dirS   ] = &DD[dirN   *size_Mat];
-			D.f[dirN   ] = &DD[dirS   *size_Mat];
-			D.f[dirB   ] = &DD[dirT   *size_Mat];
-			D.f[dirT   ] = &DD[dirB   *size_Mat];
-			D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-			D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-			D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-			D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-			D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-			D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-			D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-			D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-			D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-			D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-			D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-			D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+			D.f[W   ] = &DD[E   *size_Mat];
+			D.f[E   ] = &DD[W   *size_Mat];
+			D.f[S   ] = &DD[N   *size_Mat];
+			D.f[N   ] = &DD[S   *size_Mat];
+			D.f[B   ] = &DD[T   *size_Mat];
+			D.f[T   ] = &DD[B   *size_Mat];
+			D.f[SW  ] = &DD[NE  *size_Mat];
+			D.f[NE  ] = &DD[SW  *size_Mat];
+			D.f[NW  ] = &DD[SE  *size_Mat];
+			D.f[SE  ] = &DD[NW  *size_Mat];
+			D.f[BW  ] = &DD[TE  *size_Mat];
+			D.f[TE  ] = &DD[BW  *size_Mat];
+			D.f[TW  ] = &DD[BE  *size_Mat];
+			D.f[BE  ] = &DD[TW  *size_Mat];
+			D.f[BS  ] = &DD[TN  *size_Mat];
+			D.f[TN  ] = &DD[BS  *size_Mat];
+			D.f[TS  ] = &DD[BN  *size_Mat];
+			D.f[BN  ] = &DD[TS  *size_Mat];
 			D.f[dirREST] = &DD[dirREST*size_Mat];
-			D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-			D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-			D.f[dirBNW ] = &DD[dirTSE *size_Mat];
-			D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-			D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-			D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-			D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-			D.f[dirTSE ] = &DD[dirBNW *size_Mat];
+			D.f[BSW ] = &DD[TNE *size_Mat];
+			D.f[BNE ] = &DD[TSW *size_Mat];
+			D.f[BNW ] = &DD[TSE *size_Mat];
+			D.f[BSE ] = &DD[TNW *size_Mat];
+			D.f[TSW ] = &DD[BNE *size_Mat];
+			D.f[TNE ] = &DD[BSW *size_Mat];
+			D.f[TNW ] = &DD[BSE *size_Mat];
+			D.f[TSE ] = &DD[BNW *size_Mat];
         }
         //////////////////////////////////////////////////////////////////////////
 		unsigned int KQK = k_Q[k];
@@ -5859,58 +5859,58 @@ extern "C" __global__ void PropellerBC(unsigned int* neighborX,
 		f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW, f_ZERO;
 
 		f_ZERO= (D.f[dirREST])[kzero];
-		f_E   = (D.f[dirE   ])[ke   ];
-		f_W   = (D.f[dirW   ])[kw   ];
-		f_N   = (D.f[dirN   ])[kn   ];
-		f_S   = (D.f[dirS   ])[ks   ];
-		f_T   = (D.f[dirT   ])[kt   ];
-		f_B   = (D.f[dirB   ])[kb   ];
-		f_NE  = (D.f[dirNE  ])[kne  ];
-		f_SW  = (D.f[dirSW  ])[ksw  ];
-		f_SE  = (D.f[dirSE  ])[kse  ];
-		f_NW  = (D.f[dirNW  ])[knw  ];
-		f_TE  = (D.f[dirTE  ])[kte  ];
-		f_BW  = (D.f[dirBW  ])[kbw  ];
-		f_BE  = (D.f[dirBE  ])[kbe  ];
-		f_TW  = (D.f[dirTW  ])[ktw  ];
-		f_TN  = (D.f[dirTN  ])[ktn  ];
-		f_BS  = (D.f[dirBS  ])[kbs  ];
-		f_BN  = (D.f[dirBN  ])[kbn  ];
-		f_TS  = (D.f[dirTS  ])[kts  ];
-		f_TNE = (D.f[dirTNE ])[ktne ];
-		f_BSW = (D.f[dirBSW ])[kbsw ];
-		f_BNE = (D.f[dirBNE ])[kbne ];
-		f_TSW = (D.f[dirTSW ])[ktsw ];
-		f_TSE = (D.f[dirTSE ])[ktse ];
-		f_BNW = (D.f[dirBNW ])[kbnw ];
-		f_BSE = (D.f[dirBSE ])[kbse ];
-		f_TNW = (D.f[dirTNW ])[ktnw ];
-		//f_W    = (D.f[dirE   ])[ke   ];
-		//f_E    = (D.f[dirW   ])[kw   ];
-		//f_S    = (D.f[dirN   ])[kn   ];
-		//f_N    = (D.f[dirS   ])[ks   ];
-		//f_B    = (D.f[dirT   ])[kt   ];
-		//f_T    = (D.f[dirB   ])[kb   ];
-		//f_SW   = (D.f[dirNE  ])[kne  ];
-		//f_NE   = (D.f[dirSW  ])[ksw  ];
-		//f_NW   = (D.f[dirSE  ])[kse  ];
-		//f_SE   = (D.f[dirNW  ])[knw  ];
-		//f_BW   = (D.f[dirTE  ])[kte  ];
-		//f_TE   = (D.f[dirBW  ])[kbw  ];
-		//f_TW   = (D.f[dirBE  ])[kbe  ];
-		//f_BE   = (D.f[dirTW  ])[ktw  ];
-		//f_BS   = (D.f[dirTN  ])[ktn  ];
-		//f_TN   = (D.f[dirBS  ])[kbs  ];
-		//f_TS   = (D.f[dirBN  ])[kbn  ];
-		//f_BN   = (D.f[dirTS  ])[kts  ];
-		//f_BSW  = (D.f[dirTNE ])[ktne ];
-		//f_TNE  = (D.f[dirBSW ])[kbsw ];
-		//f_TSW  = (D.f[dirBNE ])[kbne ];
-		//f_BNE  = (D.f[dirTSW ])[ktsw ];
-		//f_BNW  = (D.f[dirTSE ])[ktse ];
-		//f_TSE  = (D.f[dirBNW ])[kbnw ];
-		//f_TNW  = (D.f[dirBSE ])[kbse ];
-		//f_BSE  = (D.f[dirTNW ])[ktnw ];
+		f_E   = (D.f[E   ])[ke   ];
+		f_W   = (D.f[W   ])[kw   ];
+		f_N   = (D.f[N   ])[kn   ];
+		f_S   = (D.f[S   ])[ks   ];
+		f_T   = (D.f[T   ])[kt   ];
+		f_B   = (D.f[B   ])[kb   ];
+		f_NE  = (D.f[NE  ])[kne  ];
+		f_SW  = (D.f[SW  ])[ksw  ];
+		f_SE  = (D.f[SE  ])[kse  ];
+		f_NW  = (D.f[NW  ])[knw  ];
+		f_TE  = (D.f[TE  ])[kte  ];
+		f_BW  = (D.f[BW  ])[kbw  ];
+		f_BE  = (D.f[BE  ])[kbe  ];
+		f_TW  = (D.f[TW  ])[ktw  ];
+		f_TN  = (D.f[TN  ])[ktn  ];
+		f_BS  = (D.f[BS  ])[kbs  ];
+		f_BN  = (D.f[BN  ])[kbn  ];
+		f_TS  = (D.f[TS  ])[kts  ];
+		f_TNE = (D.f[TNE ])[ktne ];
+		f_BSW = (D.f[BSW ])[kbsw ];
+		f_BNE = (D.f[BNE ])[kbne ];
+		f_TSW = (D.f[TSW ])[ktsw ];
+		f_TSE = (D.f[TSE ])[ktse ];
+		f_BNW = (D.f[BNW ])[kbnw ];
+		f_BSE = (D.f[BSE ])[kbse ];
+		f_TNW = (D.f[TNW ])[ktnw ];
+		//f_W    = (D.f[E   ])[ke   ];
+		//f_E    = (D.f[W   ])[kw   ];
+		//f_S    = (D.f[N   ])[kn   ];
+		//f_N    = (D.f[S   ])[ks   ];
+		//f_B    = (D.f[T   ])[kt   ];
+		//f_T    = (D.f[B   ])[kb   ];
+		//f_SW   = (D.f[NE  ])[kne  ];
+		//f_NE   = (D.f[SW  ])[ksw  ];
+		//f_NW   = (D.f[SE  ])[kse  ];
+		//f_SE   = (D.f[NW  ])[knw  ];
+		//f_BW   = (D.f[TE  ])[kte  ];
+		//f_TE   = (D.f[BW  ])[kbw  ];
+		//f_TW   = (D.f[BE  ])[kbe  ];
+		//f_BE   = (D.f[TW  ])[ktw  ];
+		//f_BS   = (D.f[TN  ])[ktn  ];
+		//f_TN   = (D.f[BS  ])[kbs  ];
+		//f_TS   = (D.f[BN  ])[kbn  ];
+		//f_BN   = (D.f[TS  ])[kts  ];
+		//f_BSW  = (D.f[TNE ])[ktne ];
+		//f_TNE  = (D.f[BSW ])[kbsw ];
+		//f_TSW  = (D.f[BNE ])[kbne ];
+		//f_BNE  = (D.f[TSW ])[ktsw ];
+		//f_BNW  = (D.f[TSE ])[ktse ];
+		//f_TSE  = (D.f[BNW ])[kbnw ];
+		//f_TNW  = (D.f[BSE ])[kbse ];
+		//f_BSE  = (D.f[TNW ])[ktnw ];
 		//////////////////////////////////////////////////////////////////////////////////
 		real vxo1, vxo2, vxo3, drho;
 		drho   =  /*zero;*/f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW +
@@ -5992,88 +5992,88 @@ extern "C" __global__ void PropellerBC(unsigned int* neighborX,
          f_TNW  = f_TNW  + ((c1o1+drho) * (-  c1o216*(c3o1*(-vxo1+vxo2+vxo3)+c9o2*(-vxo1+vxo2+vxo3)*(-vxo1+vxo2+vxo3)-cusq) +   c1o216*(c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cusq2)));
 
 		(D.f[dirREST])[kzero] =  f_ZERO;
-        (D.f[dirE   ])[ke   ] =  f_E   ;	// f_W   ;//    	
-        (D.f[dirW   ])[kw   ] =  f_W   ;	// f_E   ;//    	
-        (D.f[dirN   ])[kn   ] =  f_N   ;	// f_S   ;//    	
-        (D.f[dirS   ])[ks   ] =  f_S   ;	// f_N   ;//    	
-        (D.f[dirT   ])[kt   ] =  f_T   ;	// f_B   ;//    	
-        (D.f[dirB   ])[kb   ] =  f_B   ;	// f_T   ;//    	
-        (D.f[dirNE  ])[kne  ] =  f_NE  ;	// f_SW  ;//    	
-        (D.f[dirSW  ])[ksw  ] =  f_SW  ;	// f_NE  ;//    	
-        (D.f[dirSE  ])[kse  ] =  f_SE  ;	// f_NW  ;//    	
-        (D.f[dirNW  ])[knw  ] =  f_NW  ;	// f_SE  ;//    	
-        (D.f[dirTE  ])[kte  ] =  f_TE  ;	// f_BW  ;//    	
-        (D.f[dirBW  ])[kbw  ] =  f_BW  ;	// f_TE  ;//    	
-        (D.f[dirBE  ])[kbe  ] =  f_BE  ;	// f_TW  ;//    	
-        (D.f[dirTW  ])[ktw  ] =  f_TW  ;	// f_BE  ;//    	
-        (D.f[dirTN  ])[ktn  ] =  f_TN  ;	// f_BS  ;//    	
-        (D.f[dirBS  ])[kbs  ] =  f_BS  ;	// f_TN  ;//    	
-        (D.f[dirBN  ])[kbn  ] =  f_BN  ;	// f_TS  ;//    	
-        (D.f[dirTS  ])[kts  ] =  f_TS  ;	// f_BN  ;//    	
-        (D.f[dirTNE ])[ktne ] =  f_TNE ;	// f_BSW ;//    	
-        (D.f[dirBSW ])[kbsw ] =  f_BSW ;	// f_BNE ;//    	
-        (D.f[dirBNE ])[kbne ] =  f_BNE ;	// f_BNW ;//    	
-        (D.f[dirTSW ])[ktsw ] =  f_TSW ;	// f_BSE ;//    	
-        (D.f[dirTSE ])[ktse ] =  f_TSE ;	// f_TSW ;//    	
-        (D.f[dirBNW ])[kbnw ] =  f_BNW ;	// f_TNE ;//    	
-        (D.f[dirBSE ])[kbse ] =  f_BSE ;	// f_TNW ;//    	
-        (D.f[dirTNW ])[ktnw ] =  f_TNW ;	// f_TSE ;//    	
+        (D.f[E   ])[ke   ] =  f_E   ;	// f_W   ;//    	
+        (D.f[W   ])[kw   ] =  f_W   ;	// f_E   ;//    	
+        (D.f[N   ])[kn   ] =  f_N   ;	// f_S   ;//    	
+        (D.f[S   ])[ks   ] =  f_S   ;	// f_N   ;//    	
+        (D.f[T   ])[kt   ] =  f_T   ;	// f_B   ;//    	
+        (D.f[B   ])[kb   ] =  f_B   ;	// f_T   ;//    	
+        (D.f[NE  ])[kne  ] =  f_NE  ;	// f_SW  ;//    	
+        (D.f[SW  ])[ksw  ] =  f_SW  ;	// f_NE  ;//    	
+        (D.f[SE  ])[kse  ] =  f_SE  ;	// f_NW  ;//    	
+        (D.f[NW  ])[knw  ] =  f_NW  ;	// f_SE  ;//    	
+        (D.f[TE  ])[kte  ] =  f_TE  ;	// f_BW  ;//    	
+        (D.f[BW  ])[kbw  ] =  f_BW  ;	// f_TE  ;//    	
+        (D.f[BE  ])[kbe  ] =  f_BE  ;	// f_TW  ;//    	
+        (D.f[TW  ])[ktw  ] =  f_TW  ;	// f_BE  ;//    	
+        (D.f[TN  ])[ktn  ] =  f_TN  ;	// f_BS  ;//    	
+        (D.f[BS  ])[kbs  ] =  f_BS  ;	// f_TN  ;//    	
+        (D.f[BN  ])[kbn  ] =  f_BN  ;	// f_TS  ;//    	
+        (D.f[TS  ])[kts  ] =  f_TS  ;	// f_BN  ;//    	
+        (D.f[TNE ])[ktne ] =  f_TNE ;	// f_BSW ;//    	
+        (D.f[BSW ])[kbsw ] =  f_BSW ;	// f_BNE ;//    	
+        (D.f[BNE ])[kbne ] =  f_BNE ;	// f_BNW ;//    	
+        (D.f[TSW ])[ktsw ] =  f_TSW ;	// f_BSE ;//    	
+        (D.f[TSE ])[ktse ] =  f_TSE ;	// f_TSW ;//    	
+        (D.f[BNW ])[kbnw ] =  f_BNW ;	// f_TNE ;//    	
+        (D.f[BSE ])[kbse ] =  f_BSE ;	// f_TNW ;//    	
+        (D.f[TNW ])[ktnw ] =  f_TNW ;	// f_TSE ;//    	
 
 		//////////////////////////////////////////////////////////////////////////
         ////(D.f[dirREST])[kzero] =   c8over27* (drho-cu_sq);
-        //(D.f[dirE   ])[ke   ] =   three*c2over27* ( vx1        );		//six
-        //(D.f[dirW   ])[kw   ] =   three*c2over27* (-vx1        );		//six
-        //(D.f[dirN   ])[kn   ] =   three*c2over27* (     vx2    );		//six
-        //(D.f[dirS   ])[ks   ] =   three*c2over27* (    -vx2    );		//six
-        //(D.f[dirT   ])[kt   ] =   three*c2over27* (         vx3);		//six
-        //(D.f[dirB   ])[kb   ] =   three*c2over27* (        -vx3);		//six
-        //(D.f[dirNE  ])[kne  ] =   three*c1over54* ( vx1+vx2    );		//six
-        //(D.f[dirSW  ])[ksw  ] =   three*c1over54* (-vx1-vx2    );		//six
-        //(D.f[dirSE  ])[kse  ] =   three*c1over54* ( vx1-vx2    );		//six
-        //(D.f[dirNW  ])[knw  ] =   three*c1over54* (-vx1+vx2    );		//six
-        //(D.f[dirTE  ])[kte  ] =   three*c1over54* ( vx1    +vx3);		//six
-        //(D.f[dirBW  ])[kbw  ] =   three*c1over54* (-vx1    -vx3);		//six
-        //(D.f[dirBE  ])[kbe  ] =   three*c1over54* ( vx1    -vx3);		//six
-        //(D.f[dirTW  ])[ktw  ] =   three*c1over54* (-vx1    +vx3);		//six
-        //(D.f[dirTN  ])[ktn  ] =   three*c1over54* (     vx2+vx3);		//six
-        //(D.f[dirBS  ])[kbs  ] =   three*c1over54* (    -vx2-vx3);		//six
-        //(D.f[dirBN  ])[kbn  ] =   three*c1over54* (     vx2-vx3);		//six
-        //(D.f[dirTS  ])[kts  ] =   three*c1over54* (    -vx2+vx3);		//six
-        //(D.f[dirTNE ])[ktne ] =   three*c1over216*( vx1+vx2+vx3);		//six
-        //(D.f[dirBSW ])[kbsw ] =   three*c1over216*(-vx1-vx2-vx3);		//six
-        //(D.f[dirBNE ])[kbne ] =   three*c1over216*( vx1+vx2-vx3);		//six
-        //(D.f[dirTSW ])[ktsw ] =   three*c1over216*(-vx1-vx2+vx3);		//six
-        //(D.f[dirTSE ])[ktse ] =   three*c1over216*( vx1-vx2+vx3);		//six
-        //(D.f[dirBNW ])[kbnw ] =   three*c1over216*(-vx1+vx2-vx3);		//six
-        //(D.f[dirBSE ])[kbse ] =   three*c1over216*( vx1-vx2-vx3);		//six
-        //(D.f[dirTNW ])[ktnw ] =   three*c1over216*(-vx1+vx2+vx3);		//six
+        //(D.f[E   ])[ke   ] =   three*c2over27* ( vx1        );		//six
+        //(D.f[W   ])[kw   ] =   three*c2over27* (-vx1        );		//six
+        //(D.f[N   ])[kn   ] =   three*c2over27* (     vx2    );		//six
+        //(D.f[S   ])[ks   ] =   three*c2over27* (    -vx2    );		//six
+        //(D.f[T   ])[kt   ] =   three*c2over27* (         vx3);		//six
+        //(D.f[B   ])[kb   ] =   three*c2over27* (        -vx3);		//six
+        //(D.f[NE  ])[kne  ] =   three*c1over54* ( vx1+vx2    );		//six
+        //(D.f[SW  ])[ksw  ] =   three*c1over54* (-vx1-vx2    );		//six
+        //(D.f[SE  ])[kse  ] =   three*c1over54* ( vx1-vx2    );		//six
+        //(D.f[NW  ])[knw  ] =   three*c1over54* (-vx1+vx2    );		//six
+        //(D.f[TE  ])[kte  ] =   three*c1over54* ( vx1    +vx3);		//six
+        //(D.f[BW  ])[kbw  ] =   three*c1over54* (-vx1    -vx3);		//six
+        //(D.f[BE  ])[kbe  ] =   three*c1over54* ( vx1    -vx3);		//six
+        //(D.f[TW  ])[ktw  ] =   three*c1over54* (-vx1    +vx3);		//six
+        //(D.f[TN  ])[ktn  ] =   three*c1over54* (     vx2+vx3);		//six
+        //(D.f[BS  ])[kbs  ] =   three*c1over54* (    -vx2-vx3);		//six
+        //(D.f[BN  ])[kbn  ] =   three*c1over54* (     vx2-vx3);		//six
+        //(D.f[TS  ])[kts  ] =   three*c1over54* (    -vx2+vx3);		//six
+        //(D.f[TNE ])[ktne ] =   three*c1over216*( vx1+vx2+vx3);		//six
+        //(D.f[BSW ])[kbsw ] =   three*c1over216*(-vx1-vx2-vx3);		//six
+        //(D.f[BNE ])[kbne ] =   three*c1over216*( vx1+vx2-vx3);		//six
+        //(D.f[TSW ])[ktsw ] =   three*c1over216*(-vx1-vx2+vx3);		//six
+        //(D.f[TSE ])[ktse ] =   three*c1over216*( vx1-vx2+vx3);		//six
+        //(D.f[BNW ])[kbnw ] =   three*c1over216*(-vx1+vx2-vx3);		//six
+        //(D.f[BSE ])[kbse ] =   three*c1over216*( vx1-vx2-vx3);		//six
+        //(D.f[TNW ])[ktnw ] =   three*c1over216*(-vx1+vx2+vx3);		//six
         //(D.f[dirREST])[kzero] =   c8over27* (drho-cu_sq);
-        //(D.f[dirE   ])[ke   ] =   c2over27* (drho+three*( vx1        )+c9over2*( vx1        )*( vx1        )-cu_sq);
-        //(D.f[dirW   ])[kw   ] =   c2over27* (drho+three*(-vx1        )+c9over2*(-vx1        )*(-vx1        )-cu_sq);
-        //(D.f[dirN   ])[kn   ] =   c2over27* (drho+three*(    vx2     )+c9over2*(     vx2    )*(     vx2    )-cu_sq);
-        //(D.f[dirS   ])[ks   ] =   c2over27* (drho+three*(   -vx2     )+c9over2*(    -vx2    )*(    -vx2    )-cu_sq);
-        //(D.f[dirT   ])[kt   ] =   c2over27* (drho+three*(         vx3)+c9over2*(         vx3)*(         vx3)-cu_sq);
-        //(D.f[dirB   ])[kb   ] =   c2over27* (drho+three*(        -vx3)+c9over2*(        -vx3)*(        -vx3)-cu_sq);
-        //(D.f[dirNE  ])[kne  ] =   c1over54* (drho+three*( vx1+vx2    )+c9over2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
-        //(D.f[dirSW  ])[ksw  ] =   c1over54* (drho+three*(-vx1-vx2    )+c9over2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
-        //(D.f[dirSE  ])[kse  ] =   c1over54* (drho+three*( vx1-vx2    )+c9over2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
-        //(D.f[dirNW  ])[knw  ] =   c1over54* (drho+three*(-vx1+vx2    )+c9over2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
-        //(D.f[dirTE  ])[kte  ] =   c1over54* (drho+three*( vx1    +vx3)+c9over2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
-        //(D.f[dirBW  ])[kbw  ] =   c1over54* (drho+three*(-vx1    -vx3)+c9over2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
-        //(D.f[dirBE  ])[kbe  ] =   c1over54* (drho+three*( vx1    -vx3)+c9over2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
-        //(D.f[dirTW  ])[ktw  ] =   c1over54* (drho+three*(-vx1    +vx3)+c9over2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
-        //(D.f[dirTN  ])[ktn  ] =   c1over54* (drho+three*(     vx2+vx3)+c9over2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
-        //(D.f[dirBS  ])[kbs  ] =   c1over54* (drho+three*(    -vx2-vx3)+c9over2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
-        //(D.f[dirBN  ])[kbn  ] =   c1over54* (drho+three*(     vx2-vx3)+c9over2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
-        //(D.f[dirTS  ])[kts  ] =   c1over54* (drho+three*(    -vx2+vx3)+c9over2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
-        //(D.f[dirTNE ])[ktne ] =   c1over216*(drho+three*( vx1+vx2+vx3)+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
-        //(D.f[dirBSW ])[kbsw ] =   c1over216*(drho+three*(-vx1-vx2-vx3)+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
-        //(D.f[dirBNE ])[kbne ] =   c1over216*(drho+three*( vx1+vx2-vx3)+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
-        //(D.f[dirTSW ])[ktsw ] =   c1over216*(drho+three*(-vx1-vx2+vx3)+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
-        //(D.f[dirTSE ])[ktse ] =   c1over216*(drho+three*( vx1-vx2+vx3)+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
-        //(D.f[dirBNW ])[kbnw ] =   c1over216*(drho+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
-        //(D.f[dirBSE ])[kbse ] =   c1over216*(drho+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
-        //(D.f[dirTNW ])[ktnw ] =   c1over216*(drho+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
+        //(D.f[E   ])[ke   ] =   c2over27* (drho+three*( vx1        )+c9over2*( vx1        )*( vx1        )-cu_sq);
+        //(D.f[W   ])[kw   ] =   c2over27* (drho+three*(-vx1        )+c9over2*(-vx1        )*(-vx1        )-cu_sq);
+        //(D.f[N   ])[kn   ] =   c2over27* (drho+three*(    vx2     )+c9over2*(     vx2    )*(     vx2    )-cu_sq);
+        //(D.f[S   ])[ks   ] =   c2over27* (drho+three*(   -vx2     )+c9over2*(    -vx2    )*(    -vx2    )-cu_sq);
+        //(D.f[T   ])[kt   ] =   c2over27* (drho+three*(         vx3)+c9over2*(         vx3)*(         vx3)-cu_sq);
+        //(D.f[B   ])[kb   ] =   c2over27* (drho+three*(        -vx3)+c9over2*(        -vx3)*(        -vx3)-cu_sq);
+        //(D.f[NE  ])[kne  ] =   c1over54* (drho+three*( vx1+vx2    )+c9over2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
+        //(D.f[SW  ])[ksw  ] =   c1over54* (drho+three*(-vx1-vx2    )+c9over2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
+        //(D.f[SE  ])[kse  ] =   c1over54* (drho+three*( vx1-vx2    )+c9over2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
+        //(D.f[NW  ])[knw  ] =   c1over54* (drho+three*(-vx1+vx2    )+c9over2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
+        //(D.f[TE  ])[kte  ] =   c1over54* (drho+three*( vx1    +vx3)+c9over2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
+        //(D.f[BW  ])[kbw  ] =   c1over54* (drho+three*(-vx1    -vx3)+c9over2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
+        //(D.f[BE  ])[kbe  ] =   c1over54* (drho+three*( vx1    -vx3)+c9over2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
+        //(D.f[TW  ])[ktw  ] =   c1over54* (drho+three*(-vx1    +vx3)+c9over2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
+        //(D.f[TN  ])[ktn  ] =   c1over54* (drho+three*(     vx2+vx3)+c9over2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
+        //(D.f[BS  ])[kbs  ] =   c1over54* (drho+three*(    -vx2-vx3)+c9over2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
+        //(D.f[BN  ])[kbn  ] =   c1over54* (drho+three*(     vx2-vx3)+c9over2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
+        //(D.f[TS  ])[kts  ] =   c1over54* (drho+three*(    -vx2+vx3)+c9over2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
+        //(D.f[TNE ])[ktne ] =   c1over216*(drho+three*( vx1+vx2+vx3)+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
+        //(D.f[BSW ])[kbsw ] =   c1over216*(drho+three*(-vx1-vx2-vx3)+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
+        //(D.f[BNE ])[kbne ] =   c1over216*(drho+three*( vx1+vx2-vx3)+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
+        //(D.f[TSW ])[ktsw ] =   c1over216*(drho+three*(-vx1-vx2+vx3)+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
+        //(D.f[TSE ])[ktse ] =   c1over216*(drho+three*( vx1-vx2+vx3)+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
+        //(D.f[BNW ])[kbnw ] =   c1over216*(drho+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
+        //(D.f[BSE ])[kbse ] =   c1over216*(drho+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
+        //(D.f[TNW ])[ktnw ] =   c1over216*(drho+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
 		}
     }
 }
diff --git a/src/gpu/VirtualFluids_GPU/GPU/WaleCumulant27.cu b/src/gpu/VirtualFluids_GPU/GPU/WaleCumulant27.cu
index f7decf118..181c0006e 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/WaleCumulant27.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/WaleCumulant27.cu
@@ -48,63 +48,63 @@ extern "C" __global__ void LB_Kernel_WaleBySoniMalav_Cum_AA2016_Comp_SP_27(
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -118,33 +118,33 @@ extern "C" __global__ void LB_Kernel_WaleBySoniMalav_Cum_AA2016_Comp_SP_27(
 			unsigned int kbsw = neighborZ[ksw];
 
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];
-			real mfabb = (D.f[dirW])[kw];
-			real mfbcb = (D.f[dirN])[k];
-			real mfbab = (D.f[dirS])[ks];
-			real mfbbc = (D.f[dirT])[k];
-			real mfbba = (D.f[dirB])[kb];
-			real mfccb = (D.f[dirNE])[k];
-			real mfaab = (D.f[dirSW])[ksw];
-			real mfcab = (D.f[dirSE])[ks];
-			real mfacb = (D.f[dirNW])[kw];
-			real mfcbc = (D.f[dirTE])[k];
-			real mfaba = (D.f[dirBW])[kbw];
-			real mfcba = (D.f[dirBE])[kb];
-			real mfabc = (D.f[dirTW])[kw];
-			real mfbcc = (D.f[dirTN])[k];
-			real mfbaa = (D.f[dirBS])[kbs];
-			real mfbca = (D.f[dirBN])[kb];
-			real mfbac = (D.f[dirTS])[ks];
+			real mfcbb = (D.f[E])[k];
+			real mfabb = (D.f[W])[kw];
+			real mfbcb = (D.f[N])[k];
+			real mfbab = (D.f[S])[ks];
+			real mfbbc = (D.f[T])[k];
+			real mfbba = (D.f[B])[kb];
+			real mfccb = (D.f[NE])[k];
+			real mfaab = (D.f[SW])[ksw];
+			real mfcab = (D.f[SE])[ks];
+			real mfacb = (D.f[NW])[kw];
+			real mfcbc = (D.f[TE])[k];
+			real mfaba = (D.f[BW])[kbw];
+			real mfcba = (D.f[BE])[kb];
+			real mfabc = (D.f[TW])[kw];
+			real mfbcc = (D.f[TN])[k];
+			real mfbaa = (D.f[BS])[kbs];
+			real mfbca = (D.f[BN])[kb];
+			real mfbac = (D.f[TS])[ks];
 			real mfbbb = (D.f[dirREST])[k];
-			real mfccc = (D.f[dirTNE])[k];
-			real mfaac = (D.f[dirTSW])[ksw];
-			real mfcac = (D.f[dirTSE])[ks];
-			real mfacc = (D.f[dirTNW])[kw];
-			real mfcca = (D.f[dirBNE])[kb];
-			real mfaaa = (D.f[dirBSW])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];
-			real mfaca = (D.f[dirBNW])[kbw];
+			real mfccc = (D.f[TNE])[k];
+			real mfaac = (D.f[TSW])[ksw];
+			real mfcac = (D.f[TSE])[ks];
+			real mfacc = (D.f[TNW])[kw];
+			real mfcca = (D.f[BNE])[kb];
+			real mfaaa = (D.f[BSW])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];
+			real mfaca = (D.f[BNW])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -1005,33 +1005,33 @@ extern "C" __global__ void LB_Kernel_WaleBySoniMalav_Cum_AA2016_Comp_SP_27(
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;
-			(D.f[dirW])[kw] = mfcbb;
-			(D.f[dirN])[k] = mfbab;
-			(D.f[dirS])[ks] = mfbcb;
-			(D.f[dirT])[k] = mfbba;
-			(D.f[dirB])[kb] = mfbbc;
-			(D.f[dirNE])[k] = mfaab;
-			(D.f[dirSW])[ksw] = mfccb;
-			(D.f[dirSE])[ks] = mfacb;
-			(D.f[dirNW])[kw] = mfcab;
-			(D.f[dirTE])[k] = mfaba;
-			(D.f[dirBW])[kbw] = mfcbc;
-			(D.f[dirBE])[kb] = mfabc;
-			(D.f[dirTW])[kw] = mfcba;
-			(D.f[dirTN])[k] = mfbaa;
-			(D.f[dirBS])[kbs] = mfbcc;
-			(D.f[dirBN])[kb] = mfbac;
-			(D.f[dirTS])[ks] = mfbca;
+			(D.f[E])[k] = mfabb;
+			(D.f[W])[kw] = mfcbb;
+			(D.f[N])[k] = mfbab;
+			(D.f[S])[ks] = mfbcb;
+			(D.f[T])[k] = mfbba;
+			(D.f[B])[kb] = mfbbc;
+			(D.f[NE])[k] = mfaab;
+			(D.f[SW])[ksw] = mfccb;
+			(D.f[SE])[ks] = mfacb;
+			(D.f[NW])[kw] = mfcab;
+			(D.f[TE])[k] = mfaba;
+			(D.f[BW])[kbw] = mfcbc;
+			(D.f[BE])[kb] = mfabc;
+			(D.f[TW])[kw] = mfcba;
+			(D.f[TN])[k] = mfbaa;
+			(D.f[BS])[kbs] = mfbcc;
+			(D.f[BN])[kb] = mfbac;
+			(D.f[TS])[ks] = mfbca;
 			(D.f[dirREST])[k] = mfbbb;
-			(D.f[dirTNE])[k] = mfaaa;
-			(D.f[dirTSE])[ks] = mfaca;
-			(D.f[dirBNE])[kb] = mfaac;
-			(D.f[dirBSE])[kbs] = mfacc;
-			(D.f[dirTNW])[kw] = mfcaa;
-			(D.f[dirTSW])[ksw] = mfcca;
-			(D.f[dirBNW])[kbw] = mfcac;
-			(D.f[dirBSW])[kbsw] = mfccc;
+			(D.f[TNE])[k] = mfaaa;
+			(D.f[TSE])[ks] = mfaca;
+			(D.f[BNE])[kb] = mfaac;
+			(D.f[BSE])[kbs] = mfacc;
+			(D.f[TNW])[kw] = mfcaa;
+			(D.f[TSW])[ksw] = mfcca;
+			(D.f[BNW])[kbw] = mfcac;
+			(D.f[BSW])[kbsw] = mfccc;
 			////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
diff --git a/src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu b/src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu
index c0f4c1092..b25736e00 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu
+++ b/src/gpu/VirtualFluids_GPU/GPU/WallFunction.cu
@@ -25,63 +25,63 @@ extern "C" __global__ void WallFunction27(
    Distributions27 D;
    if (isEvenTimestep==true)
    {
-      D.f[dirE   ] = &DD[dirE   *size_Mat];
-      D.f[dirW   ] = &DD[dirW   *size_Mat];
-      D.f[dirN   ] = &DD[dirN   *size_Mat];
-      D.f[dirS   ] = &DD[dirS   *size_Mat];
-      D.f[dirT   ] = &DD[dirT   *size_Mat];
-      D.f[dirB   ] = &DD[dirB   *size_Mat];
-      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+      D.f[E   ] = &DD[E   *size_Mat];
+      D.f[W   ] = &DD[W   *size_Mat];
+      D.f[N   ] = &DD[N   *size_Mat];
+      D.f[S   ] = &DD[S   *size_Mat];
+      D.f[T   ] = &DD[T   *size_Mat];
+      D.f[B   ] = &DD[B   *size_Mat];
+      D.f[NE  ] = &DD[NE  *size_Mat];
+      D.f[SW  ] = &DD[SW  *size_Mat];
+      D.f[SE  ] = &DD[SE  *size_Mat];
+      D.f[NW  ] = &DD[NW  *size_Mat];
+      D.f[TE  ] = &DD[TE  *size_Mat];
+      D.f[BW  ] = &DD[BW  *size_Mat];
+      D.f[BE  ] = &DD[BE  *size_Mat];
+      D.f[TW  ] = &DD[TW  *size_Mat];
+      D.f[TN  ] = &DD[TN  *size_Mat];
+      D.f[BS  ] = &DD[BS  *size_Mat];
+      D.f[BN  ] = &DD[BN  *size_Mat];
+      D.f[TS  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+      D.f[TNE ] = &DD[TNE *size_Mat];
+      D.f[TSW ] = &DD[TSW *size_Mat];
+      D.f[TSE ] = &DD[TSE *size_Mat];
+      D.f[TNW ] = &DD[TNW *size_Mat];
+      D.f[BNE ] = &DD[BNE *size_Mat];
+      D.f[BSW ] = &DD[BSW *size_Mat];
+      D.f[BSE ] = &DD[BSE *size_Mat];
+      D.f[BNW ] = &DD[BNW *size_Mat];
    } 
    else
    {
-      D.f[dirW   ] = &DD[dirE   *size_Mat];
-      D.f[dirE   ] = &DD[dirW   *size_Mat];
-      D.f[dirS   ] = &DD[dirN   *size_Mat];
-      D.f[dirN   ] = &DD[dirS   *size_Mat];
-      D.f[dirB   ] = &DD[dirT   *size_Mat];
-      D.f[dirT   ] = &DD[dirB   *size_Mat];
-      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+      D.f[W   ] = &DD[E   *size_Mat];
+      D.f[E   ] = &DD[W   *size_Mat];
+      D.f[S   ] = &DD[N   *size_Mat];
+      D.f[N   ] = &DD[S   *size_Mat];
+      D.f[B   ] = &DD[T   *size_Mat];
+      D.f[T   ] = &DD[B   *size_Mat];
+      D.f[SW  ] = &DD[NE  *size_Mat];
+      D.f[NE  ] = &DD[SW  *size_Mat];
+      D.f[NW  ] = &DD[SE  *size_Mat];
+      D.f[SE  ] = &DD[NW  *size_Mat];
+      D.f[BW  ] = &DD[TE  *size_Mat];
+      D.f[TE  ] = &DD[BW  *size_Mat];
+      D.f[TW  ] = &DD[BE  *size_Mat];
+      D.f[BE  ] = &DD[TW  *size_Mat];
+      D.f[BS  ] = &DD[TN  *size_Mat];
+      D.f[TN  ] = &DD[BS  *size_Mat];
+      D.f[TS  ] = &DD[BN  *size_Mat];
+      D.f[BN  ] = &DD[TS  *size_Mat];
       D.f[dirREST] = &DD[dirREST*size_Mat];
-      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+      D.f[TNE ] = &DD[BSW *size_Mat];
+      D.f[TSW ] = &DD[BNE *size_Mat];
+      D.f[TSE ] = &DD[BNW *size_Mat];
+      D.f[TNW ] = &DD[BSE *size_Mat];
+      D.f[BNE ] = &DD[TSW *size_Mat];
+      D.f[BSW ] = &DD[TNE *size_Mat];
+      D.f[BSE ] = &DD[TNW *size_Mat];
+      D.f[BNW ] = &DD[TSE *size_Mat];
    }
    ////////////////////////////////////////////////////////////////////////////////
    const unsigned  x = threadIdx.x;  // Globaler x-Index 
@@ -106,32 +106,32 @@ extern "C" __global__ void WallFunction27(
       //      *q_dirBE,  *q_dirTW,  *q_dirTN,  *q_dirBS,  *q_dirBN,  *q_dirTS,
       //      *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW,
       //      *q_dirBSE, *q_dirBNW; 
-      //q_dirE   = &QQ[dirE   * numberOfBCnodes];
-      //q_dirW   = &QQ[dirW   * numberOfBCnodes];
-      //q_dirN   = &QQ[dirN   * numberOfBCnodes];
-      //q_dirS   = &QQ[dirS   * numberOfBCnodes];
-      //q_dirT   = &QQ[dirT   * numberOfBCnodes];
-      //q_dirB   = &QQ[dirB   * numberOfBCnodes];
-      //q_dirNE  = &QQ[dirNE  * numberOfBCnodes];
-      //q_dirSW  = &QQ[dirSW  * numberOfBCnodes];
-      //q_dirSE  = &QQ[dirSE  * numberOfBCnodes];
-      //q_dirNW  = &QQ[dirNW  * numberOfBCnodes];
-      //q_dirTE  = &QQ[dirTE  * numberOfBCnodes];
-      //q_dirBW  = &QQ[dirBW  * numberOfBCnodes];
-      //q_dirBE  = &QQ[dirBE  * numberOfBCnodes];
-      //q_dirTW  = &QQ[dirTW  * numberOfBCnodes];
-      //q_dirTN  = &QQ[dirTN  * numberOfBCnodes];
-      //q_dirBS  = &QQ[dirBS  * numberOfBCnodes];
-      //q_dirBN  = &QQ[dirBN  * numberOfBCnodes];
-      //q_dirTS  = &QQ[dirTS  * numberOfBCnodes];
-      //q_dirTNE = &QQ[dirTNE * numberOfBCnodes];
-      //q_dirTSW = &QQ[dirTSW * numberOfBCnodes];
-      //q_dirTSE = &QQ[dirTSE * numberOfBCnodes];
-      //q_dirTNW = &QQ[dirTNW * numberOfBCnodes];
-      //q_dirBNE = &QQ[dirBNE * numberOfBCnodes];
-      //q_dirBSW = &QQ[dirBSW * numberOfBCnodes];
-      //q_dirBSE = &QQ[dirBSE * numberOfBCnodes];
-      //q_dirBNW = &QQ[dirBNW * numberOfBCnodes];
+      //q_dirE   = &QQ[E   * numberOfBCnodes];
+      //q_dirW   = &QQ[W   * numberOfBCnodes];
+      //q_dirN   = &QQ[N   * numberOfBCnodes];
+      //q_dirS   = &QQ[S   * numberOfBCnodes];
+      //q_dirT   = &QQ[T   * numberOfBCnodes];
+      //q_dirB   = &QQ[B   * numberOfBCnodes];
+      //q_dirNE  = &QQ[NE  * numberOfBCnodes];
+      //q_dirSW  = &QQ[SW  * numberOfBCnodes];
+      //q_dirSE  = &QQ[SE  * numberOfBCnodes];
+      //q_dirNW  = &QQ[NW  * numberOfBCnodes];
+      //q_dirTE  = &QQ[TE  * numberOfBCnodes];
+      //q_dirBW  = &QQ[BW  * numberOfBCnodes];
+      //q_dirBE  = &QQ[BE  * numberOfBCnodes];
+      //q_dirTW  = &QQ[TW  * numberOfBCnodes];
+      //q_dirTN  = &QQ[TN  * numberOfBCnodes];
+      //q_dirBS  = &QQ[BS  * numberOfBCnodes];
+      //q_dirBN  = &QQ[BN  * numberOfBCnodes];
+      //q_dirTS  = &QQ[TS  * numberOfBCnodes];
+      //q_dirTNE = &QQ[TNE * numberOfBCnodes];
+      //q_dirTSW = &QQ[TSW * numberOfBCnodes];
+      //q_dirTSE = &QQ[TSE * numberOfBCnodes];
+      //q_dirTNW = &QQ[TNW * numberOfBCnodes];
+      //q_dirBNE = &QQ[BNE * numberOfBCnodes];
+      //q_dirBSW = &QQ[BSW * numberOfBCnodes];
+      //q_dirBSE = &QQ[BSE * numberOfBCnodes];
+      //q_dirBNW = &QQ[BNW * numberOfBCnodes];
       ////////////////////////////////////////////////////////////////////////////////
       //index
       unsigned int KQK  = k_Q[k];
@@ -166,32 +166,32 @@ extern "C" __global__ void WallFunction27(
       real f_E,  f_W,  f_N,  f_S,  f_T,  f_B,   f_NE,  f_SW,  f_SE,  f_NW,  f_TE,  f_BW,  f_BE,
          f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW;
 
-      f_W    = (D.f[dirE   ])[ke   ];
-      f_E    = (D.f[dirW   ])[kw   ];
-      f_S    = (D.f[dirN   ])[kn   ];
-      f_N    = (D.f[dirS   ])[ks   ];
-      f_B    = (D.f[dirT   ])[kt   ];
-      f_T    = (D.f[dirB   ])[kb   ];
-      f_SW   = (D.f[dirNE  ])[kne  ];
-      f_NE   = (D.f[dirSW  ])[ksw  ];
-      f_NW   = (D.f[dirSE  ])[kse  ];
-      f_SE   = (D.f[dirNW  ])[knw  ];
-      f_BW   = (D.f[dirTE  ])[kte  ];
-      f_TE   = (D.f[dirBW  ])[kbw  ];
-      f_TW   = (D.f[dirBE  ])[kbe  ];
-      f_BE   = (D.f[dirTW  ])[ktw  ];
-      f_BS   = (D.f[dirTN  ])[ktn  ];
-      f_TN   = (D.f[dirBS  ])[kbs  ];
-      f_TS   = (D.f[dirBN  ])[kbn  ];
-      f_BN   = (D.f[dirTS  ])[kts  ];
-      f_BSW  = (D.f[dirTNE ])[ktne ];
-      f_BNE  = (D.f[dirTSW ])[ktsw ];
-      f_BNW  = (D.f[dirTSE ])[ktse ];
-      f_BSE  = (D.f[dirTNW ])[ktnw ];
-      f_TSW  = (D.f[dirBNE ])[kbne ];
-      f_TNE  = (D.f[dirBSW ])[kbsw ];
-      f_TNW  = (D.f[dirBSE ])[kbse ];
-      f_TSE  = (D.f[dirBNW ])[kbnw ];
+      f_W    = (D.f[E   ])[ke   ];
+      f_E    = (D.f[W   ])[kw   ];
+      f_S    = (D.f[N   ])[kn   ];
+      f_N    = (D.f[S   ])[ks   ];
+      f_B    = (D.f[T   ])[kt   ];
+      f_T    = (D.f[B   ])[kb   ];
+      f_SW   = (D.f[NE  ])[kne  ];
+      f_NE   = (D.f[SW  ])[ksw  ];
+      f_NW   = (D.f[SE  ])[kse  ];
+      f_SE   = (D.f[NW  ])[knw  ];
+      f_BW   = (D.f[TE  ])[kte  ];
+      f_TE   = (D.f[BW  ])[kbw  ];
+      f_TW   = (D.f[BE  ])[kbe  ];
+      f_BE   = (D.f[TW  ])[ktw  ];
+      f_BS   = (D.f[TN  ])[ktn  ];
+      f_TN   = (D.f[BS  ])[kbs  ];
+      f_TS   = (D.f[BN  ])[kbn  ];
+      f_BN   = (D.f[TS  ])[kts  ];
+      f_BSW  = (D.f[TNE ])[ktne ];
+      f_BNE  = (D.f[TSW ])[ktsw ];
+      f_BNW  = (D.f[TSE ])[ktse ];
+      f_BSE  = (D.f[TNW ])[ktnw ];
+      f_TSW  = (D.f[BNE ])[kbne ];
+      f_TNE  = (D.f[BSW ])[kbsw ];
+      f_TNW  = (D.f[BSE ])[kbse ];
+      f_TSE  = (D.f[BNW ])[kbnw ];
       ////////////////////////////////////////////////////////////////////////////////
       // real vx2, vx3, feq, q;
       real vx1, drho;
@@ -233,63 +233,63 @@ extern "C" __global__ void WallFunction27(
    //   //////////////////////////////////////////////////////////////////////////
    //   if (isEvenTimestep==false)
    //   {
-   //      D.f[dirE   ] = &DD[dirE   *size_Mat];
-   //      D.f[dirW   ] = &DD[dirW   *size_Mat];
-   //      D.f[dirN   ] = &DD[dirN   *size_Mat];
-   //      D.f[dirS   ] = &DD[dirS   *size_Mat];
-   //      D.f[dirT   ] = &DD[dirT   *size_Mat];
-   //      D.f[dirB   ] = &DD[dirB   *size_Mat];
-   //      D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-   //      D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-   //      D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-   //      D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-   //      D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-   //      D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-   //      D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-   //      D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-   //      D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-   //      D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-   //      D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-   //      D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+   //      D.f[E   ] = &DD[E   *size_Mat];
+   //      D.f[W   ] = &DD[W   *size_Mat];
+   //      D.f[N   ] = &DD[N   *size_Mat];
+   //      D.f[S   ] = &DD[S   *size_Mat];
+   //      D.f[T   ] = &DD[T   *size_Mat];
+   //      D.f[B   ] = &DD[B   *size_Mat];
+   //      D.f[NE  ] = &DD[NE  *size_Mat];
+   //      D.f[SW  ] = &DD[SW  *size_Mat];
+   //      D.f[SE  ] = &DD[SE  *size_Mat];
+   //      D.f[NW  ] = &DD[NW  *size_Mat];
+   //      D.f[TE  ] = &DD[TE  *size_Mat];
+   //      D.f[BW  ] = &DD[BW  *size_Mat];
+   //      D.f[BE  ] = &DD[BE  *size_Mat];
+   //      D.f[TW  ] = &DD[TW  *size_Mat];
+   //      D.f[TN  ] = &DD[TN  *size_Mat];
+   //      D.f[BS  ] = &DD[BS  *size_Mat];
+   //      D.f[BN  ] = &DD[BN  *size_Mat];
+   //      D.f[TS  ] = &DD[TS  *size_Mat];
    //      D.f[dirREST] = &DD[dirREST*size_Mat];
-   //      D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-   //      D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-   //      D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-   //      D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-   //      D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-   //      D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-   //      D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-   //      D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+   //      D.f[TNE ] = &DD[TNE *size_Mat];
+   //      D.f[TSW ] = &DD[TSW *size_Mat];
+   //      D.f[TSE ] = &DD[TSE *size_Mat];
+   //      D.f[TNW ] = &DD[TNW *size_Mat];
+   //      D.f[BNE ] = &DD[BNE *size_Mat];
+   //      D.f[BSW ] = &DD[BSW *size_Mat];
+   //      D.f[BSE ] = &DD[BSE *size_Mat];
+   //      D.f[BNW ] = &DD[BNW *size_Mat];
    //   } 
    //   else
    //   {
-   //      D.f[dirW   ] = &DD[dirE   *size_Mat];
-   //      D.f[dirE   ] = &DD[dirW   *size_Mat];
-   //      D.f[dirS   ] = &DD[dirN   *size_Mat];
-   //      D.f[dirN   ] = &DD[dirS   *size_Mat];
-   //      D.f[dirB   ] = &DD[dirT   *size_Mat];
-   //      D.f[dirT   ] = &DD[dirB   *size_Mat];
-   //      D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-   //      D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-   //      D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-   //      D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-   //      D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-   //      D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-   //      D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-   //      D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-   //      D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-   //      D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-   //      D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-   //      D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+   //      D.f[W   ] = &DD[E   *size_Mat];
+   //      D.f[E   ] = &DD[W   *size_Mat];
+   //      D.f[S   ] = &DD[N   *size_Mat];
+   //      D.f[N   ] = &DD[S   *size_Mat];
+   //      D.f[B   ] = &DD[T   *size_Mat];
+   //      D.f[T   ] = &DD[B   *size_Mat];
+   //      D.f[SW  ] = &DD[NE  *size_Mat];
+   //      D.f[NE  ] = &DD[SW  *size_Mat];
+   //      D.f[NW  ] = &DD[SE  *size_Mat];
+   //      D.f[SE  ] = &DD[NW  *size_Mat];
+   //      D.f[BW  ] = &DD[TE  *size_Mat];
+   //      D.f[TE  ] = &DD[BW  *size_Mat];
+   //      D.f[TW  ] = &DD[BE  *size_Mat];
+   //      D.f[BE  ] = &DD[TW  *size_Mat];
+   //      D.f[BS  ] = &DD[TN  *size_Mat];
+   //      D.f[TN  ] = &DD[BS  *size_Mat];
+   //      D.f[TS  ] = &DD[BN  *size_Mat];
+   //      D.f[BN  ] = &DD[TS  *size_Mat];
    //      D.f[dirREST] = &DD[dirREST*size_Mat];
-   //      D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-   //      D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-   //      D.f[dirTSE ] = &DD[dirBNW *size_Mat];
-   //      D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-   //      D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-   //      D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-   //      D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-   //      D.f[dirBNW ] = &DD[dirTSE *size_Mat];
+   //      D.f[TNE ] = &DD[BSW *size_Mat];
+   //      D.f[TSW ] = &DD[BNE *size_Mat];
+   //      D.f[TSE ] = &DD[BNW *size_Mat];
+   //      D.f[TNW ] = &DD[BSE *size_Mat];
+   //      D.f[BNE ] = &DD[TSW *size_Mat];
+   //      D.f[BSW ] = &DD[TNE *size_Mat];
+   //      D.f[BSE ] = &DD[TNW *size_Mat];
+   //      D.f[BNW ] = &DD[TSE *size_Mat];
    //   }
    //   ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //   //Test
@@ -302,208 +302,208 @@ extern "C" __global__ void WallFunction27(
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c2over27* (drho/*+three*( vx1        )*/+c9over2*( vx1        )*( vx1        ) * (one + drho)-cu_sq); 
-   //      (D.f[dirW])[kw]=(one-q)/(one+q)*(f_E-f_W+(f_E+f_W-two*feq*om1)/(one-om1))*c1o2+(q*(f_E+f_W)-six*c2over27*( VeloX     ))/(one+q);// - c2over27 * drho;
-   //      //(D.f[dirW])[kw]=zero;
+   //      (D.f[W])[kw]=(one-q)/(one+q)*(f_E-f_W+(f_E+f_W-two*feq*om1)/(one-om1))*c1o2+(q*(f_E+f_W)-six*c2over27*( VeloX     ))/(one+q);// - c2over27 * drho;
+   //      //(D.f[W])[kw]=zero;
    //   }
 
    //   q = q_dirW[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c2over27* (drho/*+three*(-vx1        )*/+c9over2*(-vx1        )*(-vx1        ) * (one + drho)-cu_sq); 
-   //      (D.f[dirE])[ke]=(one-q)/(one+q)*(f_W-f_E+(f_W+f_E-two*feq*om1)/(one-om1))*c1o2+(q*(f_W+f_E)-six*c2over27*(-VeloX     ))/(one+q);// - c2over27 * drho;
-   //      //(D.f[dirE])[ke]=zero;
+   //      (D.f[E])[ke]=(one-q)/(one+q)*(f_W-f_E+(f_W+f_E-two*feq*om1)/(one-om1))*c1o2+(q*(f_W+f_E)-six*c2over27*(-VeloX     ))/(one+q);// - c2over27 * drho;
+   //      //(D.f[E])[ke]=zero;
    //   }
 
    //   q = q_dirN[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c2over27* (drho/*+three*(    vx2     )*/+c9over2*(     vx2    )*(     vx2    ) * (one + drho)-cu_sq); 
-   //      (D.f[dirS])[ks]=(one-q)/(one+q)*(f_N-f_S+(f_N+f_S-two*feq*om1)/(one-om1))*c1o2+(q*(f_N+f_S)-six*c2over27*( VeloY     ))/(one+q);// - c2over27 * drho;
-   //      //(D.f[dirS])[ks]=zero;
+   //      (D.f[S])[ks]=(one-q)/(one+q)*(f_N-f_S+(f_N+f_S-two*feq*om1)/(one-om1))*c1o2+(q*(f_N+f_S)-six*c2over27*( VeloY     ))/(one+q);// - c2over27 * drho;
+   //      //(D.f[S])[ks]=zero;
    //   }
 
    //   q = q_dirS[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c2over27* (drho/*+three*(   -vx2     )*/+c9over2*(    -vx2    )*(    -vx2    ) * (one + drho)-cu_sq); 
-   //      (D.f[dirN])[kn]=(one-q)/(one+q)*(f_S-f_N+(f_S+f_N-two*feq*om1)/(one-om1))*c1o2+(q*(f_S+f_N)-six*c2over27*(-VeloY     ))/(one+q);// - c2over27 * drho;
-   //      //(D.f[dirN])[kn]=zero;
+   //      (D.f[N])[kn]=(one-q)/(one+q)*(f_S-f_N+(f_S+f_N-two*feq*om1)/(one-om1))*c1o2+(q*(f_S+f_N)-six*c2over27*(-VeloY     ))/(one+q);// - c2over27 * drho;
+   //      //(D.f[N])[kn]=zero;
    //   }
 
    //   q = q_dirT[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c2over27* (drho/*+three*(         vx3)*/+c9over2*(         vx3)*(         vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirB])[kb]=(one-q)/(one+q)*(f_T-f_B+(f_T+f_B-two*feq*om1)/(one-om1))*c1o2+(q*(f_T+f_B)-six*c2over27*( VeloZ     ))/(one+q);// - c2over27 * drho;
-   //      //(D.f[dirB])[kb]=one;
+   //      (D.f[B])[kb]=(one-q)/(one+q)*(f_T-f_B+(f_T+f_B-two*feq*om1)/(one-om1))*c1o2+(q*(f_T+f_B)-six*c2over27*( VeloZ     ))/(one+q);// - c2over27 * drho;
+   //      //(D.f[B])[kb]=one;
    //   }
 
    //   q = q_dirB[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c2over27* (drho/*+three*(        -vx3)*/+c9over2*(        -vx3)*(        -vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirT])[kt]=(one-q)/(one+q)*(f_B-f_T+(f_B+f_T-two*feq*om1)/(one-om1))*c1o2+(q*(f_B+f_T)-six*c2over27*(-VeloZ     ))/(one+q);// - c2over27 * drho;
-   //      //(D.f[dirT])[kt]=zero;
+   //      (D.f[T])[kt]=(one-q)/(one+q)*(f_B-f_T+(f_B+f_T-two*feq*om1)/(one-om1))*c1o2+(q*(f_B+f_T)-six*c2over27*(-VeloZ     ))/(one+q);// - c2over27 * drho;
+   //      //(D.f[T])[kt]=zero;
    //   }
 
    //   q = q_dirNE[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over54* (drho/*+three*( vx1+vx2    )*/+c9over2*( vx1+vx2    )*( vx1+vx2    ) * (one + drho)-cu_sq); 
-   //      (D.f[dirSW])[ksw]=(one-q)/(one+q)*(f_NE-f_SW+(f_NE+f_SW-two*feq*om1)/(one-om1))*c1o2+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q);// - c1over54 * drho;
-   //      //(D.f[dirSW])[ksw]=zero;
+   //      (D.f[SW])[ksw]=(one-q)/(one+q)*(f_NE-f_SW+(f_NE+f_SW-two*feq*om1)/(one-om1))*c1o2+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q);// - c1over54 * drho;
+   //      //(D.f[SW])[ksw]=zero;
    //   }
 
    //   q = q_dirSW[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over54* (drho/*+three*(-vx1-vx2    )*/+c9over2*(-vx1-vx2    )*(-vx1-vx2    ) * (one + drho)-cu_sq); 
-   //      (D.f[dirNE])[kne]=(one-q)/(one+q)*(f_SW-f_NE+(f_SW+f_NE-two*feq*om1)/(one-om1))*c1o2+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q);// - c1over54 * drho;
-   //      //(D.f[dirNE])[kne]=zero;
+   //      (D.f[NE])[kne]=(one-q)/(one+q)*(f_SW-f_NE+(f_SW+f_NE-two*feq*om1)/(one-om1))*c1o2+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q);// - c1over54 * drho;
+   //      //(D.f[NE])[kne]=zero;
    //   }
 
    //   q = q_dirSE[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over54* (drho/*+three*( vx1-vx2    )*/+c9over2*( vx1-vx2    )*( vx1-vx2    ) * (one + drho)-cu_sq); 
-   //      (D.f[dirNW])[knw]=(one-q)/(one+q)*(f_SE-f_NW+(f_SE+f_NW-two*feq*om1)/(one-om1))*c1o2+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q);// - c1over54 * drho;
-   //      //(D.f[dirNW])[knw]=zero;
+   //      (D.f[NW])[knw]=(one-q)/(one+q)*(f_SE-f_NW+(f_SE+f_NW-two*feq*om1)/(one-om1))*c1o2+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q);// - c1over54 * drho;
+   //      //(D.f[NW])[knw]=zero;
    //   }
 
    //   q = q_dirNW[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over54* (drho/*+three*(-vx1+vx2    )*/+c9over2*(-vx1+vx2    )*(-vx1+vx2    ) * (one + drho)-cu_sq); 
-   //      (D.f[dirSE])[kse]=(one-q)/(one+q)*(f_NW-f_SE+(f_NW+f_SE-two*feq*om1)/(one-om1))*c1o2+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q);// - c1over54 * drho;
-   //      //(D.f[dirSE])[kse]=zero;
+   //      (D.f[SE])[kse]=(one-q)/(one+q)*(f_NW-f_SE+(f_NW+f_SE-two*feq*om1)/(one-om1))*c1o2+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q);// - c1over54 * drho;
+   //      //(D.f[SE])[kse]=zero;
    //   }
 
    //   q = q_dirTE[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over54* (drho/*+three*( vx1    +vx3)*/+c9over2*( vx1    +vx3)*( vx1    +vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirBW])[kbw]=(one-q)/(one+q)*(f_TE-f_BW+(f_TE+f_BW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q);// - c1over54 * drho;
-   //      //(D.f[dirBW])[kbw]=zero;
+   //      (D.f[BW])[kbw]=(one-q)/(one+q)*(f_TE-f_BW+(f_TE+f_BW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q);// - c1over54 * drho;
+   //      //(D.f[BW])[kbw]=zero;
    //   }
 
    //   q = q_dirBW[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over54* (drho/*+three*(-vx1    -vx3)*/+c9over2*(-vx1    -vx3)*(-vx1    -vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirTE])[kte]=(one-q)/(one+q)*(f_BW-f_TE+(f_BW+f_TE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q);// - c1over54 * drho;
-   //      //(D.f[dirTE])[kte]=zero;
+   //      (D.f[TE])[kte]=(one-q)/(one+q)*(f_BW-f_TE+(f_BW+f_TE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q);// - c1over54 * drho;
+   //      //(D.f[TE])[kte]=zero;
    //   }
 
    //   q = q_dirBE[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over54* (drho/*+three*( vx1    -vx3)*/+c9over2*( vx1    -vx3)*( vx1    -vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirTW])[ktw]=(one-q)/(one+q)*(f_BE-f_TW+(f_BE+f_TW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q);// - c1over54 * drho;
-   //      //(D.f[dirTW])[ktw]=zero;
+   //      (D.f[TW])[ktw]=(one-q)/(one+q)*(f_BE-f_TW+(f_BE+f_TW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q);// - c1over54 * drho;
+   //      //(D.f[TW])[ktw]=zero;
    //   }
 
    //   q = q_dirTW[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over54* (drho/*+three*(-vx1    +vx3)*/+c9over2*(-vx1    +vx3)*(-vx1    +vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirBE])[kbe]=(one-q)/(one+q)*(f_TW-f_BE+(f_TW+f_BE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q);// - c1over54 * drho;
-   //      //(D.f[dirBE])[kbe]=zero;
+   //      (D.f[BE])[kbe]=(one-q)/(one+q)*(f_TW-f_BE+(f_TW+f_BE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q);// - c1over54 * drho;
+   //      //(D.f[BE])[kbe]=zero;
    //   }
 
    //   q = q_dirTN[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over54* (drho/*+three*(     vx2+vx3)*/+c9over2*(     vx2+vx3)*(     vx2+vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirBS])[kbs]=(one-q)/(one+q)*(f_TN-f_BS+(f_TN+f_BS-two*feq*om1)/(one-om1))*c1o2+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q);// - c1over54 * drho;
-   //      //(D.f[dirBS])[kbs]=zero;
+   //      (D.f[BS])[kbs]=(one-q)/(one+q)*(f_TN-f_BS+(f_TN+f_BS-two*feq*om1)/(one-om1))*c1o2+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q);// - c1over54 * drho;
+   //      //(D.f[BS])[kbs]=zero;
    //   }
 
    //   q = q_dirBS[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over54* (drho/*+three*(    -vx2-vx3)*/+c9over2*(    -vx2-vx3)*(    -vx2-vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirTN])[ktn]=(one-q)/(one+q)*(f_BS-f_TN+(f_BS+f_TN-two*feq*om1)/(one-om1))*c1o2+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q);// - c1over54 * drho;
-   //      //(D.f[dirTN])[ktn]=zero;
+   //      (D.f[TN])[ktn]=(one-q)/(one+q)*(f_BS-f_TN+(f_BS+f_TN-two*feq*om1)/(one-om1))*c1o2+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q);// - c1over54 * drho;
+   //      //(D.f[TN])[ktn]=zero;
    //   }
 
    //   q = q_dirBN[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over54* (drho/*+three*(     vx2-vx3)*/+c9over2*(     vx2-vx3)*(     vx2-vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirTS])[kts]=(one-q)/(one+q)*(f_BN-f_TS+(f_BN+f_TS-two*feq*om1)/(one-om1))*c1o2+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q);// - c1over54 * drho;
-   //      //(D.f[dirTS])[kts]=zero;
+   //      (D.f[TS])[kts]=(one-q)/(one+q)*(f_BN-f_TS+(f_BN+f_TS-two*feq*om1)/(one-om1))*c1o2+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q);// - c1over54 * drho;
+   //      //(D.f[TS])[kts]=zero;
    //   }
 
    //   q = q_dirTS[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over54* (drho/*+three*(    -vx2+vx3)*/+c9over2*(    -vx2+vx3)*(    -vx2+vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirBN])[kbn]=(one-q)/(one+q)*(f_TS-f_BN+(f_TS+f_BN-two*feq*om1)/(one-om1))*c1o2+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q);// - c1over54 * drho;
-   //      //(D.f[dirBN])[kbn]=zero;
+   //      (D.f[BN])[kbn]=(one-q)/(one+q)*(f_TS-f_BN+(f_TS+f_BN-two*feq*om1)/(one-om1))*c1o2+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q);// - c1over54 * drho;
+   //      //(D.f[BN])[kbn]=zero;
    //   }
 
    //   q = q_dirTNE[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over216*(drho/*+three*( vx1+vx2+vx3)*/+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirBSW])[kbsw]=(one-q)/(one+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q);// - c1over216 * drho;
-   //      //(D.f[dirBSW])[kbsw]=zero;
+   //      (D.f[BSW])[kbsw]=(one-q)/(one+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q);// - c1over216 * drho;
+   //      //(D.f[BSW])[kbsw]=zero;
    //   }
 
    //   q = q_dirBSW[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over216*(drho/*+three*(-vx1-vx2-vx3)*/+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirTNE])[ktne]=(one-q)/(one+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q);// - c1over216 * drho;
-   //      //(D.f[dirTNE])[ktne]=zero;
+   //      (D.f[TNE])[ktne]=(one-q)/(one+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q);// - c1over216 * drho;
+   //      //(D.f[TNE])[ktne]=zero;
    //   }
 
    //   q = q_dirBNE[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over216*(drho/*+three*( vx1+vx2-vx3)*/+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirTSW])[ktsw]=(one-q)/(one+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q);// - c1over216 * drho;
-   //      //(D.f[dirTSW])[ktsw]=zero;
+   //      (D.f[TSW])[ktsw]=(one-q)/(one+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q);// - c1over216 * drho;
+   //      //(D.f[TSW])[ktsw]=zero;
    //   }
 
    //   q = q_dirTSW[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over216*(drho/*+three*(-vx1-vx2+vx3)*/+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirBNE])[kbne]=(one-q)/(one+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q);// - c1over216 * drho;
-   //      //(D.f[dirBNE])[kbne]=zero;
+   //      (D.f[BNE])[kbne]=(one-q)/(one+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q);// - c1over216 * drho;
+   //      //(D.f[BNE])[kbne]=zero;
    //   }
 
    //   q = q_dirTSE[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over216*(drho/*+three*( vx1-vx2+vx3)*/+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirBNW])[kbnw]=(one-q)/(one+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q);// - c1over216 * drho;
-   //      //(D.f[dirBNW])[kbnw]=zero;
+   //      (D.f[BNW])[kbnw]=(one-q)/(one+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q);// - c1over216 * drho;
+   //      //(D.f[BNW])[kbnw]=zero;
    //   }
 
    //   q = q_dirBNW[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over216*(drho/*+three*(-vx1+vx2-vx3)*/+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirTSE])[ktse]=(one-q)/(one+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q);// - c1over216 * drho;
-   //      //(D.f[dirTSE])[ktse]=zero;
+   //      (D.f[TSE])[ktse]=(one-q)/(one+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q);// - c1over216 * drho;
+   //      //(D.f[TSE])[ktse]=zero;
    //   }
 
    //   q = q_dirBSE[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over216*(drho/*+three*( vx1-vx2-vx3)*/+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirTNW])[ktnw]=(one-q)/(one+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q);// - c1over216 * drho;
-   //      //(D.f[dirTNW])[ktnw]=zero;
+   //      (D.f[TNW])[ktnw]=(one-q)/(one+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q);// - c1over216 * drho;
+   //      //(D.f[TNW])[ktnw]=zero;
    //   }
 
    //   q = q_dirTNW[k];
    //   if (q>=zero && q<=one)
    //   {
    //      feq=c1over216*(drho/*+three*(-vx1+vx2+vx3)*/+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (one + drho)-cu_sq); 
-   //      (D.f[dirBSE])[kbse]=(one-q)/(one+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q);// - c1over216 * drho;
-   //      //(D.f[dirBSE])[kbse]=zero;
+   //      (D.f[BSE])[kbse]=(one-q)/(one+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q);// - c1over216 * drho;
+   //      //(D.f[BSE])[kbse]=zero;
    //   }
    }
 }
diff --git a/src/gpu/VirtualFluids_GPU/Init/PositionReader.cpp b/src/gpu/VirtualFluids_GPU/Init/PositionReader.cpp
index 52764b357..11792d0c9 100644
--- a/src/gpu/VirtualFluids_GPU/Init/PositionReader.cpp
+++ b/src/gpu/VirtualFluids_GPU/Init/PositionReader.cpp
@@ -139,41 +139,41 @@ void PositionReader::definePropellerQs(Parameter* para)
 	real* QQ                  = para->getParH(para->getFine())->propellerBC.q27[0]; 
 	unsigned int sizeQ           = para->getParH(para->getFine())->propellerBC.numberOfBCnodes; 
 	QforBoundaryConditions Q;
-	Q.q27[dirE   ] = &QQ[dirE   *sizeQ];
-	Q.q27[dirW   ] = &QQ[dirW   *sizeQ];
-	Q.q27[dirN   ] = &QQ[dirN   *sizeQ];
-	Q.q27[dirS   ] = &QQ[dirS   *sizeQ];
-	Q.q27[dirT   ] = &QQ[dirT   *sizeQ];
-	Q.q27[dirB   ] = &QQ[dirB   *sizeQ];
-	Q.q27[dirNE  ] = &QQ[dirNE  *sizeQ];
-	Q.q27[dirSW  ] = &QQ[dirSW  *sizeQ];
-	Q.q27[dirSE  ] = &QQ[dirSE  *sizeQ];
-	Q.q27[dirNW  ] = &QQ[dirNW  *sizeQ];
-	Q.q27[dirTE  ] = &QQ[dirTE  *sizeQ];
-	Q.q27[dirBW  ] = &QQ[dirBW  *sizeQ];
-	Q.q27[dirBE  ] = &QQ[dirBE  *sizeQ];
-	Q.q27[dirTW  ] = &QQ[dirTW  *sizeQ];
-	Q.q27[dirTN  ] = &QQ[dirTN  *sizeQ];
-	Q.q27[dirBS  ] = &QQ[dirBS  *sizeQ];
-	Q.q27[dirBN  ] = &QQ[dirBN  *sizeQ];
-	Q.q27[dirTS  ] = &QQ[dirTS  *sizeQ];
+	Q.q27[E   ] = &QQ[E   *sizeQ];
+	Q.q27[W   ] = &QQ[W   *sizeQ];
+	Q.q27[N   ] = &QQ[N   *sizeQ];
+	Q.q27[S   ] = &QQ[S   *sizeQ];
+	Q.q27[T   ] = &QQ[T   *sizeQ];
+	Q.q27[B   ] = &QQ[B   *sizeQ];
+	Q.q27[NE  ] = &QQ[NE  *sizeQ];
+	Q.q27[SW  ] = &QQ[SW  *sizeQ];
+	Q.q27[SE  ] = &QQ[SE  *sizeQ];
+	Q.q27[NW  ] = &QQ[NW  *sizeQ];
+	Q.q27[TE  ] = &QQ[TE  *sizeQ];
+	Q.q27[BW  ] = &QQ[BW  *sizeQ];
+	Q.q27[BE  ] = &QQ[BE  *sizeQ];
+	Q.q27[TW  ] = &QQ[TW  *sizeQ];
+	Q.q27[TN  ] = &QQ[TN  *sizeQ];
+	Q.q27[BS  ] = &QQ[BS  *sizeQ];
+	Q.q27[BN  ] = &QQ[BN  *sizeQ];
+	Q.q27[TS  ] = &QQ[TS  *sizeQ];
 	Q.q27[dirREST] = &QQ[dirREST*sizeQ];
-	Q.q27[dirTNE ] = &QQ[dirTNE *sizeQ];
-	Q.q27[dirTSW ] = &QQ[dirTSW *sizeQ];
-	Q.q27[dirTSE ] = &QQ[dirTSE *sizeQ];
-	Q.q27[dirTNW ] = &QQ[dirTNW *sizeQ];
-	Q.q27[dirBNE ] = &QQ[dirBNE *sizeQ];
-	Q.q27[dirBSW ] = &QQ[dirBSW *sizeQ];
-	Q.q27[dirBSE ] = &QQ[dirBSE *sizeQ];
-	Q.q27[dirBNW ] = &QQ[dirBNW *sizeQ];
+	Q.q27[TNE ] = &QQ[TNE *sizeQ];
+	Q.q27[TSW ] = &QQ[TSW *sizeQ];
+	Q.q27[TSE ] = &QQ[TSE *sizeQ];
+	Q.q27[TNW ] = &QQ[TNW *sizeQ];
+	Q.q27[BNE ] = &QQ[BNE *sizeQ];
+	Q.q27[BSW ] = &QQ[BSW *sizeQ];
+	Q.q27[BSE ] = &QQ[BSE *sizeQ];
+	Q.q27[BNW ] = &QQ[BNW *sizeQ];
 	//////////////////////////////////////////////////////////////////
 	for(uint u=0; u<para->getParH(para->getFine())->propellerBC.numberOfBCnodes; u++)
 	{
-		for (int dir = dirE; dir<=dirBSW; dir++)
+		for (int dir = E; dir<=BSW; dir++)
 		{
-			if ((dir==dirE)  || 
-				(dir==dirNE) || (dir==dirSE) || (dir==dirTE) || (dir==dirBE) ||
-				(dir==dirTNE)|| (dir==dirBNE)|| (dir==dirTSE)|| (dir==dirBSE))
+			if ((dir==E)  || 
+				(dir==NE) || (dir==SE) || (dir==TE) || (dir==BE) ||
+				(dir==TNE)|| (dir==BNE)|| (dir==TSE)|| (dir==BSE))
 			{
 				Q.q27[dir][u] = 1.0f;
 			} 
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 f853c6104..a45e19e84 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
@@ -37,125 +37,125 @@ extern "C" __global__ void LB_KERNEL_AD_COMP_27(real diffusivity,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			Distributions27 D27;
 			if (EvenOrOdd == true)
 			{
-				D27.f[dirE] = &DD27[dirE   *size_Mat];
-				D27.f[dirW] = &DD27[dirW   *size_Mat];
-				D27.f[dirN] = &DD27[dirN   *size_Mat];
-				D27.f[dirS] = &DD27[dirS   *size_Mat];
-				D27.f[dirT] = &DD27[dirT   *size_Mat];
-				D27.f[dirB] = &DD27[dirB   *size_Mat];
-				D27.f[dirNE] = &DD27[dirNE  *size_Mat];
-				D27.f[dirSW] = &DD27[dirSW  *size_Mat];
-				D27.f[dirSE] = &DD27[dirSE  *size_Mat];
-				D27.f[dirNW] = &DD27[dirNW  *size_Mat];
-				D27.f[dirTE] = &DD27[dirTE  *size_Mat];
-				D27.f[dirBW] = &DD27[dirBW  *size_Mat];
-				D27.f[dirBE] = &DD27[dirBE  *size_Mat];
-				D27.f[dirTW] = &DD27[dirTW  *size_Mat];
-				D27.f[dirTN] = &DD27[dirTN  *size_Mat];
-				D27.f[dirBS] = &DD27[dirBS  *size_Mat];
-				D27.f[dirBN] = &DD27[dirBN  *size_Mat];
-				D27.f[dirTS] = &DD27[dirTS  *size_Mat];
+				D27.f[E] = &DD27[E   *size_Mat];
+				D27.f[W] = &DD27[W   *size_Mat];
+				D27.f[N] = &DD27[N   *size_Mat];
+				D27.f[S] = &DD27[S   *size_Mat];
+				D27.f[T] = &DD27[T   *size_Mat];
+				D27.f[B] = &DD27[B   *size_Mat];
+				D27.f[NE] = &DD27[NE  *size_Mat];
+				D27.f[SW] = &DD27[SW  *size_Mat];
+				D27.f[SE] = &DD27[SE  *size_Mat];
+				D27.f[NW] = &DD27[NW  *size_Mat];
+				D27.f[TE] = &DD27[TE  *size_Mat];
+				D27.f[BW] = &DD27[BW  *size_Mat];
+				D27.f[BE] = &DD27[BE  *size_Mat];
+				D27.f[TW] = &DD27[TW  *size_Mat];
+				D27.f[TN] = &DD27[TN  *size_Mat];
+				D27.f[BS] = &DD27[BS  *size_Mat];
+				D27.f[BN] = &DD27[BN  *size_Mat];
+				D27.f[TS] = &DD27[TS  *size_Mat];
 				D27.f[dirREST] = &DD27[dirREST*size_Mat];
-				D27.f[dirTNE] = &DD27[dirTNE *size_Mat];
-				D27.f[dirTSW] = &DD27[dirTSW *size_Mat];
-				D27.f[dirTSE] = &DD27[dirTSE *size_Mat];
-				D27.f[dirTNW] = &DD27[dirTNW *size_Mat];
-				D27.f[dirBNE] = &DD27[dirBNE *size_Mat];
-				D27.f[dirBSW] = &DD27[dirBSW *size_Mat];
-				D27.f[dirBSE] = &DD27[dirBSE *size_Mat];
-				D27.f[dirBNW] = &DD27[dirBNW *size_Mat];
+				D27.f[TNE] = &DD27[TNE *size_Mat];
+				D27.f[TSW] = &DD27[TSW *size_Mat];
+				D27.f[TSE] = &DD27[TSE *size_Mat];
+				D27.f[TNW] = &DD27[TNW *size_Mat];
+				D27.f[BNE] = &DD27[BNE *size_Mat];
+				D27.f[BSW] = &DD27[BSW *size_Mat];
+				D27.f[BSE] = &DD27[BSE *size_Mat];
+				D27.f[BNW] = &DD27[BNW *size_Mat];
 			}
 			else
 			{
-				D27.f[dirW] = &DD27[dirE   *size_Mat];
-				D27.f[dirE] = &DD27[dirW   *size_Mat];
-				D27.f[dirS] = &DD27[dirN   *size_Mat];
-				D27.f[dirN] = &DD27[dirS   *size_Mat];
-				D27.f[dirB] = &DD27[dirT   *size_Mat];
-				D27.f[dirT] = &DD27[dirB   *size_Mat];
-				D27.f[dirSW] = &DD27[dirNE  *size_Mat];
-				D27.f[dirNE] = &DD27[dirSW  *size_Mat];
-				D27.f[dirNW] = &DD27[dirSE  *size_Mat];
-				D27.f[dirSE] = &DD27[dirNW  *size_Mat];
-				D27.f[dirBW] = &DD27[dirTE  *size_Mat];
-				D27.f[dirTE] = &DD27[dirBW  *size_Mat];
-				D27.f[dirTW] = &DD27[dirBE  *size_Mat];
-				D27.f[dirBE] = &DD27[dirTW  *size_Mat];
-				D27.f[dirBS] = &DD27[dirTN  *size_Mat];
-				D27.f[dirTN] = &DD27[dirBS  *size_Mat];
-				D27.f[dirTS] = &DD27[dirBN  *size_Mat];
-				D27.f[dirBN] = &DD27[dirTS  *size_Mat];
+				D27.f[W] = &DD27[E   *size_Mat];
+				D27.f[E] = &DD27[W   *size_Mat];
+				D27.f[S] = &DD27[N   *size_Mat];
+				D27.f[N] = &DD27[S   *size_Mat];
+				D27.f[B] = &DD27[T   *size_Mat];
+				D27.f[T] = &DD27[B   *size_Mat];
+				D27.f[SW] = &DD27[NE  *size_Mat];
+				D27.f[NE] = &DD27[SW  *size_Mat];
+				D27.f[NW] = &DD27[SE  *size_Mat];
+				D27.f[SE] = &DD27[NW  *size_Mat];
+				D27.f[BW] = &DD27[TE  *size_Mat];
+				D27.f[TE] = &DD27[BW  *size_Mat];
+				D27.f[TW] = &DD27[BE  *size_Mat];
+				D27.f[BE] = &DD27[TW  *size_Mat];
+				D27.f[BS] = &DD27[TN  *size_Mat];
+				D27.f[TN] = &DD27[BS  *size_Mat];
+				D27.f[TS] = &DD27[BN  *size_Mat];
+				D27.f[BN] = &DD27[TS  *size_Mat];
 				D27.f[dirREST] = &DD27[dirREST*size_Mat];
-				D27.f[dirBSW] = &DD27[dirTNE *size_Mat];
-				D27.f[dirBNE] = &DD27[dirTSW *size_Mat];
-				D27.f[dirBNW] = &DD27[dirTSE *size_Mat];
-				D27.f[dirBSE] = &DD27[dirTNW *size_Mat];
-				D27.f[dirTSW] = &DD27[dirBNE *size_Mat];
-				D27.f[dirTNE] = &DD27[dirBSW *size_Mat];
-				D27.f[dirTNW] = &DD27[dirBSE *size_Mat];
-				D27.f[dirTSE] = &DD27[dirBNW *size_Mat];
+				D27.f[BSW] = &DD27[TNE *size_Mat];
+				D27.f[BNE] = &DD27[TSW *size_Mat];
+				D27.f[BNW] = &DD27[TSE *size_Mat];
+				D27.f[BSE] = &DD27[TNW *size_Mat];
+				D27.f[TSW] = &DD27[BNE *size_Mat];
+				D27.f[TNE] = &DD27[BSW *size_Mat];
+				D27.f[TNW] = &DD27[BSE *size_Mat];
+				D27.f[TSE] = &DD27[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -168,61 +168,61 @@ extern "C" __global__ void LB_KERNEL_AD_COMP_27(real diffusivity,
 			unsigned int kbs = neighborZ[ks];
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real fW = (D.f[dirE])[k];//ke
-			real fE = (D.f[dirW])[kw];
-			real fS = (D.f[dirN])[k];//kn
-			real fN = (D.f[dirS])[ks];
-			real fB = (D.f[dirT])[k];//kt
-			real fT = (D.f[dirB])[kb];
-			real fSW = (D.f[dirNE])[k];//kne
-			real fNE = (D.f[dirSW])[ksw];
-			real fNW = (D.f[dirSE])[ks];//kse
-			real fSE = (D.f[dirNW])[kw];//knw
-			real fBW = (D.f[dirTE])[k];//kte
-			real fTE = (D.f[dirBW])[kbw];
-			real fTW = (D.f[dirBE])[kb];//kbe
-			real fBE = (D.f[dirTW])[kw];//ktw
-			real fBS = (D.f[dirTN])[k];//ktn
-			real fTN = (D.f[dirBS])[kbs];
-			real fTS = (D.f[dirBN])[kb];//kbn
-			real fBN = (D.f[dirTS])[ks];//kts
+			real fW = (D.f[E])[k];//ke
+			real fE = (D.f[W])[kw];
+			real fS = (D.f[N])[k];//kn
+			real fN = (D.f[S])[ks];
+			real fB = (D.f[T])[k];//kt
+			real fT = (D.f[B])[kb];
+			real fSW = (D.f[NE])[k];//kne
+			real fNE = (D.f[SW])[ksw];
+			real fNW = (D.f[SE])[ks];//kse
+			real fSE = (D.f[NW])[kw];//knw
+			real fBW = (D.f[TE])[k];//kte
+			real fTE = (D.f[BW])[kbw];
+			real fTW = (D.f[BE])[kb];//kbe
+			real fBE = (D.f[TW])[kw];//ktw
+			real fBS = (D.f[TN])[k];//ktn
+			real fTN = (D.f[BS])[kbs];
+			real fTS = (D.f[BN])[kb];//kbn
+			real fBN = (D.f[TS])[ks];//kts
 			real fZERO = (D.f[dirREST])[k];//kzero
-			real fBSW = (D.f[dirTNE])[k];//ktne
-			real fBNE = (D.f[dirTSW])[ksw];//ktsw
-			real fBNW = (D.f[dirTSE])[ks];//ktse
-			real fBSE = (D.f[dirTNW])[kw];//ktnw
-			real fTSW = (D.f[dirBNE])[kb];//kbne
-			real fTNE = (D.f[dirBSW])[kbsw];
-			real fTNW = (D.f[dirBSE])[kbs];//kbse
-			real fTSE = (D.f[dirBNW])[kbw];//kbnw
+			real fBSW = (D.f[TNE])[k];//ktne
+			real fBNE = (D.f[TSW])[ksw];//ktsw
+			real fBNW = (D.f[TSE])[ks];//ktse
+			real fBSE = (D.f[TNW])[kw];//ktnw
+			real fTSW = (D.f[BNE])[kb];//kbne
+			real fTNE = (D.f[BSW])[kbsw];
+			real fTNW = (D.f[BSE])[kbs];//kbse
+			real fTSE = (D.f[BNW])[kbw];//kbnw
 										   ////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D27.f[dirE])[k];
-			real mfabb = (D27.f[dirW])[kw];
-			real mfbcb = (D27.f[dirN])[k];
-			real mfbab = (D27.f[dirS])[ks];
-			real mfbbc = (D27.f[dirT])[k];
-			real mfbba = (D27.f[dirB])[kb];
-			real mfccb = (D27.f[dirNE])[k];
-			real mfaab = (D27.f[dirSW])[ksw];
-			real mfcab = (D27.f[dirSE])[ks];
-			real mfacb = (D27.f[dirNW])[kw];
-			real mfcbc = (D27.f[dirTE])[k];
-			real mfaba = (D27.f[dirBW])[kbw];
-			real mfcba = (D27.f[dirBE])[kb];
-			real mfabc = (D27.f[dirTW])[kw];
-			real mfbcc = (D27.f[dirTN])[k];
-			real mfbaa = (D27.f[dirBS])[kbs];
-			real mfbca = (D27.f[dirBN])[kb];
-			real mfbac = (D27.f[dirTS])[ks];
+			real mfcbb = (D27.f[E])[k];
+			real mfabb = (D27.f[W])[kw];
+			real mfbcb = (D27.f[N])[k];
+			real mfbab = (D27.f[S])[ks];
+			real mfbbc = (D27.f[T])[k];
+			real mfbba = (D27.f[B])[kb];
+			real mfccb = (D27.f[NE])[k];
+			real mfaab = (D27.f[SW])[ksw];
+			real mfcab = (D27.f[SE])[ks];
+			real mfacb = (D27.f[NW])[kw];
+			real mfcbc = (D27.f[TE])[k];
+			real mfaba = (D27.f[BW])[kbw];
+			real mfcba = (D27.f[BE])[kb];
+			real mfabc = (D27.f[TW])[kw];
+			real mfbcc = (D27.f[TN])[k];
+			real mfbaa = (D27.f[BS])[kbs];
+			real mfbca = (D27.f[BN])[kb];
+			real mfbac = (D27.f[TS])[ks];
 			real mfbbb = (D27.f[dirREST])[k];
-			real mfccc = (D27.f[dirTNE])[k];
-			real mfaac = (D27.f[dirTSW])[ksw];
-			real mfcac = (D27.f[dirTSE])[ks];
-			real mfacc = (D27.f[dirTNW])[kw];
-			real mfcca = (D27.f[dirBNE])[kb];
-			real mfaaa = (D27.f[dirBSW])[kbsw];
-			real mfcaa = (D27.f[dirBSE])[kbs];
-			real mfaca = (D27.f[dirBNW])[kbw];
+			real mfccc = (D27.f[TNE])[k];
+			real mfaac = (D27.f[TSW])[ksw];
+			real mfcac = (D27.f[TSE])[ks];
+			real mfacc = (D27.f[TNW])[kw];
+			real mfcca = (D27.f[BNE])[kb];
+			real mfaaa = (D27.f[BSW])[kbsw];
+			real mfcaa = (D27.f[BSE])[kbs];
+			real mfaca = (D27.f[BNW])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			//Conc
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
@@ -772,33 +772,33 @@ extern "C" __global__ void LB_KERNEL_AD_COMP_27(real diffusivity,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D27.f[dirE])[k] = mfabb;
-			(D27.f[dirW])[kw] = mfcbb;
-			(D27.f[dirN])[k] = mfbab;
-			(D27.f[dirS])[ks] = mfbcb;
-			(D27.f[dirT])[k] = mfbba;
-			(D27.f[dirB])[kb] = mfbbc;
-			(D27.f[dirNE])[k] = mfaab;
-			(D27.f[dirSW])[ksw] = mfccb;
-			(D27.f[dirSE])[ks] = mfacb;
-			(D27.f[dirNW])[kw] = mfcab;
-			(D27.f[dirTE])[k] = mfaba;
-			(D27.f[dirBW])[kbw] = mfcbc;
-			(D27.f[dirBE])[kb] = mfabc;
-			(D27.f[dirTW])[kw] = mfcba;
-			(D27.f[dirTN])[k] = mfbaa;
-			(D27.f[dirBS])[kbs] = mfbcc;
-			(D27.f[dirBN])[kb] = mfbac;
-			(D27.f[dirTS])[ks] = mfbca;
+			(D27.f[E])[k] = mfabb;
+			(D27.f[W])[kw] = mfcbb;
+			(D27.f[N])[k] = mfbab;
+			(D27.f[S])[ks] = mfbcb;
+			(D27.f[T])[k] = mfbba;
+			(D27.f[B])[kb] = mfbbc;
+			(D27.f[NE])[k] = mfaab;
+			(D27.f[SW])[ksw] = mfccb;
+			(D27.f[SE])[ks] = mfacb;
+			(D27.f[NW])[kw] = mfcab;
+			(D27.f[TE])[k] = mfaba;
+			(D27.f[BW])[kbw] = mfcbc;
+			(D27.f[BE])[kb] = mfabc;
+			(D27.f[TW])[kw] = mfcba;
+			(D27.f[TN])[k] = mfbaa;
+			(D27.f[BS])[kbs] = mfbcc;
+			(D27.f[BN])[kb] = mfbac;
+			(D27.f[TS])[ks] = mfbca;
 			(D27.f[dirREST])[k] = mfbbb;
-			(D27.f[dirTNE])[k] = mfaaa;
-			(D27.f[dirTSE])[ks] = mfaca;
-			(D27.f[dirBNE])[kb] = mfaac;
-			(D27.f[dirBSE])[kbs] = mfacc;
-			(D27.f[dirTNW])[kw] = mfcaa;
-			(D27.f[dirTSW])[ksw] = mfcca;
-			(D27.f[dirBNW])[kbw] = mfcac;
-			(D27.f[dirBSW])[kbsw] = mfccc;
+			(D27.f[TNE])[k] = mfaaa;
+			(D27.f[TSE])[ks] = mfaca;
+			(D27.f[BNE])[kb] = mfaac;
+			(D27.f[BSE])[kbs] = mfacc;
+			(D27.f[TNW])[kw] = mfcaa;
+			(D27.f[TSW])[ksw] = mfcca;
+			(D27.f[BNW])[kbw] = mfcac;
+			(D27.f[BSW])[kbsw] = mfccc;
 			////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 c9e0b79d3..21d8816a7 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
@@ -37,63 +37,63 @@ extern "C" __global__ void LB_Kernel_AD_Comp_7(real diffusivity,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			Distributions7 D7;
@@ -128,60 +128,60 @@ extern "C" __global__ void LB_Kernel_AD_Comp_7(real diffusivity,
 			unsigned int kbs = neighborZ[ks];
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real fW = (D.f[dirE])[k];//ke
-			real fE = (D.f[dirW])[kw];
-			real fS = (D.f[dirN])[k];//kn
-			real fN = (D.f[dirS])[ks];
-			real fB = (D.f[dirT])[k];//kt
-			real fT = (D.f[dirB])[kb];
-			real fSW = (D.f[dirNE])[k];//kne
-			real fNE = (D.f[dirSW])[ksw];
-			real fNW = (D.f[dirSE])[ks];//kse
-			real fSE = (D.f[dirNW])[kw];//knw
-			real fBW = (D.f[dirTE])[k];//kte
-			real fTE = (D.f[dirBW])[kbw];
-			real fTW = (D.f[dirBE])[kb];//kbe
-			real fBE = (D.f[dirTW])[kw];//ktw
-			real fBS = (D.f[dirTN])[k];//ktn
-			real fTN = (D.f[dirBS])[kbs];
-			real fTS = (D.f[dirBN])[kb];//kbn
-			real fBN = (D.f[dirTS])[ks];//kts
+			real fW = (D.f[E])[k];//ke
+			real fE = (D.f[W])[kw];
+			real fS = (D.f[N])[k];//kn
+			real fN = (D.f[S])[ks];
+			real fB = (D.f[T])[k];//kt
+			real fT = (D.f[B])[kb];
+			real fSW = (D.f[NE])[k];//kne
+			real fNE = (D.f[SW])[ksw];
+			real fNW = (D.f[SE])[ks];//kse
+			real fSE = (D.f[NW])[kw];//knw
+			real fBW = (D.f[TE])[k];//kte
+			real fTE = (D.f[BW])[kbw];
+			real fTW = (D.f[BE])[kb];//kbe
+			real fBE = (D.f[TW])[kw];//ktw
+			real fBS = (D.f[TN])[k];//ktn
+			real fTN = (D.f[BS])[kbs];
+			real fTS = (D.f[BN])[kb];//kbn
+			real fBN = (D.f[TS])[ks];//kts
 			real fZERO = (D.f[dirREST])[k];//kzero
-			real fBSW = (D.f[dirTNE])[k];//ktne
-			real fBNE = (D.f[dirTSW])[ksw];//ktsw
-			real fBNW = (D.f[dirTSE])[ks];//ktse
-			real fBSE = (D.f[dirTNW])[kw];//ktnw
-			real fTSW = (D.f[dirBNE])[kb];//kbne
-			real fTNE = (D.f[dirBSW])[kbsw];
-			real fTNW = (D.f[dirBSE])[kbs];//kbse
-			real fTSE = (D.f[dirBNW])[kbw];//kbnw
-										   //real fE    =  (D.f[dirE   ])[k  ];//ke
-										   //real fW    =  (D.f[dirW   ])[kw ];
-										   //real fN    =  (D.f[dirN   ])[k  ];//kn
-										   //real fS    =  (D.f[dirS   ])[ks ];
-										   //real fT    =  (D.f[dirT   ])[k  ];//kt
-										   //real fB    =  (D.f[dirB   ])[kb ];
-										   //real fNE   =  (D.f[dirNE  ])[k  ];//kne
-										   //real fSW   =  (D.f[dirSW  ])[ksw];
-										   //real fSE   =  (D.f[dirSE  ])[ks ];//kse
-										   //real fNW   =  (D.f[dirNW  ])[kw ];//knw
-										   //real fTE   =  (D.f[dirTE  ])[k  ];//kte
-										   //real fBW   =  (D.f[dirBW  ])[kbw];
-										   //real fBE   =  (D.f[dirBE  ])[kb ];//kbe
-										   //real fTW   =  (D.f[dirTW  ])[kw ];//ktw
-										   //real fTN   =  (D.f[dirTN  ])[k  ];//ktn
-										   //real fBS   =  (D.f[dirBS  ])[kbs];
-										   //real fBN   =  (D.f[dirBN  ])[kb ];//kbn
-										   //real fTS   =  (D.f[dirTS  ])[ks ];//kts
+			real fBSW = (D.f[TNE])[k];//ktne
+			real fBNE = (D.f[TSW])[ksw];//ktsw
+			real fBNW = (D.f[TSE])[ks];//ktse
+			real fBSE = (D.f[TNW])[kw];//ktnw
+			real fTSW = (D.f[BNE])[kb];//kbne
+			real fTNE = (D.f[BSW])[kbsw];
+			real fTNW = (D.f[BSE])[kbs];//kbse
+			real fTSE = (D.f[BNW])[kbw];//kbnw
+										   //real fE    =  (D.f[E   ])[k  ];//ke
+										   //real fW    =  (D.f[W   ])[kw ];
+										   //real fN    =  (D.f[N   ])[k  ];//kn
+										   //real fS    =  (D.f[S   ])[ks ];
+										   //real fT    =  (D.f[T   ])[k  ];//kt
+										   //real fB    =  (D.f[B   ])[kb ];
+										   //real fNE   =  (D.f[NE  ])[k  ];//kne
+										   //real fSW   =  (D.f[SW  ])[ksw];
+										   //real fSE   =  (D.f[SE  ])[ks ];//kse
+										   //real fNW   =  (D.f[NW  ])[kw ];//knw
+										   //real fTE   =  (D.f[TE  ])[k  ];//kte
+										   //real fBW   =  (D.f[BW  ])[kbw];
+										   //real fBE   =  (D.f[BE  ])[kb ];//kbe
+										   //real fTW   =  (D.f[TW  ])[kw ];//ktw
+										   //real fTN   =  (D.f[TN  ])[k  ];//ktn
+										   //real fBS   =  (D.f[BS  ])[kbs];
+										   //real fBN   =  (D.f[BN  ])[kb ];//kbn
+										   //real fTS   =  (D.f[TS  ])[ks ];//kts
 										   //real fZERO =  (D.f[dirREST])[k  ];//kzero
-										   //real fTNE   = (D.f[dirTNE ])[k  ];//ktne
-										   //real fTSW   = (D.f[dirTSW ])[ksw];//ktsw
-										   //real fTSE   = (D.f[dirTSE ])[ks ];//ktse
-										   //real fTNW   = (D.f[dirTNW ])[kw ];//ktnw
-										   //real fBNE   = (D.f[dirBNE ])[kb ];//kbne
-										   //real fBSW   = (D.f[dirBSW ])[kbsw];
-										   //real fBSE   = (D.f[dirBSE ])[kbs];//kbse
-										   //real fBNW   = (D.f[dirBNW ])[kbw];//kbnw
+										   //real fTNE   = (D.f[TNE ])[k  ];//ktne
+										   //real fTSW   = (D.f[TSW ])[ksw];//ktsw
+										   //real fTSE   = (D.f[TSE ])[ks ];//ktse
+										   //real fTNW   = (D.f[TNW ])[kw ];//ktnw
+										   //real fBNE   = (D.f[BNE ])[kb ];//kbne
+										   //real fBSW   = (D.f[BSW ])[kbsw];
+										   //real fBSE   = (D.f[BSE ])[kbs];//kbse
+										   //real fBNW   = (D.f[BNW ])[kbw];//kbnw
 										   ////////////////////////////////////////////////////////////////////////////////
 			real f7ZERO = (D7.f[0])[k];
 			real f7E = (D7.f[1])[k];
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 1c4748025..1b907c73d 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
@@ -37,125 +37,125 @@ extern "C" __global__ void LB_Kernel_AD_Incomp_27(real diffusivity,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			Distributions27 D27;
 			if (EvenOrOdd == true)
 			{
-				D27.f[dirE] = &DD27[dirE   *size_Mat];
-				D27.f[dirW] = &DD27[dirW   *size_Mat];
-				D27.f[dirN] = &DD27[dirN   *size_Mat];
-				D27.f[dirS] = &DD27[dirS   *size_Mat];
-				D27.f[dirT] = &DD27[dirT   *size_Mat];
-				D27.f[dirB] = &DD27[dirB   *size_Mat];
-				D27.f[dirNE] = &DD27[dirNE  *size_Mat];
-				D27.f[dirSW] = &DD27[dirSW  *size_Mat];
-				D27.f[dirSE] = &DD27[dirSE  *size_Mat];
-				D27.f[dirNW] = &DD27[dirNW  *size_Mat];
-				D27.f[dirTE] = &DD27[dirTE  *size_Mat];
-				D27.f[dirBW] = &DD27[dirBW  *size_Mat];
-				D27.f[dirBE] = &DD27[dirBE  *size_Mat];
-				D27.f[dirTW] = &DD27[dirTW  *size_Mat];
-				D27.f[dirTN] = &DD27[dirTN  *size_Mat];
-				D27.f[dirBS] = &DD27[dirBS  *size_Mat];
-				D27.f[dirBN] = &DD27[dirBN  *size_Mat];
-				D27.f[dirTS] = &DD27[dirTS  *size_Mat];
+				D27.f[E] = &DD27[E   *size_Mat];
+				D27.f[W] = &DD27[W   *size_Mat];
+				D27.f[N] = &DD27[N   *size_Mat];
+				D27.f[S] = &DD27[S   *size_Mat];
+				D27.f[T] = &DD27[T   *size_Mat];
+				D27.f[B] = &DD27[B   *size_Mat];
+				D27.f[NE] = &DD27[NE  *size_Mat];
+				D27.f[SW] = &DD27[SW  *size_Mat];
+				D27.f[SE] = &DD27[SE  *size_Mat];
+				D27.f[NW] = &DD27[NW  *size_Mat];
+				D27.f[TE] = &DD27[TE  *size_Mat];
+				D27.f[BW] = &DD27[BW  *size_Mat];
+				D27.f[BE] = &DD27[BE  *size_Mat];
+				D27.f[TW] = &DD27[TW  *size_Mat];
+				D27.f[TN] = &DD27[TN  *size_Mat];
+				D27.f[BS] = &DD27[BS  *size_Mat];
+				D27.f[BN] = &DD27[BN  *size_Mat];
+				D27.f[TS] = &DD27[TS  *size_Mat];
 				D27.f[dirREST] = &DD27[dirREST*size_Mat];
-				D27.f[dirTNE] = &DD27[dirTNE *size_Mat];
-				D27.f[dirTSW] = &DD27[dirTSW *size_Mat];
-				D27.f[dirTSE] = &DD27[dirTSE *size_Mat];
-				D27.f[dirTNW] = &DD27[dirTNW *size_Mat];
-				D27.f[dirBNE] = &DD27[dirBNE *size_Mat];
-				D27.f[dirBSW] = &DD27[dirBSW *size_Mat];
-				D27.f[dirBSE] = &DD27[dirBSE *size_Mat];
-				D27.f[dirBNW] = &DD27[dirBNW *size_Mat];
+				D27.f[TNE] = &DD27[TNE *size_Mat];
+				D27.f[TSW] = &DD27[TSW *size_Mat];
+				D27.f[TSE] = &DD27[TSE *size_Mat];
+				D27.f[TNW] = &DD27[TNW *size_Mat];
+				D27.f[BNE] = &DD27[BNE *size_Mat];
+				D27.f[BSW] = &DD27[BSW *size_Mat];
+				D27.f[BSE] = &DD27[BSE *size_Mat];
+				D27.f[BNW] = &DD27[BNW *size_Mat];
 			}
 			else
 			{
-				D27.f[dirW] = &DD27[dirE   *size_Mat];
-				D27.f[dirE] = &DD27[dirW   *size_Mat];
-				D27.f[dirS] = &DD27[dirN   *size_Mat];
-				D27.f[dirN] = &DD27[dirS   *size_Mat];
-				D27.f[dirB] = &DD27[dirT   *size_Mat];
-				D27.f[dirT] = &DD27[dirB   *size_Mat];
-				D27.f[dirSW] = &DD27[dirNE  *size_Mat];
-				D27.f[dirNE] = &DD27[dirSW  *size_Mat];
-				D27.f[dirNW] = &DD27[dirSE  *size_Mat];
-				D27.f[dirSE] = &DD27[dirNW  *size_Mat];
-				D27.f[dirBW] = &DD27[dirTE  *size_Mat];
-				D27.f[dirTE] = &DD27[dirBW  *size_Mat];
-				D27.f[dirTW] = &DD27[dirBE  *size_Mat];
-				D27.f[dirBE] = &DD27[dirTW  *size_Mat];
-				D27.f[dirBS] = &DD27[dirTN  *size_Mat];
-				D27.f[dirTN] = &DD27[dirBS  *size_Mat];
-				D27.f[dirTS] = &DD27[dirBN  *size_Mat];
-				D27.f[dirBN] = &DD27[dirTS  *size_Mat];
+				D27.f[W] = &DD27[E   *size_Mat];
+				D27.f[E] = &DD27[W   *size_Mat];
+				D27.f[S] = &DD27[N   *size_Mat];
+				D27.f[N] = &DD27[S   *size_Mat];
+				D27.f[B] = &DD27[T   *size_Mat];
+				D27.f[T] = &DD27[B   *size_Mat];
+				D27.f[SW] = &DD27[NE  *size_Mat];
+				D27.f[NE] = &DD27[SW  *size_Mat];
+				D27.f[NW] = &DD27[SE  *size_Mat];
+				D27.f[SE] = &DD27[NW  *size_Mat];
+				D27.f[BW] = &DD27[TE  *size_Mat];
+				D27.f[TE] = &DD27[BW  *size_Mat];
+				D27.f[TW] = &DD27[BE  *size_Mat];
+				D27.f[BE] = &DD27[TW  *size_Mat];
+				D27.f[BS] = &DD27[TN  *size_Mat];
+				D27.f[TN] = &DD27[BS  *size_Mat];
+				D27.f[TS] = &DD27[BN  *size_Mat];
+				D27.f[BN] = &DD27[TS  *size_Mat];
 				D27.f[dirREST] = &DD27[dirREST*size_Mat];
-				D27.f[dirBSW] = &DD27[dirTNE *size_Mat];
-				D27.f[dirBNE] = &DD27[dirTSW *size_Mat];
-				D27.f[dirBNW] = &DD27[dirTSE *size_Mat];
-				D27.f[dirBSE] = &DD27[dirTNW *size_Mat];
-				D27.f[dirTSW] = &DD27[dirBNE *size_Mat];
-				D27.f[dirTNE] = &DD27[dirBSW *size_Mat];
-				D27.f[dirTNW] = &DD27[dirBSE *size_Mat];
-				D27.f[dirTSE] = &DD27[dirBNW *size_Mat];
+				D27.f[BSW] = &DD27[TNE *size_Mat];
+				D27.f[BNE] = &DD27[TSW *size_Mat];
+				D27.f[BNW] = &DD27[TSE *size_Mat];
+				D27.f[BSE] = &DD27[TNW *size_Mat];
+				D27.f[TSW] = &DD27[BNE *size_Mat];
+				D27.f[TNE] = &DD27[BSW *size_Mat];
+				D27.f[TNW] = &DD27[BSE *size_Mat];
+				D27.f[TSE] = &DD27[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -168,61 +168,61 @@ extern "C" __global__ void LB_Kernel_AD_Incomp_27(real diffusivity,
 			unsigned int kbs = neighborZ[ks];
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real fW = (D.f[dirE])[k];//ke
-			real fE = (D.f[dirW])[kw];
-			real fS = (D.f[dirN])[k];//kn
-			real fN = (D.f[dirS])[ks];
-			real fB = (D.f[dirT])[k];//kt
-			real fT = (D.f[dirB])[kb];
-			real fSW = (D.f[dirNE])[k];//kne
-			real fNE = (D.f[dirSW])[ksw];
-			real fNW = (D.f[dirSE])[ks];//kse
-			real fSE = (D.f[dirNW])[kw];//knw
-			real fBW = (D.f[dirTE])[k];//kte
-			real fTE = (D.f[dirBW])[kbw];
-			real fTW = (D.f[dirBE])[kb];//kbe
-			real fBE = (D.f[dirTW])[kw];//ktw
-			real fBS = (D.f[dirTN])[k];//ktn
-			real fTN = (D.f[dirBS])[kbs];
-			real fTS = (D.f[dirBN])[kb];//kbn
-			real fBN = (D.f[dirTS])[ks];//kts
+			real fW = (D.f[E])[k];//ke
+			real fE = (D.f[W])[kw];
+			real fS = (D.f[N])[k];//kn
+			real fN = (D.f[S])[ks];
+			real fB = (D.f[T])[k];//kt
+			real fT = (D.f[B])[kb];
+			real fSW = (D.f[NE])[k];//kne
+			real fNE = (D.f[SW])[ksw];
+			real fNW = (D.f[SE])[ks];//kse
+			real fSE = (D.f[NW])[kw];//knw
+			real fBW = (D.f[TE])[k];//kte
+			real fTE = (D.f[BW])[kbw];
+			real fTW = (D.f[BE])[kb];//kbe
+			real fBE = (D.f[TW])[kw];//ktw
+			real fBS = (D.f[TN])[k];//ktn
+			real fTN = (D.f[BS])[kbs];
+			real fTS = (D.f[BN])[kb];//kbn
+			real fBN = (D.f[TS])[ks];//kts
 			//real fZERO = (D.f[dirREST])[k];//kzero
-			real fBSW = (D.f[dirTNE])[k];//ktne
-			real fBNE = (D.f[dirTSW])[ksw];//ktsw
-			real fBNW = (D.f[dirTSE])[ks];//ktse
-			real fBSE = (D.f[dirTNW])[kw];//ktnw
-			real fTSW = (D.f[dirBNE])[kb];//kbne
-			real fTNE = (D.f[dirBSW])[kbsw];
-			real fTNW = (D.f[dirBSE])[kbs];//kbse
-			real fTSE = (D.f[dirBNW])[kbw];//kbnw
+			real fBSW = (D.f[TNE])[k];//ktne
+			real fBNE = (D.f[TSW])[ksw];//ktsw
+			real fBNW = (D.f[TSE])[ks];//ktse
+			real fBSE = (D.f[TNW])[kw];//ktnw
+			real fTSW = (D.f[BNE])[kb];//kbne
+			real fTNE = (D.f[BSW])[kbsw];
+			real fTNW = (D.f[BSE])[kbs];//kbse
+			real fTSE = (D.f[BNW])[kbw];//kbnw
 										   ////////////////////////////////////////////////////////////////////////////////
-										   //real f27E    =  (D27.f[dirE   ])[k  ];//ke
-										   //real f27W    =  (D27.f[dirW   ])[kw ];
-										   //real f27N    =  (D27.f[dirN   ])[k  ];//kn
-										   //real f27S    =  (D27.f[dirS   ])[ks ];
-										   //real f27T    =  (D27.f[dirT   ])[k  ];//kt
-										   //real f27B    =  (D27.f[dirB   ])[kb ];
-										   //real f27NE   =  (D27.f[dirNE  ])[k  ];//kne
-										   //real f27SW   =  (D27.f[dirSW  ])[ksw];
-										   //real f27SE   =  (D27.f[dirSE  ])[ks ];//kse
-										   //real f27NW   =  (D27.f[dirNW  ])[kw ];//knw
-										   //real f27TE   =  (D27.f[dirTE  ])[k  ];//kte
-										   //real f27BW   =  (D27.f[dirBW  ])[kbw];
-										   //real f27BE   =  (D27.f[dirBE  ])[kb ];//kbe
-										   //real f27TW   =  (D27.f[dirTW  ])[kw ];//ktw
-										   //real f27TN   =  (D27.f[dirTN  ])[k  ];//ktn
-										   //real f27BS   =  (D27.f[dirBS  ])[kbs];
-										   //real f27BN   =  (D27.f[dirBN  ])[kb ];//kbn
-										   //real f27TS   =  (D27.f[dirTS  ])[ks ];//kts
+										   //real f27E    =  (D27.f[E   ])[k  ];//ke
+										   //real f27W    =  (D27.f[W   ])[kw ];
+										   //real f27N    =  (D27.f[N   ])[k  ];//kn
+										   //real f27S    =  (D27.f[S   ])[ks ];
+										   //real f27T    =  (D27.f[T   ])[k  ];//kt
+										   //real f27B    =  (D27.f[B   ])[kb ];
+										   //real f27NE   =  (D27.f[NE  ])[k  ];//kne
+										   //real f27SW   =  (D27.f[SW  ])[ksw];
+										   //real f27SE   =  (D27.f[SE  ])[ks ];//kse
+										   //real f27NW   =  (D27.f[NW  ])[kw ];//knw
+										   //real f27TE   =  (D27.f[TE  ])[k  ];//kte
+										   //real f27BW   =  (D27.f[BW  ])[kbw];
+										   //real f27BE   =  (D27.f[BE  ])[kb ];//kbe
+										   //real f27TW   =  (D27.f[TW  ])[kw ];//ktw
+										   //real f27TN   =  (D27.f[TN  ])[k  ];//ktn
+										   //real f27BS   =  (D27.f[BS  ])[kbs];
+										   //real f27BN   =  (D27.f[BN  ])[kb ];//kbn
+										   //real f27TS   =  (D27.f[TS  ])[ks ];//kts
 										   //real f27ZERO =  (D27.f[dirREST])[k  ];//kzero
-										   //real f27TNE  =  (D27.f[dirTNE ])[k  ];//ktne
-										   //real f27TSW  =  (D27.f[dirTSW ])[ksw];//ktsw
-										   //real f27TSE  =  (D27.f[dirTSE ])[ks ];//ktse
-										   //real f27TNW  =  (D27.f[dirTNW ])[kw ];//ktnw
-										   //real f27BNE  =  (D27.f[dirBNE ])[kb ];//kbne
-										   //real f27BSW  =  (D27.f[dirBSW ])[kbsw];
-										   //real f27BSE  =  (D27.f[dirBSE ])[kbs];//kbse
-										   //real f27BNW  =  (D27.f[dirBNW ])[kbw];//kbnw
+										   //real f27TNE  =  (D27.f[TNE ])[k  ];//ktne
+										   //real f27TSW  =  (D27.f[TSW ])[ksw];//ktsw
+										   //real f27TSE  =  (D27.f[TSE ])[ks ];//ktse
+										   //real f27TNW  =  (D27.f[TNW ])[kw ];//ktnw
+										   //real f27BNE  =  (D27.f[BNE ])[kb ];//kbne
+										   //real f27BSW  =  (D27.f[BSW ])[kbsw];
+										   //real f27BSE  =  (D27.f[BSE ])[kbs];//kbse
+										   //real f27BNW  =  (D27.f[BNW ])[kbw];//kbnw
 										   ////////////////////////////////////////////////////////////////////////////////
 										   //real vx1     =  ((fTNE-fBSW)+(fBNE-fTSW)+(fTSE-fBNW)+(fBSE-fTNW) +(fNE-fSW)+(fSE-fNW)+(fTE-fBW)+(fBE-fTW)+(fE-fW));
 										   //real vx2     =  ((fTNE-fBSW)+(fBNE-fTSW)+(fBNW-fTSE)+(fTNW-fBSE) +(fNE-fSW)+(fNW-fSE)+(fTN-fBS)+(fBN-fTS)+(fN-fS));
@@ -230,33 +230,33 @@ extern "C" __global__ void LB_Kernel_AD_Incomp_27(real diffusivity,
 										   ////////////////////////////////////////////////////////////////////////////////
 
 
-			real mfcbb = (D27.f[dirE])[k];
-			real mfabb = (D27.f[dirW])[kw];
-			real mfbcb = (D27.f[dirN])[k];
-			real mfbab = (D27.f[dirS])[ks];
-			real mfbbc = (D27.f[dirT])[k];
-			real mfbba = (D27.f[dirB])[kb];
-			real mfccb = (D27.f[dirNE])[k];
-			real mfaab = (D27.f[dirSW])[ksw];
-			real mfcab = (D27.f[dirSE])[ks];
-			real mfacb = (D27.f[dirNW])[kw];
-			real mfcbc = (D27.f[dirTE])[k];
-			real mfaba = (D27.f[dirBW])[kbw];
-			real mfcba = (D27.f[dirBE])[kb];
-			real mfabc = (D27.f[dirTW])[kw];
-			real mfbcc = (D27.f[dirTN])[k];
-			real mfbaa = (D27.f[dirBS])[kbs];
-			real mfbca = (D27.f[dirBN])[kb];
-			real mfbac = (D27.f[dirTS])[ks];
+			real mfcbb = (D27.f[E])[k];
+			real mfabb = (D27.f[W])[kw];
+			real mfbcb = (D27.f[N])[k];
+			real mfbab = (D27.f[S])[ks];
+			real mfbbc = (D27.f[T])[k];
+			real mfbba = (D27.f[B])[kb];
+			real mfccb = (D27.f[NE])[k];
+			real mfaab = (D27.f[SW])[ksw];
+			real mfcab = (D27.f[SE])[ks];
+			real mfacb = (D27.f[NW])[kw];
+			real mfcbc = (D27.f[TE])[k];
+			real mfaba = (D27.f[BW])[kbw];
+			real mfcba = (D27.f[BE])[kb];
+			real mfabc = (D27.f[TW])[kw];
+			real mfbcc = (D27.f[TN])[k];
+			real mfbaa = (D27.f[BS])[kbs];
+			real mfbca = (D27.f[BN])[kb];
+			real mfbac = (D27.f[TS])[ks];
 			real mfbbb = (D27.f[dirREST])[k];
-			real mfccc = (D27.f[dirTNE])[k];
-			real mfaac = (D27.f[dirTSW])[ksw];
-			real mfcac = (D27.f[dirTSE])[ks];
-			real mfacc = (D27.f[dirTNW])[kw];
-			real mfcca = (D27.f[dirBNE])[kb];
-			real mfaaa = (D27.f[dirBSW])[kbsw];
-			real mfcaa = (D27.f[dirBSE])[kbs];
-			real mfaca = (D27.f[dirBNW])[kbw];
+			real mfccc = (D27.f[TNE])[k];
+			real mfaac = (D27.f[TSW])[ksw];
+			real mfcac = (D27.f[TSE])[ks];
+			real mfacc = (D27.f[TNW])[kw];
+			real mfcca = (D27.f[BNE])[kb];
+			real mfaaa = (D27.f[BSW])[kbsw];
+			real mfcaa = (D27.f[BSE])[kbs];
+			real mfaca = (D27.f[BNW])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			//Conc
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
@@ -300,33 +300,33 @@ extern "C" __global__ void LB_Kernel_AD_Incomp_27(real diffusivity,
 			//                  (f27E+f27W)+(f27N+f27S)+(f27T+f27B)+f27ZERO;
 			//real cusq    =  c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
-			//(D27.f[ dirE   ])[k   ] = f27W    *(one-omegaD)+omegaD* c2over27* ConcD*(one+three*(-vx1        )+c9over2*(-vx1        )*(-vx1        )-cusq);                                                                     
-			//(D27.f[ dirW   ])[kw  ] = f27E    *(one-omegaD)+omegaD* c2over27* ConcD*(one+three*( vx1        )+c9over2*( vx1        )*( vx1        )-cusq);                                                                     
-			//(D27.f[ dirN   ])[k   ] = f27S    *(one-omegaD)+omegaD* c2over27* ConcD*(one+three*(   -vx2     )+c9over2*(    -vx2    )*(    -vx2    )-cusq);
-			//(D27.f[ dirS   ])[ks  ] = f27N    *(one-omegaD)+omegaD* c2over27* ConcD*(one+three*(    vx2     )+c9over2*(     vx2    )*(     vx2    )-cusq);
-			//(D27.f[ dirT   ])[k   ] = f27B    *(one-omegaD)+omegaD* c2over27* ConcD*(one+three*(        -vx3)+c9over2*(        -vx3)*(        -vx3)-cusq);
-			//(D27.f[ dirB   ])[kb  ] = f27T    *(one-omegaD)+omegaD* c2over27* ConcD*(one+three*(         vx3)+c9over2*(         vx3)*(         vx3)-cusq);
-			//(D27.f[ dirNE  ])[k   ] = f27SW   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(-vx1-vx2    )+c9over2*(-vx1-vx2    )*(-vx1-vx2    )-cusq);
-			//(D27.f[ dirSW  ])[ksw ] = f27NE   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*( vx1+vx2    )+c9over2*( vx1+vx2    )*( vx1+vx2    )-cusq);
-			//(D27.f[ dirSE  ])[ks  ] = f27NW   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(-vx1+vx2    )+c9over2*(-vx1+vx2    )*(-vx1+vx2    )-cusq);
-			//(D27.f[ dirNW  ])[kw  ] = f27SE   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*( vx1-vx2    )+c9over2*( vx1-vx2    )*( vx1-vx2    )-cusq);
-			//(D27.f[ dirTE  ])[k   ] = f27BW   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(-vx1    -vx3)+c9over2*(-vx1    -vx3)*(-vx1    -vx3)-cusq);
-			//(D27.f[ dirBW  ])[kbw ] = f27TE   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*( vx1    +vx3)+c9over2*( vx1    +vx3)*( vx1    +vx3)-cusq);
-			//(D27.f[ dirBE  ])[kb  ] = f27TW   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(-vx1    +vx3)+c9over2*(-vx1    +vx3)*(-vx1    +vx3)-cusq);
-			//(D27.f[ dirTW  ])[kw  ] = f27BE   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*( vx1    -vx3)+c9over2*( vx1    -vx3)*( vx1    -vx3)-cusq);
-			//(D27.f[ dirTN  ])[k   ] = f27BS   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(    -vx2-vx3)+c9over2*(    -vx2-vx3)*(    -vx2-vx3)-cusq);
-			//(D27.f[ dirBS  ])[kbs ] = f27TN   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(     vx2+vx3)+c9over2*(     vx2+vx3)*(     vx2+vx3)-cusq);
-			//(D27.f[ dirBN  ])[kb  ] = f27TS   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(    -vx2+vx3)+c9over2*(    -vx2+vx3)*(    -vx2+vx3)-cusq);
-			//(D27.f[ dirTS  ])[ks  ] = f27BN   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(     vx2-vx3)+c9over2*(     vx2-vx3)*(     vx2-vx3)-cusq);
+			//(D27.f[ E   ])[k   ] = f27W    *(one-omegaD)+omegaD* c2over27* ConcD*(one+three*(-vx1        )+c9over2*(-vx1        )*(-vx1        )-cusq);                                                                     
+			//(D27.f[ W   ])[kw  ] = f27E    *(one-omegaD)+omegaD* c2over27* ConcD*(one+three*( vx1        )+c9over2*( vx1        )*( vx1        )-cusq);                                                                     
+			//(D27.f[ N   ])[k   ] = f27S    *(one-omegaD)+omegaD* c2over27* ConcD*(one+three*(   -vx2     )+c9over2*(    -vx2    )*(    -vx2    )-cusq);
+			//(D27.f[ S   ])[ks  ] = f27N    *(one-omegaD)+omegaD* c2over27* ConcD*(one+three*(    vx2     )+c9over2*(     vx2    )*(     vx2    )-cusq);
+			//(D27.f[ T   ])[k   ] = f27B    *(one-omegaD)+omegaD* c2over27* ConcD*(one+three*(        -vx3)+c9over2*(        -vx3)*(        -vx3)-cusq);
+			//(D27.f[ B   ])[kb  ] = f27T    *(one-omegaD)+omegaD* c2over27* ConcD*(one+three*(         vx3)+c9over2*(         vx3)*(         vx3)-cusq);
+			//(D27.f[ NE  ])[k   ] = f27SW   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(-vx1-vx2    )+c9over2*(-vx1-vx2    )*(-vx1-vx2    )-cusq);
+			//(D27.f[ SW  ])[ksw ] = f27NE   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*( vx1+vx2    )+c9over2*( vx1+vx2    )*( vx1+vx2    )-cusq);
+			//(D27.f[ SE  ])[ks  ] = f27NW   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(-vx1+vx2    )+c9over2*(-vx1+vx2    )*(-vx1+vx2    )-cusq);
+			//(D27.f[ NW  ])[kw  ] = f27SE   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*( vx1-vx2    )+c9over2*( vx1-vx2    )*( vx1-vx2    )-cusq);
+			//(D27.f[ TE  ])[k   ] = f27BW   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(-vx1    -vx3)+c9over2*(-vx1    -vx3)*(-vx1    -vx3)-cusq);
+			//(D27.f[ BW  ])[kbw ] = f27TE   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*( vx1    +vx3)+c9over2*( vx1    +vx3)*( vx1    +vx3)-cusq);
+			//(D27.f[ BE  ])[kb  ] = f27TW   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(-vx1    +vx3)+c9over2*(-vx1    +vx3)*(-vx1    +vx3)-cusq);
+			//(D27.f[ TW  ])[kw  ] = f27BE   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*( vx1    -vx3)+c9over2*( vx1    -vx3)*( vx1    -vx3)-cusq);
+			//(D27.f[ TN  ])[k   ] = f27BS   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(    -vx2-vx3)+c9over2*(    -vx2-vx3)*(    -vx2-vx3)-cusq);
+			//(D27.f[ BS  ])[kbs ] = f27TN   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(     vx2+vx3)+c9over2*(     vx2+vx3)*(     vx2+vx3)-cusq);
+			//(D27.f[ BN  ])[kb  ] = f27TS   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(    -vx2+vx3)+c9over2*(    -vx2+vx3)*(    -vx2+vx3)-cusq);
+			//(D27.f[ TS  ])[ks  ] = f27BN   *(one-omegaD)+omegaD* c1over54* ConcD*(one+three*(     vx2-vx3)+c9over2*(     vx2-vx3)*(     vx2-vx3)-cusq);
 			//(D27.f[ dirREST])[k   ] = f27ZERO *(one-omegaD)+omegaD* c8over27* ConcD*(one-cusq);
-			//(D27.f[ dirTNE ])[k   ] = f27BSW  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*(-vx1-vx2-vx3)+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cusq);
-			//(D27.f[ dirTSE ])[ks  ] = f27BNW  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cusq);
-			//(D27.f[ dirBNE ])[kb  ] = f27TSW  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*(-vx1-vx2+vx3)+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cusq);
-			//(D27.f[ dirBSE ])[kbs ] = f27TNW  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cusq);
-			//(D27.f[ dirTNW ])[kw  ] = f27BSE  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cusq);
-			//(D27.f[ dirTSW ])[ksw ] = f27BNE  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*( vx1+vx2-vx3)+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cusq);
-			//(D27.f[ dirBNW ])[kbw ] = f27TSE  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*( vx1-vx2+vx3)+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cusq);
-			//(D27.f[ dirBSW ])[kbsw] = f27TNE  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*( vx1+vx2+vx3)+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cusq);
+			//(D27.f[ TNE ])[k   ] = f27BSW  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*(-vx1-vx2-vx3)+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cusq);
+			//(D27.f[ TSE ])[ks  ] = f27BNW  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cusq);
+			//(D27.f[ BNE ])[kb  ] = f27TSW  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*(-vx1-vx2+vx3)+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cusq);
+			//(D27.f[ BSE ])[kbs ] = f27TNW  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cusq);
+			//(D27.f[ TNW ])[kw  ] = f27BSE  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cusq);
+			//(D27.f[ TSW ])[ksw ] = f27BNE  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*( vx1+vx2-vx3)+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cusq);
+			//(D27.f[ BNW ])[kbw ] = f27TSE  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*( vx1-vx2+vx3)+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cusq);
+			//(D27.f[ BSW ])[kbsw] = f27TNE  *(one-omegaD)+omegaD* c1over216*ConcD*(one+three*( vx1+vx2+vx3)+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cusq);
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 			real oMdrho = c0o1;//one; // comp special
@@ -860,33 +860,33 @@ extern "C" __global__ void LB_Kernel_AD_Incomp_27(real diffusivity,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D27.f[dirE])[k] = mfabb;
-			(D27.f[dirW])[kw] = mfcbb;
-			(D27.f[dirN])[k] = mfbab;
-			(D27.f[dirS])[ks] = mfbcb;
-			(D27.f[dirT])[k] = mfbba;
-			(D27.f[dirB])[kb] = mfbbc;
-			(D27.f[dirNE])[k] = mfaab;
-			(D27.f[dirSW])[ksw] = mfccb;
-			(D27.f[dirSE])[ks] = mfacb;
-			(D27.f[dirNW])[kw] = mfcab;
-			(D27.f[dirTE])[k] = mfaba;
-			(D27.f[dirBW])[kbw] = mfcbc;
-			(D27.f[dirBE])[kb] = mfabc;
-			(D27.f[dirTW])[kw] = mfcba;
-			(D27.f[dirTN])[k] = mfbaa;
-			(D27.f[dirBS])[kbs] = mfbcc;
-			(D27.f[dirBN])[kb] = mfbac;
-			(D27.f[dirTS])[ks] = mfbca;
+			(D27.f[E])[k] = mfabb;
+			(D27.f[W])[kw] = mfcbb;
+			(D27.f[N])[k] = mfbab;
+			(D27.f[S])[ks] = mfbcb;
+			(D27.f[T])[k] = mfbba;
+			(D27.f[B])[kb] = mfbbc;
+			(D27.f[NE])[k] = mfaab;
+			(D27.f[SW])[ksw] = mfccb;
+			(D27.f[SE])[ks] = mfacb;
+			(D27.f[NW])[kw] = mfcab;
+			(D27.f[TE])[k] = mfaba;
+			(D27.f[BW])[kbw] = mfcbc;
+			(D27.f[BE])[kb] = mfabc;
+			(D27.f[TW])[kw] = mfcba;
+			(D27.f[TN])[k] = mfbaa;
+			(D27.f[BS])[kbs] = mfbcc;
+			(D27.f[BN])[kb] = mfbac;
+			(D27.f[TS])[ks] = mfbca;
 			(D27.f[dirREST])[k] = mfbbb;
-			(D27.f[dirTNE])[k] = mfaaa;
-			(D27.f[dirTSE])[ks] = mfaca;
-			(D27.f[dirBNE])[kb] = mfaac;
-			(D27.f[dirBSE])[kbs] = mfacc;
-			(D27.f[dirTNW])[kw] = mfcaa;
-			(D27.f[dirTSW])[ksw] = mfcca;
-			(D27.f[dirBNW])[kbw] = mfcac;
-			(D27.f[dirBSW])[kbsw] = mfccc;
+			(D27.f[TNE])[k] = mfaaa;
+			(D27.f[TSE])[ks] = mfaca;
+			(D27.f[BNE])[kb] = mfaac;
+			(D27.f[BSE])[kbs] = mfacc;
+			(D27.f[TNW])[kw] = mfcaa;
+			(D27.f[TSW])[ksw] = mfcca;
+			(D27.f[BNW])[kbw] = mfcac;
+			(D27.f[BSW])[kbsw] = mfccc;
 			////////////////////////////////////////////////////////////////////////////////////
 
 		}
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 3ddcaa22d..0e38831bb 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
@@ -37,63 +37,63 @@ extern "C" __global__ void LB_Kernel_AD_Incomp_7(real diffusivity,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			Distributions7 D7;
@@ -128,60 +128,60 @@ extern "C" __global__ void LB_Kernel_AD_Incomp_7(real diffusivity,
 			unsigned int kbs = neighborZ[ks];
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real fW = (D.f[dirE])[k];//ke
-			real fE = (D.f[dirW])[kw];
-			real fS = (D.f[dirN])[k];//kn
-			real fN = (D.f[dirS])[ks];
-			real fB = (D.f[dirT])[k];//kt
-			real fT = (D.f[dirB])[kb];
-			real fSW = (D.f[dirNE])[k];//kne
-			real fNE = (D.f[dirSW])[ksw];
-			real fNW = (D.f[dirSE])[ks];//kse
-			real fSE = (D.f[dirNW])[kw];//knw
-			real fBW = (D.f[dirTE])[k];//kte
-			real fTE = (D.f[dirBW])[kbw];
-			real fTW = (D.f[dirBE])[kb];//kbe
-			real fBE = (D.f[dirTW])[kw];//ktw
-			real fBS = (D.f[dirTN])[k];//ktn
-			real fTN = (D.f[dirBS])[kbs];
-			real fTS = (D.f[dirBN])[kb];//kbn
-			real fBN = (D.f[dirTS])[ks];//kts
+			real fW = (D.f[E])[k];//ke
+			real fE = (D.f[W])[kw];
+			real fS = (D.f[N])[k];//kn
+			real fN = (D.f[S])[ks];
+			real fB = (D.f[T])[k];//kt
+			real fT = (D.f[B])[kb];
+			real fSW = (D.f[NE])[k];//kne
+			real fNE = (D.f[SW])[ksw];
+			real fNW = (D.f[SE])[ks];//kse
+			real fSE = (D.f[NW])[kw];//knw
+			real fBW = (D.f[TE])[k];//kte
+			real fTE = (D.f[BW])[kbw];
+			real fTW = (D.f[BE])[kb];//kbe
+			real fBE = (D.f[TW])[kw];//ktw
+			real fBS = (D.f[TN])[k];//ktn
+			real fTN = (D.f[BS])[kbs];
+			real fTS = (D.f[BN])[kb];//kbn
+			real fBN = (D.f[TS])[ks];//kts
 			//real fZERO = (D.f[dirREST])[k];//kzero
-			real fBSW = (D.f[dirTNE])[k];//ktne
-			real fBNE = (D.f[dirTSW])[ksw];//ktsw
-			real fBNW = (D.f[dirTSE])[ks];//ktse
-			real fBSE = (D.f[dirTNW])[kw];//ktnw
-			real fTSW = (D.f[dirBNE])[kb];//kbne
-			real fTNE = (D.f[dirBSW])[kbsw];
-			real fTNW = (D.f[dirBSE])[kbs];//kbse
-			real fTSE = (D.f[dirBNW])[kbw];//kbnw
-										   //real fE    =  (D.f[dirE   ])[k  ];//ke
-										   //real fW    =  (D.f[dirW   ])[kw ];
-										   //real fN    =  (D.f[dirN   ])[k  ];//kn
-										   //real fS    =  (D.f[dirS   ])[ks ];
-										   //real fT    =  (D.f[dirT   ])[k  ];//kt
-										   //real fB    =  (D.f[dirB   ])[kb ];
-										   //real fNE   =  (D.f[dirNE  ])[k  ];//kne
-										   //real fSW   =  (D.f[dirSW  ])[ksw];
-										   //real fSE   =  (D.f[dirSE  ])[ks ];//kse
-										   //real fNW   =  (D.f[dirNW  ])[kw ];//knw
-										   //real fTE   =  (D.f[dirTE  ])[k  ];//kte
-										   //real fBW   =  (D.f[dirBW  ])[kbw];
-										   //real fBE   =  (D.f[dirBE  ])[kb ];//kbe
-										   //real fTW   =  (D.f[dirTW  ])[kw ];//ktw
-										   //real fTN   =  (D.f[dirTN  ])[k  ];//ktn
-										   //real fBS   =  (D.f[dirBS  ])[kbs];
-										   //real fBN   =  (D.f[dirBN  ])[kb ];//kbn
-										   //real fTS   =  (D.f[dirTS  ])[ks ];//kts
+			real fBSW = (D.f[TNE])[k];//ktne
+			real fBNE = (D.f[TSW])[ksw];//ktsw
+			real fBNW = (D.f[TSE])[ks];//ktse
+			real fBSE = (D.f[TNW])[kw];//ktnw
+			real fTSW = (D.f[BNE])[kb];//kbne
+			real fTNE = (D.f[BSW])[kbsw];
+			real fTNW = (D.f[BSE])[kbs];//kbse
+			real fTSE = (D.f[BNW])[kbw];//kbnw
+										   //real fE    =  (D.f[E   ])[k  ];//ke
+										   //real fW    =  (D.f[W   ])[kw ];
+										   //real fN    =  (D.f[N   ])[k  ];//kn
+										   //real fS    =  (D.f[S   ])[ks ];
+										   //real fT    =  (D.f[T   ])[k  ];//kt
+										   //real fB    =  (D.f[B   ])[kb ];
+										   //real fNE   =  (D.f[NE  ])[k  ];//kne
+										   //real fSW   =  (D.f[SW  ])[ksw];
+										   //real fSE   =  (D.f[SE  ])[ks ];//kse
+										   //real fNW   =  (D.f[NW  ])[kw ];//knw
+										   //real fTE   =  (D.f[TE  ])[k  ];//kte
+										   //real fBW   =  (D.f[BW  ])[kbw];
+										   //real fBE   =  (D.f[BE  ])[kb ];//kbe
+										   //real fTW   =  (D.f[TW  ])[kw ];//ktw
+										   //real fTN   =  (D.f[TN  ])[k  ];//ktn
+										   //real fBS   =  (D.f[BS  ])[kbs];
+										   //real fBN   =  (D.f[BN  ])[kb ];//kbn
+										   //real fTS   =  (D.f[TS  ])[ks ];//kts
 										   //real fZERO =  (D.f[dirREST])[k  ];//kzero
-										   //real fTNE   = (D.f[dirTNE ])[k  ];//ktne
-										   //real fTSW   = (D.f[dirTSW ])[ksw];//ktsw
-										   //real fTSE   = (D.f[dirTSE ])[ks ];//ktse
-										   //real fTNW   = (D.f[dirTNW ])[kw ];//ktnw
-										   //real fBNE   = (D.f[dirBNE ])[kb ];//kbne
-										   //real fBSW   = (D.f[dirBSW ])[kbsw];
-										   //real fBSE   = (D.f[dirBSE ])[kbs];//kbse
-										   //real fBNW   = (D.f[dirBNW ])[kbw];//kbnw
+										   //real fTNE   = (D.f[TNE ])[k  ];//ktne
+										   //real fTSW   = (D.f[TSW ])[ksw];//ktsw
+										   //real fTSE   = (D.f[TSE ])[ks ];//ktse
+										   //real fTNW   = (D.f[TNW ])[kw ];//ktnw
+										   //real fBNE   = (D.f[BNE ])[kb ];//kbne
+										   //real fBSW   = (D.f[BSW ])[kbsw];
+										   //real fBSE   = (D.f[BSE ])[kbs];//kbse
+										   //real fBNW   = (D.f[BNW ])[kbw];//kbnw
 										   ////////////////////////////////////////////////////////////////////////////////
 			real f7ZERO = (D7.f[0])[k];
 			real f7E = (D7.f[1])[k];
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 3829aac1e..38a6dedd8 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
@@ -37,63 +37,63 @@ extern "C" __global__ void LB_Kernel_BGK_Comp_SP_27(	real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -126,33 +126,33 @@ extern "C" __global__ void LB_Kernel_BGK_Comp_SP_27(	real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real fE = (D.f[dirE])[k];//ke
-			real fW = (D.f[dirW])[kw];
-			real fN = (D.f[dirN])[k];//kn
-			real fS = (D.f[dirS])[ks];
-			real fT = (D.f[dirT])[k];//kt
-			real fB = (D.f[dirB])[kb];
-			real fNE = (D.f[dirNE])[k];//kne
-			real fSW = (D.f[dirSW])[ksw];
-			real fSE = (D.f[dirSE])[ks];//kse
-			real fNW = (D.f[dirNW])[kw];//knw
-			real fTE = (D.f[dirTE])[k];//kte
-			real fBW = (D.f[dirBW])[kbw];
-			real fBE = (D.f[dirBE])[kb];//kbe
-			real fTW = (D.f[dirTW])[kw];//ktw
-			real fTN = (D.f[dirTN])[k];//ktn
-			real fBS = (D.f[dirBS])[kbs];
-			real fBN = (D.f[dirBN])[kb];//kbn
-			real fTS = (D.f[dirTS])[ks];//kts
+			real fE = (D.f[E])[k];//ke
+			real fW = (D.f[W])[kw];
+			real fN = (D.f[N])[k];//kn
+			real fS = (D.f[S])[ks];
+			real fT = (D.f[T])[k];//kt
+			real fB = (D.f[B])[kb];
+			real fNE = (D.f[NE])[k];//kne
+			real fSW = (D.f[SW])[ksw];
+			real fSE = (D.f[SE])[ks];//kse
+			real fNW = (D.f[NW])[kw];//knw
+			real fTE = (D.f[TE])[k];//kte
+			real fBW = (D.f[BW])[kbw];
+			real fBE = (D.f[BE])[kb];//kbe
+			real fTW = (D.f[TW])[kw];//ktw
+			real fTN = (D.f[TN])[k];//ktn
+			real fBS = (D.f[BS])[kbs];
+			real fBN = (D.f[BN])[kb];//kbn
+			real fTS = (D.f[TS])[ks];//kts
 			real fZERO = (D.f[dirREST])[k];//kzero
-			real fTNE = (D.f[dirTNE])[k];//ktne
-			real fTSW = (D.f[dirTSW])[ksw];//ktsw
-			real fTSE = (D.f[dirTSE])[ks];//ktse
-			real fTNW = (D.f[dirTNW])[kw];//ktnw
-			real fBNE = (D.f[dirBNE])[kb];//kbne
-			real fBSW = (D.f[dirBSW])[kbsw];
-			real fBSE = (D.f[dirBSE])[kbs];//kbse
-			real fBNW = (D.f[dirBNW])[kbw];//kbnw
+			real fTNE = (D.f[TNE])[k];//ktne
+			real fTSW = (D.f[TSW])[ksw];//ktsw
+			real fTSE = (D.f[TSE])[ks];//ktse
+			real fTNW = (D.f[TNW])[kw];//ktnw
+			real fBNE = (D.f[BNE])[kb];//kbne
+			real fBSW = (D.f[BSW])[kbsw];
+			real fBSE = (D.f[BSE])[kbs];//kbse
+			real fBNW = (D.f[BNW])[kbw];//kbnw
 										   ////////////////////////////////////////////////////////////////////////////////
 			real drho = (fTNE + fBSW) + (fTSW + fBNE) + (fTSE + fBNW) + (fTNW + fBSE) + (fNE + fSW) + (fNW + fSE) + (fTE + fBW) + (fBE + fTW) + (fTN + fBS) + (fBN + fTS) + (fE + fW) + (fN + fS) + (fT + fB) + fZERO;
 			real rho = drho + c1o1;
@@ -209,33 +209,33 @@ extern "C" __global__ void LB_Kernel_BGK_Comp_SP_27(	real omega,
 
 
 			//////////////////////////////////////////////////////////////////////////                            
-			(D.f[dirE])[k] = fW;
-			(D.f[dirW])[kw] = fE;
-			(D.f[dirN])[k] = fS;
-			(D.f[dirS])[ks] = fN;
-			(D.f[dirT])[k] = fB;
-			(D.f[dirB])[kb] = fT;
-			(D.f[dirNE])[k] = fSW;
-			(D.f[dirSW])[ksw] = fNE;
-			(D.f[dirSE])[ks] = fNW;
-			(D.f[dirNW])[kw] = fSE;
-			(D.f[dirTE])[k] = fBW;
-			(D.f[dirBW])[kbw] = fTE;
-			(D.f[dirBE])[kb] = fTW;
-			(D.f[dirTW])[kw] = fBE;
-			(D.f[dirTN])[k] = fBS;
-			(D.f[dirBS])[kbs] = fTN;
-			(D.f[dirBN])[kb] = fTS;
-			(D.f[dirTS])[ks] = fBN;
+			(D.f[E])[k] = fW;
+			(D.f[W])[kw] = fE;
+			(D.f[N])[k] = fS;
+			(D.f[S])[ks] = fN;
+			(D.f[T])[k] = fB;
+			(D.f[B])[kb] = fT;
+			(D.f[NE])[k] = fSW;
+			(D.f[SW])[ksw] = fNE;
+			(D.f[SE])[ks] = fNW;
+			(D.f[NW])[kw] = fSE;
+			(D.f[TE])[k] = fBW;
+			(D.f[BW])[kbw] = fTE;
+			(D.f[BE])[kb] = fTW;
+			(D.f[TW])[kw] = fBE;
+			(D.f[TN])[k] = fBS;
+			(D.f[BS])[kbs] = fTN;
+			(D.f[BN])[kb] = fTS;
+			(D.f[TS])[ks] = fBN;
 			(D.f[dirREST])[k] = fZERO;
-			(D.f[dirTNE])[k] = fBSW;
-			(D.f[dirTSE])[ks] = fBNW;
-			(D.f[dirBNE])[kb] = fTSW;
-			(D.f[dirBSE])[kbs] = fTNW;
-			(D.f[dirTNW])[kw] = fBSE;
-			(D.f[dirTSW])[ksw] = fBNE;
-			(D.f[dirBNW])[kbw] = fTSE;
-			(D.f[dirBSW])[kbsw] = fTNE;
+			(D.f[TNE])[k] = fBSW;
+			(D.f[TSE])[ks] = fBNW;
+			(D.f[BNE])[kb] = fTSW;
+			(D.f[BSE])[kbs] = fTNW;
+			(D.f[TNW])[kw] = fBSE;
+			(D.f[TSW])[ksw] = fBNE;
+			(D.f[BNW])[kbw] = fTSE;
+			(D.f[BSW])[kbsw] = fTNE;
 			//////////////////////////////////////////////////////////////////////////                            
 		}
 	}
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 7e049436e..f021194d2 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
@@ -37,63 +37,63 @@ extern "C" __global__ void LB_Kernel_BGK_Plus_Comp_SP_27(
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -126,33 +126,33 @@ extern "C" __global__ void LB_Kernel_BGK_Plus_Comp_SP_27(
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 											//slow
 											//real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
@@ -792,33 +792,33 @@ extern "C" __global__ void LB_Kernel_BGK_Plus_Comp_SP_27(
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 a60faa191..ae48cb6c2 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
@@ -36,63 +36,63 @@ extern "C" __global__ void LB_Kernel_Cascade_Comp_SP_27(real omega,
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -125,33 +125,33 @@ extern "C" __global__ void LB_Kernel_Cascade_Comp_SP_27(real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];//[ke   ];
-			real mfabb = (D.f[dirW   ])[kw ];//[kw   ];
-			real mfbcb = (D.f[dirN   ])[k  ];//[kn   ];
-			real mfbab = (D.f[dirS   ])[ks ];//[ks   ];
-			real mfbbc = (D.f[dirT   ])[k  ];//[kt   ];
-			real mfbba = (D.f[dirB   ])[kb ];//[kb   ];
-			real mfccb = (D.f[dirNE  ])[k  ];//[kne  ];
-			real mfaab = (D.f[dirSW  ])[ksw];//[ksw  ];
-			real mfcab = (D.f[dirSE  ])[ks ];//[kse  ];
-			real mfacb = (D.f[dirNW  ])[kw ];//[knw  ];
-			real mfcbc = (D.f[dirTE  ])[k  ];//[kte  ];
-			real mfaba = (D.f[dirBW  ])[kbw];//[kbw  ];
-			real mfcba = (D.f[dirBE  ])[kb ];//[kbe  ];
-			real mfabc = (D.f[dirTW  ])[kw ];//[ktw  ];
-			real mfbcc = (D.f[dirTN  ])[k  ];//[ktn  ];
-			real mfbaa = (D.f[dirBS  ])[kbs];//[kbs  ];
-			real mfbca = (D.f[dirBN  ])[kb ];//[kbn  ];
-			real mfbac = (D.f[dirTS  ])[ks ];//[kts  ];
+			real mfcbb = (D.f[E   ])[k  ];//[ke   ];
+			real mfabb = (D.f[W   ])[kw ];//[kw   ];
+			real mfbcb = (D.f[N   ])[k  ];//[kn   ];
+			real mfbab = (D.f[S   ])[ks ];//[ks   ];
+			real mfbbc = (D.f[T   ])[k  ];//[kt   ];
+			real mfbba = (D.f[B   ])[kb ];//[kb   ];
+			real mfccb = (D.f[NE  ])[k  ];//[kne  ];
+			real mfaab = (D.f[SW  ])[ksw];//[ksw  ];
+			real mfcab = (D.f[SE  ])[ks ];//[kse  ];
+			real mfacb = (D.f[NW  ])[kw ];//[knw  ];
+			real mfcbc = (D.f[TE  ])[k  ];//[kte  ];
+			real mfaba = (D.f[BW  ])[kbw];//[kbw  ];
+			real mfcba = (D.f[BE  ])[kb ];//[kbe  ];
+			real mfabc = (D.f[TW  ])[kw ];//[ktw  ];
+			real mfbcc = (D.f[TN  ])[k  ];//[ktn  ];
+			real mfbaa = (D.f[BS  ])[kbs];//[kbs  ];
+			real mfbca = (D.f[BN  ])[kb ];//[kbn  ];
+			real mfbac = (D.f[TS  ])[ks ];//[kts  ];
 			real mfbbb = (D.f[dirREST])[k  ];//[kzero];
-			real mfccc = (D.f[dirTNE ])[k  ];//[ktne ];
-			real mfaac = (D.f[dirTSW ])[ksw];//[ktsw ];
-			real mfcac = (D.f[dirTSE ])[ks ];//[ktse ];
-			real mfacc = (D.f[dirTNW ])[kw ];//[ktnw ];
-			real mfcca = (D.f[dirBNE ])[kb ];//[kbne ];
-			real mfaaa = (D.f[dirBSW ])[kbsw];//[kbsw ]
-			real mfcaa = (D.f[dirBSE ])[kbs];//[kbse ];
-			real mfaca = (D.f[dirBNW ])[kbw];//[kbnw ];
+			real mfccc = (D.f[TNE ])[k  ];//[ktne ];
+			real mfaac = (D.f[TSW ])[ksw];//[ktsw ];
+			real mfcac = (D.f[TSE ])[ks ];//[ktse ];
+			real mfacc = (D.f[TNW ])[kw ];//[ktnw ];
+			real mfcca = (D.f[BNE ])[kb ];//[kbne ];
+			real mfaaa = (D.f[BSW ])[kbsw];//[kbsw ]
+			real mfcaa = (D.f[BSE ])[kbs];//[kbse ];
+			real mfaca = (D.f[BNW ])[kbw];//[kbnw ];
 			////////////////////////////////////////////////////////////////////////////////////
 			real rho = (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + 
 						   mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb +
@@ -732,33 +732,33 @@ extern "C" __global__ void LB_Kernel_Cascade_Comp_SP_27(real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[ dirE   ])[k   ] = mfabb;                                                                     
-			(D.f[ dirW   ])[kw  ] = mfcbb;                                                                   
-			(D.f[ dirN   ])[k   ] = mfbab;
-			(D.f[ dirS   ])[ks  ] = mfbcb;
-			(D.f[ dirT   ])[k   ] = mfbba;
-			(D.f[ dirB   ])[kb  ] = mfbbc;
-			(D.f[ dirNE  ])[k   ] = mfaab;
-			(D.f[ dirSW  ])[ksw ] = mfccb;
-			(D.f[ dirSE  ])[ks  ] = mfacb;
-			(D.f[ dirNW  ])[kw  ] = mfcab;
-			(D.f[ dirTE  ])[k   ] = mfaba;
-			(D.f[ dirBW  ])[kbw ] = mfcbc;
-			(D.f[ dirBE  ])[kb  ] = mfabc;
-			(D.f[ dirTW  ])[kw  ] = mfcba;
-			(D.f[ dirTN  ])[k   ] = mfbaa;
-			(D.f[ dirBS  ])[kbs ] = mfbcc;
-			(D.f[ dirBN  ])[kb  ] = mfbac;
-			(D.f[ dirTS  ])[ks  ] = mfbca;
+			(D.f[ E   ])[k   ] = mfabb;                                                                     
+			(D.f[ W   ])[kw  ] = mfcbb;                                                                   
+			(D.f[ N   ])[k   ] = mfbab;
+			(D.f[ S   ])[ks  ] = mfbcb;
+			(D.f[ T   ])[k   ] = mfbba;
+			(D.f[ B   ])[kb  ] = mfbbc;
+			(D.f[ NE  ])[k   ] = mfaab;
+			(D.f[ SW  ])[ksw ] = mfccb;
+			(D.f[ SE  ])[ks  ] = mfacb;
+			(D.f[ NW  ])[kw  ] = mfcab;
+			(D.f[ TE  ])[k   ] = mfaba;
+			(D.f[ BW  ])[kbw ] = mfcbc;
+			(D.f[ BE  ])[kb  ] = mfabc;
+			(D.f[ TW  ])[kw  ] = mfcba;
+			(D.f[ TN  ])[k   ] = mfbaa;
+			(D.f[ BS  ])[kbs ] = mfbcc;
+			(D.f[ BN  ])[kb  ] = mfbac;
+			(D.f[ TS  ])[ks  ] = mfbca;
 			(D.f[ dirREST])[k   ] = mfbbb;
-			(D.f[ dirTNE ])[k   ] = mfaaa;
-			(D.f[ dirTSE ])[ks  ] = mfaca;
-			(D.f[ dirBNE ])[kb  ] = mfaac;
-			(D.f[ dirBSE ])[kbs ] = mfacc;
-			(D.f[ dirTNW ])[kw  ] = mfcaa;
-			(D.f[ dirTSW ])[ksw ] = mfcca;
-			(D.f[ dirBNW ])[kbw ] = mfcac;
-			(D.f[ dirBSW ])[kbsw] = mfccc;
+			(D.f[ TNE ])[k   ] = mfaaa;
+			(D.f[ TSE ])[ks  ] = mfaca;
+			(D.f[ BNE ])[kb  ] = mfaac;
+			(D.f[ BSE ])[kbs ] = mfacc;
+			(D.f[ TNW ])[kw  ] = mfcaa;
+			(D.f[ TSW ])[ksw ] = mfcca;
+			(D.f[ BNW ])[kbw ] = mfcac;
+			(D.f[ BSW ])[kbsw] = mfccc;
 			////////////////////////////////////////////////////////////////////////////////////
 		}                                                                                                                    
 	}
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 174b4a0b7..52d3d8966 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
@@ -36,63 +36,63 @@ extern "C" __global__ void LB_Kernel_Cum_Comp_SP_27(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -125,33 +125,33 @@ extern "C" __global__ void LB_Kernel_Cum_Comp_SP_27(real omega,
 			unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real E = (D.f[dirE])[ke];// +  c2over27 ;
-			real W = (D.f[dirW])[kw];// +  c2over27 ;
-			real N = (D.f[dirN])[kn];// +  c2over27 ;
-			real S = (D.f[dirS])[ks];// +  c2over27 ;
-			real F = (D.f[dirT])[kt];// +  c2over27 ;
-			real B = (D.f[dirB])[kb];// +  c2over27 ;
-			real Ne = (D.f[dirNE])[kne];// +  c1over54 ;
-			real Sw = (D.f[dirSW])[ksw];// +  c1over54 ;
-			real Se = (D.f[dirSE])[kse];// +  c1over54 ;
-			real Nw = (D.f[dirNW])[knw];// +  c1over54 ;
-			real Ef = (D.f[dirTE])[kte];// +  c1over54 ;
-			real Wb = (D.f[dirBW])[kbw];// +  c1over54 ;
-			real Eb = (D.f[dirBE])[kbe];// +  c1over54 ;
-			real Wf = (D.f[dirTW])[ktw];// +  c1over54 ;
-			real Nf = (D.f[dirTN])[ktn];// +  c1over54 ;
-			real Sb = (D.f[dirBS])[kbs];// +  c1over54 ;
-			real Nb = (D.f[dirBN])[kbn];// +  c1over54 ;
-			real Sf = (D.f[dirTS])[kts];// +  c1over54 ;
+			real E = (D.f[E])[ke];// +  c2over27 ;
+			real W = (D.f[W])[kw];// +  c2over27 ;
+			real N = (D.f[N])[kn];// +  c2over27 ;
+			real S = (D.f[S])[ks];// +  c2over27 ;
+			real F = (D.f[T])[kt];// +  c2over27 ;
+			real B = (D.f[B])[kb];// +  c2over27 ;
+			real Ne = (D.f[NE])[kne];// +  c1over54 ;
+			real Sw = (D.f[SW])[ksw];// +  c1over54 ;
+			real Se = (D.f[SE])[kse];// +  c1over54 ;
+			real Nw = (D.f[NW])[knw];// +  c1over54 ;
+			real Ef = (D.f[TE])[kte];// +  c1over54 ;
+			real Wb = (D.f[BW])[kbw];// +  c1over54 ;
+			real Eb = (D.f[BE])[kbe];// +  c1over54 ;
+			real Wf = (D.f[TW])[ktw];// +  c1over54 ;
+			real Nf = (D.f[TN])[ktn];// +  c1over54 ;
+			real Sb = (D.f[BS])[kbs];// +  c1over54 ;
+			real Nb = (D.f[BN])[kbn];// +  c1over54 ;
+			real Sf = (D.f[TS])[kts];// +  c1over54 ;
 			real R = (D.f[dirREST])[kzero];// +  c8over27 ;
-			real Nef = (D.f[dirTNE])[ktne];// +  c1over216;
-			real Swf = (D.f[dirTSW])[ktsw];// +  c1over216;
-			real Sef = (D.f[dirTSE])[ktse];// +  c1over216;
-			real Nwf = (D.f[dirTNW])[ktnw];// +  c1over216;
-			real Neb = (D.f[dirBNE])[kbne];// +  c1over216;
-			real Swb = (D.f[dirBSW])[kbsw];// +  c1over216;
-			real Seb = (D.f[dirBSE])[kbse];// +  c1over216;
-			real Nwb = (D.f[dirBNW])[kbnw];// +  c1over216;
+			real Nef = (D.f[TNE])[ktne];// +  c1over216;
+			real Swf = (D.f[TSW])[ktsw];// +  c1over216;
+			real Sef = (D.f[TSE])[ktse];// +  c1over216;
+			real Nwf = (D.f[TNW])[ktnw];// +  c1over216;
+			real Neb = (D.f[BNE])[kbne];// +  c1over216;
+			real Swb = (D.f[BSW])[kbsw];// +  c1over216;
+			real Seb = (D.f[BSE])[kbse];// +  c1over216;
+			real Nwb = (D.f[BNW])[kbnw];// +  c1over216;
 										   ////////////////////////////////////////////////////////////////////////////////////
 			real fx = c0o1;
 			real fy = c0o1;
@@ -873,33 +873,33 @@ extern "C" __global__ void LB_Kernel_Cum_Comp_SP_27(real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[ke] = mfabb;// -  c2over27 ;//                                                                     
-			(D.f[dirW])[kw] = mfcbb;// -  c2over27 ;                                                                     
-			(D.f[dirN])[kn] = mfbab;// -  c2over27 ;
-			(D.f[dirS])[ks] = mfbcb;// -  c2over27 ;
-			(D.f[dirT])[kt] = mfbba;// -  c2over27 ;
-			(D.f[dirB])[kb] = mfbbc;// -  c2over27 ;
-			(D.f[dirNE])[kne] = mfaab;// -  c1over54 ;
-			(D.f[dirSW])[ksw] = mfccb;// -  c1over54 ;
-			(D.f[dirSE])[kse] = mfacb;// -  c1over54 ;
-			(D.f[dirNW])[knw] = mfcab;// -  c1over54 ;
-			(D.f[dirTE])[kte] = mfaba;// -  c1over54 ;
-			(D.f[dirBW])[kbw] = mfcbc;// -  c1over54 ;
-			(D.f[dirBE])[kbe] = mfabc;// -  c1over54 ;
-			(D.f[dirTW])[ktw] = mfcba;// -  c1over54 ;
-			(D.f[dirTN])[ktn] = mfbaa;// -  c1over54 ;
-			(D.f[dirBS])[kbs] = mfbcc;// -  c1over54 ;
-			(D.f[dirBN])[kbn] = mfbac;// -  c1over54 ;
-			(D.f[dirTS])[kts] = mfbca;// -  c1over54 ;
+			(D.f[E])[ke] = mfabb;// -  c2over27 ;//                                                                     
+			(D.f[W])[kw] = mfcbb;// -  c2over27 ;                                                                     
+			(D.f[N])[kn] = mfbab;// -  c2over27 ;
+			(D.f[S])[ks] = mfbcb;// -  c2over27 ;
+			(D.f[T])[kt] = mfbba;// -  c2over27 ;
+			(D.f[B])[kb] = mfbbc;// -  c2over27 ;
+			(D.f[NE])[kne] = mfaab;// -  c1over54 ;
+			(D.f[SW])[ksw] = mfccb;// -  c1over54 ;
+			(D.f[SE])[kse] = mfacb;// -  c1over54 ;
+			(D.f[NW])[knw] = mfcab;// -  c1over54 ;
+			(D.f[TE])[kte] = mfaba;// -  c1over54 ;
+			(D.f[BW])[kbw] = mfcbc;// -  c1over54 ;
+			(D.f[BE])[kbe] = mfabc;// -  c1over54 ;
+			(D.f[TW])[ktw] = mfcba;// -  c1over54 ;
+			(D.f[TN])[ktn] = mfbaa;// -  c1over54 ;
+			(D.f[BS])[kbs] = mfbcc;// -  c1over54 ;
+			(D.f[BN])[kbn] = mfbac;// -  c1over54 ;
+			(D.f[TS])[kts] = mfbca;// -  c1over54 ;
 			(D.f[dirREST])[kzero] = mfbbb;// -  c8over27 ;
-			(D.f[dirTNE])[ktne] = mfaaa;// -  c1over216;
-			(D.f[dirTSE])[ktse] = mfaca;// -  c1over216;
-			(D.f[dirBNE])[kbne] = mfaac;// -  c1over216;
-			(D.f[dirBSE])[kbse] = mfacc;// -  c1over216;
-			(D.f[dirTNW])[ktnw] = mfcaa;// -  c1over216;
-			(D.f[dirTSW])[ktsw] = mfcca;// -  c1over216;
-			(D.f[dirBNW])[kbnw] = mfcac;// -  c1over216;
-			(D.f[dirBSW])[kbsw] = mfccc;// -  c1over216;
+			(D.f[TNE])[ktne] = mfaaa;// -  c1over216;
+			(D.f[TSE])[ktse] = mfaca;// -  c1over216;
+			(D.f[BNE])[kbne] = mfaac;// -  c1over216;
+			(D.f[BSE])[kbse] = mfacc;// -  c1over216;
+			(D.f[TNW])[ktnw] = mfcaa;// -  c1over216;
+			(D.f[TSW])[ktsw] = mfcca;// -  c1over216;
+			(D.f[BNW])[kbnw] = mfcac;// -  c1over216;
+			(D.f[BSW])[kbsw] = mfccc;// -  c1over216;
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 de0a2d05a..5ecdd0d0a 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
@@ -41,63 +41,63 @@ extern "C" __global__ void LB_Kernel_Cumulant_D3Q27All4(	real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -159,33 +159,33 @@ extern "C" __global__ void LB_Kernel_Cumulant_D3Q27All4(	real omega,
 			//unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -1060,33 +1060,33 @@ extern "C" __global__ void LB_Kernel_Cumulant_D3Q27All4(	real omega,
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 b1818659e..2588c21b6 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
@@ -38,63 +38,63 @@ extern "C" __global__ void LB_Kernel_CumulantK15Comp(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -155,33 +155,33 @@ extern "C" __global__ void LB_Kernel_CumulantK15Comp(real omega,
 			//unsigned int ktne = k;
 			//unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -1241,33 +1241,33 @@ extern "C" __global__ void LB_Kernel_CumulantK15Comp(real omega,
 					((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb;
 			mfbbb += drho - drhoPost;
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 5da7cdb44..54799ac6d 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
@@ -38,63 +38,63 @@ extern "C" __global__ void LB_Kernel_CumulantK15BulkComp(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -155,33 +155,33 @@ extern "C" __global__ void LB_Kernel_CumulantK15BulkComp(real omega,
 			//unsigned int ktne = k;
 			//unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -911,33 +911,33 @@ extern "C" __global__ void LB_Kernel_CumulantK15BulkComp(real omega,
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 a8677a12d..d665f7eec 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
@@ -39,63 +39,63 @@ extern "C" __global__ void LB_Kernel_CumulantK15SpongeComp(real omegaIn,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -128,33 +128,33 @@ extern "C" __global__ void LB_Kernel_CumulantK15SpongeComp(real omegaIn,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];
-			real mfabb = (D.f[dirW])[kw];
-			real mfbcb = (D.f[dirN])[k];
-			real mfbab = (D.f[dirS])[ks];
-			real mfbbc = (D.f[dirT])[k];
-			real mfbba = (D.f[dirB])[kb];
-			real mfccb = (D.f[dirNE])[k];
-			real mfaab = (D.f[dirSW])[ksw];
-			real mfcab = (D.f[dirSE])[ks];
-			real mfacb = (D.f[dirNW])[kw];
-			real mfcbc = (D.f[dirTE])[k];
-			real mfaba = (D.f[dirBW])[kbw];
-			real mfcba = (D.f[dirBE])[kb];
-			real mfabc = (D.f[dirTW])[kw];
-			real mfbcc = (D.f[dirTN])[k];
-			real mfbaa = (D.f[dirBS])[kbs];
-			real mfbca = (D.f[dirBN])[kb];
-			real mfbac = (D.f[dirTS])[ks];
+			real mfcbb = (D.f[E])[k];
+			real mfabb = (D.f[W])[kw];
+			real mfbcb = (D.f[N])[k];
+			real mfbab = (D.f[S])[ks];
+			real mfbbc = (D.f[T])[k];
+			real mfbba = (D.f[B])[kb];
+			real mfccb = (D.f[NE])[k];
+			real mfaab = (D.f[SW])[ksw];
+			real mfcab = (D.f[SE])[ks];
+			real mfacb = (D.f[NW])[kw];
+			real mfcbc = (D.f[TE])[k];
+			real mfaba = (D.f[BW])[kbw];
+			real mfcba = (D.f[BE])[kb];
+			real mfabc = (D.f[TW])[kw];
+			real mfbcc = (D.f[TN])[k];
+			real mfbaa = (D.f[BS])[kbs];
+			real mfbca = (D.f[BN])[kb];
+			real mfbac = (D.f[TS])[ks];
 			real mfbbb = (D.f[dirREST])[k];
-			real mfccc = (D.f[dirTNE])[k];
-			real mfaac = (D.f[dirTSW])[ksw];
-			real mfcac = (D.f[dirTSE])[ks];
-			real mfacc = (D.f[dirTNW])[kw];
-			real mfcca = (D.f[dirBNE])[kb];
-			real mfaaa = (D.f[dirBSW])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];
-			real mfaca = (D.f[dirBNW])[kbw];
+			real mfccc = (D.f[TNE])[k];
+			real mfaac = (D.f[TSW])[ksw];
+			real mfcac = (D.f[TSE])[ks];
+			real mfacc = (D.f[TNW])[kw];
+			real mfcca = (D.f[BNE])[kb];
+			real mfaaa = (D.f[BSW])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];
+			real mfaca = (D.f[BNW])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -892,33 +892,33 @@ extern "C" __global__ void LB_Kernel_CumulantK15SpongeComp(real omegaIn,
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;
-			(D.f[dirW])[kw] = mfcbb;
-			(D.f[dirN])[k] = mfbab;
-			(D.f[dirS])[ks] = mfbcb;
-			(D.f[dirT])[k] = mfbba;
-			(D.f[dirB])[kb] = mfbbc;
-			(D.f[dirNE])[k] = mfaab;
-			(D.f[dirSW])[ksw] = mfccb;
-			(D.f[dirSE])[ks] = mfacb;
-			(D.f[dirNW])[kw] = mfcab;
-			(D.f[dirTE])[k] = mfaba;
-			(D.f[dirBW])[kbw] = mfcbc;
-			(D.f[dirBE])[kb] = mfabc;
-			(D.f[dirTW])[kw] = mfcba;
-			(D.f[dirTN])[k] = mfbaa;
-			(D.f[dirBS])[kbs] = mfbcc;
-			(D.f[dirBN])[kb] = mfbac;
-			(D.f[dirTS])[ks] = mfbca;
+			(D.f[E])[k] = mfabb;
+			(D.f[W])[kw] = mfcbb;
+			(D.f[N])[k] = mfbab;
+			(D.f[S])[ks] = mfbcb;
+			(D.f[T])[k] = mfbba;
+			(D.f[B])[kb] = mfbbc;
+			(D.f[NE])[k] = mfaab;
+			(D.f[SW])[ksw] = mfccb;
+			(D.f[SE])[ks] = mfacb;
+			(D.f[NW])[kw] = mfcab;
+			(D.f[TE])[k] = mfaba;
+			(D.f[BW])[kbw] = mfcbc;
+			(D.f[BE])[kb] = mfabc;
+			(D.f[TW])[kw] = mfcba;
+			(D.f[TN])[k] = mfbaa;
+			(D.f[BS])[kbs] = mfbcc;
+			(D.f[BN])[kb] = mfbac;
+			(D.f[TS])[ks] = mfbca;
 			(D.f[dirREST])[k] = mfbbb;
-			(D.f[dirTNE])[k] = mfaaa;
-			(D.f[dirTSE])[ks] = mfaca;
-			(D.f[dirBNE])[kb] = mfaac;
-			(D.f[dirBSE])[kbs] = mfacc;
-			(D.f[dirTNW])[kw] = mfcaa;
-			(D.f[dirTSW])[ksw] = mfcca;
-			(D.f[dirBNW])[kbw] = mfcac;
-			(D.f[dirBSW])[kbsw] = mfccc;
+			(D.f[TNE])[k] = mfaaa;
+			(D.f[TSE])[ks] = mfaca;
+			(D.f[BNE])[kb] = mfaac;
+			(D.f[BSE])[kbs] = mfacc;
+			(D.f[TNW])[kw] = mfcaa;
+			(D.f[TSW])[ksw] = mfcca;
+			(D.f[BNW])[kbw] = mfcac;
+			(D.f[BSW])[kbsw] = mfccc;
 			////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17Comp_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17Comp_Device.cu
index a19cb2b16..1156f1aad 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17Comp_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17Comp_Device.cu
@@ -40,63 +40,63 @@ extern "C" __global__ void LB_Kernel_CumulantK17Comp(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -157,33 +157,33 @@ extern "C" __global__ void LB_Kernel_CumulantK17Comp(real omega,
 			//unsigned int ktne = k;
 			//unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -1006,33 +1006,33 @@ extern "C" __global__ void LB_Kernel_CumulantK17Comp(real omega,
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 e5b9d4dbe..38554d7f4 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
@@ -39,63 +39,63 @@ extern "C" __global__ void LB_Kernel_CumulantK17BulkComp(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -128,33 +128,33 @@ extern "C" __global__ void LB_Kernel_CumulantK17BulkComp(real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -885,33 +885,33 @@ extern "C" __global__ void LB_Kernel_CumulantK17BulkComp(real omega,
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 0c39ba17a..8c31dc928 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
@@ -87,61 +87,61 @@ extern "C" __global__ void LB_Kernel_CumulantK17CompChim(
         //!
         Distributions27 dist;
         if (isEvenTimestep) {
-            dist.f[dirE]    = &distributions[dirE * size_Mat];
-            dist.f[dirW]    = &distributions[dirW * size_Mat];
-            dist.f[dirN]    = &distributions[dirN * size_Mat];
-            dist.f[dirS]    = &distributions[dirS * size_Mat];
-            dist.f[dirT]    = &distributions[dirT * size_Mat];
-            dist.f[dirB]    = &distributions[dirB * size_Mat];
-            dist.f[dirNE]   = &distributions[dirNE * size_Mat];
-            dist.f[dirSW]   = &distributions[dirSW * size_Mat];
-            dist.f[dirSE]   = &distributions[dirSE * size_Mat];
-            dist.f[dirNW]   = &distributions[dirNW * size_Mat];
-            dist.f[dirTE]   = &distributions[dirTE * size_Mat];
-            dist.f[dirBW]   = &distributions[dirBW * size_Mat];
-            dist.f[dirBE]   = &distributions[dirBE * size_Mat];
-            dist.f[dirTW]   = &distributions[dirTW * size_Mat];
-            dist.f[dirTN]   = &distributions[dirTN * size_Mat];
-            dist.f[dirBS]   = &distributions[dirBS * size_Mat];
-            dist.f[dirBN]   = &distributions[dirBN * size_Mat];
-            dist.f[dirTS]   = &distributions[dirTS * size_Mat];
+            dist.f[E]    = &distributions[E * size_Mat];
+            dist.f[W]    = &distributions[W * size_Mat];
+            dist.f[N]    = &distributions[N * size_Mat];
+            dist.f[S]    = &distributions[S * size_Mat];
+            dist.f[T]    = &distributions[T * size_Mat];
+            dist.f[B]    = &distributions[B * size_Mat];
+            dist.f[NE]   = &distributions[NE * size_Mat];
+            dist.f[SW]   = &distributions[SW * size_Mat];
+            dist.f[SE]   = &distributions[SE * size_Mat];
+            dist.f[NW]   = &distributions[NW * size_Mat];
+            dist.f[TE]   = &distributions[TE * size_Mat];
+            dist.f[BW]   = &distributions[BW * size_Mat];
+            dist.f[BE]   = &distributions[BE * size_Mat];
+            dist.f[TW]   = &distributions[TW * size_Mat];
+            dist.f[TN]   = &distributions[TN * size_Mat];
+            dist.f[BS]   = &distributions[BS * size_Mat];
+            dist.f[BN]   = &distributions[BN * size_Mat];
+            dist.f[TS]   = &distributions[TS * size_Mat];
             dist.f[dirREST] = &distributions[dirREST * size_Mat];
-            dist.f[dirTNE]  = &distributions[dirTNE * size_Mat];
-            dist.f[dirTSW]  = &distributions[dirTSW * size_Mat];
-            dist.f[dirTSE]  = &distributions[dirTSE * size_Mat];
-            dist.f[dirTNW]  = &distributions[dirTNW * size_Mat];
-            dist.f[dirBNE]  = &distributions[dirBNE * size_Mat];
-            dist.f[dirBSW]  = &distributions[dirBSW * size_Mat];
-            dist.f[dirBSE]  = &distributions[dirBSE * size_Mat];
-            dist.f[dirBNW]  = &distributions[dirBNW * size_Mat];
+            dist.f[TNE]  = &distributions[TNE * size_Mat];
+            dist.f[TSW]  = &distributions[TSW * size_Mat];
+            dist.f[TSE]  = &distributions[TSE * size_Mat];
+            dist.f[TNW]  = &distributions[TNW * size_Mat];
+            dist.f[BNE]  = &distributions[BNE * size_Mat];
+            dist.f[BSW]  = &distributions[BSW * size_Mat];
+            dist.f[BSE]  = &distributions[BSE * size_Mat];
+            dist.f[BNW]  = &distributions[BNW * size_Mat];
         } else {
-            dist.f[dirW]    = &distributions[dirE * size_Mat];
-            dist.f[dirE]    = &distributions[dirW * size_Mat];
-            dist.f[dirS]    = &distributions[dirN * size_Mat];
-            dist.f[dirN]    = &distributions[dirS * size_Mat];
-            dist.f[dirB]    = &distributions[dirT * size_Mat];
-            dist.f[dirT]    = &distributions[dirB * size_Mat];
-            dist.f[dirSW]   = &distributions[dirNE * size_Mat];
-            dist.f[dirNE]   = &distributions[dirSW * size_Mat];
-            dist.f[dirNW]   = &distributions[dirSE * size_Mat];
-            dist.f[dirSE]   = &distributions[dirNW * size_Mat];
-            dist.f[dirBW]   = &distributions[dirTE * size_Mat];
-            dist.f[dirTE]   = &distributions[dirBW * size_Mat];
-            dist.f[dirTW]   = &distributions[dirBE * size_Mat];
-            dist.f[dirBE]   = &distributions[dirTW * size_Mat];
-            dist.f[dirBS]   = &distributions[dirTN * size_Mat];
-            dist.f[dirTN]   = &distributions[dirBS * size_Mat];
-            dist.f[dirTS]   = &distributions[dirBN * size_Mat];
-            dist.f[dirBN]   = &distributions[dirTS * size_Mat];
+            dist.f[W]    = &distributions[E * size_Mat];
+            dist.f[E]    = &distributions[W * size_Mat];
+            dist.f[S]    = &distributions[N * size_Mat];
+            dist.f[N]    = &distributions[S * size_Mat];
+            dist.f[B]    = &distributions[T * size_Mat];
+            dist.f[T]    = &distributions[B * size_Mat];
+            dist.f[SW]   = &distributions[NE * size_Mat];
+            dist.f[NE]   = &distributions[SW * size_Mat];
+            dist.f[NW]   = &distributions[SE * size_Mat];
+            dist.f[SE]   = &distributions[NW * size_Mat];
+            dist.f[BW]   = &distributions[TE * size_Mat];
+            dist.f[TE]   = &distributions[BW * size_Mat];
+            dist.f[TW]   = &distributions[BE * size_Mat];
+            dist.f[BE]   = &distributions[TW * size_Mat];
+            dist.f[BS]   = &distributions[TN * size_Mat];
+            dist.f[TN]   = &distributions[BS * size_Mat];
+            dist.f[TS]   = &distributions[BN * size_Mat];
+            dist.f[BN]   = &distributions[TS * size_Mat];
             dist.f[dirREST] = &distributions[dirREST * size_Mat];
-            dist.f[dirBSW]  = &distributions[dirTNE * size_Mat];
-            dist.f[dirBNE]  = &distributions[dirTSW * size_Mat];
-            dist.f[dirBNW]  = &distributions[dirTSE * size_Mat];
-            dist.f[dirBSE]  = &distributions[dirTNW * size_Mat];
-            dist.f[dirTSW]  = &distributions[dirBNE * size_Mat];
-            dist.f[dirTNE]  = &distributions[dirBSW * size_Mat];
-            dist.f[dirTNW]  = &distributions[dirBSE * size_Mat];
-            dist.f[dirTSE]  = &distributions[dirBNW * size_Mat];
+            dist.f[BSW]  = &distributions[TNE * size_Mat];
+            dist.f[BNE]  = &distributions[TSW * size_Mat];
+            dist.f[BNW]  = &distributions[TSE * size_Mat];
+            dist.f[BSE]  = &distributions[TNW * size_Mat];
+            dist.f[TSW]  = &distributions[BNE * size_Mat];
+            dist.f[TNE]  = &distributions[BSW * size_Mat];
+            dist.f[TNW]  = &distributions[BSE * size_Mat];
+            dist.f[TSE]  = &distributions[BNW * size_Mat];
         }
         ////////////////////////////////////////////////////////////////////////////////
         //! - Set neighbor indices (necessary for indirect addressing)
@@ -155,33 +155,33 @@ extern "C" __global__ void LB_Kernel_CumulantK17CompChim(
         ////////////////////////////////////////////////////////////////////////////////////
         //! - Set local distributions
         //!
-        real mfcbb = (dist.f[dirE])[k];
-        real mfabb = (dist.f[dirW])[kw];
-        real mfbcb = (dist.f[dirN])[k];
-        real mfbab = (dist.f[dirS])[ks];
-        real mfbbc = (dist.f[dirT])[k];
-        real mfbba = (dist.f[dirB])[kb];
-        real mfccb = (dist.f[dirNE])[k];
-        real mfaab = (dist.f[dirSW])[ksw];
-        real mfcab = (dist.f[dirSE])[ks];
-        real mfacb = (dist.f[dirNW])[kw];
-        real mfcbc = (dist.f[dirTE])[k];
-        real mfaba = (dist.f[dirBW])[kbw];
-        real mfcba = (dist.f[dirBE])[kb];
-        real mfabc = (dist.f[dirTW])[kw];
-        real mfbcc = (dist.f[dirTN])[k];
-        real mfbaa = (dist.f[dirBS])[kbs];
-        real mfbca = (dist.f[dirBN])[kb];
-        real mfbac = (dist.f[dirTS])[ks];
+        real mfcbb = (dist.f[E])[k];
+        real mfabb = (dist.f[W])[kw];
+        real mfbcb = (dist.f[N])[k];
+        real mfbab = (dist.f[S])[ks];
+        real mfbbc = (dist.f[T])[k];
+        real mfbba = (dist.f[B])[kb];
+        real mfccb = (dist.f[NE])[k];
+        real mfaab = (dist.f[SW])[ksw];
+        real mfcab = (dist.f[SE])[ks];
+        real mfacb = (dist.f[NW])[kw];
+        real mfcbc = (dist.f[TE])[k];
+        real mfaba = (dist.f[BW])[kbw];
+        real mfcba = (dist.f[BE])[kb];
+        real mfabc = (dist.f[TW])[kw];
+        real mfbcc = (dist.f[TN])[k];
+        real mfbaa = (dist.f[BS])[kbs];
+        real mfbca = (dist.f[BN])[kb];
+        real mfbac = (dist.f[TS])[ks];
         real mfbbb = (dist.f[dirREST])[k];
-        real mfccc = (dist.f[dirTNE])[k];
-        real mfaac = (dist.f[dirTSW])[ksw];
-        real mfcac = (dist.f[dirTSE])[ks];
-        real mfacc = (dist.f[dirTNW])[kw];
-        real mfcca = (dist.f[dirBNE])[kb];
-        real mfaaa = (dist.f[dirBSW])[kbsw];
-        real mfcaa = (dist.f[dirBSE])[kbs];
-        real mfaca = (dist.f[dirBNW])[kbw];
+        real mfccc = (dist.f[TNE])[k];
+        real mfaac = (dist.f[TSW])[ksw];
+        real mfcac = (dist.f[TSE])[ks];
+        real mfacc = (dist.f[TNW])[kw];
+        real mfcca = (dist.f[BNE])[kb];
+        real mfaaa = (dist.f[BSW])[kbsw];
+        real mfcaa = (dist.f[BSE])[kbs];
+        real mfaca = (dist.f[BNW])[kbw];
         ////////////////////////////////////////////////////////////////////////////////////
         //! - 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),
@@ -622,32 +622,32 @@ extern "C" __global__ void LB_Kernel_CumulantK17CompChim(
         //! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017),
         //! DOI:10.3390/computation5020019 ]</b></a>
         //!
-        (dist.f[dirE])[k]      = mfabb;
-        (dist.f[dirW])[kw]     = mfcbb;
-        (dist.f[dirN])[k]      = mfbab;
-        (dist.f[dirS])[ks]     = mfbcb;
-        (dist.f[dirT])[k]      = mfbba;
-        (dist.f[dirB])[kb]     = mfbbc;
-        (dist.f[dirNE])[k]     = mfaab;
-        (dist.f[dirSW])[ksw]   = mfccb;
-        (dist.f[dirSE])[ks]    = mfacb;
-        (dist.f[dirNW])[kw]    = mfcab;
-        (dist.f[dirTE])[k]     = mfaba;
-        (dist.f[dirBW])[kbw]   = mfcbc;
-        (dist.f[dirBE])[kb]    = mfabc;
-        (dist.f[dirTW])[kw]    = mfcba;
-        (dist.f[dirTN])[k]     = mfbaa;
-        (dist.f[dirBS])[kbs]   = mfbcc;
-        (dist.f[dirBN])[kb]    = mfbac;
-        (dist.f[dirTS])[ks]    = mfbca;
+        (dist.f[E])[k]      = mfabb;
+        (dist.f[W])[kw]     = mfcbb;
+        (dist.f[N])[k]      = mfbab;
+        (dist.f[S])[ks]     = mfbcb;
+        (dist.f[T])[k]      = mfbba;
+        (dist.f[B])[kb]     = mfbbc;
+        (dist.f[NE])[k]     = mfaab;
+        (dist.f[SW])[ksw]   = mfccb;
+        (dist.f[SE])[ks]    = mfacb;
+        (dist.f[NW])[kw]    = mfcab;
+        (dist.f[TE])[k]     = mfaba;
+        (dist.f[BW])[kbw]   = mfcbc;
+        (dist.f[BE])[kb]    = mfabc;
+        (dist.f[TW])[kw]    = mfcba;
+        (dist.f[TN])[k]     = mfbaa;
+        (dist.f[BS])[kbs]   = mfbcc;
+        (dist.f[BN])[kb]    = mfbac;
+        (dist.f[TS])[ks]    = mfbca;
         (dist.f[dirREST])[k]   = mfbbb;
-        (dist.f[dirTNE])[k]    = mfaaa;
-        (dist.f[dirTSE])[ks]   = mfaca;
-        (dist.f[dirBNE])[kb]   = mfaac;
-        (dist.f[dirBSE])[kbs]  = mfacc;
-        (dist.f[dirTNW])[kw]   = mfcaa;
-        (dist.f[dirTSW])[ksw]  = mfcca;
-        (dist.f[dirBNW])[kbw]  = mfcac;
-        (dist.f[dirBSW])[kbsw] = mfccc;
+        (dist.f[TNE])[k]    = mfaaa;
+        (dist.f[TSE])[ks]   = mfaca;
+        (dist.f[BNE])[kb]   = mfaac;
+        (dist.f[BSE])[kbs]  = mfacc;
+        (dist.f[TNW])[kw]   = mfcaa;
+        (dist.f[TSW])[ksw]  = mfcca;
+        (dist.f[BNW])[kbw]  = mfcac;
+        (dist.f[BSW])[kbsw] = mfccc;
     }
 }
\ No newline at end of file
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17chimStream/CumulantK17CompChimStreamDevice.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17chimStream/CumulantK17CompChimStreamDevice.cu
index 3408471a3..66aaed441 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17chimStream/CumulantK17CompChimStreamDevice.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17chimStream/CumulantK17CompChimStreamDevice.cu
@@ -86,61 +86,61 @@ extern "C" __global__ void LB_Kernel_CumulantK17CompChimStream(
 
         Distributions27 dist;
         if (isEvenTimestep) {
-            dist.f[dirE]    = &distributions[dirE * size_Mat];
-            dist.f[dirW]    = &distributions[dirW * size_Mat];
-            dist.f[dirN]    = &distributions[dirN * size_Mat];
-            dist.f[dirS]    = &distributions[dirS * size_Mat];
-            dist.f[dirT]    = &distributions[dirT * size_Mat];
-            dist.f[dirB]    = &distributions[dirB * size_Mat];
-            dist.f[dirNE]   = &distributions[dirNE * size_Mat];
-            dist.f[dirSW]   = &distributions[dirSW * size_Mat];
-            dist.f[dirSE]   = &distributions[dirSE * size_Mat];
-            dist.f[dirNW]   = &distributions[dirNW * size_Mat];
-            dist.f[dirTE]   = &distributions[dirTE * size_Mat];
-            dist.f[dirBW]   = &distributions[dirBW * size_Mat];
-            dist.f[dirBE]   = &distributions[dirBE * size_Mat];
-            dist.f[dirTW]   = &distributions[dirTW * size_Mat];
-            dist.f[dirTN]   = &distributions[dirTN * size_Mat];
-            dist.f[dirBS]   = &distributions[dirBS * size_Mat];
-            dist.f[dirBN]   = &distributions[dirBN * size_Mat];
-            dist.f[dirTS]   = &distributions[dirTS * size_Mat];
+            dist.f[E]    = &distributions[E * size_Mat];
+            dist.f[W]    = &distributions[W * size_Mat];
+            dist.f[N]    = &distributions[N * size_Mat];
+            dist.f[S]    = &distributions[S * size_Mat];
+            dist.f[T]    = &distributions[T * size_Mat];
+            dist.f[B]    = &distributions[B * size_Mat];
+            dist.f[NE]   = &distributions[NE * size_Mat];
+            dist.f[SW]   = &distributions[SW * size_Mat];
+            dist.f[SE]   = &distributions[SE * size_Mat];
+            dist.f[NW]   = &distributions[NW * size_Mat];
+            dist.f[TE]   = &distributions[TE * size_Mat];
+            dist.f[BW]   = &distributions[BW * size_Mat];
+            dist.f[BE]   = &distributions[BE * size_Mat];
+            dist.f[TW]   = &distributions[TW * size_Mat];
+            dist.f[TN]   = &distributions[TN * size_Mat];
+            dist.f[BS]   = &distributions[BS * size_Mat];
+            dist.f[BN]   = &distributions[BN * size_Mat];
+            dist.f[TS]   = &distributions[TS * size_Mat];
             dist.f[dirREST] = &distributions[dirREST * size_Mat];
-            dist.f[dirTNE]  = &distributions[dirTNE * size_Mat];
-            dist.f[dirTSW]  = &distributions[dirTSW * size_Mat];
-            dist.f[dirTSE]  = &distributions[dirTSE * size_Mat];
-            dist.f[dirTNW]  = &distributions[dirTNW * size_Mat];
-            dist.f[dirBNE]  = &distributions[dirBNE * size_Mat];
-            dist.f[dirBSW]  = &distributions[dirBSW * size_Mat];
-            dist.f[dirBSE]  = &distributions[dirBSE * size_Mat];
-            dist.f[dirBNW]  = &distributions[dirBNW * size_Mat];
+            dist.f[TNE]  = &distributions[TNE * size_Mat];
+            dist.f[TSW]  = &distributions[TSW * size_Mat];
+            dist.f[TSE]  = &distributions[TSE * size_Mat];
+            dist.f[TNW]  = &distributions[TNW * size_Mat];
+            dist.f[BNE]  = &distributions[BNE * size_Mat];
+            dist.f[BSW]  = &distributions[BSW * size_Mat];
+            dist.f[BSE]  = &distributions[BSE * size_Mat];
+            dist.f[BNW]  = &distributions[BNW * size_Mat];
         } else {
-            dist.f[dirW]    = &distributions[dirE * size_Mat];
-            dist.f[dirE]    = &distributions[dirW * size_Mat];
-            dist.f[dirS]    = &distributions[dirN * size_Mat];
-            dist.f[dirN]    = &distributions[dirS * size_Mat];
-            dist.f[dirB]    = &distributions[dirT * size_Mat];
-            dist.f[dirT]    = &distributions[dirB * size_Mat];
-            dist.f[dirSW]   = &distributions[dirNE * size_Mat];
-            dist.f[dirNE]   = &distributions[dirSW * size_Mat];
-            dist.f[dirNW]   = &distributions[dirSE * size_Mat];
-            dist.f[dirSE]   = &distributions[dirNW * size_Mat];
-            dist.f[dirBW]   = &distributions[dirTE * size_Mat];
-            dist.f[dirTE]   = &distributions[dirBW * size_Mat];
-            dist.f[dirTW]   = &distributions[dirBE * size_Mat];
-            dist.f[dirBE]   = &distributions[dirTW * size_Mat];
-            dist.f[dirBS]   = &distributions[dirTN * size_Mat];
-            dist.f[dirTN]   = &distributions[dirBS * size_Mat];
-            dist.f[dirTS]   = &distributions[dirBN * size_Mat];
-            dist.f[dirBN]   = &distributions[dirTS * size_Mat];
+            dist.f[W]    = &distributions[E * size_Mat];
+            dist.f[E]    = &distributions[W * size_Mat];
+            dist.f[S]    = &distributions[N * size_Mat];
+            dist.f[N]    = &distributions[S * size_Mat];
+            dist.f[B]    = &distributions[T * size_Mat];
+            dist.f[T]    = &distributions[B * size_Mat];
+            dist.f[SW]   = &distributions[NE * size_Mat];
+            dist.f[NE]   = &distributions[SW * size_Mat];
+            dist.f[NW]   = &distributions[SE * size_Mat];
+            dist.f[SE]   = &distributions[NW * size_Mat];
+            dist.f[BW]   = &distributions[TE * size_Mat];
+            dist.f[TE]   = &distributions[BW * size_Mat];
+            dist.f[TW]   = &distributions[BE * size_Mat];
+            dist.f[BE]   = &distributions[TW * size_Mat];
+            dist.f[BS]   = &distributions[TN * size_Mat];
+            dist.f[TN]   = &distributions[BS * size_Mat];
+            dist.f[TS]   = &distributions[BN * size_Mat];
+            dist.f[BN]   = &distributions[TS * size_Mat];
             dist.f[dirREST] = &distributions[dirREST * size_Mat];
-            dist.f[dirBSW]  = &distributions[dirTNE * size_Mat];
-            dist.f[dirBNE]  = &distributions[dirTSW * size_Mat];
-            dist.f[dirBNW]  = &distributions[dirTSE * size_Mat];
-            dist.f[dirBSE]  = &distributions[dirTNW * size_Mat];
-            dist.f[dirTSW]  = &distributions[dirBNE * size_Mat];
-            dist.f[dirTNE]  = &distributions[dirBSW * size_Mat];
-            dist.f[dirTNW]  = &distributions[dirBSE * size_Mat];
-            dist.f[dirTSE]  = &distributions[dirBNW * size_Mat];
+            dist.f[BSW]  = &distributions[TNE * size_Mat];
+            dist.f[BNE]  = &distributions[TSW * size_Mat];
+            dist.f[BNW]  = &distributions[TSE * size_Mat];
+            dist.f[BSE]  = &distributions[TNW * size_Mat];
+            dist.f[TSW]  = &distributions[BNE * size_Mat];
+            dist.f[TNE]  = &distributions[BSW * size_Mat];
+            dist.f[TNW]  = &distributions[BSE * size_Mat];
+            dist.f[TSE]  = &distributions[BNW * size_Mat];
         }
         ////////////////////////////////////////////////////////////////////////////////
         //! - Set neighbor indices (necessary for indirect addressing)
@@ -154,33 +154,33 @@ extern "C" __global__ void LB_Kernel_CumulantK17CompChimStream(
         ////////////////////////////////////////////////////////////////////////////////////
         //! - Set local distributions
         //!
-        real mfcbb = (dist.f[dirE])[k];
-        real mfabb = (dist.f[dirW])[kw];
-        real mfbcb = (dist.f[dirN])[k];
-        real mfbab = (dist.f[dirS])[ks];
-        real mfbbc = (dist.f[dirT])[k];
-        real mfbba = (dist.f[dirB])[kb];
-        real mfccb = (dist.f[dirNE])[k];
-        real mfaab = (dist.f[dirSW])[ksw];
-        real mfcab = (dist.f[dirSE])[ks];
-        real mfacb = (dist.f[dirNW])[kw];
-        real mfcbc = (dist.f[dirTE])[k];
-        real mfaba = (dist.f[dirBW])[kbw];
-        real mfcba = (dist.f[dirBE])[kb];
-        real mfabc = (dist.f[dirTW])[kw];
-        real mfbcc = (dist.f[dirTN])[k];
-        real mfbaa = (dist.f[dirBS])[kbs];
-        real mfbca = (dist.f[dirBN])[kb];
-        real mfbac = (dist.f[dirTS])[ks];
+        real mfcbb = (dist.f[E])[k];
+        real mfabb = (dist.f[W])[kw];
+        real mfbcb = (dist.f[N])[k];
+        real mfbab = (dist.f[S])[ks];
+        real mfbbc = (dist.f[T])[k];
+        real mfbba = (dist.f[B])[kb];
+        real mfccb = (dist.f[NE])[k];
+        real mfaab = (dist.f[SW])[ksw];
+        real mfcab = (dist.f[SE])[ks];
+        real mfacb = (dist.f[NW])[kw];
+        real mfcbc = (dist.f[TE])[k];
+        real mfaba = (dist.f[BW])[kbw];
+        real mfcba = (dist.f[BE])[kb];
+        real mfabc = (dist.f[TW])[kw];
+        real mfbcc = (dist.f[TN])[k];
+        real mfbaa = (dist.f[BS])[kbs];
+        real mfbca = (dist.f[BN])[kb];
+        real mfbac = (dist.f[TS])[ks];
         real mfbbb = (dist.f[dirREST])[k];
-        real mfccc = (dist.f[dirTNE])[k];
-        real mfaac = (dist.f[dirTSW])[ksw];
-        real mfcac = (dist.f[dirTSE])[ks];
-        real mfacc = (dist.f[dirTNW])[kw];
-        real mfcca = (dist.f[dirBNE])[kb];
-        real mfaaa = (dist.f[dirBSW])[kbsw];
-        real mfcaa = (dist.f[dirBSE])[kbs];
-        real mfaca = (dist.f[dirBNW])[kbw];
+        real mfccc = (dist.f[TNE])[k];
+        real mfaac = (dist.f[TSW])[ksw];
+        real mfcac = (dist.f[TSE])[ks];
+        real mfacc = (dist.f[TNW])[kw];
+        real mfcca = (dist.f[BNE])[kb];
+        real mfaaa = (dist.f[BSW])[kbsw];
+        real mfcaa = (dist.f[BSE])[kbs];
+        real mfaca = (dist.f[BNW])[kbw];
         ////////////////////////////////////////////////////////////////////////////////////
         //! - 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),
@@ -608,32 +608,32 @@ extern "C" __global__ void LB_Kernel_CumulantK17CompChimStream(
         //! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017),
         //! DOI:10.3390/computation5020019 ]</b></a>
         //!
-        (dist.f[dirE])[k]      = mfabb;
-        (dist.f[dirW])[kw]     = mfcbb;
-        (dist.f[dirN])[k]      = mfbab;
-        (dist.f[dirS])[ks]     = mfbcb;
-        (dist.f[dirT])[k]      = mfbba;
-        (dist.f[dirB])[kb]     = mfbbc;
-        (dist.f[dirNE])[k]     = mfaab;
-        (dist.f[dirSW])[ksw]   = mfccb;
-        (dist.f[dirSE])[ks]    = mfacb;
-        (dist.f[dirNW])[kw]    = mfcab;
-        (dist.f[dirTE])[k]     = mfaba;
-        (dist.f[dirBW])[kbw]   = mfcbc;
-        (dist.f[dirBE])[kb]    = mfabc;
-        (dist.f[dirTW])[kw]    = mfcba;
-        (dist.f[dirTN])[k]     = mfbaa;
-        (dist.f[dirBS])[kbs]   = mfbcc;
-        (dist.f[dirBN])[kb]    = mfbac;
-        (dist.f[dirTS])[ks]    = mfbca;
+        (dist.f[E])[k]      = mfabb;
+        (dist.f[W])[kw]     = mfcbb;
+        (dist.f[N])[k]      = mfbab;
+        (dist.f[S])[ks]     = mfbcb;
+        (dist.f[T])[k]      = mfbba;
+        (dist.f[B])[kb]     = mfbbc;
+        (dist.f[NE])[k]     = mfaab;
+        (dist.f[SW])[ksw]   = mfccb;
+        (dist.f[SE])[ks]    = mfacb;
+        (dist.f[NW])[kw]    = mfcab;
+        (dist.f[TE])[k]     = mfaba;
+        (dist.f[BW])[kbw]   = mfcbc;
+        (dist.f[BE])[kb]    = mfabc;
+        (dist.f[TW])[kw]    = mfcba;
+        (dist.f[TN])[k]     = mfbaa;
+        (dist.f[BS])[kbs]   = mfbcc;
+        (dist.f[BN])[kb]    = mfbac;
+        (dist.f[TS])[ks]    = mfbca;
         (dist.f[dirREST])[k]   = mfbbb;
-        (dist.f[dirTNE])[k]    = mfaaa;
-        (dist.f[dirTSE])[ks]   = mfaca;
-        (dist.f[dirBNE])[kb]   = mfaac;
-        (dist.f[dirBSE])[kbs]  = mfacc;
-        (dist.f[dirTNW])[kw]   = mfcaa;
-        (dist.f[dirTSW])[ksw]  = mfcca;
-        (dist.f[dirBNW])[kbw]  = mfcac;
-        (dist.f[dirBSW])[kbsw] = mfccc;
+        (dist.f[TNE])[k]    = mfaaa;
+        (dist.f[TSE])[ks]   = mfaca;
+        (dist.f[BNE])[kb]   = mfaac;
+        (dist.f[BSE])[kbs]  = mfacc;
+        (dist.f[TNW])[kw]   = mfcaa;
+        (dist.f[TSW])[ksw]  = mfcca;
+        (dist.f[BNW])[kbw]  = mfcac;
+        (dist.f[BSW])[kbsw] = mfccc;
     }
 }
\ No newline at end of file
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 226e7ba12..443a5252d 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
@@ -41,83 +41,83 @@ extern "C" __global__ void LB_Kernel_CumulantK18Comp(
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			Distributions6 G;
 			if (EvenOrOdd == true)
 			{
-				G.g[dirE] = &G6[dirE   *size_Mat];
-				G.g[dirW] = &G6[dirW   *size_Mat];
-				G.g[dirN] = &G6[dirN   *size_Mat];
-				G.g[dirS] = &G6[dirS   *size_Mat];
-				G.g[dirT] = &G6[dirT   *size_Mat];
-				G.g[dirB] = &G6[dirB   *size_Mat];
+				G.g[E] = &G6[E   *size_Mat];
+				G.g[W] = &G6[W   *size_Mat];
+				G.g[N] = &G6[N   *size_Mat];
+				G.g[S] = &G6[S   *size_Mat];
+				G.g[T] = &G6[T   *size_Mat];
+				G.g[B] = &G6[B   *size_Mat];
 			}
 			else
 			{
-				G.g[dirW] = &G6[dirE   *size_Mat];
-				G.g[dirE] = &G6[dirW   *size_Mat];
-				G.g[dirS] = &G6[dirN   *size_Mat];
-				G.g[dirN] = &G6[dirS   *size_Mat];
-				G.g[dirB] = &G6[dirT   *size_Mat];
-				G.g[dirT] = &G6[dirB   *size_Mat];
+				G.g[W] = &G6[E   *size_Mat];
+				G.g[E] = &G6[W   *size_Mat];
+				G.g[S] = &G6[N   *size_Mat];
+				G.g[N] = &G6[S   *size_Mat];
+				G.g[B] = &G6[T   *size_Mat];
+				G.g[T] = &G6[B   *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -151,43 +151,43 @@ extern "C" __global__ void LB_Kernel_CumulantK18Comp(
 			unsigned int kbsw = neighborZ[ksw];
 
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mgcbb = (G.g[dirE])[k];
-			real mgabb = (G.g[dirW])[kw];
-			real mgbcb = (G.g[dirN])[k];
-			real mgbab = (G.g[dirS])[ks];
-			real mgbbc = (G.g[dirT])[k];
-			real mgbba = (G.g[dirB])[kb];
+			real mgcbb = (G.g[E])[k];
+			real mgabb = (G.g[W])[kw];
+			real mgbcb = (G.g[N])[k];
+			real mgbab = (G.g[S])[ks];
+			real mgbbc = (G.g[T])[k];
+			real mgbba = (G.g[B])[kb];
 			real dxxux = c1o2 * (-mgcbb + mgabb);
 			real dyyuy = c1o2 * (-mgbcb + mgbab);
 			real dzzuz = c1o2 * (-mgbbc + mgbba);
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];
-			real mfabb = (D.f[dirW])[kw];
-			real mfbcb = (D.f[dirN])[k];
-			real mfbab = (D.f[dirS])[ks];
-			real mfbbc = (D.f[dirT])[k];
-			real mfbba = (D.f[dirB])[kb];
-			real mfccb = (D.f[dirNE])[k];
-			real mfaab = (D.f[dirSW])[ksw];
-			real mfcab = (D.f[dirSE])[ks];
-			real mfacb = (D.f[dirNW])[kw];
-			real mfcbc = (D.f[dirTE])[k];
-			real mfaba = (D.f[dirBW])[kbw];
-			real mfcba = (D.f[dirBE])[kb];
-			real mfabc = (D.f[dirTW])[kw];
-			real mfbcc = (D.f[dirTN])[k];
-			real mfbaa = (D.f[dirBS])[kbs];
-			real mfbca = (D.f[dirBN])[kb];
-			real mfbac = (D.f[dirTS])[ks];
+			real mfcbb = (D.f[E])[k];
+			real mfabb = (D.f[W])[kw];
+			real mfbcb = (D.f[N])[k];
+			real mfbab = (D.f[S])[ks];
+			real mfbbc = (D.f[T])[k];
+			real mfbba = (D.f[B])[kb];
+			real mfccb = (D.f[NE])[k];
+			real mfaab = (D.f[SW])[ksw];
+			real mfcab = (D.f[SE])[ks];
+			real mfacb = (D.f[NW])[kw];
+			real mfcbc = (D.f[TE])[k];
+			real mfaba = (D.f[BW])[kbw];
+			real mfcba = (D.f[BE])[kb];
+			real mfabc = (D.f[TW])[kw];
+			real mfbcc = (D.f[TN])[k];
+			real mfbaa = (D.f[BS])[kbs];
+			real mfbca = (D.f[BN])[kb];
+			real mfbac = (D.f[TS])[ks];
 			real mfbbb = (D.f[dirREST])[k];
-			real mfccc = (D.f[dirTNE])[k];
-			real mfaac = (D.f[dirTSW])[ksw];
-			real mfcac = (D.f[dirTSE])[ks];
-			real mfacc = (D.f[dirTNW])[kw];
-			real mfcca = (D.f[dirBNE])[kb];
-			real mfaaa = (D.f[dirBSW])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];
-			real mfaca = (D.f[dirBNW])[kbw];
+			real mfccc = (D.f[TNE])[k];
+			real mfaac = (D.f[TSW])[ksw];
+			real mfcac = (D.f[TSE])[ks];
+			real mfacc = (D.f[TNW])[kw];
+			real mfcca = (D.f[BNE])[kb];
+			real mfaaa = (D.f[BSW])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];
+			real mfaca = (D.f[BNW])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -914,41 +914,41 @@ extern "C" __global__ void LB_Kernel_CumulantK18Comp(
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;
-			(D.f[dirW])[kw] = mfcbb;
-			(D.f[dirN])[k] = mfbab;
-			(D.f[dirS])[ks] = mfbcb;
-			(D.f[dirT])[k] = mfbba;
-			(D.f[dirB])[kb] = mfbbc;
-			(D.f[dirNE])[k] = mfaab;
-			(D.f[dirSW])[ksw] = mfccb;
-			(D.f[dirSE])[ks] = mfacb;
-			(D.f[dirNW])[kw] = mfcab;
-			(D.f[dirTE])[k] = mfaba;
-			(D.f[dirBW])[kbw] = mfcbc;
-			(D.f[dirBE])[kb] = mfabc;
-			(D.f[dirTW])[kw] = mfcba;
-			(D.f[dirTN])[k] = mfbaa;
-			(D.f[dirBS])[kbs] = mfbcc;
-			(D.f[dirBN])[kb] = mfbac;
-			(D.f[dirTS])[ks] = mfbca;
+			(D.f[E])[k] = mfabb;
+			(D.f[W])[kw] = mfcbb;
+			(D.f[N])[k] = mfbab;
+			(D.f[S])[ks] = mfbcb;
+			(D.f[T])[k] = mfbba;
+			(D.f[B])[kb] = mfbbc;
+			(D.f[NE])[k] = mfaab;
+			(D.f[SW])[ksw] = mfccb;
+			(D.f[SE])[ks] = mfacb;
+			(D.f[NW])[kw] = mfcab;
+			(D.f[TE])[k] = mfaba;
+			(D.f[BW])[kbw] = mfcbc;
+			(D.f[BE])[kb] = mfabc;
+			(D.f[TW])[kw] = mfcba;
+			(D.f[TN])[k] = mfbaa;
+			(D.f[BS])[kbs] = mfbcc;
+			(D.f[BN])[kb] = mfbac;
+			(D.f[TS])[ks] = mfbca;
 			(D.f[dirREST])[k] = mfbbb;
-			(D.f[dirTNE])[k] = mfaaa;
-			(D.f[dirTSE])[ks] = mfaca;
-			(D.f[dirBNE])[kb] = mfaac;
-			(D.f[dirBSE])[kbs] = mfacc;
-			(D.f[dirTNW])[kw] = mfcaa;
-			(D.f[dirTSW])[ksw] = mfcca;
-			(D.f[dirBNW])[kbw] = mfcac;
-			(D.f[dirBSW])[kbsw] = mfccc;
-			////////////////////////////////////////////////////////////////////////////////////
-
-			(G.g[dirE])[k] = mgabb;
-			(G.g[dirW])[kw] = mgcbb;
-			(G.g[dirN])[k] = mgbab;
-			(G.g[dirS])[ks] = mgbcb;
-			(G.g[dirT])[k] = mgbba;
-			(G.g[dirB])[kb] = mgbbc;
+			(D.f[TNE])[k] = mfaaa;
+			(D.f[TSE])[ks] = mfaca;
+			(D.f[BNE])[kb] = mfaac;
+			(D.f[BSE])[kbs] = mfacc;
+			(D.f[TNW])[kw] = mfcaa;
+			(D.f[TSW])[ksw] = mfcca;
+			(D.f[BNW])[kbw] = mfcac;
+			(D.f[BSW])[kbsw] = mfccc;
+			////////////////////////////////////////////////////////////////////////////////////
+
+			(G.g[E])[k] = mgabb;
+			(G.g[W])[kw] = mgcbb;
+			(G.g[N])[k] = mgbab;
+			(G.g[S])[ks] = mgbcb;
+			(G.g[T])[k] = mgbba;
+			(G.g[B])[kb] = mgbbc;
 		}
 	}
 }
\ No newline at end of file
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 b86e5dab5..ec10076b3 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
@@ -41,83 +41,83 @@ extern "C" __global__ void LB_Kernel_CumulantK20Comp(
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			Distributions6 G;
 			if (EvenOrOdd == true)
 			{
-				G.g[dirE] = &G6[dirE   *size_Mat];
-				G.g[dirW] = &G6[dirW   *size_Mat];
-				G.g[dirN] = &G6[dirN   *size_Mat];
-				G.g[dirS] = &G6[dirS   *size_Mat];
-				G.g[dirT] = &G6[dirT   *size_Mat];
-				G.g[dirB] = &G6[dirB   *size_Mat];
+				G.g[E] = &G6[E   *size_Mat];
+				G.g[W] = &G6[W   *size_Mat];
+				G.g[N] = &G6[N   *size_Mat];
+				G.g[S] = &G6[S   *size_Mat];
+				G.g[T] = &G6[T   *size_Mat];
+				G.g[B] = &G6[B   *size_Mat];
 			}
 			else
 			{
-				G.g[dirW] = &G6[dirE   *size_Mat];
-				G.g[dirE] = &G6[dirW   *size_Mat];
-				G.g[dirS] = &G6[dirN   *size_Mat];
-				G.g[dirN] = &G6[dirS   *size_Mat];
-				G.g[dirB] = &G6[dirT   *size_Mat];
-				G.g[dirT] = &G6[dirB   *size_Mat];
+				G.g[W] = &G6[E   *size_Mat];
+				G.g[E] = &G6[W   *size_Mat];
+				G.g[S] = &G6[N   *size_Mat];
+				G.g[N] = &G6[S   *size_Mat];
+				G.g[B] = &G6[T   *size_Mat];
+				G.g[T] = &G6[B   *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -150,43 +150,43 @@ extern "C" __global__ void LB_Kernel_CumulantK20Comp(
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mgcbb = (G.g[dirE])[k];
-			real mgabb = (G.g[dirW])[kw];
-			real mgbcb = (G.g[dirN])[k];
-			real mgbab = (G.g[dirS])[ks];
-			real mgbbc = (G.g[dirT])[k];
-			real mgbba = (G.g[dirB])[kb];
+			real mgcbb = (G.g[E])[k];
+			real mgabb = (G.g[W])[kw];
+			real mgbcb = (G.g[N])[k];
+			real mgbab = (G.g[S])[ks];
+			real mgbbc = (G.g[T])[k];
+			real mgbba = (G.g[B])[kb];
 			real dxuxdxux = c1o2 * (-mgcbb + mgabb);
 			real dyuydyuy = c1o2 * (-mgbcb + mgbab);
 			real dzuzdzuz = c1o2 * (-mgbbc + mgbba);
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];
-			real mfabb = (D.f[dirW])[kw];
-			real mfbcb = (D.f[dirN])[k];
-			real mfbab = (D.f[dirS])[ks];
-			real mfbbc = (D.f[dirT])[k];
-			real mfbba = (D.f[dirB])[kb];
-			real mfccb = (D.f[dirNE])[k];
-			real mfaab = (D.f[dirSW])[ksw];
-			real mfcab = (D.f[dirSE])[ks];
-			real mfacb = (D.f[dirNW])[kw];
-			real mfcbc = (D.f[dirTE])[k];
-			real mfaba = (D.f[dirBW])[kbw];
-			real mfcba = (D.f[dirBE])[kb];
-			real mfabc = (D.f[dirTW])[kw];
-			real mfbcc = (D.f[dirTN])[k];
-			real mfbaa = (D.f[dirBS])[kbs];
-			real mfbca = (D.f[dirBN])[kb];
-			real mfbac = (D.f[dirTS])[ks];
+			real mfcbb = (D.f[E])[k];
+			real mfabb = (D.f[W])[kw];
+			real mfbcb = (D.f[N])[k];
+			real mfbab = (D.f[S])[ks];
+			real mfbbc = (D.f[T])[k];
+			real mfbba = (D.f[B])[kb];
+			real mfccb = (D.f[NE])[k];
+			real mfaab = (D.f[SW])[ksw];
+			real mfcab = (D.f[SE])[ks];
+			real mfacb = (D.f[NW])[kw];
+			real mfcbc = (D.f[TE])[k];
+			real mfaba = (D.f[BW])[kbw];
+			real mfcba = (D.f[BE])[kb];
+			real mfabc = (D.f[TW])[kw];
+			real mfbcc = (D.f[TN])[k];
+			real mfbaa = (D.f[BS])[kbs];
+			real mfbca = (D.f[BN])[kb];
+			real mfbac = (D.f[TS])[ks];
 			real mfbbb = (D.f[dirREST])[k];
-			real mfccc = (D.f[dirTNE])[k];
-			real mfaac = (D.f[dirTSW])[ksw];
-			real mfcac = (D.f[dirTSE])[ks];
-			real mfacc = (D.f[dirTNW])[kw];
-			real mfcca = (D.f[dirBNE])[kb];
-			real mfaaa = (D.f[dirBSW])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];
-			real mfaca = (D.f[dirBNW])[kbw];
+			real mfccc = (D.f[TNE])[k];
+			real mfaac = (D.f[TSW])[ksw];
+			real mfcac = (D.f[TSE])[ks];
+			real mfacc = (D.f[TNW])[kw];
+			real mfcca = (D.f[BNE])[kb];
+			real mfaaa = (D.f[BSW])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];
+			real mfaca = (D.f[BNW])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -918,41 +918,41 @@ extern "C" __global__ void LB_Kernel_CumulantK20Comp(
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;
-			(D.f[dirW])[kw] = mfcbb;
-			(D.f[dirN])[k] = mfbab;
-			(D.f[dirS])[ks] = mfbcb;
-			(D.f[dirT])[k] = mfbba;
-			(D.f[dirB])[kb] = mfbbc;
-			(D.f[dirNE])[k] = mfaab;
-			(D.f[dirSW])[ksw] = mfccb;
-			(D.f[dirSE])[ks] = mfacb;
-			(D.f[dirNW])[kw] = mfcab;
-			(D.f[dirTE])[k] = mfaba;
-			(D.f[dirBW])[kbw] = mfcbc;
-			(D.f[dirBE])[kb] = mfabc;
-			(D.f[dirTW])[kw] = mfcba;
-			(D.f[dirTN])[k] = mfbaa;
-			(D.f[dirBS])[kbs] = mfbcc;
-			(D.f[dirBN])[kb] = mfbac;
-			(D.f[dirTS])[ks] = mfbca;
+			(D.f[E])[k] = mfabb;
+			(D.f[W])[kw] = mfcbb;
+			(D.f[N])[k] = mfbab;
+			(D.f[S])[ks] = mfbcb;
+			(D.f[T])[k] = mfbba;
+			(D.f[B])[kb] = mfbbc;
+			(D.f[NE])[k] = mfaab;
+			(D.f[SW])[ksw] = mfccb;
+			(D.f[SE])[ks] = mfacb;
+			(D.f[NW])[kw] = mfcab;
+			(D.f[TE])[k] = mfaba;
+			(D.f[BW])[kbw] = mfcbc;
+			(D.f[BE])[kb] = mfabc;
+			(D.f[TW])[kw] = mfcba;
+			(D.f[TN])[k] = mfbaa;
+			(D.f[BS])[kbs] = mfbcc;
+			(D.f[BN])[kb] = mfbac;
+			(D.f[TS])[ks] = mfbca;
 			(D.f[dirREST])[k] = mfbbb;
-			(D.f[dirTNE])[k] = mfaaa;
-			(D.f[dirTSE])[ks] = mfaca;
-			(D.f[dirBNE])[kb] = mfaac;
-			(D.f[dirBSE])[kbs] = mfacc;
-			(D.f[dirTNW])[kw] = mfcaa;
-			(D.f[dirTSW])[ksw] = mfcca;
-			(D.f[dirBNW])[kbw] = mfcac;
-			(D.f[dirBSW])[kbsw] = mfccc;
-			////////////////////////////////////////////////////////////////////////////////////
-
-			(G.g[dirE])[k] = mgabb;
-			(G.g[dirW])[kw] = mgcbb;
-			(G.g[dirN])[k] = mgbab;
-			(G.g[dirS])[ks] = mgbcb;
-			(G.g[dirT])[k] = mgbba;
-			(G.g[dirB])[kb] = mgbbc;
+			(D.f[TNE])[k] = mfaaa;
+			(D.f[TSE])[ks] = mfaca;
+			(D.f[BNE])[kb] = mfaac;
+			(D.f[BSE])[kbs] = mfacc;
+			(D.f[TNW])[kw] = mfcaa;
+			(D.f[TSW])[ksw] = mfcca;
+			(D.f[BNW])[kbw] = mfcac;
+			(D.f[BSW])[kbsw] = mfccc;
+			////////////////////////////////////////////////////////////////////////////////////
+
+			(G.g[E])[k] = mgabb;
+			(G.g[W])[kw] = mgcbb;
+			(G.g[N])[k] = mgbab;
+			(G.g[S])[ks] = mgbcb;
+			(G.g[T])[k] = mgbba;
+			(G.g[B])[kb] = mgbbc;
 		}
 	}
 }
\ No newline at end of file
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 785f9c75e..73706f905 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
@@ -36,63 +36,63 @@ extern "C" __global__ void LB_Kernel_MRT_Comp_SP_27(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -125,33 +125,33 @@ extern "C" __global__ void LB_Kernel_MRT_Comp_SP_27(real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 			real rho = (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca +
 				mfbac + mfbca + mfbaa + mfbcc + mfabc + mfcba + mfaba + mfcbc + mfacb + mfcab + mfaab + mfccb +
@@ -738,33 +738,33 @@ extern "C" __global__ void LB_Kernel_MRT_Comp_SP_27(real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 6b744f814..624895021 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
@@ -36,63 +36,63 @@ extern "C" __global__ void LB_Kernel_BGK_Incomp_SP_27(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -125,33 +125,33 @@ extern "C" __global__ void LB_Kernel_BGK_Incomp_SP_27(real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real fE = (D.f[dirE])[k];//ke
-			real fW = (D.f[dirW])[kw];
-			real fN = (D.f[dirN])[k];//kn
-			real fS = (D.f[dirS])[ks];
-			real fT = (D.f[dirT])[k];//kt
-			real fB = (D.f[dirB])[kb];
-			real fNE = (D.f[dirNE])[k];//kne
-			real fSW = (D.f[dirSW])[ksw];
-			real fSE = (D.f[dirSE])[ks];//kse
-			real fNW = (D.f[dirNW])[kw];//knw
-			real fTE = (D.f[dirTE])[k];//kte
-			real fBW = (D.f[dirBW])[kbw];
-			real fBE = (D.f[dirBE])[kb];//kbe
-			real fTW = (D.f[dirTW])[kw];//ktw
-			real fTN = (D.f[dirTN])[k];//ktn
-			real fBS = (D.f[dirBS])[kbs];
-			real fBN = (D.f[dirBN])[kb];//kbn
-			real fTS = (D.f[dirTS])[ks];//kts
+			real fE = (D.f[E])[k];//ke
+			real fW = (D.f[W])[kw];
+			real fN = (D.f[N])[k];//kn
+			real fS = (D.f[S])[ks];
+			real fT = (D.f[T])[k];//kt
+			real fB = (D.f[B])[kb];
+			real fNE = (D.f[NE])[k];//kne
+			real fSW = (D.f[SW])[ksw];
+			real fSE = (D.f[SE])[ks];//kse
+			real fNW = (D.f[NW])[kw];//knw
+			real fTE = (D.f[TE])[k];//kte
+			real fBW = (D.f[BW])[kbw];
+			real fBE = (D.f[BE])[kb];//kbe
+			real fTW = (D.f[TW])[kw];//ktw
+			real fTN = (D.f[TN])[k];//ktn
+			real fBS = (D.f[BS])[kbs];
+			real fBN = (D.f[BN])[kb];//kbn
+			real fTS = (D.f[TS])[ks];//kts
 			real fZERO = (D.f[dirREST])[k];//kzero
-			real fTNE = (D.f[dirTNE])[k];//ktne
-			real fTSW = (D.f[dirTSW])[ksw];//ktsw
-			real fTSE = (D.f[dirTSE])[ks];//ktse
-			real fTNW = (D.f[dirTNW])[kw];//ktnw
-			real fBNE = (D.f[dirBNE])[kb];//kbne
-			real fBSW = (D.f[dirBSW])[kbsw];
-			real fBSE = (D.f[dirBSE])[kbs];//kbse
-			real fBNW = (D.f[dirBNW])[kbw];//kbnw
+			real fTNE = (D.f[TNE])[k];//ktne
+			real fTSW = (D.f[TSW])[ksw];//ktsw
+			real fTSE = (D.f[TSE])[ks];//ktse
+			real fTNW = (D.f[TNW])[kw];//ktnw
+			real fBNE = (D.f[BNE])[kb];//kbne
+			real fBSW = (D.f[BSW])[kbsw];
+			real fBSE = (D.f[BSE])[kbs];//kbse
+			real fBNW = (D.f[BNW])[kbw];//kbnw
 										   ////////////////////////////////////////////////////////////////////////////////
 
 
@@ -205,33 +205,33 @@ extern "C" __global__ void LB_Kernel_BGK_Incomp_SP_27(real omega,
 
 
 			//////////////////////////////////////////////////////////////////////////                            
-			(D.f[dirE])[k] = fW;
-			(D.f[dirW])[kw] = fE;
-			(D.f[dirN])[k] = fS;
-			(D.f[dirS])[ks] = fN;
-			(D.f[dirT])[k] = fB;
-			(D.f[dirB])[kb] = fT;
-			(D.f[dirNE])[k] = fSW;
-			(D.f[dirSW])[ksw] = fNE;
-			(D.f[dirSE])[ks] = fNW;
-			(D.f[dirNW])[kw] = fSE;
-			(D.f[dirTE])[k] = fBW;
-			(D.f[dirBW])[kbw] = fTE;
-			(D.f[dirBE])[kb] = fTW;
-			(D.f[dirTW])[kw] = fBE;
-			(D.f[dirTN])[k] = fBS;
-			(D.f[dirBS])[kbs] = fTN;
-			(D.f[dirBN])[kb] = fTS;
-			(D.f[dirTS])[ks] = fBN;
+			(D.f[E])[k] = fW;
+			(D.f[W])[kw] = fE;
+			(D.f[N])[k] = fS;
+			(D.f[S])[ks] = fN;
+			(D.f[T])[k] = fB;
+			(D.f[B])[kb] = fT;
+			(D.f[NE])[k] = fSW;
+			(D.f[SW])[ksw] = fNE;
+			(D.f[SE])[ks] = fNW;
+			(D.f[NW])[kw] = fSE;
+			(D.f[TE])[k] = fBW;
+			(D.f[BW])[kbw] = fTE;
+			(D.f[BE])[kb] = fTW;
+			(D.f[TW])[kw] = fBE;
+			(D.f[TN])[k] = fBS;
+			(D.f[BS])[kbs] = fTN;
+			(D.f[BN])[kb] = fTS;
+			(D.f[TS])[ks] = fBN;
 			(D.f[dirREST])[k] = fZERO;
-			(D.f[dirTNE])[k] = fBSW;
-			(D.f[dirTSE])[ks] = fBNW;
-			(D.f[dirBNE])[kb] = fTSW;
-			(D.f[dirBSE])[kbs] = fTNW;
-			(D.f[dirTNW])[kw] = fBSE;
-			(D.f[dirTSW])[ksw] = fBNE;
-			(D.f[dirBNW])[kbw] = fTSE;
-			(D.f[dirBSW])[kbsw] = fTNE;
+			(D.f[TNE])[k] = fBSW;
+			(D.f[TSE])[ks] = fBNW;
+			(D.f[BNE])[kb] = fTSW;
+			(D.f[BSE])[kbs] = fTNW;
+			(D.f[TNW])[kw] = fBSE;
+			(D.f[TSW])[ksw] = fBNE;
+			(D.f[BNW])[kbw] = fTSE;
+			(D.f[BSW])[kbsw] = fTNE;
 			//////////////////////////////////////////////////////////////////////////                            
 		}
 	}
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 20714d4b1..5950c1d94 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
@@ -36,63 +36,63 @@ extern "C" __global__ void LB_Kernel_BGK_Plus_Incomp_SP_27(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -125,33 +125,33 @@ extern "C" __global__ void LB_Kernel_BGK_Plus_Incomp_SP_27(real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 											//slow
 											//real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
@@ -723,33 +723,33 @@ extern "C" __global__ void LB_Kernel_BGK_Plus_Incomp_SP_27(real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 8dc7550ed..3292f3309 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
@@ -36,63 +36,63 @@ extern "C" __global__ void LB_Kernel_Cascade_Incomp_SP_27(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -125,33 +125,33 @@ extern "C" __global__ void LB_Kernel_Cascade_Incomp_SP_27(real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 											//slow
 											//real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
@@ -727,33 +727,33 @@ extern "C" __global__ void LB_Kernel_Cascade_Incomp_SP_27(real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 e5abf62f2..55e3bac0a 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
@@ -41,63 +41,63 @@ extern "C" __global__ void LB_Kernel_Cum_1h_Incomp_SP_27(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -158,33 +158,33 @@ extern "C" __global__ void LB_Kernel_Cum_1h_Incomp_SP_27(real omega,
 			//unsigned int ktne = k;
 			//unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 											//Ship
 			real coord0X = 281.125f;//7.5f;
@@ -1160,33 +1160,33 @@ extern "C" __global__ void LB_Kernel_Cum_1h_Incomp_SP_27(real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 48de59c82..513406ed8 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
@@ -39,63 +39,63 @@ extern "C" __global__ void LB_Kernel_Cum_IsoTest_Incomp_SP_27(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -128,33 +128,33 @@ extern "C" __global__ void LB_Kernel_Cum_IsoTest_Incomp_SP_27(real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 											//slow
 											//real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
@@ -972,33 +972,33 @@ extern "C" __global__ void LB_Kernel_Cum_IsoTest_Incomp_SP_27(real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 17df4e3a8..e4b8d27bd 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
@@ -36,63 +36,63 @@ extern "C" __global__ void LB_Kernel_CumulantK15Incomp(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -153,33 +153,33 @@ extern "C" __global__ void LB_Kernel_CumulantK15Incomp(real omega,
 			//unsigned int ktne = k;
 			//unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 											//slow
 											//real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
@@ -1205,33 +1205,33 @@ extern "C" __global__ void LB_Kernel_CumulantK15Incomp(real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 54b6840d6..ca7cfe80a 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
@@ -36,63 +36,63 @@ extern "C" __global__ void LB_Kernel_MRT_Incomp_SP_27(real omega,
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -125,33 +125,33 @@ extern "C" __global__ void LB_Kernel_MRT_Incomp_SP_27(real omega,
 			//unsigned int ktne = k;
 			unsigned int kbsw = neighborZ[ksw];
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];//[ke   ];// +  c2over27 ;(D.f[dirE   ])[k  ];//ke
-			real mfabb = (D.f[dirW])[kw];//[kw   ];// +  c2over27 ;(D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN])[k];//[kn   ];// +  c2over27 ;(D.f[dirN   ])[k  ];//kn
-			real mfbab = (D.f[dirS])[ks];//[ks   ];// +  c2over27 ;(D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT])[k];//[kt   ];// +  c2over27 ;(D.f[dirT   ])[k  ];//kt
-			real mfbba = (D.f[dirB])[kb];//[kb   ];// +  c2over27 ;(D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE])[k];//[kne  ];// +  c1over54 ;(D.f[dirNE  ])[k  ];//kne
-			real mfaab = (D.f[dirSW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE])[ks];//[kse  ];// +  c1over54 ;(D.f[dirSE  ])[ks ];//kse
-			real mfacb = (D.f[dirNW])[kw];//[knw  ];// +  c1over54 ;(D.f[dirNW  ])[kw ];//knw
-			real mfcbc = (D.f[dirTE])[k];//[kte  ];// +  c1over54 ;(D.f[dirTE  ])[k  ];//kte
-			real mfaba = (D.f[dirBW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE])[kb];//[kbe  ];// +  c1over54 ;(D.f[dirBE  ])[kb ];//kbe
-			real mfabc = (D.f[dirTW])[kw];//[ktw  ];// +  c1over54 ;(D.f[dirTW  ])[kw ];//ktw
-			real mfbcc = (D.f[dirTN])[k];//[ktn  ];// +  c1over54 ;(D.f[dirTN  ])[k  ];//ktn
-			real mfbaa = (D.f[dirBS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN])[kb];//[kbn  ];// +  c1over54 ;(D.f[dirBN  ])[kb ];//kbn
-			real mfbac = (D.f[dirTS])[ks];//[kts  ];// +  c1over54 ;(D.f[dirTS  ])[ks ];//kts
+			real mfcbb = (D.f[E])[k];//[ke   ];// +  c2over27 ;(D.f[E   ])[k  ];//ke
+			real mfabb = (D.f[W])[kw];//[kw   ];// +  c2over27 ;(D.f[W   ])[kw ];
+			real mfbcb = (D.f[N])[k];//[kn   ];// +  c2over27 ;(D.f[N   ])[k  ];//kn
+			real mfbab = (D.f[S])[ks];//[ks   ];// +  c2over27 ;(D.f[S   ])[ks ];
+			real mfbbc = (D.f[T])[k];//[kt   ];// +  c2over27 ;(D.f[T   ])[k  ];//kt
+			real mfbba = (D.f[B])[kb];//[kb   ];// +  c2over27 ;(D.f[B   ])[kb ];
+			real mfccb = (D.f[NE])[k];//[kne  ];// +  c1over54 ;(D.f[NE  ])[k  ];//kne
+			real mfaab = (D.f[SW])[ksw];//[ksw  ];// +  c1over54 ;(D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE])[ks];//[kse  ];// +  c1over54 ;(D.f[SE  ])[ks ];//kse
+			real mfacb = (D.f[NW])[kw];//[knw  ];// +  c1over54 ;(D.f[NW  ])[kw ];//knw
+			real mfcbc = (D.f[TE])[k];//[kte  ];// +  c1over54 ;(D.f[TE  ])[k  ];//kte
+			real mfaba = (D.f[BW])[kbw];//[kbw  ];// +  c1over54 ;(D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE])[kb];//[kbe  ];// +  c1over54 ;(D.f[BE  ])[kb ];//kbe
+			real mfabc = (D.f[TW])[kw];//[ktw  ];// +  c1over54 ;(D.f[TW  ])[kw ];//ktw
+			real mfbcc = (D.f[TN])[k];//[ktn  ];// +  c1over54 ;(D.f[TN  ])[k  ];//ktn
+			real mfbaa = (D.f[BS])[kbs];//[kbs  ];// +  c1over54 ;(D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN])[kb];//[kbn  ];// +  c1over54 ;(D.f[BN  ])[kb ];//kbn
+			real mfbac = (D.f[TS])[ks];//[kts  ];// +  c1over54 ;(D.f[TS  ])[ks ];//kts
 			real mfbbb = (D.f[dirREST])[k];//[kzero];// +  c8over27 ;(D.f[dirREST])[k  ];//kzero
-			real mfccc = (D.f[dirTNE])[k];//[ktne ];// +  c1over216;(D.f[dirTNE ])[k  ];//ktne
-			real mfaac = (D.f[dirTSW])[ksw];//[ktsw ];// +  c1over216;(D.f[dirTSW ])[ksw];//ktsw
-			real mfcac = (D.f[dirTSE])[ks];//[ktse ];// +  c1over216;(D.f[dirTSE ])[ks ];//ktse
-			real mfacc = (D.f[dirTNW])[kw];//[ktnw ];// +  c1over216;(D.f[dirTNW ])[kw ];//ktnw
-			real mfcca = (D.f[dirBNE])[kb];//[kbne ];// +  c1over216;(D.f[dirBNE ])[kb ];//kbne
-			real mfaaa = (D.f[dirBSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[dirBSW ])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];//[kbse ];// +  c1over216;(D.f[dirBSE ])[kbs];//kbse
-			real mfaca = (D.f[dirBNW])[kbw];//[kbnw ];// +  c1over216;(D.f[dirBNW ])[kbw];//kbnw
+			real mfccc = (D.f[TNE])[k];//[ktne ];// +  c1over216;(D.f[TNE ])[k  ];//ktne
+			real mfaac = (D.f[TSW])[ksw];//[ktsw ];// +  c1over216;(D.f[TSW ])[ksw];//ktsw
+			real mfcac = (D.f[TSE])[ks];//[ktse ];// +  c1over216;(D.f[TSE ])[ks ];//ktse
+			real mfacc = (D.f[TNW])[kw];//[ktnw ];// +  c1over216;(D.f[TNW ])[kw ];//ktnw
+			real mfcca = (D.f[BNE])[kb];//[kbne ];// +  c1over216;(D.f[BNE ])[kb ];//kbne
+			real mfaaa = (D.f[BSW])[kbsw];//[kbsw ];// +  c1over216;(D.f[BSW ])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];//[kbse ];// +  c1over216;(D.f[BSE ])[kbs];//kbse
+			real mfaca = (D.f[BNW])[kbw];//[kbnw ];// +  c1over216;(D.f[BNW ])[kbw];//kbnw
 											////////////////////////////////////////////////////////////////////////////////////
 											//slow
 											//real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
@@ -730,33 +730,33 @@ extern "C" __global__ void LB_Kernel_MRT_Incomp_SP_27(real omega,
 
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;//(D.f[ dirE   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ dirE   ])[k   ]                                                                     
-			(D.f[dirW])[kw] = mfcbb;//(D.f[ dirW   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ dirW   ])[kw  ]                                                                   
-			(D.f[dirN])[k] = mfbab;//(D.f[ dirN   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ dirN   ])[k   ]
-			(D.f[dirS])[ks] = mfbcb;//(D.f[ dirS   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ dirS   ])[ks  ]
-			(D.f[dirT])[k] = mfbba;//(D.f[ dirT   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ dirT   ])[k   ]
-			(D.f[dirB])[kb] = mfbbc;//(D.f[ dirB   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ dirB   ])[kb  ]
-			(D.f[dirNE])[k] = mfaab;//(D.f[ dirNE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ dirNE  ])[k   ]
-			(D.f[dirSW])[ksw] = mfccb;//(D.f[ dirSW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ dirSW  ])[ksw ]
-			(D.f[dirSE])[ks] = mfacb;//(D.f[ dirSE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ dirSE  ])[ks  ]
-			(D.f[dirNW])[kw] = mfcab;//(D.f[ dirNW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ dirNW  ])[kw  ]
-			(D.f[dirTE])[k] = mfaba;//(D.f[ dirTE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ dirTE  ])[k   ]
-			(D.f[dirBW])[kbw] = mfcbc;//(D.f[ dirBW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ dirBW  ])[kbw ]
-			(D.f[dirBE])[kb] = mfabc;//(D.f[ dirBE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ dirBE  ])[kb  ]
-			(D.f[dirTW])[kw] = mfcba;//(D.f[ dirTW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ dirTW  ])[kw  ]
-			(D.f[dirTN])[k] = mfbaa;//(D.f[ dirTN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ dirTN  ])[k   ]
-			(D.f[dirBS])[kbs] = mfbcc;//(D.f[ dirBS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ dirBS  ])[kbs ]
-			(D.f[dirBN])[kb] = mfbac;//(D.f[ dirBN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ dirBN  ])[kb  ]
-			(D.f[dirTS])[ks] = mfbca;//(D.f[ dirTS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ dirTS  ])[ks  ]
+			(D.f[E])[k] = mfabb;//(D.f[ E   ])[ke   ] = mfabb;// -  c2over27 ;  (D.f[ E   ])[k   ]                                                                     
+			(D.f[W])[kw] = mfcbb;//(D.f[ W   ])[kw   ] = mfcbb;// -  c2over27 ;  (D.f[ W   ])[kw  ]                                                                   
+			(D.f[N])[k] = mfbab;//(D.f[ N   ])[kn   ] = mfbab;// -  c2over27 ;	 (D.f[ N   ])[k   ]
+			(D.f[S])[ks] = mfbcb;//(D.f[ S   ])[ks   ] = mfbcb;// -  c2over27 ;	 (D.f[ S   ])[ks  ]
+			(D.f[T])[k] = mfbba;//(D.f[ T   ])[kt   ] = mfbba;// -  c2over27 ;	 (D.f[ T   ])[k   ]
+			(D.f[B])[kb] = mfbbc;//(D.f[ B   ])[kb   ] = mfbbc;// -  c2over27 ;	 (D.f[ B   ])[kb  ]
+			(D.f[NE])[k] = mfaab;//(D.f[ NE  ])[kne  ] = mfaab;// -  c1over54 ;	 (D.f[ NE  ])[k   ]
+			(D.f[SW])[ksw] = mfccb;//(D.f[ SW  ])[ksw  ] = mfccb;// -  c1over54 ;	 (D.f[ SW  ])[ksw ]
+			(D.f[SE])[ks] = mfacb;//(D.f[ SE  ])[kse  ] = mfacb;// -  c1over54 ;	 (D.f[ SE  ])[ks  ]
+			(D.f[NW])[kw] = mfcab;//(D.f[ NW  ])[knw  ] = mfcab;// -  c1over54 ;	 (D.f[ NW  ])[kw  ]
+			(D.f[TE])[k] = mfaba;//(D.f[ TE  ])[kte  ] = mfaba;// -  c1over54 ;	 (D.f[ TE  ])[k   ]
+			(D.f[BW])[kbw] = mfcbc;//(D.f[ BW  ])[kbw  ] = mfcbc;// -  c1over54 ;	 (D.f[ BW  ])[kbw ]
+			(D.f[BE])[kb] = mfabc;//(D.f[ BE  ])[kbe  ] = mfabc;// -  c1over54 ;	 (D.f[ BE  ])[kb  ]
+			(D.f[TW])[kw] = mfcba;//(D.f[ TW  ])[ktw  ] = mfcba;// -  c1over54 ;	 (D.f[ TW  ])[kw  ]
+			(D.f[TN])[k] = mfbaa;//(D.f[ TN  ])[ktn  ] = mfbaa;// -  c1over54 ;	 (D.f[ TN  ])[k   ]
+			(D.f[BS])[kbs] = mfbcc;//(D.f[ BS  ])[kbs  ] = mfbcc;// -  c1over54 ;	 (D.f[ BS  ])[kbs ]
+			(D.f[BN])[kb] = mfbac;//(D.f[ BN  ])[kbn  ] = mfbac;// -  c1over54 ;	 (D.f[ BN  ])[kb  ]
+			(D.f[TS])[ks] = mfbca;//(D.f[ TS  ])[kts  ] = mfbca;// -  c1over54 ;	 (D.f[ TS  ])[ks  ]
 			(D.f[dirREST])[k] = mfbbb;//(D.f[ dirREST])[kzero] = mfbbb;// -  c8over27 ;	 (D.f[ dirREST])[k   ]
-			(D.f[dirTNE])[k] = mfaaa;//(D.f[ dirTNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ dirTNE ])[k   ]
-			(D.f[dirTSE])[ks] = mfaca;//(D.f[ dirTSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ dirTSE ])[ks  ]
-			(D.f[dirBNE])[kb] = mfaac;//(D.f[ dirBNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ dirBNE ])[kb  ]
-			(D.f[dirBSE])[kbs] = mfacc;//(D.f[ dirBSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ dirBSE ])[kbs ]
-			(D.f[dirTNW])[kw] = mfcaa;//(D.f[ dirTNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ dirTNW ])[kw  ]
-			(D.f[dirTSW])[ksw] = mfcca;//(D.f[ dirTSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ dirTSW ])[ksw ]
-			(D.f[dirBNW])[kbw] = mfcac;//(D.f[ dirBNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ dirBNW ])[kbw ]
-			(D.f[dirBSW])[kbsw] = mfccc;//(D.f[ dirBSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ dirBSW ])[kbsw]
+			(D.f[TNE])[k] = mfaaa;//(D.f[ TNE ])[ktne ] = mfaaa;// -  c1over216;	 (D.f[ TNE ])[k   ]
+			(D.f[TSE])[ks] = mfaca;//(D.f[ TSE ])[ktse ] = mfaca;// -  c1over216;	 (D.f[ TSE ])[ks  ]
+			(D.f[BNE])[kb] = mfaac;//(D.f[ BNE ])[kbne ] = mfaac;// -  c1over216;	 (D.f[ BNE ])[kb  ]
+			(D.f[BSE])[kbs] = mfacc;//(D.f[ BSE ])[kbse ] = mfacc;// -  c1over216;	 (D.f[ BSE ])[kbs ]
+			(D.f[TNW])[kw] = mfcaa;//(D.f[ TNW ])[ktnw ] = mfcaa;// -  c1over216;	 (D.f[ TNW ])[kw  ]
+			(D.f[TSW])[ksw] = mfcca;//(D.f[ TSW ])[ktsw ] = mfcca;// -  c1over216;	 (D.f[ TSW ])[ksw ]
+			(D.f[BNW])[kbw] = mfcac;//(D.f[ BNW ])[kbnw ] = mfcac;// -  c1over216;	 (D.f[ BNW ])[kbw ]
+			(D.f[BSW])[kbsw] = mfccc;//(D.f[ BSW ])[kbsw ] = mfccc;// -  c1over216;	 (D.f[ BSW ])[kbsw]
 										////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 22b175307..903aceba0 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
@@ -23,63 +23,63 @@ extern "C" __global__ void LB_Kernel_PM_Cum_One_Comp_SP_27(real omega,
 	Distributions27 D;
 	if (EvenOrOdd == true)
 	{
-		D.f[dirE] = &DDStart[dirE   *size_Mat];
-		D.f[dirW] = &DDStart[dirW   *size_Mat];
-		D.f[dirN] = &DDStart[dirN   *size_Mat];
-		D.f[dirS] = &DDStart[dirS   *size_Mat];
-		D.f[dirT] = &DDStart[dirT   *size_Mat];
-		D.f[dirB] = &DDStart[dirB   *size_Mat];
-		D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-		D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-		D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-		D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-		D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-		D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-		D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-		D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-		D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-		D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-		D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-		D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+		D.f[E] = &DDStart[E   *size_Mat];
+		D.f[W] = &DDStart[W   *size_Mat];
+		D.f[N] = &DDStart[N   *size_Mat];
+		D.f[S] = &DDStart[S   *size_Mat];
+		D.f[T] = &DDStart[T   *size_Mat];
+		D.f[B] = &DDStart[B   *size_Mat];
+		D.f[NE] = &DDStart[NE  *size_Mat];
+		D.f[SW] = &DDStart[SW  *size_Mat];
+		D.f[SE] = &DDStart[SE  *size_Mat];
+		D.f[NW] = &DDStart[NW  *size_Mat];
+		D.f[TE] = &DDStart[TE  *size_Mat];
+		D.f[BW] = &DDStart[BW  *size_Mat];
+		D.f[BE] = &DDStart[BE  *size_Mat];
+		D.f[TW] = &DDStart[TW  *size_Mat];
+		D.f[TN] = &DDStart[TN  *size_Mat];
+		D.f[BS] = &DDStart[BS  *size_Mat];
+		D.f[BN] = &DDStart[BN  *size_Mat];
+		D.f[TS] = &DDStart[TS  *size_Mat];
 		D.f[dirREST] = &DDStart[dirREST*size_Mat];
-		D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-		D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-		D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-		D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-		D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-		D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-		D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-		D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+		D.f[TNE] = &DDStart[TNE *size_Mat];
+		D.f[TSW] = &DDStart[TSW *size_Mat];
+		D.f[TSE] = &DDStart[TSE *size_Mat];
+		D.f[TNW] = &DDStart[TNW *size_Mat];
+		D.f[BNE] = &DDStart[BNE *size_Mat];
+		D.f[BSW] = &DDStart[BSW *size_Mat];
+		D.f[BSE] = &DDStart[BSE *size_Mat];
+		D.f[BNW] = &DDStart[BNW *size_Mat];
 	}
 	else
 	{
-		D.f[dirW] = &DDStart[dirE   *size_Mat];
-		D.f[dirE] = &DDStart[dirW   *size_Mat];
-		D.f[dirS] = &DDStart[dirN   *size_Mat];
-		D.f[dirN] = &DDStart[dirS   *size_Mat];
-		D.f[dirB] = &DDStart[dirT   *size_Mat];
-		D.f[dirT] = &DDStart[dirB   *size_Mat];
-		D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-		D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-		D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-		D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-		D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-		D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-		D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-		D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-		D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-		D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-		D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-		D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+		D.f[W] = &DDStart[E   *size_Mat];
+		D.f[E] = &DDStart[W   *size_Mat];
+		D.f[S] = &DDStart[N   *size_Mat];
+		D.f[N] = &DDStart[S   *size_Mat];
+		D.f[B] = &DDStart[T   *size_Mat];
+		D.f[T] = &DDStart[B   *size_Mat];
+		D.f[SW] = &DDStart[NE  *size_Mat];
+		D.f[NE] = &DDStart[SW  *size_Mat];
+		D.f[NW] = &DDStart[SE  *size_Mat];
+		D.f[SE] = &DDStart[NW  *size_Mat];
+		D.f[BW] = &DDStart[TE  *size_Mat];
+		D.f[TE] = &DDStart[BW  *size_Mat];
+		D.f[TW] = &DDStart[BE  *size_Mat];
+		D.f[BE] = &DDStart[TW  *size_Mat];
+		D.f[BS] = &DDStart[TN  *size_Mat];
+		D.f[TN] = &DDStart[BS  *size_Mat];
+		D.f[TS] = &DDStart[BN  *size_Mat];
+		D.f[BN] = &DDStart[TS  *size_Mat];
 		D.f[dirREST] = &DDStart[dirREST*size_Mat];
-		D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-		D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-		D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-		D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-		D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-		D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-		D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-		D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+		D.f[BSW] = &DDStart[TNE *size_Mat];
+		D.f[BNE] = &DDStart[TSW *size_Mat];
+		D.f[BNW] = &DDStart[TSE *size_Mat];
+		D.f[BSE] = &DDStart[TNW *size_Mat];
+		D.f[TSW] = &DDStart[BNE *size_Mat];
+		D.f[TNE] = &DDStart[BSW *size_Mat];
+		D.f[TNW] = &DDStart[BSE *size_Mat];
+		D.f[TSE] = &DDStart[BNW *size_Mat];
 	}
 
 	////////////////////////////////////////////////////////////////////////////////
@@ -106,33 +106,33 @@ extern "C" __global__ void LB_Kernel_PM_Cum_One_Comp_SP_27(real omega,
 		unsigned int kbs = neighborZ[ks];
 		unsigned int kbsw = neighborZ[ksw];
 		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-		real mfcbb = (D.f[dirE])[k];
-		real mfabb = (D.f[dirW])[kw];
-		real mfbcb = (D.f[dirN])[k];
-		real mfbab = (D.f[dirS])[ks];
-		real mfbbc = (D.f[dirT])[k];
-		real mfbba = (D.f[dirB])[kb];
-		real mfccb = (D.f[dirNE])[k];
-		real mfaab = (D.f[dirSW])[ksw];
-		real mfcab = (D.f[dirSE])[ks];
-		real mfacb = (D.f[dirNW])[kw];
-		real mfcbc = (D.f[dirTE])[k];
-		real mfaba = (D.f[dirBW])[kbw];
-		real mfcba = (D.f[dirBE])[kb];
-		real mfabc = (D.f[dirTW])[kw];
-		real mfbcc = (D.f[dirTN])[k];
-		real mfbaa = (D.f[dirBS])[kbs];
-		real mfbca = (D.f[dirBN])[kb];
-		real mfbac = (D.f[dirTS])[ks];
+		real mfcbb = (D.f[E])[k];
+		real mfabb = (D.f[W])[kw];
+		real mfbcb = (D.f[N])[k];
+		real mfbab = (D.f[S])[ks];
+		real mfbbc = (D.f[T])[k];
+		real mfbba = (D.f[B])[kb];
+		real mfccb = (D.f[NE])[k];
+		real mfaab = (D.f[SW])[ksw];
+		real mfcab = (D.f[SE])[ks];
+		real mfacb = (D.f[NW])[kw];
+		real mfcbc = (D.f[TE])[k];
+		real mfaba = (D.f[BW])[kbw];
+		real mfcba = (D.f[BE])[kb];
+		real mfabc = (D.f[TW])[kw];
+		real mfbcc = (D.f[TN])[k];
+		real mfbaa = (D.f[BS])[kbs];
+		real mfbca = (D.f[BN])[kb];
+		real mfbac = (D.f[TS])[ks];
 		real mfbbb = (D.f[dirREST])[k];
-		real mfccc = (D.f[dirTNE])[k];
-		real mfaac = (D.f[dirTSW])[ksw];
-		real mfcac = (D.f[dirTSE])[ks];
-		real mfacc = (D.f[dirTNW])[kw];
-		real mfcca = (D.f[dirBNE])[kb];
-		real mfaaa = (D.f[dirBSW])[kbsw];
-		real mfcaa = (D.f[dirBSE])[kbs];
-		real mfaca = (D.f[dirBNW])[kbw];
+		real mfccc = (D.f[TNE])[k];
+		real mfaac = (D.f[TSW])[ksw];
+		real mfcac = (D.f[TSE])[ks];
+		real mfacc = (D.f[TNW])[kw];
+		real mfcca = (D.f[BNE])[kb];
+		real mfaaa = (D.f[BSW])[kbsw];
+		real mfcaa = (D.f[BSE])[kbs];
+		real mfaca = (D.f[BNW])[kbw];
 		////////////////////////////////////////////////////////////////////////////////////
 		real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 			(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -903,33 +903,33 @@ extern "C" __global__ void LB_Kernel_PM_Cum_One_Comp_SP_27(real omega,
 		////////////////////////////////////////////////////////////////////////////////////
 
 		////////////////////////////////////////////////////////////////////////////////////
-		(D.f[dirE])[k] = mfabb;
-		(D.f[dirW])[kw] = mfcbb;
-		(D.f[dirN])[k] = mfbab;
-		(D.f[dirS])[ks] = mfbcb;
-		(D.f[dirT])[k] = mfbba;
-		(D.f[dirB])[kb] = mfbbc;
-		(D.f[dirNE])[k] = mfaab;
-		(D.f[dirSW])[ksw] = mfccb;
-		(D.f[dirSE])[ks] = mfacb;
-		(D.f[dirNW])[kw] = mfcab;
-		(D.f[dirTE])[k] = mfaba;
-		(D.f[dirBW])[kbw] = mfcbc;
-		(D.f[dirBE])[kb] = mfabc;
-		(D.f[dirTW])[kw] = mfcba;
-		(D.f[dirTN])[k] = mfbaa;
-		(D.f[dirBS])[kbs] = mfbcc;
-		(D.f[dirBN])[kb] = mfbac;
-		(D.f[dirTS])[ks] = mfbca;
+		(D.f[E])[k] = mfabb;
+		(D.f[W])[kw] = mfcbb;
+		(D.f[N])[k] = mfbab;
+		(D.f[S])[ks] = mfbcb;
+		(D.f[T])[k] = mfbba;
+		(D.f[B])[kb] = mfbbc;
+		(D.f[NE])[k] = mfaab;
+		(D.f[SW])[ksw] = mfccb;
+		(D.f[SE])[ks] = mfacb;
+		(D.f[NW])[kw] = mfcab;
+		(D.f[TE])[k] = mfaba;
+		(D.f[BW])[kbw] = mfcbc;
+		(D.f[BE])[kb] = mfabc;
+		(D.f[TW])[kw] = mfcba;
+		(D.f[TN])[k] = mfbaa;
+		(D.f[BS])[kbs] = mfbcc;
+		(D.f[BN])[kb] = mfbac;
+		(D.f[TS])[ks] = mfbca;
 		(D.f[dirREST])[k] = mfbbb;
-		(D.f[dirTNE])[k] = mfaaa;
-		(D.f[dirTSE])[ks] = mfaca;
-		(D.f[dirBNE])[kb] = mfaac;
-		(D.f[dirBSE])[kbs] = mfacc;
-		(D.f[dirTNW])[kw] = mfcaa;
-		(D.f[dirTSW])[ksw] = mfcca;
-		(D.f[dirBNW])[kbw] = mfcac;
-		(D.f[dirBSW])[kbsw] = mfccc;
+		(D.f[TNE])[k] = mfaaa;
+		(D.f[TSE])[ks] = mfaca;
+		(D.f[BNE])[kb] = mfaac;
+		(D.f[BSE])[kbs] = mfacc;
+		(D.f[TNW])[kw] = mfcaa;
+		(D.f[TSW])[ksw] = mfcca;
+		(D.f[BNW])[kbw] = mfcac;
+		(D.f[BSW])[kbsw] = mfccc;
 		////////////////////////////////////////////////////////////////////////////////////
 	}
 }
\ No newline at end of file
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/TurbulentViscosityKernels/FluidFlow/Compressible/CumulantK17chim/TurbulentViscosityCumulantK17CompChim_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/TurbulentViscosityKernels/FluidFlow/Compressible/CumulantK17chim/TurbulentViscosityCumulantK17CompChim_Device.cu
index d43be2a9d..0440f6161 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/TurbulentViscosityKernels/FluidFlow/Compressible/CumulantK17chim/TurbulentViscosityCumulantK17CompChim_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/TurbulentViscosityKernels/FluidFlow/Compressible/CumulantK17chim/TurbulentViscosityCumulantK17CompChim_Device.cu
@@ -101,61 +101,61 @@ extern "C" __global__ void LB_Kernel_TurbulentViscosityCumulantK17CompChim(
         //!
         Distributions27 dist;
         if (isEvenTimestep) {
-            dist.f[dirE]    = &distributions[dirE * size_Mat];
-            dist.f[dirW]    = &distributions[dirW * size_Mat];
-            dist.f[dirN]    = &distributions[dirN * size_Mat];
-            dist.f[dirS]    = &distributions[dirS * size_Mat];
-            dist.f[dirT]    = &distributions[dirT * size_Mat];
-            dist.f[dirB]    = &distributions[dirB * size_Mat];
-            dist.f[dirNE]   = &distributions[dirNE * size_Mat];
-            dist.f[dirSW]   = &distributions[dirSW * size_Mat];
-            dist.f[dirSE]   = &distributions[dirSE * size_Mat];
-            dist.f[dirNW]   = &distributions[dirNW * size_Mat];
-            dist.f[dirTE]   = &distributions[dirTE * size_Mat];
-            dist.f[dirBW]   = &distributions[dirBW * size_Mat];
-            dist.f[dirBE]   = &distributions[dirBE * size_Mat];
-            dist.f[dirTW]   = &distributions[dirTW * size_Mat];
-            dist.f[dirTN]   = &distributions[dirTN * size_Mat];
-            dist.f[dirBS]   = &distributions[dirBS * size_Mat];
-            dist.f[dirBN]   = &distributions[dirBN * size_Mat];
-            dist.f[dirTS]   = &distributions[dirTS * size_Mat];
+            dist.f[E]    = &distributions[E * size_Mat];
+            dist.f[W]    = &distributions[W * size_Mat];
+            dist.f[N]    = &distributions[N * size_Mat];
+            dist.f[S]    = &distributions[S * size_Mat];
+            dist.f[T]    = &distributions[T * size_Mat];
+            dist.f[B]    = &distributions[B * size_Mat];
+            dist.f[NE]   = &distributions[NE * size_Mat];
+            dist.f[SW]   = &distributions[SW * size_Mat];
+            dist.f[SE]   = &distributions[SE * size_Mat];
+            dist.f[NW]   = &distributions[NW * size_Mat];
+            dist.f[TE]   = &distributions[TE * size_Mat];
+            dist.f[BW]   = &distributions[BW * size_Mat];
+            dist.f[BE]   = &distributions[BE * size_Mat];
+            dist.f[TW]   = &distributions[TW * size_Mat];
+            dist.f[TN]   = &distributions[TN * size_Mat];
+            dist.f[BS]   = &distributions[BS * size_Mat];
+            dist.f[BN]   = &distributions[BN * size_Mat];
+            dist.f[TS]   = &distributions[TS * size_Mat];
             dist.f[dirREST] = &distributions[dirREST * size_Mat];
-            dist.f[dirTNE]  = &distributions[dirTNE * size_Mat];
-            dist.f[dirTSW]  = &distributions[dirTSW * size_Mat];
-            dist.f[dirTSE]  = &distributions[dirTSE * size_Mat];
-            dist.f[dirTNW]  = &distributions[dirTNW * size_Mat];
-            dist.f[dirBNE]  = &distributions[dirBNE * size_Mat];
-            dist.f[dirBSW]  = &distributions[dirBSW * size_Mat];
-            dist.f[dirBSE]  = &distributions[dirBSE * size_Mat];
-            dist.f[dirBNW]  = &distributions[dirBNW * size_Mat];
+            dist.f[TNE]  = &distributions[TNE * size_Mat];
+            dist.f[TSW]  = &distributions[TSW * size_Mat];
+            dist.f[TSE]  = &distributions[TSE * size_Mat];
+            dist.f[TNW]  = &distributions[TNW * size_Mat];
+            dist.f[BNE]  = &distributions[BNE * size_Mat];
+            dist.f[BSW]  = &distributions[BSW * size_Mat];
+            dist.f[BSE]  = &distributions[BSE * size_Mat];
+            dist.f[BNW]  = &distributions[BNW * size_Mat];
         } else {
-            dist.f[dirW]    = &distributions[dirE * size_Mat];
-            dist.f[dirE]    = &distributions[dirW * size_Mat];
-            dist.f[dirS]    = &distributions[dirN * size_Mat];
-            dist.f[dirN]    = &distributions[dirS * size_Mat];
-            dist.f[dirB]    = &distributions[dirT * size_Mat];
-            dist.f[dirT]    = &distributions[dirB * size_Mat];
-            dist.f[dirSW]   = &distributions[dirNE * size_Mat];
-            dist.f[dirNE]   = &distributions[dirSW * size_Mat];
-            dist.f[dirNW]   = &distributions[dirSE * size_Mat];
-            dist.f[dirSE]   = &distributions[dirNW * size_Mat];
-            dist.f[dirBW]   = &distributions[dirTE * size_Mat];
-            dist.f[dirTE]   = &distributions[dirBW * size_Mat];
-            dist.f[dirTW]   = &distributions[dirBE * size_Mat];
-            dist.f[dirBE]   = &distributions[dirTW * size_Mat];
-            dist.f[dirBS]   = &distributions[dirTN * size_Mat];
-            dist.f[dirTN]   = &distributions[dirBS * size_Mat];
-            dist.f[dirTS]   = &distributions[dirBN * size_Mat];
-            dist.f[dirBN]   = &distributions[dirTS * size_Mat];
+            dist.f[W]    = &distributions[E * size_Mat];
+            dist.f[E]    = &distributions[W * size_Mat];
+            dist.f[S]    = &distributions[N * size_Mat];
+            dist.f[N]    = &distributions[S * size_Mat];
+            dist.f[B]    = &distributions[T * size_Mat];
+            dist.f[T]    = &distributions[B * size_Mat];
+            dist.f[SW]   = &distributions[NE * size_Mat];
+            dist.f[NE]   = &distributions[SW * size_Mat];
+            dist.f[NW]   = &distributions[SE * size_Mat];
+            dist.f[SE]   = &distributions[NW * size_Mat];
+            dist.f[BW]   = &distributions[TE * size_Mat];
+            dist.f[TE]   = &distributions[BW * size_Mat];
+            dist.f[TW]   = &distributions[BE * size_Mat];
+            dist.f[BE]   = &distributions[TW * size_Mat];
+            dist.f[BS]   = &distributions[TN * size_Mat];
+            dist.f[TN]   = &distributions[BS * size_Mat];
+            dist.f[TS]   = &distributions[BN * size_Mat];
+            dist.f[BN]   = &distributions[TS * size_Mat];
             dist.f[dirREST] = &distributions[dirREST * size_Mat];
-            dist.f[dirBSW]  = &distributions[dirTNE * size_Mat];
-            dist.f[dirBNE]  = &distributions[dirTSW * size_Mat];
-            dist.f[dirBNW]  = &distributions[dirTSE * size_Mat];
-            dist.f[dirBSE]  = &distributions[dirTNW * size_Mat];
-            dist.f[dirTSW]  = &distributions[dirBNE * size_Mat];
-            dist.f[dirTNE]  = &distributions[dirBSW * size_Mat];
-            dist.f[dirTNW]  = &distributions[dirBSE * size_Mat];
-            dist.f[dirTSE]  = &distributions[dirBNW * size_Mat];
+            dist.f[BSW]  = &distributions[TNE * size_Mat];
+            dist.f[BNE]  = &distributions[TSW * size_Mat];
+            dist.f[BNW]  = &distributions[TSE * size_Mat];
+            dist.f[BSE]  = &distributions[TNW * size_Mat];
+            dist.f[TSW]  = &distributions[BNE * size_Mat];
+            dist.f[TNE]  = &distributions[BSW * size_Mat];
+            dist.f[TNW]  = &distributions[BSE * size_Mat];
+            dist.f[TSE]  = &distributions[BNW * size_Mat];
         }
         ////////////////////////////////////////////////////////////////////////////////
         //! - Set neighbor indices (necessary for indirect addressing)
@@ -169,33 +169,33 @@ extern "C" __global__ void LB_Kernel_TurbulentViscosityCumulantK17CompChim(
         ////////////////////////////////////////////////////////////////////////////////////
         //! - Set local distributions
         //!
-        real mfcbb = (dist.f[dirE])[k];
-        real mfabb = (dist.f[dirW])[kw];
-        real mfbcb = (dist.f[dirN])[k];
-        real mfbab = (dist.f[dirS])[ks];
-        real mfbbc = (dist.f[dirT])[k];
-        real mfbba = (dist.f[dirB])[kb];
-        real mfccb = (dist.f[dirNE])[k];
-        real mfaab = (dist.f[dirSW])[ksw];
-        real mfcab = (dist.f[dirSE])[ks];
-        real mfacb = (dist.f[dirNW])[kw];
-        real mfcbc = (dist.f[dirTE])[k];
-        real mfaba = (dist.f[dirBW])[kbw];
-        real mfcba = (dist.f[dirBE])[kb];
-        real mfabc = (dist.f[dirTW])[kw];
-        real mfbcc = (dist.f[dirTN])[k];
-        real mfbaa = (dist.f[dirBS])[kbs];
-        real mfbca = (dist.f[dirBN])[kb];
-        real mfbac = (dist.f[dirTS])[ks];
+        real mfcbb = (dist.f[E])[k];
+        real mfabb = (dist.f[W])[kw];
+        real mfbcb = (dist.f[N])[k];
+        real mfbab = (dist.f[S])[ks];
+        real mfbbc = (dist.f[T])[k];
+        real mfbba = (dist.f[B])[kb];
+        real mfccb = (dist.f[NE])[k];
+        real mfaab = (dist.f[SW])[ksw];
+        real mfcab = (dist.f[SE])[ks];
+        real mfacb = (dist.f[NW])[kw];
+        real mfcbc = (dist.f[TE])[k];
+        real mfaba = (dist.f[BW])[kbw];
+        real mfcba = (dist.f[BE])[kb];
+        real mfabc = (dist.f[TW])[kw];
+        real mfbcc = (dist.f[TN])[k];
+        real mfbaa = (dist.f[BS])[kbs];
+        real mfbca = (dist.f[BN])[kb];
+        real mfbac = (dist.f[TS])[ks];
         real mfbbb = (dist.f[dirREST])[k];
-        real mfccc = (dist.f[dirTNE])[k];
-        real mfaac = (dist.f[dirTSW])[ksw];
-        real mfcac = (dist.f[dirTSE])[ks];
-        real mfacc = (dist.f[dirTNW])[kw];
-        real mfcca = (dist.f[dirBNE])[kb];
-        real mfaaa = (dist.f[dirBSW])[kbsw];
-        real mfcaa = (dist.f[dirBSE])[kbs];
-        real mfaca = (dist.f[dirBNW])[kbw];
+        real mfccc = (dist.f[TNE])[k];
+        real mfaac = (dist.f[TSW])[ksw];
+        real mfcac = (dist.f[TSE])[ks];
+        real mfacc = (dist.f[TNW])[kw];
+        real mfcca = (dist.f[BNE])[kb];
+        real mfaaa = (dist.f[BSW])[kbsw];
+        real mfcaa = (dist.f[BSE])[kbs];
+        real mfaca = (dist.f[BNW])[kbw];
         //////////////////////////////////////////////////////(unsigned long)//////////////////////////////
         //! - 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),
@@ -693,33 +693,33 @@ extern "C" __global__ void LB_Kernel_TurbulentViscosityCumulantK17CompChim(
         //! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017),
         //! DOI:10.3390/computation5020019 ]</b></a>
         //!
-        (dist.f[dirE])[k]      = mfabb;
-        (dist.f[dirW])[kw]     = mfcbb;
-        (dist.f[dirN])[k]      = mfbab;
-        (dist.f[dirS])[ks]     = mfbcb;
-        (dist.f[dirT])[k]      = mfbba;
-        (dist.f[dirB])[kb]     = mfbbc;
-        (dist.f[dirNE])[k]     = mfaab;
-        (dist.f[dirSW])[ksw]   = mfccb;
-        (dist.f[dirSE])[ks]    = mfacb;
-        (dist.f[dirNW])[kw]    = mfcab;
-        (dist.f[dirTE])[k]     = mfaba;
-        (dist.f[dirBW])[kbw]   = mfcbc;
-        (dist.f[dirBE])[kb]    = mfabc;
-        (dist.f[dirTW])[kw]    = mfcba;
-        (dist.f[dirTN])[k]     = mfbaa;
-        (dist.f[dirBS])[kbs]   = mfbcc;
-        (dist.f[dirBN])[kb]    = mfbac;
-        (dist.f[dirTS])[ks]    = mfbca;
+        (dist.f[E])[k]      = mfabb;
+        (dist.f[W])[kw]     = mfcbb;
+        (dist.f[N])[k]      = mfbab;
+        (dist.f[S])[ks]     = mfbcb;
+        (dist.f[T])[k]      = mfbba;
+        (dist.f[B])[kb]     = mfbbc;
+        (dist.f[NE])[k]     = mfaab;
+        (dist.f[SW])[ksw]   = mfccb;
+        (dist.f[SE])[ks]    = mfacb;
+        (dist.f[NW])[kw]    = mfcab;
+        (dist.f[TE])[k]     = mfaba;
+        (dist.f[BW])[kbw]   = mfcbc;
+        (dist.f[BE])[kb]    = mfabc;
+        (dist.f[TW])[kw]    = mfcba;
+        (dist.f[TN])[k]     = mfbaa;
+        (dist.f[BS])[kbs]   = mfbcc;
+        (dist.f[BN])[kb]    = mfbac;
+        (dist.f[TS])[ks]    = mfbca;
         (dist.f[dirREST])[k]   = mfbbb;
-        (dist.f[dirTNE])[k]    = mfaaa;
-        (dist.f[dirTSE])[ks]   = mfaca;
-        (dist.f[dirBNE])[kb]   = mfaac;
-        (dist.f[dirBSE])[kbs]  = mfacc;
-        (dist.f[dirTNW])[kw]   = mfcaa;
-        (dist.f[dirTSW])[ksw]  = mfcca;
-        (dist.f[dirBNW])[kbw]  = mfcac;
-        (dist.f[dirBSW])[kbsw] = mfccc;
+        (dist.f[TNE])[k]    = mfaaa;
+        (dist.f[TSE])[ks]   = mfaca;
+        (dist.f[BNE])[kb]   = mfaac;
+        (dist.f[BSE])[kbs]  = mfacc;
+        (dist.f[TNW])[kw]   = mfcaa;
+        (dist.f[TSW])[ksw]  = mfcca;
+        (dist.f[BNW])[kbw]  = mfcac;
+        (dist.f[BSW])[kbsw] = mfccc;
 
 
     }
@@ -843,61 +843,61 @@ extern "C" __global__ void LB_Kernel_TurbulentViscosityCumulantK17CompChim(
 
 //         Distributions27 dist;
 //         if (isEvenTimestep) {
-//             dist.f[dirE]    = &distributions[dirE * size_Mat];
-//             dist.f[dirW]    = &distributions[dirW * size_Mat];
-//             dist.f[dirN]    = &distributions[dirN * size_Mat];
-//             dist.f[dirS]    = &distributions[dirS * size_Mat];
-//             dist.f[dirT]    = &distributions[dirT * size_Mat];
-//             dist.f[dirB]    = &distributions[dirB * size_Mat];
-//             dist.f[dirNE]   = &distributions[dirNE * size_Mat];
-//             dist.f[dirSW]   = &distributions[dirSW * size_Mat];
-//             dist.f[dirSE]   = &distributions[dirSE * size_Mat];
-//             dist.f[dirNW]   = &distributions[dirNW * size_Mat];
-//             dist.f[dirTE]   = &distributions[dirTE * size_Mat];
-//             dist.f[dirBW]   = &distributions[dirBW * size_Mat];
-//             dist.f[dirBE]   = &distributions[dirBE * size_Mat];
-//             dist.f[dirTW]   = &distributions[dirTW * size_Mat];
-//             dist.f[dirTN]   = &distributions[dirTN * size_Mat];
-//             dist.f[dirBS]   = &distributions[dirBS * size_Mat];
-//             dist.f[dirBN]   = &distributions[dirBN * size_Mat];
-//             dist.f[dirTS]   = &distributions[dirTS * size_Mat];
+//             dist.f[E]    = &distributions[E * size_Mat];
+//             dist.f[W]    = &distributions[W * size_Mat];
+//             dist.f[N]    = &distributions[N * size_Mat];
+//             dist.f[S]    = &distributions[S * size_Mat];
+//             dist.f[T]    = &distributions[T * size_Mat];
+//             dist.f[B]    = &distributions[B * size_Mat];
+//             dist.f[NE]   = &distributions[NE * size_Mat];
+//             dist.f[SW]   = &distributions[SW * size_Mat];
+//             dist.f[SE]   = &distributions[SE * size_Mat];
+//             dist.f[NW]   = &distributions[NW * size_Mat];
+//             dist.f[TE]   = &distributions[TE * size_Mat];
+//             dist.f[BW]   = &distributions[BW * size_Mat];
+//             dist.f[BE]   = &distributions[BE * size_Mat];
+//             dist.f[TW]   = &distributions[TW * size_Mat];
+//             dist.f[TN]   = &distributions[TN * size_Mat];
+//             dist.f[BS]   = &distributions[BS * size_Mat];
+//             dist.f[BN]   = &distributions[BN * size_Mat];
+//             dist.f[TS]   = &distributions[TS * size_Mat];
 //             dist.f[dirREST] = &distributions[dirREST * size_Mat];
-//             dist.f[dirTNE]  = &distributions[dirTNE * size_Mat];
-//             dist.f[dirTSW]  = &distributions[dirTSW * size_Mat];
-//             dist.f[dirTSE]  = &distributions[dirTSE * size_Mat];
-//             dist.f[dirTNW]  = &distributions[dirTNW * size_Mat];
-//             dist.f[dirBNE]  = &distributions[dirBNE * size_Mat];
-//             dist.f[dirBSW]  = &distributions[dirBSW * size_Mat];
-//             dist.f[dirBSE]  = &distributions[dirBSE * size_Mat];
-//             dist.f[dirBNW]  = &distributions[dirBNW * size_Mat];
+//             dist.f[TNE]  = &distributions[TNE * size_Mat];
+//             dist.f[TSW]  = &distributions[TSW * size_Mat];
+//             dist.f[TSE]  = &distributions[TSE * size_Mat];
+//             dist.f[TNW]  = &distributions[TNW * size_Mat];
+//             dist.f[BNE]  = &distributions[BNE * size_Mat];
+//             dist.f[BSW]  = &distributions[BSW * size_Mat];
+//             dist.f[BSE]  = &distributions[BSE * size_Mat];
+//             dist.f[BNW]  = &distributions[BNW * size_Mat];
 //         } else {
-//             dist.f[dirW]    = &distributions[dirE * size_Mat];
-//             dist.f[dirE]    = &distributions[dirW * size_Mat];
-//             dist.f[dirS]    = &distributions[dirN * size_Mat];
-//             dist.f[dirN]    = &distributions[dirS * size_Mat];
-//             dist.f[dirB]    = &distributions[dirT * size_Mat];
-//             dist.f[dirT]    = &distributions[dirB * size_Mat];
-//             dist.f[dirSW]   = &distributions[dirNE * size_Mat];
-//             dist.f[dirNE]   = &distributions[dirSW * size_Mat];
-//             dist.f[dirNW]   = &distributions[dirSE * size_Mat];
-//             dist.f[dirSE]   = &distributions[dirNW * size_Mat];
-//             dist.f[dirBW]   = &distributions[dirTE * size_Mat];
-//             dist.f[dirTE]   = &distributions[dirBW * size_Mat];
-//             dist.f[dirTW]   = &distributions[dirBE * size_Mat];
-//             dist.f[dirBE]   = &distributions[dirTW * size_Mat];
-//             dist.f[dirBS]   = &distributions[dirTN * size_Mat];
-//             dist.f[dirTN]   = &distributions[dirBS * size_Mat];
-//             dist.f[dirTS]   = &distributions[dirBN * size_Mat];
-//             dist.f[dirBN]   = &distributions[dirTS * size_Mat];
+//             dist.f[W]    = &distributions[E * size_Mat];
+//             dist.f[E]    = &distributions[W * size_Mat];
+//             dist.f[S]    = &distributions[N * size_Mat];
+//             dist.f[N]    = &distributions[S * size_Mat];
+//             dist.f[B]    = &distributions[T * size_Mat];
+//             dist.f[T]    = &distributions[B * size_Mat];
+//             dist.f[SW]   = &distributions[NE * size_Mat];
+//             dist.f[NE]   = &distributions[SW * size_Mat];
+//             dist.f[NW]   = &distributions[SE * size_Mat];
+//             dist.f[SE]   = &distributions[NW * size_Mat];
+//             dist.f[BW]   = &distributions[TE * size_Mat];
+//             dist.f[TE]   = &distributions[BW * size_Mat];
+//             dist.f[TW]   = &distributions[BE * size_Mat];
+//             dist.f[BE]   = &distributions[TW * size_Mat];
+//             dist.f[BS]   = &distributions[TN * size_Mat];
+//             dist.f[TN]   = &distributions[BS * size_Mat];
+//             dist.f[TS]   = &distributions[BN * size_Mat];
+//             dist.f[BN]   = &distributions[TS * size_Mat];
 //             dist.f[dirREST] = &distributions[dirREST * size_Mat];
-//             dist.f[dirBSW]  = &distributions[dirTNE * size_Mat];
-//             dist.f[dirBNE]  = &distributions[dirTSW * size_Mat];
-//             dist.f[dirBNW]  = &distributions[dirTSE * size_Mat];
-//             dist.f[dirBSE]  = &distributions[dirTNW * size_Mat];
-//             dist.f[dirTSW]  = &distributions[dirBNE * size_Mat];
-//             dist.f[dirTNE]  = &distributions[dirBSW * size_Mat];
-//             dist.f[dirTNW]  = &distributions[dirBSE * size_Mat];
-//             dist.f[dirTSE]  = &distributions[dirBNW * size_Mat];
+//             dist.f[BSW]  = &distributions[TNE * size_Mat];
+//             dist.f[BNE]  = &distributions[TSW * size_Mat];
+//             dist.f[BNW]  = &distributions[TSE * size_Mat];
+//             dist.f[BSE]  = &distributions[TNW * size_Mat];
+//             dist.f[TSW]  = &distributions[BNE * size_Mat];
+//             dist.f[TNE]  = &distributions[BSW * size_Mat];
+//             dist.f[TNW]  = &distributions[BSE * size_Mat];
+//             dist.f[TSE]  = &distributions[BNW * size_Mat];
 //         }
 //         ////////////////////////////////////////////////////////////////////////////////
 //         //! - Set neighbor indices (necessary for indirect addressing)
@@ -912,62 +912,62 @@ extern "C" __global__ void LB_Kernel_TurbulentViscosityCumulantK17CompChim(
 //         //! - Set local distributions
 //         //!
 
-//         // real mfcbb = distr_wrapper.distribution.f[dirE];
-//         // real mfabb = distr_wrapper.distribution.f[dirW];
-//         // real mfbcb = distr_wrapper.distribution.f[dirN];
-//         // real mfbab = distr_wrapper.distribution.f[dirS];
-//         // real mfbbc = distr_wrapper.distribution.f[dirT];
-//         // real mfbba = distr_wrapper.distribution.f[dirB];
-//         // real mfccb = distr_wrapper.distribution.f[dirNE];
-//         // real mfaab = distr_wrapper.distribution.f[dirSW];
-//         // real mfcab = distr_wrapper.distribution.f[dirSE];
-//         // real mfacb = distr_wrapper.distribution.f[dirNW];
-//         // real mfcbc = distr_wrapper.distribution.f[dirTE];
-//         // real mfaba = distr_wrapper.distribution.f[dirBW];
-//         // real mfcba = distr_wrapper.distribution.f[dirBE];
-//         // real mfabc = distr_wrapper.distribution.f[dirTW];
-//         // real mfbcc = distr_wrapper.distribution.f[dirTN];
-//         // real mfbaa = distr_wrapper.distribution.f[dirBS];
-//         // real mfbca = distr_wrapper.distribution.f[dirBN];
-//         // real mfbac = distr_wrapper.distribution.f[dirTS];
+//         // real mfcbb = distr_wrapper.distribution.f[E];
+//         // real mfabb = distr_wrapper.distribution.f[W];
+//         // real mfbcb = distr_wrapper.distribution.f[N];
+//         // real mfbab = distr_wrapper.distribution.f[S];
+//         // real mfbbc = distr_wrapper.distribution.f[T];
+//         // real mfbba = distr_wrapper.distribution.f[B];
+//         // real mfccb = distr_wrapper.distribution.f[NE];
+//         // real mfaab = distr_wrapper.distribution.f[SW];
+//         // real mfcab = distr_wrapper.distribution.f[SE];
+//         // real mfacb = distr_wrapper.distribution.f[NW];
+//         // real mfcbc = distr_wrapper.distribution.f[TE];
+//         // real mfaba = distr_wrapper.distribution.f[BW];
+//         // real mfcba = distr_wrapper.distribution.f[BE];
+//         // real mfabc = distr_wrapper.distribution.f[TW];
+//         // real mfbcc = distr_wrapper.distribution.f[TN];
+//         // real mfbaa = distr_wrapper.distribution.f[BS];
+//         // real mfbca = distr_wrapper.distribution.f[BN];
+//         // real mfbac = distr_wrapper.distribution.f[TS];
 //         // real mfbbb = distr_wrapper.distribution.f[dirREST];
-//         // real mfccc = distr_wrapper.distribution.f[dirTNE];
-//         // real mfaac = distr_wrapper.distribution.f[dirTSW];
-//         // real mfcac = distr_wrapper.distribution.f[dirTSE];
-//         // real mfacc = distr_wrapper.distribution.f[dirTNW];
-//         // real mfcca = distr_wrapper.distribution.f[dirBNE];
-//         // real mfaaa = distr_wrapper.distribution.f[dirBSW];
-//         // real mfcaa = distr_wrapper.distribution.f[dirBSE];
-//         // real mfaca = distr_wrapper.distribution.f[dirBNW];
+//         // real mfccc = distr_wrapper.distribution.f[TNE];
+//         // real mfaac = distr_wrapper.distribution.f[TSW];
+//         // real mfcac = distr_wrapper.distribution.f[TSE];
+//         // real mfacc = distr_wrapper.distribution.f[TNW];
+//         // real mfcca = distr_wrapper.distribution.f[BNE];
+//         // real mfaaa = distr_wrapper.distribution.f[BSW];
+//         // real mfcaa = distr_wrapper.distribution.f[BSE];
+//         // real mfaca = distr_wrapper.distribution.f[BNW];
 
         
-//         real mfcbb = (dist.f[dirE])[k];
-//         real mfabb = (dist.f[dirW])[kw];
-//         real mfbcb = (dist.f[dirN])[k];
-//         real mfbab = (dist.f[dirS])[ks];
-//         real mfbbc = (dist.f[dirT])[k];
-//         real mfbba = (dist.f[dirB])[kb];
-//         real mfccb = (dist.f[dirNE])[k];
-//         real mfaab = (dist.f[dirSW])[ksw];
-//         real mfcab = (dist.f[dirSE])[ks];
-//         real mfacb = (dist.f[dirNW])[kw];
-//         real mfcbc = (dist.f[dirTE])[k];
-//         real mfaba = (dist.f[dirBW])[kbw];
-//         real mfcba = (dist.f[dirBE])[kb];
-//         real mfabc = (dist.f[dirTW])[kw];
-//         real mfbcc = (dist.f[dirTN])[k];
-//         real mfbaa = (dist.f[dirBS])[kbs];
-//         real mfbca = (dist.f[dirBN])[kb];
-//         real mfbac = (dist.f[dirTS])[ks];
+//         real mfcbb = (dist.f[E])[k];
+//         real mfabb = (dist.f[W])[kw];
+//         real mfbcb = (dist.f[N])[k];
+//         real mfbab = (dist.f[S])[ks];
+//         real mfbbc = (dist.f[T])[k];
+//         real mfbba = (dist.f[B])[kb];
+//         real mfccb = (dist.f[NE])[k];
+//         real mfaab = (dist.f[SW])[ksw];
+//         real mfcab = (dist.f[SE])[ks];
+//         real mfacb = (dist.f[NW])[kw];
+//         real mfcbc = (dist.f[TE])[k];
+//         real mfaba = (dist.f[BW])[kbw];
+//         real mfcba = (dist.f[BE])[kb];
+//         real mfabc = (dist.f[TW])[kw];
+//         real mfbcc = (dist.f[TN])[k];
+//         real mfbaa = (dist.f[BS])[kbs];
+//         real mfbca = (dist.f[BN])[kb];
+//         real mfbac = (dist.f[TS])[ks];
 //         real mfbbb = (dist.f[dirREST])[k];
-//         real mfccc = (dist.f[dirTNE])[k];
-//         real mfaac = (dist.f[dirTSW])[ksw];
-//         real mfcac = (dist.f[dirTSE])[ks];
-//         real mfacc = (dist.f[dirTNW])[kw];
-//         real mfcca = (dist.f[dirBNE])[kb];
-//         real mfaaa = (dist.f[dirBSW])[kbsw];
-//         real mfcaa = (dist.f[dirBSE])[kbs];
-//         real mfaca = (dist.f[dirBNW])[kbw];
+//         real mfccc = (dist.f[TNE])[k];
+//         real mfaac = (dist.f[TSW])[ksw];
+//         real mfcac = (dist.f[TSE])[ks];
+//         real mfacc = (dist.f[TNW])[kw];
+//         real mfcca = (dist.f[BNE])[kb];
+//         real mfaaa = (dist.f[BSW])[kbsw];
+//         real mfcaa = (dist.f[BSE])[kbs];
+//         real mfaca = (dist.f[BNW])[kbw];
         
 //         //////////////////////////////////////////////////////(unsigned long)//////////////////////////////
 //         //! - Calculate density and velocity using pyramid summation for low round-off errors as in Eq. (J1)-(J3) \ref
@@ -1473,125 +1473,125 @@ extern "C" __global__ void LB_Kernel_TurbulentViscosityCumulantK17CompChim(
 //         //!
 
 
-//         distr_wrapper.distribution.f[dirE]      = mfabb;
-//         distr_wrapper.distribution.f[dirW]      = mfcbb;
-//         distr_wrapper.distribution.f[dirN]      = mfbab;
-//         distr_wrapper.distribution.f[dirS]      = mfbcb;
-//         distr_wrapper.distribution.f[dirT]      = mfbba;
-//         distr_wrapper.distribution.f[dirB]      = mfbbc;
-//         distr_wrapper.distribution.f[dirNE]     = mfaab;
-//         distr_wrapper.distribution.f[dirSW]     = mfccb;
-//         distr_wrapper.distribution.f[dirSE]     = mfacb;
-//         distr_wrapper.distribution.f[dirNW]     = mfcab;
-//         distr_wrapper.distribution.f[dirTE]     = mfaba;
-//         distr_wrapper.distribution.f[dirBW]     = mfcbc;
-//         distr_wrapper.distribution.f[dirBE]     = mfabc;
-//         distr_wrapper.distribution.f[dirTW]     = mfcba;
-//         distr_wrapper.distribution.f[dirTN]     = mfbaa;
-//         distr_wrapper.distribution.f[dirBS]     = mfbcc;
-//         distr_wrapper.distribution.f[dirBN]     = mfbac;
-//         distr_wrapper.distribution.f[dirTS]     = mfbca;
+//         distr_wrapper.distribution.f[E]      = mfabb;
+//         distr_wrapper.distribution.f[W]      = mfcbb;
+//         distr_wrapper.distribution.f[N]      = mfbab;
+//         distr_wrapper.distribution.f[S]      = mfbcb;
+//         distr_wrapper.distribution.f[T]      = mfbba;
+//         distr_wrapper.distribution.f[B]      = mfbbc;
+//         distr_wrapper.distribution.f[NE]     = mfaab;
+//         distr_wrapper.distribution.f[SW]     = mfccb;
+//         distr_wrapper.distribution.f[SE]     = mfacb;
+//         distr_wrapper.distribution.f[NW]     = mfcab;
+//         distr_wrapper.distribution.f[TE]     = mfaba;
+//         distr_wrapper.distribution.f[BW]     = mfcbc;
+//         distr_wrapper.distribution.f[BE]     = mfabc;
+//         distr_wrapper.distribution.f[TW]     = mfcba;
+//         distr_wrapper.distribution.f[TN]     = mfbaa;
+//         distr_wrapper.distribution.f[BS]     = mfbcc;
+//         distr_wrapper.distribution.f[BN]     = mfbac;
+//         distr_wrapper.distribution.f[TS]     = mfbca;
 //         distr_wrapper.distribution.f[dirREST]   = mfbbb;
-//         distr_wrapper.distribution.f[dirTNE]    = mfaaa;
-//         distr_wrapper.distribution.f[dirTSW]    = mfaca;
-//         distr_wrapper.distribution.f[dirTSE]    = mfaac;
-//         distr_wrapper.distribution.f[dirTNW]    = mfacc;
-//         distr_wrapper.distribution.f[dirBNE]    = mfcaa;
-//         distr_wrapper.distribution.f[dirBSW]    = mfcca;
-//         distr_wrapper.distribution.f[dirBSE]    = mfcac;
-//         distr_wrapper.distribution.f[dirBNW]    = mfccc;
+//         distr_wrapper.distribution.f[TNE]    = mfaaa;
+//         distr_wrapper.distribution.f[TSW]    = mfaca;
+//         distr_wrapper.distribution.f[TSE]    = mfaac;
+//         distr_wrapper.distribution.f[TNW]    = mfacc;
+//         distr_wrapper.distribution.f[BNE]    = mfcaa;
+//         distr_wrapper.distribution.f[BSW]    = mfcca;
+//         distr_wrapper.distribution.f[BSE]    = mfcac;
+//         distr_wrapper.distribution.f[BNW]    = mfccc;
 
 //         distr_wrapper.write();
 //         if(k==100000)
 //         {
 //             printf("mfcbb \t %f \t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f \n\n", 
-//                                                 (dist.f[dirE])[k]                  ,        
-//                                                 (dist.f[dirN])[k]       ,
-//                                                 (dist.f[dirS])[ks]      ,
-//                                                 (dist.f[dirT])[k]       ,
-//                                                 (dist.f[dirB])[kb]      ,
-//                                                 (dist.f[dirNE])[k]      ,
-//                                                 (dist.f[dirSW])[ksw]    ,
-//                                                 (dist.f[dirSE])[ks]     ,
-//                                                 (dist.f[dirNW])[kw]   ,
-//                                                 (dist.f[dirW])[kw]    ,
-//                                                 (dist.f[dirTE])[k]    ,
-//                                                 (dist.f[dirBW])[kbw]  ,
-//                                                 (dist.f[dirBE])[kb]   ,
-//                                                 (dist.f[dirTW])[kw]   ,
-//                                                 (dist.f[dirTN])[k]    ,
-//                                                 (dist.f[dirBS])[kbs]  ,
-//                                                 (dist.f[dirBN])[kb]   ,
-//                                                 (dist.f[dirTS])[ks]   ,
+//                                                 (dist.f[E])[k]                  ,        
+//                                                 (dist.f[N])[k]       ,
+//                                                 (dist.f[S])[ks]      ,
+//                                                 (dist.f[T])[k]       ,
+//                                                 (dist.f[B])[kb]      ,
+//                                                 (dist.f[NE])[k]      ,
+//                                                 (dist.f[SW])[ksw]    ,
+//                                                 (dist.f[SE])[ks]     ,
+//                                                 (dist.f[NW])[kw]   ,
+//                                                 (dist.f[W])[kw]    ,
+//                                                 (dist.f[TE])[k]    ,
+//                                                 (dist.f[BW])[kbw]  ,
+//                                                 (dist.f[BE])[kb]   ,
+//                                                 (dist.f[TW])[kw]   ,
+//                                                 (dist.f[TN])[k]    ,
+//                                                 (dist.f[BS])[kbs]  ,
+//                                                 (dist.f[BN])[kb]   ,
+//                                                 (dist.f[TS])[ks]   ,
 //                                                 (dist.f[dirREST])[k]  ,
-//                                                 (dist.f[dirTNE])[k]   ,
-//                                                 (dist.f[dirTSE])[ks]  ,
-//                                                 (dist.f[dirBNE])[kb]  ,
-//                                                 (dist.f[dirBSE])[kbs] ,
-//                                                 (dist.f[dirTNW])[kw]  ,
-//                                                 (dist.f[dirTSW])[ksw] ,
-//                                                 (dist.f[dirBNW])[kbw] ,
-//                                                 (dist.f[dirBSW])[kbsw]);
+//                                                 (dist.f[TNE])[k]   ,
+//                                                 (dist.f[TSE])[ks]  ,
+//                                                 (dist.f[BNE])[kb]  ,
+//                                                 (dist.f[BSE])[kbs] ,
+//                                                 (dist.f[TNW])[kw]  ,
+//                                                 (dist.f[TSW])[ksw] ,
+//                                                 (dist.f[BNW])[kbw] ,
+//                                                 (dist.f[BSW])[kbsw]);
 //         }
 
-//         (dist.f[dirE])[k]      = mfabb;
-//         (dist.f[dirW])[kw]     = mfcbb;
-//         (dist.f[dirN])[k]      = mfbab;
-//         (dist.f[dirS])[ks]     = mfbcb;
-//         (dist.f[dirT])[k]      = mfbba;
-//         (dist.f[dirB])[kb]     = mfbbc;
-//         (dist.f[dirNE])[k]     = mfaab;
-//         (dist.f[dirSW])[ksw]   = mfccb;
-//         (dist.f[dirSE])[ks]    = mfacb;
-//         (dist.f[dirNW])[kw]    = mfcab;
-//         (dist.f[dirTE])[k]     = mfaba;
-//         (dist.f[dirBW])[kbw]   = mfcbc;
-//         (dist.f[dirBE])[kb]    = mfabc;
-//         (dist.f[dirTW])[kw]    = mfcba;
-//         (dist.f[dirTN])[k]     = mfbaa;
-//         (dist.f[dirBS])[kbs]   = mfbcc;
-//         (dist.f[dirBN])[kb]    = mfbac;
-//         (dist.f[dirTS])[ks]    = mfbca;
+//         (dist.f[E])[k]      = mfabb;
+//         (dist.f[W])[kw]     = mfcbb;
+//         (dist.f[N])[k]      = mfbab;
+//         (dist.f[S])[ks]     = mfbcb;
+//         (dist.f[T])[k]      = mfbba;
+//         (dist.f[B])[kb]     = mfbbc;
+//         (dist.f[NE])[k]     = mfaab;
+//         (dist.f[SW])[ksw]   = mfccb;
+//         (dist.f[SE])[ks]    = mfacb;
+//         (dist.f[NW])[kw]    = mfcab;
+//         (dist.f[TE])[k]     = mfaba;
+//         (dist.f[BW])[kbw]   = mfcbc;
+//         (dist.f[BE])[kb]    = mfabc;
+//         (dist.f[TW])[kw]    = mfcba;
+//         (dist.f[TN])[k]     = mfbaa;
+//         (dist.f[BS])[kbs]   = mfbcc;
+//         (dist.f[BN])[kb]    = mfbac;
+//         (dist.f[TS])[ks]    = mfbca;
 //         (dist.f[dirREST])[k]   = mfbbb;
-//         (dist.f[dirTNE])[k]    = mfaaa;
-//         (dist.f[dirTSE])[ks]   = mfaca;
-//         (dist.f[dirBNE])[kb]   = mfaac;
-//         (dist.f[dirBSE])[kbs]  = mfacc;
-//         (dist.f[dirTNW])[kw]   = mfcaa;
-//         (dist.f[dirTSW])[ksw]  = mfcca;
-//         (dist.f[dirBNW])[kbw]  = mfcac;
-//         (dist.f[dirBSW])[kbsw] = mfccc;
+//         (dist.f[TNE])[k]    = mfaaa;
+//         (dist.f[TSE])[ks]   = mfaca;
+//         (dist.f[BNE])[kb]   = mfaac;
+//         (dist.f[BSE])[kbs]  = mfacc;
+//         (dist.f[TNW])[kw]   = mfcaa;
+//         (dist.f[TSW])[ksw]  = mfcca;
+//         (dist.f[BNW])[kbw]  = mfcac;
+//         (dist.f[BSW])[kbsw] = mfccc;
         
 //         if(k==100000)
 //         {
 //             printf("mfcbb \t %f \t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f\t %f \n\n\n", 
-//                                                 (dist.f[dirE])[k]                  ,        
-//                                                 (dist.f[dirN])[k]       ,
-//                                                 (dist.f[dirS])[ks]      ,
-//                                                 (dist.f[dirT])[k]       ,
-//                                                 (dist.f[dirB])[kb]      ,
-//                                                 (dist.f[dirNE])[k]      ,
-//                                                 (dist.f[dirSW])[ksw]    ,
-//                                                 (dist.f[dirSE])[ks]     ,
-//                                                 (dist.f[dirNW])[kw]   ,
-//                                                 (dist.f[dirW])[kw]   ,
-//                                                 (dist.f[dirTE])[k]    ,
-//                                                 (dist.f[dirBW])[kbw]  ,
-//                                                 (dist.f[dirBE])[kb]   ,
-//                                                 (dist.f[dirTW])[kw]   ,
-//                                                 (dist.f[dirTN])[k]    ,
-//                                                 (dist.f[dirBS])[kbs]  ,
-//                                                 (dist.f[dirBN])[kb]   ,
-//                                                 (dist.f[dirTS])[ks]   ,
+//                                                 (dist.f[E])[k]                  ,        
+//                                                 (dist.f[N])[k]       ,
+//                                                 (dist.f[S])[ks]      ,
+//                                                 (dist.f[T])[k]       ,
+//                                                 (dist.f[B])[kb]      ,
+//                                                 (dist.f[NE])[k]      ,
+//                                                 (dist.f[SW])[ksw]    ,
+//                                                 (dist.f[SE])[ks]     ,
+//                                                 (dist.f[NW])[kw]   ,
+//                                                 (dist.f[W])[kw]   ,
+//                                                 (dist.f[TE])[k]    ,
+//                                                 (dist.f[BW])[kbw]  ,
+//                                                 (dist.f[BE])[kb]   ,
+//                                                 (dist.f[TW])[kw]   ,
+//                                                 (dist.f[TN])[k]    ,
+//                                                 (dist.f[BS])[kbs]  ,
+//                                                 (dist.f[BN])[kb]   ,
+//                                                 (dist.f[TS])[ks]   ,
 //                                                 (dist.f[dirREST])[k]  ,
-//                                                 (dist.f[dirTNE])[k]   ,
-//                                                 (dist.f[dirTSE])[ks]  ,
-//                                                 (dist.f[dirBNE])[kb]  ,
-//                                                 (dist.f[dirBSE])[kbs] ,
-//                                                 (dist.f[dirTNW])[kw]  ,
-//                                                 (dist.f[dirTSW])[ksw] ,
-//                                                 (dist.f[dirBNW])[kbw] ,
-//                                                 (dist.f[dirBSW])[kbsw]);
+//                                                 (dist.f[TNE])[k]   ,
+//                                                 (dist.f[TSE])[ks]  ,
+//                                                 (dist.f[BNE])[kb]  ,
+//                                                 (dist.f[BSE])[kbs] ,
+//                                                 (dist.f[TNW])[kw]  ,
+//                                                 (dist.f[TSW])[ksw] ,
+//                                                 (dist.f[BNW])[kbw] ,
+//                                                 (dist.f[BSW])[kbsw]);
 //         }
 //     }
 // }
\ No newline at end of file
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 2ed6bcbb3..01bf84250 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
@@ -45,63 +45,63 @@ extern "C" __global__ void LB_Kernel_WaleCumulantK15Comp(
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -135,33 +135,33 @@ extern "C" __global__ void LB_Kernel_WaleCumulantK15Comp(
 			unsigned int kbsw = neighborZ[ksw];
 
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];
-			real mfabb = (D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN   ])[k  ];
-			real mfbab = (D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT   ])[k  ];
-			real mfbba = (D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE  ])[k  ];
-			real mfaab = (D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE  ])[ks ];
-			real mfacb = (D.f[dirNW  ])[kw ];
-			real mfcbc = (D.f[dirTE  ])[k  ];
-			real mfaba = (D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE  ])[kb ];
-			real mfabc = (D.f[dirTW  ])[kw ];
-			real mfbcc = (D.f[dirTN  ])[k  ];
-			real mfbaa = (D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN  ])[kb ];
-			real mfbac = (D.f[dirTS  ])[ks ];
+			real mfcbb = (D.f[E   ])[k  ];
+			real mfabb = (D.f[W   ])[kw ];
+			real mfbcb = (D.f[N   ])[k  ];
+			real mfbab = (D.f[S   ])[ks ];
+			real mfbbc = (D.f[T   ])[k  ];
+			real mfbba = (D.f[B   ])[kb ];
+			real mfccb = (D.f[NE  ])[k  ];
+			real mfaab = (D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE  ])[ks ];
+			real mfacb = (D.f[NW  ])[kw ];
+			real mfcbc = (D.f[TE  ])[k  ];
+			real mfaba = (D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE  ])[kb ];
+			real mfabc = (D.f[TW  ])[kw ];
+			real mfbcc = (D.f[TN  ])[k  ];
+			real mfbaa = (D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN  ])[kb ];
+			real mfbac = (D.f[TS  ])[ks ];
 			real mfbbb = (D.f[dirREST])[k  ];
-			real mfccc = (D.f[dirTNE ])[k  ];
-			real mfaac = (D.f[dirTSW ])[ksw];
-			real mfcac = (D.f[dirTSE ])[ks ];
-			real mfacc = (D.f[dirTNW ])[kw ];
-			real mfcca = (D.f[dirBNE ])[kb ];
-			real mfaaa = (D.f[dirBSW])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs];
-			real mfaca = (D.f[dirBNW ])[kbw];
+			real mfccc = (D.f[TNE ])[k  ];
+			real mfaac = (D.f[TSW ])[ksw];
+			real mfcac = (D.f[TSE ])[ks ];
+			real mfacc = (D.f[TNW ])[kw ];
+			real mfcca = (D.f[BNE ])[kb ];
+			real mfaaa = (D.f[BSW])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs];
+			real mfaca = (D.f[BNW ])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
 							(((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) +
@@ -1179,33 +1179,33 @@ extern "C" __global__ void LB_Kernel_WaleCumulantK15Comp(
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[ dirE   ])[k   ] = mfabb;                                                                    
-			(D.f[ dirW   ])[kw  ] = mfcbb;                                                                  
-			(D.f[ dirN   ])[k   ] = mfbab;
-			(D.f[ dirS   ])[ks  ] = mfbcb;
-			(D.f[ dirT   ])[k   ] = mfbba;
-			(D.f[ dirB   ])[kb  ] = mfbbc;
-			(D.f[ dirNE  ])[k   ] = mfaab;
-			(D.f[ dirSW  ])[ksw ] = mfccb;
-			(D.f[ dirSE  ])[ks  ] = mfacb;
-			(D.f[ dirNW  ])[kw  ] = mfcab;
-			(D.f[ dirTE  ])[k   ] = mfaba;
-			(D.f[ dirBW  ])[kbw ] = mfcbc;
-			(D.f[ dirBE  ])[kb  ] = mfabc;
-			(D.f[ dirTW  ])[kw  ] = mfcba;
-			(D.f[ dirTN  ])[k   ] = mfbaa;
-			(D.f[ dirBS  ])[kbs ] = mfbcc;
-			(D.f[ dirBN  ])[kb  ] = mfbac;
-			(D.f[ dirTS  ])[ks  ] = mfbca;
+			(D.f[ E   ])[k   ] = mfabb;                                                                    
+			(D.f[ W   ])[kw  ] = mfcbb;                                                                  
+			(D.f[ N   ])[k   ] = mfbab;
+			(D.f[ S   ])[ks  ] = mfbcb;
+			(D.f[ T   ])[k   ] = mfbba;
+			(D.f[ B   ])[kb  ] = mfbbc;
+			(D.f[ NE  ])[k   ] = mfaab;
+			(D.f[ SW  ])[ksw ] = mfccb;
+			(D.f[ SE  ])[ks  ] = mfacb;
+			(D.f[ NW  ])[kw  ] = mfcab;
+			(D.f[ TE  ])[k   ] = mfaba;
+			(D.f[ BW  ])[kbw ] = mfcbc;
+			(D.f[ BE  ])[kb  ] = mfabc;
+			(D.f[ TW  ])[kw  ] = mfcba;
+			(D.f[ TN  ])[k   ] = mfbaa;
+			(D.f[ BS  ])[kbs ] = mfbcc;
+			(D.f[ BN  ])[kb  ] = mfbac;
+			(D.f[ TS  ])[ks  ] = mfbca;
 			(D.f[ dirREST])[k   ] = mfbbb;
-			(D.f[ dirTNE ])[k   ] = mfaaa;
-			(D.f[ dirTSE ])[ks  ] = mfaca;
-			(D.f[ dirBNE ])[kb  ] = mfaac;
-			(D.f[ dirBSE ])[kbs ] = mfacc;
-			(D.f[ dirTNW ])[kw  ] = mfcaa;
-			(D.f[ dirTSW ])[ksw ] = mfcca;
-			(D.f[ dirBNW ])[kbw ] = mfcac;
-			(D.f[ dirBSW ])[kbsw] = mfccc;
+			(D.f[ TNE ])[k   ] = mfaaa;
+			(D.f[ TSE ])[ks  ] = mfaca;
+			(D.f[ BNE ])[kb  ] = mfaac;
+			(D.f[ BSE ])[kbs ] = mfacc;
+			(D.f[ TNW ])[kw  ] = mfcaa;
+			(D.f[ TSW ])[ksw ] = mfcca;
+			(D.f[ BNW ])[kbw ] = mfcac;
+			(D.f[ BSW ])[kbsw] = mfccc;
 			////////////////////////////////////////////////////////////////////////////////////
 		}                                                                                                                    
 	}
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 9bef300da..86b12c965 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
@@ -44,63 +44,63 @@ extern "C" __global__ void LB_Kernel_WaleBySoniMalavCumulantK15Comp(
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -114,33 +114,33 @@ extern "C" __global__ void LB_Kernel_WaleBySoniMalavCumulantK15Comp(
 			unsigned int kbsw = neighborZ[ksw];
 
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];
-			real mfabb = (D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN   ])[k  ];
-			real mfbab = (D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT   ])[k  ];
-			real mfbba = (D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE  ])[k  ];
-			real mfaab = (D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE  ])[ks ];
-			real mfacb = (D.f[dirNW  ])[kw ];
-			real mfcbc = (D.f[dirTE  ])[k  ];
-			real mfaba = (D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE  ])[kb ];
-			real mfabc = (D.f[dirTW  ])[kw ];
-			real mfbcc = (D.f[dirTN  ])[k  ];
-			real mfbaa = (D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN  ])[kb ];
-			real mfbac = (D.f[dirTS  ])[ks ];
+			real mfcbb = (D.f[E   ])[k  ];
+			real mfabb = (D.f[W   ])[kw ];
+			real mfbcb = (D.f[N   ])[k  ];
+			real mfbab = (D.f[S   ])[ks ];
+			real mfbbc = (D.f[T   ])[k  ];
+			real mfbba = (D.f[B   ])[kb ];
+			real mfccb = (D.f[NE  ])[k  ];
+			real mfaab = (D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE  ])[ks ];
+			real mfacb = (D.f[NW  ])[kw ];
+			real mfcbc = (D.f[TE  ])[k  ];
+			real mfaba = (D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE  ])[kb ];
+			real mfabc = (D.f[TW  ])[kw ];
+			real mfbcc = (D.f[TN  ])[k  ];
+			real mfbaa = (D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN  ])[kb ];
+			real mfbac = (D.f[TS  ])[ks ];
 			real mfbbb = (D.f[dirREST])[k  ];
-			real mfccc = (D.f[dirTNE ])[k  ];
-			real mfaac = (D.f[dirTSW ])[ksw];
-			real mfcac = (D.f[dirTSE ])[ks ];
-			real mfacc = (D.f[dirTNW ])[kw ];
-			real mfcca = (D.f[dirBNE ])[kb ];
-			real mfaaa = (D.f[dirBSW])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs];
-			real mfaca = (D.f[dirBNW ])[kbw];
+			real mfccc = (D.f[TNE ])[k  ];
+			real mfaac = (D.f[TSW ])[ksw];
+			real mfcac = (D.f[TSE ])[ks ];
+			real mfacc = (D.f[TNW ])[kw ];
+			real mfcca = (D.f[BNE ])[kb ];
+			real mfaaa = (D.f[BSW])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs];
+			real mfaca = (D.f[BNW ])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
 							(((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) +
@@ -1003,33 +1003,33 @@ extern "C" __global__ void LB_Kernel_WaleBySoniMalavCumulantK15Comp(
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[ dirE   ])[k   ] = mfabb;                                                                    
-			(D.f[ dirW   ])[kw  ] = mfcbb;                                                                  
-			(D.f[ dirN   ])[k   ] = mfbab;
-			(D.f[ dirS   ])[ks  ] = mfbcb;
-			(D.f[ dirT   ])[k   ] = mfbba;
-			(D.f[ dirB   ])[kb  ] = mfbbc;
-			(D.f[ dirNE  ])[k   ] = mfaab;
-			(D.f[ dirSW  ])[ksw ] = mfccb;
-			(D.f[ dirSE  ])[ks  ] = mfacb;
-			(D.f[ dirNW  ])[kw  ] = mfcab;
-			(D.f[ dirTE  ])[k   ] = mfaba;
-			(D.f[ dirBW  ])[kbw ] = mfcbc;
-			(D.f[ dirBE  ])[kb  ] = mfabc;
-			(D.f[ dirTW  ])[kw  ] = mfcba;
-			(D.f[ dirTN  ])[k   ] = mfbaa;
-			(D.f[ dirBS  ])[kbs ] = mfbcc;
-			(D.f[ dirBN  ])[kb  ] = mfbac;
-			(D.f[ dirTS  ])[ks  ] = mfbca;
+			(D.f[ E   ])[k   ] = mfabb;                                                                    
+			(D.f[ W   ])[kw  ] = mfcbb;                                                                  
+			(D.f[ N   ])[k   ] = mfbab;
+			(D.f[ S   ])[ks  ] = mfbcb;
+			(D.f[ T   ])[k   ] = mfbba;
+			(D.f[ B   ])[kb  ] = mfbbc;
+			(D.f[ NE  ])[k   ] = mfaab;
+			(D.f[ SW  ])[ksw ] = mfccb;
+			(D.f[ SE  ])[ks  ] = mfacb;
+			(D.f[ NW  ])[kw  ] = mfcab;
+			(D.f[ TE  ])[k   ] = mfaba;
+			(D.f[ BW  ])[kbw ] = mfcbc;
+			(D.f[ BE  ])[kb  ] = mfabc;
+			(D.f[ TW  ])[kw  ] = mfcba;
+			(D.f[ TN  ])[k   ] = mfbaa;
+			(D.f[ BS  ])[kbs ] = mfbcc;
+			(D.f[ BN  ])[kb  ] = mfbac;
+			(D.f[ TS  ])[ks  ] = mfbca;
 			(D.f[ dirREST])[k   ] = mfbbb;
-			(D.f[ dirTNE ])[k   ] = mfaaa;
-			(D.f[ dirTSE ])[ks  ] = mfaca;
-			(D.f[ dirBNE ])[kb  ] = mfaac;
-			(D.f[ dirBSE ])[kbs ] = mfacc;
-			(D.f[ dirTNW ])[kw  ] = mfcaa;
-			(D.f[ dirTSW ])[ksw ] = mfcca;
-			(D.f[ dirBNW ])[kbw ] = mfcac;
-			(D.f[ dirBSW ])[kbsw] = mfccc;
+			(D.f[ TNE ])[k   ] = mfaaa;
+			(D.f[ TSE ])[ks  ] = mfaca;
+			(D.f[ BNE ])[kb  ] = mfaac;
+			(D.f[ BSE ])[kbs ] = mfacc;
+			(D.f[ TNW ])[kw  ] = mfcaa;
+			(D.f[ TSW ])[ksw ] = mfcca;
+			(D.f[ BNW ])[kbw ] = mfcac;
+			(D.f[ BSW ])[kbsw] = mfccc;
 			////////////////////////////////////////////////////////////////////////////////////
 		}                                                                                                                    
 	}
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 e8d4ba303..650f3a402 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
@@ -46,63 +46,63 @@ extern "C" __global__ void LB_Kernel_WaleCumulantK17Comp(
 			Distributions27 D;
 			if (EvenOrOdd==true)
 			{
-				D.f[dirE   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirW   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirTS  *size_Mat];
+				D.f[E   ] = &DDStart[E   *size_Mat];
+				D.f[W   ] = &DDStart[W   *size_Mat];
+				D.f[N   ] = &DDStart[N   *size_Mat];
+				D.f[S   ] = &DDStart[S   *size_Mat];
+				D.f[T   ] = &DDStart[T   *size_Mat];
+				D.f[B   ] = &DDStart[B   *size_Mat];
+				D.f[NE  ] = &DDStart[NE  *size_Mat];
+				D.f[SW  ] = &DDStart[SW  *size_Mat];
+				D.f[SE  ] = &DDStart[SE  *size_Mat];
+				D.f[NW  ] = &DDStart[NW  *size_Mat];
+				D.f[TE  ] = &DDStart[TE  *size_Mat];
+				D.f[BW  ] = &DDStart[BW  *size_Mat];
+				D.f[BE  ] = &DDStart[BE  *size_Mat];
+				D.f[TW  ] = &DDStart[TW  *size_Mat];
+				D.f[TN  ] = &DDStart[TN  *size_Mat];
+				D.f[BS  ] = &DDStart[BS  *size_Mat];
+				D.f[BN  ] = &DDStart[BN  *size_Mat];
+				D.f[TS  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE ] = &DDStart[TNE *size_Mat];
+				D.f[TSW ] = &DDStart[TSW *size_Mat];
+				D.f[TSE ] = &DDStart[TSE *size_Mat];
+				D.f[TNW ] = &DDStart[TNW *size_Mat];
+				D.f[BNE ] = &DDStart[BNE *size_Mat];
+				D.f[BSW ] = &DDStart[BSW *size_Mat];
+				D.f[BSE ] = &DDStart[BSE *size_Mat];
+				D.f[BNW ] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW   ] = &DDStart[dirE   *size_Mat];
-				D.f[dirE   ] = &DDStart[dirW   *size_Mat];
-				D.f[dirS   ] = &DDStart[dirN   *size_Mat];
-				D.f[dirN   ] = &DDStart[dirS   *size_Mat];
-				D.f[dirB   ] = &DDStart[dirT   *size_Mat];
-				D.f[dirT   ] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW  ] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE  ] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW  ] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE  ] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW  ] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE  ] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW  ] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE  ] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS  ] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN  ] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS  ] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN  ] = &DDStart[dirTS  *size_Mat];
+				D.f[W   ] = &DDStart[E   *size_Mat];
+				D.f[E   ] = &DDStart[W   *size_Mat];
+				D.f[S   ] = &DDStart[N   *size_Mat];
+				D.f[N   ] = &DDStart[S   *size_Mat];
+				D.f[B   ] = &DDStart[T   *size_Mat];
+				D.f[T   ] = &DDStart[B   *size_Mat];
+				D.f[SW  ] = &DDStart[NE  *size_Mat];
+				D.f[NE  ] = &DDStart[SW  *size_Mat];
+				D.f[NW  ] = &DDStart[SE  *size_Mat];
+				D.f[SE  ] = &DDStart[NW  *size_Mat];
+				D.f[BW  ] = &DDStart[TE  *size_Mat];
+				D.f[TE  ] = &DDStart[BW  *size_Mat];
+				D.f[TW  ] = &DDStart[BE  *size_Mat];
+				D.f[BE  ] = &DDStart[TW  *size_Mat];
+				D.f[BS  ] = &DDStart[TN  *size_Mat];
+				D.f[TN  ] = &DDStart[BS  *size_Mat];
+				D.f[TS  ] = &DDStart[BN  *size_Mat];
+				D.f[BN  ] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW ] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE ] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW ] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE ] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW ] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE ] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW ] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE ] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW ] = &DDStart[TNE *size_Mat];
+				D.f[BNE ] = &DDStart[TSW *size_Mat];
+				D.f[BNW ] = &DDStart[TSE *size_Mat];
+				D.f[BSE ] = &DDStart[TNW *size_Mat];
+				D.f[TSW ] = &DDStart[BNE *size_Mat];
+				D.f[TNE ] = &DDStart[BSW *size_Mat];
+				D.f[TNW ] = &DDStart[BSE *size_Mat];
+				D.f[TSE ] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -136,33 +136,33 @@ extern "C" __global__ void LB_Kernel_WaleCumulantK17Comp(
 			unsigned int kbsw = neighborZ[ksw];
 
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE   ])[k  ];
-			real mfabb = (D.f[dirW   ])[kw ];
-			real mfbcb = (D.f[dirN   ])[k  ];
-			real mfbab = (D.f[dirS   ])[ks ];
-			real mfbbc = (D.f[dirT   ])[k  ];
-			real mfbba = (D.f[dirB   ])[kb ];
-			real mfccb = (D.f[dirNE  ])[k  ];
-			real mfaab = (D.f[dirSW  ])[ksw];
-			real mfcab = (D.f[dirSE  ])[ks ];
-			real mfacb = (D.f[dirNW  ])[kw ];
-			real mfcbc = (D.f[dirTE  ])[k  ];
-			real mfaba = (D.f[dirBW  ])[kbw];
-			real mfcba = (D.f[dirBE  ])[kb ];
-			real mfabc = (D.f[dirTW  ])[kw ];
-			real mfbcc = (D.f[dirTN  ])[k  ];
-			real mfbaa = (D.f[dirBS  ])[kbs];
-			real mfbca = (D.f[dirBN  ])[kb ];
-			real mfbac = (D.f[dirTS  ])[ks ];
+			real mfcbb = (D.f[E   ])[k  ];
+			real mfabb = (D.f[W   ])[kw ];
+			real mfbcb = (D.f[N   ])[k  ];
+			real mfbab = (D.f[S   ])[ks ];
+			real mfbbc = (D.f[T   ])[k  ];
+			real mfbba = (D.f[B   ])[kb ];
+			real mfccb = (D.f[NE  ])[k  ];
+			real mfaab = (D.f[SW  ])[ksw];
+			real mfcab = (D.f[SE  ])[ks ];
+			real mfacb = (D.f[NW  ])[kw ];
+			real mfcbc = (D.f[TE  ])[k  ];
+			real mfaba = (D.f[BW  ])[kbw];
+			real mfcba = (D.f[BE  ])[kb ];
+			real mfabc = (D.f[TW  ])[kw ];
+			real mfbcc = (D.f[TN  ])[k  ];
+			real mfbaa = (D.f[BS  ])[kbs];
+			real mfbca = (D.f[BN  ])[kb ];
+			real mfbac = (D.f[TS  ])[ks ];
 			real mfbbb = (D.f[dirREST])[k  ];
-			real mfccc = (D.f[dirTNE ])[k  ];
-			real mfaac = (D.f[dirTSW ])[ksw];
-			real mfcac = (D.f[dirTSE ])[ks ];
-			real mfacc = (D.f[dirTNW ])[kw ];
-			real mfcca = (D.f[dirBNE ])[kb ];
-			real mfaaa = (D.f[dirBSW])[kbsw];
-			real mfcaa = (D.f[dirBSE ])[kbs];
-			real mfaca = (D.f[dirBNW ])[kbw];
+			real mfccc = (D.f[TNE ])[k  ];
+			real mfaac = (D.f[TSW ])[ksw];
+			real mfcac = (D.f[TSE ])[ks ];
+			real mfacc = (D.f[TNW ])[kw ];
+			real mfcca = (D.f[BNE ])[kb ];
+			real mfaaa = (D.f[BSW])[kbsw];
+			real mfcaa = (D.f[BSE ])[kbs];
+			real mfaca = (D.f[BNW ])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + 
 							(((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) +
@@ -1141,33 +1141,33 @@ extern "C" __global__ void LB_Kernel_WaleCumulantK17Comp(
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[ dirE   ])[k   ] = mfabb;                                                                    
-			(D.f[ dirW   ])[kw  ] = mfcbb;                                                                  
-			(D.f[ dirN   ])[k   ] = mfbab;
-			(D.f[ dirS   ])[ks  ] = mfbcb;
-			(D.f[ dirT   ])[k   ] = mfbba;
-			(D.f[ dirB   ])[kb  ] = mfbbc;
-			(D.f[ dirNE  ])[k   ] = mfaab;
-			(D.f[ dirSW  ])[ksw ] = mfccb;
-			(D.f[ dirSE  ])[ks  ] = mfacb;
-			(D.f[ dirNW  ])[kw  ] = mfcab;
-			(D.f[ dirTE  ])[k   ] = mfaba;
-			(D.f[ dirBW  ])[kbw ] = mfcbc;
-			(D.f[ dirBE  ])[kb  ] = mfabc;
-			(D.f[ dirTW  ])[kw  ] = mfcba;
-			(D.f[ dirTN  ])[k   ] = mfbaa;
-			(D.f[ dirBS  ])[kbs ] = mfbcc;
-			(D.f[ dirBN  ])[kb  ] = mfbac;
-			(D.f[ dirTS  ])[ks  ] = mfbca;
+			(D.f[ E   ])[k   ] = mfabb;                                                                    
+			(D.f[ W   ])[kw  ] = mfcbb;                                                                  
+			(D.f[ N   ])[k   ] = mfbab;
+			(D.f[ S   ])[ks  ] = mfbcb;
+			(D.f[ T   ])[k   ] = mfbba;
+			(D.f[ B   ])[kb  ] = mfbbc;
+			(D.f[ NE  ])[k   ] = mfaab;
+			(D.f[ SW  ])[ksw ] = mfccb;
+			(D.f[ SE  ])[ks  ] = mfacb;
+			(D.f[ NW  ])[kw  ] = mfcab;
+			(D.f[ TE  ])[k   ] = mfaba;
+			(D.f[ BW  ])[kbw ] = mfcbc;
+			(D.f[ BE  ])[kb  ] = mfabc;
+			(D.f[ TW  ])[kw  ] = mfcba;
+			(D.f[ TN  ])[k   ] = mfbaa;
+			(D.f[ BS  ])[kbs ] = mfbcc;
+			(D.f[ BN  ])[kb  ] = mfbac;
+			(D.f[ TS  ])[ks  ] = mfbca;
 			(D.f[ dirREST])[k   ] = mfbbb;
-			(D.f[ dirTNE ])[k   ] = mfaaa;
-			(D.f[ dirTSE ])[ks  ] = mfaca;
-			(D.f[ dirBNE ])[kb  ] = mfaac;
-			(D.f[ dirBSE ])[kbs ] = mfacc;
-			(D.f[ dirTNW ])[kw  ] = mfcaa;
-			(D.f[ dirTSW ])[ksw ] = mfcca;
-			(D.f[ dirBNW ])[kbw ] = mfcac;
-			(D.f[ dirBSW ])[kbsw] = mfccc;
+			(D.f[ TNE ])[k   ] = mfaaa;
+			(D.f[ TSE ])[ks  ] = mfaca;
+			(D.f[ BNE ])[kb  ] = mfaac;
+			(D.f[ BSE ])[kbs ] = mfacc;
+			(D.f[ TNW ])[kw  ] = mfcaa;
+			(D.f[ TSW ])[ksw ] = mfcca;
+			(D.f[ BNW ])[kbw ] = mfcac;
+			(D.f[ BSW ])[kbsw] = mfccc;
 			////////////////////////////////////////////////////////////////////////////////////
 		}                                                                                                                    
 	}
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 aeadbdada..9c61a593b 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
@@ -56,63 +56,63 @@ extern "C" __global__ void LB_Kernel_WaleCumulantK17DebugComp(
 			Distributions27 D;
 			if (EvenOrOdd == true)
 			{
-				D.f[dirE] = &DDStart[dirE   *size_Mat];
-				D.f[dirW] = &DDStart[dirW   *size_Mat];
-				D.f[dirN] = &DDStart[dirN   *size_Mat];
-				D.f[dirS] = &DDStart[dirS   *size_Mat];
-				D.f[dirT] = &DDStart[dirT   *size_Mat];
-				D.f[dirB] = &DDStart[dirB   *size_Mat];
-				D.f[dirNE] = &DDStart[dirNE  *size_Mat];
-				D.f[dirSW] = &DDStart[dirSW  *size_Mat];
-				D.f[dirSE] = &DDStart[dirSE  *size_Mat];
-				D.f[dirNW] = &DDStart[dirNW  *size_Mat];
-				D.f[dirTE] = &DDStart[dirTE  *size_Mat];
-				D.f[dirBW] = &DDStart[dirBW  *size_Mat];
-				D.f[dirBE] = &DDStart[dirBE  *size_Mat];
-				D.f[dirTW] = &DDStart[dirTW  *size_Mat];
-				D.f[dirTN] = &DDStart[dirTN  *size_Mat];
-				D.f[dirBS] = &DDStart[dirBS  *size_Mat];
-				D.f[dirBN] = &DDStart[dirBN  *size_Mat];
-				D.f[dirTS] = &DDStart[dirTS  *size_Mat];
+				D.f[E] = &DDStart[E   *size_Mat];
+				D.f[W] = &DDStart[W   *size_Mat];
+				D.f[N] = &DDStart[N   *size_Mat];
+				D.f[S] = &DDStart[S   *size_Mat];
+				D.f[T] = &DDStart[T   *size_Mat];
+				D.f[B] = &DDStart[B   *size_Mat];
+				D.f[NE] = &DDStart[NE  *size_Mat];
+				D.f[SW] = &DDStart[SW  *size_Mat];
+				D.f[SE] = &DDStart[SE  *size_Mat];
+				D.f[NW] = &DDStart[NW  *size_Mat];
+				D.f[TE] = &DDStart[TE  *size_Mat];
+				D.f[BW] = &DDStart[BW  *size_Mat];
+				D.f[BE] = &DDStart[BE  *size_Mat];
+				D.f[TW] = &DDStart[TW  *size_Mat];
+				D.f[TN] = &DDStart[TN  *size_Mat];
+				D.f[BS] = &DDStart[BS  *size_Mat];
+				D.f[BN] = &DDStart[BN  *size_Mat];
+				D.f[TS] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirTNE] = &DDStart[dirTNE *size_Mat];
-				D.f[dirTSW] = &DDStart[dirTSW *size_Mat];
-				D.f[dirTSE] = &DDStart[dirTSE *size_Mat];
-				D.f[dirTNW] = &DDStart[dirTNW *size_Mat];
-				D.f[dirBNE] = &DDStart[dirBNE *size_Mat];
-				D.f[dirBSW] = &DDStart[dirBSW *size_Mat];
-				D.f[dirBSE] = &DDStart[dirBSE *size_Mat];
-				D.f[dirBNW] = &DDStart[dirBNW *size_Mat];
+				D.f[TNE] = &DDStart[TNE *size_Mat];
+				D.f[TSW] = &DDStart[TSW *size_Mat];
+				D.f[TSE] = &DDStart[TSE *size_Mat];
+				D.f[TNW] = &DDStart[TNW *size_Mat];
+				D.f[BNE] = &DDStart[BNE *size_Mat];
+				D.f[BSW] = &DDStart[BSW *size_Mat];
+				D.f[BSE] = &DDStart[BSE *size_Mat];
+				D.f[BNW] = &DDStart[BNW *size_Mat];
 			}
 			else
 			{
-				D.f[dirW] = &DDStart[dirE   *size_Mat];
-				D.f[dirE] = &DDStart[dirW   *size_Mat];
-				D.f[dirS] = &DDStart[dirN   *size_Mat];
-				D.f[dirN] = &DDStart[dirS   *size_Mat];
-				D.f[dirB] = &DDStart[dirT   *size_Mat];
-				D.f[dirT] = &DDStart[dirB   *size_Mat];
-				D.f[dirSW] = &DDStart[dirNE  *size_Mat];
-				D.f[dirNE] = &DDStart[dirSW  *size_Mat];
-				D.f[dirNW] = &DDStart[dirSE  *size_Mat];
-				D.f[dirSE] = &DDStart[dirNW  *size_Mat];
-				D.f[dirBW] = &DDStart[dirTE  *size_Mat];
-				D.f[dirTE] = &DDStart[dirBW  *size_Mat];
-				D.f[dirTW] = &DDStart[dirBE  *size_Mat];
-				D.f[dirBE] = &DDStart[dirTW  *size_Mat];
-				D.f[dirBS] = &DDStart[dirTN  *size_Mat];
-				D.f[dirTN] = &DDStart[dirBS  *size_Mat];
-				D.f[dirTS] = &DDStart[dirBN  *size_Mat];
-				D.f[dirBN] = &DDStart[dirTS  *size_Mat];
+				D.f[W] = &DDStart[E   *size_Mat];
+				D.f[E] = &DDStart[W   *size_Mat];
+				D.f[S] = &DDStart[N   *size_Mat];
+				D.f[N] = &DDStart[S   *size_Mat];
+				D.f[B] = &DDStart[T   *size_Mat];
+				D.f[T] = &DDStart[B   *size_Mat];
+				D.f[SW] = &DDStart[NE  *size_Mat];
+				D.f[NE] = &DDStart[SW  *size_Mat];
+				D.f[NW] = &DDStart[SE  *size_Mat];
+				D.f[SE] = &DDStart[NW  *size_Mat];
+				D.f[BW] = &DDStart[TE  *size_Mat];
+				D.f[TE] = &DDStart[BW  *size_Mat];
+				D.f[TW] = &DDStart[BE  *size_Mat];
+				D.f[BE] = &DDStart[TW  *size_Mat];
+				D.f[BS] = &DDStart[TN  *size_Mat];
+				D.f[TN] = &DDStart[BS  *size_Mat];
+				D.f[TS] = &DDStart[BN  *size_Mat];
+				D.f[BN] = &DDStart[TS  *size_Mat];
 				D.f[dirREST] = &DDStart[dirREST*size_Mat];
-				D.f[dirBSW] = &DDStart[dirTNE *size_Mat];
-				D.f[dirBNE] = &DDStart[dirTSW *size_Mat];
-				D.f[dirBNW] = &DDStart[dirTSE *size_Mat];
-				D.f[dirBSE] = &DDStart[dirTNW *size_Mat];
-				D.f[dirTSW] = &DDStart[dirBNE *size_Mat];
-				D.f[dirTNE] = &DDStart[dirBSW *size_Mat];
-				D.f[dirTNW] = &DDStart[dirBSE *size_Mat];
-				D.f[dirTSE] = &DDStart[dirBNW *size_Mat];
+				D.f[BSW] = &DDStart[TNE *size_Mat];
+				D.f[BNE] = &DDStart[TSW *size_Mat];
+				D.f[BNW] = &DDStart[TSE *size_Mat];
+				D.f[BSE] = &DDStart[TNW *size_Mat];
+				D.f[TSW] = &DDStart[BNE *size_Mat];
+				D.f[TNE] = &DDStart[BSW *size_Mat];
+				D.f[TNW] = &DDStart[BSE *size_Mat];
+				D.f[TSE] = &DDStart[BNW *size_Mat];
 			}
 
 			////////////////////////////////////////////////////////////////////////////////
@@ -146,33 +146,33 @@ extern "C" __global__ void LB_Kernel_WaleCumulantK17DebugComp(
 			unsigned int kbsw = neighborZ[ksw];
 
 			//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-			real mfcbb = (D.f[dirE])[k];
-			real mfabb = (D.f[dirW])[kw];
-			real mfbcb = (D.f[dirN])[k];
-			real mfbab = (D.f[dirS])[ks];
-			real mfbbc = (D.f[dirT])[k];
-			real mfbba = (D.f[dirB])[kb];
-			real mfccb = (D.f[dirNE])[k];
-			real mfaab = (D.f[dirSW])[ksw];
-			real mfcab = (D.f[dirSE])[ks];
-			real mfacb = (D.f[dirNW])[kw];
-			real mfcbc = (D.f[dirTE])[k];
-			real mfaba = (D.f[dirBW])[kbw];
-			real mfcba = (D.f[dirBE])[kb];
-			real mfabc = (D.f[dirTW])[kw];
-			real mfbcc = (D.f[dirTN])[k];
-			real mfbaa = (D.f[dirBS])[kbs];
-			real mfbca = (D.f[dirBN])[kb];
-			real mfbac = (D.f[dirTS])[ks];
+			real mfcbb = (D.f[E])[k];
+			real mfabb = (D.f[W])[kw];
+			real mfbcb = (D.f[N])[k];
+			real mfbab = (D.f[S])[ks];
+			real mfbbc = (D.f[T])[k];
+			real mfbba = (D.f[B])[kb];
+			real mfccb = (D.f[NE])[k];
+			real mfaab = (D.f[SW])[ksw];
+			real mfcab = (D.f[SE])[ks];
+			real mfacb = (D.f[NW])[kw];
+			real mfcbc = (D.f[TE])[k];
+			real mfaba = (D.f[BW])[kbw];
+			real mfcba = (D.f[BE])[kb];
+			real mfabc = (D.f[TW])[kw];
+			real mfbcc = (D.f[TN])[k];
+			real mfbaa = (D.f[BS])[kbs];
+			real mfbca = (D.f[BN])[kb];
+			real mfbac = (D.f[TS])[ks];
 			real mfbbb = (D.f[dirREST])[k];
-			real mfccc = (D.f[dirTNE])[k];
-			real mfaac = (D.f[dirTSW])[ksw];
-			real mfcac = (D.f[dirTSE])[ks];
-			real mfacc = (D.f[dirTNW])[kw];
-			real mfcca = (D.f[dirBNE])[kb];
-			real mfaaa = (D.f[dirBSW])[kbsw];
-			real mfcaa = (D.f[dirBSE])[kbs];
-			real mfaca = (D.f[dirBNW])[kbw];
+			real mfccc = (D.f[TNE])[k];
+			real mfaac = (D.f[TSW])[ksw];
+			real mfcac = (D.f[TSE])[ks];
+			real mfacc = (D.f[TNW])[kw];
+			real mfcca = (D.f[BNE])[kb];
+			real mfaaa = (D.f[BSW])[kbsw];
+			real mfcaa = (D.f[BSE])[kbs];
+			real mfaca = (D.f[BNW])[kbw];
 			////////////////////////////////////////////////////////////////////////////////////
 			real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) +
 				(((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) +
@@ -1157,33 +1157,33 @@ extern "C" __global__ void LB_Kernel_WaleCumulantK17DebugComp(
 			////////////////////////////////////////////////////////////////////////////////////
 
 			////////////////////////////////////////////////////////////////////////////////////
-			(D.f[dirE])[k] = mfabb;
-			(D.f[dirW])[kw] = mfcbb;
-			(D.f[dirN])[k] = mfbab;
-			(D.f[dirS])[ks] = mfbcb;
-			(D.f[dirT])[k] = mfbba;
-			(D.f[dirB])[kb] = mfbbc;
-			(D.f[dirNE])[k] = mfaab;
-			(D.f[dirSW])[ksw] = mfccb;
-			(D.f[dirSE])[ks] = mfacb;
-			(D.f[dirNW])[kw] = mfcab;
-			(D.f[dirTE])[k] = mfaba;
-			(D.f[dirBW])[kbw] = mfcbc;
-			(D.f[dirBE])[kb] = mfabc;
-			(D.f[dirTW])[kw] = mfcba;
-			(D.f[dirTN])[k] = mfbaa;
-			(D.f[dirBS])[kbs] = mfbcc;
-			(D.f[dirBN])[kb] = mfbac;
-			(D.f[dirTS])[ks] = mfbca;
+			(D.f[E])[k] = mfabb;
+			(D.f[W])[kw] = mfcbb;
+			(D.f[N])[k] = mfbab;
+			(D.f[S])[ks] = mfbcb;
+			(D.f[T])[k] = mfbba;
+			(D.f[B])[kb] = mfbbc;
+			(D.f[NE])[k] = mfaab;
+			(D.f[SW])[ksw] = mfccb;
+			(D.f[SE])[ks] = mfacb;
+			(D.f[NW])[kw] = mfcab;
+			(D.f[TE])[k] = mfaba;
+			(D.f[BW])[kbw] = mfcbc;
+			(D.f[BE])[kb] = mfabc;
+			(D.f[TW])[kw] = mfcba;
+			(D.f[TN])[k] = mfbaa;
+			(D.f[BS])[kbs] = mfbcc;
+			(D.f[BN])[kb] = mfbac;
+			(D.f[TS])[ks] = mfbca;
 			(D.f[dirREST])[k] = mfbbb;
-			(D.f[dirTNE])[k] = mfaaa;
-			(D.f[dirTSE])[ks] = mfaca;
-			(D.f[dirBNE])[kb] = mfaac;
-			(D.f[dirBSE])[kbs] = mfacc;
-			(D.f[dirTNW])[kw] = mfcaa;
-			(D.f[dirTSW])[ksw] = mfcca;
-			(D.f[dirBNW])[kbw] = mfcac;
-			(D.f[dirBSW])[kbsw] = mfccc;
+			(D.f[TNE])[k] = mfaaa;
+			(D.f[TSE])[ks] = mfaca;
+			(D.f[BNE])[kb] = mfaac;
+			(D.f[BSE])[kbs] = mfacc;
+			(D.f[TNW])[kw] = mfcaa;
+			(D.f[TSW])[ksw] = mfcca;
+			(D.f[BNW])[kbw] = mfcac;
+			(D.f[BSW])[kbsw] = mfccc;
 			////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Utilities/DistributionHelper.cu b/src/gpu/VirtualFluids_GPU/Kernel/Utilities/DistributionHelper.cu
index 2b9203bf9..bd93d8b70 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Utilities/DistributionHelper.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Utilities/DistributionHelper.cu
@@ -17,61 +17,61 @@ __device__ __host__ DistributionReferences27 getDistributionReferences27(real *d
     DistributionReferences27 distribution_references;
 
     if (isEvenTimestep) {
-        distribution_references.f[dirE]    = &distributions[dirE * size_Mat];
-        distribution_references.f[dirW]    = &distributions[dirW * size_Mat];
-        distribution_references.f[dirN]    = &distributions[dirN * size_Mat];
-        distribution_references.f[dirS]    = &distributions[dirS * size_Mat];
-        distribution_references.f[dirT]    = &distributions[dirT * size_Mat];
-        distribution_references.f[dirB]    = &distributions[dirB * size_Mat];
-        distribution_references.f[dirNE]   = &distributions[dirNE * size_Mat];
-        distribution_references.f[dirSW]   = &distributions[dirSW * size_Mat];
-        distribution_references.f[dirSE]   = &distributions[dirSE * size_Mat];
-        distribution_references.f[dirNW]   = &distributions[dirNW * size_Mat];
-        distribution_references.f[dirTE]   = &distributions[dirTE * size_Mat];
-        distribution_references.f[dirBW]   = &distributions[dirBW * size_Mat];
-        distribution_references.f[dirBE]   = &distributions[dirBE * size_Mat];
-        distribution_references.f[dirTW]   = &distributions[dirTW * size_Mat];
-        distribution_references.f[dirTN]   = &distributions[dirTN * size_Mat];
-        distribution_references.f[dirBS]   = &distributions[dirBS * size_Mat];
-        distribution_references.f[dirBN]   = &distributions[dirBN * size_Mat];
-        distribution_references.f[dirTS]   = &distributions[dirTS * size_Mat];
+        distribution_references.f[E]    = &distributions[E * size_Mat];
+        distribution_references.f[W]    = &distributions[W * size_Mat];
+        distribution_references.f[N]    = &distributions[N * size_Mat];
+        distribution_references.f[S]    = &distributions[S * size_Mat];
+        distribution_references.f[T]    = &distributions[T * size_Mat];
+        distribution_references.f[B]    = &distributions[B * size_Mat];
+        distribution_references.f[NE]   = &distributions[NE * size_Mat];
+        distribution_references.f[SW]   = &distributions[SW * size_Mat];
+        distribution_references.f[SE]   = &distributions[SE * size_Mat];
+        distribution_references.f[NW]   = &distributions[NW * size_Mat];
+        distribution_references.f[TE]   = &distributions[TE * size_Mat];
+        distribution_references.f[BW]   = &distributions[BW * size_Mat];
+        distribution_references.f[BE]   = &distributions[BE * size_Mat];
+        distribution_references.f[TW]   = &distributions[TW * size_Mat];
+        distribution_references.f[TN]   = &distributions[TN * size_Mat];
+        distribution_references.f[BS]   = &distributions[BS * size_Mat];
+        distribution_references.f[BN]   = &distributions[BN * size_Mat];
+        distribution_references.f[TS]   = &distributions[TS * size_Mat];
         distribution_references.f[dirREST] = &distributions[dirREST * size_Mat];
-        distribution_references.f[dirTNE]  = &distributions[dirTNE * size_Mat];
-        distribution_references.f[dirTSW]  = &distributions[dirTSW * size_Mat];
-        distribution_references.f[dirTSE]  = &distributions[dirTSE * size_Mat];
-        distribution_references.f[dirTNW]  = &distributions[dirTNW * size_Mat];
-        distribution_references.f[dirBNE]  = &distributions[dirBNE * size_Mat];
-        distribution_references.f[dirBSW]  = &distributions[dirBSW * size_Mat];
-        distribution_references.f[dirBSE]  = &distributions[dirBSE * size_Mat];
-        distribution_references.f[dirBNW]  = &distributions[dirBNW * size_Mat];
+        distribution_references.f[TNE]  = &distributions[TNE * size_Mat];
+        distribution_references.f[TSW]  = &distributions[TSW * size_Mat];
+        distribution_references.f[TSE]  = &distributions[TSE * size_Mat];
+        distribution_references.f[TNW]  = &distributions[TNW * size_Mat];
+        distribution_references.f[BNE]  = &distributions[BNE * size_Mat];
+        distribution_references.f[BSW]  = &distributions[BSW * size_Mat];
+        distribution_references.f[BSE]  = &distributions[BSE * size_Mat];
+        distribution_references.f[BNW]  = &distributions[BNW * size_Mat];
     } else {
-        distribution_references.f[dirW]    = &distributions[dirE * size_Mat];
-        distribution_references.f[dirE]    = &distributions[dirW * size_Mat];
-        distribution_references.f[dirS]    = &distributions[dirN * size_Mat];
-        distribution_references.f[dirN]    = &distributions[dirS * size_Mat];
-        distribution_references.f[dirB]    = &distributions[dirT * size_Mat];
-        distribution_references.f[dirT]    = &distributions[dirB * size_Mat];
-        distribution_references.f[dirSW]   = &distributions[dirNE * size_Mat];
-        distribution_references.f[dirNE]   = &distributions[dirSW * size_Mat];
-        distribution_references.f[dirNW]   = &distributions[dirSE * size_Mat];
-        distribution_references.f[dirSE]   = &distributions[dirNW * size_Mat];
-        distribution_references.f[dirBW]   = &distributions[dirTE * size_Mat];
-        distribution_references.f[dirTE]   = &distributions[dirBW * size_Mat];
-        distribution_references.f[dirTW]   = &distributions[dirBE * size_Mat];
-        distribution_references.f[dirBE]   = &distributions[dirTW * size_Mat];
-        distribution_references.f[dirBS]   = &distributions[dirTN * size_Mat];
-        distribution_references.f[dirTN]   = &distributions[dirBS * size_Mat];
-        distribution_references.f[dirTS]   = &distributions[dirBN * size_Mat];
-        distribution_references.f[dirBN]   = &distributions[dirTS * size_Mat];
+        distribution_references.f[W]    = &distributions[E * size_Mat];
+        distribution_references.f[E]    = &distributions[W * size_Mat];
+        distribution_references.f[S]    = &distributions[N * size_Mat];
+        distribution_references.f[N]    = &distributions[S * size_Mat];
+        distribution_references.f[B]    = &distributions[T * size_Mat];
+        distribution_references.f[T]    = &distributions[B * size_Mat];
+        distribution_references.f[SW]   = &distributions[NE * size_Mat];
+        distribution_references.f[NE]   = &distributions[SW * size_Mat];
+        distribution_references.f[NW]   = &distributions[SE * size_Mat];
+        distribution_references.f[SE]   = &distributions[NW * size_Mat];
+        distribution_references.f[BW]   = &distributions[TE * size_Mat];
+        distribution_references.f[TE]   = &distributions[BW * size_Mat];
+        distribution_references.f[TW]   = &distributions[BE * size_Mat];
+        distribution_references.f[BE]   = &distributions[TW * size_Mat];
+        distribution_references.f[BS]   = &distributions[TN * size_Mat];
+        distribution_references.f[TN]   = &distributions[BS * size_Mat];
+        distribution_references.f[TS]   = &distributions[BN * size_Mat];
+        distribution_references.f[BN]   = &distributions[TS * size_Mat];
         distribution_references.f[dirREST] = &distributions[dirREST * size_Mat];
-        distribution_references.f[dirBSW]  = &distributions[dirTNE * size_Mat];
-        distribution_references.f[dirBNE]  = &distributions[dirTSW * size_Mat];
-        distribution_references.f[dirBNW]  = &distributions[dirTSE * size_Mat];
-        distribution_references.f[dirBSE]  = &distributions[dirTNW * size_Mat];
-        distribution_references.f[dirTSW]  = &distributions[dirBNE * size_Mat];
-        distribution_references.f[dirTNE]  = &distributions[dirBSW * size_Mat];
-        distribution_references.f[dirTNW]  = &distributions[dirBSE * size_Mat];
-        distribution_references.f[dirTSE]  = &distributions[dirBNW * size_Mat];
+        distribution_references.f[BSW]  = &distributions[TNE * size_Mat];
+        distribution_references.f[BNE]  = &distributions[TSW * size_Mat];
+        distribution_references.f[BNW]  = &distributions[TSE * size_Mat];
+        distribution_references.f[BSE]  = &distributions[TNW * size_Mat];
+        distribution_references.f[TSW]  = &distributions[BNE * size_Mat];
+        distribution_references.f[TNE]  = &distributions[BSW * size_Mat];
+        distribution_references.f[TNW]  = &distributions[BSE * size_Mat];
+        distribution_references.f[TSE]  = &distributions[BNW * size_Mat];
     }
     return distribution_references;
 }
@@ -86,63 +86,63 @@ __device__ DistributionWrapper::DistributionWrapper(real *distributions, unsigne
 
 __device__ void DistributionWrapper::read()
 {
-    distribution.f[vf::lbm::dir::PZZ] = (distribution_references.f[dirE])[k];
-    distribution.f[vf::lbm::dir::MZZ] = (distribution_references.f[dirW])[kw];
-    distribution.f[vf::lbm::dir::ZPZ] = (distribution_references.f[dirN])[k];
-    distribution.f[vf::lbm::dir::ZMZ] = (distribution_references.f[dirS])[ks];
-    distribution.f[vf::lbm::dir::ZZP] = (distribution_references.f[dirT])[k];
-    distribution.f[vf::lbm::dir::ZZM] = (distribution_references.f[dirB])[kb];
-    distribution.f[vf::lbm::dir::PPZ] = (distribution_references.f[dirNE])[k];
-    distribution.f[vf::lbm::dir::MMZ] = (distribution_references.f[dirSW])[ksw];
-    distribution.f[vf::lbm::dir::PMZ] = (distribution_references.f[dirSE])[ks];
-    distribution.f[vf::lbm::dir::MPZ] = (distribution_references.f[dirNW])[kw];
-    distribution.f[vf::lbm::dir::PZP] = (distribution_references.f[dirTE])[k];
-    distribution.f[vf::lbm::dir::MZM] = (distribution_references.f[dirBW])[kbw];
-    distribution.f[vf::lbm::dir::PZM] = (distribution_references.f[dirBE])[kb];
-    distribution.f[vf::lbm::dir::MZP] = (distribution_references.f[dirTW])[kw];
-    distribution.f[vf::lbm::dir::ZPP] = (distribution_references.f[dirTN])[k];
-    distribution.f[vf::lbm::dir::ZMM] = (distribution_references.f[dirBS])[kbs];
-    distribution.f[vf::lbm::dir::ZPM] = (distribution_references.f[dirBN])[kb];
-    distribution.f[vf::lbm::dir::ZMP] = (distribution_references.f[dirTS])[ks];
-    distribution.f[vf::lbm::dir::PPP] = (distribution_references.f[dirTNE])[k];
-    distribution.f[vf::lbm::dir::MPP] = (distribution_references.f[dirTNW])[kw];
-    distribution.f[vf::lbm::dir::PMP] = (distribution_references.f[dirTSE])[ks];
-    distribution.f[vf::lbm::dir::MMP] = (distribution_references.f[dirTSW])[ksw];
-    distribution.f[vf::lbm::dir::PPM] = (distribution_references.f[dirBNE])[kb];
-    distribution.f[vf::lbm::dir::MPM] = (distribution_references.f[dirBNW])[kbw];
-    distribution.f[vf::lbm::dir::PMM] = (distribution_references.f[dirBSE])[kbs];
-    distribution.f[vf::lbm::dir::MMM] = (distribution_references.f[dirBSW])[kbsw];
+    distribution.f[vf::lbm::dir::PZZ] = (distribution_references.f[E])[k];
+    distribution.f[vf::lbm::dir::MZZ] = (distribution_references.f[W])[kw];
+    distribution.f[vf::lbm::dir::ZPZ] = (distribution_references.f[N])[k];
+    distribution.f[vf::lbm::dir::ZMZ] = (distribution_references.f[S])[ks];
+    distribution.f[vf::lbm::dir::ZZP] = (distribution_references.f[T])[k];
+    distribution.f[vf::lbm::dir::ZZM] = (distribution_references.f[B])[kb];
+    distribution.f[vf::lbm::dir::PPZ] = (distribution_references.f[NE])[k];
+    distribution.f[vf::lbm::dir::MMZ] = (distribution_references.f[SW])[ksw];
+    distribution.f[vf::lbm::dir::PMZ] = (distribution_references.f[SE])[ks];
+    distribution.f[vf::lbm::dir::MPZ] = (distribution_references.f[NW])[kw];
+    distribution.f[vf::lbm::dir::PZP] = (distribution_references.f[TE])[k];
+    distribution.f[vf::lbm::dir::MZM] = (distribution_references.f[BW])[kbw];
+    distribution.f[vf::lbm::dir::PZM] = (distribution_references.f[BE])[kb];
+    distribution.f[vf::lbm::dir::MZP] = (distribution_references.f[TW])[kw];
+    distribution.f[vf::lbm::dir::ZPP] = (distribution_references.f[TN])[k];
+    distribution.f[vf::lbm::dir::ZMM] = (distribution_references.f[BS])[kbs];
+    distribution.f[vf::lbm::dir::ZPM] = (distribution_references.f[BN])[kb];
+    distribution.f[vf::lbm::dir::ZMP] = (distribution_references.f[TS])[ks];
+    distribution.f[vf::lbm::dir::PPP] = (distribution_references.f[TNE])[k];
+    distribution.f[vf::lbm::dir::MPP] = (distribution_references.f[TNW])[kw];
+    distribution.f[vf::lbm::dir::PMP] = (distribution_references.f[TSE])[ks];
+    distribution.f[vf::lbm::dir::MMP] = (distribution_references.f[TSW])[ksw];
+    distribution.f[vf::lbm::dir::PPM] = (distribution_references.f[BNE])[kb];
+    distribution.f[vf::lbm::dir::MPM] = (distribution_references.f[BNW])[kbw];
+    distribution.f[vf::lbm::dir::PMM] = (distribution_references.f[BSE])[kbs];
+    distribution.f[vf::lbm::dir::MMM] = (distribution_references.f[BSW])[kbsw];
     distribution.f[vf::lbm::dir::ZZZ] = (distribution_references.f[dirREST])[k];
 }
 
 __device__ void DistributionWrapper::write()
 {
-    (distribution_references.f[dirE])[k]      = distribution.f[vf::lbm::dir::PZZ];
-    (distribution_references.f[dirW])[kw]     = distribution.f[vf::lbm::dir::MZZ];
-    (distribution_references.f[dirN])[k]      = distribution.f[vf::lbm::dir::ZPZ];
-    (distribution_references.f[dirS])[ks]     = distribution.f[vf::lbm::dir::ZMZ];
-    (distribution_references.f[dirT])[k]      = distribution.f[vf::lbm::dir::ZZP];
-    (distribution_references.f[dirB])[kb]     = distribution.f[vf::lbm::dir::ZZM];
-    (distribution_references.f[dirNE])[k]     = distribution.f[vf::lbm::dir::PPZ];
-    (distribution_references.f[dirSW])[ksw]   = distribution.f[vf::lbm::dir::MMZ];
-    (distribution_references.f[dirSE])[ks]    = distribution.f[vf::lbm::dir::PMZ];
-    (distribution_references.f[dirNW])[kw]    = distribution.f[vf::lbm::dir::MPZ];
-    (distribution_references.f[dirTE])[k]     = distribution.f[vf::lbm::dir::PZP];
-    (distribution_references.f[dirBW])[kbw]   = distribution.f[vf::lbm::dir::MZM];
-    (distribution_references.f[dirBE])[kb]    = distribution.f[vf::lbm::dir::PZM];
-    (distribution_references.f[dirTW])[kw]    = distribution.f[vf::lbm::dir::MZP];
-    (distribution_references.f[dirTN])[k]     = distribution.f[vf::lbm::dir::ZPP];
-    (distribution_references.f[dirBS])[kbs]   = distribution.f[vf::lbm::dir::ZMM];
-    (distribution_references.f[dirBN])[kb]    = distribution.f[vf::lbm::dir::ZPM];
-    (distribution_references.f[dirTS])[ks]    = distribution.f[vf::lbm::dir::ZMP];
-    (distribution_references.f[dirTNE])[k]    = distribution.f[vf::lbm::dir::PPP];
-    (distribution_references.f[dirTNW])[kw]   = distribution.f[vf::lbm::dir::MPP];
-    (distribution_references.f[dirTSE])[ks]   = distribution.f[vf::lbm::dir::PMP];
-    (distribution_references.f[dirTSW])[ksw]  = distribution.f[vf::lbm::dir::MMP];
-    (distribution_references.f[dirBNE])[kb]   = distribution.f[vf::lbm::dir::PPM];
-    (distribution_references.f[dirBNW])[kbw]  = distribution.f[vf::lbm::dir::MPM];
-    (distribution_references.f[dirBSE])[kbs]  = distribution.f[vf::lbm::dir::PMM];
-    (distribution_references.f[dirBSW])[kbsw] = distribution.f[vf::lbm::dir::MMM];
+    (distribution_references.f[E])[k]      = distribution.f[vf::lbm::dir::PZZ];
+    (distribution_references.f[W])[kw]     = distribution.f[vf::lbm::dir::MZZ];
+    (distribution_references.f[N])[k]      = distribution.f[vf::lbm::dir::ZPZ];
+    (distribution_references.f[S])[ks]     = distribution.f[vf::lbm::dir::ZMZ];
+    (distribution_references.f[T])[k]      = distribution.f[vf::lbm::dir::ZZP];
+    (distribution_references.f[B])[kb]     = distribution.f[vf::lbm::dir::ZZM];
+    (distribution_references.f[NE])[k]     = distribution.f[vf::lbm::dir::PPZ];
+    (distribution_references.f[SW])[ksw]   = distribution.f[vf::lbm::dir::MMZ];
+    (distribution_references.f[SE])[ks]    = distribution.f[vf::lbm::dir::PMZ];
+    (distribution_references.f[NW])[kw]    = distribution.f[vf::lbm::dir::MPZ];
+    (distribution_references.f[TE])[k]     = distribution.f[vf::lbm::dir::PZP];
+    (distribution_references.f[BW])[kbw]   = distribution.f[vf::lbm::dir::MZM];
+    (distribution_references.f[BE])[kb]    = distribution.f[vf::lbm::dir::PZM];
+    (distribution_references.f[TW])[kw]    = distribution.f[vf::lbm::dir::MZP];
+    (distribution_references.f[TN])[k]     = distribution.f[vf::lbm::dir::ZPP];
+    (distribution_references.f[BS])[kbs]   = distribution.f[vf::lbm::dir::ZMM];
+    (distribution_references.f[BN])[kb]    = distribution.f[vf::lbm::dir::ZPM];
+    (distribution_references.f[TS])[ks]    = distribution.f[vf::lbm::dir::ZMP];
+    (distribution_references.f[TNE])[k]    = distribution.f[vf::lbm::dir::PPP];
+    (distribution_references.f[TNW])[kw]   = distribution.f[vf::lbm::dir::MPP];
+    (distribution_references.f[TSE])[ks]   = distribution.f[vf::lbm::dir::PMP];
+    (distribution_references.f[TSW])[ksw]  = distribution.f[vf::lbm::dir::MMP];
+    (distribution_references.f[BNE])[kb]   = distribution.f[vf::lbm::dir::PPM];
+    (distribution_references.f[BNW])[kbw]  = distribution.f[vf::lbm::dir::MPM];
+    (distribution_references.f[BSE])[kbs]  = distribution.f[vf::lbm::dir::PMM];
+    (distribution_references.f[BSW])[kbsw] = distribution.f[vf::lbm::dir::MMM];
     (distribution_references.f[dirREST])[k]   = distribution.f[vf::lbm::dir::ZZZ];
 }
 
diff --git a/src/gpu/VirtualFluids_GPU/LBM/D3Q27.h b/src/gpu/VirtualFluids_GPU/LBM/D3Q27.h
index b610bb9b0..bab3fc3ee 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/D3Q27.h
+++ b/src/gpu/VirtualFluids_GPU/LBM/D3Q27.h
@@ -2,35 +2,35 @@
 #define _LB_D3Q27_H_
 #include <math.h>
 
-static constexpr int dirSTART = 0;
-static constexpr int dirEND   = 26;
+static constexpr int STARTDIR = 0;
+static constexpr int ENDDIR   = 26;
 
-static constexpr int dirE    = 0;
-static constexpr int dirW    = 1;
-static constexpr int dirN    = 2;
-static constexpr int dirS    = 3;
-static constexpr int dirT    = 4;
-static constexpr int dirB    = 5;
-static constexpr int dirNE   = 6;
-static constexpr int dirSW   = 7;
-static constexpr int dirSE   = 8;
-static constexpr int dirNW   = 9;
-static constexpr int dirTE   = 10;
-static constexpr int dirBW   = 11;
-static constexpr int dirBE   = 12;
-static constexpr int dirTW   = 13;
-static constexpr int dirTN   = 14;
-static constexpr int dirBS   = 15;
-static constexpr int dirBN   = 16;
-static constexpr int dirTS   = 17;
-static constexpr int dirTNE  = 18;
-static constexpr int dirTNW  = 19;
-static constexpr int dirTSE  = 20;
-static constexpr int dirTSW  = 21;
-static constexpr int dirBNE  = 22;
-static constexpr int dirBNW  = 23;
-static constexpr int dirBSE  = 24;
-static constexpr int dirBSW  = 25;
+static constexpr int E    = 0;
+static constexpr int W    = 1;
+static constexpr int N    = 2;
+static constexpr int S    = 3;
+static constexpr int T    = 4;
+static constexpr int B    = 5;
+static constexpr int NE   = 6;
+static constexpr int SW   = 7;
+static constexpr int SE   = 8;
+static constexpr int NW   = 9;
+static constexpr int TE   = 10;
+static constexpr int BW   = 11;
+static constexpr int BE   = 12;
+static constexpr int TW   = 13;
+static constexpr int TN   = 14;
+static constexpr int BS   = 15;
+static constexpr int BN   = 16;
+static constexpr int TS   = 17;
+static constexpr int TNE  = 18;
+static constexpr int TNW  = 19;
+static constexpr int TSE  = 20;
+static constexpr int TSW  = 21;
+static constexpr int BNE  = 22;
+static constexpr int BNW  = 23;
+static constexpr int BSE  = 24;
+static constexpr int BSW  = 25;
 
 static constexpr int dirREST = 26;
 
diff --git a/src/gpu/VirtualFluids_GPU/Output/UnstructuredGridWriter.hpp b/src/gpu/VirtualFluids_GPU/Output/UnstructuredGridWriter.hpp
index cd13d9bce..09e04822f 100644
--- a/src/gpu/VirtualFluids_GPU/Output/UnstructuredGridWriter.hpp
+++ b/src/gpu/VirtualFluids_GPU/Output/UnstructuredGridWriter.hpp
@@ -2319,7 +2319,7 @@ namespace UnstructuredGridWriter
 			wallX3 = 0.0;
 			q      = 0.0;
 			//////////////////////////////////////////////////////////////////////////
-			for (unsigned int typeOfQ = dirSTART; typeOfQ <= dirEND; typeOfQ++)
+			for (unsigned int typeOfQ = STARTDIR; typeOfQ <= ENDDIR; typeOfQ++)
 			{
 				QQ = para->getParH(level)->geometryBC.q27[0];
 				Q.q27[typeOfQ] = &QQ[typeOfQ*sizeOfNodes];
@@ -2327,32 +2327,32 @@ namespace UnstructuredGridWriter
 				//////////////////////////////////////////////////////////////////////////
 				switch (typeOfQ)
 				{
-					case dirE:   wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3;        break;
-					case dirN:   wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
-					case dirW:   wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3;        break;
-					case dirS:   wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
-					case dirNE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
-					case dirNW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
-					case dirSW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
-					case dirSE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
-					case dirT:   wallX1 = nodeX1;        wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
-					case dirTE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
-					case dirTN:  wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirTW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
-					case dirTS:  wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirB:   wallX1 = nodeX1;        wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
-					case dirBE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
-					case dirBN:  wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirBW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
-					case dirBS:  wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirTNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirBSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirBNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirTSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirTSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirBNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirBSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirTNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
+					case E:   wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3;        break;
+					case N:   wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
+					case W:   wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3;        break;
+					case S:   wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
+					case NE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
+					case NW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
+					case SW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
+					case SE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
+					case T:   wallX1 = nodeX1;        wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
+					case TE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
+					case TN:  wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
+					case TW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
+					case TS:  wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
+					case B:   wallX1 = nodeX1;        wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
+					case BE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
+					case BN:  wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
+					case BW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
+					case BS:  wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
+					case TNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
+					case BSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
+					case BNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
+					case TSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
+					case TSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
+					case BNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
+					case BSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
+					case TNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
 					case dirREST:wallX1 = nodeX1;        wallX2 = nodeX2;		 wallX3 = nodeX3;        break;
 					default: throw UbException(UB_EXARGS, "unknown direction");
 				}
@@ -2423,7 +2423,7 @@ namespace UnstructuredGridWriter
 			wallX3 = 0.0;
 			q      = 0.0;
 			//////////////////////////////////////////////////////////////////////////
-			for (unsigned int typeOfQ = dirSTART; typeOfQ <= dirEND; typeOfQ++)
+			for (unsigned int typeOfQ = STARTDIR; typeOfQ <= ENDDIR; typeOfQ++)
 			{
 				QQ = para->getParH(level)->velocityBC.q27[0];
 				Q.q27[typeOfQ] = &QQ[typeOfQ*sizeOfNodes];
@@ -2432,32 +2432,32 @@ namespace UnstructuredGridWriter
 				//////////////////////////////////////////////////////////////////////////
 				switch (typeOfQ)
 				{
-					case dirE:   wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3;        break;
-					case dirN:   wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
-					case dirW:   wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3;        break;
-					case dirS:   wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
-					case dirNE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
-					case dirNW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
-					case dirSW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
-					case dirSE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
-					case dirT:   wallX1 = nodeX1;        wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
-					case dirTE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
-					case dirTN:  wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirTW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
-					case dirTS:  wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirB:   wallX1 = nodeX1;        wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
-					case dirBE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
-					case dirBN:  wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirBW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
-					case dirBS:  wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirTNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirBSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirBNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirTSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirTSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirBNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirBSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirTNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
+					case E:   wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3;        break;
+					case N:   wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
+					case W:   wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3;        break;
+					case S:   wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
+					case NE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
+					case NW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
+					case SW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
+					case SE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
+					case T:   wallX1 = nodeX1;        wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
+					case TE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
+					case TN:  wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
+					case TW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
+					case TS:  wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
+					case B:   wallX1 = nodeX1;        wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
+					case BE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
+					case BN:  wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
+					case BW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
+					case BS:  wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
+					case TNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
+					case BSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
+					case BNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
+					case TSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
+					case TSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
+					case BNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
+					case BSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
+					case TNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
 					case dirREST:wallX1 = nodeX1;        wallX2 = nodeX2;		 wallX3 = nodeX3;        break;
 					default: throw UbException(UB_EXARGS, "unknown direction");
 				}
@@ -2528,7 +2528,7 @@ namespace UnstructuredGridWriter
 			wallX3 = 0.0;
 			q      = 0.0;
 			//////////////////////////////////////////////////////////////////////////
-			for (unsigned int typeOfQ = dirSTART; typeOfQ <= dirEND; typeOfQ++)
+			for (unsigned int typeOfQ = STARTDIR; typeOfQ <= ENDDIR; typeOfQ++)
 			{
 				QQ = para->getParH(level)->pressureBC.q27[0];
 				Q.q27[typeOfQ] = &QQ[typeOfQ*sizeOfNodes];
@@ -2537,32 +2537,32 @@ namespace UnstructuredGridWriter
 				//////////////////////////////////////////////////////////////////////////
 				switch (typeOfQ)
 				{
-					case dirE:   wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3;        break;
-					case dirN:   wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
-					case dirW:   wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3;        break;
-					case dirS:   wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
-					case dirNE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
-					case dirNW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
-					case dirSW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
-					case dirSE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
-					case dirT:   wallX1 = nodeX1;        wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
-					case dirTE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
-					case dirTN:  wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirTW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
-					case dirTS:  wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirB:   wallX1 = nodeX1;        wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
-					case dirBE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
-					case dirBN:  wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirBW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
-					case dirBS:  wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirTNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirBSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirBNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirTSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirTSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
-					case dirBNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirBSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
-					case dirTNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
+					case E:   wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3;        break;
+					case N:   wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
+					case W:   wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3;        break;
+					case S:   wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
+					case NE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
+					case NW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3;        break;
+					case SW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
+					case SE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3;        break;
+					case T:   wallX1 = nodeX1;        wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
+					case TE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
+					case TN:  wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
+					case TW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 + q*dx; break;
+					case TS:  wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
+					case B:   wallX1 = nodeX1;        wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
+					case BE:  wallX1 = nodeX1 + q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
+					case BN:  wallX1 = nodeX1;        wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
+					case BW:  wallX1 = nodeX1 - q*dx; wallX2 = nodeX2;        wallX3 = nodeX3 - q*dx; break;
+					case BS:  wallX1 = nodeX1;        wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
+					case TNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
+					case BSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
+					case BNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
+					case TSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
+					case TSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break;
+					case BNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break;
+					case BSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break;
+					case TNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break;
 					case dirREST:wallX1 = nodeX1;        wallX2 = nodeX2;		 wallX3 = nodeX3;        break;
 					default: throw UbException(UB_EXARGS, "unknown direction");
 				}
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 6e3069c33..4f5a0a1ca 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD27/InitCompAD27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompAD27/InitCompAD27_Device.cu
@@ -39,63 +39,63 @@ extern "C" __global__ void LB_Init_Comp_AD_27(unsigned int* neighborX,
 			Distributions27 D27;
 			if (EvenOrOdd == true)
 			{
-				D27.f[dirE] = &DD27[dirE   *size_Mat];
-				D27.f[dirW] = &DD27[dirW   *size_Mat];
-				D27.f[dirN] = &DD27[dirN   *size_Mat];
-				D27.f[dirS] = &DD27[dirS   *size_Mat];
-				D27.f[dirT] = &DD27[dirT   *size_Mat];
-				D27.f[dirB] = &DD27[dirB   *size_Mat];
-				D27.f[dirNE] = &DD27[dirNE  *size_Mat];
-				D27.f[dirSW] = &DD27[dirSW  *size_Mat];
-				D27.f[dirSE] = &DD27[dirSE  *size_Mat];
-				D27.f[dirNW] = &DD27[dirNW  *size_Mat];
-				D27.f[dirTE] = &DD27[dirTE  *size_Mat];
-				D27.f[dirBW] = &DD27[dirBW  *size_Mat];
-				D27.f[dirBE] = &DD27[dirBE  *size_Mat];
-				D27.f[dirTW] = &DD27[dirTW  *size_Mat];
-				D27.f[dirTN] = &DD27[dirTN  *size_Mat];
-				D27.f[dirBS] = &DD27[dirBS  *size_Mat];
-				D27.f[dirBN] = &DD27[dirBN  *size_Mat];
-				D27.f[dirTS] = &DD27[dirTS  *size_Mat];
+				D27.f[E] = &DD27[E   *size_Mat];
+				D27.f[W] = &DD27[W   *size_Mat];
+				D27.f[N] = &DD27[N   *size_Mat];
+				D27.f[S] = &DD27[S   *size_Mat];
+				D27.f[T] = &DD27[T   *size_Mat];
+				D27.f[B] = &DD27[B   *size_Mat];
+				D27.f[NE] = &DD27[NE  *size_Mat];
+				D27.f[SW] = &DD27[SW  *size_Mat];
+				D27.f[SE] = &DD27[SE  *size_Mat];
+				D27.f[NW] = &DD27[NW  *size_Mat];
+				D27.f[TE] = &DD27[TE  *size_Mat];
+				D27.f[BW] = &DD27[BW  *size_Mat];
+				D27.f[BE] = &DD27[BE  *size_Mat];
+				D27.f[TW] = &DD27[TW  *size_Mat];
+				D27.f[TN] = &DD27[TN  *size_Mat];
+				D27.f[BS] = &DD27[BS  *size_Mat];
+				D27.f[BN] = &DD27[BN  *size_Mat];
+				D27.f[TS] = &DD27[TS  *size_Mat];
 				D27.f[dirREST] = &DD27[dirREST*size_Mat];
-				D27.f[dirTNE] = &DD27[dirTNE *size_Mat];
-				D27.f[dirTSW] = &DD27[dirTSW *size_Mat];
-				D27.f[dirTSE] = &DD27[dirTSE *size_Mat];
-				D27.f[dirTNW] = &DD27[dirTNW *size_Mat];
-				D27.f[dirBNE] = &DD27[dirBNE *size_Mat];
-				D27.f[dirBSW] = &DD27[dirBSW *size_Mat];
-				D27.f[dirBSE] = &DD27[dirBSE *size_Mat];
-				D27.f[dirBNW] = &DD27[dirBNW *size_Mat];
+				D27.f[TNE] = &DD27[TNE *size_Mat];
+				D27.f[TSW] = &DD27[TSW *size_Mat];
+				D27.f[TSE] = &DD27[TSE *size_Mat];
+				D27.f[TNW] = &DD27[TNW *size_Mat];
+				D27.f[BNE] = &DD27[BNE *size_Mat];
+				D27.f[BSW] = &DD27[BSW *size_Mat];
+				D27.f[BSE] = &DD27[BSE *size_Mat];
+				D27.f[BNW] = &DD27[BNW *size_Mat];
 			}
 			else
 			{
-				D27.f[dirW] = &DD27[dirE   *size_Mat];
-				D27.f[dirE] = &DD27[dirW   *size_Mat];
-				D27.f[dirS] = &DD27[dirN   *size_Mat];
-				D27.f[dirN] = &DD27[dirS   *size_Mat];
-				D27.f[dirB] = &DD27[dirT   *size_Mat];
-				D27.f[dirT] = &DD27[dirB   *size_Mat];
-				D27.f[dirSW] = &DD27[dirNE  *size_Mat];
-				D27.f[dirNE] = &DD27[dirSW  *size_Mat];
-				D27.f[dirNW] = &DD27[dirSE  *size_Mat];
-				D27.f[dirSE] = &DD27[dirNW  *size_Mat];
-				D27.f[dirBW] = &DD27[dirTE  *size_Mat];
-				D27.f[dirTE] = &DD27[dirBW  *size_Mat];
-				D27.f[dirTW] = &DD27[dirBE  *size_Mat];
-				D27.f[dirBE] = &DD27[dirTW  *size_Mat];
-				D27.f[dirBS] = &DD27[dirTN  *size_Mat];
-				D27.f[dirTN] = &DD27[dirBS  *size_Mat];
-				D27.f[dirTS] = &DD27[dirBN  *size_Mat];
-				D27.f[dirBN] = &DD27[dirTS  *size_Mat];
+				D27.f[W] = &DD27[E   *size_Mat];
+				D27.f[E] = &DD27[W   *size_Mat];
+				D27.f[S] = &DD27[N   *size_Mat];
+				D27.f[N] = &DD27[S   *size_Mat];
+				D27.f[B] = &DD27[T   *size_Mat];
+				D27.f[T] = &DD27[B   *size_Mat];
+				D27.f[SW] = &DD27[NE  *size_Mat];
+				D27.f[NE] = &DD27[SW  *size_Mat];
+				D27.f[NW] = &DD27[SE  *size_Mat];
+				D27.f[SE] = &DD27[NW  *size_Mat];
+				D27.f[BW] = &DD27[TE  *size_Mat];
+				D27.f[TE] = &DD27[BW  *size_Mat];
+				D27.f[TW] = &DD27[BE  *size_Mat];
+				D27.f[BE] = &DD27[TW  *size_Mat];
+				D27.f[BS] = &DD27[TN  *size_Mat];
+				D27.f[TN] = &DD27[BS  *size_Mat];
+				D27.f[TS] = &DD27[BN  *size_Mat];
+				D27.f[BN] = &DD27[TS  *size_Mat];
 				D27.f[dirREST] = &DD27[dirREST*size_Mat];
-				D27.f[dirBSW] = &DD27[dirTNE *size_Mat];
-				D27.f[dirBNE] = &DD27[dirTSW *size_Mat];
-				D27.f[dirBNW] = &DD27[dirTSE *size_Mat];
-				D27.f[dirBSE] = &DD27[dirTNW *size_Mat];
-				D27.f[dirTSW] = &DD27[dirBNE *size_Mat];
-				D27.f[dirTNE] = &DD27[dirBSW *size_Mat];
-				D27.f[dirTNW] = &DD27[dirBSE *size_Mat];
-				D27.f[dirTSE] = &DD27[dirBNW *size_Mat];
+				D27.f[BSW] = &DD27[TNE *size_Mat];
+				D27.f[BNE] = &DD27[TSW *size_Mat];
+				D27.f[BNW] = &DD27[TSE *size_Mat];
+				D27.f[BSE] = &DD27[TNW *size_Mat];
+				D27.f[TSW] = &DD27[BNE *size_Mat];
+				D27.f[TNE] = &DD27[BSW *size_Mat];
+				D27.f[TNW] = &DD27[BSE *size_Mat];
+				D27.f[TSE] = &DD27[BNW *size_Mat];
 			}
 			//////////////////////////////////////////////////////////////////////////
 			real ConcD = Conc[k];
@@ -167,32 +167,32 @@ extern "C" __global__ void LB_Init_Comp_AD_27(unsigned int* neighborX,
 			real cu_sq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3);
 
 			(D27.f[dirREST])[kzero] = c8o27* ConcD*(c1o1 - cu_sq);
-			(D27.f[dirE])[ke] = c2o27* ConcD*(c1o1 + c3o1*(vx1)+c9o2*(vx1)*(vx1)-cu_sq);
-			(D27.f[dirW])[kw] = c2o27* ConcD*(c1o1 + c3o1*(-vx1) + c9o2*(-vx1)*(-vx1) - cu_sq);
-			(D27.f[dirN])[kn] = c2o27* ConcD*(c1o1 + c3o1*(vx2)+c9o2*(vx2)*(vx2)-cu_sq);
-			(D27.f[dirS])[ks] = c2o27* ConcD*(c1o1 + c3o1*(-vx2) + c9o2*(-vx2)*(-vx2) - cu_sq);
-			(D27.f[dirT])[kt] = c2o27* ConcD*(c1o1 + c3o1*(vx3)+c9o2*(vx3)*(vx3)-cu_sq);
-			(D27.f[dirB])[kb] = c2o27* ConcD*(c1o1 + c3o1*(-vx3) + c9o2*(-vx3)*(-vx3) - cu_sq);
-			(D27.f[dirNE])[kne] = c1o54* ConcD*(c1o1 + c3o1*(vx1 + vx2) + c9o2*(vx1 + vx2)*(vx1 + vx2) - cu_sq);
-			(D27.f[dirSW])[ksw] = c1o54* ConcD*(c1o1 + c3o1*(-vx1 - vx2) + c9o2*(-vx1 - vx2)*(-vx1 - vx2) - cu_sq);
-			(D27.f[dirSE])[kse] = c1o54* ConcD*(c1o1 + c3o1*(vx1 - vx2) + c9o2*(vx1 - vx2)*(vx1 - vx2) - cu_sq);
-			(D27.f[dirNW])[knw] = c1o54* ConcD*(c1o1 + c3o1*(-vx1 + vx2) + c9o2*(-vx1 + vx2)*(-vx1 + vx2) - cu_sq);
-			(D27.f[dirTE])[kte] = c1o54* ConcD*(c1o1 + c3o1*(vx1 + vx3) + c9o2*(vx1 + vx3)*(vx1 + vx3) - cu_sq);
-			(D27.f[dirBW])[kbw] = c1o54* ConcD*(c1o1 + c3o1*(-vx1 - vx3) + c9o2*(-vx1 - vx3)*(-vx1 - vx3) - cu_sq);
-			(D27.f[dirBE])[kbe] = c1o54* ConcD*(c1o1 + c3o1*(vx1 - vx3) + c9o2*(vx1 - vx3)*(vx1 - vx3) - cu_sq);
-			(D27.f[dirTW])[ktw] = c1o54* ConcD*(c1o1 + c3o1*(-vx1 + vx3) + c9o2*(-vx1 + vx3)*(-vx1 + vx3) - cu_sq);
-			(D27.f[dirTN])[ktn] = c1o54* ConcD*(c1o1 + c3o1*(vx2 + vx3) + c9o2*(vx2 + vx3)*(vx2 + vx3) - cu_sq);
-			(D27.f[dirBS])[kbs] = c1o54* ConcD*(c1o1 + c3o1*(-vx2 - vx3) + c9o2*(-vx2 - vx3)*(-vx2 - vx3) - cu_sq);
-			(D27.f[dirBN])[kbn] = c1o54* ConcD*(c1o1 + c3o1*(vx2 - vx3) + c9o2*(vx2 - vx3)*(vx2 - vx3) - cu_sq);
-			(D27.f[dirTS])[kts] = c1o54* ConcD*(c1o1 + c3o1*(-vx2 + vx3) + c9o2*(-vx2 + vx3)*(-vx2 + vx3) - cu_sq);
-			(D27.f[dirTNE])[ktne] = c1o216*ConcD*(c1o1 + c3o1*(vx1 + vx2 + vx3) + c9o2*(vx1 + vx2 + vx3)*(vx1 + vx2 + vx3) - cu_sq);
-			(D27.f[dirBSW])[kbsw] = c1o216*ConcD*(c1o1 + c3o1*(-vx1 - vx2 - vx3) + c9o2*(-vx1 - vx2 - vx3)*(-vx1 - vx2 - vx3) - cu_sq);
-			(D27.f[dirBNE])[kbne] = c1o216*ConcD*(c1o1 + c3o1*(vx1 + vx2 - vx3) + c9o2*(vx1 + vx2 - vx3)*(vx1 + vx2 - vx3) - cu_sq);
-			(D27.f[dirTSW])[ktsw] = c1o216*ConcD*(c1o1 + c3o1*(-vx1 - vx2 + vx3) + c9o2*(-vx1 - vx2 + vx3)*(-vx1 - vx2 + vx3) - cu_sq);
-			(D27.f[dirTSE])[ktse] = c1o216*ConcD*(c1o1 + c3o1*(vx1 - vx2 + vx3) + c9o2*(vx1 - vx2 + vx3)*(vx1 - vx2 + vx3) - cu_sq);
-			(D27.f[dirBNW])[kbnw] = c1o216*ConcD*(c1o1 + c3o1*(-vx1 + vx2 - vx3) + c9o2*(-vx1 + vx2 - vx3)*(-vx1 + vx2 - vx3) - cu_sq);
-			(D27.f[dirBSE])[kbse] = c1o216*ConcD*(c1o1 + c3o1*(vx1 - vx2 - vx3) + c9o2*(vx1 - vx2 - vx3)*(vx1 - vx2 - vx3) - cu_sq);
-			(D27.f[dirTNW])[ktnw] = c1o216*ConcD*(c1o1 + c3o1*(-vx1 + vx2 + vx3) + c9o2*(-vx1 + vx2 + vx3)*(-vx1 + vx2 + vx3) - cu_sq);
+			(D27.f[E])[ke] = c2o27* ConcD*(c1o1 + c3o1*(vx1)+c9o2*(vx1)*(vx1)-cu_sq);
+			(D27.f[W])[kw] = c2o27* ConcD*(c1o1 + c3o1*(-vx1) + c9o2*(-vx1)*(-vx1) - cu_sq);
+			(D27.f[N])[kn] = c2o27* ConcD*(c1o1 + c3o1*(vx2)+c9o2*(vx2)*(vx2)-cu_sq);
+			(D27.f[S])[ks] = c2o27* ConcD*(c1o1 + c3o1*(-vx2) + c9o2*(-vx2)*(-vx2) - cu_sq);
+			(D27.f[T])[kt] = c2o27* ConcD*(c1o1 + c3o1*(vx3)+c9o2*(vx3)*(vx3)-cu_sq);
+			(D27.f[B])[kb] = c2o27* ConcD*(c1o1 + c3o1*(-vx3) + c9o2*(-vx3)*(-vx3) - cu_sq);
+			(D27.f[NE])[kne] = c1o54* ConcD*(c1o1 + c3o1*(vx1 + vx2) + c9o2*(vx1 + vx2)*(vx1 + vx2) - cu_sq);
+			(D27.f[SW])[ksw] = c1o54* ConcD*(c1o1 + c3o1*(-vx1 - vx2) + c9o2*(-vx1 - vx2)*(-vx1 - vx2) - cu_sq);
+			(D27.f[SE])[kse] = c1o54* ConcD*(c1o1 + c3o1*(vx1 - vx2) + c9o2*(vx1 - vx2)*(vx1 - vx2) - cu_sq);
+			(D27.f[NW])[knw] = c1o54* ConcD*(c1o1 + c3o1*(-vx1 + vx2) + c9o2*(-vx1 + vx2)*(-vx1 + vx2) - cu_sq);
+			(D27.f[TE])[kte] = c1o54* ConcD*(c1o1 + c3o1*(vx1 + vx3) + c9o2*(vx1 + vx3)*(vx1 + vx3) - cu_sq);
+			(D27.f[BW])[kbw] = c1o54* ConcD*(c1o1 + c3o1*(-vx1 - vx3) + c9o2*(-vx1 - vx3)*(-vx1 - vx3) - cu_sq);
+			(D27.f[BE])[kbe] = c1o54* ConcD*(c1o1 + c3o1*(vx1 - vx3) + c9o2*(vx1 - vx3)*(vx1 - vx3) - cu_sq);
+			(D27.f[TW])[ktw] = c1o54* ConcD*(c1o1 + c3o1*(-vx1 + vx3) + c9o2*(-vx1 + vx3)*(-vx1 + vx3) - cu_sq);
+			(D27.f[TN])[ktn] = c1o54* ConcD*(c1o1 + c3o1*(vx2 + vx3) + c9o2*(vx2 + vx3)*(vx2 + vx3) - cu_sq);
+			(D27.f[BS])[kbs] = c1o54* ConcD*(c1o1 + c3o1*(-vx2 - vx3) + c9o2*(-vx2 - vx3)*(-vx2 - vx3) - cu_sq);
+			(D27.f[BN])[kbn] = c1o54* ConcD*(c1o1 + c3o1*(vx2 - vx3) + c9o2*(vx2 - vx3)*(vx2 - vx3) - cu_sq);
+			(D27.f[TS])[kts] = c1o54* ConcD*(c1o1 + c3o1*(-vx2 + vx3) + c9o2*(-vx2 + vx3)*(-vx2 + vx3) - cu_sq);
+			(D27.f[TNE])[ktne] = c1o216*ConcD*(c1o1 + c3o1*(vx1 + vx2 + vx3) + c9o2*(vx1 + vx2 + vx3)*(vx1 + vx2 + vx3) - cu_sq);
+			(D27.f[BSW])[kbsw] = c1o216*ConcD*(c1o1 + c3o1*(-vx1 - vx2 - vx3) + c9o2*(-vx1 - vx2 - vx3)*(-vx1 - vx2 - vx3) - cu_sq);
+			(D27.f[BNE])[kbne] = c1o216*ConcD*(c1o1 + c3o1*(vx1 + vx2 - vx3) + c9o2*(vx1 + vx2 - vx3)*(vx1 + vx2 - vx3) - cu_sq);
+			(D27.f[TSW])[ktsw] = c1o216*ConcD*(c1o1 + c3o1*(-vx1 - vx2 + vx3) + c9o2*(-vx1 - vx2 + vx3)*(-vx1 - vx2 + vx3) - cu_sq);
+			(D27.f[TSE])[ktse] = c1o216*ConcD*(c1o1 + c3o1*(vx1 - vx2 + vx3) + c9o2*(vx1 - vx2 + vx3)*(vx1 - vx2 + vx3) - cu_sq);
+			(D27.f[BNW])[kbnw] = c1o216*ConcD*(c1o1 + c3o1*(-vx1 + vx2 - vx3) + c9o2*(-vx1 + vx2 - vx3)*(-vx1 + vx2 - vx3) - cu_sq);
+			(D27.f[BSE])[kbse] = c1o216*ConcD*(c1o1 + c3o1*(vx1 - vx2 - vx3) + c9o2*(vx1 - vx2 - vx3)*(vx1 - vx2 - vx3) - cu_sq);
+			(D27.f[TNW])[ktnw] = c1o216*ConcD*(c1o1 + c3o1*(-vx1 + vx2 + vx3) + c9o2*(-vx1 + vx2 + vx3)*(-vx1 + vx2 + vx3) - cu_sq);
 			////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 		}
 	}
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 b7e0549d8..cdbab4710 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompSP27/InitCompSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitCompSP27/InitCompSP27_Device.cu
@@ -41,63 +41,63 @@ extern "C" __global__ void LB_Init_Comp_SP_27(unsigned int* neighborX,
          Distributions27 D;
          if (EvenOrOdd==true)
          {
-            D.f[dirE   ] = &DD[dirE   *size_Mat];
-            D.f[dirW   ] = &DD[dirW   *size_Mat];
-            D.f[dirN   ] = &DD[dirN   *size_Mat];
-            D.f[dirS   ] = &DD[dirS   *size_Mat];
-            D.f[dirT   ] = &DD[dirT   *size_Mat];
-            D.f[dirB   ] = &DD[dirB   *size_Mat];
-            D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-            D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-            D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-            D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-            D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-            D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-            D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-            D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-            D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-            D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-            D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-            D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+            D.f[E   ] = &DD[E   *size_Mat];
+            D.f[W   ] = &DD[W   *size_Mat];
+            D.f[N   ] = &DD[N   *size_Mat];
+            D.f[S   ] = &DD[S   *size_Mat];
+            D.f[T   ] = &DD[T   *size_Mat];
+            D.f[B   ] = &DD[B   *size_Mat];
+            D.f[NE  ] = &DD[NE  *size_Mat];
+            D.f[SW  ] = &DD[SW  *size_Mat];
+            D.f[SE  ] = &DD[SE  *size_Mat];
+            D.f[NW  ] = &DD[NW  *size_Mat];
+            D.f[TE  ] = &DD[TE  *size_Mat];
+            D.f[BW  ] = &DD[BW  *size_Mat];
+            D.f[BE  ] = &DD[BE  *size_Mat];
+            D.f[TW  ] = &DD[TW  *size_Mat];
+            D.f[TN  ] = &DD[TN  *size_Mat];
+            D.f[BS  ] = &DD[BS  *size_Mat];
+            D.f[BN  ] = &DD[BN  *size_Mat];
+            D.f[TS  ] = &DD[TS  *size_Mat];
             D.f[dirREST] = &DD[dirREST*size_Mat];
-            D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-            D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-            D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-            D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-            D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-            D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-            D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-            D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+            D.f[TNE ] = &DD[TNE *size_Mat];
+            D.f[TSW ] = &DD[TSW *size_Mat];
+            D.f[TSE ] = &DD[TSE *size_Mat];
+            D.f[TNW ] = &DD[TNW *size_Mat];
+            D.f[BNE ] = &DD[BNE *size_Mat];
+            D.f[BSW ] = &DD[BSW *size_Mat];
+            D.f[BSE ] = &DD[BSE *size_Mat];
+            D.f[BNW ] = &DD[BNW *size_Mat];
          }
          else
          {
-            D.f[dirW   ] = &DD[dirE   *size_Mat];
-            D.f[dirE   ] = &DD[dirW   *size_Mat];
-            D.f[dirS   ] = &DD[dirN   *size_Mat];
-            D.f[dirN   ] = &DD[dirS   *size_Mat];
-            D.f[dirB   ] = &DD[dirT   *size_Mat];
-            D.f[dirT   ] = &DD[dirB   *size_Mat];
-            D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-            D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-            D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-            D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-            D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-            D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-            D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-            D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-            D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-            D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-            D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-            D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+            D.f[W   ] = &DD[E   *size_Mat];
+            D.f[E   ] = &DD[W   *size_Mat];
+            D.f[S   ] = &DD[N   *size_Mat];
+            D.f[N   ] = &DD[S   *size_Mat];
+            D.f[B   ] = &DD[T   *size_Mat];
+            D.f[T   ] = &DD[B   *size_Mat];
+            D.f[SW  ] = &DD[NE  *size_Mat];
+            D.f[NE  ] = &DD[SW  *size_Mat];
+            D.f[NW  ] = &DD[SE  *size_Mat];
+            D.f[SE  ] = &DD[NW  *size_Mat];
+            D.f[BW  ] = &DD[TE  *size_Mat];
+            D.f[TE  ] = &DD[BW  *size_Mat];
+            D.f[TW  ] = &DD[BE  *size_Mat];
+            D.f[BE  ] = &DD[TW  *size_Mat];
+            D.f[BS  ] = &DD[TN  *size_Mat];
+            D.f[TN  ] = &DD[BS  *size_Mat];
+            D.f[TS  ] = &DD[BN  *size_Mat];
+            D.f[BN  ] = &DD[TS  *size_Mat];
             D.f[dirREST] = &DD[dirREST*size_Mat];
-            D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-            D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-            D.f[dirBNW ] = &DD[dirTSE *size_Mat];
-            D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-            D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-            D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-            D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-            D.f[dirTSE ] = &DD[dirBNW *size_Mat];
+            D.f[BSW ] = &DD[TNE *size_Mat];
+            D.f[BNE ] = &DD[TSW *size_Mat];
+            D.f[BNW ] = &DD[TSE *size_Mat];
+            D.f[BSE ] = &DD[TNW *size_Mat];
+            D.f[TSW ] = &DD[BNE *size_Mat];
+            D.f[TNE ] = &DD[BSW *size_Mat];
+            D.f[TNW ] = &DD[BSE *size_Mat];
+            D.f[TSE ] = &DD[BNW *size_Mat];
          }
          //////////////////////////////////////////////////////////////////////////
          real drho = rho[k];//0.0f;//
@@ -138,32 +138,32 @@ extern "C" __global__ void LB_Init_Comp_SP_27(unsigned int* neighborX,
          real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
          (D.f[dirREST])[kzero] =   c8o27* (drho-cu_sq*(c1o1+drho));
-         (D.f[dirE   ])[ke   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq));
-         (D.f[dirW   ])[kw   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq));
-         (D.f[dirN   ])[kn   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq));
-         (D.f[dirS   ])[ks   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
-         (D.f[dirT   ])[kt   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq));
-         (D.f[dirB   ])[kb   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq));
-         (D.f[dirNE  ])[kne  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
-         (D.f[dirSW  ])[ksw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
-         (D.f[dirSE  ])[kse  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
-         (D.f[dirNW  ])[knw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
-         (D.f[dirTE  ])[kte  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
-         (D.f[dirBW  ])[kbw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
-         (D.f[dirBE  ])[kbe  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
-         (D.f[dirTW  ])[ktw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
-         (D.f[dirTN  ])[ktn  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
-         (D.f[dirBS  ])[kbs  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
-         (D.f[dirBN  ])[kbn  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
-         (D.f[dirTS  ])[kts  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
-         (D.f[dirTNE ])[ktne ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
-         (D.f[dirBSW ])[kbsw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
-         (D.f[dirBNE ])[kbne ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
-         (D.f[dirTSW ])[ktsw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
-         (D.f[dirTSE ])[ktse ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
-         (D.f[dirBNW ])[kbnw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
-         (D.f[dirBSE ])[kbse ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
-         (D.f[dirTNW ])[ktnw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
+         (D.f[E   ])[ke   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq));
+         (D.f[W   ])[kw   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq));
+         (D.f[N   ])[kn   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq));
+         (D.f[S   ])[ks   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
+         (D.f[T   ])[kt   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq));
+         (D.f[B   ])[kb   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq));
+         (D.f[NE  ])[kne  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
+         (D.f[SW  ])[ksw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
+         (D.f[SE  ])[kse  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
+         (D.f[NW  ])[knw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
+         (D.f[TE  ])[kte  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
+         (D.f[BW  ])[kbw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
+         (D.f[BE  ])[kbe  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
+         (D.f[TW  ])[ktw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
+         (D.f[TN  ])[ktn  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
+         (D.f[BS  ])[kbs  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
+         (D.f[BN  ])[kbn  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
+         (D.f[TS  ])[kts  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
+         (D.f[TNE ])[ktne ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
+         (D.f[BSW ])[kbsw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
+         (D.f[BNE ])[kbne ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
+         (D.f[TSW ])[ktsw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
+         (D.f[TSE ])[ktse ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
+         (D.f[BNW ])[kbnw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
+         (D.f[BSE ])[kbse ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
+         (D.f[TNW ])[ktnw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
       }
    }
 }
@@ -214,63 +214,63 @@ extern "C" __global__ void LB_Init_Comp_Neq_SP_27( unsigned int* neighborX,
             Distributions27 D;
             if (EvenOrOdd==true)
             {
-                D.f[dirE   ] = &DD[dirE   *size_Mat];
-                D.f[dirW   ] = &DD[dirW   *size_Mat];
-                D.f[dirN   ] = &DD[dirN   *size_Mat];
-                D.f[dirS   ] = &DD[dirS   *size_Mat];
-                D.f[dirT   ] = &DD[dirT   *size_Mat];
-                D.f[dirB   ] = &DD[dirB   *size_Mat];
-                D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-                D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-                D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-                D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-                D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-                D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-                D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-                D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-                D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-                D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-                D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-                D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+                D.f[E   ] = &DD[E   *size_Mat];
+                D.f[W   ] = &DD[W   *size_Mat];
+                D.f[N   ] = &DD[N   *size_Mat];
+                D.f[S   ] = &DD[S   *size_Mat];
+                D.f[T   ] = &DD[T   *size_Mat];
+                D.f[B   ] = &DD[B   *size_Mat];
+                D.f[NE  ] = &DD[NE  *size_Mat];
+                D.f[SW  ] = &DD[SW  *size_Mat];
+                D.f[SE  ] = &DD[SE  *size_Mat];
+                D.f[NW  ] = &DD[NW  *size_Mat];
+                D.f[TE  ] = &DD[TE  *size_Mat];
+                D.f[BW  ] = &DD[BW  *size_Mat];
+                D.f[BE  ] = &DD[BE  *size_Mat];
+                D.f[TW  ] = &DD[TW  *size_Mat];
+                D.f[TN  ] = &DD[TN  *size_Mat];
+                D.f[BS  ] = &DD[BS  *size_Mat];
+                D.f[BN  ] = &DD[BN  *size_Mat];
+                D.f[TS  ] = &DD[TS  *size_Mat];
                 D.f[dirREST] = &DD[dirREST*size_Mat];
-                D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-                D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-                D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-                D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-                D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-                D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-                D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-                D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+                D.f[TNE ] = &DD[TNE *size_Mat];
+                D.f[TSW ] = &DD[TSW *size_Mat];
+                D.f[TSE ] = &DD[TSE *size_Mat];
+                D.f[TNW ] = &DD[TNW *size_Mat];
+                D.f[BNE ] = &DD[BNE *size_Mat];
+                D.f[BSW ] = &DD[BSW *size_Mat];
+                D.f[BSE ] = &DD[BSE *size_Mat];
+                D.f[BNW ] = &DD[BNW *size_Mat];
             }
             else
             {
-                D.f[dirW   ] = &DD[dirE   *size_Mat];
-                D.f[dirE   ] = &DD[dirW   *size_Mat];
-                D.f[dirS   ] = &DD[dirN   *size_Mat];
-                D.f[dirN   ] = &DD[dirS   *size_Mat];
-                D.f[dirB   ] = &DD[dirT   *size_Mat];
-                D.f[dirT   ] = &DD[dirB   *size_Mat];
-                D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-                D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-                D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-                D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-                D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-                D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-                D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-                D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-                D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-                D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-                D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-                D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+                D.f[W   ] = &DD[E   *size_Mat];
+                D.f[E   ] = &DD[W   *size_Mat];
+                D.f[S   ] = &DD[N   *size_Mat];
+                D.f[N   ] = &DD[S   *size_Mat];
+                D.f[B   ] = &DD[T   *size_Mat];
+                D.f[T   ] = &DD[B   *size_Mat];
+                D.f[SW  ] = &DD[NE  *size_Mat];
+                D.f[NE  ] = &DD[SW  *size_Mat];
+                D.f[NW  ] = &DD[SE  *size_Mat];
+                D.f[SE  ] = &DD[NW  *size_Mat];
+                D.f[BW  ] = &DD[TE  *size_Mat];
+                D.f[TE  ] = &DD[BW  *size_Mat];
+                D.f[TW  ] = &DD[BE  *size_Mat];
+                D.f[BE  ] = &DD[TW  *size_Mat];
+                D.f[BS  ] = &DD[TN  *size_Mat];
+                D.f[TN  ] = &DD[BS  *size_Mat];
+                D.f[TS  ] = &DD[BN  *size_Mat];
+                D.f[BN  ] = &DD[TS  *size_Mat];
                 D.f[dirREST] = &DD[dirREST*size_Mat];
-                D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-                D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-                D.f[dirBNW ] = &DD[dirTSE *size_Mat];
-                D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-                D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-                D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-                D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-                D.f[dirTSE ] = &DD[dirBNW *size_Mat];
+                D.f[BSW ] = &DD[TNE *size_Mat];
+                D.f[BNE ] = &DD[TSW *size_Mat];
+                D.f[BNW ] = &DD[TSE *size_Mat];
+                D.f[BSE ] = &DD[TNW *size_Mat];
+                D.f[TSW ] = &DD[BNE *size_Mat];
+                D.f[TNE ] = &DD[BSW *size_Mat];
+                D.f[TNW ] = &DD[BSE *size_Mat];
+                D.f[TSE ] = &DD[BNW *size_Mat];
             }
             //////////////////////////////////////////////////////////////////////////
             real drho = rho[k];//0.0f;//
@@ -393,62 +393,62 @@ extern "C" __global__ void LB_Init_Comp_Neq_SP_27( unsigned int* neighborX,
             real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
             (D.f[dirREST])[kzero] =   c8o27* (drho-cu_sq*(c1o1+drho));
-            (D.f[dirE   ])[ke   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq));
-            (D.f[dirW   ])[kw   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq));
-            (D.f[dirN   ])[kn   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq));
-            (D.f[dirS   ])[ks   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
-            (D.f[dirT   ])[kt   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq));
-            (D.f[dirB   ])[kb   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq));
-            (D.f[dirNE  ])[kne  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
-            (D.f[dirSW  ])[ksw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
-            (D.f[dirSE  ])[kse  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
-            (D.f[dirNW  ])[knw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
-            (D.f[dirTE  ])[kte  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
-            (D.f[dirBW  ])[kbw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
-            (D.f[dirBE  ])[kbe  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
-            (D.f[dirTW  ])[ktw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
-            (D.f[dirTN  ])[ktn  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
-            (D.f[dirBS  ])[kbs  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
-            (D.f[dirBN  ])[kbn  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
-            (D.f[dirTS  ])[kts  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
-            (D.f[dirTNE ])[ktne ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
-            (D.f[dirBSW ])[kbsw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
-            (D.f[dirBNE ])[kbne ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
-            (D.f[dirTSW ])[ktsw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
-            (D.f[dirTSE ])[ktse ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
-            (D.f[dirBNW ])[kbnw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
-            (D.f[dirBSE ])[kbse ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
-            (D.f[dirTNW ])[ktnw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
+            (D.f[E   ])[ke   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq));
+            (D.f[W   ])[kw   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq));
+            (D.f[N   ])[kn   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq));
+            (D.f[S   ])[ks   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq));
+            (D.f[T   ])[kt   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq));
+            (D.f[B   ])[kb   ] =   c2o27* (drho+ (c1o1+drho) * (c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq));
+            (D.f[NE  ])[kne  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq));
+            (D.f[SW  ])[ksw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq));
+            (D.f[SE  ])[kse  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq));
+            (D.f[NW  ])[knw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq));
+            (D.f[TE  ])[kte  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq));
+            (D.f[BW  ])[kbw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq));
+            (D.f[BE  ])[kbe  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq));
+            (D.f[TW  ])[ktw  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq));
+            (D.f[TN  ])[ktn  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq));
+            (D.f[BS  ])[kbs  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq));
+            (D.f[BN  ])[kbn  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq));
+            (D.f[TS  ])[kts  ] =   c1o54* (drho+ (c1o1+drho) * (c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq));
+            (D.f[TNE ])[ktne ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq));
+            (D.f[BSW ])[kbsw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq));
+            (D.f[BNE ])[kbne ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq));
+            (D.f[TSW ])[ktsw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq));
+            (D.f[TSE ])[ktse ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq));
+            (D.f[BNW ])[kbnw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq));
+            (D.f[BSE ])[kbse ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq));
+            (D.f[TNW ])[ktnw ] =   c1o216*(drho+ (c1o1+drho) * (c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq));
 
             //////////////////////////////////////////////////////////////////////////
 
             (D.f[dirREST])[kzero] += (c1o1+drho) * f_ZERO;
-            (D.f[dirE   ])[ke   ] += (c1o1+drho) * f_E   ;
-            (D.f[dirW   ])[kw   ] += (c1o1+drho) * f_E   ;
-            (D.f[dirN   ])[kn   ] += (c1o1+drho) * f_N   ;
-            (D.f[dirS   ])[ks   ] += (c1o1+drho) * f_N   ;
-            (D.f[dirT   ])[kt   ] += (c1o1+drho) * f_T   ;
-            (D.f[dirB   ])[kb   ] += (c1o1+drho) * f_T   ;
-            (D.f[dirNE  ])[kne  ] += (c1o1+drho) * f_NE  ;
-            (D.f[dirSW  ])[ksw  ] += (c1o1+drho) * f_NE  ;
-            (D.f[dirSE  ])[kse  ] += (c1o1+drho) * f_SE  ;
-            (D.f[dirNW  ])[knw  ] += (c1o1+drho) * f_SE  ;
-            (D.f[dirTE  ])[kte  ] += (c1o1+drho) * f_TE  ;
-            (D.f[dirBW  ])[kbw  ] += (c1o1+drho) * f_TE  ;
-            (D.f[dirBE  ])[kbe  ] += (c1o1+drho) * f_BE  ;
-            (D.f[dirTW  ])[ktw  ] += (c1o1+drho) * f_BE  ;
-            (D.f[dirTN  ])[ktn  ] += (c1o1+drho) * f_TN  ;
-            (D.f[dirBS  ])[kbs  ] += (c1o1+drho) * f_TN  ;
-            (D.f[dirBN  ])[kbn  ] += (c1o1+drho) * f_BN  ;
-            (D.f[dirTS  ])[kts  ] += (c1o1+drho) * f_BN  ;
-            (D.f[dirTNE ])[ktne ] += (c1o1+drho) * f_TNE ;
-            (D.f[dirBSW ])[kbsw ] += (c1o1+drho) * f_TNE ;
-            (D.f[dirBNE ])[kbne ] += (c1o1+drho) * f_TSW ;
-            (D.f[dirTSW ])[ktsw ] += (c1o1+drho) * f_TSW ;
-            (D.f[dirTSE ])[ktse ] += (c1o1+drho) * f_TSE ;
-            (D.f[dirBNW ])[kbnw ] += (c1o1+drho) * f_TSE ;
-            (D.f[dirBSE ])[kbse ] += (c1o1+drho) * f_TNW ;
-            (D.f[dirTNW ])[ktnw ] += (c1o1+drho) * f_TNW ;
+            (D.f[E   ])[ke   ] += (c1o1+drho) * f_E   ;
+            (D.f[W   ])[kw   ] += (c1o1+drho) * f_E   ;
+            (D.f[N   ])[kn   ] += (c1o1+drho) * f_N   ;
+            (D.f[S   ])[ks   ] += (c1o1+drho) * f_N   ;
+            (D.f[T   ])[kt   ] += (c1o1+drho) * f_T   ;
+            (D.f[B   ])[kb   ] += (c1o1+drho) * f_T   ;
+            (D.f[NE  ])[kne  ] += (c1o1+drho) * f_NE  ;
+            (D.f[SW  ])[ksw  ] += (c1o1+drho) * f_NE  ;
+            (D.f[SE  ])[kse  ] += (c1o1+drho) * f_SE  ;
+            (D.f[NW  ])[knw  ] += (c1o1+drho) * f_SE  ;
+            (D.f[TE  ])[kte  ] += (c1o1+drho) * f_TE  ;
+            (D.f[BW  ])[kbw  ] += (c1o1+drho) * f_TE  ;
+            (D.f[BE  ])[kbe  ] += (c1o1+drho) * f_BE  ;
+            (D.f[TW  ])[ktw  ] += (c1o1+drho) * f_BE  ;
+            (D.f[TN  ])[ktn  ] += (c1o1+drho) * f_TN  ;
+            (D.f[BS  ])[kbs  ] += (c1o1+drho) * f_TN  ;
+            (D.f[BN  ])[kbn  ] += (c1o1+drho) * f_BN  ;
+            (D.f[TS  ])[kts  ] += (c1o1+drho) * f_BN  ;
+            (D.f[TNE ])[ktne ] += (c1o1+drho) * f_TNE ;
+            (D.f[BSW ])[kbsw ] += (c1o1+drho) * f_TNE ;
+            (D.f[BNE ])[kbne ] += (c1o1+drho) * f_TSW ;
+            (D.f[TSW ])[ktsw ] += (c1o1+drho) * f_TSW ;
+            (D.f[TSE ])[ktse ] += (c1o1+drho) * f_TSE ;
+            (D.f[BNW ])[kbnw ] += (c1o1+drho) * f_TSE ;
+            (D.f[BSE ])[kbse ] += (c1o1+drho) * f_TNW ;
+            (D.f[TNW ])[ktnw ] += (c1o1+drho) * f_TNW ;
 
             //////////////////////////////////////////////////////////////////////////
         }
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 f69224e72..eb669b175 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitF3/InitF3_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitF3/InitF3_Device.cu
@@ -40,21 +40,21 @@ extern "C" __global__ void LB_Init_F3(unsigned int* neighborX,
 			Distributions6 D;
 			if (EvenOrOdd == true)
 			{
-				D.g[dirE] = &G6[dirE   *size_Mat];
-				D.g[dirW] = &G6[dirW   *size_Mat];
-				D.g[dirN] = &G6[dirN   *size_Mat];
-				D.g[dirS] = &G6[dirS   *size_Mat];
-				D.g[dirT] = &G6[dirT   *size_Mat];
-				D.g[dirB] = &G6[dirB   *size_Mat];
+				D.g[E] = &G6[E   *size_Mat];
+				D.g[W] = &G6[W   *size_Mat];
+				D.g[N] = &G6[N   *size_Mat];
+				D.g[S] = &G6[S   *size_Mat];
+				D.g[T] = &G6[T   *size_Mat];
+				D.g[B] = &G6[B   *size_Mat];
 			}
 			else
 			{
-				D.g[dirW] = &G6[dirE   *size_Mat];
-				D.g[dirE] = &G6[dirW   *size_Mat];
-				D.g[dirS] = &G6[dirN   *size_Mat];
-				D.g[dirN] = &G6[dirS   *size_Mat];
-				D.g[dirB] = &G6[dirT   *size_Mat];
-				D.g[dirT] = &G6[dirB   *size_Mat];
+				D.g[W] = &G6[E   *size_Mat];
+				D.g[E] = &G6[W   *size_Mat];
+				D.g[S] = &G6[N   *size_Mat];
+				D.g[N] = &G6[S   *size_Mat];
+				D.g[B] = &G6[T   *size_Mat];
+				D.g[T] = &G6[B   *size_Mat];
 			}
 			//////////////////////////////////////////////////////////////////////////
 			//index
@@ -68,12 +68,12 @@ extern "C" __global__ void LB_Init_F3(unsigned int* neighborX,
 			unsigned int kb = neighborZ[k];
 			//////////////////////////////////////////////////////////////////////////
 
-			(D.g[dirE])[ke] = 0.0f;
-			(D.g[dirW])[kw] = 0.0f;
-			(D.g[dirN])[kn] = 0.0f;
-			(D.g[dirS])[ks] = 0.0f;
-			(D.g[dirT])[kt] = 0.0f;
-			(D.g[dirB])[kb] = 0.0f;
+			(D.g[E])[ke] = 0.0f;
+			(D.g[W])[kw] = 0.0f;
+			(D.g[N])[kn] = 0.0f;
+			(D.g[S])[ks] = 0.0f;
+			(D.g[T])[kt] = 0.0f;
+			(D.g[B])[kb] = 0.0f;
 		}
 	}
 }
\ No newline at end of file
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 71e4cbc1c..010ded1be 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD27/InitIncompAD27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitIncompAD27/InitIncompAD27_Device.cu
@@ -39,63 +39,63 @@ extern "C" __global__ void LB_Init_Incomp_AD_27(unsigned int* neighborX,
          Distributions27 D27;
          if (EvenOrOdd==true)
          {
-            D27.f[dirE   ] = &DD27[dirE   *size_Mat];
-            D27.f[dirW   ] = &DD27[dirW   *size_Mat];
-            D27.f[dirN   ] = &DD27[dirN   *size_Mat];
-            D27.f[dirS   ] = &DD27[dirS   *size_Mat];
-            D27.f[dirT   ] = &DD27[dirT   *size_Mat];
-            D27.f[dirB   ] = &DD27[dirB   *size_Mat];
-            D27.f[dirNE  ] = &DD27[dirNE  *size_Mat];
-            D27.f[dirSW  ] = &DD27[dirSW  *size_Mat];
-            D27.f[dirSE  ] = &DD27[dirSE  *size_Mat];
-            D27.f[dirNW  ] = &DD27[dirNW  *size_Mat];
-            D27.f[dirTE  ] = &DD27[dirTE  *size_Mat];
-            D27.f[dirBW  ] = &DD27[dirBW  *size_Mat];
-            D27.f[dirBE  ] = &DD27[dirBE  *size_Mat];
-            D27.f[dirTW  ] = &DD27[dirTW  *size_Mat];
-            D27.f[dirTN  ] = &DD27[dirTN  *size_Mat];
-            D27.f[dirBS  ] = &DD27[dirBS  *size_Mat];
-            D27.f[dirBN  ] = &DD27[dirBN  *size_Mat];
-            D27.f[dirTS  ] = &DD27[dirTS  *size_Mat];
+            D27.f[E   ] = &DD27[E   *size_Mat];
+            D27.f[W   ] = &DD27[W   *size_Mat];
+            D27.f[N   ] = &DD27[N   *size_Mat];
+            D27.f[S   ] = &DD27[S   *size_Mat];
+            D27.f[T   ] = &DD27[T   *size_Mat];
+            D27.f[B   ] = &DD27[B   *size_Mat];
+            D27.f[NE  ] = &DD27[NE  *size_Mat];
+            D27.f[SW  ] = &DD27[SW  *size_Mat];
+            D27.f[SE  ] = &DD27[SE  *size_Mat];
+            D27.f[NW  ] = &DD27[NW  *size_Mat];
+            D27.f[TE  ] = &DD27[TE  *size_Mat];
+            D27.f[BW  ] = &DD27[BW  *size_Mat];
+            D27.f[BE  ] = &DD27[BE  *size_Mat];
+            D27.f[TW  ] = &DD27[TW  *size_Mat];
+            D27.f[TN  ] = &DD27[TN  *size_Mat];
+            D27.f[BS  ] = &DD27[BS  *size_Mat];
+            D27.f[BN  ] = &DD27[BN  *size_Mat];
+            D27.f[TS  ] = &DD27[TS  *size_Mat];
             D27.f[dirREST] = &DD27[dirREST*size_Mat];
-            D27.f[dirTNE ] = &DD27[dirTNE *size_Mat];
-            D27.f[dirTSW ] = &DD27[dirTSW *size_Mat];
-            D27.f[dirTSE ] = &DD27[dirTSE *size_Mat];
-            D27.f[dirTNW ] = &DD27[dirTNW *size_Mat];
-            D27.f[dirBNE ] = &DD27[dirBNE *size_Mat];
-            D27.f[dirBSW ] = &DD27[dirBSW *size_Mat];
-            D27.f[dirBSE ] = &DD27[dirBSE *size_Mat];
-            D27.f[dirBNW ] = &DD27[dirBNW *size_Mat];
+            D27.f[TNE ] = &DD27[TNE *size_Mat];
+            D27.f[TSW ] = &DD27[TSW *size_Mat];
+            D27.f[TSE ] = &DD27[TSE *size_Mat];
+            D27.f[TNW ] = &DD27[TNW *size_Mat];
+            D27.f[BNE ] = &DD27[BNE *size_Mat];
+            D27.f[BSW ] = &DD27[BSW *size_Mat];
+            D27.f[BSE ] = &DD27[BSE *size_Mat];
+            D27.f[BNW ] = &DD27[BNW *size_Mat];
          }
          else
          {
-            D27.f[dirW   ] = &DD27[dirE   *size_Mat];
-            D27.f[dirE   ] = &DD27[dirW   *size_Mat];
-            D27.f[dirS   ] = &DD27[dirN   *size_Mat];
-            D27.f[dirN   ] = &DD27[dirS   *size_Mat];
-            D27.f[dirB   ] = &DD27[dirT   *size_Mat];
-            D27.f[dirT   ] = &DD27[dirB   *size_Mat];
-            D27.f[dirSW  ] = &DD27[dirNE  *size_Mat];
-            D27.f[dirNE  ] = &DD27[dirSW  *size_Mat];
-            D27.f[dirNW  ] = &DD27[dirSE  *size_Mat];
-            D27.f[dirSE  ] = &DD27[dirNW  *size_Mat];
-            D27.f[dirBW  ] = &DD27[dirTE  *size_Mat];
-            D27.f[dirTE  ] = &DD27[dirBW  *size_Mat];
-            D27.f[dirTW  ] = &DD27[dirBE  *size_Mat];
-            D27.f[dirBE  ] = &DD27[dirTW  *size_Mat];
-            D27.f[dirBS  ] = &DD27[dirTN  *size_Mat];
-            D27.f[dirTN  ] = &DD27[dirBS  *size_Mat];
-            D27.f[dirTS  ] = &DD27[dirBN  *size_Mat];
-            D27.f[dirBN  ] = &DD27[dirTS  *size_Mat];
+            D27.f[W   ] = &DD27[E   *size_Mat];
+            D27.f[E   ] = &DD27[W   *size_Mat];
+            D27.f[S   ] = &DD27[N   *size_Mat];
+            D27.f[N   ] = &DD27[S   *size_Mat];
+            D27.f[B   ] = &DD27[T   *size_Mat];
+            D27.f[T   ] = &DD27[B   *size_Mat];
+            D27.f[SW  ] = &DD27[NE  *size_Mat];
+            D27.f[NE  ] = &DD27[SW  *size_Mat];
+            D27.f[NW  ] = &DD27[SE  *size_Mat];
+            D27.f[SE  ] = &DD27[NW  *size_Mat];
+            D27.f[BW  ] = &DD27[TE  *size_Mat];
+            D27.f[TE  ] = &DD27[BW  *size_Mat];
+            D27.f[TW  ] = &DD27[BE  *size_Mat];
+            D27.f[BE  ] = &DD27[TW  *size_Mat];
+            D27.f[BS  ] = &DD27[TN  *size_Mat];
+            D27.f[TN  ] = &DD27[BS  *size_Mat];
+            D27.f[TS  ] = &DD27[BN  *size_Mat];
+            D27.f[BN  ] = &DD27[TS  *size_Mat];
             D27.f[dirREST] = &DD27[dirREST*size_Mat];
-            D27.f[dirBSW ] = &DD27[dirTNE *size_Mat];
-            D27.f[dirBNE ] = &DD27[dirTSW *size_Mat];
-            D27.f[dirBNW ] = &DD27[dirTSE *size_Mat];
-            D27.f[dirBSE ] = &DD27[dirTNW *size_Mat];
-            D27.f[dirTSW ] = &DD27[dirBNE *size_Mat];
-            D27.f[dirTNE ] = &DD27[dirBSW *size_Mat];
-            D27.f[dirTNW ] = &DD27[dirBSE *size_Mat];
-            D27.f[dirTSE ] = &DD27[dirBNW *size_Mat];
+            D27.f[BSW ] = &DD27[TNE *size_Mat];
+            D27.f[BNE ] = &DD27[TSW *size_Mat];
+            D27.f[BNW ] = &DD27[TSE *size_Mat];
+            D27.f[BSE ] = &DD27[TNW *size_Mat];
+            D27.f[TSW ] = &DD27[BNE *size_Mat];
+            D27.f[TNE ] = &DD27[BSW *size_Mat];
+            D27.f[TNW ] = &DD27[BSE *size_Mat];
+            D27.f[TSE ] = &DD27[BNW *size_Mat];
          }
          //////////////////////////////////////////////////////////////////////////
          real ConcD = Conc[k];
@@ -140,32 +140,32 @@ extern "C" __global__ void LB_Init_Incomp_AD_27(unsigned int* neighborX,
          real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
          (D27.f[dirREST])[kzero] =   c8o27* ConcD*(c1o1-cu_sq);
-         (D27.f[dirE   ])[ke   ] =   c2o27* ConcD*(c1o1+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
-         (D27.f[dirW   ])[kw   ] =   c2o27* ConcD*(c1o1+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
-         (D27.f[dirN   ])[kn   ] =   c2o27* ConcD*(c1o1+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
-         (D27.f[dirS   ])[ks   ] =   c2o27* ConcD*(c1o1+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
-         (D27.f[dirT   ])[kt   ] =   c2o27* ConcD*(c1o1+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
-         (D27.f[dirB   ])[kb   ] =   c2o27* ConcD*(c1o1+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
-         (D27.f[dirNE  ])[kne  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
-         (D27.f[dirSW  ])[ksw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
-         (D27.f[dirSE  ])[kse  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
-         (D27.f[dirNW  ])[knw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
-         (D27.f[dirTE  ])[kte  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
-         (D27.f[dirBW  ])[kbw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
-         (D27.f[dirBE  ])[kbe  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
-         (D27.f[dirTW  ])[ktw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
-         (D27.f[dirTN  ])[ktn  ] =   c1o54* ConcD*(c1o1+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
-         (D27.f[dirBS  ])[kbs  ] =   c1o54* ConcD*(c1o1+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
-         (D27.f[dirBN  ])[kbn  ] =   c1o54* ConcD*(c1o1+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
-         (D27.f[dirTS  ])[kts  ] =   c1o54* ConcD*(c1o1+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
-         (D27.f[dirTNE ])[ktne ] =   c1o216*ConcD*(c1o1+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
-         (D27.f[dirBSW ])[kbsw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
-         (D27.f[dirBNE ])[kbne ] =   c1o216*ConcD*(c1o1+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
-         (D27.f[dirTSW ])[ktsw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
-         (D27.f[dirTSE ])[ktse ] =   c1o216*ConcD*(c1o1+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
-         (D27.f[dirBNW ])[kbnw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
-         (D27.f[dirBSE ])[kbse ] =   c1o216*ConcD*(c1o1+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
-         (D27.f[dirTNW ])[ktnw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
+         (D27.f[E   ])[ke   ] =   c2o27* ConcD*(c1o1+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
+         (D27.f[W   ])[kw   ] =   c2o27* ConcD*(c1o1+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
+         (D27.f[N   ])[kn   ] =   c2o27* ConcD*(c1o1+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
+         (D27.f[S   ])[ks   ] =   c2o27* ConcD*(c1o1+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
+         (D27.f[T   ])[kt   ] =   c2o27* ConcD*(c1o1+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
+         (D27.f[B   ])[kb   ] =   c2o27* ConcD*(c1o1+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
+         (D27.f[NE  ])[kne  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
+         (D27.f[SW  ])[ksw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
+         (D27.f[SE  ])[kse  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
+         (D27.f[NW  ])[knw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
+         (D27.f[TE  ])[kte  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
+         (D27.f[BW  ])[kbw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
+         (D27.f[BE  ])[kbe  ] =   c1o54* ConcD*(c1o1+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
+         (D27.f[TW  ])[ktw  ] =   c1o54* ConcD*(c1o1+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
+         (D27.f[TN  ])[ktn  ] =   c1o54* ConcD*(c1o1+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
+         (D27.f[BS  ])[kbs  ] =   c1o54* ConcD*(c1o1+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
+         (D27.f[BN  ])[kbn  ] =   c1o54* ConcD*(c1o1+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
+         (D27.f[TS  ])[kts  ] =   c1o54* ConcD*(c1o1+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
+         (D27.f[TNE ])[ktne ] =   c1o216*ConcD*(c1o1+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
+         (D27.f[BSW ])[kbsw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
+         (D27.f[BNE ])[kbne ] =   c1o216*ConcD*(c1o1+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
+         (D27.f[TSW ])[ktsw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
+         (D27.f[TSE ])[ktse ] =   c1o216*ConcD*(c1o1+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
+         (D27.f[BNW ])[kbnw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
+         (D27.f[BSE ])[kbse ] =   c1o216*ConcD*(c1o1+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
+         (D27.f[TNW ])[ktnw ] =   c1o216*ConcD*(c1o1+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
          ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       }
    }
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 9b2e3d150..36af23a1b 100644
--- a/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitSP27/InitSP27_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/PreProcessor/PreProcessorStrategy/InitSP27/InitSP27_Device.cu
@@ -39,63 +39,63 @@ extern "C" __global__ void LB_Init_SP_27(unsigned int* neighborX,
          Distributions27 D;
          if (EvenOrOdd==true)
          {
-            D.f[dirE   ] = &DD[dirE   *size_Mat];
-            D.f[dirW   ] = &DD[dirW   *size_Mat];
-            D.f[dirN   ] = &DD[dirN   *size_Mat];
-            D.f[dirS   ] = &DD[dirS   *size_Mat];
-            D.f[dirT   ] = &DD[dirT   *size_Mat];
-            D.f[dirB   ] = &DD[dirB   *size_Mat];
-            D.f[dirNE  ] = &DD[dirNE  *size_Mat];
-            D.f[dirSW  ] = &DD[dirSW  *size_Mat];
-            D.f[dirSE  ] = &DD[dirSE  *size_Mat];
-            D.f[dirNW  ] = &DD[dirNW  *size_Mat];
-            D.f[dirTE  ] = &DD[dirTE  *size_Mat];
-            D.f[dirBW  ] = &DD[dirBW  *size_Mat];
-            D.f[dirBE  ] = &DD[dirBE  *size_Mat];
-            D.f[dirTW  ] = &DD[dirTW  *size_Mat];
-            D.f[dirTN  ] = &DD[dirTN  *size_Mat];
-            D.f[dirBS  ] = &DD[dirBS  *size_Mat];
-            D.f[dirBN  ] = &DD[dirBN  *size_Mat];
-            D.f[dirTS  ] = &DD[dirTS  *size_Mat];
+            D.f[E   ] = &DD[E   *size_Mat];
+            D.f[W   ] = &DD[W   *size_Mat];
+            D.f[N   ] = &DD[N   *size_Mat];
+            D.f[S   ] = &DD[S   *size_Mat];
+            D.f[T   ] = &DD[T   *size_Mat];
+            D.f[B   ] = &DD[B   *size_Mat];
+            D.f[NE  ] = &DD[NE  *size_Mat];
+            D.f[SW  ] = &DD[SW  *size_Mat];
+            D.f[SE  ] = &DD[SE  *size_Mat];
+            D.f[NW  ] = &DD[NW  *size_Mat];
+            D.f[TE  ] = &DD[TE  *size_Mat];
+            D.f[BW  ] = &DD[BW  *size_Mat];
+            D.f[BE  ] = &DD[BE  *size_Mat];
+            D.f[TW  ] = &DD[TW  *size_Mat];
+            D.f[TN  ] = &DD[TN  *size_Mat];
+            D.f[BS  ] = &DD[BS  *size_Mat];
+            D.f[BN  ] = &DD[BN  *size_Mat];
+            D.f[TS  ] = &DD[TS  *size_Mat];
             D.f[dirREST] = &DD[dirREST*size_Mat];
-            D.f[dirTNE ] = &DD[dirTNE *size_Mat];
-            D.f[dirTSW ] = &DD[dirTSW *size_Mat];
-            D.f[dirTSE ] = &DD[dirTSE *size_Mat];
-            D.f[dirTNW ] = &DD[dirTNW *size_Mat];
-            D.f[dirBNE ] = &DD[dirBNE *size_Mat];
-            D.f[dirBSW ] = &DD[dirBSW *size_Mat];
-            D.f[dirBSE ] = &DD[dirBSE *size_Mat];
-            D.f[dirBNW ] = &DD[dirBNW *size_Mat];
+            D.f[TNE ] = &DD[TNE *size_Mat];
+            D.f[TSW ] = &DD[TSW *size_Mat];
+            D.f[TSE ] = &DD[TSE *size_Mat];
+            D.f[TNW ] = &DD[TNW *size_Mat];
+            D.f[BNE ] = &DD[BNE *size_Mat];
+            D.f[BSW ] = &DD[BSW *size_Mat];
+            D.f[BSE ] = &DD[BSE *size_Mat];
+            D.f[BNW ] = &DD[BNW *size_Mat];
          }
          else
          {
-            D.f[dirW   ] = &DD[dirE   *size_Mat];
-            D.f[dirE   ] = &DD[dirW   *size_Mat];
-            D.f[dirS   ] = &DD[dirN   *size_Mat];
-            D.f[dirN   ] = &DD[dirS   *size_Mat];
-            D.f[dirB   ] = &DD[dirT   *size_Mat];
-            D.f[dirT   ] = &DD[dirB   *size_Mat];
-            D.f[dirSW  ] = &DD[dirNE  *size_Mat];
-            D.f[dirNE  ] = &DD[dirSW  *size_Mat];
-            D.f[dirNW  ] = &DD[dirSE  *size_Mat];
-            D.f[dirSE  ] = &DD[dirNW  *size_Mat];
-            D.f[dirBW  ] = &DD[dirTE  *size_Mat];
-            D.f[dirTE  ] = &DD[dirBW  *size_Mat];
-            D.f[dirTW  ] = &DD[dirBE  *size_Mat];
-            D.f[dirBE  ] = &DD[dirTW  *size_Mat];
-            D.f[dirBS  ] = &DD[dirTN  *size_Mat];
-            D.f[dirTN  ] = &DD[dirBS  *size_Mat];
-            D.f[dirTS  ] = &DD[dirBN  *size_Mat];
-            D.f[dirBN  ] = &DD[dirTS  *size_Mat];
+            D.f[W   ] = &DD[E   *size_Mat];
+            D.f[E   ] = &DD[W   *size_Mat];
+            D.f[S   ] = &DD[N   *size_Mat];
+            D.f[N   ] = &DD[S   *size_Mat];
+            D.f[B   ] = &DD[T   *size_Mat];
+            D.f[T   ] = &DD[B   *size_Mat];
+            D.f[SW  ] = &DD[NE  *size_Mat];
+            D.f[NE  ] = &DD[SW  *size_Mat];
+            D.f[NW  ] = &DD[SE  *size_Mat];
+            D.f[SE  ] = &DD[NW  *size_Mat];
+            D.f[BW  ] = &DD[TE  *size_Mat];
+            D.f[TE  ] = &DD[BW  *size_Mat];
+            D.f[TW  ] = &DD[BE  *size_Mat];
+            D.f[BE  ] = &DD[TW  *size_Mat];
+            D.f[BS  ] = &DD[TN  *size_Mat];
+            D.f[TN  ] = &DD[BS  *size_Mat];
+            D.f[TS  ] = &DD[BN  *size_Mat];
+            D.f[BN  ] = &DD[TS  *size_Mat];
             D.f[dirREST] = &DD[dirREST*size_Mat];
-            D.f[dirBSW ] = &DD[dirTNE *size_Mat];
-            D.f[dirBNE ] = &DD[dirTSW *size_Mat];
-            D.f[dirBNW ] = &DD[dirTSE *size_Mat];
-            D.f[dirBSE ] = &DD[dirTNW *size_Mat];
-            D.f[dirTSW ] = &DD[dirBNE *size_Mat];
-            D.f[dirTNE ] = &DD[dirBSW *size_Mat];
-            D.f[dirTNW ] = &DD[dirBSE *size_Mat];
-            D.f[dirTSE ] = &DD[dirBNW *size_Mat];
+            D.f[BSW ] = &DD[TNE *size_Mat];
+            D.f[BNE ] = &DD[TSW *size_Mat];
+            D.f[BNW ] = &DD[TSE *size_Mat];
+            D.f[BSE ] = &DD[TNW *size_Mat];
+            D.f[TSW ] = &DD[BNE *size_Mat];
+            D.f[TNE ] = &DD[BSW *size_Mat];
+            D.f[TNW ] = &DD[BSE *size_Mat];
+            D.f[TSE ] = &DD[BNW *size_Mat];
          }
          //////////////////////////////////////////////////////////////////////////
          real drho = rho[k];//0.0f;//
@@ -136,32 +136,32 @@ extern "C" __global__ void LB_Init_SP_27(unsigned int* neighborX,
          real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3);
 
          (D.f[dirREST])[kzero] =   c8o27* (drho-cu_sq);
-         (D.f[dirE   ])[ke   ] =   c2o27* (drho+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
-         (D.f[dirW   ])[kw   ] =   c2o27* (drho+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
-         (D.f[dirN   ])[kn   ] =   c2o27* (drho+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
-         (D.f[dirS   ])[ks   ] =   c2o27* (drho+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
-         (D.f[dirT   ])[kt   ] =   c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
-         (D.f[dirB   ])[kb   ] =   c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
-         (D.f[dirNE  ])[kne  ] =   c1o54* (drho+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
-         (D.f[dirSW  ])[ksw  ] =   c1o54* (drho+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
-         (D.f[dirSE  ])[kse  ] =   c1o54* (drho+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
-         (D.f[dirNW  ])[knw  ] =   c1o54* (drho+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
-         (D.f[dirTE  ])[kte  ] =   c1o54* (drho+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
-         (D.f[dirBW  ])[kbw  ] =   c1o54* (drho+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
-         (D.f[dirBE  ])[kbe  ] =   c1o54* (drho+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
-         (D.f[dirTW  ])[ktw  ] =   c1o54* (drho+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
-         (D.f[dirTN  ])[ktn  ] =   c1o54* (drho+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
-         (D.f[dirBS  ])[kbs  ] =   c1o54* (drho+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
-         (D.f[dirBN  ])[kbn  ] =   c1o54* (drho+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
-         (D.f[dirTS  ])[kts  ] =   c1o54* (drho+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
-         (D.f[dirTNE ])[ktne ] =   c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
-         (D.f[dirBSW ])[kbsw ] =   c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
-         (D.f[dirBNE ])[kbne ] =   c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
-         (D.f[dirTSW ])[ktsw ] =   c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
-         (D.f[dirTSE ])[ktse ] =   c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
-         (D.f[dirBNW ])[kbnw ] =   c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
-         (D.f[dirBSE ])[kbse ] =   c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
-         (D.f[dirTNW ])[ktnw ] =   c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
+         (D.f[E   ])[ke   ] =   c2o27* (drho+c3o1*( vx1        )+c9o2*( vx1        )*( vx1        )-cu_sq);
+         (D.f[W   ])[kw   ] =   c2o27* (drho+c3o1*(-vx1        )+c9o2*(-vx1        )*(-vx1        )-cu_sq);
+         (D.f[N   ])[kn   ] =   c2o27* (drho+c3o1*(    vx2     )+c9o2*(     vx2    )*(     vx2    )-cu_sq);
+         (D.f[S   ])[ks   ] =   c2o27* (drho+c3o1*(   -vx2     )+c9o2*(    -vx2    )*(    -vx2    )-cu_sq);
+         (D.f[T   ])[kt   ] =   c2o27* (drho+c3o1*(         vx3)+c9o2*(         vx3)*(         vx3)-cu_sq);
+         (D.f[B   ])[kb   ] =   c2o27* (drho+c3o1*(        -vx3)+c9o2*(        -vx3)*(        -vx3)-cu_sq);
+         (D.f[NE  ])[kne  ] =   c1o54* (drho+c3o1*( vx1+vx2    )+c9o2*( vx1+vx2    )*( vx1+vx2    )-cu_sq);
+         (D.f[SW  ])[ksw  ] =   c1o54* (drho+c3o1*(-vx1-vx2    )+c9o2*(-vx1-vx2    )*(-vx1-vx2    )-cu_sq);
+         (D.f[SE  ])[kse  ] =   c1o54* (drho+c3o1*( vx1-vx2    )+c9o2*( vx1-vx2    )*( vx1-vx2    )-cu_sq);
+         (D.f[NW  ])[knw  ] =   c1o54* (drho+c3o1*(-vx1+vx2    )+c9o2*(-vx1+vx2    )*(-vx1+vx2    )-cu_sq);
+         (D.f[TE  ])[kte  ] =   c1o54* (drho+c3o1*( vx1    +vx3)+c9o2*( vx1    +vx3)*( vx1    +vx3)-cu_sq);
+         (D.f[BW  ])[kbw  ] =   c1o54* (drho+c3o1*(-vx1    -vx3)+c9o2*(-vx1    -vx3)*(-vx1    -vx3)-cu_sq);
+         (D.f[BE  ])[kbe  ] =   c1o54* (drho+c3o1*( vx1    -vx3)+c9o2*( vx1    -vx3)*( vx1    -vx3)-cu_sq);
+         (D.f[TW  ])[ktw  ] =   c1o54* (drho+c3o1*(-vx1    +vx3)+c9o2*(-vx1    +vx3)*(-vx1    +vx3)-cu_sq);
+         (D.f[TN  ])[ktn  ] =   c1o54* (drho+c3o1*(     vx2+vx3)+c9o2*(     vx2+vx3)*(     vx2+vx3)-cu_sq);
+         (D.f[BS  ])[kbs  ] =   c1o54* (drho+c3o1*(    -vx2-vx3)+c9o2*(    -vx2-vx3)*(    -vx2-vx3)-cu_sq);
+         (D.f[BN  ])[kbn  ] =   c1o54* (drho+c3o1*(     vx2-vx3)+c9o2*(     vx2-vx3)*(     vx2-vx3)-cu_sq);
+         (D.f[TS  ])[kts  ] =   c1o54* (drho+c3o1*(    -vx2+vx3)+c9o2*(    -vx2+vx3)*(    -vx2+vx3)-cu_sq);
+         (D.f[TNE ])[ktne ] =   c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq);
+         (D.f[BSW ])[kbsw ] =   c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq);
+         (D.f[BNE ])[kbne ] =   c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq);
+         (D.f[TSW ])[ktsw ] =   c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq);
+         (D.f[TSE ])[ktse ] =   c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq);
+         (D.f[BNW ])[kbnw ] =   c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq);
+         (D.f[BSE ])[kbse ] =   c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq);
+         (D.f[TNW ])[ktnw ] =   c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq);
       }
 	  else
 	  {
-- 
GitLab