Foam::labelList Foam::refinementParameters::findCells(const polyMesh& mesh) const { // Force calculation of tet-diag decomposition (for use in findCell) (void)mesh.tetBasePtIs(); // Global calculation engine globalIndex globalCells(mesh.nCells()); // Cell label per point labelList cellLabels(keepPoints_.size()); forAll(keepPoints_, i) { const point& keepPoint = keepPoints_[i]; label localCellI = mesh.findCell(keepPoint); label globalCellI = -1; if (localCellI != -1) { globalCellI = globalCells.toGlobal(localCellI); } reduce(globalCellI, maxOp<label>()); if (globalCellI == -1) { FatalErrorInFunction << "Point " << keepPoint << " is not inside the mesh or on a face or edge." << nl << "Bounding box of the mesh:" << mesh.bounds() << exit(FatalError); } label procI = globalCells.whichProcID(globalCellI); label procCellI = globalCells.toLocal(procI, globalCellI); Info<< "Found point " << keepPoint << " in cell " << procCellI << " on processor " << procI << endl; if (globalCells.isLocal(globalCellI)) { cellLabels[i] = localCellI; } else { cellLabels[i] = -1; } } return cellLabels; }
Foam::labelList Foam::refinementParameters::findCells(const polyMesh& mesh) const { // Global calculation engine globalIndex globalCells(mesh.nCells()); // Cell label per point labelList cellLabels(keepPoints_.size()); forAll(keepPoints_, i) { const point& keepPoint = keepPoints_[i]; label localCellI = mesh.findCell(keepPoint); label globalCellI = -1; if (localCellI != -1) { Pout<< "Found point " << keepPoint << " in cell " << localCellI << " on processor " << Pstream::myProcNo() << endl; globalCellI = globalCells.toGlobal(localCellI); } reduce(globalCellI, maxOp<label>()); if (globalCellI == -1) { FatalErrorIn ( "refinementParameters::findCells(const polyMesh&) const" ) << "Point " << keepPoint << " is not inside the mesh or on a face or edge." << nl << "Bounding box of the mesh:" << mesh.bounds() << exit(FatalError); } if (globalCells.isLocal(globalCellI)) { cellLabels[i] = localCellI; } else { cellLabels[i] = -1; } } return cellLabels; }