Does polyTopoChanges to remove edges. Can remove faces due to edge collapse but can not remove cells due to face removal! Also removes unused points. More...
Public Types | |
enum | collapseType { noCollapse = 0, toPoint = 1, toEdge = 2 } |
Public Member Functions | |
ClassName ("edgeCollapser") | |
Runtime type information. More... | |
edgeCollapser (const polyMesh &mesh) | |
Construct from mesh. More... | |
edgeCollapser (const polyMesh &mesh, const dictionary &dict) | |
Construct from mesh and dict. More... | |
void | consistentCollapse (const globalIndex &globalPoints, const labelList &pointPriority, const Map< point > &collapsePointToLocation, bitSet &collapseEdge, List< pointEdgeCollapse > &allPointInfo, const bool allowCellCollapse=false) const |
Ensure that the collapse is parallel consistent and update. More... | |
bool | setRefinement (const List< pointEdgeCollapse > &allPointInfo, polyTopoChange &meshMod) const |
Play commands into polyTopoChange to create mesh. More... | |
label | markSmallEdges (const scalarField &minEdgeLen, const labelList &pointPriority, bitSet &collapseEdge, Map< point > &collapsePointToLocation) const |
Mark (in collapseEdge) any edges to collapse. More... | |
label | markMergeEdges (const scalar maxCos, const labelList &pointPriority, bitSet &collapseEdge, Map< point > &collapsePointToLocation) const |
Mark (in collapseEdge) any edges to merge. More... | |
labelPair | markSmallSliverFaces (const scalarField &faceFilterFactor, const labelList &pointPriority, bitSet &collapseEdge, Map< point > &collapsePointToLocation) const |
Find small faces and sliver faces in the mesh and mark the. More... | |
labelPair | markFaceZoneEdges (const faceZone &fZone, const scalarField &faceFilterFactor, const labelList &pointPriority, bitSet &collapseEdge, Map< point > &collapsePointToLocation) const |
Marks edges in the faceZone indirectPatchFaces for collapse. More... | |
Static Public Member Functions | |
static labelHashSet | checkBadFaces (const polyMesh &mesh, const dictionary &meshQualityDict) |
Calls motionSmoother::checkMesh and returns a set of bad faces. More... | |
static label | checkMeshQuality (const polyMesh &mesh, const dictionary &meshQualityDict, bitSet &isErrorPoint) |
Check mesh and mark points on faces in error. More... | |
Does polyTopoChanges to remove edges. Can remove faces due to edge collapse but can not remove cells due to face removal! Also removes unused points.
Definition at line 64 of file edgeCollapser.H.
enum collapseType |
Enumerator | |
---|---|
noCollapse | |
toPoint | |
toEdge |
Definition at line 69 of file edgeCollapser.H.
|
explicit |
Construct from mesh.
Definition at line 1191 of file edgeCollapser.C.
edgeCollapser | ( | const polyMesh & | mesh, |
const dictionary & | dict | ||
) |
Construct from mesh and dict.
Definition at line 1202 of file edgeCollapser.C.
References Foam::ensightOutput::debug, Foam::endl(), Foam::Info, and Foam::nl.
ClassName | ( | "edgeCollapser" | ) |
Runtime type information.
|
static |
Calls motionSmoother::checkMesh and returns a set of bad faces.
Definition at line 44 of file edgeCollapser.C.
References Foam::endl(), forAll, Foam::Info, Foam::mag(), and mesh.
|
static |
Check mesh and mark points on faces in error.
Returns boolList with points in error set
Definition at line 80 of file edgeCollapser.C.
References f(), mesh, returnReduce(), bitSet::set(), and HashTable< T, Key, Hash >::size().
Referenced by polyMeshFilter::filterEdges().
void consistentCollapse | ( | const globalIndex & | globalPoints, |
const labelList & | pointPriority, | ||
const Map< point > & | collapsePointToLocation, | ||
bitSet & | collapseEdge, | ||
List< pointEdgeCollapse > & | allPointInfo, | ||
const bool | allowCellCollapse = false |
||
) | const |
Ensure that the collapse is parallel consistent and update.
allPointInfo. Returns a list of edge collapses that is consistent across coupled boundaries and a list of pointEdgeCollapses.
Definition at line 1603 of file edgeCollapser.C.
References Foam::abort(), cells, collapseEdge(), Foam::endl(), f(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::Info, Foam::nl, Foam::reduce(), Foam::returnReduce(), List< T >::set(), UList< T >::size(), syncTools::syncEdgeList(), and syncTools::syncPointList().
bool setRefinement | ( | const List< pointEdgeCollapse > & | allPointInfo, |
polyTopoChange & | meshMod | ||
) | const |
Play commands into polyTopoChange to create mesh.
Return true if anything changed.
Definition at line 1242 of file edgeCollapser.C.
References List< T >::append(), cells, pointEdgeCollapse::collapseIndex(), Foam::decrIndent(), Foam::endl(), f(), faceZone::flipMap(), forAll, forAllConstIters(), Foam::incrIndent(), Foam::indent(), Foam::Info, polyTopoChange::modifyFace(), polyTopoChange::modifyPoint(), Foam::nl, nPoints, patchID, Foam::Pout, Foam::reduce(), polyTopoChange::removeCell(), polyTopoChange::removeFace(), polyTopoChange::removePoint(), UList< T >::size(), faceZone::whichFace(), and ZoneMesh< ZoneType, MeshType >::whichZone().
Foam::label markSmallEdges | ( | const scalarField & | minEdgeLen, |
const labelList & | pointPriority, | ||
bitSet & | collapseEdge, | ||
Map< point > & | collapsePointToLocation | ||
) | const |
Mark (in collapseEdge) any edges to collapse.
Definition at line 1793 of file edgeCollapser.C.
References Foam::average(), collapseEdge(), Foam::constant::electromagnetic::e, forAll, points, and HashTable< T, label, Hash< label > >::set().
Foam::label markMergeEdges | ( | const scalar | maxCos, |
const labelList & | pointPriority, | ||
bitSet & | collapseEdge, | ||
Map< point > & | collapsePointToLocation | ||
) | const |
Mark (in collapseEdge) any edges to merge.
Definition at line 1844 of file edgeCollapser.C.
References collapseEdge(), removePoints::countPointUsage(), forAll, Foam::mag(), points, and UList< T >::size().
Foam::labelPair markSmallSliverFaces | ( | const scalarField & | faceFilterFactor, |
const labelList & | pointPriority, | ||
bitSet & | collapseEdge, | ||
Map< point > & | collapsePointToLocation | ||
) | const |
Find small faces and sliver faces in the mesh and mark the.
edges that need to be collapsed in order to remove these faces. Also returns a map of new locations for points that will move as a result of the collapse. Use in conjunction with edgeCollapser to synchronise the collapses and modify the mesh
Definition at line 1931 of file edgeCollapser.C.
References Foam::abort(), collapseEdge(), f(), Foam::FatalError, FatalErrorInFunction, forAll, and Foam::toPoint().
Foam::labelPair markFaceZoneEdges | ( | const faceZone & | fZone, |
const scalarField & | faceFilterFactor, | ||
const labelList & | pointPriority, | ||
bitSet & | collapseEdge, | ||
Map< point > & | collapsePointToLocation | ||
) | const |
Marks edges in the faceZone indirectPatchFaces for collapse.
Definition at line 1992 of file edgeCollapser.C.
References Foam::abort(), collapseEdge(), f(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::toPoint(), and faceZone::whichFace().