diff --git a/src/GridGenerator/grid/Grid.h b/src/GridGenerator/grid/Grid.h index c4101ebbd5d23e8322897109b41544858382db8c..9332ac2bffffbc8c23f81a6c13c46c4bd96df8fc 100644 --- a/src/GridGenerator/grid/Grid.h +++ b/src/GridGenerator/grid/Grid.h @@ -106,6 +106,8 @@ public: HOST virtual bool getPeriodicityY() = 0; HOST virtual bool getPeriodicityZ() = 0; + HOST virtual void setEnableFixRefinementIntoTheWall( bool enableFixRefinementIntoTheWall ) = 0; + HOST virtual void freeMemory() = 0; diff --git a/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp b/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp index e3a7cf3cb3473fc9af390419035d6c9b5825d7e1..adbf9f1b48fb60463320d05884c88f0b7ff91e95 100644 --- a/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp +++ b/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp @@ -126,6 +126,12 @@ void LevelGridBuilder::setNoSlipBoundaryCondition(SideType sideType) } } +VF_PUBLIC void LevelGridBuilder::setEnableFixRefinementIntoTheWall(bool enableFixRefinementIntoTheWall) +{ + for( uint level = 0; level < this->grids.size(); level++ ) + grids[level]->setEnableFixRefinementIntoTheWall( enableFixRefinementIntoTheWall ); +} + VF_PUBLIC void LevelGridBuilder::setCommunicationProcess(int direction, uint process) { this->communicationProcesses[direction] = process; diff --git a/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.h b/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.h index 787161759e2b8090c4c5ee203c427cf616c1a995..64fc74759f173fbd3c6c729739cca129aa3e2d8e 100644 --- a/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.h +++ b/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.h @@ -47,6 +47,8 @@ public: VF_PUBLIC void setPeriodicBoundaryCondition(bool periodic_X, bool periodic_Y, bool periodic_Z); VF_PUBLIC void setNoSlipBoundaryCondition(SideType sideType); + VF_PUBLIC void setEnableFixRefinementIntoTheWall( bool enableFixRefinementIntoTheWall ); + VF_PUBLIC void setCommunicationProcess(int direction, uint process); VF_PUBLIC uint getCommunicationProcess(int direction) override; diff --git a/src/GridGenerator/grid/GridImp.cu b/src/GridGenerator/grid/GridImp.cu index ddb88504a19ec30c1bfcd38d0f1c9a9f711c8ff3..c9b48471439336e2f60efa5fe006cebab3d4f93b 100644 --- a/src/GridGenerator/grid/GridImp.cu +++ b/src/GridGenerator/grid/GridImp.cu @@ -41,6 +41,10 @@ HOST GridImp::GridImp(Object* object, real startX, real startY, real startZ, rea gridStrategy(gridStrategy), distribution(distribution), level(level), + periodicityX(false), + periodicityY(false), + periodicityZ(false), + enableFixRefinementIntoTheWall(false), gridInterface(nullptr), neighborIndexX(nullptr), neighborIndexY(nullptr), @@ -105,8 +109,11 @@ HOST void GridImp::inital(const SPtr<Grid> fineGrid, uint numberOfLayers) *logging::out << logging::Logger::INFO_INTERMEDIATE << "Start fixOddCells()\n"; gridStrategy->fixOddCells( shared_from_this() ); - *logging::out << logging::Logger::INFO_INTERMEDIATE << "Start fixRefinementIntoWall()\n"; - gridStrategy->fixRefinementIntoWall(shared_from_this()); + if( enableFixRefinementIntoTheWall ) + { + *logging::out << logging::Logger::INFO_INTERMEDIATE << "Start fixRefinementIntoWall()\n"; + gridStrategy->fixRefinementIntoWall(shared_from_this()); + } *logging::out << logging::Logger::INFO_INTERMEDIATE << "Start findEndOfGridStopperNodes()\n"; gridStrategy->findEndOfGridStopperNodes(shared_from_this()); @@ -704,6 +711,11 @@ bool GridImp::getPeriodicityZ() return this->periodicityZ; } +void GridImp::setEnableFixRefinementIntoTheWall(bool enableFixRefinementIntoTheWall) +{ + this->enableFixRefinementIntoTheWall = enableFixRefinementIntoTheWall; +} + HOSTDEVICE uint GridImp::transCoordToIndex(const real &x, const real &y, const real &z) const { const uint xIndex = getXIndex(x); diff --git a/src/GridGenerator/grid/GridImp.h b/src/GridGenerator/grid/GridImp.h index 27d141710a8d99236f6c7c628a911d376175b5dc..2209c952d3f9fc0fb1e35a8ac6a279802240c359 100644 --- a/src/GridGenerator/grid/GridImp.h +++ b/src/GridGenerator/grid/GridImp.h @@ -85,6 +85,8 @@ private: uint numberOfSolidBoundaryNodes; + bool enableFixRefinementIntoTheWall; + public: HOST void inital(const SPtr<Grid> fineGrid, uint numberOfLayers) override; HOST void setOddStart( bool xOddStart, bool yOddStart, bool zOddStart ) override; @@ -99,6 +101,8 @@ public: bool getPeriodicityY() override; bool getPeriodicityZ() override; + void setEnableFixRefinementIntoTheWall( bool enableFixRefinementIntoTheWall ) override; + HOSTDEVICE void setCellTo(uint index, char type); HOSTDEVICE void setNonStopperOutOfGridCellTo(uint index, char type);