diff --git a/apps/gpu/LBM/DrivenCavityMultiGPU/DrivenCavityMultiGPU.cpp b/apps/gpu/LBM/DrivenCavityMultiGPU/DrivenCavityMultiGPU.cpp index 30f7a7b049a24aeb2764190e1a986c28dbcaeac9..d1792a791fced2c8688c8352637e67ad2c2fee01 100644 --- a/apps/gpu/LBM/DrivenCavityMultiGPU/DrivenCavityMultiGPU.cpp +++ b/apps/gpu/LBM/DrivenCavityMultiGPU/DrivenCavityMultiGPU.cpp @@ -93,16 +93,14 @@ void multipleLevel(const std::string &configPath) logging::Logger::enablePrintedRankNumbers(logging::Logger::ENABLE); auto gridFactory = GridFactory::make(); - gridFactory->setGridStrategy(Device::CPU); gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_IN_OBJECT); - auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory); - vf::gpu::Communicator *comm = vf::gpu::Communicator::getInstanz(); + vf::gpu::Communicator &communicator = vf::gpu::Communicator::getInstance(); vf::basics::ConfigurationFile config; std::cout << configPath << std::endl; config.load(configPath); - SPtr<Parameter> para = std::make_shared<Parameter>(config, comm->getNummberOfProcess(), comm->getPID()); + SPtr<Parameter> para = std::make_shared<Parameter>(config, communicator.getNummberOfProcess(), communicator.getPID()); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -187,7 +185,7 @@ void multipleLevel(const std::string &configPath) if (para->getNumprocs() > 1) { - const uint generatePart = vf::gpu::Communicator::getInstanz()->getPID(); + const uint generatePart = vf::gpu::Communicator::getInstance().getPID(); real overlap = (real)8.0 * dxGrid; gridBuilder->setNumberOfLayers(10, 8); @@ -195,7 +193,7 @@ void multipleLevel(const std::string &configPath) const real ySplit = 0.0; const real zSplit = 0.0; - if (comm->getNummberOfProcess() == 2) { + if (communicator.getNummberOfProcess() == 2) { if (generatePart == 0) { gridBuilder->addCoarseGrid(xGridMin, yGridMin, zGridMin, xGridMax, yGridMax, zSplit + overlap, @@ -242,7 +240,7 @@ void multipleLevel(const std::string &configPath) gridBuilder->setVelocityBoundaryCondition(SideType::PX, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PY, 0.0, 0.0, 0.0); ////////////////////////////////////////////////////////////////////////// - } else if (comm->getNummberOfProcess() == 4) { + } else if (communicator.getNummberOfProcess() == 4) { if (generatePart == 0) { gridBuilder->addCoarseGrid(xGridMin, yGridMin, zGridMin, xSplit + overlap, yGridMax, @@ -326,7 +324,7 @@ void multipleLevel(const std::string &configPath) gridBuilder->setVelocityBoundaryCondition(SideType::PX, 0.0, 0.0, 0.0); } ////////////////////////////////////////////////////////////////////////// - } else if (comm->getNummberOfProcess() == 8) { + } else if (communicator.getNummberOfProcess() == 8) { if (generatePart == 0) { gridBuilder->addCoarseGrid(xGridMin, yGridMin, zGridMin, xSplit + overlap, ySplit + overlap, @@ -548,7 +546,7 @@ void multipleLevel(const std::string &configPath) gridGenerator = GridProvider::makeGridReader(FILEFORMAT::BINARY, para, cudaMemoryManager); } - Simulation sim; + Simulation sim(communicator); SPtr<FileWriter> fileWriter = SPtr<FileWriter>(new FileWriter()); SPtr<KernelFactoryImp> kernelFactory = KernelFactoryImp::getInstance(); SPtr<PreProcessorFactoryImp> preProcessorFactory = PreProcessorFactoryImp::getInstance(); diff --git a/apps/gpu/LBM/MusselOyster/MusselOyster.cpp b/apps/gpu/LBM/MusselOyster/MusselOyster.cpp index e8d25454274cdafbcab0d33e0708d4774e69ff3a..de2a499a953fd659a8593095f17627528bb7d549 100644 --- a/apps/gpu/LBM/MusselOyster/MusselOyster.cpp +++ b/apps/gpu/LBM/MusselOyster/MusselOyster.cpp @@ -95,16 +95,14 @@ void multipleLevel(const std::string &configPath) logging::Logger::enablePrintedRankNumbers(logging::Logger::ENABLE); auto gridFactory = GridFactory::make(); - gridFactory->setGridStrategy(Device::CPU); gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_IN_OBJECT); - auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory); - vf::gpu::Communicator *comm = vf::gpu::Communicator::getInstanz(); + vf::gpu::Communicator &communicator = vf::gpu::Communicator::getInstance(); vf::basics::ConfigurationFile config; std::cout << configPath << std::endl; config.load(configPath); - SPtr<Parameter> para = std::make_shared<Parameter>(config, comm->getNummberOfProcess(), comm->getPID()); + SPtr<Parameter> para = std::make_shared<Parameter>(config, communicator.getNummberOfProcess(), communicator.getPID()); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -203,12 +201,12 @@ void multipleLevel(const std::string &configPath) bivalveRef_1_STL = TriangularMesh::make(stlPath + bivalveType + "_Level1.stl"); if (para->getNumprocs() > 1) { - const uint generatePart = vf::gpu::Communicator::getInstanz()->getPID(); + const uint generatePart = vf::gpu::Communicator::getInstance().getPID(); real overlap = (real)8.0 * dxGrid; gridBuilder->setNumberOfLayers(10, 8); - if (comm->getNummberOfProcess() == 2) { + if (communicator.getNummberOfProcess() == 2) { const real zSplit = 0.0; // round(((double)bbzp + bbzm) * 0.5); if (generatePart == 0) { @@ -259,7 +257,7 @@ void multipleLevel(const std::string &configPath) gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs ////////////////////////////////////////////////////////////////////////// - } else if (comm->getNummberOfProcess() == 4) { + } else if (communicator.getNummberOfProcess() == 4) { const real xSplit = 100.0; const real zSplit = 0.0; @@ -349,7 +347,7 @@ void multipleLevel(const std::string &configPath) gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs } ////////////////////////////////////////////////////////////////////////// - } else if (comm->getNummberOfProcess() == 8) { + } else if (communicator.getNummberOfProcess() == 8) { real xSplit = 140.0; // 100.0 // mit groesserem Level 1 140.0 real ySplit = 32.0; // 32.0 real zSplit = 0.0; @@ -581,7 +579,7 @@ void multipleLevel(const std::string &configPath) gridGenerator = GridProvider::makeGridReader(FILEFORMAT::BINARY, para, cudaMemoryManager); } - Simulation sim; + Simulation sim(communicator); SPtr<FileWriter> fileWriter = SPtr<FileWriter>(new FileWriter()); SPtr<KernelFactoryImp> kernelFactory = KernelFactoryImp::getInstance(); SPtr<PreProcessorFactoryImp> preProcessorFactory = PreProcessorFactoryImp::getInstance(); diff --git a/apps/gpu/LBM/SphereScaling/SphereScaling.cpp b/apps/gpu/LBM/SphereScaling/SphereScaling.cpp index 381aabd4e1ab8e19591db3cf2450151073b87ea6..d4878ddc0b91a9b11fe7c4f0c5f86c1688c55750 100644 --- a/apps/gpu/LBM/SphereScaling/SphereScaling.cpp +++ b/apps/gpu/LBM/SphereScaling/SphereScaling.cpp @@ -92,16 +92,14 @@ void multipleLevel(const std::string &configPath) logging::Logger::enablePrintedRankNumbers(logging::Logger::ENABLE); auto gridFactory = GridFactory::make(); - gridFactory->setGridStrategy(Device::CPU); gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_IN_OBJECT); - auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory); - vf::gpu::Communicator *comm = vf::gpu::Communicator::getInstanz(); + vf::gpu::Communicator &communicator = vf::gpu::Communicator::getInstance(); vf::basics::ConfigurationFile config; std::cout << configPath << std::endl; config.load(configPath); - SPtr<Parameter> para = std::make_shared<Parameter>(config, comm->getNummberOfProcess(), comm->getPID()); + SPtr<Parameter> para = std::make_shared<Parameter>(config, communicator.getNummberOfProcess(), communicator.getPID()); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -207,12 +205,12 @@ void multipleLevel(const std::string &configPath) const real dCubeLev1 = 72.0; // Phoenix: 72.0 if (para->getNumprocs() > 1) { - const uint generatePart = vf::gpu::Communicator::getInstanz()->getPID(); + const uint generatePart = vf::gpu::Communicator::getInstance().getPID(); real overlap = (real)8.0 * dxGrid; gridBuilder->setNumberOfLayers(10, 8); - if (comm->getNummberOfProcess() == 2) { + if (communicator.getNummberOfProcess() == 2) { real zSplit = 0.5 * sideLengthCube; if (scalingType == "weak") { @@ -286,7 +284,7 @@ void multipleLevel(const std::string &configPath) // gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); ////////////////////////////////////////////////////////////////////////// - } else if (comm->getNummberOfProcess() == 4) { + } else if (communicator.getNummberOfProcess() == 4) { real ySplit = 0.5 * sideLengthCube; real zSplit = 0.5 * sideLengthCube; @@ -402,7 +400,7 @@ void multipleLevel(const std::string &configPath) gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs // gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); ////////////////////////////////////////////////////////////////////////// - } else if (comm->getNummberOfProcess() == 8) { + } else if (communicator.getNummberOfProcess() == 8) { real xSplit = 0.5 * sideLengthCube; real ySplit = 0.5 * sideLengthCube; real zSplit = 0.5 * sideLengthCube; @@ -681,7 +679,7 @@ void multipleLevel(const std::string &configPath) gridGenerator = GridProvider::makeGridReader(FILEFORMAT::BINARY, para, cudaMemoryManager); } - Simulation sim; + Simulation sim(communicator); SPtr<FileWriter> fileWriter = SPtr<FileWriter>(new FileWriter()); SPtr<KernelFactoryImp> kernelFactory = KernelFactoryImp::getInstance(); SPtr<PreProcessorFactoryImp> preProcessorFactory = PreProcessorFactoryImp::getInstance(); diff --git a/gpu.cmake b/gpu.cmake index ad9d844278c1df76dde8c212ea7472f07cd6d471..2bf803ab7e3725dc648074fe1c250cdc49c1f662 100644 --- a/gpu.cmake +++ b/gpu.cmake @@ -36,12 +36,12 @@ IF (BUILD_VF_GPU) #add_subdirectory(apps/gpu/LBM/gridGeneratorTest) #add_subdirectory(apps/gpu/LBM/TGV_3D) #add_subdirectory(apps/gpu/LBM/TGV_3D_MultiGPU) - #add_subdirectory(apps/gpu/LBM/SphereScaling) - #add_subdirectory(apps/gpu/LBM/DrivenCavityMultiGPU) - #add_subdirectory(apps/gpu/LBM/MusselOyster) + add_subdirectory(apps/gpu/LBM/SphereScaling) + add_subdirectory(apps/gpu/LBM/DrivenCavityMultiGPU) + add_subdirectory(apps/gpu/LBM/MusselOyster) #add_subdirectory(apps/gpu/LBM/Poiseuille) #add_subdirectory(apps/gpu/LBM/ActuatorLine) - add_subdirectory(apps/gpu/LBM/BoundaryLayer) + #add_subdirectory(apps/gpu/LBM/BoundaryLayer) ELSE() MESSAGE( STATUS "exclude Virtual Fluids GPU." ) ENDIF()