diff --git a/apps/showcases/Lagoon/Lagoon.cpp b/apps/showcases/Lagoon/Lagoon.cpp
index f67f42802856335e9e1e7b8325615f3df6192cb9..6cb1987e833036d00767d657826c92849189b49f 100644
--- a/apps/showcases/Lagoon/Lagoon.cpp
+++ b/apps/showcases/Lagoon/Lagoon.cpp
@@ -195,7 +195,7 @@ inline void CustomRefinementSelection<DistanceObject>::operator()( blockforest::
 
    allReduceInplace( refine, mpi::LOGICAL_OR );
 
-   const real_t t = 0.4;
+   const real_t t = real_c(0.4);
    const AABB refinement_box(-t,-t,-t,t,2*t,t);
 
    for( uint_t i = 0; i != blocks.size(); ++i )
@@ -297,7 +297,7 @@ int main(int argc, char **argv) {
 
    if(weakScaling)
    {
-      auto blocks = math::getFactors3D( uint_c( MPIManager::instance()->numProcesses() ) );
+      auto blocks = math::getFactors3D( 4 );
       resolution[0] = domainSize[0] / real_c(blocks[0] * blockSize[0]);
       resolution[1] = domainSize[1] / real_c(blocks[1] * blockSize[1]);
       resolution[2] = domainSize[2] / real_c(blocks[2] * blockSize[2]);
@@ -524,7 +524,7 @@ int main(int argc, char **argv) {
          Vector3<real_t> cellCenter = blocks->getCellCenter(globalCell, level);
          cellCenter[0] += offset;
          // Adaption due to sponge layer
-         if(cellCenter[0] > spongeZoneStart)
+         if(cellCenter[0] > real_c(spongeZoneStart))
          {
             omegaField->get(x, y, z) = omega - omega_diff * ((real_c(cellCenter[0]) - real_c(spongeZoneStart)) / spongeZoneLength);
          }
@@ -634,10 +634,9 @@ int main(int argc, char **argv) {
    //////////////////////////////////
    WALBERLA_LOG_INFO_ON_ROOT("Start SWEEPS AND TIMELOOP")
 
-   auto defaultStream = gpu::StreamRAII::newStream();
-
    // create time loop
 #if defined(WALBERLA_BUILD_WITH_GPU_SUPPORT)
+   auto defaultStream = gpu::StreamRAII::newStream();
    SweepTimeloop timeloop(blocks->getBlockStorage(), timesteps);
    std::shared_ptr<lbm_generated::BasicRecursiveTimeStepGPU<GPUPdfField_T, SweepCollection_T, BoundaryCollection_T>> LBMRefinement;
 
@@ -790,7 +789,7 @@ int main(int argc, char **argv) {
    simTimer.end();
 
    WALBERLA_LOG_INFO_ON_ROOT("Simulation finished")
-   real_t time = simTimer.max();
+   double time = simTimer.max();
    WALBERLA_MPI_SECTION() { walberla::mpi::reduceInplace(time, walberla::mpi::MAX); }
    performance.logResultOnRoot(timesteps, time);
 
diff --git a/apps/showcases/Lagoon/LagoonParameterBig.prm b/apps/showcases/Lagoon/LagoonParameterBig.prm
index 5ed8165d5ec9257daddc465445d3cd6e48e66fda..dc8979e84afefd7977a4f00dea79eada94d365a5 100644
--- a/apps/showcases/Lagoon/LagoonParameterBig.prm
+++ b/apps/showcases/Lagoon/LagoonParameterBig.prm
@@ -7,7 +7,7 @@ Parameters
     referenceDensity 1.182;
     simulationTime 0.3;
     timeStepsForBenchmarking 1;   // if set to zero the timesteps will be calculated from the simulationTime
-    coarseMeshSize  0.256; // 0.16 0.032 0.512;
+    coarseMeshSize  0.009; // 0.16 0.032 0.512;
 
     relaxationRateOutlet  1.9;
     SpongeZoneStart 35;
@@ -26,12 +26,12 @@ Parameters
 DomainSetup
 {
     meshFile      Lagoon.obj;
-    cellsPerBlock < 8, 8, 8 >;
+    cellsPerBlock < 64, 64, 64 >;
     periodic      <  0,  1,  1 >;
 
     domainSize    < 14, 10, 10 >;
 
-    refinementLevels 10;
+    refinementLevels 8;
     numberProcesses 512;
 
     weakScaling false;
diff --git a/apps/showcases/Lagoon/LagoonParameterGPUUniformStrongScaling.prm b/apps/showcases/Lagoon/LagoonParameterGPUUniformStrongScaling.prm
index 7058bf2b985058fd73584896726643985881e9a5..06ff10ac8715458f25128cc348dfa735b8f59b61 100644
--- a/apps/showcases/Lagoon/LagoonParameterGPUUniformStrongScaling.prm
+++ b/apps/showcases/Lagoon/LagoonParameterGPUUniformStrongScaling.prm
@@ -7,7 +7,7 @@ Parameters
     referenceDensity 1.182;
     simulationTime 0.3;
     timeStepsForBenchmarking 10;   // if set to zero the timesteps will be calculated from the simulationTime
-    coarseMeshSize  0.005859375; // 0.16 0.032 0.512;
+    coarseMeshSize  0.0029296875; // 0.16 0.032 0.512;
 
     relaxationRateOutlet  1.9;
     SpongeZoneStart 35;
@@ -26,10 +26,10 @@ Parameters
 DomainSetup
 {
     meshFile      Lagoon.obj;
-    cellsPerBlock < 128, 64, 64 >;
+    cellsPerBlock < 256, 256, 256 >;
     periodic      <  0,  1,  1 >;
 
-    domainSize    < 12, 3, 3 >;
+    domainSize    < 12, 6, 6 >;
 
     refinementLevels 0;
     numberProcesses 1;
diff --git a/apps/showcases/Lagoon/LagoonParameterGPUUniformWeakScaling.prm b/apps/showcases/Lagoon/LagoonParameterGPUUniformWeakScaling.prm
index 558fdf4782c49354d221b4cb4f5a97a87543d7c1..3be295af0c726c79bc6c609bbcf77a5e5c2059bd 100644
--- a/apps/showcases/Lagoon/LagoonParameterGPUUniformWeakScaling.prm
+++ b/apps/showcases/Lagoon/LagoonParameterGPUUniformWeakScaling.prm
@@ -32,7 +32,7 @@ DomainSetup
     domainSize    < 3, 2, 2 >;
 
     refinementLevels 0;
-    numberProcesses 1;
+    numberProcesses 4;
 
     weakScaling true;
 }
diff --git a/apps/showcases/S2A/S2A.cpp b/apps/showcases/S2A/S2A.cpp
index 11ecc0b81e6e5c75d2e4d0a18ebe31ccbbed3066..1ed6885c05d8d1890c09e78f958d5866274321b4 100644
--- a/apps/showcases/S2A/S2A.cpp
+++ b/apps/showcases/S2A/S2A.cpp
@@ -548,10 +548,9 @@ int main(int argc, char **argv) {
    //////////////////////////////////
    WALBERLA_LOG_INFO_ON_ROOT("Start SWEEPS AND TIMELOOP")
 
-   auto defaultStream = gpu::StreamRAII::newStream();
-
    // create time loop
 #if defined(WALBERLA_BUILD_WITH_GPU_SUPPORT)
+   auto defaultStream = gpu::StreamRAII::newStream();
    SweepTimeloop timeloop(blocks->getBlockStorage(), timesteps);
    std::shared_ptr<lbm_generated::BasicRecursiveTimeStepGPU<GPUPdfField_T, SweepCollection_T, BoundaryCollection_T>> LBMRefinement;