From 17ff17ddfa03e7711cdd1f3aec666f8b77ae1687 Mon Sep 17 00:00:00 2001
From: peters <peters@irmb.tu-bs.de>
Date: Thu, 24 Jun 2021 18:03:04 +0200
Subject: [PATCH] Remove unused stuff

---
 .../VirtualFluids_GPU/Init/PositionReader.cpp |  213 +++
 .../VirtualFluids_GPU/Init/PositionReader.h   |   15 +
 .../VirtualFluids_GPU/Init/ReadGeometry.cpp   |   43 -
 src/gpu/VirtualFluids_GPU/Init/ReadGeometry.h |   12 -
 src/gpu/VirtualFluids_GPU/Init/VfReader.cpp   |  283 +---
 src/gpu/VirtualFluids_GPU/Init/VfReader.h     |   31 +-
 .../Input/PositionReader.cpp                  | 1183 -----------------
 .../VirtualFluids_GPU/Input/PositionReader.h  |   44 -
 .../Input/VtkGeometryReader.cpp               |  106 --
 .../Input/VtkGeometryReader.h                 |   33 -
 .../VirtualFluids_GPU/Input/kFullReader.cpp   |  121 --
 src/gpu/VirtualFluids_GPU/Input/kFullReader.h |   19 -
 src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp  |    4 -
 13 files changed, 234 insertions(+), 1873 deletions(-)
 create mode 100644 src/gpu/VirtualFluids_GPU/Init/PositionReader.cpp
 create mode 100644 src/gpu/VirtualFluids_GPU/Init/PositionReader.h
 delete mode 100644 src/gpu/VirtualFluids_GPU/Init/ReadGeometry.cpp
 delete mode 100644 src/gpu/VirtualFluids_GPU/Init/ReadGeometry.h
 delete mode 100644 src/gpu/VirtualFluids_GPU/Input/PositionReader.cpp
 delete mode 100644 src/gpu/VirtualFluids_GPU/Input/PositionReader.h
 delete mode 100644 src/gpu/VirtualFluids_GPU/Input/VtkGeometryReader.cpp
 delete mode 100644 src/gpu/VirtualFluids_GPU/Input/VtkGeometryReader.h
 delete mode 100644 src/gpu/VirtualFluids_GPU/Input/kFullReader.cpp
 delete mode 100644 src/gpu/VirtualFluids_GPU/Input/kFullReader.h

diff --git a/src/gpu/VirtualFluids_GPU/Init/PositionReader.cpp b/src/gpu/VirtualFluids_GPU/Init/PositionReader.cpp
new file mode 100644
index 000000000..034016b81
--- /dev/null
+++ b/src/gpu/VirtualFluids_GPU/Init/PositionReader.cpp
@@ -0,0 +1,213 @@
+#include "PositionReader.h"
+
+#include "Parameter/Parameter.h"
+
+#include <basics/utilities/UbFileInputASCII.h>
+
+
+//////////////////////////////////////////////////////////////////////////
+void PositionReader::readFilePropellerCylinderForAlloc(Parameter* para)
+{
+	UbFileInputASCII in(para->getpropellerCylinder());
+	int test = 0, count = 0;
+	int maxlevel = in.readInteger();
+	in.readLine();
+
+	for (int level = 0; level < maxlevel; level++)
+	{
+		para->getParH(level)->QPropeller.kQ = in.readInteger();
+		para->getParD(level)->QPropeller.kQ = para->getParH(level)->QPropeller.kQ;
+		in.readLine();
+		if (level == para->getFine())
+		{
+			for(int u=0; u<para->getParH(level)->QPropeller.kQ; u++)
+			{
+				test = in.readInteger();
+				if (para->getParH(level)->geoSP[test] == GEO_FLUID)
+				{
+					count++;
+				}
+				////////////////////////////////////////////////////////////////////////
+				//for(unsigned int ix3=0; ix3<para->getParH(level)->nz; ix3++)
+				//{
+				//	for(unsigned int ix2=0; ix2<para->getParH(level)->ny; ix2++)
+				//	{
+				//		for(unsigned int ix1=0; ix1<para->getParH(level)->nx; ix1++)
+				//		{
+				//			unsigned int m = para->getParH(level)->nx*(para->getParH(level)->ny*ix3 + ix2) + ix1;
+				//			if (para->getParH(level)->k[m] == test)
+				//			{
+				//				if(para->getParH(level)->geo[m] == 1)
+				//				{
+				//					count++;									
+				//				}
+				//			}
+				//		}
+				//	}
+				//}
+				//count++;
+				////////////////////////////////////////////////////////////////////////
+				in.readDouble();
+				in.readDouble();
+				in.readDouble();
+				in.readLine();
+			}
+		}
+		else
+		{
+			for(int u=0; u<para->getParH(level)->QPropeller.kQ; u++)
+			{
+				in.readInteger();
+				in.readDouble();
+				in.readDouble();
+				in.readDouble();
+				in.readLine();
+			}
+		}
+		para->getParH(level)->QPropeller.kQ = count;
+		para->getParD(level)->QPropeller.kQ = para->getParH(level)->QPropeller.kQ;
+	}
+}
+//////////////////////////////////////////////////////////////////////////
+
+
+//////////////////////////////////////////////////////////////////////////
+void PositionReader::readFilePropellerCylinder(Parameter* para)
+{
+	UbFileInputASCII in(para->getpropellerCylinder());
+	int test = 0, count = 0;
+	int maxlevel = in.readInteger();
+	in.readLine();
+
+	for (int level = 0; level < maxlevel; level++)
+	{
+		int allnodes = in.readInteger();
+		in.readLine();
+		if (level == para->getFine())
+		{
+			for(int u=0; u<allnodes; u++)
+			{
+				test = in.readInteger();
+				////////////////////////////////////////////////////////////////////////
+				if (para->getParH(level)->geoSP[test] == GEO_FLUID)
+				{
+					para->getParH(level)->QPropeller.k[count] = test; 
+					para->getParH(level)->QPropeller.Vx[count] = (real)in.readDouble();
+					para->getParH(level)->QPropeller.Vy[count] = (real)in.readDouble();
+					para->getParH(level)->QPropeller.Vz[count] = (real)in.readDouble();
+					para->getParH(level)->QPropeller.RhoBC[count] = 0.0f;									
+					count++;
+				}
+				else
+				{
+					in.readDouble();
+					in.readDouble();
+					in.readDouble();
+				}
+				//para->getParH(level)->QPropeller.k[count] = test; 
+				//para->getParH(level)->QPropeller.Vx[count] = (real)in.readDouble();
+				//para->getParH(level)->QPropeller.Vy[count] = (real)in.readDouble();
+				//para->getParH(level)->QPropeller.Vz[count] = (real)in.readDouble();
+				//para->getParH(level)->QPropeller.Vx[count]	  = 0.07f;
+				//para->getParH(level)->QPropeller.Vy[count]	  = 0.0f;
+				//para->getParH(level)->QPropeller.Vz[count]	  = 0.0f;
+				in.readLine();
+			}
+		} 
+		else
+		{
+			for(int u=0; u<allnodes; u++)
+			{
+				in.readInteger(); 
+				in.readDouble();
+				in.readDouble();
+				in.readDouble();
+				in.readLine();
+			}
+		}
+		printf("allnodes = %d, count = %d\n", allnodes, count);
+	}
+}
+//////////////////////////////////////////////////////////////////////////
+
+
+//////////////////////////////////////////////////////////////////////////
+void PositionReader::definePropellerQs(Parameter* para)
+{
+	//////////////////////////////////////////////////////////////////
+	//preprocessing
+	real* QQ                  = para->getParH(para->getFine())->QPropeller.q27[0]; 
+	unsigned int sizeQ           = para->getParH(para->getFine())->QPropeller.kQ; 
+	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[dirZERO] = &QQ[dirZERO*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];
+	//////////////////////////////////////////////////////////////////
+	for(int u=0; u<para->getParH(para->getFine())->QPropeller.kQ; u++)
+	{
+		for (int dir = dirE; dir<=dirBSW; dir++)
+		{
+			if ((dir==dirE)  || 
+				(dir==dirNE) || (dir==dirSE) || (dir==dirTE) || (dir==dirBE) ||
+				(dir==dirTNE)|| (dir==dirBNE)|| (dir==dirTSE)|| (dir==dirBSE))
+			{
+				Q.q27[dir][u] = 1.0f;
+			} 
+			else
+			{
+				Q.q27[dir][u] = -1.0f;
+			}
+		}
+	}
+	//////////////////////////////////////////////////////////////////
+}
+//////////////////////////////////////////////////////////////////////////
+
+
+//////////////////////////////////////////////////////////////////////////
+void PositionReader::readMeasurePoints( Parameter* para ) 
+{
+	UbFileInputASCII in(para->getmeasurePoints());
+	int numberOfAllNodes = in.readInteger();
+	in.readLine();
+	int tempLevel;
+	MeasurePoints tempMP;
+	//printf("done, init the values...\n");
+	for (int u = 0; u < numberOfAllNodes; u++)
+	{
+		tempMP.name = in.readString(); 		
+		//printf("done, read the name...\n");
+		tempMP.k = in.readInteger();
+		//printf("done, read k...\n");
+		tempLevel = in.readInteger();
+		//printf("done, read level...\n");
+		in.readLine();
+		//printf("done, read the values...\n");
+		para->getParH(tempLevel)->MP.push_back(tempMP);
+		//printf("done, put it into a vector...\n");
+	}
+}
diff --git a/src/gpu/VirtualFluids_GPU/Init/PositionReader.h b/src/gpu/VirtualFluids_GPU/Init/PositionReader.h
new file mode 100644
index 000000000..b12a17c81
--- /dev/null
+++ b/src/gpu/VirtualFluids_GPU/Init/PositionReader.h
@@ -0,0 +1,15 @@
+#ifndef POSITION_READER_H
+#define POSITION_READER_H
+
+class Parameter;
+
+class PositionReader
+{
+public:
+   static void readFilePropellerCylinderForAlloc(Parameter* para);
+   static void readFilePropellerCylinder(Parameter* para);
+   static void definePropellerQs(Parameter* para);
+   static void readMeasurePoints(Parameter* para);
+};
+
+#endif
\ No newline at end of file
diff --git a/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.cpp b/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.cpp
deleted file mode 100644
index 4c1bca688..000000000
--- a/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#include "Init/ReadGeometry.h"
-
-////////////////////////////////////////////////////////////////////////////////
-void readGeometry(Parameter* para, vf::gpu::Communicator* comm, int lev, std::string geometryFile)
-{
-   int dataSizePerGPU = para->getParH(lev)->gridNX * para->getParH(lev)->gridNY * para->getParH(lev)->gridNZ;
-   unsigned int dataSizeTotal = para->getParH(lev)->gridNX * para->getParH(lev)->gridNY * para->getParH(lev)->gridNZ * para->getNumprocs();
-   unsigned int * dataRoot = NULL;
-   
-   unsigned int m, l;
-   if(para->getMyID() == 0)	// Are we the root node?
-   {
-      dataRoot = new unsigned int[dataSizeTotal];
-      VtkGeometryReader::readFile(geometryFile, dataRoot);
-   }
-
-   std::cout << "dataSizePerGPU size: " << dataSizePerGPU << "\n";
-   
-   unsigned int *dataGPU = new unsigned int[dataSizePerGPU];
-   
-   std::cout  << "distributeGeometry: start \n";
-   comm->distributeGeometry(dataRoot, dataGPU, dataSizePerGPU);
-   std::cout  << "distributeGeometry: end \n";
-
-   l=0;
-   for(unsigned int k=STARTOFFZ ; k < para->getParH(lev)->gridNZ + STARTOFFZ ; k++)
-   {
-      for(unsigned int j=STARTOFFY ; j < para->getParH(lev)->gridNY + STARTOFFY ; j++)
-      {
-         for(unsigned int i=STARTOFFX ; i < para->getParH(lev)->gridNX + STARTOFFX ; i++)
-         {
-            m = para->getParH(lev)->nx* (para->getParH(lev)->ny * k + j) + i;
-            para->getParH(lev)->geo[m] = dataGPU[l];
-            l++;
-         }
-      }
-   }
-
-   if(para->getMyID() == 0)
-      delete [] dataRoot;
-   
-   delete [] dataGPU;
-}
diff --git a/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.h b/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.h
deleted file mode 100644
index 5bc42081e..000000000
--- a/src/gpu/VirtualFluids_GPU/Init/ReadGeometry.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef READ_GEOMETRY_H
-#define READ_GEOMETRY_H
-
-#include "Parameter/Parameter.h"
-#include "Communication/Communicator.h"
-#include "Input/VtkGeometryReader.h"
-
-#include <iostream>
-
-extern "C" void readGeometry(Parameter* para, vf::gpu::Communicator* comm, int lev, std::string geometryFile);
-
-#endif
diff --git a/src/gpu/VirtualFluids_GPU/Init/VfReader.cpp b/src/gpu/VirtualFluids_GPU/Init/VfReader.cpp
index 89d214186..aa94cb658 100644
--- a/src/gpu/VirtualFluids_GPU/Init/VfReader.cpp
+++ b/src/gpu/VirtualFluids_GPU/Init/VfReader.cpp
@@ -1,284 +1,10 @@
 #include "Init/VfReader.h"
 
+#include "Parameter/Parameter.h"
+#include "Communication/Communicator.h"
+#include "Init/PositionReader.h"
 #include "GPU/CudaMemoryManager.h"
 
-////////////////////////////////////////////////////////////////////////////////
-void readVFkFull(Parameter* para, CudaMemoryManager* cudaManager, const std::string geometryFile)
-{
-	kFullReader::readFileForAlloc(geometryFile, para);
-
-	for (int lev = 0; lev <= para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaAllocFull(lev);
-		//////////////////////////////////////////////////////////////////////////
-		for(unsigned int ix3=0; ix3<para->getParH(lev)->nz; ix3++)
-		{
-			for(unsigned int ix2=0; ix2<para->getParH(lev)->ny; ix2++)
-			{
-				for(unsigned int ix1=0; ix1<para->getParH(lev)->nx; ix1++)
-				{
-					unsigned int m = para->getParH(lev)->nx*(para->getParH(lev)->ny*ix3 + ix2) + ix1;
-					para->getParH(lev)->k[m]   =  0;
-					para->getParH(lev)->geo[m] =  16;
-				}
-			}
-		}
-	}
-
-	kFullReader::readFile(geometryFile, para);
-}
-////////////////////////////////////////////////////////////////////////////////
-
-
-
-////////////////////////////////////////////////////////////////////////////////
-void readVFgeoFull(Parameter* para, const std::string geometryFile)
-{
-	kFullReader::readGeoFull(geometryFile, para);
-
-	//////////////////////////////////////////////////////////////////////////
-	//for (int lev = 0; lev <= para->getMaxLevel(); lev++)
-	//{
-	//	for(unsigned int ix3=0; ix3<para->getParH(lev)->nz; ix3++)
-	//	{
-	//		for(unsigned int ix2=0; ix2<para->getParH(lev)->ny; ix2++)
-	//		{
-	//			for(unsigned int ix1=0; ix1<para->getParH(lev)->nx; ix1++)
-	//			{
-	//				unsigned int m = para->getParH(lev)->nx*(para->getParH(lev)->ny*ix3 + ix2) + ix1;
-	//				if (para->getParH(lev)->geo[m] == 0 || para->getParH(lev)->geo[m] == 15)
-	//				{
-	//					para->getParH(lev)->geo[m] = 16;
-	//				}
-	//			}
-	//		}
-	//	}
-	//}
-}
-////////////////////////////////////////////////////////////////////////////////
-
-
-
-////////////////////////////////////////////////////////////////////////////////
-void readVecSP(Parameter* para, CudaMemoryManager* cudaManager)
-{
-	PositionReader::readFileForAlloc(para->getgeoVec(), para);
-
-	//alloc
-	for (int lev = 0; lev <= para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaAllocSP(lev);
-	}
-
-	//geoSP
-	PositionReader::readFile(para->getgeoVec(), "geoVec", para);
-	//neighborX
-	PositionReader::readFile(para->getneighborX(), "neighborX", para);
-	//neighborY
-	PositionReader::readFile(para->getneighborY(), "neighborY", para);
-	//neighborZ
-	PositionReader::readFile(para->getneighborZ(), "neighborZ", para);
-
-	//Copy Host -> Device
-	for(int lev = 0; lev <= para->getMaxLevel(); lev++)
-	{
-		for(unsigned int u=0; u<para->getParH(lev)->size_Mat_SP; u++)
-		{
-			para->getParH(lev)->rho_SP[u]   = 0.01f;//+ lev/100.f;
-			para->getParH(lev)->vx_SP[u]    = 0.0f;//+ lev/100.f;   
-			para->getParH(lev)->vy_SP[u]    = 0.0f;//+ lev/100.f;   
-			para->getParH(lev)->vz_SP[u]    = 0.0f;//+ lev/100.f;   
-			para->getParH(lev)->press_SP[u] = 0.0f;//+ lev/100.f;
-			//Median
-			para->getParH(lev)->rho_SP_Med[u]   = 0.0f;
-			para->getParH(lev)->vx_SP_Med[u]    = 0.0f;
-			para->getParH(lev)->vy_SP_Med[u]    = 0.0f;
-			para->getParH(lev)->vz_SP_Med[u]    = 0.0f;
-			para->getParH(lev)->press_SP_Med[u] = 0.0f;
-		}
-		cudaManager->cudaCopySP(lev);
-	}
-}
-////////////////////////////////////////////////////////////////////////////////
-
-
-
-////////////////////////////////////////////////////////////////////////////////
-void readInterfaceCF(Parameter* para, CudaMemoryManager* cudaManager)
-{
-	PositionReader::readFileInterfaceForAlloc(para->getscaleCFC(), "CF", para);
-
-	//alloc
-	for (int lev = 0; lev < para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaAllocInterfaceCF(lev);
-	}
-
-	//Scale Coarse to Fine - Coarse
-	PositionReader::readFileInterface(para->getscaleCFC(), "CFC", para);
-	//Scale Coarse to Fine - Fine
-	PositionReader::readFileInterface(para->getscaleCFF(), "CFF", para);
-
-	//Copy Host -> Device
-	for (int lev = 0; lev < para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaCopyInterfaceCF(lev);
-	}
-}
-////////////////////////////////////////////////////////////////////////////////
-
-
-
-////////////////////////////////////////////////////////////////////////////////
-void readInterfaceFC(Parameter* para, CudaMemoryManager* cudaManager)
-{
-	PositionReader::readFileInterfaceForAlloc(para->getscaleFCC(), "FC", para);
-
-	//alloc
-	for (int lev = 0; lev < para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaAllocInterfaceFC(lev);
-	}
-
-	//Scale Fine to Coarse - Coarse
-	PositionReader::readFileInterface(para->getscaleFCC(), "FCC", para);
-	//Scale Fine to Coarse - Fine
-	PositionReader::readFileInterface(para->getscaleFCF(), "FCF", para);
-
-	//Copy Host -> Device
-	for (int lev = 0; lev < para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaCopyInterfaceFC(lev);
-	}
-}
-////////////////////////////////////////////////////////////////////////////////
-
-
-
-////////////////////////////////////////////////////////////////////////////////
-void readInterfaceOffCF(Parameter* para, CudaMemoryManager* cudaManager, const std::string geometryFile)
-{
-	PositionReader::readFileInterfaceOffsetForAlloc(geometryFile, "CF", para);
-
-	for (int lev = 0; lev < para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaAllocInterfaceOffCF(lev);
-	}
-
-	PositionReader::readFileInterfaceOffset(geometryFile, "CF", para);
-
-	for (int lev = 0; lev < para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaCopyInterfaceOffCF(lev);
-	}
-}
-////////////////////////////////////////////////////////////////////////////////
-
-
-
-////////////////////////////////////////////////////////////////////////////////
-void readInterfaceOffFC(Parameter* para, CudaMemoryManager* cudaManager, const std::string geometryFile)
-{
-	PositionReader::readFileInterfaceOffsetForAlloc(geometryFile, "FC", para);
-
-	for (int lev = 0; lev < para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaAllocInterfaceOffFC(lev);
-	}
-
-	PositionReader::readFileInterfaceOffset(geometryFile, "FC", para);
-
-	for (int lev = 0; lev < para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaCopyInterfaceOffFC(lev);
-	}
-}
-////////////////////////////////////////////////////////////////////////////////
-
-
-
-////////////////////////////////////////////////////////////////////////////////
-void readNoSlipBc(Parameter* para, CudaMemoryManager* cudaManager)
-{
-	PositionReader::readFileNoSlipBcForAlloc(para->getnoSlipBcPos(), para);
-	PositionReader::readFileNoSlipBcQreadForAlloc(para->getnoSlipBcQs(), para);
-
-	for (int lev = 0; lev <= para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaAllocWallBC(lev);
-	}
-
-	PositionReader::readFileNoSlipBcPos(para->getnoSlipBcPos(), para);
-	PositionReader::readFileNoSlipBcValue(para->getnoSlipBcValue(), para);
-	PositionReader::readFileNoSlipBcQs(para->getnoSlipBcQs(), para);
-
-	PositionReader::findQs(para);
-
-	for (int lev = 0; lev <= para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaCopyWallBC(lev);
-	}
-}
-////////////////////////////////////////////////////////////////////////////////
-
-
-
-////////////////////////////////////////////////////////////////////////////////
-void readSlipBc(Parameter* para, CudaMemoryManager* cudaManager)
-{
-	PositionReader::readFileSlipBcForAlloc(para->getslipBcPos(), para);
-	PositionReader::readFileSlipBcQreadForAlloc(para->getslipBcQs(), para);
-
-	for (int lev = 0; lev <= para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaAllocSlipBC(lev);
-	}
-
-	PositionReader::readFileSlipBcPos(para->getslipBcPos(), para);
-	PositionReader::readFileSlipBcValue(para->getslipBcValue(), para);
-	PositionReader::readFileSlipBcQs(para->getslipBcQs(), para);
-
-	PositionReader::findSlipQs(para);
-
-	for (int lev = 0; lev <= para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaCopySlipBC(lev);
-	}
-}
-////////////////////////////////////////////////////////////////////////////////
-
-
-
-////////////////////////////////////////////////////////////////////////////////
-void readPressBc(Parameter* para, CudaMemoryManager* cudaManager)
-{
-	PositionReader::readFilePressBcForAlloc(para->getpressBcPos(), para);
-	PositionReader::readFilePressBcQreadForAlloc(para->getpressBcQs(), para);
-
-	for (int lev = 0; lev <= para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaAllocPress(lev);
-	}
-	//only Coarse
-	//para->cudaAllocPress(para->getCoarse());
-
-	PositionReader::readFilePressBcPos(para->getpressBcPos(), para);
-	PositionReader::readFilePressBcValue(para->getpressBcValue(), para);
-	PositionReader::readFilePressBcQs(para->getpressBcQs(), para);
-
-	PositionReader::findPressQs(para);
-
-	for (int lev = 0; lev <= para->getMaxLevel(); lev++)
-	{
-		cudaManager->cudaCopyPress(lev);
-	}
-	//only Coarse
-	//para->cudaCopyPress(para->getCoarse());
-}
-////////////////////////////////////////////////////////////////////////////////
-
-
-
 ////////////////////////////////////////////////////////////////////////////////
 void readPropellerCylinder(Parameter* para, CudaMemoryManager* cudaManager)
 {
@@ -291,9 +17,6 @@ void readPropellerCylinder(Parameter* para, CudaMemoryManager* cudaManager)
 
 	cudaManager->cudaCopyVeloPropeller(para->getFine());
 }
-////////////////////////////////////////////////////////////////////////////////
-
-
 
 ////////////////////////////////////////////////////////////////////////////////
 void readMeasurePoints(Parameter* para, CudaMemoryManager* cudaManager)
diff --git a/src/gpu/VirtualFluids_GPU/Init/VfReader.h b/src/gpu/VirtualFluids_GPU/Init/VfReader.h
index 614c269d3..c7d95e8e7 100644
--- a/src/gpu/VirtualFluids_GPU/Init/VfReader.h
+++ b/src/gpu/VirtualFluids_GPU/Init/VfReader.h
@@ -1,38 +1,13 @@
 #ifndef VF_READER_H
 #define VF_READER_H
 
-#include "Parameter/Parameter.h"
-#include "Communication/Communicator.h"
-#include "Input/kFullReader.h"
-#include "Input/PositionReader.h"
-//#include "GPU/GPU_Interface.h"
-
-#include <iostream>
 
 class CudaMemoryManager;
+class Parameter;
 
-extern "C" void readVFkFull(Parameter* para, CudaMemoryManager* cudaManager, const std::string geometryFile);
-
-extern "C" void readVFgeoFull(Parameter* para, const std::string geometryFile);
-
-extern "C" void readVecSP(Parameter* para, CudaMemoryManager* cudaManager);
-
-extern "C" void readInterfaceCF(Parameter* para, CudaMemoryManager* cudaManager);
-
-extern "C" void readInterfaceFC(Parameter* para, CudaMemoryManager* cudaManager);
-
-extern "C" void readInterfaceOffCF(Parameter* para, CudaMemoryManager* cudaManager, const std::string geometryFile);
-
-extern "C" void readInterfaceOffFC(Parameter* para, CudaMemoryManager* cudaManager, const std::string geometryFile);
-
-extern "C" void readNoSlipBc(Parameter* para, CudaMemoryManager* cudaManager);
-
-extern "C" void readSlipBc(Parameter* para, CudaMemoryManager* cudaManager);
-
-extern "C" void readPressBc(Parameter* para, CudaMemoryManager* cudaManager);
 
-extern "C" void readPropellerCylinder(Parameter* para, CudaMemoryManager* cudaManager);
+void readPropellerCylinder(Parameter* para, CudaMemoryManager* cudaManager);
 
-extern "C" void readMeasurePoints(Parameter* para, CudaMemoryManager* cudaManager);
+void readMeasurePoints(Parameter* para, CudaMemoryManager* cudaManager);
 
 #endif
diff --git a/src/gpu/VirtualFluids_GPU/Input/PositionReader.cpp b/src/gpu/VirtualFluids_GPU/Input/PositionReader.cpp
deleted file mode 100644
index b2a942c9a..000000000
--- a/src/gpu/VirtualFluids_GPU/Input/PositionReader.cpp
+++ /dev/null
@@ -1,1183 +0,0 @@
-#include "PositionReader.h"
-
-#include "basics/utilities/UbFileInputASCII.h"
-
-// static const int E    = dirE;		   //static const int E    = 0;
-// static const int W    = dirW;		   //static const int W    = 1;
-// static const int N    = dirN;		   //static const int N    = 2;
-// static const int S    = dirS;		   //static const int S    = 3;
-// static const int T    = dirT;		   //static const int T    = 4;
-// static const int B    = dirB;		   //static const int B    = 5;
-// static const int NE   = dirNE;		   //static const int NE   = 6;
-// static const int SW   = dirSW;		   //static const int SW   = 7;
-// static const int SE   = dirSE;		   //static const int SE   = 8;
-// static const int NW   = dirNW;		   //static const int NW   = 9;
-// static const int TE   = dirTE;		   //static const int TE   = 10;
-// static const int BW   = dirBW;		   //static const int BW   = 11;
-// static const int BE   = dirBE;		   //static const int BE   = 12;
-// static const int TW   = dirTW;		   //static const int TW   = 13;
-// static const int TN   = dirTN;		   //static const int TN   = 14;
-// static const int BS   = dirBS;		   //static const int BS   = 15;
-// static const int BN   = dirBN;		   //static const int BN   = 16;
-// static const int TS   = dirTS;		   //static const int TS   = 17;
-// static const int TNE  = dirTNE;		   //static const int TNE  = 18;
-// static const int TNW  = dirTNW;		   //static const int TNW  = 19;
-// static const int TSE  = dirTSE;		   //static const int TSE  = 20;
-// static const int TSW  = dirTSW;		   //static const int TSW  = 21;
-// static const int BNE  = dirBNE;		   //static const int BNE  = 22;
-// static const int BNW  = dirBNW;		   //static const int BNW  = 23;
-// static const int BSE  = dirBSE;		   //static const int BSE  = 24;
-// static const int BSW  = dirBSW;		   //static const int BSW  = 25;
-// static const int ZERO = dirZERO;	   //static const int ZERO = 26;
-								 
-								 
-static const int INV_E   = dirE;		   //= W;  
-static const int INV_W   = dirW;		   //= E;  
-static const int INV_N   = dirN;		   //= S;  
-static const int INV_S   = dirS;		   //= N;  
-static const int INV_T   = dirT;		   //= B;  
-static const int INV_B   = dirB;		   //= T;  
-static const int INV_NE  = dirNE;		   //= SW; 
-static const int INV_SW  = dirSW;		   //= NE; 
-static const int INV_SE  = dirSE;		   //= NW; 
-static const int INV_NW  = dirNW;		   //= SE; 
-static const int INV_TE  = dirTE;		   //= BW; 
-static const int INV_BW  = dirBW;		   //= TE; 
-static const int INV_BE  = dirBE;		   //= TW; 
-static const int INV_TW  = dirTW;		   //= BE; 
-static const int INV_TN  = dirTN;		   //= BS; 
-static const int INV_BS  = dirBS;		   //= TN; 
-static const int INV_BN  = dirBN;		   //= TS; 
-static const int INV_TS  = dirTS;		   //= BN; 
-static const int INV_TNE = dirTNE;		   //= BSW;
-static const int INV_TNW = dirTNW;		   //= BSE;
-static const int INV_TSE = dirTSE;		   //= BNW;
-static const int INV_TSW = dirTSW;		   //= BNE;
-static const int INV_BNE = dirBNE;		   //= TSW;
-static const int INV_BNW = dirBNW;		   //= TSE;
-static const int INV_BSE = dirBSE;		   //= TNW;
-static const int INV_BSW = dirBSW;		   //= TNE;
-static const int INV_ZERO= dirZERO;		   //= ZERO;
-
-//static  const int INVDIR[ENDDIR+1];
-
-const int INVDIR[] = {	INV_E,   
-						INV_W,  
-						INV_N,  
-						INV_S,  
-						INV_T,  
-						INV_B,  
-						INV_NE, 
-						INV_SW, 
-						INV_SE, 
-						INV_NW,
-						INV_TE, 
-						INV_BW, 
-						INV_BE, 
-						INV_TW, 
-						INV_TN, 
-						INV_BS, 
-						INV_BN, 
-						INV_TS,				//alt             Bezug                 neu
-						INV_BNE,			//INV_TNE = BSW  = 25 = dirTSW  = TSW = INV_BNE  
-						INV_TSE,			//INV_TNW = BSE  = 24 = dirBNW  = BNW = INV_TSE
-						INV_BSE,			//INV_TSE = BNW  = 23 = dirTNW  = TNW = INV_BSE	
-						INV_TNW,			//INV_TSW = BNE  = 22 = dirBSE  = BSE = INV_TNW	
-						INV_BNW,			//INV_BNE = TSW  = 21 = dirTSE  = TSE = INV_BNW
-						INV_TSW,			//INV_BNW = TSE  = 20 = dirBNE  = BNE = INV_TSW	
-						INV_BSW,			//INV_BSE = TNW  = 19 = dirTNE  = TNE = INV_BSW
-						INV_ZERO,			//INV_BSW = TNE  = 18 = dirZERO = ZERO= INV_ZERO
-						INV_TNE};			//INV_ZERO= ZERO = 26 = dirBSW  = BSW = INV_TNE
-
-static const int        optionDigits = 2;  //--> 2 bits f�r secondary Option
-static const long long  maxOptionVal = ( 1<<optionDigits ) - 1; //2^3-1 -> 7
-//float q[27]; 
-long long noslipBoundaryFlags;		
-																     
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileForAlloc(const std::string fileName, Parameter* para)
-{
-   UbFileInputASCII in(fileName);
-   int maxlevel = in.readInteger();
-   in.readLine();
-
-   for (int level = 0; level <= maxlevel; level++)
-   {
-	   //Host
-	   para->getParH(level)->size_Mat_SP = in.readInteger();
-	   para->getParH(level)->mem_size_real_SP    = sizeof(real     ) * para->getParH(level)->size_Mat_SP;
-	   para->getParH(level)->mem_size_int_SP        = sizeof(unsigned int) * para->getParH(level)->size_Mat_SP;
-	   //Device
-	   para->getParD(level)->size_Mat_SP            = para->getParH(level)->size_Mat_SP;
-	   para->getParD(level)->mem_size_int_SP        = sizeof(unsigned int) * para->getParD(level)->size_Mat_SP;
-	   para->getParD(level)->mem_size_real_SP    = sizeof(real     ) * para->getParD(level)->size_Mat_SP;
-
-	   in.readLine();
-	   for(unsigned int u = /*1*/0; u<para->getParH(level)->size_Mat_SP; u++)
-	   {
-		   in.readInteger();
-	   }
-	   in.readLine();
-   }
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFile(const std::string fileName, std::string Type, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	if (Type == "geoVec")
-	{
-		for (int level = 0; level <= maxlevel; level++)
-		{
-			in.readInteger();
-			in.readLine();
-			for(unsigned int u = 0; u<para->getParH(level)->size_Mat_SP; u++)
-			{
-				para->getParH(level)->geoSP[u] = in.readInteger();       
-			}
-			in.readLine();
-		}
-	} 
-	else if (Type == "neighborX")
-	{
-		for (int level = 0; level <= maxlevel; level++)
-		{
-			in.readInteger();
-			in.readLine();
-			for(unsigned int u = 0; u<para->getParH(level)->size_Mat_SP; u++)
-			{
-				//para->getParH(level)->neighborZ_SP[u] = in.readInteger();
-				para->getParH(level)->neighborX_SP[u] = in.readInteger();
-			}
-			in.readLine();
-		}
-	}
-	else if (Type == "neighborY")
-	{
-		for (int level = 0; level <= maxlevel; level++)
-		{
-			in.readInteger();
-			in.readLine();
-			for(unsigned int u = 0; u<para->getParH(level)->size_Mat_SP; u++)
-			{
-				para->getParH(level)->neighborY_SP[u] = in.readInteger();
-			}
-			in.readLine();
-		}
-	}
-	else if (Type == "neighborZ")
-	{
-		for (int level = 0; level <= maxlevel; level++)
-		{
-			in.readInteger();
-			in.readLine();
-			for(unsigned int u = /*1*/0; u<para->getParH(level)->size_Mat_SP; u++)
-			{
-				//para->getParH(level)->neighborX_SP[u] = in.readInteger();
-				para->getParH(level)->neighborZ_SP[u] = in.readInteger();
-			}
-			in.readLine();
-		}
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileInterfaceForAlloc(const std::string fileName, std::string Type, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-	unsigned int test = 0;
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		if (Type == "CF")
-		{
-			para->getParH(level)->K_CF                = in.readInteger();
-			para->getParD(level)->K_CF                = para->getParH(level)->K_CF;
-			para->getParH(level)->intCF.kCF           = para->getParH(level)->K_CF;
-			para->getParD(level)->intCF.kCF           = para->getParH(level)->K_CF;
-			para->getParH(level)->mem_size_kCF        = sizeof(unsigned int) * para->getParH(level)->K_CF;
-			para->getParD(level)->mem_size_kCF        = sizeof(unsigned int) * para->getParD(level)->K_CF;
-			in.readLine();
-			for(unsigned int u=0; u<para->getParH(level)->K_CF; u++)
-			{
-				test = in.readInteger();
-				if (test>=para->getParH(level)->size_Mat_SP)
-				{
-					printf("CF: das geht doch nicht!!!");
-				}
-			}
-		} 
-		else if (Type == "FC")
-		{
-			para->getParH(level)->K_FC                = in.readInteger();
-			para->getParD(level)->K_FC                = para->getParH(level)->K_FC;
-			para->getParH(level)->intFC.kFC           = para->getParH(level)->K_FC;
-			para->getParD(level)->intFC.kFC           = para->getParH(level)->K_FC;
-			para->getParH(level)->mem_size_kFC        = sizeof(unsigned int) * para->getParH(level)->K_FC;
-			para->getParD(level)->mem_size_kFC        = sizeof(unsigned int) * para->getParD(level)->K_FC;
-			in.readLine();
-			for(unsigned int u=0; u<para->getParH(level)->K_FC; u++)
-			{
-				test = in.readInteger();
-				if (test>=para->getParH(level)->size_Mat_SP)
-				{
-					printf("FC: das geht doch nicht!!!");
-				}
-			}
-		}
-
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileInterface(const std::string fileName, std::string Type, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	if (Type == "CFC")
-	{
-		for (int level = 0; level < maxlevel; level++)
-		{
-			in.readInteger();
-			in.readLine();
-			for(unsigned int u=0; u<para->getParH(level)->K_CF; u++)
-			{
-				para->getParH(level)->intCF.ICellCFC[u] = in.readInteger();       
-			}
-			in.readLine();
-		}
-	} 
-	else if (Type == "CFF")
-	{
-		for (int level = 0; level < maxlevel; level++)
-		{
-			in.readInteger();
-			in.readLine();
-			for(unsigned int u=0; u<para->getParH(level)->K_CF; u++)
-			{
-				para->getParH(level)->intCF.ICellCFF[u] = in.readInteger();
-			}
-			in.readLine();
-		}
-	}
-	else if (Type == "FCC")
-	{
-		for (int level = 0; level < maxlevel; level++)
-		{
-			in.readInteger();
-			in.readLine();
-			for(unsigned int u=0; u<para->getParH(level)->K_FC; u++)
-			{
-				para->getParH(level)->intFC.ICellFCC[u] = in.readInteger();
-			}
-			in.readLine();
-		}
-	}
-	else if (Type == "FCF")
-	{
-		for (int level = 0; level < maxlevel; level++)
-		{
-			in.readInteger();
-			in.readLine();
-			for(unsigned int u=0; u<para->getParH(level)->K_FC; u++)
-			{
-				para->getParH(level)->intFC.ICellFCF[u] = in.readInteger();
-			}
-			in.readLine();
-		}
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileInterfaceOffsetForAlloc(const std::string fileName, std::string Type, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		if (Type == "CF")
-		{
-			para->getParH(level)->K_CF                = in.readInteger();
-			para->getParD(level)->K_CF                = para->getParH(level)->K_CF;
-			para->getParH(level)->intCF.kCF           = para->getParH(level)->K_CF;
-			para->getParD(level)->intCF.kCF           = para->getParH(level)->K_CF;
-			para->getParH(level)->mem_size_kCF_off    = sizeof(real) * para->getParH(level)->K_CF;
-			para->getParD(level)->mem_size_kCF_off    = sizeof(real) * para->getParD(level)->K_CF;
-			in.readLine();
-			for(unsigned int u=0; u<para->getParH(level)->K_CF; u++)
-			{
-				in.readDouble();
-				in.readDouble();
-				in.readDouble();
-			}
-		} 
-		else if (Type == "FC")
-		{
-			para->getParH(level)->K_FC                = in.readInteger();
-			para->getParD(level)->K_FC                = para->getParH(level)->K_FC;
-			para->getParH(level)->intFC.kFC           = para->getParH(level)->K_FC;
-			para->getParD(level)->intFC.kFC           = para->getParH(level)->K_FC;
-			para->getParH(level)->mem_size_kFC_off    = sizeof(real) * para->getParH(level)->K_FC;
-			para->getParD(level)->mem_size_kFC_off    = sizeof(real) * para->getParD(level)->K_FC;
-			in.readLine();
-			for(unsigned int u=0; u<para->getParH(level)->K_FC; u++)
-			{
-				//in.readInteger();
-				in.readDouble();
-				in.readDouble();
-				in.readDouble();
-			}
-		}
-
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileInterfaceOffset(const std::string fileName, std::string Type, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	if (Type == "CF")
-	{
-		for (int level = 0; level < maxlevel; level++)
-		{
-			in.readInteger();
-			in.readLine();
-			for(unsigned int u=0; u<para->getParH(level)->K_CF; u++)
-			{
-				para->getParH(level)->offCF.xOffCF[u] = (real)in.readDouble();       
-				para->getParH(level)->offCF.yOffCF[u] = (real)in.readDouble();       
-				para->getParH(level)->offCF.zOffCF[u] = (real)in.readDouble();       
-			}
-			in.readLine();
-		}
-	} 
-	else if (Type == "FC")
-	{
-		for (int level = 0; level < maxlevel; level++)
-		{
-			in.readInteger();
-			in.readLine();
-			for(unsigned int u=0; u<para->getParH(level)->K_FC; u++)
-			{
-				//para->getParH(level)->offFC.xOffFC[u] = 0.0;       
-				//para->getParH(level)->offFC.yOffFC[u] = 0.0;       
-				//para->getParH(level)->offFC.zOffFC[u] = 0.0;  
-				//in.readInteger();
-				para->getParH(level)->offFC.xOffFC[u] = (real)in.readDouble();       
-				para->getParH(level)->offFC.yOffFC[u] = (real)in.readDouble();       
-				para->getParH(level)->offFC.zOffFC[u] = (real)in.readDouble();       
-			}
-			in.readLine();
-		}
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileNoSlipBcForAlloc(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		para->getParH(level)->kQ                  = in.readInteger();
-		para->getParD(level)->kQ                  = para->getParH(level)->kQ;
-		para->getParH(level)->QWall.kQ            = para->getParH(level)->kQ;
-		para->getParD(level)->QWall.kQ            = para->getParH(level)->kQ;
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kQ; u++)
-		{
-			in.readInteger();
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileNoSlipBcQreadForAlloc(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		para->getParH(level)->kQread                  = in.readInteger();
-		para->getParD(level)->kQread                  = para->getParH(level)->kQread;
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kQread; u++)
-		{
-			in.readFloat();
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileNoSlipBcPos(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		in.readInteger();
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kQ; u++)
-		{
-			para->getParH(level)->QWall.k[u] = in.readInteger();       
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileNoSlipBcQs(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	real test;
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		in.readInteger();
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kQread; u++)
-		{
-			test = (real)in.readFloat();
-			//if (test <= 0. && test >= -1.)
-			//{
-			//	test = -0.5;
-			//} 
-			//else if (test >= 0. && test <= 1.)
-			//{
-			//	test = 0.5;
-			//}
-			//else
-			//{
-			//	test = 100.;
-			//}
-			
-			////T�ST -> shit
-			//para->getParH(level)->QWall.qread[u] = 0.5f;
-			//orig
-			para->getParH(level)->QWall.qread[u] = test;
-			//para->getParH(level)->QWall.qread[u] = (real)in.readFloat();
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileNoSlipBcValue(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		in.readInteger();
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kQ; u++)
-		{
-			para->getParH(level)->QWall.valueQ[u] = in.readLongLong();     
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::findQs(Parameter* para)
-{
-	for (int lev = 0; lev <= para->getMaxLevel(); lev++)
-	{
-		//////////////////////////////////////////////////////////////////
-		//preprocessing
-		real* QQ                  = para->getParH(lev)->QWall.q27[0]; 
-		unsigned int sizeQ           = para->getParH(lev)->kQ; 
-		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[dirZERO] = &QQ[dirZERO*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];
-		//////////////////////////////////////////////////////////////////
-		//set all to -1.0
-		for(unsigned int u=0; u<para->getParH(lev)->kQ; u++)
-		{
-			for (int dir = dirE; dir<=dirBSW; dir++)
-			{
-				Q.q27[dir][u] = -1.0f;
-			}
-		}
-		//////////////////////////////////////////////////////////////////
-		//find q-directions
-		unsigned int v = 0;
-		for(unsigned int u=0; u<para->getParH(lev)->kQ; u++)
-		{
-			noslipBoundaryFlags = para->getParH(lev)->QWall.valueQ[u];
-			//noSlipBoundaryValueVec[level].push_back(bc->getNoSlipBoundary());
-			for(int dir=dirE;dir<=dirBSW;dir++)
-			{
-				if(( ( noslipBoundaryFlags>>(optionDigits*dir) ) & maxOptionVal ) != 0 /*hasNoSlipBoundaryFlag(dir)*/)
-				{
-					Q.q27[INVDIR[dir]][u] = para->getParH(lev)->QWall.qread[v];
-					//noSlipBoundaryQsVec[level].push_back(bc->getQ(LBMD3Q27System::INVDIR[dir]));
-					v++;
-				}
-			}
-		}
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileSlipBcForAlloc(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		para->getParH(level)->kSlipQ              = in.readInteger();
-		para->getParD(level)->kSlipQ              = para->getParH(level)->kSlipQ;
-		para->getParH(level)->QSlip.kQ            = para->getParH(level)->kSlipQ;
-		para->getParD(level)->QSlip.kQ            = para->getParH(level)->kSlipQ;
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kSlipQ; u++)
-		{
-			in.readInteger();
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileSlipBcQreadForAlloc(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		para->getParH(level)->kSlipQread                  = in.readInteger();
-		para->getParD(level)->kSlipQread                  = para->getParH(level)->kSlipQread;
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kSlipQread; u++)
-		{
-			in.readFloat();
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileSlipBcPos(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		in.readInteger();
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kSlipQ; u++)
-		{
-			para->getParH(level)->QSlip.k[u] = in.readInteger();       
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileSlipBcQs(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		in.readInteger();
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kSlipQread; u++)
-		{
-			para->getParH(level)->QSlip.qread[u] = (real)in.readFloat();
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFileSlipBcValue(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		in.readInteger();
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kSlipQ; u++)
-		{
-			para->getParH(level)->QSlip.valueQ[u] = in.readLongLong();     
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::findSlipQs(Parameter* para)
-{
-	for (int lev = 0; lev <= para->getMaxLevel(); lev++)
-	{
-		//////////////////////////////////////////////////////////////////
-		//preprocessing
-		real* QQ                  = para->getParH(lev)->QSlip.q27[0]; 
-		unsigned int sizeQ           = para->getParH(lev)->kSlipQ; 
-		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[dirZERO] = &QQ[dirZERO*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];
-		//////////////////////////////////////////////////////////////////
-		//set all to -1.0
-		for(unsigned int u=0; u<para->getParH(lev)->kSlipQ; u++)
-		{
-			for (int dir = dirE; dir<=dirBSW; dir++)
-			{
-				Q.q27[dir][u] = -1.0f;
-			}
-		}
-		//////////////////////////////////////////////////////////////////
-		//find q-directions
-		unsigned int v = 0;
-		for(unsigned int u=0; u<para->getParH(lev)->kSlipQ; u++)
-		{
-			noslipBoundaryFlags = para->getParH(lev)->QSlip.valueQ[u];
-			for(int dir=dirE;dir<=dirBSW;dir++)
-			{
-				if(( ( noslipBoundaryFlags>>(optionDigits*dir) ) & maxOptionVal ) != 0 )
-				{
-					Q.q27[INVDIR[dir]][u] = para->getParH(lev)->QSlip.qread[v];
-					v++;
-				}
-			}
-		}
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFilePressBcForAlloc(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	int test = 1;
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		test = in.readInteger();
-		//if (test==0)
-		//{
-		//	printf("testlevel = %d\n", level);
-		//	//continue;
-		//}
-		para->getParH(level)->kPressQ              = test;
-		para->getParD(level)->kPressQ              = para->getParH(level)->kPressQ;
-		para->getParH(level)->QPress.kQ            = para->getParH(level)->kPressQ;
-		para->getParD(level)->QPress.kQ            = para->getParH(level)->kPressQ;
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kPressQ; u++)
-		{
-			in.readInteger();
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFilePressBcQreadForAlloc(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	int test = 1;
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		test = in.readInteger();
-		//if (test==0)
-		//{
-		//	printf("testlevel1 = %d\n", level);
-		//	//continue;
-		//}
-		para->getParH(level)->kPressQread                  = test;
-		para->getParD(level)->kPressQread                  = para->getParH(level)->kPressQread;
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kPressQread; u++)
-		{
-			in.readFloat();
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFilePressBcPos(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		in.readInteger();
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kPressQ; u++)
-		{
-			if (u==0)
-			{
-				para->getParH(level)->QPress.k[u] = in.readInteger();//0; 
-				/*in.readInteger();*/
-			}
-			else
-			{
-				para->getParH(level)->QPress.k[u] = in.readInteger();
-			}
-			//setRhoBC
-			para->getParH(level)->QPress.RhoBC[u] = (real)0.f;
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFilePressBcQs(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		in.readInteger();
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kPressQread; u++)
-		{
-			para->getParH(level)->QPress.qread[u] = (real)in.readFloat();
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFilePressBcValue(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		in.readInteger();
-		in.readLine();
-		for(unsigned int u=0; u<para->getParH(level)->kPressQ; u++)
-		{
-			para->getParH(level)->QPress.valueQ[u] = in.readLongLong();     
-		}
-		in.readLine();
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::findPressQs(Parameter* para)
-{
-	for (int lev = 0; lev <= para->getMaxLevel(); lev++)
-	{
-		//////////////////////////////////////////////////////////////////
-		//preprocessing
-		real* QQ                  = para->getParH(lev)->QPress.q27[0]; 
-		unsigned int sizeQ           = para->getParH(lev)->kPressQ; 
-		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[dirZERO] = &QQ[dirZERO*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];
-		//////////////////////////////////////////////////////////////////
-		//set all to -1.0
-		for(unsigned int u=0; u<para->getParH(lev)->kPressQ; u++)
-		{
-			for (int dir = dirE; dir<=dirBSW; dir++)
-			{
-				Q.q27[dir][u] = -1.0f;
-			}
-		}
-		//////////////////////////////////////////////////////////////////
-		//find q-directions
-		unsigned int v = 0;
-		for(unsigned int u=0; u<para->getParH(lev)->kPressQ; u++)
-		{
-			noslipBoundaryFlags = para->getParH(lev)->QPress.valueQ[u];
-			for(int dir=dirE;dir<=dirBSW;dir++)
-			{
-				if(( ( noslipBoundaryFlags>>(optionDigits*dir) ) & maxOptionVal ) != 0 )
-				{
-					Q.q27[INVDIR[dir]][u] = para->getParH(lev)->QPress.qread[v];
-					v++;
-				}
-			}
-		}
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFilePropellerCylinderForAlloc(Parameter* para)
-{
-	UbFileInputASCII in(para->getpropellerCylinder());
-	int test = 0, count = 0;
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		para->getParH(level)->QPropeller.kQ = in.readInteger();
-		para->getParD(level)->QPropeller.kQ = para->getParH(level)->QPropeller.kQ;
-		in.readLine();
-		if (level == para->getFine())
-		{
-			for(int u=0; u<para->getParH(level)->QPropeller.kQ; u++)
-			{
-				test = in.readInteger();
-				if (para->getParH(level)->geoSP[test] == GEO_FLUID)
-				{
-					count++;
-				}
-				////////////////////////////////////////////////////////////////////////
-				//for(unsigned int ix3=0; ix3<para->getParH(level)->nz; ix3++)
-				//{
-				//	for(unsigned int ix2=0; ix2<para->getParH(level)->ny; ix2++)
-				//	{
-				//		for(unsigned int ix1=0; ix1<para->getParH(level)->nx; ix1++)
-				//		{
-				//			unsigned int m = para->getParH(level)->nx*(para->getParH(level)->ny*ix3 + ix2) + ix1;
-				//			if (para->getParH(level)->k[m] == test)
-				//			{
-				//				if(para->getParH(level)->geo[m] == 1)
-				//				{
-				//					count++;									
-				//				}
-				//			}
-				//		}
-				//	}
-				//}
-				//count++;
-				////////////////////////////////////////////////////////////////////////
-				in.readDouble();
-				in.readDouble();
-				in.readDouble();
-				in.readLine();
-			}
-		}
-		else
-		{
-			for(int u=0; u<para->getParH(level)->QPropeller.kQ; u++)
-			{
-				in.readInteger();
-				in.readDouble();
-				in.readDouble();
-				in.readDouble();
-				in.readLine();
-			}
-		}
-		para->getParH(level)->QPropeller.kQ = count;
-		para->getParD(level)->QPropeller.kQ = para->getParH(level)->QPropeller.kQ;
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readFilePropellerCylinder(Parameter* para)
-{
-	UbFileInputASCII in(para->getpropellerCylinder());
-	int test = 0, count = 0;
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level < maxlevel; level++)
-	{
-		int allnodes = in.readInteger();
-		in.readLine();
-		if (level == para->getFine())
-		{
-			for(int u=0; u<allnodes; u++)
-			{
-				test = in.readInteger();
-				////////////////////////////////////////////////////////////////////////
-				if (para->getParH(level)->geoSP[test] == GEO_FLUID)
-				{
-					para->getParH(level)->QPropeller.k[count] = test; 
-					para->getParH(level)->QPropeller.Vx[count] = (real)in.readDouble();
-					para->getParH(level)->QPropeller.Vy[count] = (real)in.readDouble();
-					para->getParH(level)->QPropeller.Vz[count] = (real)in.readDouble();
-					para->getParH(level)->QPropeller.RhoBC[count] = 0.0f;									
-					count++;
-				}
-				else
-				{
-					in.readDouble();
-					in.readDouble();
-					in.readDouble();
-				}
-				//para->getParH(level)->QPropeller.k[count] = test; 
-				//para->getParH(level)->QPropeller.Vx[count] = (real)in.readDouble();
-				//para->getParH(level)->QPropeller.Vy[count] = (real)in.readDouble();
-				//para->getParH(level)->QPropeller.Vz[count] = (real)in.readDouble();
-				//para->getParH(level)->QPropeller.Vx[count]	  = 0.07f;
-				//para->getParH(level)->QPropeller.Vy[count]	  = 0.0f;
-				//para->getParH(level)->QPropeller.Vz[count]	  = 0.0f;
-				in.readLine();
-			}
-		} 
-		else
-		{
-			for(int u=0; u<allnodes; u++)
-			{
-				in.readInteger(); 
-				in.readDouble();
-				in.readDouble();
-				in.readDouble();
-				in.readLine();
-			}
-		}
-		printf("allnodes = %d, count = %d\n", allnodes, count);
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::definePropellerQs(Parameter* para)
-{
-	//////////////////////////////////////////////////////////////////
-	//preprocessing
-	real* QQ                  = para->getParH(para->getFine())->QPropeller.q27[0]; 
-	unsigned int sizeQ           = para->getParH(para->getFine())->QPropeller.kQ; 
-	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[dirZERO] = &QQ[dirZERO*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];
-	//////////////////////////////////////////////////////////////////
-	for(int u=0; u<para->getParH(para->getFine())->QPropeller.kQ; u++)
-	{
-		for (int dir = dirE; dir<=dirBSW; dir++)
-		{
-			if ((dir==dirE)  || 
-				(dir==dirNE) || (dir==dirSE) || (dir==dirTE) || (dir==dirBE) ||
-				(dir==dirTNE)|| (dir==dirBNE)|| (dir==dirTSE)|| (dir==dirBSE))
-			{
-				Q.q27[dir][u] = 1.0f;
-			} 
-			else
-			{
-				Q.q27[dir][u] = -1.0f;
-			}
-		}
-	}
-	//////////////////////////////////////////////////////////////////
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-void PositionReader::readMeasurePoints( Parameter* para ) 
-{
-	UbFileInputASCII in(para->getmeasurePoints());
-	int numberOfAllNodes = in.readInteger();
-	in.readLine();
-	int tempLevel;
-	MeasurePoints tempMP;
-	//printf("done, init the values...\n");
-	for (int u = 0; u < numberOfAllNodes; u++)
-	{
-		tempMP.name = in.readString(); 		
-		//printf("done, read the name...\n");
-		tempMP.k = in.readInteger();
-		//printf("done, read k...\n");
-		tempLevel = in.readInteger();
-		//printf("done, read level...\n");
-		in.readLine();
-		//printf("done, read the values...\n");
-		para->getParH(tempLevel)->MP.push_back(tempMP);
-		//printf("done, put it into a vector...\n");
-	}
-}
-//////////////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////////////
-
-
diff --git a/src/gpu/VirtualFluids_GPU/Input/PositionReader.h b/src/gpu/VirtualFluids_GPU/Input/PositionReader.h
deleted file mode 100644
index 610d2fb5e..000000000
--- a/src/gpu/VirtualFluids_GPU/Input/PositionReader.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef POSITION_READER_H
-#define POSITION_READER_H
-
-#include <string>
-#include "Parameter/Parameter.h"
-
-class PositionReader
-{
-public:
-   PositionReader(){}
-   ~PositionReader(){}
-   static void readFileForAlloc(const std::string fileName, Parameter* para);
-   static void readFile(const std::string fileName, std::string Type, Parameter* para);
-   static void readFileInterfaceForAlloc(const std::string fileName, std::string Type, Parameter* para);
-   static void readFileInterface(const std::string fileName, std::string Type, Parameter* para);
-   static void readFileInterfaceOffsetForAlloc(const std::string fileName, std::string Type, Parameter* para);
-   static void readFileInterfaceOffset(const std::string fileName, std::string Type, Parameter* para);
-   static void readFileNoSlipBcForAlloc(const std::string fileName, Parameter* para);
-   static void readFileNoSlipBcQreadForAlloc(const std::string fileName, Parameter* para);
-   static void readFileNoSlipBcPos(const std::string fileName, Parameter* para);
-   static void readFileNoSlipBcQs(const std::string fileName, Parameter* para);
-   static void readFileNoSlipBcValue(const std::string fileName, Parameter* para);
-   static void findQs(Parameter* para);
-   static void readFileSlipBcForAlloc(const std::string fileName, Parameter* para);
-   static void readFileSlipBcQreadForAlloc(const std::string fileName, Parameter* para);
-   static void readFileSlipBcPos(const std::string fileName, Parameter* para);
-   static void readFileSlipBcQs(const std::string fileName, Parameter* para);
-   static void readFileSlipBcValue(const std::string fileName, Parameter* para);
-   static void findSlipQs(Parameter* para);
-   static void readFilePressBcForAlloc(const std::string fileName, Parameter* para);
-   static void readFilePressBcQreadForAlloc(const std::string fileName, Parameter* para);
-   static void readFilePressBcPos(const std::string fileName, Parameter* para);
-   static void readFilePressBcQs(const std::string fileName, Parameter* para);
-   static void readFilePressBcValue(const std::string fileName, Parameter* para);
-   static void findPressQs(Parameter* para);
-   static void readFilePropellerCylinderForAlloc(Parameter* para);
-   static void readFilePropellerCylinder(Parameter* para);
-   static void definePropellerQs(Parameter* para);
-   static void readMeasurePoints(Parameter* para);
-protected:
-private:
-};
-
-#endif
\ No newline at end of file
diff --git a/src/gpu/VirtualFluids_GPU/Input/VtkGeometryReader.cpp b/src/gpu/VirtualFluids_GPU/Input/VtkGeometryReader.cpp
deleted file mode 100644
index 39cbde1d8..000000000
--- a/src/gpu/VirtualFluids_GPU/Input/VtkGeometryReader.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-#include "VtkGeometryReader.h"
-
-#include "basics/utilities/UbFileInputASCII.h"
-
-void VtkGeometryReader::readFile(const std::string& fileName, unsigned int* geoMat)
-{
-   UbFileInputASCII in(fileName);
-
-   //in.readLine();
-   //in.readLine();
-   //in.readLine();
-   //in.readLine();
-   //in.readString();
-   //int itsNX1 = in.readInteger();
-   //int itsNX2 = in.readInteger();
-   //int itsNX3 = in.readInteger();
-   //int nn = itsNX1 * itsNX2 * itsNX3;
-   //in.readLine();
-   //in.readString();
-   //in.readInteger();
-   //in.readString();
-   //in.readLine();
-
-   //for(int k=0 ; k<itsNX3 ; k++){
-   //   for(int j=0 ; j<itsNX2 ; j++){
-   //      for(int i=0 ; i<itsNX1 ; i++){
-   //         //float x =  i;//(j&0x1)^(k&0x1)  + i*2;
-   //         //float y =  j;
-   //         //float z =  k;
-   //         in.readFloat();
-   //         in.readFloat();
-   //         in.readFloat();
-   //         in.readLine();
-   //      }
-   //   }
-   //}
-
-
-   //in.readString();
-   //in.readInteger();
-   //in.readLine();
-
-   //in.readLine();
-   //in.readLine();
-
-   //for(int k=0 ; k<itsNX3 ; k++){
-   //   for(int j=0 ; j<itsNX2 ; j++){
-   //      for(int i=0 ; i<itsNX1 ; i++){
-   //         int m = itsNX1*(itsNX2*k + j) + i;
-   //         geoMat[m] = in.readInteger();
-   //         in.readLine();
-   //      }
-   //   }
-   //} 
-   //int nn = itsNX1 * itsNX2 * itsNX3;
-   in.readLine();
-   in.readLine();
-   in.readLine();
-   in.readLine();
-   in.readString();
-   unsigned int itsNX1 = in.readInteger();
-   unsigned int itsNX2 = in.readInteger();
-   unsigned int itsNX3 = in.readInteger();
-      //int nn = itsNX1 * itsNX2 * itsNX3;
-
-   std::cout << "NX = " << itsNX1 << "\n";
-   std::cout << "NY = " << itsNX2 << "\n";
-   std::cout << "NZ = " << itsNX3 << "\n";
-
-   in.readLine();
-   in.readString();
-   in.readDouble();
-   in.readDouble();
-   in.readDouble();
-   //in.readInteger();
-   //in.readInteger();
-   //in.readInteger();
-   in.readLine();
-   in.readString();
-   in.readDouble();
-   in.readDouble();
-   in.readDouble();
-   in.readLine();
-   in.readString();
-   in.readInteger();
-   in.readLine();
-   in.readLine();
-   in.readLine();
-
-   for(unsigned int k=0 ; k<itsNX3 ; k++){
-      for(unsigned int j=0 ; j<itsNX2 ; j++){
-         for(unsigned int i=0 ; i<itsNX1 ; i++){
-            //int m = nx*(ny*k + j) + i;
-            //in.readInteger( itsGeoMatrix(i,j,k) );
-            //in.readLine();
-                     unsigned int m = itsNX1*(itsNX2*k + j) + i;
-                     geoMat[m] = in.readInteger();
-                     //if (i==0 && j==0 && k>50 && k<60)
-                     //{
-                     //   std::cout << "Read = " << geoMat[m] << "\n";                        
-                     //}
-         }
-      }
-   }
-
-}
\ No newline at end of file
diff --git a/src/gpu/VirtualFluids_GPU/Input/VtkGeometryReader.h b/src/gpu/VirtualFluids_GPU/Input/VtkGeometryReader.h
deleted file mode 100644
index 15cabf8db..000000000
--- a/src/gpu/VirtualFluids_GPU/Input/VtkGeometryReader.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef VTKGEOMETRYREADER_H
-#define VTKGEOMETRYREADER_H
-
-#include <string>
-
-/**
-* @file
-* @author  Kostyantyn Kucher <k.kucher@gmx.net>
-* @version 1.0
-*
-* @section LICENSE
-*
-* @section DESCRIPTION
-*
-* Read geometry from VTK Lagacy File 
-* geometry is integer values for node types difinition
-* respectively
-* SOLID = 
-* FLUID = 
-* 
-*/
-
-class VtkGeometryReader
-{
-public:
-   VtkGeometryReader(){}
-   ~VtkGeometryReader(){}
-   static void readFile(const std::string& fileName, unsigned int* geoMat);
-protected:
-private:
-};
-
-#endif
\ No newline at end of file
diff --git a/src/gpu/VirtualFluids_GPU/Input/kFullReader.cpp b/src/gpu/VirtualFluids_GPU/Input/kFullReader.cpp
deleted file mode 100644
index 69f20d48d..000000000
--- a/src/gpu/VirtualFluids_GPU/Input/kFullReader.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-#include "kFullReader.h"
-
-#include "basics/utilities/UbFileInputASCII.h"
-
-void kFullReader::readFileForAlloc(const std::string fileName, Parameter* para)
-{
-   UbFileInputASCII in(fileName);
-
-   int maxlevel = in.readInteger();
-   in.readLine();
-   
-   for (int level = 0; level <= maxlevel; level++)
-   {
-	   int nodeNumberX1 = in.readInteger() - (2 * level);
-	   int nodeNumberX2 = in.readInteger() - (2 * level);
-	   int nodeNumberX3 = in.readInteger() - (2 * level);
-	   para->getParH(level)->gridNX = nodeNumberX1;
-	   para->getParH(level)->gridNY = nodeNumberX2;
-	   para->getParH(level)->gridNZ = nodeNumberX3;
-	   para->getParD(level)->gridNX = para->getParH(level)->gridNX;
-	   para->getParD(level)->gridNY = para->getParH(level)->gridNY;
-	   para->getParD(level)->gridNZ = para->getParH(level)->gridNZ;
-
-	   //weitere Werte setzen
-	   para->getParH(level)->nx                    = para->getParH(level)->gridNX + 2 * STARTOFFX;
-	   para->getParH(level)->ny                    = para->getParH(level)->gridNY + 2 * STARTOFFY;
-	   para->getParH(level)->nz                    = para->getParH(level)->gridNZ + 2 * STARTOFFZ;
-	   para->getParH(level)->size_Mat              = para->getParH(level)->nx * para->getParH(level)->ny * para->getParH(level)->nz;
-	   para->getParH(level)->mem_size_int          = sizeof(unsigned int) * para->getParH(level)->size_Mat;
-	   //
-	   para->getParD(level)->nx                    = para->getParD(level)->gridNX + 2 * STARTOFFX;
-	   para->getParD(level)->ny                    = para->getParD(level)->gridNY + 2 * STARTOFFY;
-	   para->getParD(level)->nz                    = para->getParD(level)->gridNZ + 2 * STARTOFFZ;
-	   para->getParD(level)->size_Mat              = para->getParD(level)->nx * para->getParD(level)->ny * para->getParD(level)->nz;
-	   para->getParD(level)->mem_size_int          = sizeof(unsigned int) * para->getParD(level)->size_Mat;
-
-
-	   in.readLine();
-	   for(unsigned int ix3=STARTOFFZ - level; ix3<para->getParH(level)->gridNZ + STARTOFFZ + level ; ix3++)
-	   {
-		   for(unsigned int ix2=STARTOFFY - level; ix2<para->getParH(level)->gridNY + STARTOFFY + level ; ix2++)
-		   {
-			   for(unsigned int ix1=STARTOFFX - level; ix1<para->getParH(level)->gridNX + STARTOFFX + level ; ix1++)
-			   {
-				   in.readInteger();
-			   }
-		   }
-	   }
-	   in.readLine();
-   } //end levelloop
-}
-
-void kFullReader::readFile(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level <= maxlevel; level++)
-	{
-		in.readInteger();
-		in.readInteger();
-		in.readInteger();
-
-		in.readLine();
-		for(unsigned int ix3=STARTOFFZ - level; ix3<para->getParH(level)->gridNZ + STARTOFFZ + level; ix3++)
-		{
-			for(unsigned int ix2=STARTOFFY - level; ix2<para->getParH(level)->gridNY + STARTOFFY + level; ix2++)
-			{
-				for(unsigned int ix1=STARTOFFX - level; ix1<para->getParH(level)->gridNX + STARTOFFX + level; ix1++)
-				{
-					unsigned int m = para->getParH(level)->nx*(para->getParH(level)->ny*ix3 + ix2) + ix1;
-					para->getParH(level)->k[m] =  in.readInteger();//+1;//!!achtung + 1
-				}
-			}
-		}
-		in.readLine();
-	} //end levelloop
-}
-
-
-//GEO-FULL
-void kFullReader::readGeoFull(const std::string fileName, Parameter* para)
-{
-	UbFileInputASCII in(fileName);
-	int test = 0;
-	int maxlevel = in.readInteger();
-	in.readLine();
-
-	for (int level = 0; level <= maxlevel; level++)
-	{
-		in.readInteger();
-		in.readInteger();
-		in.readInteger();
-
-		in.readLine();
-		for(unsigned int ix3=STARTOFFZ - level; ix3<para->getParH(level)->gridNZ + STARTOFFZ + level; ix3++)
-		{
-			for(unsigned int ix2=STARTOFFY - level; ix2<para->getParH(level)->gridNY + STARTOFFY + level; ix2++)
-			{
-				for(unsigned int ix1=STARTOFFX - level; ix1<para->getParH(level)->gridNX + STARTOFFX + level; ix1++)
-				{
-					unsigned int m = para->getParH(level)->nx*(para->getParH(level)->ny*ix3 + ix2) + ix1;
-					test = in.readInteger();
-					if (test == 7)
-					{
-						test = 1;
-					}
-					else if (test != 1)//???
-					{
-						test = 16;
-					}
-					para->getParH(level)->geo[m] = test;
-					//para->getParH(level)->geo[m] =  in.readInteger();//+1;//!!achtung + 1
-				}
-			}
-		}
-		in.readLine();
-	} //end levelloop
-}
\ No newline at end of file
diff --git a/src/gpu/VirtualFluids_GPU/Input/kFullReader.h b/src/gpu/VirtualFluids_GPU/Input/kFullReader.h
deleted file mode 100644
index 35298de2b..000000000
--- a/src/gpu/VirtualFluids_GPU/Input/kFullReader.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef KFULL_READER_H
-#define KFULL_READER_H
-
-#include <string>
-#include "Parameter/Parameter.h"
-
-class kFullReader
-{
-public:
-   kFullReader(){}
-   ~kFullReader(){}
-   static void readFile(const std::string fileName, Parameter* para);
-   static void readFileForAlloc(const std::string fileName, Parameter* para);
-   static void readGeoFull(const std::string fileName, Parameter* para);
-protected:
-private:
-};
-
-#endif
\ No newline at end of file
diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
index 2edb79a8a..42b39be68 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
+++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
@@ -13,10 +13,6 @@
 #include "GPU/devCheck.h"
 #include "basics/utilities/UbFileOutputASCII.h"
 //////////////////////////////////////////////////////////////////////////
-#include "Input/VtkGeometryReader.h"
-#include "Input/kFullReader.h"
-#include "Input/PositionReader.h"
-//////////////////////////////////////////////////////////////////////////
 #include "Output/MeasurePointWriter.hpp"
 #include "Output/AnalysisData.hpp"
 #include "Output/InterfaceDebugWriter.hpp"
-- 
GitLab