37 #ifndef edgeCollapser_H
38 #define edgeCollapser_H
88 const scalar guardFraction_;
91 const scalar maxCollapseFaceToPointSideLengthCoeff_;
95 const Switch allowEarlyCollapseToPoint_;
99 const scalar allowEarlyCollapseCoeff_;
119 const vector& collapseAxis,
145 void faceCollapseAxisAndAspectRatio
163 const scalar targetFaceSize,
174 void checkBoundaryPointMergeEdges
177 const label otherPointi,
185 label breakStringsAtEdges
194 void determineDuplicatePointsOnFace
205 label countEdgesOnFace
288 const bool allowCellCollapse =
false
A HashTable to objects of type <T> with a label key.
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
A list of keyword definitions, which are a keyword followed by any number of values (e....
Does polyTopoChanges to remove edges. Can remove faces due to edge collapse but can not remove cells ...
static label checkMeshQuality(const polyMesh &mesh, const dictionary &meshQualityDict, PackedBoolList &isErrorPoint)
Check mesh and mark points on faces in error.
labelPair markSmallSliverFaces(const scalarField &faceFilterFactor, const labelList &pointPriority, PackedBoolList &collapseEdge, Map< point > &collapsePointToLocation) const
Find small faces and sliver faces in the mesh and mark the.
edgeCollapser(const polyMesh &mesh)
Construct from mesh.
void operator=(const edgeCollapser &)=delete
Disallow default bitwise assignment.
label markSmallEdges(const scalarField &minEdgeLen, const labelList &pointPriority, PackedBoolList &collapseEdge, Map< point > &collapsePointToLocation) const
Mark (in collapseEdge) any edges to collapse.
labelPair markFaceZoneEdges(const faceZone &fZone, const scalarField &faceFilterFactor, const labelList &pointPriority, PackedBoolList &collapseEdge, Map< point > &collapsePointToLocation) const
Marks edges in the faceZone indirectPatchFaces for collapse.
bool setRefinement(const List< pointEdgeCollapse > &allPointInfo, polyTopoChange &meshMod) const
Play commands into polyTopoChange to create mesh.
void consistentCollapse(const globalIndex &globalPoints, const labelList &pointPriority, const Map< point > &collapsePointToLocation, PackedBoolList &collapseEdge, List< pointEdgeCollapse > &allPointInfo, const bool allowCellCollapse=false) const
Ensure that the collapse is parallel consistent and update.
label markMergeEdges(const scalar maxCos, const labelList &pointPriority, PackedBoolList &collapseEdge, Map< point > &collapsePointToLocation) const
Mark (in collapseEdge) any edges to merge.
ClassName("edgeCollapser")
Runtime type information.
static labelHashSet checkBadFaces(const polyMesh &mesh, const dictionary &meshQualityDict)
Calls meshCheck::checkMesh and returns a set of bad faces.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
A subset of mesh faces organised as a primitive patch.
A face is a list of labels corresponding to mesh vertices.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
Calculates points shared by more than two processor patches or cyclic patches.
Mesh consisting of general polyhedral cells.
Direct mesh changes based on v1.3 polyTopoChange syntax.
label collapseEdge(triSurface &surf, const scalar minLen)
Keep collapsing all edges < minLen.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
labelList pointLabels(nPoints, -1)
Basic run-time type information using word as the type's name. Used to enhance the standard RTTI to c...