Direct mesh changes based on v1.3 polyTopoChange syntax. More...
Public Member Functions | |
ClassName ("polyTopoChange") | |
Runtime type information. More... | |
polyTopoChange (const label nPatches, const bool strict=true) | |
Construct without mesh. Either specify nPatches or use. More... | |
polyTopoChange (const polyMesh &mesh, const bool strict=true) | |
Construct from mesh. Adds all points/face/cells from mesh. More... | |
const DynamicList< point > & | points () const |
Points. Shrunk after constructing mesh (or calling of compact()) More... | |
const DynamicList< face > & | faces () const |
const DynamicList< label > & | region () const |
const DynamicList< label > & | faceOwner () const |
const DynamicList< label > & | faceNeighbour () const |
bool | pointRemoved (const label pointi) const |
Is point removed? More... | |
bool | faceRemoved (const label facei) const |
Is face removed? More... | |
bool | cellRemoved (const label celli) const |
Is cell removed? More... | |
void | clear () |
Clear all storage. More... | |
void | addMesh (const polyMesh &, const labelList &patchMap, const labelList &pointZoneMap, const labelList &faceZoneMap, const labelList &cellZoneMap) |
Add all points/faces/cells of mesh. Additional offset for patch. More... | |
void | setCapacity (const label nPoints, const label nFaces, const label nCells) |
Explicitly pre-size the dynamic storage for expected mesh. More... | |
void | movePoints (const pointField &newPoints) |
Move all points. Incompatible with other topology changes. More... | |
label | setAction (const topoAction &action) |
For compatibility with polyTopoChange: set topological action. More... | |
label | addPoint (const point &, const label masterPointID, const label zoneID, const bool inCell) |
Add point. Return new point label. More... | |
void | modifyPoint (const label, const point &, const label newZoneID, const bool inCell) |
Modify coordinate. More... | |
void | removePoint (const label, const label) |
Remove/merge point. More... | |
label | addFace (const face &f, const label own, const label nei, const label masterPointID, const label masterEdgeID, const label masterFaceID, const bool flipFaceFlux, const label patchID, const label zoneID, const bool zoneFlip) |
Add face to cells. Return new face label. More... | |
void | modifyFace (const face &f, const label facei, const label own, const label nei, const bool flipFaceFlux, const label patchID, const label zoneID, const bool zoneFlip) |
Modify vertices or cell of face. More... | |
void | removeFace (const label, const label) |
Remove/merge face. More... | |
label | addCell (const label masterPointID, const label masterEdgeID, const label masterFaceID, const label masterCellID, const label zoneID) |
Add cell. Return new cell label. More... | |
void | modifyCell (const label, const label zoneID) |
Modify zone of cell. More... | |
void | removeCell (const label, const label) |
Remove/merge cell. More... | |
void | setNumPatches (const label nPatches) |
Explicitly set the number of patches if construct-without-mesh. More... | |
autoPtr< mapPolyMesh > | changeMesh (polyMesh &mesh, const bool inflate, const bool syncParallel=true, const bool orderCells=false, const bool orderPoints=false) |
Inplace changes mesh without change of patches. More... | |
autoPtr< mapPolyMesh > | makeMesh (autoPtr< fvMesh > &newMesh, const IOobject &io, const polyMesh &mesh, const bool syncParallel=true, const bool orderCells=false, const bool orderPoints=false) |
Create new mesh with old mesh patches. More... | |
Direct mesh changes based on v1.3 polyTopoChange syntax.
Instead of recording changes and executing them all in one go (as did v1.3 polyTopoChange) this class actually holds the current points/faces/cells and does the change immediately. It can be asked to compress out all unused points/faces/cells and renumber everything to be consistent.
Note:
Definition at line 97 of file polyTopoChange.H.
polyTopoChange | ( | const label | nPatches, |
const bool | strict = true |
||
) |
Construct without mesh. Either specify nPatches or use.
setNumPatches before trying to make a mesh (makeMesh, changeMesh)
Definition at line 2169 of file polyTopoChange.C.
polyTopoChange | ( | const polyMesh & | mesh, |
const bool | strict = true |
||
) |
Construct from mesh. Adds all points/face/cells from mesh.
Definition at line 2201 of file polyTopoChange.C.
References polyTopoChange::addMesh(), polyMesh::boundaryMesh(), polyMesh::cellZones(), polyMesh::faceZones(), Foam::identity(), polyMesh::pointZones(), and UPtrList< T >::size().
ClassName | ( | "polyTopoChange" | ) |
Runtime type information.
|
inline |
Points. Shrunk after constructing mesh (or calling of compact())
Definition at line 421 of file polyTopoChange.H.
Referenced by hexRef8::faceLevel(), duplicatePoints::setRefinement(), and addPatchCellLayer::setRefinement().
|
inline |
Definition at line 426 of file polyTopoChange.H.
Referenced by polyTopoChange::addMesh().
|
inline |
Definition at line 431 of file polyTopoChange.H.
|
inline |
Definition at line 436 of file polyTopoChange.H.
Referenced by polyTopoChange::addMesh().
|
inline |
Definition at line 441 of file polyTopoChange.H.
References polyTopoChange::addCell(), polyTopoChange::addFace(), polyTopoChange::addMesh(), polyTopoChange::addPoint(), polyTopoChange::cellRemoved(), polyTopoChange::changeMesh(), polyTopoChange::clear(), polyTopoChange::faceRemoved(), polyTopoChange::makeMesh(), polyTopoChange::modifyCell(), polyTopoChange::modifyFace(), polyTopoChange::modifyPoint(), polyTopoChange::movePoints(), nPoints, polyTopoChange::pointRemoved(), polyTopoChange::removeCell(), polyTopoChange::removeFace(), polyTopoChange::removePoint(), polyTopoChange::setAction(), polyTopoChange::setCapacity(), and polyTopoChange::setNumPatches().
Referenced by polyTopoChange::addMesh().
|
inline |
Is point removed?
Definition at line 30 of file polyTopoChangeI.H.
References VectorSpace< Vector< scalar >, scalar, 3 >::max, Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Referenced by polyTopoChange::faceNeighbour(), polyTopoChange::modifyPoint(), and polyTopoChange::removePoint().
|
inline |
Is face removed?
Definition at line 41 of file polyTopoChangeI.H.
Referenced by polyTopoChange::faceNeighbour(), and polyTopoChange::removeFace().
|
inline |
Is cell removed?
Definition at line 47 of file polyTopoChangeI.H.
Referenced by polyTopoChange::faceNeighbour().
void clear | ( | ) |
Clear all storage.
Definition at line 2245 of file polyTopoChange.C.
References polyTopoChange::addMesh(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::clearStorage(), HashTable< T, Key, Hash >::clearStorage(), and PackedList< nBits >::clearStorage().
Referenced by polyTopoChange::faceNeighbour().
void addMesh | ( | const polyMesh & | mesh, |
const labelList & | patchMap, | ||
const labelList & | pointZoneMap, | ||
const labelList & | faceZoneMap, | ||
const labelList & | cellZoneMap | ||
) |
Add all points/faces/cells of mesh. Additional offset for patch.
or zone ids.
Definition at line 2276 of file polyTopoChange.C.
References Foam::abort(), polyTopoChange::addCell(), polyTopoChange::addFace(), polyTopoChange::addPoint(), polyMesh::boundaryMesh(), primitiveMesh::cellCentres(), polyMesh::cellZones(), Foam::endl(), polyMesh::faceNeighbour(), polyTopoChange::faceNeighbour(), polyMesh::faceOwner(), polyTopoChange::faceOwner(), polyMesh::faces(), polyTopoChange::faces(), polyMesh::faceZones(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::max(), patchIdentifier::name(), IOobject::name(), primitiveMesh::nCells(), primitiveMesh::nInternalFaces(), primitiveMesh::nPoints(), patchi, pointLabels(), polyMesh::points(), polyMesh::pointZones(), HashTable< T, Key, Hash >::resize(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::setCapacity(), PackedList< nBits >::setCapacity(), polyTopoChange::setCapacity(), List< T >::size(), HashTable< T, Key, Hash >::size(), polyPatch::start(), and WarningInFunction.
Referenced by polyTopoChange::clear(), polyTopoChange::faceNeighbour(), and polyTopoChange::polyTopoChange().
Explicitly pre-size the dynamic storage for expected mesh.
size for if construct-without-mesh
Definition at line 2483 of file polyTopoChange.C.
References HashTable< T, Key, Hash >::resize(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::setCapacity(), PackedList< nBits >::setCapacity(), and HashTable< T, Key, Hash >::size().
Referenced by polyTopoChange::addMesh(), and polyTopoChange::faceNeighbour().
void movePoints | ( | const pointField & | newPoints | ) |
Move all points. Incompatible with other topology changes.
Definition at line 2723 of file polyTopoChange.C.
References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, polyTopoChange::removePoint(), and List< T >::size().
Referenced by polyTopoChange::faceNeighbour().
Foam::label setAction | ( | const topoAction & | action | ) |
For compatibility with polyTopoChange: set topological action.
Definition at line 2515 of file polyTopoChange.C.
References Foam::abort(), polyTopoChange::addCell(), polyTopoChange::addFace(), polyTopoChange::addPoint(), polyRemoveCell::cellID(), polyModifyCell::cellID(), polyRemoveFace::faceID(), polyModifyFace::faceID(), Foam::FatalError, FatalErrorInFunction, polyModifyFace::flipFaceFlux(), polyAddFace::flipFaceFlux(), polyModifyPoint::inCell(), polyAddPoint::inCell(), polyAddCell::masterCellID(), polyAddCell::masterEdgeID(), polyAddFace::masterEdgeID(), polyAddCell::masterFaceID(), polyAddFace::masterFaceID(), polyAddPoint::masterPointID(), polyAddCell::masterPointID(), polyAddFace::masterPointID(), polyRemoveCell::mergeCellID(), polyRemoveFace::mergeFaceID(), polyRemovePoint::mergePointID(), polyTopoChange::modifyCell(), polyTopoChange::modifyFace(), polyTopoChange::modifyPoint(), polyModifyFace::neighbour(), polyAddFace::neighbour(), polyModifyFace::newFace(), polyAddFace::newFace(), polyModifyPoint::newPoint(), polyAddPoint::newPoint(), polyModifyFace::owner(), polyAddFace::owner(), polyModifyFace::patchID(), polyAddFace::patchID(), polyRemovePoint::pointID(), polyModifyPoint::pointID(), polyTopoChange::removeCell(), polyTopoChange::removeFace(), polyModifyCell::removeFromZone(), polyTopoChange::removePoint(), polyModifyFace::zoneFlip(), polyAddFace::zoneFlip(), polyModifyCell::zoneID(), polyModifyPoint::zoneID(), polyAddPoint::zoneID(), polyAddCell::zoneID(), polyModifyFace::zoneID(), and polyAddFace::zoneID().
Referenced by repatchPolyTopoChanger::changeAnchorPoint(), repatchPolyTopoChanger::changePatchID(), polyTopoChange::faceNeighbour(), meshRefinement::mergeBaffles(), polyMeshAdder::mergePoints(), faceEqOp< T, CombineOp >::operator()(), ifEqEqOp< value >::operator()(), fvMeshDistribute::printCoupleInfo(), repatchPolyTopoChanger::setFaceZone(), removeCells::setRefinement(), perfectInterface::setRefinement(), faceCollapser::setRefinement(), removePoints::setRefinement(), boundaryCutter::setRefinement(), combineFaces::setRefinement(), removeFaces::setRefinement(), meshCutAndRemove::setRefinement(), meshCutter::setRefinement(), addPatchCellLayer::setRefinement(), hexRef8::setRefinement(), removePoints::setUnrefinement(), combineFaces::setUnrefinement(), and meshRefinement::zonify().
Foam::label addPoint | ( | const point & | pt, |
const label | masterPointID, | ||
const label | zoneID, | ||
const bool | inCell | ||
) |
Add point. Return new point label.
Notes:
Definition at line 2644 of file polyTopoChange.C.
References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), HashSet< Key, Hash >::insert(), HashTable< T, Key, Hash >::insert(), and polyTopoChange::modifyPoint().
Referenced by polyTopoChange::addMesh(), polyTopoChange::faceNeighbour(), polyTopoChange::setAction(), duplicatePoints::setRefinement(), createShellMesh::setRefinement(), and tetDecomposer::setRefinement().
Modify coordinate.
Notes:
Definition at line 2672 of file polyTopoChange.C.
References Foam::abort(), HashTableCore::end(), Foam::endl(), HashTable< T, Key, Hash >::erase(), Foam::FatalError, FatalErrorInFunction, HashTable< T, Key, Hash >::find(), HashSet< Key, Hash >::insert(), HashTable< T, Key, Hash >::insert(), and polyTopoChange::pointRemoved().
Referenced by polyTopoChange::addPoint(), polyTopoChange::faceNeighbour(), polyTopoChange::setAction(), and edgeCollapser::setRefinement().
Remove/merge point.
Definition at line 2742 of file polyTopoChange.C.
References Foam::abort(), polyTopoChange::addFace(), Foam::endl(), HashTable< T, Key, Hash >::erase(), Foam::FatalError, FatalErrorInFunction, VectorSpace< Vector< scalar >, scalar, 3 >::max, and polyTopoChange::pointRemoved().
Referenced by polyTopoChange::faceNeighbour(), polyMeshAdder::mergePoints(), polyTopoChange::movePoints(), polyTopoChange::setAction(), and edgeCollapser::setRefinement().
Foam::label addFace | ( | const face & | f, |
const label | own, | ||
const label | nei, | ||
const label | masterPointID, | ||
const label | masterEdgeID, | ||
const label | masterFaceID, | ||
const bool | flipFaceFlux, | ||
const label | patchID, | ||
const label | zoneID, | ||
const bool | zoneFlip | ||
) |
Add face to cells. Return new face label.
own,nei<0, zoneID>=0 : add inactive face (to end of face list)
Definition at line 2790 of file polyTopoChange.C.
References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), HashTable< T, Key, Hash >::insert(), and polyTopoChange::modifyFace().
Referenced by polyTopoChange::addMesh(), polyTopoChange::faceNeighbour(), NamedEnum< directionType, 3 >::names(), polyTopoChange::removePoint(), polyTopoChange::setAction(), createShellMesh::setRefinement(), and meshRefinement::splitFaces().
void modifyFace | ( | const face & | f, |
const label | facei, | ||
const label | own, | ||
const label | nei, | ||
const bool | flipFaceFlux, | ||
const label | patchID, | ||
const label | zoneID, | ||
const bool | zoneFlip | ||
) |
Modify vertices or cell of face.
Definition at line 2854 of file polyTopoChange.C.
References HashTableCore::end(), HashTable< T, Key, Hash >::erase(), f(), HashTable< T, Key, Hash >::find(), and HashTable< T, Key, Hash >::insert().
Referenced by polyTopoChange::addFace(), polyTopoChange::faceNeighbour(), NamedEnum< directionType, 3 >::names(), polyTopoChange::setAction(), duplicatePoints::setRefinement(), edgeCollapser::setRefinement(), and meshRefinement::splitFaces().
Remove/merge face.
Definition at line 2899 of file polyTopoChange.C.
References Foam::abort(), polyTopoChange::addCell(), Foam::endl(), HashTable< T, Key, Hash >::erase(), polyTopoChange::faceRemoved(), Foam::FatalError, and FatalErrorInFunction.
Referenced by polyTopoChange::faceNeighbour(), polyTopoChange::setAction(), and edgeCollapser::setRefinement().
Foam::label addCell | ( | const label | masterPointID, |
const label | masterEdgeID, | ||
const label | masterFaceID, | ||
const label | masterCellID, | ||
const label | zoneID | ||
) |
Add cell. Return new cell label.
Definition at line 2943 of file polyTopoChange.C.
References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), HashTable< T, Key, Hash >::insert(), polyTopoChange::modifyCell(), and List< T >::size().
Referenced by polyTopoChange::addMesh(), polyTopoChange::faceNeighbour(), polyTopoChange::removeFace(), polyTopoChange::setAction(), createShellMesh::setRefinement(), and tetDecomposer::setRefinement().
Modify zone of cell.
Definition at line 2980 of file polyTopoChange.C.
Referenced by polyTopoChange::addCell(), polyTopoChange::faceNeighbour(), and polyTopoChange::setAction().
Remove/merge cell.
Definition at line 2989 of file polyTopoChange.C.
References Foam::abort(), polyTopoChange::changeMesh(), Foam::endl(), HashTable< T, Key, Hash >::erase(), Foam::FatalError, FatalErrorInFunction, and List< T >::size().
Referenced by polyTopoChange::faceNeighbour(), polyTopoChange::setAction(), and edgeCollapser::setRefinement().
|
inline |
Explicitly set the number of patches if construct-without-mesh.
used.
Definition at line 53 of file polyTopoChangeI.H.
References nPatches.
Referenced by polyTopoChange::faceNeighbour().
Foam::autoPtr< Foam::mapPolyMesh > changeMesh | ( | polyMesh & | mesh, |
const bool | inflate, | ||
const bool | syncParallel = true , |
||
const bool | orderCells = false , |
||
const bool | orderPoints = false |
||
) |
Inplace changes mesh without change of patches.
Adapts patch start/end and by default does parallel matching. Clears all data. Returns map. inflate = true : keep old mesh points. Put new points into the returned map (preMotionPoints) so we can use inflation. Any points out of nothing (appended points) are vector::zero. inflate = false: set mesh points directly. Empty preMotionPoints in the map. orderCells : whether to order the cells (see bandCompression.H) orderPoints : whether to order the points into internal first followed by boundary points. This is not fully consistent with upper-triangular ordering of points and edges so is only done when explicitly asked for.
Definition at line 3024 of file polyTopoChange.C.
References polyMesh::boundaryMesh(), primitiveMesh::cellVolumes(), polyMesh::cellZones(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::clearStorage(), HashTable< T, Key, Hash >::clearStorage(), PackedList< nBits >::clearStorage(), Foam::endl(), polyMesh::faceZones(), forAll, polyTopoChange::makeMesh(), primitiveMesh::nCells(), newPointi, primitiveMesh::nFaces(), Foam::nl, primitiveMesh::nPoints(), polyMesh::points(), polyMesh::pointZones(), Foam::Pout, polyMesh::resetPrimitives(), List< T >::size(), UPtrList< T >::size(), polyMesh::topoChanging(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::xfer(), Foam::xferMove(), and Foam::Zero.
Referenced by polyMeshFilter::copyMesh(), meshRefinement::createBaffles(), meshRefinement::doRemovePoints(), meshRefinement::doRestorePoints(), meshRefinement::dupNonManifoldPoints(), polyTopoChange::faceNeighbour(), meshRefinement::mergeBaffles(), meshRefinement::mergePatchFacesUndo(), fvMeshDistribute::printCoupleInfo(), dynamicRefineFvMesh::refine(), meshRefinement::refine(), polyTopoChange::removeCell(), repatchPolyTopoChanger::repatch(), meshRefinement::setInstance(), refinementIterator::setRefinement(), meshRefinement::splitFaces(), dynamicRefineFvMesh::unrefine(), and meshRefinement::zonify().
Foam::autoPtr< Foam::mapPolyMesh > makeMesh | ( | autoPtr< fvMesh > & | newMesh, |
const IOobject & | io, | ||
const polyMesh & | mesh, | ||
const bool | syncParallel = true , |
||
const bool | orderCells = false , |
||
const bool | orderPoints = false |
||
) |
Create new mesh with old mesh patches.
Definition at line 3290 of file polyTopoChange.C.
References fvMesh::addFvPatches(), polyMesh::addZones(), polyMesh::boundaryMesh(), primitiveMesh::cellVolumes(), polyMesh::cellZones(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::clearStorage(), HashTable< T, Key, Hash >::clearStorage(), PackedList< nBits >::clearStorage(), IOobject::clone(), Foam::endl(), polyMesh::faceZones(), forAll, Foam::name(), primitiveMesh::nCells(), primitiveMesh::nFaces(), Foam::nl, IOobject::NO_READ, primitiveMesh::nPoints(), patchi, polyMesh::pointZones(), Foam::Pout, IOobject::readOpt(), autoPtr< T >::reset(), UPtrList< T >::size(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::xfer(), and Foam::xferMove().
Referenced by snappyLayerDriver::addLayers(), polyTopoChange::changeMesh(), polyMeshFilter::copyMesh(), polyTopoChange::faceNeighbour(), and fvMeshSubset::setLargeCellSubset().