From ba855e03350919ede2005f94bee7c88fbc7b79b6 Mon Sep 17 00:00:00 2001
From: Anna Wellmann <a.wellmann@tu-bs.de>
Date: Wed, 21 Dec 2022 08:17:30 +0000
Subject: [PATCH] correct factors in sponge kernel

---
 .../CumulantK17Sponge_Device.cu               | 56 ++++++++++---------
 1 file changed, 31 insertions(+), 25 deletions(-)

diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17Sponge/CumulantK17Sponge_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17Sponge/CumulantK17Sponge_Device.cu
index f81c96430..87e42b90d 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17Sponge/CumulantK17Sponge_Device.cu
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17Sponge/CumulantK17Sponge_Device.cu
@@ -342,34 +342,49 @@ __global__ void LB_Kernel_CumulantK17Sponge(
     //!
     real omega = omega_in;
     if(turbulenceModel != TurbulenceModel::None){ omega /= (c1o1 + c3o1*omega_in*turbulentViscosity[k_000]); }
-    ////////////////////////////////////////////////////////////////////////////////////
-    // Calculate modified omega for sponge layer
-    // sponge layer inflow
-    real startXsponge = 1507.0f;
-    real endXsponge = 1537.0f;
-    real sizeSponge = endXsponge - startXsponge;
 
-    if (coordX[k_000] > startXsponge) {
-        real spongeFactor = (((endXsponge - coordX[k_000]) / sizeSponge) * c1o2) + c1o2;
-        omega = spongeFactor * omega;
-    }
-    //sponge layer outflow
-    endXsponge = 30.0f;
-    if (coordX[k_000] < endXsponge) {
-        real spongeFactor = (((coordX[k_000]) / endXsponge) * c1o2) + c1o2;
-        omega = spongeFactor * omega;
-    }
+    ////////////////////////////////////////////////////////////////////////////////////
+    //! - A and DIR_00M: parameters for fourth order convergence of the diffusion term according to Eq. (115) and (116)
+    //! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017),
+    //! DOI:10.1016/j.jcp.2017.05.040 ]</b></a> with simplifications assuming \f$ \omega_2 = 1.0 \f$ (modify for
+    //! different bulk viscosity).
+    //!
+    real factorA = (c4o1 + c2o1 * omega - c3o1 * omega * omega) / (c2o1 - c7o1 * omega + c5o1 * omega * omega);
+    real factorB = (c4o1 + c28o1 * omega - c14o1 * omega * omega) / (c6o1 - c21o1 * omega + c15o1 * omega * omega);
 
     ////////////////////////////////////////////////////////////
     // 2.
     real OxxPyyPzz = c1o1;
+    
     ////////////////////////////////////////////////////////////
     // 3.
+    
+    // Calculate modified omega for sponge bob layer
+    real startXsponge = 1300.0f;
+    real endXsponge = 1500.0f;
+    real sizeSponge = endXsponge - startXsponge;
+
     real OxyyPxzz = c8o1 * (-c2o1 + omega) * (c1o1 + c2o1 * omega) / (-c8o1 - c14o1 * omega + c7o1 * omega * omega);
     real OxyyMxzz =
         c8o1 * (-c2o1 + omega) * (-c7o1 + c4o1 * omega) / (c56o1 - c50o1 * omega + c9o1 * omega * omega);
     real Oxyz = c24o1 * (-c2o1 + omega) * (-c2o1 - c7o1 * omega + c3o1 * omega * omega) /
                 (c48o1 + c152o1 * omega - c130o1 * omega * omega + c29o1 * omega * omega * omega);
+
+    if (coordX[k_000] > startXsponge) {
+        real spongeFactor = (((endXsponge - coordX[k_000]) / sizeSponge) * c1o2) + c1o2;
+        omega = spongeFactor * omega;
+
+        OxyyPxzz = c1o1;
+        OxyyMxzz = c1o1;
+        Oxyz = c1o1;
+
+        quadricLimitM = c1o100;
+        quadricLimitP = c1o100;
+        quadricLimitD = c1o100;
+
+        factorA = c0o1;
+        factorB = c0o1;
+    }
     ////////////////////////////////////////////////////////////
     // 4.
     real O4 = c1o1;
@@ -380,15 +395,6 @@ __global__ void LB_Kernel_CumulantK17Sponge(
     // 6.
     real O6 = c1o1;
 
-    ////////////////////////////////////////////////////////////////////////////////////
-    //! - A and DIR_00M: parameters for fourth order convergence of the diffusion term according to Eq. (115) and (116)
-    //! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017),
-    //! DOI:10.1016/j.jcp.2017.05.040 ]</b></a> with simplifications assuming \f$ \omega_2 = 1.0 \f$ (modify for
-    //! different bulk viscosity).
-    //!
-    real factorA = (c4o1 + c2o1 * omega - c3o1 * omega * omega) / (c2o1 - c7o1 * omega + c5o1 * omega * omega);
-    real factorB = (c4o1 + c28o1 * omega - c14o1 * omega * omega) / (c6o1 - c21o1 * omega + c15o1 * omega * omega);
-
     ////////////////////////////////////////////////////////////////////////////////////
     //! - Compute cumulants from central moments according to Eq. (20)-(23) in
     //! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017),
-- 
GitLab