From 11d22dbf47de4f0349328b666bd16712c9921e80 Mon Sep 17 00:00:00 2001 From: laurence Date: Thu, 13 Jun 2013 09:30:05 +0100 Subject: [PATCH] REVERT: Change parallel referral algorithm back to original --- .../DelaunayMesh/DistributedDelaunayMesh.C | 106 ++++++++++++------ .../conformalVoronoiMeshCalcDualMesh.C | 2 +- 2 files changed, 73 insertions(+), 35 deletions(-) diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/DelaunayMesh/DistributedDelaunayMesh.C b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/DelaunayMesh/DistributedDelaunayMesh.C index 2370c16ba3..7b316e5c44 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/DelaunayMesh/DistributedDelaunayMesh.C +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/DelaunayMesh/DistributedDelaunayMesh.C @@ -254,47 +254,85 @@ void Foam::DistributedDelaunayMesh::findProcessorBoundaryCells /Pstream::nProcs() ); - std::list infinite_cells; - Triangulation::incident_cells - ( - Triangulation::infinite_vertex(), - std::back_inserter(infinite_cells) - ); - - for - ( - typename std::list::iterator vcit = infinite_cells.begin(); - vcit != infinite_cells.end(); - ++vcit - ) - { - Cell_handle cit = *vcit; - - // Index of infinite vertex in this cell. - int i = cit->index(Triangulation::infinite_vertex()); - - Cell_handle c = cit->neighbor(i); - - if (c->unassigned()) - { - c->cellIndex() = this->getNewCellIndex(); - - if (checkProcBoundaryCell(c, circumsphereOverlaps)) - { - cellToCheck.insert(c->cellIndex()); - } - } - } +// std::list infinite_cells; +// Triangulation::incident_cells +// ( +// Triangulation::infinite_vertex(), +// std::back_inserter(infinite_cells) +// ); +// +// for +// ( +// typename std::list::iterator vcit +// = infinite_cells.begin(); +// vcit != infinite_cells.end(); +// ++vcit +// ) +// { +// Cell_handle cit = *vcit; +// +// // Index of infinite vertex in this cell. +// int i = cit->index(Triangulation::infinite_vertex()); +// +// Cell_handle c = cit->neighbor(i); +// +// if (c->unassigned()) +// { +// c->cellIndex() = this->getNewCellIndex(); +// +// if (checkProcBoundaryCell(c, circumsphereOverlaps)) +// { +// cellToCheck.insert(c->cellIndex()); +// } +// } +// } +// +// +// for +// ( +// Finite_cells_iterator cit = Triangulation::finite_cells_begin(); +// cit != Triangulation::finite_cells_end(); +// ++cit +// ) +// { +// if (cit->parallelDualVertex()) +// { +// if (cit->unassigned()) +// { +// if (checkProcBoundaryCell(cit, circumsphereOverlaps)) +// { +// cellToCheck.insert(cit->cellIndex()); +// } +// } +// } +// } for ( - Finite_cells_iterator cit = Triangulation::finite_cells_begin(); - cit != Triangulation::finite_cells_end(); + All_cells_iterator cit = Triangulation::all_cells_begin(); + cit != Triangulation::all_cells_end(); ++cit ) { - if (cit->parallelDualVertex()) + if (Triangulation::is_infinite(cit)) + { + // Index of infinite vertex in this cell. + int i = cit->index(Triangulation::infinite_vertex()); + + Cell_handle c = cit->neighbor(i); + + if (c->unassigned()) + { + c->cellIndex() = this->getNewCellIndex(); + + if (checkProcBoundaryCell(c, circumsphereOverlaps)) + { + cellToCheck.insert(c->cellIndex()); + } + } + } + else if (cit->parallelDualVertex()) { if (cit->unassigned()) { diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C index c771256f4b..e33ce7c6c7 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C @@ -1899,7 +1899,7 @@ void Foam::conformalVoronoiMesh::indexDualVertices { // Snapping points far outside - if (cit->boundaryDualVertex()) + if (cit->boundaryDualVertex() && !cit->parallelDualVertex()) { pointFromPoint dual = cit->dual();