diff --git a/apps/gpu/LBM/MusselOyster/MusselOyster.cpp b/apps/gpu/LBM/MusselOyster/MusselOyster.cpp
index 2752f367343b52a0247525bc2ffd7c933537013d..a4081b9e41c635f7b38afe4338dbcddb21119f92 100644
--- a/apps/gpu/LBM/MusselOyster/MusselOyster.cpp
+++ b/apps/gpu/LBM/MusselOyster/MusselOyster.cpp
@@ -113,6 +113,8 @@ void multipleLevel(const std::string& configPath)
     bool useStreams       = true;
     bool useLevels        = true;
     para->useReducedCommunicationAfterFtoC = true;
+    para->setCalcTurbulenceIntensity(true);
+
 
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/apps/gpu/LBM/MusselOyster2x/MusselOyster2x.cpp b/apps/gpu/LBM/MusselOyster2x/MusselOyster2x.cpp
index f4c8de81f78b301bb010b76c7e6e473a292ba550..d1b50d065cb503c31cc29d60b9a7236d94612a41 100644
--- a/apps/gpu/LBM/MusselOyster2x/MusselOyster2x.cpp
+++ b/apps/gpu/LBM/MusselOyster2x/MusselOyster2x.cpp
@@ -109,10 +109,11 @@ void multipleLevel(const std::string& configPath)
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
     bool useGridGenerator = true;
-    bool useMultiGPU      = true;
-    bool useStreams       = true;
+    bool useMultiGPU      = false;
+    bool useStreams       = false;
     bool useLevels        = true;
     para->useReducedCommunicationAfterFtoC = true;
+    para->setCalcTurbulenceIntensity(true);
 
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/apps/gpu/LBM/MusselOyster3z/MusselOyster3z.cpp b/apps/gpu/LBM/MusselOyster3z/MusselOyster3z.cpp
index 0160b01c137f2ba3cd0269c5552c62154c1f9de7..c9653f8d2ba963eb0ca606257ec0600a71c1b998 100644
--- a/apps/gpu/LBM/MusselOyster3z/MusselOyster3z.cpp
+++ b/apps/gpu/LBM/MusselOyster3z/MusselOyster3z.cpp
@@ -113,6 +113,8 @@ void multipleLevel(const std::string& configPath)
     bool useStreams       = true;
     bool useLevels        = true;
     para->useReducedCommunicationAfterFtoC = true;
+    para->setCalcTurbulenceIntensity(true);
+
 
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.cpp b/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.cpp
index e9a986daf3b489827f11d8d2526dc99e08057b97..14ca01b0a7061a9068e4a225c13a7907aa5db227 100644
--- a/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.cpp
+++ b/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.cpp
@@ -8,6 +8,7 @@
 #include "Calculation/CalcTurbulenceIntensity.h"
 #include <cuda_runtime.h>
 #include <helper_cuda.h>
+#include <basics/Core/StringUtilities/StringUtil.h>
 
 void allocTurbulenceIntensity(Parameter *para, CudaMemoryManager *cudaManager, uint size)
 {
@@ -76,3 +77,33 @@ void resetTurbulenceIntensity(Parameter *para, CudaMemoryManager *cudaManager, u
     cudaManager->cudaCopyTurbulenceIntensityHD(lev, size);
 }
 
+void writeTurbulenceIntensityToFile(Parameter *para, uint timestep, int *vectorOfSparseIndices)
+{
+    //////////////////////////////////////////////////////////////////////////
+    // set level
+    int lev = para->getFine();
+    //////////////////////////////////////////////////////////////////////////
+    // set filename
+    std::string ffname = para->getFName() + StringUtil::toString<int>(para->getMyID()) + "_" +
+                         StringUtil::toString<int>(timestep) + "_TurbulenIntensity.txt";
+    const char *fname = ffname.c_str();
+    //////////////////////////////////////////////////////////////////////////
+    // set ofstream
+    std::ofstream ostr;
+    //////////////////////////////////////////////////////////////////////////
+    // open file
+    ostr.open(fname);
+    //////////////////////////////////////////////////////////////////////////
+    // add header
+    ostr << "index_sp" << "\t" << "ti" << std::endl;
+    //////////////////////////////////////////////////////////////////////////
+    // fill file with data
+    for (size_t i = 0; i < para->getParH(lev)->turbulenceIntensity.size(); i++) {
+        ostr << vectorOfSparseIndices[i] << "\t" << para->getParH(lev)->turbulenceIntensity[i]
+             << std::endl;
+    }
+    //////////////////////////////////////////////////////////////////////////
+    // close file
+    ostr.close();
+    //////////////////////////////////////////////////////////////////////////
+}
diff --git a/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.h b/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.h
index d9e2575945f48f8890c31952b3d89cd111ada481..be36534b21d318ca6dfca8bc837c3b295f88d73e 100644
--- a/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.h
+++ b/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.h
@@ -11,4 +11,6 @@ extern "C" void calcVelocityAndFluctuations(Parameter *para, CudaMemoryManager *
 extern "C" void calcTurbulenceIntensity(Parameter *para, CudaMemoryManager *cudaManager, uint tdiff, uint size);
 extern "C" void resetTurbulenceIntensity(Parameter *para, CudaMemoryManager *cudaManager, uint size);
 
+void writeTurbulenceIntensityToFile(Parameter *para, uint timestep, int *vectorOfSparseIndices);
+
 #endif
diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
index c01c265feb7e785698d7d0ad62a0268c9941b800..c0b06e78052bcca7fb50a3595da4530666aa76e8 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
+++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
@@ -966,7 +966,7 @@ void Simulation::run()
 			{
                 uint t_diff = t - t_turbulenceIntensity;
                 calcTurbulenceIntensity(para.get(), cudaManager.get(), t_diff, para->getParH(para->getFine())->QGeom.kQ);
-
+				writeTurbulenceIntensityToFile(para.get(), t, para->getParH(para->getFine())->QGeom.k);
 				t_turbulenceIntensity = t;
                 resetTurbulenceIntensity(para.get(), cudaManager.get(), para->getParH(para->getFine())->QGeom.kQ);
             }
diff --git a/src/gpu/VirtualFluids_GPU/Output/FileWriter.cpp b/src/gpu/VirtualFluids_GPU/Output/FileWriter.cpp
index 0a9e34166652613659b5b1d609bc40d07f6cee76..da57e5f8ff7ae5688c83be25a432e1e2455915e1 100644
--- a/src/gpu/VirtualFluids_GPU/Output/FileWriter.cpp
+++ b/src/gpu/VirtualFluids_GPU/Output/FileWriter.cpp
@@ -182,7 +182,7 @@ void FileWriter::writeUnstrucuredGridLT(std::shared_ptr<Parameter> para, int lev
     nodedatanames.push_back("vx3");
     nodedatanames.push_back("geo");
     //nodedatanames.push_back("sendNodes");
-    //nodedatanames.push_back("sparseIndex");
+    nodedatanames.push_back("sparseIndex");
     unsigned int number1, number2, number3, number4, number5, number6, number7, number8;
     uint dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8;
     bool neighborsAreFluid;
@@ -228,11 +228,11 @@ void FileWriter::writeUnstrucuredGridLT(std::shared_ptr<Parameter> para, int lev
                 nodedata[3][dn1] = (double)para->getParH(level)->vy_SP[pos] * (double)para->getVelocityRatio();
                 nodedata[4][dn1] = (double)para->getParH(level)->vz_SP[pos] * (double)para->getVelocityRatio();
                 nodedata[5][dn1] = (double)para->getParH(level)->geoSP[pos];
+                nodedata[6][dn1] = (double) pos;
 
 				//int sendNode = 0; // 0 - not a sendNode; 1 - sendNode; 2 - sendNode in communication after fine to coarse
     //            testForSendNodeZ(para, level, pos, sendNode); // slow and should not be done multiple times --> use for debugging only!
 				//nodedata[6][dn1] = (double) sendNode;
-    //            nodedata[7][dn1] = (double) pos;
 
                 //////////////////////////////////////////////////////////////////////////
                 number2 = para->getParH(level)->neighborX_SP[number1];
@@ -641,5 +641,3 @@ void FileWriter::writeUnstrucuredGridMedianLTConc(std::shared_ptr<Parameter> par
 
 
 
-
-