From bd87fc30a45d2669057d608df279fe933e364c14 Mon Sep 17 00:00:00 2001 From: graham Date: Wed, 29 Jun 2011 11:19:27 +0100 Subject: [PATCH] ENH: rolling back WIP on face filtering. --- .../conformalVoronoiMesh.H | 4 +- .../conformalVoronoiMeshCalcDualMesh.C | 297 ++++++++---------- .../conformalVoronoiMeshIO.C | 8 +- 3 files changed, 131 insertions(+), 178 deletions(-) diff --git a/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H b/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H index f4b3896c01..85d168e9f2 100644 --- a/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H +++ b/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H @@ -67,7 +67,6 @@ SourceFiles #include "wallPolyPatch.H" #include "processorPolyPatch.H" #include "zeroGradientFvPatchFields.H" -#include "globalIndex.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -780,8 +779,7 @@ private: void indexDualVertices ( pointField& pts, - PackedBoolList& boundaryPts, - const globalIndex& globalParallelPointIndices + PackedBoolList& boundaryPts ); //- Re-index all of the the Delaunay cells diff --git a/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C b/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C index 24637656d1..091b096136 100644 --- a/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C +++ b/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C @@ -58,90 +58,73 @@ void Foam::conformalVoronoiMesh::calcDualMesh ++cit ) { + if + ( + !cit->vertex(0)->real() + || !cit->vertex(1)->real() + || !cit->vertex(2)->real() + || !cit->vertex(3)->real() + ) + { + cit->filterCount() = 100; + } + else + { cit->filterCount() = 0; + } } - // for - // ( - // Delaunay::Finite_cells_iterator cit = finite_cells_begin(); - // cit != finite_cells_end(); - // ++cit - // ) - // { - // if - // ( - // !cit->vertex(0)->real() - // || !cit->vertex(1)->real() - // || !cit->vertex(2)->real() - // || !cit->vertex(3)->real() - // ) - // { - // cit->filterCount() = 100; - // } - // else - // { - // cit->filterCount() = 0; - // } - // } + for + ( + Delaunay::Finite_vertices_iterator vit = finite_vertices_begin(); + vit != finite_vertices_end(); + vit++ + ) + { + std::list cells; + incident_cells(vit, std::back_inserter(cells)); - // for - // ( - // Delaunay::Finite_vertices_iterator vit = finite_vertices_begin(); - // vit != finite_vertices_end(); - // vit++ - // ) - // { - // std::list cells; - // incident_cells(vit, std::back_inserter(cells)); + bool hasProcPt = false; - // bool hasProcPt = false; + for + ( + std::list::iterator cit=cells.begin(); + cit != cells.end(); + ++cit + ) + { + if + ( + !(*cit)->vertex(0)->real() + || !(*cit)->vertex(1)->real() + || !(*cit)->vertex(2)->real() + || !(*cit)->vertex(3)->real() + ) + { + hasProcPt = true; - // for - // ( - // std::list::iterator cit=cells.begin(); - // cit != cells.end(); - // ++cit - // ) - // { - // if - // ( - // !(*cit)->vertex(0)->real() - // || !(*cit)->vertex(1)->real() - // || !(*cit)->vertex(2)->real() - // || !(*cit)->vertex(3)->real() - // ) - // { - // hasProcPt = true; + break; + } + } - // break; - // } - // } - - // if (hasProcPt) - // { - // for - // ( - // std::list::iterator cit=cells.begin(); - // cit != cells.end(); - // ++cit - // ) - // { - // (*cit)->filterCount() = 100; - // } - // } - // } + if (hasProcPt) + { + for + ( + std::list::iterator cit=cells.begin(); + cit != cells.end(); + ++cit + ) + { + (*cit)->filterCount() = 100; + } + } + } PackedBoolList boundaryPts(number_of_cells(), false); - globalIndex globalParallelPointIndices(number_of_cells()); - - indexDualVertices - ( - points, - boundaryPts, - globalParallelPointIndices - ); + indexDualVertices(points, boundaryPts); { // Ideally requires a no-risk face filtering to get rid of zero area @@ -199,12 +182,7 @@ void Foam::conformalVoronoiMesh::calcDualMesh // Reindexing the Delaunay cells and regenerating the // points resets the mesh to the starting condition. - indexDualVertices - ( - points, - boundaryPts, - globalParallelPointIndices - ); + indexDualVertices(points, boundaryPts); { Info<< nl << "Merging close points" << endl; @@ -1551,65 +1529,65 @@ Foam::labelHashSet Foam::conformalVoronoiMesh::checkPolyMeshQuality List patches(patchStarts.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] - // ); - - // nValidPatches++; - // } - // } - // else - // { - // patches[nValidPatches] = polyPatch::New - // ( - // patchTypes[p], - // patchNames[p], - // patchSizes[p], - // patchStarts[p], - // nValidPatches, - // pMesh.boundaryMesh() - // ).ptr(); - - // nValidPatches++; - // } - // } - - // patches.setSize(nValidPatches); - - // pMesh.addPatches(patches); - - Info<< "ADDPATCHES NOT IN PARALLEL" << endl; + label nValidPatches = 0; forAll(patches, p) { - patches[p] = new polyPatch - ( - patchNames[p], - patchSizes[p], - patchStarts[p], - p, - pMesh.boundaryMesh() - ); + 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] + ); + + nValidPatches++; + } + } + else + { + patches[nValidPatches] = polyPatch::New + ( + patchTypes[p], + patchNames[p], + patchSizes[p], + patchStarts[p], + nValidPatches, + pMesh.boundaryMesh() + ).ptr(); + + nValidPatches++; + } } - pMesh.addPatches(patches, false); + patches.setSize(nValidPatches); + + pMesh.addPatches(patches); + + // Info<< "ADDPATCHES NOT IN PARALLEL" << endl; + + // forAll(patches, p) + // { + // patches[p] = new polyPatch + // ( + // patchNames[p], + // patchSizes[p], + // patchStarts[p], + // p, + // pMesh.boundaryMesh() + // ); + // } + + // pMesh.addPatches(patches, false); // pMesh.overrideCellCentres(cellCentres); @@ -1807,8 +1785,7 @@ Foam::labelHashSet Foam::conformalVoronoiMesh::checkPolyMeshQuality void Foam::conformalVoronoiMesh::indexDualVertices ( pointField& pts, - PackedBoolList& boundaryPts, - const globalIndex& globalParallelPointIndices + PackedBoolList& boundaryPts ) { // Indexing Delaunay cells, which are the dual vertices @@ -1821,16 +1798,6 @@ void Foam::conformalVoronoiMesh::indexDualVertices boundaryPts = false; - OFstream tetStr - ( - runTime_.path() - /"processor_" - + name(Pstream::myProcNo()) - + "_parallelTets.obj" - ); - - label pTetI = 0; - for ( Delaunay::Finite_cells_iterator cit = finite_cells_begin(); @@ -1840,35 +1807,23 @@ void Foam::conformalVoronoiMesh::indexDualVertices { if (cit->internalOrBoundaryDualVertex()) { - if (cit->parallelDualVertex()) - { - cit->cellIndex() = globalParallelPointIndices.toGlobal - ( - dualVertI - ); - - drawDelaunayCell(tetStr, cit, pTetI++); - } - else - { - cit->cellIndex() = dualVertI; - - if - ( - !cit->vertex(0)->internalOrBoundaryPoint() - || !cit->vertex(1)->internalOrBoundaryPoint() - || !cit->vertex(2)->internalOrBoundaryPoint() - || !cit->vertex(3)->internalOrBoundaryPoint() - ) - { - // This is a boundary dual vertex - - boundaryPts[dualVertI] = true; - } - } + cit->cellIndex() = dualVertI; pts[dualVertI] = topoint(dual(cit)); + if + ( + !cit->vertex(0)->internalOrBoundaryPoint() + || !cit->vertex(1)->internalOrBoundaryPoint() + || !cit->vertex(2)->internalOrBoundaryPoint() + || !cit->vertex(3)->internalOrBoundaryPoint() + ) + { + // This is a boundary dual vertex + + boundaryPts[dualVertI] = true; + } + dualVertI++; } else diff --git a/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C b/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C index ab4d58975e..b93d0f8f9f 100644 --- a/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C +++ b/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C @@ -423,10 +423,10 @@ void Foam::conformalVoronoiMesh::writeMesh patches.setSize(nValidPatches); - // mesh.addFvPatches(patches); + mesh.addFvPatches(patches); - Info<< "ADDPATCHES NOT IN PARALLEL" << endl; - mesh.addFvPatches(patches, false); + // Info<< "ADDPATCHES NOT IN PARALLEL" << endl; + // mesh.addFvPatches(patches, false); if (!mesh.write()) { @@ -456,7 +456,7 @@ void Foam::conformalVoronoiMesh::writeMesh // cellCs.write(); - // writeCellSizes(mesh); + writeCellSizes(mesh); findRemainingProtrusionSet(mesh); }