From 457979a7b78ce1e6d84d3c2a1c587ddd42f9fb65 Mon Sep 17 00:00:00 2001 From: sergio Date: Tue, 28 Jun 2022 08:54:53 -0700 Subject: [PATCH] ENH: Adding new viewFactor utility using CGAL --- .../preProcessing/viewFactorsGen/Make/options | 8 +- .../viewFactorsGen/searchingEngine.H | 33 +- .../preProcessing/viewFactorsGen/shootRays.H | 137 +- .../viewFactorsGen/viewFactorsGen.C | 573 ++++++-- .../viewFactorsGenExt/Make/files | 3 - .../viewFactorsGenExt/Make/options | 39 - .../viewFactorsGenExt/searchingEngineExt.H | 121 -- .../viewFactorsGenExt/shootRaysExt.H | 196 --- .../viewFactorsGenExt/viewFactorsGenExt.C | 1227 ----------------- 9 files changed, 548 insertions(+), 1789 deletions(-) delete mode 100644 applications/utilities/preProcessing/viewFactorsGenExt/Make/files delete mode 100644 applications/utilities/preProcessing/viewFactorsGenExt/Make/options delete mode 100644 applications/utilities/preProcessing/viewFactorsGenExt/searchingEngineExt.H delete mode 100644 applications/utilities/preProcessing/viewFactorsGenExt/shootRaysExt.H delete mode 100644 applications/utilities/preProcessing/viewFactorsGenExt/viewFactorsGenExt.C diff --git a/applications/utilities/preProcessing/viewFactorsGen/Make/options b/applications/utilities/preProcessing/viewFactorsGen/Make/options index 1a9826a229..298501f447 100644 --- a/applications/utilities/preProcessing/viewFactorsGen/Make/options +++ b/applications/utilities/preProcessing/viewFactorsGen/Make/options @@ -1,10 +1,16 @@ +include $(GENERAL_RULES)/cgal + EXE_INC = \ + -Wno-old-style-cast \ + ${CGAL_INC} \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/surfMesh/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(LIB_SRC)/parallel/distributed/lnInclude \ + -I$(LIB_SRC)/parallel/distributed/lnInclude + EXE_LIBS = \ + ${CGAL_LIBS} \ -lfiniteVolume \ -lsurfMesh \ -lmeshTools \ diff --git a/applications/utilities/preProcessing/viewFactorsGen/searchingEngine.H b/applications/utilities/preProcessing/viewFactorsGen/searchingEngine.H index df38326ded..9b89b848c9 100644 --- a/applications/utilities/preProcessing/viewFactorsGen/searchingEngine.H +++ b/applications/utilities/preProcessing/viewFactorsGen/searchingEngine.H @@ -25,7 +25,7 @@ dict.add("mergeDistance", SMALL); labelList triSurfaceToAgglom(5*nFineFaces); -const triSurface localSurface = triangulate +triSurface localSurface = triangulate ( patches, includePatches, @@ -36,6 +36,8 @@ const triSurface localSurface = triangulate ); +// CGAL surface + distributedTriSurfaceMesh surfacesMesh ( IOobject @@ -45,13 +47,38 @@ distributedTriSurfaceMesh surfacesMesh "triSurface", // instance runTime, // registry IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::AUTO_WRITE ), localSurface, dict ); - triSurfaceToAgglom.resize(surfacesMesh.size()); surfacesMesh.setField(triSurfaceToAgglom); + +const pointField& pts = surfacesMesh.localPoints(); + +std::list triangles; + +for (const auto& triLocal : surfacesMesh.localFaces()) +{ + point p1l = pts[triLocal[0]]; + point p2l = pts[triLocal[1]]; + point p3l = pts[triLocal[2]]; + + Point p1(p1l[0], p1l[1], p1l[2]); + Point p2(p2l[0], p2l[1], p2l[2]); + Point p3(p3l[0], p3l[1], p3l[2]); + + Triangle tri(p1, p2, p3); + + if (tri.is_degenerate()) + { + std::cout << tri << std::endl; + } + triangles.push_back(tri); +} + +// constructs AABB tree +Tree tree(triangles.begin(), triangles.end()); diff --git a/applications/utilities/preProcessing/viewFactorsGen/shootRays.H b/applications/utilities/preProcessing/viewFactorsGen/shootRays.H index e35b2d4268..c738784b79 100644 --- a/applications/utilities/preProcessing/viewFactorsGen/shootRays.H +++ b/applications/utilities/preProcessing/viewFactorsGen/shootRays.H @@ -1,26 +1,23 @@ -// All rays expressed as start face (local) index end end face (global) -// Pre-size by assuming a certain percentage is visible. - // Maximum length for dynamicList const label maxDynListLength ( - viewFactorDict.getOrDefault