diff --git a/apps/cpu/CouetteFlow/cflow.cpp b/apps/cpu/CouetteFlow/cflow.cpp index 276fbe125b5b3cd0271542f7e9d8ab9f9abca518..3de4a3b36f7453eaafca24648d0aa770fb954d63 100644 --- a/apps/cpu/CouetteFlow/cflow.cpp +++ b/apps/cpu/CouetteFlow/cflow.cpp @@ -184,7 +184,7 @@ void bflow(string configname) //////////////////////////////////////////// //METIS - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::BSW, MetisPartitioner::KWAY)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_MMM, MetisPartitioner::KWAY)); //////////////////////////////////////////// /////delete solid blocks if (myid == 0) UBLOG(logINFO, "deleteSolidBlocks - start"); diff --git a/apps/cpu/FlowAroundCylinder/cylinder.cpp b/apps/cpu/FlowAroundCylinder/cylinder.cpp index 2f470d17dbac3600b2c42acede2bba9e6c45f872..5578ecb56b37e3b489e4c60d9a26adfa05e9b3d3 100644 --- a/apps/cpu/FlowAroundCylinder/cylinder.cpp +++ b/apps/cpu/FlowAroundCylinder/cylinder.cpp @@ -203,7 +203,7 @@ void run(string configname) SPtr<D3Q27Interactor> outflowInt = SPtr<D3Q27Interactor>(new D3Q27Interactor(geoOutflow, grid, denBCAdapter, Interactor3D::SOLID)); - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_00M)); InteractorsHelper intHelper(grid, metisVisitor); intHelper.addInteractor(cylinderInt); intHelper.addInteractor(addWallYminInt); diff --git a/apps/cpu/HerschelBulkleyModel/hbflow.cpp b/apps/cpu/HerschelBulkleyModel/hbflow.cpp index 8483883aca772693758b9f52fcee53c54b84a1d5..b97942a1cd78c4ea9a5c73b4f24ddf4f6ae2edf6 100644 --- a/apps/cpu/HerschelBulkleyModel/hbflow.cpp +++ b/apps/cpu/HerschelBulkleyModel/hbflow.cpp @@ -218,7 +218,7 @@ void bflow(string configname) //////////////////////////////////////////// //METIS - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::BSW, MetisPartitioner::RECURSIVE)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_MMM, MetisPartitioner::RECURSIVE)); //////////////////////////////////////////// /////delete solid blocks if (myid == 0) UBLOG(logINFO, "deleteSolidBlocks - start"); diff --git a/apps/cpu/HerschelBulkleySphere/hbsphere.cpp b/apps/cpu/HerschelBulkleySphere/hbsphere.cpp index f69bce237ec0518fb5148f60a0cdaed10230db8f..67f5a00ad49dcbe16a018e402f85ed02b3848650 100644 --- a/apps/cpu/HerschelBulkleySphere/hbsphere.cpp +++ b/apps/cpu/HerschelBulkleySphere/hbsphere.cpp @@ -161,7 +161,7 @@ void bflow(string configname) //////////////////////////////////////////// //METIS - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::BSW, MetisPartitioner::KWAY)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_MMM, MetisPartitioner::KWAY)); //////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// //restart @@ -243,7 +243,7 @@ void bflow(string configname) //////////////////////////////////////////// //METIS - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::BSW, MetisPartitioner::KWAY)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_MMM, MetisPartitioner::KWAY)); //////////////////////////////////////////// /////delete solid blocks if (myid == 0) UBLOG(logINFO, "deleteSolidBlocks - start"); diff --git a/apps/cpu/JetBreakup/JetBreakup.cpp b/apps/cpu/JetBreakup/JetBreakup.cpp index 4ebc8e81482b3e4e157666ebf534e0a78dd176d1..83cb83fd41e9fa1f4049fceb7fb83862f74eb21b 100644 --- a/apps/cpu/JetBreakup/JetBreakup.cpp +++ b/apps/cpu/JetBreakup/JetBreakup.cpp @@ -200,7 +200,7 @@ void run(string configname) grid->setGhostLayerWidth(2); SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor( - comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::BSW, MetisPartitioner::RECURSIVE)); + comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_MMM, MetisPartitioner::RECURSIVE)); ////////////////////////////////////////////////////////////////////////// // restart diff --git a/apps/cpu/LaminarTubeFlow/ltf.cpp b/apps/cpu/LaminarTubeFlow/ltf.cpp index 3c93a21516af5bd1342ad6b0118cb93fa13fdcaf..93fd31083a1da92bc5fb73bb0606c7a8121bb5b8 100644 --- a/apps/cpu/LaminarTubeFlow/ltf.cpp +++ b/apps/cpu/LaminarTubeFlow/ltf.cpp @@ -108,7 +108,7 @@ void run(string configname) kernel->setBCProcessor(bcProc); ////////////////////////////////////////////////////////////////////////// - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_00M)); //restart SPtr<UbScheduler> mSch(new UbScheduler(cpStep, cpStart)); //SPtr<MPIIOMigrationCoProcessor> migCoProcessor(new MPIIOMigrationCoProcessor(grid, mSch, metisVisitor, pathname + "/mig", comm)); @@ -220,7 +220,7 @@ void run(string configname) //outflow SPtr<D3Q27Interactor> outflowInt = SPtr<D3Q27Interactor>(new D3Q27Interactor(geoOutflow, grid, denBCAdapter, Interactor3D::SOLID)); - //SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B)); + //SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_00M)); InteractorsHelper intHelper(grid, metisVisitor); intHelper.addInteractor(cylinderInt); intHelper.addInteractor(inflowInt); diff --git a/apps/cpu/Multiphase/Multiphase.cpp b/apps/cpu/Multiphase/Multiphase.cpp index 9623cd730b7a80548a5ca14c149ae3583aba8c7b..09d74e1473e9fef8e7f29343d758359eaf0752a2 100644 --- a/apps/cpu/Multiphase/Multiphase.cpp +++ b/apps/cpu/Multiphase/Multiphase.cpp @@ -122,7 +122,7 @@ void run(string configname) grid->setGhostLayerWidth(2); - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::BSW, MetisPartitioner::RECURSIVE)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_MMM, MetisPartitioner::RECURSIVE)); ////////////////////////////////////////////////////////////////////////// // restart diff --git a/apps/cpu/MultiphaseDropletTest/droplet.cpp b/apps/cpu/MultiphaseDropletTest/droplet.cpp index 29a2228bb7a6b7a6808e6e76162a9d3a20c23126..54b59fcfd8bd93f220b3d3d4ebb5bb29881079e5 100644 --- a/apps/cpu/MultiphaseDropletTest/droplet.cpp +++ b/apps/cpu/MultiphaseDropletTest/droplet.cpp @@ -187,7 +187,7 @@ void run(string configname) grid->setPeriodicX3(true); grid->setGhostLayerWidth(2); - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::BSW, MetisPartitioner::RECURSIVE)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_MMM, MetisPartitioner::RECURSIVE)); ////////////////////////////////////////////////////////////////////////// // restart diff --git a/apps/cpu/PoiseuilleFlow/pf1.cpp b/apps/cpu/PoiseuilleFlow/pf1.cpp index 99600ceb994e505798fa777a49c39e01a1fecb2a..d4d856d51f66a1ac6800e1f2f78da5b219b54488 100644 --- a/apps/cpu/PoiseuilleFlow/pf1.cpp +++ b/apps/cpu/PoiseuilleFlow/pf1.cpp @@ -76,7 +76,7 @@ void pf1() //set boundary conditions for blocks and create process decomposition for MPI SPtr<D3Q27Interactor> cylinderInt(new D3Q27Interactor(cylinder, grid, noSlipBCAdapter, Interactor3D::INVERSESOLID)); - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_00M)); InteractorsHelper intHelper(grid, metisVisitor); intHelper.addInteractor(cylinderInt); intHelper.selectBlocks(); diff --git a/apps/cpu/RisingBubble2D/RisingBubble2D.cpp b/apps/cpu/RisingBubble2D/RisingBubble2D.cpp index 536936d669b20fa9d2d53905740c77d18740a56a..f5e215fe763b90b0e753c340a00e737d05c3ca97 100644 --- a/apps/cpu/RisingBubble2D/RisingBubble2D.cpp +++ b/apps/cpu/RisingBubble2D/RisingBubble2D.cpp @@ -189,7 +189,7 @@ void run(string configname) grid->setPeriodicX3(true); grid->setGhostLayerWidth(2); - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::BSW, MetisPartitioner::RECURSIVE)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_MMM, MetisPartitioner::RECURSIVE)); ////////////////////////////////////////////////////////////////////////// // restart diff --git a/apps/cpu/ViskomatXL/viskomat.cpp b/apps/cpu/ViskomatXL/viskomat.cpp index 983ecb06c802163f1e75b5b25076ceb670d522b1..7cbdff384627811c158087f0443e2589b0959ed3 100644 --- a/apps/cpu/ViskomatXL/viskomat.cpp +++ b/apps/cpu/ViskomatXL/viskomat.cpp @@ -191,7 +191,7 @@ void bflow(string configname) //////////////////////////////////////////// //METIS - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::BSW, MetisPartitioner::RECURSIVE)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_MMM, MetisPartitioner::RECURSIVE)); //////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// //restart diff --git a/apps/cpu/rheometer/rheometer.cpp b/apps/cpu/rheometer/rheometer.cpp index 70a11bdc77e01b34965e3cb09b6ac3c5b43d4f83..e79d9d13a3763cb5502c24f12fb6ec4d27651814 100644 --- a/apps/cpu/rheometer/rheometer.cpp +++ b/apps/cpu/rheometer/rheometer.cpp @@ -223,7 +223,7 @@ void bflow(string configname) //////////////////////////////////////////// //METIS - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::BSW, MetisPartitioner::KWAY)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_MMM, MetisPartitioner::KWAY)); //////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// //restart @@ -313,7 +313,7 @@ void bflow(string configname) //////////////////////////////////////////// //METIS - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::BSW, MetisPartitioner::KWAY)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_MMM, MetisPartitioner::KWAY)); //////////////////////////////////////////// /////delete solid blocks if (myid == 0) UBLOG(logINFO, "deleteSolidBlocks - start"); diff --git a/apps/cpu/sphere/sphere.cpp b/apps/cpu/sphere/sphere.cpp index 5ab9a2a70f59273c326d7757faf13e4e338c6614..bad77ee999d96b89fea43183929ecf4a3b920588 100644 --- a/apps/cpu/sphere/sphere.cpp +++ b/apps/cpu/sphere/sphere.cpp @@ -180,7 +180,7 @@ void run(string configname) //outflow SPtr<D3Q27Interactor> outflowInt = SPtr<D3Q27Interactor>(new D3Q27Interactor(geoOutflow, grid, denBCAdapter, Interactor3D::SOLID)); - SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B)); + SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::DIR_00M)); InteractorsHelper intHelper(grid, metisVisitor); intHelper.addInteractor(sphereInt); intHelper.addInteractor(addWallYminInt); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h index 555ef9852c0e386c4263bd6dc5d105d814583860..fa61e7224ede371f1c28d3eab8e0ba795ccfa3b1 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h @@ -193,59 +193,59 @@ public: float getBoundaryVelocity(const int &direction) { switch (direction) { - case D3Q27System::E: + case D3Q27System::DIR_P00: return (float)(UbMath::c4o9 * (+bcVelocityX1)); //(2/cs^2)(=6)*rho_0(=1 bei inkompr)*wi*u*ei mit cs=1/sqrt(3) - case D3Q27System::W: + case D3Q27System::DIR_M00: return (float)(UbMath::c4o9 * (-bcVelocityX1)); // z.B. aus paper manfred MRT LB models in three dimensions (2002) - case D3Q27System::N: + case D3Q27System::DIR_0P0: return (float)(UbMath::c4o9 * (+bcVelocityX2)); - case D3Q27System::S: + case D3Q27System::DIR_0M0: return (float)(UbMath::c4o9 * (-bcVelocityX2)); - case D3Q27System::T: + case D3Q27System::DIR_00P: return (float)(UbMath::c4o9 * (+bcVelocityX3)); - case D3Q27System::B: + case D3Q27System::DIR_00M: return (float)(UbMath::c4o9 * (-bcVelocityX3)); - case D3Q27System::NE: + case D3Q27System::DIR_PP0: return (float)(UbMath::c1o9 * (+bcVelocityX1 + bcVelocityX2)); - case D3Q27System::SW: + case D3Q27System::DIR_MM0: return (float)(UbMath::c1o9 * (-bcVelocityX1 - bcVelocityX2)); - case D3Q27System::SE: + case D3Q27System::DIR_PM0: return (float)(UbMath::c1o9 * (+bcVelocityX1 - bcVelocityX2)); - case D3Q27System::NW: + case D3Q27System::DIR_MP0: return (float)(UbMath::c1o9 * (-bcVelocityX1 + bcVelocityX2)); - case D3Q27System::TE: + case D3Q27System::DIR_P0P: return (float)(UbMath::c1o9 * (+bcVelocityX1 + bcVelocityX3)); - case D3Q27System::BW: + case D3Q27System::DIR_M0M: return (float)(UbMath::c1o9 * (-bcVelocityX1 - bcVelocityX3)); - case D3Q27System::BE: + case D3Q27System::DIR_P0M: return (float)(UbMath::c1o9 * (+bcVelocityX1 - bcVelocityX3)); - case D3Q27System::TW: + case D3Q27System::DIR_M0P: return (float)(UbMath::c1o9 * (-bcVelocityX1 + bcVelocityX3)); - case D3Q27System::TN: + case D3Q27System::DIR_0PP: return (float)(UbMath::c1o9 * (+bcVelocityX2 + bcVelocityX3)); - case D3Q27System::BS: + case D3Q27System::DIR_0MM: return (float)(UbMath::c1o9 * (-bcVelocityX2 - bcVelocityX3)); - case D3Q27System::BN: + case D3Q27System::DIR_0PM: return (float)(UbMath::c1o9 * (+bcVelocityX2 - bcVelocityX3)); - case D3Q27System::TS: + case D3Q27System::DIR_0MP: return (float)(UbMath::c1o9 * (-bcVelocityX2 + bcVelocityX3)); - case D3Q27System::TNE: + case D3Q27System::DIR_PPP: return (float)(UbMath::c1o36 * (+bcVelocityX1 + bcVelocityX2 + bcVelocityX3)); - case D3Q27System::BSW: + case D3Q27System::DIR_MMM: return (float)(UbMath::c1o36 * (-bcVelocityX1 - bcVelocityX2 - bcVelocityX3)); - case D3Q27System::BNE: + case D3Q27System::DIR_PPM: return (float)(UbMath::c1o36 * (+bcVelocityX1 + bcVelocityX2 - bcVelocityX3)); - case D3Q27System::TSW: + case D3Q27System::DIR_MMP: return (float)(UbMath::c1o36 * (-bcVelocityX1 - bcVelocityX2 + bcVelocityX3)); - case D3Q27System::TSE: + case D3Q27System::DIR_PMP: return (float)(UbMath::c1o36 * (+bcVelocityX1 - bcVelocityX2 + bcVelocityX3)); - case D3Q27System::BNW: + case D3Q27System::DIR_MPM: return (float)(UbMath::c1o36 * (-bcVelocityX1 + bcVelocityX2 - bcVelocityX3)); - case D3Q27System::BSE: + case D3Q27System::DIR_PMM: return (float)(UbMath::c1o36 * (+bcVelocityX1 - bcVelocityX2 - bcVelocityX3)); - case D3Q27System::TNW: + case D3Q27System::DIR_MPP: return (float)(UbMath::c1o36 * (-bcVelocityX1 + bcVelocityX2 + bcVelocityX3)); default: throw UbException(UB_EXARGS, "unknown error"); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/EqDensityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/EqDensityBCAlgorithm.cpp index 8551c4371fed0f2c5d710fcf30ecad2da80abef3..bdddd2369377f1e2b30c86eb243bf4d4a843e06c 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/EqDensityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/EqDensityBCAlgorithm.cpp @@ -63,17 +63,17 @@ void EqDensityBCAlgorithm::applyBC() int nx3 = x3; // flag points in direction of fluid - if (bcPtr->hasDensityBoundaryFlag(D3Q27System::E)) { + if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_P00)) { nx1 -= 1; - } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::W)) { + } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_M00)) { nx1 += 1; - } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::N)) { + } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_0P0)) { nx2 -= 1; - } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::S)) { + } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_0M0)) { nx2 += 1; - } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::T)) { + } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_00P)) { nx3 -= 1; - } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::B)) { + } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_00M)) { nx3 += 1; } else UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on density boundary...")); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNonReflectingOutflowBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNonReflectingOutflowBCAlgorithm.cpp index d0a3b39c83c1d828801dd442fb387c4d4d33d589..bc9a73dee529d984a7a5330a665ead3931abb566 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNonReflectingOutflowBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNonReflectingOutflowBCAlgorithm.cpp @@ -77,11 +77,11 @@ void MultiphaseNonReflectingOutflowBCAlgorithm::applyBC() int direction = -1; //flag points in direction of fluid - if (bcPtr->hasDensityBoundaryFlag(E)) { nx1 += 1; direction = E; } - else if (bcPtr->hasDensityBoundaryFlag(W)) { nx1 -= 1; direction = W; } - else if (bcPtr->hasDensityBoundaryFlag(N)) { nx2 += 1; direction = N; } - else if (bcPtr->hasDensityBoundaryFlag(S)) { nx2 -= 1; direction = S; } - else if (bcPtr->hasDensityBoundaryFlag(T)) { nx3 += 1; direction = T; } + if (bcPtr->hasDensityBoundaryFlag(DIR_P00)) { nx1 += 1; direction = DIR_P00; } + else if (bcPtr->hasDensityBoundaryFlag(DIR_M00)) { nx1 -= 1; direction = DIR_M00; } + else if (bcPtr->hasDensityBoundaryFlag(DIR_0P0)) { nx2 += 1; direction = DIR_0P0; } + else if (bcPtr->hasDensityBoundaryFlag(DIR_0M0)) { nx2 -= 1; direction = DIR_0M0; } + else if (bcPtr->hasDensityBoundaryFlag(DIR_00P)) { nx3 += 1; direction = DIR_00P; } else if (bcPtr->hasDensityBoundaryFlag(B)) { nx3 -= 1; direction = B; } else UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on density boundary...")); @@ -98,256 +98,256 @@ void MultiphaseNonReflectingOutflowBCAlgorithm::applyBC() switch (direction) { - case E: - f[E] = ftemp[E] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[E] ; - f[NE] = ftemp[NE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[NE] ; - f[SE] = ftemp[SE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[SE] ; - f[TE] = ftemp[TE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[TE] ; - f[BE] = ftemp[BE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[BE] ; - f[TNE] = ftemp[TNE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[TNE] ; - f[TSE] = ftemp[TSE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[TSE] ; - f[BNE] = ftemp[BNE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[BNE] ; - f[BSE] = ftemp[BSE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[BSE] ; + case DIR_P00: + f[DIR_P00] = ftemp[DIR_P00] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[DIR_P00]; + f[DIR_PP0] = ftemp[DIR_PP0] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[DIR_PP0]; + f[DIR_PM0] = ftemp[DIR_PM0] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[DIR_PM0]; + f[DIR_P0P] = ftemp[DIR_P0P] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[DIR_P0P]; + f[DIR_P0M] = ftemp[DIR_P0M] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[DIR_P0M]; + f[DIR_PPP] = ftemp[DIR_PPP] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[DIR_PPP]; + f[DIR_PMP] = ftemp[DIR_PMP] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[DIR_PMP]; + f[DIR_PPM] = ftemp[DIR_PPM] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[DIR_PPM]; + f[DIR_PMM] = ftemp[DIR_PMM] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*f[DIR_PMM]; - distributions->setDistributionInvForDirection(f[E], x1+DX1[W], x2+DX2[W], x3+DX3[W], W); - distributions->setDistributionInvForDirection(f[NE], x1+DX1[SW], x2+DX2[SW], x3+DX3[SW], SW); - distributions->setDistributionInvForDirection(f[SE], x1+DX1[NW], x2+DX2[NW], x3+DX3[NW], NW); - distributions->setDistributionInvForDirection(f[TE], x1+DX1[BW], x2+DX2[BW], x3+DX3[BW], BW); - distributions->setDistributionInvForDirection(f[BE], x1+DX1[TW], x2+DX2[TW], x3+DX3[TW], TW); - distributions->setDistributionInvForDirection(f[TNE], x1+DX1[BSW], x2+DX2[BSW], x3+DX3[BSW], BSW); - distributions->setDistributionInvForDirection(f[TSE], x1+DX1[BNW], x2+DX2[BNW], x3+DX3[BNW], BNW); - distributions->setDistributionInvForDirection(f[BNE], x1+DX1[TSW], x2+DX2[TSW], x3+DX3[TSW], TSW); - distributions->setDistributionInvForDirection(f[BSE], x1+DX1[TNW], x2+DX2[TNW], x3+DX3[TNW], TNW); + distributions->setDistributionInvForDirection(f[DIR_P00], x1+DX1[DIR_M00], x2+DX2[DIR_M00], x3+DX3[DIR_M00], DIR_M00); + distributions->setDistributionInvForDirection(f[DIR_PP0], x1+DX1[DIR_MM0], x2+DX2[DIR_MM0], x3+DX3[DIR_MM0], DIR_MM0); + distributions->setDistributionInvForDirection(f[DIR_PM0], x1+DX1[DIR_MP0], x2+DX2[DIR_MP0], x3+DX3[DIR_MP0], DIR_MP0); + distributions->setDistributionInvForDirection(f[DIR_P0P], x1+DX1[DIR_M0M], x2+DX2[DIR_M0M], x3+DX3[DIR_M0M], DIR_M0M); + distributions->setDistributionInvForDirection(f[DIR_P0M], x1+DX1[DIR_M0P], x2+DX2[DIR_M0P], x3+DX3[DIR_M0P], DIR_M0P); + distributions->setDistributionInvForDirection(f[DIR_PPP], x1+DX1[DIR_MMM], x2+DX2[DIR_MMM], x3+DX3[DIR_MMM], DIR_MMM); + distributions->setDistributionInvForDirection(f[DIR_PMP], x1+DX1[DIR_MPM], x2+DX2[DIR_MPM], x3+DX3[DIR_MPM], DIR_MPM); + distributions->setDistributionInvForDirection(f[DIR_PPM], x1+DX1[DIR_MMP], x2+DX2[DIR_MMP], x3+DX3[DIR_MMP], DIR_MMP); + distributions->setDistributionInvForDirection(f[DIR_PMM], x1+DX1[DIR_MPP], x2+DX2[DIR_MPP], x3+DX3[DIR_MPP], DIR_MPP); - h[E] = htemp[E] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[E] ; - h[NE] = htemp[NE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[NE] ; - h[SE] = htemp[SE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[SE] ; - h[TE] = htemp[TE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[TE] ; - h[BE] = htemp[BE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[BE] ; - h[TNE] = htemp[TNE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[TNE] ; - h[TSE] = htemp[TSE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[TSE] ; - h[BNE] = htemp[BNE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[BNE] ; - h[BSE] = htemp[BSE] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[BSE] ; + h[DIR_P00] = htemp[DIR_P00] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[DIR_P00]; + h[DIR_PP0] = htemp[DIR_PP0] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[DIR_PP0]; + h[DIR_PM0] = htemp[DIR_PM0] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[DIR_PM0]; + h[DIR_P0P] = htemp[DIR_P0P] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[DIR_P0P]; + h[DIR_P0M] = htemp[DIR_P0M] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[DIR_P0M]; + h[DIR_PPP] = htemp[DIR_PPP] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[DIR_PPP]; + h[DIR_PMP] = htemp[DIR_PMP] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[DIR_PMP]; + h[DIR_PPM] = htemp[DIR_PPM] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[DIR_PPM]; + h[DIR_PMM] = htemp[DIR_PMM] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1)*h[DIR_PMM]; - distributionsH->setDistributionInvForDirection(h[E], x1+DX1[W], x2+DX2[W], x3+DX3[W], W); - distributionsH->setDistributionInvForDirection(h[NE], x1+DX1[SW], x2+DX2[SW], x3+DX3[SW], SW); - distributionsH->setDistributionInvForDirection(h[SE], x1+DX1[NW], x2+DX2[NW], x3+DX3[NW], NW); - distributionsH->setDistributionInvForDirection(h[TE], x1+DX1[BW], x2+DX2[BW], x3+DX3[BW], BW); - distributionsH->setDistributionInvForDirection(h[BE], x1+DX1[TW], x2+DX2[TW], x3+DX3[TW], TW); - distributionsH->setDistributionInvForDirection(h[TNE], x1+DX1[BSW], x2+DX2[BSW], x3+DX3[BSW], BSW); - distributionsH->setDistributionInvForDirection(h[TSE], x1+DX1[BNW], x2+DX2[BNW], x3+DX3[BNW], BNW); - distributionsH->setDistributionInvForDirection(h[BNE], x1+DX1[TSW], x2+DX2[TSW], x3+DX3[TSW], TSW); - distributionsH->setDistributionInvForDirection(h[BSE], x1+DX1[TNW], x2+DX2[TNW], x3+DX3[TNW], TNW); + distributionsH->setDistributionInvForDirection(h[DIR_P00], x1+DX1[DIR_M00], x2+DX2[DIR_M00], x3+DX3[DIR_M00], DIR_M00); + distributionsH->setDistributionInvForDirection(h[DIR_PP0], x1+DX1[DIR_MM0], x2+DX2[DIR_MM0], x3+DX3[DIR_MM0], DIR_MM0); + distributionsH->setDistributionInvForDirection(h[DIR_PM0], x1+DX1[DIR_MP0], x2+DX2[DIR_MP0], x3+DX3[DIR_MP0], DIR_MP0); + distributionsH->setDistributionInvForDirection(h[DIR_P0P], x1+DX1[DIR_M0M], x2+DX2[DIR_M0M], x3+DX3[DIR_M0M], DIR_M0M); + distributionsH->setDistributionInvForDirection(h[DIR_P0M], x1+DX1[DIR_M0P], x2+DX2[DIR_M0P], x3+DX3[DIR_M0P], DIR_M0P); + distributionsH->setDistributionInvForDirection(h[DIR_PPP], x1+DX1[DIR_MMM], x2+DX2[DIR_MMM], x3+DX3[DIR_MMM], DIR_MMM); + distributionsH->setDistributionInvForDirection(h[DIR_PMP], x1+DX1[DIR_MPM], x2+DX2[DIR_MPM], x3+DX3[DIR_MPM], DIR_MPM); + distributionsH->setDistributionInvForDirection(h[DIR_PPM], x1+DX1[DIR_MMP], x2+DX2[DIR_MMP], x3+DX3[DIR_MMP], DIR_MMP); + distributionsH->setDistributionInvForDirection(h[DIR_PMM], x1+DX1[DIR_MPP], x2+DX2[DIR_MPP], x3+DX3[DIR_MPP], DIR_MPP); break; - case W: - f[W] = ftemp[W] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[W] ; - f[NW] = ftemp[NW] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[NW] ; - f[SW] = ftemp[SW] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[SW] ; - f[TW] = ftemp[TW] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[TW] ; - f[BW] = ftemp[BW] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[BW] ; - f[TNW] = ftemp[TNW] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[TNW]; - f[TSW] = ftemp[TSW] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[TSW]; - f[BNW] = ftemp[BNW] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[BNW]; - f[BSW] = ftemp[BSW] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[BSW]; + case DIR_M00: + f[DIR_M00] = ftemp[DIR_M00] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[DIR_M00] ; + f[DIR_MP0] = ftemp[DIR_MP0] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[DIR_MP0] ; + f[DIR_MM0] = ftemp[DIR_MM0] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[DIR_MM0] ; + f[DIR_M0P] = ftemp[DIR_M0P] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[DIR_M0P] ; + f[DIR_M0M] = ftemp[DIR_M0M] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[DIR_M0M] ; + f[DIR_MPP] = ftemp[DIR_MPP] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[DIR_MPP]; + f[DIR_MMP] = ftemp[DIR_MMP] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[DIR_MMP]; + f[DIR_MPM] = ftemp[DIR_MPM] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[DIR_MPM]; + f[DIR_MMM] = ftemp[DIR_MMM] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*f[DIR_MMM]; - distributions->setDistributionInvForDirection(f[W], x1+DX1[E], x2+DX2[E], x3+DX3[E], E); - distributions->setDistributionInvForDirection(f[NW], x1+DX1[SE], x2+DX2[SE], x3+DX3[SE], SE); - distributions->setDistributionInvForDirection(f[SW], x1+DX1[NE], x2+DX2[NE], x3+DX3[NE], NE); - distributions->setDistributionInvForDirection(f[TW], x1+DX1[BE], x2+DX2[BE], x3+DX3[BE], BE); - distributions->setDistributionInvForDirection(f[BW], x1+DX1[TE], x2+DX2[TE], x3+DX3[TE], TE); - distributions->setDistributionInvForDirection(f[TNW], x1+DX1[BSE], x2+DX2[BSE], x3+DX3[BSE], BSE); - distributions->setDistributionInvForDirection(f[TSW], x1+DX1[BNE], x2+DX2[BNE], x3+DX3[BNE], BNE); - distributions->setDistributionInvForDirection(f[BNW], x1+DX1[TSE], x2+DX2[TSE], x3+DX3[TSE], TSE); - distributions->setDistributionInvForDirection(f[BSW], x1+DX1[TNE], x2+DX2[TNE], x3+DX3[TNE], TNE); + distributions->setDistributionInvForDirection(f[DIR_M00], x1+DX1[DIR_P00], x2+DX2[DIR_P00], x3+DX3[DIR_P00], DIR_P00); + distributions->setDistributionInvForDirection(f[DIR_MP0], x1+DX1[DIR_PM0], x2+DX2[DIR_PM0], x3+DX3[DIR_PM0], DIR_PM0); + distributions->setDistributionInvForDirection(f[DIR_MM0], x1+DX1[DIR_PP0], x2+DX2[DIR_PP0], x3+DX3[DIR_PP0], DIR_PP0); + distributions->setDistributionInvForDirection(f[DIR_M0P], x1+DX1[DIR_P0M], x2+DX2[DIR_P0M], x3+DX3[DIR_P0M], DIR_P0M); + distributions->setDistributionInvForDirection(f[DIR_M0M], x1+DX1[DIR_P0P], x2+DX2[DIR_P0P], x3+DX3[DIR_P0P], DIR_P0P); + distributions->setDistributionInvForDirection(f[DIR_MPP], x1+DX1[DIR_PMM], x2+DX2[DIR_PMM], x3+DX3[DIR_PMM], DIR_PMM); + distributions->setDistributionInvForDirection(f[DIR_MMP], x1+DX1[DIR_PPM], x2+DX2[DIR_PPM], x3+DX3[DIR_PPM], DIR_PPM); + distributions->setDistributionInvForDirection(f[DIR_MPM], x1+DX1[DIR_PMP], x2+DX2[DIR_PMP], x3+DX3[DIR_PMP], DIR_PMP); + distributions->setDistributionInvForDirection(f[DIR_MMM], x1+DX1[DIR_PPP], x2+DX2[DIR_PPP], x3+DX3[DIR_PPP], DIR_PPP); - h[W] = htemp[W] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[W] ; - h[NW] = htemp[NW] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[NW] ; - h[SW] = htemp[SW] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[SW] ; - h[TW] = htemp[TW] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[TW] ; - h[BW] = htemp[BW] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[BW] ; - h[TNW] = htemp[TNW]* (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[TNW]; - h[TSW] = htemp[TSW]* (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[TSW]; - h[BNW] = htemp[BNW]* (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[BNW]; - h[BSW] = htemp[BSW]* (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[BSW]; + h[DIR_M00] = htemp[DIR_M00] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[DIR_M00] ; + h[DIR_MP0] = htemp[DIR_MP0] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[DIR_MP0] ; + h[DIR_MM0] = htemp[DIR_MM0] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[DIR_MM0] ; + h[DIR_M0P] = htemp[DIR_M0P] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[DIR_M0P] ; + h[DIR_M0M] = htemp[DIR_M0M] * (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[DIR_M0M] ; + h[DIR_MPP] = htemp[DIR_MPP]* (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[DIR_MPP]; + h[DIR_MMP] = htemp[DIR_MMP]* (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[DIR_MMP]; + h[DIR_MPM] = htemp[DIR_MPM]* (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[DIR_MPM]; + h[DIR_MMM] = htemp[DIR_MMM]* (one_over_sqrt3 - vx1) + (1.0 - one_over_sqrt3 + vx1)*h[DIR_MMM]; - distributionsH->setDistributionInvForDirection(h[W], x1+DX1[E], x2+DX2[E], x3+DX3[E], E); - distributionsH->setDistributionInvForDirection(h[NW], x1+DX1[SE], x2+DX2[SE], x3+DX3[SE], SE); - distributionsH->setDistributionInvForDirection(h[SW], x1+DX1[NE], x2+DX2[NE], x3+DX3[NE], NE); - distributionsH->setDistributionInvForDirection(h[TW], x1+DX1[BE], x2+DX2[BE], x3+DX3[BE], BE); - distributionsH->setDistributionInvForDirection(h[BW], x1+DX1[TE], x2+DX2[TE], x3+DX3[TE], TE); - distributionsH->setDistributionInvForDirection(h[TNW], x1+DX1[BSE], x2+DX2[BSE], x3+DX3[BSE], BSE); - distributionsH->setDistributionInvForDirection(h[TSW], x1+DX1[BNE], x2+DX2[BNE], x3+DX3[BNE], BNE); - distributionsH->setDistributionInvForDirection(h[BNW], x1+DX1[TSE], x2+DX2[TSE], x3+DX3[TSE], TSE); - distributionsH->setDistributionInvForDirection(h[BSW], x1+DX1[TNE], x2+DX2[TNE], x3+DX3[TNE], TNE); + distributionsH->setDistributionInvForDirection(h[DIR_M00], x1+DX1[DIR_P00], x2+DX2[DIR_P00], x3+DX3[DIR_P00], DIR_P00); + distributionsH->setDistributionInvForDirection(h[DIR_MP0], x1+DX1[DIR_PM0], x2+DX2[DIR_PM0], x3+DX3[DIR_PM0], DIR_PM0); + distributionsH->setDistributionInvForDirection(h[DIR_MM0], x1+DX1[DIR_PP0], x2+DX2[DIR_PP0], x3+DX3[DIR_PP0], DIR_PP0); + distributionsH->setDistributionInvForDirection(h[DIR_M0P], x1+DX1[DIR_P0M], x2+DX2[DIR_P0M], x3+DX3[DIR_P0M], DIR_P0M); + distributionsH->setDistributionInvForDirection(h[DIR_M0M], x1+DX1[DIR_P0P], x2+DX2[DIR_P0P], x3+DX3[DIR_P0P], DIR_P0P); + distributionsH->setDistributionInvForDirection(h[DIR_MPP], x1+DX1[DIR_PMM], x2+DX2[DIR_PMM], x3+DX3[DIR_PMM], DIR_PMM); + distributionsH->setDistributionInvForDirection(h[DIR_MMP], x1+DX1[DIR_PPM], x2+DX2[DIR_PPM], x3+DX3[DIR_PPM], DIR_PPM); + distributionsH->setDistributionInvForDirection(h[DIR_MPM], x1+DX1[DIR_PMP], x2+DX2[DIR_PMP], x3+DX3[DIR_PMP], DIR_PMP); + distributionsH->setDistributionInvForDirection(h[DIR_MMM], x1+DX1[DIR_PPP], x2+DX2[DIR_PPP], x3+DX3[DIR_PPP], DIR_PPP); break; case N: f[N] = ftemp[N] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[N] ; - f[NE] = ftemp[NE] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[NE] ; - f[NW] = ftemp[NW] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[NW] ; - f[TN] = ftemp[TN] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[TN] ; - f[BN] = ftemp[BN] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[BN] ; - f[TNE] = ftemp[TNE] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[TNE] ; - f[TNW] = ftemp[TNW] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[TNW] ; - f[BNE] = ftemp[BNE] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[BNE] ; - f[BNW] = ftemp[BNW] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[BNW] ; + f[DIR_PP0] = ftemp[DIR_PP0] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[DIR_PP0] ; + f[DIR_MP0] = ftemp[DIR_MP0] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[DIR_MP0] ; + f[DIR_0PP] = ftemp[DIR_0PP] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[DIR_0PP] ; + f[DIR_0PM] = ftemp[DIR_0PM] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[DIR_0PM] ; + f[DIR_PPP] = ftemp[DIR_PPP] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[DIR_PPP] ; + f[DIR_MPP] = ftemp[DIR_MPP] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[DIR_MPP] ; + f[DIR_PPM] = ftemp[DIR_PPM] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[DIR_PPM] ; + f[DIR_MPM] = ftemp[DIR_MPM] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*f[DIR_MPM] ; - distributions->setDistributionInvForDirection(f[N], x1+DX1[S], x2+DX2[S], x3+DX3[S], S); - distributions->setDistributionInvForDirection(f[NE], x1+DX1[SW], x2+DX2[SW], x3+DX3[SW], SW); - distributions->setDistributionInvForDirection(f[NW], x1+DX1[SE], x2+DX2[SE], x3+DX3[SE], SE); - distributions->setDistributionInvForDirection(f[TN], x1+DX1[BS], x2+DX2[BS], x3+DX3[BS], BS); - distributions->setDistributionInvForDirection(f[BN], x1+DX1[TS], x2+DX2[TS], x3+DX3[TS], TS); - distributions->setDistributionInvForDirection(f[TNE], x1+DX1[BSW], x2+DX2[BSW], x3+DX3[BSW], BSW); - distributions->setDistributionInvForDirection(f[TNW], x1+DX1[BSE], x2+DX2[BSE], x3+DX3[BSE], BSE); - distributions->setDistributionInvForDirection(f[BNE], x1+DX1[TSW], x2+DX2[TSW], x3+DX3[TSW], TSW); - distributions->setDistributionInvForDirection(f[BNW], x1+DX1[TSE], x2+DX2[TSE], x3+DX3[TSE], TSE); + distributions->setDistributionInvForDirection(f[N], x1+DX1[DIR_0M0], x2+DX2[DIR_0M0], x3+DX3[DIR_0M0], DIR_0M0); + distributions->setDistributionInvForDirection(f[DIR_PP0], x1+DX1[DIR_MM0], x2+DX2[DIR_MM0], x3+DX3[DIR_MM0], DIR_MM0); + distributions->setDistributionInvForDirection(f[DIR_MP0], x1+DX1[DIR_PM0], x2+DX2[DIR_PM0], x3+DX3[DIR_PM0], DIR_PM0); + distributions->setDistributionInvForDirection(f[DIR_0PP], x1+DX1[DIR_0MM], x2+DX2[DIR_0MM], x3+DX3[DIR_0MM], DIR_0MM); + distributions->setDistributionInvForDirection(f[DIR_0PM], x1+DX1[DIR_0MP], x2+DX2[DIR_0MP], x3+DX3[DIR_0MP], DIR_0MP); + distributions->setDistributionInvForDirection(f[DIR_PPP], x1+DX1[DIR_MMM], x2+DX2[DIR_MMM], x3+DX3[DIR_MMM], DIR_MMM); + distributions->setDistributionInvForDirection(f[DIR_MPP], x1+DX1[DIR_PMM], x2+DX2[DIR_PMM], x3+DX3[DIR_PMM], DIR_PMM); + distributions->setDistributionInvForDirection(f[DIR_PPM], x1+DX1[DIR_MMP], x2+DX2[DIR_MMP], x3+DX3[DIR_MMP], DIR_MMP); + distributions->setDistributionInvForDirection(f[DIR_MPM], x1+DX1[DIR_PMP], x2+DX2[DIR_PMP], x3+DX3[DIR_PMP], DIR_PMP); h[N] = htemp[N] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[N] ; - h[NE] = htemp[NE] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[NE] ; - h[NW] = htemp[NW] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[NW] ; - h[TN] = htemp[TN] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[TN] ; - h[BN] = htemp[BN] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[BN] ; - h[TNE] = htemp[TNE] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[TNE] ; - h[TNW] = htemp[TNW] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[TNW] ; - h[BNE] = htemp[BNE] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[BNE] ; - h[BNW] = htemp[BNW] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[BNW] ; + h[DIR_PP0] = htemp[DIR_PP0] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[DIR_PP0] ; + h[DIR_MP0] = htemp[DIR_MP0] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[DIR_MP0] ; + h[DIR_0PP] = htemp[DIR_0PP] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[DIR_0PP] ; + h[DIR_0PM] = htemp[DIR_0PM] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[DIR_0PM] ; + h[DIR_PPP] = htemp[DIR_PPP] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[DIR_PPP] ; + h[DIR_MPP] = htemp[DIR_MPP] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[DIR_MPP] ; + h[DIR_PPM] = htemp[DIR_PPM] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[DIR_PPM] ; + h[DIR_MPM] = htemp[DIR_MPM] * (one_over_sqrt3 + vx2) + (1.0 - one_over_sqrt3 - vx2)*h[DIR_MPM] ; - distributionsH->setDistributionInvForDirection(h[N], x1+DX1[S], x2+DX2[S], x3+DX3[S], S); - distributionsH->setDistributionInvForDirection(h[NE], x1+DX1[SW], x2+DX2[SW], x3+DX3[SW], SW); - distributionsH->setDistributionInvForDirection(h[NW], x1+DX1[SE], x2+DX2[SE], x3+DX3[SE], SE); - distributionsH->setDistributionInvForDirection(h[TN], x1+DX1[BS], x2+DX2[BS], x3+DX3[BS], BS); - distributionsH->setDistributionInvForDirection(h[BN], x1+DX1[TS], x2+DX2[TS], x3+DX3[TS], TS); - distributionsH->setDistributionInvForDirection(h[TNE], x1+DX1[BSW], x2+DX2[BSW], x3+DX3[BSW], BSW); - distributionsH->setDistributionInvForDirection(h[TNW], x1+DX1[BSE], x2+DX2[BSE], x3+DX3[BSE], BSE); - distributionsH->setDistributionInvForDirection(h[BNE], x1+DX1[TSW], x2+DX2[TSW], x3+DX3[TSW], TSW); - distributionsH->setDistributionInvForDirection(h[BNW], x1+DX1[TSE], x2+DX2[TSE], x3+DX3[TSE], TSE); + distributionsH->setDistributionInvForDirection(h[N], x1+DX1[DIR_0M0], x2+DX2[DIR_0M0], x3+DX3[DIR_0M0], DIR_0M0); + distributionsH->setDistributionInvForDirection(h[DIR_PP0], x1+DX1[DIR_MM0], x2+DX2[DIR_MM0], x3+DX3[DIR_MM0], DIR_MM0); + distributionsH->setDistributionInvForDirection(h[DIR_MP0], x1+DX1[DIR_PM0], x2+DX2[DIR_PM0], x3+DX3[DIR_PM0], DIR_PM0); + distributionsH->setDistributionInvForDirection(h[DIR_0PP], x1+DX1[DIR_0MM], x2+DX2[DIR_0MM], x3+DX3[DIR_0MM], DIR_0MM); + distributionsH->setDistributionInvForDirection(h[DIR_0PM], x1+DX1[DIR_0MP], x2+DX2[DIR_0MP], x3+DX3[DIR_0MP], DIR_0MP); + distributionsH->setDistributionInvForDirection(h[DIR_PPP], x1+DX1[DIR_MMM], x2+DX2[DIR_MMM], x3+DX3[DIR_MMM], DIR_MMM); + distributionsH->setDistributionInvForDirection(h[DIR_MPP], x1+DX1[DIR_PMM], x2+DX2[DIR_PMM], x3+DX3[DIR_PMM], DIR_PMM); + distributionsH->setDistributionInvForDirection(h[DIR_PPM], x1+DX1[DIR_MMP], x2+DX2[DIR_MMP], x3+DX3[DIR_MMP], DIR_MMP); + distributionsH->setDistributionInvForDirection(h[DIR_MPM], x1+DX1[DIR_PMP], x2+DX2[DIR_PMP], x3+DX3[DIR_PMP], DIR_PMP); break; - case S: - f[S] = ftemp[S] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[S] ; - f[SE] = ftemp[SE] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[SE] ; - f[SW] = ftemp[SW] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[SW] ; - f[TS] = ftemp[TS] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[TS] ; - f[BS] = ftemp[BS] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[BS] ; - f[TSE] = ftemp[TSE] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[TSE] ; - f[TSW] = ftemp[TSW] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[TSW] ; - f[BSE] = ftemp[BSE] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[BSE] ; - f[BSW] = ftemp[BSW] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[BSW] ; + case DIR_0M0: + f[DIR_0M0] = ftemp[DIR_0M0] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[DIR_0M0] ; + f[DIR_PM0] = ftemp[DIR_PM0] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[DIR_PM0] ; + f[DIR_MM0] = ftemp[DIR_MM0] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[DIR_MM0] ; + f[DIR_0MP] = ftemp[DIR_0MP] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[DIR_0MP] ; + f[DIR_0MM] = ftemp[DIR_0MM] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[DIR_0MM] ; + f[DIR_PMP] = ftemp[DIR_PMP] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[DIR_PMP] ; + f[DIR_MMP] = ftemp[DIR_MMP] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[DIR_MMP] ; + f[DIR_PMM] = ftemp[DIR_PMM] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[DIR_PMM] ; + f[DIR_MMM] = ftemp[DIR_MMM] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*f[DIR_MMM] ; - distributions->setDistributionInvForDirection(f[S], x1+DX1[N], x2+DX2[N], x3+DX3[N], N); - distributions->setDistributionInvForDirection(f[SE], x1+DX1[NW], x2+DX2[NW], x3+DX3[NW], NW); - distributions->setDistributionInvForDirection(f[SW], x1+DX1[NE], x2+DX2[NE], x3+DX3[NE], NE); - distributions->setDistributionInvForDirection(f[TS], x1+DX1[BN], x2+DX2[BN], x3+DX3[BN], BN); - distributions->setDistributionInvForDirection(f[BS], x1+DX1[TN], x2+DX2[TN], x3+DX3[TN], TN); - distributions->setDistributionInvForDirection(f[TSE], x1+DX1[BNW], x2+DX2[BNW], x3+DX3[BNW], BNW); - distributions->setDistributionInvForDirection(f[TSW], x1+DX1[BNE], x2+DX2[BNE], x3+DX3[BNE], BNE); - distributions->setDistributionInvForDirection(f[BSE], x1+DX1[TNW], x2+DX2[TNW], x3+DX3[TNW], TNW); - distributions->setDistributionInvForDirection(f[BSW], x1+DX1[TNE], x2+DX2[TNE], x3+DX3[TNE], TNE); + distributions->setDistributionInvForDirection(f[DIR_0M0], x1+DX1[N], x2+DX2[N], x3+DX3[N], N); + distributions->setDistributionInvForDirection(f[DIR_PM0], x1+DX1[DIR_MP0], x2+DX2[DIR_MP0], x3+DX3[DIR_MP0], DIR_MP0); + distributions->setDistributionInvForDirection(f[DIR_MM0], x1+DX1[DIR_PP0], x2+DX2[DIR_PP0], x3+DX3[DIR_PP0], DIR_PP0); + distributions->setDistributionInvForDirection(f[DIR_0MP], x1+DX1[DIR_0PM], x2+DX2[DIR_0PM], x3+DX3[DIR_0PM], DIR_0PM); + distributions->setDistributionInvForDirection(f[DIR_0MM], x1+DX1[DIR_0PP], x2+DX2[DIR_0PP], x3+DX3[DIR_0PP], DIR_0PP); + distributions->setDistributionInvForDirection(f[DIR_PMP], x1+DX1[DIR_MPM], x2+DX2[DIR_MPM], x3+DX3[DIR_MPM], DIR_MPM); + distributions->setDistributionInvForDirection(f[DIR_MMP], x1+DX1[DIR_PPM], x2+DX2[DIR_PPM], x3+DX3[DIR_PPM], DIR_PPM); + distributions->setDistributionInvForDirection(f[DIR_PMM], x1+DX1[DIR_MPP], x2+DX2[DIR_MPP], x3+DX3[DIR_MPP], DIR_MPP); + distributions->setDistributionInvForDirection(f[DIR_MMM], x1+DX1[DIR_PPP], x2+DX2[DIR_PPP], x3+DX3[DIR_PPP], DIR_PPP); - h[S] = htemp[S] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[S] ; - h[SE] = htemp[SE] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[SE] ; - h[SW] = htemp[SW] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[SW] ; - h[TS] = htemp[TS] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[TS] ; - h[BS] = htemp[BS] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[BS] ; - h[TSE] = htemp[TSE] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[TSE] ; - h[TSW] = htemp[TSW] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[TSW] ; - h[BSE] = htemp[BSE] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[BSE] ; - h[BSW] = htemp[BSW] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[BSW] ; + h[DIR_0M0] = htemp[DIR_0M0] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[DIR_0M0] ; + h[DIR_PM0] = htemp[DIR_PM0] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[DIR_PM0] ; + h[DIR_MM0] = htemp[DIR_MM0] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[DIR_MM0] ; + h[DIR_0MP] = htemp[DIR_0MP] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[DIR_0MP] ; + h[DIR_0MM] = htemp[DIR_0MM] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[DIR_0MM] ; + h[DIR_PMP] = htemp[DIR_PMP] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[DIR_PMP] ; + h[DIR_MMP] = htemp[DIR_MMP] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[DIR_MMP] ; + h[DIR_PMM] = htemp[DIR_PMM] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[DIR_PMM] ; + h[DIR_MMM] = htemp[DIR_MMM] * (one_over_sqrt3 - vx2) + (1.0 - one_over_sqrt3 + vx2)*h[DIR_MMM] ; - distributionsH->setDistributionInvForDirection(h[S], x1+DX1[N], x2+DX2[N], x3+DX3[N], N); - distributionsH->setDistributionInvForDirection(h[SE], x1+DX1[NW], x2+DX2[NW], x3+DX3[NW], NW); - distributionsH->setDistributionInvForDirection(h[SW], x1+DX1[NE], x2+DX2[NE], x3+DX3[NE], NE); - distributionsH->setDistributionInvForDirection(h[TS], x1+DX1[BN], x2+DX2[BN], x3+DX3[BN], BN); - distributionsH->setDistributionInvForDirection(h[BS], x1+DX1[TN], x2+DX2[TN], x3+DX3[TN], TN); - distributionsH->setDistributionInvForDirection(h[TSE], x1+DX1[BNW], x2+DX2[BNW], x3+DX3[BNW], BNW); - distributionsH->setDistributionInvForDirection(h[TSW], x1+DX1[BNE], x2+DX2[BNE], x3+DX3[BNE], BNE); - distributionsH->setDistributionInvForDirection(h[BSE], x1+DX1[TNW], x2+DX2[TNW], x3+DX3[TNW], TNW); - distributionsH->setDistributionInvForDirection(h[BSW], x1+DX1[TNE], x2+DX2[TNE], x3+DX3[TNE], TNE); + distributionsH->setDistributionInvForDirection(h[DIR_0M0], x1+DX1[N], x2+DX2[N], x3+DX3[N], N); + distributionsH->setDistributionInvForDirection(h[DIR_PM0], x1+DX1[DIR_MP0], x2+DX2[DIR_MP0], x3+DX3[DIR_MP0], DIR_MP0); + distributionsH->setDistributionInvForDirection(h[DIR_MM0], x1+DX1[DIR_PP0], x2+DX2[DIR_PP0], x3+DX3[DIR_PP0], DIR_PP0); + distributionsH->setDistributionInvForDirection(h[DIR_0MP], x1+DX1[DIR_0PM], x2+DX2[DIR_0PM], x3+DX3[DIR_0PM], DIR_0PM); + distributionsH->setDistributionInvForDirection(h[DIR_0MM], x1+DX1[DIR_0PP], x2+DX2[DIR_0PP], x3+DX3[DIR_0PP], DIR_0PP); + distributionsH->setDistributionInvForDirection(h[DIR_PMP], x1+DX1[DIR_MPM], x2+DX2[DIR_MPM], x3+DX3[DIR_MPM], DIR_MPM); + distributionsH->setDistributionInvForDirection(h[DIR_MMP], x1+DX1[DIR_PPM], x2+DX2[DIR_PPM], x3+DX3[DIR_PPM], DIR_PPM); + distributionsH->setDistributionInvForDirection(h[DIR_PMM], x1+DX1[DIR_MPP], x2+DX2[DIR_MPP], x3+DX3[DIR_MPP], DIR_MPP); + distributionsH->setDistributionInvForDirection(h[DIR_MMM], x1+DX1[DIR_PPP], x2+DX2[DIR_PPP], x3+DX3[DIR_PPP], DIR_PPP); break; - case T: - f[T] = ftemp[T] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[T] ; - f[TE] = ftemp[TE] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[TE] ; - f[TW] = ftemp[TW] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[TW] ; - f[TN] = ftemp[TN] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[TN] ; - f[TS] = ftemp[TS] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[TS] ; - f[TNE] = ftemp[TNE] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[TNE] ; - f[TNW] = ftemp[TNW] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[TNW] ; - f[TSE] = ftemp[TSE] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[TSE] ; - f[TSW] = ftemp[TSW] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[TSW] ; + case DIR_00P: + f[DIR_00P] = ftemp[DIR_00P] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[DIR_00P] ; + f[DIR_P0P] = ftemp[DIR_P0P] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[DIR_P0P] ; + f[DIR_M0P] = ftemp[DIR_M0P] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[DIR_M0P] ; + f[DIR_0PP] = ftemp[DIR_0PP] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[DIR_0PP] ; + f[DIR_0MP] = ftemp[DIR_0MP] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[DIR_0MP] ; + f[DIR_PPP] = ftemp[DIR_PPP] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[DIR_PPP] ; + f[DIR_MPP] = ftemp[DIR_MPP] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[DIR_MPP] ; + f[DIR_PMP] = ftemp[DIR_PMP] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[DIR_PMP] ; + f[DIR_MMP] = ftemp[DIR_MMP] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*f[DIR_MMP] ; - distributions->setDistributionInvForDirection(f[T], x1+DX1[B], x2+DX2[B], x3+DX3[B], B); - distributions->setDistributionInvForDirection(f[TE], x1+DX1[BW], x2+DX2[BW], x3+DX3[BW], BW); - distributions->setDistributionInvForDirection(f[TW], x1+DX1[BE], x2+DX2[BE], x3+DX3[BE], BE); - distributions->setDistributionInvForDirection(f[TN], x1+DX1[BS], x2+DX2[BS], x3+DX3[BS], BS); - distributions->setDistributionInvForDirection(f[TS], x1+DX1[BN], x2+DX2[BN], x3+DX3[BN], BN); - distributions->setDistributionInvForDirection(f[TNE], x1+DX1[BSW], x2+DX2[BSW], x3+DX3[BSW], BSW); - distributions->setDistributionInvForDirection(f[TNW], x1+DX1[BSE], x2+DX2[BSE], x3+DX3[BSE], BSE); - distributions->setDistributionInvForDirection(f[TSE], x1+DX1[BNW], x2+DX2[BNW], x3+DX3[BNW], BNW); - distributions->setDistributionInvForDirection(f[TSW], x1+DX1[BNE], x2+DX2[BNE], x3+DX3[BNE], BNE); + distributions->setDistributionInvForDirection(f[DIR_00P], x1+DX1[B], x2+DX2[B], x3+DX3[B], B); + distributions->setDistributionInvForDirection(f[DIR_P0P], x1+DX1[DIR_M0M], x2+DX2[DIR_M0M], x3+DX3[DIR_M0M], DIR_M0M); + distributions->setDistributionInvForDirection(f[DIR_M0P], x1+DX1[DIR_P0M], x2+DX2[DIR_P0M], x3+DX3[DIR_P0M], DIR_P0M); + distributions->setDistributionInvForDirection(f[DIR_0PP], x1+DX1[DIR_0MM], x2+DX2[DIR_0MM], x3+DX3[DIR_0MM], DIR_0MM); + distributions->setDistributionInvForDirection(f[DIR_0MP], x1+DX1[DIR_0PM], x2+DX2[DIR_0PM], x3+DX3[DIR_0PM], DIR_0PM); + distributions->setDistributionInvForDirection(f[DIR_PPP], x1+DX1[DIR_MMM], x2+DX2[DIR_MMM], x3+DX3[DIR_MMM], DIR_MMM); + distributions->setDistributionInvForDirection(f[DIR_MPP], x1+DX1[DIR_PMM], x2+DX2[DIR_PMM], x3+DX3[DIR_PMM], DIR_PMM); + distributions->setDistributionInvForDirection(f[DIR_PMP], x1+DX1[DIR_MPM], x2+DX2[DIR_MPM], x3+DX3[DIR_MPM], DIR_MPM); + distributions->setDistributionInvForDirection(f[DIR_MMP], x1+DX1[DIR_PPM], x2+DX2[DIR_PPM], x3+DX3[DIR_PPM], DIR_PPM); - h[T] = htemp[T] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[T] ; - h[TE] = htemp[TE] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[TE] ; - h[TW] = htemp[TW] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[TW] ; - h[TN] = htemp[TN] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[TN] ; - h[TS] = htemp[TS] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[TS] ; - h[TNE] = htemp[TNE] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[TNE] ; - h[TNW] = htemp[TNW] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[TNW] ; - h[TSE] = htemp[TSE] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[TSE] ; - h[TSW] = htemp[TSW] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[TSW] ; + h[DIR_00P] = htemp[DIR_00P] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[DIR_00P] ; + h[DIR_P0P] = htemp[DIR_P0P] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[DIR_P0P] ; + h[DIR_M0P] = htemp[DIR_M0P] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[DIR_M0P] ; + h[DIR_0PP] = htemp[DIR_0PP] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[DIR_0PP] ; + h[DIR_0MP] = htemp[DIR_0MP] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[DIR_0MP] ; + h[DIR_PPP] = htemp[DIR_PPP] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[DIR_PPP] ; + h[DIR_MPP] = htemp[DIR_MPP] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[DIR_MPP] ; + h[DIR_PMP] = htemp[DIR_PMP] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[DIR_PMP] ; + h[DIR_MMP] = htemp[DIR_MMP] * (one_over_sqrt3 + vx3) + (1.0 - one_over_sqrt3 - vx3)*h[DIR_MMP] ; - distributionsH->setDistributionInvForDirection(h[T], x1+DX1[B], x2+DX2[B], x3+DX3[B], B); - distributionsH->setDistributionInvForDirection(h[TE], x1+DX1[BW], x2+DX2[BW], x3+DX3[BW], BW); - distributionsH->setDistributionInvForDirection(h[TW], x1+DX1[BE], x2+DX2[BE], x3+DX3[BE], BE); - distributionsH->setDistributionInvForDirection(h[TN], x1+DX1[BS], x2+DX2[BS], x3+DX3[BS], BS); - distributionsH->setDistributionInvForDirection(h[TS], x1+DX1[BN], x2+DX2[BN], x3+DX3[BN], BN); - distributionsH->setDistributionInvForDirection(h[TNE], x1+DX1[BSW], x2+DX2[BSW], x3+DX3[BSW], BSW); - distributionsH->setDistributionInvForDirection(h[TNW], x1+DX1[BSE], x2+DX2[BSE], x3+DX3[BSE], BSE); - distributionsH->setDistributionInvForDirection(h[TSE], x1+DX1[BNW], x2+DX2[BNW], x3+DX3[BNW], BNW); - distributionsH->setDistributionInvForDirection(h[TSW], x1+DX1[BNE], x2+DX2[BNE], x3+DX3[BNE], BNE); + distributionsH->setDistributionInvForDirection(h[DIR_00P], x1+DX1[B], x2+DX2[B], x3+DX3[B], B); + distributionsH->setDistributionInvForDirection(h[DIR_P0P], x1+DX1[DIR_M0M], x2+DX2[DIR_M0M], x3+DX3[DIR_M0M], DIR_M0M); + distributionsH->setDistributionInvForDirection(h[DIR_M0P], x1+DX1[DIR_P0M], x2+DX2[DIR_P0M], x3+DX3[DIR_P0M], DIR_P0M); + distributionsH->setDistributionInvForDirection(h[DIR_0PP], x1+DX1[DIR_0MM], x2+DX2[DIR_0MM], x3+DX3[DIR_0MM], DIR_0MM); + distributionsH->setDistributionInvForDirection(h[DIR_0MP], x1+DX1[DIR_0PM], x2+DX2[DIR_0PM], x3+DX3[DIR_0PM], DIR_0PM); + distributionsH->setDistributionInvForDirection(h[DIR_PPP], x1+DX1[DIR_MMM], x2+DX2[DIR_MMM], x3+DX3[DIR_MMM], DIR_MMM); + distributionsH->setDistributionInvForDirection(h[DIR_MPP], x1+DX1[DIR_PMM], x2+DX2[DIR_PMM], x3+DX3[DIR_PMM], DIR_PMM); + distributionsH->setDistributionInvForDirection(h[DIR_PMP], x1+DX1[DIR_MPM], x2+DX2[DIR_MPM], x3+DX3[DIR_MPM], DIR_MPM); + distributionsH->setDistributionInvForDirection(h[DIR_MMP], x1+DX1[DIR_PPM], x2+DX2[DIR_PPM], x3+DX3[DIR_PPM], DIR_PPM); break; case B: f[B] = ftemp[B] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[B] ; - f[BE] = ftemp[BE] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[BE] ; - f[BW] = ftemp[BW] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[BW] ; - f[BN] = ftemp[BN] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[BN] ; - f[BS] = ftemp[BS] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[BS] ; - f[BNE] = ftemp[BNE] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[BNE] ; - f[BNW] = ftemp[BNW] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[BNW] ; - f[BSE] = ftemp[BSE] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[BSE] ; - f[BSW] = ftemp[BSW] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[BSW] ; + f[DIR_P0M] = ftemp[DIR_P0M] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[DIR_P0M] ; + f[DIR_M0M] = ftemp[DIR_M0M] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[DIR_M0M] ; + f[DIR_0PM] = ftemp[DIR_0PM] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[DIR_0PM] ; + f[DIR_0MM] = ftemp[DIR_0MM] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[DIR_0MM] ; + f[DIR_PPM] = ftemp[DIR_PPM] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[DIR_PPM] ; + f[DIR_MPM] = ftemp[DIR_MPM] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[DIR_MPM] ; + f[DIR_PMM] = ftemp[DIR_PMM] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[DIR_PMM] ; + f[DIR_MMM] = ftemp[DIR_MMM] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*f[DIR_MMM] ; - distributions->setDistributionInvForDirection(f[B], x1+DX1[T], x2+DX2[T], x3+DX3[T], T); - distributions->setDistributionInvForDirection(f[BE], x1+DX1[TW], x2+DX2[TW], x3+DX3[TW], TW); - distributions->setDistributionInvForDirection(f[BW], x1+DX1[TE], x2+DX2[TE], x3+DX3[TE], TE); - distributions->setDistributionInvForDirection(f[BN], x1+DX1[TS], x2+DX2[TS], x3+DX3[TS], TS); - distributions->setDistributionInvForDirection(f[BS], x1+DX1[TN], x2+DX2[TN], x3+DX3[TN], TN); - distributions->setDistributionInvForDirection(f[BNE], x1+DX1[TSW], x2+DX2[TSW], x3+DX3[TSW], TSW); - distributions->setDistributionInvForDirection(f[BNW], x1+DX1[TSE], x2+DX2[TSE], x3+DX3[TSE], TSE); - distributions->setDistributionInvForDirection(f[BSE], x1+DX1[TNW], x2+DX2[TNW], x3+DX3[TNW], TNW); - distributions->setDistributionInvForDirection(f[BSW], x1+DX1[TNE], x2+DX2[TNE], x3+DX3[TNE], TNE); + distributions->setDistributionInvForDirection(f[B], x1+DX1[DIR_00P], x2+DX2[DIR_00P], x3+DX3[DIR_00P], DIR_00P); + distributions->setDistributionInvForDirection(f[DIR_P0M], x1+DX1[DIR_M0P], x2+DX2[DIR_M0P], x3+DX3[DIR_M0P], DIR_M0P); + distributions->setDistributionInvForDirection(f[DIR_M0M], x1+DX1[DIR_P0P], x2+DX2[DIR_P0P], x3+DX3[DIR_P0P], DIR_P0P); + distributions->setDistributionInvForDirection(f[DIR_0PM], x1+DX1[DIR_0MP], x2+DX2[DIR_0MP], x3+DX3[DIR_0MP], DIR_0MP); + distributions->setDistributionInvForDirection(f[DIR_0MM], x1+DX1[DIR_0PP], x2+DX2[DIR_0PP], x3+DX3[DIR_0PP], DIR_0PP); + distributions->setDistributionInvForDirection(f[DIR_PPM], x1+DX1[DIR_MMP], x2+DX2[DIR_MMP], x3+DX3[DIR_MMP], DIR_MMP); + distributions->setDistributionInvForDirection(f[DIR_MPM], x1+DX1[DIR_PMP], x2+DX2[DIR_PMP], x3+DX3[DIR_PMP], DIR_PMP); + distributions->setDistributionInvForDirection(f[DIR_PMM], x1+DX1[DIR_MPP], x2+DX2[DIR_MPP], x3+DX3[DIR_MPP], DIR_MPP); + distributions->setDistributionInvForDirection(f[DIR_MMM], x1+DX1[DIR_PPP], x2+DX2[DIR_PPP], x3+DX3[DIR_PPP], DIR_PPP); h[B] = htemp[B] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[B] ; - h[BE] = htemp[BE] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[BE] ; - h[BW] = htemp[BW] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[BW] ; - h[BN] = htemp[BN] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[BN] ; - h[BS] = htemp[BS] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[BS] ; - h[BNE] = htemp[BNE] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[BNE] ; - h[BNW] = htemp[BNW] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[BNW] ; - h[BSE] = htemp[BSE] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[BSE] ; - h[BSW] = htemp[BSW] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[BSW] ; + h[DIR_P0M] = htemp[DIR_P0M] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[DIR_P0M] ; + h[DIR_M0M] = htemp[DIR_M0M] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[DIR_M0M] ; + h[DIR_0PM] = htemp[DIR_0PM] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[DIR_0PM] ; + h[DIR_0MM] = htemp[DIR_0MM] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[DIR_0MM] ; + h[DIR_PPM] = htemp[DIR_PPM] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[DIR_PPM] ; + h[DIR_MPM] = htemp[DIR_MPM] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[DIR_MPM] ; + h[DIR_PMM] = htemp[DIR_PMM] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[DIR_PMM] ; + h[DIR_MMM] = htemp[DIR_MMM] * (one_over_sqrt3 - vx3) + (1.0 - one_over_sqrt3 + vx3)*h[DIR_MMM] ; - distributionsH->setDistributionInvForDirection(h[B], x1+DX1[T], x2+DX2[T], x3+DX3[T], T); - distributionsH->setDistributionInvForDirection(h[BE], x1+DX1[TW], x2+DX2[TW], x3+DX3[TW], TW); - distributionsH->setDistributionInvForDirection(h[BW], x1+DX1[TE], x2+DX2[TE], x3+DX3[TE], TE); - distributionsH->setDistributionInvForDirection(h[BN], x1+DX1[TS], x2+DX2[TS], x3+DX3[TS], TS); - distributionsH->setDistributionInvForDirection(h[BS], x1+DX1[TN], x2+DX2[TN], x3+DX3[TN], TN); - distributionsH->setDistributionInvForDirection(h[BNE], x1+DX1[TSW], x2+DX2[TSW], x3+DX3[TSW], TSW); - distributionsH->setDistributionInvForDirection(h[BNW], x1+DX1[TSE], x2+DX2[TSE], x3+DX3[TSE], TSE); - distributionsH->setDistributionInvForDirection(h[BSE], x1+DX1[TNW], x2+DX2[TNW], x3+DX3[TNW], TNW); - distributionsH->setDistributionInvForDirection(h[BSW], x1+DX1[TNE], x2+DX2[TNE], x3+DX3[TNE], TNE); + distributionsH->setDistributionInvForDirection(h[B], x1+DX1[DIR_00P], x2+DX2[DIR_00P], x3+DX3[DIR_00P], DIR_00P); + distributionsH->setDistributionInvForDirection(h[DIR_P0M], x1+DX1[DIR_M0P], x2+DX2[DIR_M0P], x3+DX3[DIR_M0P], DIR_M0P); + distributionsH->setDistributionInvForDirection(h[DIR_M0M], x1+DX1[DIR_P0P], x2+DX2[DIR_P0P], x3+DX3[DIR_P0P], DIR_P0P); + distributionsH->setDistributionInvForDirection(h[DIR_0PM], x1+DX1[DIR_0MP], x2+DX2[DIR_0MP], x3+DX3[DIR_0MP], DIR_0MP); + distributionsH->setDistributionInvForDirection(h[DIR_0MM], x1+DX1[DIR_0PP], x2+DX2[DIR_0PP], x3+DX3[DIR_0PP], DIR_0PP); + distributionsH->setDistributionInvForDirection(h[DIR_PPM], x1+DX1[DIR_MMP], x2+DX2[DIR_MMP], x3+DX3[DIR_MMP], DIR_MMP); + distributionsH->setDistributionInvForDirection(h[DIR_MPM], x1+DX1[DIR_PMP], x2+DX2[DIR_PMP], x3+DX3[DIR_PMP], DIR_PMP); + distributionsH->setDistributionInvForDirection(h[DIR_PMM], x1+DX1[DIR_MPP], x2+DX2[DIR_MPP], x3+DX3[DIR_MPP], DIR_MPP); + distributionsH->setDistributionInvForDirection(h[DIR_MMM], x1+DX1[DIR_PPP], x2+DX2[DIR_PPP], x3+DX3[DIR_PPP], DIR_PPP); break; default: diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseSlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseSlipBCAlgorithm.cpp index 483cf3db8878a4b2b78e29327c2066bb8e79ec83..230a543f120a8ca8d18c5d2bb6a1c27e550aae92 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseSlipBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseSlipBCAlgorithm.cpp @@ -102,32 +102,32 @@ void MultiphaseSlipBCAlgorithm::applyBC() LBMReal velocity = 0.0; switch (invDir) { - case D3Q27System::E: velocity = (UbMath::c4o9*(+vx1)); break; //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3) - case D3Q27System::W: velocity = (UbMath::c4o9*(-vx1)); break; //z.B. aus paper manfred MRT LB models in three dimensions (2002) - case D3Q27System::N: velocity = (UbMath::c4o9*(+vx2)); break; - case D3Q27System::S: velocity = (UbMath::c4o9*(-vx2)); break; - case D3Q27System::T: velocity = (UbMath::c4o9*(+vx3)); break; - case D3Q27System::B: velocity = (UbMath::c4o9*(-vx3)); break; - case D3Q27System::NE: velocity = (UbMath::c1o9*(+vx1+vx2)); break; - case D3Q27System::SW: velocity = (UbMath::c1o9*(-vx1-vx2)); break; - case D3Q27System::SE: velocity = (UbMath::c1o9*(+vx1-vx2)); break; - case D3Q27System::NW: velocity = (UbMath::c1o9*(-vx1+vx2)); break; - case D3Q27System::TE: velocity = (UbMath::c1o9*(+vx1 +vx3)); break; - case D3Q27System::BW: velocity = (UbMath::c1o9*(-vx1 -vx3)); break; - case D3Q27System::BE: velocity = (UbMath::c1o9*(+vx1 -vx3)); break; - case D3Q27System::TW: velocity = (UbMath::c1o9*(-vx1 +vx3)); break; - case D3Q27System::TN: velocity = (UbMath::c1o9*(+vx2+vx3)); break; - case D3Q27System::BS: velocity = (UbMath::c1o9*(-vx2-vx3)); break; - case D3Q27System::BN: velocity = (UbMath::c1o9*(+vx2-vx3)); break; - case D3Q27System::TS: velocity = (UbMath::c1o9*(-vx2+vx3)); break; - case D3Q27System::TNE: velocity = (UbMath::c1o36*(+vx1+vx2+vx3)); break; - case D3Q27System::BSW: velocity = (UbMath::c1o36*(-vx1-vx2-vx3)); break; - case D3Q27System::BNE: velocity = (UbMath::c1o36*(+vx1+vx2-vx3)); break; - case D3Q27System::TSW: velocity = (UbMath::c1o36*(-vx1-vx2+vx3)); break; - case D3Q27System::TSE: velocity = (UbMath::c1o36*(+vx1-vx2+vx3)); break; - case D3Q27System::BNW: velocity = (UbMath::c1o36*(-vx1+vx2-vx3)); break; - case D3Q27System::BSE: velocity = (UbMath::c1o36*(+vx1-vx2-vx3)); break; - case D3Q27System::TNW: velocity = (UbMath::c1o36*(-vx1+vx2+vx3)); break; + case D3Q27System::DIR_P00: velocity = (UbMath::c4o9*(+vx1)); break; //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3) + case D3Q27System::DIR_M00: velocity = (UbMath::c4o9*(-vx1)); break; //z.B. aus paper manfred MRT LB models in three dimensions (2002) + case D3Q27System::DIR_0P0: velocity = (UbMath::c4o9*(+vx2)); break; + case D3Q27System::DIR_0M0: velocity = (UbMath::c4o9*(-vx2)); break; + case D3Q27System::DIR_00P: velocity = (UbMath::c4o9*(+vx3)); break; + case D3Q27System::DIR_00M: velocity = (UbMath::c4o9*(-vx3)); break; + case D3Q27System::DIR_PP0: velocity = (UbMath::c1o9*(+vx1+vx2)); break; + case D3Q27System::DIR_MM0: velocity = (UbMath::c1o9*(-vx1-vx2)); break; + case D3Q27System::DIR_PM0: velocity = (UbMath::c1o9*(+vx1-vx2)); break; + case D3Q27System::DIR_MP0: velocity = (UbMath::c1o9*(-vx1+vx2)); break; + case D3Q27System::DIR_P0P: velocity = (UbMath::c1o9*(+vx1 +vx3)); break; + case D3Q27System::DIR_M0M: velocity = (UbMath::c1o9*(-vx1 -vx3)); break; + case D3Q27System::DIR_P0M: velocity = (UbMath::c1o9*(+vx1 -vx3)); break; + case D3Q27System::DIR_M0P: velocity = (UbMath::c1o9*(-vx1 +vx3)); break; + case D3Q27System::DIR_0PP: velocity = (UbMath::c1o9*(+vx2+vx3)); break; + case D3Q27System::DIR_0MM: velocity = (UbMath::c1o9*(-vx2-vx3)); break; + case D3Q27System::DIR_0PM: velocity = (UbMath::c1o9*(+vx2-vx3)); break; + case D3Q27System::DIR_0MP: velocity = (UbMath::c1o9*(-vx2+vx3)); break; + case D3Q27System::DIR_PPP: velocity = (UbMath::c1o36*(+vx1+vx2+vx3)); break; + case D3Q27System::DIR_MMM: velocity = (UbMath::c1o36*(-vx1-vx2-vx3)); break; + case D3Q27System::DIR_PPM: velocity = (UbMath::c1o36*(+vx1+vx2-vx3)); break; + case D3Q27System::DIR_MMP: velocity = (UbMath::c1o36*(-vx1-vx2+vx3)); break; + case D3Q27System::DIR_PMP: velocity = (UbMath::c1o36*(+vx1-vx2+vx3)); break; + case D3Q27System::DIR_MPM: velocity = (UbMath::c1o36*(-vx1+vx2-vx3)); break; + case D3Q27System::DIR_PMM: velocity = (UbMath::c1o36*(+vx1-vx2-vx3)); break; + case D3Q27System::DIR_MPP: velocity = (UbMath::c1o36*(-vx1+vx2+vx3)); break; default: throw UbException(UB_EXARGS, "unknown error"); } LBMReal fReturn = ((1.0-q)/(1.0+q))*((f[invDir]-feq[invDir])/(1.0-collFactor)+feq[invDir])+((q*(f[invDir]+f[fdir])-velocity*rho)/(1.0+q)); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAlgorithm.cpp index 70b0cceffbf3b0567cb3080c5861957a6ea2d2cb..d43d1c53444b82cf45b92052a81f1fc8e7c45dac 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAlgorithm.cpp @@ -94,12 +94,12 @@ void MultiphaseVelocityBCAlgorithm::applyBC() int nx3 = x3; //flag points in direction of fluid - if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::E)) { nx1 -= 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::W)) { nx1 += 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::N)) { nx2 -= 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::S)) { nx2 += 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::T)) { nx3 -= 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::B)) { nx3 += 1; } + if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_P00)) { nx1 -= 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_M00)) { nx1 += 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_0P0)) { nx2 -= 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_0M0)) { nx2 += 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_00P)) { nx3 -= 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_00M)) { nx3 += 1; } //else UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on velocity boundary...")); phiBC = bcPtr->getBoundaryPhaseField(); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonEqDensityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonEqDensityBCAlgorithm.cpp index 9c4e47354f0d90a310030d848aa0cc5415567761..cf7a627b0c649aa0e1d00a8b137225b9e65b8476 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonEqDensityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonEqDensityBCAlgorithm.cpp @@ -63,17 +63,17 @@ void NonEqDensityBCAlgorithm::applyBC() int nx3 = x3; // flag points in direction of fluid - if (bcPtr->hasDensityBoundaryFlag(D3Q27System::E)) { + if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_P00)) { nx1 -= 1; - } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::W)) { + } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_M00)) { nx1 += 1; - } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::N)) { + } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_0P0)) { nx2 -= 1; - } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::S)) { + } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_0M0)) { nx2 += 1; - } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::T)) { + } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_00P)) { nx3 -= 1; - } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::B)) { + } else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_00M)) { nx3 += 1; } else return; // UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on density boundary...")); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithm.cpp index bb00c7bf2686628d4000c8b43ebfb8c5fd6c18ca..f92357cdb8d35d85b909b3fba502d4841a51638d 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithm.cpp @@ -98,130 +98,130 @@ void NonReflectingOutflowBCAlgorithm::applyBC() switch (direction) { case E: - f[E] = ftemp[E] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[E]; + f[DIR_P00] = ftemp[DIR_P00] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_P00]; f[NE] = ftemp[NE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[NE]; - f[SE] = ftemp[SE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[SE]; - f[TE] = ftemp[TE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[TE]; - f[BE] = ftemp[BE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[BE]; - f[TNE] = ftemp[TNE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[TNE]; - f[TSE] = ftemp[TSE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[TSE]; - f[BNE] = ftemp[BNE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[BNE]; - f[BSE] = ftemp[BSE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[BSE]; + f[DIR_PM0] = ftemp[DIR_PM0] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_PM0]; + f[DIR_P0P] = ftemp[DIR_P0P] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_P0P]; + f[DIR_P0M] = ftemp[DIR_P0M] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_P0M]; + f[DIR_PPP] = ftemp[DIR_PPP] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_PPP]; + f[DIR_PMP] = ftemp[DIR_PMP] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_PMP]; + f[DIR_PPM] = ftemp[DIR_PPM] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_PPM]; + f[DIR_PMM] = ftemp[DIR_PMM] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_PMM]; - distributions->setDistributionInvForDirection(f[E], x1 + DX1[W], x2 + DX2[W], x3 + DX3[W], W); - distributions->setDistributionInvForDirection(f[NE], x1 + DX1[SW], x2 + DX2[SW], x3 + DX3[SW], SW); - distributions->setDistributionInvForDirection(f[SE], x1 + DX1[NW], x2 + DX2[NW], x3 + DX3[NW], NW); - distributions->setDistributionInvForDirection(f[TE], x1 + DX1[BW], x2 + DX2[BW], x3 + DX3[BW], BW); - distributions->setDistributionInvForDirection(f[BE], x1 + DX1[TW], x2 + DX2[TW], x3 + DX3[TW], TW); - distributions->setDistributionInvForDirection(f[TNE], x1 + DX1[BSW], x2 + DX2[BSW], x3 + DX3[BSW], BSW); - distributions->setDistributionInvForDirection(f[TSE], x1 + DX1[BNW], x2 + DX2[BNW], x3 + DX3[BNW], BNW); - distributions->setDistributionInvForDirection(f[BNE], x1 + DX1[TSW], x2 + DX2[TSW], x3 + DX3[TSW], TSW); - distributions->setDistributionInvForDirection(f[BSE], x1 + DX1[TNW], x2 + DX2[TNW], x3 + DX3[TNW], TNW); + distributions->setDistributionInvForDirection(f[DIR_P00], x1 + DX1[W], x2 + DX2[W], x3 + DX3[W], W); + distributions->setDistributionInvForDirection(f[NE], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0); + distributions->setDistributionInvForDirection(f[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0); + distributions->setDistributionInvForDirection(f[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M); + distributions->setDistributionInvForDirection(f[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P); + distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); + distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); + distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); + distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); break; case W: f[W] = ftemp[W] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[W]; - f[NW] = ftemp[NW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[NW]; - f[SW] = ftemp[SW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[SW]; - f[TW] = ftemp[TW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[TW]; - f[BW] = ftemp[BW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[BW]; - f[TNW] = ftemp[TNW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[TNW]; - f[TSW] = ftemp[TSW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[TSW]; - f[BNW] = ftemp[BNW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[BNW]; - f[BSW] = ftemp[BSW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[BSW]; + f[DIR_MP0] = ftemp[DIR_MP0] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_MP0]; + f[DIR_MM0] = ftemp[DIR_MM0] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_MM0]; + f[DIR_M0P] = ftemp[DIR_M0P] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_M0P]; + f[DIR_M0M] = ftemp[DIR_M0M] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_M0M]; + f[DIR_MPP] = ftemp[DIR_MPP] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_MPP]; + f[DIR_MMP] = ftemp[DIR_MMP] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_MMP]; + f[DIR_MPM] = ftemp[DIR_MPM] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_MPM]; + f[DIR_MMM] = ftemp[DIR_MMM] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_MMM]; - distributions->setDistributionInvForDirection(f[W], x1 + DX1[E], x2 + DX2[E], x3 + DX3[E], E); - distributions->setDistributionInvForDirection(f[NW], x1 + DX1[SE], x2 + DX2[SE], x3 + DX3[SE], SE); - distributions->setDistributionInvForDirection(f[SW], x1 + DX1[NE], x2 + DX2[NE], x3 + DX3[NE], NE); - distributions->setDistributionInvForDirection(f[TW], x1 + DX1[BE], x2 + DX2[BE], x3 + DX3[BE], BE); - distributions->setDistributionInvForDirection(f[BW], x1 + DX1[TE], x2 + DX2[TE], x3 + DX3[TE], TE); - distributions->setDistributionInvForDirection(f[TNW], x1 + DX1[BSE], x2 + DX2[BSE], x3 + DX3[BSE], BSE); - distributions->setDistributionInvForDirection(f[TSW], x1 + DX1[BNE], x2 + DX2[BNE], x3 + DX3[BNE], BNE); - distributions->setDistributionInvForDirection(f[BNW], x1 + DX1[TSE], x2 + DX2[TSE], x3 + DX3[TSE], TSE); - distributions->setDistributionInvForDirection(f[BSW], x1 + DX1[TNE], x2 + DX2[TNE], x3 + DX3[TNE], TNE); + distributions->setDistributionInvForDirection(f[W], x1 + DX1[DIR_P00], x2 + DX2[DIR_P00], x3 + DX3[DIR_P00], E); + distributions->setDistributionInvForDirection(f[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0); + distributions->setDistributionInvForDirection(f[DIR_MM0], x1 + DX1[NE], x2 + DX2[NE], x3 + DX3[NE], NE); + distributions->setDistributionInvForDirection(f[DIR_M0P], x1 + DX1[DIR_P0M], x2 + DX2[DIR_P0M], x3 + DX3[DIR_P0M], DIR_P0M); + distributions->setDistributionInvForDirection(f[DIR_M0M], x1 + DX1[DIR_P0P], x2 + DX2[DIR_P0P], x3 + DX3[DIR_P0P], DIR_P0P); + distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); + distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); + distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); + distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); break; case N: f[N] = ftemp[N] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[N]; f[NE] = ftemp[NE] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[NE]; - f[NW] = ftemp[NW] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[NW]; - f[TN] = ftemp[TN] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[TN]; - f[BN] = ftemp[BN] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[BN]; - f[TNE] = ftemp[TNE] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[TNE]; - f[TNW] = ftemp[TNW] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[TNW]; - f[BNE] = ftemp[BNE] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[BNE]; - f[BNW] = ftemp[BNW] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[BNW]; + f[DIR_MP0] = ftemp[DIR_MP0] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_MP0]; + f[DIR_0PP] = ftemp[DIR_0PP] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_0PP]; + f[DIR_0PM] = ftemp[DIR_0PM] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_0PM]; + f[DIR_PPP] = ftemp[DIR_PPP] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_PPP]; + f[DIR_MPP] = ftemp[DIR_MPP] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_MPP]; + f[DIR_PPM] = ftemp[DIR_PPM] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_PPM]; + f[DIR_MPM] = ftemp[DIR_MPM] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_MPM]; distributions->setDistributionInvForDirection(f[N], x1 + DX1[S], x2 + DX2[S], x3 + DX3[S], S); - distributions->setDistributionInvForDirection(f[NE], x1 + DX1[SW], x2 + DX2[SW], x3 + DX3[SW], SW); - distributions->setDistributionInvForDirection(f[NW], x1 + DX1[SE], x2 + DX2[SE], x3 + DX3[SE], SE); - distributions->setDistributionInvForDirection(f[TN], x1 + DX1[BS], x2 + DX2[BS], x3 + DX3[BS], BS); - distributions->setDistributionInvForDirection(f[BN], x1 + DX1[TS], x2 + DX2[TS], x3 + DX3[TS], TS); - distributions->setDistributionInvForDirection(f[TNE], x1 + DX1[BSW], x2 + DX2[BSW], x3 + DX3[BSW], BSW); - distributions->setDistributionInvForDirection(f[TNW], x1 + DX1[BSE], x2 + DX2[BSE], x3 + DX3[BSE], BSE); - distributions->setDistributionInvForDirection(f[BNE], x1 + DX1[TSW], x2 + DX2[TSW], x3 + DX3[TSW], TSW); - distributions->setDistributionInvForDirection(f[BNW], x1 + DX1[TSE], x2 + DX2[TSE], x3 + DX3[TSE], TSE); + distributions->setDistributionInvForDirection(f[NE], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0); + distributions->setDistributionInvForDirection(f[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0); + distributions->setDistributionInvForDirection(f[DIR_0PP], x1 + DX1[DIR_0MM], x2 + DX2[DIR_0MM], x3 + DX3[DIR_0MM], DIR_0MM); + distributions->setDistributionInvForDirection(f[DIR_0PM], x1 + DX1[DIR_0MP], x2 + DX2[DIR_0MP], x3 + DX3[DIR_0MP], DIR_0MP); + distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); + distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); + distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); + distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); break; case S: f[S] = ftemp[S] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[S]; - f[SE] = ftemp[SE] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[SE]; - f[SW] = ftemp[SW] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[SW]; - f[TS] = ftemp[TS] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[TS]; - f[BS] = ftemp[BS] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[BS]; - f[TSE] = ftemp[TSE] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[TSE]; - f[TSW] = ftemp[TSW] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[TSW]; - f[BSE] = ftemp[BSE] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[BSE]; - f[BSW] = ftemp[BSW] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[BSW]; + f[DIR_PM0] = ftemp[DIR_PM0] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_PM0]; + f[DIR_MM0] = ftemp[DIR_MM0] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_MM0]; + f[DIR_0MP] = ftemp[DIR_0MP] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_0MP]; + f[DIR_0MM] = ftemp[DIR_0MM] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_0MM]; + f[DIR_PMP] = ftemp[DIR_PMP] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_PMP]; + f[DIR_MMP] = ftemp[DIR_MMP] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_MMP]; + f[DIR_PMM] = ftemp[DIR_PMM] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_PMM]; + f[DIR_MMM] = ftemp[DIR_MMM] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_MMM]; distributions->setDistributionInvForDirection(f[S], x1 + DX1[N], x2 + DX2[N], x3 + DX3[N], N); - distributions->setDistributionInvForDirection(f[SE], x1 + DX1[NW], x2 + DX2[NW], x3 + DX3[NW], NW); - distributions->setDistributionInvForDirection(f[SW], x1 + DX1[NE], x2 + DX2[NE], x3 + DX3[NE], NE); - distributions->setDistributionInvForDirection(f[TS], x1 + DX1[BN], x2 + DX2[BN], x3 + DX3[BN], BN); - distributions->setDistributionInvForDirection(f[BS], x1 + DX1[TN], x2 + DX2[TN], x3 + DX3[TN], TN); - distributions->setDistributionInvForDirection(f[TSE], x1 + DX1[BNW], x2 + DX2[BNW], x3 + DX3[BNW], BNW); - distributions->setDistributionInvForDirection(f[TSW], x1 + DX1[BNE], x2 + DX2[BNE], x3 + DX3[BNE], BNE); - distributions->setDistributionInvForDirection(f[BSE], x1 + DX1[TNW], x2 + DX2[TNW], x3 + DX3[TNW], TNW); - distributions->setDistributionInvForDirection(f[BSW], x1 + DX1[TNE], x2 + DX2[TNE], x3 + DX3[TNE], TNE); + distributions->setDistributionInvForDirection(f[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0); + distributions->setDistributionInvForDirection(f[DIR_MM0], x1 + DX1[NE], x2 + DX2[NE], x3 + DX3[NE], NE); + distributions->setDistributionInvForDirection(f[DIR_0MP], x1 + DX1[DIR_0PM], x2 + DX2[DIR_0PM], x3 + DX3[DIR_0PM], DIR_0PM); + distributions->setDistributionInvForDirection(f[DIR_0MM], x1 + DX1[DIR_0PP], x2 + DX2[DIR_0PP], x3 + DX3[DIR_0PP], DIR_0PP); + distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); + distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); + distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); + distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); break; case T: f[T] = ftemp[T] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[T]; - f[TE] = ftemp[TE] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TE]; - f[TW] = ftemp[TW] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TW]; - f[TN] = ftemp[TN] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TN]; - f[TS] = ftemp[TS] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TS]; - f[TNE] = ftemp[TNE] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TNE]; - f[TNW] = ftemp[TNW] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TNW]; - f[TSE] = ftemp[TSE] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TSE]; - f[TSW] = ftemp[TSW] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TSW]; + f[DIR_P0P] = ftemp[DIR_P0P] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_P0P]; + f[DIR_M0P] = ftemp[DIR_M0P] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_M0P]; + f[DIR_0PP] = ftemp[DIR_0PP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_0PP]; + f[DIR_0MP] = ftemp[DIR_0MP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_0MP]; + f[DIR_PPP] = ftemp[DIR_PPP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_PPP]; + f[DIR_MPP] = ftemp[DIR_MPP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_MPP]; + f[DIR_PMP] = ftemp[DIR_PMP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_PMP]; + f[DIR_MMP] = ftemp[DIR_MMP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_MMP]; distributions->setDistributionInvForDirection(f[T], x1 + DX1[B], x2 + DX2[B], x3 + DX3[B], B); - distributions->setDistributionInvForDirection(f[TE], x1 + DX1[BW], x2 + DX2[BW], x3 + DX3[BW], BW); - distributions->setDistributionInvForDirection(f[TW], x1 + DX1[BE], x2 + DX2[BE], x3 + DX3[BE], BE); - distributions->setDistributionInvForDirection(f[TN], x1 + DX1[BS], x2 + DX2[BS], x3 + DX3[BS], BS); - distributions->setDistributionInvForDirection(f[TS], x1 + DX1[BN], x2 + DX2[BN], x3 + DX3[BN], BN); - distributions->setDistributionInvForDirection(f[TNE], x1 + DX1[BSW], x2 + DX2[BSW], x3 + DX3[BSW], BSW); - distributions->setDistributionInvForDirection(f[TNW], x1 + DX1[BSE], x2 + DX2[BSE], x3 + DX3[BSE], BSE); - distributions->setDistributionInvForDirection(f[TSE], x1 + DX1[BNW], x2 + DX2[BNW], x3 + DX3[BNW], BNW); - distributions->setDistributionInvForDirection(f[TSW], x1 + DX1[BNE], x2 + DX2[BNE], x3 + DX3[BNE], BNE); + distributions->setDistributionInvForDirection(f[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M); + distributions->setDistributionInvForDirection(f[DIR_M0P], x1 + DX1[DIR_P0M], x2 + DX2[DIR_P0M], x3 + DX3[DIR_P0M], DIR_P0M); + distributions->setDistributionInvForDirection(f[DIR_0PP], x1 + DX1[DIR_0MM], x2 + DX2[DIR_0MM], x3 + DX3[DIR_0MM], DIR_0MM); + distributions->setDistributionInvForDirection(f[DIR_0MP], x1 + DX1[DIR_0PM], x2 + DX2[DIR_0PM], x3 + DX3[DIR_0PM], DIR_0PM); + distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); + distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); + distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); + distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); break; case B: f[B] = ftemp[B] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[B]; - f[BE] = ftemp[BE] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BE]; - f[BW] = ftemp[BW] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BW]; - f[BN] = ftemp[BN] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BN]; - f[BS] = ftemp[BS] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BS]; - f[BNE] = ftemp[BNE] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BNE]; - f[BNW] = ftemp[BNW] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BNW]; - f[BSE] = ftemp[BSE] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BSE]; - f[BSW] = ftemp[BSW] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BSW]; + f[DIR_P0M] = ftemp[DIR_P0M] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_P0M]; + f[DIR_M0M] = ftemp[DIR_M0M] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_M0M]; + f[DIR_0PM] = ftemp[DIR_0PM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_0PM]; + f[DIR_0MM] = ftemp[DIR_0MM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_0MM]; + f[DIR_PPM] = ftemp[DIR_PPM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_PPM]; + f[DIR_MPM] = ftemp[DIR_MPM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_MPM]; + f[DIR_PMM] = ftemp[DIR_PMM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_PMM]; + f[DIR_MMM] = ftemp[DIR_MMM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_MMM]; distributions->setDistributionInvForDirection(f[B], x1 + DX1[T], x2 + DX2[T], x3 + DX3[T], T); - distributions->setDistributionInvForDirection(f[BE], x1 + DX1[TW], x2 + DX2[TW], x3 + DX3[TW], TW); - distributions->setDistributionInvForDirection(f[BW], x1 + DX1[TE], x2 + DX2[TE], x3 + DX3[TE], TE); - distributions->setDistributionInvForDirection(f[BN], x1 + DX1[TS], x2 + DX2[TS], x3 + DX3[TS], TS); - distributions->setDistributionInvForDirection(f[BS], x1 + DX1[TN], x2 + DX2[TN], x3 + DX3[TN], TN); - distributions->setDistributionInvForDirection(f[BNE], x1 + DX1[TSW], x2 + DX2[TSW], x3 + DX3[TSW], TSW); - distributions->setDistributionInvForDirection(f[BNW], x1 + DX1[TSE], x2 + DX2[TSE], x3 + DX3[TSE], TSE); - distributions->setDistributionInvForDirection(f[BSE], x1 + DX1[TNW], x2 + DX2[TNW], x3 + DX3[TNW], TNW); - distributions->setDistributionInvForDirection(f[BSW], x1 + DX1[TNE], x2 + DX2[TNE], x3 + DX3[TNE], TNE); + distributions->setDistributionInvForDirection(f[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P); + distributions->setDistributionInvForDirection(f[DIR_M0M], x1 + DX1[DIR_P0P], x2 + DX2[DIR_P0P], x3 + DX3[DIR_P0P], DIR_P0P); + distributions->setDistributionInvForDirection(f[DIR_0PM], x1 + DX1[DIR_0MP], x2 + DX2[DIR_0MP], x3 + DX3[DIR_0MP], DIR_0MP); + distributions->setDistributionInvForDirection(f[DIR_0MM], x1 + DX1[DIR_0PP], x2 + DX2[DIR_0PP], x3 + DX3[DIR_0PP], DIR_0PP); + distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); + distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); + distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); + distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); break; default: UB_THROW( diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCAlgorithm.cpp index c22d843f0b3c986e32bbe0a9c6f525cf575814f7..151e10be4987e27622ce25b86c91c320c0d24406 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCAlgorithm.cpp @@ -83,32 +83,32 @@ void SimpleSlipBCAlgorithm::applyBC() LBMReal velocity = 0.0; switch (invDir) { - case D3Q27System::E: velocity = (UbMath::c4o9*(+vx1)); break; //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3) - case D3Q27System::W: velocity = (UbMath::c4o9*(-vx1)); break; //z.B. aus paper manfred MRT LB models in three dimensions (2002) - case D3Q27System::N: velocity = (UbMath::c4o9*(+vx2)); break; - case D3Q27System::S: velocity = (UbMath::c4o9*(-vx2)); break; - case D3Q27System::T: velocity = (UbMath::c4o9*(+vx3)); break; - case D3Q27System::B: velocity = (UbMath::c4o9*(-vx3)); break; - case D3Q27System::NE: velocity = (UbMath::c1o9*(+vx1+vx2)); break; - case D3Q27System::SW: velocity = (UbMath::c1o9*(-vx1-vx2)); break; - case D3Q27System::SE: velocity = (UbMath::c1o9*(+vx1-vx2)); break; - case D3Q27System::NW: velocity = (UbMath::c1o9*(-vx1+vx2)); break; - case D3Q27System::TE: velocity = (UbMath::c1o9*(+vx1+vx3)); break; - case D3Q27System::BW: velocity = (UbMath::c1o9*(-vx1-vx3)); break; - case D3Q27System::BE: velocity = (UbMath::c1o9*(+vx1-vx3)); break; - case D3Q27System::TW: velocity = (UbMath::c1o9*(-vx1+vx3)); break; - case D3Q27System::TN: velocity = (UbMath::c1o9*(+vx2+vx3)); break; - case D3Q27System::BS: velocity = (UbMath::c1o9*(-vx2-vx3)); break; - case D3Q27System::BN: velocity = (UbMath::c1o9*(+vx2-vx3)); break; - case D3Q27System::TS: velocity = (UbMath::c1o9*(-vx2+vx3)); break; - case D3Q27System::TNE: velocity = (UbMath::c1o36*(+vx1+vx2+vx3)); break; - case D3Q27System::BSW: velocity = (UbMath::c1o36*(-vx1-vx2-vx3)); break; - case D3Q27System::BNE: velocity = (UbMath::c1o36*(+vx1+vx2-vx3)); break; - case D3Q27System::TSW: velocity = (UbMath::c1o36*(-vx1-vx2+vx3)); break; - case D3Q27System::TSE: velocity = (UbMath::c1o36*(+vx1-vx2+vx3)); break; - case D3Q27System::BNW: velocity = (UbMath::c1o36*(-vx1+vx2-vx3)); break; - case D3Q27System::BSE: velocity = (UbMath::c1o36*(+vx1-vx2-vx3)); break; - case D3Q27System::TNW: velocity = (UbMath::c1o36*(-vx1+vx2+vx3)); break; + case D3Q27System::DIR_P00: velocity = (UbMath::c4o9*(+vx1)); break; //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3) + case D3Q27System::DIR_M00: velocity = (UbMath::c4o9*(-vx1)); break; //z.B. aus paper manfred MRT LB models in three dimensions (2002) + case D3Q27System::DIR_0P0: velocity = (UbMath::c4o9*(+vx2)); break; + case D3Q27System::DIR_0M0: velocity = (UbMath::c4o9*(-vx2)); break; + case D3Q27System::DIR_00P: velocity = (UbMath::c4o9*(+vx3)); break; + case D3Q27System::DIR_00M: velocity = (UbMath::c4o9*(-vx3)); break; + case D3Q27System::DIR_PP0: velocity = (UbMath::c1o9*(+vx1+vx2)); break; + case D3Q27System::DIR_MM0: velocity = (UbMath::c1o9*(-vx1-vx2)); break; + case D3Q27System::DIR_PM0: velocity = (UbMath::c1o9*(+vx1-vx2)); break; + case D3Q27System::DIR_MP0: velocity = (UbMath::c1o9*(-vx1+vx2)); break; + case D3Q27System::DIR_P0P: velocity = (UbMath::c1o9*(+vx1+vx3)); break; + case D3Q27System::DIR_M0M: velocity = (UbMath::c1o9*(-vx1-vx3)); break; + case D3Q27System::DIR_P0M: velocity = (UbMath::c1o9*(+vx1-vx3)); break; + case D3Q27System::DIR_M0P: velocity = (UbMath::c1o9*(-vx1+vx3)); break; + case D3Q27System::DIR_0PP: velocity = (UbMath::c1o9*(+vx2+vx3)); break; + case D3Q27System::DIR_0MM: velocity = (UbMath::c1o9*(-vx2-vx3)); break; + case D3Q27System::DIR_0PM: velocity = (UbMath::c1o9*(+vx2-vx3)); break; + case D3Q27System::DIR_0MP: velocity = (UbMath::c1o9*(-vx2+vx3)); break; + case D3Q27System::DIR_PPP: velocity = (UbMath::c1o36*(+vx1+vx2+vx3)); break; + case D3Q27System::DIR_MMM: velocity = (UbMath::c1o36*(-vx1-vx2-vx3)); break; + case D3Q27System::DIR_PPM: velocity = (UbMath::c1o36*(+vx1+vx2-vx3)); break; + case D3Q27System::DIR_MMP: velocity = (UbMath::c1o36*(-vx1-vx2+vx3)); break; + case D3Q27System::DIR_PMP: velocity = (UbMath::c1o36*(+vx1-vx2+vx3)); break; + case D3Q27System::DIR_MPM: velocity = (UbMath::c1o36*(-vx1+vx2-vx3)); break; + case D3Q27System::DIR_PMM: velocity = (UbMath::c1o36*(+vx1-vx2-vx3)); break; + case D3Q27System::DIR_MPP: velocity = (UbMath::c1o36*(-vx1+vx2+vx3)); break; default: throw UbException(UB_EXARGS, "unknown error"); } LBMReal fReturn = f[invDir] - velocity * rho; diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAdapter.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAdapter.cpp index 8bdc284d606fa621233fe1449801f4751cfef22a..0dc2d5d66e639b3b46bc9fe12cec96eba6e6adac 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAdapter.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAdapter.cpp @@ -56,17 +56,17 @@ void SlipBCAdapter::adaptBC(const D3Q27Interactor &interactor, SPtr<BoundaryCond if (!geo) throw UbException(UB_EXARGS, "derzeit nur fuer Cubes valide"); - if (bc->hasSlipBoundaryFlag(D3Q27System::E)) + if (bc->hasSlipBoundaryFlag(D3Q27System::DIR_P00)) bc->setNormalVector(1.0, 0.0, 0.0); - else if (bc->hasSlipBoundaryFlag(D3Q27System::W)) + else if (bc->hasSlipBoundaryFlag(D3Q27System::DIR_M00)) bc->setNormalVector(-1.0, 0.0, 0.0); - else if (bc->hasSlipBoundaryFlag(D3Q27System::N)) + else if (bc->hasSlipBoundaryFlag(D3Q27System::DIR_0P0)) bc->setNormalVector(0.0, 1.0, 0.0); - else if (bc->hasSlipBoundaryFlag(D3Q27System::S)) + else if (bc->hasSlipBoundaryFlag(D3Q27System::DIR_0M0)) bc->setNormalVector(0.0, -1.0, 0.0); - else if (bc->hasSlipBoundaryFlag(D3Q27System::T)) + else if (bc->hasSlipBoundaryFlag(D3Q27System::DIR_00P)) bc->setNormalVector(0.0, 0.0, 1.0); - else if (bc->hasSlipBoundaryFlag(D3Q27System::B)) + else if (bc->hasSlipBoundaryFlag(D3Q27System::DIR_00M)) bc->setNormalVector(0.0, 0.0, -1.0); bc->setBcAlgorithmType(algorithmType); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAlgorithm.cpp index 825d2bc0175acb5b2c10df3a89e87512dcc2e6e3..5d9993c459b756dc1d8663907ee90bc0eabef51c 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAlgorithm.cpp @@ -47,32 +47,32 @@ void SlipBCAlgorithm::applyBC() LBMReal velocity = 0.0; switch (invDir) { - case D3Q27System::E: velocity = (UbMath::c4o9*(+vx1)); break; //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3) - case D3Q27System::W: velocity = (UbMath::c4o9*(-vx1)); break; //z.B. aus paper manfred MRT LB models in three dimensions (2002) - case D3Q27System::N: velocity = (UbMath::c4o9*(+vx2)); break; - case D3Q27System::S: velocity = (UbMath::c4o9*(-vx2)); break; - case D3Q27System::T: velocity = (UbMath::c4o9*(+vx3)); break; - case D3Q27System::B: velocity = (UbMath::c4o9*(-vx3)); break; - case D3Q27System::NE: velocity = (UbMath::c1o9*(+vx1+vx2)); break; - case D3Q27System::SW: velocity = (UbMath::c1o9*(-vx1-vx2)); break; - case D3Q27System::SE: velocity = (UbMath::c1o9*(+vx1-vx2)); break; - case D3Q27System::NW: velocity = (UbMath::c1o9*(-vx1+vx2)); break; - case D3Q27System::TE: velocity = (UbMath::c1o9*(+vx1+vx3)); break; - case D3Q27System::BW: velocity = (UbMath::c1o9*(-vx1-vx3)); break; - case D3Q27System::BE: velocity = (UbMath::c1o9*(+vx1-vx3)); break; - case D3Q27System::TW: velocity = (UbMath::c1o9*(-vx1+vx3)); break; - case D3Q27System::TN: velocity = (UbMath::c1o9*(+vx2+vx3)); break; - case D3Q27System::BS: velocity = (UbMath::c1o9*(-vx2-vx3)); break; - case D3Q27System::BN: velocity = (UbMath::c1o9*(+vx2-vx3)); break; - case D3Q27System::TS: velocity = (UbMath::c1o9*(-vx2+vx3)); break; - case D3Q27System::TNE: velocity = (UbMath::c1o36*(+vx1+vx2+vx3)); break; - case D3Q27System::BSW: velocity = (UbMath::c1o36*(-vx1-vx2-vx3)); break; - case D3Q27System::BNE: velocity = (UbMath::c1o36*(+vx1+vx2-vx3)); break; - case D3Q27System::TSW: velocity = (UbMath::c1o36*(-vx1-vx2+vx3)); break; - case D3Q27System::TSE: velocity = (UbMath::c1o36*(+vx1-vx2+vx3)); break; - case D3Q27System::BNW: velocity = (UbMath::c1o36*(-vx1+vx2-vx3)); break; - case D3Q27System::BSE: velocity = (UbMath::c1o36*(+vx1-vx2-vx3)); break; - case D3Q27System::TNW: velocity = (UbMath::c1o36*(-vx1+vx2+vx3)); break; + case D3Q27System::DIR_P00: velocity = (UbMath::c4o9*(+vx1)); break; //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3) + case D3Q27System::DIR_M00: velocity = (UbMath::c4o9*(-vx1)); break; //z.B. aus paper manfred MRT LB models in three dimensions (2002) + case D3Q27System::DIR_0P0: velocity = (UbMath::c4o9*(+vx2)); break; + case D3Q27System::DIR_0M0: velocity = (UbMath::c4o9*(-vx2)); break; + case D3Q27System::DIR_00P: velocity = (UbMath::c4o9*(+vx3)); break; + case D3Q27System::DIR_00M: velocity = (UbMath::c4o9*(-vx3)); break; + case D3Q27System::DIR_PP0: velocity = (UbMath::c1o9*(+vx1+vx2)); break; + case D3Q27System::DIR_MM0: velocity = (UbMath::c1o9*(-vx1-vx2)); break; + case D3Q27System::DIR_PM0: velocity = (UbMath::c1o9*(+vx1-vx2)); break; + case D3Q27System::DIR_MP0: velocity = (UbMath::c1o9*(-vx1+vx2)); break; + case D3Q27System::DIR_P0P: velocity = (UbMath::c1o9*(+vx1+vx3)); break; + case D3Q27System::DIR_M0M: velocity = (UbMath::c1o9*(-vx1-vx3)); break; + case D3Q27System::DIR_P0M: velocity = (UbMath::c1o9*(+vx1-vx3)); break; + case D3Q27System::DIR_M0P: velocity = (UbMath::c1o9*(-vx1+vx3)); break; + case D3Q27System::DIR_0PP: velocity = (UbMath::c1o9*(+vx2+vx3)); break; + case D3Q27System::DIR_0MM: velocity = (UbMath::c1o9*(-vx2-vx3)); break; + case D3Q27System::DIR_0PM: velocity = (UbMath::c1o9*(+vx2-vx3)); break; + case D3Q27System::DIR_0MP: velocity = (UbMath::c1o9*(-vx2+vx3)); break; + case D3Q27System::DIR_PPP: velocity = (UbMath::c1o36*(+vx1+vx2+vx3)); break; + case D3Q27System::DIR_MMM: velocity = (UbMath::c1o36*(-vx1-vx2-vx3)); break; + case D3Q27System::DIR_PPM: velocity = (UbMath::c1o36*(+vx1+vx2-vx3)); break; + case D3Q27System::DIR_MMP: velocity = (UbMath::c1o36*(-vx1-vx2+vx3)); break; + case D3Q27System::DIR_PMP: velocity = (UbMath::c1o36*(+vx1-vx2+vx3)); break; + case D3Q27System::DIR_MPM: velocity = (UbMath::c1o36*(-vx1+vx2-vx3)); break; + case D3Q27System::DIR_PMM: velocity = (UbMath::c1o36*(+vx1-vx2-vx3)); break; + case D3Q27System::DIR_MPP: velocity = (UbMath::c1o36*(-vx1+vx2+vx3)); break; default: throw UbException(UB_EXARGS, "unknown error"); } LBMReal fReturn = ((1.0-q)/(1.0+q))*((f[invDir]-feq[invDir])/(1.0-collFactor)+feq[invDir])+((q*(f[invDir]+f[fdir])-velocity*rho)/(1.0+q)); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyDensityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyDensityBCAlgorithm.cpp index ecfb98e67aa4c20603fd4b07e969ccb396c5e757..bec8e139e333f5fa18847ddbb5fbb11c5c5c1eac 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyDensityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyDensityBCAlgorithm.cpp @@ -95,12 +95,12 @@ void ThixotropyDensityBCAlgorithm::applyBC() int nx3 = x3; //flag points in direction of fluid - if (bcPtr->hasDensityBoundaryFlag(D3Q27System::E)) { nx1 -= 1; } - else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::W)) { nx1 += 1; } - else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::N)) { nx2 -= 1; } - else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::S)) { nx2 += 1; } - else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::T)) { nx3 -= 1; } - else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::B)) { nx3 += 1; } + if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_P00)) { nx1 -= 1; } + else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_M00)) { nx1 += 1; } + else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_0P0)) { nx2 -= 1; } + else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_0M0)) { nx2 += 1; } + else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_00P)) { nx3 -= 1; } + else if (bcPtr->hasDensityBoundaryFlag(D3Q27System::DIR_00M)) { nx3 += 1; } else UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on density boundary...")); LBMReal rhoBC = bcPtr->getBoundaryDensity(); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNonReflectingOutflowBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNonReflectingOutflowBCAlgorithm.cpp index 2750e606acff2fb7a9f906f67c0b48975a11261c..27d9bd3632e11e3ad5afe5f2c1b6b57d17a33d83 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNonReflectingOutflowBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNonReflectingOutflowBCAlgorithm.cpp @@ -96,130 +96,130 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC() switch (direction) { case E: - f[E] = ftemp[E] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[E]; + f[DIR_P00] = ftemp[DIR_P00] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_P00]; f[NE] = ftemp[NE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[NE]; - f[SE] = ftemp[SE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[SE]; - f[TE] = ftemp[TE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[TE]; - f[BE] = ftemp[BE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[BE]; - f[TNE] = ftemp[TNE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[TNE]; - f[TSE] = ftemp[TSE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[TSE]; - f[BNE] = ftemp[BNE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[BNE]; - f[BSE] = ftemp[BSE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[BSE]; + f[DIR_PM0] = ftemp[DIR_PM0] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_PM0]; + f[DIR_P0P] = ftemp[DIR_P0P] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_P0P]; + f[DIR_P0M] = ftemp[DIR_P0M] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_P0M]; + f[DIR_PPP] = ftemp[DIR_PPP] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_PPP]; + f[DIR_PMP] = ftemp[DIR_PMP] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_PMP]; + f[DIR_PPM] = ftemp[DIR_PPM] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_PPM]; + f[DIR_PMM] = ftemp[DIR_PMM] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * f[DIR_PMM]; - distributions->setDistributionInvForDirection(f[E], x1 + DX1[W], x2 + DX2[W], x3 + DX3[W], W); - distributions->setDistributionInvForDirection(f[NE], x1 + DX1[SW], x2 + DX2[SW], x3 + DX3[SW], SW); - distributions->setDistributionInvForDirection(f[SE], x1 + DX1[NW], x2 + DX2[NW], x3 + DX3[NW], NW); - distributions->setDistributionInvForDirection(f[TE], x1 + DX1[BW], x2 + DX2[BW], x3 + DX3[BW], BW); - distributions->setDistributionInvForDirection(f[BE], x1 + DX1[TW], x2 + DX2[TW], x3 + DX3[TW], TW); - distributions->setDistributionInvForDirection(f[TNE], x1 + DX1[BSW], x2 + DX2[BSW], x3 + DX3[BSW], BSW); - distributions->setDistributionInvForDirection(f[TSE], x1 + DX1[BNW], x2 + DX2[BNW], x3 + DX3[BNW], BNW); - distributions->setDistributionInvForDirection(f[BNE], x1 + DX1[TSW], x2 + DX2[TSW], x3 + DX3[TSW], TSW); - distributions->setDistributionInvForDirection(f[BSE], x1 + DX1[TNW], x2 + DX2[TNW], x3 + DX3[TNW], TNW); + distributions->setDistributionInvForDirection(f[DIR_P00], x1 + DX1[W], x2 + DX2[W], x3 + DX3[W], W); + distributions->setDistributionInvForDirection(f[NE], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0); + distributions->setDistributionInvForDirection(f[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0); + distributions->setDistributionInvForDirection(f[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M); + distributions->setDistributionInvForDirection(f[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P); + distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); + distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); + distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); + distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); break; case W: f[W] = ftemp[W] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[W]; - f[NW] = ftemp[NW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[NW]; - f[SW] = ftemp[SW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[SW]; - f[TW] = ftemp[TW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[TW]; - f[BW] = ftemp[BW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[BW]; - f[TNW] = ftemp[TNW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[TNW]; - f[TSW] = ftemp[TSW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[TSW]; - f[BNW] = ftemp[BNW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[BNW]; - f[BSW] = ftemp[BSW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[BSW]; + f[DIR_MP0] = ftemp[DIR_MP0] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_MP0]; + f[DIR_MM0] = ftemp[DIR_MM0] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_MM0]; + f[DIR_M0P] = ftemp[DIR_M0P] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_M0P]; + f[DIR_M0M] = ftemp[DIR_M0M] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_M0M]; + f[DIR_MPP] = ftemp[DIR_MPP] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_MPP]; + f[DIR_MMP] = ftemp[DIR_MMP] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_MMP]; + f[DIR_MPM] = ftemp[DIR_MPM] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_MPM]; + f[DIR_MMM] = ftemp[DIR_MMM] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * f[DIR_MMM]; - distributions->setDistributionInvForDirection(f[W], x1 + DX1[E], x2 + DX2[E], x3 + DX3[E], E); - distributions->setDistributionInvForDirection(f[NW], x1 + DX1[SE], x2 + DX2[SE], x3 + DX3[SE], SE); - distributions->setDistributionInvForDirection(f[SW], x1 + DX1[NE], x2 + DX2[NE], x3 + DX3[NE], NE); - distributions->setDistributionInvForDirection(f[TW], x1 + DX1[BE], x2 + DX2[BE], x3 + DX3[BE], BE); - distributions->setDistributionInvForDirection(f[BW], x1 + DX1[TE], x2 + DX2[TE], x3 + DX3[TE], TE); - distributions->setDistributionInvForDirection(f[TNW], x1 + DX1[BSE], x2 + DX2[BSE], x3 + DX3[BSE], BSE); - distributions->setDistributionInvForDirection(f[TSW], x1 + DX1[BNE], x2 + DX2[BNE], x3 + DX3[BNE], BNE); - distributions->setDistributionInvForDirection(f[BNW], x1 + DX1[TSE], x2 + DX2[TSE], x3 + DX3[TSE], TSE); - distributions->setDistributionInvForDirection(f[BSW], x1 + DX1[TNE], x2 + DX2[TNE], x3 + DX3[TNE], TNE); + distributions->setDistributionInvForDirection(f[W], x1 + DX1[DIR_P00], x2 + DX2[DIR_P00], x3 + DX3[DIR_P00], E); + distributions->setDistributionInvForDirection(f[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0); + distributions->setDistributionInvForDirection(f[DIR_MM0], x1 + DX1[NE], x2 + DX2[NE], x3 + DX3[NE], NE); + distributions->setDistributionInvForDirection(f[DIR_M0P], x1 + DX1[DIR_P0M], x2 + DX2[DIR_P0M], x3 + DX3[DIR_P0M], DIR_P0M); + distributions->setDistributionInvForDirection(f[DIR_M0M], x1 + DX1[DIR_P0P], x2 + DX2[DIR_P0P], x3 + DX3[DIR_P0P], DIR_P0P); + distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); + distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); + distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); + distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); break; case N: f[N] = ftemp[N] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[N]; f[NE] = ftemp[NE] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[NE]; - f[NW] = ftemp[NW] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[NW]; - f[TN] = ftemp[TN] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[TN]; - f[BN] = ftemp[BN] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[BN]; - f[TNE] = ftemp[TNE] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[TNE]; - f[TNW] = ftemp[TNW] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[TNW]; - f[BNE] = ftemp[BNE] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[BNE]; - f[BNW] = ftemp[BNW] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[BNW]; + f[DIR_MP0] = ftemp[DIR_MP0] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_MP0]; + f[DIR_0PP] = ftemp[DIR_0PP] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_0PP]; + f[DIR_0PM] = ftemp[DIR_0PM] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_0PM]; + f[DIR_PPP] = ftemp[DIR_PPP] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_PPP]; + f[DIR_MPP] = ftemp[DIR_MPP] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_MPP]; + f[DIR_PPM] = ftemp[DIR_PPM] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_PPM]; + f[DIR_MPM] = ftemp[DIR_MPM] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * f[DIR_MPM]; distributions->setDistributionInvForDirection(f[N], x1 + DX1[S], x2 + DX2[S], x3 + DX3[S], S); - distributions->setDistributionInvForDirection(f[NE], x1 + DX1[SW], x2 + DX2[SW], x3 + DX3[SW], SW); - distributions->setDistributionInvForDirection(f[NW], x1 + DX1[SE], x2 + DX2[SE], x3 + DX3[SE], SE); - distributions->setDistributionInvForDirection(f[TN], x1 + DX1[BS], x2 + DX2[BS], x3 + DX3[BS], BS); - distributions->setDistributionInvForDirection(f[BN], x1 + DX1[TS], x2 + DX2[TS], x3 + DX3[TS], TS); - distributions->setDistributionInvForDirection(f[TNE], x1 + DX1[BSW], x2 + DX2[BSW], x3 + DX3[BSW], BSW); - distributions->setDistributionInvForDirection(f[TNW], x1 + DX1[BSE], x2 + DX2[BSE], x3 + DX3[BSE], BSE); - distributions->setDistributionInvForDirection(f[BNE], x1 + DX1[TSW], x2 + DX2[TSW], x3 + DX3[TSW], TSW); - distributions->setDistributionInvForDirection(f[BNW], x1 + DX1[TSE], x2 + DX2[TSE], x3 + DX3[TSE], TSE); + distributions->setDistributionInvForDirection(f[NE], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0); + distributions->setDistributionInvForDirection(f[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0); + distributions->setDistributionInvForDirection(f[DIR_0PP], x1 + DX1[DIR_0MM], x2 + DX2[DIR_0MM], x3 + DX3[DIR_0MM], DIR_0MM); + distributions->setDistributionInvForDirection(f[DIR_0PM], x1 + DX1[DIR_0MP], x2 + DX2[DIR_0MP], x3 + DX3[DIR_0MP], DIR_0MP); + distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); + distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); + distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); + distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); break; case S: f[S] = ftemp[S] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[S]; - f[SE] = ftemp[SE] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[SE]; - f[SW] = ftemp[SW] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[SW]; - f[TS] = ftemp[TS] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[TS]; - f[BS] = ftemp[BS] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[BS]; - f[TSE] = ftemp[TSE] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[TSE]; - f[TSW] = ftemp[TSW] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[TSW]; - f[BSE] = ftemp[BSE] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[BSE]; - f[BSW] = ftemp[BSW] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[BSW]; + f[DIR_PM0] = ftemp[DIR_PM0] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_PM0]; + f[DIR_MM0] = ftemp[DIR_MM0] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_MM0]; + f[DIR_0MP] = ftemp[DIR_0MP] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_0MP]; + f[DIR_0MM] = ftemp[DIR_0MM] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_0MM]; + f[DIR_PMP] = ftemp[DIR_PMP] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_PMP]; + f[DIR_MMP] = ftemp[DIR_MMP] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_MMP]; + f[DIR_PMM] = ftemp[DIR_PMM] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_PMM]; + f[DIR_MMM] = ftemp[DIR_MMM] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * f[DIR_MMM]; distributions->setDistributionInvForDirection(f[S], x1 + DX1[N], x2 + DX2[N], x3 + DX3[N], N); - distributions->setDistributionInvForDirection(f[SE], x1 + DX1[NW], x2 + DX2[NW], x3 + DX3[NW], NW); - distributions->setDistributionInvForDirection(f[SW], x1 + DX1[NE], x2 + DX2[NE], x3 + DX3[NE], NE); - distributions->setDistributionInvForDirection(f[TS], x1 + DX1[BN], x2 + DX2[BN], x3 + DX3[BN], BN); - distributions->setDistributionInvForDirection(f[BS], x1 + DX1[TN], x2 + DX2[TN], x3 + DX3[TN], TN); - distributions->setDistributionInvForDirection(f[TSE], x1 + DX1[BNW], x2 + DX2[BNW], x3 + DX3[BNW], BNW); - distributions->setDistributionInvForDirection(f[TSW], x1 + DX1[BNE], x2 + DX2[BNE], x3 + DX3[BNE], BNE); - distributions->setDistributionInvForDirection(f[BSE], x1 + DX1[TNW], x2 + DX2[TNW], x3 + DX3[TNW], TNW); - distributions->setDistributionInvForDirection(f[BSW], x1 + DX1[TNE], x2 + DX2[TNE], x3 + DX3[TNE], TNE); + distributions->setDistributionInvForDirection(f[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0); + distributions->setDistributionInvForDirection(f[DIR_MM0], x1 + DX1[NE], x2 + DX2[NE], x3 + DX3[NE], NE); + distributions->setDistributionInvForDirection(f[DIR_0MP], x1 + DX1[DIR_0PM], x2 + DX2[DIR_0PM], x3 + DX3[DIR_0PM], DIR_0PM); + distributions->setDistributionInvForDirection(f[DIR_0MM], x1 + DX1[DIR_0PP], x2 + DX2[DIR_0PP], x3 + DX3[DIR_0PP], DIR_0PP); + distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); + distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); + distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); + distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); break; case T: f[T] = ftemp[T] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[T]; - f[TE] = ftemp[TE] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TE]; - f[TW] = ftemp[TW] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TW]; - f[TN] = ftemp[TN] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TN]; - f[TS] = ftemp[TS] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TS]; - f[TNE] = ftemp[TNE] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TNE]; - f[TNW] = ftemp[TNW] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TNW]; - f[TSE] = ftemp[TSE] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TSE]; - f[TSW] = ftemp[TSW] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[TSW]; + f[DIR_P0P] = ftemp[DIR_P0P] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_P0P]; + f[DIR_M0P] = ftemp[DIR_M0P] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_M0P]; + f[DIR_0PP] = ftemp[DIR_0PP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_0PP]; + f[DIR_0MP] = ftemp[DIR_0MP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_0MP]; + f[DIR_PPP] = ftemp[DIR_PPP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_PPP]; + f[DIR_MPP] = ftemp[DIR_MPP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_MPP]; + f[DIR_PMP] = ftemp[DIR_PMP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_PMP]; + f[DIR_MMP] = ftemp[DIR_MMP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * f[DIR_MMP]; distributions->setDistributionInvForDirection(f[T], x1 + DX1[B], x2 + DX2[B], x3 + DX3[B], B); - distributions->setDistributionInvForDirection(f[TE], x1 + DX1[BW], x2 + DX2[BW], x3 + DX3[BW], BW); - distributions->setDistributionInvForDirection(f[TW], x1 + DX1[BE], x2 + DX2[BE], x3 + DX3[BE], BE); - distributions->setDistributionInvForDirection(f[TN], x1 + DX1[BS], x2 + DX2[BS], x3 + DX3[BS], BS); - distributions->setDistributionInvForDirection(f[TS], x1 + DX1[BN], x2 + DX2[BN], x3 + DX3[BN], BN); - distributions->setDistributionInvForDirection(f[TNE], x1 + DX1[BSW], x2 + DX2[BSW], x3 + DX3[BSW], BSW); - distributions->setDistributionInvForDirection(f[TNW], x1 + DX1[BSE], x2 + DX2[BSE], x3 + DX3[BSE], BSE); - distributions->setDistributionInvForDirection(f[TSE], x1 + DX1[BNW], x2 + DX2[BNW], x3 + DX3[BNW], BNW); - distributions->setDistributionInvForDirection(f[TSW], x1 + DX1[BNE], x2 + DX2[BNE], x3 + DX3[BNE], BNE); + distributions->setDistributionInvForDirection(f[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M); + distributions->setDistributionInvForDirection(f[DIR_M0P], x1 + DX1[DIR_P0M], x2 + DX2[DIR_P0M], x3 + DX3[DIR_P0M], DIR_P0M); + distributions->setDistributionInvForDirection(f[DIR_0PP], x1 + DX1[DIR_0MM], x2 + DX2[DIR_0MM], x3 + DX3[DIR_0MM], DIR_0MM); + distributions->setDistributionInvForDirection(f[DIR_0MP], x1 + DX1[DIR_0PM], x2 + DX2[DIR_0PM], x3 + DX3[DIR_0PM], DIR_0PM); + distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); + distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); + distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); + distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); break; case B: f[B] = ftemp[B] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[B]; - f[BE] = ftemp[BE] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BE]; - f[BW] = ftemp[BW] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BW]; - f[BN] = ftemp[BN] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BN]; - f[BS] = ftemp[BS] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BS]; - f[BNE] = ftemp[BNE] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BNE]; - f[BNW] = ftemp[BNW] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BNW]; - f[BSE] = ftemp[BSE] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BSE]; - f[BSW] = ftemp[BSW] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[BSW]; + f[DIR_P0M] = ftemp[DIR_P0M] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_P0M]; + f[DIR_M0M] = ftemp[DIR_M0M] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_M0M]; + f[DIR_0PM] = ftemp[DIR_0PM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_0PM]; + f[DIR_0MM] = ftemp[DIR_0MM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_0MM]; + f[DIR_PPM] = ftemp[DIR_PPM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_PPM]; + f[DIR_MPM] = ftemp[DIR_MPM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_MPM]; + f[DIR_PMM] = ftemp[DIR_PMM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_PMM]; + f[DIR_MMM] = ftemp[DIR_MMM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * f[DIR_MMM]; distributions->setDistributionInvForDirection(f[B], x1 + DX1[T], x2 + DX2[T], x3 + DX3[T], T); - distributions->setDistributionInvForDirection(f[BE], x1 + DX1[TW], x2 + DX2[TW], x3 + DX3[TW], TW); - distributions->setDistributionInvForDirection(f[BW], x1 + DX1[TE], x2 + DX2[TE], x3 + DX3[TE], TE); - distributions->setDistributionInvForDirection(f[BN], x1 + DX1[TS], x2 + DX2[TS], x3 + DX3[TS], TS); - distributions->setDistributionInvForDirection(f[BS], x1 + DX1[TN], x2 + DX2[TN], x3 + DX3[TN], TN); - distributions->setDistributionInvForDirection(f[BNE], x1 + DX1[TSW], x2 + DX2[TSW], x3 + DX3[TSW], TSW); - distributions->setDistributionInvForDirection(f[BNW], x1 + DX1[TSE], x2 + DX2[TSE], x3 + DX3[TSE], TSE); - distributions->setDistributionInvForDirection(f[BSE], x1 + DX1[TNW], x2 + DX2[TNW], x3 + DX3[TNW], TNW); - distributions->setDistributionInvForDirection(f[BSW], x1 + DX1[TNE], x2 + DX2[TNE], x3 + DX3[TNE], TNE); + distributions->setDistributionInvForDirection(f[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P); + distributions->setDistributionInvForDirection(f[DIR_M0M], x1 + DX1[DIR_P0P], x2 + DX2[DIR_P0P], x3 + DX3[DIR_P0P], DIR_P0P); + distributions->setDistributionInvForDirection(f[DIR_0PM], x1 + DX1[DIR_0MP], x2 + DX2[DIR_0MP], x3 + DX3[DIR_0MP], DIR_0MP); + distributions->setDistributionInvForDirection(f[DIR_0MM], x1 + DX1[DIR_0PP], x2 + DX2[DIR_0PP], x3 + DX3[DIR_0PP], DIR_0PP); + distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); + distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); + distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); + distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); break; default: UB_THROW(UbException(UB_EXARGS, "It isn't implemented non reflecting density boundary for this direction!")); @@ -240,130 +240,130 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC() switch (direction) { case E: - h[E] = htemp[E] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[E]; + h[DIR_P00] = htemp[DIR_P00] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[DIR_P00]; h[NE] = htemp[NE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[NE]; - h[SE] = htemp[SE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[SE]; - h[TE] = htemp[TE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[TE]; - h[BE] = htemp[BE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[BE]; - h[TNE] = htemp[TNE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[TNE]; - h[TSE] = htemp[TSE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[TSE]; - h[BNE] = htemp[BNE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[BNE]; - h[BSE] = htemp[BSE] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[BSE]; + h[DIR_PM0] = htemp[DIR_PM0] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[DIR_PM0]; + h[DIR_P0P] = htemp[DIR_P0P] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[DIR_P0P]; + h[DIR_P0M] = htemp[DIR_P0M] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[DIR_P0M]; + h[DIR_PPP] = htemp[DIR_PPP] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[DIR_PPP]; + h[DIR_PMP] = htemp[DIR_PMP] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[DIR_PMP]; + h[DIR_PPM] = htemp[DIR_PPM] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[DIR_PPM]; + h[DIR_PMM] = htemp[DIR_PMM] * (UbMath::one_over_sqrt3 + vx1) + (1.0 - UbMath::one_over_sqrt3 - vx1) * h[DIR_PMM]; - distributionsH->setDistributionInvForDirection(h[E], x1 + DX1[W], x2 + DX2[W], x3 + DX3[W], W); - distributionsH->setDistributionInvForDirection(h[NE], x1 + DX1[SW], x2 + DX2[SW], x3 + DX3[SW], SW); - distributionsH->setDistributionInvForDirection(h[SE], x1 + DX1[NW], x2 + DX2[NW], x3 + DX3[NW], NW); - distributionsH->setDistributionInvForDirection(h[TE], x1 + DX1[BW], x2 + DX2[BW], x3 + DX3[BW], BW); - distributionsH->setDistributionInvForDirection(h[BE], x1 + DX1[TW], x2 + DX2[TW], x3 + DX3[TW], TW); - distributionsH->setDistributionInvForDirection(h[TNE], x1 + DX1[BSW], x2 + DX2[BSW], x3 + DX3[BSW], BSW); - distributionsH->setDistributionInvForDirection(h[TSE], x1 + DX1[BNW], x2 + DX2[BNW], x3 + DX3[BNW], BNW); - distributionsH->setDistributionInvForDirection(h[BNE], x1 + DX1[TSW], x2 + DX2[TSW], x3 + DX3[TSW], TSW); - distributionsH->setDistributionInvForDirection(h[BSE], x1 + DX1[TNW], x2 + DX2[TNW], x3 + DX3[TNW], TNW); + distributionsH->setDistributionInvForDirection(h[DIR_P00], x1 + DX1[W], x2 + DX2[W], x3 + DX3[W], W); + distributionsH->setDistributionInvForDirection(h[NE], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0); + distributionsH->setDistributionInvForDirection(h[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0); + distributionsH->setDistributionInvForDirection(h[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M); + distributionsH->setDistributionInvForDirection(h[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P); + distributionsH->setDistributionInvForDirection(h[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); + distributionsH->setDistributionInvForDirection(h[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); + distributionsH->setDistributionInvForDirection(h[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); + distributionsH->setDistributionInvForDirection(h[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); break; case W: h[W] = htemp[W] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[W]; - h[NW] = htemp[NW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[NW]; - h[SW] = htemp[SW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[SW]; - h[TW] = htemp[TW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[TW]; - h[BW] = htemp[BW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[BW]; - h[TNW] = htemp[TNW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[TNW]; - h[TSW] = htemp[TSW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[TSW]; - h[BNW] = htemp[BNW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[BNW]; - h[BSW] = htemp[BSW] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[BSW]; + h[DIR_MP0] = htemp[DIR_MP0] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[DIR_MP0]; + h[DIR_MM0] = htemp[DIR_MM0] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[DIR_MM0]; + h[DIR_M0P] = htemp[DIR_M0P] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[DIR_M0P]; + h[DIR_M0M] = htemp[DIR_M0M] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[DIR_M0M]; + h[DIR_MPP] = htemp[DIR_MPP] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[DIR_MPP]; + h[DIR_MMP] = htemp[DIR_MMP] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[DIR_MMP]; + h[DIR_MPM] = htemp[DIR_MPM] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[DIR_MPM]; + h[DIR_MMM] = htemp[DIR_MMM] * (UbMath::one_over_sqrt3 - vx1) + (1.0 - UbMath::one_over_sqrt3 + vx1) * h[DIR_MMM]; - distributionsH->setDistributionInvForDirection(h[W], x1 + DX1[E], x2 + DX2[E], x3 + DX3[E], E); - distributionsH->setDistributionInvForDirection(h[NW], x1 + DX1[SE], x2 + DX2[SE], x3 + DX3[SE], SE); - distributionsH->setDistributionInvForDirection(h[SW], x1 + DX1[NE], x2 + DX2[NE], x3 + DX3[NE], NE); - distributionsH->setDistributionInvForDirection(h[TW], x1 + DX1[BE], x2 + DX2[BE], x3 + DX3[BE], BE); - distributionsH->setDistributionInvForDirection(h[BW], x1 + DX1[TE], x2 + DX2[TE], x3 + DX3[TE], TE); - distributionsH->setDistributionInvForDirection(h[TNW], x1 + DX1[BSE], x2 + DX2[BSE], x3 + DX3[BSE], BSE); - distributionsH->setDistributionInvForDirection(h[TSW], x1 + DX1[BNE], x2 + DX2[BNE], x3 + DX3[BNE], BNE); - distributionsH->setDistributionInvForDirection(h[BNW], x1 + DX1[TSE], x2 + DX2[TSE], x3 + DX3[TSE], TSE); - distributionsH->setDistributionInvForDirection(h[BSW], x1 + DX1[TNE], x2 + DX2[TNE], x3 + DX3[TNE], TNE); + distributionsH->setDistributionInvForDirection(h[W], x1 + DX1[DIR_P00], x2 + DX2[DIR_P00], x3 + DX3[DIR_P00], E); + distributionsH->setDistributionInvForDirection(h[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0); + distributionsH->setDistributionInvForDirection(h[DIR_MM0], x1 + DX1[NE], x2 + DX2[NE], x3 + DX3[NE], NE); + distributionsH->setDistributionInvForDirection(h[DIR_M0P], x1 + DX1[DIR_P0M], x2 + DX2[DIR_P0M], x3 + DX3[DIR_P0M], DIR_P0M); + distributionsH->setDistributionInvForDirection(h[DIR_M0M], x1 + DX1[DIR_P0P], x2 + DX2[DIR_P0P], x3 + DX3[DIR_P0P], DIR_P0P); + distributionsH->setDistributionInvForDirection(h[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); + distributionsH->setDistributionInvForDirection(h[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); + distributionsH->setDistributionInvForDirection(h[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); + distributionsH->setDistributionInvForDirection(h[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); break; case N: h[N] = htemp[N] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[N]; h[NE] = htemp[NE] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[NE]; - h[NW] = htemp[NW] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[NW]; - h[TN] = htemp[TN] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[TN]; - h[BN] = htemp[BN] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[BN]; - h[TNE] = htemp[TNE] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[TNE]; - h[TNW] = htemp[TNW] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[TNW]; - h[BNE] = htemp[BNE] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[BNE]; - h[BNW] = htemp[BNW] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[BNW]; + h[DIR_MP0] = htemp[DIR_MP0] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[DIR_MP0]; + h[DIR_0PP] = htemp[DIR_0PP] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[DIR_0PP]; + h[DIR_0PM] = htemp[DIR_0PM] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[DIR_0PM]; + h[DIR_PPP] = htemp[DIR_PPP] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[DIR_PPP]; + h[DIR_MPP] = htemp[DIR_MPP] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[DIR_MPP]; + h[DIR_PPM] = htemp[DIR_PPM] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[DIR_PPM]; + h[DIR_MPM] = htemp[DIR_MPM] * (UbMath::one_over_sqrt3 + vx2) + (1.0 - UbMath::one_over_sqrt3 - vx2) * h[DIR_MPM]; distributionsH->setDistributionInvForDirection(h[N], x1 + DX1[S], x2 + DX2[S], x3 + DX3[S], S); - distributionsH->setDistributionInvForDirection(h[NE], x1 + DX1[SW], x2 + DX2[SW], x3 + DX3[SW], SW); - distributionsH->setDistributionInvForDirection(h[NW], x1 + DX1[SE], x2 + DX2[SE], x3 + DX3[SE], SE); - distributionsH->setDistributionInvForDirection(h[TN], x1 + DX1[BS], x2 + DX2[BS], x3 + DX3[BS], BS); - distributionsH->setDistributionInvForDirection(h[BN], x1 + DX1[TS], x2 + DX2[TS], x3 + DX3[TS], TS); - distributionsH->setDistributionInvForDirection(h[TNE], x1 + DX1[BSW], x2 + DX2[BSW], x3 + DX3[BSW], BSW); - distributionsH->setDistributionInvForDirection(h[TNW], x1 + DX1[BSE], x2 + DX2[BSE], x3 + DX3[BSE], BSE); - distributionsH->setDistributionInvForDirection(h[BNE], x1 + DX1[TSW], x2 + DX2[TSW], x3 + DX3[TSW], TSW); - distributionsH->setDistributionInvForDirection(h[BNW], x1 + DX1[TSE], x2 + DX2[TSE], x3 + DX3[TSE], TSE); + distributionsH->setDistributionInvForDirection(h[NE], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0); + distributionsH->setDistributionInvForDirection(h[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0); + distributionsH->setDistributionInvForDirection(h[DIR_0PP], x1 + DX1[DIR_0MM], x2 + DX2[DIR_0MM], x3 + DX3[DIR_0MM], DIR_0MM); + distributionsH->setDistributionInvForDirection(h[DIR_0PM], x1 + DX1[DIR_0MP], x2 + DX2[DIR_0MP], x3 + DX3[DIR_0MP], DIR_0MP); + distributionsH->setDistributionInvForDirection(h[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); + distributionsH->setDistributionInvForDirection(h[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); + distributionsH->setDistributionInvForDirection(h[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); + distributionsH->setDistributionInvForDirection(h[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); break; case S: h[S] = htemp[S] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[S]; - h[SE] = htemp[SE] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[SE]; - h[SW] = htemp[SW] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[SW]; - h[TS] = htemp[TS] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[TS]; - h[BS] = htemp[BS] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[BS]; - h[TSE] = htemp[TSE] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[TSE]; - h[TSW] = htemp[TSW] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[TSW]; - h[BSE] = htemp[BSE] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[BSE]; - h[BSW] = htemp[BSW] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[BSW]; + h[DIR_PM0] = htemp[DIR_PM0] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[DIR_PM0]; + h[DIR_MM0] = htemp[DIR_MM0] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[DIR_MM0]; + h[DIR_0MP] = htemp[DIR_0MP] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[DIR_0MP]; + h[DIR_0MM] = htemp[DIR_0MM] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[DIR_0MM]; + h[DIR_PMP] = htemp[DIR_PMP] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[DIR_PMP]; + h[DIR_MMP] = htemp[DIR_MMP] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[DIR_MMP]; + h[DIR_PMM] = htemp[DIR_PMM] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[DIR_PMM]; + h[DIR_MMM] = htemp[DIR_MMM] * (UbMath::one_over_sqrt3 - vx2) + (1.0 - UbMath::one_over_sqrt3 + vx2) * h[DIR_MMM]; distributionsH->setDistributionInvForDirection(h[S], x1 + DX1[N], x2 + DX2[N], x3 + DX3[N], N); - distributionsH->setDistributionInvForDirection(h[SE], x1 + DX1[NW], x2 + DX2[NW], x3 + DX3[NW], NW); - distributionsH->setDistributionInvForDirection(h[SW], x1 + DX1[NE], x2 + DX2[NE], x3 + DX3[NE], NE); - distributionsH->setDistributionInvForDirection(h[TS], x1 + DX1[BN], x2 + DX2[BN], x3 + DX3[BN], BN); - distributionsH->setDistributionInvForDirection(h[BS], x1 + DX1[TN], x2 + DX2[TN], x3 + DX3[TN], TN); - distributionsH->setDistributionInvForDirection(h[TSE], x1 + DX1[BNW], x2 + DX2[BNW], x3 + DX3[BNW], BNW); - distributionsH->setDistributionInvForDirection(h[TSW], x1 + DX1[BNE], x2 + DX2[BNE], x3 + DX3[BNE], BNE); - distributionsH->setDistributionInvForDirection(h[BSE], x1 + DX1[TNW], x2 + DX2[TNW], x3 + DX3[TNW], TNW); - distributionsH->setDistributionInvForDirection(h[BSW], x1 + DX1[TNE], x2 + DX2[TNE], x3 + DX3[TNE], TNE); + distributionsH->setDistributionInvForDirection(h[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0); + distributionsH->setDistributionInvForDirection(h[DIR_MM0], x1 + DX1[NE], x2 + DX2[NE], x3 + DX3[NE], NE); + distributionsH->setDistributionInvForDirection(h[DIR_0MP], x1 + DX1[DIR_0PM], x2 + DX2[DIR_0PM], x3 + DX3[DIR_0PM], DIR_0PM); + distributionsH->setDistributionInvForDirection(h[DIR_0MM], x1 + DX1[DIR_0PP], x2 + DX2[DIR_0PP], x3 + DX3[DIR_0PP], DIR_0PP); + distributionsH->setDistributionInvForDirection(h[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); + distributionsH->setDistributionInvForDirection(h[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); + distributionsH->setDistributionInvForDirection(h[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); + distributionsH->setDistributionInvForDirection(h[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); break; case T: h[T] = htemp[T] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[T]; - h[TE] = htemp[TE] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[TE]; - h[TW] = htemp[TW] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[TW]; - h[TN] = htemp[TN] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[TN]; - h[TS] = htemp[TS] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[TS]; - h[TNE] = htemp[TNE] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[TNE]; - h[TNW] = htemp[TNW] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[TNW]; - h[TSE] = htemp[TSE] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[TSE]; - h[TSW] = htemp[TSW] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[TSW]; + h[DIR_P0P] = htemp[DIR_P0P] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[DIR_P0P]; + h[DIR_M0P] = htemp[DIR_M0P] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[DIR_M0P]; + h[DIR_0PP] = htemp[DIR_0PP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[DIR_0PP]; + h[DIR_0MP] = htemp[DIR_0MP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[DIR_0MP]; + h[DIR_PPP] = htemp[DIR_PPP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[DIR_PPP]; + h[DIR_MPP] = htemp[DIR_MPP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[DIR_MPP]; + h[DIR_PMP] = htemp[DIR_PMP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[DIR_PMP]; + h[DIR_MMP] = htemp[DIR_MMP] * (UbMath::one_over_sqrt3 + vx3) + (1.0 - UbMath::one_over_sqrt3 - vx3) * h[DIR_MMP]; distributionsH->setDistributionInvForDirection(h[T], x1 + DX1[B], x2 + DX2[B], x3 + DX3[B], B); - distributionsH->setDistributionInvForDirection(h[TE], x1 + DX1[BW], x2 + DX2[BW], x3 + DX3[BW], BW); - distributionsH->setDistributionInvForDirection(h[TW], x1 + DX1[BE], x2 + DX2[BE], x3 + DX3[BE], BE); - distributionsH->setDistributionInvForDirection(h[TN], x1 + DX1[BS], x2 + DX2[BS], x3 + DX3[BS], BS); - distributionsH->setDistributionInvForDirection(h[TS], x1 + DX1[BN], x2 + DX2[BN], x3 + DX3[BN], BN); - distributionsH->setDistributionInvForDirection(h[TNE], x1 + DX1[BSW], x2 + DX2[BSW], x3 + DX3[BSW], BSW); - distributionsH->setDistributionInvForDirection(h[TNW], x1 + DX1[BSE], x2 + DX2[BSE], x3 + DX3[BSE], BSE); - distributionsH->setDistributionInvForDirection(h[TSE], x1 + DX1[BNW], x2 + DX2[BNW], x3 + DX3[BNW], BNW); - distributionsH->setDistributionInvForDirection(h[TSW], x1 + DX1[BNE], x2 + DX2[BNE], x3 + DX3[BNE], BNE); + distributionsH->setDistributionInvForDirection(h[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M); + distributionsH->setDistributionInvForDirection(h[DIR_M0P], x1 + DX1[DIR_P0M], x2 + DX2[DIR_P0M], x3 + DX3[DIR_P0M], DIR_P0M); + distributionsH->setDistributionInvForDirection(h[DIR_0PP], x1 + DX1[DIR_0MM], x2 + DX2[DIR_0MM], x3 + DX3[DIR_0MM], DIR_0MM); + distributionsH->setDistributionInvForDirection(h[DIR_0MP], x1 + DX1[DIR_0PM], x2 + DX2[DIR_0PM], x3 + DX3[DIR_0PM], DIR_0PM); + distributionsH->setDistributionInvForDirection(h[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); + distributionsH->setDistributionInvForDirection(h[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); + distributionsH->setDistributionInvForDirection(h[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); + distributionsH->setDistributionInvForDirection(h[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); break; case B: h[B] = htemp[B] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[B]; - h[BE] = htemp[BE] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[BE]; - h[BW] = htemp[BW] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[BW]; - h[BN] = htemp[BN] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[BN]; - h[BS] = htemp[BS] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[BS]; - h[BNE] = htemp[BNE] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[BNE]; - h[BNW] = htemp[BNW] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[BNW]; - h[BSE] = htemp[BSE] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[BSE]; - h[BSW] = htemp[BSW] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[BSW]; + h[DIR_P0M] = htemp[DIR_P0M] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[DIR_P0M]; + h[DIR_M0M] = htemp[DIR_M0M] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[DIR_M0M]; + h[DIR_0PM] = htemp[DIR_0PM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[DIR_0PM]; + h[DIR_0MM] = htemp[DIR_0MM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[DIR_0MM]; + h[DIR_PPM] = htemp[DIR_PPM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[DIR_PPM]; + h[DIR_MPM] = htemp[DIR_MPM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[DIR_MPM]; + h[DIR_PMM] = htemp[DIR_PMM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[DIR_PMM]; + h[DIR_MMM] = htemp[DIR_MMM] * (UbMath::one_over_sqrt3 - vx3) + (1.0 - UbMath::one_over_sqrt3 + vx3) * h[DIR_MMM]; distributionsH->setDistributionInvForDirection(h[B], x1 + DX1[T], x2 + DX2[T], x3 + DX3[T], T); - distributionsH->setDistributionInvForDirection(h[BE], x1 + DX1[TW], x2 + DX2[TW], x3 + DX3[TW], TW); - distributionsH->setDistributionInvForDirection(h[BW], x1 + DX1[TE], x2 + DX2[TE], x3 + DX3[TE], TE); - distributionsH->setDistributionInvForDirection(h[BN], x1 + DX1[TS], x2 + DX2[TS], x3 + DX3[TS], TS); - distributionsH->setDistributionInvForDirection(h[BS], x1 + DX1[TN], x2 + DX2[TN], x3 + DX3[TN], TN); - distributionsH->setDistributionInvForDirection(h[BNE], x1 + DX1[TSW], x2 + DX2[TSW], x3 + DX3[TSW], TSW); - distributionsH->setDistributionInvForDirection(h[BNW], x1 + DX1[TSE], x2 + DX2[TSE], x3 + DX3[TSE], TSE); - distributionsH->setDistributionInvForDirection(h[BSE], x1 + DX1[TNW], x2 + DX2[TNW], x3 + DX3[TNW], TNW); - distributionsH->setDistributionInvForDirection(h[BSW], x1 + DX1[TNE], x2 + DX2[TNE], x3 + DX3[TNE], TNE); + distributionsH->setDistributionInvForDirection(h[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P); + distributionsH->setDistributionInvForDirection(h[DIR_M0M], x1 + DX1[DIR_P0P], x2 + DX2[DIR_P0P], x3 + DX3[DIR_P0P], DIR_P0P); + distributionsH->setDistributionInvForDirection(h[DIR_0PM], x1 + DX1[DIR_0MP], x2 + DX2[DIR_0MP], x3 + DX3[DIR_0MP], DIR_0MP); + distributionsH->setDistributionInvForDirection(h[DIR_0MM], x1 + DX1[DIR_0PP], x2 + DX2[DIR_0PP], x3 + DX3[DIR_0PP], DIR_0PP); + distributionsH->setDistributionInvForDirection(h[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); + distributionsH->setDistributionInvForDirection(h[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); + distributionsH->setDistributionInvForDirection(h[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); + distributionsH->setDistributionInvForDirection(h[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); break; default: UB_THROW(UbException(UB_EXARGS, "It isn't implemented non reflecting density boundary for this direction!")); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityBCAlgorithm.cpp index 6db2e6230560e313abcccbb08299f1928d5c0672..4748212417600b18615a938a6c7a2696ee00eb00 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityBCAlgorithm.cpp @@ -92,12 +92,12 @@ void ThixotropyVelocityBCAlgorithm::applyBC() int nx3 = x3; //flag points in direction of fluid - if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::E)) { nx1 -= 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::W)) { nx1 += 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::N)) { nx2 -= 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::S)) { nx2 += 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::T)) { nx3 -= 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::B)) { nx3 += 1; } + if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_P00)) { nx1 -= 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_M00)) { nx1 += 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_0P0)) { nx2 -= 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_0M0)) { nx2 += 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_00P)) { nx3 -= 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_00M)) { nx3 += 1; } else UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on velocity boundary...")); //lambdaBC = bcPtr->getBoundaryThixotropy(); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityWithDensityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityWithDensityBCAlgorithm.cpp index 532570386462c4dd0d6d7db118a19429bc7beff0..454b29bc459045b1f61746eeb7f5f5987f1762a7 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityWithDensityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityWithDensityBCAlgorithm.cpp @@ -85,12 +85,12 @@ void ThixotropyVelocityWithDensityBCAlgorithm::applyBC() int nx3 = x3; //flag points in direction of fluid - if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::E)) { nx1 -= 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::W)) { nx1 += 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::N)) { nx2 -= 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::S)) { nx2 += 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::T)) { nx3 -= 1; } - else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::B)) { nx3 += 1; } + if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_P00)) { nx1 -= 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_M00)) { nx1 += 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_0P0)) { nx2 -= 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_0M0)) { nx2 += 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_00P)) { nx3 -= 1; } + else if (bcPtr->hasVelocityBoundaryFlag(D3Q27System::DIR_00M)) { nx3 += 1; } else UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on velocity boundary...")); for (int fdir = D3Q27System::FSTARTDIR; fdir <= D3Q27System::FENDDIR; fdir++) diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp index 3765d2a999f73c476a4f1b250daeaefde971c277..9d865e22b70ccde39c97f9ddb1d7997121041f2e 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp @@ -172,34 +172,34 @@ void ShearStressCoProcessor::calculateShearStress(double timeStep) ////////////////////////////////////////////////////////////////////////// // compute velocity ////////////////////////////////////////////////////////////////////////// - vx = ((((f[TNE] - f[BSW]) + (f[TSE] - f[BNW])) + ((f[BSE] - f[TNW]) + (f[BNE] - f[TSW]))) + - (((f[BE] - f[TW]) + (f[TE] - f[BW])) + ((f[SE] - f[NW]) + (f[NE] - f[SW]))) + (f[E] - f[W])); + vx = ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_PMP] - f[DIR_MPM])) + ((f[DIR_PMM] - f[DIR_MPP]) + (f[DIR_PPM] - f[DIR_MMP]))) + + (((f[DIR_P0M] - f[DIR_M0P]) + (f[DIR_P0P] - f[DIR_M0M])) + ((f[DIR_PM0] - f[DIR_MP0]) + (f[NE] - f[DIR_MM0]))) + (f[DIR_P00] - f[W])); - vy = ((((f[TNE] - f[BSW]) + (f[BNW] - f[TSE])) + ((f[TNW] - f[BSE]) + (f[BNE] - f[TSW]))) + - (((f[BN] - f[TS]) + (f[TN] - f[BS])) + ((f[NW] - f[SE]) + (f[NE] - f[SW]))) + (f[N] - f[S])); + vy = ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_MPM] - f[DIR_PMP])) + ((f[DIR_MPP] - f[DIR_PMM]) + (f[DIR_PPM] - f[DIR_MMP]))) + + (((f[DIR_0PM] - f[DIR_0MP]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_MP0] - f[DIR_PM0]) + (f[NE] - f[DIR_MM0]))) + (f[N] - f[S])); - vz = ((((f[TNE] - f[BSW]) + (f[TSE] - f[BNW])) + ((f[TNW] - f[BSE]) + (f[TSW] - f[BNE]))) + - (((f[TS] - f[BN]) + (f[TN] - f[BS])) + ((f[TW] - f[BE]) + (f[TE] - f[BW]))) + (f[T] - f[B])); + vz = ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_PMP] - f[DIR_MPM])) + ((f[DIR_MPP] - f[DIR_PMM]) + (f[DIR_MMP] - f[DIR_PPM]))) + + (((f[DIR_0MP] - f[DIR_0PM]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_M0P] - f[DIR_P0M]) + (f[DIR_P0P] - f[DIR_M0M]))) + (f[T] - f[B])); sxy = 3.0 * collFactor / (collFactor - 1.0) * - (((f[TNE] + f[BSW]) - (f[TSE] + f[BNW])) + (-(f[BSE] + f[TNW]) + (f[TSW] + f[BNE])) + - (((f[NE] + f[SW]) - (f[SE] + f[NW]))) - vx * vy); + (((f[DIR_PPP] + f[DIR_MMM]) - (f[DIR_PMP] + f[DIR_MPM])) + (-(f[DIR_PMM] + f[DIR_MPP]) + (f[DIR_MMP] + f[DIR_PPM])) + + (((f[NE] + f[DIR_MM0]) - (f[DIR_PM0] + f[DIR_MP0]))) - vx * vy); sxz = 3.0 * collFactor / (collFactor - 1.0) * - (((f[TNE] + f[BSW]) + (f[TSE] + f[BNW])) + (-(f[BSE] + f[TNW]) - (f[TSW] + f[BNE])) + - ((f[TE] + f[BW]) - (f[BE] + f[TW])) - vx * vz); + (((f[DIR_PPP] + f[DIR_MMM]) + (f[DIR_PMP] + f[DIR_MPM])) + (-(f[DIR_PMM] + f[DIR_MPP]) - (f[DIR_MMP] + f[DIR_PPM])) + + ((f[DIR_P0P] + f[DIR_M0M]) - (f[DIR_P0M] + f[DIR_M0P])) - vx * vz); syz = 3.0 * collFactor / (collFactor - 1.0) * - (((f[TNE] + f[BSW]) - (f[TSE] + f[BNW])) + ((f[BSE] + f[TNW]) - (f[TSW] + f[BNE])) + - (-(f[BN] + f[TS]) + (f[TN] + f[BS])) - vy * vz); + (((f[DIR_PPP] + f[DIR_MMM]) - (f[DIR_PMP] + f[DIR_MPM])) + ((f[DIR_PMM] + f[DIR_MPP]) - (f[DIR_MMP] + f[DIR_PPM])) + + (-(f[DIR_0PM] + f[DIR_0MP]) + (f[DIR_0PP] + f[DIR_0MM])) - vy * vz); LBMReal dxxMyy = 3.0 / 2.0 * collFactor / (collFactor - 1.0) * - (((f[TE] + f[BW]) + (f[BE] + f[TW])) - ((f[BN] + f[TS]) + (f[TN] + f[BS])) + - ((f[E] + f[W]) - (f[N] + f[S])) - vx * vx + vy * vy); + (((f[DIR_P0P] + f[DIR_M0M]) + (f[DIR_P0M] + f[DIR_M0P])) - ((f[DIR_0PM] + f[DIR_0MP]) + (f[DIR_0PP] + f[DIR_0MM])) + + ((f[DIR_P00] + f[W]) - (f[N] + f[S])) - vx * vx + vy * vy); LBMReal dxxMzz = 3.0 / 2.0 * collFactor / (collFactor - 1.0) * - ((((f[NE] + f[SW]) + (f[SE] + f[NW])) - ((f[BN] + f[TS]) + (f[TN] + f[BS]))) + - ((f[E] + f[W]) - (f[T] + f[B])) - vx * vx + vz * vz); + ((((f[NE] + f[DIR_MM0]) + (f[DIR_PM0] + f[DIR_MP0])) - ((f[DIR_0PM] + f[DIR_0MP]) + (f[DIR_0PP] + f[DIR_0MM]))) + + ((f[DIR_P00] + f[W]) - (f[T] + f[B])) - vx * vx + vz * vz); // LBMReal dyyMzz =3.0/2.0 *collFactor/(collFactor-1.0)*((((f[NE] + f[SW]) + (f[SE] + // f[NW]))-((f[TE] + f[BW])+(f[BE]+ f[TW]))) @@ -562,32 +562,32 @@ void ShearStressCoProcessor::findPlane(int ix1, int ix2, int ix3, SPtr<Grid3D> g "ix2=" + UbSystem::toString(ix2) + "ix3=" + UbSystem::toString(ix3) + "GlobalID=" + UbSystem::toString(block->getGlobalID()) + "dx=" + UbSystem::toString(dx) + - "T=" + UbSystem::toString(bcPtr->getQ(D3Q27System::T)) + - "B=" + UbSystem::toString(bcPtr->getQ(D3Q27System::B)) + - "E=" + UbSystem::toString(bcPtr->getQ(D3Q27System::E)) + - "W=" + UbSystem::toString(bcPtr->getQ(D3Q27System::W)) + - "N=" + UbSystem::toString(bcPtr->getQ(D3Q27System::N)) + - "S=" + UbSystem::toString(bcPtr->getQ(D3Q27System::S)) + - "NE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::NE)) + - "SW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::SW)) + - "SE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::SE)) + - "NW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::NW)) + - "TE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TE)) + - "BW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BW)) + - "BE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BE)) + - "TW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TW)) + - "TN=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TN)) + - "BS=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BS)) + - "BN=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BN)) + - "TS=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TS)) + - "TNE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TNE)) + - "TNW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TNW)) + - "TSE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TSE)) + - "TSW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TSW)) + - "BNE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BNE)) + - "BNW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BNW)) + - "BSE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BSE)) + - "BSW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BSW) * dx))); + "T=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_00P)) + + "B=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_00M)) + + "E=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_P00)) + + "W=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_M00)) + + "N=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_0P0)) + + "S=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_0M0)) + + "NE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_PP0)) + + "SW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_MM0)) + + "SE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_PM0)) + + "NW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_MP0)) + + "TE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_P0P)) + + "BW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_M0M)) + + "BE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_P0M)) + + "TW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_M0P)) + + "TN=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_0PP)) + + "BS=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_0MM)) + + "BN=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_0PM)) + + "TS=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_0MP)) + + "TNE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_PPP)) + + "TNW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_MPP)) + + "TSE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_PMP)) + + "TSW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_MMP)) + + "BNE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_PPM)) + + "BNW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_MPM)) + + "BSE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_PMM)) + + "BSW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_MMM) * dx))); } } @@ -608,7 +608,7 @@ void ShearStressCoProcessor::findPlane(int ix1, int ix2, int ix3, SPtr<Grid3D> g if (ii <= 2) { LBMReal q = bcPtrIn->getQ(fdir); if (q != 999.00000) { - if (fdir == D3Q27System::E) { + if (fdir == D3Q27System::DIR_P00) { // if(!bcArray->isSolid(i, j, k))continue; if (i + q <= x + 1) { if (ii == 0) { @@ -634,7 +634,7 @@ void ShearStressCoProcessor::findPlane(int ix1, int ix2, int ix3, SPtr<Grid3D> g } } } - if (fdir == D3Q27System::W) { + if (fdir == D3Q27System::DIR_M00) { // if(!bcArray->isSolid(i, j, k))continue; if (i - q >= x) { if (ii == 0) { @@ -660,7 +660,7 @@ void ShearStressCoProcessor::findPlane(int ix1, int ix2, int ix3, SPtr<Grid3D> g } } } - if (fdir == D3Q27System::N) { + if (fdir == D3Q27System::DIR_0P0) { // if(!bcArray->isSolid(i, j, k))continue; if (j + q <= y + 1) { if (ii == 0) { @@ -686,7 +686,7 @@ void ShearStressCoProcessor::findPlane(int ix1, int ix2, int ix3, SPtr<Grid3D> g } } } - if (fdir == D3Q27System::S) { + if (fdir == D3Q27System::DIR_0M0) { // if(!bcArray->isSolid(i, j, k))continue; if (j - q >= y) { if (ii == 0) { @@ -713,7 +713,7 @@ void ShearStressCoProcessor::findPlane(int ix1, int ix2, int ix3, SPtr<Grid3D> g } } - if (fdir == D3Q27System::T) { + if (fdir == D3Q27System::DIR_00P) { // if(!bcArray->isSolid(i, j, k))continue; if (k + q <= z + 1) { if (ii == 0) { @@ -739,7 +739,7 @@ void ShearStressCoProcessor::findPlane(int ix1, int ix2, int ix3, SPtr<Grid3D> g } } } - if (fdir == D3Q27System::B) { + if (fdir == D3Q27System::DIR_00M) { // if(!bcArray->isSolid(i, j, k))continue; if (k - q >= z) { if (ii == 0) { @@ -788,32 +788,32 @@ void ShearStressCoProcessor::findPlane(int ix1, int ix2, int ix3, SPtr<Grid3D> g UB_EXARGS, "ii is=" + UbSystem::toString(ii) + " ix1=" + UbSystem::toString(ix1) + " ix2=" + UbSystem::toString(ix2) + " ix3=" + UbSystem::toString(ix3) + " Block3D::GlobalID=" + UbSystem::toString(block->getGlobalID()) + " dx=" + - UbSystem::toString(dx) + " T=" + UbSystem::toString(bcPtr->getQ(D3Q27System::T)) + - " B=" + UbSystem::toString(bcPtr->getQ(D3Q27System::B)) + - " E=" + UbSystem::toString(bcPtr->getQ(D3Q27System::E)) + - " W=" + UbSystem::toString(bcPtr->getQ(D3Q27System::W)) + - " N=" + UbSystem::toString(bcPtr->getQ(D3Q27System::N)) + - " S=" + UbSystem::toString(bcPtr->getQ(D3Q27System::S)) + - " NE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::NE)) + - " SW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::SW)) + - " SE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::SE)) + - " NW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::NW)) + - " TE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TE)) + - " BW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BW)) + - " BE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BE)) + - " TW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TW)) + - " TN=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TN)) + - " BS=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BS)) + - " BN=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BN)) + - " TS=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TS)) + - " TNE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TNE)) + - " TNW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TNW)) + - " TSE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TSE)) + - " TSW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::TSW)) + - " BNE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BNE)) + - " BNW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BNW)) + - " BSE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BSE)) + - " BSW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::BSW)))); + UbSystem::toString(dx) + " T=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_00P)) + + " B=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_00M)) + + " E=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_P00)) + + " W=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_M00)) + + " N=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_0P0)) + + " S=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_0M0)) + + " NE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_PP0)) + + " SW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_MM0)) + + " SE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_PM0)) + + " NW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_MP0)) + + " TE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_P0P)) + + " BW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_M0M)) + + " BE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_P0M)) + + " TW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_M0P)) + + " TN=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_0PP)) + + " BS=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_0MM)) + + " BN=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_0PM)) + + " TS=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_0MP)) + + " TNE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_PPP)) + + " TNW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_MPP)) + + " TSE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_PMP)) + + " TSW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_MMP)) + + " BNE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_PPM)) + + " BNW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_MPM)) + + " BSE=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_PMM)) + + " BSW=" + UbSystem::toString(bcPtr->getQ(D3Q27System::DIR_MMM)))); } } } @@ -876,22 +876,22 @@ void ShearStressCoProcessor::initDistance() continue; int numberOfCorner = 0; - if (bc->getQ(D3Q27System::T) != 999.000) { + if (bc->getQ(D3Q27System::DIR_00P) != 999.000) { numberOfCorner++; } - if (bc->getQ(D3Q27System::B) != 999.000) { + if (bc->getQ(D3Q27System::DIR_00M) != 999.000) { numberOfCorner++; } - if (bc->getQ(D3Q27System::E) != 999.000) { + if (bc->getQ(D3Q27System::DIR_P00) != 999.000) { numberOfCorner++; } - if (bc->getQ(D3Q27System::W) != 999.000) { + if (bc->getQ(D3Q27System::DIR_M00) != 999.000) { numberOfCorner++; } - if (bc->getQ(D3Q27System::N) != 999.000) { + if (bc->getQ(D3Q27System::DIR_0P0) != 999.000) { numberOfCorner++; } - if (bc->getQ(D3Q27System::S) != 999.000) { + if (bc->getQ(D3Q27System::DIR_0M0) != 999.000) { numberOfCorner++; } // if(bc->hasVelocityBoundary()||bc->hasDensityBoundary())continue; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp index 51be3b53a9a3bc123b15e03d0925bd619fb01fa3..5de46c899232510daf0c63e43954eca29e8b5db6 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp @@ -215,14 +215,14 @@ void TurbulenceIntensityCoProcessor::calculateAverageValues(double timeStep) ////////////////////////////////////////////////////////////////////////// // compute velocity ////////////////////////////////////////////////////////////////////////// - vx = f[E] - f[W] + f[NE] - f[SW] + f[SE] - f[NW] + f[TE] - f[BW] + f[BE] - f[TW] + - f[TNE] - f[TSW] + f[TSE] - f[TNW] + f[BNE] - f[BSW] + f[BSE] - f[BNW]; + vx = f[DIR_P00] - f[W] + f[NE] - f[DIR_MM0] + f[DIR_PM0] - f[DIR_MP0] + f[DIR_P0P] - f[DIR_M0M] + f[DIR_P0M] - f[DIR_M0P] + + f[DIR_PPP] - f[DIR_MMP] + f[DIR_PMP] - f[DIR_MPP] + f[DIR_PPM] - f[DIR_MMM] + f[DIR_PMM] - f[DIR_MPM]; - vy = f[N] - f[S] + f[NE] - f[SW] - f[SE] + f[NW] + f[TN] - f[BS] + f[BN] - f[TS] + - f[TNE] - f[TSW] - f[TSE] + f[TNW] + f[BNE] - f[BSW] - f[BSE] + f[BNW]; + vy = f[N] - f[S] + f[NE] - f[DIR_MM0] - f[DIR_PM0] + f[DIR_MP0] + f[DIR_0PP] - f[DIR_0MM] + f[DIR_0PM] - f[DIR_0MP] + + f[DIR_PPP] - f[DIR_MMP] - f[DIR_PMP] + f[DIR_MPP] + f[DIR_PPM] - f[DIR_MMM] - f[DIR_PMM] + f[DIR_MPM]; - vz = f[T] - f[B] + f[TE] - f[BW] - f[BE] + f[TW] + f[TN] - f[BS] - f[BN] + f[TS] + - f[TNE] + f[TSW] + f[TSE] + f[TNW] - f[BNE] - f[BSW] - f[BSE] - f[BNW]; + vz = f[T] - f[B] + f[DIR_P0P] - f[DIR_M0M] - f[DIR_P0M] + f[DIR_M0P] + f[DIR_0PP] - f[DIR_0MM] - f[DIR_0PM] + f[DIR_0MP] + + f[DIR_PPP] + f[DIR_MMP] + f[DIR_PMP] + f[DIR_MPP] - f[DIR_PPM] - f[DIR_MMM] - f[DIR_PMM] - f[DIR_MPM]; ////////////////////////////////////////////////////////////////////////// // compute average values ////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp index 536d2ee133517279aa2458d06aea8edcee1dd20f..523ae4ffb0ac78143e071054d8804f67bd2e12d6 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp @@ -123,7 +123,7 @@ void WriteBlocksCoProcessor::collectData(double step) // for (std::size_t i = 0; i<connectors.size(); i++) // if (connectors[i]) // { - // if (connectors[i]->getSendDir() == D3Q27System::BS) + // if (connectors[i]->getSendDir() == D3Q27System::DIR_0MM) // { // flag = true; @@ -146,7 +146,7 @@ void WriteBlocksCoProcessor::collectData(double step) // for (std::size_t i = 0; i<connectors.size(); i++) // if (connectors[i]) // { - // if (connectors[i]->getSendDir() == D3Q27System::BS) + // if (connectors[i]->getSendDir() == D3Q27System::DIR_0MM) // { // flag = true; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp index c0d88a853b0a739ee1fc0529273d9dec26fd2232..73bc94c73afa6a9ce8f5998b376e1cb2bdd0cf04 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp @@ -225,17 +225,17 @@ void WriteMultiphaseQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) if (!bcArray->isUndefined(ix1, ix2, ix3) && !bcArray->isSolid(ix1, ix2, ix3)) { distributionsH->getDistribution(f, ix1, ix2, ix3); (*phaseField)(ix1, ix2, ix3) = - ((f[TNE] + f[BSW]) + (f[TSE] + f[BNW])) + ((f[BSE] + f[TNW]) + (f[TSW] + f[BNE])) + - (((f[NE] + f[SW]) + (f[SE] + f[NW])) + ((f[TE] + f[BW]) + (f[BE] + f[TW])) + - ((f[BN] + f[TS]) + (f[TN] + f[BS]))) + - ((f[E] + f[W]) + (f[N] + f[S]) + (f[T] + f[B])) + f[DIR_000]; + ((f[DIR_PPP] + f[DIR_MMM]) + (f[DIR_PMP] + f[DIR_MPM])) + ((f[DIR_PMM] + f[DIR_MPP]) + (f[DIR_MMP] + f[DIR_PPM])) + + (((f[NE] + f[DIR_MM0]) + (f[DIR_PM0] + f[DIR_MP0])) + ((f[DIR_P0P] + f[DIR_M0M]) + (f[DIR_P0M] + f[DIR_M0P])) + + ((f[DIR_0PM] + f[DIR_0MP]) + (f[DIR_0PP] + f[DIR_0MM]))) + + ((f[DIR_P00] + f[W]) + (f[N] + f[S]) + (f[T] + f[B])) + f[DIR_000]; if (distributionsH2) { distributionsH2->getDistribution(f, ix1, ix2, ix3); (*phaseField2)(ix1, ix2, ix3) = - ((f[TNE] + f[BSW]) + (f[TSE] + f[BNW])) + ((f[BSE] + f[TNW]) + (f[TSW] + f[BNE])) + - (((f[NE] + f[SW]) + (f[SE] + f[NW])) + ((f[TE] + f[BW]) + (f[BE] + f[TW])) + - ((f[BN] + f[TS]) + (f[TN] + f[BS]))) + - ((f[E] + f[W]) + (f[N] + f[S]) + (f[T] + f[B])) + f[DIR_000]; + ((f[DIR_PPP] + f[DIR_MMM]) + (f[DIR_PMP] + f[DIR_MPM])) + ((f[DIR_PMM] + f[DIR_MPP]) + (f[DIR_MMP] + f[DIR_PPM])) + + (((f[NE] + f[DIR_MM0]) + (f[DIR_PM0] + f[DIR_MP0])) + ((f[DIR_P0P] + f[DIR_M0M]) + (f[DIR_P0M] + f[DIR_M0P])) + + ((f[DIR_0PM] + f[DIR_0MP]) + (f[DIR_0PP] + f[DIR_0MM]))) + + ((f[DIR_P00] + f[W]) + (f[N] + f[S]) + (f[T] + f[B])) + f[DIR_000]; } else { (*phaseField2)(ix1, ix2, ix3) = 999.0; } @@ -285,38 +285,38 @@ void WriteMultiphaseQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) // vx2 = 0.0; // vx3 = 0.0; } else { - phi[E] = (*phaseField)(ix1 + DX1[E], ix2 + DX2[E], ix3 + DX3[E]); + phi[DIR_P00] = (*phaseField)(ix1 + DX1[DIR_P00], ix2 + DX2[DIR_P00], ix3 + DX3[DIR_P00]); phi[N] = (*phaseField)(ix1 + DX1[N], ix2 + DX2[N], ix3 + DX3[N]); phi[T] = (*phaseField)(ix1 + DX1[T], ix2 + DX2[T], ix3 + DX3[T]); phi[W] = (*phaseField)(ix1 + DX1[W], ix2 + DX2[W], ix3 + DX3[W]); phi[S] = (*phaseField)(ix1 + DX1[S], ix2 + DX2[S], ix3 + DX3[S]); phi[B] = (*phaseField)(ix1 + DX1[B], ix2 + DX2[B], ix3 + DX3[B]); phi[NE] = (*phaseField)(ix1 + DX1[NE], ix2 + DX2[NE], ix3 + DX3[NE]); - phi[NW] = (*phaseField)(ix1 + DX1[NW], ix2 + DX2[NW], ix3 + DX3[NW]); - phi[TE] = (*phaseField)(ix1 + DX1[TE], ix2 + DX2[TE], ix3 + DX3[TE]); - phi[TW] = (*phaseField)(ix1 + DX1[TW], ix2 + DX2[TW], ix3 + DX3[TW]); - phi[TN] = (*phaseField)(ix1 + DX1[TN], ix2 + DX2[TN], ix3 + DX3[TN]); - phi[TS] = (*phaseField)(ix1 + DX1[TS], ix2 + DX2[TS], ix3 + DX3[TS]); - phi[SW] = (*phaseField)(ix1 + DX1[SW], ix2 + DX2[SW], ix3 + DX3[SW]); - phi[SE] = (*phaseField)(ix1 + DX1[SE], ix2 + DX2[SE], ix3 + DX3[SE]); - phi[BW] = (*phaseField)(ix1 + DX1[BW], ix2 + DX2[BW], ix3 + DX3[BW]); - phi[BE] = (*phaseField)(ix1 + DX1[BE], ix2 + DX2[BE], ix3 + DX3[BE]); - phi[BS] = (*phaseField)(ix1 + DX1[BS], ix2 + DX2[BS], ix3 + DX3[BS]); - phi[BN] = (*phaseField)(ix1 + DX1[BN], ix2 + DX2[BN], ix3 + DX3[BN]); - phi[BSW] = (*phaseField)(ix1 + DX1[BSW], ix2 + DX2[BSW], ix3 + DX3[BSW]); - phi[BSE] = (*phaseField)(ix1 + DX1[BSE], ix2 + DX2[BSE], ix3 + DX3[BSE]); - phi[BNW] = (*phaseField)(ix1 + DX1[BNW], ix2 + DX2[BNW], ix3 + DX3[BNW]); - phi[BNE] = (*phaseField)(ix1 + DX1[BNE], ix2 + DX2[BNE], ix3 + DX3[BNE]); - phi[TNE] = (*phaseField)(ix1 + DX1[TNE], ix2 + DX2[TNE], ix3 + DX3[TNE]); - phi[TNW] = (*phaseField)(ix1 + DX1[TNW], ix2 + DX2[TNW], ix3 + DX3[TNW]); - phi[TSE] = (*phaseField)(ix1 + DX1[TSE], ix2 + DX2[TSE], ix3 + DX3[TSE]); - phi[TSW] = (*phaseField)(ix1 + DX1[TSW], ix2 + DX2[TSW], ix3 + DX3[TSW]); + phi[DIR_MP0] = (*phaseField)(ix1 + DX1[DIR_MP0], ix2 + DX2[DIR_MP0], ix3 + DX3[DIR_MP0]); + phi[DIR_P0P] = (*phaseField)(ix1 + DX1[DIR_P0P], ix2 + DX2[DIR_P0P], ix3 + DX3[DIR_P0P]); + phi[DIR_M0P] = (*phaseField)(ix1 + DX1[DIR_M0P], ix2 + DX2[DIR_M0P], ix3 + DX3[DIR_M0P]); + phi[DIR_0PP] = (*phaseField)(ix1 + DX1[DIR_0PP], ix2 + DX2[DIR_0PP], ix3 + DX3[DIR_0PP]); + phi[DIR_0MP] = (*phaseField)(ix1 + DX1[DIR_0MP], ix2 + DX2[DIR_0MP], ix3 + DX3[DIR_0MP]); + phi[DIR_MM0] = (*phaseField)(ix1 + DX1[DIR_MM0], ix2 + DX2[DIR_MM0], ix3 + DX3[DIR_MM0]); + phi[DIR_PM0] = (*phaseField)(ix1 + DX1[DIR_PM0], ix2 + DX2[DIR_PM0], ix3 + DX3[DIR_PM0]); + phi[DIR_M0M] = (*phaseField)(ix1 + DX1[DIR_M0M], ix2 + DX2[DIR_M0M], ix3 + DX3[DIR_M0M]); + phi[DIR_P0M] = (*phaseField)(ix1 + DX1[DIR_P0M], ix2 + DX2[DIR_P0M], ix3 + DX3[DIR_P0M]); + phi[DIR_0MM] = (*phaseField)(ix1 + DX1[DIR_0MM], ix2 + DX2[DIR_0MM], ix3 + DX3[DIR_0MM]); + phi[DIR_0PM] = (*phaseField)(ix1 + DX1[DIR_0PM], ix2 + DX2[DIR_0PM], ix3 + DX3[DIR_0PM]); + phi[DIR_MMM] = (*phaseField)(ix1 + DX1[DIR_MMM], ix2 + DX2[DIR_MMM], ix3 + DX3[DIR_MMM]); + phi[DIR_PMM] = (*phaseField)(ix1 + DX1[DIR_PMM], ix2 + DX2[DIR_PMM], ix3 + DX3[DIR_PMM]); + phi[DIR_MPM] = (*phaseField)(ix1 + DX1[DIR_MPM], ix2 + DX2[DIR_MPM], ix3 + DX3[DIR_MPM]); + phi[DIR_PPM] = (*phaseField)(ix1 + DX1[DIR_PPM], ix2 + DX2[DIR_PPM], ix3 + DX3[DIR_PPM]); + phi[DIR_PPP] = (*phaseField)(ix1 + DX1[DIR_PPP], ix2 + DX2[DIR_PPP], ix3 + DX3[DIR_PPP]); + phi[DIR_MPP] = (*phaseField)(ix1 + DX1[DIR_MPP], ix2 + DX2[DIR_MPP], ix3 + DX3[DIR_MPP]); + phi[DIR_PMP] = (*phaseField)(ix1 + DX1[DIR_PMP], ix2 + DX2[DIR_PMP], ix3 + DX3[DIR_PMP]); + phi[DIR_MMP] = (*phaseField)(ix1 + DX1[DIR_MMP], ix2 + DX2[DIR_MMP], ix3 + DX3[DIR_MMP]); dX1_phi = 0.0 * gradX1_phi(phi); dX2_phi = 0.0 * gradX2_phi(phi); dX3_phi = 0.0 * gradX3_phi(phi); mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(phi); - //phi2[E] = (*phaseField2)(ix1 + DX1[E], ix2 + DX2[E], ix3 + DX3[E]); + //phi2[DIR_P00] = (*phaseField2)(ix1 + DX1[DIR_P00], ix2 + DX2[DIR_P00], ix3 + DX3[DIR_P00]); //phi2[N] = (*phaseField2)(ix1 + DX1[N], ix2 + DX2[N], ix3 + DX3[N]); //phi2[T] = (*phaseField2)(ix1 + DX1[T], ix2 + DX2[T], ix3 + DX3[T]); //phi2[W] = (*phaseField2)(ix1 + DX1[W], ix2 + DX2[W], ix3 + DX3[W]); @@ -362,43 +362,43 @@ void WriteMultiphaseQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) if (pressure) { vx1 = - ((((f[TNE] - f[BSW]) + (f[TSE] - f[BNW])) + ((f[BSE] - f[TNW]) + (f[BNE] - f[TSW]))) + - (((f[BE] - f[TW]) + (f[TE] - f[BW])) + ((f[SE] - f[NW]) + (f[NE] - f[SW]))) + (f[E] - f[W])) ; + ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_PMP] - f[DIR_MPM])) + ((f[DIR_PMM] - f[DIR_MPP]) + (f[DIR_PPM] - f[DIR_MMP]))) + + (((f[DIR_P0M] - f[DIR_M0P]) + (f[DIR_P0P] - f[DIR_M0M])) + ((f[DIR_PM0] - f[DIR_MP0]) + (f[NE] - f[DIR_MM0]))) + (f[DIR_P00] - f[W])) ; vx2 = - ((((f[TNE] - f[BSW]) + (f[BNW] - f[TSE])) + ((f[TNW] - f[BSE]) + (f[BNE] - f[TSW]))) + - (((f[BN] - f[TS]) + (f[TN] - f[BS])) + ((f[NW] - f[SE]) + (f[NE] - f[SW]))) + (f[N] - f[S])) ; + ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_MPM] - f[DIR_PMP])) + ((f[DIR_MPP] - f[DIR_PMM]) + (f[DIR_PPM] - f[DIR_MMP]))) + + (((f[DIR_0PM] - f[DIR_0MP]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_MP0] - f[DIR_PM0]) + (f[NE] - f[DIR_MM0]))) + (f[N] - f[S])) ; vx3 = - ((((f[TNE] - f[BSW]) + (f[TSE] - f[BNW])) + ((f[TNW] - f[BSE]) + (f[TSW] - f[BNE]))) + - (((f[TS] - f[BN]) + (f[TN] - f[BS])) + ((f[TW] - f[BE]) + (f[TE] - f[BW]))) + (f[T] - f[B])); + ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_PMP] - f[DIR_MPM])) + ((f[DIR_MPP] - f[DIR_PMM]) + (f[DIR_MMP] - f[DIR_PPM]))) + + (((f[DIR_0MP] - f[DIR_0PM]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_M0P] - f[DIR_P0M]) + (f[DIR_P0P] - f[DIR_M0M]))) + (f[T] - f[B])); } else { vx1 = - ((((f[TNE] - f[BSW]) + (f[TSE] - f[BNW])) + ((f[BSE] - f[TNW]) + (f[BNE] - f[TSW]))) + - (((f[BE] - f[TW]) + (f[TE] - f[BW])) + ((f[SE] - f[NW]) + (f[NE] - f[SW]))) + (f[E] - f[W])) / + ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_PMP] - f[DIR_MPM])) + ((f[DIR_PMM] - f[DIR_MPP]) + (f[DIR_PPM] - f[DIR_MMP]))) + + (((f[DIR_P0M] - f[DIR_M0P]) + (f[DIR_P0P] - f[DIR_M0M])) + ((f[DIR_PM0] - f[DIR_MP0]) + (f[NE] - f[DIR_MM0]))) + (f[DIR_P00] - f[W])) / (rho * c1o3) + mu * dX1_phi / (2 * rho); vx2 = - ((((f[TNE] - f[BSW]) + (f[BNW] - f[TSE])) + ((f[TNW] - f[BSE]) + (f[BNE] - f[TSW]))) + - (((f[BN] - f[TS]) + (f[TN] - f[BS])) + ((f[NW] - f[SE]) + (f[NE] - f[SW]))) + (f[N] - f[S])) / + ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_MPM] - f[DIR_PMP])) + ((f[DIR_MPP] - f[DIR_PMM]) + (f[DIR_PPM] - f[DIR_MMP]))) + + (((f[DIR_0PM] - f[DIR_0MP]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_MP0] - f[DIR_PM0]) + (f[NE] - f[DIR_MM0]))) + (f[N] - f[S])) / (rho * c1o3) + mu * dX2_phi / (2 * rho); vx3 = - ((((f[TNE] - f[BSW]) + (f[TSE] - f[BNW])) + ((f[TNW] - f[BSE]) + (f[TSW] - f[BNE]))) + - (((f[TS] - f[BN]) + (f[TN] - f[BS])) + ((f[TW] - f[BE]) + (f[TE] - f[BW]))) + (f[T] - f[B])) / + ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_PMP] - f[DIR_MPM])) + ((f[DIR_MPP] - f[DIR_PMM]) + (f[DIR_MMP] - f[DIR_PPM]))) + + (((f[DIR_0MP] - f[DIR_0PM]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_M0P] - f[DIR_P0M]) + (f[DIR_P0P] - f[DIR_M0M]))) + (f[T] - f[B])) / (rho * c1o3) + mu * dX3_phi / (2 * rho); } - p1 = (((f[TNE] + f[BSW]) + (f[TSE] + f[BNW])) + ((f[BSE] + f[TNW]) + (f[TSW] + f[BNE])) + - (((f[NE] + f[SW]) + (f[SE] + f[NW])) + ((f[TE] + f[BW]) + (f[BE] + f[TW])) + - ((f[BN] + f[TS]) + (f[TN] + f[BS]))) + - ((f[E] + f[W]) + (f[N] + f[S]) + (f[T] + f[B])) + f[DIR_000]) + + p1 = (((f[DIR_PPP] + f[DIR_MMM]) + (f[DIR_PMP] + f[DIR_MPM])) + ((f[DIR_PMM] + f[DIR_MPP]) + (f[DIR_MMP] + f[DIR_PPM])) + + (((f[NE] + f[DIR_MM0]) + (f[DIR_PM0] + f[DIR_MP0])) + ((f[DIR_P0P] + f[DIR_M0M]) + (f[DIR_P0M] + f[DIR_M0P])) + + ((f[DIR_0PM] + f[DIR_0MP]) + (f[DIR_0PP] + f[DIR_0MM]))) + + ((f[DIR_P00] + f[W]) + (f[N] + f[S]) + (f[T] + f[B])) + f[DIR_000]) + (vx1 * rhoToPhi * dX1_phi * c1o3 + vx2 * rhoToPhi * dX2_phi * c1o3 + vx3 * rhoToPhi * dX3_phi * c1o3) / 2.0; diff --git a/src/cpu/VirtualFluidsCore/Connectors/CoarseToFineVectorConnector.h b/src/cpu/VirtualFluidsCore/Connectors/CoarseToFineVectorConnector.h index 7c5c4f136fc814bec2c9d782e7502668c785ab42..00ba4c4e915530a4678b7271b8f78648f267cd96 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/CoarseToFineVectorConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/CoarseToFineVectorConnector.h @@ -156,15 +156,15 @@ CoarseToFineVectorConnector<VectorTransmitter>::CoarseToFineVectorConnector( receiverEvenOddNW(receiverEvenOddNW), receiverOddEvenSE(receiverOddEvenSE), receiverOddOddNE(receiverOddOddNE), iprocessor(iprocessor) { - if (!(sendDir == D3Q27System::E || sendDir == D3Q27System::W || sendDir == D3Q27System::N || - sendDir == D3Q27System::S || sendDir == D3Q27System::T || sendDir == D3Q27System::B || - sendDir == D3Q27System::NE || sendDir == D3Q27System::SW || sendDir == D3Q27System::SE || - sendDir == D3Q27System::NW || sendDir == D3Q27System::TE || sendDir == D3Q27System::BW || - sendDir == D3Q27System::BE || sendDir == D3Q27System::TW || sendDir == D3Q27System::TN || - sendDir == D3Q27System::BS || sendDir == D3Q27System::BN || sendDir == D3Q27System::TS || - sendDir == D3Q27System::TNE || sendDir == D3Q27System::TNW || sendDir == D3Q27System::TSE || - sendDir == D3Q27System::TSW || sendDir == D3Q27System::BNE || sendDir == D3Q27System::BNW || - sendDir == D3Q27System::BSE || sendDir == D3Q27System::BSW)) { + if (!(sendDir == D3Q27System::DIR_P00 || sendDir == D3Q27System::DIR_M00 || sendDir == D3Q27System::DIR_0P0 || + sendDir == D3Q27System::DIR_0M0 || sendDir == D3Q27System::DIR_00P || sendDir == D3Q27System::DIR_00M || + sendDir == D3Q27System::DIR_PP0 || sendDir == D3Q27System::DIR_MM0 || sendDir == D3Q27System::DIR_PM0 || + sendDir == D3Q27System::DIR_MP0 || sendDir == D3Q27System::DIR_P0P || sendDir == D3Q27System::DIR_M0M || + sendDir == D3Q27System::DIR_P0M || sendDir == D3Q27System::DIR_M0P || sendDir == D3Q27System::DIR_0PP || + sendDir == D3Q27System::DIR_0MM || sendDir == D3Q27System::DIR_0PM || sendDir == D3Q27System::DIR_0MP || + sendDir == D3Q27System::DIR_PPP || sendDir == D3Q27System::DIR_MPP || sendDir == D3Q27System::DIR_PMP || + sendDir == D3Q27System::DIR_MMP || sendDir == D3Q27System::DIR_PPM || sendDir == D3Q27System::DIR_MPM || + sendDir == D3Q27System::DIR_PMM || sendDir == D3Q27System::DIR_MMM)) { throw UbException(UB_EXARGS, "invalid constructor for this direction"); } } @@ -310,44 +310,44 @@ void CoarseToFineVectorConnector<VectorTransmitter>::init() int iCellSize = 8; // size of interpolation cell switch (this->sendDir) { - case E: - case W: + case DIR_P00: + case DIR_M00: sendSize = bMaxX2 * bMaxX3 * sendDataPerNode * iCellSize; break; - case N: - case S: + case DIR_0P0: + case DIR_0M0: sendSize = bMaxX1 * bMaxX3 * sendDataPerNode * iCellSize; break; - case T: - case B: + case DIR_00P: + case DIR_00M: sendSize = bMaxX1 * bMaxX2 * sendDataPerNode * iCellSize; break; - case NE: - case SW: - case SE: - case NW: + case DIR_PP0: + case DIR_MM0: + case DIR_PM0: + case DIR_MP0: sendSize = 2 * bMaxX3 * sendDataPerNode * iCellSize; break; - case TE: - case BW: - case BE: - case TW: + case DIR_P0P: + case DIR_M0M: + case DIR_P0M: + case DIR_M0P: sendSize = 2 * bMaxX2 * sendDataPerNode * iCellSize; break; - case TN: - case BS: - case BN: - case TS: + case DIR_0PP: + case DIR_0MM: + case DIR_0PM: + case DIR_0MP: sendSize = 2 * bMaxX1 * sendDataPerNode * iCellSize; break; - case TNE: - case TNW: - case TSE: - case TSW: - case BNE: - case BNW: - case BSE: - case BSW: + case DIR_PPP: + case DIR_MPP: + case DIR_PMP: + case DIR_MMP: + case DIR_PPM: + case DIR_MPM: + case DIR_PMM: + case DIR_MMM: sendSize = 6 * bMaxX1 * sendDataPerNode * iCellSize; break; default: @@ -408,7 +408,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() int lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3; switch (sendDir) { - case E: + case DIR_P00: lMinX1 = maxX1 - 3; lMaxX1 = lMinX1 + 1; @@ -428,7 +428,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() getLocalMinMax(minX3, maxX3, false, lMinX3, lMaxX3, false); fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); break; - case W: + case DIR_M00: lMinX1 = 1; lMaxX1 = lMinX1 + 1; @@ -448,7 +448,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() getLocalMinMax(minX3, maxX3, false, lMinX3, lMaxX3, false); fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); break; - case N: + case DIR_0P0: lMinX2 = maxX2 - 3; lMaxX2 = lMinX2 + 1; @@ -468,7 +468,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() getLocalMinMax(minX3, maxX3, false, lMinX3, lMaxX3, false); fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); break; - case S: + case DIR_0M0: lMinX2 = 1; lMaxX2 = lMinX2 + 1; @@ -488,7 +488,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() getLocalMinMax(minX3, maxX3, false, lMinX3, lMaxX3, false); fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); break; - case T: + case DIR_00P: lMinX3 = maxX3 - 3; lMaxX3 = lMinX3 + 1; @@ -508,7 +508,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() getLocalMinMax(minX2, maxX2, false, lMinX2, lMaxX2, false); fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); break; - case B: + case DIR_00M: lMinX3 = 1; lMaxX3 = lMinX3 + 1; @@ -529,7 +529,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); break; /// N-S-E-W - case NE: + case DIR_PP0: lMinX1 = maxX1 - 3; lMaxX1 = lMinX1 + 2; lMinX2 = maxX2 - 3; @@ -543,7 +543,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() break; - case SW: + case DIR_MM0: lMinX1 = 0; lMaxX1 = lMinX1 + 2; lMinX2 = 0; @@ -557,7 +557,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() break; - case SE: + case DIR_PM0: lMinX1 = maxX1 - 3; lMaxX1 = lMinX1 + 2; lMinX2 = 0; @@ -571,7 +571,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() break; - case NW: + case DIR_MP0: lMinX1 = 0; lMaxX1 = lMinX1 + 2; lMinX2 = maxX2 - 3; @@ -585,7 +585,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() break; /////T-B-E-W - case TE: + case DIR_P0P: lMinX1 = maxX1 - 3; lMaxX1 = lMinX1 + 2; lMinX3 = maxX3 - 3; @@ -599,7 +599,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() break; - case BW: + case DIR_M0M: lMinX1 = 0; lMaxX1 = lMinX1 + 2; lMinX3 = 0; @@ -613,7 +613,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() break; - case BE: + case DIR_P0M: lMinX1 = maxX1 - 3; lMaxX1 = lMinX1 + 2; lMinX3 = 0; @@ -627,7 +627,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() break; - case TW: + case DIR_M0P: lMinX1 = 0; lMaxX1 = lMinX1 + 2; lMinX3 = maxX3 - 3; @@ -642,7 +642,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() break; //// /////T-B-N-S - case TN: + case DIR_0PP: lMinX2 = maxX2 - 3; lMaxX2 = lMinX2 + 2; lMinX3 = maxX3 - 3; @@ -656,7 +656,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() break; - case BS: + case DIR_0MM: lMinX2 = 0; lMaxX2 = lMinX2 + 2; lMinX3 = 0; @@ -670,7 +670,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() break; - case BN: + case DIR_0PM: lMinX2 = maxX2 - 3; lMaxX2 = lMinX2 + 2; lMinX3 = 0; @@ -684,7 +684,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() break; - case TS: + case DIR_0MP: lMinX2 = 0; lMaxX2 = lMinX2 + 2; lMinX3 = maxX3 - 3; @@ -699,7 +699,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() break; // TNE - case TNE: + case DIR_PPP: lMinX1 = maxX1 - 3; lMaxX1 = maxX1 - 1; lMinX2 = maxX2 - 3; @@ -710,7 +710,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataEvEv, indexEvEv); break; // TNW - case TNW: + case DIR_MPP: lMinX1 = 0; lMaxX1 = 2; lMinX2 = maxX2 - 3; @@ -721,7 +721,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataEvEv, indexEvEv); break; // TSE - case TSE: + case DIR_PMP: lMinX1 = maxX1 - 3; lMaxX1 = maxX1 - 1; lMinX2 = 0; @@ -732,7 +732,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataEvEv, indexEvEv); break; // TSW - case TSW: + case DIR_MMP: lMinX1 = 0; lMaxX1 = 2; lMinX2 = 0; @@ -743,7 +743,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataEvEv, indexEvEv); break; // BNE - case BNE: + case DIR_PPM: lMinX1 = maxX1 - 3; lMaxX1 = maxX1 - 1; lMinX2 = maxX2 - 3; @@ -754,7 +754,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataEvEv, indexEvEv); break; // BNW - case BNW: + case DIR_MPM: lMinX1 = 0; lMaxX1 = 2; lMinX2 = maxX2 - 3; @@ -765,7 +765,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataEvEv, indexEvEv); break; // BSE - case BSE: + case DIR_PMM: lMinX1 = maxX1 - 3; lMaxX1 = maxX1 - 1; lMinX2 = 0; @@ -776,7 +776,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVectorExt(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataEvEv, indexEvEv); break; // BSW - case BSW: + case DIR_MMM: lMinX1 = 0; lMaxX1 = 2; lMinX2 = 0; @@ -912,7 +912,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() int dummy; switch (sendDir) { - case E: + case DIR_P00: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 1; getLocalMinMax(minX2, maxX2, true, lMinX2, lMaxX2, true); @@ -935,7 +935,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() getLocalMinMax(dummy, dummy, dummy, dummy, lMaxX2, lMaxX3); distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); break; - case W: + case DIR_M00: lMinX1 = 3; lMaxX1 = lMinX1 + 1; getLocalMinMax(minX2, maxX2, true, lMinX2, lMaxX2, true); @@ -958,7 +958,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() getLocalMinMax(dummy, dummy, dummy, dummy, lMaxX2, lMaxX3); distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); break; - case N: + case DIR_0P0: lMinX2 = maxX2 - 4; lMaxX2 = lMinX2 + 1; getLocalMinMax(minX1, maxX1, true, lMinX1, lMaxX1, true); @@ -981,7 +981,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() getLocalMinMax(dummy, dummy, dummy, lMaxX1, dummy, lMaxX3); distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); break; - case S: + case DIR_0M0: lMinX2 = 3; lMaxX2 = lMinX2 + 1; getLocalMinMax(minX1, maxX1, true, lMinX1, lMaxX1, true); @@ -1004,7 +1004,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() getLocalMinMax(dummy, dummy, dummy, lMaxX1, dummy, lMaxX3); distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); break; - case T: + case DIR_00P: lMinX3 = maxX3 - 4; lMaxX3 = lMinX3 + 1; getLocalMinMax(minX1, maxX1, true, lMinX1, lMaxX1, true); @@ -1027,7 +1027,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() getLocalMinMax(dummy, dummy, dummy, lMaxX1, lMaxX2, dummy); distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); break; - case B: + case DIR_00M: lMinX3 = 3; lMaxX3 = lMinX3 + 1; getLocalMinMax(minX1, maxX1, true, lMinX1, lMaxX1, true); @@ -1052,7 +1052,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; // /////E-W-N-S - case NE: + case DIR_PP0: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 3; lMinX2 = maxX2 - 4; @@ -1079,7 +1079,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; - case SW: + case DIR_MM0: lMinX1 = 1; lMaxX1 = lMinX1 + 3; lMinX2 = 3; @@ -1106,7 +1106,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; - case SE: + case DIR_PM0: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 3; lMinX2 = 3; @@ -1133,7 +1133,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; - case NW: + case DIR_MP0: lMinX1 = 1; lMaxX1 = lMinX1 + 3; lMinX2 = maxX2 - 4; @@ -1160,7 +1160,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; // /////T-B-E-W - case TE: + case DIR_P0P: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 3; lMinX3 = maxX3 - 4; @@ -1187,7 +1187,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; - case BW: + case DIR_M0M: lMinX1 = 1; lMaxX1 = lMinX1 + 3; lMinX3 = 3; @@ -1214,7 +1214,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; - case BE: + case DIR_P0M: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 3; lMinX3 = 3; @@ -1241,7 +1241,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; - case TW: + case DIR_M0P: lMinX1 = 1; lMaxX1 = lMinX1 + 3; lMinX3 = maxX3 - 4; @@ -1269,7 +1269,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; /////////////////////////T-N-B-S - case TN: + case DIR_0PP: lMinX2 = maxX2 - 4; lMaxX2 = lMinX2 + 3; lMinX3 = maxX3 - 4; @@ -1296,7 +1296,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; - case BS: + case DIR_0MM: lMinX2 = 1; lMaxX2 = lMinX2 + 3; lMinX3 = 3; @@ -1323,7 +1323,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; - case BN: + case DIR_0PM: lMinX2 = maxX2 - 4; lMaxX2 = lMinX2 + 3; lMinX3 = 3; @@ -1350,7 +1350,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; - case TS: + case DIR_0MP: lMinX2 = 1; lMaxX2 = lMinX2 + 3; lMinX3 = maxX3 - 4; @@ -1378,7 +1378,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; // TNE - case TNE: + case DIR_PPP: lMinX1 = maxX1 - 4; lMaxX1 = maxX1 - 3; lMinX2 = maxX2 - 4; @@ -1405,7 +1405,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; // TNW - case TNW: + case DIR_MPP: lMinX1 = 3; lMaxX1 = 4; lMinX2 = maxX2 - 4; @@ -1432,7 +1432,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; // TSE - case TSE: + case DIR_PMP: lMinX1 = maxX1 - 4; lMaxX1 = maxX1 - 3; lMinX2 = 1; @@ -1458,7 +1458,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataEvEv, indexEvEv); break; // TSW - case TSW: + case DIR_MMP: lMinX1 = 3; lMaxX1 = 4; lMinX2 = 1; @@ -1484,7 +1484,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataEvEv, indexEvEv); break; // BNE - case BNE: + case DIR_PPM: lMinX1 = maxX1 - 4; lMaxX1 = maxX1 - 3; lMinX2 = maxX2 - 4; @@ -1511,7 +1511,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; // BNW - case BNW: + case DIR_MPM: lMinX1 = 3; lMaxX1 = 4; lMinX2 = maxX2 - 4; @@ -1537,7 +1537,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataEvEv, indexEvEv); break; // BSE - case BSE: + case DIR_PMM: lMinX1 = maxX1 - 4; lMaxX1 = maxX1 - 3; lMinX2 = 1; @@ -1563,7 +1563,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataEvEv, indexEvEv); break; // BSW - case BSW: + case DIR_MMM: lMinX1 = 3; lMaxX1 = 4; lMinX2 = 1; @@ -1634,55 +1634,55 @@ void CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, int TmaxX2 = maxX2; int TmaxX3 = maxX3; - if (block.lock()->hasInterpolationFlagCF(E)) { + if (block.lock()->hasInterpolationFlagCF(DIR_P00)) { if (maxX1 == TmaxX1) maxX1 -= 2; } - if (block.lock()->hasInterpolationFlagCF(W)) { + if (block.lock()->hasInterpolationFlagCF(DIR_M00)) { if (minX1 == TminX1) minX1 += 2; } - if (block.lock()->hasInterpolationFlagCF(N)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0P0)) { if (maxX2 == TmaxX2) maxX2 -= 2; } - if (block.lock()->hasInterpolationFlagCF(S)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0M0)) { if (minX2 == TminX2) minX2 += 2; } - if (block.lock()->hasInterpolationFlagCF(T)) { + if (block.lock()->hasInterpolationFlagCF(DIR_00P)) { if (maxX3 == TmaxX3) maxX3 -= 2; } - if (block.lock()->hasInterpolationFlagCF(B)) { + if (block.lock()->hasInterpolationFlagCF(DIR_00M)) { if (minX3 == TminX3) minX3 += 2; } // E-W-N-S - if (block.lock()->hasInterpolationFlagCF(NE) && !block.lock()->hasInterpolationFlagCF(N) && - !block.lock()->hasInterpolationFlagCF(E)) { + if (block.lock()->hasInterpolationFlagCF(DIR_PP0) && !block.lock()->hasInterpolationFlagCF(DIR_0P0) && + !block.lock()->hasInterpolationFlagCF(DIR_P00)) { if (maxX1 == TmaxX1) maxX1 -= 2; if (maxX2 == TmaxX2) maxX2 -= 2; } - if (block.lock()->hasInterpolationFlagCF(SW) && !block.lock()->hasInterpolationFlagCF(W) && - !block.lock()->hasInterpolationFlagCF(S)) { + if (block.lock()->hasInterpolationFlagCF(DIR_MM0) && !block.lock()->hasInterpolationFlagCF(DIR_M00) && + !block.lock()->hasInterpolationFlagCF(DIR_0M0)) { if (minX1 == TminX1) minX1 += 2; if (minX2 == TminX2) minX2 += 2; } - if (block.lock()->hasInterpolationFlagCF(SE) && !block.lock()->hasInterpolationFlagCF(E) && - !block.lock()->hasInterpolationFlagCF(S)) { + if (block.lock()->hasInterpolationFlagCF(DIR_PM0) && !block.lock()->hasInterpolationFlagCF(DIR_P00) && + !block.lock()->hasInterpolationFlagCF(DIR_0M0)) { if (maxX1 == TmaxX1) maxX1 -= 2; if (minX2 == TminX2) minX2 += 2; } - if (block.lock()->hasInterpolationFlagCF(NW) && !block.lock()->hasInterpolationFlagCF(N) && - !block.lock()->hasInterpolationFlagCF(W)) { + if (block.lock()->hasInterpolationFlagCF(DIR_MP0) && !block.lock()->hasInterpolationFlagCF(DIR_0P0) && + !block.lock()->hasInterpolationFlagCF(DIR_M00)) { if (minX1 == TminX1) minX1 += 2; if (maxX2 == TmaxX2) @@ -1690,29 +1690,29 @@ void CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, } // ////T-B-E-W - if (block.lock()->hasInterpolationFlagCF(TE) && !block.lock()->hasInterpolationFlagCF(E) && - !block.lock()->hasInterpolationFlagCF(T)) { + if (block.lock()->hasInterpolationFlagCF(DIR_P0P) && !block.lock()->hasInterpolationFlagCF(DIR_P00) && + !block.lock()->hasInterpolationFlagCF(DIR_00P)) { if (maxX1 == TmaxX1) maxX1 -= 2; if (maxX3 == TmaxX3) maxX3 -= 2; } - if (block.lock()->hasInterpolationFlagCF(BW) && !block.lock()->hasInterpolationFlagCF(W) && - !block.lock()->hasInterpolationFlagCF(B)) { + if (block.lock()->hasInterpolationFlagCF(DIR_M0M) && !block.lock()->hasInterpolationFlagCF(DIR_M00) && + !block.lock()->hasInterpolationFlagCF(DIR_00M)) { if (minX1 == TminX1) minX1 += 2; if (minX3 == TminX3) minX3 += 2; } - if (block.lock()->hasInterpolationFlagCF(BE) && !block.lock()->hasInterpolationFlagCF(E) && - !block.lock()->hasInterpolationFlagCF(B)) { + if (block.lock()->hasInterpolationFlagCF(DIR_P0M) && !block.lock()->hasInterpolationFlagCF(DIR_P00) && + !block.lock()->hasInterpolationFlagCF(DIR_00M)) { if (maxX1 == TmaxX1) maxX1 -= 2; if (minX3 == TminX3) minX3 += 2; } - if (block.lock()->hasInterpolationFlagCF(TW) && !block.lock()->hasInterpolationFlagCF(W) && - !block.lock()->hasInterpolationFlagCF(T)) { + if (block.lock()->hasInterpolationFlagCF(DIR_M0P) && !block.lock()->hasInterpolationFlagCF(DIR_M00) && + !block.lock()->hasInterpolationFlagCF(DIR_00P)) { if (minX1 == TminX1) minX1 += 2; if (maxX3 == TmaxX3) @@ -1720,29 +1720,29 @@ void CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, } ////T-B-N-S - if (block.lock()->hasInterpolationFlagCF(TN) && !block.lock()->hasInterpolationFlagCF(N) && - !block.lock()->hasInterpolationFlagCF(T)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0PP) && !block.lock()->hasInterpolationFlagCF(DIR_0P0) && + !block.lock()->hasInterpolationFlagCF(DIR_00P)) { if (maxX2 == TmaxX2) maxX2 -= 2; if (maxX3 == TmaxX3) maxX3 -= 2; } - if (block.lock()->hasInterpolationFlagCF(BS) && !block.lock()->hasInterpolationFlagCF(S) && - !block.lock()->hasInterpolationFlagCF(B)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0MM) && !block.lock()->hasInterpolationFlagCF(DIR_0M0) && + !block.lock()->hasInterpolationFlagCF(DIR_00M)) { if (minX2 == TminX2) minX2 += 2; if (minX3 == TminX3) minX3 += 2; } - if (block.lock()->hasInterpolationFlagCF(BN) && !block.lock()->hasInterpolationFlagCF(N) && - !block.lock()->hasInterpolationFlagCF(B)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0PM) && !block.lock()->hasInterpolationFlagCF(DIR_0P0) && + !block.lock()->hasInterpolationFlagCF(DIR_00M)) { if (maxX2 == TmaxX2) maxX2 -= 2; if (minX3 == TminX3) minX3 += 2; } - if (block.lock()->hasInterpolationFlagCF(TS) && !block.lock()->hasInterpolationFlagCF(S) && - !block.lock()->hasInterpolationFlagCF(T)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0MP) && !block.lock()->hasInterpolationFlagCF(DIR_0M0) && + !block.lock()->hasInterpolationFlagCF(DIR_00P)) { if (minX2 == TminX2) minX2 += 2; if (maxX3 == TmaxX3) @@ -1750,10 +1750,10 @@ void CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, } // if - // (block.lock()->hasInterpolationFlagCF(D3Q27System::TNE)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::TE)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::TN)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::NE)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::T)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::N) - // && !block.lock()->hasInterpolationFlagCF(D3Q27System::E)) if - // (!block.lock()->hasInterpolationFlagCF(D3Q27System::TE)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::T)&& - // !block.lock()->hasInterpolationFlagCF(D3Q27System::E)) + // (block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_PPP)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_P0P)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_0PP)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_PP0)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_00P)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_0P0) + // && !block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_P00)) if + // (!block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_P0P)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_00P)&& + // !block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_P00)) //{ // if (maxX1==TmaxX1) maxX1 -= 2; // if (maxX2==TmaxX2) maxX2 -= 2; @@ -1774,55 +1774,55 @@ void CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, int TmaxX2 = maxX2; int TmaxX3 = maxX3; - if (block.lock()->hasInterpolationFlagCF(E)) { + if (block.lock()->hasInterpolationFlagCF(DIR_P00)) { if (maxX1 == TmaxX1) maxX1 -= 2; } - if (block.lock()->hasInterpolationFlagCF(W)) { + if (block.lock()->hasInterpolationFlagCF(DIR_M00)) { if (minX1 == TminX1) minX1 += 2; } - if (block.lock()->hasInterpolationFlagCF(N)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0P0)) { if (maxX2 == TmaxX2) maxX2 -= 2; } - if (block.lock()->hasInterpolationFlagCF(S)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0M0)) { if (minX2 == TminX2) minX2 += 2; } - if (block.lock()->hasInterpolationFlagCF(T)) { + if (block.lock()->hasInterpolationFlagCF(DIR_00P)) { if (maxX3 == TmaxX3) maxX3 -= 2; } - if (block.lock()->hasInterpolationFlagCF(B)) { + if (block.lock()->hasInterpolationFlagCF(DIR_00M)) { if (minX3 == TminX3) minX3 += 2; } // E-W-N-S - if (block.lock()->hasInterpolationFlagCF(NE) && !block.lock()->hasInterpolationFlagCF(N) && - !block.lock()->hasInterpolationFlagCF(E)) { + if (block.lock()->hasInterpolationFlagCF(DIR_PP0) && !block.lock()->hasInterpolationFlagCF(DIR_0P0) && + !block.lock()->hasInterpolationFlagCF(DIR_P00)) { if (maxX1 == TmaxX1) maxX1 -= 2; if (maxX2 == TmaxX2) maxX2 -= 2; } - if (block.lock()->hasInterpolationFlagCF(SW) && !block.lock()->hasInterpolationFlagCF(W) && - !block.lock()->hasInterpolationFlagCF(S)) { + if (block.lock()->hasInterpolationFlagCF(DIR_MM0) && !block.lock()->hasInterpolationFlagCF(DIR_M00) && + !block.lock()->hasInterpolationFlagCF(DIR_0M0)) { if (minX1 == TminX1) minX1 += 2; if (minX2 == TminX2) minX2 += 2; } - if (block.lock()->hasInterpolationFlagCF(SE) && !block.lock()->hasInterpolationFlagCF(E) && - !block.lock()->hasInterpolationFlagCF(S)) { + if (block.lock()->hasInterpolationFlagCF(DIR_PM0) && !block.lock()->hasInterpolationFlagCF(DIR_P00) && + !block.lock()->hasInterpolationFlagCF(DIR_0M0)) { if (maxX1 == TmaxX1) maxX1 -= 2; if (minX2 == TminX2) minX2 += 2; } - if (block.lock()->hasInterpolationFlagCF(NW) && !block.lock()->hasInterpolationFlagCF(N) && - !block.lock()->hasInterpolationFlagCF(W)) { + if (block.lock()->hasInterpolationFlagCF(DIR_MP0) && !block.lock()->hasInterpolationFlagCF(DIR_0P0) && + !block.lock()->hasInterpolationFlagCF(DIR_M00)) { if (minX1 == TminX1) minX1 += 2; if (maxX2 == TmaxX2) @@ -1830,29 +1830,29 @@ void CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, } // ////T-B-E-W - if (block.lock()->hasInterpolationFlagCF(TE) && !block.lock()->hasInterpolationFlagCF(E) && - !block.lock()->hasInterpolationFlagCF(T)) { + if (block.lock()->hasInterpolationFlagCF(DIR_P0P) && !block.lock()->hasInterpolationFlagCF(DIR_P00) && + !block.lock()->hasInterpolationFlagCF(DIR_00P)) { if (maxX1 == TmaxX1) maxX1 -= 2; if (maxX3 == TmaxX3) maxX3 -= 2; } - if (block.lock()->hasInterpolationFlagCF(BW) && !block.lock()->hasInterpolationFlagCF(W) && - !block.lock()->hasInterpolationFlagCF(B)) { + if (block.lock()->hasInterpolationFlagCF(DIR_M0M) && !block.lock()->hasInterpolationFlagCF(DIR_M00) && + !block.lock()->hasInterpolationFlagCF(DIR_00M)) { if (minX1 == TminX1) minX1 += 2; if (minX3 == TminX3) minX3 += 2; } - if (block.lock()->hasInterpolationFlagCF(BE) && !block.lock()->hasInterpolationFlagCF(E) && - !block.lock()->hasInterpolationFlagCF(B)) { + if (block.lock()->hasInterpolationFlagCF(DIR_P0M) && !block.lock()->hasInterpolationFlagCF(DIR_P00) && + !block.lock()->hasInterpolationFlagCF(DIR_00M)) { if (maxX1 == TmaxX1) maxX1 -= 2; if (minX3 == TminX3) minX3 += 2; } - if (block.lock()->hasInterpolationFlagCF(TW) && !block.lock()->hasInterpolationFlagCF(W) && - !block.lock()->hasInterpolationFlagCF(T)) { + if (block.lock()->hasInterpolationFlagCF(DIR_M0P) && !block.lock()->hasInterpolationFlagCF(DIR_M00) && + !block.lock()->hasInterpolationFlagCF(DIR_00P)) { if (minX1 == TminX1) minX1 += 2; if (maxX3 == TmaxX3) @@ -1860,29 +1860,29 @@ void CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, } ////T-B-N-S - if (block.lock()->hasInterpolationFlagCF(TN) && !block.lock()->hasInterpolationFlagCF(N) && - !block.lock()->hasInterpolationFlagCF(T)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0PP) && !block.lock()->hasInterpolationFlagCF(DIR_0P0) && + !block.lock()->hasInterpolationFlagCF(DIR_00P)) { if (maxX2 == TmaxX2) maxX2 -= 2; if (maxX3 == TmaxX3) maxX3 -= 2; } - if (block.lock()->hasInterpolationFlagCF(BS) && !block.lock()->hasInterpolationFlagCF(S) && - !block.lock()->hasInterpolationFlagCF(B)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0MM) && !block.lock()->hasInterpolationFlagCF(DIR_0M0) && + !block.lock()->hasInterpolationFlagCF(DIR_00M)) { if (minX2 == TminX2) minX2 += 2; if (minX3 == TminX3) minX3 += 2; } - if (block.lock()->hasInterpolationFlagCF(BN) && !block.lock()->hasInterpolationFlagCF(N) && - !block.lock()->hasInterpolationFlagCF(B)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0PM) && !block.lock()->hasInterpolationFlagCF(DIR_0P0) && + !block.lock()->hasInterpolationFlagCF(DIR_00M)) { if (maxX2 == TmaxX2) maxX2 -= 2; if (minX3 == TminX3) minX3 += 2; } - if (block.lock()->hasInterpolationFlagCF(TS) && !block.lock()->hasInterpolationFlagCF(S) && - !block.lock()->hasInterpolationFlagCF(T)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0MP) && !block.lock()->hasInterpolationFlagCF(DIR_0M0) && + !block.lock()->hasInterpolationFlagCF(DIR_00P)) { if (minX2 == TminX2) minX2 += 2; if (maxX3 == TmaxX3) @@ -1890,8 +1890,8 @@ void CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, } // if - // (block.lock()->hasInterpolationFlagCF(D3Q27System::TNE)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::TE)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::TN)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::NE)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::T)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::N) - // && !block.lock()->hasInterpolationFlagCF(D3Q27System::E)) + // (block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_PPP)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_P0P)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_0PP)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_PP0)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_00P)&&!block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_0P0) + // && !block.lock()->hasInterpolationFlagCF(D3Q27System::DIR_P00)) //{ // if (maxX1==TmaxX1) maxX1 -= 2; // if (maxX2==TmaxX2) maxX2 -= 2; @@ -1923,7 +1923,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::findCFnodes() int lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3; using namespace D3Q27System; - if (block.lock()->hasInterpolationFlagCF(W)) { + if (block.lock()->hasInterpolationFlagCF(DIR_M00)) { lMinX1 = 1; lMaxX1 = lMinX1 + 1; @@ -1943,8 +1943,8 @@ void CoarseToFineVectorConnector<VectorTransmitter>::findCFnodes() getLocalMinMax(minX3, maxX3, false, lMinX3, lMaxX3, false); findCFnodes(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); } - if (block.lock()->hasInterpolationFlagCF(TN) && !block.lock()->hasInterpolationFlagCF(N) && - !block.lock()->hasInterpolationFlagCF(T)) { + if (block.lock()->hasInterpolationFlagCF(DIR_0PP) && !block.lock()->hasInterpolationFlagCF(DIR_0P0) && + !block.lock()->hasInterpolationFlagCF(DIR_00P)) { lMinX2 = maxX2 - 3; lMaxX2 = lMinX2 + 1; lMinX3 = maxX3 - 3; diff --git a/src/cpu/VirtualFluidsCore/Connectors/FineToCoarseVectorConnector.h b/src/cpu/VirtualFluidsCore/Connectors/FineToCoarseVectorConnector.h index e430a0ad30dd7e3d0cd647271d79dd0c61f6b1f8..f8809f17b6676148faf3a94a1b9fcabede72fe58 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/FineToCoarseVectorConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/FineToCoarseVectorConnector.h @@ -143,16 +143,16 @@ FineToCoarseVectorConnector<VectorTransmitter>::FineToCoarseVectorConnector(SPtr : Block3DConnector(sendDir), block(block), sender(sender), receiver(receiver), iprocessor(iprocessor), connType(connType) { - if (!(sendDir == D3Q27System::E || sendDir == D3Q27System::W || sendDir == D3Q27System::N || - sendDir == D3Q27System::S || sendDir == D3Q27System::T || sendDir == D3Q27System::B || - sendDir == D3Q27System::NE || sendDir == D3Q27System::SW || sendDir == D3Q27System::SE || - sendDir == D3Q27System::NW || sendDir == D3Q27System::TE || sendDir == D3Q27System::BW || - sendDir == D3Q27System::BE || sendDir == D3Q27System::TW || sendDir == D3Q27System::TN || - sendDir == D3Q27System::BS || sendDir == D3Q27System::BN || sendDir == D3Q27System::TS + if (!(sendDir == D3Q27System::DIR_P00 || sendDir == D3Q27System::DIR_M00 || sendDir == D3Q27System::DIR_0P0 || + sendDir == D3Q27System::DIR_0M0 || sendDir == D3Q27System::DIR_00P || sendDir == D3Q27System::DIR_00M || + sendDir == D3Q27System::DIR_PP0 || sendDir == D3Q27System::DIR_MM0 || sendDir == D3Q27System::DIR_PM0 || + sendDir == D3Q27System::DIR_MP0 || sendDir == D3Q27System::DIR_P0P || sendDir == D3Q27System::DIR_M0M || + sendDir == D3Q27System::DIR_P0M || sendDir == D3Q27System::DIR_M0P || sendDir == D3Q27System::DIR_0PP || + sendDir == D3Q27System::DIR_0MM || sendDir == D3Q27System::DIR_0PM || sendDir == D3Q27System::DIR_0MP - || sendDir == D3Q27System::TNE || sendDir == D3Q27System::TNW || sendDir == D3Q27System::TSE || - sendDir == D3Q27System::TSW || sendDir == D3Q27System::BNE || sendDir == D3Q27System::BNW || - sendDir == D3Q27System::BSE || sendDir == D3Q27System::BSW + || sendDir == D3Q27System::DIR_PPP || sendDir == D3Q27System::DIR_MPP || sendDir == D3Q27System::DIR_PMP || + sendDir == D3Q27System::DIR_MMP || sendDir == D3Q27System::DIR_PPM || sendDir == D3Q27System::DIR_MPM || + sendDir == D3Q27System::DIR_PMM || sendDir == D3Q27System::DIR_MMM )) { throw UbException(UB_EXARGS, "invalid constructor for this direction"); @@ -235,44 +235,44 @@ void FineToCoarseVectorConnector<VectorTransmitter>::init() int iCellSize = 1; // size of interpolation cell switch (this->sendDir) { - case E: - case W: + case DIR_P00: + case DIR_M00: sendSize = (bMaxX2 - 1) / 2 * (bMaxX3 - 1) / 2 * sendDataPerNode * iCellSize; break; - case N: - case S: + case DIR_0P0: + case DIR_0M0: sendSize = (bMaxX1 - 1) / 2 * (bMaxX3 - 1) / 2 * sendDataPerNode * iCellSize; break; - case T: - case B: + case DIR_00P: + case DIR_00M: sendSize = (bMaxX1 - 1) / 2 * (bMaxX2 - 1) / 2 * sendDataPerNode * iCellSize; break; - case NE: - case SW: - case SE: - case NW: + case DIR_PP0: + case DIR_MM0: + case DIR_PM0: + case DIR_MP0: sendSize = (3 * bMaxX3 - 3) * sendDataPerNode * iCellSize; break; // buffer overhead, should be (3*bMaxX3-6) for even bMax3 - case TE: - case BW: - case BE: - case TW: + case DIR_P0P: + case DIR_M0M: + case DIR_P0M: + case DIR_M0P: sendSize = (3 * bMaxX2 - 3) * sendDataPerNode * iCellSize; break; - case TN: - case BS: - case BN: - case TS: + case DIR_0PP: + case DIR_0MM: + case DIR_0PM: + case DIR_0MP: sendSize = (3 * bMaxX1 - 3) * sendDataPerNode * iCellSize; break; - case TNE: - case TNW: - case TSE: - case TSW: - case BNE: - case BNW: - case BSE: - case BSW: + case DIR_PPP: + case DIR_MPP: + case DIR_PMP: + case DIR_MMP: + case DIR_PPM: + case DIR_MPM: + case DIR_PMM: + case DIR_MMM: sendSize = 3 * (3 * bMaxX1 - 3) * sendDataPerNode * iCellSize; break; default: @@ -321,42 +321,42 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() ////////////// switch (sendDir) { - case E: + case DIR_P00: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX1 = maxX1 - 7; lMaxX1 = lMinX1 + 1; fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case W: + case DIR_M00: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX1 = 5; lMaxX1 = lMinX1 + 1; fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case N: + case DIR_0P0: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX2 = maxX2 - 7; lMaxX2 = lMinX2 + 1; fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case S: + case DIR_0M0: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX2 = 5; lMaxX2 = lMinX2 + 1; fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case T: + case DIR_00P: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX3 = maxX3 - 7; lMaxX3 = lMinX3 + 1; fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case B: + case DIR_00M: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX3 = 5; @@ -365,7 +365,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() break; // ////N-S-E-W - case NE: + case DIR_PP0: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX1 = maxX1 - 7; @@ -380,7 +380,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() lMaxX2 = lMinX2 + 5; fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case SW: + case DIR_MM0: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); @@ -397,7 +397,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case SE: + case DIR_PM0: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX1 = maxX1 - 7; @@ -414,7 +414,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() break; - case NW: + case DIR_MP0: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX1 = 1; @@ -430,7 +430,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; //////T-B-E-W - case TE: + case DIR_P0P: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX1 = maxX1 - 7; @@ -446,7 +446,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case BW: + case DIR_M0M: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX1 = 1; @@ -462,7 +462,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case BE: + case DIR_P0M: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX1 = maxX1 - 7; @@ -478,7 +478,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case TW: + case DIR_M0P: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX1 = 1; @@ -495,7 +495,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() break; ///////////////T-B-N-S // - case TN: + case DIR_0PP: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX2 = maxX2 - 7; @@ -511,7 +511,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case BS: + case DIR_0MM: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX2 = 1; @@ -527,7 +527,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case BN: + case DIR_0PM: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX2 = maxX2 - 7; @@ -543,7 +543,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case TS: + case DIR_0MP: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); lMinX2 = 1; @@ -560,7 +560,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() break; // TNE - case TNE: + case DIR_PPP: lMinX1 = maxX1 - 7; lMaxX1 = maxX1 - 6; lMinX2 = maxX2 - 7; @@ -587,7 +587,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() break; // TNW - case TNW: + case DIR_MPP: lMinX1 = 5; lMaxX1 = 6; lMinX2 = maxX2 - 7; @@ -616,7 +616,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() break; // TSE - case TSE: + case DIR_PMP: lMinX1 = maxX1 - 7; lMaxX1 = maxX1 - 6; lMinX2 = 1; @@ -643,7 +643,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() break; // TSW - case TSW: + case DIR_MMP: lMinX1 = 5; lMaxX1 = 6; lMinX2 = 1; @@ -670,7 +670,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() break; // BNE - case BNE: + case DIR_PPM: lMinX1 = maxX1 - 7; lMaxX1 = maxX1 - 6; lMinX2 = maxX2 - 7; @@ -697,7 +697,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() break; // BNW - case BNW: + case DIR_MPM: lMinX1 = 5; lMaxX1 = 6; lMinX2 = maxX2 - 7; @@ -725,7 +725,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() break; // BSE - case BSE: + case DIR_PMM: lMinX1 = maxX1 - 7; lMaxX1 = maxX1 - 6; lMinX2 = 1; @@ -753,7 +753,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() break; // BSW - case BSW: + case DIR_MMM: lMinX1 = 5; lMaxX1 = 6; lMinX2 = 1; @@ -869,42 +869,42 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() lMaxX3 = maxX3 - 1; switch (sendDir) { - case E: + case DIR_P00: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 1; getLocalMinMaxCF(maxX2, lMinX2, lMaxX2); getLocalMinMaxCF(maxX3, lMinX3, lMaxX3); distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case W: + case DIR_M00: lMinX1 = 2; lMaxX1 = lMinX1 + 1; getLocalMinMaxCF(maxX2, lMinX2, lMaxX2); getLocalMinMaxCF(maxX3, lMinX3, lMaxX3); distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case N: + case DIR_0P0: lMinX2 = maxX2 - 4; lMaxX2 = lMinX2 + 1; getLocalMinMaxCF(maxX1, lMinX1, lMaxX1); getLocalMinMaxCF(maxX3, lMinX3, lMaxX3); distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case S: + case DIR_0M0: lMinX2 = 2; lMaxX2 = lMinX2 + 1; getLocalMinMaxCF(maxX1, lMinX1, lMaxX1); getLocalMinMaxCF(maxX3, lMinX3, lMaxX3); distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case T: + case DIR_00P: lMinX3 = maxX3 - 4; lMaxX3 = lMinX3 + 1; getLocalMinMaxCF(maxX1, lMinX1, lMaxX1); getLocalMinMaxCF(maxX2, lMinX2, lMaxX2); distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case B: + case DIR_00M: lMinX3 = 2; lMaxX3 = lMinX3 + 1; getLocalMinMaxCF(maxX1, lMinX1, lMaxX1); @@ -913,7 +913,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; /////E-W-N-S - case NE: + case DIR_PP0: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 3; lMinX2 = maxX2 - 4; @@ -922,7 +922,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case SW: + case DIR_MM0: lMinX1 = 0; lMaxX1 = lMinX1 + 3; lMinX2 = 0; @@ -931,7 +931,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case SE: + case DIR_PM0: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 3; lMinX2 = 0; @@ -940,7 +940,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case NW: + case DIR_MP0: lMinX1 = 0; lMaxX1 = lMinX1 + 3; lMinX2 = maxX2 - 4; @@ -950,7 +950,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; // // /////T-B-E-W - case TE: + case DIR_P0P: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 3; lMinX3 = maxX3 - 4; @@ -959,7 +959,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case BW: + case DIR_M0M: lMinX1 = 0; lMaxX1 = lMinX1 + 3; lMinX3 = 0; @@ -968,7 +968,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case BE: + case DIR_P0M: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 3; lMinX3 = 0; @@ -977,7 +977,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case TW: + case DIR_M0P: lMinX1 = 0; lMaxX1 = lMinX1 + 3; lMinX3 = maxX3 - 4; @@ -988,7 +988,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() // ////////////////T-B-N-S // - case TN: + case DIR_0PP: lMinX2 = maxX2 - 4; lMaxX2 = lMinX2 + 3; lMinX3 = maxX3 - 4; @@ -997,7 +997,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case BS: + case DIR_0MM: lMinX2 = 0; lMaxX2 = lMinX2 + 3; lMinX3 = 0; @@ -1006,7 +1006,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case BN: + case DIR_0PM: lMinX2 = maxX2 - 4; lMaxX2 = lMinX2 + 3; lMinX3 = 0; @@ -1015,7 +1015,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - case TS: + case DIR_0MP: lMinX2 = 0; lMaxX2 = lMinX2 + 3; lMinX3 = maxX3 - 4; @@ -1025,7 +1025,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() break; // //TNE - case TNE: + case DIR_PPP: lMinX1 = maxX1 - 4; lMaxX1 = maxX1 - 1; lMinX2 = maxX2 - 4; @@ -1035,7 +1035,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; // TNW - case TNW: + case DIR_MPP: lMinX1 = 0; lMaxX1 = 3; lMinX2 = maxX2 - 4; @@ -1045,7 +1045,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; // TSE - case TSE: + case DIR_PMP: lMinX1 = maxX1 - 4; lMaxX1 = maxX1 - 1; lMinX2 = 0; @@ -1055,7 +1055,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; // TSW - case TSW: + case DIR_MMP: lMinX1 = 0; lMaxX1 = 3; lMinX2 = 0; @@ -1065,7 +1065,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; // BNE - case BNE: + case DIR_PPM: lMinX1 = maxX1 - 4; lMaxX1 = maxX1 - 1; lMinX2 = maxX2 - 4; @@ -1075,7 +1075,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; // BNW - case BNW: + case DIR_MPM: lMinX1 = 0; lMaxX1 = 3; lMinX2 = maxX2 - 4; @@ -1085,7 +1085,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; // BSE - case BSE: + case DIR_PMM: lMinX1 = maxX1 - 4; lMaxX1 = maxX1 - 1; lMinX2 = 0; @@ -1095,7 +1095,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; // BSW - case BSW: + case DIR_MMM: lMinX1 = 0; lMaxX1 = 3; lMinX2 = 0; @@ -1163,56 +1163,56 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, int TmaxX2 = maxX2; int TmaxX3 = maxX3; - if (block.lock()->hasInterpolationFlagFC(E)) { + if (block.lock()->hasInterpolationFlagFC(DIR_P00)) { if (maxX1 == TmaxX1) maxX1 -= 3; } - if (block.lock()->hasInterpolationFlagFC(W)) { + if (block.lock()->hasInterpolationFlagFC(DIR_M00)) { if (minX1 == TminX1) minX1 += 4; } - if (block.lock()->hasInterpolationFlagFC(N)) { + if (block.lock()->hasInterpolationFlagFC(DIR_0P0)) { if (maxX2 == TmaxX2) maxX2 -= 3; } - if (block.lock()->hasInterpolationFlagFC(S)) { + if (block.lock()->hasInterpolationFlagFC(DIR_0M0)) { if (minX2 == TminX2) minX2 += 4; } - if (block.lock()->hasInterpolationFlagFC(T)) { + if (block.lock()->hasInterpolationFlagFC(DIR_00P)) { if (maxX3 == TmaxX3) maxX3 -= 3; } - if (block.lock()->hasInterpolationFlagFC(B)) { + if (block.lock()->hasInterpolationFlagFC(DIR_00M)) { if (minX3 == TminX3) minX3 += 4; } //////////// /////E-W-N-S - if (block.lock()->hasInterpolationFlagFC(NE) && !block.lock()->hasInterpolationFlagFC(N) && - !block.lock()->hasInterpolationFlagFC(E)) { + if (block.lock()->hasInterpolationFlagFC(DIR_PP0) && !block.lock()->hasInterpolationFlagFC(DIR_0P0) && + !block.lock()->hasInterpolationFlagFC(DIR_P00)) { if (maxX1 == TmaxX1) maxX1 -= 3; if (maxX2 == TmaxX2) maxX2 -= 3; } - if (block.lock()->hasInterpolationFlagFC(SW) && !block.lock()->hasInterpolationFlagFC(W) && - !block.lock()->hasInterpolationFlagFC(S)) { + if (block.lock()->hasInterpolationFlagFC(DIR_MM0) && !block.lock()->hasInterpolationFlagFC(DIR_M00) && + !block.lock()->hasInterpolationFlagFC(DIR_0M0)) { if (minX1 == TminX1) minX1 += 4; if (minX2 == TminX2) minX2 += 4; } - if (block.lock()->hasInterpolationFlagFC(SE) && !block.lock()->hasInterpolationFlagFC(E) && - !block.lock()->hasInterpolationFlagFC(S)) { + if (block.lock()->hasInterpolationFlagFC(DIR_PM0) && !block.lock()->hasInterpolationFlagFC(DIR_P00) && + !block.lock()->hasInterpolationFlagFC(DIR_0M0)) { if (maxX1 == TmaxX1) maxX1 -= 3; if (minX2 == TminX2) minX2 += 4; } - if (block.lock()->hasInterpolationFlagFC(NW) && !block.lock()->hasInterpolationFlagFC(N) && - !block.lock()->hasInterpolationFlagFC(W)) { + if (block.lock()->hasInterpolationFlagFC(DIR_MP0) && !block.lock()->hasInterpolationFlagFC(DIR_0P0) && + !block.lock()->hasInterpolationFlagFC(DIR_M00)) { if (minX1 == TminX1) minX1 += 4; if (maxX2 == TmaxX2) @@ -1220,29 +1220,29 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, } //////T-B-E-W - if (block.lock()->hasInterpolationFlagFC(TE) && !block.lock()->hasInterpolationFlagFC(E) && - !block.lock()->hasInterpolationFlagFC(T)) { + if (block.lock()->hasInterpolationFlagFC(DIR_P0P) && !block.lock()->hasInterpolationFlagFC(DIR_P00) && + !block.lock()->hasInterpolationFlagFC(DIR_00P)) { if (maxX1 == TmaxX1) maxX1 -= 3; if (maxX3 == TmaxX3) maxX3 -= 3; } - if (block.lock()->hasInterpolationFlagFC(BW) && !block.lock()->hasInterpolationFlagFC(W) && - !block.lock()->hasInterpolationFlagFC(B)) { + if (block.lock()->hasInterpolationFlagFC(DIR_M0M) && !block.lock()->hasInterpolationFlagFC(DIR_M00) && + !block.lock()->hasInterpolationFlagFC(DIR_00M)) { if (minX1 == TminX1) minX1 += 4; if (minX3 == TminX3) minX3 += 4; } - if (block.lock()->hasInterpolationFlagFC(BE) && !block.lock()->hasInterpolationFlagFC(E) && - !block.lock()->hasInterpolationFlagFC(B)) { + if (block.lock()->hasInterpolationFlagFC(DIR_P0M) && !block.lock()->hasInterpolationFlagFC(DIR_P00) && + !block.lock()->hasInterpolationFlagFC(DIR_00M)) { if (maxX1 == TmaxX1) maxX1 -= 3; if (minX3 == TminX3) minX3 += 4; } - if (block.lock()->hasInterpolationFlagFC(TW) && !block.lock()->hasInterpolationFlagFC(W) && - !block.lock()->hasInterpolationFlagFC(T)) { + if (block.lock()->hasInterpolationFlagFC(DIR_M0P) && !block.lock()->hasInterpolationFlagFC(DIR_M00) && + !block.lock()->hasInterpolationFlagFC(DIR_00P)) { if (minX1 == TminX1) minX1 += 4; if (maxX3 == TmaxX3) @@ -1250,29 +1250,29 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, } ////T-B-N-S - if (block.lock()->hasInterpolationFlagFC(TN) && !block.lock()->hasInterpolationFlagFC(N) && - !block.lock()->hasInterpolationFlagFC(T)) { + if (block.lock()->hasInterpolationFlagFC(DIR_0PP) && !block.lock()->hasInterpolationFlagFC(DIR_0P0) && + !block.lock()->hasInterpolationFlagFC(DIR_00P)) { if (maxX2 == TmaxX2) maxX2 -= 3; if (maxX3 == TmaxX3) maxX3 -= 3; } - if (block.lock()->hasInterpolationFlagFC(BS) && !block.lock()->hasInterpolationFlagFC(S) && - !block.lock()->hasInterpolationFlagFC(B)) { + if (block.lock()->hasInterpolationFlagFC(DIR_0MM) && !block.lock()->hasInterpolationFlagFC(DIR_0M0) && + !block.lock()->hasInterpolationFlagFC(DIR_00M)) { if (minX2 == TminX2) minX2 += 4; if (minX3 == TminX3) minX3 += 4; } - if (block.lock()->hasInterpolationFlagFC(BN) && !block.lock()->hasInterpolationFlagFC(N) && - !block.lock()->hasInterpolationFlagFC(B)) { + if (block.lock()->hasInterpolationFlagFC(DIR_0PM) && !block.lock()->hasInterpolationFlagFC(DIR_0P0) && + !block.lock()->hasInterpolationFlagFC(DIR_00M)) { if (maxX2 == TmaxX2) maxX2 -= 3; if (minX3 == TminX3) minX3 += 4; } - if (block.lock()->hasInterpolationFlagFC(TS) && !block.lock()->hasInterpolationFlagFC(S) && - !block.lock()->hasInterpolationFlagFC(T)) { + if (block.lock()->hasInterpolationFlagFC(DIR_0MP) && !block.lock()->hasInterpolationFlagFC(DIR_0M0) && + !block.lock()->hasInterpolationFlagFC(DIR_00P)) { if (minX2 == TminX2) minX2 += 4; if (maxX3 == TmaxX3) @@ -1280,10 +1280,10 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, } // if - // (block.lock()->hasInterpolationFlagFC(D3Q27System::TNE)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::TE)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::TN)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::NE)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::T)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::N) - // && !block.lock()->hasInterpolationFlagFC(D3Q27System::E)) if - // (!block.lock()->hasInterpolationFlagFC(D3Q27System::TE)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::T) && - // !block.lock()->hasInterpolationFlagFC(D3Q27System::E)) + // (block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_PPP)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_P0P)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_0PP)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_PP0)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_00P)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_0P0) + // && !block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_P00)) if + // (!block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_P0P)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_00P) && + // !block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_P00)) //{ // if (maxX1==TmaxX1) maxX1 -= 3; // if (maxX2==TmaxX2) maxX2 -= 3; @@ -1304,56 +1304,56 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, int TmaxX2 = maxX2; int TmaxX3 = maxX3; - if (block.lock()->hasInterpolationFlagFC(E)) { + if (block.lock()->hasInterpolationFlagFC(DIR_P00)) { if (maxX1 == TmaxX1) maxX1 -= 3; } - if (block.lock()->hasInterpolationFlagFC(W)) { + if (block.lock()->hasInterpolationFlagFC(DIR_M00)) { if (minX1 == TminX1) minX1 += 4; } - if (block.lock()->hasInterpolationFlagFC(N)) { + if (block.lock()->hasInterpolationFlagFC(DIR_0P0)) { if (maxX2 == TmaxX2) maxX2 -= 3; } - if (block.lock()->hasInterpolationFlagFC(S)) { + if (block.lock()->hasInterpolationFlagFC(DIR_0M0)) { if (minX2 == TminX2) minX2 += 4; } - if (block.lock()->hasInterpolationFlagFC(T)) { + if (block.lock()->hasInterpolationFlagFC(DIR_00P)) { if (maxX3 == TmaxX3) maxX3 -= 3; } - if (block.lock()->hasInterpolationFlagFC(B)) { + if (block.lock()->hasInterpolationFlagFC(DIR_00M)) { if (minX3 == TminX3) minX3 += 4; } //////////// /////E-W-N-S - if (block.lock()->hasInterpolationFlagFC(NE) && !block.lock()->hasInterpolationFlagFC(N) && - !block.lock()->hasInterpolationFlagFC(E)) { + if (block.lock()->hasInterpolationFlagFC(DIR_PP0) && !block.lock()->hasInterpolationFlagFC(DIR_0P0) && + !block.lock()->hasInterpolationFlagFC(DIR_P00)) { if (maxX1 == TmaxX1) maxX1 -= 3; if (maxX2 == TmaxX2) maxX2 -= 3; } - if (block.lock()->hasInterpolationFlagFC(SW) && !block.lock()->hasInterpolationFlagFC(W) && - !block.lock()->hasInterpolationFlagFC(S)) { + if (block.lock()->hasInterpolationFlagFC(DIR_MM0) && !block.lock()->hasInterpolationFlagFC(DIR_M00) && + !block.lock()->hasInterpolationFlagFC(DIR_0M0)) { if (minX1 == TminX1) minX1 += 4; if (minX2 == TminX2) minX2 += 4; } - if (block.lock()->hasInterpolationFlagFC(SE) && !block.lock()->hasInterpolationFlagFC(E) && - !block.lock()->hasInterpolationFlagFC(S)) { + if (block.lock()->hasInterpolationFlagFC(DIR_PM0) && !block.lock()->hasInterpolationFlagFC(DIR_P00) && + !block.lock()->hasInterpolationFlagFC(DIR_0M0)) { if (maxX1 == TmaxX1) maxX1 -= 3; if (minX2 == TminX2) minX2 += 4; } - if (block.lock()->hasInterpolationFlagFC(NW) && !block.lock()->hasInterpolationFlagFC(N) && - !block.lock()->hasInterpolationFlagFC(W)) { + if (block.lock()->hasInterpolationFlagFC(DIR_MP0) && !block.lock()->hasInterpolationFlagFC(DIR_0P0) && + !block.lock()->hasInterpolationFlagFC(DIR_M00)) { if (minX1 == TminX1) minX1 += 4; if (maxX2 == TmaxX2) @@ -1361,29 +1361,29 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, } //////T-B-E-W - if (block.lock()->hasInterpolationFlagFC(TE) && !block.lock()->hasInterpolationFlagFC(E) && - !block.lock()->hasInterpolationFlagFC(T)) { + if (block.lock()->hasInterpolationFlagFC(DIR_P0P) && !block.lock()->hasInterpolationFlagFC(DIR_P00) && + !block.lock()->hasInterpolationFlagFC(DIR_00P)) { if (maxX1 == TmaxX1) maxX1 -= 3; if (maxX3 == TmaxX3) maxX3 -= 3; } - if (block.lock()->hasInterpolationFlagFC(BW) && !block.lock()->hasInterpolationFlagFC(W) && - !block.lock()->hasInterpolationFlagFC(B)) { + if (block.lock()->hasInterpolationFlagFC(DIR_M0M) && !block.lock()->hasInterpolationFlagFC(DIR_M00) && + !block.lock()->hasInterpolationFlagFC(DIR_00M)) { if (minX1 == TminX1) minX1 += 4; if (minX3 == TminX3) minX3 += 4; } - if (block.lock()->hasInterpolationFlagFC(BE) && !block.lock()->hasInterpolationFlagFC(E) && - !block.lock()->hasInterpolationFlagFC(B)) { + if (block.lock()->hasInterpolationFlagFC(DIR_P0M) && !block.lock()->hasInterpolationFlagFC(DIR_P00) && + !block.lock()->hasInterpolationFlagFC(DIR_00M)) { if (maxX1 == TmaxX1) maxX1 -= 3; if (minX3 == TminX3) minX3 += 4; } - if (block.lock()->hasInterpolationFlagFC(TW) && !block.lock()->hasInterpolationFlagFC(W) && - !block.lock()->hasInterpolationFlagFC(T)) { + if (block.lock()->hasInterpolationFlagFC(DIR_M0P) && !block.lock()->hasInterpolationFlagFC(DIR_M00) && + !block.lock()->hasInterpolationFlagFC(DIR_00P)) { if (minX1 == TminX1) minX1 += 4; if (maxX3 == TmaxX3) @@ -1391,29 +1391,29 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, } ////T-B-N-S - if (block.lock()->hasInterpolationFlagFC(TN) && !block.lock()->hasInterpolationFlagFC(N) && - !block.lock()->hasInterpolationFlagFC(T)) { + if (block.lock()->hasInterpolationFlagFC(DIR_0PP) && !block.lock()->hasInterpolationFlagFC(DIR_0P0) && + !block.lock()->hasInterpolationFlagFC(DIR_00P)) { if (maxX2 == TmaxX2) maxX2 -= 3; if (maxX3 == TmaxX3) maxX3 -= 3; } - if (block.lock()->hasInterpolationFlagFC(BS) && !block.lock()->hasInterpolationFlagFC(S) && - !block.lock()->hasInterpolationFlagFC(B)) { + if (block.lock()->hasInterpolationFlagFC(DIR_0MM) && !block.lock()->hasInterpolationFlagFC(DIR_0M0) && + !block.lock()->hasInterpolationFlagFC(DIR_00M)) { if (minX2 == TminX2) minX2 += 4; if (minX3 == TminX3) minX3 += 4; } - if (block.lock()->hasInterpolationFlagFC(BN) && !block.lock()->hasInterpolationFlagFC(N) && - !block.lock()->hasInterpolationFlagFC(B)) { + if (block.lock()->hasInterpolationFlagFC(DIR_0PM) && !block.lock()->hasInterpolationFlagFC(DIR_0P0) && + !block.lock()->hasInterpolationFlagFC(DIR_00M)) { if (maxX2 == TmaxX2) maxX2 -= 3; if (minX3 == TminX3) minX3 += 4; } - if (block.lock()->hasInterpolationFlagFC(TS) && !block.lock()->hasInterpolationFlagFC(S) && - !block.lock()->hasInterpolationFlagFC(T)) { + if (block.lock()->hasInterpolationFlagFC(DIR_0MP) && !block.lock()->hasInterpolationFlagFC(DIR_0M0) && + !block.lock()->hasInterpolationFlagFC(DIR_00P)) { if (minX2 == TminX2) minX2 += 4; if (maxX3 == TmaxX3) @@ -1421,8 +1421,8 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, } // if - // (block.lock()->hasInterpolationFlagFC(D3Q27System::TNE)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::TE)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::TN)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::NE)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::T)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::N) - // && !block.lock()->hasInterpolationFlagFC(D3Q27System::E)) + // (block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_PPP)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_P0P)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_0PP)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_PP0)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_00P)&&!block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_0P0) + // && !block.lock()->hasInterpolationFlagFC(D3Q27System::DIR_P00)) //{ // if (maxX1==TmaxX1) maxX1 -= 3; // if (maxX2==TmaxX2) maxX2 -= 3; @@ -1448,8 +1448,8 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMins(int &minX1, in using namespace D3Q27System; switch (sendDir) { - case E: - case W: + case DIR_P00: + case DIR_M00: if (connType == OddEvenSE) minX2 += oMinX2; if (connType == OddOddNE) { @@ -1459,8 +1459,8 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMins(int &minX1, in if (connType == EvenOddNW) minX3 += oMinX3; break; - case N: - case S: + case DIR_0P0: + case DIR_0M0: if (connType == OddEvenSE) minX1 += oMinX1; if (connType == OddOddNE) { @@ -1470,8 +1470,8 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMins(int &minX1, in if (connType == EvenOddNW) minX3 += oMinX3; break; - case T: - case B: + case DIR_00P: + case DIR_00M: if (connType == OddEvenSE) minX1 += oMinX1; if (connType == OddOddNE) { @@ -1483,10 +1483,10 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMins(int &minX1, in break; ///// - case NE: - case SW: - case SE: - case NW: + case DIR_PP0: + case DIR_MM0: + case DIR_PM0: + case DIR_MP0: // case SW: if (connType == OddEvenSE) // minX2 += oMinX2; @@ -1499,10 +1499,10 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMins(int &minX1, in break; ////// - case TE: - case BW: - case BE: - case TW: + case DIR_P0P: + case DIR_M0M: + case DIR_P0M: + case DIR_M0P: if (connType == OddEvenSE) // minX1 += oMinX1; if (connType == OddOddNE) { @@ -1514,10 +1514,10 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMins(int &minX1, in break; // ////// - case TN: - case BS: - case BN: - case TS: + case DIR_0PP: + case DIR_0MM: + case DIR_0PM: + case DIR_0MP: if (connType == OddEvenSE) minX1 += oMinX1; if (connType == OddOddNE) { diff --git a/src/cpu/VirtualFluidsCore/Connectors/FullDirectConnector.cpp b/src/cpu/VirtualFluidsCore/Connectors/FullDirectConnector.cpp index 858921de452937158c620011889707f9560f09b9..18a8319589cde954b7c2202e10f3eda61b435671 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/FullDirectConnector.cpp +++ b/src/cpu/VirtualFluidsCore/Connectors/FullDirectConnector.cpp @@ -60,7 +60,7 @@ void FullDirectConnector::sendVectors() void FullDirectConnector::exchangeData() { // EAST - if (sendDir == D3Q27System::E) { + if (sendDir == D3Q27System::DIR_P00) { for (int x3 = 1; x3 < maxX3; x3++) { for (int x2 = 1; x2 < maxX2; x2++) { exchangeData(maxX1 - 1, x2, x3, 0, x2, x3); @@ -68,7 +68,7 @@ void FullDirectConnector::exchangeData() } } // WEST - else if (sendDir == D3Q27System::W) { + else if (sendDir == D3Q27System::DIR_M00) { for (int x3 = 1; x3 < maxX3; x3++) { for (int x2 = 1; x2 < maxX2; x2++) { exchangeData(1, x2, x3, maxX1, x2, x3); @@ -76,7 +76,7 @@ void FullDirectConnector::exchangeData() } } // NORTH - else if (sendDir == D3Q27System::N) { + else if (sendDir == D3Q27System::DIR_0P0) { for (int x3 = 1; x3 < maxX3; x3++) { for (int x1 = 1; x1 < maxX1; x1++) { exchangeData(x1, maxX2 - 1, x3, x1, 0, x3); @@ -84,7 +84,7 @@ void FullDirectConnector::exchangeData() } } // SOUTH - else if (sendDir == D3Q27System::S) { + else if (sendDir == D3Q27System::DIR_0M0) { for (int x3 = 1; x3 < maxX3; x3++) { for (int x1 = 1; x1 < maxX1; x1++) { exchangeData(x1, 1, x3, x1, maxX2, x3); @@ -93,7 +93,7 @@ void FullDirectConnector::exchangeData() } // TOP - else if (sendDir == D3Q27System::T) { + else if (sendDir == D3Q27System::DIR_00P) { for (int x2 = 1; x2 < maxX2; x2++) { for (int x1 = 1; x1 < maxX1; x1++) { exchangeData(x1, x2, maxX3 - 1, x1, x2, 0); @@ -101,7 +101,7 @@ void FullDirectConnector::exchangeData() } } // BOTTOM - else if (sendDir == D3Q27System::B) { + else if (sendDir == D3Q27System::DIR_00M) { for (int x2 = 1; x2 < maxX2; x2++) { for (int x1 = 1; x1 < maxX1; x1++) { exchangeData(x1, x2, 1, x1, x2, maxX3); @@ -109,77 +109,77 @@ void FullDirectConnector::exchangeData() } } // NORTHEAST - else if (sendDir == D3Q27System::NE) { + else if (sendDir == D3Q27System::DIR_PP0) { for (int x3 = 1; x3 < maxX3; x3++) { exchangeData(maxX1 - 1, maxX2 - 1, x3, 0, 0, x3); } } // NORTHWEST - else if (sendDir == D3Q27System::NW) { + else if (sendDir == D3Q27System::DIR_MP0) { for (int x3 = 1; x3 < maxX3; x3++) { exchangeData(1, maxX2 - 1, x3, maxX1, 0, x3); } } // SOUTHWEST - else if (sendDir == D3Q27System::SW) { + else if (sendDir == D3Q27System::DIR_MM0) { for (int x3 = 1; x3 < maxX3; x3++) { exchangeData(1, 1, x3, maxX1, maxX2, x3); } } // SOUTHEAST - else if (sendDir == D3Q27System::SE) { + else if (sendDir == D3Q27System::DIR_PM0) { for (int x3 = 1; x3 < maxX3; x3++) { exchangeData(maxX1 - 1, 1, x3, 0, maxX2, x3); } - } else if (sendDir == D3Q27System::TE) + } else if (sendDir == D3Q27System::DIR_P0P) for (int x2 = 1; x2 < maxX2; x2++) { exchangeData(maxX1 - 1, x2, maxX3 - 1, 0, x2, 0); } - else if (sendDir == D3Q27System::BW) + else if (sendDir == D3Q27System::DIR_M0M) for (int x2 = 1; x2 < maxX2; x2++) { exchangeData(1, x2, 1, maxX1, x2, maxX3); } - else if (sendDir == D3Q27System::BE) + else if (sendDir == D3Q27System::DIR_P0M) for (int x2 = 1; x2 < maxX2; x2++) { exchangeData(maxX1 - 1, x2, 1, 0, x2, maxX3); } - else if (sendDir == D3Q27System::TW) + else if (sendDir == D3Q27System::DIR_M0P) for (int x2 = 1; x2 < maxX2; x2++) { exchangeData(1, x2, maxX3 - 1, maxX1, x2, 0); } - else if (sendDir == D3Q27System::TN) + else if (sendDir == D3Q27System::DIR_0PP) for (int x1 = 1; x1 < maxX1; x1++) { exchangeData(x1, maxX2 - 1, maxX3 - 1, x1, 0, 0); } - else if (sendDir == D3Q27System::BS) + else if (sendDir == D3Q27System::DIR_0MM) for (int x1 = 1; x1 < maxX1; x1++) { exchangeData(x1, 1, 1, x1, maxX2, maxX3); } - else if (sendDir == D3Q27System::BN) + else if (sendDir == D3Q27System::DIR_0PM) for (int x1 = 1; x1 < maxX1; x1++) { exchangeData(x1, maxX2 - 1, 1, x1, 0, maxX3); } - else if (sendDir == D3Q27System::TS) + else if (sendDir == D3Q27System::DIR_0MP) for (int x1 = 1; x1 < maxX1; x1++) { exchangeData(x1, 1, maxX3 - 1, x1, maxX2, 0); } - else if (sendDir == D3Q27System::TSW) { + else if (sendDir == D3Q27System::DIR_MMP) { exchangeData(1, 1, maxX3 - 1, maxX1, maxX2, 0); - } else if (sendDir == D3Q27System::TSE) { + } else if (sendDir == D3Q27System::DIR_PMP) { exchangeData(maxX1 - 1, 1, maxX3 - 1, 0, maxX2, 0); - } else if (sendDir == D3Q27System::TNW) { + } else if (sendDir == D3Q27System::DIR_MPP) { exchangeData(1, maxX2 - 1, maxX3 - 1, maxX1, 0, 0); - } else if (sendDir == D3Q27System::TNE) { + } else if (sendDir == D3Q27System::DIR_PPP) { exchangeData(maxX1 - 1, maxX2 - 1, maxX3 - 1, 0, 0, 0); - } else if (sendDir == D3Q27System::BSW) { + } else if (sendDir == D3Q27System::DIR_MMM) { exchangeData(1, 1, 1, maxX1, maxX2, maxX3); - } else if (sendDir == D3Q27System::BSE) { + } else if (sendDir == D3Q27System::DIR_PMM) { exchangeData(maxX1 - 1, 1, 1, 0, maxX2, maxX3); - } else if (sendDir == D3Q27System::BNW) { + } else if (sendDir == D3Q27System::DIR_MPM) { exchangeData(1, maxX2 - 1, 1, maxX1, 0, maxX3); - } else if (sendDir == D3Q27System::BNE) { + } else if (sendDir == D3Q27System::DIR_PPM) { exchangeData(maxX1 - 1, maxX2 - 1, 1, 0, 0, maxX3); } else UB_THROW(UbException(UB_EXARGS, "unknown dir")); diff --git a/src/cpu/VirtualFluidsCore/Connectors/FullVectorConnector.cpp b/src/cpu/VirtualFluidsCore/Connectors/FullVectorConnector.cpp index ccbd62c2ff247bb2b02f478974c40592b693ce20..d5b810015abc1172699b7489df4ea0aee8b02fe2 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/FullVectorConnector.cpp +++ b/src/cpu/VirtualFluidsCore/Connectors/FullVectorConnector.cpp @@ -63,7 +63,7 @@ void FullVectorConnector::fillData() int index = 0; // EAST - if (sendDir == D3Q27System::E) { + if (sendDir == D3Q27System::DIR_P00) { for (int x3 = 1; x3 < maxX3; x3++) { for (int x2 = 1; x2 < maxX2; x2++) { fillData(sdata, index, maxX1 - 1, x2, x3); @@ -71,7 +71,7 @@ void FullVectorConnector::fillData() } } // WEST - else if (sendDir == D3Q27System::W) { + else if (sendDir == D3Q27System::DIR_M00) { for (int x3 = 1; x3 < maxX3; x3++) { for (int x2 = 1; x2 < maxX2; x2++) { fillData(sdata, index, 1, x2, x3); @@ -79,7 +79,7 @@ void FullVectorConnector::fillData() } } // NORTH - else if (sendDir == D3Q27System::N) { + else if (sendDir == D3Q27System::DIR_0P0) { for (int x3 = 1; x3 < maxX3; x3++) { for (int x1 = 1; x1 < maxX1; x1++) { fillData(sdata, index, x1, maxX2 - 1, x3); @@ -87,7 +87,7 @@ void FullVectorConnector::fillData() } } // SOUTH - else if (sendDir == D3Q27System::S) { + else if (sendDir == D3Q27System::DIR_0M0) { for (int x3 = 1; x3 < maxX3; x3++) { for (int x1 = 1; x1 < maxX1; x1++) { fillData(sdata, index, x1, 1, x3); @@ -95,7 +95,7 @@ void FullVectorConnector::fillData() } } // TOP - else if (sendDir == D3Q27System::T) { + else if (sendDir == D3Q27System::DIR_00P) { for (int x2 = 1; x2 < maxX2; x2++) { for (int x1 = 1; x1 < maxX1; x1++) { fillData(sdata, index, x1, x2, maxX3 - 1); @@ -103,7 +103,7 @@ void FullVectorConnector::fillData() } } // BOTTOM - else if (sendDir == D3Q27System::B) { + else if (sendDir == D3Q27System::DIR_00M) { for (int x2 = 1; x2 < maxX2; x2++) { for (int x1 = 1; x1 < maxX1; x1++) { fillData(sdata, index, x1, x2, 1); @@ -111,24 +111,24 @@ void FullVectorConnector::fillData() } } // NE NW SW SE - else if (sendDir == D3Q27System::NE || sendDir == D3Q27System::NW || sendDir == D3Q27System::SW || - sendDir == D3Q27System::SE) { + else if (sendDir == D3Q27System::DIR_PP0 || sendDir == D3Q27System::DIR_MP0 || sendDir == D3Q27System::DIR_MM0 || + sendDir == D3Q27System::DIR_PM0) { int x1 = 0; int x2 = 0; switch (sendDir) { - case D3Q27System::NE: + case D3Q27System::DIR_PP0: x1 = maxX1 - 1; x2 = maxX2 - 1; break; - case D3Q27System::NW: + case D3Q27System::DIR_MP0: x1 = 1; x2 = maxX2 - 1; break; - case D3Q27System::SW: + case D3Q27System::DIR_MM0: x1 = 1; x2 = 1; break; - case D3Q27System::SE: + case D3Q27System::DIR_PM0: x1 = maxX1 - 1; x2 = 1; break; @@ -138,24 +138,24 @@ void FullVectorConnector::fillData() } } // TE TW BW BE - else if (sendDir == D3Q27System::TE || sendDir == D3Q27System::TW || sendDir == D3Q27System::BW || - sendDir == D3Q27System::BE) { + else if (sendDir == D3Q27System::DIR_P0P || sendDir == D3Q27System::DIR_M0P || sendDir == D3Q27System::DIR_M0M || + sendDir == D3Q27System::DIR_P0M) { int x1 = 0; int x3 = 0; switch (sendDir) { - case D3Q27System::TE: + case D3Q27System::DIR_P0P: x1 = maxX1 - 1; x3 = maxX3 - 1; break; - case D3Q27System::TW: + case D3Q27System::DIR_M0P: x1 = 1; x3 = maxX3 - 1; break; - case D3Q27System::BW: + case D3Q27System::DIR_M0M: x1 = 1; x3 = 1; break; - case D3Q27System::BE: + case D3Q27System::DIR_P0M: x1 = maxX1 - 1; x3 = 1; break; @@ -165,24 +165,24 @@ void FullVectorConnector::fillData() } } // TN BN BS TS - else if (sendDir == D3Q27System::TN || sendDir == D3Q27System::BN || sendDir == D3Q27System::BS || - sendDir == D3Q27System::TS) { + else if (sendDir == D3Q27System::DIR_0PP || sendDir == D3Q27System::DIR_0PM || sendDir == D3Q27System::DIR_0MM || + sendDir == D3Q27System::DIR_0MP) { int x2 = 0; int x3 = 0; switch (sendDir) { - case D3Q27System::TN: + case D3Q27System::DIR_0PP: x3 = maxX3 - 1; x2 = maxX2 - 1; break; - case D3Q27System::BN: + case D3Q27System::DIR_0PM: x3 = 1; x2 = maxX2 - 1; break; - case D3Q27System::BS: + case D3Q27System::DIR_0MM: x3 = 1; x2 = 1; break; - case D3Q27System::TS: + case D3Q27System::DIR_0MP: x3 = maxX3 - 1; x2 = 1; break; @@ -192,49 +192,49 @@ void FullVectorConnector::fillData() } } // TNE TNW TSW TSE BNE BNW BSW BSE - else if (sendDir == D3Q27System::TNE || sendDir == D3Q27System::TNW || sendDir == D3Q27System::TSW || - sendDir == D3Q27System::TSE || sendDir == D3Q27System::BNE || sendDir == D3Q27System::BNW || - sendDir == D3Q27System::BSW || sendDir == D3Q27System::BSE) { + else if (sendDir == D3Q27System::DIR_PPP || sendDir == D3Q27System::DIR_MPP || sendDir == D3Q27System::DIR_MMP || + sendDir == D3Q27System::DIR_PMP || sendDir == D3Q27System::DIR_PPM || sendDir == D3Q27System::DIR_MPM || + sendDir == D3Q27System::DIR_MMM || sendDir == D3Q27System::DIR_PMM) { int x1 = 0; int x2 = 0; int x3 = 0; switch (sendDir) { - case D3Q27System::TNE: + case D3Q27System::DIR_PPP: x1 = maxX1 - 1; x2 = maxX2 - 1; x3 = maxX3 - 1; break; - case D3Q27System::TNW: + case D3Q27System::DIR_MPP: x1 = 1; x2 = maxX2 - 1; x3 = maxX3 - 1; break; - case D3Q27System::TSW: + case D3Q27System::DIR_MMP: x1 = 1; x2 = 1; x3 = maxX3 - 1; break; - case D3Q27System::TSE: + case D3Q27System::DIR_PMP: x1 = maxX1 - 1; x2 = 1; x3 = maxX3 - 1; break; - case D3Q27System::BNE: + case D3Q27System::DIR_PPM: x1 = maxX1 - 1; x2 = maxX2 - 1; x3 = 1; break; - case D3Q27System::BNW: + case D3Q27System::DIR_MPM: x1 = 1; x2 = maxX2 - 1; x3 = 1; break; - case D3Q27System::BSW: + case D3Q27System::DIR_MMM: x1 = 1; x2 = 1; x3 = 1; break; - case D3Q27System::BSE: + case D3Q27System::DIR_PMM: x1 = maxX1 - 1; x2 = 1; x3 = 1; @@ -257,37 +257,37 @@ void FullVectorConnector::distributeData() int index = 0; - if (sendDir == D3Q27System::W) { + if (sendDir == D3Q27System::DIR_M00) { for (int x3 = 1; x3 < maxX3; x3++) { for (int x2 = 1; x2 < maxX2; x2++) { distributeData(rdata, index, 0, x2, x3); } } - } else if (sendDir == D3Q27System::E) { + } else if (sendDir == D3Q27System::DIR_P00) { for (int x3 = 1; x3 < maxX3; x3++) { for (int x2 = 1; x2 < maxX2; x2++) { distributeData(rdata, index, maxX1, x2, x3); } } - } else if (sendDir == D3Q27System::S) { + } else if (sendDir == D3Q27System::DIR_0M0) { for (int x3 = 1; x3 < maxX3; x3++) { for (int x1 = 1; x1 < maxX1; x1++) { distributeData(rdata, index, x1, 0, x3); } } - } else if (sendDir == D3Q27System::N) { + } else if (sendDir == D3Q27System::DIR_0P0) { for (int x3 = 1; x3 < maxX3; x3++) { for (int x1 = 1; x1 < maxX1; x1++) { distributeData(rdata, index, x1, maxX2, x3); } } - } else if (sendDir == D3Q27System::B) { + } else if (sendDir == D3Q27System::DIR_00M) { for (int x2 = 1; x2 < maxX2; x2++) { for (int x1 = 1; x1 < maxX1; x1++) { distributeData(rdata, index, x1, x2, 0); } } - } else if (sendDir == D3Q27System::T) { + } else if (sendDir == D3Q27System::DIR_00P) { for (int x2 = 1; x2 < maxX2; x2++) { for (int x1 = 1; x1 < maxX1; x1++) { distributeData(rdata, index, x1, x2, maxX3); @@ -295,25 +295,25 @@ void FullVectorConnector::distributeData() } } // NE NW SW SE - else if (sendDir == D3Q27System::NE || sendDir == D3Q27System::NW || sendDir == D3Q27System::SW || - sendDir == D3Q27System::SE) { + else if (sendDir == D3Q27System::DIR_PP0 || sendDir == D3Q27System::DIR_MP0 || sendDir == D3Q27System::DIR_MM0 || + sendDir == D3Q27System::DIR_PM0) { int x1 = 0; int x2 = 0; switch (sendDir) // wenn sendir NE dann kommen werte von SW { - case D3Q27System::NE: + case D3Q27System::DIR_PP0: x1 = maxX1; x2 = maxX2; break; - case D3Q27System::NW: + case D3Q27System::DIR_MP0: x1 = 0; x2 = maxX2; break; - case D3Q27System::SW: + case D3Q27System::DIR_MM0: x1 = 0; x2 = 0; break; - case D3Q27System::SE: + case D3Q27System::DIR_PM0: x1 = maxX1; x2 = 0; break; @@ -324,27 +324,27 @@ void FullVectorConnector::distributeData() } // TE TW BW BE - else if (sendDir == D3Q27System::TE || sendDir == D3Q27System::TW || sendDir == D3Q27System::BW || - sendDir == D3Q27System::BE) + else if (sendDir == D3Q27System::DIR_P0P || sendDir == D3Q27System::DIR_M0P || sendDir == D3Q27System::DIR_M0M || + sendDir == D3Q27System::DIR_P0M) { int x1 = 0; int x3 = 0; switch (sendDir) // wenn sendir NE dann kommen werte von SW { - case D3Q27System::TE: + case D3Q27System::DIR_P0P: x1 = maxX1; x3 = maxX3; break; - case D3Q27System::TW: + case D3Q27System::DIR_M0P: x1 = 0; x3 = maxX3; break; - case D3Q27System::BW: + case D3Q27System::DIR_M0M: x1 = 0; x3 = 0; break; - case D3Q27System::BE: + case D3Q27System::DIR_P0M: x1 = maxX1; x3 = 0; break; @@ -354,24 +354,24 @@ void FullVectorConnector::distributeData() } } // TN BN BS TS - else if (sendDir == D3Q27System::TN || sendDir == D3Q27System::BN || sendDir == D3Q27System::BS || - sendDir == D3Q27System::TS) { + else if (sendDir == D3Q27System::DIR_0PP || sendDir == D3Q27System::DIR_0PM || sendDir == D3Q27System::DIR_0MM || + sendDir == D3Q27System::DIR_0MP) { int x2 = 0; int x3 = 0; switch (sendDir) { - case D3Q27System::TN: + case D3Q27System::DIR_0PP: x3 = maxX3; x2 = maxX2; break; - case D3Q27System::BN: + case D3Q27System::DIR_0PM: x3 = 0; x2 = maxX2; break; - case D3Q27System::BS: + case D3Q27System::DIR_0MM: x3 = 0; x2 = 0; break; - case D3Q27System::TS: + case D3Q27System::DIR_0MP: x3 = maxX3; x2 = 0; break; @@ -381,50 +381,50 @@ void FullVectorConnector::distributeData() } } // TNE TNW TSW TSE BNE BNW BSW BSE - else if (sendDir == D3Q27System::TNE || sendDir == D3Q27System::TNW || sendDir == D3Q27System::TSW || - sendDir == D3Q27System::TSE || sendDir == D3Q27System::BNE || sendDir == D3Q27System::BNW || - sendDir == D3Q27System::BSW || sendDir == D3Q27System::BSE) { + else if (sendDir == D3Q27System::DIR_PPP || sendDir == D3Q27System::DIR_MPP || sendDir == D3Q27System::DIR_MMP || + sendDir == D3Q27System::DIR_PMP || sendDir == D3Q27System::DIR_PPM || sendDir == D3Q27System::DIR_MPM || + sendDir == D3Q27System::DIR_MMM || sendDir == D3Q27System::DIR_PMM) { int x1 = 0; int x2 = 0; int x3 = 0; switch (sendDir) { - case D3Q27System::TNE: + case D3Q27System::DIR_PPP: x1 = maxX1; x2 = maxX2; x3 = maxX3; break; - case D3Q27System::TNW: + case D3Q27System::DIR_MPP: x1 = 0; x2 = maxX2; x3 = maxX3; break; - case D3Q27System::TSW: + case D3Q27System::DIR_MMP: x1 = 0; x2 = 0; x3 = maxX3; break; - case D3Q27System::TSE: + case D3Q27System::DIR_PMP: x1 = maxX1; x2 = 0; x3 = maxX3; break; - case D3Q27System::BNE: + case D3Q27System::DIR_PPM: x1 = maxX1; x2 = maxX2; x3 = 0; break; - case D3Q27System::BNW: + case D3Q27System::DIR_MPM: x1 = 0; x2 = maxX2; x3 = 0; break; - case D3Q27System::BSW: + case D3Q27System::DIR_MMM: x1 = 0; x2 = 0; x3 = 0; break; - case D3Q27System::BSE: + case D3Q27System::DIR_PMM: x1 = maxX1; x2 = 0; x3 = 0; diff --git a/src/cpu/VirtualFluidsCore/Connectors/OneDistributionFullVectorConnector.cpp b/src/cpu/VirtualFluidsCore/Connectors/OneDistributionFullVectorConnector.cpp index 21dbee2f9e0f931d1a6400d03784c1612e61e3d2..72f43858ae7e64538b4b9bdb7028a8c895e2e84d 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/OneDistributionFullVectorConnector.cpp +++ b/src/cpu/VirtualFluidsCore/Connectors/OneDistributionFullVectorConnector.cpp @@ -21,48 +21,48 @@ void OneDistributionFullVectorConnector::init() case D3Q27System::DIR_000: UB_THROW(UbException(UB_EXARGS, "ZERO not allowed")); break; - case D3Q27System::E: - case D3Q27System::W: + case D3Q27System::DIR_P00: + case D3Q27System::DIR_M00: sender->getData().resize(maxX2 * maxX3 * anz, 0.0); break; - case D3Q27System::N: - case D3Q27System::S: + case D3Q27System::DIR_0P0: + case D3Q27System::DIR_0M0: sender->getData().resize(maxX1 * maxX3 * anz, 0.0); break; - case D3Q27System::T: - case D3Q27System::B: + case D3Q27System::DIR_00P: + case D3Q27System::DIR_00M: sender->getData().resize(maxX1 * maxX2 * anz, 0.0); break; - case D3Q27System::NE: - case D3Q27System::SW: - case D3Q27System::SE: - case D3Q27System::NW: + case D3Q27System::DIR_PP0: + case D3Q27System::DIR_MM0: + case D3Q27System::DIR_PM0: + case D3Q27System::DIR_MP0: sender->getData().resize(maxX3 * anz, 0.0); break; - case D3Q27System::TE: - case D3Q27System::BW: - case D3Q27System::BE: - case D3Q27System::TW: + case D3Q27System::DIR_P0P: + case D3Q27System::DIR_M0M: + case D3Q27System::DIR_P0M: + case D3Q27System::DIR_M0P: sender->getData().resize(maxX2 * anz, 0.0); break; - case D3Q27System::TN: - case D3Q27System::BS: - case D3Q27System::BN: - case D3Q27System::TS: + case D3Q27System::DIR_0PP: + case D3Q27System::DIR_0MM: + case D3Q27System::DIR_0PM: + case D3Q27System::DIR_0MP: sender->getData().resize(maxX1 * anz, 0.0); break; - case D3Q27System::TNE: - case D3Q27System::BSW: - case D3Q27System::BNE: - case D3Q27System::TSW: - case D3Q27System::TSE: - case D3Q27System::BNW: - case D3Q27System::BSE: - case D3Q27System::TNW: + case D3Q27System::DIR_PPP: + case D3Q27System::DIR_MMM: + case D3Q27System::DIR_PPM: + case D3Q27System::DIR_MMP: + case D3Q27System::DIR_PMP: + case D3Q27System::DIR_MPM: + case D3Q27System::DIR_PMM: + case D3Q27System::DIR_MPP: sender->getData().resize(anz, 0.0); break; diff --git a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.cpp b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.cpp index d0ff594f75efa3bfd12f1cbee9629f41e6f86dc3..782b0f27d4b0cd006a27c89def02dad11ff558c5 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.cpp +++ b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.cpp @@ -94,7 +94,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() int maxX3m3 = maxX3 - 3; // EAST - if (sendDir == D3Q27System::E) { + if (sendDir == D3Q27System::DIR_P00) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { exchangeData(maxX1m3, x2, x3, minX1, x2, x3); @@ -103,7 +103,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // WEST - else if (sendDir == D3Q27System::W) { + else if (sendDir == D3Q27System::DIR_M00) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { exchangeData(minX1p3, x2, x3, maxX1, x2, x3); @@ -112,7 +112,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // NORTH - else if (sendDir == D3Q27System::N) { + else if (sendDir == D3Q27System::DIR_0P0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, maxX2m3, x3, x1, minX2, x3); @@ -121,7 +121,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // SOUTH - else if (sendDir == D3Q27System::S) { + else if (sendDir == D3Q27System::DIR_0M0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, minX2p3, x3, x1, maxX2, x3); @@ -131,7 +131,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } // TOP - else if (sendDir == D3Q27System::T) { + else if (sendDir == D3Q27System::DIR_00P) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, x2, maxX3m3, x1, x2, minX3); @@ -140,7 +140,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // BOTTOM - else if (sendDir == D3Q27System::B) { + else if (sendDir == D3Q27System::DIR_00M) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, x2, minX3p3, x1, x2, maxX3); @@ -149,7 +149,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // NORTHEAST - else if (sendDir == D3Q27System::NE) { + else if (sendDir == D3Q27System::DIR_PP0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { exchangeData(maxX1m3, maxX2m3, x3, minX1, minX2, x3); exchangeData(maxX1m2, maxX2m2, x3, minX1p1, minX2p1, x3); @@ -158,7 +158,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // NORTHWEST - else if (sendDir == D3Q27System::NW) { + else if (sendDir == D3Q27System::DIR_MP0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { exchangeData(minX1p3, maxX2m3, x3, maxX1, minX2, x3); exchangeData(minX1p2, maxX2m2, x3, maxX1m1, minX2p1, x3); @@ -167,7 +167,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // SOUTHWEST - else if (sendDir == D3Q27System::SW) { + else if (sendDir == D3Q27System::DIR_MM0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { exchangeData(minX1p3, minX2p3, x3, maxX1, maxX2, x3); exchangeData(minX1p2, minX2p2, x3, maxX1m1, maxX2m1, x3); @@ -176,70 +176,70 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // SOUTHEAST - else if (sendDir == D3Q27System::SE) { + else if (sendDir == D3Q27System::DIR_PM0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { exchangeData(maxX1m3, minX2p3, x3, minX1, maxX2, x3); exchangeData(maxX1m2, minX2p2, x3, minX1p1, maxX2m1, x3); exchangeData(maxX1m3, minX2p2, x3, minX1, maxX2m1, x3); exchangeData(maxX1m2, minX2p3, x3, minX1p1, maxX2, x3); } - } else if (sendDir == D3Q27System::TE) + } else if (sendDir == D3Q27System::DIR_P0P) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { exchangeData(maxX1m3, x2, maxX3m3, minX1, x2, minX3); exchangeData(maxX1m2, x2, maxX3m2, minX1p1, x2, minX3p1); exchangeData(maxX1m3, x2, maxX3m2, minX1, x2, minX3p1); exchangeData(maxX1m2, x2, maxX3m3, minX1p1, x2, minX3); } - else if (sendDir == D3Q27System::BW) + else if (sendDir == D3Q27System::DIR_M0M) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { exchangeData(minX1p3, x2, minX3p3, maxX1, x2, maxX3); exchangeData(minX1p2, x2, minX3p2, maxX1m1, x2, maxX3m1); exchangeData(minX1p3, x2, minX3p2, maxX1, x2, maxX3m1); exchangeData(minX1p2, x2, minX3p3, maxX1m1, x2, maxX3); } - else if (sendDir == D3Q27System::BE) + else if (sendDir == D3Q27System::DIR_P0M) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { exchangeData(maxX1m3, x2, minX3p3, minX1, x2, maxX3); exchangeData(maxX1m2, x2, minX3p2, minX1p1, x2, maxX3m1); exchangeData(maxX1m3, x2, minX3p2, minX1, x2, maxX3m1); exchangeData(maxX1m2, x2, minX3p3, minX1p1, x2, maxX3); } - else if (sendDir == D3Q27System::TW) + else if (sendDir == D3Q27System::DIR_M0P) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { exchangeData(minX1p3, x2, maxX3m3, maxX1, x2, minX3); exchangeData(minX1p2, x2, maxX3m2, maxX1m1, x2, minX3p1); exchangeData(minX1p3, x2, maxX3m2, maxX1, x2, minX3p1); exchangeData(minX1p2, x2, maxX3m3, maxX1m1, x2, minX3); } - else if (sendDir == D3Q27System::TN) + else if (sendDir == D3Q27System::DIR_0PP) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, maxX2m3, maxX3m3, x1, minX2, minX3); exchangeData(x1, maxX2m2, maxX3m2, x1, minX2p1, minX3p1); exchangeData(x1, maxX2m3, maxX3m2, x1, minX2, minX3p1); exchangeData(x1, maxX2m2, maxX3m3, x1, minX2p1, minX3); } - else if (sendDir == D3Q27System::BS) + else if (sendDir == D3Q27System::DIR_0MM) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, minX2p3, minX3p3, x1, maxX2, maxX3); exchangeData(x1, minX2p2, minX3p2, x1, maxX2m1, maxX3m1); exchangeData(x1, minX2p3, minX3p2, x1, maxX2, maxX3m1); exchangeData(x1, minX2p2, minX3p3, x1, maxX2m1, maxX3); } - else if (sendDir == D3Q27System::BN) + else if (sendDir == D3Q27System::DIR_0PM) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, maxX2m3, minX3p3, x1, minX2, maxX3); exchangeData(x1, maxX2m2, minX3p2, x1, minX2p1, maxX3m1); exchangeData(x1, maxX2m3, minX3p2, x1, minX2, maxX3m1); exchangeData(x1, maxX2m2, minX3p3, x1, minX2p1, maxX3); } - else if (sendDir == D3Q27System::TS) + else if (sendDir == D3Q27System::DIR_0MP) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, minX2p3, maxX3m3, x1, maxX2, minX3); exchangeData(x1, minX2p2, maxX3m2, x1, maxX2m1, minX3p1); exchangeData(x1, minX2p3, maxX3m2, x1, maxX2, minX3p1); exchangeData(x1, minX2p2, maxX3m3, x1, maxX2m1, minX3); } - else if (sendDir == D3Q27System::TSW) { + else if (sendDir == D3Q27System::DIR_MMP) { exchangeData(minX1p3, minX2p3, maxX3m3, maxX1, maxX2, minX3); exchangeData(minX1p2, minX2p2, maxX3m2, maxX1m1, maxX2m1, minX3p1); exchangeData(minX1p3, minX2p2, maxX3m2, maxX1, maxX2m1, minX3p1); @@ -248,7 +248,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(minX1p3, minX2p3, maxX3m2, maxX1, maxX2, minX3p1); exchangeData(minX1p3, minX2p2, maxX3m3, maxX1, maxX2m1, minX3); exchangeData(minX1p2, minX2p3, maxX3m3, maxX1m1, maxX2, minX3); - } else if (sendDir == D3Q27System::TSE) { + } else if (sendDir == D3Q27System::DIR_PMP) { exchangeData(maxX1m3, minX1p3, maxX3m3, minX1, maxX2, minX3); exchangeData(maxX1m2, minX1p2, maxX3m2, minX1p1, maxX2m1, minX3p1); exchangeData(maxX1m3, minX1p2, maxX3m2, minX1, maxX2m1, minX3p1); @@ -257,7 +257,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(maxX1m3, minX1p3, maxX3m2, minX1, maxX2, minX3p1); exchangeData(maxX1m3, minX1p2, maxX3m3, minX1, maxX2m1, minX3); exchangeData(maxX1m2, minX1p3, maxX3m3, minX1p1, maxX2, minX3); - } else if (sendDir == D3Q27System::TNW) { + } else if (sendDir == D3Q27System::DIR_MPP) { exchangeData(minX1p3, maxX2m3, maxX3m3, maxX1, minX2, minX3); exchangeData(minX1p2, maxX2m2, maxX3m2, maxX1m1, minX2p1, minX3p1); exchangeData(minX1p3, maxX2m2, maxX3m2, maxX1, minX2p1, minX3p1); @@ -266,7 +266,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(minX1p3, maxX2m3, maxX3m2, maxX1, minX2, minX3p1); exchangeData(minX1p3, maxX2m2, maxX3m3, maxX1, minX2p1, minX3); exchangeData(minX1p2, maxX2m3, maxX3m3, maxX1m1, minX2, minX3); - } else if (sendDir == D3Q27System::TNE) { + } else if (sendDir == D3Q27System::DIR_PPP) { exchangeData(maxX1m3, maxX2m3, maxX3m3, minX1, minX2, minX3); exchangeData(maxX1m2, maxX2m2, maxX3m2, minX1p1, minX2p1, minX3p1); exchangeData(maxX1m3, maxX2m2, maxX3m2, minX1, minX2p1, minX3p1); @@ -275,7 +275,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(maxX1m3, maxX2m3, maxX3m2, minX1, minX2, minX3p1); exchangeData(maxX1m3, maxX2m2, maxX3m3, minX1, minX2p1, minX3); exchangeData(maxX1m2, maxX2m3, maxX3m3, minX1p1, minX2, minX3); - } else if (sendDir == D3Q27System::BSW) { + } else if (sendDir == D3Q27System::DIR_MMM) { exchangeData(minX1p3, minX2p3, minX3p3, maxX1, maxX2, maxX3); exchangeData(minX1p2, minX2p2, minX3p2, maxX1m1, maxX2m1, maxX3m1); exchangeData(minX1p3, minX2p2, minX3p2, maxX1, maxX2m1, maxX3m1); @@ -284,7 +284,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(minX1p3, minX2p3, minX3p2, maxX1, maxX2, maxX3m1); exchangeData(minX1p3, minX2p2, minX3p3, maxX1, maxX2m1, maxX3); exchangeData(minX1p2, minX2p3, minX3p3, maxX1m1, maxX2, maxX3); - } else if (sendDir == D3Q27System::BSE) { + } else if (sendDir == D3Q27System::DIR_PMM) { exchangeData(maxX1m3, minX2p3, minX3p3, minX1, maxX2, maxX3); exchangeData(maxX1m2, minX2p2, minX3p2, minX1p1, maxX2m1, maxX3m1); exchangeData(maxX1m3, minX2p2, minX3p2, minX1, maxX2m1, maxX3m1); @@ -293,7 +293,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(maxX1m3, minX2p3, minX3p2, minX1, maxX2, maxX3m1); exchangeData(maxX1m3, minX2p2, minX3p3, minX1, maxX2m1, maxX3); exchangeData(maxX1m2, minX2p3, minX3p3, minX1p1, maxX2, maxX3); - } else if (sendDir == D3Q27System::BNW) { + } else if (sendDir == D3Q27System::DIR_MPM) { exchangeData(minX1p3, maxX2m3, minX3p3, maxX1, minX2, maxX3); exchangeData(minX1p2, maxX2m2, minX3p2, maxX1m1, minX2p1, maxX3m1); exchangeData(minX1p3, maxX2m2, minX3p2, maxX1, minX2p1, maxX3m1); @@ -302,7 +302,7 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(minX1p3, maxX2m3, minX3p2, maxX1, minX2, maxX3m1); exchangeData(minX1p3, maxX2m2, minX3p3, maxX1, minX2p1, maxX3); exchangeData(minX1p2, maxX2m3, minX3p3, maxX1m1, minX2, maxX3); - } else if (sendDir == D3Q27System::BNE) { + } else if (sendDir == D3Q27System::DIR_PPM) { exchangeData(maxX1m3, maxX2m3, minX3p3, minX1, minX2, maxX3); exchangeData(maxX1m2, maxX2m2, minX3p2, minX1p1, minX2p1, maxX3m1); exchangeData(maxX1m3, maxX2m2, minX3p2, minX1, minX2p1, maxX3m1); diff --git a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.cpp b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.cpp index 7d2e5e00a798fb3fecca426f601254d9f7d0729e..0b94f7b4a971462517db6dd07050942f4b8595c0 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.cpp +++ b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.cpp @@ -61,36 +61,36 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::init() switch (sendDir) { case D3Q27System::DIR_000: UB_THROW(UbException(UB_EXARGS, "ZERO not allowed")); break; - case D3Q27System::E: - case D3Q27System::W: sender->getData().resize(maxX2*maxX3*anz*2, 0.0); break; - case D3Q27System::N: - case D3Q27System::S: sender->getData().resize(maxX1*maxX3*anz*2, 0.0); break; - case D3Q27System::T: - case D3Q27System::B: sender->getData().resize(maxX1*maxX2*anz*2, 0.0); break; + case D3Q27System::DIR_P00: + case D3Q27System::DIR_M00: sender->getData().resize(maxX2*maxX3*anz*2, 0.0); break; + case D3Q27System::DIR_0P0: + case D3Q27System::DIR_0M0: sender->getData().resize(maxX1*maxX3*anz*2, 0.0); break; + case D3Q27System::DIR_00P: + case D3Q27System::DIR_00M: sender->getData().resize(maxX1*maxX2*anz*2, 0.0); break; - case D3Q27System::NE: - case D3Q27System::SW: - case D3Q27System::SE: - case D3Q27System::NW: sender->getData().resize(maxX3*anz*4, 0.0); break; + case D3Q27System::DIR_PP0: + case D3Q27System::DIR_MM0: + case D3Q27System::DIR_PM0: + case D3Q27System::DIR_MP0: sender->getData().resize(maxX3*anz*4, 0.0); break; - case D3Q27System::TE: - case D3Q27System::BW: - case D3Q27System::BE: - case D3Q27System::TW: sender->getData().resize(maxX2*anz*4, 0.0); break; + case D3Q27System::DIR_P0P: + case D3Q27System::DIR_M0M: + case D3Q27System::DIR_P0M: + case D3Q27System::DIR_M0P: sender->getData().resize(maxX2*anz*4, 0.0); break; - case D3Q27System::TN: - case D3Q27System::BS: - case D3Q27System::BN: - case D3Q27System::TS: sender->getData().resize(maxX1*anz*4, 0.0); break; + case D3Q27System::DIR_0PP: + case D3Q27System::DIR_0MM: + case D3Q27System::DIR_0PM: + case D3Q27System::DIR_0MP: sender->getData().resize(maxX1*anz*4, 0.0); break; - case D3Q27System::TNE: - case D3Q27System::BSW: - case D3Q27System::BNE: - case D3Q27System::TSW: - case D3Q27System::TSE: - case D3Q27System::BNW: - case D3Q27System::BSE: - case D3Q27System::TNW: sender->getData().resize(anz*8, 0.0); break; + case D3Q27System::DIR_PPP: + case D3Q27System::DIR_MMM: + case D3Q27System::DIR_PPM: + case D3Q27System::DIR_MMP: + case D3Q27System::DIR_PMP: + case D3Q27System::DIR_MPM: + case D3Q27System::DIR_PMM: + case D3Q27System::DIR_MPP: sender->getData().resize(anz*8, 0.0); break; default: UB_THROW(UbException(UB_EXARGS, "unknown sendDir")); } @@ -138,7 +138,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() int index = 0; // EAST - if (sendDir == D3Q27System::E) { + if (sendDir == D3Q27System::DIR_P00) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { fillData(sdata, index, maxX1m3, x2, x3); @@ -147,7 +147,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // WEST - else if (sendDir == D3Q27System::W) { + else if (sendDir == D3Q27System::DIR_M00) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { fillData(sdata, index, minX1p3, x2, x3); @@ -156,7 +156,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // NORTH - else if (sendDir == D3Q27System::N) { + else if (sendDir == D3Q27System::DIR_0P0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, maxX2m3, x3); @@ -165,7 +165,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // SOUTH - else if (sendDir == D3Q27System::S) { + else if (sendDir == D3Q27System::DIR_0M0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, minX2p3, x3); @@ -175,7 +175,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() } // TOP - else if (sendDir == D3Q27System::T) { + else if (sendDir == D3Q27System::DIR_00P) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, x2, maxX3m3); @@ -184,7 +184,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // BOTTOM - else if (sendDir == D3Q27System::B) { + else if (sendDir == D3Q27System::DIR_00M) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, x2, minX3p3); @@ -193,7 +193,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // NORTHEAST - else if (sendDir == D3Q27System::NE) { + else if (sendDir == D3Q27System::DIR_PP0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { fillData(sdata, index, maxX1m3, maxX2m3, x3); fillData(sdata, index, maxX1m2, maxX2m2, x3); @@ -202,7 +202,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // NORTHWEST - else if (sendDir == D3Q27System::NW) { + else if (sendDir == D3Q27System::DIR_MP0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { fillData(sdata, index, minX1p3, maxX2m3, x3); fillData(sdata, index, minX1p2, maxX2m2, x3); @@ -211,7 +211,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // SOUTHWEST - else if (sendDir == D3Q27System::SW) { + else if (sendDir == D3Q27System::DIR_MM0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { fillData(sdata, index, minX1p3, minX2p3, x3); fillData(sdata, index, minX1p2, minX2p2, x3); @@ -220,70 +220,70 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // SOUTHEAST - else if (sendDir == D3Q27System::SE) { + else if (sendDir == D3Q27System::DIR_PM0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { fillData(sdata, index, maxX1m3, minX2p3, x3); fillData(sdata, index, maxX1m2, minX2p2, x3); fillData(sdata, index, maxX1m3, minX2p2, x3); fillData(sdata, index, maxX1m2, minX2p3, x3); } - } else if (sendDir == D3Q27System::TE) + } else if (sendDir == D3Q27System::DIR_P0P) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { fillData(sdata, index, maxX1m3, x2, maxX3m3); fillData(sdata, index, maxX1m2, x2, maxX3m2); fillData(sdata, index, maxX1m3, x2, maxX3m2); fillData(sdata, index, maxX1m2, x2, maxX3m3); } - else if (sendDir == D3Q27System::BW) + else if (sendDir == D3Q27System::DIR_M0M) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { fillData(sdata, index, minX1p3, x2, minX3p3); fillData(sdata, index, minX1p2, x2, minX3p2); fillData(sdata, index, minX1p3, x2, minX3p2); fillData(sdata, index, minX1p2, x2, minX3p3); } - else if (sendDir == D3Q27System::BE) + else if (sendDir == D3Q27System::DIR_P0M) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { fillData(sdata, index, maxX1m3, x2, minX3p3); fillData(sdata, index, maxX1m2, x2, minX3p2); fillData(sdata, index, maxX1m3, x2, minX3p2); fillData(sdata, index, maxX1m2, x2, minX3p3); } - else if (sendDir == D3Q27System::TW) + else if (sendDir == D3Q27System::DIR_M0P) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { fillData(sdata, index, minX1p3, x2, maxX3m3); fillData(sdata, index, minX1p2, x2, maxX3m2); fillData(sdata, index, minX1p3, x2, maxX3m2); fillData(sdata, index, minX1p2, x2, maxX3m3); } - else if (sendDir == D3Q27System::TN) + else if (sendDir == D3Q27System::DIR_0PP) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, maxX2m3, maxX3m3); fillData(sdata, index, x1, maxX2m2, maxX3m2); fillData(sdata, index, x1, maxX2m3, maxX3m2); fillData(sdata, index, x1, maxX2m2, maxX3m3); } - else if (sendDir == D3Q27System::BS) + else if (sendDir == D3Q27System::DIR_0MM) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, minX2p3, minX3p3); fillData(sdata, index, x1, minX2p2, minX3p2); fillData(sdata, index, x1, minX2p3, minX3p2); fillData(sdata, index, x1, minX2p2, minX3p3); } - else if (sendDir == D3Q27System::BN) + else if (sendDir == D3Q27System::DIR_0PM) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, maxX2m3, minX3p3); fillData(sdata, index, x1, maxX2m2, minX3p2); fillData(sdata, index, x1, maxX2m3, minX3p2); fillData(sdata, index, x1, maxX2m2, minX3p3); } - else if (sendDir == D3Q27System::TS) + else if (sendDir == D3Q27System::DIR_0MP) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, minX2p3, maxX3m3); fillData(sdata, index, x1, minX2p2, maxX3m2); fillData(sdata, index, x1, minX2p3, maxX3m2); fillData(sdata, index, x1, minX2p2, maxX3m3); } - else if (sendDir == D3Q27System::TSW) { + else if (sendDir == D3Q27System::DIR_MMP) { fillData(sdata, index, minX1p3, minX2p3, maxX3m3); fillData(sdata, index, minX1p2, minX2p2, maxX3m2); fillData(sdata, index, minX1p3, minX2p2, maxX3m2); @@ -292,7 +292,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, minX1p3, minX2p3, maxX3m2); fillData(sdata, index, minX1p3, minX2p2, maxX3m3); fillData(sdata, index, minX1p2, minX2p3, maxX3m3); - } else if (sendDir == D3Q27System::TSE) { + } else if (sendDir == D3Q27System::DIR_PMP) { fillData(sdata, index, maxX1m3, minX1p3, maxX3m3); fillData(sdata, index, maxX1m2, minX1p2, maxX3m2); fillData(sdata, index, maxX1m3, minX1p2, maxX3m2); @@ -301,7 +301,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, maxX1m3, minX1p3, maxX3m2); fillData(sdata, index, maxX1m3, minX1p2, maxX3m3); fillData(sdata, index, maxX1m2, minX1p3, maxX3m3); - } else if (sendDir == D3Q27System::TNW) { + } else if (sendDir == D3Q27System::DIR_MPP) { fillData(sdata, index, minX1p3, maxX2m3, maxX3m3); fillData(sdata, index, minX1p2, maxX2m2, maxX3m2); fillData(sdata, index, minX1p3, maxX2m2, maxX3m2); @@ -310,7 +310,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, minX1p3, maxX2m3, maxX3m2); fillData(sdata, index, minX1p3, maxX2m2, maxX3m3); fillData(sdata, index, minX1p2, maxX2m3, maxX3m3); - } else if (sendDir == D3Q27System::TNE) { + } else if (sendDir == D3Q27System::DIR_PPP) { fillData(sdata, index, maxX1m3, maxX2m3, maxX3m3); fillData(sdata, index, maxX1m2, maxX2m2, maxX3m2); fillData(sdata, index, maxX1m3, maxX2m2, maxX3m2); @@ -319,7 +319,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, maxX1m3, maxX2m3, maxX3m2); fillData(sdata, index, maxX1m3, maxX2m2, maxX3m3); fillData(sdata, index, maxX1m2, maxX2m3, maxX3m3); - } else if (sendDir == D3Q27System::BSW) { + } else if (sendDir == D3Q27System::DIR_MMM) { fillData(sdata, index, minX1p3, minX2p3, minX3p3); fillData(sdata, index, minX1p2, minX2p2, minX3p2); fillData(sdata, index, minX1p3, minX2p2, minX3p2); @@ -328,7 +328,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, minX1p3, minX2p3, minX3p2); fillData(sdata, index, minX1p3, minX2p2, minX3p3); fillData(sdata, index, minX1p2, minX2p3, minX3p3); - } else if (sendDir == D3Q27System::BSE) { + } else if (sendDir == D3Q27System::DIR_PMM) { fillData(sdata, index, maxX1m3, minX2p3, minX3p3); fillData(sdata, index, maxX1m2, minX2p2, minX3p2); fillData(sdata, index, maxX1m3, minX2p2, minX3p2); @@ -337,7 +337,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, maxX1m3, minX2p3, minX3p2); fillData(sdata, index, maxX1m3, minX2p2, minX3p3); fillData(sdata, index, maxX1m2, minX2p3, minX3p3); - } else if (sendDir == D3Q27System::BNW) { + } else if (sendDir == D3Q27System::DIR_MPM) { fillData(sdata, index, minX1p3, maxX2m3, minX3p3); fillData(sdata, index, minX1p2, maxX2m2, minX3p2); fillData(sdata, index, minX1p3, maxX2m2, minX3p2); @@ -346,7 +346,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, minX1p3, maxX2m3, minX3p2); fillData(sdata, index, minX1p3, maxX2m2, minX3p3); fillData(sdata, index, minX1p2, maxX2m3, minX3p3); - } else if (sendDir == D3Q27System::BNE) { + } else if (sendDir == D3Q27System::DIR_PPM) { fillData(sdata, index, maxX1m3, maxX2m3, minX3p3); fillData(sdata, index, maxX1m2, maxX2m2, minX3p2); fillData(sdata, index, maxX1m3, maxX2m2, minX3p2); @@ -400,7 +400,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() int maxX3m2 = maxX3 - 2; //int maxX3m3 = maxX3 - 3; - if (sendDir == D3Q27System::W) { + if (sendDir == D3Q27System::DIR_M00) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { distributeData(rdata, index, minX1, x2, x3); @@ -408,7 +408,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() } } } - else if (sendDir == D3Q27System::E) { + else if (sendDir == D3Q27System::DIR_P00) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { distributeData(rdata, index, maxX1, x2, x3); @@ -416,7 +416,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() } } } - else if (sendDir == D3Q27System::S) { + else if (sendDir == D3Q27System::DIR_0M0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, minX2, x3); @@ -424,7 +424,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() } } } - else if (sendDir == D3Q27System::N) { + else if (sendDir == D3Q27System::DIR_0P0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, maxX2, x3); @@ -432,7 +432,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() } } } - else if (sendDir == D3Q27System::B) { + else if (sendDir == D3Q27System::DIR_00M) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, x2, minX3); @@ -440,7 +440,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() } } } - else if (sendDir == D3Q27System::T) { + else if (sendDir == D3Q27System::DIR_00P) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, x2, maxX3); @@ -448,7 +448,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() } } } - else if (sendDir == D3Q27System::SW) { + else if (sendDir == D3Q27System::DIR_MM0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { distributeData(rdata, index, minX1, minX2, x3); distributeData(rdata, index, minX1p1, minX2p1, x3); @@ -456,7 +456,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, minX1p1, minX2, x3); } } - else if (sendDir == D3Q27System::SE) { + else if (sendDir == D3Q27System::DIR_PM0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { distributeData(rdata, index, maxX1, minX2, x3); distributeData(rdata, index, maxX1m1, minX2p1, x3); @@ -464,7 +464,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, maxX1m1, minX2, x3); } } - else if (sendDir == D3Q27System::NE) { + else if (sendDir == D3Q27System::DIR_PP0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { distributeData(rdata, index, maxX1, maxX2, x3); distributeData(rdata, index, maxX1m1, maxX2m1, x3); @@ -472,70 +472,70 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, maxX1m1, maxX2, x3); } } - else if (sendDir == D3Q27System::NW) { + else if (sendDir == D3Q27System::DIR_MP0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { distributeData(rdata, index, minX1, maxX2, x3); distributeData(rdata, index, minX1p1, maxX2m1, x3); distributeData(rdata, index, minX1, maxX2m1, x3); distributeData(rdata, index, minX1p1, maxX2, x3); } - } else if (sendDir == D3Q27System::BW) + } else if (sendDir == D3Q27System::DIR_M0M) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { distributeData(rdata, index, minX1, x2, minX3); distributeData(rdata, index, minX1p1, x2, minX3p1); distributeData(rdata, index, minX1, x2, minX3p1); distributeData(rdata, index, minX1p1, x2, minX3); } - else if (sendDir == D3Q27System::TE) + else if (sendDir == D3Q27System::DIR_P0P) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { distributeData(rdata, index, maxX1, x2, maxX3); distributeData(rdata, index, maxX1m1, x2, maxX3m1); distributeData(rdata, index, maxX1, x2, maxX3m1); distributeData(rdata, index, maxX1m1, x2, maxX3); } - else if (sendDir == D3Q27System::TW) + else if (sendDir == D3Q27System::DIR_M0P) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { distributeData(rdata, index, minX1, x2, maxX3); distributeData(rdata, index, minX1p1, x2, maxX3m1); distributeData(rdata, index, minX1, x2, maxX3m1); distributeData(rdata, index, minX1p1, x2, maxX3); } - else if (sendDir == D3Q27System::BE) + else if (sendDir == D3Q27System::DIR_P0M) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { distributeData(rdata, index, maxX1, x2, minX3); distributeData(rdata, index, maxX1m1, x2, minX3p1); distributeData(rdata, index, maxX1, x2, minX3p1); distributeData(rdata, index, maxX1m1, x2, minX3); } - else if (sendDir == D3Q27System::BS) + else if (sendDir == D3Q27System::DIR_0MM) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, minX2, minX3); distributeData(rdata, index, x1, minX2p1, minX3p1); distributeData(rdata, index, x1, minX2, minX3p1); distributeData(rdata, index, x1, minX2p1, minX3); } - else if (sendDir == D3Q27System::TN) + else if (sendDir == D3Q27System::DIR_0PP) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, maxX2, maxX3); distributeData(rdata, index, x1, maxX2m1, maxX3m1); distributeData(rdata, index, x1, maxX2, maxX3m1); distributeData(rdata, index, x1, maxX2m1, maxX3); } - else if (sendDir == D3Q27System::TS) + else if (sendDir == D3Q27System::DIR_0MP) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, minX2, maxX3); distributeData(rdata, index, x1, minX2p1, maxX3m1); distributeData(rdata, index, x1, minX2, maxX3m1); distributeData(rdata, index, x1, minX2p1, maxX3); } - else if (sendDir == D3Q27System::BN) + else if (sendDir == D3Q27System::DIR_0PM) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, maxX2, minX3); distributeData(rdata, index, x1, maxX2m1, minX3p1); distributeData(rdata, index, x1, maxX2, minX3p1); distributeData(rdata, index, x1, maxX2m1, minX3); } - else if (sendDir == D3Q27System::BNE) { + else if (sendDir == D3Q27System::DIR_PPM) { distributeData(rdata, index, maxX1, maxX2, minX3); distributeData(rdata, index, maxX1m1, maxX2m1, minX3p1); distributeData(rdata, index, maxX1, maxX2m1, minX3p1); @@ -544,7 +544,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, maxX1, maxX2, minX3p1); distributeData(rdata, index, maxX1, maxX2m1, minX3); distributeData(rdata, index, maxX1m1, maxX2, minX3); - } else if (sendDir == D3Q27System::BNW) { + } else if (sendDir == D3Q27System::DIR_MPM) { distributeData(rdata, index, minX1, maxX2, minX3); distributeData(rdata, index, minX1p1, maxX2m1, minX3p1); distributeData(rdata, index, minX1, maxX2m1, minX3p1); @@ -553,7 +553,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, minX1, maxX2, minX3p1); distributeData(rdata, index, minX1, maxX2m1, minX3); distributeData(rdata, index, minX1p1, maxX2, minX3); - } else if (sendDir == D3Q27System::BSE) { + } else if (sendDir == D3Q27System::DIR_PMM) { distributeData(rdata, index, maxX1, minX2, minX3); distributeData(rdata, index, maxX1m1, minX2p1, minX3p1); distributeData(rdata, index, maxX1, minX2p1, minX3p1); @@ -562,7 +562,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, maxX1, minX2, minX3p1); distributeData(rdata, index, maxX1, minX2p1, minX3); distributeData(rdata, index, maxX1m1, minX2, minX3); - } else if (sendDir == D3Q27System::BSW) { + } else if (sendDir == D3Q27System::DIR_MMM) { distributeData(rdata, index, minX1, minX2, minX3); distributeData(rdata, index, minX1p1, minX2p1, minX3p1); distributeData(rdata, index, minX1, minX2p1, minX3p1); @@ -571,7 +571,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, minX1, minX2, minX3p1); distributeData(rdata, index, minX1, minX2p1, minX3); distributeData(rdata, index, minX1p1, minX2, minX3); - } else if (sendDir == D3Q27System::TNE) { + } else if (sendDir == D3Q27System::DIR_PPP) { distributeData(rdata, index, maxX1, maxX2, maxX3); distributeData(rdata, index, maxX1m1, maxX2m1, maxX3m1); distributeData(rdata, index, maxX1, maxX2m1, maxX3m1); @@ -580,7 +580,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, maxX1, maxX2, maxX3m1); distributeData(rdata, index, maxX1, maxX2m1, maxX3); distributeData(rdata, index, maxX1m1, maxX2, maxX3); - } else if (sendDir == D3Q27System::TNW) { + } else if (sendDir == D3Q27System::DIR_MPP) { distributeData(rdata, index, minX1, maxX2, maxX3); distributeData(rdata, index, minX1p1, maxX2m1, maxX3m1); distributeData(rdata, index, minX1, maxX2m1, maxX3m1); @@ -589,7 +589,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, minX1, maxX2, maxX3m1); distributeData(rdata, index, minX1, maxX2m1, maxX3); distributeData(rdata, index, minX1p1, maxX2, maxX3); - } else if (sendDir == D3Q27System::TSE) { + } else if (sendDir == D3Q27System::DIR_PMP) { distributeData(rdata, index, maxX1, minX2, maxX3); distributeData(rdata, index, maxX1m1, minX2p1, maxX3m1); distributeData(rdata, index, maxX1, minX2p1, maxX3m1); @@ -598,7 +598,7 @@ void ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, maxX1, minX2, maxX3m1); distributeData(rdata, index, maxX1, minX2p1, maxX3); distributeData(rdata, index, maxX1m1, minX2, maxX3); - } else if (sendDir == D3Q27System::TSW) { + } else if (sendDir == D3Q27System::DIR_MMP) { distributeData(rdata, index, minX1, minX2, maxX3); distributeData(rdata, index, minX1p1, minX2p1, maxX3m1); distributeData(rdata, index, minX1, minX2p1, maxX3m1); diff --git a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsFullVectorConnector.cpp b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsFullVectorConnector.cpp index 5cd49a163a559eba2ef74c498f54befeeb5e696f..534076b7bfcb63386c75d6d8619b4b56bbd5c5ee 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsFullVectorConnector.cpp +++ b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsFullVectorConnector.cpp @@ -60,36 +60,36 @@ void ThreeDistributionsFullVectorConnector::init() switch (sendDir) { case D3Q27System::DIR_000: UB_THROW(UbException(UB_EXARGS, "ZERO not allowed")); break; - case D3Q27System::E: - case D3Q27System::W: sender->getData().resize(maxX2*maxX3*anz, 0.0); break; - case D3Q27System::N: - case D3Q27System::S: sender->getData().resize(maxX1*maxX3*anz, 0.0); break; - case D3Q27System::T: - case D3Q27System::B: sender->getData().resize(maxX1*maxX2*anz, 0.0); break; + case D3Q27System::DIR_P00: + case D3Q27System::DIR_M00: sender->getData().resize(maxX2*maxX3*anz, 0.0); break; + case D3Q27System::DIR_0P0: + case D3Q27System::DIR_0M0: sender->getData().resize(maxX1*maxX3*anz, 0.0); break; + case D3Q27System::DIR_00P: + case D3Q27System::DIR_00M: sender->getData().resize(maxX1*maxX2*anz, 0.0); break; - case D3Q27System::NE: - case D3Q27System::SW: - case D3Q27System::SE: - case D3Q27System::NW: sender->getData().resize(maxX3*anz, 0.0); break; + case D3Q27System::DIR_PP0: + case D3Q27System::DIR_MM0: + case D3Q27System::DIR_PM0: + case D3Q27System::DIR_MP0: sender->getData().resize(maxX3*anz, 0.0); break; - case D3Q27System::TE: - case D3Q27System::BW: - case D3Q27System::BE: - case D3Q27System::TW: sender->getData().resize(maxX2*anz, 0.0); break; + case D3Q27System::DIR_P0P: + case D3Q27System::DIR_M0M: + case D3Q27System::DIR_P0M: + case D3Q27System::DIR_M0P: sender->getData().resize(maxX2*anz, 0.0); break; - case D3Q27System::TN: - case D3Q27System::BS: - case D3Q27System::BN: - case D3Q27System::TS: sender->getData().resize(maxX1*anz, 0.0); break; + case D3Q27System::DIR_0PP: + case D3Q27System::DIR_0MM: + case D3Q27System::DIR_0PM: + case D3Q27System::DIR_0MP: sender->getData().resize(maxX1*anz, 0.0); break; - case D3Q27System::TNE: - case D3Q27System::BSW: - case D3Q27System::BNE: - case D3Q27System::TSW: - case D3Q27System::TSE: - case D3Q27System::BNW: - case D3Q27System::BSE: - case D3Q27System::TNW: sender->getData().resize(anz, 0.0); break; + case D3Q27System::DIR_PPP: + case D3Q27System::DIR_MMM: + case D3Q27System::DIR_PPM: + case D3Q27System::DIR_MMP: + case D3Q27System::DIR_PMP: + case D3Q27System::DIR_MPM: + case D3Q27System::DIR_PMM: + case D3Q27System::DIR_MPP: sender->getData().resize(anz, 0.0); break; default: UB_THROW(UbException(UB_EXARGS, "unknown sendDir")); } diff --git a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.cpp b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.cpp index 3d0ca3f043225faf0d2831b47ffa35fa27c4d89f..b46ffebeb144569311272050893118f34e862398 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.cpp +++ b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.cpp @@ -92,7 +92,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() int maxX3m3 = maxX3 - 3; // EAST - if (sendDir == D3Q27System::E) { + if (sendDir == D3Q27System::DIR_P00) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { exchangeData(maxX1m3, x2, x3, minX1, x2, x3); @@ -101,7 +101,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // WEST - else if (sendDir == D3Q27System::W) { + else if (sendDir == D3Q27System::DIR_M00) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { exchangeData(minX1p3, x2, x3, maxX1, x2, x3); @@ -110,7 +110,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // NORTH - else if (sendDir == D3Q27System::N) { + else if (sendDir == D3Q27System::DIR_0P0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, maxX2m3, x3, x1, minX2, x3); @@ -119,7 +119,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // SOUTH - else if (sendDir == D3Q27System::S) { + else if (sendDir == D3Q27System::DIR_0M0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, minX2p3, x3, x1, maxX2, x3); @@ -129,7 +129,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } // TOP - else if (sendDir == D3Q27System::T) { + else if (sendDir == D3Q27System::DIR_00P) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, x2, maxX3m3, x1, x2, minX3); @@ -138,7 +138,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // BOTTOM - else if (sendDir == D3Q27System::B) { + else if (sendDir == D3Q27System::DIR_00M) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, x2, minX3p3, x1, x2, maxX3); @@ -147,7 +147,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // NORTHEAST - else if (sendDir == D3Q27System::NE) { + else if (sendDir == D3Q27System::DIR_PP0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { exchangeData(maxX1m3, maxX2m3, x3, minX1, minX2, x3); exchangeData(maxX1m2, maxX2m2, x3, minX1p1, minX2p1, x3); @@ -156,7 +156,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // NORTHWEST - else if (sendDir == D3Q27System::NW) { + else if (sendDir == D3Q27System::DIR_MP0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { exchangeData(minX1p3, maxX2m3, x3, maxX1, minX2, x3); exchangeData(minX1p2, maxX2m2, x3, maxX1m1, minX2p1, x3); @@ -165,7 +165,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // SOUTHWEST - else if (sendDir == D3Q27System::SW) { + else if (sendDir == D3Q27System::DIR_MM0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { exchangeData(minX1p3, minX2p3, x3, maxX1, maxX2, x3); exchangeData(minX1p2, minX2p2, x3, maxX1m1, maxX2m1, x3); @@ -174,70 +174,70 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() } } // SOUTHEAST - else if (sendDir == D3Q27System::SE) { + else if (sendDir == D3Q27System::DIR_PM0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { exchangeData(maxX1m3, minX2p3, x3, minX1, maxX2, x3); exchangeData(maxX1m2, minX2p2, x3, minX1p1, maxX2m1, x3); exchangeData(maxX1m3, minX2p2, x3, minX1, maxX2m1, x3); exchangeData(maxX1m2, minX2p3, x3, minX1p1, maxX2, x3); } - } else if (sendDir == D3Q27System::TE) + } else if (sendDir == D3Q27System::DIR_P0P) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { exchangeData(maxX1m3, x2, maxX3m3, minX1, x2, minX3); exchangeData(maxX1m2, x2, maxX3m2, minX1p1, x2, minX3p1); exchangeData(maxX1m3, x2, maxX3m2, minX1, x2, minX3p1); exchangeData(maxX1m2, x2, maxX3m3, minX1p1, x2, minX3); } - else if (sendDir == D3Q27System::BW) + else if (sendDir == D3Q27System::DIR_M0M) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { exchangeData(minX1p3, x2, minX3p3, maxX1, x2, maxX3); exchangeData(minX1p2, x2, minX3p2, maxX1m1, x2, maxX3m1); exchangeData(minX1p3, x2, minX3p2, maxX1, x2, maxX3m1); exchangeData(minX1p2, x2, minX3p3, maxX1m1, x2, maxX3); } - else if (sendDir == D3Q27System::BE) + else if (sendDir == D3Q27System::DIR_P0M) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { exchangeData(maxX1m3, x2, minX3p3, minX1, x2, maxX3); exchangeData(maxX1m2, x2, minX3p2, minX1p1, x2, maxX3m1); exchangeData(maxX1m3, x2, minX3p2, minX1, x2, maxX3m1); exchangeData(maxX1m2, x2, minX3p3, minX1p1, x2, maxX3); } - else if (sendDir == D3Q27System::TW) + else if (sendDir == D3Q27System::DIR_M0P) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { exchangeData(minX1p3, x2, maxX3m3, maxX1, x2, minX3); exchangeData(minX1p2, x2, maxX3m2, maxX1m1, x2, minX3p1); exchangeData(minX1p3, x2, maxX3m2, maxX1, x2, minX3p1); exchangeData(minX1p2, x2, maxX3m3, maxX1m1, x2, minX3); } - else if (sendDir == D3Q27System::TN) + else if (sendDir == D3Q27System::DIR_0PP) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, maxX2m3, maxX3m3, x1, minX2, minX3); exchangeData(x1, maxX2m2, maxX3m2, x1, minX2p1, minX3p1); exchangeData(x1, maxX2m3, maxX3m2, x1, minX2, minX3p1); exchangeData(x1, maxX2m2, maxX3m3, x1, minX2p1, minX3); } - else if (sendDir == D3Q27System::BS) + else if (sendDir == D3Q27System::DIR_0MM) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, minX2p3, minX3p3, x1, maxX2, maxX3); exchangeData(x1, minX2p2, minX3p2, x1, maxX2m1, maxX3m1); exchangeData(x1, minX2p3, minX3p2, x1, maxX2, maxX3m1); exchangeData(x1, minX2p2, minX3p3, x1, maxX2m1, maxX3); } - else if (sendDir == D3Q27System::BN) + else if (sendDir == D3Q27System::DIR_0PM) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, maxX2m3, minX3p3, x1, minX2, maxX3); exchangeData(x1, maxX2m2, minX3p2, x1, minX2p1, maxX3m1); exchangeData(x1, maxX2m3, minX3p2, x1, minX2, maxX3m1); exchangeData(x1, maxX2m2, minX3p3, x1, minX2p1, maxX3); } - else if (sendDir == D3Q27System::TS) + else if (sendDir == D3Q27System::DIR_0MP) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { exchangeData(x1, minX2p3, maxX3m3, x1, maxX2, minX3); exchangeData(x1, minX2p2, maxX3m2, x1, maxX2m1, minX3p1); exchangeData(x1, minX2p3, maxX3m2, x1, maxX2, minX3p1); exchangeData(x1, minX2p2, maxX3m3, x1, maxX2m1, minX3); } - else if (sendDir == D3Q27System::TSW) { + else if (sendDir == D3Q27System::DIR_MMP) { exchangeData(minX1p3, minX2p3, maxX3m3, maxX1, maxX2, minX3); exchangeData(minX1p2, minX2p2, maxX3m2, maxX1m1, maxX2m1, minX3p1); exchangeData(minX1p3, minX2p2, maxX3m2, maxX1, maxX2m1, minX3p1); @@ -246,7 +246,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(minX1p3, minX2p3, maxX3m2, maxX1, maxX2, minX3p1); exchangeData(minX1p3, minX2p2, maxX3m3, maxX1, maxX2m1, minX3); exchangeData(minX1p2, minX2p3, maxX3m3, maxX1m1, maxX2, minX3); - } else if (sendDir == D3Q27System::TSE) { + } else if (sendDir == D3Q27System::DIR_PMP) { exchangeData(maxX1m3, minX1p3, maxX3m3, minX1, maxX2, minX3); exchangeData(maxX1m2, minX1p2, maxX3m2, minX1p1, maxX2m1, minX3p1); exchangeData(maxX1m3, minX1p2, maxX3m2, minX1, maxX2m1, minX3p1); @@ -255,7 +255,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(maxX1m3, minX1p3, maxX3m2, minX1, maxX2, minX3p1); exchangeData(maxX1m3, minX1p2, maxX3m3, minX1, maxX2m1, minX3); exchangeData(maxX1m2, minX1p3, maxX3m3, minX1p1, maxX2, minX3); - } else if (sendDir == D3Q27System::TNW) { + } else if (sendDir == D3Q27System::DIR_MPP) { exchangeData(minX1p3, maxX2m3, maxX3m3, maxX1, minX2, minX3); exchangeData(minX1p2, maxX2m2, maxX3m2, maxX1m1, minX2p1, minX3p1); exchangeData(minX1p3, maxX2m2, maxX3m2, maxX1, minX2p1, minX3p1); @@ -264,7 +264,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(minX1p3, maxX2m3, maxX3m2, maxX1, minX2, minX3p1); exchangeData(minX1p3, maxX2m2, maxX3m3, maxX1, minX2p1, minX3); exchangeData(minX1p2, maxX2m3, maxX3m3, maxX1m1, minX2, minX3); - } else if (sendDir == D3Q27System::TNE) { + } else if (sendDir == D3Q27System::DIR_PPP) { exchangeData(maxX1m3, maxX2m3, maxX3m3, minX1, minX2, minX3); exchangeData(maxX1m2, maxX2m2, maxX3m2, minX1p1, minX2p1, minX3p1); exchangeData(maxX1m3, maxX2m2, maxX3m2, minX1, minX2p1, minX3p1); @@ -273,7 +273,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(maxX1m3, maxX2m3, maxX3m2, minX1, minX2, minX3p1); exchangeData(maxX1m3, maxX2m2, maxX3m3, minX1, minX2p1, minX3); exchangeData(maxX1m2, maxX2m3, maxX3m3, minX1p1, minX2, minX3); - } else if (sendDir == D3Q27System::BSW) { + } else if (sendDir == D3Q27System::DIR_MMM) { exchangeData(minX1p3, minX2p3, minX3p3, maxX1, maxX2, maxX3); exchangeData(minX1p2, minX2p2, minX3p2, maxX1m1, maxX2m1, maxX3m1); exchangeData(minX1p3, minX2p2, minX3p2, maxX1, maxX2m1, maxX3m1); @@ -282,7 +282,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(minX1p3, minX2p3, minX3p2, maxX1, maxX2, maxX3m1); exchangeData(minX1p3, minX2p2, minX3p3, maxX1, maxX2m1, maxX3); exchangeData(minX1p2, minX2p3, minX3p3, maxX1m1, maxX2, maxX3); - } else if (sendDir == D3Q27System::BSE) { + } else if (sendDir == D3Q27System::DIR_PMM) { exchangeData(maxX1m3, minX2p3, minX3p3, minX1, maxX2, maxX3); exchangeData(maxX1m2, minX2p2, minX3p2, minX1p1, maxX2m1, maxX3m1); exchangeData(maxX1m3, minX2p2, minX3p2, minX1, maxX2m1, maxX3m1); @@ -291,7 +291,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(maxX1m3, minX2p3, minX3p2, minX1, maxX2, maxX3m1); exchangeData(maxX1m3, minX2p2, minX3p3, minX1, maxX2m1, maxX3); exchangeData(maxX1m2, minX2p3, minX3p3, minX1p1, maxX2, maxX3); - } else if (sendDir == D3Q27System::BNW) { + } else if (sendDir == D3Q27System::DIR_MPM) { exchangeData(minX1p3, maxX2m3, minX3p3, maxX1, minX2, maxX3); exchangeData(minX1p2, maxX2m2, minX3p2, maxX1m1, minX2p1, maxX3m1); exchangeData(minX1p3, maxX2m2, minX3p2, maxX1, minX2p1, maxX3m1); @@ -300,7 +300,7 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData() exchangeData(minX1p3, maxX2m3, minX3p2, maxX1, minX2, maxX3m1); exchangeData(minX1p3, maxX2m2, minX3p3, maxX1, minX2p1, maxX3); exchangeData(minX1p2, maxX2m3, minX3p3, maxX1m1, minX2, maxX3); - } else if (sendDir == D3Q27System::BNE) { + } else if (sendDir == D3Q27System::DIR_PPM) { exchangeData(maxX1m3, maxX2m3, minX3p3, minX1, minX2, maxX3); exchangeData(maxX1m2, maxX2m2, minX3p2, minX1p1, minX2p1, maxX3m1); exchangeData(maxX1m3, maxX2m2, minX3p2, minX1, minX2p1, maxX3m1); diff --git a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.cpp b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.cpp index 15d18279c315257df777b009534f093f667db064..9dc8a99deb20f8f49f40f7d2e7c8a0c66b687fcb 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.cpp +++ b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.cpp @@ -60,36 +60,36 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::init() switch (sendDir) { case D3Q27System::DIR_000: UB_THROW(UbException(UB_EXARGS, "ZERO not allowed")); break; - case D3Q27System::E: - case D3Q27System::W: sender->getData().resize(maxX2*maxX3*anz*2, 0.0); break; - case D3Q27System::N: - case D3Q27System::S: sender->getData().resize(maxX1*maxX3*anz*2, 0.0); break; - case D3Q27System::T: - case D3Q27System::B: sender->getData().resize(maxX1*maxX2*anz*2, 0.0); break; + case D3Q27System::DIR_P00: + case D3Q27System::DIR_M00: sender->getData().resize(maxX2*maxX3*anz*2, 0.0); break; + case D3Q27System::DIR_0P0: + case D3Q27System::DIR_0M0: sender->getData().resize(maxX1*maxX3*anz*2, 0.0); break; + case D3Q27System::DIR_00P: + case D3Q27System::DIR_00M: sender->getData().resize(maxX1*maxX2*anz*2, 0.0); break; - case D3Q27System::NE: - case D3Q27System::SW: - case D3Q27System::SE: - case D3Q27System::NW: sender->getData().resize(maxX3*anz*4, 0.0); break; + case D3Q27System::DIR_PP0: + case D3Q27System::DIR_MM0: + case D3Q27System::DIR_PM0: + case D3Q27System::DIR_MP0: sender->getData().resize(maxX3*anz*4, 0.0); break; - case D3Q27System::TE: - case D3Q27System::BW: - case D3Q27System::BE: - case D3Q27System::TW: sender->getData().resize(maxX2*anz*4, 0.0); break; + case D3Q27System::DIR_P0P: + case D3Q27System::DIR_M0M: + case D3Q27System::DIR_P0M: + case D3Q27System::DIR_M0P: sender->getData().resize(maxX2*anz*4, 0.0); break; - case D3Q27System::TN: - case D3Q27System::BS: - case D3Q27System::BN: - case D3Q27System::TS: sender->getData().resize(maxX1*anz*4, 0.0); break; + case D3Q27System::DIR_0PP: + case D3Q27System::DIR_0MM: + case D3Q27System::DIR_0PM: + case D3Q27System::DIR_0MP: sender->getData().resize(maxX1*anz*4, 0.0); break; - case D3Q27System::TNE: - case D3Q27System::BSW: - case D3Q27System::BNE: - case D3Q27System::TSW: - case D3Q27System::TSE: - case D3Q27System::BNW: - case D3Q27System::BSE: - case D3Q27System::TNW: sender->getData().resize(anz*8, 0.0); break; + case D3Q27System::DIR_PPP: + case D3Q27System::DIR_MMM: + case D3Q27System::DIR_PPM: + case D3Q27System::DIR_MMP: + case D3Q27System::DIR_PMP: + case D3Q27System::DIR_MPM: + case D3Q27System::DIR_PMM: + case D3Q27System::DIR_MPP: sender->getData().resize(anz*8, 0.0); break; default: UB_THROW(UbException(UB_EXARGS, "unknown sendDir")); } @@ -137,7 +137,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() int index = 0; // EAST - if (sendDir == D3Q27System::E) { + if (sendDir == D3Q27System::DIR_P00) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { fillData(sdata, index, maxX1m3, x2, x3); @@ -146,7 +146,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // WEST - else if (sendDir == D3Q27System::W) { + else if (sendDir == D3Q27System::DIR_M00) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { fillData(sdata, index, minX1p3, x2, x3); @@ -155,7 +155,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // NORTH - else if (sendDir == D3Q27System::N) { + else if (sendDir == D3Q27System::DIR_0P0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, maxX2m3, x3); @@ -164,7 +164,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // SOUTH - else if (sendDir == D3Q27System::S) { + else if (sendDir == D3Q27System::DIR_0M0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, minX2p3, x3); @@ -174,7 +174,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() } // TOP - else if (sendDir == D3Q27System::T) { + else if (sendDir == D3Q27System::DIR_00P) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, x2, maxX3m3); @@ -183,7 +183,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // BOTTOM - else if (sendDir == D3Q27System::B) { + else if (sendDir == D3Q27System::DIR_00M) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, x2, minX3p3); @@ -192,7 +192,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // NORTHEAST - else if (sendDir == D3Q27System::NE) { + else if (sendDir == D3Q27System::DIR_PP0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { fillData(sdata, index, maxX1m3, maxX2m3, x3); fillData(sdata, index, maxX1m2, maxX2m2, x3); @@ -201,7 +201,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // NORTHWEST - else if (sendDir == D3Q27System::NW) { + else if (sendDir == D3Q27System::DIR_MP0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { fillData(sdata, index, minX1p3, maxX2m3, x3); fillData(sdata, index, minX1p2, maxX2m2, x3); @@ -210,7 +210,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // SOUTHWEST - else if (sendDir == D3Q27System::SW) { + else if (sendDir == D3Q27System::DIR_MM0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { fillData(sdata, index, minX1p3, minX2p3, x3); fillData(sdata, index, minX1p2, minX2p2, x3); @@ -219,70 +219,70 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() } } // SOUTHEAST - else if (sendDir == D3Q27System::SE) { + else if (sendDir == D3Q27System::DIR_PM0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { fillData(sdata, index, maxX1m3, minX2p3, x3); fillData(sdata, index, maxX1m2, minX2p2, x3); fillData(sdata, index, maxX1m3, minX2p2, x3); fillData(sdata, index, maxX1m2, minX2p3, x3); } - } else if (sendDir == D3Q27System::TE) + } else if (sendDir == D3Q27System::DIR_P0P) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { fillData(sdata, index, maxX1m3, x2, maxX3m3); fillData(sdata, index, maxX1m2, x2, maxX3m2); fillData(sdata, index, maxX1m3, x2, maxX3m2); fillData(sdata, index, maxX1m2, x2, maxX3m3); } - else if (sendDir == D3Q27System::BW) + else if (sendDir == D3Q27System::DIR_M0M) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { fillData(sdata, index, minX1p3, x2, minX3p3); fillData(sdata, index, minX1p2, x2, minX3p2); fillData(sdata, index, minX1p3, x2, minX3p2); fillData(sdata, index, minX1p2, x2, minX3p3); } - else if (sendDir == D3Q27System::BE) + else if (sendDir == D3Q27System::DIR_P0M) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { fillData(sdata, index, maxX1m3, x2, minX3p3); fillData(sdata, index, maxX1m2, x2, minX3p2); fillData(sdata, index, maxX1m3, x2, minX3p2); fillData(sdata, index, maxX1m2, x2, minX3p3); } - else if (sendDir == D3Q27System::TW) + else if (sendDir == D3Q27System::DIR_M0P) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { fillData(sdata, index, minX1p3, x2, maxX3m3); fillData(sdata, index, minX1p2, x2, maxX3m2); fillData(sdata, index, minX1p3, x2, maxX3m2); fillData(sdata, index, minX1p2, x2, maxX3m3); } - else if (sendDir == D3Q27System::TN) + else if (sendDir == D3Q27System::DIR_0PP) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, maxX2m3, maxX3m3); fillData(sdata, index, x1, maxX2m2, maxX3m2); fillData(sdata, index, x1, maxX2m3, maxX3m2); fillData(sdata, index, x1, maxX2m2, maxX3m3); } - else if (sendDir == D3Q27System::BS) + else if (sendDir == D3Q27System::DIR_0MM) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, minX2p3, minX3p3); fillData(sdata, index, x1, minX2p2, minX3p2); fillData(sdata, index, x1, minX2p3, minX3p2); fillData(sdata, index, x1, minX2p2, minX3p3); } - else if (sendDir == D3Q27System::BN) + else if (sendDir == D3Q27System::DIR_0PM) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, maxX2m3, minX3p3); fillData(sdata, index, x1, maxX2m2, minX3p2); fillData(sdata, index, x1, maxX2m3, minX3p2); fillData(sdata, index, x1, maxX2m2, minX3p3); } - else if (sendDir == D3Q27System::TS) + else if (sendDir == D3Q27System::DIR_0MP) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { fillData(sdata, index, x1, minX2p3, maxX3m3); fillData(sdata, index, x1, minX2p2, maxX3m2); fillData(sdata, index, x1, minX2p3, maxX3m2); fillData(sdata, index, x1, minX2p2, maxX3m3); } - else if (sendDir == D3Q27System::TSW) { + else if (sendDir == D3Q27System::DIR_MMP) { fillData(sdata, index, minX1p3, minX2p3, maxX3m3); fillData(sdata, index, minX1p2, minX2p2, maxX3m2); fillData(sdata, index, minX1p3, minX2p2, maxX3m2); @@ -291,7 +291,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, minX1p3, minX2p3, maxX3m2); fillData(sdata, index, minX1p3, minX2p2, maxX3m3); fillData(sdata, index, minX1p2, minX2p3, maxX3m3); - } else if (sendDir == D3Q27System::TSE) { + } else if (sendDir == D3Q27System::DIR_PMP) { fillData(sdata, index, maxX1m3, minX1p3, maxX3m3); fillData(sdata, index, maxX1m2, minX1p2, maxX3m2); fillData(sdata, index, maxX1m3, minX1p2, maxX3m2); @@ -300,7 +300,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, maxX1m3, minX1p3, maxX3m2); fillData(sdata, index, maxX1m3, minX1p2, maxX3m3); fillData(sdata, index, maxX1m2, minX1p3, maxX3m3); - } else if (sendDir == D3Q27System::TNW) { + } else if (sendDir == D3Q27System::DIR_MPP) { fillData(sdata, index, minX1p3, maxX2m3, maxX3m3); fillData(sdata, index, minX1p2, maxX2m2, maxX3m2); fillData(sdata, index, minX1p3, maxX2m2, maxX3m2); @@ -309,7 +309,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, minX1p3, maxX2m3, maxX3m2); fillData(sdata, index, minX1p3, maxX2m2, maxX3m3); fillData(sdata, index, minX1p2, maxX2m3, maxX3m3); - } else if (sendDir == D3Q27System::TNE) { + } else if (sendDir == D3Q27System::DIR_PPP) { fillData(sdata, index, maxX1m3, maxX2m3, maxX3m3); fillData(sdata, index, maxX1m2, maxX2m2, maxX3m2); fillData(sdata, index, maxX1m3, maxX2m2, maxX3m2); @@ -318,7 +318,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, maxX1m3, maxX2m3, maxX3m2); fillData(sdata, index, maxX1m3, maxX2m2, maxX3m3); fillData(sdata, index, maxX1m2, maxX2m3, maxX3m3); - } else if (sendDir == D3Q27System::BSW) { + } else if (sendDir == D3Q27System::DIR_MMM) { fillData(sdata, index, minX1p3, minX2p3, minX3p3); fillData(sdata, index, minX1p2, minX2p2, minX3p2); fillData(sdata, index, minX1p3, minX2p2, minX3p2); @@ -327,7 +327,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, minX1p3, minX2p3, minX3p2); fillData(sdata, index, minX1p3, minX2p2, minX3p3); fillData(sdata, index, minX1p2, minX2p3, minX3p3); - } else if (sendDir == D3Q27System::BSE) { + } else if (sendDir == D3Q27System::DIR_PMM) { fillData(sdata, index, maxX1m3, minX2p3, minX3p3); fillData(sdata, index, maxX1m2, minX2p2, minX3p2); fillData(sdata, index, maxX1m3, minX2p2, minX3p2); @@ -336,7 +336,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, maxX1m3, minX2p3, minX3p2); fillData(sdata, index, maxX1m3, minX2p2, minX3p3); fillData(sdata, index, maxX1m2, minX2p3, minX3p3); - } else if (sendDir == D3Q27System::BNW) { + } else if (sendDir == D3Q27System::DIR_MPM) { fillData(sdata, index, minX1p3, maxX2m3, minX3p3); fillData(sdata, index, minX1p2, maxX2m2, minX3p2); fillData(sdata, index, minX1p3, maxX2m2, minX3p2); @@ -345,7 +345,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData() fillData(sdata, index, minX1p3, maxX2m3, minX3p2); fillData(sdata, index, minX1p3, maxX2m2, minX3p3); fillData(sdata, index, minX1p2, maxX2m3, minX3p3); - } else if (sendDir == D3Q27System::BNE) { + } else if (sendDir == D3Q27System::DIR_PPM) { fillData(sdata, index, maxX1m3, maxX2m3, minX3p3); fillData(sdata, index, maxX1m2, maxX2m2, minX3p2); fillData(sdata, index, maxX1m3, maxX2m2, minX3p2); @@ -399,7 +399,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() int maxX3m2 = maxX3 - 2; //int maxX3m3 = maxX3 - 3; - if (sendDir == D3Q27System::W) { + if (sendDir == D3Q27System::DIR_M00) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { distributeData(rdata, index, minX1, x2, x3); @@ -407,7 +407,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() } } } - else if (sendDir == D3Q27System::E) { + else if (sendDir == D3Q27System::DIR_P00) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { distributeData(rdata, index, maxX1, x2, x3); @@ -415,7 +415,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() } } } - else if (sendDir == D3Q27System::S) { + else if (sendDir == D3Q27System::DIR_0M0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, minX2, x3); @@ -423,7 +423,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() } } } - else if (sendDir == D3Q27System::N) { + else if (sendDir == D3Q27System::DIR_0P0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, maxX2, x3); @@ -431,7 +431,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() } } } - else if (sendDir == D3Q27System::B) { + else if (sendDir == D3Q27System::DIR_00M) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, x2, minX3); @@ -439,7 +439,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() } } } - else if (sendDir == D3Q27System::T) { + else if (sendDir == D3Q27System::DIR_00P) { for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, x2, maxX3); @@ -447,7 +447,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() } } } - else if (sendDir == D3Q27System::SW) { + else if (sendDir == D3Q27System::DIR_MM0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { distributeData(rdata, index, minX1, minX2, x3); distributeData(rdata, index, minX1p1, minX2p1, x3); @@ -455,7 +455,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, minX1p1, minX2, x3); } } - else if (sendDir == D3Q27System::SE) { + else if (sendDir == D3Q27System::DIR_PM0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { distributeData(rdata, index, maxX1, minX2, x3); distributeData(rdata, index, maxX1m1, minX2p1, x3); @@ -463,7 +463,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, maxX1m1, minX2, x3); } } - else if (sendDir == D3Q27System::NE) { + else if (sendDir == D3Q27System::DIR_PP0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { distributeData(rdata, index, maxX1, maxX2, x3); distributeData(rdata, index, maxX1m1, maxX2m1, x3); @@ -471,70 +471,70 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, maxX1m1, maxX2, x3); } } - else if (sendDir == D3Q27System::NW) { + else if (sendDir == D3Q27System::DIR_MP0) { for (int x3 = minX3p2; x3 <= maxX3m2; x3++) { distributeData(rdata, index, minX1, maxX2, x3); distributeData(rdata, index, minX1p1, maxX2m1, x3); distributeData(rdata, index, minX1, maxX2m1, x3); distributeData(rdata, index, minX1p1, maxX2, x3); } - } else if (sendDir == D3Q27System::BW) + } else if (sendDir == D3Q27System::DIR_M0M) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { distributeData(rdata, index, minX1, x2, minX3); distributeData(rdata, index, minX1p1, x2, minX3p1); distributeData(rdata, index, minX1, x2, minX3p1); distributeData(rdata, index, minX1p1, x2, minX3); } - else if (sendDir == D3Q27System::TE) + else if (sendDir == D3Q27System::DIR_P0P) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { distributeData(rdata, index, maxX1, x2, maxX3); distributeData(rdata, index, maxX1m1, x2, maxX3m1); distributeData(rdata, index, maxX1, x2, maxX3m1); distributeData(rdata, index, maxX1m1, x2, maxX3); } - else if (sendDir == D3Q27System::TW) + else if (sendDir == D3Q27System::DIR_M0P) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { distributeData(rdata, index, minX1, x2, maxX3); distributeData(rdata, index, minX1p1, x2, maxX3m1); distributeData(rdata, index, minX1, x2, maxX3m1); distributeData(rdata, index, minX1p1, x2, maxX3); } - else if (sendDir == D3Q27System::BE) + else if (sendDir == D3Q27System::DIR_P0M) for (int x2 = minX2p2; x2 <= maxX2m2; x2++) { distributeData(rdata, index, maxX1, x2, minX3); distributeData(rdata, index, maxX1m1, x2, minX3p1); distributeData(rdata, index, maxX1, x2, minX3p1); distributeData(rdata, index, maxX1m1, x2, minX3); } - else if (sendDir == D3Q27System::BS) + else if (sendDir == D3Q27System::DIR_0MM) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, minX2, minX3); distributeData(rdata, index, x1, minX2p1, minX3p1); distributeData(rdata, index, x1, minX2, minX3p1); distributeData(rdata, index, x1, minX2p1, minX3); } - else if (sendDir == D3Q27System::TN) + else if (sendDir == D3Q27System::DIR_0PP) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, maxX2, maxX3); distributeData(rdata, index, x1, maxX2m1, maxX3m1); distributeData(rdata, index, x1, maxX2, maxX3m1); distributeData(rdata, index, x1, maxX2m1, maxX3); } - else if (sendDir == D3Q27System::TS) + else if (sendDir == D3Q27System::DIR_0MP) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, minX2, maxX3); distributeData(rdata, index, x1, minX2p1, maxX3m1); distributeData(rdata, index, x1, minX2, maxX3m1); distributeData(rdata, index, x1, minX2p1, maxX3); } - else if (sendDir == D3Q27System::BN) + else if (sendDir == D3Q27System::DIR_0PM) for (int x1 = minX1p2; x1 <= maxX1m2; x1++) { distributeData(rdata, index, x1, maxX2, minX3); distributeData(rdata, index, x1, maxX2m1, minX3p1); distributeData(rdata, index, x1, maxX2, minX3p1); distributeData(rdata, index, x1, maxX2m1, minX3); } - else if (sendDir == D3Q27System::BNE) { + else if (sendDir == D3Q27System::DIR_PPM) { distributeData(rdata, index, maxX1, maxX2, minX3); distributeData(rdata, index, maxX1m1, maxX2m1, minX3p1); distributeData(rdata, index, maxX1, maxX2m1, minX3p1); @@ -543,7 +543,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, maxX1, maxX2, minX3p1); distributeData(rdata, index, maxX1, maxX2m1, minX3); distributeData(rdata, index, maxX1m1, maxX2, minX3); - } else if (sendDir == D3Q27System::BNW) { + } else if (sendDir == D3Q27System::DIR_MPM) { distributeData(rdata, index, minX1, maxX2, minX3); distributeData(rdata, index, minX1p1, maxX2m1, minX3p1); distributeData(rdata, index, minX1, maxX2m1, minX3p1); @@ -552,7 +552,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, minX1, maxX2, minX3p1); distributeData(rdata, index, minX1, maxX2m1, minX3); distributeData(rdata, index, minX1p1, maxX2, minX3); - } else if (sendDir == D3Q27System::BSE) { + } else if (sendDir == D3Q27System::DIR_PMM) { distributeData(rdata, index, maxX1, minX2, minX3); distributeData(rdata, index, maxX1m1, minX2p1, minX3p1); distributeData(rdata, index, maxX1, minX2p1, minX3p1); @@ -561,7 +561,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, maxX1, minX2, minX3p1); distributeData(rdata, index, maxX1, minX2p1, minX3); distributeData(rdata, index, maxX1m1, minX2, minX3); - } else if (sendDir == D3Q27System::BSW) { + } else if (sendDir == D3Q27System::DIR_MMM) { distributeData(rdata, index, minX1, minX2, minX3); distributeData(rdata, index, minX1p1, minX2p1, minX3p1); distributeData(rdata, index, minX1, minX2p1, minX3p1); @@ -570,7 +570,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, minX1, minX2, minX3p1); distributeData(rdata, index, minX1, minX2p1, minX3); distributeData(rdata, index, minX1p1, minX2, minX3); - } else if (sendDir == D3Q27System::TNE) { + } else if (sendDir == D3Q27System::DIR_PPP) { distributeData(rdata, index, maxX1, maxX2, maxX3); distributeData(rdata, index, maxX1m1, maxX2m1, maxX3m1); distributeData(rdata, index, maxX1, maxX2m1, maxX3m1); @@ -579,7 +579,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, maxX1, maxX2, maxX3m1); distributeData(rdata, index, maxX1, maxX2m1, maxX3); distributeData(rdata, index, maxX1m1, maxX2, maxX3); - } else if (sendDir == D3Q27System::TNW) { + } else if (sendDir == D3Q27System::DIR_MPP) { distributeData(rdata, index, minX1, maxX2, maxX3); distributeData(rdata, index, minX1p1, maxX2m1, maxX3m1); distributeData(rdata, index, minX1, maxX2m1, maxX3m1); @@ -588,7 +588,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, minX1, maxX2, maxX3m1); distributeData(rdata, index, minX1, maxX2m1, maxX3); distributeData(rdata, index, minX1p1, maxX2, maxX3); - } else if (sendDir == D3Q27System::TSE) { + } else if (sendDir == D3Q27System::DIR_PMP) { distributeData(rdata, index, maxX1, minX2, maxX3); distributeData(rdata, index, maxX1m1, minX2p1, maxX3m1); distributeData(rdata, index, maxX1, minX2p1, maxX3m1); @@ -597,7 +597,7 @@ void TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData() distributeData(rdata, index, maxX1, minX2, maxX3m1); distributeData(rdata, index, maxX1, minX2p1, maxX3); distributeData(rdata, index, maxX1m1, minX2, maxX3); - } else if (sendDir == D3Q27System::TSW) { + } else if (sendDir == D3Q27System::DIR_MMP) { distributeData(rdata, index, minX1, minX2, maxX3); distributeData(rdata, index, minX1p1, minX2p1, maxX3m1); distributeData(rdata, index, minX1, minX2p1, maxX3m1); diff --git a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsFullVectorConnector.cpp b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsFullVectorConnector.cpp index 008b6630d41fa8b0c9f93d99ded1e044ec455b73..bab931d93dd99cf89f4517159cef1d6efc000eff 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsFullVectorConnector.cpp +++ b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsFullVectorConnector.cpp @@ -59,36 +59,36 @@ void TwoDistributionsFullVectorConnector::init() switch (sendDir) { case D3Q27System::DIR_000: UB_THROW(UbException(UB_EXARGS, "ZERO not allowed")); break; - case D3Q27System::E: - case D3Q27System::W: sender->getData().resize(maxX2*maxX3*anz, 0.0); break; - case D3Q27System::N: - case D3Q27System::S: sender->getData().resize(maxX1*maxX3*anz, 0.0); break; - case D3Q27System::T: - case D3Q27System::B: sender->getData().resize(maxX1*maxX2*anz, 0.0); break; + case D3Q27System::DIR_P00: + case D3Q27System::DIR_M00: sender->getData().resize(maxX2*maxX3*anz, 0.0); break; + case D3Q27System::DIR_0P0: + case D3Q27System::DIR_0M0: sender->getData().resize(maxX1*maxX3*anz, 0.0); break; + case D3Q27System::DIR_00P: + case D3Q27System::DIR_00M: sender->getData().resize(maxX1*maxX2*anz, 0.0); break; - case D3Q27System::NE: - case D3Q27System::SW: - case D3Q27System::SE: - case D3Q27System::NW: sender->getData().resize(maxX3*anz, 0.0); break; + case D3Q27System::DIR_PP0: + case D3Q27System::DIR_MM0: + case D3Q27System::DIR_PM0: + case D3Q27System::DIR_MP0: sender->getData().resize(maxX3*anz, 0.0); break; - case D3Q27System::TE: - case D3Q27System::BW: - case D3Q27System::BE: - case D3Q27System::TW: sender->getData().resize(maxX2*anz, 0.0); break; + case D3Q27System::DIR_P0P: + case D3Q27System::DIR_M0M: + case D3Q27System::DIR_P0M: + case D3Q27System::DIR_M0P: sender->getData().resize(maxX2*anz, 0.0); break; - case D3Q27System::TN: - case D3Q27System::BS: - case D3Q27System::BN: - case D3Q27System::TS: sender->getData().resize(maxX1*anz, 0.0); break; + case D3Q27System::DIR_0PP: + case D3Q27System::DIR_0MM: + case D3Q27System::DIR_0PM: + case D3Q27System::DIR_0MP: sender->getData().resize(maxX1*anz, 0.0); break; - case D3Q27System::TNE: - case D3Q27System::BSW: - case D3Q27System::BNE: - case D3Q27System::TSW: - case D3Q27System::TSE: - case D3Q27System::BNW: - case D3Q27System::BSE: - case D3Q27System::TNW: sender->getData().resize(anz, 0.0); break; + case D3Q27System::DIR_PPP: + case D3Q27System::DIR_MMM: + case D3Q27System::DIR_PPM: + case D3Q27System::DIR_MMP: + case D3Q27System::DIR_PMP: + case D3Q27System::DIR_MPM: + case D3Q27System::DIR_PMM: + case D3Q27System::DIR_MPP: sender->getData().resize(anz, 0.0); break; default: UB_THROW(UbException(UB_EXARGS, "unknown sendDir")); } diff --git a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSoA.cpp b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSoA.cpp index 765461b34b40151ef8f7364d916d2d9a1b885c11..0585947928e4fdc626659ed1a1d0e956fdd62de6 100644 --- a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSoA.cpp +++ b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSoA.cpp @@ -91,33 +91,33 @@ void D3Q27EsoTwist3DSoA::getDistribution(LBMReal *const f, size_t x1, size_t x2, size_t x2p = x2 + 1; size_t x3p = x3 + 1; - f[D3Q27System::E] = (*d.E)(x1, x2, x3); - f[D3Q27System::N] = (*d.N)(x1, x2, x3); - f[D3Q27System::T] = (*d.T)(x1, x2, x3); - f[D3Q27System::NE] = (*d.NE)(x1, x2, x3); - f[D3Q27System::NW] = (*d.NW)(x1p, x2, x3); - f[D3Q27System::TE] = (*d.TE)(x1, x2, x3); - f[D3Q27System::TW] = (*d.TW)(x1p, x2, x3); - f[D3Q27System::TN] = (*d.TN)(x1, x2, x3); - f[D3Q27System::TS] = (*d.TS)(x1, x2p, x3); - f[D3Q27System::TNE] = (*d.TNE)(x1, x2, x3); - f[D3Q27System::TNW] = (*d.TNW)(x1p, x2, x3); - f[D3Q27System::TSE] = (*d.TSE)(x1, x2p, x3); - f[D3Q27System::TSW] = (*d.TSW)(x1p, x2p, x3); + f[D3Q27System::DIR_P00] = (*d.E)(x1, x2, x3); + f[D3Q27System::DIR_0P0] = (*d.N)(x1, x2, x3); + f[D3Q27System::DIR_00P] = (*d.T)(x1, x2, x3); + f[D3Q27System::DIR_PP0] = (*d.NE)(x1, x2, x3); + f[D3Q27System::DIR_MP0] = (*d.NW)(x1p, x2, x3); + f[D3Q27System::DIR_P0P] = (*d.TE)(x1, x2, x3); + f[D3Q27System::DIR_M0P] = (*d.TW)(x1p, x2, x3); + f[D3Q27System::DIR_0PP] = (*d.TN)(x1, x2, x3); + f[D3Q27System::DIR_0MP] = (*d.TS)(x1, x2p, x3); + f[D3Q27System::DIR_PPP] = (*d.TNE)(x1, x2, x3); + f[D3Q27System::DIR_MPP] = (*d.TNW)(x1p, x2, x3); + f[D3Q27System::DIR_PMP] = (*d.TSE)(x1, x2p, x3); + f[D3Q27System::DIR_MMP] = (*d.TSW)(x1p, x2p, x3); - f[D3Q27System::W] = (*d.W)(x1p, x2, x3); - f[D3Q27System::S] = (*d.S)(x1, x2p, x3); - f[D3Q27System::B] = (*d.B)(x1, x2, x3p); - f[D3Q27System::SW] = (*d.SW)(x1p, x2p, x3); - f[D3Q27System::SE] = (*d.SE)(x1, x2p, x3); - f[D3Q27System::BW] = (*d.BW)(x1p, x2, x3p); - f[D3Q27System::BE] = (*d.BE)(x1, x2, x3p); - f[D3Q27System::BS] = (*d.BS)(x1, x2p, x3p); - f[D3Q27System::BN] = (*d.BN)(x1, x2, x3p); - f[D3Q27System::BSW] = (*d.BSW)(x1p, x2p, x3p); - f[D3Q27System::BSE] = (*d.BSE)(x1, x2p, x3p); - f[D3Q27System::BNW] = (*d.BNW)(x1p, x2, x3p); - f[D3Q27System::BNE] = (*d.BNE)(x1, x2, x3p); + f[D3Q27System::DIR_M00] = (*d.W)(x1p, x2, x3); + f[D3Q27System::DIR_0M0] = (*d.S)(x1, x2p, x3); + f[D3Q27System::DIR_00M] = (*d.B)(x1, x2, x3p); + f[D3Q27System::DIR_MM0] = (*d.SW)(x1p, x2p, x3); + f[D3Q27System::DIR_PM0] = (*d.SE)(x1, x2p, x3); + f[D3Q27System::DIR_M0M] = (*d.BW)(x1p, x2, x3p); + f[D3Q27System::DIR_P0M] = (*d.BE)(x1, x2, x3p); + f[D3Q27System::DIR_0MM] = (*d.BS)(x1, x2p, x3p); + f[D3Q27System::DIR_0PM] = (*d.BN)(x1, x2, x3p); + f[D3Q27System::DIR_MMM] = (*d.BSW)(x1p, x2p, x3p); + f[D3Q27System::DIR_PMM] = (*d.BSE)(x1, x2p, x3p); + f[D3Q27System::DIR_MPM] = (*d.BNW)(x1p, x2, x3p); + f[D3Q27System::DIR_PPM] = (*d.BNE)(x1, x2, x3p); f[D3Q27System::DIR_000] = (*d.REST)(x1, x2, x3); } @@ -128,99 +128,99 @@ void D3Q27EsoTwist3DSoA::setDistribution(const LBMReal *const f, size_t x1, size size_t x2p = x2 + 1; size_t x3p = x3 + 1; - (*d.E)(x1, x2, x3) = f[D3Q27System::INV_E]; - (*d.N)(x1, x2, x3) = f[D3Q27System::INV_N]; - (*d.T)(x1, x2, x3) = f[D3Q27System::INV_T]; - (*d.NE)(x1, x2, x3) = f[D3Q27System::INV_NE]; - (*d.NW)(x1p, x2, x3) = f[D3Q27System::INV_NW]; - (*d.TE)(x1, x2, x3) = f[D3Q27System::INV_TE]; - (*d.TW)(x1p, x2, x3) = f[D3Q27System::INV_TW]; - (*d.TN)(x1, x2, x3) = f[D3Q27System::INV_TN]; - (*d.TS)(x1, x2p, x3) = f[D3Q27System::INV_TS]; - (*d.TNE)(x1, x2, x3) = f[D3Q27System::INV_TNE]; - (*d.TNW)(x1p, x2, x3) = f[D3Q27System::INV_TNW]; - (*d.TSE)(x1, x2p, x3) = f[D3Q27System::INV_TSE]; - (*d.TSW)(x1p, x2p, x3) = f[D3Q27System::INV_TSW]; + (*d.E)(x1, x2, x3) = f[D3Q27System::INV_P00]; + (*d.N)(x1, x2, x3) = f[D3Q27System::INV_0P0]; + (*d.T)(x1, x2, x3) = f[D3Q27System::INV_00P]; + (*d.NE)(x1, x2, x3) = f[D3Q27System::INV_PP0]; + (*d.NW)(x1p, x2, x3) = f[D3Q27System::INV_MP0]; + (*d.TE)(x1, x2, x3) = f[D3Q27System::INV_P0P]; + (*d.TW)(x1p, x2, x3) = f[D3Q27System::INV_M0P]; + (*d.TN)(x1, x2, x3) = f[D3Q27System::INV_0PP]; + (*d.TS)(x1, x2p, x3) = f[D3Q27System::INV_0MP]; + (*d.TNE)(x1, x2, x3) = f[D3Q27System::INV_PPP]; + (*d.TNW)(x1p, x2, x3) = f[D3Q27System::INV_MPP]; + (*d.TSE)(x1, x2p, x3) = f[D3Q27System::INV_PMP]; + (*d.TSW)(x1p, x2p, x3) = f[D3Q27System::INV_MMP]; - (*d.W)(x1p, x2, x3) = f[D3Q27System::INV_W]; - (*d.S)(x1, x2p, x3) = f[D3Q27System::INV_S]; - (*d.B)(x1, x2, x3p) = f[D3Q27System::INV_B]; - (*d.SW)(x1p, x2p, x3) = f[D3Q27System::INV_SW]; - (*d.SE)(x1, x2p, x3) = f[D3Q27System::INV_SE]; - (*d.BW)(x1p, x2, x3p) = f[D3Q27System::INV_BW]; - (*d.BE)(x1, x2, x3p) = f[D3Q27System::INV_BE]; - (*d.BS)(x1, x2p, x3p) = f[D3Q27System::INV_BS]; - (*d.BN)(x1, x2, x3p) = f[D3Q27System::INV_BN]; - (*d.BSW)(x1p, x2p, x3p) = f[D3Q27System::INV_BSW]; - (*d.BSE)(x1, x2p, x3p) = f[D3Q27System::INV_BSE]; - (*d.BNW)(x1p, x2, x3p) = f[D3Q27System::INV_BNW]; - (*d.BNE)(x1, x2, x3p) = f[D3Q27System::INV_BNE]; + (*d.W)(x1p, x2, x3) = f[D3Q27System::INV_M00]; + (*d.S)(x1, x2p, x3) = f[D3Q27System::INV_0M0]; + (*d.B)(x1, x2, x3p) = f[D3Q27System::INV_00M]; + (*d.SW)(x1p, x2p, x3) = f[D3Q27System::INV_MM0]; + (*d.SE)(x1, x2p, x3) = f[D3Q27System::INV_PM0]; + (*d.BW)(x1p, x2, x3p) = f[D3Q27System::INV_M0M]; + (*d.BE)(x1, x2, x3p) = f[D3Q27System::INV_P0M]; + (*d.BS)(x1, x2p, x3p) = f[D3Q27System::INV_0MM]; + (*d.BN)(x1, x2, x3p) = f[D3Q27System::INV_0PM]; + (*d.BSW)(x1p, x2p, x3p) = f[D3Q27System::INV_MMM]; + (*d.BSE)(x1, x2p, x3p) = f[D3Q27System::INV_PMM]; + (*d.BNW)(x1p, x2, x3p) = f[D3Q27System::INV_MPM]; + (*d.BNE)(x1, x2, x3p) = f[D3Q27System::INV_PPM]; (*d.REST)(x1, x2, x3) = f[D3Q27System::DIR_000]; } ////////////////////////////////////////////////////////////////////////// void D3Q27EsoTwist3DSoA::getDistributionInv(LBMReal *const f, size_t x1, size_t x2, size_t x3) { - f[D3Q27System::INV_E] = (*d.E)(x1, x2, x3); - f[D3Q27System::INV_N] = (*d.N)(x1, x2, x3); - f[D3Q27System::INV_T] = (*d.T)(x1, x2, x3); - f[D3Q27System::INV_NE] = (*d.NE)(x1, x2, x3); - f[D3Q27System::INV_NW] = (*d.NW)(x1 + 1, x2, x3); - f[D3Q27System::INV_TE] = (*d.TE)(x1, x2, x3); - f[D3Q27System::INV_TW] = (*d.TW)(x1 + 1, x2, x3); - f[D3Q27System::INV_TN] = (*d.TN)(x1, x2, x3); - f[D3Q27System::INV_TS] = (*d.TS)(x1, x2 + 1, x3); - f[D3Q27System::INV_TNE] = (*d.TNE)(x1, x2, x3); - f[D3Q27System::INV_TNW] = (*d.TNW)(x1 + 1, x2, x3); - f[D3Q27System::INV_TSE] = (*d.TSE)(x1, x2 + 1, x3); - f[D3Q27System::INV_TSW] = (*d.TSW)(x1 + 1, x2 + 1, x3); + f[D3Q27System::INV_P00] = (*d.E)(x1, x2, x3); + f[D3Q27System::INV_0P0] = (*d.N)(x1, x2, x3); + f[D3Q27System::INV_00P] = (*d.T)(x1, x2, x3); + f[D3Q27System::INV_PP0] = (*d.NE)(x1, x2, x3); + f[D3Q27System::INV_MP0] = (*d.NW)(x1 + 1, x2, x3); + f[D3Q27System::INV_P0P] = (*d.TE)(x1, x2, x3); + f[D3Q27System::INV_M0P] = (*d.TW)(x1 + 1, x2, x3); + f[D3Q27System::INV_0PP] = (*d.TN)(x1, x2, x3); + f[D3Q27System::INV_0MP] = (*d.TS)(x1, x2 + 1, x3); + f[D3Q27System::INV_PPP] = (*d.TNE)(x1, x2, x3); + f[D3Q27System::INV_MPP] = (*d.TNW)(x1 + 1, x2, x3); + f[D3Q27System::INV_PMP] = (*d.TSE)(x1, x2 + 1, x3); + f[D3Q27System::INV_MMP] = (*d.TSW)(x1 + 1, x2 + 1, x3); - f[D3Q27System::INV_W] = (*d.W)(x1 + 1, x2, x3); - f[D3Q27System::INV_S] = (*d.S)(x1, x2 + 1, x3); - f[D3Q27System::INV_B] = (*d.B)(x1, x2, x3 + 1); - f[D3Q27System::INV_SW] = (*d.SW)(x1 + 1, x2 + 1, x3); - f[D3Q27System::INV_SE] = (*d.SE)(x1, x2 + 1, x3); - f[D3Q27System::INV_BW] = (*d.BW)(x1 + 1, x2, x3 + 1); - f[D3Q27System::INV_BE] = (*d.BE)(x1, x2, x3 + 1); - f[D3Q27System::INV_BS] = (*d.BS)(x1, x2 + 1, x3 + 1); - f[D3Q27System::INV_BN] = (*d.BN)(x1, x2, x3 + 1); - f[D3Q27System::INV_BSW] = (*d.BSW)(x1 + 1, x2 + 1, x3 + 1); - f[D3Q27System::INV_BSE] = (*d.BSE)(x1, x2 + 1, x3 + 1); - f[D3Q27System::INV_BNW] = (*d.BNW)(x1 + 1, x2, x3 + 1); - f[D3Q27System::INV_BNE] = (*d.BNE)(x1, x2, x3 + 1); + f[D3Q27System::INV_M00] = (*d.W)(x1 + 1, x2, x3); + f[D3Q27System::INV_0M0] = (*d.S)(x1, x2 + 1, x3); + f[D3Q27System::INV_00M] = (*d.B)(x1, x2, x3 + 1); + f[D3Q27System::INV_MM0] = (*d.SW)(x1 + 1, x2 + 1, x3); + f[D3Q27System::INV_PM0] = (*d.SE)(x1, x2 + 1, x3); + f[D3Q27System::INV_M0M] = (*d.BW)(x1 + 1, x2, x3 + 1); + f[D3Q27System::INV_P0M] = (*d.BE)(x1, x2, x3 + 1); + f[D3Q27System::INV_0MM] = (*d.BS)(x1, x2 + 1, x3 + 1); + f[D3Q27System::INV_0PM] = (*d.BN)(x1, x2, x3 + 1); + f[D3Q27System::INV_MMM] = (*d.BSW)(x1 + 1, x2 + 1, x3 + 1); + f[D3Q27System::INV_PMM] = (*d.BSE)(x1, x2 + 1, x3 + 1); + f[D3Q27System::INV_MPM] = (*d.BNW)(x1 + 1, x2, x3 + 1); + f[D3Q27System::INV_PPM] = (*d.BNE)(x1, x2, x3 + 1); f[D3Q27System::DIR_000] = (*d.REST)(x1, x2, x3); } ////////////////////////////////////////////////////////////////////////// void D3Q27EsoTwist3DSoA::setDistributionInv(const LBMReal *const f, size_t x1, size_t x2, size_t x3) { - //(*this->localDistributions)(D3Q27System::ET_E,x1, x2, x3) = f[D3Q27System::E]; - //(*this->localDistributions)(D3Q27System::ET_N,x1, x2, x3) = f[D3Q27System::N]; - //(*this->localDistributions)(D3Q27System::ET_T,x1, x2, x3) = f[D3Q27System::T]; - //(*this->localDistributions)(D3Q27System::ET_NE,x1, x2, x3) = f[D3Q27System::NE]; - //(*this->localDistributions)(D3Q27System::ET_NW,x1+1,x2, x3) = f[D3Q27System::NW]; - //(*this->localDistributions)(D3Q27System::ET_TE,x1, x2, x3) = f[D3Q27System::TE]; - //(*this->localDistributions)(D3Q27System::ET_TW,x1+1,x2, x3) = f[D3Q27System::TW]; - //(*this->localDistributions)(D3Q27System::ET_TN,x1, x2, x3) = f[D3Q27System::TN]; - //(*this->localDistributions)(D3Q27System::ET_TS,x1, x2+1,x3) = f[D3Q27System::TS]; - //(*this->localDistributions)(D3Q27System::ET_TNE,x1, x2, x3) = f[D3Q27System::TNE]; - //(*this->localDistributions)(D3Q27System::ET_TNW,x1+1,x2, x3) = f[D3Q27System::TNW]; - //(*this->localDistributions)(D3Q27System::ET_TSE,x1, x2+1,x3) = f[D3Q27System::TSE]; - //(*this->localDistributions)(D3Q27System::ET_TSW,x1+1,x2+1,x3) = f[D3Q27System::TSW]; + //(*this->localDistributions)(D3Q27System::ET_E,x1, x2, x3) = f[D3Q27System::DIR_P00]; + //(*this->localDistributions)(D3Q27System::ET_N,x1, x2, x3) = f[D3Q27System::DIR_0P0]; + //(*this->localDistributions)(D3Q27System::ET_T,x1, x2, x3) = f[D3Q27System::DIR_00P]; + //(*this->localDistributions)(D3Q27System::ET_NE,x1, x2, x3) = f[D3Q27System::DIR_PP0]; + //(*this->localDistributions)(D3Q27System::ET_NW,x1+1,x2, x3) = f[D3Q27System::DIR_MP0]; + //(*this->localDistributions)(D3Q27System::ET_TE,x1, x2, x3) = f[D3Q27System::DIR_P0P]; + //(*this->localDistributions)(D3Q27System::ET_TW,x1+1,x2, x3) = f[D3Q27System::DIR_M0P]; + //(*this->localDistributions)(D3Q27System::ET_TN,x1, x2, x3) = f[D3Q27System::DIR_0PP]; + //(*this->localDistributions)(D3Q27System::ET_TS,x1, x2+1,x3) = f[D3Q27System::DIR_0MP]; + //(*this->localDistributions)(D3Q27System::ET_TNE,x1, x2, x3) = f[D3Q27System::DIR_PPP]; + //(*this->localDistributions)(D3Q27System::ET_TNW,x1+1,x2, x3) = f[D3Q27System::DIR_MPP]; + //(*this->localDistributions)(D3Q27System::ET_TSE,x1, x2+1,x3) = f[D3Q27System::DIR_PMP]; + //(*this->localDistributions)(D3Q27System::ET_TSW,x1+1,x2+1,x3) = f[D3Q27System::DIR_MMP]; - //(*this->nonLocalDistributions)(D3Q27System::ET_W,x1+1,x2, x3 ) = f[D3Q27System::W ]; - //(*this->nonLocalDistributions)(D3Q27System::ET_S,x1, x2+1,x3 ) = f[D3Q27System::S ]; - //(*this->nonLocalDistributions)(D3Q27System::ET_B,x1, x2, x3+1 ) = f[D3Q27System::B ]; - //(*this->nonLocalDistributions)(D3Q27System::ET_SW,x1+1,x2+1,x3 ) = f[D3Q27System::SW]; - //(*this->nonLocalDistributions)(D3Q27System::ET_SE,x1, x2+1,x3 ) = f[D3Q27System::SE]; - //(*this->nonLocalDistributions)(D3Q27System::ET_BW,x1+1,x2, x3+1 ) = f[D3Q27System::BW]; - //(*this->nonLocalDistributions)(D3Q27System::ET_BE,x1, x2, x3+1 ) = f[D3Q27System::BE]; - //(*this->nonLocalDistributions)(D3Q27System::ET_BS,x1, x2+1,x3+1 ) = f[D3Q27System::BS]; - //(*this->nonLocalDistributions)(D3Q27System::ET_BN,x1, x2, x3+1 ) = f[D3Q27System::BN]; + //(*this->nonLocalDistributions)(D3Q27System::ET_W,x1+1,x2, x3 ) = f[D3Q27System::DIR_M00 ]; + //(*this->nonLocalDistributions)(D3Q27System::ET_S,x1, x2+1,x3 ) = f[D3Q27System::DIR_0M0 ]; + //(*this->nonLocalDistributions)(D3Q27System::ET_B,x1, x2, x3+1 ) = f[D3Q27System::DIR_00M ]; + //(*this->nonLocalDistributions)(D3Q27System::ET_SW,x1+1,x2+1,x3 ) = f[D3Q27System::DIR_MM0]; + //(*this->nonLocalDistributions)(D3Q27System::ET_SE,x1, x2+1,x3 ) = f[D3Q27System::DIR_PM0]; + //(*this->nonLocalDistributions)(D3Q27System::ET_BW,x1+1,x2, x3+1 ) = f[D3Q27System::DIR_M0M]; + //(*this->nonLocalDistributions)(D3Q27System::ET_BE,x1, x2, x3+1 ) = f[D3Q27System::DIR_P0M]; + //(*this->nonLocalDistributions)(D3Q27System::ET_BS,x1, x2+1,x3+1 ) = f[D3Q27System::DIR_0MM]; + //(*this->nonLocalDistributions)(D3Q27System::ET_BN,x1, x2, x3+1 ) = f[D3Q27System::DIR_0PM]; //(*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1+1,x2+1,x3+1) = f[D3Q27System::BSW]; //(*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1, x2+1,x3+1) = f[D3Q27System::BSE]; //(*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1+1,x2, x3+1) = f[D3Q27System::BNW]; - //(*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1, x2, x3+1) = f[D3Q27System::BNE]; + //(*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1, x2, x3+1) = f[D3Q27System::DIR_DIR_PPM]; //(*this->zeroDistributions)(x1,x2,x3) = f[D3Q27System::REST]; } @@ -230,57 +230,57 @@ void D3Q27EsoTwist3DSoA::setDistributionForDirection(const LBMReal *const f, siz { // bool directionFlag = false; // if ((direction & EsoTwistD3Q27System::etE) == EsoTwistD3Q27System::etE) - // (*this->nonLocalDistributions)(D3Q27System::ET_W,x1+1,x2, x3 ) = f[D3Q27System::E]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_W,x1+1,x2, x3 ) = f[D3Q27System::DIR_P00]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etW) == EsoTwistD3Q27System::etW) - // (*this->localDistributions)(D3Q27System::ET_E,x1, x2, x3) = f[D3Q27System::W]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_E,x1, x2, x3) = f[D3Q27System::DIR_M00]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etS) == EsoTwistD3Q27System::etS) - // (*this->localDistributions)(D3Q27System::ET_N,x1, x2, x3) = f[D3Q27System::S]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_N,x1, x2, x3) = f[D3Q27System::DIR_0M0]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etN) == EsoTwistD3Q27System::etN) - // (*this->nonLocalDistributions)(D3Q27System::ET_S,x1, x2+1,x3 ) = f[D3Q27System::N]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_S,x1, x2+1,x3 ) = f[D3Q27System::DIR_0P0]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etB) == EsoTwistD3Q27System::etB) - // (*this->localDistributions)(D3Q27System::ET_T,x1, x2, x3) = f[D3Q27System::B]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_T,x1, x2, x3) = f[D3Q27System::DIR_00M]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etT) == EsoTwistD3Q27System::etT) - // (*this->nonLocalDistributions)(D3Q27System::ET_B,x1, x2, x3+1 ) = f[D3Q27System::T]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_B,x1, x2, x3+1 ) = f[D3Q27System::DIR_00P]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etSW) == EsoTwistD3Q27System::etSW) - // (*this->localDistributions)(D3Q27System::ET_NE,x1, x2, x3) = f[D3Q27System::SW]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_NE,x1, x2, x3) = f[D3Q27System::DIR_MM0]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etNE) == EsoTwistD3Q27System::etNE) - // (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1+1,x2+1,x3 ) = f[D3Q27System::NE]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1+1,x2+1,x3 ) = f[D3Q27System::DIR_PP0]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etNW) == EsoTwistD3Q27System::etNW) - // (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1, x2+1,x3 ) = f[D3Q27System::NW]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1, x2+1,x3 ) = f[D3Q27System::DIR_MP0]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etSE) == EsoTwistD3Q27System::etSE) - // (*this->localDistributions)(D3Q27System::ET_NW,x1+1,x2, x3) = f[D3Q27System::SE]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_NW,x1+1,x2, x3) = f[D3Q27System::DIR_PM0]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBW) == EsoTwistD3Q27System::etBW) - // (*this->localDistributions)(D3Q27System::ET_TE,x1, x2, x3) = f[D3Q27System::BW]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TE,x1, x2, x3) = f[D3Q27System::DIR_M0M]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTE) == EsoTwistD3Q27System::etTE) - // (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1+1,x2, x3+1 ) = f[D3Q27System::TE]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1+1,x2, x3+1 ) = f[D3Q27System::DIR_P0P]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTW) == EsoTwistD3Q27System::etTW) - // (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1, x2, x3+1 ) = f[D3Q27System::TW]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1, x2, x3+1 ) = f[D3Q27System::DIR_M0P]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBE) == EsoTwistD3Q27System::etBE) - // (*this->localDistributions)(D3Q27System::ET_TW,x1+1,x2, x3) = f[D3Q27System::BE]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TW,x1+1,x2, x3) = f[D3Q27System::DIR_P0M]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBS) == EsoTwistD3Q27System::etBS) - // (*this->localDistributions)(D3Q27System::ET_TN,x1, x2, x3) = f[D3Q27System::BS]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TN,x1, x2, x3) = f[D3Q27System::DIR_0MM]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTN) == EsoTwistD3Q27System::etTN) - // (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1, x2+1,x3+1 ) = f[D3Q27System::TN]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1, x2+1,x3+1 ) = f[D3Q27System::DIR_0PP]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTS) == EsoTwistD3Q27System::etTS) - // (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1, x2, x3+1 ) = f[D3Q27System::TS]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1, x2, x3+1 ) = f[D3Q27System::DIR_0MP]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBN) == EsoTwistD3Q27System::etBN) - // (*this->localDistributions)(D3Q27System::ET_TS,x1, x2+1,x3) = f[D3Q27System::BN]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TS,x1, x2+1,x3) = f[D3Q27System::DIR_0PM]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBSW) == EsoTwistD3Q27System::etBSW) // (*this->localDistributions)(D3Q27System::ET_TNE,x1, x2, x3) = f[D3Q27System::BSW]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTNE) == EsoTwistD3Q27System::etTNE) - // (*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1+1,x2+1,x3+1) = f[D3Q27System::TNE]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1+1,x2+1,x3+1) = f[D3Q27System::DIR_PPP]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBSE) == EsoTwistD3Q27System::etBSE) // (*this->localDistributions)(D3Q27System::ET_TNW,x1+1,x2, x3) = f[D3Q27System::BSE]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTNW) == EsoTwistD3Q27System::etTNW) - // (*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1, x2+1,x3+1) = f[D3Q27System::TNW]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1, x2+1,x3+1) = f[D3Q27System::DIR_MPP]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBNW) == EsoTwistD3Q27System::etBNW) // (*this->localDistributions)(D3Q27System::ET_TSE,x1, x2+1,x3) = f[D3Q27System::BNW]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTSE) == EsoTwistD3Q27System::etTSE) - // (*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1+1,x2, x3+1) = f[D3Q27System::TSE]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1+1,x2, x3+1) = f[D3Q27System::DIR_PMP]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBNE) == EsoTwistD3Q27System::etBNE) - // (*this->localDistributions)(D3Q27System::ET_TSW,x1+1,x2+1,x3) = f[D3Q27System::BNE]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TSW,x1+1,x2+1,x3) = f[D3Q27System::DIR_DIR_PPM]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTSW) == EsoTwistD3Q27System::etTSW) - // (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1, x2, x3+1) = f[D3Q27System::TSW]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1, x2, x3+1) = f[D3Q27System::DIR_MMP]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::REST) == EsoTwistD3Q27System::REST) // (*this->zeroDistributions)(x1,x2,x3) = f[D3Q27System::REST]; directionFlag=true; //#ifdef _DEBUG @@ -292,82 +292,82 @@ void D3Q27EsoTwist3DSoA::setDistributionForDirection(LBMReal f, size_t x1, size_ { // switch (direction) //{ - // case D3Q27System::E : + // case D3Q27System::DIR_P00 : // (*this->nonLocalDistributions)(D3Q27System::ET_W,x1+1,x2, x3 ) = f; // break; - // case D3Q27System::W : + // case D3Q27System::DIR_M00 : // (*this->localDistributions)(D3Q27System::ET_E,x1, x2, x3) = f; // break; - // case D3Q27System::S : + // case D3Q27System::DIR_0M0 : // (*this->localDistributions)(D3Q27System::ET_N,x1, x2, x3) = f; // break; - // case D3Q27System::N : + // case D3Q27System::DIR_0P0 : // (*this->nonLocalDistributions)(D3Q27System::ET_S,x1, x2+1,x3 ) = f; // break; - // case D3Q27System::B : + // case D3Q27System::DIR_00M : // (*this->localDistributions)(D3Q27System::ET_T,x1, x2, x3) = f; // break; - // case D3Q27System::T : + // case D3Q27System::DIR_00P : // (*this->nonLocalDistributions)(D3Q27System::ET_B,x1, x2, x3+1 ) = f; // break; - // case D3Q27System::SW : + // case D3Q27System::DIR_MM0 : // (*this->localDistributions)(D3Q27System::ET_NE,x1, x2, x3) = f; // break; - // case D3Q27System::NE : + // case D3Q27System::DIR_PP0 : // (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1+1,x2+1,x3 ) = f; // break; - // case D3Q27System::NW : + // case D3Q27System::DIR_MP0 : // (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1, x2+1,x3 ) = f; // break; - // case D3Q27System::SE : + // case D3Q27System::DIR_PM0 : // (*this->localDistributions)(D3Q27System::ET_NW,x1+1,x2, x3) = f; // break; - // case D3Q27System::BW : + // case D3Q27System::DIR_M0M : // (*this->localDistributions)(D3Q27System::ET_TE,x1, x2, x3) = f; // break; - // case D3Q27System::TE : + // case D3Q27System::DIR_P0P : // (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1+1,x2, x3+1 ) = f; // break; - // case D3Q27System::TW : + // case D3Q27System::DIR_M0P : // (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1, x2, x3+1 ) = f; // break; - // case D3Q27System::BE : + // case D3Q27System::DIR_P0M : // (*this->localDistributions)(D3Q27System::ET_TW,x1+1,x2, x3) = f; // break; - // case D3Q27System::BS : + // case D3Q27System::DIR_0MM : // (*this->localDistributions)(D3Q27System::ET_TN,x1, x2, x3) = f; // break; - // case D3Q27System::TN : + // case D3Q27System::DIR_0PP : // (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1, x2+1,x3+1 ) = f; // break; - // case D3Q27System::TS : + // case D3Q27System::DIR_0MP : // (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1, x2, x3+1 ) = f; // break; - // case D3Q27System::BN : + // case D3Q27System::DIR_0PM : // (*this->localDistributions)(D3Q27System::ET_TS,x1, x2+1,x3) = f; // break; // case D3Q27System::BSW : // (*this->localDistributions)(D3Q27System::ET_TNE,x1, x2, x3) = f; // break; - // case D3Q27System::TNE : + // case D3Q27System::DIR_PPP : // (*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1+1,x2+1,x3+1) = f; // break; // case D3Q27System::BSE : // (*this->localDistributions)(D3Q27System::ET_TNW,x1+1,x2, x3) = f; // break; - // case D3Q27System::TNW : + // case D3Q27System::DIR_MPP : // (*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1, x2+1,x3+1) = f; // break; // case D3Q27System::BNW : // (*this->localDistributions)(D3Q27System::ET_TSE,x1, x2+1,x3) = f; // break; - // case D3Q27System::TSE : + // case D3Q27System::DIR_PMP : // (*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1+1,x2, x3+1) = f; // break; - // case D3Q27System::BNE : + // case D3Q27System::DIR_DIR_PPM : // (*this->localDistributions)(D3Q27System::ET_TSW,x1+1,x2+1,x3) = f; // break; - // case D3Q27System::TSW : + // case D3Q27System::DIR_MMP : // (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1, x2, x3+1) = f; // break; // case D3Q27System::REST : @@ -383,60 +383,60 @@ void D3Q27EsoTwist3DSoA::setDistributionInvForDirection(const LBMReal *const f, { // bool directionFlag = false; // if ((direction & EsoTwistD3Q27System::etE) == EsoTwistD3Q27System::etE) - // (*this->localDistributions)(D3Q27System::ET_E,x1, x2, x3) = f[D3Q27System::E]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_E,x1, x2, x3) = f[D3Q27System::DIR_P00]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etW) == EsoTwistD3Q27System::etW) - // (*this->nonLocalDistributions)(D3Q27System::ET_W,x1+1,x2, x3 ) = f[D3Q27System::W]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_W,x1+1,x2, x3 ) = f[D3Q27System::DIR_M00]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etS) == EsoTwistD3Q27System::etS) - // (*this->nonLocalDistributions)(D3Q27System::ET_S,x1, x2+1,x3 ) = f[D3Q27System::S]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_S,x1, x2+1,x3 ) = f[D3Q27System::DIR_0M0]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etN) == EsoTwistD3Q27System::etN) - // (*this->localDistributions)(D3Q27System::ET_N,x1, x2, x3) = f[D3Q27System::N]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_N,x1, x2, x3) = f[D3Q27System::DIR_0P0]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etB) == EsoTwistD3Q27System::etB) - // (*this->nonLocalDistributions)(D3Q27System::ET_B,x1, x2, x3+1 ) = f[D3Q27System::B]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_B,x1, x2, x3+1 ) = f[D3Q27System::DIR_00M]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etT) == EsoTwistD3Q27System::etT) - // (*this->localDistributions)(D3Q27System::ET_T,x1, x2, x3) = f[D3Q27System::T]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_T,x1, x2, x3) = f[D3Q27System::DIR_00P]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etSW) == EsoTwistD3Q27System::etSW) - // (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1+1,x2+1,x3 ) = f[D3Q27System::SW]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1+1,x2+1,x3 ) = f[D3Q27System::DIR_MM0]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etNE) == EsoTwistD3Q27System::etNE) - // (*this->localDistributions)(D3Q27System::ET_NE,x1, x2, x3) = f[D3Q27System::NE]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_NE,x1, x2, x3) = f[D3Q27System::DIR_PP0]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etNW) == EsoTwistD3Q27System::etNW) - // (*this->localDistributions)(D3Q27System::ET_NW,x1+1,x2, x3) = f[D3Q27System::NW]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_NW,x1+1,x2, x3) = f[D3Q27System::DIR_MP0]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etSE) == EsoTwistD3Q27System::etSE) - // (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1, x2+1,x3 ) = f[D3Q27System::SE]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1, x2+1,x3 ) = f[D3Q27System::DIR_PM0]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBW) == EsoTwistD3Q27System::etBW) - // (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1+1,x2, x3+1 ) = f[D3Q27System::BW]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1+1,x2, x3+1 ) = f[D3Q27System::DIR_M0M]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTE) == EsoTwistD3Q27System::etTE) - // (*this->localDistributions)(D3Q27System::ET_TE,x1, x2, x3) = f[D3Q27System::TE]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TE,x1, x2, x3) = f[D3Q27System::DIR_P0P]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTW) == EsoTwistD3Q27System::etTW) - // (*this->localDistributions)(D3Q27System::ET_TW,x1+1,x2, x3) = f[D3Q27System::TW]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TW,x1+1,x2, x3) = f[D3Q27System::DIR_M0P]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBE) == EsoTwistD3Q27System::etBE) - // (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1, x2, x3+1 ) = f[D3Q27System::BE]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1, x2, x3+1 ) = f[D3Q27System::DIR_P0M]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBS) == EsoTwistD3Q27System::etBS) - // (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1, x2+1,x3+1 ) = f[D3Q27System::BS]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1, x2+1,x3+1 ) = f[D3Q27System::DIR_0MM]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTN) == EsoTwistD3Q27System::etTN) - // (*this->localDistributions)(D3Q27System::ET_TN,x1, x2, x3) = f[D3Q27System::TN]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TN,x1, x2, x3) = f[D3Q27System::DIR_0PP]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTS) == EsoTwistD3Q27System::etTS) - // (*this->localDistributions)(D3Q27System::ET_TS,x1, x2+1,x3) = f[D3Q27System::TS]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TS,x1, x2+1,x3) = f[D3Q27System::DIR_0MP]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBN) == EsoTwistD3Q27System::etBN) - // (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1, x2, x3+1 ) = f[D3Q27System::BN]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1, x2, x3+1 ) = f[D3Q27System::DIR_0PM]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBSW) == EsoTwistD3Q27System::etBSW) // (*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1+1,x2+1,x3+1) = f[D3Q27System::BSW]; // directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTNE) == EsoTwistD3Q27System::etTNE) - // (*this->localDistributions)(D3Q27System::ET_TNE,x1, x2, x3) = f[D3Q27System::TNE]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TNE,x1, x2, x3) = f[D3Q27System::DIR_PPP]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBSE) == EsoTwistD3Q27System::etBSE) // (*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1, x2+1,x3+1) = f[D3Q27System::BSE]; // directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTNW) == EsoTwistD3Q27System::etTNW) - // (*this->localDistributions)(D3Q27System::ET_TNW,x1+1,x2, x3) = f[D3Q27System::TNW]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TNW,x1+1,x2, x3) = f[D3Q27System::DIR_MPP]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBNW) == EsoTwistD3Q27System::etBNW) // (*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1+1,x2, x3+1) = f[D3Q27System::BNW]; // directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTSE) == EsoTwistD3Q27System::etTSE) - // (*this->localDistributions)(D3Q27System::ET_TSE,x1, x2+1,x3) = f[D3Q27System::TSE]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TSE,x1, x2+1,x3) = f[D3Q27System::DIR_PMP]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etBNE) == EsoTwistD3Q27System::etBNE) - // (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1, x2, x3+1)= f[D3Q27System::BNE]; directionFlag=true; + // (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1, x2, x3+1)= f[D3Q27System::DIR_DIR_PPM]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::etTSW) == EsoTwistD3Q27System::etTSW) - // (*this->localDistributions)(D3Q27System::ET_TSW,x1+1,x2+1,x3) = f[D3Q27System::TSW]; directionFlag=true; + // (*this->localDistributions)(D3Q27System::ET_TSW,x1+1,x2+1,x3) = f[D3Q27System::DIR_MMP]; directionFlag=true; // if ((direction & EsoTwistD3Q27System::REST) == EsoTwistD3Q27System::REST) // (*this->zeroDistributions)(x1,x2,x3) = f[D3Q27System::REST]; directionFlag=true; //#ifdef _DEBUG @@ -449,82 +449,82 @@ void D3Q27EsoTwist3DSoA::setDistributionInvForDirection(LBMReal f, size_t x1, si { // switch (direction) //{ - // case D3Q27System::E : + // case D3Q27System::DIR_P00 : // (*this->localDistributions)(D3Q27System::ET_E,x1, x2, x3) = f; // break; - // case D3Q27System::W : + // case D3Q27System::DIR_M00 : // (*this->nonLocalDistributions)(D3Q27System::ET_W,x1+1,x2, x3 ) = f; // break; - // case D3Q27System::S : + // case D3Q27System::DIR_0M0 : // (*this->nonLocalDistributions)(D3Q27System::ET_S,x1, x2+1,x3 ) = f; // break; - // case D3Q27System::N : + // case D3Q27System::DIR_0P0 : // (*this->localDistributions)(D3Q27System::ET_N,x1, x2, x3) = f; // break; - // case D3Q27System::B : + // case D3Q27System::DIR_00M : // (*this->nonLocalDistributions)(D3Q27System::ET_B,x1, x2, x3+1 ) = f; // break; - // case D3Q27System::T : + // case D3Q27System::DIR_00P : // (*this->localDistributions)(D3Q27System::ET_T,x1, x2, x3) = f; // break; - // case D3Q27System::SW : + // case D3Q27System::DIR_MM0 : // (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1+1,x2+1,x3 ) = f; // break; - // case D3Q27System::NE : + // case D3Q27System::DIR_PP0 : // (*this->localDistributions)(D3Q27System::ET_NE,x1, x2, x3) = f; // break; - // case D3Q27System::NW : + // case D3Q27System::DIR_MP0 : // (*this->localDistributions)(D3Q27System::ET_NW,x1+1,x2, x3) = f; // break; - // case D3Q27System::SE : + // case D3Q27System::DIR_PM0 : // (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1, x2+1,x3 ) = f; // break; - // case D3Q27System::BW : + // case D3Q27System::DIR_M0M : // (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1+1,x2, x3+1 ) = f; // break; - // case D3Q27System::TE : + // case D3Q27System::DIR_P0P : // (*this->localDistributions)(D3Q27System::ET_TE,x1, x2, x3) = f; // break; - // case D3Q27System::TW : + // case D3Q27System::DIR_M0P : // (*this->localDistributions)(D3Q27System::ET_TW,x1+1,x2, x3) = f; // break; - // case D3Q27System::BE : + // case D3Q27System::DIR_P0M : // (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1, x2, x3+1 ) = f; // break; - // case D3Q27System::BS : + // case D3Q27System::DIR_0MM : // (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1, x2+1,x3+1 ) = f; // break; - // case D3Q27System::TN : + // case D3Q27System::DIR_0PP : // (*this->localDistributions)(D3Q27System::ET_TN,x1, x2, x3) = f; // break; - // case D3Q27System::TS : + // case D3Q27System::DIR_0MP : // (*this->localDistributions)(D3Q27System::ET_TS,x1, x2+1,x3) = f; // break; - // case D3Q27System::BN : + // case D3Q27System::DIR_0PM : // (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1, x2, x3+1 ) = f; // break; // case D3Q27System::BSW : // (*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1+1,x2+1,x3+1) = f; // break; - // case D3Q27System::TNE : + // case D3Q27System::DIR_PPP : // (*this->localDistributions)(D3Q27System::ET_TNE,x1, x2, x3) = f; // break; // case D3Q27System::BSE : // (*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1, x2+1,x3+1) = f; // break; - // case D3Q27System::TNW : + // case D3Q27System::DIR_MPP : // (*this->localDistributions)(D3Q27System::ET_TNW,x1+1,x2, x3) = f; // break; // case D3Q27System::BNW : // (*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1+1,x2, x3+1) = f; // break; - // case D3Q27System::TSE : + // case D3Q27System::DIR_PMP : // (*this->localDistributions)(D3Q27System::ET_TSE,x1, x2+1,x3) = f; // break; - // case D3Q27System::BNE : + // case D3Q27System::DIR_DIR_PPM : // (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1, x2, x3+1) = f; // break; - // case D3Q27System::TSW : + // case D3Q27System::DIR_MMP : // (*this->localDistributions)(D3Q27System::ET_TSW,x1+1,x2+1,x3) = f; // break; // case D3Q27System::REST : @@ -540,57 +540,57 @@ LBMReal D3Q27EsoTwist3DSoA::getDistributionInvForDirection(size_t /*x1*/, size_t { // switch (direction) //{ - // case D3Q27System::E : + // case D3Q27System::DIR_P00 : // return (*this->nonLocalDistributions)(D3Q27System::ET_W,x1+1,x2, x3 ); - // case D3Q27System::W : + // case D3Q27System::DIR_M00 : // return (*this->localDistributions)(D3Q27System::ET_E,x1, x2, x3); - // case D3Q27System::S : + // case D3Q27System::DIR_0M0 : // return (*this->localDistributions)(D3Q27System::ET_N,x1, x2, x3); - // case D3Q27System::N : + // case D3Q27System::DIR_0P0 : // return (*this->nonLocalDistributions)(D3Q27System::ET_S,x1, x2+1,x3 ); - // case D3Q27System::B : + // case D3Q27System::DIR_00M : // return (*this->localDistributions)(D3Q27System::ET_T,x1, x2, x3); - // case D3Q27System::T : + // case D3Q27System::DIR_00P : // return (*this->nonLocalDistributions)(D3Q27System::ET_B,x1, x2, x3+1 ); - // case D3Q27System::SW : + // case D3Q27System::DIR_MM0 : // return (*this->localDistributions)(D3Q27System::ET_NE,x1, x2, x3); - // case D3Q27System::NE : + // case D3Q27System::DIR_PP0 : // return (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1+1,x2+1,x3 ); - // case D3Q27System::NW : + // case D3Q27System::DIR_MP0 : // return (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1, x2+1,x3 ); - // case D3Q27System::SE : + // case D3Q27System::DIR_PM0 : // return (*this->localDistributions)(D3Q27System::ET_NW,x1+1,x2, x3); - // case D3Q27System::BW : + // case D3Q27System::DIR_M0M : // return (*this->localDistributions)(D3Q27System::ET_TE,x1, x2, x3); - // case D3Q27System::TE : + // case D3Q27System::DIR_P0P : // return (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1+1,x2, x3+1 ); - // case D3Q27System::TW : + // case D3Q27System::DIR_M0P : // return (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1, x2, x3+1 ); - // case D3Q27System::BE : + // case D3Q27System::DIR_P0M : // return (*this->localDistributions)(D3Q27System::ET_TW,x1+1,x2, x3); - // case D3Q27System::BS : + // case D3Q27System::DIR_0MM : // return (*this->localDistributions)(D3Q27System::ET_TN,x1, x2, x3); - // case D3Q27System::TN : + // case D3Q27System::DIR_0PP : // return (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1, x2+1,x3+1 ); - // case D3Q27System::TS : + // case D3Q27System::DIR_0MP : // return (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1, x2, x3+1 ); - // case D3Q27System::BN : + // case D3Q27System::DIR_0PM : // return (*this->localDistributions)(D3Q27System::ET_TS,x1, x2+1,x3); // case D3Q27System::BSW : // return (*this->localDistributions)(D3Q27System::ET_TNE,x1, x2, x3); - // case D3Q27System::TNE : + // case D3Q27System::DIR_PPP : // return (*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1+1,x2+1,x3+1); // case D3Q27System::BSE : // return (*this->localDistributions)(D3Q27System::ET_TNW,x1+1,x2, x3); - // case D3Q27System::TNW : + // case D3Q27System::DIR_MPP : // return (*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1, x2+1,x3+1); // case D3Q27System::BNW : // return (*this->localDistributions)(D3Q27System::ET_TSE,x1, x2+1,x3); - // case D3Q27System::TSE : + // case D3Q27System::DIR_PMP : // return (*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1+1,x2, x3+1); - // case D3Q27System::BNE : + // case D3Q27System::DIR_DIR_PPM : // return (*this->localDistributions)(D3Q27System::ET_TSW,x1+1,x2+1,x3); - // case D3Q27System::TSW : + // case D3Q27System::DIR_MMP : // return (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1, x2, x3+1); // case D3Q27System::REST : // return (*this->zeroDistributions)(x1,x2,x3); diff --git a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.cpp b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.cpp index ecb53fda11681ada356db6af2ad40996aebef422..684238baad1752ab3fad051666da459fd8e11095 100644 --- a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.cpp +++ b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.cpp @@ -56,132 +56,132 @@ void D3Q27EsoTwist3DSplittedVector::swap() { std::swap(this->localDistributions, ////////////////////////////////////////////////////////////////////////// void D3Q27EsoTwist3DSplittedVector::getDistribution(LBMReal *const f, size_t x1, size_t x2, size_t x3) { - f[D3Q27System::E] = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); - f[D3Q27System::N] = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); - f[D3Q27System::T] = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); - f[D3Q27System::NE] = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - f[D3Q27System::NW] = (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3); - f[D3Q27System::TE] = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - f[D3Q27System::TW] = (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3); - f[D3Q27System::TN] = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - f[D3Q27System::TS] = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3); - f[D3Q27System::TNE] = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - f[D3Q27System::TNW] = (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3); - f[D3Q27System::TSE] = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3); - f[D3Q27System::TSW] = (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3); + f[D3Q27System::DIR_P00] = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); + f[D3Q27System::DIR_0P0] = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); + f[D3Q27System::DIR_00P] = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); + f[D3Q27System::DIR_PP0] = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); + f[D3Q27System::DIR_MP0] = (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3); + f[D3Q27System::DIR_P0P] = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); + f[D3Q27System::DIR_M0P] = (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3); + f[D3Q27System::DIR_0PP] = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); + f[D3Q27System::DIR_0MP] = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3); + f[D3Q27System::DIR_PPP] = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); + f[D3Q27System::DIR_MPP] = (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3); + f[D3Q27System::DIR_PMP] = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3); + f[D3Q27System::DIR_MMP] = (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3); - f[D3Q27System::W] = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3); - f[D3Q27System::S] = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3); - f[D3Q27System::B] = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1); - f[D3Q27System::SW] = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3); - f[D3Q27System::SE] = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3); - f[D3Q27System::BW] = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1); - f[D3Q27System::BE] = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1); - f[D3Q27System::BS] = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1); - f[D3Q27System::BN] = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1); - f[D3Q27System::BSW] = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1); - f[D3Q27System::BSE] = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1); - f[D3Q27System::BNW] = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1); - f[D3Q27System::BNE] = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1); + f[D3Q27System::DIR_M00] = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3); + f[D3Q27System::DIR_0M0] = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3); + f[D3Q27System::DIR_00M] = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1); + f[D3Q27System::DIR_MM0] = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3); + f[D3Q27System::DIR_PM0] = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3); + f[D3Q27System::DIR_M0M] = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1); + f[D3Q27System::DIR_P0M] = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1); + f[D3Q27System::DIR_0MM] = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1); + f[D3Q27System::DIR_0PM] = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1); + f[D3Q27System::DIR_MMM] = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1); + f[D3Q27System::DIR_PMM] = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1); + f[D3Q27System::DIR_MPM] = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1); + f[D3Q27System::DIR_PPM] = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1); f[D3Q27System::DIR_000] = (*this->zeroDistributions)(x1, x2, x3); } ////////////////////////////////////////////////////////////////////////// void D3Q27EsoTwist3DSplittedVector::setDistribution(const LBMReal *const f, size_t x1, size_t x2, size_t x3) { - (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f[D3Q27System::INV_E]; - (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f[D3Q27System::INV_N]; - (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f[D3Q27System::INV_T]; - (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f[D3Q27System::INV_NE]; - (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3) = f[D3Q27System::INV_NW]; - (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f[D3Q27System::INV_TE]; - (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3) = f[D3Q27System::INV_TW]; - (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f[D3Q27System::INV_TN]; - (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3) = f[D3Q27System::INV_TS]; - (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f[D3Q27System::INV_TNE]; - (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3) = f[D3Q27System::INV_TNW]; - (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3) = f[D3Q27System::INV_TSE]; - (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3) = f[D3Q27System::INV_TSW]; + (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f[D3Q27System::INV_P00]; + (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f[D3Q27System::INV_0P0]; + (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f[D3Q27System::INV_00P]; + (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f[D3Q27System::INV_PP0]; + (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3) = f[D3Q27System::INV_MP0]; + (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f[D3Q27System::INV_P0P]; + (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3) = f[D3Q27System::INV_M0P]; + (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f[D3Q27System::INV_0PP]; + (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3) = f[D3Q27System::INV_0MP]; + (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f[D3Q27System::INV_PPP]; + (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3) = f[D3Q27System::INV_MPP]; + (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3) = f[D3Q27System::INV_PMP]; + (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3) = f[D3Q27System::INV_MMP]; - (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3) = f[D3Q27System::INV_W]; - (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3) = f[D3Q27System::INV_S]; - (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1) = f[D3Q27System::INV_B]; - (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3) = f[D3Q27System::INV_SW]; - (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3) = f[D3Q27System::INV_SE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1) = f[D3Q27System::INV_BW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1) = f[D3Q27System::INV_BE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1) = f[D3Q27System::INV_BS]; - (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1) = f[D3Q27System::INV_BN]; - (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1) = f[D3Q27System::INV_BSW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1) = f[D3Q27System::INV_BSE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1) = f[D3Q27System::INV_BNW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1) = f[D3Q27System::INV_BNE]; + (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3) = f[D3Q27System::INV_M00]; + (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3) = f[D3Q27System::INV_0M0]; + (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1) = f[D3Q27System::INV_00M]; + (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3) = f[D3Q27System::INV_MM0]; + (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3) = f[D3Q27System::INV_PM0]; + (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1) = f[D3Q27System::INV_M0M]; + (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1) = f[D3Q27System::INV_P0M]; + (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1) = f[D3Q27System::INV_0MM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1) = f[D3Q27System::INV_0PM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1) = f[D3Q27System::INV_MMM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1) = f[D3Q27System::INV_PMM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1) = f[D3Q27System::INV_MPM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1) = f[D3Q27System::INV_PPM]; (*this->zeroDistributions)(x1, x2, x3) = f[D3Q27System::DIR_000]; } ////////////////////////////////////////////////////////////////////////// void D3Q27EsoTwist3DSplittedVector::getDistributionInv(LBMReal *const f, size_t x1, size_t x2, size_t x3) { - f[D3Q27System::INV_E] = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); - f[D3Q27System::INV_N] = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); - f[D3Q27System::INV_T] = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); - f[D3Q27System::INV_NE] = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - f[D3Q27System::INV_NW] = (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3); - f[D3Q27System::INV_TE] = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - f[D3Q27System::INV_TW] = (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3); - f[D3Q27System::INV_TN] = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - f[D3Q27System::INV_TS] = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3); - f[D3Q27System::INV_TNE] = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - f[D3Q27System::INV_TNW] = (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3); - f[D3Q27System::INV_TSE] = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3); - f[D3Q27System::INV_TSW] = (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3); + f[D3Q27System::INV_P00] = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); + f[D3Q27System::INV_0P0] = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); + f[D3Q27System::INV_00P] = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); + f[D3Q27System::INV_PP0] = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); + f[D3Q27System::INV_MP0] = (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3); + f[D3Q27System::INV_P0P] = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); + f[D3Q27System::INV_M0P] = (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3); + f[D3Q27System::INV_0PP] = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); + f[D3Q27System::INV_0MP] = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3); + f[D3Q27System::INV_PPP] = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); + f[D3Q27System::INV_MPP] = (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3); + f[D3Q27System::INV_PMP] = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3); + f[D3Q27System::INV_MMP] = (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3); - f[D3Q27System::INV_W] = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3); - f[D3Q27System::INV_S] = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3); - f[D3Q27System::INV_B] = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1); - f[D3Q27System::INV_SW] = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3); - f[D3Q27System::INV_SE] = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3); - f[D3Q27System::INV_BW] = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1); - f[D3Q27System::INV_BE] = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1); - f[D3Q27System::INV_BS] = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1); - f[D3Q27System::INV_BN] = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1); - f[D3Q27System::INV_BSW] = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1); - f[D3Q27System::INV_BSE] = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1); - f[D3Q27System::INV_BNW] = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1); - f[D3Q27System::INV_BNE] = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1); + f[D3Q27System::INV_M00] = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3); + f[D3Q27System::INV_0M0] = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3); + f[D3Q27System::INV_00M] = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1); + f[D3Q27System::INV_MM0] = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3); + f[D3Q27System::INV_PM0] = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3); + f[D3Q27System::INV_M0M] = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1); + f[D3Q27System::INV_P0M] = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1); + f[D3Q27System::INV_0MM] = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1); + f[D3Q27System::INV_0PM] = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1); + f[D3Q27System::INV_MMM] = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1); + f[D3Q27System::INV_PMM] = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1); + f[D3Q27System::INV_MPM] = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1); + f[D3Q27System::INV_PPM] = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1); f[D3Q27System::DIR_000] = (*this->zeroDistributions)(x1, x2, x3); } ////////////////////////////////////////////////////////////////////////// void D3Q27EsoTwist3DSplittedVector::setDistributionInv(const LBMReal *const f, size_t x1, size_t x2, size_t x3) { - (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f[D3Q27System::E]; - (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f[D3Q27System::N]; - (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f[D3Q27System::T]; - (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f[D3Q27System::NE]; - (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3) = f[D3Q27System::NW]; - (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f[D3Q27System::TE]; - (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3) = f[D3Q27System::TW]; - (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f[D3Q27System::TN]; - (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3) = f[D3Q27System::TS]; - (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f[D3Q27System::TNE]; - (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3) = f[D3Q27System::TNW]; - (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3) = f[D3Q27System::TSE]; - (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3) = f[D3Q27System::TSW]; + (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f[D3Q27System::DIR_P00]; + (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f[D3Q27System::DIR_0P0]; + (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f[D3Q27System::DIR_00P]; + (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f[D3Q27System::DIR_PP0]; + (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3) = f[D3Q27System::DIR_MP0]; + (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f[D3Q27System::DIR_P0P]; + (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3) = f[D3Q27System::DIR_M0P]; + (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f[D3Q27System::DIR_0PP]; + (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3) = f[D3Q27System::DIR_0MP]; + (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f[D3Q27System::DIR_PPP]; + (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3) = f[D3Q27System::DIR_MPP]; + (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3) = f[D3Q27System::DIR_PMP]; + (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3) = f[D3Q27System::DIR_MMP]; - (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3) = f[D3Q27System::W]; - (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3) = f[D3Q27System::S]; - (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1) = f[D3Q27System::B]; - (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3) = f[D3Q27System::SW]; - (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3) = f[D3Q27System::SE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1) = f[D3Q27System::BW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1) = f[D3Q27System::BE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1) = f[D3Q27System::BS]; - (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1) = f[D3Q27System::BN]; - (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1) = f[D3Q27System::BSW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1) = f[D3Q27System::BSE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1) = f[D3Q27System::BNW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1) = f[D3Q27System::BNE]; + (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3) = f[D3Q27System::DIR_M00]; + (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3) = f[D3Q27System::DIR_0M0]; + (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1) = f[D3Q27System::DIR_00M]; + (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3) = f[D3Q27System::DIR_MM0]; + (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3) = f[D3Q27System::DIR_PM0]; + (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1) = f[D3Q27System::DIR_M0M]; + (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1) = f[D3Q27System::DIR_P0M]; + (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1) = f[D3Q27System::DIR_0MM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1) = f[D3Q27System::DIR_0PM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1) = f[D3Q27System::DIR_MMM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1) = f[D3Q27System::DIR_PMM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1) = f[D3Q27System::DIR_MPM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1) = f[D3Q27System::DIR_PPM]; (*this->zeroDistributions)(x1, x2, x3) = f[D3Q27System::DIR_000]; } @@ -190,57 +190,57 @@ void D3Q27EsoTwist3DSplittedVector::setDistributionForDirection(const LBMReal *c unsigned long int direction) { if ((direction & EsoTwistD3Q27System::etE) == EsoTwistD3Q27System::etE) - (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3) = f[D3Q27System::E]; + (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3) = f[D3Q27System::DIR_P00]; if ((direction & EsoTwistD3Q27System::etW) == EsoTwistD3Q27System::etW) - (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f[D3Q27System::W]; + (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f[D3Q27System::DIR_M00]; if ((direction & EsoTwistD3Q27System::etS) == EsoTwistD3Q27System::etS) - (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f[D3Q27System::S]; + (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f[D3Q27System::DIR_0M0]; if ((direction & EsoTwistD3Q27System::etN) == EsoTwistD3Q27System::etN) - (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3) = f[D3Q27System::N]; + (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3) = f[D3Q27System::DIR_0P0]; if ((direction & EsoTwistD3Q27System::etB) == EsoTwistD3Q27System::etB) - (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f[D3Q27System::B]; + (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f[D3Q27System::DIR_00M]; if ((direction & EsoTwistD3Q27System::etT) == EsoTwistD3Q27System::etT) - (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1) = f[D3Q27System::T]; + (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1) = f[D3Q27System::DIR_00P]; if ((direction & EsoTwistD3Q27System::etSW) == EsoTwistD3Q27System::etSW) - (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f[D3Q27System::SW]; + (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f[D3Q27System::DIR_MM0]; if ((direction & EsoTwistD3Q27System::etNE) == EsoTwistD3Q27System::etNE) - (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3) = f[D3Q27System::NE]; + (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3) = f[D3Q27System::DIR_PP0]; if ((direction & EsoTwistD3Q27System::etNW) == EsoTwistD3Q27System::etNW) - (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3) = f[D3Q27System::NW]; + (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3) = f[D3Q27System::DIR_MP0]; if ((direction & EsoTwistD3Q27System::etSE) == EsoTwistD3Q27System::etSE) - (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3) = f[D3Q27System::SE]; + (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3) = f[D3Q27System::DIR_PM0]; if ((direction & EsoTwistD3Q27System::etBW) == EsoTwistD3Q27System::etBW) - (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f[D3Q27System::BW]; + (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f[D3Q27System::DIR_M0M]; if ((direction & EsoTwistD3Q27System::etTE) == EsoTwistD3Q27System::etTE) - (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1) = f[D3Q27System::TE]; + (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1) = f[D3Q27System::DIR_P0P]; if ((direction & EsoTwistD3Q27System::etTW) == EsoTwistD3Q27System::etTW) - (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1) = f[D3Q27System::TW]; + (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1) = f[D3Q27System::DIR_M0P]; if ((direction & EsoTwistD3Q27System::etBE) == EsoTwistD3Q27System::etBE) - (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3) = f[D3Q27System::BE]; + (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3) = f[D3Q27System::DIR_P0M]; if ((direction & EsoTwistD3Q27System::etBS) == EsoTwistD3Q27System::etBS) - (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f[D3Q27System::BS]; + (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f[D3Q27System::DIR_0MM]; if ((direction & EsoTwistD3Q27System::etTN) == EsoTwistD3Q27System::etTN) - (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1) = f[D3Q27System::TN]; + (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1) = f[D3Q27System::DIR_0PP]; if ((direction & EsoTwistD3Q27System::etTS) == EsoTwistD3Q27System::etTS) - (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1) = f[D3Q27System::TS]; + (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1) = f[D3Q27System::DIR_0MP]; if ((direction & EsoTwistD3Q27System::etBN) == EsoTwistD3Q27System::etBN) - (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3) = f[D3Q27System::BN]; + (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3) = f[D3Q27System::DIR_0PM]; if ((direction & EsoTwistD3Q27System::etBSW) == EsoTwistD3Q27System::etBSW) - (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f[D3Q27System::BSW]; + (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f[D3Q27System::DIR_MMM]; if ((direction & EsoTwistD3Q27System::etTNE) == EsoTwistD3Q27System::etTNE) - (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1) = f[D3Q27System::TNE]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1) = f[D3Q27System::DIR_PPP]; if ((direction & EsoTwistD3Q27System::etBSE) == EsoTwistD3Q27System::etBSE) - (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3) = f[D3Q27System::BSE]; + (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3) = f[D3Q27System::DIR_PMM]; if ((direction & EsoTwistD3Q27System::etTNW) == EsoTwistD3Q27System::etTNW) - (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1) = f[D3Q27System::TNW]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1) = f[D3Q27System::DIR_MPP]; if ((direction & EsoTwistD3Q27System::etBNW) == EsoTwistD3Q27System::etBNW) - (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3) = f[D3Q27System::BNW]; + (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3) = f[D3Q27System::DIR_MPM]; if ((direction & EsoTwistD3Q27System::etTSE) == EsoTwistD3Q27System::etTSE) - (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1) = f[D3Q27System::TSE]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1) = f[D3Q27System::DIR_PMP]; if ((direction & EsoTwistD3Q27System::etBNE) == EsoTwistD3Q27System::etBNE) - (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3) = f[D3Q27System::BNE]; + (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3) = f[D3Q27System::DIR_PPM]; if ((direction & EsoTwistD3Q27System::etTSW) == EsoTwistD3Q27System::etTSW) - (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1) = f[D3Q27System::TSW]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1) = f[D3Q27System::DIR_MMP]; if ((direction & EsoTwistD3Q27System::REST) == EsoTwistD3Q27System::REST) (*this->zeroDistributions)(x1, x2, x3) = f[D3Q27System::DIR_000]; } @@ -249,82 +249,82 @@ void D3Q27EsoTwist3DSplittedVector::setDistributionForDirection(LBMReal f, size_ int direction) { switch (direction) { - case D3Q27System::E: + case D3Q27System::DIR_P00: (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3) = f; break; - case D3Q27System::W: + case D3Q27System::DIR_M00: (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f; break; - case D3Q27System::S: + case D3Q27System::DIR_0M0: (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f; break; - case D3Q27System::N: + case D3Q27System::DIR_0P0: (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3) = f; break; - case D3Q27System::B: + case D3Q27System::DIR_00M: (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f; break; - case D3Q27System::T: + case D3Q27System::DIR_00P: (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1) = f; break; - case D3Q27System::SW: + case D3Q27System::DIR_MM0: (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f; break; - case D3Q27System::NE: + case D3Q27System::DIR_PP0: (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3) = f; break; - case D3Q27System::NW: + case D3Q27System::DIR_MP0: (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3) = f; break; - case D3Q27System::SE: + case D3Q27System::DIR_PM0: (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3) = f; break; - case D3Q27System::BW: + case D3Q27System::DIR_M0M: (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f; break; - case D3Q27System::TE: + case D3Q27System::DIR_P0P: (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1) = f; break; - case D3Q27System::TW: + case D3Q27System::DIR_M0P: (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1) = f; break; - case D3Q27System::BE: + case D3Q27System::DIR_P0M: (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3) = f; break; - case D3Q27System::BS: + case D3Q27System::DIR_0MM: (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f; break; - case D3Q27System::TN: + case D3Q27System::DIR_0PP: (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1) = f; break; - case D3Q27System::TS: + case D3Q27System::DIR_0MP: (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1) = f; break; - case D3Q27System::BN: + case D3Q27System::DIR_0PM: (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3) = f; break; - case D3Q27System::BSW: + case D3Q27System::DIR_MMM: (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f; break; - case D3Q27System::TNE: + case D3Q27System::DIR_PPP: (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1) = f; break; - case D3Q27System::BSE: + case D3Q27System::DIR_PMM: (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3) = f; break; - case D3Q27System::TNW: + case D3Q27System::DIR_MPP: (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1) = f; break; - case D3Q27System::BNW: + case D3Q27System::DIR_MPM: (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3) = f; break; - case D3Q27System::TSE: + case D3Q27System::DIR_PMP: (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1) = f; break; - case D3Q27System::BNE: + case D3Q27System::DIR_PPM: (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3) = f; break; - case D3Q27System::TSW: + case D3Q27System::DIR_MMP: (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1) = f; break; case D3Q27System::DIR_000: @@ -339,57 +339,57 @@ void D3Q27EsoTwist3DSplittedVector::setDistributionInvForDirection(const LBMReal size_t x3, unsigned long int direction) { if ((direction & EsoTwistD3Q27System::etE) == EsoTwistD3Q27System::etE) - (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f[D3Q27System::E]; + (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f[D3Q27System::DIR_P00]; if ((direction & EsoTwistD3Q27System::etW) == EsoTwistD3Q27System::etW) - (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3) = f[D3Q27System::W]; + (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3) = f[D3Q27System::DIR_M00]; if ((direction & EsoTwistD3Q27System::etS) == EsoTwistD3Q27System::etS) - (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3) = f[D3Q27System::S]; + (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3) = f[D3Q27System::DIR_0M0]; if ((direction & EsoTwistD3Q27System::etN) == EsoTwistD3Q27System::etN) - (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f[D3Q27System::N]; + (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f[D3Q27System::DIR_0P0]; if ((direction & EsoTwistD3Q27System::etB) == EsoTwistD3Q27System::etB) - (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1) = f[D3Q27System::B]; + (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1) = f[D3Q27System::DIR_00M]; if ((direction & EsoTwistD3Q27System::etT) == EsoTwistD3Q27System::etT) - (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f[D3Q27System::T]; + (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f[D3Q27System::DIR_00P]; if ((direction & EsoTwistD3Q27System::etSW) == EsoTwistD3Q27System::etSW) - (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3) = f[D3Q27System::SW]; + (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3) = f[D3Q27System::DIR_MM0]; if ((direction & EsoTwistD3Q27System::etNE) == EsoTwistD3Q27System::etNE) - (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f[D3Q27System::NE]; + (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f[D3Q27System::DIR_PP0]; if ((direction & EsoTwistD3Q27System::etNW) == EsoTwistD3Q27System::etNW) - (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3) = f[D3Q27System::NW]; + (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3) = f[D3Q27System::DIR_MP0]; if ((direction & EsoTwistD3Q27System::etSE) == EsoTwistD3Q27System::etSE) - (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3) = f[D3Q27System::SE]; + (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3) = f[D3Q27System::DIR_PM0]; if ((direction & EsoTwistD3Q27System::etBW) == EsoTwistD3Q27System::etBW) - (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1) = f[D3Q27System::BW]; + (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1) = f[D3Q27System::DIR_M0M]; if ((direction & EsoTwistD3Q27System::etTE) == EsoTwistD3Q27System::etTE) - (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f[D3Q27System::TE]; + (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f[D3Q27System::DIR_P0P]; if ((direction & EsoTwistD3Q27System::etTW) == EsoTwistD3Q27System::etTW) - (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3) = f[D3Q27System::TW]; + (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3) = f[D3Q27System::DIR_M0P]; if ((direction & EsoTwistD3Q27System::etBE) == EsoTwistD3Q27System::etBE) - (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1) = f[D3Q27System::BE]; + (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1) = f[D3Q27System::DIR_P0M]; if ((direction & EsoTwistD3Q27System::etBS) == EsoTwistD3Q27System::etBS) - (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1) = f[D3Q27System::BS]; + (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1) = f[D3Q27System::DIR_0MM]; if ((direction & EsoTwistD3Q27System::etTN) == EsoTwistD3Q27System::etTN) - (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f[D3Q27System::TN]; + (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f[D3Q27System::DIR_0PP]; if ((direction & EsoTwistD3Q27System::etTS) == EsoTwistD3Q27System::etTS) - (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3) = f[D3Q27System::TS]; + (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3) = f[D3Q27System::DIR_0MP]; if ((direction & EsoTwistD3Q27System::etBN) == EsoTwistD3Q27System::etBN) - (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1) = f[D3Q27System::BN]; + (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1) = f[D3Q27System::DIR_0PM]; if ((direction & EsoTwistD3Q27System::etBSW) == EsoTwistD3Q27System::etBSW) - (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1) = f[D3Q27System::BSW]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1) = f[D3Q27System::DIR_MMM]; if ((direction & EsoTwistD3Q27System::etTNE) == EsoTwistD3Q27System::etTNE) - (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f[D3Q27System::TNE]; + (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f[D3Q27System::DIR_PPP]; if ((direction & EsoTwistD3Q27System::etBSE) == EsoTwistD3Q27System::etBSE) - (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1) = f[D3Q27System::BSE]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1) = f[D3Q27System::DIR_PMM]; if ((direction & EsoTwistD3Q27System::etTNW) == EsoTwistD3Q27System::etTNW) - (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3) = f[D3Q27System::TNW]; + (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3) = f[D3Q27System::DIR_MPP]; if ((direction & EsoTwistD3Q27System::etBNW) == EsoTwistD3Q27System::etBNW) - (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1) = f[D3Q27System::BNW]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1) = f[D3Q27System::DIR_MPM]; if ((direction & EsoTwistD3Q27System::etTSE) == EsoTwistD3Q27System::etTSE) - (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3) = f[D3Q27System::TSE]; + (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3) = f[D3Q27System::DIR_PMP]; if ((direction & EsoTwistD3Q27System::etBNE) == EsoTwistD3Q27System::etBNE) - (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1) = f[D3Q27System::BNE]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1) = f[D3Q27System::DIR_PPM]; if ((direction & EsoTwistD3Q27System::etTSW) == EsoTwistD3Q27System::etTSW) - (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3) = f[D3Q27System::TSW]; + (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3) = f[D3Q27System::DIR_MMP]; if ((direction & EsoTwistD3Q27System::REST) == EsoTwistD3Q27System::REST) (*this->zeroDistributions)(x1, x2, x3) = f[D3Q27System::DIR_000]; } @@ -398,82 +398,82 @@ void D3Q27EsoTwist3DSplittedVector::setDistributionInvForDirection(LBMReal f, si unsigned long int direction) { switch (direction) { - case D3Q27System::E: + case D3Q27System::DIR_P00: (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f; break; - case D3Q27System::W: + case D3Q27System::DIR_M00: (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3) = f; break; - case D3Q27System::S: + case D3Q27System::DIR_0M0: (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3) = f; break; - case D3Q27System::N: + case D3Q27System::DIR_0P0: (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f; break; - case D3Q27System::B: + case D3Q27System::DIR_00M: (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1) = f; break; - case D3Q27System::T: + case D3Q27System::DIR_00P: (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f; break; - case D3Q27System::SW: + case D3Q27System::DIR_MM0: (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3) = f; break; - case D3Q27System::NE: + case D3Q27System::DIR_PP0: (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f; break; - case D3Q27System::NW: + case D3Q27System::DIR_MP0: (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3) = f; break; - case D3Q27System::SE: + case D3Q27System::DIR_PM0: (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3) = f; break; - case D3Q27System::BW: + case D3Q27System::DIR_M0M: (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1) = f; break; - case D3Q27System::TE: + case D3Q27System::DIR_P0P: (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f; break; - case D3Q27System::TW: + case D3Q27System::DIR_M0P: (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3) = f; break; - case D3Q27System::BE: + case D3Q27System::DIR_P0M: (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1) = f; break; - case D3Q27System::BS: + case D3Q27System::DIR_0MM: (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1) = f; break; - case D3Q27System::TN: + case D3Q27System::DIR_0PP: (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f; break; - case D3Q27System::TS: + case D3Q27System::DIR_0MP: (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3) = f; break; - case D3Q27System::BN: + case D3Q27System::DIR_0PM: (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1) = f; break; - case D3Q27System::BSW: + case D3Q27System::DIR_MMM: (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1) = f; break; - case D3Q27System::TNE: + case D3Q27System::DIR_PPP: (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f; break; - case D3Q27System::BSE: + case D3Q27System::DIR_PMM: (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1) = f; break; - case D3Q27System::TNW: + case D3Q27System::DIR_MPP: (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3) = f; break; - case D3Q27System::BNW: + case D3Q27System::DIR_MPM: (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1) = f; break; - case D3Q27System::TSE: + case D3Q27System::DIR_PMP: (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3) = f; break; - case D3Q27System::BNE: + case D3Q27System::DIR_PPM: (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1) = f; break; - case D3Q27System::TSW: + case D3Q27System::DIR_MMP: (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3) = f; break; case D3Q27System::DIR_000: @@ -487,57 +487,57 @@ void D3Q27EsoTwist3DSplittedVector::setDistributionInvForDirection(LBMReal f, si LBMReal D3Q27EsoTwist3DSplittedVector::getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) { switch (direction) { - case D3Q27System::W: + case D3Q27System::DIR_M00: return (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3); - case D3Q27System::E: + case D3Q27System::DIR_P00: return (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); - case D3Q27System::N: + case D3Q27System::DIR_0P0: return (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); - case D3Q27System::S: + case D3Q27System::DIR_0M0: return (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3); - case D3Q27System::T: + case D3Q27System::DIR_00P: return (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); - case D3Q27System::B: + case D3Q27System::DIR_00M: return (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1); - case D3Q27System::NE: + case D3Q27System::DIR_PP0: return (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - case D3Q27System::SW: + case D3Q27System::DIR_MM0: return (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3); - case D3Q27System::SE: + case D3Q27System::DIR_PM0: return (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3); - case D3Q27System::NW: + case D3Q27System::DIR_MP0: return (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3); - case D3Q27System::TE: + case D3Q27System::DIR_P0P: return (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - case D3Q27System::BW: + case D3Q27System::DIR_M0M: return (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1); - case D3Q27System::BE: + case D3Q27System::DIR_P0M: return (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1); - case D3Q27System::TW: + case D3Q27System::DIR_M0P: return (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3); - case D3Q27System::TN: + case D3Q27System::DIR_0PP: return (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - case D3Q27System::BS: + case D3Q27System::DIR_0MM: return (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1); - case D3Q27System::BN: + case D3Q27System::DIR_0PM: return (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1); - case D3Q27System::TS: + case D3Q27System::DIR_0MP: return (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3); - case D3Q27System::TNE: + case D3Q27System::DIR_PPP: return (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - case D3Q27System::BSW: + case D3Q27System::DIR_MMM: return (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1); - case D3Q27System::TNW: + case D3Q27System::DIR_MPP: return (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3); - case D3Q27System::BSE: + case D3Q27System::DIR_PMM: return (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1); - case D3Q27System::TSE: + case D3Q27System::DIR_PMP: return (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3); - case D3Q27System::BNW: + case D3Q27System::DIR_MPM: return (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1); - case D3Q27System::TSW: + case D3Q27System::DIR_MMP: return (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3); - case D3Q27System::BNE: + case D3Q27System::DIR_PPM: return (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1); case D3Q27System::DIR_000: return (*this->zeroDistributions)(x1, x2, x3); @@ -549,57 +549,57 @@ LBMReal D3Q27EsoTwist3DSplittedVector::getDistributionForDirection(size_t x1, si LBMReal D3Q27EsoTwist3DSplittedVector::getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) { switch (direction) { - case D3Q27System::E: + case D3Q27System::DIR_P00: return (*this->nonLocalDistributions)(D3Q27System::ET_W, x1 + 1, x2, x3); - case D3Q27System::W: + case D3Q27System::DIR_M00: return (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); - case D3Q27System::S: + case D3Q27System::DIR_0M0: return (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); - case D3Q27System::N: + case D3Q27System::DIR_0P0: return (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2 + 1, x3); - case D3Q27System::B: + case D3Q27System::DIR_00M: return (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); - case D3Q27System::T: + case D3Q27System::DIR_00P: return (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3 + 1); - case D3Q27System::SW: + case D3Q27System::DIR_MM0: return (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - case D3Q27System::NE: + case D3Q27System::DIR_PP0: return (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1 + 1, x2 + 1, x3); - case D3Q27System::NW: + case D3Q27System::DIR_MP0: return (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2 + 1, x3); - case D3Q27System::SE: + case D3Q27System::DIR_PM0: return (*this->localDistributions)(D3Q27System::ET_NW, x1 + 1, x2, x3); - case D3Q27System::BW: + case D3Q27System::DIR_M0M: return (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - case D3Q27System::TE: + case D3Q27System::DIR_P0P: return (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1 + 1, x2, x3 + 1); - case D3Q27System::TW: + case D3Q27System::DIR_M0P: return (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3 + 1); - case D3Q27System::BE: + case D3Q27System::DIR_P0M: return (*this->localDistributions)(D3Q27System::ET_TW, x1 + 1, x2, x3); - case D3Q27System::BS: + case D3Q27System::DIR_0MM: return (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - case D3Q27System::TN: + case D3Q27System::DIR_0PP: return (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2 + 1, x3 + 1); - case D3Q27System::TS: + case D3Q27System::DIR_0MP: return (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3 + 1); - case D3Q27System::BN: + case D3Q27System::DIR_0PM: return (*this->localDistributions)(D3Q27System::ET_TS, x1, x2 + 1, x3); - case D3Q27System::BSW: + case D3Q27System::DIR_MMM: return (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - case D3Q27System::TNE: + case D3Q27System::DIR_PPP: return (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1 + 1, x2 + 1, x3 + 1); - case D3Q27System::BSE: + case D3Q27System::DIR_PMM: return (*this->localDistributions)(D3Q27System::ET_TNW, x1 + 1, x2, x3); - case D3Q27System::TNW: + case D3Q27System::DIR_MPP: return (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2 + 1, x3 + 1); - case D3Q27System::BNW: + case D3Q27System::DIR_MPM: return (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2 + 1, x3); - case D3Q27System::TSE: + case D3Q27System::DIR_PMP: return (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1 + 1, x2, x3 + 1); - case D3Q27System::BNE: + case D3Q27System::DIR_PPM: return (*this->localDistributions)(D3Q27System::ET_TSW, x1 + 1, x2 + 1, x3); - case D3Q27System::TSW: + case D3Q27System::DIR_MMP: return (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3 + 1); case D3Q27System::DIR_000: return (*this->zeroDistributions)(x1, x2, x3); diff --git a/src/cpu/VirtualFluidsCore/Data/EsoTwistD3Q27System.cpp b/src/cpu/VirtualFluidsCore/Data/EsoTwistD3Q27System.cpp index 21d1141a126993876242d55bed562bbf680597a1..b9a2e069edea6fa3e514b64e4e4174f0964a3a20 100644 --- a/src/cpu/VirtualFluidsCore/Data/EsoTwistD3Q27System.cpp +++ b/src/cpu/VirtualFluidsCore/Data/EsoTwistD3Q27System.cpp @@ -44,12 +44,12 @@ const int EsoTwistD3Q27System::ETX3[EsoTwistD3Q27System::ENDF + 1] = { 0, 0, 0, 0, 1, 1, 0, 0, -1, 0, -1, 0, 1, 0, 1, 0 }; const int EsoTwistD3Q27System::etINVDIR[EsoTwistD3Q27System::ENDF + 1] = { - D3Q27System::INV_E, D3Q27System::INV_W, D3Q27System::INV_N, D3Q27System::INV_S, D3Q27System::INV_T, - D3Q27System::INV_B, D3Q27System::INV_NE, D3Q27System::INV_SW, D3Q27System::INV_SE, D3Q27System::INV_NW, - D3Q27System::INV_TE, D3Q27System::INV_BW, D3Q27System::INV_BE, D3Q27System::INV_TW, D3Q27System::INV_TN, - D3Q27System::INV_BS, D3Q27System::INV_BN, D3Q27System::INV_TS, D3Q27System::INV_TNE, D3Q27System::INV_TNW, - D3Q27System::INV_TSE, D3Q27System::INV_TSW, D3Q27System::INV_BNE, D3Q27System::INV_BNW, D3Q27System::INV_BSE, - D3Q27System::INV_BSW, D3Q27System::DIR_000 + D3Q27System::INV_P00, D3Q27System::INV_M00, D3Q27System::INV_0P0, D3Q27System::INV_0M0, D3Q27System::INV_00P, + D3Q27System::INV_00M, D3Q27System::INV_PP0, D3Q27System::INV_MM0, D3Q27System::INV_PM0, D3Q27System::INV_MP0, + D3Q27System::INV_P0P, D3Q27System::INV_M0M, D3Q27System::INV_P0M, D3Q27System::INV_M0P, D3Q27System::INV_0PP, + D3Q27System::INV_0MM, D3Q27System::INV_0PM, D3Q27System::INV_0MP, D3Q27System::INV_PPP, D3Q27System::INV_MPP, + D3Q27System::INV_PMP, D3Q27System::INV_MMP, D3Q27System::INV_PPM, D3Q27System::INV_MPM, D3Q27System::INV_PMM, + D3Q27System::INV_MMM, D3Q27System::DIR_000 }; const unsigned long int EsoTwistD3Q27System::etDIR[EsoTwistD3Q27System::ENDF + 1] = { diff --git a/src/cpu/VirtualFluidsCore/Data/EsoTwistD3Q27System.h b/src/cpu/VirtualFluidsCore/Data/EsoTwistD3Q27System.h index c2ea5a9ddaba852ec5aaf28708b0cc02f5341913..7ccd413c662206ab3a12b3a1c88fcc81450f7a75 100644 --- a/src/cpu/VirtualFluidsCore/Data/EsoTwistD3Q27System.h +++ b/src/cpu/VirtualFluidsCore/Data/EsoTwistD3Q27System.h @@ -48,59 +48,59 @@ struct EsoTwistD3Q27System { const static int ENDDIR = D3Q27System::ENDDIR; static const int REST = D3Q27System::DIR_000; /*f0 */ - static const int E = D3Q27System::E; /*f1 */ - static const int W = D3Q27System::W; /*f2 */ - static const int N = D3Q27System::N; /*f3 */ - static const int S = D3Q27System::S; /*f4 */ - static const int T = D3Q27System::T; /*f5 */ - static const int B = D3Q27System::B; /*f6 */ - static const int NE = D3Q27System::NE; /*f7 */ - static const int SW = D3Q27System::SW; /*f8 */ - static const int SE = D3Q27System::SE; /*f9 */ - static const int NW = D3Q27System::NW; /*f10*/ - static const int TE = D3Q27System::TE; /*f11*/ - static const int BW = D3Q27System::BW; /*f12*/ - static const int BE = D3Q27System::BE; /*f13*/ - static const int TW = D3Q27System::TW; /*f14*/ - static const int TN = D3Q27System::TN; /*f15*/ - static const int BS = D3Q27System::BS; /*f16*/ - static const int BN = D3Q27System::BN; /*f17*/ - static const int TS = D3Q27System::TS; /*f18*/ - static const int TNE = D3Q27System::TNE; - static const int TNW = D3Q27System::TNW; - static const int TSE = D3Q27System::TSE; - static const int TSW = D3Q27System::TSW; - static const int BNE = D3Q27System::BNE; - static const int BNW = D3Q27System::BNW; - static const int BSE = D3Q27System::BSE; - static const int BSW = D3Q27System::BSW; + static const int E = D3Q27System::DIR_P00; /*f1 */ + static const int W = D3Q27System::DIR_M00; /*f2 */ + static const int N = D3Q27System::DIR_0P0; /*f3 */ + static const int S = D3Q27System::DIR_0M0; /*f4 */ + static const int T = D3Q27System::DIR_00P; /*f5 */ + static const int B = D3Q27System::DIR_00M; /*f6 */ + static const int NE = D3Q27System::DIR_PP0; /*f7 */ + static const int SW = D3Q27System::DIR_MM0; /*f8 */ + static const int SE = D3Q27System::DIR_PM0; /*f9 */ + static const int NW = D3Q27System::DIR_MP0; /*f10*/ + static const int TE = D3Q27System::DIR_P0P; /*f11*/ + static const int BW = D3Q27System::DIR_M0M; /*f12*/ + static const int BE = D3Q27System::DIR_P0M; /*f13*/ + static const int TW = D3Q27System::DIR_M0P; /*f14*/ + static const int TN = D3Q27System::DIR_0PP; /*f15*/ + static const int BS = D3Q27System::DIR_0MM; /*f16*/ + static const int BN = D3Q27System::DIR_0PM; /*f17*/ + static const int TS = D3Q27System::DIR_0MP; /*f18*/ + static const int TNE = D3Q27System::DIR_PPP; + static const int TNW = D3Q27System::DIR_MPP; + static const int TSE = D3Q27System::DIR_PMP; + static const int TSW = D3Q27System::DIR_MMP; + static const int BNE = D3Q27System::DIR_PPM; + static const int BNW = D3Q27System::DIR_MPM; + static const int BSE = D3Q27System::DIR_PMM; + static const int BSW = D3Q27System::DIR_MMM; - static const int INV_E = D3Q27System::W; - static const int INV_W = D3Q27System::E; - static const int INV_N = D3Q27System::S; - static const int INV_S = D3Q27System::N; - static const int INV_T = D3Q27System::B; - static const int INV_B = D3Q27System::T; - static const int INV_NE = D3Q27System::SW; - static const int INV_SW = D3Q27System::NE; - static const int INV_SE = D3Q27System::NW; - static const int INV_NW = D3Q27System::SE; - static const int INV_TE = D3Q27System::BW; - static const int INV_BW = D3Q27System::TE; - static const int INV_BE = D3Q27System::TW; - static const int INV_TW = D3Q27System::BE; - static const int INV_TN = D3Q27System::BS; - static const int INV_BS = D3Q27System::TN; - static const int INV_BN = D3Q27System::TS; - static const int INV_TS = D3Q27System::BN; - static const int INV_TNE = D3Q27System::BSW; - static const int INV_TNW = D3Q27System::BSE; - static const int INV_TSE = D3Q27System::BNW; - static const int INV_TSW = D3Q27System::BNE; - static const int INV_BNE = D3Q27System::TSW; - static const int INV_BNW = D3Q27System::TSE; - static const int INV_BSE = D3Q27System::TNW; - static const int INV_BSW = D3Q27System::TNE; + static const int INV_E = D3Q27System::DIR_M00; + static const int INV_W = D3Q27System::DIR_P00; + static const int INV_N = D3Q27System::DIR_0M0; + static const int INV_S = D3Q27System::DIR_0P0; + static const int INV_T = D3Q27System::DIR_00M; + static const int INV_B = D3Q27System::DIR_00P; + static const int INV_NE = D3Q27System::DIR_MM0; + static const int INV_SW = D3Q27System::DIR_PP0; + static const int INV_SE = D3Q27System::DIR_MP0; + static const int INV_NW = D3Q27System::DIR_PM0; + static const int INV_TE = D3Q27System::DIR_M0M; + static const int INV_BW = D3Q27System::DIR_P0P; + static const int INV_BE = D3Q27System::DIR_M0P; + static const int INV_TW = D3Q27System::DIR_P0M; + static const int INV_TN = D3Q27System::DIR_0MM; + static const int INV_BS = D3Q27System::DIR_0PP; + static const int INV_BN = D3Q27System::DIR_0MP; + static const int INV_TS = D3Q27System::DIR_0PM; + static const int INV_TNE = D3Q27System::DIR_MMM; + static const int INV_TNW = D3Q27System::DIR_PMM; + static const int INV_TSE = D3Q27System::DIR_MPM; + static const int INV_TSW = D3Q27System::DIR_PPM; + static const int INV_BNE = D3Q27System::DIR_MMP; + static const int INV_BNW = D3Q27System::DIR_PMP; + static const int INV_BSE = D3Q27System::DIR_MPP; + static const int INV_BSW = D3Q27System::DIR_PPP; static const unsigned long int etZERO; // 1;/*f0 */ static const unsigned long int etE; // 2; /*f1 */ diff --git a/src/cpu/VirtualFluidsCore/Grid/Grid3D.cpp b/src/cpu/VirtualFluidsCore/Grid/Grid3D.cpp index b4d3ba655677893d0139c15ff6d25385f1e42f4d..c8e5c24d5951e1cbfed64f5a59ba2d35f777b0d5 100644 --- a/src/cpu/VirtualFluidsCore/Grid/Grid3D.cpp +++ b/src/cpu/VirtualFluidsCore/Grid/Grid3D.cpp @@ -632,7 +632,7 @@ SPtr<Block3D> Grid3D::getNeighborBlock(int dir, SPtr<Block3D> block) const void Grid3D::getAllNeighbors(int ix1, int ix2, int ix3, int level, int levelDepth, std::vector<SPtr<Block3D>> &blocks) { for (int dir = D3Q27System::STARTDIR; dir <= D3Q27System::ENDDIR; dir++) - // for (int dir = D3Q27System::STARTDIR; dir<=D3Q27System::TS; dir++) + // for (int dir = D3Q27System::STARTDIR; dir<=D3Q27System::DIR_0MP; dir++) { this->getNeighborBlocksForDirection(dir, ix1, ix2, ix3, level, levelDepth, blocks); } @@ -1100,82 +1100,82 @@ void Grid3D::getNeighborBlocksForDirection(int dir, int ix1, int ix2, int ix3, i std::vector<SPtr<Block3D>> &blocks) { switch (dir) { - case D3Q27System::E: + case D3Q27System::DIR_P00: this->getNeighborsEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::W: + case D3Q27System::DIR_M00: this->getNeighborsWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::N: + case D3Q27System::DIR_0P0: this->getNeighborsNorth(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::S: + case D3Q27System::DIR_0M0: this->getNeighborsSouth(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::T: + case D3Q27System::DIR_00P: this->getNeighborsTop(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::B: + case D3Q27System::DIR_00M: this->getNeighborsBottom(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::NE: + case D3Q27System::DIR_PP0: this->getNeighborsNorthEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::SW: + case D3Q27System::DIR_MM0: this->getNeighborsSouthWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::SE: + case D3Q27System::DIR_PM0: this->getNeighborsSouthEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::NW: + case D3Q27System::DIR_MP0: this->getNeighborsNorthWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TE: + case D3Q27System::DIR_P0P: this->getNeighborsTopEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BW: + case D3Q27System::DIR_M0M: this->getNeighborsBottomWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BE: + case D3Q27System::DIR_P0M: this->getNeighborsBottomEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TW: + case D3Q27System::DIR_M0P: this->getNeighborsTopWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TN: + case D3Q27System::DIR_0PP: this->getNeighborsTopNorth(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BS: + case D3Q27System::DIR_0MM: this->getNeighborsBottomSouth(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BN: + case D3Q27System::DIR_0PM: this->getNeighborsBottomNorth(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TS: + case D3Q27System::DIR_0MP: this->getNeighborsTopSouth(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TNE: + case D3Q27System::DIR_PPP: this->getNeighborsTopNorthEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TNW: + case D3Q27System::DIR_MPP: this->getNeighborsTopNorthWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TSE: + case D3Q27System::DIR_PMP: this->getNeighborsTopSouthEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TSW: + case D3Q27System::DIR_MMP: this->getNeighborsTopSouthWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BNE: + case D3Q27System::DIR_PPM: this->getNeighborsBottomNorthEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BNW: + case D3Q27System::DIR_MPM: this->getNeighborsBottomNorthWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BSE: + case D3Q27System::DIR_PMM: this->getNeighborsBottomSouthEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BSW: + case D3Q27System::DIR_MMM: this->getNeighborsBottomSouthWest(ix1, ix2, ix3, level, levelDepth, blocks); break; default: @@ -1263,82 +1263,82 @@ void Grid3D::getNeighborBlocksForDirectionWithDirZero(int dir, int ix1, int ix2, std::vector<SPtr<Block3D>> &blocks) { switch (dir) { - case D3Q27System::E: + case D3Q27System::DIR_P00: this->getNeighborsEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::W: + case D3Q27System::DIR_M00: this->getNeighborsWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::N: + case D3Q27System::DIR_0P0: this->getNeighborsNorth(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::S: + case D3Q27System::DIR_0M0: this->getNeighborsSouth(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::T: + case D3Q27System::DIR_00P: this->getNeighborsTop(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::B: + case D3Q27System::DIR_00M: this->getNeighborsBottom(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::NE: + case D3Q27System::DIR_PP0: this->getNeighborsNorthEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::SW: + case D3Q27System::DIR_MM0: this->getNeighborsSouthWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::SE: + case D3Q27System::DIR_PM0: this->getNeighborsSouthEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::NW: + case D3Q27System::DIR_MP0: this->getNeighborsNorthWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TE: + case D3Q27System::DIR_P0P: this->getNeighborsTopEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BW: + case D3Q27System::DIR_M0M: this->getNeighborsBottomWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BE: + case D3Q27System::DIR_P0M: this->getNeighborsBottomEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TW: + case D3Q27System::DIR_M0P: this->getNeighborsTopWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TN: + case D3Q27System::DIR_0PP: this->getNeighborsTopNorth(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BS: + case D3Q27System::DIR_0MM: this->getNeighborsBottomSouth(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BN: + case D3Q27System::DIR_0PM: this->getNeighborsBottomNorth(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TS: + case D3Q27System::DIR_0MP: this->getNeighborsTopSouth(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TNE: + case D3Q27System::DIR_PPP: this->getNeighborsTopNorthEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TNW: + case D3Q27System::DIR_MPP: this->getNeighborsTopNorthWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TSE: + case D3Q27System::DIR_PMP: this->getNeighborsTopSouthEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::TSW: + case D3Q27System::DIR_MMP: this->getNeighborsTopSouthWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BNE: + case D3Q27System::DIR_PPM: this->getNeighborsBottomNorthEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BNW: + case D3Q27System::DIR_MPM: this->getNeighborsBottomNorthWest(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BSE: + case D3Q27System::DIR_PMM: this->getNeighborsBottomSouthEast(ix1, ix2, ix3, level, levelDepth, blocks); break; - case D3Q27System::BSW: + case D3Q27System::DIR_MMM: this->getNeighborsBottomSouthWest(ix1, ix2, ix3, level, levelDepth, blocks); break; case D3Q27System::DIR_000: diff --git a/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.cpp b/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.cpp index bf1895b930f1c61d36d537319b53fe4b0abcd960..a834466f85b85890bf7c1a5a264807e6a0b13ee1 100644 --- a/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.cpp +++ b/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.cpp @@ -90,108 +90,108 @@ void D3Q27Interactor::initRayVectors() int fdir; double c1oS2 = UbMath::one_over_sqrt2; double c1oS3 = UbMath::one_over_sqrt3; - fdir = D3Q27System::E; + fdir = D3Q27System::DIR_P00; rayX1[fdir] = 1.0; rayX2[fdir] = 0.0; rayX3[fdir] = 0.0; - fdir = D3Q27System::W; + fdir = D3Q27System::DIR_M00; rayX1[fdir] = -1.0; rayX2[fdir] = 0.0; rayX3[fdir] = 0.0; - fdir = D3Q27System::N; + fdir = D3Q27System::DIR_0P0; rayX1[fdir] = 0.0; rayX2[fdir] = 1.0; rayX3[fdir] = 0.0; - fdir = D3Q27System::S; + fdir = D3Q27System::DIR_0M0; rayX1[fdir] = 0.0; rayX2[fdir] = -1.0; rayX3[fdir] = 0.0; - fdir = D3Q27System::T; + fdir = D3Q27System::DIR_00P; rayX1[fdir] = 0.0; rayX2[fdir] = 0.0; rayX3[fdir] = 1.0; - fdir = D3Q27System::B; + fdir = D3Q27System::DIR_00M; rayX1[fdir] = 0.0; rayX2[fdir] = 0.0; rayX3[fdir] = -1.0; - fdir = D3Q27System::NE; + fdir = D3Q27System::DIR_PP0; rayX1[fdir] = c1oS2; rayX2[fdir] = c1oS2; rayX3[fdir] = 0.0; - fdir = D3Q27System::SW; + fdir = D3Q27System::DIR_MM0; rayX1[fdir] = -c1oS2; rayX2[fdir] = -c1oS2; rayX3[fdir] = 0.0; - fdir = D3Q27System::SE; + fdir = D3Q27System::DIR_PM0; rayX1[fdir] = c1oS2; rayX2[fdir] = -c1oS2; rayX3[fdir] = 0.0; - fdir = D3Q27System::NW; + fdir = D3Q27System::DIR_MP0; rayX1[fdir] = -c1oS2; rayX2[fdir] = c1oS2; rayX3[fdir] = 0.0; - fdir = D3Q27System::TE; + fdir = D3Q27System::DIR_P0P; rayX1[fdir] = c1oS2; rayX2[fdir] = 0.0; rayX3[fdir] = c1oS2; - fdir = D3Q27System::BW; + fdir = D3Q27System::DIR_M0M; rayX1[fdir] = -c1oS2; rayX2[fdir] = 0.0; rayX3[fdir] = -c1oS2; - fdir = D3Q27System::BE; + fdir = D3Q27System::DIR_P0M; rayX1[fdir] = c1oS2; rayX2[fdir] = 0.0; rayX3[fdir] = -c1oS2; - fdir = D3Q27System::TW; + fdir = D3Q27System::DIR_M0P; rayX1[fdir] = -c1oS2; rayX2[fdir] = 0.0; rayX3[fdir] = c1oS2; - fdir = D3Q27System::TN; + fdir = D3Q27System::DIR_0PP; rayX1[fdir] = 0.0; rayX2[fdir] = c1oS2; rayX3[fdir] = c1oS2; - fdir = D3Q27System::BS; + fdir = D3Q27System::DIR_0MM; rayX1[fdir] = 0.0; rayX2[fdir] = -c1oS2; rayX3[fdir] = -c1oS2; - fdir = D3Q27System::BN; + fdir = D3Q27System::DIR_0PM; rayX1[fdir] = 0.0; rayX2[fdir] = c1oS2; rayX3[fdir] = -c1oS2; - fdir = D3Q27System::TS; + fdir = D3Q27System::DIR_0MP; rayX1[fdir] = 0.0; rayX2[fdir] = -c1oS2; rayX3[fdir] = c1oS2; - fdir = D3Q27System::TNW; + fdir = D3Q27System::DIR_MPP; rayX1[fdir] = -c1oS3; rayX2[fdir] = c1oS3; rayX3[fdir] = c1oS3; - fdir = D3Q27System::TNE; + fdir = D3Q27System::DIR_PPP; rayX1[fdir] = c1oS3; rayX2[fdir] = c1oS3; rayX3[fdir] = c1oS3; - fdir = D3Q27System::TSW; + fdir = D3Q27System::DIR_MMP; rayX1[fdir] = -c1oS3; rayX2[fdir] = -c1oS3; rayX3[fdir] = c1oS3; - fdir = D3Q27System::TSE; + fdir = D3Q27System::DIR_PMP; rayX1[fdir] = c1oS3; rayX2[fdir] = -c1oS3; rayX3[fdir] = c1oS3; - fdir = D3Q27System::BNW; + fdir = D3Q27System::DIR_MPM; rayX1[fdir] = -c1oS3; rayX2[fdir] = c1oS3; rayX3[fdir] = -c1oS3; - fdir = D3Q27System::BNE; + fdir = D3Q27System::DIR_PPM; rayX1[fdir] = c1oS3; rayX2[fdir] = c1oS3; rayX3[fdir] = -c1oS3; - fdir = D3Q27System::BSW; + fdir = D3Q27System::DIR_MMM; rayX1[fdir] = -c1oS3; rayX2[fdir] = -c1oS3; rayX3[fdir] = -c1oS3; - fdir = D3Q27System::BSE; + fdir = D3Q27System::DIR_PMM; rayX1[fdir] = c1oS3; rayX2[fdir] = -c1oS3; rayX3[fdir] = -c1oS3; @@ -327,18 +327,18 @@ bool D3Q27Interactor::setDifferencesToGbObject3D(const SPtr<Block3D> block) UB_EXARGS, "fuer den bei LB nicht vorkommenden Fall deltaX1!=deltaX2!=deltaX3 nicht implementiert "); vector<double> distNeigh(D3Q27System::FENDDIR + 1, UbMath::sqrt2 * deltaX1); - distNeigh[D3Q27System::E] = distNeigh[D3Q27System::W] = distNeigh[D3Q27System::N] = deltaX1; - distNeigh[D3Q27System::S] = distNeigh[D3Q27System::T] = distNeigh[D3Q27System::B] = deltaX1; - distNeigh[D3Q27System::NE] = distNeigh[D3Q27System::NW] = distNeigh[D3Q27System::SW] = - distNeigh[D3Q27System::SE] = UbMath::sqrt2 * deltaX1; - distNeigh[D3Q27System::TE] = distNeigh[D3Q27System::TN] = distNeigh[D3Q27System::TW] = - distNeigh[D3Q27System::TS] = UbMath::sqrt2 * deltaX1; - distNeigh[D3Q27System::BE] = distNeigh[D3Q27System::BN] = distNeigh[D3Q27System::BW] = - distNeigh[D3Q27System::BS] = UbMath::sqrt2 * deltaX1; - distNeigh[D3Q27System::TNE] = distNeigh[D3Q27System::TNW] = distNeigh[D3Q27System::TSE] = - distNeigh[D3Q27System::TSW] = UbMath::sqrt3 * deltaX1; - distNeigh[D3Q27System::BNE] = distNeigh[D3Q27System::BNW] = distNeigh[D3Q27System::BSE] = - distNeigh[D3Q27System::BSW] = UbMath::sqrt3 * deltaX1; + distNeigh[D3Q27System::DIR_P00] = distNeigh[D3Q27System::DIR_M00] = distNeigh[D3Q27System::DIR_0P0] = deltaX1; + distNeigh[D3Q27System::DIR_0M0] = distNeigh[D3Q27System::DIR_00P] = distNeigh[D3Q27System::DIR_00M] = deltaX1; + distNeigh[D3Q27System::DIR_PP0] = distNeigh[D3Q27System::DIR_MP0] = distNeigh[D3Q27System::DIR_MM0] = + distNeigh[D3Q27System::DIR_PM0] = UbMath::sqrt2 * deltaX1; + distNeigh[D3Q27System::DIR_P0P] = distNeigh[D3Q27System::DIR_0PP] = distNeigh[D3Q27System::DIR_M0P] = + distNeigh[D3Q27System::DIR_0MP] = UbMath::sqrt2 * deltaX1; + distNeigh[D3Q27System::DIR_P0M] = distNeigh[D3Q27System::DIR_0PM] = distNeigh[D3Q27System::DIR_M0M] = + distNeigh[D3Q27System::DIR_0MM] = UbMath::sqrt2 * deltaX1; + distNeigh[D3Q27System::DIR_PPP] = distNeigh[D3Q27System::DIR_MPP] = distNeigh[D3Q27System::DIR_PMP] = + distNeigh[D3Q27System::DIR_MMP] = UbMath::sqrt3 * deltaX1; + distNeigh[D3Q27System::DIR_PPM] = distNeigh[D3Q27System::DIR_MPM] = distNeigh[D3Q27System::DIR_PMM] = + distNeigh[D3Q27System::DIR_MMM] = UbMath::sqrt3 * deltaX1; double q; bool pointOnBoundary = false; @@ -613,132 +613,132 @@ void D3Q27Interactor::addQsLineSet(std::vector<UbTupleFloat3> &nodes, std::vecto if (bc->hasBoundaryConditionFlag(D3Q27System::INVDIR[dir])) { double x1b, x2b, x3b, q = bc->getQ(dir); switch (dir) { - case D3Q27System::E: + case D3Q27System::DIR_P00: x1b = x1a + q * dx; x2b = x2a; x3b = x3a; break; - case D3Q27System::N: + case D3Q27System::DIR_0P0: x1b = x1a; x2b = x2a + q * dx; x3b = x3a; break; - case D3Q27System::W: + case D3Q27System::DIR_M00: x1b = x1a - q * dx; x2b = x2a; x3b = x3a; break; - case D3Q27System::S: + case D3Q27System::DIR_0M0: x1b = x1a; x2b = x2a - q * dx; x3b = x3a; break; - case D3Q27System::NE: + case D3Q27System::DIR_PP0: x1b = x1a + q * dx; x2b = x2a + q * dx; x3b = x3a; break; - case D3Q27System::NW: + case D3Q27System::DIR_MP0: x1b = x1a - q * dx; x2b = x2a + q * dx; x3b = x3a; break; - case D3Q27System::SW: + case D3Q27System::DIR_MM0: x1b = x1a - q * dx; x2b = x2a - q * dx; x3b = x3a; break; - case D3Q27System::SE: + case D3Q27System::DIR_PM0: x1b = x1a + q * dx; x2b = x2a - q * dx; x3b = x3a; break; - case D3Q27System::T: + case D3Q27System::DIR_00P: x1b = x1a; x2b = x2a; x3b = x3a + q * dx; break; - case D3Q27System::TE: + case D3Q27System::DIR_P0P: x1b = x1a + q * dx; x2b = x2a; x3b = x3a + q * dx; break; - case D3Q27System::TN: + case D3Q27System::DIR_0PP: x1b = x1a; x2b = x2a + q * dx; x3b = x3a + q * dx; break; - case D3Q27System::TW: + case D3Q27System::DIR_M0P: x1b = x1a - q * dx; x2b = x2a; x3b = x3a + q * dx; break; - case D3Q27System::TS: + case D3Q27System::DIR_0MP: x1b = x1a; x2b = x2a - q * dx; x3b = x3a + q * dx; break; - case D3Q27System::B: + case D3Q27System::DIR_00M: x1b = x1a; x2b = x2a; x3b = x3a - q * dx; break; - case D3Q27System::BE: + case D3Q27System::DIR_P0M: x1b = x1a + q * dx; x2b = x2a; x3b = x3a - q * dx; break; - case D3Q27System::BN: + case D3Q27System::DIR_0PM: x1b = x1a; x2b = x2a + q * dx; x3b = x3a - q * dx; break; - case D3Q27System::BW: + case D3Q27System::DIR_M0M: x1b = x1a - q * dx; x2b = x2a; x3b = x3a - q * dx; break; - case D3Q27System::BS: + case D3Q27System::DIR_0MM: x1b = x1a; x2b = x2a - q * dx; x3b = x3a - q * dx; break; - case D3Q27System::TNE: + case D3Q27System::DIR_PPP: x1b = x1a + q * dx; x2b = x2a + q * dx; x3b = x3a + q * dx; break; - case D3Q27System::BSW: + case D3Q27System::DIR_MMM: x1b = x1a - q * dx; x2b = x2a - q * dx; x3b = x3a - q * dx; break; - case D3Q27System::BNE: + case D3Q27System::DIR_PPM: x1b = x1a + q * dx; x2b = x2a + q * dx; x3b = x3a - q * dx; break; - case D3Q27System::TSW: + case D3Q27System::DIR_MMP: x1b = x1a - q * dx; x2b = x2a - q * dx; x3b = x3a + q * dx; break; - case D3Q27System::TSE: + case D3Q27System::DIR_PMP: x1b = x1a + q * dx; x2b = x2a - q * dx; x3b = x3a + q * dx; break; - case D3Q27System::BNW: + case D3Q27System::DIR_MPM: x1b = x1a - q * dx; x2b = x2a + q * dx; x3b = x3a - q * dx; break; - case D3Q27System::BSE: + case D3Q27System::DIR_PMM: x1b = x1a + q * dx; x2b = x2a - q * dx; x3b = x3a - q * dx; break; - case D3Q27System::TNW: + case D3Q27System::DIR_MPP: x1b = x1a - q * dx; x2b = x2a + q * dx; x3b = x3a + q * dx; @@ -782,17 +782,17 @@ vector<pair<GbPoint3D, GbPoint3D>> D3Q27Interactor::getQsLineSet() bool include_TN_Edge = false; //(x1/x2/x3)=([0..blocknx1[/blocknx2/blocknx1) bool include_TE_Edge = false; //(x1/x2/x3)=(blocknx1/[0..blocknx2[/blocknx2) if (block) { - if (!block->getConnector(D3Q27System::N)) + if (!block->getConnector(D3Q27System::DIR_0P0)) include_N_Face = true; - if (!block->getConnector(D3Q27System::E)) + if (!block->getConnector(D3Q27System::DIR_P00)) include_E_Face = true; - if (!block->getConnector(D3Q27System::T)) + if (!block->getConnector(D3Q27System::DIR_00P)) include_T_Face = true; - if (!block->getConnector(D3Q27System::NE) && include_N_Face && include_E_Face) + if (!block->getConnector(D3Q27System::DIR_PP0) && include_N_Face && include_E_Face) include_NE_Edge = true; - if (!block->getConnector(D3Q27System::TN) && include_T_Face && include_N_Face) + if (!block->getConnector(D3Q27System::DIR_0PP) && include_T_Face && include_N_Face) include_TN_Edge = true; - if (!block->getConnector(D3Q27System::TE) && include_T_Face && include_E_Face) + if (!block->getConnector(D3Q27System::DIR_P0P) && include_T_Face && include_E_Face) include_TE_Edge = true; } @@ -834,132 +834,132 @@ vector<pair<GbPoint3D, GbPoint3D>> D3Q27Interactor::getQsLineSet() if (bc->hasBoundaryConditionFlag(D3Q27System::INVDIR[dir])) { double x1b, x2b, x3b, q = bc->getQ(dir); switch (dir) { - case D3Q27System::E: + case D3Q27System::DIR_P00: x1b = x1a + q * dx; x2b = x2a; x3b = x3a; break; - case D3Q27System::N: + case D3Q27System::DIR_0P0: x1b = x1a; x2b = x2a + q * dx; x3b = x3a; break; - case D3Q27System::W: + case D3Q27System::DIR_M00: x1b = x1a - q * dx; x2b = x2a; x3b = x3a; break; - case D3Q27System::S: + case D3Q27System::DIR_0M0: x1b = x1a; x2b = x2a - q * dx; x3b = x3a; break; - case D3Q27System::NE: + case D3Q27System::DIR_PP0: x1b = x1a + q * dx; x2b = x2a + q * dx; x3b = x3a; break; - case D3Q27System::NW: + case D3Q27System::DIR_MP0: x1b = x1a - q * dx; x2b = x2a + q * dx; x3b = x3a; break; - case D3Q27System::SW: + case D3Q27System::DIR_MM0: x1b = x1a - q * dx; x2b = x2a - q * dx; x3b = x3a; break; - case D3Q27System::SE: + case D3Q27System::DIR_PM0: x1b = x1a + q * dx; x2b = x2a - q * dx; x3b = x3a; break; - case D3Q27System::T: + case D3Q27System::DIR_00P: x1b = x1a; x2b = x2a; x3b = x3a + q * dx; break; - case D3Q27System::TE: + case D3Q27System::DIR_P0P: x1b = x1a + q * dx; x2b = x2a; x3b = x3a + q * dx; break; - case D3Q27System::TN: + case D3Q27System::DIR_0PP: x1b = x1a; x2b = x2a + q * dx; x3b = x3a + q * dx; break; - case D3Q27System::TW: + case D3Q27System::DIR_M0P: x1b = x1a - q * dx; x2b = x2a; x3b = x3a + q * dx; break; - case D3Q27System::TS: + case D3Q27System::DIR_0MP: x1b = x1a; x2b = x2a - q * dx; x3b = x3a + q * dx; break; - case D3Q27System::B: + case D3Q27System::DIR_00M: x1b = x1a; x2b = x2a; x3b = x3a - q * dx; break; - case D3Q27System::BE: + case D3Q27System::DIR_P0M: x1b = x1a + q * dx; x2b = x2a; x3b = x3a - q * dx; break; - case D3Q27System::BN: + case D3Q27System::DIR_0PM: x1b = x1a; x2b = x2a + q * dx; x3b = x3a - q * dx; break; - case D3Q27System::BW: + case D3Q27System::DIR_M0M: x1b = x1a - q * dx; x2b = x2a; x3b = x3a - q * dx; break; - case D3Q27System::BS: + case D3Q27System::DIR_0MM: x1b = x1a; x2b = x2a - q * dx; x3b = x3a - q * dx; break; - case D3Q27System::TNE: + case D3Q27System::DIR_PPP: x1b = x1a + q * dx; x2b = x2a + q * dx; x3b = x3a + q * dx; break; - case D3Q27System::BSW: + case D3Q27System::DIR_MMM: x1b = x1a - q * dx; x2b = x2a - q * dx; x3b = x3a - q * dx; break; - case D3Q27System::BNE: + case D3Q27System::DIR_PPM: x1b = x1a + q * dx; x2b = x2a + q * dx; x3b = x3a - q * dx; break; - case D3Q27System::TSW: + case D3Q27System::DIR_MMP: x1b = x1a - q * dx; x2b = x2a - q * dx; x3b = x3a + q * dx; break; - case D3Q27System::TSE: + case D3Q27System::DIR_PMP: x1b = x1a + q * dx; x2b = x2a - q * dx; x3b = x3a + q * dx; break; - case D3Q27System::BNW: + case D3Q27System::DIR_MPM: x1b = x1a - q * dx; x2b = x2a + q * dx; x3b = x3a - q * dx; break; - case D3Q27System::BSE: + case D3Q27System::DIR_PMM: x1b = x1a + q * dx; x2b = x2a - q * dx; x3b = x3a - q * dx; break; - case D3Q27System::TNW: + case D3Q27System::DIR_MPP: x1b = x1a - q * dx; x2b = x2a + q * dx; x3b = x3a + q * dx; diff --git a/src/cpu/VirtualFluidsCore/Interactors/D3Q27TriFaceMeshInteractor.cpp b/src/cpu/VirtualFluidsCore/Interactors/D3Q27TriFaceMeshInteractor.cpp index 45204279182e80bb6551a1a96ed7c550e1aa6781..c7b13d3834a6bb822b945f9425ba21b8d5be399d 100644 --- a/src/cpu/VirtualFluidsCore/Interactors/D3Q27TriFaceMeshInteractor.cpp +++ b/src/cpu/VirtualFluidsCore/Interactors/D3Q27TriFaceMeshInteractor.cpp @@ -364,9 +364,9 @@ void D3Q27TriFaceMeshInteractor::setQs(const double &timeStep) // tmpSolidNodesFromOtherInteractors[block]; double q, distance; - double &nodeDx1 = nodeDeltaToNeigh[level][D3Q27System::E]; - double &nodeDx2 = nodeDeltaToNeigh[level][D3Q27System::N]; - double &nodeDx3 = nodeDeltaToNeigh[level][D3Q27System::T]; + double &nodeDx1 = nodeDeltaToNeigh[level][D3Q27System::DIR_P00]; + double &nodeDx2 = nodeDeltaToNeigh[level][D3Q27System::DIR_0P0]; + double &nodeDx3 = nodeDeltaToNeigh[level][D3Q27System::DIR_00P]; // fuer OBB-Test double qEinflussDelta = 1.1 * sqrt(nodeDx1 * nodeDx1 + nodeDx2 * nodeDx2 + nodeDx3 * nodeDx3); @@ -880,9 +880,9 @@ void D3Q27TriFaceMeshInteractor::initInteractor2(const double &timeStep) std::set<std::vector<int>> &solidsFromOtherInteractors = tmpSolidNodesFromOtherInteractors[block]; double q, internX1, internX2, internX3, distance; - double &nodeDx1 = nodeDeltaToNeigh[level][D3Q27System::E]; - double &nodeDx2 = nodeDeltaToNeigh[level][D3Q27System::N]; - double &nodeDx3 = nodeDeltaToNeigh[level][D3Q27System::T]; + double &nodeDx1 = nodeDeltaToNeigh[level][D3Q27System::DIR_P00]; + double &nodeDx2 = nodeDeltaToNeigh[level][D3Q27System::DIR_0P0]; + double &nodeDx3 = nodeDeltaToNeigh[level][D3Q27System::DIR_00P]; // fuer OBB-Test double qEinflussDelta = 1.1 * sqrt(nodeDx1 * nodeDx1 + nodeDx2 * nodeDx2 + nodeDx3 * nodeDx3); @@ -1181,9 +1181,9 @@ void D3Q27TriFaceMeshInteractor::initInteractor2(const double &timeStep) std::set<UbTupleInt3> &solidNodeIndices = this->solidNodeIndicesMap[block]; - float nodeDeltaX1 = (float)nodeDeltaToNeigh[level][D3Q27System::E]; - float nodeDeltaX2 = (float)nodeDeltaToNeigh[level][D3Q27System::N]; - float nodeDeltaX3 = (float)nodeDeltaToNeigh[level][D3Q27System::T]; + float nodeDeltaX1 = (float)nodeDeltaToNeigh[level][D3Q27System::DIR_P00]; + float nodeDeltaX2 = (float)nodeDeltaToNeigh[level][D3Q27System::DIR_0P0]; + float nodeDeltaX3 = (float)nodeDeltaToNeigh[level][D3Q27System::DIR_00P]; // flagfield matrix initialisieren CbArray3D<FLAGS> flagField(blocknx1, blocknx2, blocknx3, UNDEF_FLAG); diff --git a/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp index 4d4dff77128f3e0a254aee1fc937820bf35aa253..50a5339ea01d70ff0076ef81bda16db22e56ffe7 100644 --- a/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp @@ -93,115 +93,115 @@ void BGKLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////// f[DIR_000] = (*this->zeroDistributions)(x1, x2, x3); - f[E] = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); - f[N] = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); - f[T] = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); - f[NE] = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - f[NW] = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); - f[TE] = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - f[TW] = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); - f[TN] = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - f[TS] = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); - f[TNE] = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - f[TNW] = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); - f[TSE] = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); - f[TSW] = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); + f[DIR_P00] = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); + f[DIR_0P0] = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); + f[DIR_00P] = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); + f[DIR_PP0] = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); + f[DIR_MP0] = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); + f[DIR_P0P] = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); + f[DIR_M0P] = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); + f[DIR_0PP] = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); + f[DIR_0MP] = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); + f[DIR_PPP] = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); + f[DIR_MPP] = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); + f[DIR_PMP] = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); + f[DIR_MMP] = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); - f[W] = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); - f[S] = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); - f[B] = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); - f[SW] = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); - f[SE] = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); - f[BW] = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); - f[BE] = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); - f[BS] = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); - f[BN] = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); - f[BSW] = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); - f[BSE] = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); - f[BNW] = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); - f[BNE] = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); + f[DIR_M00] = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); + f[DIR_0M0] = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); + f[DIR_00M] = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); + f[DIR_MM0] = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); + f[DIR_PM0] = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); + f[DIR_M0M] = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); + f[DIR_P0M] = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); + f[DIR_0MM] = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); + f[DIR_0PM] = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); + f[DIR_MMM] = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); + f[DIR_PMM] = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); + f[DIR_MPM] = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); + f[DIR_PPM] = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); ////////////////////////////////////////////////////////////////////////// - drho = f[DIR_000] + f[E] + f[W] + f[N] + f[S] + f[T] + f[B] + f[NE] + f[SW] + f[SE] + f[NW] + f[TE] + - f[BW] + f[BE] + f[TW] + f[TN] + f[BS] + f[BN] + f[TS] + f[TNE] + f[TSW] + f[TSE] + f[TNW] + - f[BNE] + f[BSW] + f[BSE] + f[BNW]; + drho = f[DIR_000] + f[DIR_P00] + f[DIR_M00] + f[DIR_0P0] + f[DIR_0M0] + f[DIR_00P] + f[DIR_00M] + f[DIR_PP0] + f[DIR_MM0] + f[DIR_PM0] + f[DIR_MP0] + f[DIR_P0P] + + f[DIR_M0M] + f[DIR_P0M] + f[DIR_M0P] + f[DIR_0PP] + f[DIR_0MM] + f[DIR_0PM] + f[DIR_0MP] + f[DIR_PPP] + f[DIR_MMP] + f[DIR_PMP] + f[DIR_MPP] + + f[DIR_PPM] + f[DIR_MMM] + f[DIR_PMM] + f[DIR_MPM]; - vx1 = f[E] - f[W] + f[NE] - f[SW] + f[SE] - f[NW] + f[TE] - f[BW] + f[BE] - f[TW] + f[TNE] - - f[TSW] + f[TSE] - f[TNW] + f[BNE] - f[BSW] + f[BSE] - f[BNW]; + vx1 = f[DIR_P00] - f[DIR_M00] + f[DIR_PP0] - f[DIR_MM0] + f[DIR_PM0] - f[DIR_MP0] + f[DIR_P0P] - f[DIR_M0M] + f[DIR_P0M] - f[DIR_M0P] + f[DIR_PPP] - + f[DIR_MMP] + f[DIR_PMP] - f[DIR_MPP] + f[DIR_PPM] - f[DIR_MMM] + f[DIR_PMM] - f[DIR_MPM]; - vx2 = f[N] - f[S] + f[NE] - f[SW] - f[SE] + f[NW] + f[TN] - f[BS] + f[BN] - f[TS] + f[TNE] - - f[TSW] - f[TSE] + f[TNW] + f[BNE] - f[BSW] - f[BSE] + f[BNW]; + vx2 = f[DIR_0P0] - f[DIR_0M0] + f[DIR_PP0] - f[DIR_MM0] - f[DIR_PM0] + f[DIR_MP0] + f[DIR_0PP] - f[DIR_0MM] + f[DIR_0PM] - f[DIR_0MP] + f[DIR_PPP] - + f[DIR_MMP] - f[DIR_PMP] + f[DIR_MPP] + f[DIR_PPM] - f[DIR_MMM] - f[DIR_PMM] + f[DIR_MPM]; - vx3 = f[T] - f[B] + f[TE] - f[BW] - f[BE] + f[TW] + f[TN] - f[BS] - f[BN] + f[TS] + f[TNE] + - f[TSW] + f[TSE] + f[TNW] - f[BNE] - f[BSW] - f[BSE] - f[BNW]; + vx3 = f[DIR_00P] - f[DIR_00M] + f[DIR_P0P] - f[DIR_M0M] - f[DIR_P0M] + f[DIR_M0P] + f[DIR_0PP] - f[DIR_0MM] - f[DIR_0PM] + f[DIR_0MP] + f[DIR_PPP] + + f[DIR_MMP] + f[DIR_PMP] + f[DIR_MPP] - f[DIR_PPM] - f[DIR_MMM] - f[DIR_PMM] - f[DIR_MPM]; LBMReal cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); feq[DIR_000] = c8o27 * (drho - cu_sq); - feq[E] = c2o27 * (drho + 3.0 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq); - feq[W] = c2o27 * (drho + 3.0 * (-vx1) + c9o2 * (-vx1) * (-vx1) - cu_sq); - feq[N] = c2o27 * (drho + 3.0 * (vx2) + c9o2 * (vx2) * (vx2)-cu_sq); - feq[S] = c2o27 * (drho + 3.0 * (-vx2) + c9o2 * (-vx2) * (-vx2) - cu_sq); - feq[T] = c2o27 * (drho + 3.0 * (vx3) + c9o2 * (vx3) * (vx3)-cu_sq); - feq[B] = c2o27 * (drho + 3.0 * (-vx3) + c9o2 * (-vx3) * (-vx3) - cu_sq); - feq[NE] = c1o54 * (drho + 3.0 * (vx1 + vx2) + c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq); - feq[SW] = c1o54 * (drho + 3.0 * (-vx1 - vx2) + c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq); - feq[SE] = c1o54 * (drho + 3.0 * (vx1 - vx2) + c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq); - feq[NW] = c1o54 * (drho + 3.0 * (-vx1 + vx2) + c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq); - feq[TE] = c1o54 * (drho + 3.0 * (vx1 + vx3) + c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq); - feq[BW] = c1o54 * (drho + 3.0 * (-vx1 - vx3) + c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq); - feq[BE] = c1o54 * (drho + 3.0 * (vx1 - vx3) + c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq); - feq[TW] = c1o54 * (drho + 3.0 * (-vx1 + vx3) + c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq); - feq[TN] = c1o54 * (drho + 3.0 * (vx2 + vx3) + c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq); - feq[BS] = c1o54 * (drho + 3.0 * (-vx2 - vx3) + c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq); - feq[BN] = c1o54 * (drho + 3.0 * (vx2 - vx3) + c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq); - feq[TS] = c1o54 * (drho + 3.0 * (-vx2 + vx3) + c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq); - feq[TNE] = c1o216 * + feq[DIR_P00] = c2o27 * (drho + 3.0 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq); + feq[DIR_M00] = c2o27 * (drho + 3.0 * (-vx1) + c9o2 * (-vx1) * (-vx1) - cu_sq); + feq[DIR_0P0] = c2o27 * (drho + 3.0 * (vx2) + c9o2 * (vx2) * (vx2)-cu_sq); + feq[DIR_0M0] = c2o27 * (drho + 3.0 * (-vx2) + c9o2 * (-vx2) * (-vx2) - cu_sq); + feq[DIR_00P] = c2o27 * (drho + 3.0 * (vx3) + c9o2 * (vx3) * (vx3)-cu_sq); + feq[DIR_00M] = c2o27 * (drho + 3.0 * (-vx3) + c9o2 * (-vx3) * (-vx3) - cu_sq); + feq[DIR_PP0] = c1o54 * (drho + 3.0 * (vx1 + vx2) + c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq); + feq[DIR_MM0] = c1o54 * (drho + 3.0 * (-vx1 - vx2) + c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq); + feq[DIR_PM0] = c1o54 * (drho + 3.0 * (vx1 - vx2) + c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq); + feq[DIR_MP0] = c1o54 * (drho + 3.0 * (-vx1 + vx2) + c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq); + feq[DIR_P0P] = c1o54 * (drho + 3.0 * (vx1 + vx3) + c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq); + feq[DIR_M0M] = c1o54 * (drho + 3.0 * (-vx1 - vx3) + c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq); + feq[DIR_P0M] = c1o54 * (drho + 3.0 * (vx1 - vx3) + c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq); + feq[DIR_M0P] = c1o54 * (drho + 3.0 * (-vx1 + vx3) + c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq); + feq[DIR_0PP] = c1o54 * (drho + 3.0 * (vx2 + vx3) + c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq); + feq[DIR_0MM] = c1o54 * (drho + 3.0 * (-vx2 - vx3) + c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq); + feq[DIR_0PM] = c1o54 * (drho + 3.0 * (vx2 - vx3) + c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq); + feq[DIR_0MP] = c1o54 * (drho + 3.0 * (-vx2 + vx3) + c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq); + feq[DIR_PPP] = c1o216 * (drho + 3.0 * (vx1 + vx2 + vx3) + c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq); - feq[BSW] = c1o216 * (drho + 3.0 * (-vx1 - vx2 - vx3) + + feq[DIR_MMM] = c1o216 * (drho + 3.0 * (-vx1 - vx2 - vx3) + c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq); - feq[BNE] = c1o216 * + feq[DIR_PPM] = c1o216 * (drho + 3.0 * (vx1 + vx2 - vx3) + c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq); - feq[TSW] = c1o216 * (drho + 3.0 * (-vx1 - vx2 + vx3) + + feq[DIR_MMP] = c1o216 * (drho + 3.0 * (-vx1 - vx2 + vx3) + c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq); - feq[TSE] = c1o216 * + feq[DIR_PMP] = c1o216 * (drho + 3.0 * (vx1 - vx2 + vx3) + c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq); - feq[BNW] = c1o216 * (drho + 3.0 * (-vx1 + vx2 - vx3) + + feq[DIR_MPM] = c1o216 * (drho + 3.0 * (-vx1 + vx2 - vx3) + c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq); - feq[BSE] = c1o216 * + feq[DIR_PMM] = c1o216 * (drho + 3.0 * (vx1 - vx2 - vx3) + c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq); - feq[TNW] = c1o216 * (drho + 3.0 * (-vx1 + vx2 + vx3) + + feq[DIR_MPP] = c1o216 * (drho + 3.0 * (-vx1 + vx2 + vx3) + c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq); // Relaxation f[DIR_000] += (feq[DIR_000] - f[DIR_000]) * collFactor; - f[E] += (feq[E] - f[E]) * collFactor; - f[W] += (feq[W] - f[W]) * collFactor; - f[N] += (feq[N] - f[N]) * collFactor; - f[S] += (feq[S] - f[S]) * collFactor; - f[T] += (feq[T] - f[T]) * collFactor; - f[B] += (feq[B] - f[B]) * collFactor; - f[NE] += (feq[NE] - f[NE]) * collFactor; - f[SW] += (feq[SW] - f[SW]) * collFactor; - f[SE] += (feq[SE] - f[SE]) * collFactor; - f[NW] += (feq[NW] - f[NW]) * collFactor; - f[TE] += (feq[TE] - f[TE]) * collFactor; - f[BW] += (feq[BW] - f[BW]) * collFactor; - f[BE] += (feq[BE] - f[BE]) * collFactor; - f[TW] += (feq[TW] - f[TW]) * collFactor; - f[TN] += (feq[TN] - f[TN]) * collFactor; - f[BS] += (feq[BS] - f[BS]) * collFactor; - f[BN] += (feq[BN] - f[BN]) * collFactor; - f[TS] += (feq[TS] - f[TS]) * collFactor; + f[DIR_P00] += (feq[DIR_P00] - f[DIR_P00]) * collFactor; + f[DIR_M00] += (feq[DIR_M00] - f[DIR_M00]) * collFactor; + f[DIR_0P0] += (feq[DIR_0P0] - f[DIR_0P0]) * collFactor; + f[DIR_0M0] += (feq[DIR_0M0] - f[DIR_0M0]) * collFactor; + f[DIR_00P] += (feq[DIR_00P] - f[DIR_00P]) * collFactor; + f[DIR_00M] += (feq[DIR_00M] - f[DIR_00M]) * collFactor; + f[DIR_PP0] += (feq[DIR_PP0] - f[DIR_PP0]) * collFactor; + f[DIR_MM0] += (feq[DIR_MM0] - f[DIR_MM0]) * collFactor; + f[DIR_PM0] += (feq[DIR_PM0] - f[DIR_PM0]) * collFactor; + f[DIR_MP0] += (feq[DIR_MP0] - f[DIR_MP0]) * collFactor; + f[DIR_P0P] += (feq[DIR_P0P] - f[DIR_P0P]) * collFactor; + f[DIR_M0M] += (feq[DIR_M0M] - f[DIR_M0M]) * collFactor; + f[DIR_P0M] += (feq[DIR_P0M] - f[DIR_P0M]) * collFactor; + f[DIR_M0P] += (feq[DIR_M0P] - f[DIR_M0P]) * collFactor; + f[DIR_0PP] += (feq[DIR_0PP] - f[DIR_0PP]) * collFactor; + f[DIR_0MM] += (feq[DIR_0MM] - f[DIR_0MM]) * collFactor; + f[DIR_0PM] += (feq[DIR_0PM] - f[DIR_0PM]) * collFactor; + f[DIR_0MP] += (feq[DIR_0MP] - f[DIR_0MP]) * collFactor; - f[TNE] += (feq[TNE] - f[TNE]) * collFactor; - f[BSW] += (feq[BSW] - f[BSW]) * collFactor; - f[BNE] += (feq[BNE] - f[BNE]) * collFactor; - f[TSW] += (feq[TSW] - f[TSW]) * collFactor; - f[TSE] += (feq[TSE] - f[TSE]) * collFactor; - f[BNW] += (feq[BNW] - f[BNW]) * collFactor; - f[BSE] += (feq[BSE] - f[BSE]) * collFactor; - f[TNW] += (feq[TNW] - f[TNW]) * collFactor; + f[DIR_PPP] += (feq[DIR_PPP] - f[DIR_PPP]) * collFactor; + f[DIR_MMM] += (feq[DIR_MMM] - f[DIR_MMM]) * collFactor; + f[DIR_PPM] += (feq[DIR_PPM] - f[DIR_PPM]) * collFactor; + f[DIR_MMP] += (feq[DIR_MMP] - f[DIR_MMP]) * collFactor; + f[DIR_PMP] += (feq[DIR_PMP] - f[DIR_PMP]) * collFactor; + f[DIR_MPM] += (feq[DIR_MPM] - f[DIR_MPM]) * collFactor; + f[DIR_PMM] += (feq[DIR_PMM] - f[DIR_PMM]) * collFactor; + f[DIR_MPP] += (feq[DIR_MPP] - f[DIR_MPP]) * collFactor; ////////////////////////////////////////////////////////////////////////// // forcing @@ -215,38 +215,38 @@ void BGKLBMKernel::calculate(int step) forcingX3 = muForcingX3.Eval(); f[DIR_000] += 0.0; - f[E] += 3.0 * c2o27 * (forcingX1); - f[W] += 3.0 * c2o27 * (-forcingX1); - f[N] += 3.0 * c2o27 * (forcingX2); - f[S] += 3.0 * c2o27 * (-forcingX2); - f[T] += 3.0 * c2o27 * (forcingX3); - f[B] += 3.0 * c2o27 * (-forcingX3); - f[NE] += 3.0 * c1o54 * (forcingX1 + forcingX2); - f[SW] += 3.0 * c1o54 * (-forcingX1 - forcingX2); - f[SE] += 3.0 * c1o54 * (forcingX1 - forcingX2); - f[NW] += 3.0 * c1o54 * (-forcingX1 + forcingX2); - f[TE] += 3.0 * c1o54 * (forcingX1 + forcingX3); - f[BW] += 3.0 * c1o54 * (-forcingX1 - forcingX3); - f[BE] += 3.0 * c1o54 * (forcingX1 - forcingX3); - f[TW] += 3.0 * c1o54 * (-forcingX1 + forcingX3); - f[TN] += 3.0 * c1o54 * (forcingX2 + forcingX3); - f[BS] += 3.0 * c1o54 * (-forcingX2 - forcingX3); - f[BN] += 3.0 * c1o54 * (forcingX2 - forcingX3); - f[TS] += 3.0 * c1o54 * (-forcingX2 + forcingX3); - f[TNE] += 3.0 * c1o216 * (forcingX1 + forcingX2 + forcingX3); - f[BSW] += 3.0 * c1o216 * (-forcingX1 - forcingX2 - forcingX3); - f[BNE] += 3.0 * c1o216 * (forcingX1 + forcingX2 - forcingX3); - f[TSW] += 3.0 * c1o216 * (-forcingX1 - forcingX2 + forcingX3); - f[TSE] += 3.0 * c1o216 * (forcingX1 - forcingX2 + forcingX3); - f[BNW] += 3.0 * c1o216 * (-forcingX1 + forcingX2 - forcingX3); - f[BSE] += 3.0 * c1o216 * (forcingX1 - forcingX2 - forcingX3); - f[TNW] += 3.0 * c1o216 * (-forcingX1 + forcingX2 + forcingX3); + f[DIR_P00] += 3.0 * c2o27 * (forcingX1); + f[DIR_M00] += 3.0 * c2o27 * (-forcingX1); + f[DIR_0P0] += 3.0 * c2o27 * (forcingX2); + f[DIR_0M0] += 3.0 * c2o27 * (-forcingX2); + f[DIR_00P] += 3.0 * c2o27 * (forcingX3); + f[DIR_00M] += 3.0 * c2o27 * (-forcingX3); + f[DIR_PP0] += 3.0 * c1o54 * (forcingX1 + forcingX2); + f[DIR_MM0] += 3.0 * c1o54 * (-forcingX1 - forcingX2); + f[DIR_PM0] += 3.0 * c1o54 * (forcingX1 - forcingX2); + f[DIR_MP0] += 3.0 * c1o54 * (-forcingX1 + forcingX2); + f[DIR_P0P] += 3.0 * c1o54 * (forcingX1 + forcingX3); + f[DIR_M0M] += 3.0 * c1o54 * (-forcingX1 - forcingX3); + f[DIR_P0M] += 3.0 * c1o54 * (forcingX1 - forcingX3); + f[DIR_M0P] += 3.0 * c1o54 * (-forcingX1 + forcingX3); + f[DIR_0PP] += 3.0 * c1o54 * (forcingX2 + forcingX3); + f[DIR_0MM] += 3.0 * c1o54 * (-forcingX2 - forcingX3); + f[DIR_0PM] += 3.0 * c1o54 * (forcingX2 - forcingX3); + f[DIR_0MP] += 3.0 * c1o54 * (-forcingX2 + forcingX3); + f[DIR_PPP] += 3.0 * c1o216 * (forcingX1 + forcingX2 + forcingX3); + f[DIR_MMM] += 3.0 * c1o216 * (-forcingX1 - forcingX2 - forcingX3); + f[DIR_PPM] += 3.0 * c1o216 * (forcingX1 + forcingX2 - forcingX3); + f[DIR_MMP] += 3.0 * c1o216 * (-forcingX1 - forcingX2 + forcingX3); + f[DIR_PMP] += 3.0 * c1o216 * (forcingX1 - forcingX2 + forcingX3); + f[DIR_MPM] += 3.0 * c1o216 * (-forcingX1 + forcingX2 - forcingX3); + f[DIR_PMM] += 3.0 * c1o216 * (forcingX1 - forcingX2 - forcingX3); + f[DIR_MPP] += 3.0 * c1o216 * (-forcingX1 + forcingX2 + forcingX3); } ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = f[DIR_000] + f[E] + f[W] + f[N] + f[S] + f[T] + f[B] + f[NE] + f[SW] + f[SE] + - f[NW] + f[TE] + f[BW] + f[BE] + f[TW] + f[TN] + f[BS] + f[BN] + f[TS] + f[TNE] + - f[TSW] + f[TSE] + f[TNW] + f[BNE] + f[BSW] + f[BSE] + f[BNW]; + LBMReal rho_post = f[DIR_000] + f[DIR_P00] + f[DIR_M00] + f[DIR_0P0] + f[DIR_0M0] + f[DIR_00P] + f[DIR_00M] + f[DIR_PP0] + f[DIR_MM0] + f[DIR_PM0] + + f[DIR_MP0] + f[DIR_P0P] + f[DIR_M0M] + f[DIR_P0M] + f[DIR_M0P] + f[DIR_0PP] + f[DIR_0MM] + f[DIR_0PM] + f[DIR_0MP] + f[DIR_PPP] + + f[DIR_MMP] + f[DIR_PMP] + f[DIR_MPP] + f[DIR_PPM] + f[DIR_MMM] + f[DIR_PMM] + f[DIR_MPM]; LBMReal dif = drho - rho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) @@ -263,33 +263,33 @@ void BGKLBMKernel::calculate(int step) ////////////////////////////////////////////////////////////////////////// // write distribution ////////////////////////////////////////////////////////////////////////// - (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f[D3Q27System::INV_E]; - (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f[D3Q27System::INV_N]; - (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f[D3Q27System::INV_T]; - (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f[D3Q27System::INV_NE]; - (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3) = f[D3Q27System::INV_NW]; - (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f[D3Q27System::INV_TE]; - (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3) = f[D3Q27System::INV_TW]; - (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f[D3Q27System::INV_TN]; - (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3) = f[D3Q27System::INV_TS]; - (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f[D3Q27System::INV_TNE]; - (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3) = f[D3Q27System::INV_TNW]; - (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3) = f[D3Q27System::INV_TSE]; - (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3) = f[D3Q27System::INV_TSW]; + (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f[D3Q27System::INV_P00]; + (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f[D3Q27System::INV_0P0]; + (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f[D3Q27System::INV_00P]; + (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f[D3Q27System::INV_PP0]; + (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3) = f[D3Q27System::INV_MP0]; + (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f[D3Q27System::INV_P0P]; + (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3) = f[D3Q27System::INV_M0P]; + (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f[D3Q27System::INV_0PP]; + (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3) = f[D3Q27System::INV_0MP]; + (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f[D3Q27System::INV_PPP]; + (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3) = f[D3Q27System::INV_MPP]; + (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3) = f[D3Q27System::INV_PMP]; + (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3) = f[D3Q27System::INV_MMP]; - (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3) = f[D3Q27System::INV_W]; - (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3) = f[D3Q27System::INV_S]; - (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p) = f[D3Q27System::INV_B]; - (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3) = f[D3Q27System::INV_SW]; - (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3) = f[D3Q27System::INV_SE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p) = f[D3Q27System::INV_BW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p) = f[D3Q27System::INV_BE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p) = f[D3Q27System::INV_BS]; - (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p) = f[D3Q27System::INV_BN]; - (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p) = f[D3Q27System::INV_BSW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p) = f[D3Q27System::INV_BSE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p) = f[D3Q27System::INV_BNW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p) = f[D3Q27System::INV_BNE]; + (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3) = f[D3Q27System::INV_M00]; + (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3) = f[D3Q27System::INV_0M0]; + (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p) = f[D3Q27System::INV_00M]; + (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3) = f[D3Q27System::INV_MM0]; + (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3) = f[D3Q27System::INV_PM0]; + (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p) = f[D3Q27System::INV_M0M]; + (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p) = f[D3Q27System::INV_P0M]; + (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p) = f[D3Q27System::INV_0MM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p) = f[D3Q27System::INV_0PM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p) = f[D3Q27System::INV_MMM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p) = f[D3Q27System::INV_PMM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p) = f[D3Q27System::INV_MPM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p) = f[D3Q27System::INV_PPM]; (*this->zeroDistributions)(x1, x2, x3) = f[D3Q27System::DIR_000]; ////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp index 94635f85810d81563efafb4a560a230ac3bc3056..b1e48abd9ed3c0a2b4bff26090c20512d94eff7f 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp @@ -117,7 +117,7 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) //LBMReal B = (four + twentyeight*omega - fourteen*omega*omega) / (six - twentyone*omega + fiveteen*omega*omega); LBMReal A = (4.0*omega*omega+2.0*omega*OxxPyyPzz*(omega-6.0)+OxxPyyPzz*OxxPyyPzz*(omega*(10.0-3.0*omega)-4.0))/((omega-OxxPyyPzz)*(OxxPyyPzz*(2.0+3.0*omega)-8.0*omega)); - //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::B' ) + //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) LBMReal B = (4.0*omega*OxxPyyPzz*(9.0*omega-16.0)-4.0*omega*omega-2.0*OxxPyyPzz*OxxPyyPzz*(2.0+9.0*omega*(omega-2.0)))/(3.0*(omega-OxxPyyPzz)*(OxxPyyPzz*(2.0+3.0*omega)-8.0*omega)); for (int x3 = minX3; x3 < maxX3; x3++) diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp index 21b23b61d145530b5b36a73d9056039dea25d75e..a359db9cd61ef3042130f5148abdc4cf1488617a 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp @@ -66,11 +66,11 @@ void CompressibleOffsetInterpolationProcessor::calcMoments(const LBMReal* const press = drho; //interpolate rho! - kxy = -3.*omega*((((f[TSW]+f[BNE])-(f[TNW]+f[BSE]))+((f[BSW]+f[TNE])-(f[BNW]+f[TSE])))+((f[SW]+f[NE])-(f[NW]+f[SE]))/(one + drho)-(vx1*vx2));// might not be optimal MG 25.2.13 - kyz = -3.*omega*((((f[BSW]+f[TNE])-(f[TSE]+f[BNW]))+((f[BSE]+f[TNW])-(f[TSW]+f[BNE])))+((f[BS]+f[TN])-(f[TS]+f[BN]))/(one + drho)-(vx2*vx3)); - kxz = -3.*omega*((((f[BNW]+f[TSE])-(f[TSW]+f[BNE]))+((f[BSW]+f[TNE])-(f[BSE]+f[TNW])))+((f[BW]+f[TE])-(f[TW]+f[BE]))/(one + drho)-(vx1*vx3)); - kxxMyy = -3./2.*omega*((((f[BW]+f[TE])-(f[BS]+f[TN]))+((f[TW]+f[BE])-(f[TS]+f[BN])))+((f[W]+f[E])-(f[S]+f[N]))/(one + drho)-(vx1*vx1-vx2*vx2)); - kxxMzz = -3./2.*omega*((((f[NW]+f[SE])-(f[BS]+f[TN]))+((f[SW]+f[NE])-(f[TS]+f[BN])))+((f[W]+f[E])-(f[B]+f[T]))/(one + drho)-(vx1*vx1-vx3*vx3)); + kxy = -3.*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_MP0]+f[DIR_PM0]))/(one + drho)-(vx1*vx2));// might not be optimal MG 25.2.13 + kyz = -3.*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))/(one + drho)-(vx2*vx3)); + kxz = -3.*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))/(one + drho)-(vx1*vx3)); + kxxMyy = -3./2.*omega*((((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_0M0]+f[DIR_0P0]))/(one + drho)-(vx1*vx1-vx2*vx2)); + kxxMzz = -3./2.*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_00M]+f[DIR_00P]))/(one + drho)-(vx1*vx1-vx3*vx3)); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, LBMReal omega, LBMReal eps_new) @@ -471,32 +471,32 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeCF(LBMReal* f LBMReal feq[ENDF+1]; D3Q27System::calcCompFeq(feq,rho,vx1,vx2,vx3); - f[E] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[E]; - f[W] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[W]; - f[N] = f_N + xs*x_N + ys*y_N + zs*z_N + xs*ys*xy_N + xs*zs*xz_N + ys*zs*yz_N + feq[N]; - f[S] = f_N + xs*x_N + ys*y_N + zs*z_N + xs*ys*xy_N + xs*zs*xz_N + ys*zs*yz_N + feq[S]; - f[T] = f_T + xs*x_T + ys*y_T + zs*z_T + xs*ys*xy_T + xs*zs*xz_T + ys*zs*yz_T + feq[T]; - f[B] = f_T + xs*x_T + ys*y_T + zs*z_T + xs*ys*xy_T + xs*zs*xz_T + ys*zs*yz_T + feq[B]; - f[NE] = f_NE + xs*x_NE + ys*y_NE + zs*z_NE + xs*ys*xy_NE + xs*zs*xz_NE + ys*zs*yz_NE + feq[NE]; - f[SW] = f_NE + xs*x_NE + ys*y_NE + zs*z_NE + xs*ys*xy_NE + xs*zs*xz_NE + ys*zs*yz_NE + feq[SW]; - f[SE] = f_SE + xs*x_SE + ys*y_SE + zs*z_SE + xs*ys*xy_SE + xs*zs*xz_SE + ys*zs*yz_SE + feq[SE]; - f[NW] = f_SE + xs*x_SE + ys*y_SE + zs*z_SE + xs*ys*xy_SE + xs*zs*xz_SE + ys*zs*yz_SE + feq[NW]; - f[TE] = f_TE + xs*x_TE + ys*y_TE + zs*z_TE + xs*ys*xy_TE + xs*zs*xz_TE + ys*zs*yz_TE + feq[TE]; - f[BW] = f_TE + xs*x_TE + ys*y_TE + zs*z_TE + xs*ys*xy_TE + xs*zs*xz_TE + ys*zs*yz_TE + feq[BW]; - f[BE] = f_BE + xs*x_BE + ys*y_BE + zs*z_BE + xs*ys*xy_BE + xs*zs*xz_BE + ys*zs*yz_BE + feq[BE]; - f[TW] = f_BE + xs*x_BE + ys*y_BE + zs*z_BE + xs*ys*xy_BE + xs*zs*xz_BE + ys*zs*yz_BE + feq[TW]; - f[TN] = f_TN + xs*x_TN + ys*y_TN + zs*z_TN + xs*ys*xy_TN + xs*zs*xz_TN + ys*zs*yz_TN + feq[TN]; - f[BS] = f_TN + xs*x_TN + ys*y_TN + zs*z_TN + xs*ys*xy_TN + xs*zs*xz_TN + ys*zs*yz_TN + feq[BS]; - f[BN] = f_BN + xs*x_BN + ys*y_BN + zs*z_BN + xs*ys*xy_BN + xs*zs*xz_BN + ys*zs*yz_BN + feq[BN]; - f[TS] = f_BN + xs*x_BN + ys*y_BN + zs*z_BN + xs*ys*xy_BN + xs*zs*xz_BN + ys*zs*yz_BN + feq[TS]; - f[TNE] = f_TNE + xs*x_TNE + ys*y_TNE + zs*z_TNE + xs*ys*xy_TNE + xs*zs*xz_TNE + ys*zs*yz_TNE + feq[TNE]; - f[TSW] = f_TSW + xs*x_TSW + ys*y_TSW + zs*z_TSW + xs*ys*xy_TSW + xs*zs*xz_TSW + ys*zs*yz_TSW + feq[TSW]; - f[TSE] = f_TSE + xs*x_TSE + ys*y_TSE + zs*z_TSE + xs*ys*xy_TSE + xs*zs*xz_TSE + ys*zs*yz_TSE + feq[TSE]; - f[TNW] = f_TNW + xs*x_TNW + ys*y_TNW + zs*z_TNW + xs*ys*xy_TNW + xs*zs*xz_TNW + ys*zs*yz_TNW + feq[TNW]; - f[BNE] = f_TSW + xs*x_TSW + ys*y_TSW + zs*z_TSW + xs*ys*xy_TSW + xs*zs*xz_TSW + ys*zs*yz_TSW + feq[BNE]; - f[BSW] = f_TNE + xs*x_TNE + ys*y_TNE + zs*z_TNE + xs*ys*xy_TNE + xs*zs*xz_TNE + ys*zs*yz_TNE + feq[BSW]; - f[BSE] = f_TNW + xs*x_TNW + ys*y_TNW + zs*z_TNW + xs*ys*xy_TNW + xs*zs*xz_TNW + ys*zs*yz_TNW + feq[BSE]; - f[BNW] = f_TSE + xs*x_TSE + ys*y_TSE + zs*z_TSE + xs*ys*xy_TSE + xs*zs*xz_TSE + ys*zs*yz_TSE + feq[BNW]; + f[DIR_P00] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[DIR_P00]; + f[DIR_M00] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[DIR_M00]; + f[DIR_0P0] = f_N + xs*x_N + ys*y_N + zs*z_N + xs*ys*xy_N + xs*zs*xz_N + ys*zs*yz_N + feq[DIR_0P0]; + f[DIR_0M0] = f_N + xs*x_N + ys*y_N + zs*z_N + xs*ys*xy_N + xs*zs*xz_N + ys*zs*yz_N + feq[DIR_0M0]; + f[DIR_00P] = f_T + xs*x_T + ys*y_T + zs*z_T + xs*ys*xy_T + xs*zs*xz_T + ys*zs*yz_T + feq[DIR_00P]; + f[DIR_00M] = f_T + xs*x_T + ys*y_T + zs*z_T + xs*ys*xy_T + xs*zs*xz_T + ys*zs*yz_T + feq[DIR_00M]; + f[DIR_PP0] = f_NE + xs*x_NE + ys*y_NE + zs*z_NE + xs*ys*xy_NE + xs*zs*xz_NE + ys*zs*yz_NE + feq[DIR_PP0]; + f[DIR_MM0] = f_NE + xs*x_NE + ys*y_NE + zs*z_NE + xs*ys*xy_NE + xs*zs*xz_NE + ys*zs*yz_NE + feq[DIR_MM0]; + f[DIR_PM0] = f_SE + xs*x_SE + ys*y_SE + zs*z_SE + xs*ys*xy_SE + xs*zs*xz_SE + ys*zs*yz_SE + feq[DIR_PM0]; + f[DIR_MP0] = f_SE + xs*x_SE + ys*y_SE + zs*z_SE + xs*ys*xy_SE + xs*zs*xz_SE + ys*zs*yz_SE + feq[DIR_MP0]; + f[DIR_P0P] = f_TE + xs*x_TE + ys*y_TE + zs*z_TE + xs*ys*xy_TE + xs*zs*xz_TE + ys*zs*yz_TE + feq[DIR_P0P]; + f[DIR_M0M] = f_TE + xs*x_TE + ys*y_TE + zs*z_TE + xs*ys*xy_TE + xs*zs*xz_TE + ys*zs*yz_TE + feq[DIR_M0M]; + f[DIR_P0M] = f_BE + xs*x_BE + ys*y_BE + zs*z_BE + xs*ys*xy_BE + xs*zs*xz_BE + ys*zs*yz_BE + feq[DIR_P0M]; + f[DIR_M0P] = f_BE + xs*x_BE + ys*y_BE + zs*z_BE + xs*ys*xy_BE + xs*zs*xz_BE + ys*zs*yz_BE + feq[DIR_M0P]; + f[DIR_0PP] = f_TN + xs*x_TN + ys*y_TN + zs*z_TN + xs*ys*xy_TN + xs*zs*xz_TN + ys*zs*yz_TN + feq[DIR_0PP]; + f[DIR_0MM] = f_TN + xs*x_TN + ys*y_TN + zs*z_TN + xs*ys*xy_TN + xs*zs*xz_TN + ys*zs*yz_TN + feq[DIR_0MM]; + f[DIR_0PM] = f_BN + xs*x_BN + ys*y_BN + zs*z_BN + xs*ys*xy_BN + xs*zs*xz_BN + ys*zs*yz_BN + feq[DIR_0PM]; + f[DIR_0MP] = f_BN + xs*x_BN + ys*y_BN + zs*z_BN + xs*ys*xy_BN + xs*zs*xz_BN + ys*zs*yz_BN + feq[DIR_0MP]; + f[DIR_PPP] = f_TNE + xs*x_TNE + ys*y_TNE + zs*z_TNE + xs*ys*xy_TNE + xs*zs*xz_TNE + ys*zs*yz_TNE + feq[DIR_PPP]; + f[DIR_MMP] = f_TSW + xs*x_TSW + ys*y_TSW + zs*z_TSW + xs*ys*xy_TSW + xs*zs*xz_TSW + ys*zs*yz_TSW + feq[DIR_MMP]; + f[DIR_PMP] = f_TSE + xs*x_TSE + ys*y_TSE + zs*z_TSE + xs*ys*xy_TSE + xs*zs*xz_TSE + ys*zs*yz_TSE + feq[DIR_PMP]; + f[DIR_MPP] = f_TNW + xs*x_TNW + ys*y_TNW + zs*z_TNW + xs*ys*xy_TNW + xs*zs*xz_TNW + ys*zs*yz_TNW + feq[DIR_MPP]; + f[DIR_PPM] = f_TSW + xs*x_TSW + ys*y_TSW + zs*z_TSW + xs*ys*xy_TSW + xs*zs*xz_TSW + ys*zs*yz_TSW + feq[DIR_PPM]; + f[DIR_MMM] = f_TNE + xs*x_TNE + ys*y_TNE + zs*z_TNE + xs*ys*xy_TNE + xs*zs*xz_TNE + ys*zs*yz_TNE + feq[DIR_MMM]; + f[DIR_PMM] = f_TNW + xs*x_TNW + ys*y_TNW + zs*z_TNW + xs*ys*xy_TNW + xs*zs*xz_TNW + ys*zs*yz_TNW + feq[DIR_PMM]; + f[DIR_MPM] = f_TSE + xs*x_TSE + ys*y_TSE + zs*z_TSE + xs*ys*xy_TSE + xs*zs*xz_TSE + ys*zs*yz_TSE + feq[DIR_MPM]; f[DIR_000] = f_ZERO + xs*x_ZERO + ys*y_ZERO + zs*z_ZERO + feq[DIR_000]; } ////////////////////////////////////////////////////////////////////////// @@ -665,32 +665,32 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(72.*o)); f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(72.*o)); - f[E] = f_E + feq[E]; - f[W] = f_E + feq[W]; - f[N] = f_N + feq[N]; - f[S] = f_N + feq[S]; - f[T] = f_T + feq[T]; - f[B] = f_T + feq[B]; - f[NE] = f_NE + feq[NE]; - f[SW] = f_NE + feq[SW]; - f[SE] = f_SE + feq[SE]; - f[NW] = f_SE + feq[NW]; - f[TE] = f_TE + feq[TE]; - f[BW] = f_TE + feq[BW]; - f[BE] = f_BE + feq[BE]; - f[TW] = f_BE + feq[TW]; - f[TN] = f_TN + feq[TN]; - f[BS] = f_TN + feq[BS]; - f[BN] = f_BN + feq[BN]; - f[TS] = f_BN + feq[TS]; - f[TNE] = f_TNE + feq[TNE]; - f[TNW] = f_TNW + feq[TNW]; - f[TSE] = f_TSE + feq[TSE]; - f[TSW] = f_TSW + feq[TSW]; - f[BNE] = f_TSW + feq[BNE]; - f[BNW] = f_TSE + feq[BNW]; - f[BSE] = f_TNW + feq[BSE]; - f[BSW] = f_TNE + feq[BSW]; + f[DIR_P00] = f_E + feq[DIR_P00]; + f[DIR_M00] = f_E + feq[DIR_M00]; + f[DIR_0P0] = f_N + feq[DIR_0P0]; + f[DIR_0M0] = f_N + feq[DIR_0M0]; + f[DIR_00P] = f_T + feq[DIR_00P]; + f[DIR_00M] = f_T + feq[DIR_00M]; + f[DIR_PP0] = f_NE + feq[DIR_PP0]; + f[DIR_MM0] = f_NE + feq[DIR_MM0]; + f[DIR_PM0] = f_SE + feq[DIR_PM0]; + f[DIR_MP0] = f_SE + feq[DIR_MP0]; + f[DIR_P0P] = f_TE + feq[DIR_P0P]; + f[DIR_M0M] = f_TE + feq[DIR_M0M]; + f[DIR_P0M] = f_BE + feq[DIR_P0M]; + f[DIR_M0P] = f_BE + feq[DIR_M0P]; + f[DIR_0PP] = f_TN + feq[DIR_0PP]; + f[DIR_0MM] = f_TN + feq[DIR_0MM]; + f[DIR_0PM] = f_BN + feq[DIR_0PM]; + f[DIR_0MP] = f_BN + feq[DIR_0MP]; + f[DIR_PPP] = f_TNE + feq[DIR_PPP]; + f[DIR_MPP] = f_TNW + feq[DIR_MPP]; + f[DIR_PMP] = f_TSE + feq[DIR_PMP]; + f[DIR_MMP] = f_TSW + feq[DIR_MMP]; + f[DIR_PPM] = f_TSW + feq[DIR_PPM]; + f[DIR_MPM] = f_TSE + feq[DIR_MPM]; + f[DIR_PMM] = f_TNW + feq[DIR_PMM]; + f[DIR_MMM] = f_TNE + feq[DIR_MMM]; f[DIR_000] = f_ZERO + feq[DIR_000]; } ////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp index 936cf18ab89d7153b0621df61ac0023d324a6f43..3df8aa6bb0a2cc1c7f24b2143d5e8e467ec160c6 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp @@ -95,11 +95,11 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcMoments(const LBMReal* press = drho; //interpolate rho! - kxy = -3.*omega*((((f[TSW]+f[BNE])-(f[TNW]+f[BSE]))+((f[BSW]+f[TNE])-(f[BNW]+f[TSE])))+((f[SW]+f[NE])-(f[NW]+f[SE]))/(one + drho)-(vx1*vx2));// might not be optimal MG 25.2.13 - kyz = -3.*omega*((((f[BSW]+f[TNE])-(f[TSE]+f[BNW]))+((f[BSE]+f[TNW])-(f[TSW]+f[BNE])))+((f[BS]+f[TN])-(f[TS]+f[BN]))/(one + drho)-(vx2*vx3)); - kxz = -3.*omega*((((f[BNW]+f[TSE])-(f[TSW]+f[BNE]))+((f[BSW]+f[TNE])-(f[BSE]+f[TNW])))+((f[BW]+f[TE])-(f[TW]+f[BE]))/(one + drho)-(vx1*vx3)); - kxxMyy = -3./2.*omega*((((f[BW]+f[TE])-(f[BS]+f[TN]))+((f[TW]+f[BE])-(f[TS]+f[BN])))+((f[W]+f[E])-(f[S]+f[N]))/(one + drho)-(vx1*vx1-vx2*vx2)); - kxxMzz = -3./2.*omega*((((f[NW]+f[SE])-(f[BS]+f[TN]))+((f[SW]+f[NE])-(f[TS]+f[BN])))+((f[W]+f[E])-(f[B]+f[T]))/(one + drho)-(vx1*vx1-vx3*vx3)); + kxy = -3.*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_MP0]+f[DIR_PM0]))/(one + drho)-(vx1*vx2));// might not be optimal MG 25.2.13 + kyz = -3.*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))/(one + drho)-(vx2*vx3)); + kxz = -3.*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))/(one + drho)-(vx1*vx3)); + kxxMyy = -3./2.*omega*((((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_0M0]+f[DIR_0P0]))/(one + drho)-(vx1*vx1-vx2*vx2)); + kxxMzz = -3./2.*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_00M]+f[DIR_00P]))/(one + drho)-(vx1*vx1-vx3*vx3)); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, LBMReal omega, LBMReal eps_new) @@ -785,33 +785,33 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeCF(LBM mfccc = m2; //////////////////////////////////////////////////////////////////////////////////// - f[E] = mfcbb; - f[W] = mfabb; - f[N] = mfbcb; - f[S] = mfbab; - f[T] = mfbbc; - f[B] = mfbba; - f[NE] = mfccb; - f[SW] = mfaab; - f[SE] = mfcab; - f[NW] = mfacb; - f[TE] = mfcbc; - f[BW] = mfaba; - f[BE] = mfcba; - f[TW] = mfabc; - f[TN] = mfbcc; - f[BS] = mfbaa; - f[BN] = mfbca; - f[TS] = mfbac; + f[DIR_P00] = mfcbb; + f[DIR_M00] = mfabb; + f[DIR_0P0] = mfbcb; + f[DIR_0M0] = mfbab; + f[DIR_00P] = mfbbc; + f[DIR_00M] = mfbba; + f[DIR_PP0] = mfccb; + f[DIR_MM0] = mfaab; + f[DIR_PM0] = mfcab; + f[DIR_MP0] = mfacb; + f[DIR_P0P] = mfcbc; + f[DIR_M0M] = mfaba; + f[DIR_P0M] = mfcba; + f[DIR_M0P] = mfabc; + f[DIR_0PP] = mfbcc; + f[DIR_0MM] = mfbaa; + f[DIR_0PM] = mfbca; + f[DIR_0MP] = mfbac; f[DIR_000] = mfbbb; - f[TNE] = mfccc; - f[TSE] = mfcac; - f[BNE] = mfcca; - f[BSE] = mfcaa; - f[TNW] = mfacc; - f[TSW] = mfaac; - f[BNW] = mfaca; - f[BSW] = mfaaa; + f[DIR_PPP] = mfccc; + f[DIR_PMP] = mfcac; + f[DIR_PPM] = mfcca; + f[DIR_PMM] = mfcaa; + f[DIR_MPP] = mfacc; + f[DIR_MMP] = mfaac; + f[DIR_MPM] = mfaca; + f[DIR_MMM] = mfaaa; } ////////////////////////////////////////////////////////////////////////// //Position SWB -0.25, -0.25, -0.25 @@ -1233,33 +1233,33 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeFC(LBM mfccc = m2; //////////////////////////////////////////////////////////////////////////////////// - f[E] = mfcbb; - f[W] = mfabb; - f[N] = mfbcb; - f[S] = mfbab; - f[T] = mfbbc; - f[B] = mfbba; - f[NE] = mfccb; - f[SW] = mfaab; - f[SE] = mfcab; - f[NW] = mfacb; - f[TE] = mfcbc; - f[BW] = mfaba; - f[BE] = mfcba; - f[TW] = mfabc; - f[TN] = mfbcc; - f[BS] = mfbaa; - f[BN] = mfbca; - f[TS] = mfbac; + f[DIR_P00] = mfcbb; + f[DIR_M00] = mfabb; + f[DIR_0P0] = mfbcb; + f[DIR_0M0] = mfbab; + f[DIR_00P] = mfbbc; + f[DIR_00M] = mfbba; + f[DIR_PP0] = mfccb; + f[DIR_MM0] = mfaab; + f[DIR_PM0] = mfcab; + f[DIR_MP0] = mfacb; + f[DIR_P0P] = mfcbc; + f[DIR_M0M] = mfaba; + f[DIR_P0M] = mfcba; + f[DIR_M0P] = mfabc; + f[DIR_0PP] = mfbcc; + f[DIR_0MM] = mfbaa; + f[DIR_0PM] = mfbca; + f[DIR_0MP] = mfbac; f[DIR_000] = mfbbb; - f[TNE] = mfccc; - f[TSE] = mfcac; - f[BNE] = mfcca; - f[BSE] = mfcaa; - f[TNW] = mfacc; - f[TSW] = mfaac; - f[BNW] = mfaca; - f[BSW] = mfaaa; + f[DIR_PPP] = mfccc; + f[DIR_PMP] = mfcac; + f[DIR_PPM] = mfcca; + f[DIR_PMM] = mfcaa; + f[DIR_MPP] = mfacc; + f[DIR_MMP] = mfaac; + f[DIR_MPM] = mfaca; + f[DIR_MMM] = mfaaa; } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3) diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp index 721dc5dad88bdec9a53ab6dc643e504767239398..c9cc8138dcf1d4ce11ee4e2aa7b733f2174f367d 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp @@ -85,11 +85,11 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcMoments(const L press = drho; //interpolate rho! - kxy = -3.*omega*((((f[TSW]+f[BNE])-(f[TNW]+f[BSE]))+((f[BSW]+f[TNE])-(f[BNW]+f[TSE])))+((f[SW]+f[NE])-(f[NW]+f[SE]))/(one + drho)-(vx1*vx2));// might not be optimal MG 25.2.13 - kyz = -3.*omega*((((f[BSW]+f[TNE])-(f[TSE]+f[BNW]))+((f[BSE]+f[TNW])-(f[TSW]+f[BNE])))+((f[BS]+f[TN])-(f[TS]+f[BN]))/(one + drho)-(vx2*vx3)); - kxz = -3.*omega*((((f[BNW]+f[TSE])-(f[TSW]+f[BNE]))+((f[BSW]+f[TNE])-(f[BSE]+f[TNW])))+((f[BW]+f[TE])-(f[TW]+f[BE]))/(one + drho)-(vx1*vx3)); - kxxMyy = -3./2.*omega*((((f[BW]+f[TE])-(f[BS]+f[TN]))+((f[TW]+f[BE])-(f[TS]+f[BN])))+((f[W]+f[E])-(f[S]+f[N]))/(one + drho)-(vx1*vx1-vx2*vx2)); - kxxMzz = -3./2.*omega*((((f[NW]+f[SE])-(f[BS]+f[TN]))+((f[SW]+f[NE])-(f[TS]+f[BN])))+((f[W]+f[E])-(f[B]+f[T]))/(one + drho)-(vx1*vx1-vx3*vx3)); + kxy = -3.*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_MP0]+f[DIR_PM0]))/(one + drho)-(vx1*vx2));// might not be optimal MG 25.2.13 + kyz = -3.*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))/(one + drho)-(vx2*vx3)); + kxz = -3.*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))/(one + drho)-(vx1*vx3)); + kxxMyy = -3./2.*omega*((((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_0M0]+f[DIR_0P0]))/(one + drho)-(vx1*vx1-vx2*vx2)); + kxxMzz = -3./2.*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_00M]+f[DIR_00P]))/(one + drho)-(vx1*vx1-vx3*vx3)); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, LBMReal omega, LBMReal eps_new) @@ -780,33 +780,33 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod mfccc = m2; //////////////////////////////////////////////////////////////////////////////////// - f[E] = mfcbb; - f[W] = mfabb; - f[N] = mfbcb; - f[S] = mfbab; - f[T] = mfbbc; - f[B] = mfbba; - f[NE] = mfccb; - f[SW] = mfaab; - f[SE] = mfcab; - f[NW] = mfacb; - f[TE] = mfcbc; - f[BW] = mfaba; - f[BE] = mfcba; - f[TW] = mfabc; - f[TN] = mfbcc; - f[BS] = mfbaa; - f[BN] = mfbca; - f[TS] = mfbac; + f[DIR_P00] = mfcbb; + f[DIR_M00] = mfabb; + f[DIR_0P0] = mfbcb; + f[DIR_0M0] = mfbab; + f[DIR_00P] = mfbbc; + f[DIR_00M] = mfbba; + f[DIR_PP0] = mfccb; + f[DIR_MM0] = mfaab; + f[DIR_PM0] = mfcab; + f[DIR_MP0] = mfacb; + f[DIR_P0P] = mfcbc; + f[DIR_M0M] = mfaba; + f[DIR_P0M] = mfcba; + f[DIR_M0P] = mfabc; + f[DIR_0PP] = mfbcc; + f[DIR_0MM] = mfbaa; + f[DIR_0PM] = mfbca; + f[DIR_0MP] = mfbac; f[DIR_000] = mfbbb; - f[TNE] = mfccc; - f[TSE] = mfcac; - f[BNE] = mfcca; - f[BSE] = mfcaa; - f[TNW] = mfacc; - f[TSW] = mfaac; - f[BNW] = mfaca; - f[BSW] = mfaaa; + f[DIR_PPP] = mfccc; + f[DIR_PMP] = mfcac; + f[DIR_PPM] = mfcca; + f[DIR_PMM] = mfcaa; + f[DIR_MPP] = mfacc; + f[DIR_MMP] = mfaac; + f[DIR_MPM] = mfaca; + f[DIR_MMM] = mfaaa; } ////////////////////////////////////////////////////////////////////////// //Position SWB -0.25, -0.25, -0.25 @@ -1233,33 +1233,33 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod mfccc = m2; //////////////////////////////////////////////////////////////////////////////////// - f[E] = mfcbb; - f[W] = mfabb; - f[N] = mfbcb; - f[S] = mfbab; - f[T] = mfbbc; - f[B] = mfbba; - f[NE] = mfccb; - f[SW] = mfaab; - f[SE] = mfcab; - f[NW] = mfacb; - f[TE] = mfcbc; - f[BW] = mfaba; - f[BE] = mfcba; - f[TW] = mfabc; - f[TN] = mfbcc; - f[BS] = mfbaa; - f[BN] = mfbca; - f[TS] = mfbac; + f[DIR_P00] = mfcbb; + f[DIR_M00] = mfabb; + f[DIR_0P0] = mfbcb; + f[DIR_0M0] = mfbab; + f[DIR_00P] = mfbbc; + f[DIR_00M] = mfbba; + f[DIR_PP0] = mfccb; + f[DIR_MM0] = mfaab; + f[DIR_PM0] = mfcab; + f[DIR_MP0] = mfacb; + f[DIR_P0P] = mfcbc; + f[DIR_M0M] = mfaba; + f[DIR_P0M] = mfcba; + f[DIR_M0P] = mfabc; + f[DIR_0PP] = mfbcc; + f[DIR_0MM] = mfbaa; + f[DIR_0PM] = mfbca; + f[DIR_0MP] = mfbac; f[DIR_000] = mfbbb; - f[TNE] = mfccc; - f[TSE] = mfcac; - f[BNE] = mfcca; - f[BSE] = mfcaa; - f[TNW] = mfacc; - f[TSW] = mfaac; - f[BNW] = mfaca; - f[BSW] = mfaaa; + f[DIR_PPP] = mfccc; + f[DIR_PMP] = mfcac; + f[DIR_PPM] = mfcca; + f[DIR_PMM] = mfcaa; + f[DIR_MPP] = mfacc; + f[DIR_MMP] = mfaac; + f[DIR_MPM] = mfaca; + f[DIR_MMM] = mfaaa; } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3) diff --git a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp index 62adaa06b250f524266e23a88959154cd122bc42..7e2fd17c0577ea4606f4b38530985411764b5bdb 100644 --- a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp @@ -23,16 +23,16 @@ const double WEIGTH[] = { c8o27, c1o54, c1o54, c1o54, c1o54, c1o54, c1o54, c1o54, c1o54, c1o54, c1o54, c1o54, c1o54, c1o216, c1o216, c1o216, c1o216, c1o216, c1o216, c1o216, c1o216 }; -const int INVDIR[] = { DIR_000, INV_E, INV_W, INV_N, INV_S, INV_T, INV_B, INV_NE, INV_SW, INV_SE, - INV_NW, INV_TE, INV_BW, INV_BE, INV_TW, INV_TN, INV_BS, INV_BN, INV_TS, - INV_TNE, INV_TNW, INV_TSE, INV_TSW, INV_BNE, INV_BNW, INV_BSE, INV_BSW }; +const int INVDIR[] = { DIR_000, INV_P00, INV_M00, INV_0P0, INV_0M0, INV_00P, INV_00M, INV_PP0, INV_MM0, INV_PM0, + INV_MP0, INV_P0P, INV_M0M, INV_P0M, INV_M0P, INV_0PP, INV_0MM, INV_0PM, INV_0MP, + INV_PPP, INV_MPP, INV_PMP, INV_MMP, INV_PPM, INV_MPM, INV_PMM, INV_MMM }; // index 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // direction: E, W, N, S, T, B, NE, SW, SE, NW, TE, BW, BE, TW, TN, BS, BN, TS, TNE TNW TSE TSW BNE BNW BSE // BSW -//const int EX1[] = { 0, 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1 }; -//const int EX2[] = { 0, 0, 0, 1, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1 }; -//const int EX3[] = { 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1 }; +const int EX1[] = { 0, 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1 }; +const int EX2[] = { 0, 0, 0, 1, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1 }; +const int EX3[] = { 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1 }; ////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h index 5e80ee54f89366fc9d28b9294bf001a36f8252c9..773e8b6950806fcdc1ecce51cbc547203528ab29 100644 --- a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h +++ b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h @@ -128,59 +128,59 @@ extern const int EX3[ENDDIR + 1]; //static constexpr int BSW = 26; static constexpr int DIR_000 = 0; -static constexpr int E = 1; -static constexpr int W = 2; -static constexpr int N = 3; -static constexpr int S = 4; -static constexpr int T = 5; -static constexpr int B = 6; -static constexpr int NE = 7; -static constexpr int SW = 8; -static constexpr int SE = 9; -static constexpr int NW = 10; -static constexpr int TE = 11; -static constexpr int BW = 12; -static constexpr int BE = 13; -static constexpr int TW = 14; -static constexpr int TN = 15; -static constexpr int BS = 16; -static constexpr int BN = 17; -static constexpr int TS = 18; -static constexpr int TNE = 19; -static constexpr int TNW = 20; -static constexpr int TSE = 21; -static constexpr int TSW = 22; -static constexpr int BNE = 23; -static constexpr int BNW = 24; -static constexpr int BSE = 25; -static constexpr int BSW = 26; +static constexpr int DIR_P00 = 1; +static constexpr int DIR_M00 = 2; +static constexpr int DIR_0P0 = 3; +static constexpr int DIR_0M0 = 4; +static constexpr int DIR_00P = 5; +static constexpr int DIR_00M = 6; +static constexpr int DIR_PP0 = 7; +static constexpr int DIR_MM0 = 8; +static constexpr int DIR_PM0 = 9; +static constexpr int DIR_MP0 = 10; +static constexpr int DIR_P0P = 11; +static constexpr int DIR_M0M = 12; +static constexpr int DIR_P0M = 13; +static constexpr int DIR_M0P = 14; +static constexpr int DIR_0PP = 15; +static constexpr int DIR_0MM = 16; +static constexpr int DIR_0PM = 17; +static constexpr int DIR_0MP = 18; +static constexpr int DIR_PPP = 19; +static constexpr int DIR_MPP = 20; +static constexpr int DIR_PMP = 21; +static constexpr int DIR_MMP = 22; +static constexpr int DIR_PPM = 23; +static constexpr int DIR_MPM = 24; +static constexpr int DIR_PMM = 25; +static constexpr int DIR_MMM = 26; -static const int INV_E = W; -static const int INV_W = E; -static const int INV_N = S; -static const int INV_S = N; -static const int INV_T = B; -static const int INV_B = T; -static const int INV_NE = SW; -static const int INV_SW = NE; -static const int INV_SE = NW; -static const int INV_NW = SE; -static const int INV_TE = BW; -static const int INV_BW = TE; -static const int INV_BE = TW; -static const int INV_TW = BE; -static const int INV_TN = BS; -static const int INV_BS = TN; -static const int INV_BN = TS; -static const int INV_TS = BN; -static const int INV_TNE = BSW; -static const int INV_TNW = BSE; -static const int INV_TSE = BNW; -static const int INV_TSW = BNE; -static const int INV_BNE = TSW; -static const int INV_BNW = TSE; -static const int INV_BSE = TNW; -static const int INV_BSW = TNE; +static constexpr int INV_P00 = DIR_M00; +static constexpr int INV_M00 = DIR_P00; +static constexpr int INV_0P0 = DIR_0M0; +static constexpr int INV_0M0 = DIR_0P0; +static constexpr int INV_00P = DIR_00M; +static constexpr int INV_00M = DIR_00P; +static constexpr int INV_PP0 = DIR_MM0; +static constexpr int INV_MM0 = DIR_PP0; +static constexpr int INV_PM0 = DIR_MP0; +static constexpr int INV_MP0 = DIR_PM0; +static constexpr int INV_P0P = DIR_M0M; +static constexpr int INV_M0M = DIR_P0P; +static constexpr int INV_P0M = DIR_M0P; +static constexpr int INV_M0P = DIR_P0M; +static constexpr int INV_0PP = DIR_0MM; +static constexpr int INV_0MM = DIR_0PP; +static constexpr int INV_0PM = DIR_0MP; +static constexpr int INV_0MP = DIR_0PM; +static constexpr int INV_PPP = DIR_MMM; +static constexpr int INV_MPP = DIR_PMM; +static constexpr int INV_PMP = DIR_MPM; +static constexpr int INV_MMP = DIR_PPM; +static constexpr int INV_PPM = DIR_MMP; +static constexpr int INV_MPM = DIR_PMP; +static constexpr int INV_PMM = DIR_MPP; +static constexpr int INV_MMM = DIR_PPP; extern const int INVDIR[ENDDIR + 1]; @@ -215,57 +215,57 @@ static const int ET_BNE = 12; inline std::string getDirectionString(int direction) { switch (direction) { - case E: + case DIR_P00: return "E"; - case W: + case DIR_M00: return "W"; - case N: + case DIR_0P0: return "N"; - case S: + case DIR_0M0: return "S"; - case T: + case DIR_00P: return "T"; - case B: + case DIR_00M: return "B"; - case NE: + case DIR_PP0: return "NE"; - case NW: + case DIR_MP0: return "NW"; - case SE: + case DIR_PM0: return "SE"; - case SW: + case DIR_MM0: return "SW"; - case TE: + case DIR_P0P: return "TE"; - case TW: + case DIR_M0P: return "TW"; - case BE: + case DIR_P0M: return "BE"; - case BW: + case DIR_M0M: return "BW"; - case TN: + case DIR_0PP: return "TN"; - case TS: + case DIR_0MP: return "TS"; - case BN: + case DIR_0PM: return "BN"; - case BS: + case DIR_0MM: return "BS"; - case TNE: + case DIR_PPP: return "TNE"; - case TNW: + case DIR_MPP: return "TNW"; - case TSE: + case DIR_PMP: return "TSE"; - case TSW: + case DIR_MMP: return "TSW"; - case BNE: + case DIR_PPM: return "BNE"; - case BNW: + case DIR_MPM: return "BNW"; - case BSE: + case DIR_PMM: return "BSE"; - case BSW: + case DIR_MMM: return "BSW"; default: return "Cell3DSystem::getDrectionString(...) - unknown dir"; @@ -275,108 +275,108 @@ inline std::string getDirectionString(int direction) static inline void setNeighborCoordinatesForDirection(int &x1, int &x2, int &x3, const int &direction) { switch (direction) { - case D3Q27System::E: + case D3Q27System::DIR_P00: x1++; break; - case D3Q27System::N: + case D3Q27System::DIR_0P0: x2++; break; - case D3Q27System::T: + case D3Q27System::DIR_00P: x3++; break; - case D3Q27System::W: + case D3Q27System::DIR_M00: x1--; break; - case D3Q27System::S: + case D3Q27System::DIR_0M0: x2--; break; - case D3Q27System::B: + case D3Q27System::DIR_00M: x3--; break; - case D3Q27System::NE: + case D3Q27System::DIR_PP0: x1++; x2++; break; - case D3Q27System::NW: + case D3Q27System::DIR_MP0: x1--; x2++; break; - case D3Q27System::SW: + case D3Q27System::DIR_MM0: x1--; x2--; break; - case D3Q27System::SE: + case D3Q27System::DIR_PM0: x1++; x2--; break; - case D3Q27System::TE: + case D3Q27System::DIR_P0P: x1++; x3++; break; - case D3Q27System::BW: + case D3Q27System::DIR_M0M: x1--; x3--; break; - case D3Q27System::BE: + case D3Q27System::DIR_P0M: x1++; x3--; break; - case D3Q27System::TW: + case D3Q27System::DIR_M0P: x1--; x3++; break; - case D3Q27System::TN: + case D3Q27System::DIR_0PP: x2++; x3++; break; - case D3Q27System::BS: + case D3Q27System::DIR_0MM: x2--; x3--; break; - case D3Q27System::BN: + case D3Q27System::DIR_0PM: x2++; x3--; break; - case D3Q27System::TS: + case D3Q27System::DIR_0MP: x2--; x3++; break; - case D3Q27System::TNE: + case D3Q27System::DIR_PPP: x1++; x2++; x3++; break; - case D3Q27System::TNW: + case D3Q27System::DIR_MPP: x1--; x2++; x3++; break; - case D3Q27System::TSE: + case D3Q27System::DIR_PMP: x1++; x2--; x3++; break; - case D3Q27System::TSW: + case D3Q27System::DIR_MMP: x1--; x2--; x3++; break; - case D3Q27System::BNE: + case D3Q27System::DIR_PPM: x1++; x2++; x3--; break; - case D3Q27System::BNW: + case D3Q27System::DIR_MPM: x1--; x2++; x3--; break; - case D3Q27System::BSE: + case D3Q27System::DIR_PMM: x1++; x2--; x3--; break; - case D3Q27System::BSW: + case D3Q27System::DIR_MMM: x1--; x2--; x3--; @@ -403,69 +403,69 @@ LBMReal getIncompVelocityX3(const LBMReal *const &f /*[27]*/); /*=====================================================================*/ static void calcDensity(const LBMReal *const &f /*[27]*/, LBMReal &rho) { - rho = ((f[TNE] + f[BSW]) + (f[TSE] + f[BNW])) + ((f[BSE] + f[TNW]) + (f[TSW] + f[BNE])) + - (((f[NE] + f[SW]) + (f[SE] + f[NW])) + ((f[TE] + f[BW]) + (f[BE] + f[TW])) + - ((f[BN] + f[TS]) + (f[TN] + f[BS]))) + - ((f[E] + f[W]) + (f[N] + f[S]) + (f[T] + f[B])) + f[DIR_000]; + rho = ((f[DIR_PPP] + f[DIR_MMM]) + (f[DIR_PMP] + f[DIR_MPM])) + ((f[DIR_PMM] + f[DIR_MPP]) + (f[DIR_MMP] + f[DIR_PPM])) + + (((f[DIR_PP0] + f[DIR_MM0]) + (f[DIR_PM0] + f[DIR_MP0])) + ((f[DIR_P0P] + f[DIR_M0M]) + (f[DIR_P0M] + f[DIR_M0P])) + + ((f[DIR_0PM] + f[DIR_0MP]) + (f[DIR_0PP] + f[DIR_0MM]))) + + ((f[DIR_P00] + f[DIR_M00]) + (f[DIR_0P0] + f[DIR_0M0]) + (f[DIR_00P] + f[DIR_00M])) + f[DIR_000]; } /*=====================================================================*/ static void calcIncompVelocityX1(const LBMReal *const &f /*[27]*/, LBMReal &vx1) { - vx1 = ((((f[TNE] - f[BSW]) + (f[TSE] - f[BNW])) + ((f[BSE] - f[TNW]) + (f[BNE] - f[TSW]))) + - (((f[BE] - f[TW]) + (f[TE] - f[BW])) + ((f[SE] - f[NW]) + (f[NE] - f[SW]))) + (f[E] - f[W])); + vx1 = ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_PMP] - f[DIR_MPM])) + ((f[DIR_PMM] - f[DIR_MPP]) + (f[DIR_PPM] - f[DIR_MMP]))) + + (((f[DIR_P0M] - f[DIR_M0P]) + (f[DIR_P0P] - f[DIR_M0M])) + ((f[DIR_PM0] - f[DIR_MP0]) + (f[DIR_PP0] - f[DIR_MM0]))) + (f[DIR_P00] - f[DIR_M00])); } /*=====================================================================*/ static void calcIncompVelocityX2(const LBMReal *const &f /*[27]*/, LBMReal &vx2) { - vx2 = ((((f[TNE] - f[BSW]) + (f[BNW] - f[TSE])) + ((f[TNW] - f[BSE]) + (f[BNE] - f[TSW]))) + - (((f[BN] - f[TS]) + (f[TN] - f[BS])) + ((f[NW] - f[SE]) + (f[NE] - f[SW]))) + (f[N] - f[S])); + vx2 = ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_MPM] - f[DIR_PMP])) + ((f[DIR_MPP] - f[DIR_PMM]) + (f[DIR_PPM] - f[DIR_MMP]))) + + (((f[DIR_0PM] - f[DIR_0MP]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_MP0] - f[DIR_PM0]) + (f[DIR_PP0] - f[DIR_MM0]))) + (f[DIR_0P0] - f[DIR_0M0])); } /*=====================================================================*/ static void calcIncompVelocityX3(const LBMReal *const &f /*[27]*/, LBMReal &vx3) { - vx3 = ((((f[TNE] - f[BSW]) + (f[TSE] - f[BNW])) + ((f[TNW] - f[BSE]) + (f[TSW] - f[BNE]))) + - (((f[TS] - f[BN]) + (f[TN] - f[BS])) + ((f[TW] - f[BE]) + (f[TE] - f[BW]))) + (f[T] - f[B])); + vx3 = ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_PMP] - f[DIR_MPM])) + ((f[DIR_MPP] - f[DIR_PMM]) + (f[DIR_MMP] - f[DIR_PPM]))) + + (((f[DIR_0MP] - f[DIR_0PM]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_M0P] - f[DIR_P0M]) + (f[DIR_P0P] - f[DIR_M0M]))) + (f[DIR_00P] - f[DIR_00M])); } /*=====================================================================*/ static LBMReal getCompVelocityX1(const LBMReal *const &f /*[27]*/) { - return ((((f[TNE] - f[BSW]) + (f[TSE] - f[BNW])) + ((f[BSE] - f[TNW]) + (f[BNE] - f[TSW]))) + - (((f[BE] - f[TW]) + (f[TE] - f[BW])) + ((f[SE] - f[NW]) + (f[NE] - f[SW]))) + (f[E] - f[W])) / + return ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_PMP] - f[DIR_MPM])) + ((f[DIR_PMM] - f[DIR_MPP]) + (f[DIR_PPM] - f[DIR_MMP]))) + + (((f[DIR_P0M] - f[DIR_M0P]) + (f[DIR_P0P] - f[DIR_M0M])) + ((f[DIR_PM0] - f[DIR_MP0]) + (f[DIR_PP0] - f[DIR_MM0]))) + (f[DIR_P00] - f[DIR_M00])) / getDensity(f); } /*=====================================================================*/ static LBMReal getCompVelocityX2(const LBMReal *const &f /*[27]*/) { - return ((((f[TNE] - f[BSW]) + (f[BNW] - f[TSE])) + ((f[TNW] - f[BSE]) + (f[BNE] - f[TSW]))) + - (((f[BN] - f[TS]) + (f[TN] - f[BS])) + ((f[NW] - f[SE]) + (f[NE] - f[SW]))) + (f[N] - f[S])) / + return ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_MPM] - f[DIR_PMP])) + ((f[DIR_MPP] - f[DIR_PMM]) + (f[DIR_PPM] - f[DIR_MMP]))) + + (((f[DIR_0PM] - f[DIR_0MP]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_MP0] - f[DIR_PM0]) + (f[DIR_PP0] - f[DIR_MM0]))) + (f[DIR_0P0] - f[DIR_0M0])) / getDensity(f); } /*=====================================================================*/ static LBMReal getCompVelocityX3(const LBMReal *const &f /*[27]*/) { - return ((((f[TNE] - f[BSW]) + (f[TSE] - f[BNW])) + ((f[TNW] - f[BSE]) + (f[TSW] - f[BNE]))) + - (((f[TS] - f[BN]) + (f[TN] - f[BS])) + ((f[TW] - f[BE]) + (f[TE] - f[BW]))) + (f[T] - f[B])) / + return ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_PMP] - f[DIR_MPM])) + ((f[DIR_MPP] - f[DIR_PMM]) + (f[DIR_MMP] - f[DIR_PPM]))) + + (((f[DIR_0MP] - f[DIR_0PM]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_M0P] - f[DIR_P0M]) + (f[DIR_P0P] - f[DIR_M0M]))) + (f[DIR_00P] - f[DIR_00M])) / getDensity(f); } /*=====================================================================*/ static void calcCompVelocityX1(const LBMReal *const &f /*[27]*/, LBMReal &vx1) { - vx1 = ((((f[TNE] - f[BSW]) + (f[TSE] - f[BNW])) + ((f[BSE] - f[TNW]) + (f[BNE] - f[TSW]))) + - (((f[BE] - f[TW]) + (f[TE] - f[BW])) + ((f[SE] - f[NW]) + (f[NE] - f[SW]))) + (f[E] - f[W])) / + vx1 = ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_PMP] - f[DIR_MPM])) + ((f[DIR_PMM] - f[DIR_MPP]) + (f[DIR_PPM] - f[DIR_MMP]))) + + (((f[DIR_P0M] - f[DIR_M0P]) + (f[DIR_P0P] - f[DIR_M0M])) + ((f[DIR_PM0] - f[DIR_MP0]) + (f[DIR_PP0] - f[DIR_MM0]))) + (f[DIR_P00] - f[DIR_M00])) / getDensity(f); } /*=====================================================================*/ static void calcCompVelocityX2(const LBMReal *const &f /*[27]*/, LBMReal &vx2) { - vx2 = ((((f[TNE] - f[BSW]) + (f[BNW] - f[TSE])) + ((f[TNW] - f[BSE]) + (f[BNE] - f[TSW]))) + - (((f[BN] - f[TS]) + (f[TN] - f[BS])) + ((f[NW] - f[SE]) + (f[NE] - f[SW]))) + (f[N] - f[S])) / + vx2 = ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_MPM] - f[DIR_PMP])) + ((f[DIR_MPP] - f[DIR_PMM]) + (f[DIR_PPM] - f[DIR_MMP]))) + + (((f[DIR_0PM] - f[DIR_0MP]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_MP0] - f[DIR_PM0]) + (f[DIR_PP0] - f[DIR_MM0]))) + (f[DIR_0P0] - f[DIR_0M0])) / getDensity(f); } /*=====================================================================*/ static void calcCompVelocityX3(const LBMReal *const &f /*[27]*/, LBMReal &vx3) { - vx3 = ((((f[TNE] - f[BSW]) + (f[TSE] - f[BNW])) + ((f[TNW] - f[BSE]) + (f[TSW] - f[BNE]))) + - (((f[TS] - f[BN]) + (f[TN] - f[BS])) + ((f[TW] - f[BE]) + (f[TE] - f[BW]))) + (f[T] - f[B])) / + vx3 = ((((f[DIR_PPP] - f[DIR_MMM]) + (f[DIR_PMP] - f[DIR_MPM])) + ((f[DIR_MPP] - f[DIR_PMM]) + (f[DIR_MMP] - f[DIR_PPM]))) + + (((f[DIR_0MP] - f[DIR_0PM]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_M0P] - f[DIR_P0M]) + (f[DIR_P0P] - f[DIR_M0M]))) + (f[DIR_00P] - f[DIR_00M])) / getDensity(f); } /*=====================================================================*/ @@ -500,83 +500,83 @@ static LBMReal getCompFeqForDirection(const int &direction, const LBMReal &drho, switch (direction) { case DIR_000: return REAL_CAST(UbMath::c8o27 * (drho + rho * (-cu_sq))); - case E: + case DIR_P00: return REAL_CAST(UbMath::c2o27 * (drho + rho * (3.0 * (vx1) + UbMath::c9o2 * (vx1) * (vx1)-cu_sq))); - case W: + case DIR_M00: return REAL_CAST(UbMath::c2o27 * (drho + rho * (3.0 * (-vx1) + UbMath::c9o2 * (-vx1) * (-vx1) - cu_sq))); - case N: + case DIR_0P0: return REAL_CAST(UbMath::c2o27 * (drho + rho * (3.0 * (vx2) + UbMath::c9o2 * (vx2) * (vx2)-cu_sq))); - case S: + case DIR_0M0: return REAL_CAST(UbMath::c2o27 * (drho + rho * (3.0 * (-vx2) + UbMath::c9o2 * (-vx2) * (-vx2) - cu_sq))); - case T: + case DIR_00P: return REAL_CAST(UbMath::c2o27 * (drho + rho * (3.0 * (vx3) + UbMath::c9o2 * (vx3) * (vx3)-cu_sq))); - case B: + case DIR_00M: return REAL_CAST(UbMath::c2o27 * (drho + rho * (3.0 * (-vx3) + UbMath::c9o2 * (-vx3) * (-vx3) - cu_sq))); - case NE: + case DIR_PP0: return REAL_CAST(UbMath::c1o54 * (drho + rho * (3.0 * (vx1 + vx2) + UbMath::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq))); - case SW: + case DIR_MM0: return REAL_CAST(UbMath::c1o54 * (drho + rho * (3.0 * (-vx1 - vx2) + UbMath::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq))); - case SE: + case DIR_PM0: return REAL_CAST(UbMath::c1o54 * (drho + rho * (3.0 * (vx1 - vx2) + UbMath::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq))); - case NW: + case DIR_MP0: return REAL_CAST(UbMath::c1o54 * (drho + rho * (3.0 * (-vx1 + vx2) + UbMath::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq))); - case TE: + case DIR_P0P: return REAL_CAST(UbMath::c1o54 * (drho + rho * (3.0 * (vx1 + vx3) + UbMath::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq))); - case BW: + case DIR_M0M: return REAL_CAST(UbMath::c1o54 * (drho + rho * (3.0 * (-vx1 - vx3) + UbMath::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq))); - case BE: + case DIR_P0M: return REAL_CAST(UbMath::c1o54 * (drho + rho * (3.0 * (vx1 - vx3) + UbMath::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq))); - case TW: + case DIR_M0P: return REAL_CAST(UbMath::c1o54 * (drho + rho * (3.0 * (-vx1 + vx3) + UbMath::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq))); - case TN: + case DIR_0PP: return REAL_CAST(UbMath::c1o54 * (drho + rho * (3.0 * (vx2 + vx3) + UbMath::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq))); - case BS: + case DIR_0MM: return REAL_CAST(UbMath::c1o54 * (drho + rho * (3.0 * (-vx2 - vx3) + UbMath::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq))); - case BN: + case DIR_0PM: return REAL_CAST(UbMath::c1o54 * (drho + rho * (3.0 * (vx2 - vx3) + UbMath::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq))); - case TS: + case DIR_0MP: return REAL_CAST(UbMath::c1o54 * (drho + rho * (3.0 * (-vx2 + vx3) + UbMath::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq))); - case TNE: + case DIR_PPP: return REAL_CAST(UbMath::c1o216 * (drho + rho * (3.0 * (vx1 + vx2 + vx3) + UbMath::c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq))); - case BSW: + case DIR_MMM: return REAL_CAST(UbMath::c1o216 * (drho + rho * (3.0 * (-vx1 - vx2 - vx3) + UbMath::c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq))); - case BNE: + case DIR_PPM: return REAL_CAST(UbMath::c1o216 * (drho + rho * (3.0 * (vx1 + vx2 - vx3) + UbMath::c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq))); - case TSW: + case DIR_MMP: return REAL_CAST(UbMath::c1o216 * (drho + rho * (3.0 * (-vx1 - vx2 + vx3) + UbMath::c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq))); - case TSE: + case DIR_PMP: return REAL_CAST(UbMath::c1o216 * (drho + rho * (3.0 * (vx1 - vx2 + vx3) + UbMath::c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq))); - case BNW: + case DIR_MPM: return REAL_CAST(UbMath::c1o216 * (drho + rho * (3.0 * (-vx1 + vx2 - vx3) + UbMath::c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq))); - case BSE: + case DIR_PMM: return REAL_CAST(UbMath::c1o216 * (drho + rho * (3.0 * (vx1 - vx2 - vx3) + UbMath::c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq))); - case TNW: + case DIR_MPP: return REAL_CAST(UbMath::c1o216 * (drho + rho * (3.0 * (-vx1 + vx2 + vx3) + UbMath::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq))); @@ -592,42 +592,42 @@ static void calcCompFeq(LBMReal *const &feq /*[27]*/, const LBMReal &drho, const LBMReal rho = drho + UbMath::one; feq[DIR_000] = UbMath::c8o27 * (drho + rho * (-cu_sq)); - feq[E] = UbMath::c2o27 * (drho + rho * (3.0 * (vx1) + UbMath::c9o2 * (vx1) * (vx1)-cu_sq)); - feq[W] = UbMath::c2o27 * (drho + rho * (3.0 * (-vx1) + UbMath::c9o2 * (-vx1) * (-vx1) - cu_sq)); - feq[N] = UbMath::c2o27 * (drho + rho * (3.0 * (vx2) + UbMath::c9o2 * (vx2) * (vx2)-cu_sq)); - feq[S] = UbMath::c2o27 * (drho + rho * (3.0 * (-vx2) + UbMath::c9o2 * (-vx2) * (-vx2) - cu_sq)); - feq[T] = UbMath::c2o27 * (drho + rho * (3.0 * (vx3) + UbMath::c9o2 * (vx3) * (vx3)-cu_sq)); - feq[B] = UbMath::c2o27 * (drho + rho * (3.0 * (-vx3) + UbMath::c9o2 * (-vx3) * (-vx3) - cu_sq)); - feq[NE] = UbMath::c1o54 * (drho + rho * (3.0 * (vx1 + vx2) + UbMath::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq)); - feq[SW] = UbMath::c1o54 * (drho + rho * (3.0 * (-vx1 - vx2) + UbMath::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq)); - feq[SE] = UbMath::c1o54 * (drho + rho * (3.0 * (vx1 - vx2) + UbMath::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq)); - feq[NW] = UbMath::c1o54 * (drho + rho * (3.0 * (-vx1 + vx2) + UbMath::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq)); - feq[TE] = UbMath::c1o54 * (drho + rho * (3.0 * (vx1 + vx3) + UbMath::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq)); - feq[BW] = UbMath::c1o54 * (drho + rho * (3.0 * (-vx1 - vx3) + UbMath::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq)); - feq[BE] = UbMath::c1o54 * (drho + rho * (3.0 * (vx1 - vx3) + UbMath::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq)); - feq[TW] = UbMath::c1o54 * (drho + rho * (3.0 * (-vx1 + vx3) + UbMath::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq)); - feq[TN] = UbMath::c1o54 * (drho + rho * (3.0 * (vx2 + vx3) + UbMath::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq)); - feq[BS] = UbMath::c1o54 * (drho + rho * (3.0 * (-vx2 - vx3) + UbMath::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq)); - feq[BN] = UbMath::c1o54 * (drho + rho * (3.0 * (vx2 - vx3) + UbMath::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq)); - feq[TS] = UbMath::c1o54 * (drho + rho * (3.0 * (-vx2 + vx3) + UbMath::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq)); - feq[TNE] = UbMath::c1o216 * + feq[DIR_P00] = UbMath::c2o27 * (drho + rho * (3.0 * (vx1) + UbMath::c9o2 * (vx1) * (vx1)-cu_sq)); + feq[DIR_M00] = UbMath::c2o27 * (drho + rho * (3.0 * (-vx1) + UbMath::c9o2 * (-vx1) * (-vx1) - cu_sq)); + feq[DIR_0P0] = UbMath::c2o27 * (drho + rho * (3.0 * (vx2) + UbMath::c9o2 * (vx2) * (vx2)-cu_sq)); + feq[DIR_0M0] = UbMath::c2o27 * (drho + rho * (3.0 * (-vx2) + UbMath::c9o2 * (-vx2) * (-vx2) - cu_sq)); + feq[DIR_00P] = UbMath::c2o27 * (drho + rho * (3.0 * (vx3) + UbMath::c9o2 * (vx3) * (vx3)-cu_sq)); + feq[DIR_00M] = UbMath::c2o27 * (drho + rho * (3.0 * (-vx3) + UbMath::c9o2 * (-vx3) * (-vx3) - cu_sq)); + feq[DIR_PP0] = UbMath::c1o54 * (drho + rho * (3.0 * (vx1 + vx2) + UbMath::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq)); + feq[DIR_MM0] = UbMath::c1o54 * (drho + rho * (3.0 * (-vx1 - vx2) + UbMath::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq)); + feq[DIR_PM0] = UbMath::c1o54 * (drho + rho * (3.0 * (vx1 - vx2) + UbMath::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq)); + feq[DIR_MP0] = UbMath::c1o54 * (drho + rho * (3.0 * (-vx1 + vx2) + UbMath::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq)); + feq[DIR_P0P] = UbMath::c1o54 * (drho + rho * (3.0 * (vx1 + vx3) + UbMath::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq)); + feq[DIR_M0M] = UbMath::c1o54 * (drho + rho * (3.0 * (-vx1 - vx3) + UbMath::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq)); + feq[DIR_P0M] = UbMath::c1o54 * (drho + rho * (3.0 * (vx1 - vx3) + UbMath::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq)); + feq[DIR_M0P] = UbMath::c1o54 * (drho + rho * (3.0 * (-vx1 + vx3) + UbMath::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq)); + feq[DIR_0PP] = UbMath::c1o54 * (drho + rho * (3.0 * (vx2 + vx3) + UbMath::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq)); + feq[DIR_0MM] = UbMath::c1o54 * (drho + rho * (3.0 * (-vx2 - vx3) + UbMath::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq)); + feq[DIR_0PM] = UbMath::c1o54 * (drho + rho * (3.0 * (vx2 - vx3) + UbMath::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq)); + feq[DIR_0MP] = UbMath::c1o54 * (drho + rho * (3.0 * (-vx2 + vx3) + UbMath::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq)); + feq[DIR_PPP] = UbMath::c1o216 * (drho + rho * (3.0 * (vx1 + vx2 + vx3) + UbMath::c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq)); - feq[BSW] = + feq[DIR_MMM] = UbMath::c1o216 * (drho + rho * (3.0 * (-vx1 - vx2 - vx3) + UbMath::c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq)); - feq[BNE] = UbMath::c1o216 * + feq[DIR_PPM] = UbMath::c1o216 * (drho + rho * (3.0 * (vx1 + vx2 - vx3) + UbMath::c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq)); - feq[TSW] = + feq[DIR_MMP] = UbMath::c1o216 * (drho + rho * (3.0 * (-vx1 - vx2 + vx3) + UbMath::c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq)); - feq[TSE] = UbMath::c1o216 * + feq[DIR_PMP] = UbMath::c1o216 * (drho + rho * (3.0 * (vx1 - vx2 + vx3) + UbMath::c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq)); - feq[BNW] = + feq[DIR_MPM] = UbMath::c1o216 * (drho + rho * (3.0 * (-vx1 + vx2 - vx3) + UbMath::c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq)); - feq[BSE] = UbMath::c1o216 * + feq[DIR_PMM] = UbMath::c1o216 * (drho + rho * (3.0 * (vx1 - vx2 - vx3) + UbMath::c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq)); - feq[TNW] = + feq[DIR_MPP] = UbMath::c1o216 * (drho + rho * (3.0 * (-vx1 + vx2 + vx3) + UbMath::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq)); } @@ -640,76 +640,76 @@ static LBMReal getIncompFeqForDirection(const int &direction, const LBMReal &drh switch (direction) { case DIR_000: return REAL_CAST(UbMath::c8o27 * (drho - cu_sq)); - case E: + case DIR_P00: return REAL_CAST(UbMath::c2o27 * (drho + 3.0 * (vx1) + UbMath::c9o2 * (vx1) * (vx1)-cu_sq)); - case W: + case DIR_M00: return REAL_CAST(UbMath::c2o27 * (drho + 3.0 * (-vx1) + UbMath::c9o2 * (-vx1) * (-vx1) - cu_sq)); - case N: + case DIR_0P0: return REAL_CAST(UbMath::c2o27 * (drho + 3.0 * (vx2) + UbMath::c9o2 * (vx2) * (vx2)-cu_sq)); - case S: + case DIR_0M0: return REAL_CAST(UbMath::c2o27 * (drho + 3.0 * (-vx2) + UbMath::c9o2 * (-vx2) * (-vx2) - cu_sq)); - case T: + case DIR_00P: return REAL_CAST(UbMath::c2o27 * (drho + 3.0 * (vx3) + UbMath::c9o2 * (vx3) * (vx3)-cu_sq)); - case B: + case DIR_00M: return REAL_CAST(UbMath::c2o27 * (drho + 3.0 * (-vx3) + UbMath::c9o2 * (-vx3) * (-vx3) - cu_sq)); - case NE: + case DIR_PP0: return REAL_CAST(UbMath::c1o54 * (drho + 3.0 * (vx1 + vx2) + UbMath::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq)); - case SW: + case DIR_MM0: return REAL_CAST(UbMath::c1o54 * (drho + 3.0 * (-vx1 - vx2) + UbMath::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq)); - case SE: + case DIR_PM0: return REAL_CAST(UbMath::c1o54 * (drho + 3.0 * (vx1 - vx2) + UbMath::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq)); - case NW: + case DIR_MP0: return REAL_CAST(UbMath::c1o54 * (drho + 3.0 * (-vx1 + vx2) + UbMath::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq)); - case TE: + case DIR_P0P: return REAL_CAST(UbMath::c1o54 * (drho + 3.0 * (vx1 + vx3) + UbMath::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq)); - case BW: + case DIR_M0M: return REAL_CAST(UbMath::c1o54 * (drho + 3.0 * (-vx1 - vx3) + UbMath::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq)); - case BE: + case DIR_P0M: return REAL_CAST(UbMath::c1o54 * (drho + 3.0 * (vx1 - vx3) + UbMath::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq)); - case TW: + case DIR_M0P: return REAL_CAST(UbMath::c1o54 * (drho + 3.0 * (-vx1 + vx3) + UbMath::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq)); - case TN: + case DIR_0PP: return REAL_CAST(UbMath::c1o54 * (drho + 3.0 * (vx2 + vx3) + UbMath::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq)); - case BS: + case DIR_0MM: return REAL_CAST(UbMath::c1o54 * (drho + 3.0 * (-vx2 - vx3) + UbMath::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq)); - case BN: + case DIR_0PM: return REAL_CAST(UbMath::c1o54 * (drho + 3.0 * (vx2 - vx3) + UbMath::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq)); - case TS: + case DIR_0MP: return REAL_CAST(UbMath::c1o54 * (drho + 3.0 * (-vx2 + vx3) + UbMath::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq)); - case TNE: + case DIR_PPP: return REAL_CAST(UbMath::c1o216 * (drho + 3.0 * (vx1 + vx2 + vx3) + UbMath::c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq)); - case BSW: + case DIR_MMM: return REAL_CAST(UbMath::c1o216 * (drho + 3.0 * (-vx1 - vx2 - vx3) + UbMath::c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq)); - case BNE: + case DIR_PPM: return REAL_CAST(UbMath::c1o216 * (drho + 3.0 * (vx1 + vx2 - vx3) + UbMath::c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq)); - case TSW: + case DIR_MMP: return REAL_CAST(UbMath::c1o216 * (drho + 3.0 * (-vx1 - vx2 + vx3) + UbMath::c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq)); - case TSE: + case DIR_PMP: return REAL_CAST(UbMath::c1o216 * (drho + 3.0 * (vx1 - vx2 + vx3) + UbMath::c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq)); - case BNW: + case DIR_MPM: return REAL_CAST(UbMath::c1o216 * (drho + 3.0 * (-vx1 + vx2 - vx3) + UbMath::c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq)); - case BSE: + case DIR_PMM: return REAL_CAST(UbMath::c1o216 * (drho + 3.0 * (vx1 - vx2 - vx3) + UbMath::c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq)); - case TNW: + case DIR_MPP: return REAL_CAST(UbMath::c1o216 * (drho + 3.0 * (-vx1 + vx2 + vx3) + UbMath::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq)); default: @@ -723,39 +723,39 @@ static void calcIncompFeq(LBMReal *const &feq /*[27]*/, const LBMReal &drho, con LBMReal cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); feq[DIR_000] = UbMath::c8o27 * (drho - cu_sq); - feq[E] = UbMath::c2o27 * (drho + 3.0 * (vx1) + UbMath::c9o2 * (vx1) * (vx1)-cu_sq); - feq[W] = UbMath::c2o27 * (drho + 3.0 * (-vx1) + UbMath::c9o2 * (-vx1) * (-vx1) - cu_sq); - feq[N] = UbMath::c2o27 * (drho + 3.0 * (vx2) + UbMath::c9o2 * (vx2) * (vx2)-cu_sq); - feq[S] = UbMath::c2o27 * (drho + 3.0 * (-vx2) + UbMath::c9o2 * (-vx2) * (-vx2) - cu_sq); - feq[T] = UbMath::c2o27 * (drho + 3.0 * (vx3) + UbMath::c9o2 * (vx3) * (vx3)-cu_sq); - feq[B] = UbMath::c2o27 * (drho + 3.0 * (-vx3) + UbMath::c9o2 * (-vx3) * (-vx3) - cu_sq); - feq[NE] = UbMath::c1o54 * (drho + 3.0 * (vx1 + vx2) + UbMath::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq); - feq[SW] = UbMath::c1o54 * (drho + 3.0 * (-vx1 - vx2) + UbMath::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq); - feq[SE] = UbMath::c1o54 * (drho + 3.0 * (vx1 - vx2) + UbMath::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq); - feq[NW] = UbMath::c1o54 * (drho + 3.0 * (-vx1 + vx2) + UbMath::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq); - feq[TE] = UbMath::c1o54 * (drho + 3.0 * (vx1 + vx3) + UbMath::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq); - feq[BW] = UbMath::c1o54 * (drho + 3.0 * (-vx1 - vx3) + UbMath::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq); - feq[BE] = UbMath::c1o54 * (drho + 3.0 * (vx1 - vx3) + UbMath::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq); - feq[TW] = UbMath::c1o54 * (drho + 3.0 * (-vx1 + vx3) + UbMath::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq); - feq[TN] = UbMath::c1o54 * (drho + 3.0 * (vx2 + vx3) + UbMath::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq); - feq[BS] = UbMath::c1o54 * (drho + 3.0 * (-vx2 - vx3) + UbMath::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq); - feq[BN] = UbMath::c1o54 * (drho + 3.0 * (vx2 - vx3) + UbMath::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq); - feq[TS] = UbMath::c1o54 * (drho + 3.0 * (-vx2 + vx3) + UbMath::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq); - feq[TNE] = UbMath::c1o216 * + feq[DIR_P00] = UbMath::c2o27 * (drho + 3.0 * (vx1) + UbMath::c9o2 * (vx1) * (vx1)-cu_sq); + feq[DIR_M00] = UbMath::c2o27 * (drho + 3.0 * (-vx1) + UbMath::c9o2 * (-vx1) * (-vx1) - cu_sq); + feq[DIR_0P0] = UbMath::c2o27 * (drho + 3.0 * (vx2) + UbMath::c9o2 * (vx2) * (vx2)-cu_sq); + feq[DIR_0M0] = UbMath::c2o27 * (drho + 3.0 * (-vx2) + UbMath::c9o2 * (-vx2) * (-vx2) - cu_sq); + feq[DIR_00P] = UbMath::c2o27 * (drho + 3.0 * (vx3) + UbMath::c9o2 * (vx3) * (vx3)-cu_sq); + feq[DIR_00M] = UbMath::c2o27 * (drho + 3.0 * (-vx3) + UbMath::c9o2 * (-vx3) * (-vx3) - cu_sq); + feq[DIR_PP0] = UbMath::c1o54 * (drho + 3.0 * (vx1 + vx2) + UbMath::c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq); + feq[DIR_MM0] = UbMath::c1o54 * (drho + 3.0 * (-vx1 - vx2) + UbMath::c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq); + feq[DIR_PM0] = UbMath::c1o54 * (drho + 3.0 * (vx1 - vx2) + UbMath::c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq); + feq[DIR_MP0] = UbMath::c1o54 * (drho + 3.0 * (-vx1 + vx2) + UbMath::c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq); + feq[DIR_P0P] = UbMath::c1o54 * (drho + 3.0 * (vx1 + vx3) + UbMath::c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq); + feq[DIR_M0M] = UbMath::c1o54 * (drho + 3.0 * (-vx1 - vx3) + UbMath::c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq); + feq[DIR_P0M] = UbMath::c1o54 * (drho + 3.0 * (vx1 - vx3) + UbMath::c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq); + feq[DIR_M0P] = UbMath::c1o54 * (drho + 3.0 * (-vx1 + vx3) + UbMath::c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq); + feq[DIR_0PP] = UbMath::c1o54 * (drho + 3.0 * (vx2 + vx3) + UbMath::c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq); + feq[DIR_0MM] = UbMath::c1o54 * (drho + 3.0 * (-vx2 - vx3) + UbMath::c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq); + feq[DIR_0PM] = UbMath::c1o54 * (drho + 3.0 * (vx2 - vx3) + UbMath::c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq); + feq[DIR_0MP] = UbMath::c1o54 * (drho + 3.0 * (-vx2 + vx3) + UbMath::c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq); + feq[DIR_PPP] = UbMath::c1o216 * (drho + 3.0 * (vx1 + vx2 + vx3) + UbMath::c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq); - feq[BSW] = UbMath::c1o216 * + feq[DIR_MMM] = UbMath::c1o216 * (drho + 3.0 * (-vx1 - vx2 - vx3) + UbMath::c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq); - feq[BNE] = UbMath::c1o216 * + feq[DIR_PPM] = UbMath::c1o216 * (drho + 3.0 * (vx1 + vx2 - vx3) + UbMath::c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq); - feq[TSW] = UbMath::c1o216 * + feq[DIR_MMP] = UbMath::c1o216 * (drho + 3.0 * (-vx1 - vx2 + vx3) + UbMath::c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq); - feq[TSE] = UbMath::c1o216 * + feq[DIR_PMP] = UbMath::c1o216 * (drho + 3.0 * (vx1 - vx2 + vx3) + UbMath::c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq); - feq[BNW] = UbMath::c1o216 * + feq[DIR_MPM] = UbMath::c1o216 * (drho + 3.0 * (-vx1 + vx2 - vx3) + UbMath::c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq); - feq[BSE] = UbMath::c1o216 * + feq[DIR_PMM] = UbMath::c1o216 * (drho + 3.0 * (vx1 - vx2 - vx3) + UbMath::c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq); - feq[TNW] = UbMath::c1o216 * + feq[DIR_MPP] = UbMath::c1o216 * (drho + 3.0 * (-vx1 + vx2 + vx3) + UbMath::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq); } ////////////////////////////////////////////////////////////////////////// @@ -763,57 +763,57 @@ static inline float getBoundaryVelocityForDirection(const int &direction, const const float &bcVelocityX2, const float &bcVelocityX3) { switch (direction) { - case E: + case DIR_P00: return (float)(UbMath::c4o9 * (+bcVelocityX1)); - case W: + case DIR_M00: return (float)(UbMath::c4o9 * (-bcVelocityX1)); - case N: + case DIR_0P0: return (float)(UbMath::c4o9 * (+bcVelocityX2)); - case S: + case DIR_0M0: return (float)(UbMath::c4o9 * (-bcVelocityX2)); - case T: + case DIR_00P: return (float)(UbMath::c4o9 * (+bcVelocityX3)); - case B: + case DIR_00M: return (float)(UbMath::c4o9 * (-bcVelocityX3)); - case NE: + case DIR_PP0: return (float)(UbMath::c1o9 * (+bcVelocityX1 + bcVelocityX2)); - case SW: + case DIR_MM0: return (float)(UbMath::c1o9 * (-bcVelocityX1 - bcVelocityX2)); - case SE: + case DIR_PM0: return (float)(UbMath::c1o9 * (+bcVelocityX1 - bcVelocityX2)); - case NW: + case DIR_MP0: return (float)(UbMath::c1o9 * (-bcVelocityX1 + bcVelocityX2)); - case TE: + case DIR_P0P: return (float)(UbMath::c1o9 * (+bcVelocityX1 + bcVelocityX3)); - case BW: + case DIR_M0M: return (float)(UbMath::c1o9 * (-bcVelocityX1 - bcVelocityX3)); - case BE: + case DIR_P0M: return (float)(UbMath::c1o9 * (+bcVelocityX1 - bcVelocityX3)); - case TW: + case DIR_M0P: return (float)(UbMath::c1o9 * (-bcVelocityX1 + bcVelocityX3)); - case TN: + case DIR_0PP: return (float)(UbMath::c1o9 * (+bcVelocityX2 + bcVelocityX3)); - case BS: + case DIR_0MM: return (float)(UbMath::c1o9 * (-bcVelocityX2 - bcVelocityX3)); - case BN: + case DIR_0PM: return (float)(UbMath::c1o9 * (+bcVelocityX2 - bcVelocityX3)); - case TS: + case DIR_0MP: return (float)(UbMath::c1o9 * (-bcVelocityX2 + bcVelocityX3)); - case TNE: + case DIR_PPP: return (float)(UbMath::c1o36 * (+bcVelocityX1 + bcVelocityX2 + bcVelocityX3)); - case BSW: + case DIR_MMM: return (float)(UbMath::c1o36 * (-bcVelocityX1 - bcVelocityX2 - bcVelocityX3)); - case BNE: + case DIR_PPM: return (float)(UbMath::c1o36 * (+bcVelocityX1 + bcVelocityX2 - bcVelocityX3)); - case TSW: + case DIR_MMP: return (float)(UbMath::c1o36 * (-bcVelocityX1 - bcVelocityX2 + bcVelocityX3)); - case TSE: + case DIR_PMP: return (float)(UbMath::c1o36 * (+bcVelocityX1 - bcVelocityX2 + bcVelocityX3)); - case BNW: + case DIR_MPM: return (float)(UbMath::c1o36 * (-bcVelocityX1 + bcVelocityX2 - bcVelocityX3)); - case BSE: + case DIR_PMM: return (float)(UbMath::c1o36 * (+bcVelocityX1 - bcVelocityX2 - bcVelocityX3)); - case TNW: + case DIR_MPP: return (float)(UbMath::c1o36 * (-bcVelocityX1 + bcVelocityX2 + bcVelocityX3)); default: throw UbException(UB_EXARGS, "unknown direction"); @@ -870,28 +870,28 @@ static inline void calcDistanceToNeighbors(std::vector<double> &distNeigh, const { // distNeigh.resize(FENDDIR+1, UbMath::sqrt2*deltaX1); - distNeigh[E] = distNeigh[W] = distNeigh[N] = deltaX1; - distNeigh[S] = distNeigh[T] = distNeigh[B] = deltaX1; - distNeigh[NE] = distNeigh[NW] = distNeigh[SW] = distNeigh[SE] = UbMath::sqrt2 * deltaX1; - distNeigh[TE] = distNeigh[TN] = distNeigh[TW] = distNeigh[TS] = UbMath::sqrt2 * deltaX1; - distNeigh[BE] = distNeigh[BN] = distNeigh[BW] = distNeigh[BS] = UbMath::sqrt2 * deltaX1; - distNeigh[TNE] = distNeigh[TNW] = distNeigh[TSE] = distNeigh[TSW] = UbMath::sqrt3 * deltaX1; - distNeigh[BNE] = distNeigh[BNW] = distNeigh[BSE] = distNeigh[BSW] = UbMath::sqrt3 * deltaX1; + distNeigh[DIR_P00] = distNeigh[DIR_M00] = distNeigh[DIR_0P0] = deltaX1; + distNeigh[DIR_0M0] = distNeigh[DIR_00P] = distNeigh[DIR_00M] = deltaX1; + distNeigh[DIR_PP0] = distNeigh[DIR_MP0] = distNeigh[DIR_MM0] = distNeigh[DIR_PM0] = UbMath::sqrt2 * deltaX1; + distNeigh[DIR_P0P] = distNeigh[DIR_0PP] = distNeigh[DIR_M0P] = distNeigh[DIR_0MP] = UbMath::sqrt2 * deltaX1; + distNeigh[DIR_P0M] = distNeigh[DIR_0PM] = distNeigh[DIR_M0M] = distNeigh[DIR_0MM] = UbMath::sqrt2 * deltaX1; + distNeigh[DIR_PPP] = distNeigh[DIR_MPP] = distNeigh[DIR_PMP] = distNeigh[DIR_MMP] = UbMath::sqrt3 * deltaX1; + distNeigh[DIR_PPM] = distNeigh[DIR_MPM] = distNeigh[DIR_PMM] = distNeigh[DIR_MMM] = UbMath::sqrt3 * deltaX1; } ////////////////////////////////////////////////////////////////////////// static inline void calcDistanceToNeighbors(std::vector<double> &distNeigh, const double &deltaX1, const double &deltaX2, const double &deltaX3) { // distNeigh.resize(FENDDIR+1, UbMath::sqrt2*deltaX1); - distNeigh[E] = distNeigh[W] = deltaX1; - distNeigh[N] = distNeigh[S] = deltaX2; - distNeigh[T] = distNeigh[B] = deltaX3; - distNeigh[NE] = distNeigh[NW] = distNeigh[SW] = distNeigh[SE] = sqrt(deltaX1 * deltaX1 + deltaX2 * deltaX2); - distNeigh[TE] = distNeigh[TN] = distNeigh[TW] = distNeigh[TS] = sqrt(deltaX1 * deltaX1 + deltaX3 * deltaX3); - distNeigh[BE] = distNeigh[BN] = distNeigh[BW] = distNeigh[BS] = sqrt(deltaX2 * deltaX2 + deltaX3 * deltaX3); - distNeigh[TNE] = distNeigh[TNW] = distNeigh[TSE] = distNeigh[TSW] = + distNeigh[DIR_P00] = distNeigh[DIR_M00] = deltaX1; + distNeigh[DIR_0P0] = distNeigh[DIR_0M0] = deltaX2; + distNeigh[DIR_00P] = distNeigh[DIR_00M] = deltaX3; + distNeigh[DIR_PP0] = distNeigh[DIR_MP0] = distNeigh[DIR_MM0] = distNeigh[DIR_PM0] = sqrt(deltaX1 * deltaX1 + deltaX2 * deltaX2); + distNeigh[DIR_P0P] = distNeigh[DIR_0PP] = distNeigh[DIR_M0P] = distNeigh[DIR_0MP] = sqrt(deltaX1 * deltaX1 + deltaX3 * deltaX3); + distNeigh[DIR_P0M] = distNeigh[DIR_0PM] = distNeigh[DIR_M0M] = distNeigh[DIR_0MM] = sqrt(deltaX2 * deltaX2 + deltaX3 * deltaX3); + distNeigh[DIR_PPP] = distNeigh[DIR_MPP] = distNeigh[DIR_PMP] = distNeigh[DIR_MMP] = sqrt(deltaX1 * deltaX1 + deltaX2 * deltaX2 + deltaX3 * deltaX3); - distNeigh[BNE] = distNeigh[BNW] = distNeigh[BSE] = distNeigh[BSW] = + distNeigh[DIR_PPM] = distNeigh[DIR_MPM] = distNeigh[DIR_PMM] = distNeigh[DIR_MMM] = sqrt(deltaX1 * deltaX1 + deltaX2 * deltaX2 + deltaX3 * deltaX3); } ////////////////////////////////////////////////////////////////////////// @@ -900,107 +900,107 @@ static inline void initRayVectors(double *const &rayX1, double *const &rayX2, do int fdir; double c1oS2 = UbMath::one_over_sqrt2; double c1oS3 = UbMath::one_over_sqrt3; - fdir = E; + fdir = DIR_P00; rayX1[fdir] = 1.0; rayX2[fdir] = 0.0; rayX3[fdir] = 0.0; - fdir = W; + fdir = DIR_M00; rayX1[fdir] = -1.0; rayX2[fdir] = 0.0; rayX3[fdir] = 0.0; - fdir = N; + fdir = DIR_0P0; rayX1[fdir] = 0.0; rayX2[fdir] = 1.0; rayX3[fdir] = 0.0; - fdir = S; + fdir = DIR_0M0; rayX1[fdir] = 0.0; rayX2[fdir] = -1.0; rayX3[fdir] = 0.0; - fdir = T; + fdir = DIR_00P; rayX1[fdir] = 0.0; rayX2[fdir] = 0.0; rayX3[fdir] = 1.0; - fdir = B; + fdir = DIR_00M; rayX1[fdir] = 0.0; rayX2[fdir] = 0.0; rayX3[fdir] = -1.0; - fdir = NE; + fdir = DIR_PP0; rayX1[fdir] = c1oS2; rayX2[fdir] = c1oS2; rayX3[fdir] = 0.0; - fdir = SW; + fdir = DIR_MM0; rayX1[fdir] = -c1oS2; rayX2[fdir] = -c1oS2; rayX3[fdir] = 0.0; - fdir = SE; + fdir = DIR_PM0; rayX1[fdir] = c1oS2; rayX2[fdir] = -c1oS2; rayX3[fdir] = 0.0; - fdir = NW; + fdir = DIR_MP0; rayX1[fdir] = -c1oS2; rayX2[fdir] = c1oS2; rayX3[fdir] = 0.0; - fdir = TE; + fdir = DIR_P0P; rayX1[fdir] = c1oS2; rayX2[fdir] = 0.0; rayX3[fdir] = c1oS2; - fdir = BW; + fdir = DIR_M0M; rayX1[fdir] = -c1oS2; rayX2[fdir] = 0.0; rayX3[fdir] = -c1oS2; - fdir = BE; + fdir = DIR_P0M; rayX1[fdir] = c1oS2; rayX2[fdir] = 0.0; rayX3[fdir] = -c1oS2; - fdir = TW; + fdir = DIR_M0P; rayX1[fdir] = -c1oS2; rayX2[fdir] = 0.0; rayX3[fdir] = c1oS2; - fdir = TN; + fdir = DIR_0PP; rayX1[fdir] = 0.0; rayX2[fdir] = c1oS2; rayX3[fdir] = c1oS2; - fdir = BS; + fdir = DIR_0MM; rayX1[fdir] = 0.0; rayX2[fdir] = -c1oS2; rayX3[fdir] = -c1oS2; - fdir = BN; + fdir = DIR_0PM; rayX1[fdir] = 0.0; rayX2[fdir] = c1oS2; rayX3[fdir] = -c1oS2; - fdir = TS; + fdir = DIR_0MP; rayX1[fdir] = 0.0; rayX2[fdir] = -c1oS2; rayX3[fdir] = c1oS2; - fdir = TNE; + fdir = DIR_PPP; rayX1[fdir] = c1oS3; rayX2[fdir] = c1oS3; rayX3[fdir] = c1oS3; - fdir = TNW; + fdir = DIR_MPP; rayX1[fdir] = -c1oS3; rayX2[fdir] = c1oS3; rayX3[fdir] = c1oS3; - fdir = TSE; + fdir = DIR_PMP; rayX1[fdir] = c1oS3; rayX2[fdir] = -c1oS3; rayX3[fdir] = c1oS3; - fdir = TSW; + fdir = DIR_MMP; rayX1[fdir] = -c1oS3; rayX2[fdir] = -c1oS3; rayX3[fdir] = c1oS3; - fdir = BNE; + fdir = DIR_PPM; rayX1[fdir] = c1oS3; rayX2[fdir] = c1oS3; rayX3[fdir] = -c1oS3; - fdir = BNW; + fdir = DIR_MPM; rayX1[fdir] = -c1oS3; rayX2[fdir] = c1oS3; rayX3[fdir] = -c1oS3; - fdir = BSE; + fdir = DIR_PMM; rayX1[fdir] = c1oS3; rayX2[fdir] = -c1oS3; rayX3[fdir] = -c1oS3; - fdir = BSW; + fdir = DIR_MMM; rayX1[fdir] = -c1oS3; rayX2[fdir] = -c1oS3; rayX3[fdir] = -c1oS3; @@ -1009,9 +1009,9 @@ static inline void initRayVectors(double *const &rayX1, double *const &rayX2, do static inline LBMReal calcPress(const LBMReal *const f, LBMReal rho, LBMReal vx1, LBMReal vx2, LBMReal vx3) { LBMReal op = 1.0; - return ((f[E] + f[W] + f[N] + f[S] + f[T] + f[B] + - 2. * (f[NE] + f[SW] + f[SE] + f[NW] + f[TE] + f[BW] + f[BE] + f[TW] + f[TN] + f[BS] + f[BN] + f[TS]) + - 3. * (f[TNE] + f[TSW] + f[TSE] + f[TNW] + f[BNE] + f[BSW] + f[BSE] + f[BNW]) - + return ((f[DIR_P00] + f[DIR_M00] + f[DIR_0P0] + f[DIR_0M0] + f[DIR_00P] + f[DIR_00M] + + 2. * (f[DIR_PP0] + f[DIR_MM0] + f[DIR_PM0] + f[DIR_MP0] + f[DIR_P0P] + f[DIR_M0M] + f[DIR_P0M] + f[DIR_M0P] + f[DIR_0PP] + f[DIR_0MM] + f[DIR_0PM] + f[DIR_0MP]) + + 3. * (f[DIR_PPP] + f[DIR_MMP] + f[DIR_PMP] + f[DIR_MPP] + f[DIR_PPM] + f[DIR_MMM] + f[DIR_PMM] + f[DIR_MPM]) - (vx1 * vx1 + vx2 * vx2 + vx3 * vx3)) * (1 - 0.5 * op) + op * 0.5 * (rho)) * @@ -1020,33 +1020,33 @@ static inline LBMReal calcPress(const LBMReal *const f, LBMReal rho, LBMReal vx1 ////////////////////////////////////////////////////////////////////////// static inline LBMReal getShearRate(const LBMReal *const f, LBMReal collFactorF) { - LBMReal mfcbb = f[E]; - LBMReal mfbcb = f[N]; - LBMReal mfbbc = f[T]; - LBMReal mfccb = f[NE]; - LBMReal mfacb = f[NW]; - LBMReal mfcbc = f[TE]; - LBMReal mfabc = f[TW]; - LBMReal mfbcc = f[TN]; - LBMReal mfbac = f[TS]; - LBMReal mfccc = f[TNE]; - LBMReal mfacc = f[TNW]; - LBMReal mfcac = f[TSE]; - LBMReal mfaac = f[TSW]; + LBMReal mfcbb = f[DIR_P00]; + LBMReal mfbcb = f[DIR_0P0]; + LBMReal mfbbc = f[DIR_00P]; + LBMReal mfccb = f[DIR_PP0]; + LBMReal mfacb = f[DIR_MP0]; + LBMReal mfcbc = f[DIR_P0P]; + LBMReal mfabc = f[DIR_M0P]; + LBMReal mfbcc = f[DIR_0PP]; + LBMReal mfbac = f[DIR_0MP]; + LBMReal mfccc = f[DIR_PPP]; + LBMReal mfacc = f[DIR_MPP]; + LBMReal mfcac = f[DIR_PMP]; + LBMReal mfaac = f[DIR_MMP]; - LBMReal mfabb = f[W]; - LBMReal mfbab = f[S]; - LBMReal mfbba = f[B]; - LBMReal mfaab = f[SW]; - LBMReal mfcab = f[SE]; - LBMReal mfaba = f[BW]; - LBMReal mfcba = f[BE]; - LBMReal mfbaa = f[BS]; - LBMReal mfbca = f[BN]; - LBMReal mfaaa = f[BSW]; - LBMReal mfcaa = f[BSE]; - LBMReal mfaca = f[BNW]; - LBMReal mfcca = f[BNE]; + LBMReal mfabb = f[DIR_M00]; + LBMReal mfbab = f[DIR_0M0]; + LBMReal mfbba = f[DIR_00M]; + LBMReal mfaab = f[DIR_MM0]; + LBMReal mfcab = f[DIR_PM0]; + LBMReal mfaba = f[DIR_M0M]; + LBMReal mfcba = f[DIR_P0M]; + LBMReal mfbaa = f[DIR_0MM]; + LBMReal mfbca = f[DIR_0PM]; + LBMReal mfaaa = f[DIR_MMM]; + LBMReal mfcaa = f[DIR_PMM]; + LBMReal mfaca = f[DIR_MPM]; + LBMReal mfcca = f[DIR_PPM]; LBMReal mfbbb = f[DIR_000]; @@ -1353,39 +1353,39 @@ static void calcMultiphaseFeq(LBMReal *const &feq /*[27]*/, const LBMReal &rho, LBMReal cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); feq[DIR_000] = c8o27 * (p1 + rho * c1o3 * (-cu_sq)); - feq[E] = c2o27 * (p1 + rho * c1o3 * (3.0 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq)); - feq[W] = c2o27 * (p1 + rho * c1o3 * (3.0 * (-vx1) + c9o2 * (-vx1) * (-vx1) - cu_sq)); - feq[N] = c2o27 * (p1 + rho * c1o3 * (3.0 * (vx2) + c9o2 * (vx2) * (vx2)-cu_sq)); - feq[S] = c2o27 * (p1 + rho * c1o3 * (3.0 * (-vx2) + c9o2 * (-vx2) * (-vx2) - cu_sq)); - feq[T] = c2o27 * (p1 + rho * c1o3 * (3.0 * (vx3) + c9o2 * (vx3) * (vx3)-cu_sq)); - feq[B] = c2o27 * (p1 + rho * c1o3 * (3.0 * (-vx3) + c9o2 * (-vx3) * (-vx3) - cu_sq)); - feq[NE] = c1o54 * (p1 + rho * c1o3 * (3.0 * (vx1 + vx2) + c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq)); - feq[SW] = c1o54 * (p1 + rho * c1o3 * (3.0 * (-vx1 - vx2) + c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq)); - feq[SE] = c1o54 * (p1 + rho * c1o3 * (3.0 * (vx1 - vx2) + c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq)); - feq[NW] = c1o54 * (p1 + rho * c1o3 * (3.0 * (-vx1 + vx2) + c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq)); - feq[TE] = c1o54 * (p1 + rho * c1o3 * (3.0 * (vx1 + vx3) + c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq)); - feq[BW] = c1o54 * (p1 + rho * c1o3 * (3.0 * (-vx1 - vx3) + c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq)); - feq[BE] = c1o54 * (p1 + rho * c1o3 * (3.0 * (vx1 - vx3) + c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq)); - feq[TW] = c1o54 * (p1 + rho * c1o3 * (3.0 * (-vx1 + vx3) + c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq)); - feq[TN] = c1o54 * (p1 + rho * c1o3 * (3.0 * (vx2 + vx3) + c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq)); - feq[BS] = c1o54 * (p1 + rho * c1o3 * (3.0 * (-vx2 - vx3) + c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq)); - feq[BN] = c1o54 * (p1 + rho * c1o3 * (3.0 * (vx2 - vx3) + c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq)); - feq[TS] = c1o54 * (p1 + rho * c1o3 * (3.0 * (-vx2 + vx3) + c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq)); - feq[TNE] = + feq[DIR_P00] = c2o27 * (p1 + rho * c1o3 * (3.0 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq)); + feq[DIR_M00] = c2o27 * (p1 + rho * c1o3 * (3.0 * (-vx1) + c9o2 * (-vx1) * (-vx1) - cu_sq)); + feq[DIR_0P0] = c2o27 * (p1 + rho * c1o3 * (3.0 * (vx2) + c9o2 * (vx2) * (vx2)-cu_sq)); + feq[DIR_0M0] = c2o27 * (p1 + rho * c1o3 * (3.0 * (-vx2) + c9o2 * (-vx2) * (-vx2) - cu_sq)); + feq[DIR_00P] = c2o27 * (p1 + rho * c1o3 * (3.0 * (vx3) + c9o2 * (vx3) * (vx3)-cu_sq)); + feq[DIR_00M] = c2o27 * (p1 + rho * c1o3 * (3.0 * (-vx3) + c9o2 * (-vx3) * (-vx3) - cu_sq)); + feq[DIR_PP0] = c1o54 * (p1 + rho * c1o3 * (3.0 * (vx1 + vx2) + c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq)); + feq[DIR_MM0] = c1o54 * (p1 + rho * c1o3 * (3.0 * (-vx1 - vx2) + c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq)); + feq[DIR_PM0] = c1o54 * (p1 + rho * c1o3 * (3.0 * (vx1 - vx2) + c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq)); + feq[DIR_MP0] = c1o54 * (p1 + rho * c1o3 * (3.0 * (-vx1 + vx2) + c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq)); + feq[DIR_P0P] = c1o54 * (p1 + rho * c1o3 * (3.0 * (vx1 + vx3) + c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq)); + feq[DIR_M0M] = c1o54 * (p1 + rho * c1o3 * (3.0 * (-vx1 - vx3) + c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq)); + feq[DIR_P0M] = c1o54 * (p1 + rho * c1o3 * (3.0 * (vx1 - vx3) + c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq)); + feq[DIR_M0P] = c1o54 * (p1 + rho * c1o3 * (3.0 * (-vx1 + vx3) + c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq)); + feq[DIR_0PP] = c1o54 * (p1 + rho * c1o3 * (3.0 * (vx2 + vx3) + c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq)); + feq[DIR_0MM] = c1o54 * (p1 + rho * c1o3 * (3.0 * (-vx2 - vx3) + c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq)); + feq[DIR_0PM] = c1o54 * (p1 + rho * c1o3 * (3.0 * (vx2 - vx3) + c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq)); + feq[DIR_0MP] = c1o54 * (p1 + rho * c1o3 * (3.0 * (-vx2 + vx3) + c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq)); + feq[DIR_PPP] = c1o216 * (p1 + rho * c1o3 * (3.0 * (vx1 + vx2 + vx3) + c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq)); - feq[BSW] = c1o216 * + feq[DIR_MMM] = c1o216 * (p1 + rho * c1o3 * (3.0 * (-vx1 - vx2 - vx3) + c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq)); - feq[BNE] = + feq[DIR_PPM] = c1o216 * (p1 + rho * c1o3 * (3.0 * (vx1 + vx2 - vx3) + c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq)); - feq[TSW] = c1o216 * + feq[DIR_MMP] = c1o216 * (p1 + rho * c1o3 * (3.0 * (-vx1 - vx2 + vx3) + c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq)); - feq[TSE] = + feq[DIR_PMP] = c1o216 * (p1 + rho * c1o3 * (3.0 * (vx1 - vx2 + vx3) + c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq)); - feq[BNW] = c1o216 * + feq[DIR_MPM] = c1o216 * (p1 + rho * c1o3 * (3.0 * (-vx1 + vx2 - vx3) + c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq)); - feq[BSE] = + feq[DIR_PMM] = c1o216 * (p1 + rho * c1o3 * (3.0 * (vx1 - vx2 - vx3) + c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq)); - feq[TNW] = c1o216 * + feq[DIR_MPP] = c1o216 * (p1 + rho * c1o3 * (3.0 * (-vx1 + vx2 + vx3) + c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq)); } ////////////////////////////////////////////////////////////////////////// @@ -1396,32 +1396,32 @@ static void calcMultiphaseFeqVB(LBMReal *const &feq /*[27]*/, const LBMReal &p1, LBMReal cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); feq[DIR_000] = p1 + c8o27 * (-cu_sq); - feq[E] = c2o27 * ((3.0 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq)); - feq[W] = c2o27 * ((3.0 * (-vx1) + c9o2 * (-vx1) * (-vx1) - cu_sq)); - feq[N] = c2o27 * ((3.0 * (vx2) + c9o2 * (vx2) * (vx2)-cu_sq)); - feq[S] = c2o27 * ((3.0 * (-vx2) + c9o2 * (-vx2) * (-vx2) - cu_sq)); - feq[T] = c2o27 * ((3.0 * (vx3) + c9o2 * (vx3) * (vx3)-cu_sq)); - feq[B] = c2o27 * ((3.0 * (-vx3) + c9o2 * (-vx3) * (-vx3) - cu_sq)); - feq[NE] = c1o54 * ((3.0 * (vx1 + vx2) + c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq)); - feq[SW] = c1o54 * ((3.0 * (-vx1 - vx2) + c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq)); - feq[SE] = c1o54 * ((3.0 * (vx1 - vx2) + c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq)); - feq[NW] = c1o54 * ((3.0 * (-vx1 + vx2) + c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq)); - feq[TE] = c1o54 * ((3.0 * (vx1 + vx3) + c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq)); - feq[BW] = c1o54 * ((3.0 * (-vx1 - vx3) + c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq)); - feq[BE] = c1o54 * ((3.0 * (vx1 - vx3) + c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq)); - feq[TW] = c1o54 * ((3.0 * (-vx1 + vx3) + c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq)); - feq[TN] = c1o54 * ((3.0 * (vx2 + vx3) + c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq)); - feq[BS] = c1o54 * ((3.0 * (-vx2 - vx3) + c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq)); - feq[BN] = c1o54 * ((3.0 * (vx2 - vx3) + c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq)); - feq[TS] = c1o54 * ((3.0 * (-vx2 + vx3) + c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq)); - feq[TNE] = c1o216 * ((3.0 * (vx1 + vx2 + vx3) + c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq)); - feq[BSW] = c1o216 * ((3.0 * (-vx1 - vx2 - vx3) + c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq)); - feq[BNE] = c1o216 * ((3.0 * (vx1 + vx2 - vx3) + c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq)); - feq[TSW] = c1o216 * ((3.0 * (-vx1 - vx2 + vx3) + c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq)); - feq[TSE] = c1o216 * ((3.0 * (vx1 - vx2 + vx3) + c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq)); - feq[BNW] = c1o216 * ((3.0 * (-vx1 + vx2 - vx3) + c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq)); - feq[BSE] = c1o216 * ((3.0 * (vx1 - vx2 - vx3) + c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq)); - feq[TNW] = c1o216 * ((3.0 * (-vx1 + vx2 + vx3) + c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq)); + feq[DIR_P00] = c2o27 * ((3.0 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq)); + feq[DIR_M00] = c2o27 * ((3.0 * (-vx1) + c9o2 * (-vx1) * (-vx1) - cu_sq)); + feq[DIR_0P0] = c2o27 * ((3.0 * (vx2) + c9o2 * (vx2) * (vx2)-cu_sq)); + feq[DIR_0M0] = c2o27 * ((3.0 * (-vx2) + c9o2 * (-vx2) * (-vx2) - cu_sq)); + feq[DIR_00P] = c2o27 * ((3.0 * (vx3) + c9o2 * (vx3) * (vx3)-cu_sq)); + feq[DIR_00M] = c2o27 * ((3.0 * (-vx3) + c9o2 * (-vx3) * (-vx3) - cu_sq)); + feq[DIR_PP0] = c1o54 * ((3.0 * (vx1 + vx2) + c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq)); + feq[DIR_MM0] = c1o54 * ((3.0 * (-vx1 - vx2) + c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq)); + feq[DIR_PM0] = c1o54 * ((3.0 * (vx1 - vx2) + c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq)); + feq[DIR_MP0] = c1o54 * ((3.0 * (-vx1 + vx2) + c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq)); + feq[DIR_P0P] = c1o54 * ((3.0 * (vx1 + vx3) + c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq)); + feq[DIR_M0M] = c1o54 * ((3.0 * (-vx1 - vx3) + c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq)); + feq[DIR_P0M] = c1o54 * ((3.0 * (vx1 - vx3) + c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq)); + feq[DIR_M0P] = c1o54 * ((3.0 * (-vx1 + vx3) + c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq)); + feq[DIR_0PP] = c1o54 * ((3.0 * (vx2 + vx3) + c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq)); + feq[DIR_0MM] = c1o54 * ((3.0 * (-vx2 - vx3) + c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq)); + feq[DIR_0PM] = c1o54 * ((3.0 * (vx2 - vx3) + c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq)); + feq[DIR_0MP] = c1o54 * ((3.0 * (-vx2 + vx3) + c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq)); + feq[DIR_PPP] = c1o216 * ((3.0 * (vx1 + vx2 + vx3) + c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq)); + feq[DIR_MMM] = c1o216 * ((3.0 * (-vx1 - vx2 - vx3) + c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq)); + feq[DIR_PPM] = c1o216 * ((3.0 * (vx1 + vx2 - vx3) + c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq)); + feq[DIR_MMP] = c1o216 * ((3.0 * (-vx1 - vx2 + vx3) + c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq)); + feq[DIR_PMP] = c1o216 * ((3.0 * (vx1 - vx2 + vx3) + c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq)); + feq[DIR_MPM] = c1o216 * ((3.0 * (-vx1 + vx2 - vx3) + c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq)); + feq[DIR_PMM] = c1o216 * ((3.0 * (vx1 - vx2 - vx3) + c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq)); + feq[DIR_MPP] = c1o216 * ((3.0 * (-vx1 + vx2 + vx3) + c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq)); } ////////////////////////////////////////////////////////////////////////// static void calcMultiphaseHeq(LBMReal *const &heq /*[27]*/, const LBMReal &phi, const LBMReal &vx1, const LBMReal &vx2, @@ -1431,32 +1431,32 @@ static void calcMultiphaseHeq(LBMReal *const &heq /*[27]*/, const LBMReal &phi, LBMReal cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); heq[DIR_000] = c8o27 * phi * (1.0 - cu_sq); - heq[E] = c2o27 * phi * (1.0 + 3.0 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq); - heq[W] = c2o27 * phi * (1.0 + 3.0 * (-vx1) + c9o2 * (-vx1) * (-vx1) - cu_sq); - heq[N] = c2o27 * phi * (1.0 + 3.0 * (vx2) + c9o2 * (vx2) * (vx2)-cu_sq); - heq[S] = c2o27 * phi * (1.0 + 3.0 * (-vx2) + c9o2 * (-vx2) * (-vx2) - cu_sq); - heq[T] = c2o27 * phi * (1.0 + 3.0 * (vx3) + c9o2 * (vx3) * (vx3)-cu_sq); - heq[B] = c2o27 * phi * (1.0 + 3.0 * (-vx3) + c9o2 * (-vx3) * (-vx3) - cu_sq); - heq[NE] = c1o54 * phi * (1.0 + 3.0 * (vx1 + vx2) + c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq); - heq[SW] = c1o54 * phi * (1.0 + 3.0 * (-vx1 - vx2) + c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq); - heq[SE] = c1o54 * phi * (1.0 + 3.0 * (vx1 - vx2) + c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq); - heq[NW] = c1o54 * phi * (1.0 + 3.0 * (-vx1 + vx2) + c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq); - heq[TE] = c1o54 * phi * (1.0 + 3.0 * (vx1 + vx3) + c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq); - heq[BW] = c1o54 * phi * (1.0 + 3.0 * (-vx1 - vx3) + c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq); - heq[BE] = c1o54 * phi * (1.0 + 3.0 * (vx1 - vx3) + c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq); - heq[TW] = c1o54 * phi * (1.0 + 3.0 * (-vx1 + vx3) + c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq); - heq[TN] = c1o54 * phi * (1.0 + 3.0 * (vx2 + vx3) + c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq); - heq[BS] = c1o54 * phi * (1.0 + 3.0 * (-vx2 - vx3) + c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq); - heq[BN] = c1o54 * phi * (1.0 + 3.0 * (vx2 - vx3) + c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq); - heq[TS] = c1o54 * phi * (1.0 + 3.0 * (-vx2 + vx3) + c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq); - heq[TNE] = c1o216 * phi * (1.0 + 3.0 * (vx1 + vx2 + vx3) + c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq); - heq[BSW] = c1o216 * phi * (1.0 + 3.0 * (-vx1 - vx2 - vx3) + c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq); - heq[BNE] = c1o216 * phi * (1.0 + 3.0 * (vx1 + vx2 - vx3) + c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq); - heq[TSW] = c1o216 * phi * (1.0 + 3.0 * (-vx1 - vx2 + vx3) + c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq); - heq[TSE] = c1o216 * phi * (1.0 + 3.0 * (vx1 - vx2 + vx3) + c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq); - heq[BNW] = c1o216 * phi * (1.0 + 3.0 * (-vx1 + vx2 - vx3) + c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq); - heq[BSE] = c1o216 * phi * (1.0 + 3.0 * (vx1 - vx2 - vx3) + c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq); - heq[TNW] = c1o216 * phi * (1.0 + 3.0 * (-vx1 + vx2 + vx3) + c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq); + heq[DIR_P00] = c2o27 * phi * (1.0 + 3.0 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq); + heq[DIR_M00] = c2o27 * phi * (1.0 + 3.0 * (-vx1) + c9o2 * (-vx1) * (-vx1) - cu_sq); + heq[DIR_0P0] = c2o27 * phi * (1.0 + 3.0 * (vx2) + c9o2 * (vx2) * (vx2)-cu_sq); + heq[DIR_0M0] = c2o27 * phi * (1.0 + 3.0 * (-vx2) + c9o2 * (-vx2) * (-vx2) - cu_sq); + heq[DIR_00P] = c2o27 * phi * (1.0 + 3.0 * (vx3) + c9o2 * (vx3) * (vx3)-cu_sq); + heq[DIR_00M] = c2o27 * phi * (1.0 + 3.0 * (-vx3) + c9o2 * (-vx3) * (-vx3) - cu_sq); + heq[DIR_PP0] = c1o54 * phi * (1.0 + 3.0 * (vx1 + vx2) + c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq); + heq[DIR_MM0] = c1o54 * phi * (1.0 + 3.0 * (-vx1 - vx2) + c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq); + heq[DIR_PM0] = c1o54 * phi * (1.0 + 3.0 * (vx1 - vx2) + c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq); + heq[DIR_MP0] = c1o54 * phi * (1.0 + 3.0 * (-vx1 + vx2) + c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq); + heq[DIR_P0P] = c1o54 * phi * (1.0 + 3.0 * (vx1 + vx3) + c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq); + heq[DIR_M0M] = c1o54 * phi * (1.0 + 3.0 * (-vx1 - vx3) + c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq); + heq[DIR_P0M] = c1o54 * phi * (1.0 + 3.0 * (vx1 - vx3) + c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq); + heq[DIR_M0P] = c1o54 * phi * (1.0 + 3.0 * (-vx1 + vx3) + c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq); + heq[DIR_0PP] = c1o54 * phi * (1.0 + 3.0 * (vx2 + vx3) + c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq); + heq[DIR_0MM] = c1o54 * phi * (1.0 + 3.0 * (-vx2 - vx3) + c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq); + heq[DIR_0PM] = c1o54 * phi * (1.0 + 3.0 * (vx2 - vx3) + c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq); + heq[DIR_0MP] = c1o54 * phi * (1.0 + 3.0 * (-vx2 + vx3) + c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq); + heq[DIR_PPP] = c1o216 * phi * (1.0 + 3.0 * (vx1 + vx2 + vx3) + c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq); + heq[DIR_MMM] = c1o216 * phi * (1.0 + 3.0 * (-vx1 - vx2 - vx3) + c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq); + heq[DIR_PPM] = c1o216 * phi * (1.0 + 3.0 * (vx1 + vx2 - vx3) + c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq); + heq[DIR_MMP] = c1o216 * phi * (1.0 + 3.0 * (-vx1 - vx2 + vx3) + c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq); + heq[DIR_PMP] = c1o216 * phi * (1.0 + 3.0 * (vx1 - vx2 + vx3) + c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq); + heq[DIR_MPM] = c1o216 * phi * (1.0 + 3.0 * (-vx1 + vx2 - vx3) + c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq); + heq[DIR_PMM] = c1o216 * phi * (1.0 + 3.0 * (vx1 - vx2 - vx3) + c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq); + heq[DIR_MPP] = c1o216 * phi * (1.0 + 3.0 * (-vx1 + vx2 + vx3) + c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq); } } // namespace D3Q27System diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp index 089b505a5f5d357e378c1e556caeffc3e51bc411..90bc1998454e980c86054934222b251699f1412a 100644 --- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp @@ -68,37 +68,37 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::initRelaxFactor(int vdir, d { switch (direction) { - case D3Q27System::E: + case D3Q27System::DIR_P00: muX1 = (double)(x1 + ix1 * maxX1); if (muX1 >= (sizeX - sizeSP) / deltaT) spongeFactor = (sizeX - (muX1 * deltaT + 1)) / sizeSP / 2.0 + 0.5; else spongeFactor = 1.0; break; - case D3Q27System::W: + case D3Q27System::DIR_M00: muX1 = (double)(x1 + ix1 * maxX1); if (muX1 <= sizeSP / deltaT) spongeFactor = (sizeSP - (muX1 * deltaT + 1)) / sizeSP / 2.0 + 0.5; else spongeFactor = 1.0; break; - case D3Q27System::N: + case D3Q27System::DIR_0P0: muX2 = (double)(x2 + ix2 * maxX2); if (muX2 >= (sizeX - sizeSP) / deltaT) spongeFactor = (sizeX - (muX2 * deltaT + 1)) / sizeSP / 2.0 + 0.5; else spongeFactor = 1.0; break; - case D3Q27System::S: + case D3Q27System::DIR_0M0: muX2 = (double)(x2 + ix2 * maxX2); if (muX2 <= sizeSP / deltaT) spongeFactor = (sizeSP - (muX2 * deltaT + 1)) / sizeSP / 2.0 + 0.5; else spongeFactor = 1.0; break; - case D3Q27System::T: + case D3Q27System::DIR_00P: muX3 = (double)(x3 + ix3 * maxX3); if (muX3 >= (sizeX - sizeSP) / deltaT) spongeFactor = (sizeX - (muX3 * deltaT + 1)) / sizeSP / 2.0 + 0.5; else spongeFactor = 1.0; break; - case D3Q27System::B: + case D3Q27System::DIR_00M: muX3 = (double)(x3 + ix3 * maxX3); if (muX3 <= sizeSP / deltaT) spongeFactor = (sizeSP - (muX3 * deltaT + 1)) / sizeSP / 2.0 + 0.5; diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.cpp index b4ccea0c996ba29d099ca831d6b2b2bad9ade52e..2d8f7184301dfa55184f2b4e578a90fef2b07733 100644 --- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.cpp @@ -61,7 +61,7 @@ void IncompressibleOffsetInterpolationProcessor::calcMoments(const LBMReal* cons { using namespace D3Q27System; - //UBLOG(logINFO,"D3Q27System::BW = " << D3Q27System::BW); + //UBLOG(logINFO,"D3Q27System::DIR_M0M = " << D3Q27System::DIR_M0M); //UBLOG(logINFO,"BW = " << BW); LBMReal rho = 0.0; @@ -82,14 +82,14 @@ void IncompressibleOffsetInterpolationProcessor::calcMoments(const LBMReal* cons //press = D3Q27System::calcPress(f,rho,vx1,vx2,vx3); press = rho; //interpolate rho! - kxy = -3.*omega*((((f[TSW]+f[BNE])-(f[TNW]+f[BSE]))+((f[BSW]+f[TNE])-(f[BNW]+f[TSE])))+((f[SW]+f[NE])-(f[NW]+f[SE]))-(vx1*vx2));// might not be optimal MG 25.2.13 - kyz = -3.*omega*((((f[BSW]+f[TNE])-(f[TSE]+f[BNW]))+((f[BSE]+f[TNW])-(f[TSW]+f[BNE])))+((f[BS]+f[TN])-(f[TS]+f[BN]))-(vx2*vx3)); - kxz = -3.*omega*((((f[BNW]+f[TSE])-(f[TSW]+f[BNE]))+((f[BSW]+f[TNE])-(f[BSE]+f[TNW])))+((f[BW]+f[TE])-(f[TW]+f[BE]))-(vx1*vx3)); - kxxMyy = -3./2.*omega*((((f[D3Q27System::BW]+f[TE])-(f[BS]+f[TN]))+((f[TW]+f[BE])-(f[TS]+f[BN])))+((f[W]+f[E])-(f[S]+f[N]))-(vx1*vx1-vx2*vx2)); - kxxMzz = -3./2.*omega*((((f[NW]+f[SE])-(f[BS]+f[TN]))+((f[SW]+f[NE])-(f[TS]+f[BN])))+((f[W]+f[E])-(f[B]+f[T]))-(vx1*vx1-vx3*vx3)); - //kxxMzz = -3./2.*omega*(((((f[NW]+f[SE])-(f[BS]+f[TN]))+((f[SW]+f[NE])-(f[17]+f[BN])))+((f[W]+f[E])-(f[B]+f[T])))-(vx1*vx1-vx3*vx3)); + kxy = -3.*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[NE])-(f[DIR_MP0]+f[DIR_PM0]))-(vx1*vx2));// might not be optimal MG 25.2.13 + kyz = -3.*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))-(vx2*vx3)); + kxz = -3.*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))-(vx1*vx3)); + kxxMyy = -3./2.*omega*((((f[D3Q27System::DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[W]+f[DIR_P00])-(f[S]+f[N]))-(vx1*vx1-vx2*vx2)); + kxxMzz = -3./2.*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[NE])-(f[DIR_0MP]+f[DIR_0PM])))+((f[W]+f[DIR_P00])-(f[B]+f[T]))-(vx1*vx1-vx3*vx3)); + //kxxMzz = -3./2.*omega*(((((f[NW]+f[SE])-(f[BS]+f[TN]))+((f[SW]+f[NE])-(f[17]+f[BN])))+((f[W]+f[DIR_P00])-(f[B]+f[T])))-(vx1*vx1-vx3*vx3)); - //UBLOG(logINFO, "t1 = "<<(((f[NW]+f[SE])-(f[BS]+f[TN]))+((f[SW]+f[NE])-(f[17]+f[BN])))+((f[W]+f[E])-(f[B]+f[T]))); + //UBLOG(logINFO, "t1 = "<<(((f[NW]+f[SE])-(f[BS]+f[TN]))+((f[SW]+f[NE])-(f[17]+f[BN])))+((f[W]+f[DIR_P00])-(f[B]+f[T]))); //UBLOG(logINFO, "kxxMzz = "<<kxxMzz); //UBLOG(logINFO,"f[BW] = " << f[BW] << " BW = " << BW); @@ -543,32 +543,32 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNode(LBMReal* f LBMReal feq[ENDF+1]; D3Q27System::calcIncompFeq(feq,rho,vx1,vx2,vx3); - f[E] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[E]; + f[DIR_P00] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[DIR_P00]; f[W] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[W]; f[N] = f_N + xs*x_N + ys*y_N + zs*z_N + xs*ys*xy_N + xs*zs*xz_N + ys*zs*yz_N + feq[N]; f[S] = f_N + xs*x_N + ys*y_N + zs*z_N + xs*ys*xy_N + xs*zs*xz_N + ys*zs*yz_N + feq[S]; f[T] = f_T + xs*x_T + ys*y_T + zs*z_T + xs*ys*xy_T + xs*zs*xz_T + ys*zs*yz_T + feq[T]; f[B] = f_T + xs*x_T + ys*y_T + zs*z_T + xs*ys*xy_T + xs*zs*xz_T + ys*zs*yz_T + feq[B]; f[NE] = f_NE + xs*x_NE + ys*y_NE + zs*z_NE + xs*ys*xy_NE + xs*zs*xz_NE + ys*zs*yz_NE + feq[NE]; - f[SW] = f_NE + xs*x_NE + ys*y_NE + zs*z_NE + xs*ys*xy_NE + xs*zs*xz_NE + ys*zs*yz_NE + feq[SW]; - f[SE] = f_SE + xs*x_SE + ys*y_SE + zs*z_SE + xs*ys*xy_SE + xs*zs*xz_SE + ys*zs*yz_SE + feq[SE]; - f[NW] = f_SE + xs*x_SE + ys*y_SE + zs*z_SE + xs*ys*xy_SE + xs*zs*xz_SE + ys*zs*yz_SE + feq[NW]; - f[TE] = f_TE + xs*x_TE + ys*y_TE + zs*z_TE + xs*ys*xy_TE + xs*zs*xz_TE + ys*zs*yz_TE + feq[TE]; - f[BW] = f_TE + xs*x_TE + ys*y_TE + zs*z_TE + xs*ys*xy_TE + xs*zs*xz_TE + ys*zs*yz_TE + feq[BW]; - f[BE] = f_BE + xs*x_BE + ys*y_BE + zs*z_BE + xs*ys*xy_BE + xs*zs*xz_BE + ys*zs*yz_BE + feq[BE]; - f[TW] = f_BE + xs*x_BE + ys*y_BE + zs*z_BE + xs*ys*xy_BE + xs*zs*xz_BE + ys*zs*yz_BE + feq[TW]; - f[TN] = f_TN + xs*x_TN + ys*y_TN + zs*z_TN + xs*ys*xy_TN + xs*zs*xz_TN + ys*zs*yz_TN + feq[TN]; - f[BS] = f_TN + xs*x_TN + ys*y_TN + zs*z_TN + xs*ys*xy_TN + xs*zs*xz_TN + ys*zs*yz_TN + feq[BS]; - f[BN] = f_BN + xs*x_BN + ys*y_BN + zs*z_BN + xs*ys*xy_BN + xs*zs*xz_BN + ys*zs*yz_BN + feq[BN]; - f[TS] = f_BN + xs*x_BN + ys*y_BN + zs*z_BN + xs*ys*xy_BN + xs*zs*xz_BN + ys*zs*yz_BN + feq[TS]; - f[TNE] = f_TNE + xs*x_TNE + ys*y_TNE + zs*z_TNE + xs*ys*xy_TNE + xs*zs*xz_TNE + ys*zs*yz_TNE + feq[TNE]; - f[TSW] = f_TSW + xs*x_TSW + ys*y_TSW + zs*z_TSW + xs*ys*xy_TSW + xs*zs*xz_TSW + ys*zs*yz_TSW + feq[TSW]; - f[TSE] = f_TSE + xs*x_TSE + ys*y_TSE + zs*z_TSE + xs*ys*xy_TSE + xs*zs*xz_TSE + ys*zs*yz_TSE + feq[TSE]; - f[TNW] = f_TNW + xs*x_TNW + ys*y_TNW + zs*z_TNW + xs*ys*xy_TNW + xs*zs*xz_TNW + ys*zs*yz_TNW + feq[TNW]; - f[BNE] = f_TSW + xs*x_TSW + ys*y_TSW + zs*z_TSW + xs*ys*xy_TSW + xs*zs*xz_TSW + ys*zs*yz_TSW + feq[BNE]; - f[BSW] = f_TNE + xs*x_TNE + ys*y_TNE + zs*z_TNE + xs*ys*xy_TNE + xs*zs*xz_TNE + ys*zs*yz_TNE + feq[BSW]; - f[BSE] = f_TNW + xs*x_TNW + ys*y_TNW + zs*z_TNW + xs*ys*xy_TNW + xs*zs*xz_TNW + ys*zs*yz_TNW + feq[BSE]; - f[BNW] = f_TSE + xs*x_TSE + ys*y_TSE + zs*z_TSE + xs*ys*xy_TSE + xs*zs*xz_TSE + ys*zs*yz_TSE + feq[BNW]; + f[DIR_MM0] = f_NE + xs*x_NE + ys*y_NE + zs*z_NE + xs*ys*xy_NE + xs*zs*xz_NE + ys*zs*yz_NE + feq[DIR_MM0]; + f[DIR_PM0] = f_SE + xs*x_SE + ys*y_SE + zs*z_SE + xs*ys*xy_SE + xs*zs*xz_SE + ys*zs*yz_SE + feq[DIR_PM0]; + f[DIR_MP0] = f_SE + xs*x_SE + ys*y_SE + zs*z_SE + xs*ys*xy_SE + xs*zs*xz_SE + ys*zs*yz_SE + feq[DIR_MP0]; + f[DIR_P0P] = f_TE + xs*x_TE + ys*y_TE + zs*z_TE + xs*ys*xy_TE + xs*zs*xz_TE + ys*zs*yz_TE + feq[DIR_P0P]; + f[DIR_M0M] = f_TE + xs*x_TE + ys*y_TE + zs*z_TE + xs*ys*xy_TE + xs*zs*xz_TE + ys*zs*yz_TE + feq[DIR_M0M]; + f[DIR_P0M] = f_BE + xs*x_BE + ys*y_BE + zs*z_BE + xs*ys*xy_BE + xs*zs*xz_BE + ys*zs*yz_BE + feq[DIR_P0M]; + f[DIR_M0P] = f_BE + xs*x_BE + ys*y_BE + zs*z_BE + xs*ys*xy_BE + xs*zs*xz_BE + ys*zs*yz_BE + feq[DIR_M0P]; + f[DIR_0PP] = f_TN + xs*x_TN + ys*y_TN + zs*z_TN + xs*ys*xy_TN + xs*zs*xz_TN + ys*zs*yz_TN + feq[DIR_0PP]; + f[DIR_0MM] = f_TN + xs*x_TN + ys*y_TN + zs*z_TN + xs*ys*xy_TN + xs*zs*xz_TN + ys*zs*yz_TN + feq[DIR_0MM]; + f[DIR_0PM] = f_BN + xs*x_BN + ys*y_BN + zs*z_BN + xs*ys*xy_BN + xs*zs*xz_BN + ys*zs*yz_BN + feq[DIR_0PM]; + f[DIR_0MP] = f_BN + xs*x_BN + ys*y_BN + zs*z_BN + xs*ys*xy_BN + xs*zs*xz_BN + ys*zs*yz_BN + feq[DIR_0MP]; + f[DIR_PPP] = f_TNE + xs*x_TNE + ys*y_TNE + zs*z_TNE + xs*ys*xy_TNE + xs*zs*xz_TNE + ys*zs*yz_TNE + feq[DIR_PPP]; + f[DIR_MMP] = f_TSW + xs*x_TSW + ys*y_TSW + zs*z_TSW + xs*ys*xy_TSW + xs*zs*xz_TSW + ys*zs*yz_TSW + feq[DIR_MMP]; + f[DIR_PMP] = f_TSE + xs*x_TSE + ys*y_TSE + zs*z_TSE + xs*ys*xy_TSE + xs*zs*xz_TSE + ys*zs*yz_TSE + feq[DIR_PMP]; + f[DIR_MPP] = f_TNW + xs*x_TNW + ys*y_TNW + zs*z_TNW + xs*ys*xy_TNW + xs*zs*xz_TNW + ys*zs*yz_TNW + feq[DIR_MPP]; + f[DIR_PPM] = f_TSW + xs*x_TSW + ys*y_TSW + zs*z_TSW + xs*ys*xy_TSW + xs*zs*xz_TSW + ys*zs*yz_TSW + feq[DIR_PPM]; + f[DIR_MMM] = f_TNE + xs*x_TNE + ys*y_TNE + zs*z_TNE + xs*ys*xy_TNE + xs*zs*xz_TNE + ys*zs*yz_TNE + feq[DIR_MMM]; + f[DIR_PMM] = f_TNW + xs*x_TNW + ys*y_TNW + zs*z_TNW + xs*ys*xy_TNW + xs*zs*xz_TNW + ys*zs*yz_TNW + feq[DIR_PMM]; + f[DIR_MPM] = f_TSE + xs*x_TSE + ys*y_TSE + zs*z_TSE + xs*ys*xy_TSE + xs*zs*xz_TSE + ys*zs*yz_TSE + feq[DIR_MPM]; f[DIR_000] = f_ZERO + xs*x_ZERO + ys*y_ZERO + zs*z_ZERO + feq[DIR_000]; } ////////////////////////////////////////////////////////////////////////// @@ -737,32 +737,32 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(72.*o)); f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(72.*o)); - f[E] = f_E + feq[E]; + f[DIR_P00] = f_E + feq[DIR_P00]; f[W] = f_E + feq[W]; f[N] = f_N + feq[N]; f[S] = f_N + feq[S]; f[T] = f_T + feq[T]; f[B] = f_T + feq[B]; f[NE] = f_NE + feq[NE]; - f[SW] = f_NE + feq[SW]; - f[SE] = f_SE + feq[SE]; - f[NW] = f_SE + feq[NW]; - f[TE] = f_TE + feq[TE]; - f[BW] = f_TE + feq[BW]; - f[BE] = f_BE + feq[BE]; - f[TW] = f_BE + feq[TW]; - f[TN] = f_TN + feq[TN]; - f[BS] = f_TN + feq[BS]; - f[BN] = f_BN + feq[BN]; - f[TS] = f_BN + feq[TS]; - f[TNE] = f_TNE + feq[TNE]; - f[TNW] = f_TNW + feq[TNW]; - f[TSE] = f_TSE + feq[TSE]; - f[TSW] = f_TSW + feq[TSW]; - f[BNE] = f_TSW + feq[BNE]; - f[BNW] = f_TSE + feq[BNW]; - f[BSE] = f_TNW + feq[BSE]; - f[BSW] = f_TNE + feq[BSW]; + f[DIR_MM0] = f_NE + feq[DIR_MM0]; + f[DIR_PM0] = f_SE + feq[DIR_PM0]; + f[DIR_MP0] = f_SE + feq[DIR_MP0]; + f[DIR_P0P] = f_TE + feq[DIR_P0P]; + f[DIR_M0M] = f_TE + feq[DIR_M0M]; + f[DIR_P0M] = f_BE + feq[DIR_P0M]; + f[DIR_M0P] = f_BE + feq[DIR_M0P]; + f[DIR_0PP] = f_TN + feq[DIR_0PP]; + f[DIR_0MM] = f_TN + feq[DIR_0MM]; + f[DIR_0PM] = f_BN + feq[DIR_0PM]; + f[DIR_0MP] = f_BN + feq[DIR_0MP]; + f[DIR_PPP] = f_TNE + feq[DIR_PPP]; + f[DIR_MPP] = f_TNW + feq[DIR_MPP]; + f[DIR_PMP] = f_TSE + feq[DIR_PMP]; + f[DIR_MMP] = f_TSW + feq[DIR_MMP]; + f[DIR_PPM] = f_TSW + feq[DIR_PPM]; + f[DIR_MPM] = f_TSE + feq[DIR_MPM]; + f[DIR_PMM] = f_TNW + feq[DIR_PMM]; + f[DIR_MMM] = f_TNE + feq[DIR_MMM]; f[DIR_000] = f_ZERO + feq[DIR_000]; } ////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp index 56074586c1da94da2382b439b5ccf6c50aa88187..9a5396636895ce68a7b61525df3d18a2304608f7 100644 --- a/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp @@ -896,43 +896,43 @@ void InitDensityLBMKernel::calculate(int /*step*/) //////////////////////////////////////////////////////////////////////////// f[DIR_000] = (*this->zeroDistributions)(x1, x2, x3); - f[E] = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); + f[DIR_P00] = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); f[N] = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); f[T] = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); f[NE] = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - f[NW] = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); - f[TE] = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - f[TW] = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); - f[TN] = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - f[TS] = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); - f[TNE] = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - f[TNW] = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); - f[TSE] = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); - f[TSW] = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); + f[DIR_MP0] = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); + f[DIR_P0P] = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); + f[DIR_M0P] = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); + f[DIR_0PP] = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); + f[DIR_0MP] = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); + f[DIR_PPP] = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); + f[DIR_MPP] = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); + f[DIR_PMP] = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); + f[DIR_MMP] = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); f[W] = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); f[S] = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); f[B] = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); - f[SW] = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); - f[SE] = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); - f[BW] = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); - f[BE] = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); - f[BS] = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); - f[BN] = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); - f[BSW] = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); - f[BSE] = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); - f[BNW] = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); - f[BNE] = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); + f[DIR_MM0] = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); + f[DIR_PM0] = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); + f[DIR_M0M] = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); + f[DIR_P0M] = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); + f[DIR_0MM] = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); + f[DIR_0PM] = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); + f[DIR_MMM] = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); + f[DIR_PMM] = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); + f[DIR_MPM] = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); + f[DIR_PPM] = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); ////////////////////////////////////////////////////////////////////////// - drho = ((f[TNE]+f[BSW])+(f[TSE]+f[BNW]))+((f[BSE]+f[TNW])+(f[TSW]+f[BNE])) - +(((f[NE]+f[SW])+(f[SE]+f[NW]))+((f[TE]+f[BW])+(f[BE]+f[TW])) - +((f[BN]+f[TS])+(f[TN]+f[BS])))+((f[E]+f[W])+(f[N]+f[S]) + drho = ((f[DIR_PPP]+f[DIR_MMM])+(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])+(f[DIR_MMP]+f[DIR_PPM])) + +(((f[NE]+f[DIR_MM0])+(f[DIR_PM0]+f[DIR_MP0]))+((f[DIR_P0P]+f[DIR_M0M])+(f[DIR_P0M]+f[DIR_M0P])) + +((f[DIR_0PM]+f[DIR_0MP])+(f[DIR_0PP]+f[DIR_0MM])))+((f[DIR_P00]+f[W])+(f[N]+f[S]) +(f[T]+f[B]))+f[DIR_000]; //vx1 = ((((f[TNE]-f[BSW])+(f[TSE]-f[BNW]))+((f[BSE]-f[TNW])+(f[BNE]-f[TSW])))+ // (((f[BE]-f[TW])+(f[TE]-f[BW]))+((f[SE]-f[NW])+(f[NE]-f[SW])))+ - // (f[E]-f[W])); + // (f[DIR_P00]-f[W])); //vx2 = ((((f[TNE]-f[BSW])+(f[BNW]-f[TSE]))+((f[TNW]-f[BSE])+(f[BNE]-f[TSW])))+ // (((f[BN]-f[TS])+(f[TN]-f[BS]))+((f[NW]-f[SE])+(f[NE]-f[SW])))+ @@ -957,66 +957,66 @@ void InitDensityLBMKernel::calculate(int /*step*/) LBMReal cu_sq = 1.5*(vx1*vx1+vx2*vx2+vx3*vx3); feq[DIR_000] = c8o27*(drho-cu_sq); - feq[E] = c2o27*(drho+3.0*(vx1)+c9o2*(vx1)*(vx1)-cu_sq); + feq[DIR_P00] = c2o27*(drho+3.0*(vx1)+c9o2*(vx1)*(vx1)-cu_sq); feq[W] = c2o27*(drho+3.0*(-vx1)+c9o2*(-vx1)*(-vx1)-cu_sq); feq[N] = c2o27*(drho+3.0*(vx2)+c9o2*(vx2)*(vx2)-cu_sq); feq[S] = c2o27*(drho+3.0*(-vx2)+c9o2*(-vx2)*(-vx2)-cu_sq); feq[T] = c2o27*(drho+3.0*(vx3)+c9o2*(vx3)*(vx3)-cu_sq); feq[B] = c2o27*(drho+3.0*(-vx3)+c9o2*(-vx3)*(-vx3)-cu_sq); feq[NE] = c1o54*(drho+3.0*(vx1+vx2)+c9o2*(vx1+vx2)*(vx1+vx2)-cu_sq); - feq[SW] = c1o54*(drho+3.0*(-vx1-vx2)+c9o2*(-vx1-vx2)*(-vx1-vx2)-cu_sq); - feq[SE] = c1o54*(drho+3.0*(vx1-vx2)+c9o2*(vx1-vx2)*(vx1-vx2)-cu_sq); - feq[NW] = c1o54*(drho+3.0*(-vx1+vx2)+c9o2*(-vx1+vx2)*(-vx1+vx2)-cu_sq); - feq[TE] = c1o54*(drho+3.0*(vx1+vx3)+c9o2*(vx1+vx3)*(vx1+vx3)-cu_sq); - feq[BW] = c1o54*(drho+3.0*(-vx1-vx3)+c9o2*(-vx1-vx3)*(-vx1-vx3)-cu_sq); - feq[BE] = c1o54*(drho+3.0*(vx1-vx3)+c9o2*(vx1-vx3)*(vx1-vx3)-cu_sq); - feq[TW] = c1o54*(drho+3.0*(-vx1+vx3)+c9o2*(-vx1+vx3)*(-vx1+vx3)-cu_sq); - feq[TN] = c1o54*(drho+3.0*(vx2+vx3)+c9o2*(vx2+vx3)*(vx2+vx3)-cu_sq); - feq[BS] = c1o54*(drho+3.0*(-vx2-vx3)+c9o2*(-vx2-vx3)*(-vx2-vx3)-cu_sq); - feq[BN] = c1o54*(drho+3.0*(vx2-vx3)+c9o2*(vx2-vx3)*(vx2-vx3)-cu_sq); - feq[TS] = c1o54*(drho+3.0*(-vx2+vx3)+c9o2*(-vx2+vx3)*(-vx2+vx3)-cu_sq); - feq[TNE] = c1o216*(drho+3.0*(vx1+vx2+vx3)+c9o2*(vx1+vx2+vx3)*(vx1+vx2+vx3)-cu_sq); - feq[BSW] = c1o216*(drho+3.0*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); - feq[BNE] = c1o216*(drho+3.0*(vx1+vx2-vx3)+c9o2*(vx1+vx2-vx3)*(vx1+vx2-vx3)-cu_sq); - feq[TSW] = c1o216*(drho+3.0*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); - feq[TSE] = c1o216*(drho+3.0*(vx1-vx2+vx3)+c9o2*(vx1-vx2+vx3)*(vx1-vx2+vx3)-cu_sq); - feq[BNW] = c1o216*(drho+3.0*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); - feq[BSE] = c1o216*(drho+3.0*(vx1-vx2-vx3)+c9o2*(vx1-vx2-vx3)*(vx1-vx2-vx3)-cu_sq); - feq[TNW] = c1o216*(drho+3.0*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); + feq[DIR_MM0] = c1o54*(drho+3.0*(-vx1-vx2)+c9o2*(-vx1-vx2)*(-vx1-vx2)-cu_sq); + feq[DIR_PM0] = c1o54*(drho+3.0*(vx1-vx2)+c9o2*(vx1-vx2)*(vx1-vx2)-cu_sq); + feq[DIR_MP0] = c1o54*(drho+3.0*(-vx1+vx2)+c9o2*(-vx1+vx2)*(-vx1+vx2)-cu_sq); + feq[DIR_P0P] = c1o54*(drho+3.0*(vx1+vx3)+c9o2*(vx1+vx3)*(vx1+vx3)-cu_sq); + feq[DIR_M0M] = c1o54*(drho+3.0*(-vx1-vx3)+c9o2*(-vx1-vx3)*(-vx1-vx3)-cu_sq); + feq[DIR_P0M] = c1o54*(drho+3.0*(vx1-vx3)+c9o2*(vx1-vx3)*(vx1-vx3)-cu_sq); + feq[DIR_M0P] = c1o54*(drho+3.0*(-vx1+vx3)+c9o2*(-vx1+vx3)*(-vx1+vx3)-cu_sq); + feq[DIR_0PP] = c1o54*(drho+3.0*(vx2+vx3)+c9o2*(vx2+vx3)*(vx2+vx3)-cu_sq); + feq[DIR_0MM] = c1o54*(drho+3.0*(-vx2-vx3)+c9o2*(-vx2-vx3)*(-vx2-vx3)-cu_sq); + feq[DIR_0PM] = c1o54*(drho+3.0*(vx2-vx3)+c9o2*(vx2-vx3)*(vx2-vx3)-cu_sq); + feq[DIR_0MP] = c1o54*(drho+3.0*(-vx2+vx3)+c9o2*(-vx2+vx3)*(-vx2+vx3)-cu_sq); + feq[DIR_PPP] = c1o216*(drho+3.0*(vx1+vx2+vx3)+c9o2*(vx1+vx2+vx3)*(vx1+vx2+vx3)-cu_sq); + feq[DIR_MMM] = c1o216*(drho+3.0*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); + feq[DIR_PPM] = c1o216*(drho+3.0*(vx1+vx2-vx3)+c9o2*(vx1+vx2-vx3)*(vx1+vx2-vx3)-cu_sq); + feq[DIR_MMP] = c1o216*(drho+3.0*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); + feq[DIR_PMP] = c1o216*(drho+3.0*(vx1-vx2+vx3)+c9o2*(vx1-vx2+vx3)*(vx1-vx2+vx3)-cu_sq); + feq[DIR_MPM] = c1o216*(drho+3.0*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); + feq[DIR_PMM] = c1o216*(drho+3.0*(vx1-vx2-vx3)+c9o2*(vx1-vx2-vx3)*(vx1-vx2-vx3)-cu_sq); + feq[DIR_MPP] = c1o216*(drho+3.0*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); //Relaxation f[DIR_000] += (feq[DIR_000]-f[DIR_000])*collFactor; - f[E] += (feq[E]-f[E])*collFactor; + f[DIR_P00] += (feq[DIR_P00]-f[DIR_P00])*collFactor; f[W] += (feq[W]-f[W])*collFactor; f[N] += (feq[N]-f[N])*collFactor; f[S] += (feq[S]-f[S])*collFactor; f[T] += (feq[T]-f[T])*collFactor; f[B] += (feq[B]-f[B])*collFactor; f[NE] += (feq[NE]-f[NE])*collFactor; - f[SW] += (feq[SW]-f[SW])*collFactor; - f[SE] += (feq[SE]-f[SE])*collFactor; - f[NW] += (feq[NW]-f[NW])*collFactor; - f[TE] += (feq[TE]-f[TE])*collFactor; - f[BW] += (feq[BW]-f[BW])*collFactor; - f[BE] += (feq[BE]-f[BE])*collFactor; - f[TW] += (feq[TW]-f[TW])*collFactor; - f[TN] += (feq[TN]-f[TN])*collFactor; - f[BS] += (feq[BS]-f[BS])*collFactor; - f[BN] += (feq[BN]-f[BN])*collFactor; - f[TS] += (feq[TS]-f[TS])*collFactor; + f[DIR_MM0] += (feq[DIR_MM0]-f[DIR_MM0])*collFactor; + f[DIR_PM0] += (feq[DIR_PM0]-f[DIR_PM0])*collFactor; + f[DIR_MP0] += (feq[DIR_MP0]-f[DIR_MP0])*collFactor; + f[DIR_P0P] += (feq[DIR_P0P]-f[DIR_P0P])*collFactor; + f[DIR_M0M] += (feq[DIR_M0M]-f[DIR_M0M])*collFactor; + f[DIR_P0M] += (feq[DIR_P0M]-f[DIR_P0M])*collFactor; + f[DIR_M0P] += (feq[DIR_M0P]-f[DIR_M0P])*collFactor; + f[DIR_0PP] += (feq[DIR_0PP]-f[DIR_0PP])*collFactor; + f[DIR_0MM] += (feq[DIR_0MM]-f[DIR_0MM])*collFactor; + f[DIR_0PM] += (feq[DIR_0PM]-f[DIR_0PM])*collFactor; + f[DIR_0MP] += (feq[DIR_0MP]-f[DIR_0MP])*collFactor; - f[TNE] += (feq[TNE]-f[TNE])*collFactor; - f[BSW] += (feq[BSW]-f[BSW])*collFactor; - f[BNE] += (feq[BNE]-f[BNE])*collFactor; - f[TSW] += (feq[TSW]-f[TSW])*collFactor; - f[TSE] += (feq[TSE]-f[TSE])*collFactor; - f[BNW] += (feq[BNW]-f[BNW])*collFactor; - f[BSE] += (feq[BSE]-f[BSE])*collFactor; - f[TNW] += (feq[TNW]-f[TNW])*collFactor; + f[DIR_PPP] += (feq[DIR_PPP]-f[DIR_PPP])*collFactor; + f[DIR_MMM] += (feq[DIR_MMM]-f[DIR_MMM])*collFactor; + f[DIR_PPM] += (feq[DIR_PPM]-f[DIR_PPM])*collFactor; + f[DIR_MMP] += (feq[DIR_MMP]-f[DIR_MMP])*collFactor; + f[DIR_PMP] += (feq[DIR_PMP]-f[DIR_PMP])*collFactor; + f[DIR_MPM] += (feq[DIR_MPM]-f[DIR_MPM])*collFactor; + f[DIR_PMM] += (feq[DIR_PMM]-f[DIR_PMM])*collFactor; + f[DIR_MPP] += (feq[DIR_MPP]-f[DIR_MPP])*collFactor; ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = f[REST]+f[E]+f[W]+f[N]+f[S]+f[T]+f[B] + LBMReal rho_post = f[REST]+f[DIR_P00]+f[W]+f[N]+f[S]+f[T]+f[B] +f[NE]+f[SW]+f[SE]+f[NW]+f[TE]+f[BW]+f[BE] +f[TW]+f[TN]+f[BS]+f[BN]+f[TS]+f[TNE]+f[TSW] +f[TSE]+f[TNW]+f[BNE]+f[BSW]+f[BSE]+f[BNW]; @@ -1033,33 +1033,33 @@ void InitDensityLBMKernel::calculate(int /*step*/) ////////////////////////////////////////////////////////////////////////// //write distribution ////////////////////////////////////////////////////////////////////////// - (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f[D3Q27System::INV_E]; - (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f[D3Q27System::INV_N]; - (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f[D3Q27System::INV_T]; - (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f[D3Q27System::INV_NE]; - (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3) = f[D3Q27System::INV_NW]; - (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f[D3Q27System::INV_TE]; - (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3) = f[D3Q27System::INV_TW]; - (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f[D3Q27System::INV_TN]; - (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3) = f[D3Q27System::INV_TS]; - (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f[D3Q27System::INV_TNE]; - (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3) = f[D3Q27System::INV_TNW]; - (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3) = f[D3Q27System::INV_TSE]; - (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3) = f[D3Q27System::INV_TSW]; + (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3) = f[D3Q27System::INV_P00]; + (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3) = f[D3Q27System::INV_0P0]; + (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3) = f[D3Q27System::INV_00P]; + (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3) = f[D3Q27System::INV_PP0]; + (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3) = f[D3Q27System::INV_MP0]; + (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3) = f[D3Q27System::INV_P0P]; + (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3) = f[D3Q27System::INV_M0P]; + (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3) = f[D3Q27System::INV_0PP]; + (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3) = f[D3Q27System::INV_0MP]; + (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3) = f[D3Q27System::INV_PPP]; + (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3) = f[D3Q27System::INV_MPP]; + (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3) = f[D3Q27System::INV_PMP]; + (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3) = f[D3Q27System::INV_MMP]; - (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3) = f[D3Q27System::INV_W]; - (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3) = f[D3Q27System::INV_S]; - (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p) = f[D3Q27System::INV_B]; - (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3) = f[D3Q27System::INV_SW]; - (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3) = f[D3Q27System::INV_SE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p) = f[D3Q27System::INV_BW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p) = f[D3Q27System::INV_BE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p) = f[D3Q27System::INV_BS]; - (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p) = f[D3Q27System::INV_BN]; - (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p) = f[D3Q27System::INV_BSW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p) = f[D3Q27System::INV_BSE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p) = f[D3Q27System::INV_BNW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p) = f[D3Q27System::INV_BNE]; + (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3) = f[D3Q27System::INV_M00]; + (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3) = f[D3Q27System::INV_0M0]; + (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p) = f[D3Q27System::INV_00M]; + (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3) = f[D3Q27System::INV_MM0]; + (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3) = f[D3Q27System::INV_PM0]; + (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p) = f[D3Q27System::INV_M0M]; + (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p) = f[D3Q27System::INV_P0M]; + (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p) = f[D3Q27System::INV_0MM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p) = f[D3Q27System::INV_0PM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p) = f[D3Q27System::INV_MMM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p) = f[D3Q27System::INV_PMM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p) = f[D3Q27System::INV_MPM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p) = f[D3Q27System::INV_PPM]; (*this->zeroDistributions)(x1, x2, x3) = f[D3Q27System::DIR_000]; ////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp b/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp index e48e846a4b69ed6d074b0729696dc321531d7808..5a4034ec0540e6f050db4e2878f32bfbf97a2ccd 100644 --- a/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp @@ -90,111 +90,111 @@ void LBMKernelETD3Q27BGK::calculate(int /*step*/) //////////////////////////////////////////////////////////////////////////// f[DIR_000] = (*this->zeroDistributions)(x1,x2,x3); - f[E] = (*this->localDistributions)(D3Q27System::ET_E, x1,x2,x3); + f[DIR_P00] = (*this->localDistributions)(D3Q27System::ET_E, x1,x2,x3); f[N] = (*this->localDistributions)(D3Q27System::ET_N,x1,x2,x3); f[T] = (*this->localDistributions)(D3Q27System::ET_T,x1,x2,x3); f[NE] = (*this->localDistributions)(D3Q27System::ET_NE,x1,x2,x3); - f[NW] = (*this->localDistributions)(D3Q27System::ET_NW,x1p,x2,x3); - f[TE] = (*this->localDistributions)(D3Q27System::ET_TE,x1,x2,x3); - f[TW] = (*this->localDistributions)(D3Q27System::ET_TW, x1p,x2,x3); - f[TN] = (*this->localDistributions)(D3Q27System::ET_TN,x1,x2,x3); - f[TS] = (*this->localDistributions)(D3Q27System::ET_TS,x1,x2p,x3); - f[TNE] = (*this->localDistributions)(D3Q27System::ET_TNE,x1,x2,x3); - f[TNW] = (*this->localDistributions)(D3Q27System::ET_TNW,x1p,x2,x3); - f[TSE] = (*this->localDistributions)(D3Q27System::ET_TSE,x1,x2p,x3); - f[TSW] = (*this->localDistributions)(D3Q27System::ET_TSW,x1p,x2p,x3); + f[DIR_MP0] = (*this->localDistributions)(D3Q27System::ET_NW,x1p,x2,x3); + f[DIR_P0P] = (*this->localDistributions)(D3Q27System::ET_TE,x1,x2,x3); + f[DIR_M0P] = (*this->localDistributions)(D3Q27System::ET_TW, x1p,x2,x3); + f[DIR_0PP] = (*this->localDistributions)(D3Q27System::ET_TN,x1,x2,x3); + f[DIR_0MP] = (*this->localDistributions)(D3Q27System::ET_TS,x1,x2p,x3); + f[DIR_PPP] = (*this->localDistributions)(D3Q27System::ET_TNE,x1,x2,x3); + f[DIR_MPP] = (*this->localDistributions)(D3Q27System::ET_TNW,x1p,x2,x3); + f[DIR_PMP] = (*this->localDistributions)(D3Q27System::ET_TSE,x1,x2p,x3); + f[DIR_MMP] = (*this->localDistributions)(D3Q27System::ET_TSW,x1p,x2p,x3); f[W ] = (*this->nonLocalDistributions)(D3Q27System::ET_W,x1p,x2,x3 ); f[S ] = (*this->nonLocalDistributions)(D3Q27System::ET_S,x1,x2p,x3 ); f[B ] = (*this->nonLocalDistributions)(D3Q27System::ET_B,x1,x2,x3p ); - f[SW] = (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1p,x2p,x3 ); - f[SE] = (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1,x2p,x3 ); - f[BW] = (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1p,x2,x3p ); - f[BE] = (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1,x2,x3p ); - f[BS] = (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1,x2p,x3p ); - f[BN] = (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1,x2,x3p ); - f[BSW] = (*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1p,x2p,x3p); - f[BSE] = (*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1,x2p,x3p); - f[BNW] = (*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1p,x2,x3p); - f[BNE] = (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1,x2,x3p); + f[DIR_MM0] = (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1p,x2p,x3 ); + f[DIR_PM0] = (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1,x2p,x3 ); + f[DIR_M0M] = (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1p,x2,x3p ); + f[DIR_P0M] = (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1,x2,x3p ); + f[DIR_0MM] = (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1,x2p,x3p ); + f[DIR_0PM] = (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1,x2,x3p ); + f[DIR_MMM] = (*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1p,x2p,x3p); + f[DIR_PMM] = (*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1,x2p,x3p); + f[DIR_MPM] = (*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1p,x2,x3p); + f[DIR_PPM] = (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1,x2,x3p); ////////////////////////////////////////////////////////////////////////// - drho = f[DIR_000] + f[E] + f[W] + f[N] + f[S] + f[T] + f[B] - + f[NE] + f[SW] + f[SE] + f[NW] + f[TE] + f[BW] + f[BE] - + f[TW] + f[TN] + f[BS] + f[BN] + f[TS] + f[TNE] + f[TSW] - + f[TSE] + f[TNW] + f[BNE] + f[BSW] + f[BSE] + f[BNW]; + drho = f[DIR_000] + f[DIR_P00] + f[W] + f[N] + f[S] + f[T] + f[B] + + f[NE] + f[DIR_MM0] + f[DIR_PM0] + f[DIR_MP0] + f[DIR_P0P] + f[DIR_M0M] + f[DIR_P0M] + + f[DIR_M0P] + f[DIR_0PP] + f[DIR_0MM] + f[DIR_0PM] + f[DIR_0MP] + f[DIR_PPP] + f[DIR_MMP] + + f[DIR_PMP] + f[DIR_MPP] + f[DIR_PPM] + f[DIR_MMM] + f[DIR_PMM] + f[DIR_MPM]; - vx1 = f[E] - f[W] + f[NE] - f[SW] + f[SE] - f[NW] + f[TE] - f[BW] - + f[BE] - f[TW] + f[TNE] - f[TSW] + f[TSE] - f[TNW] + f[BNE] - f[BSW] - + f[BSE] - f[BNW]; + vx1 = f[DIR_P00] - f[W] + f[NE] - f[DIR_MM0] + f[DIR_PM0] - f[DIR_MP0] + f[DIR_P0P] - f[DIR_M0M] + + f[DIR_P0M] - f[DIR_M0P] + f[DIR_PPP] - f[DIR_MMP] + f[DIR_PMP] - f[DIR_MPP] + f[DIR_PPM] - f[DIR_MMM] + + f[DIR_PMM] - f[DIR_MPM]; - vx2 = f[N] - f[S] + f[NE] - f[SW] - f[SE] + f[NW] + f[TN] - f[BS] + f[BN] - - f[TS] + f[TNE] - f[TSW] - f[TSE] + f[TNW] + f[BNE] - f[BSW] - f[BSE] - + f[BNW]; + vx2 = f[N] - f[S] + f[NE] - f[DIR_MM0] - f[DIR_PM0] + f[DIR_MP0] + f[DIR_0PP] - f[DIR_0MM] + f[DIR_0PM] + - f[DIR_0MP] + f[DIR_PPP] - f[DIR_MMP] - f[DIR_PMP] + f[DIR_MPP] + f[DIR_PPM] - f[DIR_MMM] - f[DIR_PMM] + + f[DIR_MPM]; - vx3 = f[T] - f[B] + f[TE] - f[BW] - f[BE] + f[TW] + f[TN] - f[BS] - f[BN] - + f[TS] + f[TNE] + f[TSW] + f[TSE] + f[TNW] - f[BNE] - f[BSW] - f[BSE] - - f[BNW]; + vx3 = f[T] - f[B] + f[DIR_P0P] - f[DIR_M0M] - f[DIR_P0M] + f[DIR_M0P] + f[DIR_0PP] - f[DIR_0MM] - f[DIR_0PM] + + f[DIR_0MP] + f[DIR_PPP] + f[DIR_MMP] + f[DIR_PMP] + f[DIR_MPP] - f[DIR_PPM] - f[DIR_MMM] - f[DIR_PMM] + - f[DIR_MPM]; LBMReal cu_sq=1.5*(vx1*vx1+vx2*vx2+vx3*vx3); feq[DIR_000] = c8o27*(drho-cu_sq); - feq[E] = c2o27*(drho+3.0*( vx1 )+c9o2*( vx1 )*( vx1 )-cu_sq); + feq[DIR_P00] = c2o27*(drho+3.0*( vx1 )+c9o2*( vx1 )*( vx1 )-cu_sq); feq[W] = c2o27*(drho+3.0*(-vx1 )+c9o2*(-vx1 )*(-vx1 )-cu_sq); feq[N] = c2o27*(drho+3.0*( vx2)+c9o2*( vx2)*( vx2)-cu_sq); feq[S] = c2o27*(drho+3.0*( -vx2)+c9o2*( -vx2)*( -vx2)-cu_sq); feq[T] = c2o27*(drho+3.0*( vx3 )+c9o2*( vx3)*( vx3)-cu_sq); feq[B] = c2o27*(drho+3.0*( -vx3)+c9o2*( -vx3)*( -vx3)-cu_sq); feq[NE] = c1o54*(drho+3.0*( vx1+vx2)+c9o2*( vx1+vx2)*( vx1+vx2)-cu_sq); - feq[SW] = c1o54*(drho+3.0*(-vx1-vx2)+c9o2*(-vx1-vx2)*(-vx1-vx2)-cu_sq); - feq[SE] = c1o54*(drho+3.0*( vx1-vx2)+c9o2*( vx1-vx2)*( vx1-vx2)-cu_sq); - feq[NW] = c1o54*(drho+3.0*(-vx1+vx2)+c9o2*(-vx1+vx2)*(-vx1+vx2)-cu_sq); - feq[TE] = c1o54*(drho+3.0*( vx1+vx3)+c9o2*( vx1+vx3)*( vx1+vx3)-cu_sq); - feq[BW] = c1o54*(drho+3.0*(-vx1-vx3)+c9o2*(-vx1-vx3)*(-vx1-vx3)-cu_sq); - feq[BE] = c1o54*(drho+3.0*( vx1-vx3)+c9o2*( vx1-vx3)*( vx1-vx3)-cu_sq); - feq[TW] = c1o54*(drho+3.0*(-vx1+vx3)+c9o2*(-vx1+vx3)*(-vx1+vx3)-cu_sq); - feq[TN] = c1o54*(drho+3.0*( vx2+vx3)+c9o2*( vx2+vx3)*( vx2+vx3)-cu_sq); - feq[BS] = c1o54*(drho+3.0*(-vx2-vx3)+c9o2*(-vx2-vx3)*(-vx2-vx3)-cu_sq); - feq[BN] = c1o54*(drho+3.0*( vx2-vx3)+c9o2*( vx2-vx3)*( vx2-vx3)-cu_sq); - feq[TS] = c1o54*(drho+3.0*(-vx2+vx3)+c9o2*(-vx2+vx3)*(-vx2+vx3)-cu_sq); - feq[TNE]= c1o216*(drho+3.0*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); - feq[BSW]= c1o216*(drho+3.0*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); - feq[BNE]= c1o216*(drho+3.0*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); - feq[TSW]= c1o216*(drho+3.0*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); - feq[TSE]= c1o216*(drho+3.0*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); - feq[BNW]= c1o216*(drho+3.0*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); - feq[BSE]= c1o216*(drho+3.0*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); - feq[TNW]= c1o216*(drho+3.0*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); + feq[DIR_MM0] = c1o54*(drho+3.0*(-vx1-vx2)+c9o2*(-vx1-vx2)*(-vx1-vx2)-cu_sq); + feq[DIR_PM0] = c1o54*(drho+3.0*( vx1-vx2)+c9o2*( vx1-vx2)*( vx1-vx2)-cu_sq); + feq[DIR_MP0] = c1o54*(drho+3.0*(-vx1+vx2)+c9o2*(-vx1+vx2)*(-vx1+vx2)-cu_sq); + feq[DIR_P0P] = c1o54*(drho+3.0*( vx1+vx3)+c9o2*( vx1+vx3)*( vx1+vx3)-cu_sq); + feq[DIR_M0M] = c1o54*(drho+3.0*(-vx1-vx3)+c9o2*(-vx1-vx3)*(-vx1-vx3)-cu_sq); + feq[DIR_P0M] = c1o54*(drho+3.0*( vx1-vx3)+c9o2*( vx1-vx3)*( vx1-vx3)-cu_sq); + feq[DIR_M0P] = c1o54*(drho+3.0*(-vx1+vx3)+c9o2*(-vx1+vx3)*(-vx1+vx3)-cu_sq); + feq[DIR_0PP] = c1o54*(drho+3.0*( vx2+vx3)+c9o2*( vx2+vx3)*( vx2+vx3)-cu_sq); + feq[DIR_0MM] = c1o54*(drho+3.0*(-vx2-vx3)+c9o2*(-vx2-vx3)*(-vx2-vx3)-cu_sq); + feq[DIR_0PM] = c1o54*(drho+3.0*( vx2-vx3)+c9o2*( vx2-vx3)*( vx2-vx3)-cu_sq); + feq[DIR_0MP] = c1o54*(drho+3.0*(-vx2+vx3)+c9o2*(-vx2+vx3)*(-vx2+vx3)-cu_sq); + feq[DIR_PPP]= c1o216*(drho+3.0*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); + feq[DIR_MMM]= c1o216*(drho+3.0*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); + feq[DIR_PPM]= c1o216*(drho+3.0*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); + feq[DIR_MMP]= c1o216*(drho+3.0*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); + feq[DIR_PMP]= c1o216*(drho+3.0*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); + feq[DIR_MPM]= c1o216*(drho+3.0*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); + feq[DIR_PMM]= c1o216*(drho+3.0*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); + feq[DIR_MPP]= c1o216*(drho+3.0*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); //Relaxation f[DIR_000] += (feq[DIR_000]-f[DIR_000])*collFactor; - f[E] += (feq[E]-f[E])*collFactor; + f[DIR_P00] += (feq[DIR_P00]-f[DIR_P00])*collFactor; f[W] += (feq[W]-f[W])*collFactor; f[N] += (feq[N]-f[N])*collFactor; f[S] += (feq[S]-f[S])*collFactor; f[T] += (feq[T]-f[T])*collFactor; f[B] += (feq[B]-f[B])*collFactor; f[NE] += (feq[NE]-f[NE])*collFactor; - f[SW] += (feq[SW]-f[SW])*collFactor; - f[SE] += (feq[SE]-f[SE])*collFactor; - f[NW] += (feq[NW]-f[NW])*collFactor; - f[TE] += (feq[TE]-f[TE])*collFactor; - f[BW] += (feq[BW]-f[BW])*collFactor; - f[BE] += (feq[BE]-f[BE])*collFactor; - f[TW] += (feq[TW]-f[TW])*collFactor; - f[TN] += (feq[TN]-f[TN])*collFactor; - f[BS] += (feq[BS]-f[BS])*collFactor; - f[BN] += (feq[BN]-f[BN])*collFactor; - f[TS] += (feq[TS]-f[TS])*collFactor; + f[DIR_MM0] += (feq[DIR_MM0]-f[DIR_MM0])*collFactor; + f[DIR_PM0] += (feq[DIR_PM0]-f[DIR_PM0])*collFactor; + f[DIR_MP0] += (feq[DIR_MP0]-f[DIR_MP0])*collFactor; + f[DIR_P0P] += (feq[DIR_P0P]-f[DIR_P0P])*collFactor; + f[DIR_M0M] += (feq[DIR_M0M]-f[DIR_M0M])*collFactor; + f[DIR_P0M] += (feq[DIR_P0M]-f[DIR_P0M])*collFactor; + f[DIR_M0P] += (feq[DIR_M0P]-f[DIR_M0P])*collFactor; + f[DIR_0PP] += (feq[DIR_0PP]-f[DIR_0PP])*collFactor; + f[DIR_0MM] += (feq[DIR_0MM]-f[DIR_0MM])*collFactor; + f[DIR_0PM] += (feq[DIR_0PM]-f[DIR_0PM])*collFactor; + f[DIR_0MP] += (feq[DIR_0MP]-f[DIR_0MP])*collFactor; - f[TNE] += (feq[TNE]-f[TNE])*collFactor; - f[BSW] += (feq[BSW]-f[BSW])*collFactor; - f[BNE] += (feq[BNE]-f[BNE])*collFactor; - f[TSW] += (feq[TSW]-f[TSW])*collFactor; - f[TSE] += (feq[TSE]-f[TSE])*collFactor; - f[BNW] += (feq[BNW]-f[BNW])*collFactor; - f[BSE] += (feq[BSE]-f[BSE])*collFactor; - f[TNW] += (feq[TNW]-f[TNW])*collFactor; + f[DIR_PPP] += (feq[DIR_PPP]-f[DIR_PPP])*collFactor; + f[DIR_MMM] += (feq[DIR_MMM]-f[DIR_MMM])*collFactor; + f[DIR_PPM] += (feq[DIR_PPM]-f[DIR_PPM])*collFactor; + f[DIR_MMP] += (feq[DIR_MMP]-f[DIR_MMP])*collFactor; + f[DIR_PMP] += (feq[DIR_PMP]-f[DIR_PMP])*collFactor; + f[DIR_MPM] += (feq[DIR_MPM]-f[DIR_MPM])*collFactor; + f[DIR_PMM] += (feq[DIR_PMM]-f[DIR_PMM])*collFactor; + f[DIR_MPP] += (feq[DIR_MPP]-f[DIR_MPP])*collFactor; ////////////////////////////////////////////////////////////////////////// //forcing @@ -216,29 +216,29 @@ void LBMKernelETD3Q27BGK::calculate(int /*step*/) f[T ] += 3.0*c2o27 * (forcingX3) ; f[B ] += 3.0*c2o27 * (-forcingX3); f[NE ] += 3.0*c1o54 * ( forcingX1+forcingX2 ) ; - f[SW ] += 3.0*c1o54 * (-forcingX1-forcingX2 ) ; - f[SE ] += 3.0*c1o54 * ( forcingX1-forcingX2 ) ; - f[NW ] += 3.0*c1o54 * (-forcingX1+forcingX2 ) ; - f[TE ] += 3.0*c1o54 * ( forcingX1 +forcingX3) ; - f[BW ] += 3.0*c1o54 * (-forcingX1 -forcingX3) ; - f[BE ] += 3.0*c1o54 * ( forcingX1 -forcingX3) ; - f[TW ] += 3.0*c1o54 * (-forcingX1 +forcingX3) ; - f[TN ] += 3.0*c1o54 * ( forcingX2+forcingX3) ; - f[BS ] += 3.0*c1o54 * ( -forcingX2-forcingX3) ; - f[BN ] += 3.0*c1o54 * ( forcingX2-forcingX3) ; - f[TS ] += 3.0*c1o54 * ( -forcingX2+forcingX3) ; - f[TNE] += 3.0*c1o216* ( forcingX1+forcingX2+forcingX3) ; - f[BSW] += 3.0*c1o216* (-forcingX1-forcingX2-forcingX3) ; - f[BNE] += 3.0*c1o216* ( forcingX1+forcingX2-forcingX3) ; - f[TSW] += 3.0*c1o216* (-forcingX1-forcingX2+forcingX3) ; - f[TSE] += 3.0*c1o216* ( forcingX1-forcingX2+forcingX3) ; - f[BNW] += 3.0*c1o216* (-forcingX1+forcingX2-forcingX3) ; - f[BSE] += 3.0*c1o216* ( forcingX1-forcingX2-forcingX3) ; - f[TNW] += 3.0*c1o216* (-forcingX1+forcingX2+forcingX3) ; + f[DIR_MM0 ] += 3.0*c1o54 * (-forcingX1-forcingX2 ) ; + f[DIR_PM0 ] += 3.0*c1o54 * ( forcingX1-forcingX2 ) ; + f[DIR_MP0 ] += 3.0*c1o54 * (-forcingX1+forcingX2 ) ; + f[DIR_P0P ] += 3.0*c1o54 * ( forcingX1 +forcingX3) ; + f[DIR_M0M ] += 3.0*c1o54 * (-forcingX1 -forcingX3) ; + f[DIR_P0M ] += 3.0*c1o54 * ( forcingX1 -forcingX3) ; + f[DIR_M0P ] += 3.0*c1o54 * (-forcingX1 +forcingX3) ; + f[DIR_0PP ] += 3.0*c1o54 * ( forcingX2+forcingX3) ; + f[DIR_0MM ] += 3.0*c1o54 * ( -forcingX2-forcingX3) ; + f[DIR_0PM ] += 3.0*c1o54 * ( forcingX2-forcingX3) ; + f[DIR_0MP ] += 3.0*c1o54 * ( -forcingX2+forcingX3) ; + f[DIR_PPP] += 3.0*c1o216* ( forcingX1+forcingX2+forcingX3) ; + f[DIR_MMM] += 3.0*c1o216* (-forcingX1-forcingX2-forcingX3) ; + f[DIR_PPM] += 3.0*c1o216* ( forcingX1+forcingX2-forcingX3) ; + f[DIR_MMP] += 3.0*c1o216* (-forcingX1-forcingX2+forcingX3) ; + f[DIR_PMP] += 3.0*c1o216* ( forcingX1-forcingX2+forcingX3) ; + f[DIR_MPM] += 3.0*c1o216* (-forcingX1+forcingX2-forcingX3) ; + f[DIR_PMM] += 3.0*c1o216* ( forcingX1-forcingX2-forcingX3) ; + f[DIR_MPP] += 3.0*c1o216* (-forcingX1+forcingX2+forcingX3) ; } ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = f[REST] + f[E] + f[W] + f[N] + f[S] + f[T] + f[B] + LBMReal rho_post = f[REST] + f[DIR_P00] + f[W] + f[N] + f[S] + f[T] + f[B] + f[NE] + f[SW] + f[SE] + f[NW] + f[TE] + f[BW] + f[BE] + f[TW] + f[TN] + f[BS] + f[BN] + f[TS] + f[TNE] + f[TSW] + f[TSE] + f[TNW] + f[BNE] + f[BSW] + f[BSE] + f[BNW]; @@ -255,33 +255,33 @@ void LBMKernelETD3Q27BGK::calculate(int /*step*/) ////////////////////////////////////////////////////////////////////////// //write distribution ////////////////////////////////////////////////////////////////////////// - (*this->localDistributions)(D3Q27System::ET_E,x1, x2, x3) = f[D3Q27System::INV_E]; - (*this->localDistributions)(D3Q27System::ET_N,x1, x2, x3) = f[D3Q27System::INV_N]; - (*this->localDistributions)(D3Q27System::ET_T,x1, x2, x3) = f[D3Q27System::INV_T]; - (*this->localDistributions)(D3Q27System::ET_NE,x1, x2, x3) = f[D3Q27System::INV_NE]; - (*this->localDistributions)(D3Q27System::ET_NW,x1p,x2, x3) = f[D3Q27System::INV_NW]; - (*this->localDistributions)(D3Q27System::ET_TE,x1, x2, x3) = f[D3Q27System::INV_TE]; - (*this->localDistributions)(D3Q27System::ET_TW,x1p,x2, x3) = f[D3Q27System::INV_TW]; - (*this->localDistributions)(D3Q27System::ET_TN,x1, x2, x3) = f[D3Q27System::INV_TN]; - (*this->localDistributions)(D3Q27System::ET_TS,x1, x2p,x3) = f[D3Q27System::INV_TS]; - (*this->localDistributions)(D3Q27System::ET_TNE,x1, x2, x3) = f[D3Q27System::INV_TNE]; - (*this->localDistributions)(D3Q27System::ET_TNW,x1p,x2, x3) = f[D3Q27System::INV_TNW]; - (*this->localDistributions)(D3Q27System::ET_TSE,x1, x2p,x3) = f[D3Q27System::INV_TSE]; - (*this->localDistributions)(D3Q27System::ET_TSW,x1p,x2p,x3) = f[D3Q27System::INV_TSW]; + (*this->localDistributions)(D3Q27System::ET_E,x1, x2, x3) = f[D3Q27System::INV_P00]; + (*this->localDistributions)(D3Q27System::ET_N,x1, x2, x3) = f[D3Q27System::INV_0P0]; + (*this->localDistributions)(D3Q27System::ET_T,x1, x2, x3) = f[D3Q27System::INV_00P]; + (*this->localDistributions)(D3Q27System::ET_NE,x1, x2, x3) = f[D3Q27System::INV_PP0]; + (*this->localDistributions)(D3Q27System::ET_NW,x1p,x2, x3) = f[D3Q27System::INV_MP0]; + (*this->localDistributions)(D3Q27System::ET_TE,x1, x2, x3) = f[D3Q27System::INV_P0P]; + (*this->localDistributions)(D3Q27System::ET_TW,x1p,x2, x3) = f[D3Q27System::INV_M0P]; + (*this->localDistributions)(D3Q27System::ET_TN,x1, x2, x3) = f[D3Q27System::INV_0PP]; + (*this->localDistributions)(D3Q27System::ET_TS,x1, x2p,x3) = f[D3Q27System::INV_0MP]; + (*this->localDistributions)(D3Q27System::ET_TNE,x1, x2, x3) = f[D3Q27System::INV_PPP]; + (*this->localDistributions)(D3Q27System::ET_TNW,x1p,x2, x3) = f[D3Q27System::INV_MPP]; + (*this->localDistributions)(D3Q27System::ET_TSE,x1, x2p,x3) = f[D3Q27System::INV_PMP]; + (*this->localDistributions)(D3Q27System::ET_TSW,x1p,x2p,x3) = f[D3Q27System::INV_MMP]; - (*this->nonLocalDistributions)(D3Q27System::ET_W,x1p,x2, x3 ) = f[D3Q27System::INV_W ]; - (*this->nonLocalDistributions)(D3Q27System::ET_S,x1, x2p,x3 ) = f[D3Q27System::INV_S ]; - (*this->nonLocalDistributions)(D3Q27System::ET_B,x1, x2, x3p ) = f[D3Q27System::INV_B ]; - (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1p,x2p,x3 ) = f[D3Q27System::INV_SW]; - (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1, x2p,x3 ) = f[D3Q27System::INV_SE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1p,x2, x3p ) = f[D3Q27System::INV_BW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1, x2, x3p ) = f[D3Q27System::INV_BE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1, x2p,x3p ) = f[D3Q27System::INV_BS]; - (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1, x2, x3p ) = f[D3Q27System::INV_BN]; - (*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1p,x2p,x3p) = f[D3Q27System::INV_BSW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1, x2p,x3p) = f[D3Q27System::INV_BSE]; - (*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1p,x2, x3p) = f[D3Q27System::INV_BNW]; - (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1, x2, x3p) = f[D3Q27System::INV_BNE]; + (*this->nonLocalDistributions)(D3Q27System::ET_W,x1p,x2, x3 ) = f[D3Q27System::INV_M00 ]; + (*this->nonLocalDistributions)(D3Q27System::ET_S,x1, x2p,x3 ) = f[D3Q27System::INV_0M0 ]; + (*this->nonLocalDistributions)(D3Q27System::ET_B,x1, x2, x3p ) = f[D3Q27System::INV_00M ]; + (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1p,x2p,x3 ) = f[D3Q27System::INV_MM0]; + (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1, x2p,x3 ) = f[D3Q27System::INV_PM0]; + (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1p,x2, x3p ) = f[D3Q27System::INV_M0M]; + (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1, x2, x3p ) = f[D3Q27System::INV_P0M]; + (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1, x2p,x3p ) = f[D3Q27System::INV_0MM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1, x2, x3p ) = f[D3Q27System::INV_0PM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1p,x2p,x3p) = f[D3Q27System::INV_MMM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1, x2p,x3p) = f[D3Q27System::INV_PMM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1p,x2, x3p) = f[D3Q27System::INV_MPM]; + (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1, x2, x3p) = f[D3Q27System::INV_PPM]; (*this->zeroDistributions)(x1,x2,x3) = f[D3Q27System::DIR_000]; ////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp index 9de46c4f97be387f4c17a109f6630875a7bd1255..b1270904af1d7b6d711f9f87ec0049f729e421dc 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp @@ -316,32 +316,32 @@ void MultiphaseCumulantLBMKernel::calculate(int step) //-------------------------------------------------------- - mfcbb = 3.0 * (mfcbb + 0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; + mfcbb = 3.0 * (mfcbb + 0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; mfbcb = 3.0 * (mfbcb + 0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; mfbbc = 3.0 * (mfbbc + 0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; mfccb = 3.0 * (mfccb + 0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; - mfacb = 3.0 * (mfacb + 0.5 * forcingTerm[NW]) / rho; //-(3.0*p1 - rho)*WEIGTH[NW ]; - mfcbc = 3.0 * (mfcbc + 0.5 * forcingTerm[TE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TE ]; - mfabc = 3.0 * (mfabc + 0.5 * forcingTerm[TW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TW ]; - mfbcc = 3.0 * (mfbcc + 0.5 * forcingTerm[TN]) / rho; //-(3.0*p1 - rho)*WEIGTH[TN ]; - mfbac = 3.0 * (mfbac + 0.5 * forcingTerm[TS]) / rho; //-(3.0*p1 - rho)*WEIGTH[TS ]; - mfccc = 3.0 * (mfccc + 0.5 * forcingTerm[TNE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNE]; - mfacc = 3.0 * (mfacc + 0.5 * forcingTerm[TNW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNW]; - mfcac = 3.0 * (mfcac + 0.5 * forcingTerm[TSE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSE]; - mfaac = 3.0 * (mfaac + 0.5 * forcingTerm[TSW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSW]; + mfacb = 3.0 * (mfacb + 0.5 * forcingTerm[DIR_MP0]) / rho; //-(3.0*p1 - rho)*WEIGTH[NW ]; + mfcbc = 3.0 * (mfcbc + 0.5 * forcingTerm[DIR_P0P]) / rho; //-(3.0*p1 - rho)*WEIGTH[TE ]; + mfabc = 3.0 * (mfabc + 0.5 * forcingTerm[DIR_M0P]) / rho; //-(3.0*p1 - rho)*WEIGTH[TW ]; + mfbcc = 3.0 * (mfbcc + 0.5 * forcingTerm[DIR_0PP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TN ]; + mfbac = 3.0 * (mfbac + 0.5 * forcingTerm[DIR_0MP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TS ]; + mfccc = 3.0 * (mfccc + 0.5 * forcingTerm[DIR_PPP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNE]; + mfacc = 3.0 * (mfacc + 0.5 * forcingTerm[DIR_MPP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNW]; + mfcac = 3.0 * (mfcac + 0.5 * forcingTerm[DIR_PMP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSE]; + mfaac = 3.0 * (mfaac + 0.5 * forcingTerm[DIR_MMP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSW]; mfabb = 3.0 * (mfabb + 0.5 * forcingTerm[W]) / rho; //-(3.0*p1 - rho)*WEIGTH[W ]; mfbab = 3.0 * (mfbab + 0.5 * forcingTerm[S]) / rho; //-(3.0*p1 - rho)*WEIGTH[S ]; mfbba = 3.0 * (mfbba + 0.5 * forcingTerm[B]) / rho; //-(3.0*p1 - rho)*WEIGTH[B ]; - mfaab = 3.0 * (mfaab + 0.5 * forcingTerm[SW]) / rho; //-(3.0*p1 - rho)*WEIGTH[SW ]; - mfcab = 3.0 * (mfcab + 0.5 * forcingTerm[SE]) / rho; //-(3.0*p1 - rho)*WEIGTH[SE ]; - mfaba = 3.0 * (mfaba + 0.5 * forcingTerm[BW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BW ]; - mfcba = 3.0 * (mfcba + 0.5 * forcingTerm[BE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BE ]; - mfbaa = 3.0 * (mfbaa + 0.5 * forcingTerm[BS]) / rho; //-(3.0*p1 - rho)*WEIGTH[BS ]; - mfbca = 3.0 * (mfbca + 0.5 * forcingTerm[BN]) / rho; //-(3.0*p1 - rho)*WEIGTH[BN ]; - mfaaa = 3.0 * (mfaaa + 0.5 * forcingTerm[BSW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSW]; - mfcaa = 3.0 * (mfcaa + 0.5 * forcingTerm[BSE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSE]; - mfaca = 3.0 * (mfaca + 0.5 * forcingTerm[BNW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNW]; - mfcca = 3.0 * (mfcca + 0.5 * forcingTerm[BNE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNE]; + mfaab = 3.0 * (mfaab + 0.5 * forcingTerm[DIR_MM0]) / rho; //-(3.0*p1 - rho)*WEIGTH[SW ]; + mfcab = 3.0 * (mfcab + 0.5 * forcingTerm[DIR_PM0]) / rho; //-(3.0*p1 - rho)*WEIGTH[SE ]; + mfaba = 3.0 * (mfaba + 0.5 * forcingTerm[DIR_M0M]) / rho; //-(3.0*p1 - rho)*WEIGTH[BW ]; + mfcba = 3.0 * (mfcba + 0.5 * forcingTerm[DIR_P0M]) / rho; //-(3.0*p1 - rho)*WEIGTH[BE ]; + mfbaa = 3.0 * (mfbaa + 0.5 * forcingTerm[DIR_0MM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BS ]; + mfbca = 3.0 * (mfbca + 0.5 * forcingTerm[DIR_0PM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BN ]; + mfaaa = 3.0 * (mfaaa + 0.5 * forcingTerm[DIR_MMM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSW]; + mfcaa = 3.0 * (mfcaa + 0.5 * forcingTerm[DIR_PMM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSE]; + mfaca = 3.0 * (mfaca + 0.5 * forcingTerm[DIR_MPM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNW]; + mfcca = 3.0 * (mfcca + 0.5 * forcingTerm[DIR_PPM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNE]; mfbbb = 3.0 * (mfbbb + 0.5 * forcingTerm[DIR_000]) / rho; //- (3.0*p1 - rho)*WEIGTH[REST]; LBMReal rho1 = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + @@ -1024,32 +1024,32 @@ void MultiphaseCumulantLBMKernel::calculate(int step) } #endif - mfcbb = rho * c1o3 * (mfcbb) + 0.5 * forcingTerm[E]; + mfcbb = rho * c1o3 * (mfcbb) + 0.5 * forcingTerm[DIR_P00]; mfbcb = rho * c1o3 * (mfbcb) + 0.5 * forcingTerm[N]; mfbbc = rho * c1o3 * (mfbbc) + 0.5 * forcingTerm[T]; mfccb = rho * c1o3 * (mfccb) + 0.5 * forcingTerm[NE]; - mfacb = rho * c1o3 * (mfacb) + 0.5 * forcingTerm[NW]; - mfcbc = rho * c1o3 * (mfcbc) + 0.5 * forcingTerm[TE]; - mfabc = rho * c1o3 * (mfabc) + 0.5 * forcingTerm[TW]; - mfbcc = rho * c1o3 * (mfbcc) + 0.5 * forcingTerm[TN]; - mfbac = rho * c1o3 * (mfbac) + 0.5 * forcingTerm[TS]; - mfccc = rho * c1o3 * (mfccc) + 0.5 * forcingTerm[TNE]; - mfacc = rho * c1o3 * (mfacc) + 0.5 * forcingTerm[TNW]; - mfcac = rho * c1o3 * (mfcac) + 0.5 * forcingTerm[TSE]; - mfaac = rho * c1o3 * (mfaac) + 0.5 * forcingTerm[TSW]; + mfacb = rho * c1o3 * (mfacb) + 0.5 * forcingTerm[DIR_MP0]; + mfcbc = rho * c1o3 * (mfcbc) + 0.5 * forcingTerm[DIR_P0P]; + mfabc = rho * c1o3 * (mfabc) + 0.5 * forcingTerm[DIR_M0P]; + mfbcc = rho * c1o3 * (mfbcc) + 0.5 * forcingTerm[DIR_0PP]; + mfbac = rho * c1o3 * (mfbac) + 0.5 * forcingTerm[DIR_0MP]; + mfccc = rho * c1o3 * (mfccc) + 0.5 * forcingTerm[DIR_PPP]; + mfacc = rho * c1o3 * (mfacc) + 0.5 * forcingTerm[DIR_MPP]; + mfcac = rho * c1o3 * (mfcac) + 0.5 * forcingTerm[DIR_PMP]; + mfaac = rho * c1o3 * (mfaac) + 0.5 * forcingTerm[DIR_MMP]; mfabb = rho * c1o3 * (mfabb) + 0.5 * forcingTerm[W]; mfbab = rho * c1o3 * (mfbab) + 0.5 * forcingTerm[S]; mfbba = rho * c1o3 * (mfbba) + 0.5 * forcingTerm[B]; - mfaab = rho * c1o3 * (mfaab) + 0.5 * forcingTerm[SW]; - mfcab = rho * c1o3 * (mfcab) + 0.5 * forcingTerm[SE]; - mfaba = rho * c1o3 * (mfaba) + 0.5 * forcingTerm[BW]; - mfcba = rho * c1o3 * (mfcba) + 0.5 * forcingTerm[BE]; - mfbaa = rho * c1o3 * (mfbaa) + 0.5 * forcingTerm[BS]; - mfbca = rho * c1o3 * (mfbca) + 0.5 * forcingTerm[BN]; - mfaaa = rho * c1o3 * (mfaaa) + 0.5 * forcingTerm[BSW]; - mfcaa = rho * c1o3 * (mfcaa) + 0.5 * forcingTerm[BSE]; - mfaca = rho * c1o3 * (mfaca) + 0.5 * forcingTerm[BNW]; - mfcca = rho * c1o3 * (mfcca) + 0.5 * forcingTerm[BNE]; + mfaab = rho * c1o3 * (mfaab) + 0.5 * forcingTerm[DIR_MM0]; + mfcab = rho * c1o3 * (mfcab) + 0.5 * forcingTerm[DIR_PM0]; + mfaba = rho * c1o3 * (mfaba) + 0.5 * forcingTerm[DIR_M0M]; + mfcba = rho * c1o3 * (mfcba) + 0.5 * forcingTerm[DIR_P0M]; + mfbaa = rho * c1o3 * (mfbaa) + 0.5 * forcingTerm[DIR_0MM]; + mfbca = rho * c1o3 * (mfbca) + 0.5 * forcingTerm[DIR_0PM]; + mfaaa = rho * c1o3 * (mfaaa) + 0.5 * forcingTerm[DIR_MMM]; + mfcaa = rho * c1o3 * (mfcaa) + 0.5 * forcingTerm[DIR_PMM]; + mfaca = rho * c1o3 * (mfaca) + 0.5 * forcingTerm[DIR_MPM]; + mfcca = rho * c1o3 * (mfcca) + 0.5 * forcingTerm[DIR_PPM]; mfbbb = rho * c1o3 * (mfbbb) + 0.5 * forcingTerm[DIR_000]; ////////////////////////////////////////////////////////////////////////// @@ -1091,33 +1091,33 @@ void MultiphaseCumulantLBMKernel::calculate(int step) ///////////////////// PHASE-FIELD BGK SOLVER /////////////////////////////// - h[E] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); + h[DIR_P00] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); h[N] = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); h[T] = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); h[NE] = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); - h[NW] = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); - h[TE] = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); - h[TW] = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); - h[TN] = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); - h[TS] = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); - h[TNE] = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); - h[TNW] = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); - h[TSE] = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); - h[TSW] = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); + h[DIR_MP0] = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); + h[DIR_P0P] = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); + h[DIR_M0P] = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); + h[DIR_0PP] = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); + h[DIR_0MP] = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); + h[DIR_PPP] = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); + h[DIR_MPP] = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); + h[DIR_PMP] = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); + h[DIR_MMP] = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); h[W] = (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3); h[S] = (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3); h[B] = (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p); - h[SW] = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); - h[SE] = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); - h[BW] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); - h[BE] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); - h[BS] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); - h[BN] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); - h[BSW] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); - h[BSE] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); - h[BNW] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); - h[BNE] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); + h[DIR_MM0] = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); + h[DIR_PM0] = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); + h[DIR_M0M] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); + h[DIR_P0M] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); + h[DIR_0MM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); + h[DIR_0PM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); + h[DIR_MMM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); + h[DIR_PMM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); + h[DIR_MPM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); + h[DIR_PPM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); h[DIR_000] = (*this->zeroDistributionsH)(x1, x2, x3); @@ -1140,33 +1140,33 @@ void MultiphaseCumulantLBMKernel::calculate(int step) } } - (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3) = h[D3Q27System::INV_E]; - (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3) = h[D3Q27System::INV_N]; - (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3) = h[D3Q27System::INV_T]; - (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3) = h[D3Q27System::INV_NE]; - (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3) = h[D3Q27System::INV_NW]; - (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3) = h[D3Q27System::INV_TE]; - (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3) = h[D3Q27System::INV_TW]; - (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3) = h[D3Q27System::INV_TN]; - (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3) = h[D3Q27System::INV_TS]; - (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3) = h[D3Q27System::INV_TNE]; - (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3) = h[D3Q27System::INV_TNW]; - (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3) = h[D3Q27System::INV_TSE]; - (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3) = h[D3Q27System::INV_TSW]; - - (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3) = h[D3Q27System::INV_W]; - (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3) = h[D3Q27System::INV_S]; - (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p) = h[D3Q27System::INV_B]; - (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3) = h[D3Q27System::INV_SW]; - (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3) = h[D3Q27System::INV_SE]; - (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p) = h[D3Q27System::INV_BW]; - (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p) = h[D3Q27System::INV_BE]; - (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p) = h[D3Q27System::INV_BS]; - (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p) = h[D3Q27System::INV_BN]; - (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p) = h[D3Q27System::INV_BSW]; - (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p) = h[D3Q27System::INV_BSE]; - (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p) = h[D3Q27System::INV_BNW]; - (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p) = h[D3Q27System::INV_BNE]; + (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3) = h[D3Q27System::INV_P00]; + (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3) = h[D3Q27System::INV_0P0]; + (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3) = h[D3Q27System::INV_00P]; + (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3) = h[D3Q27System::INV_PP0]; + (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3) = h[D3Q27System::INV_MP0]; + (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3) = h[D3Q27System::INV_P0P]; + (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3) = h[D3Q27System::INV_M0P]; + (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3) = h[D3Q27System::INV_0PP]; + (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3) = h[D3Q27System::INV_0MP]; + (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3) = h[D3Q27System::INV_PPP]; + (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3) = h[D3Q27System::INV_MPP]; + (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3) = h[D3Q27System::INV_PMP]; + (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3) = h[D3Q27System::INV_MMP]; + + (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3) = h[D3Q27System::INV_M00]; + (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3) = h[D3Q27System::INV_0M0]; + (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p) = h[D3Q27System::INV_00M]; + (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3) = h[D3Q27System::INV_MM0]; + (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3) = h[D3Q27System::INV_PM0]; + (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p) = h[D3Q27System::INV_M0M]; + (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p) = h[D3Q27System::INV_P0M]; + (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p) = h[D3Q27System::INV_0MM]; + (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p) = h[D3Q27System::INV_0PM]; + (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p) = h[D3Q27System::INV_MMM]; + (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p) = h[D3Q27System::INV_PMM]; + (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p) = h[D3Q27System::INV_MPM]; + (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p) = h[D3Q27System::INV_PPM]; (*this->zeroDistributionsH)(x1, x2, x3) = h[D3Q27System::DIR_000]; @@ -1242,33 +1242,33 @@ void MultiphaseCumulantLBMKernel::computePhasefield() int x2p = x2 + 1; int x3p = x3 + 1; - h[E] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); + h[DIR_P00] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); h[N] = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); h[T] = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); h[NE] = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); - h[NW] = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); - h[TE] = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); - h[TW] = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); - h[TN] = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); - h[TS] = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); - h[TNE] = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); - h[TNW] = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); - h[TSE] = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); - h[TSW] = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); + h[DIR_MP0] = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); + h[DIR_P0P] = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); + h[DIR_M0P] = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); + h[DIR_0PP] = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); + h[DIR_0MP] = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); + h[DIR_PPP] = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); + h[DIR_MPP] = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); + h[DIR_PMP] = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); + h[DIR_MMP] = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); h[W] = (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3); h[S] = (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3); h[B] = (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p); - h[SW] = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); - h[SE] = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); - h[BW] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); - h[BE] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); - h[BS] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); - h[BN] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); - h[BSW] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); - h[BSE] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); - h[BNW] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); - h[BNE] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); + h[DIR_MM0] = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); + h[DIR_PM0] = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); + h[DIR_M0M] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); + h[DIR_P0M] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); + h[DIR_0MM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); + h[DIR_0PM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); + h[DIR_MMM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); + h[DIR_PMM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); + h[DIR_MPM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); + h[DIR_PPM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); h[DIR_000] = (*this->zeroDistributionsH)(x1, x2, x3); } diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp index 50885d680735b065beeb87912bb4647de2a58b8d..04cfbdf2d068f6cb4dbb01cd844c4ab12ac4a3c9 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp @@ -767,7 +767,7 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); // LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); - //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::B' ) + //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); @@ -1475,48 +1475,48 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX1_phi() { using namespace D3Q27System; - return 3.0* ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) + (phi[BSE] - phi[TNW])) + ((phi[TSE] - phi[BNW]) + (phi[BNE] - phi[TSW]))) - + WEIGTH[NE] * (((phi[TE] - phi[BW]) + (phi[BE] - phi[TW])) + ((phi[SE] - phi[NW]) + (phi[NE] - phi[SW])))) + - +WEIGTH[N] * (phi[E] - phi[W])); + return 3.0* ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) + (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PMP] - phi[DIR_MPM]) + (phi[DIR_PPM] - phi[DIR_MMP]))) + + WEIGTH[NE] * (((phi[DIR_P0P] - phi[DIR_M0M]) + (phi[DIR_P0M] - phi[DIR_M0P])) + ((phi[DIR_PM0] - phi[DIR_MP0]) + (phi[NE] - phi[DIR_MM0])))) + + +WEIGTH[N] * (phi[DIR_P00] - phi[W])); } LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX2_phi() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) - (phi[BSE] - phi[TNW])) + ((phi[BNE] - phi[TSW])- (phi[TSE] - phi[BNW]))) - + WEIGTH[NE] * (((phi[TN] - phi[BS]) + (phi[BN] - phi[TS])) + ((phi[NE] - phi[SW])- (phi[SE] - phi[NW])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) - (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PPM] - phi[DIR_MMP])- (phi[DIR_PMP] - phi[DIR_MPM]))) + + WEIGTH[NE] * (((phi[DIR_0PP] - phi[DIR_0MM]) + (phi[DIR_0PM] - phi[DIR_0MP])) + ((phi[NE] - phi[DIR_MM0])- (phi[DIR_PM0] - phi[DIR_MP0])))) + +WEIGTH[N] * (phi[N] - phi[S])); } LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX3_phi() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) - (phi[BSE] - phi[TNW])) + ((phi[TSE] - phi[BNW]) - (phi[BNE] - phi[TSW]))) - + WEIGTH[NE] * (((phi[TE] - phi[BW]) - (phi[BE] - phi[TW])) + ((phi[TS] - phi[BN]) + (phi[TN] - phi[BS])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) - (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PMP] - phi[DIR_MPM]) - (phi[DIR_PPM] - phi[DIR_MMP]))) + + WEIGTH[NE] * (((phi[DIR_P0P] - phi[DIR_M0M]) - (phi[DIR_P0M] - phi[DIR_M0P])) + ((phi[DIR_0MP] - phi[DIR_0PM]) + (phi[DIR_0PP] - phi[DIR_0MM])))) + +WEIGTH[N] * (phi[T] - phi[B])); } LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX1_phi2() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi2[TNE] - phi2[BSW]) + (phi2[BSE] - phi2[TNW])) + ((phi2[TSE] - phi2[BNW]) + (phi2[BNE] - phi2[TSW]))) - + WEIGTH[NE] * (((phi2[TE] - phi2[BW]) + (phi2[BE] - phi2[TW])) + ((phi2[SE] - phi2[NW]) + (phi2[NE] - phi2[SW])))) + - +WEIGTH[N] * (phi2[E] - phi2[W])); + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi2[DIR_PPP] - phi2[DIR_MMM]) + (phi2[DIR_PMM] - phi2[DIR_MPP])) + ((phi2[DIR_PMP] - phi2[DIR_MPM]) + (phi2[DIR_PPM] - phi2[DIR_MMP]))) + + WEIGTH[NE] * (((phi2[DIR_P0P] - phi2[DIR_M0M]) + (phi2[DIR_P0M] - phi2[DIR_M0P])) + ((phi2[DIR_PM0] - phi2[DIR_MP0]) + (phi2[NE] - phi2[DIR_MM0])))) + + +WEIGTH[N] * (phi2[DIR_P00] - phi2[W])); } LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX2_phi2() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi2[TNE] - phi2[BSW]) - (phi2[BSE] - phi2[TNW])) + ((phi2[BNE] - phi2[TSW]) - (phi2[TSE] - phi2[BNW]))) - + WEIGTH[NE] * (((phi2[TN] - phi2[BS]) + (phi2[BN] - phi2[TS])) + ((phi2[NE] - phi2[SW]) - (phi2[SE] - phi2[NW])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi2[DIR_PPP] - phi2[DIR_MMM]) - (phi2[DIR_PMM] - phi2[DIR_MPP])) + ((phi2[DIR_PPM] - phi2[DIR_MMP]) - (phi2[DIR_PMP] - phi2[DIR_MPM]))) + + WEIGTH[NE] * (((phi2[DIR_0PP] - phi2[DIR_0MM]) + (phi2[DIR_0PM] - phi2[DIR_0MP])) + ((phi2[NE] - phi2[DIR_MM0]) - (phi2[DIR_PM0] - phi2[DIR_MP0])))) + +WEIGTH[N] * (phi2[N] - phi2[S])); } LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX3_phi2() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi2[TNE] - phi2[BSW]) - (phi2[BSE] - phi2[TNW])) + ((phi2[TSE] - phi2[BNW]) - (phi2[BNE] - phi2[TSW]))) - + WEIGTH[NE] * (((phi2[TE] - phi2[BW]) - (phi2[BE] - phi2[TW])) + ((phi2[TS] - phi2[BN]) + (phi2[TN] - phi2[BS])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi2[DIR_PPP] - phi2[DIR_MMM]) - (phi2[DIR_PMM] - phi2[DIR_MPP])) + ((phi2[DIR_PMP] - phi2[DIR_MPM]) - (phi2[DIR_PPM] - phi2[DIR_MMP]))) + + WEIGTH[NE] * (((phi2[DIR_P0P] - phi2[DIR_M0M]) - (phi2[DIR_P0M] - phi2[DIR_M0P])) + ((phi2[DIR_0MP] - phi2[DIR_0PM]) + (phi2[DIR_0PP] - phi2[DIR_0MM])))) + +WEIGTH[N] * (phi2[T] - phi2[B])); } @@ -1524,17 +1524,17 @@ LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::nabla2_phi() { using namespace D3Q27System; LBMReal sum = 0.0; - sum += WEIGTH[TNE] * ((((phi[TNE] - phi[DIR_000]) + (phi[BSW] - phi[DIR_000])) + ((phi[TSW] - phi[DIR_000]) + (phi[BNE] - phi[DIR_000]))) - + (((phi[TNW] - phi[DIR_000]) + (phi[BSE] - phi[DIR_000])) + ((phi[TSE] - phi[DIR_000]) + (phi[BNW] - phi[DIR_000])))); - sum += WEIGTH[TN] * ( - (((phi[TN] - phi[DIR_000]) + (phi[BS] - phi[DIR_000])) + ((phi[TS] - phi[DIR_000]) + (phi[BN] - phi[DIR_000]))) - + (((phi[TE] - phi[DIR_000]) + (phi[BW] - phi[DIR_000])) + ((phi[TW] - phi[DIR_000]) + (phi[BE] - phi[DIR_000]))) - + (((phi[NE] - phi[DIR_000]) + (phi[SW] - phi[DIR_000])) + ((phi[NW] - phi[DIR_000]) + (phi[SE] - phi[DIR_000]))) + sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); + sum += WEIGTH[DIR_0PP] * ( + (((phi[DIR_0PP] - phi[DIR_000]) + (phi[DIR_0MM] - phi[DIR_000])) + ((phi[DIR_0MP] - phi[DIR_000]) + (phi[DIR_0PM] - phi[DIR_000]))) + + (((phi[DIR_P0P] - phi[DIR_000]) + (phi[DIR_M0M] - phi[DIR_000])) + ((phi[DIR_M0P] - phi[DIR_000]) + (phi[DIR_P0M] - phi[DIR_000]))) + + (((phi[NE] - phi[DIR_000]) + (phi[DIR_MM0] - phi[DIR_000])) + ((phi[DIR_MP0] - phi[DIR_000]) + (phi[DIR_PM0] - phi[DIR_000]))) ); sum += WEIGTH[T] * ( ((phi[T] - phi[DIR_000]) + (phi[B] - phi[DIR_000])) + ((phi[N] - phi[DIR_000]) + (phi[S] - phi[DIR_000])) - + ((phi[E] - phi[DIR_000]) + (phi[W] - phi[DIR_000])) + + ((phi[DIR_P00] - phi[DIR_000]) + (phi[W] - phi[DIR_000])) ); return 6.0 * sum; @@ -1562,33 +1562,33 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::computePhasefield() int x2p = x2 + 1; int x3p = x3 + 1; - h[E] = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); + h[DIR_P00] = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); h[N] = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); h[T] = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); h[NE] = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); - h[NW] = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); - h[TE] = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); - h[TW] = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); - h[TN] = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); - h[TS] = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); - h[TNE] = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); - h[TNW] = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); - h[TSE] = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); - h[TSW] = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); + h[DIR_MP0] = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); + h[DIR_P0P] = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); + h[DIR_M0P] = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); + h[DIR_0PP] = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); + h[DIR_0MP] = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); + h[DIR_PPP] = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); + h[DIR_MPP] = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); + h[DIR_PMP] = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); + h[DIR_MMP] = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); h[W] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); h[S] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); h[B] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); - h[SW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); - h[SE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); - h[BW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); - h[BE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); - h[BS] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); - h[BN] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); - h[BSW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); - h[BSE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); - h[BNW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); - h[BNE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); + h[DIR_MM0] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); + h[DIR_PM0] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); + h[DIR_M0M] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); + h[DIR_P0M] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); + h[DIR_0MM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); + h[DIR_0PM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); + h[DIR_MMM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); + h[DIR_PMM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); + h[DIR_MPM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); + h[DIR_PPM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); h[DIR_000] = (*this->zeroDistributionsH1)(x1, x2, x3); } diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.cpp index 2b68a072da69ffb97a9c597675961d676c0ff2ed..e5fcc71d8ca2f6d2461fbb523e64e9f60f526849 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.cpp @@ -884,7 +884,7 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); - //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::B' ) + //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); @@ -1624,24 +1624,24 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) LBMReal MultiphasePressureFilterLBMKernel::gradX1_phi() { using namespace D3Q27System; - return 3.0* ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) + (phi[BSE] - phi[TNW])) + ((phi[TSE] - phi[BNW]) + (phi[BNE] - phi[TSW]))) - + WEIGTH[NE] * (((phi[TE] - phi[BW]) + (phi[BE] - phi[TW])) + ((phi[SE] - phi[NW]) + (phi[NE] - phi[SW])))) + - +WEIGTH[N] * (phi[E] - phi[W])); + return 3.0* ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) + (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PMP] - phi[DIR_MPM]) + (phi[DIR_PPM] - phi[DIR_MMP]))) + + WEIGTH[NE] * (((phi[DIR_P0P] - phi[DIR_M0M]) + (phi[DIR_P0M] - phi[DIR_M0P])) + ((phi[DIR_PM0] - phi[DIR_MP0]) + (phi[NE] - phi[DIR_MM0])))) + + +WEIGTH[N] * (phi[DIR_P00] - phi[W])); } LBMReal MultiphasePressureFilterLBMKernel::gradX2_phi() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) - (phi[BSE] - phi[TNW])) + ((phi[BNE] - phi[TSW])- (phi[TSE] - phi[BNW]))) - + WEIGTH[NE] * (((phi[TN] - phi[BS]) + (phi[BN] - phi[TS])) + ((phi[NE] - phi[SW])- (phi[SE] - phi[NW])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) - (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PPM] - phi[DIR_MMP])- (phi[DIR_PMP] - phi[DIR_MPM]))) + + WEIGTH[NE] * (((phi[DIR_0PP] - phi[DIR_0MM]) + (phi[DIR_0PM] - phi[DIR_0MP])) + ((phi[NE] - phi[DIR_MM0])- (phi[DIR_PM0] - phi[DIR_MP0])))) + +WEIGTH[N] * (phi[N] - phi[S])); } LBMReal MultiphasePressureFilterLBMKernel::gradX3_phi() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) - (phi[BSE] - phi[TNW])) + ((phi[TSE] - phi[BNW]) - (phi[BNE] - phi[TSW]))) - + WEIGTH[NE] * (((phi[TE] - phi[BW]) - (phi[BE] - phi[TW])) + ((phi[TS] - phi[BN]) + (phi[TN] - phi[BS])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) - (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PMP] - phi[DIR_MPM]) - (phi[DIR_PPM] - phi[DIR_MMP]))) + + WEIGTH[NE] * (((phi[DIR_P0P] - phi[DIR_M0M]) - (phi[DIR_P0M] - phi[DIR_M0P])) + ((phi[DIR_0MP] - phi[DIR_0PM]) + (phi[DIR_0PP] - phi[DIR_0MM])))) + +WEIGTH[N] * (phi[T] - phi[B])); } @@ -1649,17 +1649,17 @@ LBMReal MultiphasePressureFilterLBMKernel::nabla2_phi() { using namespace D3Q27System; LBMReal sum = 0.0; - sum += WEIGTH[TNE] * ((((phi[TNE] - phi[DIR_000]) + (phi[BSW] - phi[DIR_000])) + ((phi[TSW] - phi[DIR_000]) + (phi[BNE] - phi[DIR_000]))) - + (((phi[TNW] - phi[DIR_000]) + (phi[BSE] - phi[DIR_000])) + ((phi[TSE] - phi[DIR_000]) + (phi[BNW] - phi[DIR_000])))); - sum += WEIGTH[TN] * ( - (((phi[TN] - phi[DIR_000]) + (phi[BS] - phi[DIR_000])) + ((phi[TS] - phi[DIR_000]) + (phi[BN] - phi[DIR_000]))) - + (((phi[TE] - phi[DIR_000]) + (phi[BW] - phi[DIR_000])) + ((phi[TW] - phi[DIR_000]) + (phi[BE] - phi[DIR_000]))) - + (((phi[NE] - phi[DIR_000]) + (phi[SW] - phi[DIR_000])) + ((phi[NW] - phi[DIR_000]) + (phi[SE] - phi[DIR_000]))) + sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); + sum += WEIGTH[DIR_0PP] * ( + (((phi[DIR_0PP] - phi[DIR_000]) + (phi[DIR_0MM] - phi[DIR_000])) + ((phi[DIR_0MP] - phi[DIR_000]) + (phi[DIR_0PM] - phi[DIR_000]))) + + (((phi[DIR_P0P] - phi[DIR_000]) + (phi[DIR_M0M] - phi[DIR_000])) + ((phi[DIR_M0P] - phi[DIR_000]) + (phi[DIR_P0M] - phi[DIR_000]))) + + (((phi[NE] - phi[DIR_000]) + (phi[DIR_MM0] - phi[DIR_000])) + ((phi[DIR_MP0] - phi[DIR_000]) + (phi[DIR_PM0] - phi[DIR_000]))) ); sum += WEIGTH[T] * ( ((phi[T] - phi[DIR_000]) + (phi[B] - phi[DIR_000])) + ((phi[N] - phi[DIR_000]) + (phi[S] - phi[DIR_000])) - + ((phi[E] - phi[DIR_000]) + (phi[W] - phi[DIR_000])) + + ((phi[DIR_P00] - phi[DIR_000]) + (phi[W] - phi[DIR_000])) ); return 6.0 * sum; @@ -1687,33 +1687,33 @@ void MultiphasePressureFilterLBMKernel::computePhasefield() int x2p = x2 + 1; int x3p = x3 + 1; - h[E] = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); + h[DIR_P00] = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); h[N] = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); h[T] = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); h[NE] = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); - h[NW] = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); - h[TE] = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); - h[TW] = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); - h[TN] = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); - h[TS] = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); - h[TNE] = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); - h[TNW] = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); - h[TSE] = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); - h[TSW] = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); + h[DIR_MP0] = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); + h[DIR_P0P] = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); + h[DIR_M0P] = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); + h[DIR_0PP] = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); + h[DIR_0MP] = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); + h[DIR_PPP] = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); + h[DIR_MPP] = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); + h[DIR_PMP] = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); + h[DIR_MMP] = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); h[W] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); h[S] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); h[B] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); - h[SW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); - h[SE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); - h[BW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); - h[BE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); - h[BS] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); - h[BN] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); - h[BSW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); - h[BSE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); - h[BNW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); - h[BNE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); + h[DIR_MM0] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); + h[DIR_PM0] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); + h[DIR_M0M] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); + h[DIR_P0M] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); + h[DIR_0MM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); + h[DIR_0PM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); + h[DIR_MMM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); + h[DIR_PMM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); + h[DIR_MPM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); + h[DIR_PPM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); h[DIR_000] = (*this->zeroDistributionsH1)(x1, x2, x3); } diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.cpp index f251dfafa1657ef3b3ab66c367bf678a6ce35b2c..caa9272f5910d2c1b12b96e538a119d993f1ca37 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.cpp @@ -654,7 +654,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) //////// // LBMReal divAfterSource= - //( mfcbb + 3.0 * (0.5 * forcingTerm[E]) / rho ) *((vvxF-1)*(vvxF-1)+(vvyF) *(vvyF) +(vvzF) *(vvzF)-1)+ + //( mfcbb + 3.0 * (0.5 * forcingTerm[DIR_P00]) / rho ) *((vvxF-1)*(vvxF-1)+(vvyF) *(vvyF) +(vvzF) *(vvzF)-1)+ //( mfbcb + 3.0 * (0.5 * forcingTerm[N]) / rho ) *((vvxF) *(vvxF) +(vvyF-1)*(vvyF-1)+(vvzF) *(vvzF)-1)+ //( mfbbc + 3.0 * (0.5 * forcingTerm[T]) / rho ) *((vvxF) *(vvxF) +(vvyF) *(vvyF) +(vvzF-1)*(vvzF-1)-1)+ //( mfccb + 3.0 * (0.5 * forcingTerm[NE]) / rho ) *((vvxF-1)*(vvxF-1)+(vvyF-1)*(vvyF-1)+(vvzF) *(vvzF)-1)+ @@ -717,7 +717,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) //if (fabs(divAfterSource - divBeforeSource)/(fabs(divAfterSource) + fabs(divBeforeSource)+1e-10) > 1e-5) { // LBMReal scaleDiv =0.95+(1-0.95)* (divBeforeSource) / (divBeforeSource - divAfterSource); - // forcingTerm[E] *=scaleDiv; + // forcingTerm[DIR_P00] *=scaleDiv; // forcingTerm[N] *=scaleDiv; // forcingTerm[T] *=scaleDiv; // forcingTerm[NE] *=scaleDiv; @@ -748,32 +748,32 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) //////// - mfcbb +=3.0 * ( 0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; + mfcbb +=3.0 * ( 0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; mfbcb +=3.0 * ( 0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; mfbbc +=3.0 * ( 0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; mfccb +=3.0 * ( 0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; - mfacb +=3.0 * ( 0.5 * forcingTerm[NW]) / rho; //-(3.0*p1 - rho)*WEIGTH[NW ]; - mfcbc +=3.0 * ( 0.5 * forcingTerm[TE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TE ]; - mfabc +=3.0 * ( 0.5 * forcingTerm[TW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TW ]; - mfbcc +=3.0 * ( 0.5 * forcingTerm[TN]) / rho; //-(3.0*p1 - rho)*WEIGTH[TN ]; - mfbac +=3.0 * ( 0.5 * forcingTerm[TS]) / rho; //-(3.0*p1 - rho)*WEIGTH[TS ]; - mfccc +=3.0 * ( 0.5 * forcingTerm[TNE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNE]; - mfacc +=3.0 * ( 0.5 * forcingTerm[TNW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNW]; - mfcac +=3.0 * ( 0.5 * forcingTerm[TSE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSE]; - mfaac +=3.0 * ( 0.5 * forcingTerm[TSW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSW]; + mfacb +=3.0 * ( 0.5 * forcingTerm[DIR_MP0]) / rho; //-(3.0*p1 - rho)*WEIGTH[NW ]; + mfcbc +=3.0 * ( 0.5 * forcingTerm[DIR_P0P]) / rho; //-(3.0*p1 - rho)*WEIGTH[TE ]; + mfabc +=3.0 * ( 0.5 * forcingTerm[DIR_M0P]) / rho; //-(3.0*p1 - rho)*WEIGTH[TW ]; + mfbcc +=3.0 * ( 0.5 * forcingTerm[DIR_0PP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TN ]; + mfbac +=3.0 * ( 0.5 * forcingTerm[DIR_0MP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TS ]; + mfccc +=3.0 * ( 0.5 * forcingTerm[DIR_PPP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNE]; + mfacc +=3.0 * ( 0.5 * forcingTerm[DIR_MPP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNW]; + mfcac +=3.0 * ( 0.5 * forcingTerm[DIR_PMP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSE]; + mfaac +=3.0 * ( 0.5 * forcingTerm[DIR_MMP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSW]; mfabb +=3.0 * ( 0.5 * forcingTerm[W]) / rho; //-(3.0*p1 - rho)*WEIGTH[W ]; mfbab +=3.0 * ( 0.5 * forcingTerm[S]) / rho; //-(3.0*p1 - rho)*WEIGTH[S ]; mfbba +=3.0 * ( 0.5 * forcingTerm[B]) / rho; //-(3.0*p1 - rho)*WEIGTH[B ]; - mfaab +=3.0 * ( 0.5 * forcingTerm[SW]) / rho; //-(3.0*p1 - rho)*WEIGTH[SW ]; - mfcab +=3.0 * ( 0.5 * forcingTerm[SE]) / rho; //-(3.0*p1 - rho)*WEIGTH[SE ]; - mfaba +=3.0 * ( 0.5 * forcingTerm[BW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BW ]; - mfcba +=3.0 * ( 0.5 * forcingTerm[BE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BE ]; - mfbaa +=3.0 * ( 0.5 * forcingTerm[BS]) / rho; //-(3.0*p1 - rho)*WEIGTH[BS ]; - mfbca +=3.0 * ( 0.5 * forcingTerm[BN]) / rho; //-(3.0*p1 - rho)*WEIGTH[BN ]; - mfaaa +=3.0 * ( 0.5 * forcingTerm[BSW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSW]; - mfcaa +=3.0 * ( 0.5 * forcingTerm[BSE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSE]; - mfaca +=3.0 * ( 0.5 * forcingTerm[BNW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNW]; - mfcca +=3.0 * ( 0.5 * forcingTerm[BNE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNE]; + mfaab +=3.0 * ( 0.5 * forcingTerm[DIR_MM0]) / rho; //-(3.0*p1 - rho)*WEIGTH[SW ]; + mfcab +=3.0 * ( 0.5 * forcingTerm[DIR_PM0]) / rho; //-(3.0*p1 - rho)*WEIGTH[SE ]; + mfaba +=3.0 * ( 0.5 * forcingTerm[DIR_M0M]) / rho; //-(3.0*p1 - rho)*WEIGTH[BW ]; + mfcba +=3.0 * ( 0.5 * forcingTerm[DIR_P0M]) / rho; //-(3.0*p1 - rho)*WEIGTH[BE ]; + mfbaa +=3.0 * ( 0.5 * forcingTerm[DIR_0MM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BS ]; + mfbca +=3.0 * ( 0.5 * forcingTerm[DIR_0PM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BN ]; + mfaaa +=3.0 * ( 0.5 * forcingTerm[DIR_MMM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSW]; + mfcaa +=3.0 * ( 0.5 * forcingTerm[DIR_PMM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSE]; + mfaca +=3.0 * ( 0.5 * forcingTerm[DIR_MPM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNW]; + mfcca +=3.0 * ( 0.5 * forcingTerm[DIR_PPM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNE]; mfbbb +=3.0 * ( 0.5 * forcingTerm[DIR_000]) / rho; //- (3.0*p1 - rho)*WEIGTH[REST] //-------------------------------------------------------- @@ -1086,7 +1086,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); - //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::B' ) + //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); @@ -1619,32 +1619,32 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) /////classical source term 8.4.2021 - mfcbb += 3.0 * (0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; + mfcbb += 3.0 * (0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; mfbcb += 3.0 * (0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; mfbbc += 3.0 * (0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; mfccb += 3.0 * (0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; - mfacb += 3.0 * (0.5 * forcingTerm[NW]) / rho; //-(3.0*p1 - rho)*WEIGTH[NW ]; - mfcbc += 3.0 * (0.5 * forcingTerm[TE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TE ]; - mfabc += 3.0 * (0.5 * forcingTerm[TW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TW ]; - mfbcc += 3.0 * (0.5 * forcingTerm[TN]) / rho; //-(3.0*p1 - rho)*WEIGTH[TN ]; - mfbac += 3.0 * (0.5 * forcingTerm[TS]) / rho; //-(3.0*p1 - rho)*WEIGTH[TS ]; - mfccc += 3.0 * (0.5 * forcingTerm[TNE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNE]; - mfacc += 3.0 * (0.5 * forcingTerm[TNW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNW]; - mfcac += 3.0 * (0.5 * forcingTerm[TSE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSE]; - mfaac += 3.0 * (0.5 * forcingTerm[TSW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSW]; + mfacb += 3.0 * (0.5 * forcingTerm[DIR_MP0]) / rho; //-(3.0*p1 - rho)*WEIGTH[NW ]; + mfcbc += 3.0 * (0.5 * forcingTerm[DIR_P0P]) / rho; //-(3.0*p1 - rho)*WEIGTH[TE ]; + mfabc += 3.0 * (0.5 * forcingTerm[DIR_M0P]) / rho; //-(3.0*p1 - rho)*WEIGTH[TW ]; + mfbcc += 3.0 * (0.5 * forcingTerm[DIR_0PP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TN ]; + mfbac += 3.0 * (0.5 * forcingTerm[DIR_0MP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TS ]; + mfccc += 3.0 * (0.5 * forcingTerm[DIR_PPP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNE]; + mfacc += 3.0 * (0.5 * forcingTerm[DIR_MPP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNW]; + mfcac += 3.0 * (0.5 * forcingTerm[DIR_PMP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSE]; + mfaac += 3.0 * (0.5 * forcingTerm[DIR_MMP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSW]; mfabb += 3.0 * (0.5 * forcingTerm[W]) / rho; //-(3.0*p1 - rho)*WEIGTH[W ]; mfbab += 3.0 * (0.5 * forcingTerm[S]) / rho; //-(3.0*p1 - rho)*WEIGTH[S ]; mfbba += 3.0 * (0.5 * forcingTerm[B]) / rho; //-(3.0*p1 - rho)*WEIGTH[B ]; - mfaab += 3.0 * (0.5 * forcingTerm[SW]) / rho; //-(3.0*p1 - rho)*WEIGTH[SW ]; - mfcab += 3.0 * (0.5 * forcingTerm[SE]) / rho; //-(3.0*p1 - rho)*WEIGTH[SE ]; - mfaba += 3.0 * (0.5 * forcingTerm[BW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BW ]; - mfcba += 3.0 * (0.5 * forcingTerm[BE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BE ]; - mfbaa += 3.0 * (0.5 * forcingTerm[BS]) / rho; //-(3.0*p1 - rho)*WEIGTH[BS ]; - mfbca += 3.0 * (0.5 * forcingTerm[BN]) / rho; //-(3.0*p1 - rho)*WEIGTH[BN ]; - mfaaa += 3.0 * (0.5 * forcingTerm[BSW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSW]; - mfcaa += 3.0 * (0.5 * forcingTerm[BSE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSE]; - mfaca += 3.0 * (0.5 * forcingTerm[BNW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNW]; - mfcca += 3.0 * (0.5 * forcingTerm[BNE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNE]; + mfaab += 3.0 * (0.5 * forcingTerm[DIR_MM0]) / rho; //-(3.0*p1 - rho)*WEIGTH[SW ]; + mfcab += 3.0 * (0.5 * forcingTerm[DIR_PM0]) / rho; //-(3.0*p1 - rho)*WEIGTH[SE ]; + mfaba += 3.0 * (0.5 * forcingTerm[DIR_M0M]) / rho; //-(3.0*p1 - rho)*WEIGTH[BW ]; + mfcba += 3.0 * (0.5 * forcingTerm[DIR_P0M]) / rho; //-(3.0*p1 - rho)*WEIGTH[BE ]; + mfbaa += 3.0 * (0.5 * forcingTerm[DIR_0MM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BS ]; + mfbca += 3.0 * (0.5 * forcingTerm[DIR_0PM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BN ]; + mfaaa += 3.0 * (0.5 * forcingTerm[DIR_MMM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSW]; + mfcaa += 3.0 * (0.5 * forcingTerm[DIR_PMM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSE]; + mfaca += 3.0 * (0.5 * forcingTerm[DIR_MPM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNW]; + mfcca += 3.0 * (0.5 * forcingTerm[DIR_PPM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNE]; mfbbb += 3.0 * (0.5 * forcingTerm[DIR_000]) / rho; //- (3.0*p1 - rho)*WEIGTH[REST] @@ -1740,7 +1740,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) // // //-------------------------------------------------------- // -// mfcbb = 3.0 * (mfcbb + 0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; +// mfcbb = 3.0 * (mfcbb + 0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; // mfbcb = 3.0 * (mfbcb + 0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; // mfbbc = 3.0 * (mfbbc + 0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; // mfccb = 3.0 * (mfccb + 0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; @@ -2448,7 +2448,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) // } //#endif // -// mfcbb = rho * c1o3 * (mfcbb) + 0.5 * forcingTerm[E]; +// mfcbb = rho * c1o3 * (mfcbb) + 0.5 * forcingTerm[DIR_P00]; // mfbcb = rho * c1o3 * (mfbcb) + 0.5 * forcingTerm[N]; // mfbbc = rho * c1o3 * (mfbbc) + 0.5 * forcingTerm[T]; // mfccb = rho * c1o3 * (mfccb) + 0.5 * forcingTerm[NE]; @@ -2823,7 +2823,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) /////////////////// PHASE-FIELD BGK SOLVER /////////////////////////////// //using namespace D3Q27System; - // h[E] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); + // h[DIR_P00] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); // h[N] = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); // h[T] = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); // h[NE] = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); @@ -2921,9 +2921,9 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) LBMReal MultiphaseScratchCumulantLBMKernel::gradX1_phi() { using namespace D3Q27System; - return 3.0* ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) + (phi[BSE] - phi[TNW])) + ((phi[TSE] - phi[BNW]) + (phi[BNE] - phi[TSW]))) - + WEIGTH[NE] * (((phi[TE] - phi[BW]) + (phi[BE] - phi[TW])) + ((phi[SE] - phi[NW]) + (phi[NE] - phi[SW])))) + - +WEIGTH[N] * (phi[E] - phi[W])); + return 3.0* ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) + (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PMP] - phi[DIR_MPM]) + (phi[DIR_PPM] - phi[DIR_MMP]))) + + WEIGTH[NE] * (((phi[DIR_P0P] - phi[DIR_M0M]) + (phi[DIR_P0M] - phi[DIR_M0P])) + ((phi[DIR_PM0] - phi[DIR_MP0]) + (phi[NE] - phi[DIR_MM0])))) + + +WEIGTH[N] * (phi[DIR_P00] - phi[W])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { // sum += WEIGTH[k] * DX1[k] * phi[k]; @@ -2934,8 +2934,8 @@ LBMReal MultiphaseScratchCumulantLBMKernel::gradX1_phi() LBMReal MultiphaseScratchCumulantLBMKernel::gradX2_phi() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) - (phi[BSE] - phi[TNW])) + ((phi[BNE] - phi[TSW])- (phi[TSE] - phi[BNW]))) - + WEIGTH[NE] * (((phi[TN] - phi[BS]) + (phi[BN] - phi[TS])) + ((phi[NE] - phi[SW])- (phi[SE] - phi[NW])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) - (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PPM] - phi[DIR_MMP])- (phi[DIR_PMP] - phi[DIR_MPM]))) + + WEIGTH[NE] * (((phi[DIR_0PP] - phi[DIR_0MM]) + (phi[DIR_0PM] - phi[DIR_0MP])) + ((phi[NE] - phi[DIR_MM0])- (phi[DIR_PM0] - phi[DIR_MP0])))) + +WEIGTH[N] * (phi[N] - phi[S])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -2947,8 +2947,8 @@ LBMReal MultiphaseScratchCumulantLBMKernel::gradX2_phi() LBMReal MultiphaseScratchCumulantLBMKernel::gradX3_phi() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) - (phi[BSE] - phi[TNW])) + ((phi[TSE] - phi[BNW]) - (phi[BNE] - phi[TSW]))) - + WEIGTH[NE] * (((phi[TE] - phi[BW]) - (phi[BE] - phi[TW])) + ((phi[TS] - phi[BN]) + (phi[TN] - phi[BS])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) - (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PMP] - phi[DIR_MPM]) - (phi[DIR_PPM] - phi[DIR_MMP]))) + + WEIGTH[NE] * (((phi[DIR_P0P] - phi[DIR_M0M]) - (phi[DIR_P0M] - phi[DIR_M0P])) + ((phi[DIR_0MP] - phi[DIR_0PM]) + (phi[DIR_0PP] - phi[DIR_0MM])))) + +WEIGTH[N] * (phi[T] - phi[B])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -2961,17 +2961,17 @@ LBMReal MultiphaseScratchCumulantLBMKernel::nabla2_phi() { using namespace D3Q27System; LBMReal sum = 0.0; - sum += WEIGTH[TNE] * ((((phi[TNE] - phi[DIR_000]) + (phi[BSW] - phi[DIR_000])) + ((phi[TSW] - phi[DIR_000]) + (phi[BNE] - phi[DIR_000]))) - + (((phi[TNW] - phi[DIR_000]) + (phi[BSE] - phi[DIR_000])) + ((phi[TSE] - phi[DIR_000]) + (phi[BNW] - phi[DIR_000])))); - sum += WEIGTH[TN] * ( - (((phi[TN] - phi[DIR_000]) + (phi[BS] - phi[DIR_000])) + ((phi[TS] - phi[DIR_000]) + (phi[BN] - phi[DIR_000]))) - + (((phi[TE] - phi[DIR_000]) + (phi[BW] - phi[DIR_000])) + ((phi[TW] - phi[DIR_000]) + (phi[BE] - phi[DIR_000]))) - + (((phi[NE] - phi[DIR_000]) + (phi[SW] - phi[DIR_000])) + ((phi[NW] - phi[DIR_000]) + (phi[SE] - phi[DIR_000]))) + sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); + sum += WEIGTH[DIR_0PP] * ( + (((phi[DIR_0PP] - phi[DIR_000]) + (phi[DIR_0MM] - phi[DIR_000])) + ((phi[DIR_0MP] - phi[DIR_000]) + (phi[DIR_0PM] - phi[DIR_000]))) + + (((phi[DIR_P0P] - phi[DIR_000]) + (phi[DIR_M0M] - phi[DIR_000])) + ((phi[DIR_M0P] - phi[DIR_000]) + (phi[DIR_P0M] - phi[DIR_000]))) + + (((phi[NE] - phi[DIR_000]) + (phi[DIR_MM0] - phi[DIR_000])) + ((phi[DIR_MP0] - phi[DIR_000]) + (phi[DIR_PM0] - phi[DIR_000]))) ); sum += WEIGTH[T] * ( ((phi[T] - phi[DIR_000]) + (phi[B] - phi[DIR_000])) + ((phi[N] - phi[DIR_000]) + (phi[S] - phi[DIR_000])) - + ((phi[E] - phi[DIR_000]) + (phi[W] - phi[DIR_000])) + + ((phi[DIR_P00] - phi[DIR_000]) + (phi[W] - phi[DIR_000])) ); //for (int k = FSTARTDIR; k <= FENDDIR; k++) { // sum += WEIGTH[k] * (phi[k] - phi[REST]); @@ -3001,33 +3001,33 @@ void MultiphaseScratchCumulantLBMKernel::computePhasefield() int x2p = x2 + 1; int x3p = x3 + 1; - h[E] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); + h[DIR_P00] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); h[N] = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); h[T] = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); h[NE] = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); - h[NW] = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); - h[TE] = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); - h[TW] = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); - h[TN] = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); - h[TS] = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); - h[TNE] = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); - h[TNW] = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); - h[TSE] = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); - h[TSW] = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); + h[DIR_MP0] = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); + h[DIR_P0P] = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); + h[DIR_M0P] = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); + h[DIR_0PP] = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); + h[DIR_0MP] = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); + h[DIR_PPP] = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); + h[DIR_MPP] = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); + h[DIR_PMP] = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); + h[DIR_MMP] = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); h[W] = (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3); h[S] = (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3); h[B] = (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p); - h[SW] = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); - h[SE] = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); - h[BW] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); - h[BE] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); - h[BS] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); - h[BN] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); - h[BSW] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); - h[BSE] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); - h[BNW] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); - h[BNE] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); + h[DIR_MM0] = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); + h[DIR_PM0] = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); + h[DIR_M0M] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); + h[DIR_P0M] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); + h[DIR_0MM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); + h[DIR_0PM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); + h[DIR_MMM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); + h[DIR_PMM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); + h[DIR_MPM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); + h[DIR_PPM] = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); h[DIR_000] = (*this->zeroDistributionsH)(x1, x2, x3); } diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp index 4212683ed33f444ac56a0d5e7049e7a19868e9b8..08c196105a6518532ae818b4ca99e67e2c9fa925 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp @@ -506,7 +506,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //////// // LBMReal divAfterSource= - //( mfcbb + 3.0 * (0.5 * forcingTerm[E]) / rho ) *((vvxF-1)*(vvxF-1)+(vvyF) *(vvyF) +(vvzF) *(vvzF)-1)+ + //( mfcbb + 3.0 * (0.5 * forcingTerm[DIR_P00]) / rho ) *((vvxF-1)*(vvxF-1)+(vvyF) *(vvyF) +(vvzF) *(vvzF)-1)+ //( mfbcb + 3.0 * (0.5 * forcingTerm[N]) / rho ) *((vvxF) *(vvxF) +(vvyF-1)*(vvyF-1)+(vvzF) *(vvzF)-1)+ //( mfbbc + 3.0 * (0.5 * forcingTerm[T]) / rho ) *((vvxF) *(vvxF) +(vvyF) *(vvyF) +(vvzF-1)*(vvzF-1)-1)+ //( mfccb + 3.0 * (0.5 * forcingTerm[NE]) / rho ) *((vvxF-1)*(vvxF-1)+(vvyF-1)*(vvyF-1)+(vvzF) *(vvzF)-1)+ @@ -569,7 +569,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //if (fabs(divAfterSource - divBeforeSource)/(fabs(divAfterSource) + fabs(divBeforeSource)+1e-10) > 1e-5) { // LBMReal scaleDiv =0.95+(1-0.95)* (divBeforeSource) / (divBeforeSource - divAfterSource); - // forcingTerm[E] *=scaleDiv; + // forcingTerm[DIR_P00] *=scaleDiv; // forcingTerm[N] *=scaleDiv; // forcingTerm[T] *=scaleDiv; // forcingTerm[NE] *=scaleDiv; @@ -600,32 +600,32 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //////// - mfcbb += 3.0 * (0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; + mfcbb += 3.0 * (0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; mfbcb += 3.0 * (0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; mfbbc += 3.0 * (0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; mfccb += 3.0 * (0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; - mfacb += 3.0 * (0.5 * forcingTerm[NW]) / rho; //-(3.0*p1 - rho)*WEIGTH[NW ]; - mfcbc += 3.0 * (0.5 * forcingTerm[TE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TE ]; - mfabc += 3.0 * (0.5 * forcingTerm[TW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TW ]; - mfbcc += 3.0 * (0.5 * forcingTerm[TN]) / rho; //-(3.0*p1 - rho)*WEIGTH[TN ]; - mfbac += 3.0 * (0.5 * forcingTerm[TS]) / rho; //-(3.0*p1 - rho)*WEIGTH[TS ]; - mfccc += 3.0 * (0.5 * forcingTerm[TNE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNE]; - mfacc += 3.0 * (0.5 * forcingTerm[TNW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNW]; - mfcac += 3.0 * (0.5 * forcingTerm[TSE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSE]; - mfaac += 3.0 * (0.5 * forcingTerm[TSW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSW]; + mfacb += 3.0 * (0.5 * forcingTerm[DIR_MP0]) / rho; //-(3.0*p1 - rho)*WEIGTH[NW ]; + mfcbc += 3.0 * (0.5 * forcingTerm[DIR_P0P]) / rho; //-(3.0*p1 - rho)*WEIGTH[TE ]; + mfabc += 3.0 * (0.5 * forcingTerm[DIR_M0P]) / rho; //-(3.0*p1 - rho)*WEIGTH[TW ]; + mfbcc += 3.0 * (0.5 * forcingTerm[DIR_0PP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TN ]; + mfbac += 3.0 * (0.5 * forcingTerm[DIR_0MP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TS ]; + mfccc += 3.0 * (0.5 * forcingTerm[DIR_PPP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNE]; + mfacc += 3.0 * (0.5 * forcingTerm[DIR_MPP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNW]; + mfcac += 3.0 * (0.5 * forcingTerm[DIR_PMP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSE]; + mfaac += 3.0 * (0.5 * forcingTerm[DIR_MMP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSW]; mfabb += 3.0 * (0.5 * forcingTerm[W]) / rho; //-(3.0*p1 - rho)*WEIGTH[W ]; mfbab += 3.0 * (0.5 * forcingTerm[S]) / rho; //-(3.0*p1 - rho)*WEIGTH[S ]; mfbba += 3.0 * (0.5 * forcingTerm[B]) / rho; //-(3.0*p1 - rho)*WEIGTH[B ]; - mfaab += 3.0 * (0.5 * forcingTerm[SW]) / rho; //-(3.0*p1 - rho)*WEIGTH[SW ]; - mfcab += 3.0 * (0.5 * forcingTerm[SE]) / rho; //-(3.0*p1 - rho)*WEIGTH[SE ]; - mfaba += 3.0 * (0.5 * forcingTerm[BW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BW ]; - mfcba += 3.0 * (0.5 * forcingTerm[BE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BE ]; - mfbaa += 3.0 * (0.5 * forcingTerm[BS]) / rho; //-(3.0*p1 - rho)*WEIGTH[BS ]; - mfbca += 3.0 * (0.5 * forcingTerm[BN]) / rho; //-(3.0*p1 - rho)*WEIGTH[BN ]; - mfaaa += 3.0 * (0.5 * forcingTerm[BSW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSW]; - mfcaa += 3.0 * (0.5 * forcingTerm[BSE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSE]; - mfaca += 3.0 * (0.5 * forcingTerm[BNW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNW]; - mfcca += 3.0 * (0.5 * forcingTerm[BNE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNE]; + mfaab += 3.0 * (0.5 * forcingTerm[DIR_MM0]) / rho; //-(3.0*p1 - rho)*WEIGTH[SW ]; + mfcab += 3.0 * (0.5 * forcingTerm[DIR_PM0]) / rho; //-(3.0*p1 - rho)*WEIGTH[SE ]; + mfaba += 3.0 * (0.5 * forcingTerm[DIR_M0M]) / rho; //-(3.0*p1 - rho)*WEIGTH[BW ]; + mfcba += 3.0 * (0.5 * forcingTerm[DIR_P0M]) / rho; //-(3.0*p1 - rho)*WEIGTH[BE ]; + mfbaa += 3.0 * (0.5 * forcingTerm[DIR_0MM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BS ]; + mfbca += 3.0 * (0.5 * forcingTerm[DIR_0PM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BN ]; + mfaaa += 3.0 * (0.5 * forcingTerm[DIR_MMM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSW]; + mfcaa += 3.0 * (0.5 * forcingTerm[DIR_PMM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSE]; + mfaca += 3.0 * (0.5 * forcingTerm[DIR_MPM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNW]; + mfcca += 3.0 * (0.5 * forcingTerm[DIR_PPM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNE]; mfbbb += 3.0 * (0.5 * forcingTerm[DIR_000]) / rho; //- (3.0*p1 - rho)*WEIGTH[REST] //-------------------------------------------------------- @@ -940,7 +940,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); // LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); - //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::B' ) + //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); @@ -1344,32 +1344,32 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) /////classical source term 8.4.2021 - mfcbb += 3.0 * (0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; + mfcbb += 3.0 * (0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; mfbcb += 3.0 * (0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; mfbbc += 3.0 * (0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; mfccb += 3.0 * (0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; - mfacb += 3.0 * (0.5 * forcingTerm[NW]) / rho; //-(3.0*p1 - rho)*WEIGTH[NW ]; - mfcbc += 3.0 * (0.5 * forcingTerm[TE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TE ]; - mfabc += 3.0 * (0.5 * forcingTerm[TW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TW ]; - mfbcc += 3.0 * (0.5 * forcingTerm[TN]) / rho; //-(3.0*p1 - rho)*WEIGTH[TN ]; - mfbac += 3.0 * (0.5 * forcingTerm[TS]) / rho; //-(3.0*p1 - rho)*WEIGTH[TS ]; - mfccc += 3.0 * (0.5 * forcingTerm[TNE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNE]; - mfacc += 3.0 * (0.5 * forcingTerm[TNW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNW]; - mfcac += 3.0 * (0.5 * forcingTerm[TSE]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSE]; - mfaac += 3.0 * (0.5 * forcingTerm[TSW]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSW]; + mfacb += 3.0 * (0.5 * forcingTerm[DIR_MP0]) / rho; //-(3.0*p1 - rho)*WEIGTH[NW ]; + mfcbc += 3.0 * (0.5 * forcingTerm[DIR_P0P]) / rho; //-(3.0*p1 - rho)*WEIGTH[TE ]; + mfabc += 3.0 * (0.5 * forcingTerm[DIR_M0P]) / rho; //-(3.0*p1 - rho)*WEIGTH[TW ]; + mfbcc += 3.0 * (0.5 * forcingTerm[DIR_0PP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TN ]; + mfbac += 3.0 * (0.5 * forcingTerm[DIR_0MP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TS ]; + mfccc += 3.0 * (0.5 * forcingTerm[DIR_PPP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNE]; + mfacc += 3.0 * (0.5 * forcingTerm[DIR_MPP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TNW]; + mfcac += 3.0 * (0.5 * forcingTerm[DIR_PMP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSE]; + mfaac += 3.0 * (0.5 * forcingTerm[DIR_MMP]) / rho; //-(3.0*p1 - rho)*WEIGTH[TSW]; mfabb += 3.0 * (0.5 * forcingTerm[W]) / rho; //-(3.0*p1 - rho)*WEIGTH[W ]; mfbab += 3.0 * (0.5 * forcingTerm[S]) / rho; //-(3.0*p1 - rho)*WEIGTH[S ]; mfbba += 3.0 * (0.5 * forcingTerm[B]) / rho; //-(3.0*p1 - rho)*WEIGTH[B ]; - mfaab += 3.0 * (0.5 * forcingTerm[SW]) / rho; //-(3.0*p1 - rho)*WEIGTH[SW ]; - mfcab += 3.0 * (0.5 * forcingTerm[SE]) / rho; //-(3.0*p1 - rho)*WEIGTH[SE ]; - mfaba += 3.0 * (0.5 * forcingTerm[BW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BW ]; - mfcba += 3.0 * (0.5 * forcingTerm[BE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BE ]; - mfbaa += 3.0 * (0.5 * forcingTerm[BS]) / rho; //-(3.0*p1 - rho)*WEIGTH[BS ]; - mfbca += 3.0 * (0.5 * forcingTerm[BN]) / rho; //-(3.0*p1 - rho)*WEIGTH[BN ]; - mfaaa += 3.0 * (0.5 * forcingTerm[BSW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSW]; - mfcaa += 3.0 * (0.5 * forcingTerm[BSE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSE]; - mfaca += 3.0 * (0.5 * forcingTerm[BNW]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNW]; - mfcca += 3.0 * (0.5 * forcingTerm[BNE]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNE]; + mfaab += 3.0 * (0.5 * forcingTerm[DIR_MM0]) / rho; //-(3.0*p1 - rho)*WEIGTH[SW ]; + mfcab += 3.0 * (0.5 * forcingTerm[DIR_PM0]) / rho; //-(3.0*p1 - rho)*WEIGTH[SE ]; + mfaba += 3.0 * (0.5 * forcingTerm[DIR_M0M]) / rho; //-(3.0*p1 - rho)*WEIGTH[BW ]; + mfcba += 3.0 * (0.5 * forcingTerm[DIR_P0M]) / rho; //-(3.0*p1 - rho)*WEIGTH[BE ]; + mfbaa += 3.0 * (0.5 * forcingTerm[DIR_0MM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BS ]; + mfbca += 3.0 * (0.5 * forcingTerm[DIR_0PM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BN ]; + mfaaa += 3.0 * (0.5 * forcingTerm[DIR_MMM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSW]; + mfcaa += 3.0 * (0.5 * forcingTerm[DIR_PMM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BSE]; + mfaca += 3.0 * (0.5 * forcingTerm[DIR_MPM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNW]; + mfcca += 3.0 * (0.5 * forcingTerm[DIR_PPM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNE]; mfbbb += 3.0 * (0.5 * forcingTerm[DIR_000]) / rho; //- (3.0*p1 - rho)*WEIGTH[REST] @@ -1487,7 +1487,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) // // //-------------------------------------------------------- // -// mfcbb = 3.0 * (mfcbb + 0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; +// mfcbb = 3.0 * (mfcbb + 0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; // mfbcb = 3.0 * (mfbcb + 0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; // mfbbc = 3.0 * (mfbbc + 0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; // mfccb = 3.0 * (mfccb + 0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; @@ -2195,7 +2195,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) // } //#endif // -// mfcbb = rho * c1o3 * (mfcbb) + 0.5 * forcingTerm[E]; +// mfcbb = rho * c1o3 * (mfcbb) + 0.5 * forcingTerm[DIR_P00]; // mfbcb = rho * c1o3 * (mfbcb) + 0.5 * forcingTerm[N]; // mfbbc = rho * c1o3 * (mfbbc) + 0.5 * forcingTerm[T]; // mfccb = rho * c1o3 * (mfccb) + 0.5 * forcingTerm[NE]; @@ -2892,7 +2892,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) ///////////////////// PHASE-FIELD BGK SOLVER /////////////////////////////// - //h[E] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); + //h[DIR_P00] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); //h[N] = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); //h[T] = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); //h[NE] = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); @@ -2984,9 +2984,9 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX1_phi() { using namespace D3Q27System; - return 3.0* ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) + (phi[BSE] - phi[TNW])) + ((phi[TSE] - phi[BNW]) + (phi[BNE] - phi[TSW]))) - + WEIGTH[NE] * (((phi[TE] - phi[BW]) + (phi[BE] - phi[TW])) + ((phi[SE] - phi[NW]) + (phi[NE] - phi[SW])))) + - +WEIGTH[N] * (phi[E] - phi[W])); + return 3.0* ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) + (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PMP] - phi[DIR_MPM]) + (phi[DIR_PPM] - phi[DIR_MMP]))) + + WEIGTH[NE] * (((phi[DIR_P0P] - phi[DIR_M0M]) + (phi[DIR_P0M] - phi[DIR_M0P])) + ((phi[DIR_PM0] - phi[DIR_MP0]) + (phi[NE] - phi[DIR_MM0])))) + + +WEIGTH[N] * (phi[DIR_P00] - phi[W])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { // sum += WEIGTH[k] * DX1[k] * phi[k]; @@ -2997,8 +2997,8 @@ LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX1_phi() LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX2_phi() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) - (phi[BSE] - phi[TNW])) + ((phi[BNE] - phi[TSW])- (phi[TSE] - phi[BNW]))) - + WEIGTH[NE] * (((phi[TN] - phi[BS]) + (phi[BN] - phi[TS])) + ((phi[NE] - phi[SW])- (phi[SE] - phi[NW])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) - (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PPM] - phi[DIR_MMP])- (phi[DIR_PMP] - phi[DIR_MPM]))) + + WEIGTH[NE] * (((phi[DIR_0PP] - phi[DIR_0MM]) + (phi[DIR_0PM] - phi[DIR_0MP])) + ((phi[NE] - phi[DIR_MM0])- (phi[DIR_PM0] - phi[DIR_MP0])))) + +WEIGTH[N] * (phi[N] - phi[S])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -3010,8 +3010,8 @@ LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX2_phi() LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX3_phi() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) - (phi[BSE] - phi[TNW])) + ((phi[TSE] - phi[BNW]) - (phi[BNE] - phi[TSW]))) - + WEIGTH[NE] * (((phi[TE] - phi[BW]) - (phi[BE] - phi[TW])) + ((phi[TS] - phi[BN]) + (phi[TN] - phi[BS])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) - (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PMP] - phi[DIR_MPM]) - (phi[DIR_PPM] - phi[DIR_MMP]))) + + WEIGTH[NE] * (((phi[DIR_P0P] - phi[DIR_M0M]) - (phi[DIR_P0M] - phi[DIR_M0P])) + ((phi[DIR_0MP] - phi[DIR_0PM]) + (phi[DIR_0PP] - phi[DIR_0MM])))) + +WEIGTH[N] * (phi[T] - phi[B])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -3023,9 +3023,9 @@ LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX3_phi() LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX1_phi2() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi2[TNE] - phi2[BSW]) + (phi2[BSE] - phi2[TNW])) + ((phi2[TSE] - phi2[BNW]) + (phi2[BNE] - phi2[TSW]))) - + WEIGTH[NE] * (((phi2[TE] - phi2[BW]) + (phi2[BE] - phi2[TW])) + ((phi2[SE] - phi2[NW]) + (phi2[NE] - phi2[SW])))) + - +WEIGTH[N] * (phi2[E] - phi2[W])); + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi2[DIR_PPP] - phi2[DIR_MMM]) + (phi2[DIR_PMM] - phi2[DIR_MPP])) + ((phi2[DIR_PMP] - phi2[DIR_MPM]) + (phi2[DIR_PPM] - phi2[DIR_MMP]))) + + WEIGTH[NE] * (((phi2[DIR_P0P] - phi2[DIR_M0M]) + (phi2[DIR_P0M] - phi2[DIR_M0P])) + ((phi2[DIR_PM0] - phi2[DIR_MP0]) + (phi2[NE] - phi2[DIR_MM0])))) + + +WEIGTH[N] * (phi2[DIR_P00] - phi2[W])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { // sum += WEIGTH[k] * DX1[k] * phi2[k]; @@ -3036,8 +3036,8 @@ LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX1_phi2() LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX2_phi2() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi2[TNE] - phi2[BSW]) - (phi2[BSE] - phi2[TNW])) + ((phi2[BNE] - phi2[TSW]) - (phi2[TSE] - phi2[BNW]))) - + WEIGTH[NE] * (((phi2[TN] - phi2[BS]) + (phi2[BN] - phi2[TS])) + ((phi2[NE] - phi2[SW]) - (phi2[SE] - phi2[NW])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi2[DIR_PPP] - phi2[DIR_MMM]) - (phi2[DIR_PMM] - phi2[DIR_MPP])) + ((phi2[DIR_PPM] - phi2[DIR_MMP]) - (phi2[DIR_PMP] - phi2[DIR_MPM]))) + + WEIGTH[NE] * (((phi2[DIR_0PP] - phi2[DIR_0MM]) + (phi2[DIR_0PM] - phi2[DIR_0MP])) + ((phi2[NE] - phi2[DIR_MM0]) - (phi2[DIR_PM0] - phi2[DIR_MP0])))) + +WEIGTH[N] * (phi2[N] - phi2[S])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -3049,8 +3049,8 @@ LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX2_phi2() LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX3_phi2() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi2[TNE] - phi2[BSW]) - (phi2[BSE] - phi2[TNW])) + ((phi2[TSE] - phi2[BNW]) - (phi2[BNE] - phi2[TSW]))) - + WEIGTH[NE] * (((phi2[TE] - phi2[BW]) - (phi2[BE] - phi2[TW])) + ((phi2[TS] - phi2[BN]) + (phi2[TN] - phi2[BS])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi2[DIR_PPP] - phi2[DIR_MMM]) - (phi2[DIR_PMM] - phi2[DIR_MPP])) + ((phi2[DIR_PMP] - phi2[DIR_MPM]) - (phi2[DIR_PPM] - phi2[DIR_MMP]))) + + WEIGTH[NE] * (((phi2[DIR_P0P] - phi2[DIR_M0M]) - (phi2[DIR_P0M] - phi2[DIR_M0P])) + ((phi2[DIR_0MP] - phi2[DIR_0PM]) + (phi2[DIR_0PP] - phi2[DIR_0MM])))) + +WEIGTH[N] * (phi2[T] - phi2[B])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -3067,17 +3067,17 @@ LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::nabla2_phi() { using namespace D3Q27System; LBMReal sum = 0.0; - sum += WEIGTH[TNE] * ((((phi[TNE] - phi[DIR_000]) + (phi[BSW] - phi[DIR_000])) + ((phi[TSW] - phi[DIR_000]) + (phi[BNE] - phi[DIR_000]))) - + (((phi[TNW] - phi[DIR_000]) + (phi[BSE] - phi[DIR_000])) + ((phi[TSE] - phi[DIR_000]) + (phi[BNW] - phi[DIR_000])))); - sum += WEIGTH[TN] * ( - (((phi[TN] - phi[DIR_000]) + (phi[BS] - phi[DIR_000])) + ((phi[TS] - phi[DIR_000]) + (phi[BN] - phi[DIR_000]))) - + (((phi[TE] - phi[DIR_000]) + (phi[BW] - phi[DIR_000])) + ((phi[TW] - phi[DIR_000]) + (phi[BE] - phi[DIR_000]))) - + (((phi[NE] - phi[DIR_000]) + (phi[SW] - phi[DIR_000])) + ((phi[NW] - phi[DIR_000]) + (phi[SE] - phi[DIR_000]))) + sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); + sum += WEIGTH[DIR_0PP] * ( + (((phi[DIR_0PP] - phi[DIR_000]) + (phi[DIR_0MM] - phi[DIR_000])) + ((phi[DIR_0MP] - phi[DIR_000]) + (phi[DIR_0PM] - phi[DIR_000]))) + + (((phi[DIR_P0P] - phi[DIR_000]) + (phi[DIR_M0M] - phi[DIR_000])) + ((phi[DIR_M0P] - phi[DIR_000]) + (phi[DIR_P0M] - phi[DIR_000]))) + + (((phi[NE] - phi[DIR_000]) + (phi[DIR_MM0] - phi[DIR_000])) + ((phi[DIR_MP0] - phi[DIR_000]) + (phi[DIR_PM0] - phi[DIR_000]))) ); sum += WEIGTH[T] * ( ((phi[T] - phi[DIR_000]) + (phi[B] - phi[DIR_000])) + ((phi[N] - phi[DIR_000]) + (phi[S] - phi[DIR_000])) - + ((phi[E] - phi[DIR_000]) + (phi[W] - phi[DIR_000])) + + ((phi[DIR_P00] - phi[DIR_000]) + (phi[W] - phi[DIR_000])) ); //for (int k = FSTARTDIR; k <= FENDDIR; k++) { // sum += WEIGTH[k] * (phi[k] - phi[REST]); @@ -3107,33 +3107,33 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::computePhasefield() int x2p = x2 + 1; int x3p = x3 + 1; - h[E] = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); + h[DIR_P00] = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); h[N] = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); h[T] = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); h[NE] = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); - h[NW] = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); - h[TE] = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); - h[TW] = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); - h[TN] = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); - h[TS] = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); - h[TNE] = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); - h[TNW] = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); - h[TSE] = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); - h[TSW] = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); + h[DIR_MP0] = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); + h[DIR_P0P] = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); + h[DIR_M0P] = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); + h[DIR_0PP] = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); + h[DIR_0MP] = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); + h[DIR_PPP] = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); + h[DIR_MPP] = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); + h[DIR_PMP] = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); + h[DIR_MMP] = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); h[W] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); h[S] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); h[B] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); - h[SW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); - h[SE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); - h[BW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); - h[BE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); - h[BS] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); - h[BN] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); - h[BSW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); - h[BSE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); - h[BNW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); - h[BNE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); + h[DIR_MM0] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); + h[DIR_PM0] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); + h[DIR_M0M] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); + h[DIR_P0M] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); + h[DIR_0MM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); + h[DIR_0PM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); + h[DIR_MMM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); + h[DIR_PMM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); + h[DIR_MPM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); + h[DIR_PPM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); h[DIR_000] = (*this->zeroDistributionsH1)(x1, x2, x3); } diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp index b2eddb8746303897b9d0c88087cb4c0cc5bc2b94..2f9d1d3946bd1758293671cbafc631343b2cd468 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp @@ -641,7 +641,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) // + WEIGTH[NE] * ( // (((*pressure)(x1 + 1, x2 + 1, x3) - (*pressure)(x1 - 1, x2 - 1, x3)) + ((*pressure)(x1 + 1, x2 - 1, x3) - (*pressure)(x1 - 1, x2 + 1, x3))) // + (((*pressure)(x1 + 1, x2, x3 - 1) - (*pressure)(x1 - 1, x2, x3 + 1)) + ((*pressure)(x1 + 1, x2, x3 + 1) - (*pressure)(x1 - 1, x2, x3 - 1)))) - // + WEIGTH[E] * ((*pressure)(x1 + 1, x2, x3) - (*pressure)(x1 - 1, x2, x3))); + // + WEIGTH[DIR_P00] * ((*pressure)(x1 + 1, x2, x3) - (*pressure)(x1 - 1, x2, x3))); //LBMReal gradPy = 3.0 * (WEIGTH[TNE] * ( // (((*pressure)(x1 + 1, x2 + 1, x3 + 1) - (*pressure)(x1 - 1, x2 - 1, x3 - 1)) + ((*pressure)(x1 - 1, x2 + 1, x3 + 1) - (*pressure)(x1 + 1, x2 - 1, x3 - 1))) @@ -649,7 +649,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) // + WEIGTH[NE] * ( // (((*pressure)(x1 + 1, x2 + 1, x3) - (*pressure)(x1 - 1, x2 - 1, x3)) + ((*pressure)(x1 - 1, x2 + 1, x3) - (*pressure)(x1 + 1, x2 - 1, x3))) // + (((*pressure)(x1, x2+1, x3 - 1) - (*pressure)(x1, x2-1, x3 + 1)) + ((*pressure)(x1, x2+1, x3 + 1) - (*pressure)(x1, x2-1, x3 - 1)))) - // + WEIGTH[E] * ((*pressure)(x1, x2+1, x3) - (*pressure)(x1, x2-1, x3))); + // + WEIGTH[DIR_P00] * ((*pressure)(x1, x2+1, x3) - (*pressure)(x1, x2-1, x3))); //LBMReal gradPz = 3.0 * (WEIGTH[TNE] * ( // (((*pressure)(x1 + 1, x2 + 1, x3 + 1) - (*pressure)(x1 - 1, x2 - 1, x3 - 1)) + ((*pressure)(x1 - 1, x2 + 1, x3 + 1) - (*pressure)(x1 + 1, x2 - 1, x3 - 1))) @@ -657,7 +657,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) // + WEIGTH[NE] * ( // (((*pressure)(x1 + 1, x2, x3+1) - (*pressure)(x1 - 1, x2, x3-1)) + ((*pressure)(x1 - 1, x2, x3+1) - (*pressure)(x1 + 1, x2, x3-1))) // + (((*pressure)(x1, x2 - 1, x3 + 1) - (*pressure)(x1, x2 + 1, x3 - 1)) + ((*pressure)(x1, x2 + 1, x3 + 1) - (*pressure)(x1, x2 - 1, x3 - 1)))) - // + WEIGTH[E] * ((*pressure)(x1, x2, x3+1) - (*pressure)(x1, x2, x3-1))); + // + WEIGTH[DIR_P00] * ((*pressure)(x1, x2, x3+1) - (*pressure)(x1, x2, x3-1))); LBMReal gradPx = 0.0; @@ -835,7 +835,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //////// // LBMReal divAfterSource= - //( mfcbb + 3.0 * (0.5 * forcingTerm[E]) / rho ) *((vvxF-1)*(vvxF-1)+(vvyF) *(vvyF) +(vvzF) *(vvzF)-1)+ + //( mfcbb + 3.0 * (0.5 * forcingTerm[DIR_P00]) / rho ) *((vvxF-1)*(vvxF-1)+(vvyF) *(vvyF) +(vvzF) *(vvzF)-1)+ //( mfbcb + 3.0 * (0.5 * forcingTerm[N]) / rho ) *((vvxF) *(vvxF) +(vvyF-1)*(vvyF-1)+(vvzF) *(vvzF)-1)+ //( mfbbc + 3.0 * (0.5 * forcingTerm[T]) / rho ) *((vvxF) *(vvxF) +(vvyF) *(vvyF) +(vvzF-1)*(vvzF-1)-1)+ //( mfccb + 3.0 * (0.5 * forcingTerm[NE]) / rho ) *((vvxF-1)*(vvxF-1)+(vvyF-1)*(vvyF-1)+(vvzF) *(vvzF)-1)+ @@ -898,7 +898,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //if (fabs(divAfterSource - divBeforeSource)/(fabs(divAfterSource) + fabs(divBeforeSource)+1e-10) > 1e-5) { // LBMReal scaleDiv =0.95+(1-0.95)* (divBeforeSource) / (divBeforeSource - divAfterSource); - // forcingTerm[E] *=scaleDiv; + // forcingTerm[DIR_P00] *=scaleDiv; // forcingTerm[N] *=scaleDiv; // forcingTerm[T] *=scaleDiv; // forcingTerm[NE] *=scaleDiv; @@ -929,7 +929,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //////// - //mfcbb += 3.0 * (0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; + //mfcbb += 3.0 * (0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; //mfbcb += 3.0 * (0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; //mfbbc += 3.0 * (0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; //mfccb += 3.0 * (0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; @@ -1272,7 +1272,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); // LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); - //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::B' ) + //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); @@ -1697,7 +1697,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) /////classical source term 8.4.2021 - //mfcbb += 3.0 * (0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; + //mfcbb += 3.0 * (0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; //mfbcb += 3.0 * (0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; //mfbbc += 3.0 * (0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; //mfccb += 3.0 * (0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; @@ -1845,7 +1845,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) // // //-------------------------------------------------------- // -// mfcbb = 3.0 * (mfcbb + 0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; +// mfcbb = 3.0 * (mfcbb + 0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; // mfbcb = 3.0 * (mfbcb + 0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; // mfbbc = 3.0 * (mfbbc + 0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; // mfccb = 3.0 * (mfccb + 0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; @@ -2553,7 +2553,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) // } //#endif // -// mfcbb = rho * c1o3 * (mfcbb) + 0.5 * forcingTerm[E]; +// mfcbb = rho * c1o3 * (mfcbb) + 0.5 * forcingTerm[DIR_P00]; // mfbcb = rho * c1o3 * (mfbcb) + 0.5 * forcingTerm[N]; // mfbbc = rho * c1o3 * (mfbbc) + 0.5 * forcingTerm[T]; // mfccb = rho * c1o3 * (mfccb) + 0.5 * forcingTerm[NE]; @@ -3257,7 +3257,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) ///////////////////// PHASE-FIELD BGK SOLVER /////////////////////////////// - //h[E] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); + //h[DIR_P00] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); //h[N] = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); //h[T] = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); //h[NE] = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); @@ -3349,9 +3349,9 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX1_phi() { using namespace D3Q27System; - return 3.0* ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) + (phi[BSE] - phi[TNW])) + ((phi[TSE] - phi[BNW]) + (phi[BNE] - phi[TSW]))) - + WEIGTH[NE] * (((phi[TE] - phi[BW]) + (phi[BE] - phi[TW])) + ((phi[SE] - phi[NW]) + (phi[NE] - phi[SW])))) + - +WEIGTH[N] * (phi[E] - phi[W])); + return 3.0* ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) + (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PMP] - phi[DIR_MPM]) + (phi[DIR_PPM] - phi[DIR_MMP]))) + + WEIGTH[NE] * (((phi[DIR_P0P] - phi[DIR_M0M]) + (phi[DIR_P0M] - phi[DIR_M0P])) + ((phi[DIR_PM0] - phi[DIR_MP0]) + (phi[NE] - phi[DIR_MM0])))) + + +WEIGTH[N] * (phi[DIR_P00] - phi[W])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { // sum += WEIGTH[k] * DX1[k] * phi[k]; @@ -3362,8 +3362,8 @@ LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX1_phi() LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX2_phi() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) - (phi[BSE] - phi[TNW])) + ((phi[BNE] - phi[TSW])- (phi[TSE] - phi[BNW]))) - + WEIGTH[NE] * (((phi[TN] - phi[BS]) + (phi[BN] - phi[TS])) + ((phi[NE] - phi[SW])- (phi[SE] - phi[NW])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) - (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PPM] - phi[DIR_MMP])- (phi[DIR_PMP] - phi[DIR_MPM]))) + + WEIGTH[NE] * (((phi[DIR_0PP] - phi[DIR_0MM]) + (phi[DIR_0PM] - phi[DIR_0MP])) + ((phi[NE] - phi[DIR_MM0])- (phi[DIR_PM0] - phi[DIR_MP0])))) + +WEIGTH[N] * (phi[N] - phi[S])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -3375,8 +3375,8 @@ LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX2_phi() LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX3_phi() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) - (phi[BSE] - phi[TNW])) + ((phi[TSE] - phi[BNW]) - (phi[BNE] - phi[TSW]))) - + WEIGTH[NE] * (((phi[TE] - phi[BW]) - (phi[BE] - phi[TW])) + ((phi[TS] - phi[BN]) + (phi[TN] - phi[BS])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) - (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PMP] - phi[DIR_MPM]) - (phi[DIR_PPM] - phi[DIR_MMP]))) + + WEIGTH[NE] * (((phi[DIR_P0P] - phi[DIR_M0M]) - (phi[DIR_P0M] - phi[DIR_M0P])) + ((phi[DIR_0MP] - phi[DIR_0PM]) + (phi[DIR_0PP] - phi[DIR_0MM])))) + +WEIGTH[N] * (phi[T] - phi[B])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -3388,9 +3388,9 @@ LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX3_phi() LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX1_phi2() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi2[TNE] - phi2[BSW]) + (phi2[BSE] - phi2[TNW])) + ((phi2[TSE] - phi2[BNW]) + (phi2[BNE] - phi2[TSW]))) - + WEIGTH[NE] * (((phi2[TE] - phi2[BW]) + (phi2[BE] - phi2[TW])) + ((phi2[SE] - phi2[NW]) + (phi2[NE] - phi2[SW])))) + - +WEIGTH[N] * (phi2[E] - phi2[W])); + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi2[DIR_PPP] - phi2[DIR_MMM]) + (phi2[DIR_PMM] - phi2[DIR_MPP])) + ((phi2[DIR_PMP] - phi2[DIR_MPM]) + (phi2[DIR_PPM] - phi2[DIR_MMP]))) + + WEIGTH[NE] * (((phi2[DIR_P0P] - phi2[DIR_M0M]) + (phi2[DIR_P0M] - phi2[DIR_M0P])) + ((phi2[DIR_PM0] - phi2[DIR_MP0]) + (phi2[NE] - phi2[DIR_MM0])))) + + +WEIGTH[N] * (phi2[DIR_P00] - phi2[W])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { // sum += WEIGTH[k] * DX1[k] * phi2[k]; @@ -3401,8 +3401,8 @@ LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX1_phi2() LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX2_phi2() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi2[TNE] - phi2[BSW]) - (phi2[BSE] - phi2[TNW])) + ((phi2[BNE] - phi2[TSW]) - (phi2[TSE] - phi2[BNW]))) - + WEIGTH[NE] * (((phi2[TN] - phi2[BS]) + (phi2[BN] - phi2[TS])) + ((phi2[NE] - phi2[SW]) - (phi2[SE] - phi2[NW])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi2[DIR_PPP] - phi2[DIR_MMM]) - (phi2[DIR_PMM] - phi2[DIR_MPP])) + ((phi2[DIR_PPM] - phi2[DIR_MMP]) - (phi2[DIR_PMP] - phi2[DIR_MPM]))) + + WEIGTH[NE] * (((phi2[DIR_0PP] - phi2[DIR_0MM]) + (phi2[DIR_0PM] - phi2[DIR_0MP])) + ((phi2[NE] - phi2[DIR_MM0]) - (phi2[DIR_PM0] - phi2[DIR_MP0])))) + +WEIGTH[N] * (phi2[N] - phi2[S])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -3414,8 +3414,8 @@ LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX2_phi2() LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX3_phi2() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi2[TNE] - phi2[BSW]) - (phi2[BSE] - phi2[TNW])) + ((phi2[TSE] - phi2[BNW]) - (phi2[BNE] - phi2[TSW]))) - + WEIGTH[NE] * (((phi2[TE] - phi2[BW]) - (phi2[BE] - phi2[TW])) + ((phi2[TS] - phi2[BN]) + (phi2[TN] - phi2[BS])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi2[DIR_PPP] - phi2[DIR_MMM]) - (phi2[DIR_PMM] - phi2[DIR_MPP])) + ((phi2[DIR_PMP] - phi2[DIR_MPM]) - (phi2[DIR_PPM] - phi2[DIR_MMP]))) + + WEIGTH[NE] * (((phi2[DIR_P0P] - phi2[DIR_M0M]) - (phi2[DIR_P0M] - phi2[DIR_M0P])) + ((phi2[DIR_0MP] - phi2[DIR_0PM]) + (phi2[DIR_0PP] - phi2[DIR_0MM])))) + +WEIGTH[N] * (phi2[T] - phi2[B])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -3432,17 +3432,17 @@ LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::nabla2_phi() { using namespace D3Q27System; LBMReal sum = 0.0; - sum += WEIGTH[TNE] * ((((phi[TNE] - phi[DIR_000]) + (phi[BSW] - phi[DIR_000])) + ((phi[TSW] - phi[DIR_000]) + (phi[BNE] - phi[DIR_000]))) - + (((phi[TNW] - phi[DIR_000]) + (phi[BSE] - phi[DIR_000])) + ((phi[TSE] - phi[DIR_000]) + (phi[BNW] - phi[DIR_000])))); - sum += WEIGTH[TN] * ( - (((phi[TN] - phi[DIR_000]) + (phi[BS] - phi[DIR_000])) + ((phi[TS] - phi[DIR_000]) + (phi[BN] - phi[DIR_000]))) - + (((phi[TE] - phi[DIR_000]) + (phi[BW] - phi[DIR_000])) + ((phi[TW] - phi[DIR_000]) + (phi[BE] - phi[DIR_000]))) - + (((phi[NE] - phi[DIR_000]) + (phi[SW] - phi[DIR_000])) + ((phi[NW] - phi[DIR_000]) + (phi[SE] - phi[DIR_000]))) + sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); + sum += WEIGTH[DIR_0PP] * ( + (((phi[DIR_0PP] - phi[DIR_000]) + (phi[DIR_0MM] - phi[DIR_000])) + ((phi[DIR_0MP] - phi[DIR_000]) + (phi[DIR_0PM] - phi[DIR_000]))) + + (((phi[DIR_P0P] - phi[DIR_000]) + (phi[DIR_M0M] - phi[DIR_000])) + ((phi[DIR_M0P] - phi[DIR_000]) + (phi[DIR_P0M] - phi[DIR_000]))) + + (((phi[NE] - phi[DIR_000]) + (phi[DIR_MM0] - phi[DIR_000])) + ((phi[DIR_MP0] - phi[DIR_000]) + (phi[DIR_PM0] - phi[DIR_000]))) ); sum += WEIGTH[T] * ( ((phi[T] - phi[DIR_000]) + (phi[B] - phi[DIR_000])) + ((phi[N] - phi[DIR_000]) + (phi[S] - phi[DIR_000])) - + ((phi[E] - phi[DIR_000]) + (phi[W] - phi[DIR_000])) + + ((phi[DIR_P00] - phi[DIR_000]) + (phi[W] - phi[DIR_000])) ); //for (int k = FSTARTDIR; k <= FENDDIR; k++) { // sum += WEIGTH[k] * (phi[k] - phi[REST]); @@ -3472,33 +3472,33 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::computePhasefield() int x2p = x2 + 1; int x3p = x3 + 1; - h[E] = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); + h[DIR_P00] = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); h[N] = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); h[T] = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); h[NE] = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); - h[NW] = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); - h[TE] = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); - h[TW] = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); - h[TN] = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); - h[TS] = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); - h[TNE] = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); - h[TNW] = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); - h[TSE] = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); - h[TSW] = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); + h[DIR_MP0] = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); + h[DIR_P0P] = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); + h[DIR_M0P] = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); + h[DIR_0PP] = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); + h[DIR_0MP] = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); + h[DIR_PPP] = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); + h[DIR_MPP] = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); + h[DIR_PMP] = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); + h[DIR_MMP] = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); h[W] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); h[S] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); h[B] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); - h[SW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); - h[SE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); - h[BW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); - h[BE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); - h[BS] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); - h[BN] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); - h[BSW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); - h[BSE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); - h[BNW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); - h[BNE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); + h[DIR_MM0] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); + h[DIR_PM0] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); + h[DIR_M0M] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); + h[DIR_P0M] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); + h[DIR_0MM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); + h[DIR_0PM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); + h[DIR_MMM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); + h[DIR_PMM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); + h[DIR_MPM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); + h[DIR_PPM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); h[DIR_000] = (*this->zeroDistributionsH1)(x1, x2, x3); } diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp index b10c528bd63e08e37a0399c3b7a919970781c1a3..7fdd5f2ee0b49ca6d3a4c2053acc72ada82edca9 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp @@ -615,7 +615,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) // + WEIGTH[NE] * ( // (((*pressure)(x1 + 1, x2 + 1, x3) - (*pressure)(x1 - 1, x2 - 1, x3)) + ((*pressure)(x1 + 1, x2 - 1, x3) - (*pressure)(x1 - 1, x2 + 1, x3))) // + (((*pressure)(x1 + 1, x2, x3 - 1) - (*pressure)(x1 - 1, x2, x3 + 1)) + ((*pressure)(x1 + 1, x2, x3 + 1) - (*pressure)(x1 - 1, x2, x3 - 1)))) - // + WEIGTH[E] * ((*pressure)(x1 + 1, x2, x3) - (*pressure)(x1 - 1, x2, x3))); + // + WEIGTH[DIR_P00] * ((*pressure)(x1 + 1, x2, x3) - (*pressure)(x1 - 1, x2, x3))); //LBMReal gradPy = 3.0 * (WEIGTH[TNE] * ( // (((*pressure)(x1 + 1, x2 + 1, x3 + 1) - (*pressure)(x1 - 1, x2 - 1, x3 - 1)) + ((*pressure)(x1 - 1, x2 + 1, x3 + 1) - (*pressure)(x1 + 1, x2 - 1, x3 - 1))) @@ -623,7 +623,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) // + WEIGTH[NE] * ( // (((*pressure)(x1 + 1, x2 + 1, x3) - (*pressure)(x1 - 1, x2 - 1, x3)) + ((*pressure)(x1 - 1, x2 + 1, x3) - (*pressure)(x1 + 1, x2 - 1, x3))) // + (((*pressure)(x1, x2+1, x3 - 1) - (*pressure)(x1, x2-1, x3 + 1)) + ((*pressure)(x1, x2+1, x3 + 1) - (*pressure)(x1, x2-1, x3 - 1)))) - // + WEIGTH[E] * ((*pressure)(x1, x2+1, x3) - (*pressure)(x1, x2-1, x3))); + // + WEIGTH[DIR_P00] * ((*pressure)(x1, x2+1, x3) - (*pressure)(x1, x2-1, x3))); //LBMReal gradPz = 3.0 * (WEIGTH[TNE] * ( // (((*pressure)(x1 + 1, x2 + 1, x3 + 1) - (*pressure)(x1 - 1, x2 - 1, x3 - 1)) + ((*pressure)(x1 - 1, x2 + 1, x3 + 1) - (*pressure)(x1 + 1, x2 - 1, x3 - 1))) @@ -631,7 +631,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) // + WEIGTH[NE] * ( // (((*pressure)(x1 + 1, x2, x3+1) - (*pressure)(x1 - 1, x2, x3-1)) + ((*pressure)(x1 - 1, x2, x3+1) - (*pressure)(x1 + 1, x2, x3-1))) // + (((*pressure)(x1, x2 - 1, x3 + 1) - (*pressure)(x1, x2 + 1, x3 - 1)) + ((*pressure)(x1, x2 + 1, x3 + 1) - (*pressure)(x1, x2 - 1, x3 - 1)))) - // + WEIGTH[E] * ((*pressure)(x1, x2, x3+1) - (*pressure)(x1, x2, x3-1))); + // + WEIGTH[DIR_P00] * ((*pressure)(x1, x2, x3+1) - (*pressure)(x1, x2, x3-1))); LBMReal gradPx = 0.0; @@ -793,7 +793,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //////// // LBMReal divAfterSource= - //( mfcbb + 3.0 * (0.5 * forcingTerm[E]) / rho ) *((vvxF-1)*(vvxF-1)+(vvyF) *(vvyF) +(vvzF) *(vvzF)-1)+ + //( mfcbb + 3.0 * (0.5 * forcingTerm[DIR_P00]) / rho ) *((vvxF-1)*(vvxF-1)+(vvyF) *(vvyF) +(vvzF) *(vvzF)-1)+ //( mfbcb + 3.0 * (0.5 * forcingTerm[N]) / rho ) *((vvxF) *(vvxF) +(vvyF-1)*(vvyF-1)+(vvzF) *(vvzF)-1)+ //( mfbbc + 3.0 * (0.5 * forcingTerm[T]) / rho ) *((vvxF) *(vvxF) +(vvyF) *(vvyF) +(vvzF-1)*(vvzF-1)-1)+ //( mfccb + 3.0 * (0.5 * forcingTerm[NE]) / rho ) *((vvxF-1)*(vvxF-1)+(vvyF-1)*(vvyF-1)+(vvzF) *(vvzF)-1)+ @@ -856,7 +856,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //if (fabs(divAfterSource - divBeforeSource)/(fabs(divAfterSource) + fabs(divBeforeSource)+1e-10) > 1e-5) { // LBMReal scaleDiv =0.95+(1-0.95)* (divBeforeSource) / (divBeforeSource - divAfterSource); - // forcingTerm[E] *=scaleDiv; + // forcingTerm[DIR_P00] *=scaleDiv; // forcingTerm[N] *=scaleDiv; // forcingTerm[T] *=scaleDiv; // forcingTerm[NE] *=scaleDiv; @@ -887,7 +887,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //////// - //mfcbb += 3.0 * (0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; + //mfcbb += 3.0 * (0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; //mfbcb += 3.0 * (0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; //mfbbc += 3.0 * (0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; //mfccb += 3.0 * (0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; @@ -1230,7 +1230,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); // LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); - //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::B' ) + //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); @@ -1642,7 +1642,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) /////classical source term 8.4.2021 - //mfcbb += 3.0 * (0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; + //mfcbb += 3.0 * (0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; //mfbcb += 3.0 * (0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; //mfbbc += 3.0 * (0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; //mfccb += 3.0 * (0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; @@ -1784,7 +1784,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) // // //-------------------------------------------------------- // -// mfcbb = 3.0 * (mfcbb + 0.5 * forcingTerm[E]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; +// mfcbb = 3.0 * (mfcbb + 0.5 * forcingTerm[DIR_P00]) / rho; //-(3.0*p1 - rho)*WEIGTH[E ]; // mfbcb = 3.0 * (mfbcb + 0.5 * forcingTerm[N]) / rho; //-(3.0*p1 - rho)*WEIGTH[N ]; // mfbbc = 3.0 * (mfbbc + 0.5 * forcingTerm[T]) / rho; //-(3.0*p1 - rho)*WEIGTH[T ]; // mfccb = 3.0 * (mfccb + 0.5 * forcingTerm[NE]) / rho; //-(3.0*p1 - rho)*WEIGTH[NE ]; @@ -2492,7 +2492,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) // } //#endif // -// mfcbb = rho * c1o3 * (mfcbb) + 0.5 * forcingTerm[E]; +// mfcbb = rho * c1o3 * (mfcbb) + 0.5 * forcingTerm[DIR_P00]; // mfbcb = rho * c1o3 * (mfbcb) + 0.5 * forcingTerm[N]; // mfbbc = rho * c1o3 * (mfbbc) + 0.5 * forcingTerm[T]; // mfccb = rho * c1o3 * (mfccb) + 0.5 * forcingTerm[NE]; @@ -3189,7 +3189,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) ///////////////////// PHASE-FIELD BGK SOLVER /////////////////////////////// - //h[E] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); + //h[DIR_P00] = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); //h[N] = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); //h[T] = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); //h[NE] = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); @@ -3281,9 +3281,9 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX1_phi() { using namespace D3Q27System; - return 3.0* ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) + (phi[BSE] - phi[TNW])) + ((phi[TSE] - phi[BNW]) + (phi[BNE] - phi[TSW]))) - + WEIGTH[NE] * (((phi[TE] - phi[BW]) + (phi[BE] - phi[TW])) + ((phi[SE] - phi[NW]) + (phi[NE] - phi[SW])))) + - +WEIGTH[N] * (phi[E] - phi[W])); + return 3.0* ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) + (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PMP] - phi[DIR_MPM]) + (phi[DIR_PPM] - phi[DIR_MMP]))) + + WEIGTH[NE] * (((phi[DIR_P0P] - phi[DIR_M0M]) + (phi[DIR_P0M] - phi[DIR_M0P])) + ((phi[DIR_PM0] - phi[DIR_MP0]) + (phi[NE] - phi[DIR_MM0])))) + + +WEIGTH[N] * (phi[DIR_P00] - phi[W])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { // sum += WEIGTH[k] * DX1[k] * phi[k]; @@ -3294,8 +3294,8 @@ LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX1_phi() LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX2_phi() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) - (phi[BSE] - phi[TNW])) + ((phi[BNE] - phi[TSW])- (phi[TSE] - phi[BNW]))) - + WEIGTH[NE] * (((phi[TN] - phi[BS]) + (phi[BN] - phi[TS])) + ((phi[NE] - phi[SW])- (phi[SE] - phi[NW])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) - (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PPM] - phi[DIR_MMP])- (phi[DIR_PMP] - phi[DIR_MPM]))) + + WEIGTH[NE] * (((phi[DIR_0PP] - phi[DIR_0MM]) + (phi[DIR_0PM] - phi[DIR_0MP])) + ((phi[NE] - phi[DIR_MM0])- (phi[DIR_PM0] - phi[DIR_MP0])))) + +WEIGTH[N] * (phi[N] - phi[S])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -3307,8 +3307,8 @@ LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX2_phi() LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX3_phi() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi[TNE] - phi[BSW]) - (phi[BSE] - phi[TNW])) + ((phi[TSE] - phi[BNW]) - (phi[BNE] - phi[TSW]))) - + WEIGTH[NE] * (((phi[TE] - phi[BW]) - (phi[BE] - phi[TW])) + ((phi[TS] - phi[BN]) + (phi[TN] - phi[BS])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi[DIR_PPP] - phi[DIR_MMM]) - (phi[DIR_PMM] - phi[DIR_MPP])) + ((phi[DIR_PMP] - phi[DIR_MPM]) - (phi[DIR_PPM] - phi[DIR_MMP]))) + + WEIGTH[NE] * (((phi[DIR_P0P] - phi[DIR_M0M]) - (phi[DIR_P0M] - phi[DIR_M0P])) + ((phi[DIR_0MP] - phi[DIR_0PM]) + (phi[DIR_0PP] - phi[DIR_0MM])))) + +WEIGTH[N] * (phi[T] - phi[B])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -3320,9 +3320,9 @@ LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX3_phi() LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX1_phi2() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi2[TNE] - phi2[BSW]) + (phi2[BSE] - phi2[TNW])) + ((phi2[TSE] - phi2[BNW]) + (phi2[BNE] - phi2[TSW]))) - + WEIGTH[NE] * (((phi2[TE] - phi2[BW]) + (phi2[BE] - phi2[TW])) + ((phi2[SE] - phi2[NW]) + (phi2[NE] - phi2[SW])))) + - +WEIGTH[N] * (phi2[E] - phi2[W])); + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi2[DIR_PPP] - phi2[DIR_MMM]) + (phi2[DIR_PMM] - phi2[DIR_MPP])) + ((phi2[DIR_PMP] - phi2[DIR_MPM]) + (phi2[DIR_PPM] - phi2[DIR_MMP]))) + + WEIGTH[NE] * (((phi2[DIR_P0P] - phi2[DIR_M0M]) + (phi2[DIR_P0M] - phi2[DIR_M0P])) + ((phi2[DIR_PM0] - phi2[DIR_MP0]) + (phi2[NE] - phi2[DIR_MM0])))) + + +WEIGTH[N] * (phi2[DIR_P00] - phi2[W])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { // sum += WEIGTH[k] * DX1[k] * phi2[k]; @@ -3333,8 +3333,8 @@ LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX1_phi2() LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX2_phi2() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi2[TNE] - phi2[BSW]) - (phi2[BSE] - phi2[TNW])) + ((phi2[BNE] - phi2[TSW]) - (phi2[TSE] - phi2[BNW]))) - + WEIGTH[NE] * (((phi2[TN] - phi2[BS]) + (phi2[BN] - phi2[TS])) + ((phi2[NE] - phi2[SW]) - (phi2[SE] - phi2[NW])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi2[DIR_PPP] - phi2[DIR_MMM]) - (phi2[DIR_PMM] - phi2[DIR_MPP])) + ((phi2[DIR_PPM] - phi2[DIR_MMP]) - (phi2[DIR_PMP] - phi2[DIR_MPM]))) + + WEIGTH[NE] * (((phi2[DIR_0PP] - phi2[DIR_0MM]) + (phi2[DIR_0PM] - phi2[DIR_0MP])) + ((phi2[NE] - phi2[DIR_MM0]) - (phi2[DIR_PM0] - phi2[DIR_MP0])))) + +WEIGTH[N] * (phi2[N] - phi2[S])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -3346,8 +3346,8 @@ LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX2_phi2() LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX3_phi2() { using namespace D3Q27System; - return 3.0 * ((WEIGTH[TNE] * (((phi2[TNE] - phi2[BSW]) - (phi2[BSE] - phi2[TNW])) + ((phi2[TSE] - phi2[BNW]) - (phi2[BNE] - phi2[TSW]))) - + WEIGTH[NE] * (((phi2[TE] - phi2[BW]) - (phi2[BE] - phi2[TW])) + ((phi2[TS] - phi2[BN]) + (phi2[TN] - phi2[BS])))) + + return 3.0 * ((WEIGTH[DIR_PPP] * (((phi2[DIR_PPP] - phi2[DIR_MMM]) - (phi2[DIR_PMM] - phi2[DIR_MPP])) + ((phi2[DIR_PMP] - phi2[DIR_MPM]) - (phi2[DIR_PPM] - phi2[DIR_MMP]))) + + WEIGTH[NE] * (((phi2[DIR_P0P] - phi2[DIR_M0M]) - (phi2[DIR_P0M] - phi2[DIR_M0P])) + ((phi2[DIR_0MP] - phi2[DIR_0PM]) + (phi2[DIR_0PP] - phi2[DIR_0MM])))) + +WEIGTH[N] * (phi2[T] - phi2[B])); //LBMReal sum = 0.0; //for (int k = FSTARTDIR; k <= FENDDIR; k++) { @@ -3364,17 +3364,17 @@ LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::nabla2_phi() { using namespace D3Q27System; LBMReal sum = 0.0; - sum += WEIGTH[TNE] * ((((phi[TNE] - phi[DIR_000]) + (phi[BSW] - phi[DIR_000])) + ((phi[TSW] - phi[DIR_000]) + (phi[BNE] - phi[DIR_000]))) - + (((phi[TNW] - phi[DIR_000]) + (phi[BSE] - phi[DIR_000])) + ((phi[TSE] - phi[DIR_000]) + (phi[BNW] - phi[DIR_000])))); - sum += WEIGTH[TN] * ( - (((phi[TN] - phi[DIR_000]) + (phi[BS] - phi[DIR_000])) + ((phi[TS] - phi[DIR_000]) + (phi[BN] - phi[DIR_000]))) - + (((phi[TE] - phi[DIR_000]) + (phi[BW] - phi[DIR_000])) + ((phi[TW] - phi[DIR_000]) + (phi[BE] - phi[DIR_000]))) - + (((phi[NE] - phi[DIR_000]) + (phi[SW] - phi[DIR_000])) + ((phi[NW] - phi[DIR_000]) + (phi[SE] - phi[DIR_000]))) + sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); + sum += WEIGTH[DIR_0PP] * ( + (((phi[DIR_0PP] - phi[DIR_000]) + (phi[DIR_0MM] - phi[DIR_000])) + ((phi[DIR_0MP] - phi[DIR_000]) + (phi[DIR_0PM] - phi[DIR_000]))) + + (((phi[DIR_P0P] - phi[DIR_000]) + (phi[DIR_M0M] - phi[DIR_000])) + ((phi[DIR_M0P] - phi[DIR_000]) + (phi[DIR_P0M] - phi[DIR_000]))) + + (((phi[NE] - phi[DIR_000]) + (phi[DIR_MM0] - phi[DIR_000])) + ((phi[DIR_MP0] - phi[DIR_000]) + (phi[DIR_PM0] - phi[DIR_000]))) ); sum += WEIGTH[T] * ( ((phi[T] - phi[DIR_000]) + (phi[B] - phi[DIR_000])) + ((phi[N] - phi[DIR_000]) + (phi[S] - phi[DIR_000])) - + ((phi[E] - phi[DIR_000]) + (phi[W] - phi[DIR_000])) + + ((phi[DIR_P00] - phi[DIR_000]) + (phi[W] - phi[DIR_000])) ); //for (int k = FSTARTDIR; k <= FENDDIR; k++) { // sum += WEIGTH[k] * (phi[k] - phi[REST]); @@ -3404,33 +3404,33 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::computePhasefield() int x2p = x2 + 1; int x3p = x3 + 1; - h[E] = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); + h[DIR_P00] = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); h[N] = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); h[T] = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); h[NE] = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); - h[NW] = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); - h[TE] = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); - h[TW] = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); - h[TN] = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); - h[TS] = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); - h[TNE] = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); - h[TNW] = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); - h[TSE] = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); - h[TSW] = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); + h[DIR_MP0] = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); + h[DIR_P0P] = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); + h[DIR_M0P] = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); + h[DIR_0PP] = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); + h[DIR_0MP] = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); + h[DIR_PPP] = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); + h[DIR_MPP] = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); + h[DIR_PMP] = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); + h[DIR_MMP] = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); h[W] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); h[S] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); h[B] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); - h[SW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); - h[SE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); - h[BW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); - h[BE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); - h[BS] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); - h[BN] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); - h[BSW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); - h[BSE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); - h[BNW] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); - h[BNE] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); + h[DIR_MM0] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); + h[DIR_PM0] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); + h[DIR_M0M] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); + h[DIR_P0M] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); + h[DIR_0MM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); + h[DIR_0PM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); + h[DIR_MMM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); + h[DIR_PMM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); + h[DIR_MPM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); + h[DIR_PPM] = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); h[DIR_000] = (*this->zeroDistributionsH1)(x1, x2, x3); } diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/RheologyInterpolationProcessor.cpp index fee069a10092ba2ba3b7dd5e3ff666a00f9dfa2d..30b9c875ab0a99112c821d9dbb37f84d4f7eb9a6 100644 --- a/src/cpu/VirtualFluidsCore/LBM/RheologyInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/RheologyInterpolationProcessor.cpp @@ -121,11 +121,11 @@ void RheologyInterpolationProcessor::calcMoments(const LBMReal* const f, LBMReal press = rho; //interpolate rho! - kxy = -3.*omega*((((f[TSW]+f[BNE])-(f[TNW]+f[BSE]))+((f[BSW]+f[TNE])-(f[BNW]+f[TSE])))+((f[SW]+f[NE])-(f[NW]+f[SE]))-(vx1*vx2));// might not be optimal MG 25.2.13 - kyz = -3.*omega*((((f[BSW]+f[TNE])-(f[TSE]+f[BNW]))+((f[BSE]+f[TNW])-(f[TSW]+f[BNE])))+((f[BS]+f[TN])-(f[TS]+f[BN]))-(vx2*vx3)); - kxz = -3.*omega*((((f[BNW]+f[TSE])-(f[TSW]+f[BNE]))+((f[BSW]+f[TNE])-(f[BSE]+f[TNW])))+((f[BW]+f[TE])-(f[TW]+f[BE]))-(vx1*vx3)); - kxxMyy = -3./2.*omega*((((f[D3Q27System::BW]+f[TE])-(f[BS]+f[TN]))+((f[TW]+f[BE])-(f[TS]+f[BN])))+((f[W]+f[E])-(f[S]+f[N]))-(vx1*vx1-vx2*vx2)); - kxxMzz = -3./2.*omega*((((f[NW]+f[SE])-(f[BS]+f[TN]))+((f[SW]+f[NE])-(f[TS]+f[BN])))+((f[W]+f[E])-(f[B]+f[T]))-(vx1*vx1-vx3*vx3)); + kxy = -3.*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[NE])-(f[DIR_MP0]+f[DIR_PM0]))-(vx1*vx2));// might not be optimal MG 25.2.13 + kyz = -3.*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))-(vx2*vx3)); + kxz = -3.*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))-(vx1*vx3)); + kxxMyy = -3./2.*omega*((((f[D3Q27System::DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[W]+f[DIR_P00])-(f[S]+f[N]))-(vx1*vx1-vx2*vx2)); + kxxMzz = -3./2.*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[NE])-(f[DIR_0MP]+f[DIR_0PM])))+((f[W]+f[DIR_P00])-(f[B]+f[T]))-(vx1*vx1-vx3*vx3)); } ////////////////////////////////////////////////////////////////////////// void RheologyInterpolationProcessor::calcInterpolatedCoefficiets_intern(const D3Q27ICell& icell, @@ -443,32 +443,32 @@ void RheologyInterpolationProcessor::calcInterpolatedNode(LBMReal* f, /*LBMReal LBMReal feq[ENDF+1]; D3Q27System::calcIncompFeq(feq,rho,vx1,vx2,vx3); - f[E] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[E]; + f[DIR_P00] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[DIR_P00]; f[W] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[W]; f[N] = f_N + xs*x_N + ys*y_N + zs*z_N + xs*ys*xy_N + xs*zs*xz_N + ys*zs*yz_N + feq[N]; f[S] = f_N + xs*x_N + ys*y_N + zs*z_N + xs*ys*xy_N + xs*zs*xz_N + ys*zs*yz_N + feq[S]; f[T] = f_T + xs*x_T + ys*y_T + zs*z_T + xs*ys*xy_T + xs*zs*xz_T + ys*zs*yz_T + feq[T]; f[B] = f_T + xs*x_T + ys*y_T + zs*z_T + xs*ys*xy_T + xs*zs*xz_T + ys*zs*yz_T + feq[B]; f[NE] = f_NE + xs*x_NE + ys*y_NE + zs*z_NE + xs*ys*xy_NE + xs*zs*xz_NE + ys*zs*yz_NE + feq[NE]; - f[SW] = f_NE + xs*x_NE + ys*y_NE + zs*z_NE + xs*ys*xy_NE + xs*zs*xz_NE + ys*zs*yz_NE + feq[SW]; - f[SE] = f_SE + xs*x_SE + ys*y_SE + zs*z_SE + xs*ys*xy_SE + xs*zs*xz_SE + ys*zs*yz_SE + feq[SE]; - f[NW] = f_SE + xs*x_SE + ys*y_SE + zs*z_SE + xs*ys*xy_SE + xs*zs*xz_SE + ys*zs*yz_SE + feq[NW]; - f[TE] = f_TE + xs*x_TE + ys*y_TE + zs*z_TE + xs*ys*xy_TE + xs*zs*xz_TE + ys*zs*yz_TE + feq[TE]; - f[BW] = f_TE + xs*x_TE + ys*y_TE + zs*z_TE + xs*ys*xy_TE + xs*zs*xz_TE + ys*zs*yz_TE + feq[BW]; - f[BE] = f_BE + xs*x_BE + ys*y_BE + zs*z_BE + xs*ys*xy_BE + xs*zs*xz_BE + ys*zs*yz_BE + feq[BE]; - f[TW] = f_BE + xs*x_BE + ys*y_BE + zs*z_BE + xs*ys*xy_BE + xs*zs*xz_BE + ys*zs*yz_BE + feq[TW]; - f[TN] = f_TN + xs*x_TN + ys*y_TN + zs*z_TN + xs*ys*xy_TN + xs*zs*xz_TN + ys*zs*yz_TN + feq[TN]; - f[BS] = f_TN + xs*x_TN + ys*y_TN + zs*z_TN + xs*ys*xy_TN + xs*zs*xz_TN + ys*zs*yz_TN + feq[BS]; - f[BN] = f_BN + xs*x_BN + ys*y_BN + zs*z_BN + xs*ys*xy_BN + xs*zs*xz_BN + ys*zs*yz_BN + feq[BN]; - f[TS] = f_BN + xs*x_BN + ys*y_BN + zs*z_BN + xs*ys*xy_BN + xs*zs*xz_BN + ys*zs*yz_BN + feq[TS]; - f[TNE] = f_TNE + xs*x_TNE + ys*y_TNE + zs*z_TNE + xs*ys*xy_TNE + xs*zs*xz_TNE + ys*zs*yz_TNE + feq[TNE]; - f[TSW] = f_TSW + xs*x_TSW + ys*y_TSW + zs*z_TSW + xs*ys*xy_TSW + xs*zs*xz_TSW + ys*zs*yz_TSW + feq[TSW]; - f[TSE] = f_TSE + xs*x_TSE + ys*y_TSE + zs*z_TSE + xs*ys*xy_TSE + xs*zs*xz_TSE + ys*zs*yz_TSE + feq[TSE]; - f[TNW] = f_TNW + xs*x_TNW + ys*y_TNW + zs*z_TNW + xs*ys*xy_TNW + xs*zs*xz_TNW + ys*zs*yz_TNW + feq[TNW]; - f[BNE] = f_TSW + xs*x_TSW + ys*y_TSW + zs*z_TSW + xs*ys*xy_TSW + xs*zs*xz_TSW + ys*zs*yz_TSW + feq[BNE]; - f[BSW] = f_TNE + xs*x_TNE + ys*y_TNE + zs*z_TNE + xs*ys*xy_TNE + xs*zs*xz_TNE + ys*zs*yz_TNE + feq[BSW]; - f[BSE] = f_TNW + xs*x_TNW + ys*y_TNW + zs*z_TNW + xs*ys*xy_TNW + xs*zs*xz_TNW + ys*zs*yz_TNW + feq[BSE]; - f[BNW] = f_TSE + xs*x_TSE + ys*y_TSE + zs*z_TSE + xs*ys*xy_TSE + xs*zs*xz_TSE + ys*zs*yz_TSE + feq[BNW]; + f[DIR_MM0] = f_NE + xs*x_NE + ys*y_NE + zs*z_NE + xs*ys*xy_NE + xs*zs*xz_NE + ys*zs*yz_NE + feq[DIR_MM0]; + f[DIR_PM0] = f_SE + xs*x_SE + ys*y_SE + zs*z_SE + xs*ys*xy_SE + xs*zs*xz_SE + ys*zs*yz_SE + feq[DIR_PM0]; + f[DIR_MP0] = f_SE + xs*x_SE + ys*y_SE + zs*z_SE + xs*ys*xy_SE + xs*zs*xz_SE + ys*zs*yz_SE + feq[DIR_MP0]; + f[DIR_P0P] = f_TE + xs*x_TE + ys*y_TE + zs*z_TE + xs*ys*xy_TE + xs*zs*xz_TE + ys*zs*yz_TE + feq[DIR_P0P]; + f[DIR_M0M] = f_TE + xs*x_TE + ys*y_TE + zs*z_TE + xs*ys*xy_TE + xs*zs*xz_TE + ys*zs*yz_TE + feq[DIR_M0M]; + f[DIR_P0M] = f_BE + xs*x_BE + ys*y_BE + zs*z_BE + xs*ys*xy_BE + xs*zs*xz_BE + ys*zs*yz_BE + feq[DIR_P0M]; + f[DIR_M0P] = f_BE + xs*x_BE + ys*y_BE + zs*z_BE + xs*ys*xy_BE + xs*zs*xz_BE + ys*zs*yz_BE + feq[DIR_M0P]; + f[DIR_0PP] = f_TN + xs*x_TN + ys*y_TN + zs*z_TN + xs*ys*xy_TN + xs*zs*xz_TN + ys*zs*yz_TN + feq[DIR_0PP]; + f[DIR_0MM] = f_TN + xs*x_TN + ys*y_TN + zs*z_TN + xs*ys*xy_TN + xs*zs*xz_TN + ys*zs*yz_TN + feq[DIR_0MM]; + f[DIR_0PM] = f_BN + xs*x_BN + ys*y_BN + zs*z_BN + xs*ys*xy_BN + xs*zs*xz_BN + ys*zs*yz_BN + feq[DIR_0PM]; + f[DIR_0MP] = f_BN + xs*x_BN + ys*y_BN + zs*z_BN + xs*ys*xy_BN + xs*zs*xz_BN + ys*zs*yz_BN + feq[DIR_0MP]; + f[DIR_PPP] = f_TNE + xs*x_TNE + ys*y_TNE + zs*z_TNE + xs*ys*xy_TNE + xs*zs*xz_TNE + ys*zs*yz_TNE + feq[DIR_PPP]; + f[DIR_MMP] = f_TSW + xs*x_TSW + ys*y_TSW + zs*z_TSW + xs*ys*xy_TSW + xs*zs*xz_TSW + ys*zs*yz_TSW + feq[DIR_MMP]; + f[DIR_PMP] = f_TSE + xs*x_TSE + ys*y_TSE + zs*z_TSE + xs*ys*xy_TSE + xs*zs*xz_TSE + ys*zs*yz_TSE + feq[DIR_PMP]; + f[DIR_MPP] = f_TNW + xs*x_TNW + ys*y_TNW + zs*z_TNW + xs*ys*xy_TNW + xs*zs*xz_TNW + ys*zs*yz_TNW + feq[DIR_MPP]; + f[DIR_PPM] = f_TSW + xs*x_TSW + ys*y_TSW + zs*z_TSW + xs*ys*xy_TSW + xs*zs*xz_TSW + ys*zs*yz_TSW + feq[DIR_PPM]; + f[DIR_MMM] = f_TNE + xs*x_TNE + ys*y_TNE + zs*z_TNE + xs*ys*xy_TNE + xs*zs*xz_TNE + ys*zs*yz_TNE + feq[DIR_MMM]; + f[DIR_PMM] = f_TNW + xs*x_TNW + ys*y_TNW + zs*z_TNW + xs*ys*xy_TNW + xs*zs*xz_TNW + ys*zs*yz_TNW + feq[DIR_PMM]; + f[DIR_MPM] = f_TSE + xs*x_TSE + ys*y_TSE + zs*z_TSE + xs*ys*xy_TSE + xs*zs*xz_TSE + ys*zs*yz_TSE + feq[DIR_MPM]; f[DIR_000] = f_ZERO + xs*x_ZERO + ys*y_ZERO + zs*z_ZERO + feq[DIR_000]; } ////////////////////////////////////////////////////////////////////////// @@ -632,32 +632,32 @@ void RheologyInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f, LBMReal f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(72.*o)); f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(72.*o)); - f[E] = f_E + feq[E]; + f[DIR_P00] = f_E + feq[DIR_P00]; f[W] = f_E + feq[W]; f[N] = f_N + feq[N]; f[S] = f_N + feq[S]; f[T] = f_T + feq[T]; f[B] = f_T + feq[B]; f[NE] = f_NE + feq[NE]; - f[SW] = f_NE + feq[SW]; - f[SE] = f_SE + feq[SE]; - f[NW] = f_SE + feq[NW]; - f[TE] = f_TE + feq[TE]; - f[BW] = f_TE + feq[BW]; - f[BE] = f_BE + feq[BE]; - f[TW] = f_BE + feq[TW]; - f[TN] = f_TN + feq[TN]; - f[BS] = f_TN + feq[BS]; - f[BN] = f_BN + feq[BN]; - f[TS] = f_BN + feq[TS]; - f[TNE] = f_TNE + feq[TNE]; - f[TNW] = f_TNW + feq[TNW]; - f[TSE] = f_TSE + feq[TSE]; - f[TSW] = f_TSW + feq[TSW]; - f[BNE] = f_TSW + feq[BNE]; - f[BNW] = f_TSE + feq[BNW]; - f[BSE] = f_TNW + feq[BSE]; - f[BSW] = f_TNE + feq[BSW]; + f[DIR_MM0] = f_NE + feq[DIR_MM0]; + f[DIR_PM0] = f_SE + feq[DIR_PM0]; + f[DIR_MP0] = f_SE + feq[DIR_MP0]; + f[DIR_P0P] = f_TE + feq[DIR_P0P]; + f[DIR_M0M] = f_TE + feq[DIR_M0M]; + f[DIR_P0M] = f_BE + feq[DIR_P0M]; + f[DIR_M0P] = f_BE + feq[DIR_M0P]; + f[DIR_0PP] = f_TN + feq[DIR_0PP]; + f[DIR_0MM] = f_TN + feq[DIR_0MM]; + f[DIR_0PM] = f_BN + feq[DIR_0PM]; + f[DIR_0MP] = f_BN + feq[DIR_0MP]; + f[DIR_PPP] = f_TNE + feq[DIR_PPP]; + f[DIR_MPP] = f_TNW + feq[DIR_MPP]; + f[DIR_PMP] = f_TSE + feq[DIR_PMP]; + f[DIR_MMP] = f_TSW + feq[DIR_MMP]; + f[DIR_PPM] = f_TSW + feq[DIR_PPM]; + f[DIR_MPM] = f_TSE + feq[DIR_MPM]; + f[DIR_PMM] = f_TNW + feq[DIR_PMM]; + f[DIR_MMM] = f_TNE + feq[DIR_MMM]; f[DIR_000] = f_ZERO + feq[DIR_000]; } ////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsBlockVisitor.cpp index fd0b68655a1134fe2dc1035279f9da143c088ae3..358c61516b0ac10cba3c0ebb335b19b7db7f30a0 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsBlockVisitor.cpp @@ -247,32 +247,32 @@ void InitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPtr<Block3D> double f_TNW = - eps_new *((bz + cy)/(36.*o)) - f_TNE; - f[E] = f_E + feq[E]; + f[DIR_P00] = f_E + feq[DIR_P00]; f[W] = f_E + feq[W]; f[N] = f_N + feq[N]; f[S] = f_N + feq[S]; f[T] = f_T + feq[T]; f[B] = f_T + feq[B]; f[NE] = f_NE + feq[NE]; - f[SW] = f_NE + feq[SW]; - f[SE] = f_SE + feq[SE]; - f[NW] = f_SE + feq[NW]; - f[TE] = f_TE + feq[TE]; - f[BW] = f_TE + feq[BW]; - f[BE] = f_BE + feq[BE]; - f[TW] = f_BE + feq[TW]; - f[TN] = f_TN + feq[TN]; - f[BS] = f_TN + feq[BS]; - f[BN] = f_BN + feq[BN]; - f[TS] = f_BN + feq[TS]; - f[TNE] = f_TNE + feq[TNE]; - f[TNW] = f_TNW + feq[TNW]; - f[TSE] = f_TSE + feq[TSE]; - f[TSW] = f_TSW + feq[TSW]; - f[BNE] = f_TSW + feq[BNE]; - f[BNW] = f_TSE + feq[BNW]; - f[BSE] = f_TNW + feq[BSE]; - f[BSW] = f_TNE + feq[BSW]; + f[DIR_MM0] = f_NE + feq[DIR_MM0]; + f[DIR_PM0] = f_SE + feq[DIR_PM0]; + f[DIR_MP0] = f_SE + feq[DIR_MP0]; + f[DIR_P0P] = f_TE + feq[DIR_P0P]; + f[DIR_M0M] = f_TE + feq[DIR_M0M]; + f[DIR_P0M] = f_BE + feq[DIR_P0M]; + f[DIR_M0P] = f_BE + feq[DIR_M0P]; + f[DIR_0PP] = f_TN + feq[DIR_0PP]; + f[DIR_0MM] = f_TN + feq[DIR_0MM]; + f[DIR_0PM] = f_BN + feq[DIR_0PM]; + f[DIR_0MP] = f_BN + feq[DIR_0MP]; + f[DIR_PPP] = f_TNE + feq[DIR_PPP]; + f[DIR_MPP] = f_TNW + feq[DIR_MPP]; + f[DIR_PMP] = f_TSE + feq[DIR_PMP]; + f[DIR_MMP] = f_TSW + feq[DIR_MMP]; + f[DIR_PPM] = f_TSW + feq[DIR_PPM]; + f[DIR_MPM] = f_TSE + feq[DIR_MPM]; + f[DIR_PMM] = f_TNW + feq[DIR_PMM]; + f[DIR_MMM] = f_TNE + feq[DIR_MMM]; f[DIR_000] = f_ZERO + feq[DIR_000]; //calcFeqsFct(f,rho,vx1,vx2,vx3); diff --git a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsFromFileBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsFromFileBlockVisitor.cpp index c20cccdf64a80a388889d23463b62d3b25c03f77..1bcb6057f5b5987ced9adc17e7d6fabd262911e6 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsFromFileBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsFromFileBlockVisitor.cpp @@ -202,7 +202,7 @@ void InitDistributionsFromFileBlockVisitor::visit(const SPtr<Grid3D> grid, SPtr< // f_TSW = -eps_new *((ay + bx) / (36.*o)) - f_TNE; double f_TSE = -eps_new *((az + cx) / (36.*o)) - // f_TNE; double f_TNW = -eps_new *((bz + cy) / (36.*o)) - f_TNE; - // f[E] = f_E + feq[E]; + // f[DIR_P00] = f_E + feq[DIR_P00]; // f[W] = f_E + feq[W]; // f[N] = f_N + feq[N]; // f[S] = f_N + feq[S]; diff --git a/src/cpu/VirtualFluidsCore/Visitors/InitThixotropyBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/InitThixotropyBlockVisitor.cpp index d35b9d18fe2539affc528e27a41abded0fddb55d..9c8c05babe4fc2d454908095e8a232eb14434df2 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/InitThixotropyBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/InitThixotropyBlockVisitor.cpp @@ -426,7 +426,7 @@ void InitThixotropyBlockVisitor::checkFunction(mu::Parser fct) // double f_TNW = -eps_new * ((bz + cy) / (36. * o)) - f_TNE; // // -// f[E] = f_E + feq[E]; +// f[DIR_P00] = f_E + feq[DIR_P00]; // f[W] = f_E + feq[W]; // f[N] = f_N + feq[N]; // f[S] = f_N + feq[S]; diff --git a/src/cpu/VirtualFluidsCore/Visitors/MetisPartitioningGridVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/MetisPartitioningGridVisitor.cpp index 412e9347d707fe2e4ad733cf53419f18f86faf01..451ccfc1f978b04f7705909e7ddcf41c4376882b 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/MetisPartitioningGridVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/MetisPartitioningGridVisitor.cpp @@ -258,9 +258,9 @@ int MetisPartitioningGridVisitor::getEdgeWeight(int dir) using namespace D3Q27System; if (dir <= B) { return 100; - } else if (dir >= NE && dir <= TS) { + } else if (dir >= NE && dir <= DIR_0MP) { return 10; - } else if (dir >= TNE) { + } else if (dir >= DIR_PPP) { return 1; } diff --git a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.cpp index a6ae293a60ead3d34ba83bced8dc01cb7f25a21f..e321725b619bbeb88c1bd70fe90885bfdbee431d 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.cpp @@ -227,63 +227,63 @@ void MultiphaseInitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPt } - f[E] = geq[E] ; + f[DIR_P00] = geq[DIR_P00] ; f[W] = geq[W] ; f[N] = geq[N] ; f[S] = geq[S] ; f[T] = geq[T] ; f[B] = geq[B] ; f[NE] = geq[NE] ; - f[SW] = geq[SW] ; - f[SE] = geq[SE] ; - f[NW] = geq[NW] ; - f[TE] = geq[TE] ; - f[BW] = geq[BW] ; - f[BE] = geq[BE] ; - f[TW] = geq[TW] ; - f[TN] = geq[TN] ; - f[BS] = geq[BS] ; - f[BN] = geq[BN] ; - f[TS] = geq[TS] ; - f[TNE] = geq[TNE] ; - f[TNW] = geq[TNW] ; - f[TSE] = geq[TSE] ; - f[TSW] = geq[TSW] ; - f[BNE] = geq[BNE] ; - f[BNW] = geq[BNW] ; - f[BSE] = geq[BSE] ; - f[BSW] = geq[BSW] ; + f[DIR_MM0] = geq[DIR_MM0] ; + f[DIR_PM0] = geq[DIR_PM0] ; + f[DIR_MP0] = geq[DIR_MP0] ; + f[DIR_P0P] = geq[DIR_P0P] ; + f[DIR_M0M] = geq[DIR_M0M] ; + f[DIR_P0M] = geq[DIR_P0M] ; + f[DIR_M0P] = geq[DIR_M0P] ; + f[DIR_0PP] = geq[DIR_0PP] ; + f[DIR_0MM] = geq[DIR_0MM] ; + f[DIR_0PM] = geq[DIR_0PM] ; + f[DIR_0MP] = geq[DIR_0MP] ; + f[DIR_PPP] = geq[DIR_PPP] ; + f[DIR_MPP] = geq[DIR_MPP] ; + f[DIR_PMP] = geq[DIR_PMP] ; + f[DIR_MMP] = geq[DIR_MMP] ; + f[DIR_PPM] = geq[DIR_PPM] ; + f[DIR_MPM] = geq[DIR_MPM] ; + f[DIR_PMM] = geq[DIR_PMM] ; + f[DIR_MMM] = geq[DIR_MMM] ; f[DIR_000] = geq[DIR_000] ; distributionsF->setDistribution(f, ix1, ix2, ix3); distributionsF->setDistributionInv(f, ix1, ix2, ix3); - f[E] = phi * feq[E] / rho; + f[DIR_P00] = phi * feq[DIR_P00] / rho; f[W] = phi * feq[W] / rho; f[N] = phi * feq[N] / rho; f[S] = phi * feq[S] / rho; f[T] = phi * feq[T] / rho; f[B] = phi * feq[B] / rho; f[NE] = phi * feq[NE] / rho; - f[SW] = phi * feq[SW] / rho; - f[SE] = phi * feq[SE] / rho; - f[NW] = phi * feq[NW] / rho; - f[TE] = phi * feq[TE] / rho; - f[BW] = phi * feq[BW] / rho; - f[BE] = phi * feq[BE] / rho; - f[TW] = phi * feq[TW] / rho; - f[TN] = phi * feq[TN] / rho; - f[BS] = phi * feq[BS] / rho; - f[BN] = phi * feq[BN] / rho; - f[TS] = phi * feq[TS] / rho; - f[TNE] = phi * feq[TNE] / rho; - f[TNW] = phi * feq[TNW] / rho; - f[TSE] = phi * feq[TSE] / rho; - f[TSW] = phi * feq[TSW] / rho; - f[BNE] = phi * feq[BNE] / rho; - f[BNW] = phi * feq[BNW] / rho; - f[BSE] = phi * feq[BSE] / rho; - f[BSW] = phi * feq[BSW] / rho; + f[DIR_MM0] = phi * feq[DIR_MM0] / rho; + f[DIR_PM0] = phi * feq[DIR_PM0] / rho; + f[DIR_MP0] = phi * feq[DIR_MP0] / rho; + f[DIR_P0P] = phi * feq[DIR_P0P] / rho; + f[DIR_M0M] = phi * feq[DIR_M0M] / rho; + f[DIR_P0M] = phi * feq[DIR_P0M] / rho; + f[DIR_M0P] = phi * feq[DIR_M0P] / rho; + f[DIR_0PP] = phi * feq[DIR_0PP] / rho; + f[DIR_0MM] = phi * feq[DIR_0MM] / rho; + f[DIR_0PM] = phi * feq[DIR_0PM] / rho; + f[DIR_0MP] = phi * feq[DIR_0MP] / rho; + f[DIR_PPP] = phi * feq[DIR_PPP] / rho; + f[DIR_MPP] = phi * feq[DIR_MPP] / rho; + f[DIR_PMP] = phi * feq[DIR_PMP] / rho; + f[DIR_MMP] = phi * feq[DIR_MMP] / rho; + f[DIR_PPM] = phi * feq[DIR_PPM] / rho; + f[DIR_MPM] = phi * feq[DIR_MPM] / rho; + f[DIR_PMM] = phi * feq[DIR_PMM] / rho; + f[DIR_MMM] = phi * feq[DIR_MMM] / rho; f[DIR_000] = phi * feq[DIR_000] / rho; distributionsH->setDistribution(f, ix1, ix2, ix3); @@ -291,32 +291,32 @@ void MultiphaseInitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPt if (distributionsH2) { - f[E] = (1.-phi) * feq[E] / rho; + f[DIR_P00] = (1.-phi) * feq[DIR_P00] / rho; f[W] = (1.-phi) * feq[W] / rho; f[N] = (1.-phi) * feq[N] / rho; f[S] = (1.-phi) * feq[S] / rho; f[T] = (1.-phi) * feq[T] / rho; f[B] = (1.-phi) * feq[B] / rho; f[NE] = (1.-phi) * feq[NE] / rho; - f[SW] = (1.-phi) * feq[SW] / rho; - f[SE] = (1.-phi) * feq[SE] / rho; - f[NW] = (1.-phi) * feq[NW] / rho; - f[TE] = (1.-phi) * feq[TE] / rho; - f[BW] = (1.-phi) * feq[BW] / rho; - f[BE] = (1.-phi) * feq[BE] / rho; - f[TW] = (1.-phi) * feq[TW] / rho; - f[TN] = (1.-phi) * feq[TN] / rho; - f[BS] = (1.-phi) * feq[BS] / rho; - f[BN] = (1.-phi) * feq[BN] / rho; - f[TS] = (1.-phi) * feq[TS] / rho; - f[TNE] = (1.-phi) * feq[TNE] / rho; - f[TNW] = (1.-phi) * feq[TNW] / rho; - f[TSE] = (1.-phi) * feq[TSE] / rho; - f[TSW] = (1.-phi) * feq[TSW] / rho; - f[BNE] = (1.-phi) * feq[BNE] / rho; - f[BNW] = (1.-phi) * feq[BNW] / rho; - f[BSE] = (1.-phi) * feq[BSE] / rho; - f[BSW] = (1.-phi) * feq[BSW] / rho; + f[DIR_MM0] = (1.-phi) * feq[DIR_MM0] / rho; + f[DIR_PM0] = (1.-phi) * feq[DIR_PM0] / rho; + f[DIR_MP0] = (1.-phi) * feq[DIR_MP0] / rho; + f[DIR_P0P] = (1.-phi) * feq[DIR_P0P] / rho; + f[DIR_M0M] = (1.-phi) * feq[DIR_M0M] / rho; + f[DIR_P0M] = (1.-phi) * feq[DIR_P0M] / rho; + f[DIR_M0P] = (1.-phi) * feq[DIR_M0P] / rho; + f[DIR_0PP] = (1.-phi) * feq[DIR_0PP] / rho; + f[DIR_0MM] = (1.-phi) * feq[DIR_0MM] / rho; + f[DIR_0PM] = (1.-phi) * feq[DIR_0PM] / rho; + f[DIR_0MP] = (1.-phi) * feq[DIR_0MP] / rho; + f[DIR_PPP] = (1.-phi) * feq[DIR_PPP] / rho; + f[DIR_MPP] = (1.-phi) * feq[DIR_MPP] / rho; + f[DIR_PMP] = (1.-phi) * feq[DIR_PMP] / rho; + f[DIR_MMP] = (1.-phi) * feq[DIR_MMP] / rho; + f[DIR_PPM] = (1.-phi) * feq[DIR_PPM] / rho; + f[DIR_MPM] = (1.-phi) * feq[DIR_MPM] / rho; + f[DIR_PMM] = (1.-phi) * feq[DIR_PMM] / rho; + f[DIR_MMM] = (1.-phi) * feq[DIR_MMM] / rho; f[DIR_000] = (1.-phi) * feq[DIR_000] / rho; distributionsH2->setDistribution(f, ix1, ix2, ix3); diff --git a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.cpp index e10a9774d85bd1e6d32c2d7b320d3a4b591da94d..dd9fb72af1710d420b9a082a85cb289628e46117 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.cpp @@ -219,63 +219,63 @@ void MultiphaseVelocityFormInitDistributionsBlockVisitor::visit(const SPtr<Grid3 } - f[E] = geq[E] ; + f[DIR_P00] = geq[DIR_P00] ; f[W] = geq[W] ; f[N] = geq[N] ; f[S] = geq[S] ; f[T] = geq[T] ; f[B] = geq[B] ; f[NE] = geq[NE] ; - f[SW] = geq[SW] ; - f[SE] = geq[SE] ; - f[NW] = geq[NW] ; - f[TE] = geq[TE] ; - f[BW] = geq[BW] ; - f[BE] = geq[BE] ; - f[TW] = geq[TW] ; - f[TN] = geq[TN] ; - f[BS] = geq[BS] ; - f[BN] = geq[BN] ; - f[TS] = geq[TS] ; - f[TNE] = geq[TNE] ; - f[TNW] = geq[TNW] ; - f[TSE] = geq[TSE] ; - f[TSW] = geq[TSW] ; - f[BNE] = geq[BNE] ; - f[BNW] = geq[BNW] ; - f[BSE] = geq[BSE] ; - f[BSW] = geq[BSW] ; + f[DIR_MM0] = geq[DIR_MM0] ; + f[DIR_PM0] = geq[DIR_PM0] ; + f[DIR_MP0] = geq[DIR_MP0] ; + f[DIR_P0P] = geq[DIR_P0P] ; + f[DIR_M0M] = geq[DIR_M0M] ; + f[DIR_P0M] = geq[DIR_P0M] ; + f[DIR_M0P] = geq[DIR_M0P] ; + f[DIR_0PP] = geq[DIR_0PP] ; + f[DIR_0MM] = geq[DIR_0MM] ; + f[DIR_0PM] = geq[DIR_0PM] ; + f[DIR_0MP] = geq[DIR_0MP] ; + f[DIR_PPP] = geq[DIR_PPP] ; + f[DIR_MPP] = geq[DIR_MPP] ; + f[DIR_PMP] = geq[DIR_PMP] ; + f[DIR_MMP] = geq[DIR_MMP] ; + f[DIR_PPM] = geq[DIR_PPM] ; + f[DIR_MPM] = geq[DIR_MPM] ; + f[DIR_PMM] = geq[DIR_PMM] ; + f[DIR_MMM] = geq[DIR_MMM] ; f[DIR_000] = geq[DIR_000] ; distributionsF->setDistribution(f, ix1, ix2, ix3); distributionsF->setDistributionInv(f, ix1, ix2, ix3); - f[E] = phi * feq[E] ;// / rho; + f[DIR_P00] = phi * feq[DIR_P00] ;// / rho; f[W] = phi * feq[W] ;// / rho; f[N] = phi * feq[N] ;// / rho; f[S] = phi * feq[S] ;// / rho; f[T] = phi * feq[T] ;// / rho; f[B] = phi * feq[B] ;// / rho; f[NE] = phi * feq[NE] ;// / rho; - f[SW] = phi * feq[SW] ;// / rho; - f[SE] = phi * feq[SE] ;// / rho; - f[NW] = phi * feq[NW] ;// / rho; - f[TE] = phi * feq[TE] ;// / rho; - f[BW] = phi * feq[BW] ;// / rho; - f[BE] = phi * feq[BE] ;// / rho; - f[TW] = phi * feq[TW] ;// / rho; - f[TN] = phi * feq[TN] ;// / rho; - f[BS] = phi * feq[BS] ;// / rho; - f[BN] = phi * feq[BN] ;// / rho; - f[TS] = phi * feq[TS] ;// / rho; - f[TNE] = phi * feq[TNE] ;// / rho; - f[TNW] = phi * feq[TNW] ;// / rho; - f[TSE] = phi * feq[TSE] ;// / rho; - f[TSW] = phi * feq[TSW] ;// / rho; - f[BNE] = phi * feq[BNE] ;// / rho; - f[BNW] = phi * feq[BNW] ;// / rho; - f[BSE] = phi * feq[BSE] ;// / rho; - f[BSW] = phi * feq[BSW] ;// / rho; + f[DIR_MM0] = phi * feq[DIR_MM0] ;// / rho; + f[DIR_PM0] = phi * feq[DIR_PM0] ;// / rho; + f[DIR_MP0] = phi * feq[DIR_MP0] ;// / rho; + f[DIR_P0P] = phi * feq[DIR_P0P] ;// / rho; + f[DIR_M0M] = phi * feq[DIR_M0M] ;// / rho; + f[DIR_P0M] = phi * feq[DIR_P0M] ;// / rho; + f[DIR_M0P] = phi * feq[DIR_M0P] ;// / rho; + f[DIR_0PP] = phi * feq[DIR_0PP] ;// / rho; + f[DIR_0MM] = phi * feq[DIR_0MM] ;// / rho; + f[DIR_0PM] = phi * feq[DIR_0PM] ;// / rho; + f[DIR_0MP] = phi * feq[DIR_0MP] ;// / rho; + f[DIR_PPP] = phi * feq[DIR_PPP] ;// / rho; + f[DIR_MPP] = phi * feq[DIR_MPP] ;// / rho; + f[DIR_PMP] = phi * feq[DIR_PMP] ;// / rho; + f[DIR_MMP] = phi * feq[DIR_MMP] ;// / rho; + f[DIR_PPM] = phi * feq[DIR_PPM] ;// / rho; + f[DIR_MPM] = phi * feq[DIR_MPM] ;// / rho; + f[DIR_PMM] = phi * feq[DIR_PMM] ;// / rho; + f[DIR_MMM] = phi * feq[DIR_MMM] ;// / rho; f[DIR_000] = phi * feq[DIR_000] ;// / rho; distributionsH->setDistribution(f, ix1, ix2, ix3); @@ -283,32 +283,32 @@ void MultiphaseVelocityFormInitDistributionsBlockVisitor::visit(const SPtr<Grid3 if (distributionsH2) { - f[E] = (1.-phi) * feq[E] ;// / rho; + f[DIR_P00] = (1.-phi) * feq[DIR_P00] ;// / rho; f[W] = (1.-phi) * feq[W] ;// / rho; f[N] = (1.-phi) * feq[N] ;// / rho; f[S] = (1.-phi) * feq[S] ;// / rho; f[T] = (1.-phi) * feq[T] ;// / rho; f[B] = (1.-phi) * feq[B] ;// / rho; f[NE] = (1.-phi) * feq[NE] ;// / rho; - f[SW] = (1.-phi) * feq[SW] ;// / rho; - f[SE] = (1.-phi) * feq[SE] ;// / rho; - f[NW] = (1.-phi) * feq[NW] ;// / rho; - f[TE] = (1.-phi) * feq[TE] ;// / rho; - f[BW] = (1.-phi) * feq[BW] ;// / rho; - f[BE] = (1.-phi) * feq[BE] ;// / rho; - f[TW] = (1.-phi) * feq[TW] ;// / rho; - f[TN] = (1.-phi) * feq[TN] ;// / rho; - f[BS] = (1.-phi) * feq[BS] ;// / rho; - f[BN] = (1.-phi) * feq[BN] ;// / rho; - f[TS] = (1.-phi) * feq[TS] ;// / rho; - f[TNE] = (1.-phi) * feq[TNE] ;// / rho; - f[TNW] = (1.-phi) * feq[TNW] ;// / rho; - f[TSE] = (1.-phi) * feq[TSE] ;// / rho; - f[TSW] = (1.-phi) * feq[TSW] ;// / rho; - f[BNE] = (1.-phi) * feq[BNE] ;// / rho; - f[BNW] = (1.-phi) * feq[BNW] ;// / rho; - f[BSE] = (1.-phi) * feq[BSE] ;// / rho; - f[BSW] = (1.-phi) * feq[BSW] ;// / rho; + f[DIR_MM0] = (1.-phi) * feq[DIR_MM0] ;// / rho; + f[DIR_PM0] = (1.-phi) * feq[DIR_PM0] ;// / rho; + f[DIR_MP0] = (1.-phi) * feq[DIR_MP0] ;// / rho; + f[DIR_P0P] = (1.-phi) * feq[DIR_P0P] ;// / rho; + f[DIR_M0M] = (1.-phi) * feq[DIR_M0M] ;// / rho; + f[DIR_P0M] = (1.-phi) * feq[DIR_P0M] ;// / rho; + f[DIR_M0P] = (1.-phi) * feq[DIR_M0P] ;// / rho; + f[DIR_0PP] = (1.-phi) * feq[DIR_0PP] ;// / rho; + f[DIR_0MM] = (1.-phi) * feq[DIR_0MM] ;// / rho; + f[DIR_0PM] = (1.-phi) * feq[DIR_0PM] ;// / rho; + f[DIR_0MP] = (1.-phi) * feq[DIR_0MP] ;// / rho; + f[DIR_PPP] = (1.-phi) * feq[DIR_PPP] ;// / rho; + f[DIR_MPP] = (1.-phi) * feq[DIR_MPP] ;// / rho; + f[DIR_PMP] = (1.-phi) * feq[DIR_PMP] ;// / rho; + f[DIR_MMP] = (1.-phi) * feq[DIR_MMP] ;// / rho; + f[DIR_PPM] = (1.-phi) * feq[DIR_PPM] ;// / rho; + f[DIR_MPM] = (1.-phi) * feq[DIR_MPM] ;// / rho; + f[DIR_PMM] = (1.-phi) * feq[DIR_PMM] ;// / rho; + f[DIR_MMM] = (1.-phi) * feq[DIR_MMM] ;// / rho; f[DIR_000] = (1.-phi) * feq[DIR_000];// / rho; distributionsH2->setDistribution(f, ix1, ix2, ix3); diff --git a/src/cpu/VirtualFluidsCore/Visitors/RefineAroundGbObjectHelper.cpp b/src/cpu/VirtualFluidsCore/Visitors/RefineAroundGbObjectHelper.cpp index c151ac90492bc7545f7d498fdfd2b3f9efbc9ab6..b0b0cf7743fd195796ef2fb3276a9a3921adf465 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/RefineAroundGbObjectHelper.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/RefineAroundGbObjectHelper.cpp @@ -38,7 +38,7 @@ void RefineAroundGbObjectHelper::refine() grid->accept(overlapVisitor); std::vector<int> dirs; - for (int i = D3Q27System::E; i <= D3Q27System::TS; i++) { + for (int i = D3Q27System::DIR_P00; i <= D3Q27System::DIR_0MP; i++) { dirs.push_back(i); } SetInterpolationDirsBlockVisitor interDirsVisitor(dirs); diff --git a/src/cpu/VirtualFluidsCore/Visitors/RefineCrossAndInsideGbObjectHelper.cpp b/src/cpu/VirtualFluidsCore/Visitors/RefineCrossAndInsideGbObjectHelper.cpp index 656457c0580739bd00783b3050fb2c460eaa5a14..0b8b631e6ef91e011e8ca226f01c7064ece7bf69 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/RefineCrossAndInsideGbObjectHelper.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/RefineCrossAndInsideGbObjectHelper.cpp @@ -55,7 +55,7 @@ void RefineCrossAndInsideGbObjectHelper::refine() std::vector<int> dirs; - for (int i = D3Q27System::E; i < D3Q27System::ENDDIR; i++) { + for (int i = D3Q27System::DIR_P00; i < D3Q27System::ENDDIR; i++) { dirs.push_back(i); } SetInterpolationDirsBlockVisitor interDirsVisitor(dirs); diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationConnectorsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationConnectorsBlockVisitor.cpp index 4badec1f4d1a46afce4bfdb0b0172af80b606961..54f46c811d4c2d065bbda7232bd4e32f24559c22 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationConnectorsBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationConnectorsBlockVisitor.cpp @@ -82,110 +82,110 @@ void SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors(SPtr<Gri int fbx3 = block->getX3() << 1; int level = block->getLevel() + 1; - if( block->hasInterpolationFlagCF(D3Q27System::E)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_P00)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2,fbx3,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); SPtr<Block3D> fblockNW = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::E); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_P00); } - if( block->hasInterpolationFlagCF(D3Q27System::W)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_M00)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2+1,fbx3,level); SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2,fbx3+1,level); SPtr<Block3D> fblockNE = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::W); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_M00); } - if( block->hasInterpolationFlagCF(D3Q27System::N)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_0P0)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2+1,fbx3,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::N); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_0P0); } - if( block->hasInterpolationFlagCF(D3Q27System::S)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_0M0)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3,level); SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2,fbx3+1,level); SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::S); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_0M0); } - if( block->hasInterpolationFlagCF(D3Q27System::T)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_00P)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3+1,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::T); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_00P); } - if( block->hasInterpolationFlagCF(D3Q27System::B)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_00M)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3,level); SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2+1,fbx3,level); SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::B); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_00M); } //////NE-NW-SE-SW - if( block->hasInterpolationFlagCF(D3Q27System::NE)&&!block->hasInterpolationFlagCF(D3Q27System::N) && !block->hasInterpolationFlagCF(D3Q27System::E)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_PP0)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_0P0) && !block->hasInterpolationFlagCF(D3Q27System::DIR_P00)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2+1,fbx3+0,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::NE); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_PP0); } - if( block->hasInterpolationFlagCF(D3Q27System::SW)&& !block->hasInterpolationFlagCF(D3Q27System::W) && !block->hasInterpolationFlagCF(D3Q27System::S)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_MM0)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_M00) && !block->hasInterpolationFlagCF(D3Q27System::DIR_0M0)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2,fbx3+1,level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::SW); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_MM0); } - if( block->hasInterpolationFlagCF(D3Q27System::SE)&& !block->hasInterpolationFlagCF(D3Q27System::E) && !block->hasInterpolationFlagCF(D3Q27System::S)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_PM0)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_P00) && !block->hasInterpolationFlagCF(D3Q27System::DIR_0M0)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2,fbx3+0,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::SE); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_PM0); } - if( block->hasInterpolationFlagCF(D3Q27System::NW)&& !block->hasInterpolationFlagCF(D3Q27System::N) && !block->hasInterpolationFlagCF(D3Q27System::W)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_MP0)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_0P0) && !block->hasInterpolationFlagCF(D3Q27System::DIR_M00)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2+1,fbx3,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::NW); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_MP0); } /////////TE-BW-BE-TW 1-0 - if( block->hasInterpolationFlagCF(D3Q27System::TE)&& !block->hasInterpolationFlagCF(D3Q27System::E) && !block->hasInterpolationFlagCF(D3Q27System::T)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_P0P)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_P00) && !block->hasInterpolationFlagCF(D3Q27System::DIR_00P)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2+0,fbx3+1,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2+0, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::TE); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_P0P); } - if( block->hasInterpolationFlagCF(D3Q27System::BW)&& !block->hasInterpolationFlagCF(D3Q27System::W) && !block->hasInterpolationFlagCF(D3Q27System::B)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_M0M)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_M00) && !block->hasInterpolationFlagCF(D3Q27System::DIR_00M)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2+0,fbx3,level); @@ -193,140 +193,140 @@ void SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors(SPtr<Gri SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2+0, fbx3, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2+1, fbx3, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::BW); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_M0M); } - if( block->hasInterpolationFlagCF(D3Q27System::BE)&& !block->hasInterpolationFlagCF(D3Q27System::E) && !block->hasInterpolationFlagCF(D3Q27System::B)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_P0M)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_P00) && !block->hasInterpolationFlagCF(D3Q27System::DIR_00M)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2+0,fbx3,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2+0, fbx3, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::BE); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_P0M); } - if( block->hasInterpolationFlagCF(D3Q27System::TW)&& !block->hasInterpolationFlagCF(D3Q27System::W) && !block->hasInterpolationFlagCF(D3Q27System::T)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_M0P)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_M00) && !block->hasInterpolationFlagCF(D3Q27System::DIR_00P)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2+0,fbx3+1,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2+0, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::TW); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_M0P); } //////TN-BS-BN-TS - if( block->hasInterpolationFlagCF(D3Q27System::TN)&& !block->hasInterpolationFlagCF(D3Q27System::N) && !block->hasInterpolationFlagCF(D3Q27System::T)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_0PP)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_0P0) && !block->hasInterpolationFlagCF(D3Q27System::DIR_00P)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+0,fbx2+1,fbx3+1,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+0, fbx2+1, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::TN); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_0PP); } - if( block->hasInterpolationFlagCF(D3Q27System::BS)&& !block->hasInterpolationFlagCF(D3Q27System::S) && !block->hasInterpolationFlagCF(D3Q27System::B)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_0MM)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_0M0) && !block->hasInterpolationFlagCF(D3Q27System::DIR_00M)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+0,fbx2,fbx3,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3,level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+0, fbx2, fbx3, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2, fbx3, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::BS); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_0MM); } - if( block->hasInterpolationFlagCF(D3Q27System::BN)&& !block->hasInterpolationFlagCF(D3Q27System::N) && !block->hasInterpolationFlagCF(D3Q27System::B)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_0PM)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_0P0) && !block->hasInterpolationFlagCF(D3Q27System::DIR_00M)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+0,fbx2+1,fbx3,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+0, fbx2+1, fbx3, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::BN); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_0PM); } - if( block->hasInterpolationFlagCF(D3Q27System::TS)&& !block->hasInterpolationFlagCF(D3Q27System::S) && !block->hasInterpolationFlagCF(D3Q27System::T)) + if( block->hasInterpolationFlagCF(D3Q27System::DIR_0MP)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_0M0) && !block->hasInterpolationFlagCF(D3Q27System::DIR_00P)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+0,fbx2,fbx3+1,level); SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+0, fbx2, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::TS); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_0MP); } //////corners - if (block->hasInterpolationFlagCF(D3Q27System::TNE)&&!block->hasInterpolationFlagCF(D3Q27System::TE)&&!block->hasInterpolationFlagCF(D3Q27System::TN)&&!block->hasInterpolationFlagCF(D3Q27System::NE)&&!block->hasInterpolationFlagCF(D3Q27System::T)&&!block->hasInterpolationFlagCF(D3Q27System::N) && !block->hasInterpolationFlagCF(D3Q27System::E)) + if (block->hasInterpolationFlagCF(D3Q27System::DIR_PPP)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_P0P)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_0PP)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_PP0)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_00P)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_0P0) && !block->hasInterpolationFlagCF(D3Q27System::DIR_P00)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); SPtr<Block3D> fblockSE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+0, level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::TNE); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_PPP); } - if (block->hasInterpolationFlagCF(D3Q27System::TSW)&&!block->hasInterpolationFlagCF(D3Q27System::TW)&&!block->hasInterpolationFlagCF(D3Q27System::TS)&& !block->hasInterpolationFlagCF(D3Q27System::SW)&& !block->hasInterpolationFlagCF(D3Q27System::T)&& !block->hasInterpolationFlagCF(D3Q27System::W) && !block->hasInterpolationFlagCF(D3Q27System::S)) + if (block->hasInterpolationFlagCF(D3Q27System::DIR_MMP)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_M0P)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_0MP)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_MM0)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_00P)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_M00) && !block->hasInterpolationFlagCF(D3Q27System::DIR_0M0)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1, fbx2, fbx3+1, level); SPtr<Block3D> fblockSE;// = grid->getBlock(fbx1, fbx2, fbx3, level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::TSW); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_MMP); } - if (block->hasInterpolationFlagCF(D3Q27System::TSE)&&!block->hasInterpolationFlagCF(D3Q27System::TE)&&!block->hasInterpolationFlagCF(D3Q27System::TS)&& !block->hasInterpolationFlagCF(D3Q27System::SE)&& !block->hasInterpolationFlagCF(D3Q27System::T)&& !block->hasInterpolationFlagCF(D3Q27System::E) && !block->hasInterpolationFlagCF(D3Q27System::S)) + if (block->hasInterpolationFlagCF(D3Q27System::DIR_PMP)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_P0P)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_0MP)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_PM0)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_00P)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_P00) && !block->hasInterpolationFlagCF(D3Q27System::DIR_0M0)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); SPtr<Block3D> fblockSE;// = grid->getBlock(fbx1+1, fbx2, fbx3+0, level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::TSE); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_PMP); } - if (block->hasInterpolationFlagCF(D3Q27System::TNW)&&!block->hasInterpolationFlagCF(D3Q27System::TW)&&!block->hasInterpolationFlagCF(D3Q27System::TN)&& !block->hasInterpolationFlagCF(D3Q27System::NW)&& !block->hasInterpolationFlagCF(D3Q27System::T)&& !block->hasInterpolationFlagCF(D3Q27System::N) && !block->hasInterpolationFlagCF(D3Q27System::W)) + if (block->hasInterpolationFlagCF(D3Q27System::DIR_MPP)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_M0P)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_0PP)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_MP0)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_00P)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_0P0) && !block->hasInterpolationFlagCF(D3Q27System::DIR_M00)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); SPtr<Block3D> fblockSE;// = grid->getBlock(fbx1, fbx2+1, fbx3, level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::TNW); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_MPP); } - if (block->hasInterpolationFlagCF(D3Q27System::BNE)&&!block->hasInterpolationFlagCF(D3Q27System::BE)&&!block->hasInterpolationFlagCF(D3Q27System::BN)&& !block->hasInterpolationFlagCF(D3Q27System::NE)&&!block->hasInterpolationFlagCF(D3Q27System::B)&&!block->hasInterpolationFlagCF(D3Q27System::N) && !block->hasInterpolationFlagCF(D3Q27System::E)) + if (block->hasInterpolationFlagCF(D3Q27System::DIR_PPM)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_P0M)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_0PM)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_PP0)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_00M)&&!block->hasInterpolationFlagCF(D3Q27System::DIR_0P0) && !block->hasInterpolationFlagCF(D3Q27System::DIR_P00)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1, fbx2+1, fbx3+0, level); SPtr<Block3D> fblockSE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+0, level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::BNE); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_PPM); } - if (block->hasInterpolationFlagCF(D3Q27System::BSW)&& !block->hasInterpolationFlagCF(D3Q27System::BS)&& !block->hasInterpolationFlagCF(D3Q27System::BW)&& !block->hasInterpolationFlagCF(D3Q27System::SW)&& !block->hasInterpolationFlagCF(D3Q27System::B)&& !block->hasInterpolationFlagCF(D3Q27System::W) && !block->hasInterpolationFlagCF(D3Q27System::S)) + if (block->hasInterpolationFlagCF(D3Q27System::DIR_MMM)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_0MM)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_M0M)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_MM0)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_00M)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_M00) && !block->hasInterpolationFlagCF(D3Q27System::DIR_0M0)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1, fbx2, fbx3+0, level); SPtr<Block3D> fblockSE;// = grid->getBlock(fbx1, fbx2, fbx3, level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::BSW); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_MMM); } - if (block->hasInterpolationFlagCF(D3Q27System::BSE)&& !block->hasInterpolationFlagCF(D3Q27System::BS)&& !block->hasInterpolationFlagCF(D3Q27System::BE)&& !block->hasInterpolationFlagCF(D3Q27System::SE)&& !block->hasInterpolationFlagCF(D3Q27System::B)&& !block->hasInterpolationFlagCF(D3Q27System::E) && !block->hasInterpolationFlagCF(D3Q27System::S)) + if (block->hasInterpolationFlagCF(D3Q27System::DIR_PMM)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_0MM)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_P0M)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_PM0)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_00M)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_P00) && !block->hasInterpolationFlagCF(D3Q27System::DIR_0M0)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1, fbx2, fbx3, level); SPtr<Block3D> fblockSE;// = grid->getBlock(fbx1+1, fbx2, fbx3+0, level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::BSE); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_PMM); } - if (block->hasInterpolationFlagCF(D3Q27System::BNW)&& !block->hasInterpolationFlagCF(D3Q27System::BN)&& !block->hasInterpolationFlagCF(D3Q27System::BW)&& !block->hasInterpolationFlagCF(D3Q27System::NW)&& !block->hasInterpolationFlagCF(D3Q27System::B)&& !block->hasInterpolationFlagCF(D3Q27System::N) && !block->hasInterpolationFlagCF(D3Q27System::W)) + if (block->hasInterpolationFlagCF(D3Q27System::DIR_MPM)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_0PM)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_M0M)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_MP0)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_00M)&& !block->hasInterpolationFlagCF(D3Q27System::DIR_0P0) && !block->hasInterpolationFlagCF(D3Q27System::DIR_M00)) { SPtr<Block3D> fblockSW = grid->getBlock(fbx1, fbx2+1, fbx3+0, level); SPtr<Block3D> fblockSE;// = grid->getBlock(fbx1, fbx2+1, fbx3, level); SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::BNW); + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, D3Q27System::DIR_MPM); } } diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationDirsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationDirsBlockVisitor.cpp index c4b542f1c5277397427bb9f3d0520cb2ba131d3f..07aec29ef7d54181545d3e3f083f546ee83872b3 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationDirsBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationDirsBlockVisitor.cpp @@ -37,97 +37,97 @@ void SetInterpolationDirsBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> bl if (!flagDir) continue; break; - case SW: + case DIR_MM0: checkFlagDir(grid, W, S, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case SE: + case DIR_PM0: checkFlagDir(grid, E, S, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case NW: + case DIR_MP0: checkFlagDir(grid, W, N, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case TE: + case DIR_P0P: checkFlagDir(grid, E, T, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case BW: + case DIR_M0M: checkFlagDir(grid, W, B, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case BE: + case DIR_P0M: checkFlagDir(grid, E, B, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case TW: + case DIR_M0P: checkFlagDir(grid, W, T, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case TN: + case DIR_0PP: checkFlagDir(grid, N, T, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case BS: + case DIR_0MM: checkFlagDir(grid, S, B, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case BN: + case DIR_0PM: checkFlagDir(grid, N, B, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case TS: + case DIR_0MP: checkFlagDir(grid, S, T, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case TNE: + case DIR_PPP: checkFlagDir(grid, E, N, T, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case TSW: + case DIR_MMP: checkFlagDir(grid, W, S, T, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case TSE: + case DIR_PMP: checkFlagDir(grid, E, S, T, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case TNW: + case DIR_MPP: checkFlagDir(grid, W, N, T, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case BNE: + case DIR_PPM: checkFlagDir(grid, E, N, B, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case BSW: + case DIR_MMM: checkFlagDir(grid, W, S, B, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case BSE: + case DIR_PMM: checkFlagDir(grid, E, S, B, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; break; - case BNW: + case DIR_MPM: checkFlagDir(grid, W, N, B, flagDir, ix1, ix2, ix3, level); if (!flagDir) continue; diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetUndefinedNodesBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/SetUndefinedNodesBlockVisitor.cpp index 6e3e6823de9bd73362c273cae32c09cd61a5220c..3b9eb9493fe0fa66f05fdd3ea42505604836d218 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/SetUndefinedNodesBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/SetUndefinedNodesBlockVisitor.cpp @@ -40,7 +40,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block // int offset = 2; int offset = 3; - if (block->hasInterpolationFlag(D3Q27System::E)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_P00)) { int startix1 = maxX1; int endix1 = maxX1; if (block->hasInterpolationFlagCF()) @@ -51,7 +51,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::W)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_M00)) { int startix1 = minX1; int endix1 = minX1; if (block->hasInterpolationFlagCF()) @@ -62,7 +62,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::N)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_0P0)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = maxX2; @@ -73,7 +73,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::S)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_0M0)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = minX2; @@ -84,7 +84,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::T)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_00P)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = minX2; @@ -95,7 +95,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block startix3 = startix3 - offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::B)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_00M)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = minX2; @@ -106,7 +106,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block endix3 = endix3 + offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::NE)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_PP0)) { int startix1 = maxX1; int endix1 = maxX1; if (block->hasInterpolationFlagCF()) @@ -119,7 +119,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::SW)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_MM0)) { int startix1 = minX1; int endix1 = minX1; if (block->hasInterpolationFlagCF()) @@ -132,7 +132,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::SE)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_PM0)) { int startix1 = maxX1; int endix1 = maxX1; if (block->hasInterpolationFlagCF()) @@ -145,7 +145,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::NW)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_MP0)) { int startix1 = minX1; int endix1 = minX1; if (block->hasInterpolationFlagCF()) @@ -158,7 +158,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::TE)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_P0P)) { int startix1 = maxX1; int endix1 = maxX1; if (block->hasInterpolationFlagCF()) @@ -171,7 +171,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block startix3 = startix3 - offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::BW)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_M0M)) { int startix1 = minX1; int endix1 = minX1; if (block->hasInterpolationFlagCF()) @@ -184,7 +184,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block endix3 = endix3 + offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::BE)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_P0M)) { int startix1 = maxX1; int endix1 = maxX1; if (block->hasInterpolationFlagCF()) @@ -197,7 +197,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block endix3 = endix3 + offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::TW)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_M0P)) { int startix1 = minX1; int endix1 = minX1; if (block->hasInterpolationFlagCF()) @@ -210,7 +210,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block startix3 = startix3 - offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::TN)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_0PP)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = maxX2; @@ -223,7 +223,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block startix3 = startix3 - offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::BS)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_0MM)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = minX2; @@ -236,7 +236,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block endix3 = endix3 + offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::BN)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_0PM)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = maxX2; @@ -249,7 +249,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block endix3 = endix3 + offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::TS)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_0MP)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = minX2; @@ -262,7 +262,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block startix3 = startix3 - offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::TNE)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_PPP)) { int startix1 = maxX1; int endix1 = maxX1; if (block->hasInterpolationFlagCF()) @@ -277,7 +277,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block startix3 = startix3 - offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::TNW)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_MPP)) { int startix1 = minX1; int endix1 = minX1; if (block->hasInterpolationFlagCF()) @@ -292,7 +292,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block startix3 = startix3 - offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::TSE)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_PMP)) { int startix1 = maxX1; int endix1 = maxX1; if (block->hasInterpolationFlagCF()) @@ -307,7 +307,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block startix3 = startix3 - offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::TSW)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_MMP)) { int startix1 = minX1; int endix1 = minX1; if (block->hasInterpolationFlagCF()) @@ -322,7 +322,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block startix3 = startix3 - offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::BNE)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_PPM)) { int startix1 = maxX1; int endix1 = maxX1; if (block->hasInterpolationFlagCF()) @@ -337,7 +337,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block endix3 = endix3 + offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::BNW)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_MPM)) { int startix1 = minX1; int endix1 = minX1; if (block->hasInterpolationFlagCF()) @@ -352,7 +352,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block endix3 = endix3 + offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::BSE)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_PMM)) { int startix1 = maxX1; int endix1 = maxX1; if (block->hasInterpolationFlagCF()) @@ -367,7 +367,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block endix3 = endix3 + offset; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlag(D3Q27System::BSW)) { + if (block->hasInterpolationFlag(D3Q27System::DIR_MMM)) { int startix1 = minX1; int endix1 = minX1; if (block->hasInterpolationFlagCF()) @@ -395,7 +395,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block maxX2 = static_cast<int>(bcMatrix->getNX2()) - 1 - ll; maxX3 = static_cast<int>(bcMatrix->getNX3()) - 1 - ll; - if (block->hasInterpolationFlagFC(D3Q27System::E)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_P00)) { int startix1 = maxX1 - offset2; int endix1 = maxX1; int startix2 = minX2; @@ -404,7 +404,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::W)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_M00)) { int startix1 = minX1; int endix1 = minX1 + offset2; int startix2 = minX2; @@ -413,7 +413,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::N)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_0P0)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = maxX2 - offset2; @@ -422,7 +422,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::S)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_0M0)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = minX2; @@ -431,7 +431,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::T)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_00P)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = minX2; @@ -440,7 +440,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::B)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_00M)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = minX2; @@ -449,7 +449,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = minX3 + offset2; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::NE)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_PP0)) { int startix1 = maxX1 - offset2; int endix1 = maxX1; int startix2 = maxX2 - offset2; @@ -458,7 +458,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::SW)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_MM0)) { int startix1 = minX1; int endix1 = minX1 + offset2; int startix2 = minX2; @@ -467,7 +467,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::SE)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_PM0)) { int startix1 = maxX1 - offset2; int endix1 = maxX1; int startix2 = minX2; @@ -476,7 +476,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::NW)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_MP0)) { int startix1 = minX1; int endix1 = minX1 + offset2; int startix2 = maxX2 - offset2; @@ -485,7 +485,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::TE)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_P0P)) { int startix1 = maxX1 - offset2; int endix1 = maxX1; int startix2 = minX2; @@ -494,7 +494,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::BW)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_M0M)) { int startix1 = minX1; int endix1 = minX1 + offset2; int startix2 = minX2; @@ -503,7 +503,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = minX3 + offset2; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::BE)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_P0M)) { int startix1 = maxX1 - offset2; int endix1 = maxX1; int startix2 = minX2; @@ -512,7 +512,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = minX3 + offset2; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::TW)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_M0P)) { int startix1 = minX1; int endix1 = minX1 + offset2; int startix2 = minX2; @@ -521,7 +521,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::TN)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_0PP)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = maxX2 - offset2; @@ -530,7 +530,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::BS)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_0MM)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = minX2; @@ -539,7 +539,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = minX3 + offset2; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::BN)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_0PM)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = maxX2 - offset2; @@ -548,7 +548,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = minX3 + offset2; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::TS)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_0MP)) { int startix1 = minX1; int endix1 = maxX1; int startix2 = minX2; @@ -557,7 +557,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::TNE)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_PPP)) { int startix1 = maxX1 - offset2; int endix1 = maxX1; int startix2 = maxX2 - offset2; @@ -566,7 +566,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::TNW)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_MPP)) { int startix1 = minX1; int endix1 = minX1 + offset2; int startix2 = maxX2 - offset2; @@ -575,7 +575,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::TSE)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_PMP)) { int startix1 = maxX1 - offset2; int endix1 = maxX1; int startix2 = minX2; @@ -584,7 +584,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::TSW)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_MMP)) { int startix1 = minX1; int endix1 = minX1 + offset2; int startix2 = minX2; @@ -593,7 +593,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = maxX3; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::BNE)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_PPM)) { int startix1 = maxX1 - offset2; int endix1 = maxX1; int startix2 = maxX2 - offset2; @@ -602,7 +602,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = minX3 + offset2; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::BNW)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_MPM)) { int startix1 = minX1; int endix1 = minX1 + offset2; int startix2 = maxX2 - offset2; @@ -611,7 +611,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = minX3 + offset2; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::BSE)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_PMM)) { int startix1 = maxX1 - offset2; int endix1 = maxX1; int startix2 = minX2; @@ -620,7 +620,7 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block int endix3 = minX3 + offset2; this->setNodesUndefined(startix1, endix1, startix2, endix2, startix3, endix3, bcMatrix); } - if (block->hasInterpolationFlagFC(D3Q27System::BSW)) { + if (block->hasInterpolationFlagFC(D3Q27System::DIR_MMM)) { int startix1 = minX1; int endix1 = minX1 + offset2; int startix2 = minX2; @@ -633,10 +633,10 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block // invert scaleCF blocks if (block->hasInterpolationFlagCF()) { if (block->hasInterpolationFlagFC() && twoTypeOfConnectorsCheck) { - for (int i = D3Q27System::E; i <= D3Q27System::BSW; i++) { + for (int i = D3Q27System::DIR_P00; i <= D3Q27System::DIR_MMM; i++) { UBLOG(logINFO, "FC in dir=" << i << " " << block->hasInterpolationFlagFC(i)); } - for (int i = D3Q27System::E; i <= D3Q27System::BSW; i++) { + for (int i = D3Q27System::DIR_P00; i <= D3Q27System::DIR_MMM; i++) { UBLOG(logINFO, "CF in dir=" << i << " " << block->hasInterpolationFlagCF(i)); } throw UbException(UB_EXARGS, "block " + block->toString() + " has CF and FC"); diff --git a/src/cpu/VirtualFluidsCore/Visitors/SpongeLayerBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/SpongeLayerBlockVisitor.cpp index d763fe680b3ddbec7a20e1fa248b5035e1f94a4b..1ef34e0e8bbf54625efbc946b141cf16f24c213d 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/SpongeLayerBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/SpongeLayerBlockVisitor.cpp @@ -72,22 +72,22 @@ void SpongeLayerBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block) double newCollFactor; - if (dir == D3Q27System::E) { + if (dir == D3Q27System::DIR_P00) { int ibX1 = block->getX1(); int ibMax = val<1>(ixMax) - val<1>(ixMin) + 1; double index = (double)(ibX1 - val<1>(ixMin) + 1); newCollFactor = oldCollFactor - (oldCollFactor - 1.0) / (double)(ibMax)*index; - } else if (dir == D3Q27System::W) { + } else if (dir == D3Q27System::DIR_M00) { int ibX1 = block->getX1(); int ibMax = val<1>(ixMax) - val<1>(ixMin) + 1; double index = (double)(ibX1 - val<1>(ixMin) + 1); newCollFactor = (oldCollFactor - 1.0) / (double)(ibMax)*index; - } else if (dir == D3Q27System::T) { + } else if (dir == D3Q27System::DIR_00P) { int ibX3 = block->getX3(); int ibMax = val<3>(ixMax) - val<3>(ixMin) + 1; double index = (double)(ibX3 - val<3>(ixMin) + 1); newCollFactor = oldCollFactor - (oldCollFactor - 1.0) / (double)(ibMax)*index; - } else if (dir == D3Q27System::B) { + } else if (dir == D3Q27System::DIR_00M) { int ibX3 = block->getX3(); int ibMax = val<3>(ixMax) - val<3>(ixMin) + 1; double index = (double)(ibX3 - val<3>(ixMin) + 1);