diff --git a/src/VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/BoundaryValues.cpp b/src/VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/BoundaryValues.cpp
index 8ba1d69f571ef1519cfa69904c1769c4fe4594b4..73ef721e87832477003d78843f8cb703ac21c858 100644
--- a/src/VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/BoundaryValues.cpp
+++ b/src/VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/BoundaryValues.cpp
@@ -85,6 +85,8 @@ int BoundaryValues::getNumberOfColumns()
 {
 	if (boundaryCondition == "velocity")
 		return 3;
+	if (boundaryCondition == "noSlip")
+		return 3;
 	if (boundaryCondition == "pressure")
 		return 2;
 	else
diff --git a/src/VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/GridReader.cpp b/src/VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/GridReader.cpp
index e1614f9bd7321f1bbe48c757c94bd2c4f9e5e23b..ea3153c0bfd3a1b86ca0b4207ea0e1bddfc085c6 100644
--- a/src/VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/GridReader.cpp
+++ b/src/VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/GridReader.cpp
@@ -88,6 +88,7 @@ void GridReader::allocArrays_CoordNeighborGeo()
 	neighX = std::shared_ptr<CoordNeighborGeoV>(new CoordNeighborGeoV(para->getneighborX(), binaer, false));
 	neighY = std::shared_ptr<CoordNeighborGeoV>(new CoordNeighborGeoV(para->getneighborY(), binaer, false));
 	neighZ = std::shared_ptr<CoordNeighborGeoV>(new CoordNeighborGeoV(para->getneighborZ(), binaer, false));
+	neighWSB = std::shared_ptr<CoordNeighborGeoV>(new CoordNeighborGeoV(para->getneighborWSB(), binaer, false));
 	CoordNeighborGeoV geoV(para->getgeoVec(), binaer, false);
 
 	int maxLevel = coordX.getLevel();
@@ -105,6 +106,7 @@ void GridReader::allocArrays_CoordNeighborGeo()
 
         cudaMemoryManager->cudaAllocCoord(level);
 		cudaMemoryManager->cudaAllocSP(level);
+        cudaMemoryManager->cudaAllocNeighborWSB(level);
 
         ///////////////////////////
         //F3
@@ -123,10 +125,13 @@ void GridReader::allocArrays_CoordNeighborGeo()
 		neighX->initalNeighbors(para->getParH(level)->neighborX_SP, level);
 		neighY->initalNeighbors(para->getParH(level)->neighborY_SP, level);
 		neighZ->initalNeighbors(para->getParH(level)->neighborZ_SP, level);
+		neighWSB->initalNeighbors(para->getParH(level)->neighborWSB_SP, level);
 		geoV.initalNeighbors(para->getParH(level)->geoSP, level);
+
         rearrangeGeometry(para.get(), level);
 		setInitalNodeValues(numberOfNodesPerLevel, level);
-
+        
+        cudaMemoryManager->cudaCopyNeighborWSB(level);
         cudaMemoryManager->cudaCopySP(level);
         cudaMemoryManager->cudaCopyCoord(level);
 	}
@@ -388,9 +393,14 @@ void GridReader::allocArrays_BoundaryValues()
 				//para->getParH(i)->Qinflow.Vx[m] = para->getParH(i)->Qinflow.Vx[m] / para->getVelocityRatio();
 				//para->getParH(i)->Qinflow.Vy[m] = para->getParH(i)->Qinflow.Vy[m] / para->getVelocityRatio();
 				//para->getParH(i)->Qinflow.Vz[m] = para->getParH(i)->Qinflow.Vz[m] / para->getVelocityRatio();
-				para->getParH(i)->Qinflow.Vx[m] = 0.0;//para->getVelocity();//0.035;
-				para->getParH(i)->Qinflow.Vy[m] = 0.0;//para->getVelocity();//0.0;
-				para->getParH(i)->Qinflow.Vz[m] = 0.0;
+
+                // Lenz: I do not know what this is, but it harms me ... comment out 
+                // ==========================================================================
+				//para->getParH(i)->Qinflow.Vx[m] = 0.0;//para->getVelocity();//0.035;
+				//para->getParH(i)->Qinflow.Vy[m] = 0.0;//para->getVelocity();//0.0;
+				//para->getParH(i)->Qinflow.Vz[m] = 0.0;
+                // ==========================================================================
+
 				//if (para->getParH(i)->Qinflow.Vz[m] > 0)
 				//{
 				//	cout << "velo Z = " << para->getParH(i)->Qinflow.Vz[m] << endl;
@@ -1071,12 +1081,12 @@ void GridReader::allocArrays_OffsetScale()
     OffsetScale *obj_scaleFCC = new OffsetScale(para->getscaleFCC(), false);
     OffsetScale *obj_scaleFCF = new OffsetScale(para->getscaleFCF(), false);
 
-    int level = obj_offCF->getLevel();
+    int maxLevel = obj_offCF->getLevel();
 
     int AnzahlKnotenGesCF = 0;
     int AnzahlKnotenGesFC = 0;
 
-    for (int i = 0; i<level; i++) {
+    for (int i = 0; i<maxLevel; i++) {
         unsigned int tempCF = obj_offCF->getSize(i);
         cout << "Groesse der Daten CF vom Level " << i << " : " << tempCF << endl;
         unsigned int tempFC = obj_offFC->getSize(i);