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
edgeCollapser(const polyMesh &mesh)
Construct from mesh.
A face is a list of labels corresponding to mesh vertices.
labelList pointLabels(nPoints, -1)
A list of keyword definitions, which are a keyword followed by any number of values (e...
static HashSet< label > checkBadFaces(const polyMesh &mesh, const dictionary &meshQualityDict)
Calls motionSmoother::checkMesh and returns a set of bad faces.
Does polyTopoChanges to remove edges. Can remove faces due to edge collapse but can not remove cells ...
label markMergeEdges(const scalar maxCos, const labelList &pointPriority, PackedBoolList &collapseEdge, Map< point > &collapsePointToLocation) const
Mark (in collapseEdge) any edges to merge.
A simple wrapper around bool so that it can be read as a word: true/false, on/off, yes/no, y/n, t/f, or none/any.
void operator=(const edgeCollapser &)=delete
Disallow default bitwise assignment.
label collapseEdge(triSurface &surf, const scalar minLen)
Keep collapsing all edges < minLen.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
An ordered pair of two objects of type <T> with first() and second() elements.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
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.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
ClassName("edgeCollapser")
Runtime type information.
static label checkMeshQuality(const polyMesh &mesh, const dictionary &meshQualityDict, PackedBoolList &isErrorPoint)
Check mesh and mark points on faces in error.
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.
Calculates points shared by more than two processor patches or cyclic patches.
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.
label markSmallEdges(const scalarField &minEdgeLen, const labelList &pointPriority, PackedBoolList &collapseEdge, Map< point > &collapsePointToLocation) const
Mark (in collapseEdge) any edges to collapse.
bool setRefinement(const List< pointEdgeCollapse > &allPointInfo, polyTopoChange &meshMod) const
Play commands into polyTopoChange to create mesh.
Direct mesh changes based on v1.3 polyTopoChange syntax.
const doubleScalar e
Elementary charge.
Mesh consisting of general polyhedral cells.
A subset of mesh faces organised as a primitive patch.
A HashTable to objects of type <T> with a label key.