void Foam::pointToPoint::applyToSet ( const topoSetSource::setAction action, topoSet& set ) const { if ((action == topoSetSource::NEW) || (action == topoSetSource::ADD)) { Info<< " Adding all from pointSet " << setName_ << " ..." << endl; // Load the set pointSet loadedSet(mesh_, setName_); set.addSet(loadedSet); } else if (action == topoSetSource::DELETE) { Info<< " Removing all from pointSet " << setName_ << " ..." << endl; // Load the set pointSet loadedSet(mesh_, setName_); set.deleteSet(loadedSet); } }
void Foam::cellToCell::applyToSet ( const topoSetSource::setAction action, topoSet& set ) const { if ((action == topoSetSource::ADD) || (action == topoSetSource::NEW)) { Info<< " Adding all elements of cellSet " << setName_ << " ..." << endl; // Load the set cellSet loadedSet(mesh_, setName_); set.addSet(loadedSet); } else if (action == topoSetSource::DELETE) { Info<< " Removing all elements of cellSet " << setName_ << " ..." << endl; // Load the set cellSet loadedSet(mesh_, setName_); set.deleteSet(loadedSet); } }
void Foam::cellToPoint::combine(topoSet& set, const bool add) const { // Load the set cellSet loadedSet(mesh_, setName_); // Add all point from cells in loadedSet for ( cellSet::const_iterator iter = loadedSet.begin(); iter != loadedSet.end(); ++iter ) { label cellI = iter.key(); const labelList& cFaces = mesh_.cells()[cellI]; forAll(cFaces, cFaceI) { const face& f = mesh_.faces()[cFaces[cFaceI]]; forAll(f, fp) { addOrDelete(set, f[fp], add); } } }
void Foam::cellToFace::combine(topoSet& set, const bool add) const { // Load the set if (!exists(mesh_.time().path()/topoSet::localPath(mesh_, setName_))) { SeriousError<< "Cannot load set " << setName_ << endl; } cellSet loadedSet(mesh_, setName_); if (option_ == ALL) { // Add all faces from cell for ( cellSet::const_iterator iter = loadedSet.begin(); iter != loadedSet.end(); ++iter ) { label cellI = iter.key(); const labelList& cFaces = mesh_.cells()[cellI]; forAll(cFaces, cFaceI) { addOrDelete(set, cFaces[cFaceI], add); } } }
void Foam::pointToFace::combine(topoSet& set, const bool add) const { // Load the set pointSet loadedSet(mesh_, setName_); if (option_ == ANY) { // Add faces with any point in loadedSet for ( pointSet::const_iterator iter = loadedSet.begin(); iter != loadedSet.end(); ++iter ) { label pointI = iter.key(); const labelList& pFaces = mesh_.pointFaces()[pointI]; forAll(pFaces, pFaceI) { addOrDelete(set, pFaces[pFaceI], add); } } }
void Foam::faceToPoint::combine(topoSet& set, const bool add) const { // Load the set faceSet loadedSet(mesh_, setName_); // Add all points from faces in loadedSet forAllConstIter(faceSet, loadedSet, iter) { const face& f = mesh_.faces()[iter.key()]; forAll(f, fp) { addOrDelete(set, f[fp], add); } }
void Foam::faceToPoint::combine(topoSet& set, const bool add) const { // Load the set faceSet loadedSet(mesh_, setName_); // Add all points from faces in loadedSet for ( faceSet::const_iterator iter = loadedSet.begin(); iter != loadedSet.end(); ++iter ) { const face& f = mesh_.faces()[iter.key()]; forAll(f, fp) { addOrDelete(set, f[fp], add); } }
void Foam::faceToCell::combine(topoSet& set, const bool add) const { // Load the set faceSet loadedSet(mesh_, setName_); // Handle owner/neighbour/any selection forAllConstIter(faceSet, loadedSet, iter) { const label faceI = iter.key(); if ((option_ == OWNER) || (option_ == ANY)) { const label cellI = mesh_.faceOwner()[faceI]; addOrDelete(set, cellI, add); } if (mesh_.isInternalFace(faceI)) { if ((option_ == NEIGHBOUR) || (option_ == ANY)) { const label cellI = mesh_.faceNeighbour()[faceI]; addOrDelete(set, cellI, add); } } } // Handle all selection. if (option_ == ALL) { // Count number of selected faces per cell. Map<label> facesPerCell(loadedSet.size()); forAllConstIter(faceSet, loadedSet, iter) { const label faceI = iter.key(); const label own = mesh_.faceOwner()[faceI]; Map<label>::iterator fndOwn = facesPerCell.find(own); if (fndOwn == facesPerCell.end()) { facesPerCell.insert(own, 1); } else { fndOwn()++; } if (mesh_.isInternalFace(faceI)) { label nei = mesh_.faceNeighbour()[faceI]; Map<label>::iterator fndNei = facesPerCell.find(nei); if (fndNei == facesPerCell.end()) { facesPerCell.insert(nei, 1); } else { fndNei()++; } } } // Include cells that are referenced as many times as they have faces // -> all faces in set. forAllConstIter(Map<label>, facesPerCell, iter) { const label cellI = iter.key(); if (iter() == mesh_.cells()[cellI].size()) { addOrDelete(set, cellI, add); } } }