REVERT: Change parallel referral algorithm back to original

This commit is contained in:
laurence
2013-06-13 09:30:05 +01:00
parent 182e0cc2d3
commit 11d22dbf47
2 changed files with 73 additions and 35 deletions

View File

@ -254,47 +254,85 @@ void Foam::DistributedDelaunayMesh<Triangulation>::findProcessorBoundaryCells
/Pstream::nProcs() /Pstream::nProcs()
); );
std::list<Cell_handle> infinite_cells; // std::list<Cell_handle> infinite_cells;
Triangulation::incident_cells // Triangulation::incident_cells
( // (
Triangulation::infinite_vertex(), // Triangulation::infinite_vertex(),
std::back_inserter(infinite_cells) // std::back_inserter(infinite_cells)
); // );
//
for // for
( // (
typename std::list<Cell_handle>::iterator vcit = infinite_cells.begin(); // typename std::list<Cell_handle>::iterator vcit
vcit != infinite_cells.end(); // = infinite_cells.begin();
++vcit // vcit != infinite_cells.end();
) // ++vcit
{ // )
Cell_handle cit = *vcit; // {
// Cell_handle cit = *vcit;
// Index of infinite vertex in this cell. //
int i = cit->index(Triangulation::infinite_vertex()); // // Index of infinite vertex in this cell.
// int i = cit->index(Triangulation::infinite_vertex());
Cell_handle c = cit->neighbor(i); //
// Cell_handle c = cit->neighbor(i);
if (c->unassigned()) //
{ // if (c->unassigned())
c->cellIndex() = this->getNewCellIndex(); // {
// c->cellIndex() = this->getNewCellIndex();
if (checkProcBoundaryCell(c, circumsphereOverlaps)) //
{ // if (checkProcBoundaryCell(c, circumsphereOverlaps))
cellToCheck.insert(c->cellIndex()); // {
} // 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 for
( (
Finite_cells_iterator cit = Triangulation::finite_cells_begin(); All_cells_iterator cit = Triangulation::all_cells_begin();
cit != Triangulation::finite_cells_end(); cit != Triangulation::all_cells_end();
++cit ++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()) if (cit->unassigned())
{ {

View File

@ -1899,7 +1899,7 @@ void Foam::conformalVoronoiMesh::indexDualVertices
{ {
// Snapping points far outside // Snapping points far outside
if (cit->boundaryDualVertex()) if (cit->boundaryDualVertex() && !cit->parallelDualVertex())
{ {
pointFromPoint dual = cit->dual(); pointFromPoint dual = cit->dual();