From 2d6d87654a0a14a7e1c1b1383d5970a6564b6edc Mon Sep 17 00:00:00 2001 From: "TESLA03\\Master" <a.wellmann@tu-bs.de> Date: Thu, 8 Jul 2021 14:17:13 +0200 Subject: [PATCH] Cut the domain normal to the x-axis --- apps/gpu/LBM/MusselOyster/MusselOyster.cpp | 40 ++++++++++------------ 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/apps/gpu/LBM/MusselOyster/MusselOyster.cpp b/apps/gpu/LBM/MusselOyster/MusselOyster.cpp index c63b96196..3844c1c3f 100644 --- a/apps/gpu/LBM/MusselOyster/MusselOyster.cpp +++ b/apps/gpu/LBM/MusselOyster/MusselOyster.cpp @@ -191,15 +191,15 @@ void multipleLevel(const std::string& configPath) const uint generatePart = vf::gpu::Communicator::getInstanz()->getPID(); real overlap = (real)12.0 * dxGrid; - const real zSplit = bbzm + (bbzp - bbzm) / (real)2.0; + const real xSplit = bbxp - 20.0; if (generatePart == 0) { - gridBuilder->addCoarseGrid( xGridMin, yGridMin, zGridMin, - xGridMax, yGridMax, zSplit + overlap, dxGrid); + gridBuilder->addCoarseGrid( xGridMin, yGridMin, zGridMin, + xSplit + overlap, yGridMax, zGridMax, dxGrid); } if (generatePart == 1) { - gridBuilder->addCoarseGrid(xGridMin, yGridMin, zSplit - overlap, - xGridMax, yGridMax, zGridMax, dxGrid); + gridBuilder->addCoarseGrid(xSplit - overlap, yGridMin, zGridMin, + xGridMax, yGridMax, zGridMax, dxGrid); } // gridBuilder->setNumberOfLayers(6, 8); @@ -208,37 +208,35 @@ void multipleLevel(const std::string& configPath) gridBuilder->addGeometry(bivalveSTL); if (generatePart == 0) - gridBuilder->setSubDomainBox(std::make_shared<BoundingBox>(xGridMin, xGridMax, + gridBuilder->setSubDomainBox(std::make_shared<BoundingBox>(xGridMin, xSplit, yGridMin, yGridMax, - zGridMin, zSplit)); + zGridMin, zGridMax)); if (generatePart == 1) - gridBuilder->setSubDomainBox(std::make_shared<BoundingBox>(xGridMin, xGridMax, + gridBuilder->setSubDomainBox(std::make_shared<BoundingBox>(xSplit, xGridMax, yGridMin, yGridMax, - zSplit, zGridMax)); + zGridMin, zGridMax)); // falsch, siehe unten - gridBuilder->setPeriodicBoundaryCondition(false, false, false); + gridBuilder->setPeriodicBoundaryCondition(false, false, true); gridBuilder->buildGrids(LBM, true); // buildGrids() has to be called before setting the BCs!!!! if (generatePart == 0) { - gridBuilder->findCommunicationIndices(CommunicationDirections::PZ, LBM); - gridBuilder->setCommunicationProcess(CommunicationDirections::PZ, 1); + gridBuilder->findCommunicationIndices(CommunicationDirections::PX, LBM); + gridBuilder->setCommunicationProcess(CommunicationDirections::PX, 1); } if (generatePart == 1) { - gridBuilder->findCommunicationIndices(CommunicationDirections::MZ, LBM); - gridBuilder->setCommunicationProcess(CommunicationDirections::MZ, 0); + gridBuilder->findCommunicationIndices(CommunicationDirections::MX, LBM); + gridBuilder->setCommunicationProcess(CommunicationDirections::MX, 0); } ////////////////////////////////////////////////////////////////////////// gridBuilder->setVelocityBoundaryCondition(SideType::PY, vxLB, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::MX, vxLB, 0.0, 0.0); - gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); - // if (generatePart == 0) - // gridBuilder->setVelocityBoundaryCondition(SideType::MX, vxLB, 0.0, 0.0); - // if (generatePart == 1) - // gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); + if (generatePart == 0) + gridBuilder->setVelocityBoundaryCondition(SideType::MX, vxLB, 0.0, 0.0); + if (generatePart == 1) + gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); ////////////////////////////////////////////////////////////////////////// -- GitLab