74#ifndef polyTopoChange_H
75#define polyTopoChange_H
228 static void renumberKey
242 static void renumberReverseMap
249 static void renumberCompact
271 static void getMergeSets
279 bool hasValidPoints(
const face&
f)
const;
298 const label nActiveFaces,
306 const label nActiveFaces,
320 const label nActiveFaces,
330 void reorderCompactFaces
343 const bool orderCells,
344 const bool orderPoints,
345 label& nInternalPoints,
355 const bool internalFacesOnly
359 void calcPatchPointMap
367 void calcFaceInflationMaps
375 void calcCellInflationMaps
393 void calcFaceZonePointMap
404 void reorderCoupledFaces
406 const bool syncParallel,
414 void compactAndReorder
418 const bool syncParallel,
419 const bool orderCells,
420 const bool orderPoints,
421 label& nInternalPoints,
483 return faceNeighbour_;
541 const label masterPointID,
553 const label masterPointID,
568 const bool multiZone =
false
584 void removePoint(
const label pointi,
const label mergePointi);
600 const label masterPointID,
601 const label masterEdgeID,
602 const label masterFaceID,
603 const bool flipFaceFlux,
616 const label masterPointID,
617 const label masterEdgeID,
618 const label masterFaceID,
619 const bool flipFaceFlux,
632 const bool flipFaceFlux,
636 const bool multiZone =
false
646 const bool flipFaceFlux,
653 void removeFace(
const label facei,
const label mergeFacei);
666 const label masterPointID,
667 const label masterEdgeID,
668 const label masterFaceID,
669 const label masterCellID,
676 const label masterPointID,
677 const label masterEdgeID,
678 const label masterFaceID,
679 const label masterCellID,
688 const bool multiZone =
false
695 void removeCell(
const label celli,
const label mergeCelli);
725 const bool syncParallel =
true,
726 const bool orderCells =
false,
727 const bool orderPoints =
false
735 const bool syncParallel =
true,
736 const bool orderCells =
false,
737 const bool orderPoints =
false
749 const bool syncParallel =
true,
750 const bool orderCells =
false,
751 const bool orderPoints =
false
762 const bool syncParallel =
true,
763 const bool orderCells =
false,
764 const bool orderPoints =
false
labelList faceLabels(nFaceLabels)
A packed storage of objects of type <T> using an offset table for access.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
A HashTable to objects of type <T> with a label key.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A face is a list of labels corresponding to mesh vertices.
A class for handling file names.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
An objectMap is a pair of labels defining the mapping of an object from another object,...
A polyBoundaryMesh is a polyPatch list with registered IO, a reference to the associated polyMesh,...
Mesh consisting of general polyhedral cells.
A patch is a list of labels that address the faces in the global face list.
void movePoints(const pointField &newPoints)
Move all points. Incompatible with other topology changes.
void shrink()
Shrink storage (does not remove any elements; just compacts dynamic lists.
bool cellRemoved(const label celli) const
Is cell removed? Considered removed if the cellMap is -2.
label faceZones(const label facei, DynamicList< label > &zones, DynamicList< bool > &flips) const
Get current faceZone(s). Return number of zones.
const DynamicList< face > & faces() const
polyTopoChange(const label nPatches, const bool strict=true)
Construct without mesh. Either specify nPatches or use setNumPatches before trying to make a mesh (ma...
label addPoint(const point &pt, const label masterPointID, const label zoneID, const bool inCell)
Add point. Return new point label.
void removeCell(const label celli, const label mergeCelli)
Remove/merge cell.
void modifyCell(const label celli, const label zoneID, const bool multiZone=false)
Modify zone of cell. Optionally add to zone.
bool pointRemoved(const label pointi) const
Is point removed? Considered removed if point is GREAT.
label setAction(const topoAction &action)
For compatibility with polyTopoChange: set topological action.
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, const bool multiZone=false)
Modify vertices or cell of face.
label pointZones(const label pointi, DynamicList< label > &zones) const
Get current cellZone(s). Return number of zones.
const DynamicList< label > & region() const
void setNumPatches(const label nPatches)
Explicitly set the number of patches if construct-without-mesh used.
void setCapacity(const label nPoints, const label nFaces, const label nCells)
Explicitly pre-size the dynamic storage for expected mesh size for if construct-without-mesh.
label addCell(const label masterPointID, const label masterEdgeID, const label masterFaceID, const label masterCellID, const label zoneID)
Add cell. Return new cell label.
bool faceRemoved(const label facei) const
Is face removed? Considered removed if face is empty.
void addMesh(const polyMesh &mesh, const labelUList &patchMap, const labelUList &pointZoneMap, const labelUList &faceZoneMap, const labelUList &cellZoneMap)
Add all points/faces/cells of mesh. Additional offset for patch or zone ids.
void removePoint(const label pointi, const label mergePointi)
Remove/merge point.
void removeFace(const label facei, const label mergeFacei)
Remove/merge face.
void modifyPoint(const label pointi, const point &pt, const label zoneID, const bool inCell, const bool multiZone=false)
Modify coordinate.
const DynamicList< label > & faceOwner() const
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.
autoPtr< mapPolyMesh > changeMesh(polyMesh &mesh, const labelUList &patchMap, const bool inflate, const bool syncParallel=true, const bool orderCells=false, const bool orderPoints=false)
Inplace changes mesh without change of patches.
ClassName("polyTopoChange")
Runtime type information.
autoPtr< mapPolyMesh > makeMesh(autoPtr< Type > &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. Additional dictionaries.
const DynamicList< point > & points() const
Points. Shrunk after constructing mesh (or calling of compact()).
void clear()
Clear all storage.
const DynamicList< label > & faceNeighbour() const
autoPtr< mapPolyMesh > makeMesh(autoPtr< Type > &newMesh, const IOobject &io, const polyMesh &mesh, const labelUList &patchMap, const bool syncParallel=true, const bool orderCells=false, const bool orderPoints=false)
Create new mesh with old mesh patches. Additional dictionaries.
label cellZones(const label celli, DynamicList< label > &zones) const
Get current cellZone(s). Return number of zones.
Cell-face mesh analysis engine.
A virtual base class for topological actions.
#define ClassName(TypeNameString)
Add typeName information from argument TypeNameString to a class.
OBJstream os(runTime.globalPath()/outputName)
const labelIOList & zoneIDs
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
HashSet< label, Hash< label > > labelHashSet
A HashSet of labels, uses label hasher.
vector point
Point is a vector.
vectorField pointField
pointField is a vectorField.
UList< label > labelUList
A UList of labels.