Loading...
Searching...
No Matches
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...

#include <edgeCollapser.H>

Public Types

enum  collapseType { noCollapse = 0 , toPoint = 1 , toEdge = 2 }

Public Member Functions

 ClassName ("edgeCollapser")
 Runtime type information.
 edgeCollapser (const polyMesh &mesh)
 Construct from mesh.
 edgeCollapser (const polyMesh &mesh, const dictionary &dict)
 Construct from mesh and dict.
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.
bool setRefinement (const List< pointEdgeCollapse > &allPointInfo, polyTopoChange &meshMod) const
 Play commands into polyTopoChange to create mesh.
label markSmallEdges (const scalarField &minEdgeLen, const labelList &pointPriority, bitSet &collapseEdge, Map< point > &collapsePointToLocation) const
 Mark (in collapseEdge) any edges to collapse.
label markMergeEdges (const scalar maxCos, const labelList &pointPriority, bitSet &collapseEdge, Map< point > &collapsePointToLocation) const
 Mark (in collapseEdge) any edges to merge.
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.
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.

Static Public Member Functions

static labelHashSet checkBadFaces (const polyMesh &mesh, const dictionary &meshQualityDict)
 Calls motionSmoother::checkMesh and returns a set of bad faces.
static label checkMeshQuality (const polyMesh &mesh, const dictionary &meshQualityDict, bitSet &isErrorPoint)
 Check mesh and mark points on faces in error.

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 64 of file edgeCollapser.H.

Member Enumeration Documentation

◆ collapseType

Enumerator
noCollapse 
toPoint 
toEdge 

Definition at line 69 of file edgeCollapser.H.

Constructor & Destructor Documentation

◆ edgeCollapser() [1/2]

edgeCollapser ( const polyMesh & mesh)
explicit

Construct from mesh.

Definition at line 1191 of file edgeCollapser.C.

References mesh.

◆ edgeCollapser() [2/2]

edgeCollapser ( const polyMesh & mesh,
const dictionary & dict )

Construct from mesh and dict.

Definition at line 1201 of file edgeCollapser.C.

References dict, Foam::endl(), Foam::Info, mesh, and Foam::nl.

Here is the call graph for this function:

Member Function Documentation

◆ ClassName()

ClassName ( "edgeCollapser" )

Runtime type information.

References collapseEdge(), dict, and mesh.

Here is the call graph for this function:

◆ checkBadFaces()

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

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

Definition at line 43 of file edgeCollapser.C.

References DynamicList< T, SizeMin >::append(), motionSmootherAlgo::checkMesh(), Foam::endl(), forAll, Foam::Info, Foam::mag(), and mesh.

Referenced by checkMeshQuality().

Here is the call graph for this function:
Here is the caller 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 79 of file edgeCollapser.C.

References checkBadFaces(), f(), mesh, Foam::returnReduce(), bitSet::set(), HashTable< T, Key, Hash >::size(), and syncTools::syncPointList().

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

References Foam::abort(), cells, collapseEdge(), Foam::endl(), f(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::Info, Foam::nl, Foam::reduce(), Foam::returnReduce(), bitSet::set(), UList< T >::size(), syncTools::syncEdgeList(), syncTools::syncPointList(), bitSet::test(), and bitSet::unset().

Here is the call graph for this function:

◆ setRefinement()

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

References Foam::average(), collapseEdge(), e, forAll, points, and HashTable< T, Key, Hash >::set().

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

References collapseEdge(), removePoints::countPointUsage(), forAll, Foam::mag(), points, and UList< T >::size().

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

References Foam::abort(), collapseEdge(), f(), Foam::FatalError, FatalErrorInFunction, forAll, noCollapse, toEdge, and 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 1991 of file edgeCollapser.C.

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

Here is the call graph for this function:

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