diff --git a/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp b/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp index a9023dfefd728bc45947aa008cf8a357676f9a7f..aad5b3bcf7f73f3394a03a6456448299fc766bec 100644 --- a/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp +++ b/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp @@ -32,17 +32,7 @@ void MultipleGridBuilder::addGrid(Object* gridShape) addGridToListIfValid(grid); } -void MultipleGridBuilder::addGrid(real startX, real startY, real startZ, real endX, real endY, real endZ) -{ - if (!coarseGridExists()) - return emitNoCoarseGridExistsWarning(); - - const auto grid = makeGrid(startX, startY, startZ, endX, endY, endZ, getNumberOfLevels()); - - addGridToListIfValid(grid); -} - -void MultipleGridBuilder::addFineGrid(Object* gridShape, uint levelFine) +void MultipleGridBuilder::addGrid(Object* gridShape, uint levelFine) { if (!coarseGridExists()) return emitNoCoarseGridExistsWarning(); @@ -52,7 +42,7 @@ void MultipleGridBuilder::addFineGrid(Object* gridShape, uint levelFine) const uint oldGridSize = this->getNumberOfLevels(); - addIntermediateGridsToList(levelDifference, levelFine, nodesBetweenGrids, gridShape->clone()); + addIntermediateGridsToList(levelDifference, levelFine, nodesBetweenGrids, gridShape); addFineGridToList(levelFine, gridShape->clone()); eraseGridsFromListIfInvalid(oldGridSize); @@ -75,54 +65,10 @@ void MultipleGridBuilder::addIntermediateGridsToList(uint levelDifference, uint for (int i = levelDifference - 1; i >= 0; i--) { const real scalingFactor = nodesBetweenGrids * spacings[i] * calculateDelta(levelFine); - gridShape->scale(scalingFactor); + Object* gridShapeClone = gridShape->clone(); + gridShapeClone->scale(scalingFactor); - const auto grid = makeGrid(gridShape, level++); - grids.push_back(grid); - } - } -} - -void MultipleGridBuilder::addFineGrid(real startXfine, real startYfine, real startZfine, real endXfine, real endYfine, real endZfine, uint levelFine) -{ - if (!coarseGridExists()) - return emitNoCoarseGridExistsWarning(); - - const uint nodesBetweenGrids = 8; - const uint levelDifference = levelFine - getNumberOfLevels(); - const uint oldGridSize = this->getNumberOfLevels(); - - addIntermediateGridsToList(levelDifference, levelFine, nodesBetweenGrids, startXfine, startYfine, startZfine, endXfine, endYfine, endZfine); - addFineGridToList(levelFine, startXfine, startYfine, startZfine, endXfine, endYfine, endZfine); - - eraseGridsFromListIfInvalid(oldGridSize); -} - -void MultipleGridBuilder::addFineGridToList(uint level, real startXfine, real startYfine, real startZfine, real endXfine, real endYfine, real endZfine) -{ - const auto grid = makeGrid(startXfine, startYfine, startZfine, endXfine, endYfine, endZfine, level); - grids.push_back(grid); -} - -void MultipleGridBuilder::addIntermediateGridsToList(uint levelDifference, uint levelFine, uint nodesBetweenGrids, real startXfine, real startYfine, real startZfine, real endXfine, real endYfine, real endZfine) -{ - if (levelDifference > 0) - { - auto spacings = getSpacingFactors(levelDifference); - - // start = startFine - SUM(nodesBetweenGrids * 2^i * dxfine) - uint level = getNumberOfLevels(); - for (int i = levelDifference - 1; i >= 0; i--) - { - const real startX = startXfine - nodesBetweenGrids * spacings[i] * calculateDelta(levelFine); - const real startY = startYfine - nodesBetweenGrids * spacings[i] * calculateDelta(levelFine); - const real startZ = startZfine - nodesBetweenGrids * spacings[i] * calculateDelta(levelFine); - - const real endX = endXfine + nodesBetweenGrids * spacings[i] * calculateDelta(levelFine); - const real endY = endYfine + nodesBetweenGrids * spacings[i] * calculateDelta(levelFine); - const real endZ = endZfine + nodesBetweenGrids * spacings[i] * calculateDelta(levelFine); - - const auto grid = makeGrid(startX, startY, startZ, endX, endY, endZ, level++); + const auto grid = makeGrid(gridShapeClone, level++); grids.push_back(grid); } } @@ -176,15 +122,6 @@ SPtr<Grid> MultipleGridBuilder::makeGrid(Object* gridShape, uint level) const return gridFactory->makeGrid(gridShape, staggeredCoordinates[0], staggeredCoordinates[1], staggeredCoordinates[2], staggeredCoordinates[3], staggeredCoordinates[4], staggeredCoordinates[5], delta); } -SPtr<Grid> MultipleGridBuilder::makeGrid(real startX, real startY, real startZ, real endX, real endY, real endZ, uint level) const -{ - const real delta = calculateDelta(level); - - auto staggeredCoordinates = getStaggeredCoordinates(startX, startY, startZ, endX, endY, endZ, delta); - - return this->makeGrid(staggeredCoordinates[0], staggeredCoordinates[1], staggeredCoordinates[2], staggeredCoordinates[3], staggeredCoordinates[4], staggeredCoordinates[5], delta); -} - real MultipleGridBuilder::calculateDelta(uint level) const { real delta = this->getDelta(0); @@ -197,13 +134,13 @@ std::array<real, 6> MultipleGridBuilder::getStaggeredCoordinates(real startX, re { auto offset = getOffset(delta); - const real startXStaggered = int(startX) + offset[0] - getDelta(getNumberOfLevels() - 1); - const real startYStaggered = int(startY) + offset[1] - getDelta(getNumberOfLevels() - 1); - const real startZStaggered = int(startZ) + offset[2] - getDelta(getNumberOfLevels() - 1); + const real startXStaggered = std::floor(startX) - offset[0]; + const real startYStaggered = std::floor(startY) - offset[1]; + const real startZStaggered = std::floor(startZ) - offset[2]; - const real endXStaggered = int(endX) - offset[0] + getDelta(getNumberOfLevels() - 1); - const real endYStaggered = int(endY) - offset[1] + getDelta(getNumberOfLevels() - 1); - const real endZStaggered = int(endZ) - offset[2] + getDelta(getNumberOfLevels() - 1); + const real endXStaggered = std::ceil(endX) + offset[0]; + const real endYStaggered = std::ceil(endY) + offset[1]; + const real endZStaggered = std::ceil(endZ) + offset[2]; return std::array<real, 6>{startXStaggered, startYStaggered, startZStaggered, endXStaggered, endYStaggered, endZStaggered}; } diff --git a/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h b/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h index 33509d4e155d5af196a64cb2c26684dc88f21004..3c4721a6c3e97969e322b448c7606c6973e976c7 100644 --- a/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h +++ b/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h @@ -24,20 +24,7 @@ public: VF_PUBLIC void addCoarseGrid(real startX, real startY, real startZ, real endX, real endY, real endZ, real delta); VF_PUBLIC void addGrid(Object* gridShape); - VF_PUBLIC void addGrid(real startX, real startY, real startZ, real endX, real endY, real endZ); - VF_PUBLIC void addFineGrid(real startX, real startY, real startZ, real endX, real endY, real endZ, uint level); - VF_PUBLIC void addFineGrid(Object* gridShape, uint level); - - - void addFineGridToList(uint level, Object* gridShape); - void addIntermediateGridsToList(uint levelDifference, uint levelFine, uint nodesBetweenGrids, Object* gridShape); - - void addFineGridToList( uint level, real startXfine, real startYfine, real startZfine, real endXfine, real endYfine, real endZFine); - - void addIntermediateGridsToList(uint levelDifference, uint levelFine, uint nodesBetweenGrids, real startXfine, real startYfine, real startZfine, real endXfine, real endYfine, real endZfine); - void eraseGridsFromListIfInvalid(uint oldSize); - - void addGridToListIfValid(SPtr<Grid> grid); + VF_PUBLIC void addGrid(Object* gridShape, uint levelFine); VF_PUBLIC uint getNumberOfLevels() const; VF_PUBLIC real getDelta(uint level) const; @@ -58,7 +45,12 @@ private: real calculateDelta(uint level) const; bool coarseGridExists() const; bool isGridInCoarseGrid(SPtr<Grid> grid) const; - SPtr<Grid> makeGrid(real startX, real startY, real startZ, real endX, real endY, real endZ, uint level) const; + + void addFineGridToList(uint level, Object* gridShape); + void addIntermediateGridsToList(uint levelDifference, uint levelFine, uint nodesBetweenGrids, Object* gridShape); + void eraseGridsFromListIfInvalid(uint oldSize); + void addGridToListIfValid(SPtr<Grid> grid); + std::array<real, 6> getStaggeredCoordinates(real startX, real startY, real startZ, real endX, real endY, real endZ, real delta) const; std::array<real, 3> getOffset(real delta) const; std::vector<uint> getSpacingFactors(uint levelDifference) const; diff --git a/src/GridGenerator/grid/GridBuilder/MultipleGridBuilderTest.cpp b/src/GridGenerator/grid/GridBuilder/MultipleGridBuilderTest.cpp index 529dd73a4a51c02b1e8b62d5c3c7a2aede3b313a..2e8936e46de904de311269727ef336046e30b35f 100644 --- a/src/GridGenerator/grid/GridBuilder/MultipleGridBuilderTest.cpp +++ b/src/GridGenerator/grid/GridBuilder/MultipleGridBuilderTest.cpp @@ -31,7 +31,7 @@ TEST_F(MultipleGridBuilderAddGridTest, addOneGrid_numberOfLevelsShouldBeOne) TEST_F(MultipleGridBuilderAddGridTest, addTwoGridsWhereSecondGridIsBigger_GridShouldNotAdded) { gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0, 1.0); - gridBuilder->addGrid(0.0, 0.0, 0.0, 20.0, 20.0, 20.0); + gridBuilder->addGrid(new Cuboid(0.0, 0.0, 0.0, 20.0, 20.0, 20.0)); ASSERT_THAT(gridBuilder->getNumberOfLevels(), testing::Eq(1)); } @@ -40,14 +40,14 @@ TEST_F(MultipleGridBuilderAddGridTest, givenCoarseGrid_addAdditionalGrid_shouldC const real delta = 2.0; gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0, delta); - gridBuilder->addGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0); + gridBuilder->addGrid(new Cuboid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0)); ASSERT_THAT(gridBuilder->getDelta(1), RealEq(delta * 0.5)); } TEST_F(MultipleGridBuilderAddGridTest, addGridWithoutCoarseGrid_shouldNotbeAdded) { - gridBuilder->addGrid(0.0, 0.0, 0.0, 20.0, 20.0, 20.0); + gridBuilder->addGrid(new Cuboid(0.0, 0.0, 0.0, 20.0, 20.0, 20.0)); ASSERT_THAT(gridBuilder->getNumberOfLevels(), testing::Eq(0)); } @@ -57,10 +57,10 @@ TEST_F(MultipleGridBuilderAddGridTest, addMultipleGrids_deltaShouldBeTheHalfOfTh const real delta = 2.0; gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0, delta); - gridBuilder->addGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0); - gridBuilder->addGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0); - gridBuilder->addGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0); - gridBuilder->addGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0); + gridBuilder->addGrid(new Cuboid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0)); + gridBuilder->addGrid(new Cuboid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0)); + gridBuilder->addGrid(new Cuboid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0)); + gridBuilder->addGrid(new Cuboid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0)); EXPECT_THAT(gridBuilder->getDelta(1), RealEq(delta / 2.0)); EXPECT_THAT(gridBuilder->getDelta(2), RealEq(delta / 4.0)); @@ -73,9 +73,9 @@ TEST_F(MultipleGridBuilderAddGridTest, getInvalidLevel_shouldThrowException) ASSERT_THROW(gridBuilder->getDelta(0), std::exception); } -TEST_F(MultipleGridBuilderAddGridTest, addFineGridWithoutCoarseGrid_ShouldNotAddingAGrid) +TEST_F(MultipleGridBuilderAddGridTest, addGridWithoutCoarseGrid_ShouldNotAddingAGrid) { - gridBuilder->addFineGrid(0, 0, 0, 0, 0, 0, 0); + gridBuilder->addGrid(new Cuboid(0, 0, 0, 0, 0, 0), 0); ASSERT_THAT(gridBuilder->getNumberOfLevels(), testing::Eq(0)); } @@ -85,7 +85,7 @@ TEST_F(MultipleGridBuilderAddGridTest, addGridWithFloatingStartPoints_ShouldCrea { gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, 15.0, 15.0, 15.0, 1); - gridBuilder->addGrid(0.1212, 0.1212, 0.221, 10.867, 10.45454, 10.12121); + gridBuilder->addGrid(new Cuboid(0.1212, 0.1212, 0.221, 10.867, 10.45454, 10.12121)); EXPECT_THAT(gridBuilder->getStartX(1), RealEq(0.25)); @@ -101,9 +101,9 @@ TEST_F(MultipleGridBuilderAddGridTest, addGridWitNegativStartPoints_ShouldCreate { gridBuilder->addCoarseGrid(-100.0, -100.0, -100.0, 15.0, 15.0, 15.0, 1); - gridBuilder->addGrid(-20.0, -20.0, -20.0, -5.0, -5.0, -5.0); + gridBuilder->addGrid(new Cuboid(-20.0, -20.0, -20.0, -5.0, -5.0, -5.0)); - gridBuilder->addGrid(-15.0, -15.0, -15.0, -10.0, -10.0, -10.0); + gridBuilder->addGrid(new Cuboid(-15.0, -15.0, -15.0, -10.0, -10.0, -10.0)); EXPECT_THAT(gridBuilder->getStartX(2), RealEq(-15.625)); EXPECT_THAT(gridBuilder->getStartY(2), RealEq(-15.625)); @@ -156,7 +156,7 @@ TEST_F(MultipleGridBuilderAddGridTest, addedsecondGrid_shouldBeStaggered) const real givenEndX = 10.0; const real givenEndY = 11.0; const real givenEndZ = 12.0; - gridBuilder->addGrid(givenStartX, givenStartY, givenStartZ, givenEndX, givenEndY, givenEndZ); + gridBuilder->addGrid(new Cuboid(givenStartX, givenStartY, givenStartZ, givenEndX, givenEndY, givenEndZ)); const uint level = 1; const real staggeredOffset = 0.5 * gridBuilder->getDelta(level); @@ -174,7 +174,7 @@ TEST_F(MultipleGridBuilderAddGridTest, addGridAfterCoarseGridWithFloatingStartPo const real givenEndX = 10.0; const real givenEndY = 11.0; const real givenEndZ = 12.0; - gridBuilder->addGrid(givenStartX, givenStartY, givenStartZ, givenEndX, givenEndY, givenEndZ); + gridBuilder->addGrid(new Cuboid(givenStartX, givenStartY, givenStartZ, givenEndX, givenEndY, givenEndZ)); const uint level = 1; @@ -200,8 +200,8 @@ TEST_F(MultipleGridBuilderAddGridTest, addedthirdGrid_shouldBeStaggered) const real givenEndY = 11.0; const real givenEndZ = 12.0; - gridBuilder->addGrid(givenStartX, givenStartY, givenStartZ, givenEndX, givenEndY, givenEndZ); - gridBuilder->addGrid(3.0, 4.0, 5.0, 5.0, 6.0, 7.0); + gridBuilder->addGrid(new Cuboid(givenStartX, givenStartY, givenStartZ, givenEndX, givenEndY, givenEndZ)); + gridBuilder->addGrid(new Cuboid(3.0, 4.0, 5.0, 5.0, 6.0, 7.0)); EXPECT_THAT(gridBuilder->getStartX(2), RealEq(3.375)); EXPECT_THAT(gridBuilder->getStartY(2), RealEq(4.375)); @@ -219,7 +219,7 @@ TEST_F(MultipleGridBuilderAddGridTest, addsFineGridWithLevel_shouldCreateGridsBe gridBuilder->addCoarseGrid(-100.0, -100.0, -100.0, 100.0, 100.0, 100.0, 1.0); const uint level = 5; - gridBuilder->addFineGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0, level); + gridBuilder->addGrid(new Cuboid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0), level); ASSERT_THAT(gridBuilder->getNumberOfLevels(), testing::Eq(level + 1)); } @@ -230,7 +230,7 @@ TEST_F(MultipleGridBuilderAddGridTest, addsFineGridWithLevelThree_shouldCalculat gridBuilder->addCoarseGrid(-100.0, -100.0, -100.0, 100.0, 100.0, 100.0, 1.0); uint level = 3; - gridBuilder->addFineGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0, level); + gridBuilder->addGrid(new Cuboid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0), level); const real expectedDeltaLevel3 = startDelta / std::pow(2, level); EXPECT_THAT(gridBuilder->getDelta(level), RealEq(expectedDeltaLevel3)); @@ -249,7 +249,7 @@ TEST_F(MultipleGridBuilderAddGridTest, addsFineGridWithLevelThree_shouldCreateSt gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, 100.0, 100.0, 100.0, 1.0); uint level = 3; - gridBuilder->addFineGrid(20.0, 20.0, 20.0, 40.0, 40.0, 40.0, level); + gridBuilder->addGrid(new Cuboid(20.0, 20.0, 20.0, 40.0, 40.0, 40.0), level); EXPECT_THAT(gridBuilder->getStartX(level), RealEq(20.4375)); EXPECT_THAT(gridBuilder->getStartY(level), RealEq(20.4375)); @@ -272,7 +272,7 @@ TEST_F(MultipleGridBuilderAddGridTest, addsFineGridWithLevelThree_shouldCreateSt const real givenEndX = 40.0; const real givenEndY = 41.0; const real givenEndZ = 42.0; - gridBuilder->addFineGrid(givenStartX, givenStartY, givenStartZ, givenEndX, givenEndY, givenEndZ, level); + gridBuilder->addGrid(new Cuboid(givenStartX, givenStartY, givenStartZ, givenEndX, givenEndY, givenEndZ), level); const real expectedStartXLevel2 = givenStartX + 0.375 - 8.0 * gridBuilder->getDelta(2); @@ -295,7 +295,7 @@ TEST_F(MultipleGridBuilderAddGridTest, addsFineGridWithLevelTwoWithCoarseGridSiz { gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0, 1.0); - gridBuilder->addFineGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0, 2); + gridBuilder->addGrid(new Cuboid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0), 2); ASSERT_THAT(gridBuilder->getNumberOfLevels(), testing::Eq(1)); } @@ -305,7 +305,7 @@ TEST_F(MultipleGridBuilderAddGridTest, addsFineGridWithLevelOne_shouldCreateStag gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, 10.0, 10.0, 10.0, 1.0); const uint level = 1; - gridBuilder->addFineGrid(5.0, 5.0, 5.0, 7.0, 7.0, 7.0, level); + gridBuilder->addGrid(new Cuboid(5.0, 5.0, 5.0, 7.0, 7.0, 7.0), level); EXPECT_THAT(gridBuilder->getStartX(1), RealEq(5.25)); EXPECT_THAT(gridBuilder->getStartY(1), RealEq(5.25)); @@ -321,7 +321,7 @@ TEST_F(MultipleGridBuilderAddGridTest, addsFineGridWithLevelTwo_shouldCreateStag gridBuilder->addCoarseGrid(-5.0, -5.0, -5.0, 12.0, 12.0, 12.0, 1.0); const uint level = 2; - gridBuilder->addFineGrid(5.0, 5.0, 5.0, 7.0, 7.0, 7.0, level); + gridBuilder->addGrid(new Cuboid(5.0, 5.0, 5.0, 7.0, 7.0, 7.0), level); EXPECT_THAT(gridBuilder->getStartX(2), RealEq(5.375)); @@ -336,10 +336,10 @@ TEST_F(MultipleGridBuilderAddGridTest, addsFineGridWithLevelTwo_shouldCreateStag TEST_F(MultipleGridBuilderAddGridTest, addsFineGridWithLevelTwoAndTwoGridsBefore_shouldCreateStaggeredStartAndEndPointFineGrid) { gridBuilder->addCoarseGrid(1.0, 4.0, 2.0, 30.0, 30.0, 30.0, 1.0); - gridBuilder->addGrid(5.0, 5.0, 5.0, 20.0, 20.0, 20.0); + gridBuilder->addGrid(new Cuboid(5.0, 5.0, 5.0, 20.0, 20.0, 20.0)); const uint level = 2; - gridBuilder->addFineGrid(10.0, 10.0, 10.0, 12.0, 12.0, 12.0, level); + gridBuilder->addGrid(new Cuboid(10.0, 10.0, 10.0, 12.0, 12.0, 12.0), level); EXPECT_THAT(gridBuilder->getStartX(1), RealEq(5.25)); EXPECT_THAT(gridBuilder->getStartY(1), RealEq(5.25)); @@ -361,10 +361,10 @@ TEST_F(MultipleGridBuilderAddGridTest, addsFineGridWithLevelTwoAndTwoGridsBefore TEST_F(MultipleGridBuilderAddGridTest, addsFineGridWithLevelTwoAndTwoGridsBeforeAndFloatingStartingPoints_shouldCreateStaggeredStartAndEndPointFineGrid) { gridBuilder->addCoarseGrid(1.2, 4.0, 2.0, 30.0, 30.0, 30.0, 1.0); - gridBuilder->addGrid(5.0, 5.0, 5.0, 20.0, 20.0, 20.0); + gridBuilder->addGrid(new Cuboid(5.0, 5.0, 5.0, 20.0, 20.0, 20.0)); const uint level = 2; - gridBuilder->addFineGrid(10.0, 10.0, 10.0, 12.0, 12.0, 12.0, level); + gridBuilder->addGrid(new Cuboid(10.0, 10.0, 10.0, 12.0, 12.0, 12.0), level); EXPECT_THAT(gridBuilder->getStartX(2), RealEq(10.575)); @@ -383,7 +383,7 @@ TEST(MultipleGridBuilderTest, everyExceptTheFinestGrid_shouldHaveAGridInterface) gridFactory->setGrid("spy"); auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory); gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, 15.0, 15.0, 15.0, 1.0); - gridBuilder->addFineGrid(7.0, 7.0, 7.0, 10.0, 10.0, 10.0, 2); + gridBuilder->addGrid(new Cuboid(7.0, 7.0, 7.0, 10.0, 10.0, 10.0), 2); gridBuilder->buildGrids(); @@ -401,7 +401,7 @@ TEST(MultipleGridBuilderTest, afterCreatingGridInterface_FineGridsShouldNotBeHav gridFactory->setGrid("spy"); auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory); gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, 15.0, 15.0, 15.0, 1.0); - gridBuilder->addFineGrid(7.0, 7.0, 7.0, 10.0, 10.0, 10.0, 2); + gridBuilder->addGrid(new Cuboid(7.0, 7.0, 7.0, 10.0, 10.0, 10.0), 2); gridBuilder->buildGrids(); diff --git a/src/GridGenerator/grid/GridImp.cu b/src/GridGenerator/grid/GridImp.cu index d0462b1226f6c1bb82b23809656f7fbe6915ddb3..b5053c490e1f591b48c1dfb754d771d2402c5d4e 100644 --- a/src/GridGenerator/grid/GridImp.cu +++ b/src/GridGenerator/grid/GridImp.cu @@ -43,13 +43,13 @@ HOST SPtr<GridImp> GridImp::makeShared(Object* object, real startX, real startY, void GridImp::initalNumberOfNodesAndSize() { - startX -= delta; // +1 stopper node - startY -= delta; // +1 stopper node - startZ -= delta; // +1 stopper node + //startX -= delta; // +1 stopper node + //startY -= delta; // +1 stopper node + //startZ -= delta; // +1 stopper node - endX += delta; // +1 stopper node - endY += delta; // +1 stopper node - endZ += delta; // +1 stopper node + //endX += delta; // +1 stopper node + //endY += delta; // +1 stopper node + //endZ += delta; // +1 stopper node const real length = endX - startX; const real width = endY - startY; diff --git a/targets/apps/HULC/main.cpp b/targets/apps/HULC/main.cpp index 389a8644e937ebc65649999594c541101048deb3..217cda264cfaa84432785aeb1614c8c7c503b339 100644 --- a/targets/apps/HULC/main.cpp +++ b/targets/apps/HULC/main.cpp @@ -249,10 +249,10 @@ void multipleLevel(const std::string& configPath) //gridBuilder->addGrid(new Sphere(20, 20, 20, 8)); - //gridBuilder->addFineGrid(new Sphere(20, 20, 20, 8), 2); + gridBuilder->addGrid(new Sphere(20, 20, 20, 4), 3); //gridBuilder->addFineGrid(new Cuboid(15, 15, 15, 25, 25, 25), 1); - gridBuilder->addFineGrid(new Cuboid(17, 17, 17, 23, 23, 23), 2); + //gridBuilder->addFineGrid(new Cuboid(17, 17, 17, 23, 23, 23), 2); //gridBuilder->addFineGrid(17.0, 17.0, 17.0, 20.0, 20.0, 20.0, 3);