Collection of static functions to do various simple mesh related things. More...
Collection of static functions to do various simple mesh related things.
Functions | |
bool | visNormal (const vector &n, const vectorField &faceNormals, const labelList &faceLabels) |
Check if n is in same direction as normals of all faceLabels. | |
vectorField | calcBoxPointNormals (const primitivePatch &pp) |
Calculate point normals on a 'box' mesh (all edges aligned with. | |
vector | normEdgeVec (const primitiveMesh &, const label edgeI) |
Normalized edge vector. | |
void | writeOBJ (Ostream &os, const point &pt) |
Write obj representation of point. | |
void | writeOBJ (Ostream &os, const faceList &, const pointField &, const labelList &faceLabels) |
Write obj representation of faces subset. | |
void | writeOBJ (Ostream &os, const faceList &, const pointField &) |
Write obj representation of faces. | |
void | writeOBJ (Ostream &os, const cellList &, const faceList &, const pointField &, const labelList &cellLabels) |
Write obj representation of cell subset. | |
bool | edgeOnCell (const primitiveMesh &, const label cellI, const label edgeI) |
Is edge used by cell. | |
bool | edgeOnFace (const primitiveMesh &, const label faceI, const label edgeI) |
Is edge used by face. | |
bool | faceOnCell (const primitiveMesh &, const label cellI, const label faceI) |
Is face used by cell. | |
label | findEdge (const edgeList &edges, const labelList &candidates, const label v0, const label v1) |
Return edge among candidates that uses the two vertices. | |
label | findEdge (const primitiveMesh &, const label v0, const label v1) |
Return edge between two vertices. Returns -1 if no edge. | |
label | getSharedEdge (const primitiveMesh &, const label f0, const label f1) |
Return edge shared by two faces. Throws error if no edge found. | |
label | getSharedFace (const primitiveMesh &, const label cell0, const label cell1) |
Return face shared by two cells. Throws error if none found. | |
void | getEdgeFaces (const primitiveMesh &, const label cellI, const label edgeI, label &face0, label &face1) |
Get faces on cell using edgeI. Throws error if no two found. | |
label | otherEdge (const primitiveMesh &, const labelList &edgeLabels, const label edgeI, const label vertI) |
Return label of other edge (out of candidates edgeLabels) | |
label | otherFace (const primitiveMesh &, const label cellI, const label faceI, const label edgeI) |
Return face on cell using edgeI but not faceI. Throws error. | |
label | otherCell (const primitiveMesh &, const label cellI, const label faceI) |
Return cell on other side of face. Throws error. | |
label | walkFace (const primitiveMesh &, const label faceI, const label startEdgeI, const label startVertI, const label nEdges) |
Returns label of edge nEdges away from startEdge (in the direction. | |
void | constrainToMeshCentre (const polyMesh &mesh, point &pt) |
Set the constrained components of position to mesh centre. | |
void | constrainToMeshCentre (const polyMesh &mesh, pointField &pt) |
void | constrainDirection (const polyMesh &mesh, const Vector< label > &dirs, vector &d) |
Set the constrained components of directions/velocity to zero. | |
void | constrainDirection (const polyMesh &mesh, const Vector< label > &dirs, vectorField &d) |
void | getParallelEdges (const primitiveMesh &, const label cellI, const label e0, label &, label &, label &) |
Given edge on hex find other 'parallel', non-connected edges. | |
vector | edgeToCutDir (const primitiveMesh &, const label cellI, const label edgeI) |
Given edge on hex find all 'parallel' (i.e. non-connected) | |
label | cutDirToEdge (const primitiveMesh &, const label cellI, const vector &cutDir) |
Reverse of edgeToCutDir: given direction find edge bundle and. |
Variables | |
static const label | mXmYmZ = 0 |
static const label | pXmYmZ = 1 |
static const label | mXpYmZ = 2 |
static const label | pXpYmZ = 3 |
static const label | mXmYpZ = 4 |
static const label | pXmYpZ = 5 |
static const label | mXpYpZ = 6 |
static const label | pXpYpZ = 7 |
static const label | mXmYmZMask = 1 << mXmYmZ |
static const label | pXmYmZMask = 1 << pXmYmZ |
static const label | mXpYmZMask = 1 << mXpYmZ |
static const label | pXpYmZMask = 1 << pXpYmZ |
static const label | mXmYpZMask = 1 << mXmYpZ |
static const label | pXmYpZMask = 1 << pXmYpZ |
static const label | mXpYpZMask = 1 << mXpYpZ |
static const label | pXpYpZMask = 1 << pXpYpZ |
bool Foam::meshTools::visNormal | ( | const vector & | n, |
const vectorField & | faceNormals, | ||
const labelList & | faceLabels | ||
) |
Check if n is in same direction as normals of all faceLabels.
Referenced by calcBoxPointNormals().
Foam::vectorField calcBoxPointNormals | ( | const primitivePatch & | pp | ) |
Calculate point normals on a 'box' mesh (all edges aligned with.
coordinate axes)
Definition at line 53 of file meshTools.C.
References Foam::endl(), PrimitivePatch< Face, FaceList, PointField, PointType >::faceNormals(), forAll, Foam::mag(), PrimitivePatch< Face, FaceList, PointField, PointType >::meshPoints(), mXmYmZ, mXmYmZMask, mXmYpZ, mXmYpZMask, mXpYmZ, mXpYmZMask, mXpYpZ, mXpYpZMask, Foam::nl, PrimitivePatch< Face, FaceList, PointField, PointType >::nPoints(), pFaces, PrimitivePatch< Face, FaceList, PointField, PointType >::pointFaces(), PrimitivePatch< Face, FaceList, PointField, PointType >::pointNormals(), PrimitivePatch< Face, FaceList, PointField, PointType >::points(), pXmYmZ, pXmYmZMask, pXmYpZ, pXmYpZMask, pXpYmZ, pXpYmZMask, pXpYpZ, pXpYpZMask, visNormal(), WarningIn, Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Foam::vector normEdgeVec | ( | const primitiveMesh & | mesh, |
const label | edgeI | ||
) |
Normalized edge vector.
Definition at line 195 of file meshTools.C.
References primitiveMesh::edges(), Foam::mag(), and primitiveMesh::points().
Referenced by edgeToCutDir(), and cellLooper::getMisAlignedEdge().
void writeOBJ | ( | Ostream & | os, |
const point & | pt | ||
) |
Write obj representation of point.
Definition at line 209 of file meshTools.C.
References Foam::endl(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Referenced by polyDualMesh::calcFeatures(), hexCellLooper::cut(), meshRefinement::dumpIntersections(), edgeSurface::edgeSurface(), processorPolyPatch::initOrder(), surfaceFeatures::nearestEdges(), surfaceFeatures::nearestSamples(), processorPolyPatch::order(), cyclicPolyPatch::order(), motionSmoother::setDisplacement(), duplicatePoints::setRefinement(), refinementIterator::setRefinement(), faceCollapser::setRefinement(), removeFaces::setRefinement(), hexRef8::setRefinement(), surfaceIntersection::surfaceIntersection(), cellCuts::writeCellOBJ(), coupledPolyPatch::writeOBJ(), enrichedPatch::writeOBJ(), surfaceFeatures::writeObj(), and cellCuts::writeOBJ().
void Foam::meshTools::writeOBJ | ( | Ostream & | os, |
const faceList & | , | ||
const pointField & | , | ||
const labelList & | faceLabels | ||
) |
Write obj representation of faces subset.
void Foam::meshTools::writeOBJ | ( | Ostream & | os, |
const faceList & | , | ||
const pointField & | |||
) |
Write obj representation of faces.
void Foam::meshTools::writeOBJ | ( | Ostream & | os, |
const cellList & | , | ||
const faceList & | , | ||
const pointField & | , | ||
const labelList & | cellLabels | ||
) |
Write obj representation of cell subset.
bool edgeOnCell | ( | const primitiveMesh & | mesh, |
const label | cellI, | ||
const label | edgeI | ||
) |
Is edge used by cell.
Definition at line 295 of file meshTools.C.
References primitiveMesh::edgeCells(), and Foam::findIndex().
Referenced by cellLooper::getVertEdgesNonFace().
bool edgeOnFace | ( | const primitiveMesh & | mesh, |
const label | faceI, | ||
const label | edgeI | ||
) |
Is edge used by face.
Definition at line 306 of file meshTools.C.
References primitiveMesh::faceEdges(), and Foam::findIndex().
Referenced by cellFeatures::isFeatureVertex().
bool faceOnCell | ( | const primitiveMesh & | mesh, |
const label | cellI, | ||
const label | faceI | ||
) |
Is face used by cell.
Definition at line 318 of file meshTools.C.
References primitiveMesh::faceNeighbour(), primitiveMesh::faceOwner(), and primitiveMesh::isInternalFace().
Referenced by getEdgeFaces(), and cellLooper::getVertFacesNonEdge().
Foam::label findEdge | ( | const edgeList & | edges, |
const labelList & | candidates, | ||
const label | v0, | ||
const label | v1 | ||
) |
Return edge among candidates that uses the two vertices.
Definition at line 347 of file meshTools.C.
Referenced by addPatchCellLayer::calcMeshEdges(), edgeVertex::cutPairToEdge(), faceCollapser::setRefinement(), and directionInfo::updateCell().
Foam::label findEdge | ( | const primitiveMesh & | mesh, |
const label | v0, | ||
const label | v1 | ||
) |
Return edge between two vertices. Returns -1 if no edge.
Definition at line 370 of file meshTools.C.
References e, primitiveMesh::edges(), edge::end(), forAll, primitiveMesh::pointEdges(), edge::start(), and v1.
Foam::label getSharedEdge | ( | const primitiveMesh & | mesh, |
const label | f0, | ||
const label | f1 | ||
) |
Return edge shared by two faces. Throws error if no edge found.
Definition at line 396 of file meshTools.C.
References Foam::abort(), primitiveMesh::faceEdges(), Foam::FatalError, FatalErrorIn, and forAll.
Foam::label getSharedFace | ( | const primitiveMesh & | mesh, |
const label | cell0, | ||
const label | cell1 | ||
) |
Return face shared by two cells. Throws error if none found.
Definition at line 432 of file meshTools.C.
References Foam::abort(), primitiveMesh::cells(), primitiveMesh::faceNeighbour(), primitiveMesh::faceOwner(), Foam::FatalError, FatalErrorIn, forAll, and primitiveMesh::isInternalFace().
Referenced by undoableMeshCutter::getSplitFaces().
void getEdgeFaces | ( | const primitiveMesh & | mesh, |
const label | cellI, | ||
const label | edgeI, | ||
label & | face0, | ||
label & | face1 | ||
) |
Get faces on cell using edgeI. Throws error if no two found.
Definition at line 474 of file meshTools.C.
References Foam::abort(), primitiveMesh::edgeFaces(), primitiveMesh::edges(), faceOnCell(), Foam::FatalError, FatalErrorIn, and forAll.
Referenced by hexCellLooper::cut(), topoCellLooper::cut(), directionInfo::edgeToFaceIndex(), cellLooper::getVertFacesNonEdge(), and otherFace().
Foam::label otherEdge | ( | const primitiveMesh & | mesh, |
const labelList & | edgeLabels, | ||
const label | edgeI, | ||
const label | vertI | ||
) |
Return label of other edge (out of candidates edgeLabels)
connected to vertex but not edgeI. Throws error if none found.
Definition at line 520 of file meshTools.C.
References Foam::abort(), e, primitiveMesh::edges(), edge::end(), Foam::FatalError, FatalErrorIn, forAll, and edge::start().
Referenced by directionInfo::updateCell(), and walkFace().
Foam::label otherFace | ( | const primitiveMesh & | mesh, |
const label | cellI, | ||
const label | faceI, | ||
const label | edgeI | ||
) |
Return face on cell using edgeI but not faceI. Throws error.
if none found.
Definition at line 558 of file meshTools.C.
References getEdgeFaces().
Referenced by edgeToCutDir(), getParallelEdges(), wedgeMatcher::matchShape(), pyrMatcher::matchShape(), tetMatcher::matchShape(), prismMatcher::matchShape(), tetWedgeMatcher::matchShape(), hexMatcher::matchShape(), edgeFaceCirculator::operator++(), edgeFaceCirculator::setCanonical(), and directionInfo::updateCell().
Foam::label otherCell | ( | const primitiveMesh & | mesh, |
const label | cellI, | ||
const label | faceI | ||
) |
Return cell on other side of face. Throws error.
if face not internal.
Definition at line 583 of file meshTools.C.
References Foam::abort(), primitiveMesh::faceNeighbour(), primitiveMesh::faceOwner(), Foam::FatalError, FatalErrorIn, and primitiveMesh::isInternalFace().
Foam::label walkFace | ( | const primitiveMesh & | mesh, |
const label | faceI, | ||
const label | startEdgeI, | ||
const label | startVertI, | ||
const label | nEdges | ||
) |
Returns label of edge nEdges away from startEdge (in the direction.
of startVertI)
Definition at line 612 of file meshTools.C.
References primitiveMesh::edges(), primitiveMesh::faceEdges(), and otherEdge().
Referenced by edgeToCutDir(), directionInfo::edgeToFaceIndex(), and getParallelEdges().
void constrainToMeshCentre | ( | const polyMesh & | mesh, |
point & | pt | ||
) |
Set the constrained components of position to mesh centre.
Definition at line 638 of file meshTools.C.
References polyMesh::bounds(), polyMesh::geometricD(), boundBox::max(), Foam::max(), boundBox::min(), and Foam::min().
Referenced by InjectionModel< CloudType >::inject(), DsmcParcel< ParcelType >::move(), and KinematicParcel< ParcelType >::move().
void Foam::meshTools::constrainToMeshCentre | ( | const polyMesh & | mesh, |
pointField & | pt | ||
) |
void constrainDirection | ( | const polyMesh & | mesh, |
const Vector< label > & | dirs, | ||
vector & | d | ||
) |
Set the constrained components of directions/velocity to zero.
Definition at line 697 of file meshTools.C.
Referenced by KinematicParcel< ParcelType >::calcVelocity(), InjectionModel< CloudType >::inject(), and DsmcParcel< ParcelType >::move().
void Foam::meshTools::constrainDirection | ( | const polyMesh & | mesh, |
const Vector< label > & | dirs, | ||
vectorField & | d | ||
) |
void getParallelEdges | ( | const primitiveMesh & | mesh, |
const label | cellI, | ||
const label | e0, | ||
label & | e1, | ||
label & | e2, | ||
label & | e3 | ||
) |
Given edge on hex find other 'parallel', non-connected edges.
Definition at line 747 of file meshTools.C.
References primitiveMesh::edges(), UList< T >::end(), otherFace(), and walkFace().
Referenced by cutDirToEdge().
Foam::vector edgeToCutDir | ( | const primitiveMesh & | mesh, |
const label | cellI, | ||
const label | edgeI | ||
) |
Given edge on hex find all 'parallel' (i.e. non-connected)
edges and average direction of them
Definition at line 773 of file meshTools.C.
References Foam::abort(), primitiveMesh::edges(), UList< T >::end(), Foam::FatalError, FatalErrorIn, Foam::isA(), Foam::mag(), normEdgeVec(), otherFace(), and walkFace().
Referenced by cutDirToEdge().
Foam::label cutDirToEdge | ( | const primitiveMesh & | mesh, |
const label | cellI, | ||
const vector & | cutDir | ||
) |
Reverse of edgeToCutDir: given direction find edge bundle and.
return one of them.
Definition at line 823 of file meshTools.C.
References Foam::abort(), primitiveMesh::cellEdges(), edgeToCutDir(), Foam::endl(), Foam::FatalError, FatalErrorIn, forAll, getParallelEdges(), Foam::isA(), Foam::mag(), and List< T >::size().
Referenced by hexCellLooper::cut().
|
static |
Definition at line 61 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 62 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 63 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 64 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 66 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 67 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 68 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 69 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 71 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 72 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 73 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 74 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 76 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 77 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 78 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 79 of file meshTools.H.
Referenced by calcBoxPointNormals().