From b802b51501f213996395e12c3e5206b5c9c1e9f5 Mon Sep 17 00:00:00 2001 From: Anna Wellmann <a.wellmann@tu-bs.de> Date: Wed, 1 Jun 2022 11:47:34 +0000 Subject: [PATCH] Reformat apps and delete superfluous comments --- .../DrivenCavityMultiGPU.cpp | 192 +++++++--------- apps/gpu/LBM/MusselOyster/MusselOyster.cpp | 205 ++++++++---------- apps/gpu/LBM/SphereScaling/SphereScaling.cpp | 7 +- 3 files changed, 178 insertions(+), 226 deletions(-) diff --git a/apps/gpu/LBM/DrivenCavityMultiGPU/DrivenCavityMultiGPU.cpp b/apps/gpu/LBM/DrivenCavityMultiGPU/DrivenCavityMultiGPU.cpp index c82519150..30f7a7b04 100644 --- a/apps/gpu/LBM/DrivenCavityMultiGPU/DrivenCavityMultiGPU.cpp +++ b/apps/gpu/LBM/DrivenCavityMultiGPU/DrivenCavityMultiGPU.cpp @@ -1,51 +1,51 @@ #define _USE_MATH_DEFINES +#include <exception> +#include <fstream> +#include <iostream> #include <math.h> -#include <string> +#include <memory> #include <sstream> -#include <iostream> #include <stdexcept> -#include <fstream> -#include <exception> -#include <memory> +#include <string> #include "mpi.h" ////////////////////////////////////////////////////////////////////////// #include "basics/Core/DataTypes.h" -#include "basics/PointerDefinitions.h" #include "basics/Core/VectorTypes.h" +#include "basics/PointerDefinitions.h" #include "basics/Core/LbmOrGks.h" +#include "basics/Core/Logger/Logger.h" #include "basics/Core/StringUtilities/StringUtil.h" #include "basics/config/ConfigurationFile.h" -#include "basics/Core/Logger/Logger.h" ////////////////////////////////////////////////////////////////////////// +#include "GridGenerator/grid/BoundaryConditions/Side.h" #include "GridGenerator/grid/GridBuilder/LevelGridBuilder.h" #include "GridGenerator/grid/GridBuilder/MultipleGridBuilder.h" -#include "GridGenerator/grid/BoundaryConditions/Side.h" #include "GridGenerator/grid/GridFactory.h" #include "geometries/Cuboid/Cuboid.h" #include "geometries/TriangularMesh/TriangularMesh.h" -#include "GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h" #include "GridGenerator/io/GridVTKWriter/GridVTKWriter.h" #include "GridGenerator/io/STLReaderWriter/STLReader.h" #include "GridGenerator/io/STLReaderWriter/STLWriter.h" +#include "GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h" ////////////////////////////////////////////////////////////////////////// -#include "VirtualFluids_GPU/LBM/Simulation.h" #include "VirtualFluids_GPU/Communication/Communicator.h" -#include "VirtualFluids_GPU/DataStructureInitializer/GridReaderGenerator/GridGenerator.h" #include "VirtualFluids_GPU/DataStructureInitializer/GridProvider.h" #include "VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/GridReader.h" -#include "VirtualFluids_GPU/Parameter/Parameter.h" +#include "VirtualFluids_GPU/DataStructureInitializer/GridReaderGenerator/GridGenerator.h" +#include "VirtualFluids_GPU/LBM/Simulation.h" #include "VirtualFluids_GPU/Output/FileWriter.h" +#include "VirtualFluids_GPU/Parameter/Parameter.h" #include "VirtualFluids_GPU/Kernel/Utilities/KernelFactory/KernelFactoryImp.h" #include "VirtualFluids_GPU/PreProcessor/PreProcessorFactory/PreProcessorFactoryImp.h" @@ -56,7 +56,6 @@ #include "utilities/communication.h" - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -86,7 +85,7 @@ std::string simulationName("DrivenCavity"); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -void multipleLevel(const std::string& configPath) +void multipleLevel(const std::string &configPath) { logging::Logger::addStream(&std::cout); logging::Logger::setDebugLevel(logging::Logger::Level::INFO_LOW); @@ -98,14 +97,13 @@ void multipleLevel(const std::string& configPath) gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_IN_OBJECT); auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory); - - vf::gpu::Communicator* comm = vf::gpu::Communicator::getInstanz(); + + vf::gpu::Communicator *comm = vf::gpu::Communicator::getInstanz(); vf::basics::ConfigurationFile config; std::cout << configPath << std::endl; config.load(configPath); SPtr<Parameter> para = std::make_shared<Parameter>(config, comm->getNummberOfProcess(), comm->getPID()); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// bool useGridGenerator = true; @@ -115,41 +113,40 @@ void multipleLevel(const std::string& configPath) para->setCalcTurbulenceIntensity(false); if (para->getNumprocs() == 1) { - para->useReducedCommunicationAfterFtoC = false; + para->useReducedCommunicationAfterFtoC = false; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - const real L = 1.0; - const real Re = 1000.0; //1000 - const real velocity = 1.0; - const real dt = (real)1.0e-3; //0.5e-3; - const uint nx = 64; + const real L = 1.0; + const real Re = 1000.0; // 1000 + const real velocity = 1.0; + const real dt = (real)1.0e-3; // 0.5e-3; + const uint nx = 64; std::string simulationName("DrivenCavityChimMultiGPU"); // para->setTOut(10000); // set in config // para->setTEnd(10000); // set in config - - const real dxGrid = L / real(nx); - const real velocityLB = velocity * dt / dxGrid; // LB units - const real vxLB = velocityLB / (real)sqrt(2.0); // LB units - const real vyLB = velocityLB / (real)sqrt(2.0); // LB units - const real viscosityLB = nx * velocityLB / Re; // LB units + const real dxGrid = L / real(nx); + const real velocityLB = velocity * dt / dxGrid; // LB units + const real vxLB = velocityLB / (real)sqrt(2.0); // LB units + const real vyLB = velocityLB / (real)sqrt(2.0); // LB units + const real viscosityLB = nx * velocityLB / Re; // LB units *logging::out << logging::Logger::INFO_HIGH << "velocity [dx/dt] = " << velocityLB << " \n"; *logging::out << logging::Logger::INFO_HIGH << "viscosity [dx^2/dt] = " << viscosityLB << "\n"; para->setVelocity(velocityLB); para->setViscosity(viscosityLB); - para->setVelocityRatio(velocity/ velocityLB); - para->setDensityRatio((real) 1.0); // correct value? - - para->setInitialCondition([&](real coordX, real coordY, real coordZ, real &rho, real &vx, real &vy, real &vz) { - rho = (real) 1.0; - vx = (real) (coordX * velocityLB); - vy = (real) (coordY * velocityLB); - vz = (real) (coordZ * velocityLB); + para->setVelocityRatio(velocity / velocityLB); + para->setDensityRatio((real)1.0); // correct value? + + para->setInitialCondition([&](real coordX, real coordY, real coordZ, real &rho, real &vx, real &vy, real &vz) { + rho = (real)1.0; + vx = (real)(coordX * velocityLB); + vy = (real)(coordY * velocityLB); + vz = (real)(coordZ * velocityLB); }); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -165,42 +162,33 @@ void multipleLevel(const std::string& configPath) para->setPrintFiles(true); std::cout << "Write result files to " << para->getFName() << std::endl; - if (useLevels) para->setMaxLevel(2); else para->setMaxLevel(1); - // para->setMainKernel("CumulantK17CompChim"); para->setMainKernel("CumulantK17CompChimStream"); *logging::out << logging::Logger::INFO_HIGH << "Kernel: " << para->getMainKernel() << "\n"; - // if (para->getNumprocs() > 1) { - // para->setDevices(std::vector<uint>{ (uint)0, (uint)1 }); - // para->setMaxDev(2); - // } else - // para->setDevices(std::vector<uint>{ (uint)0 }); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (useGridGenerator) { - const real xGridMin = -0.5 * L; - const real xGridMax = 0.5 * L; - const real yGridMin = -0.5 * L; - const real yGridMax = 0.5 * L; - const real zGridMin = -0.5 * L; - const real zGridMax = 0.5 * L; + const real xGridMin = -0.5 * L; + const real xGridMax = 0.5 * L; + const real yGridMin = -0.5 * L; + const real yGridMax = 0.5 * L; + const real zGridMin = -0.5 * L; + const real zGridMax = 0.5 * L; Cuboid *level1 = nullptr; if (useLevels) - level1 = new Cuboid(-0.25 * L,-0.25 * L, -0.25 * L, 0.25 * L, 0.25 * L, 0.25 * L); - + level1 = new Cuboid(-0.25 * L, -0.25 * L, -0.25 * L, 0.25 * L, 0.25 * L, 0.25 * L); if (para->getNumprocs() > 1) { const uint generatePart = vf::gpu::Communicator::getInstanz()->getPID(); - real overlap = (real)8.0 * dxGrid; + real overlap = (real)8.0 * dxGrid; gridBuilder->setNumberOfLayers(10, 8); const real xSplit = 0.0; @@ -210,28 +198,25 @@ void multipleLevel(const std::string& configPath) if (comm->getNummberOfProcess() == 2) { if (generatePart == 0) { - gridBuilder->addCoarseGrid( xGridMin, yGridMin, zGridMin, - xGridMax, yGridMax, zSplit+overlap, dxGrid); + gridBuilder->addCoarseGrid(xGridMin, yGridMin, zGridMin, xGridMax, yGridMax, zSplit + overlap, + dxGrid); } if (generatePart == 1) { - gridBuilder->addCoarseGrid( xGridMin, yGridMin, zSplit-overlap, - xGridMax, yGridMax, zGridMax, dxGrid); + gridBuilder->addCoarseGrid(xGridMin, yGridMin, zSplit - overlap, xGridMax, yGridMax, zGridMax, + dxGrid); } - if (useLevels) { gridBuilder->addGrid(level1, 1); } - if (generatePart == 0){ - gridBuilder->setSubDomainBox(std::make_shared<BoundingBox>(xGridMin, xGridMax, - yGridMin, yGridMax, - zGridMin, zSplit)); + if (generatePart == 0) { + gridBuilder->setSubDomainBox( + std::make_shared<BoundingBox>(xGridMin, xGridMax, yGridMin, yGridMax, zGridMin, zSplit)); } - if (generatePart == 1){ - gridBuilder->setSubDomainBox(std::make_shared<BoundingBox>(xGridMin, xGridMax, - yGridMin, yGridMax, - zSplit, zGridMax)); + if (generatePart == 1) { + gridBuilder->setSubDomainBox( + std::make_shared<BoundingBox>(xGridMin, xGridMax, yGridMin, yGridMax, zSplit, zGridMax)); } gridBuilder->buildGrids(LBM, true); // buildGrids() has to be called before setting the BCs!!!! @@ -245,9 +230,9 @@ void multipleLevel(const std::string& configPath) gridBuilder->findCommunicationIndices(CommunicationDirections::MZ, LBM); gridBuilder->setCommunicationProcess(CommunicationDirections::MZ, 0); } - + gridBuilder->setPeriodicBoundaryCondition(false, false, false); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// if (generatePart == 0) gridBuilder->setVelocityBoundaryCondition(SideType::MZ, 0.0, 0.0, 0.0); if (generatePart == 1) @@ -256,7 +241,7 @@ void multipleLevel(const std::string& configPath) gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); 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) { if (generatePart == 0) { @@ -265,14 +250,14 @@ void multipleLevel(const std::string& configPath) } if (generatePart == 1) { gridBuilder->addCoarseGrid(xSplit - overlap, yGridMin, zGridMin, xGridMax, yGridMax, - zSplit+overlap, dxGrid); + zSplit + overlap, dxGrid); } if (generatePart == 2) { - gridBuilder->addCoarseGrid(xGridMin, yGridMin, zSplit-overlap, xSplit + overlap, yGridMax, + gridBuilder->addCoarseGrid(xGridMin, yGridMin, zSplit - overlap, xSplit + overlap, yGridMax, zGridMax, dxGrid); } if (generatePart == 3) { - gridBuilder->addCoarseGrid(xSplit - overlap, yGridMin, zSplit-overlap, xGridMax, yGridMax, + gridBuilder->addCoarseGrid(xSplit - overlap, yGridMin, zSplit - overlap, xGridMax, yGridMax, zGridMax, dxGrid); } @@ -326,18 +311,18 @@ void multipleLevel(const std::string& configPath) gridBuilder->setVelocityBoundaryCondition(SideType::MZ, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::MX, 0.0, 0.0, 0.0); } - if (generatePart == 2) { + if (generatePart == 2) { gridBuilder->setVelocityBoundaryCondition(SideType::MX, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); } gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::PY, 0.0, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::PY, 0.0, 0.0, 0.0); if (generatePart == 3) { gridBuilder->setVelocityBoundaryCondition(SideType::PX, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); } if (generatePart == 1) { - gridBuilder->setVelocityBoundaryCondition(SideType::MZ, 0.0, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MZ, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PX, 0.0, 0.0, 0.0); } ////////////////////////////////////////////////////////////////////////// @@ -379,7 +364,7 @@ void multipleLevel(const std::string& configPath) if (useLevels) { gridBuilder->addGrid(level1, 1); } - + if (generatePart == 0) gridBuilder->setSubDomainBox( std::make_shared<BoundingBox>(xGridMin, xSplit, yGridMin, ySplit, zGridMin, zSplit)); @@ -476,7 +461,7 @@ void multipleLevel(const std::string& configPath) ////////////////////////////////////////////////////////////////////////// if (generatePart == 0) { gridBuilder->setVelocityBoundaryCondition(SideType::MX, 0.0, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::MZ, 0.0, 0.0, 0.0); } if (generatePart == 1) { @@ -485,7 +470,7 @@ void multipleLevel(const std::string& configPath) gridBuilder->setVelocityBoundaryCondition(SideType::MZ, 0.0, 0.0, 0.0); } if (generatePart == 2) { - gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::MZ, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PX, 0.0, 0.0, 0.0); } @@ -496,7 +481,7 @@ void multipleLevel(const std::string& configPath) } if (generatePart == 4) { gridBuilder->setVelocityBoundaryCondition(SideType::MX, 0.0, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); } if (generatePart == 5) { @@ -505,7 +490,7 @@ void multipleLevel(const std::string& configPath) gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); } if (generatePart == 6) { - gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PX, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); } @@ -514,17 +499,15 @@ void multipleLevel(const std::string& configPath) gridBuilder->setVelocityBoundaryCondition(SideType::PX, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); } - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// } if (para->getKernelNeedsFluidNodeIndicesToRun()) gridBuilder->findFluidNodes(para->getUseStreams()); - // gridBuilder->writeGridsToVtk(outPath + "/grid/part" + std::to_string(generatePart) + "_"); - // gridBuilder->writeGridsToVtk(outPath + "/" + std::to_string(generatePart) + "/grid/"); + // gridBuilder->writeGridsToVtk(outPath + "/grid/part" + std::to_string(generatePart) + "_"); // gridBuilder->writeArrows(outPath + "/" + std::to_string(generatePart) + " /arrow"); - SimulationFileWriter::write(gridPath + std::to_string(generatePart) + "/", gridBuilder, - FILEFORMAT::BINARY); + SimulationFileWriter::write(gridPath + std::to_string(generatePart) + "/", gridBuilder, FILEFORMAT::BINARY); } else { gridBuilder->addCoarseGrid(xGridMin, yGridMin, zGridMin, xGridMax, yGridMax, zGridMax, dxGrid); @@ -548,13 +531,13 @@ void multipleLevel(const std::string& configPath) if (para->getKernelNeedsFluidNodeIndicesToRun()) gridBuilder->findFluidNodes(para->getUseStreams()); - gridBuilder->writeGridsToVtk(outPath + "/grid/"); + gridBuilder->writeGridsToVtk(outPath + "/grid/"); // gridBuilder->writeArrows(outPath + "/arrow"); SimulationFileWriter::write(gridPath, gridBuilder, FILEFORMAT::BINARY); } } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SPtr<CudaMemoryManager> cudaMemoryManager = CudaMemoryManager::make(para); @@ -564,10 +547,10 @@ void multipleLevel(const std::string& configPath) else { gridGenerator = GridProvider::makeGridReader(FILEFORMAT::BINARY, para, cudaMemoryManager); } - + Simulation sim; - SPtr<FileWriter> fileWriter = SPtr<FileWriter>(new FileWriter()); - SPtr<KernelFactoryImp> kernelFactory = KernelFactoryImp::getInstance(); + SPtr<FileWriter> fileWriter = SPtr<FileWriter>(new FileWriter()); + SPtr<KernelFactoryImp> kernelFactory = KernelFactoryImp::getInstance(); SPtr<PreProcessorFactoryImp> preProcessorFactory = PreProcessorFactoryImp::getInstance(); sim.setFactories(kernelFactory, preProcessorFactory); sim.init(para, gridGenerator, fileWriter, cudaMemoryManager); @@ -575,18 +558,15 @@ void multipleLevel(const std::string& configPath) sim.free(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } -int main( int argc, char* argv[]) +int main(int argc, char *argv[]) { MPI_Init(&argc, &argv); std::string str, str2, configFile; - if ( argv != NULL ) - { - //str = static_cast<std::string>(argv[0]); - + if (argv != NULL) { + try { ////////////////////////////////////////////////////////////////////////// @@ -614,21 +594,15 @@ int main( int argc, char* argv[]) multipleLevel(configFile); ////////////////////////////////////////////////////////////////////////// - } - catch (const std::bad_alloc& e) - { + } catch (const std::bad_alloc &e) { *logging::out << logging::Logger::LOGGER_ERROR << "Bad Alloc:" << e.what() << "\n"; - } - catch (const std::exception& e) - { + } catch (const std::exception &e) { *logging::out << logging::Logger::LOGGER_ERROR << e.what() << "\n"; - } - catch (...) - { + } catch (...) { *logging::out << logging::Logger::LOGGER_ERROR << "Unknown exception!\n"; } } - MPI_Finalize(); - return 0; -} + MPI_Finalize(); + return 0; +} \ No newline at end of file diff --git a/apps/gpu/LBM/MusselOyster/MusselOyster.cpp b/apps/gpu/LBM/MusselOyster/MusselOyster.cpp index 2c9290a06..e8d254542 100644 --- a/apps/gpu/LBM/MusselOyster/MusselOyster.cpp +++ b/apps/gpu/LBM/MusselOyster/MusselOyster.cpp @@ -1,50 +1,50 @@ #define _USE_MATH_DEFINES +#include <exception> +#include <fstream> +#include <iostream> #include <math.h> -#include <string> +#include <memory> #include <sstream> -#include <iostream> #include <stdexcept> -#include <fstream> -#include <exception> -#include <memory> +#include <string> #include "mpi.h" ////////////////////////////////////////////////////////////////////////// #include "basics/Core/DataTypes.h" -#include "basics/PointerDefinitions.h" #include "basics/Core/VectorTypes.h" +#include "basics/PointerDefinitions.h" #include "basics/Core/LbmOrGks.h" +#include "basics/Core/Logger/Logger.h" #include "basics/Core/StringUtilities/StringUtil.h" #include "basics/config/ConfigurationFile.h" -#include "basics/Core/Logger/Logger.h" ////////////////////////////////////////////////////////////////////////// +#include "GridGenerator/grid/BoundaryConditions/Side.h" #include "GridGenerator/grid/GridBuilder/LevelGridBuilder.h" #include "GridGenerator/grid/GridBuilder/MultipleGridBuilder.h" -#include "GridGenerator/grid/BoundaryConditions/Side.h" #include "GridGenerator/grid/GridFactory.h" #include "geometries/Sphere/Sphere.h" #include "geometries/TriangularMesh/TriangularMesh.h" -#include "GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h" #include "GridGenerator/io/GridVTKWriter/GridVTKWriter.h" #include "GridGenerator/io/STLReaderWriter/STLReader.h" #include "GridGenerator/io/STLReaderWriter/STLWriter.h" +#include "GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h" ////////////////////////////////////////////////////////////////////////// -#include "VirtualFluids_GPU/LBM/Simulation.h" #include "VirtualFluids_GPU/Communication/Communicator.h" -#include "VirtualFluids_GPU/DataStructureInitializer/GridReaderGenerator/GridGenerator.h" #include "VirtualFluids_GPU/DataStructureInitializer/GridProvider.h" #include "VirtualFluids_GPU/DataStructureInitializer/GridReaderFiles/GridReader.h" -#include "VirtualFluids_GPU/Parameter/Parameter.h" +#include "VirtualFluids_GPU/DataStructureInitializer/GridReaderGenerator/GridGenerator.h" +#include "VirtualFluids_GPU/LBM/Simulation.h" #include "VirtualFluids_GPU/Output/FileWriter.h" +#include "VirtualFluids_GPU/Parameter/Parameter.h" #include "VirtualFluids_GPU/Kernel/Utilities/KernelFactory/KernelFactoryImp.h" #include "VirtualFluids_GPU/PreProcessor/PreProcessorFactory/PreProcessorFactoryImp.h" @@ -55,7 +55,6 @@ #include "utilities/communication.h" - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -88,7 +87,7 @@ std::string simulationName("MusselOyster"); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -void multipleLevel(const std::string& configPath) +void multipleLevel(const std::string &configPath) { logging::Logger::addStream(&std::cout); logging::Logger::setDebugLevel(logging::Logger::Level::INFO_LOW); @@ -100,62 +99,62 @@ void multipleLevel(const std::string& configPath) gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_IN_OBJECT); auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory); - - vf::gpu::Communicator* comm = vf::gpu::Communicator::getInstanz(); + + vf::gpu::Communicator *comm = vf::gpu::Communicator::getInstanz(); vf::basics::ConfigurationFile config; std::cout << configPath << std::endl; config.load(configPath); SPtr<Parameter> para = std::make_shared<Parameter>(config, comm->getNummberOfProcess(), comm->getPID()); - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - bool useGridGenerator = true; - bool useStreams = true; - bool useLevels = true; + bool useGridGenerator = true; + bool useStreams = true; + bool useLevels = true; para->useReducedCommunicationAfterFtoC = true; para->setCalcTurbulenceIntensity(true); if (para->getNumprocs() == 1) { - para->useReducedCommunicationAfterFtoC = false; + para->useReducedCommunicationAfterFtoC = false; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// std::string bivalveType = "MUSSEL"; // "MUSSEL" "OYSTER" - std::string gridPath(gridPathParent + bivalveType); // only for GridGenerator, for GridReader the gridPath needs to be set in the config file + std::string gridPath( + gridPathParent + + bivalveType); // only for GridGenerator, for GridReader the gridPath needs to be set in the config file // real dxGrid = (real)2.0; // 2.0 real dxGrid = (real)1.0; // 1.0 - if (para->getNumprocs() == 8) - dxGrid = 0.5; - real vxLB = (real)0.051; // LB units - real Re = (real)300.0; + if (para->getNumprocs() == 8) + dxGrid = 0.5; + real vxLB = (real)0.051; // LB units + real Re = (real)300.0; real referenceLength = 1.0 / dxGrid; // heightBivalve / dxGrid - real viscosityLB = (vxLB * referenceLength) / Re; + real viscosityLB = (vxLB * referenceLength) / Re; para->setVelocity(vxLB); para->setViscosity(viscosityLB); - para->setVelocityRatio((real) 58.82352941); - para->setViscosityRatio((real) 0.058823529); - para->setDensityRatio((real) 998.0); + para->setVelocityRatio((real)58.82352941); + para->setViscosityRatio((real)0.058823529); + para->setDensityRatio((real)998.0); *logging::out << logging::Logger::INFO_HIGH << "bivalveType = " << bivalveType << " \n"; *logging::out << logging::Logger::INFO_HIGH << "velocity LB [dx/dt] = " << vxLB << " \n"; *logging::out << logging::Logger::INFO_HIGH << "viscosity LB [dx^2/dt] = " << viscosityLB << "\n"; - *logging::out << logging::Logger::INFO_HIGH << "velocity real [m/s] = " << vxLB * para->getVelocityRatio()<< " \n"; - *logging::out << logging::Logger::INFO_HIGH << "viscosity real [m^2/s] = " << viscosityLB * para->getViscosityRatio() << "\n"; + *logging::out << logging::Logger::INFO_HIGH << "velocity real [m/s] = " << vxLB * para->getVelocityRatio() << " \n"; + *logging::out << logging::Logger::INFO_HIGH + << "viscosity real [m^2/s] = " << viscosityLB * para->getViscosityRatio() << "\n"; *logging::out << logging::Logger::INFO_HIGH << "dxGrid = " << dxGrid << "\n"; *logging::out << logging::Logger::INFO_HIGH << "useGridGenerator = " << useGridGenerator << "\n"; *logging::out << logging::Logger::INFO_HIGH << "useStreams = " << useStreams << "\n"; @@ -175,14 +174,11 @@ void multipleLevel(const std::string& configPath) para->setPrintFiles(true); std::cout << "Write result files to " << para->getFName() << std::endl; - if (useLevels) para->setMaxLevel(2); else para->setMaxLevel(1); - - para->setUseStreams(useStreams); // para->setMainKernel("CumulantK17CompChim"); para->setMainKernel("CumulantK17CompChimStream"); @@ -190,14 +186,13 @@ void multipleLevel(const std::string& configPath) ////////////////////////////////////////////////////////////////////////// - if (useGridGenerator) { - const real xGridMin = -100.0; // -100.0; - const real xGridMax = 470.0; // alt 540.0 // neu 440 // mit groesserem Level 1 470 - const real yGridMin = 1.0; // 1.0; - const real yGridMax = 350.0; // alt 440.0; // neu 350 - const real zGridMin = -85; // -85; - const real zGridMax = 85.0; // 85; + const real xGridMin = -100.0; // -100.0; + const real xGridMax = 470.0; // alt 540.0 // neu 440 // mit groesserem Level 1 470 + const real yGridMin = 1.0; // 1.0; + const real yGridMax = 350.0; // alt 440.0; // neu 350 + const real zGridMin = -85; // -85; + const real zGridMax = 85.0; // 85; // height MUSSEL = 35.0 // height Oyster = 72.0 @@ -207,7 +202,6 @@ void multipleLevel(const std::string& configPath) if (useLevels) bivalveRef_1_STL = TriangularMesh::make(stlPath + bivalveType + "_Level1.stl"); - if (para->getNumprocs() > 1) { const uint generatePart = vf::gpu::Communicator::getInstanz()->getPID(); @@ -215,33 +209,30 @@ void multipleLevel(const std::string& configPath) gridBuilder->setNumberOfLayers(10, 8); if (comm->getNummberOfProcess() == 2) { - const real zSplit = 0.0; //round(((double)bbzp + bbzm) * 0.5); + const real zSplit = 0.0; // round(((double)bbzp + bbzm) * 0.5); if (generatePart == 0) { - gridBuilder->addCoarseGrid( xGridMin, yGridMin, zGridMin, - xGridMax, yGridMax, zSplit+overlap, dxGrid); + gridBuilder->addCoarseGrid(xGridMin, yGridMin, zGridMin, xGridMax, yGridMax, zSplit + overlap, + dxGrid); } if (generatePart == 1) { - gridBuilder->addCoarseGrid( xGridMin, yGridMin, zSplit-overlap, - xGridMax, yGridMax, zGridMax, dxGrid); + gridBuilder->addCoarseGrid(xGridMin, yGridMin, zSplit - overlap, xGridMax, yGridMax, zGridMax, + dxGrid); } - if (useLevels) { gridBuilder->addGrid(bivalveRef_1_STL, 1); } gridBuilder->addGeometry(bivalveSTL); - if (generatePart == 0){ - gridBuilder->setSubDomainBox(std::make_shared<BoundingBox>(xGridMin, xGridMax, - yGridMin, yGridMax, - zGridMin, zSplit)); + if (generatePart == 0) { + gridBuilder->setSubDomainBox( + std::make_shared<BoundingBox>(xGridMin, xGridMax, yGridMin, yGridMax, zGridMin, zSplit)); } - if (generatePart == 1){ - gridBuilder->setSubDomainBox(std::make_shared<BoundingBox>(xGridMin, xGridMax, - yGridMin, yGridMax, - zSplit, zGridMax)); + if (generatePart == 1) { + gridBuilder->setSubDomainBox( + std::make_shared<BoundingBox>(xGridMin, xGridMax, yGridMin, yGridMax, zSplit, zGridMax)); } gridBuilder->buildGrids(LBM, true); // buildGrids() has to be called before setting the BCs!!!! @@ -255,9 +246,9 @@ void multipleLevel(const std::string& configPath) gridBuilder->findCommunicationIndices(CommunicationDirections::MZ, LBM); gridBuilder->setCommunicationProcess(CommunicationDirections::MZ, 0); } - + gridBuilder->setPeriodicBoundaryCondition(false, false, false); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// if (generatePart == 0) gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vxLB, 0.0, 0.0); if (generatePart == 1) @@ -266,8 +257,8 @@ void multipleLevel(const std::string& configPath) gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PY, vxLB, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); - gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs - ////////////////////////////////////////////////////////////////////////// + gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs + ////////////////////////////////////////////////////////////////////////// } else if (comm->getNummberOfProcess() == 4) { const real xSplit = 100.0; @@ -279,14 +270,14 @@ void multipleLevel(const std::string& configPath) } if (generatePart == 1) { gridBuilder->addCoarseGrid(xSplit - overlap, yGridMin, zGridMin, xGridMax, yGridMax, - zSplit+overlap, dxGrid); + zSplit + overlap, dxGrid); } if (generatePart == 2) { - gridBuilder->addCoarseGrid(xGridMin, yGridMin, zSplit-overlap, xSplit + overlap, yGridMax, + gridBuilder->addCoarseGrid(xGridMin, yGridMin, zSplit - overlap, xSplit + overlap, yGridMax, zGridMax, dxGrid); } if (generatePart == 3) { - gridBuilder->addCoarseGrid(xSplit - overlap, yGridMin, zSplit-overlap, xGridMax, yGridMax, + gridBuilder->addCoarseGrid(xSplit - overlap, yGridMin, zSplit - overlap, xGridMax, yGridMax, zGridMax, dxGrid); } @@ -342,19 +333,19 @@ void multipleLevel(const std::string& configPath) gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vxLB, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::MX, vxLB, 0.0, 0.0); } - if (generatePart == 2) { + if (generatePart == 2) { gridBuilder->setVelocityBoundaryCondition(SideType::MX, vxLB, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); } gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::PY, vxLB, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::PY, vxLB, 0.0, 0.0); if (generatePart == 3) { gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); - gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs + gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs } if (generatePart == 1) { - gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vxLB, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vxLB, 0.0, 0.0); gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs } ////////////////////////////////////////////////////////////////////////// @@ -401,7 +392,7 @@ void multipleLevel(const std::string& configPath) } gridBuilder->addGeometry(bivalveSTL); - + if (generatePart == 0) gridBuilder->setSubDomainBox( std::make_shared<BoundingBox>(xGridMin, xSplit, yGridMin, ySplit, zGridMin, zSplit)); @@ -498,7 +489,7 @@ void multipleLevel(const std::string& configPath) ////////////////////////////////////////////////////////////////////////// if (generatePart == 0) { gridBuilder->setVelocityBoundaryCondition(SideType::MX, vxLB, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vxLB, 0.0, 0.0); } if (generatePart == 1) { @@ -507,18 +498,18 @@ void multipleLevel(const std::string& configPath) gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vxLB, 0.0, 0.0); } if (generatePart == 2) { - gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vxLB, 0.0, 0.0); - gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs + gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs } if (generatePart == 3) { gridBuilder->setVelocityBoundaryCondition(SideType::PY, vxLB, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vxLB, 0.0, 0.0); - gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs + gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs } if (generatePart == 4) { gridBuilder->setVelocityBoundaryCondition(SideType::MX, vxLB, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); } if (generatePart == 5) { @@ -527,24 +518,22 @@ void multipleLevel(const std::string& configPath) gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); } if (generatePart == 6) { - gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); - gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs + gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs } if (generatePart == 7) { gridBuilder->setVelocityBoundaryCondition(SideType::PY, vxLB, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); - gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs + gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs } // gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// } if (para->getKernelNeedsFluidNodeIndicesToRun()) gridBuilder->findFluidNodes(useStreams); - // std::cout << "Writing grids to vtk" << outPath << bivalveType << "/grid/part" << std::to_string(generatePart) + "..."; // gridBuilder->writeGridsToVtk(outPath + bivalveType + "/grid/part" + std::to_string(generatePart) + "_"); - // std::cout << "... done" << std::endl; // gridBuilder->writeArrows(outPath + bivalveType + "/" + std::to_string(generatePart) + " /arrow"); // SimulationFileWriter::write(gridPath + std::to_string(generatePart) + "/", gridBuilder, // FILEFORMAT::BINARY); @@ -569,7 +558,7 @@ void multipleLevel(const std::string& configPath) gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vxLB, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vxLB, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); - gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs + gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); // set pressure BC after velocity BCs ////////////////////////////////////////////////////////////////////////// if (para->getKernelNeedsFluidNodeIndicesToRun()) @@ -581,7 +570,7 @@ void multipleLevel(const std::string& configPath) SimulationFileWriter::write(gridPath, gridBuilder, FILEFORMAT::BINARY); } } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SPtr<CudaMemoryManager> cudaMemoryManager = CudaMemoryManager::make(para); @@ -591,10 +580,10 @@ void multipleLevel(const std::string& configPath) else { gridGenerator = GridProvider::makeGridReader(FILEFORMAT::BINARY, para, cudaMemoryManager); } - + Simulation sim; - SPtr<FileWriter> fileWriter = SPtr<FileWriter>(new FileWriter()); - SPtr<KernelFactoryImp> kernelFactory = KernelFactoryImp::getInstance(); + SPtr<FileWriter> fileWriter = SPtr<FileWriter>(new FileWriter()); + SPtr<KernelFactoryImp> kernelFactory = KernelFactoryImp::getInstance(); SPtr<PreProcessorFactoryImp> preProcessorFactory = PreProcessorFactoryImp::getInstance(); sim.setFactories(kernelFactory, preProcessorFactory); sim.init(para, gridGenerator, fileWriter, cudaMemoryManager); @@ -602,18 +591,14 @@ void multipleLevel(const std::string& configPath) sim.free(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } -int main( int argc, char* argv[]) +int main(int argc, char *argv[]) { MPI_Init(&argc, &argv); std::string str, str2, configFile; - if ( argv != NULL ) - { - //str = static_cast<std::string>(argv[0]); - + if (argv != NULL) { try { ////////////////////////////////////////////////////////////////////////// @@ -641,21 +626,15 @@ int main( int argc, char* argv[]) multipleLevel(configFile); ////////////////////////////////////////////////////////////////////////// - } - catch (const std::bad_alloc& e) - { + } catch (const std::bad_alloc &e) { *logging::out << logging::Logger::LOGGER_ERROR << "Bad Alloc:" << e.what() << "\n"; - } - catch (const std::exception& e) - { + } catch (const std::exception &e) { *logging::out << logging::Logger::LOGGER_ERROR << e.what() << "\n"; - } - catch (...) - { + } catch (...) { *logging::out << logging::Logger::LOGGER_ERROR << "Unknown exception!\n"; } } - MPI_Finalize(); - return 0; -} + MPI_Finalize(); + return 0; +} \ No newline at end of file diff --git a/apps/gpu/LBM/SphereScaling/SphereScaling.cpp b/apps/gpu/LBM/SphereScaling/SphereScaling.cpp index 28359d06b..381aabd4e 100644 --- a/apps/gpu/LBM/SphereScaling/SphereScaling.cpp +++ b/apps/gpu/LBM/SphereScaling/SphereScaling.cpp @@ -615,10 +615,9 @@ void multipleLevel(const std::string &configPath) if (para->getKernelNeedsFluidNodeIndicesToRun()) gridBuilder->findFluidNodes(para->getUseStreams()); - // gridBuilder->writeGridsToVtk(outPath + "grid/part" + - // std::to_string(generatePart) + "_"); gridBuilder->writeGridsToVtk(outPath + - // std::to_string(generatePart) + "/grid/"); gridBuilder->writeArrows(outPath + - // std::to_string(generatePart) + " /arrow"); + // gridBuilder->writeGridsToVtk(outPath + "grid/part" + std::to_string(generatePart) + "_"); + // gridBuilder->writeGridsToVtk(outPath +std::to_string(generatePart) + "/grid/"); + // gridBuilder->writeArrows(outPath + std::to_string(generatePart) + " /arrow"); SimulationFileWriter::write(gridPath + std::to_string(generatePart) + "/", gridBuilder, FILEFORMAT::BINARY); } else { -- GitLab