diff --git a/src/GridGenerator/grid/GridInterface.cu b/src/GridGenerator/grid/GridInterface.cu index 732203eeedd8fa6f99b3d7d6584e878847bb62ac..e0041c40092e3f841d54e004b635a790035af865 100644 --- a/src/GridGenerator/grid/GridInterface.cu +++ b/src/GridGenerator/grid/GridInterface.cu @@ -188,7 +188,7 @@ void GridInterface::findOverlapStopper(const uint& indexOnCoarseGrid, GridImp* c bool GridInterface::isNeighborFineInvalid(real x, real y, real z, const GridImp* coarseGrid, const GridImp* fineGrid) { - const int neighbor = coarseGrid->transCoordToIndex(x, y, z); + const uint neighbor = coarseGrid->transCoordToIndex(x, y, z); if( neighbor == INVALID_INDEX ) return false; @@ -251,7 +251,9 @@ HOST void VF_PUBLIC GridInterface::repairGridInterfaceOnMultiGPU(SPtr<GridImp> c real x, y, z; coarseGrid->transIndexToCoords(this->cf.coarse[index], x, y, z); - if (coarseGrid->cellContainsOnly(Cell(x, y, z, coarseGrid->getDelta()), FLUID_CFC)) { + Cell cell(x, y, z, coarseGrid->getDelta()); + + if (coarseGrid->cellContainsOnly(cell, FLUID_CFC)) { tmpCFC.push_back (this->cf.coarse[index]); tmpCFF.push_back (this->cf.fine[index]); tmpCFOffset.push_back(this->cf.offset[index]); @@ -282,7 +284,9 @@ HOST void VF_PUBLIC GridInterface::repairGridInterfaceOnMultiGPU(SPtr<GridImp> c real x, y, z; fineGrid->transIndexToCoords(this->fc.fine[index], x, y, z); - if (fineGrid->cellContainsOnly(Cell(x, y, z, fineGrid->getDelta()), FLUID_FCF)) { + Cell cell(x, y, z, fineGrid->getDelta()); + + if (fineGrid->cellContainsOnly(cell, FLUID_FCF)) { tmpFCF.push_back (this->fc.fine[index]); tmpFCC.push_back (this->fc.coarse[index]); tmpFCOffset.push_back(this->fc.offset[index]); diff --git a/targets/apps/HULC/main.cpp b/targets/apps/HULC/main.cpp index 5b8a1a599491d348841e8c50b296a327188a1d32..416f4a14f190bca2499f13768d65d67cfc41d1b6 100644 --- a/targets/apps/HULC/main.cpp +++ b/targets/apps/HULC/main.cpp @@ -267,8 +267,8 @@ void setParameters(std::shared_ptr<Parameter> para, std::unique_ptr<input::Input void multipleLevel(const std::string& configPath) { - std::ofstream logFile( "C:/Users/lenz/Desktop/Work/gridGenerator/grid/gridGeneratorLog.txt" ); - //std::ofstream logFile( "grid/gridGeneratorLog.txt" ); + //std::ofstream logFile( "C:/Users/lenz/Desktop/Work/gridGenerator/grid/gridGeneratorLog.txt" ); + std::ofstream logFile( "grid/gridGeneratorLog.txt" ); logging::Logger::addStream(&logFile); logging::Logger::addStream(&std::cout); @@ -303,7 +303,7 @@ void multipleLevel(const std::string& configPath) MultiGPU }; - int testcase = MultiGPU; + int testcase = DLC; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if( testcase == DrivAer ) @@ -315,8 +315,10 @@ void multipleLevel(const std::string& configPath) TriangularMesh* DrivAerSTL = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/DrivAer_Fastback_Coarse.stl"); //TriangularMesh* triangularMesh = TriangularMesh::make("M:/TestGridGeneration/STL/DrivAer_NoSTLGroups.stl"); //TriangularMesh* triangularMesh = TriangularMesh::make("M:/TestGridGeneration/STL/DrivAer_Coarse.stl"); + //TriangularMesh* DrivAerSTL = TriangularMesh::make("stl/DrivAer_Fastback_Coarse.stl"); TriangularMesh* DrivAerRefBoxSTL = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/DrivAer_REF_BOX_Adrea.stl"); + //TriangularMesh* DrivAerRefBoxSTL = TriangularMesh::make("stl/DrivAer_REF_BOX_Adrea.stl"); real z0 = 0.318+0.5*dx; @@ -367,6 +369,9 @@ void multipleLevel(const std::string& configPath) ////////////////////////////////////////////////////////////////////////// + gridBuilder->writeGridsToVtk("C:/Users/lenz/Desktop/Work/gridGenerator/grid/DrivAer_Grid"); + gridBuilder->writeArrows ("C:/Users/lenz/Desktop/Work/gridGenerator/grid/DrivAer_Grid_arrow"); + //SimulationFileWriter::write("D:/GRIDGENERATION/files/", gridBuilder, FILEFORMAT::ASCII); SimulationFileWriter::write("C:/Users/lenz/Desktop/Work/gridGenerator/grid/", gridBuilder, FILEFORMAT::ASCII); //SimulationFileWriter::write("grid/", gridBuilder, FILEFORMAT::ASCII); @@ -387,36 +392,45 @@ void multipleLevel(const std::string& configPath) std::vector<uint> ignorePatches = { 152, 153, 154 }; - TriangularMesh* VW370_SERIE_STL = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/VW370_SERIE.stl", ignorePatches); + //TriangularMesh* VW370_SERIE_STL = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/VW370_SERIE.stl", ignorePatches); + TriangularMesh* VW370_SERIE_STL = TriangularMesh::make("stl/VW370_SERIE.stl", ignorePatches); - TriangularMesh* DLC_RefBox = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/DLC_RefBox.stl"); + //TriangularMesh* DLC_RefBox = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/DLC_RefBox.stl"); //TriangularMesh* DLC_RefBox_1 = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/DLC_RefBox_withWake/DLC_RefBox_withWake_4m.stl"); //TriangularMesh* DLC_RefBox_2 = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/DLC_RefBox_withWake/DLC_RefBox_withWake_3m.stl"); //TriangularMesh* DLC_RefBox_3 = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/DLC_RefBox_withWake/DLC_RefBox_withWake_2m.stl"); - TriangularMesh* DLC_RefBox_4 = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/DLC_RefBox_withWake/DLC_RefBox_withWake_1m.stl"); + //TriangularMesh* DLC_RefBox_4 = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/DLC_RefBox_withWake/DLC_RefBox_withWake_1m.stl"); + + //TriangularMesh* DLC_RefBox_Level_3 = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/DLC/DLC_RefBox_Level_3.stl"); + //TriangularMesh* DLC_RefBox_Level_4 = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/DLC/DLC_RefBox_Level_4.stl"); + //TriangularMesh* DLC_RefBox_Level_5 = TriangularMesh::make("C:/Users/lenz/Desktop/Work/gridGenerator/stl/DLC/DLC_RefBox_Level_5.stl"); + + TriangularMesh* DLC_RefBox_Level_3 = TriangularMesh::make("stl/DLC/DLC_RefBox_Level_3.stl"); + TriangularMesh* DLC_RefBox_Level_4 = TriangularMesh::make("stl/DLC/DLC_RefBox_Level_4.stl"); + TriangularMesh* DLC_RefBox_Level_5 = TriangularMesh::make("stl/DLC/DLC_RefBox_Level_5.stl"); //TriangularMesh* VW370_SERIE_STL = TriangularMesh::make("stl/VW370_SERIE.stl", ignorePatches); //TriangularMesh* DLC_RefBox = TriangularMesh::make("stl/DLC_RefBox.lnx.stl"); //TriangularMesh* DLC_RefBox_4 = TriangularMesh::make("stl/DLC_RefBox_withWake/DLC_RefBox_withWake_1m.lnx.stl"); - gridBuilder->addCoarseGrid(- 5.0, -5.0, 0.0 - z0, - 15.0, 5.0, 5.0 - z0, dx); - + gridBuilder->addCoarseGrid(-30.0, -20.0, 0.0 - z0, + 50.0, 20.0, 25.0 - z0, dx); + gridBuilder->setNumberOfLayers(10,8); - //gridBuilder->addGrid(DLC_RefBox_1, 1); - //gridBuilder->addGrid(DLC_RefBox_2, 2); - //gridBuilder->addGrid(DLC_RefBox_3, 3); - //gridBuilder->addGrid(DLC_RefBox_4, 4); + gridBuilder->addGrid( new Cuboid( - 6.6, -6, -0.7, 20.6 , 6, 5.3 ), 1 ); + gridBuilder->addGrid( new Cuboid( -3.75, -3, -0.7, 11.75, 3, 2.65 ), 2 ); - gridBuilder->addGrid(DLC_RefBox_4, 2); + gridBuilder->setNumberOfLayers(10,8); + gridBuilder->addGrid(DLC_RefBox_Level_3, 3); + gridBuilder->addGrid(DLC_RefBox_Level_4, 4); - //Conglomerate* refinement = new Conglomerate(); - //refinement->add(DLC_RefBox); - //refinement->add(VW370_SERIE_STL); + Conglomerate* refinement = new Conglomerate(); + refinement->add(DLC_RefBox_Level_5); + refinement->add(VW370_SERIE_STL); - //gridBuilder->setNumberOfLayers(10,8); - //gridBuilder->addGrid(refinement, 5); + gridBuilder->setNumberOfLayers(10,8); + gridBuilder->addGrid(refinement, 5); gridBuilder->addGeometry(VW370_SERIE_STL); @@ -469,9 +483,15 @@ void multipleLevel(const std::string& configPath) ////////////////////////////////////////////////////////////////////////// + //gridBuilder->writeGridsToVtk("C:/Users/lenz/Desktop/Work/gridGenerator/grid/DLC_Grid"); + //gridBuilder->writeArrows ("C:/Users/lenz/Desktop/Work/gridGenerator/grid/DLC_Grid_arrow"); + + gridBuilder->writeGridsToVtk("grid/DLC_Grid"); + gridBuilder->writeArrows ("grid/DLC_Grid_arrow"); + //SimulationFileWriter::write("D:/GRIDGENERATION/files/", gridBuilder, FILEFORMAT::ASCII); - SimulationFileWriter::write("C:/Users/lenz/Desktop/Work/gridGenerator/grid/", gridBuilder, FILEFORMAT::ASCII); - //SimulationFileWriter::write("grid/", gridBuilder, FILEFORMAT::ASCII); + //SimulationFileWriter::write("C:/Users/lenz/Desktop/Work/gridGenerator/grid/", gridBuilder, FILEFORMAT::ASCII); + SimulationFileWriter::write("grid/", gridBuilder, FILEFORMAT::ASCII); gridGenerator = GridGenerator::make(gridBuilder, para); }