diff --git a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
index 3ee6f3189f0864b4924280b8bd0d30334d988e8b..5ba63490015de48efad4ee03c2e3459640694fd0 100644
--- a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
+++ b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
@@ -9,15 +9,13 @@
 #include "Kernel/Kernel.h"
 #include "Parameter/CudaStreamManager.h"
 
-void UpdateGrid27::updateGrid(Parameter *para, vf::gpu::Communicator *comm, CudaMemoryManager *cudaManager,
-                              std::vector<std::shared_ptr<PorousMedia>> &pm, int level, unsigned int t,
-                              std::vector<SPtr<Kernel>> &kernels)
+void UpdateGrid27::updateGrid(int level, unsigned int t)
 {
     //////////////////////////////////////////////////////////////////////////
 
     if (level != para->getFine()) {
-        updateGrid(para, comm, cudaManager, pm, level + 1, t, kernels);
-        updateGrid(para, comm, cudaManager, pm, level + 1, t, kernels);
+        updateGrid(level + 1, t);
+        updateGrid(level + 1, t);
     }
 
     //////////////////////////////////////////////////////////////////////////
@@ -26,20 +24,20 @@ void UpdateGrid27::updateGrid(Parameter *para, vf::gpu::Communicator *comm, Cuda
 
     //////////////////////////////////////////////////////////////////////////
 
-    postCollisionBC(para, level, t);
+    postCollisionBC(para.get(), level, t);
 
     //////////////////////////////////////////////////////////////////////////
 
-    swapBetweenEvenAndOddTimestep(para, level);
+    swapBetweenEvenAndOddTimestep(para.get(), level);
 
 	//////////////////////////////////////////////////////////////////////////
 
 	if (para->getUseWale())
-		calcMacroscopicQuantities(para, level);
+		calcMacroscopicQuantities(para.get(), level);
 
 	//////////////////////////////////////////////////////////////////////////
 
-    preCollisionBC(para, cudaManager, level, t);
+    preCollisionBC(para.get(), cudaManager.get(), level, t);
 
     //////////////////////////////////////////////////////////////////////////
     if( level != para->getFine() )
diff --git a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.h b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.h
index 3a00940735e505d1a48184d3ae4bf7517dd3de3f..32b4bf82bd36f3a23312802e2305fefc6be6b1fe 100644
--- a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.h
+++ b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.h
@@ -15,9 +15,7 @@ class UpdateGrid27
 public:
     UpdateGrid27(SPtr<Parameter> para, vf::gpu::Communicator *comm, SPtr<CudaMemoryManager> cudaManager,
                  std::vector<std::shared_ptr<PorousMedia>> &pm, std::vector<SPtr<Kernel>> &kernels);
-    void updateGrid(Parameter *para, vf::gpu::Communicator *comm, CudaMemoryManager *cudaManager,
-                    std::vector<std::shared_ptr<PorousMedia>> &pm, int level, unsigned int t,
-                    std::vector<SPtr<Kernel>> &kernels);
+    void updateGrid(int level, unsigned int t);
 
 private:
     typedef void (UpdateGrid27::*collisionAndExchangeFun)(int level, unsigned int t);
diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
index ddcfa298ef4bcc121470ddd8c94c4d7fd1c7833b..ae6d1db2e299c0b075e223243e66c40b321abe07 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
+++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
@@ -440,7 +440,7 @@ void Simulation::run()
 	////////////////////////////////////////////////////////////////////////////////
 	for(t=para->getTStart();t<=para->getTEnd();t++)
 	{
-        this->updateGrid27->updateGrid(para.get(), comm, cudaManager.get(), pm, 0, t, kernels);
+        this->updateGrid27->updateGrid(0, t);
 
 	    ////////////////////////////////////////////////////////////////////////////////
 	    //Particles