edgeCollapser Class Reference

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...
 

Detailed Description

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.

Source files

Definition at line 68 of file edgeCollapser.H.

Member Enumeration Documentation

◆ collapseType

Enumerator
noCollapse 
toPoint 
toEdge 

Definition at line 73 of file edgeCollapser.H.

Constructor & Destructor Documentation

◆ edgeCollapser() [1/2]

edgeCollapser ( const polyMesh mesh)
explicit

Construct from mesh.

Definition at line 1198 of file edgeCollapser.C.

◆ edgeCollapser() [2/2]

edgeCollapser ( const polyMesh mesh,
const dictionary dict 
)

Construct from mesh and dict.

Definition at line 1209 of file edgeCollapser.C.

References Foam::expressions::patchExpr::debug, Foam::endl(), Foam::Info, and Foam::nl.

Here is the call graph for this function:

Member Function Documentation

◆ ClassName()

ClassName ( "edgeCollapser"  )

Runtime type information.

◆ checkBadFaces()

Foam::labelHashSet checkBadFaces ( const polyMesh mesh,
const dictionary meshQualityDict 
)
static

Calls motionSmoother::checkMesh and returns a set of bad faces.

Definition at line 51 of file edgeCollapser.C.

References Foam::endl(), forAll, Foam::Info, Foam::mag(), and mesh.

Here is the call graph for this function:

◆ checkMeshQuality()

Foam::label checkMeshQuality ( const polyMesh mesh,
const dictionary meshQualityDict,
bitSet isErrorPoint 
)
static

Check mesh and mark points on faces in error.

Returns boolList with points in error set

Definition at line 87 of file edgeCollapser.C.

References f(), mesh, Foam::returnReduce(), and bitSet::set().

Referenced by polyMeshFilter::filterEdges().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ consistentCollapse()

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 1610 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(), syncTools::syncEdgeList(), and syncTools::syncPointList().

Here is the call graph for this function:

◆ setRefinement()

bool setRefinement ( const List< pointEdgeCollapse > &  allPointInfo,
polyTopoChange meshMod 
) const

◆ markSmallEdges()

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 1800 of file edgeCollapser.C.

References Foam::average(), collapseEdge(), Foam::constant::electromagnetic::e, forAll, and points.

Here is the call graph for this function:

◆ markMergeEdges()

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 1851 of file edgeCollapser.C.

References collapseEdge(), removePoints::countPointUsage(), forAll, Foam::mag(), and points.

Here is the call graph for this function:

◆ markSmallSliverFaces()

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 1938 of file edgeCollapser.C.

References Foam::abort(), collapseEdge(), f(), Foam::FatalError, FatalErrorInFunction, forAll, and Foam::toPoint().

Here is the call graph for this function:

◆ markFaceZoneEdges()

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 1999 of file edgeCollapser.C.

References Foam::abort(), collapseEdge(), f(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::toPoint(), and faceZone::whichFace().

Here is the call graph for this function:

The documentation for this class was generated from the following files: