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