diff --git a/apps/cpu/PoiseuilleFlow/pf1.cpp b/apps/cpu/PoiseuilleFlow/pf1.cpp
index 25f86a206466023439abafefbed503a9b4a9f23d..99600ceb994e505798fa777a49c39e01a1fecb2a 100644
--- a/apps/cpu/PoiseuilleFlow/pf1.cpp
+++ b/apps/cpu/PoiseuilleFlow/pf1.cpp
@@ -11,7 +11,7 @@ void pf1()
    int myid = comm->getProcessID();
 
    //parameters
-   string          pathOut = "/gfs1/work/niikonst/pflow_pipe_forcing";
+   string          pathOut = "d:/temp/test_dir_naming";  //"/gfs1/work/niikonst/pflow_pipe_forcing";
    int             numOfThreads = 1;
    int             blocknx[3] ={ 10,10,10 };
    double          endTime = 10;
@@ -27,12 +27,12 @@ void pf1()
 
    //simulation bounding box
    double g_minX1 = 0.0;
-   double g_minX2 = -50.0;
-   double g_minX3 = -50.0;
+   double g_minX2 = -10.0;
+   double g_minX3 = -10.0;
 
-   double g_maxX1 = 2000;
-   double g_maxX2 = 50;
-   double g_maxX3 = 50;
+   double g_maxX1 = 50;
+   double g_maxX2 = 10;
+   double g_maxX3 = 10;
 
    //Sleep(15000);
 
@@ -169,11 +169,11 @@ void pf1()
 
    //grid=SPtr<Grid3D>(new Grid3D(comm));
    //restartCoProcessor->restart(200);
-   SPtr<MPIIOMigrationBECoProcessor> migCoProcessor(new MPIIOMigrationBECoProcessor(grid, mSch, metisVisitor, pathOut + "/mig", comm));
-   migCoProcessor->setLBMKernel(kernel);
-   migCoProcessor->setBCProcessor(bcProc);
-   migCoProcessor->setNu(nuLB);
-   migCoProcessor->restart(10);
+   //SPtr<MPIIOMigrationBECoProcessor> migCoProcessor(new MPIIOMigrationBECoProcessor(grid, mSch, metisVisitor, pathOut + "/mig", comm));
+   //migCoProcessor->setLBMKernel(kernel);
+   //migCoProcessor->setBCProcessor(bcProc);
+   //migCoProcessor->setNu(nuLB);
+   //migCoProcessor->restart(10);
 
    ppblocks->process(1);
 
@@ -192,7 +192,7 @@ void pf1()
    SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime));
    calculator->addCoProcessor(npr);
    calculator->addCoProcessor(writeMQCoProcessor);
-   calculator->addCoProcessor(migCoProcessor);
+   //calculator->addCoProcessor(migCoProcessor);
    //calculator->addCoProcessor(restartCoProcessor);
 
    if (myid == 0) UBLOG(logINFO, "Simulation-start");
diff --git a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp
index 105603b35d043799672a58fda83ba503af70b703..b82616cbcd06de1dbdfb8d991a18266ee354e483 100644
--- a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp
@@ -6,11 +6,17 @@ namespace D3Q27System
 {
 using namespace UbMath;
 
-// index            0   1   2   3   4   5  6   7   8   9   10  11  12  13  14  15  16  17  18  20  21  22  23  24  25  26
+// index            0   1   2   3   4   5  6   7   8   9   10  11  12  13  14  15  16  17   18  19  20  21  22  23  24  25
 // f:               E,  W,  N,  S,  T,  B, NE, SW, SE, NW, TE, BW, BE, TW, TN, BS, BN, TS, TNE TNW TSE TSW BNE BNW BSE BSW
-const int DX1[] = { 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1 };
-const int DX2[] = { 0, 0, 1, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1 };
-const int DX3[] = { 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1 };
+//const int DX1[] = { 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1 };
+//const int DX2[] = { 0, 0, 1, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1 };
+//const int DX3[] = { 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1 };
+
+// index            0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18   19  20  21  22  23  24  25  26
+// f:             REST, E,  W,  N,  S,  T,  B, NE, SW, SE, NW, TE, BW, BE, TW, TN, BS, BN, TS, TNE TNW TSE TSW BNE BNW BSE BSW
+const int DX1[] = { 0,  1, -1,  0,  0,  0,  0,  1, -1,  1, -1,  1, -1,  1, -1,  0,  0,  0,  0,   1, -1,  1, -1,  1, -1,  1, -1 };
+const int DX2[] = { 0,  0,  0,  1, -1,  0,  0,  1, -1, -1,  1,  0,  0,  0,  0,  1, -1,  1, -1,   1,  1, -1, -1,  1,  1, -1, -1 };
+const int DX3[] = { 0,  0,  0,  0,  0,  1, -1,  0,  0,  0,  0,  1, -1, -1,  1,  1, -1, -1,  1,   1,  1,  1,  1, -1, -1, -1, -1 };
 
 const double WEIGTH[] = { c2o27,  c2o27,  c2o27,  c2o27,  c2o27,  c2o27,  c1o54,  c1o54,  c1o54,
                           c1o54,  c1o54,  c1o54,  c1o54,  c1o54,  c1o54,  c1o54,  c1o54,  c1o54,
diff --git a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h
index 04fe8a819b143db8cc935fc893faa514805060a6..edfb903c1a5748b13d086bdd72c16b75368d3beb 100644
--- a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h
+++ b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h
@@ -48,14 +48,14 @@ namespace D3Q27System
 {
 //////////////////////////////////////////////////////////////////////////
 // DIRECTION STUFF
-static const int FSTARTDIR = 0;
-static const int FENDDIR   = 25; // D3Q27
+static const int FSTARTDIR = 1;
+static const int FENDDIR   = 26; // D3Q27
 
 static const int STARTF = 0;
 static const int ENDF   = 26; // D3Q27
 
-static const int STARTDIR = 0;
-static const int ENDDIR   = 26; // all geometric directions
+static const int STARTDIR = 1; //0
+static const int ENDDIR   = 27;//26 // all geometric directions
 
 extern const int DX1[ENDDIR + 1];
 extern const int DX2[ENDDIR + 1];
@@ -64,33 +64,61 @@ extern const double WEIGTH[ENDDIR + 1];
 
 extern const double cNorm[3][ENDDIR];
 
-static const int E    = 0;
-static const int W    = 1;
-static const int N    = 2;
-static const int S    = 3;
-static const int T    = 4;
-static const int B    = 5;
-static const int NE   = 6;
-static const int SW   = 7;
-static const int SE   = 8;
-static const int NW   = 9;
-static const int TE   = 10;
-static const int BW   = 11;
-static const int BE   = 12;
-static const int TW   = 13;
-static const int TN   = 14;
-static const int BS   = 15;
-static const int BN   = 16;
-static const int TS   = 17;
-static const int TNE  = 18;
-static const int TNW  = 19;
-static const int TSE  = 20;
-static const int TSW  = 21;
-static const int BNE  = 22;
-static const int BNW  = 23;
-static const int BSE  = 24;
-static const int BSW  = 25;
-static const int REST = 26;
+//static const int E    = 0;
+//static const int W    = 1;
+//static const int N    = 2;
+//static const int S    = 3;
+//static const int T    = 4;
+//static const int B    = 5;
+//static const int NE   = 6;
+//static const int SW   = 7;
+//static const int SE   = 8;
+//static const int NW   = 9;
+//static const int TE   = 10;
+//static const int BW   = 11;
+//static const int BE   = 12;
+//static const int TW   = 13;
+//static const int TN   = 14;
+//static const int BS   = 15;
+//static const int BN   = 16;
+//static const int TS   = 17;
+//static const int TNE  = 18;
+//static const int TNW  = 19;
+//static const int TSE  = 20;
+//static const int TSW  = 21;
+//static const int BNE  = 22;
+//static const int BNW  = 23;
+//static const int BSE  = 24;
+//static const int BSW  = 25;
+//static const int REST = 26;
+
+static constexpr int REST = 0;
+static constexpr int E = 1;
+static constexpr int W = 2;
+static constexpr int N = 3;
+static constexpr int S = 4;
+static constexpr int T = 5;
+static constexpr int B = 6;
+static constexpr int NE = 7;
+static constexpr int SW = 8;
+static constexpr int SE = 9;
+static constexpr int NW = 10;
+static constexpr int TE = 11;
+static constexpr int BW = 12;
+static constexpr int BE = 13;
+static constexpr int TW = 14;
+static constexpr int TN = 15;
+static constexpr int BS = 16;
+static constexpr int BN = 17;
+static constexpr int TS = 18;
+static constexpr int TNE = 19;
+static constexpr int TNW = 20;
+static constexpr int TSE = 21;
+static constexpr int TSW = 22;
+static constexpr int BNE = 23;
+static constexpr int BNW = 24;
+static constexpr int BSE = 25;
+static constexpr int BSW = 26;
 
 static const int INV_E   = W;
 static const int INV_W   = E;
diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetConnectorsBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/SetConnectorsBlockVisitor.h
index f39a95afc23e5351e0331f789a0e22ae5ff5ccf2..91f18e7292e8ef28cac159fb45aae485529e3f79 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/SetConnectorsBlockVisitor.h
+++ b/src/cpu/VirtualFluidsCore/Visitors/SetConnectorsBlockVisitor.h
@@ -114,7 +114,7 @@ void SetConnectorsBlockVisitor<T1, T2>::setSameLevelConnectors(SPtr<Grid3D> grid
         int ix3   = block->getX3();
         int level = block->getLevel();
 
-        for (int dir = 0; dir < D3Q27System::ENDDIR; dir++) {
+        for (int dir = D3Q27System::STARTDIR; dir < D3Q27System::ENDDIR; dir++) {
             SPtr<Block3D> neighBlock = grid->getNeighborBlock(dir, ix1, ix2, ix3, level);
 
             if (neighBlock) {
diff --git a/src/lbm/constants/D3Q27.h b/src/lbm/constants/D3Q27.h
index 0b2cbfdd44e84af590fa2c2be4bf319cbfd4c815..418038c35e9e5f0ae423f87a4d4a468888a2f274 100644
--- a/src/lbm/constants/D3Q27.h
+++ b/src/lbm/constants/D3Q27.h
@@ -64,6 +64,88 @@ static constexpr int PMM = 24;
 static constexpr int MMM = 25;
 static constexpr int ZZZ = 26;
 
+static constexpr int DIR_000 = 0;
+static constexpr int DIR_P00 = 1;
+static constexpr int DIR_M00 = 2;
+static constexpr int DIR_0P0 = 3;
+static constexpr int DIR_0M0 = 4;
+static constexpr int DIR_00P = 5;
+static constexpr int DIR_00M = 6;
+static constexpr int DIR_PP0 = 7;
+static constexpr int DIR_MM0 = 8;
+static constexpr int DIR_PM0 = 9;
+static constexpr int DIR_MP0 = 10;
+static constexpr int DIR_P0P = 11;
+static constexpr int DIR_M0M = 12;
+static constexpr int DIR_P0M = 13;
+static constexpr int DIR_M0P = 14;
+static constexpr int DIR_0PP = 15;
+static constexpr int DIR_0MM = 16;
+static constexpr int DIR_0PM = 17;
+static constexpr int DIR_0MP = 18;
+static constexpr int DIR_PPP = 19;
+static constexpr int DIR_MPP = 20;
+static constexpr int DIR_PMP = 21;
+static constexpr int DIR_MMP = 22;
+static constexpr int DIR_PPM = 23;
+static constexpr int DIR_MPM = 24;
+static constexpr int DIR_PMM = 25;
+static constexpr int DIR_MMM = 26;
+
+static constexpr int INV_P00 = DIR_M00;
+static constexpr int INV_M00 = DIR_P00;
+static constexpr int INV_0P0 = DIR_0M0;
+static constexpr int INV_0M0 = DIR_0P0;
+static constexpr int INV_00P = DIR_00M;
+static constexpr int INV_00M = DIR_00P;
+static constexpr int INV_PP0 = DIR_MM0;
+static constexpr int INV_MM0 = DIR_PP0;
+static constexpr int INV_PM0 = DIR_MP0;
+static constexpr int INV_MP0 = DIR_PM0;
+static constexpr int INV_P0P = DIR_M0M;
+static constexpr int INV_M0M = DIR_P0P;
+static constexpr int INV_P0M = DIR_M0P;
+static constexpr int INV_M0P = DIR_P0M;
+static constexpr int INV_0PP = DIR_0MM;
+static constexpr int INV_0MM = DIR_0PP;
+static constexpr int INV_0PM = DIR_0MP;
+static constexpr int INV_0MP = DIR_0PM;
+static constexpr int INV_PPP = DIR_MMM;
+static constexpr int INV_MPP = DIR_PMM;
+static constexpr int INV_PMP = DIR_MPM;
+static constexpr int INV_MMP = DIR_PPM;
+static constexpr int INV_PPM = DIR_MMP;
+static constexpr int INV_MPM = DIR_PMP;
+static constexpr int INV_PMM = DIR_MPP;
+static constexpr int INV_MMM = DIR_PPP;
+
+static constexpr int SGD_P00 = 0;
+static constexpr int SGD_M00 = 1;
+static constexpr int SGD_0P0 = 2;
+static constexpr int SGD_0M0 = 3;
+static constexpr int SGD_00P = 4;
+static constexpr int SGD_00M = 5;
+static constexpr int SGD_PP0 = 6;
+static constexpr int SGD_MM0 = 7;
+static constexpr int SGD_PM0 = 8;
+static constexpr int SGD_MP0 = 9;
+static constexpr int SGD_P0P = 10;
+static constexpr int SGD_M0M = 11;
+static constexpr int SGD_P0M = 12;
+static constexpr int SGD_M0P = 13;
+static constexpr int SGD_0PP = 14;
+static constexpr int SGD_0MM = 15;
+static constexpr int SGD_0PM = 16;
+static constexpr int SGD_0MP = 17;
+static constexpr int SGD_PPP = 18;
+static constexpr int SGD_MPP = 19;
+static constexpr int SGD_PMP = 20;
+static constexpr int SGD_MMP = 21;
+static constexpr int SGD_PPM = 22;
+static constexpr int SGD_MPM = 23;
+static constexpr int SGD_PMM = 24;
+static constexpr int SGD_MMM = 25;
+
 }
 }
 }