From 54b9fa017dc978af904d0f6dcb9377c17ac42dec Mon Sep 17 00:00:00 2001
From: Anna Wellmann <a.wellmann@tu-braunschweig.de>
Date: Thu, 4 Nov 2021 10:11:13 +0100
Subject: [PATCH] Use cudaFreeTurbulenceIntensity

---
 .../Calculation/CalcTurbulenceIntensity.cpp                | 7 +++++++
 .../Calculation/CalcTurbulenceIntensity.h                  | 2 ++
 src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp               | 4 ++++
 3 files changed, 13 insertions(+)

diff --git a/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.cpp b/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.cpp
index 85d77ee34..583a677db 100644
--- a/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.cpp
+++ b/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.cpp
@@ -84,6 +84,13 @@ void resetVelocityFluctuationsAndMeans(Parameter *para, CudaMemoryManager *cudaM
     }
 }
 
+void cudaFreeTurbulenceIntensityArrays(Parameter *para, CudaMemoryManager *cudaManager)
+{
+    for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) {
+        cudaManager->cudaFreeTurbulenceIntensity(lev);
+    }
+}
+
 void writeTurbulenceIntensityToFile(Parameter *para, uint timestep)
 {
     for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) {
diff --git a/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.h b/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.h
index 8a1d90867..4a2d539f3 100644
--- a/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.h
+++ b/src/gpu/VirtualFluids_GPU/Calculation/CalcTurbulenceIntensity.h
@@ -10,6 +10,8 @@ extern "C" void allocTurbulenceIntensity(Parameter *para, CudaMemoryManager *cud
 extern "C" void calcVelocityAndFluctuations(Parameter *para, CudaMemoryManager *cudaManager, uint tdiff);
 extern "C" void calcTurbulenceIntensity(Parameter *para, CudaMemoryManager *cudaManager, uint tdiff);
 extern "C" void resetVelocityFluctuationsAndMeans(Parameter *para, CudaMemoryManager *cudaManager);
+extern "C" void cudaFreeTurbulenceIntensityArrays(Parameter *para, CudaMemoryManager *cudaManager);
+
 
 void writeTurbulenceIntensityToFile(Parameter *para, uint timestep);
 void writeVeloFluctuationToFile(Parameter *para, uint timeste);
diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
index 14b0bec68..4c6007259 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
+++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
@@ -1352,6 +1352,10 @@ void Simulation::free()
 		}
 	}
 	//////////////////////////////////////////////////////////////////////////
+	// Turbulence Intensity
+	if (para->getCalcTurbulenceIntensity()) {
+        cudaFreeTurbulenceIntensityArrays(para.get(), cudaManager.get());
+	}
 
     delete comm;
 
-- 
GitLab