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... | |
edgeCollapser (const edgeCollapser &)=delete | |
Disallow default bitwise copy construction. More... | |
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. 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, PackedBoolList &collapseEdge, Map< point > &collapsePointToLocation) const |
Mark (in collapseEdge) any edges to collapse. More... | |
label | markMergeEdges (const scalar maxCos, const labelList &pointPriority, PackedBoolList &collapseEdge, Map< point > &collapsePointToLocation) const |
Mark (in collapseEdge) any edges to merge. More... | |
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. More... | |
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. More... | |
void | operator= (const edgeCollapser &)=delete |
Disallow default bitwise assignment. More... | |
Static Public Member Functions | |
static HashSet< label > | 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, PackedBoolList &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 66 of file edgeCollapser.H.
enum collapseType |
Enumerator | |
---|---|
noCollapse | |
toPoint | |
toEdge |
Definition at line 71 of file edgeCollapser.H.
edgeCollapser | ( | const polyMesh & | mesh | ) |
Construct from mesh.
Definition at line 1201 of file edgeCollapser.C.
edgeCollapser | ( | const polyMesh & | mesh, |
const dictionary & | dict | ||
) |
Construct from mesh and dict.
Definition at line 1212 of file edgeCollapser.C.
References Foam::endl(), Foam::Info, Foam::nl, and edgeCollapser::setRefinement().
|
delete |
Disallow default bitwise copy construction.
ClassName | ( | "edgeCollapser" | ) |
Runtime type information.
|
static |
Calls motionSmoother::checkMesh and returns a set of bad faces.
Definition at line 46 of file edgeCollapser.C.
References motionSmootherAlgo::checkMesh(), edgeCollapser::checkMeshQuality(), Foam::endl(), primitiveMesh::faceAreas(), forAll, Foam::Info, Foam::mag(), and primitiveMesh::nFaces().
Referenced by edgeCollapser::checkMeshQuality().
|
static |
Check mesh and mark points on faces in error.
Returns boolList with points in error set
Definition at line 82 of file edgeCollapser.C.
References Foam::abort(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), face::centre(), edgeCollapser::checkBadFaces(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::clear(), List< T >::clear(), HashTable< T, Key, Hash >::clear(), collapseEdge(), polyPatch::coupled(), Foam::det(), Foam::e, face::edges(), Foam::eigenValues(), Foam::eigenVectors(), UList< T >::empty(), edge::end(), Foam::endl(), f(), polyPatch::faceCells(), polyMesh::faces(), Foam::FatalError, FatalErrorInFunction, UList< T >::fcIndex(), Foam::findIndex(), UList< T >::first(), forAll, forAllConstIter(), HashTable< T, Key, Hash >::found(), HashTable< T, label, Hash< label > >::found(), face::inertia(), Foam::inplaceReorder(), HashSet< Key, Hash >::insert(), Foam::invert(), Foam::labelMax, Foam::labelMin, UList< T >::last(), Foam::longestEdge(), face::mag(), Foam::mag(), Foam::magSqr(), Foam::max(), newPointi, edge::otherVertex(), patches, patchi, pointLabels(), points, Foam::pow(), face::prevLabel(), Foam::returnReduce(), HashTable< T, label, Hash< label > >::set(), List< T >::setSize(), List< T >::size(), VectorSpace< Form, Cmpt, Ncmpts >::size(), HashTable< T, Key, Hash >::size(), UList< T >::size(), Foam::sortedOrder(), Foam::sqr(), Foam::sqrt(), edge::start(), polyPatch::start(), syncTools::swapBoundaryFaceList(), syncTools::syncPointList(), globalIndex::toGlobal(), Foam::toPoint(), WarningInFunction, Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Foam::Zero.
Referenced by edgeCollapser::checkBadFaces(), polyMeshFilter::copyMesh(), and polyMeshFilter::filterEdges().
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.
allPointInfo. Returns a list of edge collapses that is consistent across coupled boundaries and a list of pointEdgeCollapses.
Definition at line 1624 of file edgeCollapser.C.
References Foam::abort(), cells, primitiveMesh::cells(), primitiveMesh::edges(), Foam::endl(), primitiveMesh::faceEdges(), polyMesh::faces(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::Info, edgeCollapser::markSmallEdges(), primitiveMesh::nEdges(), primitiveMesh::nFaces(), Foam::nl, primitiveMesh::nPoints(), primitiveMesh::pointEdges(), Foam::reduce(), Foam::returnReduce(), List< T >::size(), syncTools::syncEdgeList(), and syncTools::syncPointList().
Referenced by edgeCollapser::setRefinement().
bool setRefinement | ( | const List< pointEdgeCollapse > & | allPointInfo, |
polyTopoChange & | meshMod | ||
) | const |
Play commands into polyTopoChange to create mesh.
Return true if anything changed.
Definition at line 1252 of file edgeCollapser.C.
References List< T >::append(), polyMesh::boundaryMesh(), cells, primitiveMesh::cells(), pointEdgeCollapse::collapseIndex(), edgeCollapser::consistentCollapse(), Foam::decrIndent(), HashTableCore::end(), Foam::endl(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), polyMesh::faces(), polyMesh::faceZones(), HashTable< T, Key, Hash >::find(), faceZone::flipMap(), forAll, forAllConstIter(), Foam::incrIndent(), Foam::indent(), Foam::Info, HashTable< T, label, Hash< label > >::insert(), primitiveMesh::isInternalFace(), polyTopoChange::modifyFace(), polyTopoChange::modifyPoint(), primitiveMesh::nCells(), primitiveMesh::nFaces(), Foam::nl, nPoints, primitiveMesh::nPoints(), primitiveMesh::pointFaces(), polyMesh::pointZones(), Foam::Pout, Foam::reduce(), polyTopoChange::removeCell(), polyTopoChange::removeFace(), polyTopoChange::removePoint(), List< T >::size(), faceZone::whichFace(), polyBoundaryMesh::whichPatch(), and ZoneMesh< ZoneType, MeshType >::whichZone().
Referenced by edgeCollapser::edgeCollapser().
Foam::label markSmallEdges | ( | const scalarField & | minEdgeLen, |
const labelList & | pointPriority, | ||
PackedBoolList & | collapseEdge, | ||
Map< point > & | collapsePointToLocation | ||
) | const |
Mark (in collapseEdge) any edges to collapse.
Definition at line 1799 of file edgeCollapser.C.
References Foam::average(), primitiveMesh::edges(), edge::end(), forAll, edge::mag(), edgeCollapser::markMergeEdges(), points, polyMesh::points(), HashTable< T, label, Hash< label > >::set(), and edge::start().
Referenced by edgeCollapser::consistentCollapse().
Foam::label markMergeEdges | ( | const scalar | maxCos, |
const labelList & | pointPriority, | ||
PackedBoolList & | collapseEdge, | ||
Map< point > & | collapsePointToLocation | ||
) | const |
Mark (in collapseEdge) any edges to merge.
Definition at line 1851 of file edgeCollapser.C.
References removePoints::countPointUsage(), primitiveMesh::edges(), forAll, Foam::mag(), edgeCollapser::markSmallSliverFaces(), primitiveMesh::pointEdges(), points, polyMesh::points(), and List< T >::size().
Referenced by edgeCollapser::markSmallEdges().
Foam::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.
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 conjunctions with edgeCollapser to synchronise the collapses and modify the mesh
Definition at line 1938 of file edgeCollapser.C.
References Foam::abort(), polyMesh::faces(), Foam::FatalError, FatalErrorInFunction, forAll, edgeCollapser::markFaceZoneEdges(), edgeCollapser::noCollapse, edgeCollapser::toEdge, and edgeCollapser::toPoint.
Referenced by edgeCollapser::markMergeEdges().
Foam::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.
Definition at line 1999 of file edgeCollapser.C.
References Foam::abort(), polyMesh::faces(), Foam::FatalError, FatalErrorInFunction, forAll, edgeCollapser::noCollapse, edgeCollapser::toEdge, edgeCollapser::toPoint, and faceZone::whichFace().
Referenced by edgeCollapser::markSmallSliverFaces().
|
delete |
Disallow default bitwise assignment.