diff --git a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
index a794757a44298d1f8572e0f8a214afbc48f031a8..093d11dbb486eed3e9c2ba86a9ae5143ea678682 100644
--- a/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
+++ b/src/gpu/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp
@@ -20,10 +20,6 @@ void UpdateGrid27::updateGrid27(Parameter *para, vf::gpu::Communicator *comm, Cu
         updateGrid27(para, comm, cudaManager, pm, level + 1, t, kernels);
     }
 
-    //////////////////////////////////////////////////////////////////////////
-    int borderStreamIndex = 1;
-    int bulkStreamIndex   = 0;
-
     //////////////////////////////////////////////////////////////////////////
 
     collisionAndExchange(para, pm, level, t, kernels, comm, cudaManager);
@@ -48,6 +44,9 @@ void UpdateGrid27::updateGrid27(Parameter *para, vf::gpu::Communicator *comm, Cu
     if( level != para->getFine() )
     {
         if (para->getUseStreams() && para->getNumprocs() > 1) {
+            int borderStreamIndex = para->getStreamManager()->getBorderStreamIndex();
+            int bulkStreamIndex   = para->getStreamManager()->getBulkStreamIndex();
+
             fineToCoarseWithStream(para, level, 
                                    para->getParD(level)->intFCBorder.ICellFCC,
                                    para->getParD(level)->intFCBorder.ICellFCF,
@@ -100,8 +99,8 @@ void collisionAndExchange_noStreams_oldKernel(Parameter *para, std::vector<std::
 void collisionAndExchange_streams(Parameter *para, std::vector<std::shared_ptr<PorousMedia>> &pm, int level,
                                      unsigned int t, std::vector<SPtr<Kernel>> &kernels, vf::gpu::Communicator *comm, CudaMemoryManager *cudaManager)
 {
-    int borderStreamIndex = 1;
-    int bulkStreamIndex   = 0;
+    int borderStreamIndex = para->getStreamManager()->getBorderStreamIndex();
+    int bulkStreamIndex   = para->getStreamManager()->getBulkStreamIndex();
     // launch border kernel
     collisionUsingIndex(para, pm, level, t, kernels, para->getParD(level)->fluidNodeIndicesBorder,
                         para->getParD(level)->numberOffluidNodesBorder, borderStreamIndex);
diff --git a/src/gpu/VirtualFluids_GPU/Parameter/CudaStreamManager.cpp b/src/gpu/VirtualFluids_GPU/Parameter/CudaStreamManager.cpp
index f4a48d82f160524c8547e0725e565fa59fdca137..2532c206fa73831cf9d7c511cbb438037324840c 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/CudaStreamManager.cpp
+++ b/src/gpu/VirtualFluids_GPU/Parameter/CudaStreamManager.cpp
@@ -49,8 +49,11 @@ void CudaStreamManager::terminateStreams()
 }
 
 cudaStream_t &CudaStreamManager::getStream(uint streamIndex)
-{
-    return cudaStreams[streamIndex]; }
+{ return cudaStreams[streamIndex]; }
+
+int CudaStreamManager::getBorderStreamIndex() { return borderStreamIndex; }
+
+int CudaStreamManager::getBulkStreamIndex() { return bulkStreamIndex; }
 
 void CudaStreamManager::createCudaEvents()
 {
diff --git a/src/gpu/VirtualFluids_GPU/Parameter/CudaStreamManager.h b/src/gpu/VirtualFluids_GPU/Parameter/CudaStreamManager.h
index 328c3f973f1df9cdc95c1d0a96d5beb3177942bc..fa315afa7a43c5403c162c79efc5086c07e2eb81 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/CudaStreamManager.h
+++ b/src/gpu/VirtualFluids_GPU/Parameter/CudaStreamManager.h
@@ -39,15 +39,22 @@ class CudaStreamManager
 {
 private:
     std::vector<cudaStream_t> cudaStreams;
-    cudaEvent_t startBulkKernel=NULL;
+    cudaEvent_t startBulkKernel = NULL;
+    const int borderStreamIndex       = 1;
+    const int bulkStreamIndex         = 0;
 
 public:
     CudaStreamManager();
     ~CudaStreamManager();
+
     void launchStreams(uint numberOfStreams);
     void terminateStreams();
     cudaStream_t &getStream(uint streamIndex);
 
+    int getBorderStreamIndex();
+    int getBulkStreamIndex();
+
+    // Events
     void createCudaEvents();
     void destroyCudaEvents();
     void triggerStartBulkKernel(int streamIndex);