From 697fb7094b0758204e6131791acc4c48b8786534 Mon Sep 17 00:00:00 2001
From: Kutscher <kutscher@irmb.tu-bs.de>
Date: Mon, 13 Nov 2023 11:01:52 +0100
Subject: [PATCH] turns off the dead reckoning

---
 .../MultiphaseNoSlipBCStrategy.cpp            |  6 ++--
 .../MultiphaseVelocityBCStrategy.cpp          |  4 ++-
 .../MultiphaseScaleDistributionLBMKernel.cpp  | 28 +++++++++++--------
 .../BoundaryConditions/BoundaryConditions.h   | 10 +++----
 4 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseNoSlipBCStrategy.cpp b/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseNoSlipBCStrategy.cpp
index 6632c1d8e..0bded1016 100644
--- a/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseNoSlipBCStrategy.cpp
+++ b/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseNoSlipBCStrategy.cpp
@@ -83,12 +83,10 @@ void MultiphaseNoSlipBCStrategy::applyBC()
             // quadratic bounce back
             const int invDir = D3Q27System::INVDIR[fdir];
             real fReturn = f[invDir];
-            distributions->setDistributionForDirection(fReturn, x1 + D3Q27System::DX1[invDir], x2 + D3Q27System::DX2[invDir],
-                                                       x3 + D3Q27System::DX3[invDir], fdir);
+            distributions->setDistributionForDirection(fReturn, x1 + D3Q27System::DX1[invDir], x2 + D3Q27System::DX2[invDir], x3 + D3Q27System::DX3[invDir], fdir);
             // distributions->setDistributionForDirection(fReturn, x1, x2, x3, invDir);//delay BB
             real hReturn = h[invDir];
-            distributionsH->setDistributionForDirection(hReturn, x1 + D3Q27System::DX1[invDir],
-                                                        x2 + D3Q27System::DX2[invDir], x3 + D3Q27System::DX3[invDir], fdir);
+            distributionsH->setDistributionForDirection(hReturn, x1 + D3Q27System::DX1[invDir], x2 + D3Q27System::DX2[invDir], x3 + D3Q27System::DX3[invDir], fdir);
             // distributionsH->setDistributionForDirection(hReturn, x1, x2, x3, invDir);//delay BB
             if (distributionsH2) {
                 real h2Return = h2[invDir];
diff --git a/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseVelocityBCStrategy.cpp b/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseVelocityBCStrategy.cpp
index 99d0e085e..8a35ecfc5 100644
--- a/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseVelocityBCStrategy.cpp
+++ b/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseVelocityBCStrategy.cpp
@@ -84,8 +84,10 @@ void MultiphaseVelocityBCStrategy::applyBC()
    
    D3Q27System::calcDensity(h, phi);
 
+   phi = 1;
+
    calcMacrosFct(f, p1, vx1, vx2, vx3);
-   vx1=bcPtr->getBoundaryVelocityX1();
+   vx1 = bcPtr->getBoundaryVelocityX1();
    vx2 = bcPtr->getBoundaryVelocityX2();
    vx3 = bcPtr->getBoundaryVelocityX3();
    p1 = vf::basics::constant::c0o1;
diff --git a/src/cpu/MultiphaseFlow/LBM/MultiphaseScaleDistributionLBMKernel.cpp b/src/cpu/MultiphaseFlow/LBM/MultiphaseScaleDistributionLBMKernel.cpp
index ba89d0169..d0fdabf44 100644
--- a/src/cpu/MultiphaseFlow/LBM/MultiphaseScaleDistributionLBMKernel.cpp
+++ b/src/cpu/MultiphaseFlow/LBM/MultiphaseScaleDistributionLBMKernel.cpp
@@ -5155,7 +5155,7 @@ void MultiphaseScaleDistributionLBMKernel::calculate(int step)
                         //scaleNorm = scaleNorm * scaleNorm;
                         //scaleNorm = scaleNorm * scaleNorm;
                         //scaleNorm = scaleNorm * scaleNorm;
-                        if  (phi[DIR_000] > phiLim) //(true) // ((phi[DIR_000] > phiLim)||(normX1*vvx+normX2*vvy+normX3*vvz<0))
+                        if  (true)//(phi[DIR_000] > phiLim) //(true) // ((phi[DIR_000] > phiLim)||(normX1*vvx+normX2*vvy+normX3*vvz<0))
 						{
                         
                         normX1 = (normX1 * (c1o1 - mixNormal) + mixNormal * MomX1 / MomXDenom) * scaleNorm;
@@ -5933,12 +5933,15 @@ void MultiphaseScaleDistributionLBMKernel::findNeighbors(CbArray3D<real, Indexer
             //else
             //    phi[k] = 0.0; // unwetting
             //phi[k] = (*ph)(x1, x2, x3) * 0.7;
-            if (bcArray->getBC(x1, x2, x3)->hasNoSlipBoundaryFlag(D3Q27System::INVDIR[k]))
+            SPtr<BoundaryConditions> bcPtr = bcArray->getBC(x1, x2, x3);
+            if (bcPtr)
 			{
-			   if(bcArray->getBC(x1, x2, x3)->getNoSlipSecondaryOption(D3Q27System::INVDIR[k]) == 0)
-                  phi[k] = (*ph)(x1, x2, x3); // neutral wetting
-			   else
-                  phi[k] = 0.0; // unwetting
+                if (bcPtr->hasNoSlipBoundaryFlag(D3Q27System::INVDIR[k])) {
+                    if (bcPtr->getNoSlipSecondaryOption(D3Q27System::INVDIR[k]) == 0)
+                        phi[k] = (*ph)(x1, x2, x3); // neutral wetting
+                    else
+                        phi[k] = 0.0; // unwetting
+                }
 		    }
 
 		}
@@ -5964,11 +5967,14 @@ void MultiphaseScaleDistributionLBMKernel::findNeighbors2(CbArray3D<real, Indexe
             // else
             //     phi[k] = 0.0; // unwetting
             // phi[k] = (*ph)(x1, x2, x3) * 0.7;
-            if (bcArray->getBC(x1, x2, x3)->hasNoSlipBoundaryFlag(D3Q27System::INVDIR[k])) {
-               if (bcArray->getBC(x1, x2, x3)->getNoSlipSecondaryOption(D3Q27System::INVDIR[k]) == 0)
-                  phi2[k] = (*ph)(x1, x2, x3); // neutral wetting
-               else
-                  phi2[k] = 0.0; // unwetting
+            SPtr<BoundaryConditions> bcPtr = bcArray->getBC(x1, x2, x3);
+            if (bcPtr) {
+                if (bcPtr->hasNoSlipBoundaryFlag(D3Q27System::INVDIR[k])) {
+                    if (bcPtr->getNoSlipSecondaryOption(D3Q27System::INVDIR[k]) == 0)
+                        phi[k] = (*ph)(x1, x2, x3); // neutral wetting
+                    else
+                        phi[k] = 0.0; // unwetting
+                }
             }
         }
     }
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h
index cbcc2b0da..9d09e5b44 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h
@@ -327,11 +327,11 @@ protected:
     long long densityBoundaryFlags{ 0 };
     long long wallModelBoundaryFlags{ 0 };
 
-    float bcVelocityX1{ vf::basics::constant::c0o1 };
-    float bcVelocityX2{ vf::basics::constant::c0o1 };
-    float bcVelocityX3{ vf::basics::constant::c0o1 };
-    float bcDensity{ vf::basics::constant::c0o1 };
-    float bcPhaseField{ vf::basics::constant::c0o1 };
+    float bcVelocityX1{ 0.0 };
+    float bcVelocityX2{ 0.0 };
+    float bcVelocityX3{ 0.0 };
+    float bcDensity{ 0.0 };
+    float bcPhaseField{ 0.0 };
 
     float nx1{ vf::basics::constant::c0o1 }, nx2{ vf::basics::constant::c0o1 }, nx3{ vf::basics::constant::c0o1 };
 
-- 
GitLab