diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
index a3075471092286128326a23a1a76103243b484fd..d63fb1d3f00172cba3fa8a15f449d6eb65199c8a 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
+++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
@@ -47,7 +47,7 @@
 Parameter::Parameter(const vf::basics::ConfigurationFile &configData, int numberOfProcesses, int myId)
 {
     ic.numprocs = numberOfProcesses;
-    ic.myid     = myId;
+    ic.myid = myId;
 
     readConfigData(configData);
     // initLBMSimulationParameter();
@@ -111,13 +111,13 @@ void Parameter::readConfigData(const vf::basics::ConfigurationFile &configData)
     //////////////////////////////////////////////////////////////////////////
     if (configData.contains("UseMeasurePoints"))
         this->setUseMeasurePoints(configData.getValue<bool>("UseMeasurePoints"));
-	//////////////////////////////////////////////////////////////////////////
+    //////////////////////////////////////////////////////////////////////////
     if (configData.contains("UseWale"))
         this->setUseWale(configData.getValue<bool>("UseWale"));
-	//////////////////////////////////////////////////////////////////////////
+    //////////////////////////////////////////////////////////////////////////
     if (configData.contains("UseAMD"))
         this->setUseAMD(configData.getValue<bool>("UseAMD"));
-	//////////////////////////////////////////////////////////////////////////
+    //////////////////////////////////////////////////////////////////////////
     if (configData.contains("SGSconstant"))
         this->setSGSConstant(configData.getValue<real>("SGSconstant"));
     //////////////////////////////////////////////////////////////////////////
@@ -583,65 +583,134 @@ void Parameter::setForcing(real forcingX, real forcingY, real forcingZ)
     this->hostForcing[2] = forcingZ;
 }
 void Parameter::setQuadricLimiters(real quadricLimiterP, real quadricLimiterM, real quadricLimiterD)
-{	
-	this->hostQuadricLimiters[0] = quadricLimiterP;
-	this->hostQuadricLimiters[1] = quadricLimiterM;
-	this->hostQuadricLimiters[2] = quadricLimiterD;
+{
+    this->hostQuadricLimiters[0] = quadricLimiterP;
+    this->hostQuadricLimiters[1] = quadricLimiterM;
+    this->hostQuadricLimiters[2] = quadricLimiterD;
 }
 void Parameter::setPhi(real inPhi)
 {
-	Phi = inPhi;
+    Phi = inPhi;
 }
 void Parameter::setAngularVelocity(real inAngVel)
 {
-	angularVelocity = inAngVel;
+    angularVelocity = inAngVel;
 }
 void Parameter::setStepEnsight(unsigned int step)
 {
-	this->stepEnsight = step;
+    this->stepEnsight = step;
 }
 void Parameter::setOutputCount(unsigned int outputCount)
 {
-	this->outputCount = outputCount;
+    this->outputCount = outputCount;
 }
 void Parameter::setlimitOfNodesForVTK(unsigned int limitOfNodesForVTK)
 {
     this->limitOfNodesForVTK = limitOfNodesForVTK;
 }
-void Parameter::setStartTurn(unsigned int inStartTurn) { startTurn = inStartTurn; }
-void Parameter::setDiffOn(bool isDiff) { diffOn = isDiff; }
-void Parameter::setCompOn(bool isComp) { compOn = isComp; }
-void Parameter::setDiffMod(int DiffMod) { diffMod = DiffMod; }
-void Parameter::setD3Qxx(int d3qxx) { this->D3Qxx = d3qxx; }
+void Parameter::setStartTurn(unsigned int inStartTurn)
+{
+    startTurn = inStartTurn;
+}
+void Parameter::setDiffOn(bool isDiff)
+{
+    diffOn = isDiff;
+}
+void Parameter::setCompOn(bool isComp)
+{
+    compOn = isComp;
+}
+void Parameter::setDiffMod(int DiffMod)
+{
+    diffMod = DiffMod;
+}
+void Parameter::setD3Qxx(int d3qxx)
+{
+    this->D3Qxx = d3qxx;
+}
 void Parameter::setMaxLevel(int maxlevel)
 {
     this->maxlevel = maxlevel - 1;
-    this->fine     = this->maxlevel;
+    this->fine = this->maxlevel;
     parH.resize(this->maxlevel + 1);
     parD.resize(this->maxlevel + 1);
 }
-void Parameter::setParticleBasicLevel(int pbl) { this->particleBasicLevel = pbl; }
-void Parameter::setParticleInitLevel(int pil) { this->particleInitLevel = pil; }
-void Parameter::setNumberOfParticles(int nop) { this->numberOfParticles = nop; }
-void Parameter::setCalcParticles(bool calcParticles) { this->calcParticles = calcParticles; }
-void Parameter::setStartXHotWall(real startXHotWall) { this->startXHotWall = startXHotWall; }
-void Parameter::setEndXHotWall(real endXHotWall) { this->endXHotWall = endXHotWall; }
-void Parameter::setTEnd(unsigned int tend) { ic.tend = tend; }
-void Parameter::setTOut(unsigned int tout) { ic.tout = tout; }
-void Parameter::setTStartOut(unsigned int tStartOut) { ic.tStartOut = tStartOut; }
-void Parameter::setTimestepOfCoarseLevel(unsigned int timestep) { this->timestep = timestep; }
+void Parameter::setParticleBasicLevel(int pbl)
+{
+    this->particleBasicLevel = pbl;
+}
+void Parameter::setParticleInitLevel(int pil)
+{
+    this->particleInitLevel = pil;
+}
+void Parameter::setNumberOfParticles(int nop)
+{
+    this->numberOfParticles = nop;
+}
+void Parameter::setCalcParticles(bool calcParticles)
+{
+    this->calcParticles = calcParticles;
+}
+void Parameter::setStartXHotWall(real startXHotWall)
+{
+    this->startXHotWall = startXHotWall;
+}
+void Parameter::setEndXHotWall(real endXHotWall)
+{
+    this->endXHotWall = endXHotWall;
+}
+void Parameter::setTEnd(unsigned int tend)
+{
+    ic.tend = tend;
+}
+void Parameter::setTOut(unsigned int tout)
+{
+    ic.tout = tout;
+}
+void Parameter::setTStartOut(unsigned int tStartOut)
+{
+    ic.tStartOut = tStartOut;
+}
+void Parameter::setTimestepOfCoarseLevel(unsigned int timestep)
+{
+    this->timestep = timestep;
+}
 void Parameter::setCalcTurbulenceIntensity(bool calcVelocityAndFluctuations)
 {
     this->calcVelocityAndFluctuations = calcVelocityAndFluctuations;
 }
-void Parameter::setCalcMedian(bool calcMedian) { ic.calcMedian = calcMedian; }
-void Parameter::setCalcDragLift(bool calcDragLift) { this->calcDragLift = calcDragLift; }
-void Parameter::setCalcCp(bool calcCp) { this->calcCp = calcCp; }
-void Parameter::setWriteVeloASCIIfiles(bool writeVeloASCII) { this->writeVeloASCII = writeVeloASCII; }
-void Parameter::setCalcPlaneConc(bool calcPlaneConc) { this->calcPlaneConc = calcPlaneConc; }
-void Parameter::setTimeCalcMedStart(int CalcMedStart) { ic.tCalcMedStart = CalcMedStart; }
-void Parameter::setTimeCalcMedEnd(int CalcMedEnd) { ic.tCalcMedEnd = CalcMedEnd; }
-void Parameter::setOutputPath(std::string oPath) { ic.oPath = oPath; }
+void Parameter::setCalcMedian(bool calcMedian)
+{
+    ic.calcMedian = calcMedian;
+}
+void Parameter::setCalcDragLift(bool calcDragLift)
+{
+    this->calcDragLift = calcDragLift;
+}
+void Parameter::setCalcCp(bool calcCp)
+{
+    this->calcCp = calcCp;
+}
+void Parameter::setWriteVeloASCIIfiles(bool writeVeloASCII)
+{
+    this->writeVeloASCII = writeVeloASCII;
+}
+void Parameter::setCalcPlaneConc(bool calcPlaneConc)
+{
+    this->calcPlaneConc = calcPlaneConc;
+}
+void Parameter::setTimeCalcMedStart(int CalcMedStart)
+{
+    ic.tCalcMedStart = CalcMedStart;
+}
+void Parameter::setTimeCalcMedEnd(int CalcMedEnd)
+{
+    ic.tCalcMedEnd = CalcMedEnd;
+}
+void Parameter::setOutputPath(std::string oPath)
+{
+    ic.oPath = oPath;
+}
 void Parameter::setOutputPrefix(std::string oPrefix)
 {
     // std::string test = fname;
@@ -652,103 +721,281 @@ void Parameter::setFName(std::string fname)
     // std::string test = fname;
     ic.fname = fname;
 }
-void Parameter::setPrintFiles(bool printfiles) { ic.printFiles = printfiles; }
-void Parameter::setReadGeo(bool readGeo) { ic.readGeo = readGeo; }
-void Parameter::setDiffusivity(real Diffusivity) { ic.Diffusivity = Diffusivity; }
-void Parameter::setTemperatureInit(real Temp) { ic.Temp = Temp; }
-void Parameter::setTemperatureBC(real TempBC) { ic.TempBC = TempBC; }
-void Parameter::setViscosity(real Viscosity) { ic.vis = Viscosity; }
-void Parameter::setVelocity(real Velocity) { ic.u0 = Velocity; }
-void Parameter::setViscosityRatio(real ViscosityRatio) { ic.vis_ratio = ViscosityRatio; }
-void Parameter::setVelocityRatio(real VelocityRatio) { ic.u0_ratio = VelocityRatio; }
-void Parameter::setDensityRatio(real DensityRatio) { ic.delta_rho = DensityRatio; }
-void Parameter::setPressRatio(real PressRatio) { ic.delta_press = PressRatio; }
+void Parameter::setPrintFiles(bool printfiles)
+{
+    ic.printFiles = printfiles;
+}
+void Parameter::setReadGeo(bool readGeo)
+{
+    ic.readGeo = readGeo;
+}
+void Parameter::setDiffusivity(real Diffusivity)
+{
+    ic.Diffusivity = Diffusivity;
+}
+void Parameter::setTemperatureInit(real Temp)
+{
+    ic.Temp = Temp;
+}
+void Parameter::setTemperatureBC(real TempBC)
+{
+    ic.TempBC = TempBC;
+}
+void Parameter::setViscosity(real Viscosity)
+{
+    ic.vis = Viscosity;
+}
+void Parameter::setVelocity(real Velocity)
+{
+    ic.u0 = Velocity;
+}
+void Parameter::setViscosityRatio(real ViscosityRatio)
+{
+    ic.vis_ratio = ViscosityRatio;
+}
+void Parameter::setVelocityRatio(real VelocityRatio)
+{
+    ic.u0_ratio = VelocityRatio;
+}
+void Parameter::setDensityRatio(real DensityRatio)
+{
+    ic.delta_rho = DensityRatio;
+}
+void Parameter::setPressRatio(real PressRatio)
+{
+    ic.delta_press = PressRatio;
+}
 real Parameter::getTimeRatio()
 {
-	return this->getViscosityRatio()*pow(this->getVelocityRatio(),-2);
+    return this->getViscosityRatio() * pow(this->getVelocityRatio(), -2);
 }
 real Parameter::getForceRatio()
 {
-	return this->getDensityRatio()*pow(this->getViscosityRatio(),2);
+    return this->getDensityRatio() * pow(this->getViscosityRatio(), 2);
 }
 real Parameter::getLengthRatio()
 {
-	return this->getViscosityRatio()/this->getVelocityRatio();
-}
-void Parameter::setRealX(real RealX) { ic.RealX = RealX; }
-void Parameter::setRealY(real RealY) { ic.RealY = RealY; }
-void Parameter::setPressInID(unsigned int PressInID) { ic.PressInID = PressInID; }
-void Parameter::setPressOutID(unsigned int PressOutID) { ic.PressOutID = PressOutID; }
-void Parameter::setPressInZ(unsigned int PressInZ) { ic.PressInZ = PressInZ; }
-void Parameter::setPressOutZ(unsigned int PressOutZ) { ic.PressOutZ = PressOutZ; }
-void Parameter::setMaxDev(int maxdev) { ic.maxdev = maxdev; }
-void Parameter::setMyID(int myid) { ic.myid = myid; }
-void Parameter::setNumprocs(int numprocs) { ic.numprocs = numprocs; }
-void Parameter::setDevices(std::vector<uint> devices) { ic.devices = devices; }
-void Parameter::setGeometryFileC(std::string GeometryFileC) { ic.geometryFileC = GeometryFileC; }
-void Parameter::setGeometryFileM(std::string GeometryFileM) { ic.geometryFileM = GeometryFileM; }
-void Parameter::setGeometryFileF(std::string GeometryFileF) { ic.geometryFileF = GeometryFileF; }
-void Parameter::setRe(real Re) { ic.Re = Re; }
-void Parameter::setFactorPressBC(real factorPressBC) { ic.factorPressBC = factorPressBC; }
-void Parameter::setIsGeo(bool isGeo) { ic.isGeo = isGeo; }
-void Parameter::setIsGeoNormal(bool isGeoNormal) { ic.isGeoNormal = isGeoNormal; }
-void Parameter::setIsInflowNormal(bool isInflowNormal) { ic.isInflowNormal = isInflowNormal; }
-void Parameter::setIsOutflowNormal(bool isOutflowNormal) { ic.isOutflowNormal = isOutflowNormal; }
-void Parameter::setIsProp(bool isProp) { ic.isProp = isProp; }
-void Parameter::setIsCp(bool isCp) { ic.isCp = isCp; }
-void Parameter::setConcFile(bool concFile) { ic.isConc = concFile; }
-void Parameter::setStreetVelocityFile(bool streetVelocityFile) { ic.streetVelocityFile = streetVelocityFile; }
-void Parameter::setUseMeasurePoints(bool useMeasurePoints) { ic.isMeasurePoints = useMeasurePoints; }
-void Parameter::setUseInitNeq(bool useInitNeq) { ic.isInitNeq = useInitNeq; }
-void Parameter::setSimulatePorousMedia(bool simulatePorousMedia) { ic.simulatePorousMedia = simulatePorousMedia; }
+    return this->getViscosityRatio() / this->getVelocityRatio();
+}
+void Parameter::setRealX(real RealX)
+{
+    ic.RealX = RealX;
+}
+void Parameter::setRealY(real RealY)
+{
+    ic.RealY = RealY;
+}
+void Parameter::setPressInID(unsigned int PressInID)
+{
+    ic.PressInID = PressInID;
+}
+void Parameter::setPressOutID(unsigned int PressOutID)
+{
+    ic.PressOutID = PressOutID;
+}
+void Parameter::setPressInZ(unsigned int PressInZ)
+{
+    ic.PressInZ = PressInZ;
+}
+void Parameter::setPressOutZ(unsigned int PressOutZ)
+{
+    ic.PressOutZ = PressOutZ;
+}
+void Parameter::setMaxDev(int maxdev)
+{
+    ic.maxdev = maxdev;
+}
+void Parameter::setMyID(int myid)
+{
+    ic.myid = myid;
+}
+void Parameter::setNumprocs(int numprocs)
+{
+    ic.numprocs = numprocs;
+}
+void Parameter::setDevices(std::vector<uint> devices)
+{
+    ic.devices = devices;
+}
+void Parameter::setGeometryFileC(std::string GeometryFileC)
+{
+    ic.geometryFileC = GeometryFileC;
+}
+void Parameter::setGeometryFileM(std::string GeometryFileM)
+{
+    ic.geometryFileM = GeometryFileM;
+}
+void Parameter::setGeometryFileF(std::string GeometryFileF)
+{
+    ic.geometryFileF = GeometryFileF;
+}
+void Parameter::setRe(real Re)
+{
+    ic.Re = Re;
+}
+void Parameter::setFactorPressBC(real factorPressBC)
+{
+    ic.factorPressBC = factorPressBC;
+}
+void Parameter::setIsGeo(bool isGeo)
+{
+    ic.isGeo = isGeo;
+}
+void Parameter::setIsGeoNormal(bool isGeoNormal)
+{
+    ic.isGeoNormal = isGeoNormal;
+}
+void Parameter::setIsInflowNormal(bool isInflowNormal)
+{
+    ic.isInflowNormal = isInflowNormal;
+}
+void Parameter::setIsOutflowNormal(bool isOutflowNormal)
+{
+    ic.isOutflowNormal = isOutflowNormal;
+}
+void Parameter::setIsProp(bool isProp)
+{
+    ic.isProp = isProp;
+}
+void Parameter::setIsCp(bool isCp)
+{
+    ic.isCp = isCp;
+}
+void Parameter::setConcFile(bool concFile)
+{
+    ic.isConc = concFile;
+}
+void Parameter::setStreetVelocityFile(bool streetVelocityFile)
+{
+    ic.streetVelocityFile = streetVelocityFile;
+}
+void Parameter::setUseMeasurePoints(bool useMeasurePoints)
+{
+    ic.isMeasurePoints = useMeasurePoints;
+}
+void Parameter::setUseInitNeq(bool useInitNeq)
+{
+    ic.isInitNeq = useInitNeq;
+}
+void Parameter::setSimulatePorousMedia(bool simulatePorousMedia)
+{
+    ic.simulatePorousMedia = simulatePorousMedia;
+}
 void Parameter::setUseTurbulentViscosity(bool useTurbulentViscosity)
 {
-	ic.isTurbulentViscosity = useTurbulentViscosity;
+    ic.isTurbulentViscosity = useTurbulentViscosity;
 }
 void Parameter::setUseWale(bool useWale)
 {
-	ic.isWale = useWale;
-	if (useWale) setUseTurbulentViscosity(true);
+    ic.isWale = useWale;
+    if (useWale)
+        setUseTurbulentViscosity(true);
 }
 void Parameter::setUseAMD(bool useAMD)
 {
-	ic.isAMD = useAMD;
-	if (useAMD) setUseTurbulentViscosity(true);
+    ic.isAMD = useAMD;
+    if (useAMD)
+        setUseTurbulentViscosity(true);
 }
 void Parameter::setSGSConstant(real SGSConstant)
 {
-	ic.SGSConstant = SGSConstant;
+    ic.SGSConstant = SGSConstant;
 }
 void Parameter::setHasWallModelMonitor(bool hasWallModelMonitor)
 {
-	ic.hasWallModelMonitor = hasWallModelMonitor;
-}
-
-
-void Parameter::setIsF3(bool isF3) { this->isF3 = isF3; }
-
-void Parameter::setIsBodyForce(bool isBodyForce) { this->isBodyForce = isBodyForce; }
-
-void Parameter::setGridX(std::vector<int> GridX) { ic.GridX = GridX; }
-void Parameter::setGridY(std::vector<int> GridY) { ic.GridY = GridY; }
-void Parameter::setGridZ(std::vector<int> GridZ) { ic.GridZ = GridZ; }
-void Parameter::setDistX(std::vector<int> DistX) { ic.DistX = DistX; }
-void Parameter::setDistY(std::vector<int> DistY) { ic.DistY = DistY; }
-void Parameter::setDistZ(std::vector<int> DistZ) { ic.DistZ = DistZ; }
-void Parameter::setScaleLBMtoSI(std::vector<real> scaleLBMtoSI) { ic.scaleLBMtoSI = scaleLBMtoSI; }
-void Parameter::setTranslateLBMtoSI(std::vector<real> translateLBMtoSI) { ic.translateLBMtoSI = translateLBMtoSI; }
-void Parameter::setMinCoordX(std::vector<real> MinCoordX) { ic.minCoordX = MinCoordX; }
-void Parameter::setMinCoordY(std::vector<real> MinCoordY) { ic.minCoordY = MinCoordY; }
-void Parameter::setMinCoordZ(std::vector<real> MinCoordZ) { ic.minCoordZ = MinCoordZ; }
-void Parameter::setMaxCoordX(std::vector<real> MaxCoordX) { ic.maxCoordX = MaxCoordX; }
-void Parameter::setMaxCoordY(std::vector<real> MaxCoordY) { ic.maxCoordY = MaxCoordY; }
-void Parameter::setMaxCoordZ(std::vector<real> MaxCoordZ) { ic.maxCoordZ = MaxCoordZ; }
-void Parameter::setTempH(TempforBoundaryConditions *TempH) { this->TempH = TempH; }
-void Parameter::setTempD(TempforBoundaryConditions *TempD) { this->TempD = TempD; }
-void Parameter::setTempVelH(TempVelforBoundaryConditions *TempVelH) { this->TempVelH = TempVelH; }
-void Parameter::setTempVelD(TempVelforBoundaryConditions *TempVelD) { this->TempVelD = TempVelD; }
-void Parameter::setTempPressH(TempPressforBoundaryConditions *TempPressH) { this->TempPressH = TempPressH; }
-void Parameter::setTempPressD(TempPressforBoundaryConditions *TempPressD) { this->TempPressD = TempPressD; }
+    ic.hasWallModelMonitor = hasWallModelMonitor;
+}
+
+void Parameter::setIsF3(bool isF3)
+{
+    this->isF3 = isF3;
+}
+
+void Parameter::setIsBodyForce(bool isBodyForce)
+{
+    this->isBodyForce = isBodyForce;
+}
+
+void Parameter::setGridX(std::vector<int> GridX)
+{
+    ic.GridX = GridX;
+}
+void Parameter::setGridY(std::vector<int> GridY)
+{
+    ic.GridY = GridY;
+}
+void Parameter::setGridZ(std::vector<int> GridZ)
+{
+    ic.GridZ = GridZ;
+}
+void Parameter::setDistX(std::vector<int> DistX)
+{
+    ic.DistX = DistX;
+}
+void Parameter::setDistY(std::vector<int> DistY)
+{
+    ic.DistY = DistY;
+}
+void Parameter::setDistZ(std::vector<int> DistZ)
+{
+    ic.DistZ = DistZ;
+}
+void Parameter::setScaleLBMtoSI(std::vector<real> scaleLBMtoSI)
+{
+    ic.scaleLBMtoSI = scaleLBMtoSI;
+}
+void Parameter::setTranslateLBMtoSI(std::vector<real> translateLBMtoSI)
+{
+    ic.translateLBMtoSI = translateLBMtoSI;
+}
+void Parameter::setMinCoordX(std::vector<real> MinCoordX)
+{
+    ic.minCoordX = MinCoordX;
+}
+void Parameter::setMinCoordY(std::vector<real> MinCoordY)
+{
+    ic.minCoordY = MinCoordY;
+}
+void Parameter::setMinCoordZ(std::vector<real> MinCoordZ)
+{
+    ic.minCoordZ = MinCoordZ;
+}
+void Parameter::setMaxCoordX(std::vector<real> MaxCoordX)
+{
+    ic.maxCoordX = MaxCoordX;
+}
+void Parameter::setMaxCoordY(std::vector<real> MaxCoordY)
+{
+    ic.maxCoordY = MaxCoordY;
+}
+void Parameter::setMaxCoordZ(std::vector<real> MaxCoordZ)
+{
+    ic.maxCoordZ = MaxCoordZ;
+}
+void Parameter::setTempH(TempforBoundaryConditions *TempH)
+{
+    this->TempH = TempH;
+}
+void Parameter::setTempD(TempforBoundaryConditions *TempD)
+{
+    this->TempD = TempD;
+}
+void Parameter::setTempVelH(TempVelforBoundaryConditions *TempVelH)
+{
+    this->TempVelH = TempVelH;
+}
+void Parameter::setTempVelD(TempVelforBoundaryConditions *TempVelD)
+{
+    this->TempVelD = TempVelD;
+}
+void Parameter::setTempPressH(TempPressforBoundaryConditions *TempPressH)
+{
+    this->TempPressH = TempPressH;
+}
+void Parameter::setTempPressD(TempPressforBoundaryConditions *TempPressD)
+{
+    this->TempPressD = TempPressD;
+}
 // void Parameter::setkInflowQ(unsigned int kInflowQ)
 //{
 //   this->kInflowQ = kInflowQ;
@@ -773,176 +1020,380 @@ void Parameter::setTempPressD(TempPressforBoundaryConditions *TempPressD) { this
 //{
 //   this->QoutflowD = QoutflowD;
 //}
-void Parameter::setkFull(std::string kFull) { ic.kFull = kFull; }
-void Parameter::setgeoFull(std::string geoFull) { ic.geoFull = geoFull; }
-void Parameter::setgeoVec(std::string geoVec) { ic.geoVec = geoVec; }
-void Parameter::setcoordX(std::string coordX) { ic.coordX = coordX; }
-void Parameter::setcoordY(std::string coordY) { ic.coordY = coordY; }
-void Parameter::setcoordZ(std::string coordZ) { ic.coordZ = coordZ; }
-void Parameter::setneighborX(std::string neighborX) { ic.neighborX = neighborX; }
-void Parameter::setneighborY(std::string neighborY) { ic.neighborY = neighborY; }
-void Parameter::setneighborZ(std::string neighborZ) { ic.neighborZ = neighborZ; }
-void Parameter::setneighborWSB(std::string neighborWSB) { ic.neighborWSB = neighborWSB; }
-void Parameter::setscaleCFC(std::string scaleCFC) { ic.scaleCFC = scaleCFC; }
-void Parameter::setscaleCFF(std::string scaleCFF) { ic.scaleCFF = scaleCFF; }
-void Parameter::setscaleFCC(std::string scaleFCC) { ic.scaleFCC = scaleFCC; }
-void Parameter::setscaleFCF(std::string scaleFCF) { ic.scaleFCF = scaleFCF; }
-void Parameter::setscaleOffsetCF(std::string scaleOffsetCF) { ic.scaleOffsetCF = scaleOffsetCF; }
-void Parameter::setscaleOffsetFC(std::string scaleOffsetFC) { ic.scaleOffsetFC = scaleOffsetFC; }
-void Parameter::setgeomBoundaryBcQs(std::string geomBoundaryBcQs) { ic.geomBoundaryBcQs = geomBoundaryBcQs; }
-void Parameter::setgeomBoundaryBcValues(std::string geomBoundaryBcValues)
+void Parameter::setkFull(std::string kFull)
 {
-    ic.geomBoundaryBcValues = geomBoundaryBcValues;
+    ic.kFull = kFull;
 }
-void Parameter::setnoSlipBcPos(std::string noSlipBcPos) { ic.noSlipBcPos = noSlipBcPos; }
-void Parameter::setnoSlipBcQs(std::string noSlipBcQs) { ic.noSlipBcQs = noSlipBcQs; }
-void Parameter::setnoSlipBcValue(std::string noSlipBcValue) { ic.noSlipBcValue = noSlipBcValue; }
-void Parameter::setnoSlipBcValues(std::string noSlipBcValues) { ic.noSlipBcValues = noSlipBcValues; }
-void Parameter::setslipBcPos(std::string slipBcPos) { ic.slipBcPos = slipBcPos; }
-void Parameter::setslipBcQs(std::string slipBcQs) { ic.slipBcQs = slipBcQs; }
-void Parameter::setslipBcValue(std::string slipBcValue) { ic.slipBcValue = slipBcValue; }
-void Parameter::setpressBcPos(std::string pressBcPos) { ic.pressBcPos = pressBcPos; }
-void Parameter::setpressBcQs(std::string pressBcQs) { ic.pressBcQs = pressBcQs; }
-void Parameter::setpressBcValue(std::string pressBcValue) { ic.pressBcValue = pressBcValue; }
-void Parameter::setpressBcValues(std::string pressBcValues) { ic.pressBcValues = pressBcValues; }
-void Parameter::setvelBcQs(std::string velBcQs) { ic.velBcQs = velBcQs; }
-void Parameter::setvelBcValues(std::string velBcValues) { ic.velBcValues = velBcValues; }
-void Parameter::setinletBcQs(std::string inletBcQs) { ic.inletBcQs = inletBcQs; }
-void Parameter::setinletBcValues(std::string inletBcValues) { ic.inletBcValues = inletBcValues; }
-void Parameter::setoutletBcQs(std::string outletBcQs) { ic.outletBcQs = outletBcQs; }
-void Parameter::setoutletBcValues(std::string outletBcValues) { ic.outletBcValues = outletBcValues; }
-void Parameter::settopBcQs(std::string topBcQs) { ic.topBcQs = topBcQs; }
-void Parameter::settopBcValues(std::string topBcValues) { ic.topBcValues = topBcValues; }
-void Parameter::setbottomBcQs(std::string bottomBcQs) { ic.bottomBcQs = bottomBcQs; }
-void Parameter::setbottomBcValues(std::string bottomBcValues) { ic.bottomBcValues = bottomBcValues; }
-void Parameter::setfrontBcQs(std::string frontBcQs) { ic.frontBcQs = frontBcQs; }
-void Parameter::setfrontBcValues(std::string frontBcValues) { ic.frontBcValues = frontBcValues; }
-void Parameter::setbackBcQs(std::string backBcQs) { ic.backBcQs = backBcQs; }
-void Parameter::setbackBcValues(std::string backBcValues) { ic.backBcValues = backBcValues; }
-void Parameter::setwallBcQs(std::string wallBcQs) { ic.wallBcQs = wallBcQs; }
-void Parameter::setwallBcValues(std::string wallBcValues) { ic.wallBcValues = wallBcValues; }
-void Parameter::setperiodicBcQs(std::string periodicBcQs) { ic.periodicBcQs = periodicBcQs; }
-void Parameter::setperiodicBcValues(std::string periodicBcValues) { ic.periodicBcValues = periodicBcValues; }
-void Parameter::setpropellerQs(std::string propellerQs) { ic.propellerQs = propellerQs; }
-void Parameter::setpropellerValues(std::string propellerValues) { ic.propellerValues = propellerValues; }
-void Parameter::setpropellerCylinder(std::string propellerCylinder) { ic.propellerCylinder = propellerCylinder; }
-void Parameter::setmeasurePoints(std::string measurePoints) { ic.measurePoints = measurePoints; }
-void Parameter::setnumberNodes(std::string numberNodes) { ic.numberNodes = numberNodes; }
-void Parameter::setLBMvsSI(std::string LBMvsSI) { ic.LBMvsSI = LBMvsSI; }
-void Parameter::setcpTop(std::string cpTop) { ic.cpTop = cpTop; }
-void Parameter::setcpBottom(std::string cpBottom) { ic.cpBottom = cpBottom; }
-void Parameter::setcpBottom2(std::string cpBottom2) { ic.cpBottom2 = cpBottom2; }
-void Parameter::setConcentration(std::string concFile) { ic.concentration = concFile; }
-void Parameter::setStreetVelocity(std::string streetVelocity) { ic.streetVelocity = streetVelocity; }
-void Parameter::setclockCycleForMP(real clockCycleForMP) { ic.clockCycleForMP = clockCycleForMP; }
-void Parameter::setTimeDoCheckPoint(unsigned int tDoCheckPoint) { ic.tDoCheckPoint = tDoCheckPoint; }
-void Parameter::setTimeDoRestart(unsigned int tDoRestart) { ic.tDoRestart = tDoRestart; }
-void Parameter::setDoCheckPoint(bool doCheckPoint) { ic.doCheckPoint = doCheckPoint; }
-void Parameter::setDoRestart(bool doRestart) { ic.doRestart = doRestart; }
-void Parameter::settimestepForMP(unsigned int timestepForMP) { ic.timeStepForMP = timestepForMP; }
-void Parameter::setObj(std::string str, bool isObj)
+void Parameter::setgeoFull(std::string geoFull)
 {
-    if (str == "geo") {
-        this->setIsGeo(isObj);
-    } else if (str == "prop") {
-        this->setIsProp(isObj);
-    } else if (str == "cp") {
-        this->setIsCp(isObj);
-    } else if (str == "geoNormal") {
-        this->setIsGeoNormal(isObj);
-    } else if (str == "inflowNormal") {
-        this->setIsInflowNormal(isObj);
-    } else if (str == "outflowNormal") {
-        this->setIsOutflowNormal(isObj);
-    }
+    ic.geoFull = geoFull;
 }
-void Parameter::setGeometryValues(bool GeometryValues) { ic.GeometryValues = GeometryValues; }
-void Parameter::setCalc2ndOrderMoments(bool is2ndOrderMoments) { ic.is2ndOrderMoments = is2ndOrderMoments; }
-void Parameter::setCalc3rdOrderMoments(bool is3rdOrderMoments) { ic.is3rdOrderMoments = is3rdOrderMoments; }
-void Parameter::setCalcHighOrderMoments(bool isHighOrderMoments) { ic.isHighOrderMoments = isHighOrderMoments; }
-void Parameter::setMemsizeGPU(double admem, bool reset)
+void Parameter::setgeoVec(std::string geoVec)
 {
-    if (reset == true) {
-        this->memsizeGPU = 0.;
-    } else {
-        this->memsizeGPU += admem;
-    }
+    ic.geoVec = geoVec;
 }
-// 1D domain decomposition
-void Parameter::setPossNeighborFiles(std::vector<std::string> possNeighborFiles, std::string sor)
+void Parameter::setcoordX(std::string coordX)
 {
-    if (sor == "send") {
-        this->possNeighborFilesSend = possNeighborFiles;
-    } else if (sor == "recv") {
-        this->possNeighborFilesRecv = possNeighborFiles;
-    }
+    ic.coordX = coordX;
 }
-void Parameter::setNumberOfProcessNeighbors(unsigned int numberOfProcessNeighbors, int level, std::string sor)
+void Parameter::setcoordY(std::string coordY)
 {
-    if (sor == "send") {
-        parH[level]->sendProcessNeighbor.resize(numberOfProcessNeighbors);
-        parD[level]->sendProcessNeighbor.resize(numberOfProcessNeighbors);
-    } else if (sor == "recv") {
-        parH[level]->recvProcessNeighbor.resize(numberOfProcessNeighbors);
-        parD[level]->recvProcessNeighbor.resize(numberOfProcessNeighbors);
-    }
+    ic.coordY = coordY;
 }
-void Parameter::setIsNeighbor(bool isNeigbor) { this->isNeigbor = isNeigbor; }
-// 3D domain decomposition
-void Parameter::setPossNeighborFilesX(std::vector<std::string> possNeighborFiles, std::string sor)
+void Parameter::setcoordZ(std::string coordZ)
 {
-    if (sor == "send") {
-        this->possNeighborFilesSendX = possNeighborFiles;
-    } else if (sor == "recv") {
-        this->possNeighborFilesRecvX = possNeighborFiles;
-    }
+    ic.coordZ = coordZ;
 }
-void Parameter::setPossNeighborFilesY(std::vector<std::string> possNeighborFiles, std::string sor)
+void Parameter::setneighborX(std::string neighborX)
 {
-    if (sor == "send") {
-        this->possNeighborFilesSendY = possNeighborFiles;
-    } else if (sor == "recv") {
-        this->possNeighborFilesRecvY = possNeighborFiles;
-    }
+    ic.neighborX = neighborX;
 }
-void Parameter::setPossNeighborFilesZ(std::vector<std::string> possNeighborFiles, std::string sor)
+void Parameter::setneighborY(std::string neighborY)
 {
-    if (sor == "send") {
-        this->possNeighborFilesSendZ = possNeighborFiles;
-    } else if (sor == "recv") {
-        this->possNeighborFilesRecvZ = possNeighborFiles;
-    }
+    ic.neighborY = neighborY;
 }
-void Parameter::setNumberOfProcessNeighborsX(unsigned int numberOfProcessNeighbors, int level, std::string sor)
+void Parameter::setneighborZ(std::string neighborZ)
 {
-    if (sor == "send") {
-        parH[level]->sendProcessNeighborX.resize(numberOfProcessNeighbors);
-        parD[level]->sendProcessNeighborX.resize(numberOfProcessNeighbors);
-        //////////////////////////////////////////////////////////////////////////
-        if (getDiffOn() == true) {
-            parH[level]->sendProcessNeighborADX.resize(numberOfProcessNeighbors);
-            parD[level]->sendProcessNeighborADX.resize(numberOfProcessNeighbors);
-        }
-        //////////////////////////////////////////////////////////////////////////
-    } else if (sor == "recv") {
-        parH[level]->recvProcessNeighborX.resize(numberOfProcessNeighbors);
-        parD[level]->recvProcessNeighborX.resize(numberOfProcessNeighbors);
-        //////////////////////////////////////////////////////////////////////////
-        if (getDiffOn() == true) {
-            parH[level]->recvProcessNeighborADX.resize(numberOfProcessNeighbors);
-            parD[level]->recvProcessNeighborADX.resize(numberOfProcessNeighbors);
-        }
-        //////////////////////////////////////////////////////////////////////////
-    }
+    ic.neighborZ = neighborZ;
 }
-void Parameter::setNumberOfProcessNeighborsY(unsigned int numberOfProcessNeighbors, int level, std::string sor)
+void Parameter::setneighborWSB(std::string neighborWSB)
 {
-    if (sor == "send") {
-        parH[level]->sendProcessNeighborY.resize(numberOfProcessNeighbors);
-        parD[level]->sendProcessNeighborY.resize(numberOfProcessNeighbors);
-        //////////////////////////////////////////////////////////////////////////
-        if (getDiffOn() == true) {
-            parH[level]->sendProcessNeighborADY.resize(numberOfProcessNeighbors);
+    ic.neighborWSB = neighborWSB;
+}
+void Parameter::setscaleCFC(std::string scaleCFC)
+{
+    ic.scaleCFC = scaleCFC;
+}
+void Parameter::setscaleCFF(std::string scaleCFF)
+{
+    ic.scaleCFF = scaleCFF;
+}
+void Parameter::setscaleFCC(std::string scaleFCC)
+{
+    ic.scaleFCC = scaleFCC;
+}
+void Parameter::setscaleFCF(std::string scaleFCF)
+{
+    ic.scaleFCF = scaleFCF;
+}
+void Parameter::setscaleOffsetCF(std::string scaleOffsetCF)
+{
+    ic.scaleOffsetCF = scaleOffsetCF;
+}
+void Parameter::setscaleOffsetFC(std::string scaleOffsetFC)
+{
+    ic.scaleOffsetFC = scaleOffsetFC;
+}
+void Parameter::setgeomBoundaryBcQs(std::string geomBoundaryBcQs)
+{
+    ic.geomBoundaryBcQs = geomBoundaryBcQs;
+}
+void Parameter::setgeomBoundaryBcValues(std::string geomBoundaryBcValues)
+{
+    ic.geomBoundaryBcValues = geomBoundaryBcValues;
+}
+void Parameter::setnoSlipBcPos(std::string noSlipBcPos)
+{
+    ic.noSlipBcPos = noSlipBcPos;
+}
+void Parameter::setnoSlipBcQs(std::string noSlipBcQs)
+{
+    ic.noSlipBcQs = noSlipBcQs;
+}
+void Parameter::setnoSlipBcValue(std::string noSlipBcValue)
+{
+    ic.noSlipBcValue = noSlipBcValue;
+}
+void Parameter::setnoSlipBcValues(std::string noSlipBcValues)
+{
+    ic.noSlipBcValues = noSlipBcValues;
+}
+void Parameter::setslipBcPos(std::string slipBcPos)
+{
+    ic.slipBcPos = slipBcPos;
+}
+void Parameter::setslipBcQs(std::string slipBcQs)
+{
+    ic.slipBcQs = slipBcQs;
+}
+void Parameter::setslipBcValue(std::string slipBcValue)
+{
+    ic.slipBcValue = slipBcValue;
+}
+void Parameter::setpressBcPos(std::string pressBcPos)
+{
+    ic.pressBcPos = pressBcPos;
+}
+void Parameter::setpressBcQs(std::string pressBcQs)
+{
+    ic.pressBcQs = pressBcQs;
+}
+void Parameter::setpressBcValue(std::string pressBcValue)
+{
+    ic.pressBcValue = pressBcValue;
+}
+void Parameter::setpressBcValues(std::string pressBcValues)
+{
+    ic.pressBcValues = pressBcValues;
+}
+void Parameter::setvelBcQs(std::string velBcQs)
+{
+    ic.velBcQs = velBcQs;
+}
+void Parameter::setvelBcValues(std::string velBcValues)
+{
+    ic.velBcValues = velBcValues;
+}
+void Parameter::setinletBcQs(std::string inletBcQs)
+{
+    ic.inletBcQs = inletBcQs;
+}
+void Parameter::setinletBcValues(std::string inletBcValues)
+{
+    ic.inletBcValues = inletBcValues;
+}
+void Parameter::setoutletBcQs(std::string outletBcQs)
+{
+    ic.outletBcQs = outletBcQs;
+}
+void Parameter::setoutletBcValues(std::string outletBcValues)
+{
+    ic.outletBcValues = outletBcValues;
+}
+void Parameter::settopBcQs(std::string topBcQs)
+{
+    ic.topBcQs = topBcQs;
+}
+void Parameter::settopBcValues(std::string topBcValues)
+{
+    ic.topBcValues = topBcValues;
+}
+void Parameter::setbottomBcQs(std::string bottomBcQs)
+{
+    ic.bottomBcQs = bottomBcQs;
+}
+void Parameter::setbottomBcValues(std::string bottomBcValues)
+{
+    ic.bottomBcValues = bottomBcValues;
+}
+void Parameter::setfrontBcQs(std::string frontBcQs)
+{
+    ic.frontBcQs = frontBcQs;
+}
+void Parameter::setfrontBcValues(std::string frontBcValues)
+{
+    ic.frontBcValues = frontBcValues;
+}
+void Parameter::setbackBcQs(std::string backBcQs)
+{
+    ic.backBcQs = backBcQs;
+}
+void Parameter::setbackBcValues(std::string backBcValues)
+{
+    ic.backBcValues = backBcValues;
+}
+void Parameter::setwallBcQs(std::string wallBcQs)
+{
+    ic.wallBcQs = wallBcQs;
+}
+void Parameter::setwallBcValues(std::string wallBcValues)
+{
+    ic.wallBcValues = wallBcValues;
+}
+void Parameter::setperiodicBcQs(std::string periodicBcQs)
+{
+    ic.periodicBcQs = periodicBcQs;
+}
+void Parameter::setperiodicBcValues(std::string periodicBcValues)
+{
+    ic.periodicBcValues = periodicBcValues;
+}
+void Parameter::setpropellerQs(std::string propellerQs)
+{
+    ic.propellerQs = propellerQs;
+}
+void Parameter::setpropellerValues(std::string propellerValues)
+{
+    ic.propellerValues = propellerValues;
+}
+void Parameter::setpropellerCylinder(std::string propellerCylinder)
+{
+    ic.propellerCylinder = propellerCylinder;
+}
+void Parameter::setmeasurePoints(std::string measurePoints)
+{
+    ic.measurePoints = measurePoints;
+}
+void Parameter::setnumberNodes(std::string numberNodes)
+{
+    ic.numberNodes = numberNodes;
+}
+void Parameter::setLBMvsSI(std::string LBMvsSI)
+{
+    ic.LBMvsSI = LBMvsSI;
+}
+void Parameter::setcpTop(std::string cpTop)
+{
+    ic.cpTop = cpTop;
+}
+void Parameter::setcpBottom(std::string cpBottom)
+{
+    ic.cpBottom = cpBottom;
+}
+void Parameter::setcpBottom2(std::string cpBottom2)
+{
+    ic.cpBottom2 = cpBottom2;
+}
+void Parameter::setConcentration(std::string concFile)
+{
+    ic.concentration = concFile;
+}
+void Parameter::setStreetVelocity(std::string streetVelocity)
+{
+    ic.streetVelocity = streetVelocity;
+}
+void Parameter::setclockCycleForMP(real clockCycleForMP)
+{
+    ic.clockCycleForMP = clockCycleForMP;
+}
+void Parameter::setTimeDoCheckPoint(unsigned int tDoCheckPoint)
+{
+    ic.tDoCheckPoint = tDoCheckPoint;
+}
+void Parameter::setTimeDoRestart(unsigned int tDoRestart)
+{
+    ic.tDoRestart = tDoRestart;
+}
+void Parameter::setDoCheckPoint(bool doCheckPoint)
+{
+    ic.doCheckPoint = doCheckPoint;
+}
+void Parameter::setDoRestart(bool doRestart)
+{
+    ic.doRestart = doRestart;
+}
+void Parameter::settimestepForMP(unsigned int timestepForMP)
+{
+    ic.timeStepForMP = timestepForMP;
+}
+void Parameter::setObj(std::string str, bool isObj)
+{
+    if (str == "geo") {
+        this->setIsGeo(isObj);
+    } else if (str == "prop") {
+        this->setIsProp(isObj);
+    } else if (str == "cp") {
+        this->setIsCp(isObj);
+    } else if (str == "geoNormal") {
+        this->setIsGeoNormal(isObj);
+    } else if (str == "inflowNormal") {
+        this->setIsInflowNormal(isObj);
+    } else if (str == "outflowNormal") {
+        this->setIsOutflowNormal(isObj);
+    }
+}
+void Parameter::setGeometryValues(bool GeometryValues)
+{
+    ic.GeometryValues = GeometryValues;
+}
+void Parameter::setCalc2ndOrderMoments(bool is2ndOrderMoments)
+{
+    ic.is2ndOrderMoments = is2ndOrderMoments;
+}
+void Parameter::setCalc3rdOrderMoments(bool is3rdOrderMoments)
+{
+    ic.is3rdOrderMoments = is3rdOrderMoments;
+}
+void Parameter::setCalcHighOrderMoments(bool isHighOrderMoments)
+{
+    ic.isHighOrderMoments = isHighOrderMoments;
+}
+void Parameter::setMemsizeGPU(double admem, bool reset)
+{
+    if (reset == true) {
+        this->memsizeGPU = 0.;
+    } else {
+        this->memsizeGPU += admem;
+    }
+}
+// 1D domain decomposition
+void Parameter::setPossNeighborFiles(std::vector<std::string> possNeighborFiles, std::string sor)
+{
+    if (sor == "send") {
+        this->possNeighborFilesSend = possNeighborFiles;
+    } else if (sor == "recv") {
+        this->possNeighborFilesRecv = possNeighborFiles;
+    }
+}
+void Parameter::setNumberOfProcessNeighbors(unsigned int numberOfProcessNeighbors, int level, std::string sor)
+{
+    if (sor == "send") {
+        parH[level]->sendProcessNeighbor.resize(numberOfProcessNeighbors);
+        parD[level]->sendProcessNeighbor.resize(numberOfProcessNeighbors);
+    } else if (sor == "recv") {
+        parH[level]->recvProcessNeighbor.resize(numberOfProcessNeighbors);
+        parD[level]->recvProcessNeighbor.resize(numberOfProcessNeighbors);
+    }
+}
+void Parameter::setIsNeighbor(bool isNeigbor)
+{
+    this->isNeigbor = isNeigbor;
+}
+// 3D domain decomposition
+void Parameter::setPossNeighborFilesX(std::vector<std::string> possNeighborFiles, std::string sor)
+{
+    if (sor == "send") {
+        this->possNeighborFilesSendX = possNeighborFiles;
+    } else if (sor == "recv") {
+        this->possNeighborFilesRecvX = possNeighborFiles;
+    }
+}
+void Parameter::setPossNeighborFilesY(std::vector<std::string> possNeighborFiles, std::string sor)
+{
+    if (sor == "send") {
+        this->possNeighborFilesSendY = possNeighborFiles;
+    } else if (sor == "recv") {
+        this->possNeighborFilesRecvY = possNeighborFiles;
+    }
+}
+void Parameter::setPossNeighborFilesZ(std::vector<std::string> possNeighborFiles, std::string sor)
+{
+    if (sor == "send") {
+        this->possNeighborFilesSendZ = possNeighborFiles;
+    } else if (sor == "recv") {
+        this->possNeighborFilesRecvZ = possNeighborFiles;
+    }
+}
+void Parameter::setNumberOfProcessNeighborsX(unsigned int numberOfProcessNeighbors, int level, std::string sor)
+{
+    if (sor == "send") {
+        parH[level]->sendProcessNeighborX.resize(numberOfProcessNeighbors);
+        parD[level]->sendProcessNeighborX.resize(numberOfProcessNeighbors);
+        //////////////////////////////////////////////////////////////////////////
+        if (getDiffOn() == true) {
+            parH[level]->sendProcessNeighborADX.resize(numberOfProcessNeighbors);
+            parD[level]->sendProcessNeighborADX.resize(numberOfProcessNeighbors);
+        }
+        //////////////////////////////////////////////////////////////////////////
+    } else if (sor == "recv") {
+        parH[level]->recvProcessNeighborX.resize(numberOfProcessNeighbors);
+        parD[level]->recvProcessNeighborX.resize(numberOfProcessNeighbors);
+        //////////////////////////////////////////////////////////////////////////
+        if (getDiffOn() == true) {
+            parH[level]->recvProcessNeighborADX.resize(numberOfProcessNeighbors);
+            parD[level]->recvProcessNeighborADX.resize(numberOfProcessNeighbors);
+        }
+        //////////////////////////////////////////////////////////////////////////
+    }
+}
+void Parameter::setNumberOfProcessNeighborsY(unsigned int numberOfProcessNeighbors, int level, std::string sor)
+{
+    if (sor == "send") {
+        parH[level]->sendProcessNeighborY.resize(numberOfProcessNeighbors);
+        parD[level]->sendProcessNeighborY.resize(numberOfProcessNeighbors);
+        //////////////////////////////////////////////////////////////////////////
+        if (getDiffOn() == true) {
+            parH[level]->sendProcessNeighborADY.resize(numberOfProcessNeighbors);
             parD[level]->sendProcessNeighborADY.resize(numberOfProcessNeighbors);
         }
         //////////////////////////////////////////////////////////////////////////
@@ -979,9 +1430,18 @@ void Parameter::setNumberOfProcessNeighborsZ(unsigned int numberOfProcessNeighbo
         //////////////////////////////////////////////////////////////////////////
     }
 }
-void Parameter::setIsNeighborX(bool isNeigbor) { this->isNeigborX = isNeigbor; }
-void Parameter::setIsNeighborY(bool isNeigbor) { this->isNeigborY = isNeigbor; }
-void Parameter::setIsNeighborZ(bool isNeigbor) { this->isNeigborZ = isNeigbor; }
+void Parameter::setIsNeighborX(bool isNeigbor)
+{
+    this->isNeigborX = isNeigbor;
+}
+void Parameter::setIsNeighborY(bool isNeigbor)
+{
+    this->isNeigborY = isNeigbor;
+}
+void Parameter::setIsNeighborZ(bool isNeigbor)
+{
+    this->isNeigborZ = isNeigbor;
+}
 void Parameter::setSendProcessNeighborsAfterFtoCX(int numberOfNodes, int level, int arrayIndex)
 {
     this->getParH(level)->sendProcessNeighborsAfterFtoCX[arrayIndex].numberOfNodes = numberOfNodes;
@@ -1036,156 +1496,472 @@ void Parameter::setRecvProcessNeighborsAfterFtoCZ(int numberOfNodes, int level,
     this->getParH(level)->recvProcessNeighborsAfterFtoCZ[arrayIndex].numberOfFs    = this->D3Qxx * numberOfNodes;
     this->getParD(level)->recvProcessNeighborsAfterFtoCZ[arrayIndex].numberOfFs    = this->D3Qxx * numberOfNodes;
 }
-void Parameter::setgeomBoundaryNormalX(std::string geomNormalX) { ic.geomNormalX = geomNormalX; }
-void Parameter::setgeomBoundaryNormalY(std::string geomNormalY) { ic.geomNormalY = geomNormalY; }
-void Parameter::setgeomBoundaryNormalZ(std::string geomNormalZ) { ic.geomNormalZ = geomNormalZ; }
-void Parameter::setInflowBoundaryNormalX(std::string inflowNormalX) { ic.inflowNormalX = inflowNormalX; }
-void Parameter::setInflowBoundaryNormalY(std::string inflowNormalY) { ic.inflowNormalY = inflowNormalY; }
-void Parameter::setInflowBoundaryNormalZ(std::string inflowNormalZ) { ic.inflowNormalZ = inflowNormalZ; }
-void Parameter::setOutflowBoundaryNormalX(std::string outflowNormalX) { ic.outflowNormalX = outflowNormalX; }
-void Parameter::setOutflowBoundaryNormalY(std::string outflowNormalY) { ic.outflowNormalY = outflowNormalY; }
-void Parameter::setOutflowBoundaryNormalZ(std::string outflowNormalZ) { ic.outflowNormalZ = outflowNormalZ; }
-void Parameter::setMainKernel(std::string kernel)
+void Parameter::setgeomBoundaryNormalX(std::string geomNormalX)
+{
+    ic.geomNormalX = geomNormalX;
+}
+void Parameter::setgeomBoundaryNormalY(std::string geomNormalY)
+{
+    ic.geomNormalY = geomNormalY;
+}
+void Parameter::setgeomBoundaryNormalZ(std::string geomNormalZ)
+{
+    ic.geomNormalZ = geomNormalZ;
+}
+void Parameter::setInflowBoundaryNormalX(std::string inflowNormalX)
+{
+    ic.inflowNormalX = inflowNormalX;
+}
+void Parameter::setInflowBoundaryNormalY(std::string inflowNormalY)
+{
+    ic.inflowNormalY = inflowNormalY;
+}
+void Parameter::setInflowBoundaryNormalZ(std::string inflowNormalZ)
+{
+    ic.inflowNormalZ = inflowNormalZ;
+}
+void Parameter::setOutflowBoundaryNormalX(std::string outflowNormalX)
+{
+    ic.outflowNormalX = outflowNormalX;
+}
+void Parameter::setOutflowBoundaryNormalY(std::string outflowNormalY)
+{
+    ic.outflowNormalY = outflowNormalY;
+}
+void Parameter::setOutflowBoundaryNormalZ(std::string outflowNormalZ)
+{
+    ic.outflowNormalZ = outflowNormalZ;
+}
+void Parameter::setMainKernel(std::string kernel)
+{
+    this->mainKernel = kernel;
+    if (kernel.find("Stream") != std::string::npos)
+        this->kernelNeedsFluidNodeIndicesToRun = true;
+}
+void Parameter::setMultiKernelOn(bool isOn)
+{
+    this->multiKernelOn = isOn;
+}
+void Parameter::setMultiKernelLevel(std::vector<int> kernelLevel)
+{
+    this->multiKernelLevel = kernelLevel;
+}
+void Parameter::setMultiKernel(std::vector<std::string> kernel)
+{
+    this->multiKernel = kernel;
+}
+void Parameter::setADKernel(std::string adKernel)
+{
+    this->adKernel = adKernel;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// add-methods
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+void Parameter::addActuator(SPtr<PreCollisionInteractor> actuator)
+{
+    actuators.push_back(actuator);
+}
+void Parameter::addProbe(SPtr<PreCollisionInteractor> probe)
+{
+    probes.push_back(probe);
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// get-methods
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+double *Parameter::getForcesDouble()
+{
+    return this->hostForcing;
+}
+real *Parameter::getForcesHost()
+{
+    return this->forcingH;
+}
+real *Parameter::getForcesDev()
+{
+    return this->forcingD;
+}
+double *Parameter::getQuadricLimitersDouble()
+{
+    return this->hostQuadricLimiters;
+}
+real *Parameter::getQuadricLimitersHost()
+{
+    return this->quadricLimitersH;
+}
+real *Parameter::getQuadricLimitersDev()
+{
+    return this->quadricLimitersD;
+}
+real Parameter::getPhi()
+{
+    return Phi;
+}
+real Parameter::getAngularVelocity()
+{
+    return angularVelocity;
+}
+real Parameter::getStartXHotWall()
+{
+    return this->startXHotWall;
+}
+real Parameter::getEndXHotWall()
+{
+    return this->endXHotWall;
+}
+unsigned int Parameter::getStepEnsight()
+{
+    return this->stepEnsight;
+}
+unsigned int Parameter::getOutputCount()
+{
+    return this->outputCount;
+}
+unsigned int Parameter::getlimitOfNodesForVTK()
+{
+    return this->limitOfNodesForVTK;
+}
+unsigned int Parameter::getStartTurn()
+{
+    return startTurn;
+}
+std::shared_ptr<LBMSimulationParameter> Parameter::getParD(int level)
+{
+    return parD[level];
+}
+std::shared_ptr<LBMSimulationParameter> Parameter::getParH(int level)
+{
+    return parH[level];
+}
+unsigned int Parameter::getSizeMat(int level)
+{
+    return parH[level]->size_Mat;
+}
+unsigned int Parameter::getMemSizereal(int level)
+{
+    return parH[level]->mem_size_real;
+}
+unsigned int Parameter::getMemSizeInt(int level)
+{
+    return parH[level]->mem_size_int;
+}
+unsigned int Parameter::getMemSizeBool(int level)
+{
+    return parH[level]->mem_size_bool;
+}
+unsigned int Parameter::getMemSizerealYZ(int level)
+{
+    return parH[level]->mem_size_real_yz;
+}
+int Parameter::getFine()
+{
+    return fine;
+}
+int Parameter::getCoarse()
+{
+    return coarse;
+}
+int Parameter::getParticleBasicLevel()
+{
+    return this->particleBasicLevel;
+}
+int Parameter::getParticleInitLevel()
+{
+    return this->particleInitLevel;
+}
+int Parameter::getNumberOfParticles()
+{
+    return this->numberOfParticles;
+}
+bool Parameter::getEvenOrOdd(int level)
+{
+    return parH[level]->evenOrOdd;
+}
+bool Parameter::getDiffOn()
+{
+    return diffOn;
+}
+bool Parameter::getCompOn()
+{
+    return compOn;
+}
+int Parameter::getDiffMod()
+{
+    return diffMod;
+}
+int Parameter::getFactorNZ()
+{
+    return factor_gridNZ;
+}
+int Parameter::getD3Qxx()
+{
+    return this->D3Qxx;
+}
+int Parameter::getMaxLevel()
+{
+    return this->maxlevel;
+}
+unsigned int Parameter::getTStart()
+{
+    if (getDoRestart()) {
+        return getTimeDoRestart() + 1;
+    } else {
+        return 1;
+    }
+}
+unsigned int Parameter::getTInit()
+{
+    if (getDoRestart()) {
+        return getTimeDoRestart();
+    } else {
+        return 0;
+    }
+}
+unsigned int Parameter::getTEnd()
+{
+    return ic.tend;
+}
+unsigned int Parameter::getTOut()
+{
+    return ic.tout;
+}
+unsigned int Parameter::getTStartOut()
+{
+    return ic.tStartOut;
+}
+bool Parameter::getCalcMedian()
+{
+    return ic.calcMedian;
+}
+bool Parameter::getCalcDragLift()
+{
+    return this->calcDragLift;
+}
+bool Parameter::getCalcCp()
+{
+    return this->calcCp;
+}
+bool Parameter::getCalcParticle()
+{
+    return this->calcParticles;
+}
+bool Parameter::getWriteVeloASCIIfiles()
+{
+    return this->writeVeloASCII;
+}
+bool Parameter::getCalcPlaneConc()
+{
+    return this->calcPlaneConc;
+}
+int Parameter::getTimeCalcMedStart()
+{
+    return ic.tCalcMedStart;
+}
+int Parameter::getTimeCalcMedEnd()
+{
+    return ic.tCalcMedEnd;
+}
+std::string Parameter::getOutputPath()
+{
+    return ic.oPath;
+}
+std::string Parameter::getOutputPrefix()
+{
+    return ic.oPrefix;
+}
+std::string Parameter::getFName()
+{
+    return ic.fname;
+}
+bool Parameter::getPrintFiles()
+{
+    return ic.printFiles;
+}
+bool Parameter::getReadGeo()
+{
+    return ic.readGeo;
+}
+bool Parameter::getCalcTurbulenceIntensity()
+{
+    return this->calcVelocityAndFluctuations;
+}
+real Parameter::getDiffusivity()
+{
+    return ic.Diffusivity;
+}
+real Parameter::getTemperatureInit()
+{
+    return ic.Temp;
+}
+real Parameter::getTemperatureBC()
+{
+    return ic.TempBC;
+}
+real Parameter::getViscosity()
+{
+    return ic.vis;
+}
+real Parameter::getVelocity()
+{
+    return ic.u0;
+}
+real Parameter::getViscosityRatio()
+{
+    return ic.vis_ratio;
+}
+real Parameter::getVelocityRatio()
+{
+    return ic.u0_ratio;
+}
+real Parameter::getDensityRatio()
+{
+    return ic.delta_rho;
+}
+real Parameter::getPressRatio()
+{
+    return ic.delta_press;
+}
+real Parameter::getRealX()
+{
+    return ic.RealX;
+}
+real Parameter::getRealY()
+{
+    return ic.RealY;
+}
+unsigned int Parameter::getPressInID()
+{
+    return ic.PressInID;
+}
+unsigned int Parameter::getPressOutID()
+{
+    return ic.PressOutID;
+}
+unsigned int Parameter::getPressInZ()
+{
+    return ic.PressInZ;
+}
+unsigned int Parameter::getPressOutZ()
+{
+    return ic.PressOutZ;
+}
+int Parameter::getMaxDev()
+{
+    return ic.maxdev;
+}
+int Parameter::getMyID()
+{
+    return ic.myid;
+}
+int Parameter::getNumprocs()
+{
+    return ic.numprocs;
+}
+std::vector<uint> Parameter::getDevices()
+{
+    return ic.devices;
+}
+std::string Parameter::getGeometryFileC()
+{
+    return ic.geometryFileC;
+}
+std::string Parameter::getGeometryFileM()
+{
+    return ic.geometryFileM;
+}
+std::string Parameter::getGeometryFileF()
+{
+    return ic.geometryFileF;
+}
+real Parameter::getRe()
+{
+    return ic.Re;
+}
+real Parameter::getFactorPressBC()
+{
+    return ic.factorPressBC;
+}
+std::vector<int> Parameter::getGridX()
+{
+    return ic.GridX;
+}
+std::vector<int> Parameter::getGridY()
+{
+    return ic.GridY;
+}
+std::vector<int> Parameter::getGridZ()
+{
+    return ic.GridZ;
+}
+std::vector<int> Parameter::getDistX()
+{
+    return ic.DistX;
+}
+std::vector<int> Parameter::getDistY()
+{
+    return ic.DistY;
+}
+std::vector<int> Parameter::getDistZ()
+{
+    return ic.DistZ;
+}
+std::vector<real> Parameter::getScaleLBMtoSI()
+{
+    return ic.scaleLBMtoSI;
+}
+std::vector<real> Parameter::getTranslateLBMtoSI()
+{
+    return ic.translateLBMtoSI;
+}
+std::vector<real> Parameter::getMinCoordX()
+{
+    return ic.minCoordX;
+}
+std::vector<real> Parameter::getMinCoordY()
+{
+    return ic.minCoordY;
+}
+std::vector<real> Parameter::getMinCoordZ()
+{
+    return ic.minCoordZ;
+}
+std::vector<real> Parameter::getMaxCoordX()
+{
+    return ic.maxCoordX;
+}
+std::vector<real> Parameter::getMaxCoordY()
+{
+    return ic.maxCoordY;
+}
+std::vector<real> Parameter::getMaxCoordZ()
+{
+    return ic.maxCoordZ;
+}
+TempforBoundaryConditions *Parameter::getTempH()
 {
-    this->mainKernel = kernel;
-    if (kernel.find("Stream") != std::string::npos)
-        this->kernelNeedsFluidNodeIndicesToRun = true;
+    return this->TempH;
 }
-void Parameter::setMultiKernelOn(bool isOn) { this->multiKernelOn = isOn; }
-void Parameter::setMultiKernelLevel(std::vector<int> kernelLevel) { this->multiKernelLevel = kernelLevel; }
-void Parameter::setMultiKernel(std::vector<std::string> kernel) { this->multiKernel = kernel; }
-void Parameter::setADKernel(std::string adKernel) { this->adKernel = adKernel; }
-
-
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//add-methods
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void Parameter::addActuator(SPtr<PreCollisionInteractor> actuator)
+TempforBoundaryConditions *Parameter::getTempD()
 {
-	actuators.push_back(actuator);
+    return this->TempD;
 }
-void Parameter::addProbe(SPtr<PreCollisionInteractor> probe)
+TempVelforBoundaryConditions *Parameter::getTempVelH()
 {
-	probes.push_back(probe);
+    return this->TempVelH;
 }
-
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// get-methods
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-double *Parameter::getForcesDouble() { return this->hostForcing; }
-real *Parameter::getForcesHost() { return this->forcingH; }
-real *Parameter::getForcesDev() { return this->forcingD; }
-double *Parameter::getQuadricLimitersDouble() { return this->hostQuadricLimiters; }
-real *Parameter::getQuadricLimitersHost() { return this->quadricLimitersH; }
-real *Parameter::getQuadricLimitersDev() { return this->quadricLimitersD; }
-real Parameter::getPhi() { return Phi; }
-real Parameter::getAngularVelocity() { return angularVelocity; }
-real Parameter::getStartXHotWall() { return this->startXHotWall; }
-real Parameter::getEndXHotWall() { return this->endXHotWall; }
-unsigned int Parameter::getStepEnsight() { return this->stepEnsight; }
-unsigned int Parameter::getOutputCount() { return this->outputCount; }
-unsigned int Parameter::getlimitOfNodesForVTK() { return this->limitOfNodesForVTK; }
-unsigned int Parameter::getStartTurn() { return startTurn; }
-std::shared_ptr<LBMSimulationParameter> Parameter::getParD(int level) { return parD[level]; }
-std::shared_ptr<LBMSimulationParameter> Parameter::getParH(int level) { return parH[level]; }
-unsigned int Parameter::getSizeMat(int level) { return parH[level]->size_Mat; }
-unsigned int Parameter::getMemSizereal(int level) { return parH[level]->mem_size_real; }
-unsigned int Parameter::getMemSizeInt(int level) { return parH[level]->mem_size_int; }
-unsigned int Parameter::getMemSizeBool(int level) { return parH[level]->mem_size_bool; }
-unsigned int Parameter::getMemSizerealYZ(int level) { return parH[level]->mem_size_real_yz; }
-int Parameter::getFine() { return fine; }
-int Parameter::getCoarse() { return coarse; }
-int Parameter::getParticleBasicLevel() { return this->particleBasicLevel; }
-int Parameter::getParticleInitLevel() { return this->particleInitLevel; }
-int Parameter::getNumberOfParticles() { return this->numberOfParticles; }
-bool Parameter::getEvenOrOdd(int level) { return parH[level]->evenOrOdd; }
-bool Parameter::getDiffOn() { return diffOn; }
-bool Parameter::getCompOn() { return compOn; }
-int Parameter::getDiffMod() { return diffMod; }
-int Parameter::getFactorNZ() { return factor_gridNZ; }
-int Parameter::getD3Qxx() { return this->D3Qxx; }
-int Parameter::getMaxLevel() { return this->maxlevel; }
-unsigned int Parameter::getTStart()
+TempVelforBoundaryConditions *Parameter::getTempVelD()
 {
-    if (getDoRestart()) {
-        return getTimeDoRestart() + 1;
-    } else {
-        return 1;
-    }
+    return this->TempVelD;
 }
-unsigned int Parameter::getTInit()
+TempPressforBoundaryConditions *Parameter::getTempPressH()
 {
-    if (getDoRestart()) {
-        return getTimeDoRestart();
-    } else {
-        return 0;
-    }
+    return this->TempPressH;
+}
+TempPressforBoundaryConditions *Parameter::getTempPressD()
+{
+    return this->TempPressD;
 }
-unsigned int Parameter::getTEnd() { return ic.tend; }
-unsigned int Parameter::getTOut() { return ic.tout; }
-unsigned int Parameter::getTStartOut() { return ic.tStartOut; }
-bool Parameter::getCalcMedian() { return ic.calcMedian; }
-bool Parameter::getCalcDragLift() { return this->calcDragLift; }
-bool Parameter::getCalcCp() { return this->calcCp; }
-bool Parameter::getCalcParticle() { return this->calcParticles; }
-bool Parameter::getWriteVeloASCIIfiles() { return this->writeVeloASCII; }
-bool Parameter::getCalcPlaneConc() { return this->calcPlaneConc; }
-int Parameter::getTimeCalcMedStart() { return ic.tCalcMedStart; }
-int Parameter::getTimeCalcMedEnd() { return ic.tCalcMedEnd; }
-std::string Parameter::getOutputPath() { return ic.oPath; }
-std::string Parameter::getOutputPrefix() { return ic.oPrefix; }
-std::string Parameter::getFName() { return ic.fname; }
-bool Parameter::getPrintFiles() { return ic.printFiles; }
-bool Parameter::getReadGeo() { return ic.readGeo; }
-bool Parameter::getCalcTurbulenceIntensity() { return this->calcVelocityAndFluctuations; }
-real Parameter::getDiffusivity() { return ic.Diffusivity; }
-real Parameter::getTemperatureInit() { return ic.Temp; }
-real Parameter::getTemperatureBC() { return ic.TempBC; }
-real Parameter::getViscosity() { return ic.vis; }
-real Parameter::getVelocity() { return ic.u0; }
-real Parameter::getViscosityRatio() { return ic.vis_ratio; }
-real Parameter::getVelocityRatio() { return ic.u0_ratio; }
-real Parameter::getDensityRatio() { return ic.delta_rho; }
-real Parameter::getPressRatio() { return ic.delta_press; }
-real Parameter::getRealX() { return ic.RealX; }
-real Parameter::getRealY() { return ic.RealY; }
-unsigned int Parameter::getPressInID() { return ic.PressInID; }
-unsigned int Parameter::getPressOutID() { return ic.PressOutID; }
-unsigned int Parameter::getPressInZ() { return ic.PressInZ; }
-unsigned int Parameter::getPressOutZ() { return ic.PressOutZ; }
-int Parameter::getMaxDev() { return ic.maxdev; }
-int Parameter::getMyID() { return ic.myid; }
-int Parameter::getNumprocs() { return ic.numprocs; }
-std::vector<uint> Parameter::getDevices() { return ic.devices; }
-std::string Parameter::getGeometryFileC() { return ic.geometryFileC; }
-std::string Parameter::getGeometryFileM() { return ic.geometryFileM; }
-std::string Parameter::getGeometryFileF() { return ic.geometryFileF; }
-real Parameter::getRe() { return ic.Re; }
-real Parameter::getFactorPressBC() { return ic.factorPressBC; }
-std::vector<int> Parameter::getGridX() { return ic.GridX; }
-std::vector<int> Parameter::getGridY() { return ic.GridY; }
-std::vector<int> Parameter::getGridZ() { return ic.GridZ; }
-std::vector<int> Parameter::getDistX() { return ic.DistX; }
-std::vector<int> Parameter::getDistY() { return ic.DistY; }
-std::vector<int> Parameter::getDistZ() { return ic.DistZ; }
-std::vector<real> Parameter::getScaleLBMtoSI() { return ic.scaleLBMtoSI; }
-std::vector<real> Parameter::getTranslateLBMtoSI() { return ic.translateLBMtoSI; }
-std::vector<real> Parameter::getMinCoordX() { return ic.minCoordX; }
-std::vector<real> Parameter::getMinCoordY() { return ic.minCoordY; }
-std::vector<real> Parameter::getMinCoordZ() { return ic.minCoordZ; }
-std::vector<real> Parameter::getMaxCoordX() { return ic.maxCoordX; }
-std::vector<real> Parameter::getMaxCoordY() { return ic.maxCoordY; }
-std::vector<real> Parameter::getMaxCoordZ() { return ic.maxCoordZ; }
-TempforBoundaryConditions *Parameter::getTempH() { return this->TempH; }
-TempforBoundaryConditions *Parameter::getTempD() { return this->TempD; }
-TempVelforBoundaryConditions *Parameter::getTempVelH() { return this->TempVelH; }
-TempVelforBoundaryConditions *Parameter::getTempVelD() { return this->TempVelD; }
-TempPressforBoundaryConditions *Parameter::getTempPressH() { return this->TempPressH; }
-TempPressforBoundaryConditions *Parameter::getTempPressD() { return this->TempPressD; }
 // unsigned int Parameter::getkInflowQ()
 //{
 //   return this->kInflowQ;
@@ -1210,118 +1986,373 @@ TempPressforBoundaryConditions *Parameter::getTempPressD() { return this->TempPr
 //{
 //   return this->QoutflowD;
 //}
-std::string Parameter::getkFull() { return ic.kFull; }
-std::string Parameter::getgeoFull() { return ic.geoFull; }
-std::string Parameter::getgeoVec() { return ic.geoVec; }
-std::string Parameter::getcoordX() { return ic.coordX; }
-std::string Parameter::getcoordY() { return ic.coordY; }
-std::string Parameter::getcoordZ() { return ic.coordZ; }
-std::string Parameter::getneighborX() { return ic.neighborX; }
-std::string Parameter::getneighborY() { return ic.neighborY; }
-std::string Parameter::getneighborZ() { return ic.neighborZ; }
-std::string Parameter::getneighborWSB() { return ic.neighborWSB; }
-std::string Parameter::getscaleCFC() { return ic.scaleCFC; }
-std::string Parameter::getscaleCFF() { return ic.scaleCFF; }
-std::string Parameter::getscaleFCC() { return ic.scaleFCC; }
-std::string Parameter::getscaleFCF() { return ic.scaleFCF; }
-std::string Parameter::getscaleOffsetCF() { return ic.scaleOffsetCF; }
-std::string Parameter::getscaleOffsetFC() { return ic.scaleOffsetFC; }
-std::string Parameter::getgeomBoundaryBcQs() { return ic.geomBoundaryBcQs; }
-std::string Parameter::getgeomBoundaryBcValues() { return ic.geomBoundaryBcValues; }
-std::string Parameter::getnoSlipBcPos() { return ic.noSlipBcPos; }
-std::string Parameter::getnoSlipBcQs() { return ic.noSlipBcQs; }
-std::string Parameter::getnoSlipBcValue() { return ic.noSlipBcValue; }
-std::string Parameter::getnoSlipBcValues() { return ic.noSlipBcValues; }
-std::string Parameter::getslipBcPos() { return ic.slipBcPos; }
-std::string Parameter::getslipBcQs() { return ic.slipBcQs; }
-std::string Parameter::getslipBcValue() { return ic.slipBcValue; }
-std::string Parameter::getpressBcPos() { return ic.pressBcPos; }
-std::string Parameter::getpressBcQs() { return ic.pressBcQs; }
-std::string Parameter::getpressBcValue() { return ic.pressBcValue; }
-std::string Parameter::getpressBcValues() { return ic.pressBcValues; }
-std::string Parameter::getvelBcQs() { return ic.velBcQs; }
-std::string Parameter::getvelBcValues() { return ic.velBcValues; }
-std::string Parameter::getinletBcQs() { return ic.inletBcQs; }
-std::string Parameter::getinletBcValues() { return ic.inletBcValues; }
-std::string Parameter::getoutletBcQs() { return ic.outletBcQs; }
-std::string Parameter::getoutletBcValues() { return ic.outletBcValues; }
-std::string Parameter::gettopBcQs() { return ic.topBcQs; }
-std::string Parameter::gettopBcValues() { return ic.topBcValues; }
-std::string Parameter::getbottomBcQs() { return ic.bottomBcQs; }
-std::string Parameter::getbottomBcValues() { return ic.bottomBcValues; }
-std::string Parameter::getfrontBcQs() { return ic.frontBcQs; }
-std::string Parameter::getfrontBcValues() { return ic.frontBcValues; }
-std::string Parameter::getbackBcQs() { return ic.backBcQs; }
-std::string Parameter::getbackBcValues() { return ic.backBcValues; }
-std::string Parameter::getwallBcQs() { return ic.wallBcQs; }
-std::string Parameter::getwallBcValues() { return ic.wallBcValues; }
-std::string Parameter::getperiodicBcQs() { return ic.periodicBcQs; }
-std::string Parameter::getperiodicBcValues() { return ic.periodicBcValues; }
-std::string Parameter::getpropellerQs() { return ic.propellerQs; }
-std::string Parameter::getpropellerValues() { return ic.propellerValues; }
-std::string Parameter::getpropellerCylinder() { return ic.propellerCylinder; }
-std::string Parameter::getmeasurePoints() { return ic.measurePoints; }
-std::string Parameter::getLBMvsSI() { return ic.LBMvsSI; }
-std::string Parameter::getnumberNodes() { return ic.numberNodes; }
-std::string Parameter::getcpTop() { return ic.cpTop; }
-std::string Parameter::getcpBottom() { return ic.cpBottom; }
-std::string Parameter::getcpBottom2() { return ic.cpBottom2; }
-std::string Parameter::getConcentration() { return ic.concentration; }
-std::string Parameter::getStreetVelocityFilePath() { return ic.streetVelocity; }
-real Parameter::getclockCycleForMP() { return ic.clockCycleForMP; }
-unsigned int Parameter::getTimeDoCheckPoint() { return ic.tDoCheckPoint; }
-unsigned int Parameter::getTimeDoRestart() { return ic.tDoRestart; }
-bool Parameter::getDoCheckPoint() { return ic.doCheckPoint; }
-bool Parameter::getDoRestart() { return ic.doRestart; }
-bool Parameter::getIsGeo() { return ic.isGeo; }
-bool Parameter::getIsGeoNormal() { return ic.isGeoNormal; }
-bool Parameter::getIsInflowNormal() { return ic.isInflowNormal; }
-bool Parameter::getIsOutflowNormal() { return ic.isOutflowNormal; }
-bool Parameter::getIsCp() { return ic.isCp; }
-bool Parameter::getConcFile() { return ic.isConc; }
-bool Parameter::isStreetVelocityFile() { return ic.streetVelocityFile; }
-bool Parameter::getUseMeasurePoints() { return ic.isMeasurePoints; }
-bool Parameter::getUseWale() { return ic.isWale; }
+std::string Parameter::getkFull()
+{
+    return ic.kFull;
+}
+std::string Parameter::getgeoFull()
+{
+    return ic.geoFull;
+}
+std::string Parameter::getgeoVec()
+{
+    return ic.geoVec;
+}
+std::string Parameter::getcoordX()
+{
+    return ic.coordX;
+}
+std::string Parameter::getcoordY()
+{
+    return ic.coordY;
+}
+std::string Parameter::getcoordZ()
+{
+    return ic.coordZ;
+}
+std::string Parameter::getneighborX()
+{
+    return ic.neighborX;
+}
+std::string Parameter::getneighborY()
+{
+    return ic.neighborY;
+}
+std::string Parameter::getneighborZ()
+{
+    return ic.neighborZ;
+}
+std::string Parameter::getneighborWSB()
+{
+    return ic.neighborWSB;
+}
+std::string Parameter::getscaleCFC()
+{
+    return ic.scaleCFC;
+}
+std::string Parameter::getscaleCFF()
+{
+    return ic.scaleCFF;
+}
+std::string Parameter::getscaleFCC()
+{
+    return ic.scaleFCC;
+}
+std::string Parameter::getscaleFCF()
+{
+    return ic.scaleFCF;
+}
+std::string Parameter::getscaleOffsetCF()
+{
+    return ic.scaleOffsetCF;
+}
+std::string Parameter::getscaleOffsetFC()
+{
+    return ic.scaleOffsetFC;
+}
+std::string Parameter::getgeomBoundaryBcQs()
+{
+    return ic.geomBoundaryBcQs;
+}
+std::string Parameter::getgeomBoundaryBcValues()
+{
+    return ic.geomBoundaryBcValues;
+}
+std::string Parameter::getnoSlipBcPos()
+{
+    return ic.noSlipBcPos;
+}
+std::string Parameter::getnoSlipBcQs()
+{
+    return ic.noSlipBcQs;
+}
+std::string Parameter::getnoSlipBcValue()
+{
+    return ic.noSlipBcValue;
+}
+std::string Parameter::getnoSlipBcValues()
+{
+    return ic.noSlipBcValues;
+}
+std::string Parameter::getslipBcPos()
+{
+    return ic.slipBcPos;
+}
+std::string Parameter::getslipBcQs()
+{
+    return ic.slipBcQs;
+}
+std::string Parameter::getslipBcValue()
+{
+    return ic.slipBcValue;
+}
+std::string Parameter::getpressBcPos()
+{
+    return ic.pressBcPos;
+}
+std::string Parameter::getpressBcQs()
+{
+    return ic.pressBcQs;
+}
+std::string Parameter::getpressBcValue()
+{
+    return ic.pressBcValue;
+}
+std::string Parameter::getpressBcValues()
+{
+    return ic.pressBcValues;
+}
+std::string Parameter::getvelBcQs()
+{
+    return ic.velBcQs;
+}
+std::string Parameter::getvelBcValues()
+{
+    return ic.velBcValues;
+}
+std::string Parameter::getinletBcQs()
+{
+    return ic.inletBcQs;
+}
+std::string Parameter::getinletBcValues()
+{
+    return ic.inletBcValues;
+}
+std::string Parameter::getoutletBcQs()
+{
+    return ic.outletBcQs;
+}
+std::string Parameter::getoutletBcValues()
+{
+    return ic.outletBcValues;
+}
+std::string Parameter::gettopBcQs()
+{
+    return ic.topBcQs;
+}
+std::string Parameter::gettopBcValues()
+{
+    return ic.topBcValues;
+}
+std::string Parameter::getbottomBcQs()
+{
+    return ic.bottomBcQs;
+}
+std::string Parameter::getbottomBcValues()
+{
+    return ic.bottomBcValues;
+}
+std::string Parameter::getfrontBcQs()
+{
+    return ic.frontBcQs;
+}
+std::string Parameter::getfrontBcValues()
+{
+    return ic.frontBcValues;
+}
+std::string Parameter::getbackBcQs()
+{
+    return ic.backBcQs;
+}
+std::string Parameter::getbackBcValues()
+{
+    return ic.backBcValues;
+}
+std::string Parameter::getwallBcQs()
+{
+    return ic.wallBcQs;
+}
+std::string Parameter::getwallBcValues()
+{
+    return ic.wallBcValues;
+}
+std::string Parameter::getperiodicBcQs()
+{
+    return ic.periodicBcQs;
+}
+std::string Parameter::getperiodicBcValues()
+{
+    return ic.periodicBcValues;
+}
+std::string Parameter::getpropellerQs()
+{
+    return ic.propellerQs;
+}
+std::string Parameter::getpropellerValues()
+{
+    return ic.propellerValues;
+}
+std::string Parameter::getpropellerCylinder()
+{
+    return ic.propellerCylinder;
+}
+std::string Parameter::getmeasurePoints()
+{
+    return ic.measurePoints;
+}
+std::string Parameter::getLBMvsSI()
+{
+    return ic.LBMvsSI;
+}
+std::string Parameter::getnumberNodes()
+{
+    return ic.numberNodes;
+}
+std::string Parameter::getcpTop()
+{
+    return ic.cpTop;
+}
+std::string Parameter::getcpBottom()
+{
+    return ic.cpBottom;
+}
+std::string Parameter::getcpBottom2()
+{
+    return ic.cpBottom2;
+}
+std::string Parameter::getConcentration()
+{
+    return ic.concentration;
+}
+std::string Parameter::getStreetVelocityFilePath()
+{
+    return ic.streetVelocity;
+}
+real Parameter::getclockCycleForMP()
+{
+    return ic.clockCycleForMP;
+}
+unsigned int Parameter::getTimeDoCheckPoint()
+{
+    return ic.tDoCheckPoint;
+}
+unsigned int Parameter::getTimeDoRestart()
+{
+    return ic.tDoRestart;
+}
+bool Parameter::getDoCheckPoint()
+{
+    return ic.doCheckPoint;
+}
+bool Parameter::getDoRestart()
+{
+    return ic.doRestart;
+}
+bool Parameter::getIsGeo()
+{
+    return ic.isGeo;
+}
+bool Parameter::getIsGeoNormal()
+{
+    return ic.isGeoNormal;
+}
+bool Parameter::getIsInflowNormal()
+{
+    return ic.isInflowNormal;
+}
+bool Parameter::getIsOutflowNormal()
+{
+    return ic.isOutflowNormal;
+}
+bool Parameter::getIsCp()
+{
+    return ic.isCp;
+}
+bool Parameter::getConcFile()
+{
+    return ic.isConc;
+}
+bool Parameter::isStreetVelocityFile()
+{
+    return ic.streetVelocityFile;
+}
+bool Parameter::getUseMeasurePoints()
+{
+    return ic.isMeasurePoints;
+}
+bool Parameter::getUseWale()
+{
+    return ic.isWale;
+}
 bool Parameter::getUseAMD()
 {
-	return ic.isAMD;
-}bool Parameter::getUseTurbulentViscosity()
+    return ic.isAMD;
+}
+bool Parameter::getUseTurbulentViscosity()
 {
-	return ic.isTurbulentViscosity;
+    return ic.isTurbulentViscosity;
 }
 real Parameter::getSGSConstant()
 {
-	return ic.SGSConstant;
+    return ic.SGSConstant;
 }
 bool Parameter::getHasWallModelMonitor()
 {
-	return ic.hasWallModelMonitor;
+    return ic.hasWallModelMonitor;
 }
 std::vector<SPtr<PreCollisionInteractor>> Parameter::getActuators()
 {
-	return actuators;
+    return actuators;
 }
 std::vector<SPtr<PreCollisionInteractor>> Parameter::getProbes()
 {
-	return probes;
+    return probes;
+}
+bool Parameter::getUseInitNeq()
+{
+    return ic.isInitNeq;
+}
+bool Parameter::getSimulatePorousMedia()
+{
+    return ic.simulatePorousMedia;
 }
-bool Parameter::getUseInitNeq() { return ic.isInitNeq; }
-bool Parameter::getSimulatePorousMedia() { return ic.simulatePorousMedia; }
-
 
-bool Parameter::getIsF3() { return this->isF3; }
+bool Parameter::getIsF3()
+{
+    return this->isF3;
+}
 
-bool Parameter::getIsBodyForce() { return this->isBodyForce; }
+bool Parameter::getIsBodyForce()
+{
+    return this->isBodyForce;
+}
 
-bool Parameter::getIsGeometryValues() { return ic.GeometryValues; }
-bool Parameter::getCalc2ndOrderMoments() { return ic.is2ndOrderMoments; }
-bool Parameter::getCalc3rdOrderMoments() { return ic.is3rdOrderMoments; }
-bool Parameter::getCalcHighOrderMoments() { return ic.isHighOrderMoments; }
-bool Parameter::getIsProp() { return ic.isProp; }
-bool Parameter::overWritingRestart(uint t) { return t == getTimeDoRestart(); }
-unsigned int Parameter::getTimestepForMP() { return ic.timeStepForMP; }
-unsigned int Parameter::getTimestepOfCoarseLevel() { return this->timestep; }
-double Parameter::getMemsizeGPU() { return this->memsizeGPU; }
+bool Parameter::getIsGeometryValues()
+{
+    return ic.GeometryValues;
+}
+bool Parameter::getCalc2ndOrderMoments()
+{
+    return ic.is2ndOrderMoments;
+}
+bool Parameter::getCalc3rdOrderMoments()
+{
+    return ic.is3rdOrderMoments;
+}
+bool Parameter::getCalcHighOrderMoments()
+{
+    return ic.isHighOrderMoments;
+}
+bool Parameter::getIsProp()
+{
+    return ic.isProp;
+}
+bool Parameter::overWritingRestart(uint t)
+{
+    return t == getTimeDoRestart();
+}
+unsigned int Parameter::getTimestepForMP()
+{
+    return ic.timeStepForMP;
+}
+unsigned int Parameter::getTimestepOfCoarseLevel()
+{
+    return this->timestep;
+}
+double Parameter::getMemsizeGPU()
+{
+    return this->memsizeGPU;
+}
 // 1D domain decomposition
 std::vector<std::string> Parameter::getPossNeighborFiles(std::string sor)
 {
@@ -1341,7 +2372,10 @@ unsigned int Parameter::getNumberOfProcessNeighbors(int level, std::string sor)
     }
     throw std::runtime_error("Parameter string invalid.");
 }
-bool Parameter::getIsNeighbor() { return this->isNeigbor; }
+bool Parameter::getIsNeighbor()
+{
+    return this->isNeigbor;
+}
 // 3D domain decomposition
 std::vector<std::string> Parameter::getPossNeighborFilesX(std::string sor)
 {
@@ -1398,25 +2432,79 @@ unsigned int Parameter::getNumberOfProcessNeighborsZ(int level, std::string sor)
     throw std::runtime_error("getNumberOfProcessNeighborsZ: Parameter string invalid.");
 }
 
-bool Parameter::getIsNeighborX() { return this->isNeigborX; }
-bool Parameter::getIsNeighborY() { return this->isNeigborY; }
-bool Parameter::getIsNeighborZ() { return this->isNeigborZ; }
-std::string Parameter::getgeomBoundaryNormalX() { return ic.geomNormalX; }
-std::string Parameter::getgeomBoundaryNormalY() { return ic.geomNormalY; }
-std::string Parameter::getgeomBoundaryNormalZ() { return ic.geomNormalZ; }
-std::string Parameter::getInflowBoundaryNormalX() { return ic.inflowNormalX; }
-std::string Parameter::getInflowBoundaryNormalY() { return ic.inflowNormalY; }
-std::string Parameter::getInflowBoundaryNormalZ() { return ic.inflowNormalZ; }
-std::string Parameter::getOutflowBoundaryNormalX() { return ic.outflowNormalX; }
-std::string Parameter::getOutflowBoundaryNormalY() { return ic.outflowNormalY; }
-std::string Parameter::getOutflowBoundaryNormalZ() { return ic.outflowNormalZ; }
-curandState *Parameter::getRandomState() { return this->devState; }
-
-std::string Parameter::getMainKernel() { return mainKernel; }
-bool Parameter::getMultiKernelOn() { return multiKernelOn; }
-std::vector<int> Parameter::getMultiKernelLevel() { return multiKernelLevel; }
-std::vector<std::string> Parameter::getMultiKernel() { return multiKernel; }
-std::string Parameter::getADKernel() { return adKernel; }
+bool Parameter::getIsNeighborX()
+{
+    return this->isNeigborX;
+}
+bool Parameter::getIsNeighborY()
+{
+    return this->isNeigborY;
+}
+bool Parameter::getIsNeighborZ()
+{
+    return this->isNeigborZ;
+}
+std::string Parameter::getgeomBoundaryNormalX()
+{
+    return ic.geomNormalX;
+}
+std::string Parameter::getgeomBoundaryNormalY()
+{
+    return ic.geomNormalY;
+}
+std::string Parameter::getgeomBoundaryNormalZ()
+{
+    return ic.geomNormalZ;
+}
+std::string Parameter::getInflowBoundaryNormalX()
+{
+    return ic.inflowNormalX;
+}
+std::string Parameter::getInflowBoundaryNormalY()
+{
+    return ic.inflowNormalY;
+}
+std::string Parameter::getInflowBoundaryNormalZ()
+{
+    return ic.inflowNormalZ;
+}
+std::string Parameter::getOutflowBoundaryNormalX()
+{
+    return ic.outflowNormalX;
+}
+std::string Parameter::getOutflowBoundaryNormalY()
+{
+    return ic.outflowNormalY;
+}
+std::string Parameter::getOutflowBoundaryNormalZ()
+{
+    return ic.outflowNormalZ;
+}
+curandState *Parameter::getRandomState()
+{
+    return this->devState;
+}
+
+std::string Parameter::getMainKernel()
+{
+    return mainKernel;
+}
+bool Parameter::getMultiKernelOn()
+{
+    return multiKernelOn;
+}
+std::vector<int> Parameter::getMultiKernelLevel()
+{
+    return multiKernelLevel;
+}
+std::vector<std::string> Parameter::getMultiKernel()
+{
+    return multiKernel;
+}
+std::string Parameter::getADKernel()
+{
+    return adKernel;
+}
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 void Parameter::setInitialCondition(
@@ -1430,9 +2518,18 @@ std::function<void(real, real, real, real &, real &, real &, real &)> &Parameter
     return this->initialCondition;
 }
 
-real Parameter::TrafoXtoWorld(int CoordX, int level) { return (parH[level]->mTtoWx * CoordX + parH[level]->cTtoWx); }
-real Parameter::TrafoYtoWorld(int CoordY, int level) { return (parH[level]->mTtoWy * CoordY + parH[level]->cTtoWy); }
-real Parameter::TrafoZtoWorld(int CoordZ, int level) { return (parH[level]->mTtoWz * CoordZ + parH[level]->cTtoWz); }
+real Parameter::TrafoXtoWorld(int CoordX, int level)
+{
+    return (parH[level]->mTtoWx * CoordX + parH[level]->cTtoWx);
+}
+real Parameter::TrafoYtoWorld(int CoordY, int level)
+{
+    return (parH[level]->mTtoWy * CoordY + parH[level]->cTtoWy);
+}
+real Parameter::TrafoZtoWorld(int CoordZ, int level)
+{
+    return (parH[level]->mTtoWz * CoordZ + parH[level]->cTtoWz);
+}
 real Parameter::TrafoXtoMGsWorld(int CoordX, int level)
 {
     real temp = 0;
@@ -1465,7 +2562,7 @@ void Parameter::setUseStreams(bool useStreams)
 {
     if (useStreams) {
         if (this->getNumprocs() != 1) {
-            this->useStreams        = useStreams;
+            this->useStreams = useStreams;
             this->cudaStreamManager = std::make_unique<CudaStreamManager>();
             return;
         } else {
@@ -1475,11 +2572,20 @@ void Parameter::setUseStreams(bool useStreams)
     this->useStreams = false;
 }
 
-bool Parameter::getUseStreams() { return this->useStreams; }
+bool Parameter::getUseStreams()
+{
+    return this->useStreams;
+}
 
-std::unique_ptr<CudaStreamManager> &Parameter::getStreamManager() { return this->cudaStreamManager; }
+std::unique_ptr<CudaStreamManager> &Parameter::getStreamManager()
+{
+    return this->cudaStreamManager;
+}
 
-bool Parameter::getKernelNeedsFluidNodeIndicesToRun() { return this->kernelNeedsFluidNodeIndicesToRun; }
+bool Parameter::getKernelNeedsFluidNodeIndicesToRun()
+{
+    return this->kernelNeedsFluidNodeIndicesToRun;
+}
 
 void Parameter::findEdgeNodesCommMultiGPU()
 {
diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
index a61a28452af92e863dac170ff666aa452f0e5e3f..6646cdbfbe70d4be9d35606309b839811cf6ec36 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
+++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
@@ -1,28 +1,28 @@
 //=======================================================================================
-// ____          ____    __    ______     __________   __      __       __        __         
-// \    \       |    |  |  |  |   _   \  |___    ___| |  |    |  |     /  \      |  |        
-//  \    \      |    |  |  |  |  |_)   |     |  |     |  |    |  |    /    \     |  |        
-//   \    \     |    |  |  |  |   _   /      |  |     |  |    |  |   /  /\  \    |  |        
-//    \    \    |    |  |  |  |  | \  \      |  |     |   \__/   |  /  ____  \   |  |____    
-//     \    \   |    |  |__|  |__|  \__\     |__|      \________/  /__/    \__\  |_______|   
-//      \    \  |    |   ________________________________________________________________    
-//       \    \ |    |  |  ______________________________________________________________|   
-//        \    \|    |  |  |         __          __     __     __     ______      _______    
-//         \         |  |  |_____   |  |        |  |   |  |   |  |   |   _  \    /  _____)   
-//          \        |  |   _____|  |  |        |  |   |  |   |  |   |  | \  \   \_______    
+// ____          ____    __    ______     __________   __      __       __        __
+// \    \       |    |  |  |  |   _   \  |___    ___| |  |    |  |     /  \      |  |
+//  \    \      |    |  |  |  |  |_)   |     |  |     |  |    |  |    /    \     |  |
+//   \    \     |    |  |  |  |   _   /      |  |     |  |    |  |   /  /\  \    |  |
+//    \    \    |    |  |  |  |  | \  \      |  |     |   \__/   |  /  ____  \   |  |____
+//     \    \   |    |  |__|  |__|  \__\     |__|      \________/  /__/    \__\  |_______|
+//      \    \  |    |   ________________________________________________________________
+//       \    \ |    |  |  ______________________________________________________________|
+//        \    \|    |  |  |         __          __     __     __     ______      _______
+//         \         |  |  |_____   |  |        |  |   |  |   |  |   |   _  \    /  _____)
+//          \        |  |   _____|  |  |        |  |   |  |   |  |   |  | \  \   \_______
 //           \       |  |  |        |  |_____   |   \_/   |   |  |   |  |_/  /    _____  |
-//            \ _____|  |__|        |________|   \_______/    |__|   |______/    (_______/   
+//            \ _____|  |__|        |________|   \_______/    |__|   |______/    (_______/
 //
-//  This file is part of VirtualFluids. VirtualFluids is free software: you can 
+//  This file is part of VirtualFluids. VirtualFluids is free software: you can
 //  redistribute it and/or modify it under the terms of the GNU General Public
-//  License as published by the Free Software Foundation, either version 3 of 
+//  License as published by the Free Software Foundation, either version 3 of
 //  the License, or (at your option) any later version.
-//  
-//  VirtualFluids is distributed in the hope that it will be useful, but WITHOUT 
-//  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-//  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License 
+//
+//  VirtualFluids is distributed in the hope that it will be useful, but WITHOUT
+//  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+//  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 //  for more details.
-//  
+//
 //  You should have received a copy of the GNU General Public License along
 //  with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
@@ -33,10 +33,10 @@
 #ifndef GPU_PARAMETER_H
 #define GPU_PARAMETER_H
 
-#include <vector>
-#include <string>
-#include <memory>
 #include <functional>
+#include <memory>
+#include <string>
+#include <vector>
 
 #include "LBM/D3Q27.h"
 #include "LBM/LB.h"
@@ -52,14 +52,13 @@ namespace basics
 {
 class ConfigurationFile;
 }
-} 
+} // namespace vf
 class CudaStreamManager;
 
 //! \struct LBMSimulationParameter
 //! \brief struct holds and manages the LB-parameter of the simulation
 //! \brief For this purpose it holds structures and pointer for host and device data, respectively.
-struct LBMSimulationParameter
-{
+struct LBMSimulationParameter {
     bool evenOrOdd;
     unsigned int numberofthreads;
 
@@ -120,7 +119,7 @@ struct LBMSimulationParameter
     real *gSij, *gSDij, *gDxvx, *gDyvx, *gDzvx, *gDxvy, *gDyvy, *gDzvy, *gDxvz, *gDyvz, *gDzvz; // DebugInformation
 
     // turbulence intensity //
-    real *vx_mean, *vy_mean, *vz_mean; // means
+    real *vx_mean, *vy_mean, *vz_mean;       // means
     real *vxx, *vyy, *vzz, *vxy, *vxz, *vyz; // fluctuations
     std::vector<real> turbulenceIntensity;
 
@@ -216,7 +215,7 @@ struct LBMSimulationParameter
     unsigned int kPressQ = 0, kPressQread;
 
     WallModelParameters wallModel;
-    
+
     // testRoundoffError
     Distributions27 kDistTestRE;
 
@@ -336,7 +335,7 @@ struct LBMSimulationParameter
         int indexOfProcessNeighborSend;
         int indexInSendBuffer;
         EdgeNodePositions(int indexOfProcessNeighborRecv, int indexInRecvBuffer, int indexOfProcessNeighborSend,
-                            int indexInSendBuffer)
+                          int indexInSendBuffer)
             : indexOfProcessNeighborRecv(indexOfProcessNeighborRecv), indexInRecvBuffer(indexInRecvBuffer),
               indexOfProcessNeighborSend(indexOfProcessNeighborSend), indexInSendBuffer(indexInSendBuffer)
         {
@@ -362,7 +361,7 @@ public:
 
     std::shared_ptr<LBMSimulationParameter> getParH(int level);
     std::shared_ptr<LBMSimulationParameter> getParD(int level);
-    
+
     void copyMeasurePointsArrayToVector(int lev);
 
     //////////////////////////////////////////////////////////////////////////
@@ -496,8 +495,8 @@ public:
     void setUseMeasurePoints(bool useMeasurePoints);
     void setUseWale(bool useWale);
     void setUseTurbulentViscosity(bool useTurbulentViscosity);
-    void setUseAMD( bool useAMD);
-    void setSGSConstant( real SGSConstant);
+    void setUseAMD(bool useAMD);
+    void setSGSConstant(real SGSConstant);
     void setHasWallModelMonitor(bool hasWallModelMonitor);
     void setUseInitNeq(bool useInitNeq);
     void setSimulatePorousMedia(bool simulatePorousMedia);
@@ -579,10 +578,10 @@ public:
 
     void setADKernel(std::string adKernel);
 
-    //adder
+    // adder
 
-	void addActuator(SPtr<PreCollisionInteractor> actuator);
-	void addProbe(SPtr<PreCollisionInteractor> probes);
+    void addActuator(SPtr<PreCollisionInteractor> actuator);
+    void addProbe(SPtr<PreCollisionInteractor> probes);
 
     // getter
     double *getForcesDouble();
@@ -713,10 +712,10 @@ public:
     real getViscosityRatio();
     real getVelocityRatio();
     real getDensityRatio();
-    real getPressRatio();    
+    real getPressRatio();
     real getTimeRatio();
     real getLengthRatio();
-    real getForceRatio();    
+    real getForceRatio();
     real getRealX();
     real getRealY();
     real getRe();
@@ -826,25 +825,24 @@ public:
 
     ////////////////////////////////////////////////////////////////////////////
 
-
 private:
     void readConfigData(const vf::basics::ConfigurationFile &configData);
 
-    bool compOn { false };
-    bool diffOn { false };
-    bool isF3 { false };
-    bool calcDragLift { false };
-    bool calcCp { false };
-    bool writeVeloASCII { false };
-    bool calcPlaneConc { false };
+    bool compOn{ false };
+    bool diffOn{ false };
+    bool isF3{ false };
+    bool calcDragLift{ false };
+    bool calcCp{ false };
+    bool writeVeloASCII{ false };
+    bool calcPlaneConc{ false };
     bool calcVelocityAndFluctuations{ false };
-    bool isBodyForce { false };
-    int diffMod {27};
-    int maxlevel {0};
-    int coarse {0};
-    int fine {0};
-    int factor_gridNZ {2};
-    int D3Qxx {27};
+    bool isBodyForce{ false };
+    int diffMod{ 27 };
+    int maxlevel{ 0 };
+    int coarse{ 0 };
+    int fine{ 0 };
+    int factor_gridNZ{ 2 };
+    int D3Qxx{ 27 };
     InitCondition ic;
     double memsizeGPU;
     unsigned int limitOfNodesForVTK;
@@ -852,8 +850,8 @@ private:
     unsigned int timestep;
 
     // Kernel
-    std::string mainKernel { "CumulantK17Comp" };
-    bool multiKernelOn { false };
+    std::string mainKernel{ "CumulantK17Comp" };
+    bool multiKernelOn{ false };
     std::vector<int> multiKernelLevel;
     std::vector<std::string> multiKernel;
     bool kernelNeedsFluidNodeIndicesToRun = false;
@@ -861,12 +859,12 @@ private:
 
     //////////////////////////////////////////////////////////////////////////
     // particles
-    int particleBasicLevel {0};
-    int particleInitLevel {0};
-    int numberOfParticles {0};
-    bool calcParticles {false};
-    real startXHotWall {(real)0.0};
-    real endXHotWall {(real)0.0};
+    int particleBasicLevel{ 0 };
+    int particleInitLevel{ 0 };
+    int numberOfParticles{ 0 };
+    bool calcParticles{ false };
+    real startXHotWall{ (real)0.0 };
+    real endXHotWall{ (real)0.0 };
     //////////////////////////////////////////////////////////////////////////
     // CUDA random number generation
     curandState *devState;
@@ -880,13 +878,13 @@ private:
     TempPressforBoundaryConditions *TempPressH, *TempPressD;
 
     // Drehung///////////////
-    real Phi {0.0};
-	real angularVelocity;
+    real Phi{ 0.0 };
+    real angularVelocity;
     unsigned int startTurn;
 
     // PreCollisionInteractors //////////////
     std::vector<SPtr<PreCollisionInteractor>> actuators;
-	std::vector<SPtr<PreCollisionInteractor>> probes;
+    std::vector<SPtr<PreCollisionInteractor>> probes;
 
     // Step of Ensight writing//
     unsigned int stepEnsight;
@@ -911,12 +909,10 @@ private:
     std::vector<std::string> possNeighborFilesRecvX, possNeighborFilesRecvY, possNeighborFilesRecvZ;
     bool isNeigborX, isNeigborY, isNeigborZ;
 
-
     ////////////////////////////////////////////////////////////////////////////
     // initial condition
     std::function<void(real, real, real, real &, real &, real &, real &)> initialCondition;
 
-
     ////////////////////////////////////////////////////////////////////////////
     // cuda streams
 
@@ -925,8 +921,9 @@ private:
     std::unique_ptr<CudaStreamManager> cudaStreamManager;
 
 public:
-    //! \brief sets whether streams and thus communication hiding should be used        
-    //! \details This function is only useful for simulations on multiple GPUs. If there is only one MPI process, the passed value is automatically overwritten with false.
+    //! \brief sets whether streams and thus communication hiding should be used
+    //! \details This function is only useful for simulations on multiple GPUs. If there is only one MPI process, the
+    //! passed value is automatically overwritten with false.
     void setUseStreams(bool useStreams);
     bool getUseStreams();
     std::unique_ptr<CudaStreamManager> &getStreamManager();
@@ -938,6 +935,7 @@ public:
 
     void findEdgeNodesCommMultiGPU();
     bool useReducedCommunicationAfterFtoC{ true };
+
 private:
     void findEdgeNodesXY(int level);
     bool findIndexInSendNodesXY(int level, int index, int &indexOfProcessNeighborSend, int &indexInSendBuffer);