From 84ad150b889670a1347cc60dc94ebf0aedadd4b6 Mon Sep 17 00:00:00 2001 From: laurence Date: Wed, 6 Feb 2013 12:10:25 +0000 Subject: [PATCH] ENH: cvMesh: Use dictionary constructor for polyPatch --- .../conformalVoronoiMesh.H | 31 +-- .../conformalVoronoiMeshCalcDualMesh.C | 178 ++++++++++-------- .../conformalVoronoiMeshIO.C | 150 ++++++++------- .../conformationSurfaces.C | 1 - .../polyPatches/polyPatch/polyPatch.H | 13 +- .../polyPatches/polyPatch/polyPatchNew.C | 22 ++- 6 files changed, 220 insertions(+), 175 deletions(-) diff --git a/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H b/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H index 2f8eb5fda9..02fe559580 100644 --- a/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H +++ b/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H @@ -770,9 +770,7 @@ private: labelList& neighbour, wordList& patchTypes, wordList& patchNames, - labelList& patchSizes, - labelList& patchStarts, - labelList& procNeighbours, + PtrList& patchDicts, pointField& cellCentres, labelList& cellToDelaunayVertex, labelListList& patchToDelaunayVertex, @@ -789,8 +787,7 @@ private: labelList& neighbour, wordList& patchTypes, wordList& patchNames, - labelList& patchSizes, - labelList& patchStarts + PtrList& patchDicts ); //- Determines if the dual face constructed by the Delaunay @@ -873,7 +870,7 @@ private: ( wordList& patchNames, wordList& patchTypes, - labelList& procNeighbours + PtrList& patchDicts ) const; //- Create all of the internal and boundary faces @@ -884,9 +881,7 @@ private: labelList& neighbour, wordList& patchTypes, wordList& patchNames, - labelList& patchSizes, - labelList& patchStarts, - labelList& procNeighbours, + PtrList& patchDicts, labelListList& patchPointPairSlaves, PackedBoolList& boundaryFacesToRemove, bool includeEmptyPatches = false @@ -924,8 +919,7 @@ private: const label nInternalFaces, faceList& faces, labelList& owner, - labelList& patchSizes, - labelList& patchStarts, + PtrList& patchDicts, PackedBoolList& boundaryFacesToRemove, const List >& patchFaces, const List >& patchOwners, @@ -954,9 +948,7 @@ private: const IOobject& io, const wordList& patchTypes, const wordList& patchNames, - const labelList& patchSizes, - const labelList& patchStarts, - const labelList& procNeighbours + const PtrList& patchDicts ) const; //- Create a polyMesh from points. @@ -965,8 +957,7 @@ private: void checkProcessorPatchesMatch ( const wordList& patchTypes, - const labelList& patchSizes, - const labelList& procNeighbours + const PtrList& patchDicts ) const; void reorderPoints @@ -986,9 +977,7 @@ private: faceList& faces, const wordList& patchTypes, const wordList& patchNames, - const labelList& patchSizes, - const labelList& patchStarts, - const labelList& procNeighbours + const PtrList& patchDicts ) const; //- Disallow default bitwise copy construct @@ -1153,9 +1142,7 @@ public: labelList& neighbour, const wordList& patchTypes, const wordList& patchNames, - const labelList& patchSizes, - const labelList& patchStarts, - const labelList& procNeighbours, + const PtrList& patchDicts, const pointField& cellCentres, const PackedBoolList& boundaryFacesToRemove ) const; diff --git a/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C b/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C index 37f332472c..0cc827f4cb 100644 --- a/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C +++ b/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C @@ -515,9 +515,10 @@ void Foam::conformalVoronoiMesh::calcDualMesh labelList& neighbour, wordList& patchTypes, wordList& patchNames, - labelList& patchSizes, - labelList& patchStarts, - labelList& procNeighbours, + PtrList& patchDicts, + //labelList& patchSizes, + //labelList& patchStarts, + //labelList& procNeighbours, pointField& cellCentres, labelList& cellToDelaunayVertex, labelListList& patchToDelaunayVertex, @@ -564,9 +565,10 @@ void Foam::conformalVoronoiMesh::calcDualMesh neighbour, patchTypes, patchNames, - patchSizes, - patchStarts, - procNeighbours, + patchDicts, +// patchSizes, +// patchStarts, +// procNeighbours, patchToDelaunayVertex, // from patch face to Delaunay vertex (slavePp) boundaryFacesToRemove, false @@ -595,8 +597,7 @@ void Foam::conformalVoronoiMesh::calcTetMesh labelList& neighbour, wordList& patchTypes, wordList& patchNames, - labelList& patchSizes, - labelList& patchStarts + PtrList& patchDicts ) { labelList vertexMap(number_of_vertices()); @@ -771,15 +772,19 @@ void Foam::conformalVoronoiMesh::calcTetMesh sortFaces(faces, owner, neighbour); +// PackedBoolList boundaryFacesToRemove; +// List > indirectPatchFace; +// // addPatches // ( // nInternalFaces, // faces, // owner, -// patchSizes, -// patchStarts, +// patchDicts, +// boundaryFacesToRemove, // patchFaces, -// patchOwners +// patchOwners, +// indirectPatchFace // ); } @@ -1179,9 +1184,7 @@ Foam::conformalVoronoiMesh::createPolyMeshFromPoints labelList neighbour; wordList patchTypes; wordList patchNames; - labelList patchSizes; - labelList patchStarts; - labelList procNeighbours; + PtrList patchDicts; pointField cellCentres; labelListList patchToDelaunayVertex; PackedBoolList boundaryFacesToRemove; @@ -1197,9 +1200,7 @@ Foam::conformalVoronoiMesh::createPolyMeshFromPoints neighbour, patchTypes, patchNames, - patchSizes, - patchStarts, - procNeighbours, + patchDicts, patchToDelaunayVertex, boundaryFacesToRemove, false @@ -1232,46 +1233,50 @@ Foam::conformalVoronoiMesh::createPolyMeshFromPoints polyMesh& pMesh = meshPtr(); - List patches(patchStarts.size()); + List patches(patchNames.size()); label nValidPatches = 0; forAll(patches, p) { - if (patchTypes[p] == processorPolyPatch::typeName) - { - // Do not create empty processor patches - if (patchSizes[p] > 0) - { - patches[nValidPatches] = new processorPolyPatch - ( - patchNames[p], - patchSizes[p], - patchStarts[p], - nValidPatches, - pMesh.boundaryMesh(), - Pstream::myProcNo(), - procNeighbours[p], - coupledPolyPatch::COINCIDENTFULLMATCH - ); + label totalPatchSize = readLabel(patchDicts[p].lookup("nFaces")); - nValidPatches++; - } - } - else - { - patches[nValidPatches] = polyPatch::New - ( - patchTypes[p], - patchNames[p], - patchSizes[p], - patchStarts[p], - nValidPatches, - pMesh.boundaryMesh() - ).ptr(); + if (patchTypes[p] == processorPolyPatch::typeName) + { + // Do not create empty processor patches + if (totalPatchSize > 0) + { + patches[nValidPatches] = new processorPolyPatch + ( + patchNames[p], + patchDicts[p], + nValidPatches, + pMesh.boundaryMesh(), + patchTypes[p] + ); - nValidPatches++; - } + nValidPatches++; + } + } + else + { + // Check that the patch is not empty on every processor + reduce(totalPatchSize, sumOp