diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/Make/files b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/Make/files index bc4a363517..efeef35866 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/Make/files +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/Make/files @@ -8,6 +8,7 @@ conformalVoronoiMesh/indexedCell/indexedCellEnum.C conformalVoronoiMesh/conformalVoronoiMesh.C conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C conformalVoronoiMesh/conformalVoronoiMeshConformToSurface.C +conformalVoronoiMesh/conformalVoronoiMeshZones.C conformalVoronoiMesh/conformalVoronoiMeshIO.C conformalVoronoiMesh/conformalVoronoiMeshFeaturePoints.C diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H index 9a22055dc9..eb75909d1c 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H @@ -29,10 +29,10 @@ Description SourceFiles conformalVoronoiMeshI.H conformalVoronoiMesh.C + conformalVoronoiMeshZones.C conformalVoronoiMeshIO.C conformalVoronoiMeshConformToSurface.C conformalVoronoiMeshFeaturePoints.C - conformalVoronoiMeshFeaturePointSpecialisations.C conformalVoronoiMeshCalcDualMesh.C conformalVoronoiMeshTemplates.C @@ -636,6 +636,9 @@ private: boolList& flipMap ) const; + //- Add zones to the polyMesh + void addZones(polyMesh& mesh, const pointField& cellCentres) const; + //- Tet mesh calculation void calcTetMesh ( diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C index dc272a89d6..4f02fb67f6 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C @@ -35,12 +35,7 @@ License #include "pointMesh.H" #include "indexedVertexOps.H" #include "DelaunayMeshTools.H" -#include "surfaceZonesInfo.H" -#include "polyModifyCell.H" -#include "polyModifyFace.H" #include "syncTools.H" -#include "regionSplit.H" -#include "OBJstream.H" // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // @@ -408,543 +403,6 @@ void Foam::conformalVoronoiMesh::writeMesh(const fileName& instance) } -void Foam::conformalVoronoiMesh::calcNeighbourCellCentres -( - const polyMesh& mesh, - const pointField& cellCentres, - pointField& neiCc -) const -{ - label nBoundaryFaces = mesh.nFaces() - mesh.nInternalFaces(); - - if (neiCc.size() != nBoundaryFaces) - { - FatalErrorIn("conformalVoronoiMesh::calcNeighbourCellCentres(..)") - << "nBoundaries:" << nBoundaryFaces - << " neiCc:" << neiCc.size() - << abort(FatalError); - } - - const polyBoundaryMesh& patches = mesh.boundaryMesh(); - - forAll(patches, patchI) - { - const polyPatch& pp = patches[patchI]; - - const labelUList& faceCells = pp.faceCells(); - - label bFaceI = pp.start() - mesh.nInternalFaces(); - - if (pp.coupled()) - { - forAll(faceCells, i) - { - neiCc[bFaceI] = cellCentres[faceCells[i]]; - bFaceI++; - } - } - } - - // Swap coupled boundaries. Apply separation to cc since is coordinate. - syncTools::swapBoundaryFacePositions(mesh, neiCc); -} - - -void Foam::conformalVoronoiMesh::selectSeparatedCoupledFaces -( - const polyMesh& mesh, - boolList& selected -) const -{ - const polyBoundaryMesh& patches = mesh.boundaryMesh(); - - forAll(patches, patchI) - { - // Check all coupled. Avoid using .coupled() so we also pick up AMI. - if (isA(patches[patchI])) - { - const coupledPolyPatch& cpp = refCast - ( - patches[patchI] - ); - - if (cpp.separated() || !cpp.parallel()) - { - forAll(cpp, i) - { - selected[cpp.start()+i] = true; - } - } - } - } -} - - -void Foam::conformalVoronoiMesh::findCellZoneInsideWalk -( - const polyMesh& mesh, - const labelList& locationSurfaces, // indices of surfaces with inside point - const labelList& faceToSurface, // per face index of named surface - labelList& cellToSurface -) const -{ - // Analyse regions. Reuse regionsplit - boolList blockedFace(mesh.nFaces()); - selectSeparatedCoupledFaces(mesh, blockedFace); - - forAll(faceToSurface, faceI) - { - if (faceToSurface[faceI] == -1) - { - blockedFace[faceI] = false; - } - else - { - blockedFace[faceI] = true; - } - } - // No need to sync since namedSurfaceIndex already is synced - - // Set region per cell based on walking - regionSplit cellRegion(mesh, blockedFace); - blockedFace.clear(); - - - // Force calculation of face decomposition (used in findCell) - (void)mesh.tetBasePtIs(); - - const PtrList& surfZones = - geometryToConformTo().surfZones(); - - // For all locationSurface find the cell - forAll(locationSurfaces, i) - { - label surfI = locationSurfaces[i]; - - const Foam::point& insidePoint = surfZones[surfI].zoneInsidePoint(); - - const word& surfName = geometryToConformTo().geometry().names()[surfI]; - - Info<< " For surface " << surfName - << " finding inside point " << insidePoint - << endl; - - // Find the region containing the insidePoint - label keepRegionI = -1; - - label cellI = mesh.findCell(insidePoint); - - if (cellI != -1) - { - keepRegionI = cellRegion[cellI]; - } - reduce(keepRegionI, maxOp