diff --git a/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp b/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp
index bcf23ee40a27f0e37eab2371c7deeec7a1768166..482fac34f93ca97a18e3537cfd1fce23d0613ee7 100644
--- a/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp
+++ b/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp
@@ -195,7 +195,8 @@ void multipleLevel(const std::string& configPath)
     para->setViscosityLB(viscosityLB);
     para->setVelocityRatio( dx / dt );
     para->setViscosityRatio( dx*dx/dt );
-    para->setMainKernel("CumulantK17");
+    para->setDensityRatio( 1.0 );
+    para->setMainKernel("CumulantK17Sponge");
 
     para->setInitialCondition([&](real coordX, real coordY, real coordZ, real &rho, real &vx, real &vy, real &vz) {
         rho = (real)0.0;
diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Utilities/KernelFactory/KernelFactoryImp.cpp b/src/gpu/VirtualFluids_GPU/Kernel/Utilities/KernelFactory/KernelFactoryImp.cpp
index 5a2d8c9a426e5cb23ca75f91aaf6fbff75cba72b..81e5ac06cc04f54e88088e7ac7dad7d7627a6ae0 100644
--- a/src/gpu/VirtualFluids_GPU/Kernel/Utilities/KernelFactory/KernelFactoryImp.cpp
+++ b/src/gpu/VirtualFluids_GPU/Kernel/Utilities/KernelFactory/KernelFactoryImp.cpp
@@ -11,6 +11,7 @@
 #include "Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17Unified/CumulantK17Unified.h"
 #include "Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17chim/CumulantK17CompChim.h"
 #include "Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17.h"
+#include "Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17Sponge/CumulantK17Sponge.h"
 #include "Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17Bulk/CumulantK17BulkComp.h"
 #include "Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantAll4/CumulantAll4CompSP27.h"
 #include "Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK18/CumulantK18Comp.h"
@@ -141,11 +142,30 @@ std::shared_ptr<Kernel> KernelFactoryImp::makeKernel(std::shared_ptr<Parameter>
                 break;
             default:
                 throw std::runtime_error("Unknown turbulence model!");
-            break;                                                              
-        }                                                                       
-        checkStrategy = FluidFlowCompStrategy::getInstance();       
+            break;
+        }
+        checkStrategy = FluidFlowCompStrategy::getInstance();
+    } else if (kernel == "CumulantK17Sponge") {
+        switch (para->getTurbulenceModel()) {
+            case TurbulenceModel::AMD:
+                newKernel = CumulantK17Sponge<TurbulenceModel::AMD>::getNewInstance(para, level);
+                break;
+            case TurbulenceModel::Smagorinsky:
+                newKernel = CumulantK17Sponge<TurbulenceModel::Smagorinsky>::getNewInstance(para, level);
+                break;
+            case TurbulenceModel::QR:
+                newKernel = CumulantK17Sponge<TurbulenceModel::QR>::getNewInstance(para, level);
+                break;
+            case TurbulenceModel::None:
+                newKernel = CumulantK17Sponge<TurbulenceModel::None>::getNewInstance(para, level);
+                break;
+            default:
+                throw std::runtime_error("Unknown turbulence model!");
+                break;
+        }
+        checkStrategy = FluidFlowCompStrategy::getInstance();
     } else if (kernel == "CumulantAll4CompSP27") {
-        newKernel     = CumulantAll4CompSP27::getNewInstance(para, level);
+        newKernel = CumulantAll4CompSP27::getNewInstance(para, level);
         checkStrategy = FluidFlowCompStrategy::getInstance();
     } else if (kernel == "CumulantK18Comp") {
         newKernel     = CumulantK18Comp::getNewInstance(para, level);
@@ -162,8 +182,8 @@ std::shared_ptr<Kernel> KernelFactoryImp::makeKernel(std::shared_ptr<Parameter>
     } else if (kernel == "CumulantK15SpongeComp") {                             //     /\      //
         newKernel     = CumulantK15SpongeComp::getNewInstance(para, level);     //	   ||
         checkStrategy = FluidFlowCompStrategy::getInstance();                   // compressible
-    }																			//===============
-	else if (  kernel == "BGKIncompSP27") {										// incompressible
+    }                                                                           //===============
+    else if (kernel == "BGKIncompSP27") {                                       // incompressible
         newKernel     = BGKIncompSP27::getNewInstance(para, level);				//	   ||
         checkStrategy = FluidFlowIncompStrategy::getInstance();                 //     \/
     } else if (kernel == "BGKPlusIncompSP27") {
@@ -181,11 +201,11 @@ std::shared_ptr<Kernel> KernelFactoryImp::makeKernel(std::shared_ptr<Parameter>
     } else if (kernel == "CumulantIsoIncompSP27") {
         newKernel     = CumulantIsoIncompSP27::getNewInstance(para, level);
         checkStrategy = FluidFlowIncompStrategy::getInstance();
-    } else if (kernel == "CumulantK15Incomp") {									//     /\      //
+    } else if (kernel == "CumulantK15Incomp") {                                 //     /\      //
         newKernel     = CumulantK15Incomp::getNewInstance(para, level);			//	   ||
         checkStrategy = FluidFlowIncompStrategy::getInstance();                 // incompressible
-    }																			//===============
-	else if (kernel == "PMCumulantOneCompSP27") {								// porous media
+    }                                                                           //===============
+    else if (kernel == "PMCumulantOneCompSP27") {                               // porous media
         newKernel     = PMCumulantOneCompSP27::getNewInstance(para, pm, level);	//	   ||
         checkStrategy = PMFluidFlowCompStrategy::getInstance();                 // porous media
     }                                                                           //===============
@@ -198,10 +218,10 @@ std::shared_ptr<Kernel> KernelFactoryImp::makeKernel(std::shared_ptr<Parameter>
     } else if (kernel == "WaleCumulantK15Comp") {
         newKernel     = WaleCumulantK15Comp::getNewInstance(para, level);
         checkStrategy = WaleFluidFlowCompStrategy::getInstance();
-    } else if (kernel == "WaleBySoniMalavCumulantK15Comp") {                    //     /\      //
+    } else if (kernel == "WaleBySoniMalavCumulantK15Comp") {                        //     /\      //
         newKernel     = WaleBySoniMalavCumulantK15Comp::getNewInstance(para, level);// ||
         checkStrategy = WaleFluidFlowCompStrategy::getInstance();               // wale model
-    }                                                                          //===============
+    }                                                                           //===============
     else {
         throw std::runtime_error("KernelFactory does not know the KernelType.");
     }