diff --git a/.gitignore b/.gitignore index 182a78aa1f85b2b69ac85452b2d87fbd87e68e56..285f67f351ae8abf4d088f0364417b2f55d4883d 100644 --- a/.gitignore +++ b/.gitignore @@ -16,10 +16,17 @@ __pycache__/ .devcontainer/ .sync/ .idea/ +.vscode-server # Simulation results output/ logs/ +# Input files +stl/ + +# Scripts +scripts/ + # MacOS .DS_Store diff --git a/CMakeLists.txt b/CMakeLists.txt index ef024170265d9270d192e12f6b301224355f9ac3..d7aae3233d1f17e804e29ba3090d7a3bc9ca8a3f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -170,7 +170,9 @@ endif() if(BUILD_USE_MPI) find_package(MPI REQUIRED) - list(APPEND VF_COMPILER_DEFINITION VF_MPI) + if(BUILD_VF_CPU) + list(APPEND VF_COMPILER_DEFINITION VF_MPI) + endif() endif() # boost diff --git a/src/gpu/GridGenerator/grid/GridImp.cpp b/src/gpu/GridGenerator/grid/GridImp.cpp index e2c16f578854b4138514554213f6dee1f7a3e2c1..7eda4f9b8e5a374347b8572f3a28a947be5ad9cb 100644 --- a/src/gpu/GridGenerator/grid/GridImp.cpp +++ b/src/gpu/GridGenerator/grid/GridImp.cpp @@ -868,6 +868,7 @@ void GridImp::findSparseIndices(SPtr<Grid> finerGrid) if (fineGrid) { fineGrid->updateSparseIndices(); + this->findForGridInterfaceNewIndices(fineGrid); } const uint newGridSize = this->getSparseSize(); @@ -875,6 +876,16 @@ void GridImp::findSparseIndices(SPtr<Grid> finerGrid) << ", delete nodes:" << this->getSize() - newGridSize << "\n"; } +void GridImp::findForGridInterfaceNewIndices(SPtr<GridImp> fineGrid) +{ +#pragma omp parallel for + for (int index = 0; index < (int)this->getNumberOfNodesCF(); index++) + this->gridInterface->findForGridInterfaceSparseIndexCF(this, fineGrid.get(), index); + +#pragma omp parallel for + for (int index = 0; index < (int)this->getNumberOfNodesFC(); index++) + this->gridInterface->findForGridInterfaceSparseIndexFC(this, fineGrid.get(), index); +} void GridImp::updateSparseIndices() { diff --git a/src/gpu/GridGenerator/grid/GridImp.h b/src/gpu/GridGenerator/grid/GridImp.h index 4a8aa1535187fe0bf69fed7b653a4c05d46d99e7..b096f5ff85dcd725ff065dbb6fc31d75c016c869 100644 --- a/src/gpu/GridGenerator/grid/GridImp.h +++ b/src/gpu/GridGenerator/grid/GridImp.h @@ -53,19 +53,19 @@ class BoundingBox; class TriangularMeshDiscretizationStrategy; #ifdef __GNUC__ -#ifndef __clang__ -#pragma push -#pragma diag_suppress = 3156 -#endif + #ifndef __clang__ + #pragma push + #pragma diag_suppress = 3156 + #endif #endif // GCC: warning #3156-D: extern declaration of the entity DIRECTIONS is treated as a static definition extern int DIRECTIONS[DIR_END_MAX][DIMENSION]; #ifdef __GNUC__ -#ifndef __clang__ -#pragma pop -#endif + #ifndef __clang__ + #pragma pop + #endif #endif class GRIDGENERATOR_EXPORT GridImp : public enableSharedFromThis<GridImp>, public Grid @@ -247,6 +247,7 @@ public: uint getNumberOfNodesCF() const override; uint getNumberOfNodesFC() const override; void getGridInterfaceIndices(uint *iCellCfc, uint *iCellCff, uint *iCellFcc, uint *iCellFcf) const override; + static void getGridInterface(uint *gridInterfaceList, const uint *oldGridInterfaceList, uint size); int *getNeighborsX() const override; @@ -267,6 +268,7 @@ public: public: virtual void findSparseIndices(SPtr<Grid> fineGrid) override; + void findForGridInterfaceNewIndices(SPtr<GridImp> fineGrid); void updateSparseIndices(); void setNeighborIndices(uint index); real getFirstFluidNode(real coords[3], int direction, real startCoord) const override; @@ -305,7 +307,11 @@ public: void findQsPrimitive(Object *object); private: - enum class qComputationStageType { FindSolidBoundaryNodes, ComputeQs } qComputationStage; + + enum class qComputationStageType{ + FindSolidBoundaryNodes, + ComputeQs + } qComputationStage; public: void enableFindSolidBoundaryNodes() override