Foam::meshTools Namespace Reference

Collection of static functions to do various simple mesh related things. More...

Functions

bool visNormal (const vector &n, const vectorField &faceNormals, const labelList &faceLabels)
 Check if n is in same direction as normals of all faceLabels. More...
 
vectorField calcBoxPointNormals (const primitivePatch &pp)
 Calculate point normals on a 'box' mesh (all edges aligned with. More...
 
vector normEdgeVec (const primitiveMesh &, const label edgeI)
 Normalized edge vector. More...
 
void writeOBJ (Ostream &os, const point &pt)
 Write obj representation of a point. More...
 
void writeOBJ (Ostream &os, const UList< point > &pts)
 Write obj representation of points. More...
 
void writeOBJ (Ostream &os, const triad &t, const point &origin)
 Write obj representation of a triad. Requires the origin of the. More...
 
void writeOBJ (Ostream &os, const point &p1, const point &p2, label &count)
 Write obj representation of a line connecting two points. More...
 
void writeOBJ (Ostream &os, const point &p1, const point &p2)
 Write obj representation of a point p1 with a vector from p1 to p2. More...
 
void writeOBJ (Ostream &os, const treeBoundBox &bb)
 Write obj representation of tree-bounding box as a series of lines. More...
 
template<class FaceType >
void writeOBJ (Ostream &os, const UList< FaceType > &faces, const UList< point > &points, const labelList &faceLabels)
 Write obj representation of faces subset. More...
 
template<class FaceType >
void writeOBJ (Ostream &os, const UList< FaceType > &faces, const UList< point > &points)
 Write obj representation of faces. More...
 
void writeOBJ (Ostream &os, const cellList &cells, const faceList &faces, const UList< point > &points, const labelList &cellLabels)
 Write obj representation of cell subset. More...
 
bool edgeOnCell (const primitiveMesh &mesh, const label celli, const label edgeI)
 Is edge used by cell. More...
 
bool edgeOnFace (const primitiveMesh &mesh, const label facei, const label edgeI)
 Is edge used by face. More...
 
bool faceOnCell (const primitiveMesh &mesh, const label celli, const label facei)
 Is face used by cell. More...
 
label findEdge (const edgeList &edges, const labelList &candidates, const label v0, const label v1)
 Return edge among candidates that uses the two vertices. More...
 
label findEdge (const primitiveMesh &mesh, const label v0, const label v1)
 Return edge between two mesh vertices. Returns -1 if no edge. More...
 
label getSharedEdge (const primitiveMesh &mesh, const label f0, const label f1)
 Return edge shared by two faces. Throws error if no edge found. More...
 
label getSharedFace (const primitiveMesh &mesh, const label cell0, const label cell1)
 Return face shared by two cells. Throws error if none found. More...
 
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. More...
 
label otherEdge (const primitiveMesh &mesh, const labelList &edgeLabels, const label thisEdgeI, const label thisVertI)
 Return label of other edge (out of candidates edgeLabels) More...
 
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. More...
 
label otherCell (const primitiveMesh &mesh, const label celli, const label facei)
 Return cell on other side of face. Throws error. More...
 
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. More...
 
void constrainToMeshCentre (const polyMesh &mesh, point &pt)
 Set the constrained components of position to mesh centre. More...
 
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. More...
 
void 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. More...
 
vector edgeToCutDir (const primitiveMesh &mesh, const label celli, const label edgeI)
 Given edge on hex find all 'parallel' (i.e. non-connected) More...
 
label cutDirToEdge (const primitiveMesh &mesh, const label celli, const vector &cutDir)
 Reverse of edgeToCutDir: given direction find edge bundle and. More...
 

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
 

Detailed Description

Collection of static functions to do various simple mesh related things.

Source files

Function Documentation

◆ visNormal()

bool visNormal ( const vector n,
const vectorField faceNormals,
const labelList faceLabels 
)

Check if n is in same direction as normals of all faceLabels.

Definition at line 37 of file meshTools.C.

References faceNormals(), forAll, and n.

Referenced by calcBoxPointNormals().

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

◆ calcBoxPointNormals()

◆ normEdgeVec()

Foam::vector normEdgeVec ( const primitiveMesh mesh,
const label  edgeI 
)

Normalized edge vector.

Definition at line 193 of file meshTools.C.

References mesh.

Referenced by edgeToCutDir(), and cellLooper::getMisAlignedEdge().

Here is the caller graph for this function:

◆ writeOBJ() [1/9]

void writeOBJ ( Ostream os,
const point pt 
)

Write obj representation of a point.

Definition at line 203 of file meshTools.C.

References Foam::endl(), os(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Referenced by mappedPatchBase::calcAMI(), polyDualMesh::calcFeatures(), processorPolyPatch::calcGeometry(), mappedPatchBase::calcMapping(), hexCellLooper::cut(), Foam::drawHitProblem(), meshRefinement::dumpIntersections(), processorPolyPatch::initOrder(), triangle2D::interArea(), surfaceFeatures::nearestEdges(), surfaceFeatures::nearestSamples(), Foam::operator<<(), oldCyclicPolyPatch::order(), processorPolyPatch::order(), cyclicPolyPatch::order(), dynamicIndexedOctree< Foam::dynamicTreeDataPoint >::print(), indexedOctree< Foam::treeDataPrimitivePatch< PatchType > >::print(), cyclicAMIPolyPatch::resetAMI(), motionSmootherAlgo::setDisplacement(), duplicatePoints::setRefinement(), refinementIterator::setRefinement(), faceCollapser::setRefinement(), removeFaces::setRefinement(), hexRef8::setRefinement(), box::writeBoxes(), cellCuts::writeCellOBJ(), AMIInterpolation::writeFaceConnectivity(), advancingFrontAMI::writeIntersectionOBJ(), AABBTree< Type >::writeOBJ(), writeOBJ(), coupledPolyPatch::writeOBJ(), enrichedPatch::writeOBJ(), surfaceFeatures::writeObj(), and cellCuts::writeOBJ().

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

◆ writeOBJ() [2/9]

void writeOBJ ( Ostream os,
const UList< point > &  pts 
)

Write obj representation of points.

Definition at line 213 of file meshTools.C.

References forAll, Foam::nl, os(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ writeOBJ() [3/9]

void writeOBJ ( Ostream os,
const triad t,
const point origin 
)

Write obj representation of a triad. Requires the origin of the.

triad to be supplied

Definition at line 228 of file meshTools.C.

References forAll, os(), and writeOBJ().

Here is the call graph for this function:

◆ writeOBJ() [4/9]

void writeOBJ ( Ostream os,
const point p1,
const point p2,
label &  count 
)

Write obj representation of a line connecting two points.

Need to keep track of points that have been added. count starts at 0

Definition at line 242 of file meshTools.C.

References Foam::BitOps::count(), Foam::endl(), Foam::nl, os(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ writeOBJ() [5/9]

void writeOBJ ( Ostream os,
const point p1,
const point p2 
)

Write obj representation of a point p1 with a vector from p1 to p2.

Definition at line 258 of file meshTools.C.

References Foam::endl(), Foam::nl, os(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ writeOBJ() [6/9]

void writeOBJ ( Ostream os,
const treeBoundBox bb 
)

Write obj representation of tree-bounding box as a series of lines.

Definition at line 273 of file meshTools.C.

References Foam::constant::electromagnetic::e, Foam::nl, os(), treeBoundBox::points(), and writeOBJ().

Here is the call graph for this function:

◆ writeOBJ() [7/9]

void writeOBJ ( Ostream os,
const UList< FaceType > &  faces,
const UList< point > &  points,
const labelList faceLabels 
)

Write obj representation of faces subset.

Definition at line 31 of file meshToolsTemplates.C.

References Foam::endl(), f(), forAll, os(), points, and writeOBJ().

Here is the call graph for this function:

◆ writeOBJ() [8/9]

void writeOBJ ( Ostream os,
const UList< FaceType > &  faces,
const UList< point > &  points 
)

Write obj representation of faces.

Definition at line 67 of file meshToolsTemplates.C.

References forAll, os(), points, UList< T >::size(), and writeOBJ().

Here is the call graph for this function:

◆ writeOBJ() [9/9]

void writeOBJ ( Ostream os,
const cellList cells,
const faceList faces,
const UList< point > &  points,
const labelList cellLabels 
)

Write obj representation of cell subset.

Definition at line 288 of file meshTools.C.

References cells, HashSet< Key, Hash >::insert(), os(), points, and writeOBJ().

Here is the call graph for this function:

◆ edgeOnCell()

bool edgeOnCell ( const primitiveMesh mesh,
const label  celli,
const label  edgeI 
)

Is edge used by cell.

Definition at line 308 of file meshTools.C.

References mesh.

Referenced by cellLooper::getVertEdgesNonFace().

Here is the caller graph for this function:

◆ edgeOnFace()

bool edgeOnFace ( const primitiveMesh mesh,
const label  facei,
const label  edgeI 
)

Is edge used by face.

Definition at line 319 of file meshTools.C.

References mesh.

Referenced by cellFeatures::isFeatureVertex().

Here is the caller graph for this function:

◆ faceOnCell()

bool faceOnCell ( const primitiveMesh mesh,
const label  celli,
const label  facei 
)

Is face used by cell.

Definition at line 330 of file meshTools.C.

References mesh.

Referenced by getEdgeFaces(), and cellLooper::getVertFacesNonEdge().

Here is the caller graph for this function:

◆ findEdge() [1/2]

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 359 of file meshTools.C.

References Foam::constant::electromagnetic::e, and forAll.

Referenced by edgeVertex::cutPairToEdge(), faceCollapser::setRefinement(), and directionInfo::updateCell().

Here is the caller graph for this function:

◆ findEdge() [2/2]

Foam::label findEdge ( const primitiveMesh mesh,
const label  v0,
const label  v1 
)

Return edge between two mesh vertices. Returns -1 if no edge.

Definition at line 382 of file meshTools.C.

References Foam::constant::electromagnetic::e, forAll, and mesh.

◆ getSharedEdge()

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 408 of file meshTools.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, forAll, and mesh.

Here is the call graph for this function:

◆ getSharedFace()

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 441 of file meshTools.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, forAll, and mesh.

Referenced by undoableMeshCutter::getSplitFaces().

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

◆ getEdgeFaces()

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 479 of file meshTools.C.

References Foam::abort(), faceOnCell(), Foam::FatalError, FatalErrorInFunction, forAll, and mesh.

Referenced by hexCellLooper::cut(), topoCellLooper::cut(), directionInfo::edgeToFaceIndex(), cellLooper::getVertFacesNonEdge(), and otherFace().

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

◆ otherEdge()

Foam::label otherEdge ( const primitiveMesh mesh,
const labelList edgeLabels,
const label  thisEdgeI,
const label  thisVertI 
)

Return label of other edge (out of candidates edgeLabels)

connected to vertex but not edgeI. Throws error if none found.

Definition at line 521 of file meshTools.C.

References Foam::abort(), Foam::constant::electromagnetic::e, Foam::FatalError, FatalErrorInFunction, forAll, and mesh.

Referenced by directionInfo::updateCell(), and walkFace().

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

◆ otherFace()

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 555 of file meshTools.C.

References getEdgeFaces(), and mesh.

Referenced by wallBoundedParticle::crossEdgeConnectedFace(), edgeToCutDir(), getParallelEdges(), prismMatcher::matchShape(), tetWedgeMatcher::matchShape(), wedgeMatcher::matchShape(), pyrMatcher::matchShape(), tetMatcher::matchShape(), hexMatcher::matchShape(), edgeFaceCirculator::operator++(), edgeFaceCirculator::setCanonical(), and directionInfo::updateCell().

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

◆ otherCell()

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 579 of file meshTools.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and mesh.

Here is the call graph for this function:

◆ walkFace()

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 603 of file meshTools.C.

References mesh, and otherEdge().

Referenced by edgeToCutDir(), directionInfo::edgeToFaceIndex(), and getParallelEdges().

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

◆ constrainToMeshCentre() [1/2]

void constrainToMeshCentre ( const polyMesh mesh,
point pt 
)

Set the constrained components of position to mesh centre.

Definition at line 629 of file meshTools.C.

References Foam::max(), mesh, and Foam::min().

Referenced by twoDPointCorrector::correctDisplacement(), twoDPointCorrector::correctPoints(), particle< Type >::deviationFromMeshCentre(), InjectionModel< CloudType >::inject(), and InjectionModel< CloudType >::injectSteadyState().

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

◆ constrainToMeshCentre() [2/2]

void constrainToMeshCentre ( const polyMesh mesh,
pointField pt 
)

Definition at line 650 of file meshTools.C.

References forAll, Foam::max(), mesh, and Foam::min().

Here is the call graph for this function:

◆ constrainDirection() [1/2]

void constrainDirection ( const polyMesh mesh,
const Vector< label > &  dirs,
vector d 
)

Set the constrained components of directions/velocity to zero.

Definition at line 687 of file meshTools.C.

Referenced by KinematicParcel< ParcelType >::calcVelocity(), InjectionModel< CloudType >::inject(), InjectionModel< CloudType >::injectSteadyState(), DSMCParcel< ParcelType >::move(), and KinematicSurfaceFilm< CloudType >::splashInteraction().

Here is the caller graph for this function:

◆ constrainDirection() [2/2]

void constrainDirection ( const polyMesh mesh,
const Vector< label > &  dirs,
vectorField d 
)

Definition at line 704 of file meshTools.C.

References forAll.

◆ getParallelEdges()

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 737 of file meshTools.C.

References mesh, otherFace(), and walkFace().

Referenced by cutDirToEdge().

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

◆ edgeToCutDir()

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 763 of file meshTools.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, mesh, Vector< Cmpt >::normalise(), normEdgeVec(), otherFace(), and walkFace().

Referenced by cutDirToEdge().

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

◆ 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 810 of file meshTools.C.

References Foam::abort(), edgeToCutDir(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, getParallelEdges(), Foam::mag(), and mesh.

Referenced by hexCellLooper::cut().

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

Variable Documentation

◆ mXmYmZ

const label mXmYmZ = 0
static

Definition at line 66 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXmYmZ

const label pXmYmZ = 1
static

Definition at line 67 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXpYmZ

const label mXpYmZ = 2
static

Definition at line 68 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXpYmZ

const label pXpYmZ = 3
static

Definition at line 69 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXmYpZ

const label mXmYpZ = 4
static

Definition at line 71 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXmYpZ

const label pXmYpZ = 5
static

Definition at line 72 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXpYpZ

const label mXpYpZ = 6
static

Definition at line 73 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXpYpZ

const label pXpYpZ = 7
static

Definition at line 74 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXmYmZMask

const label mXmYmZMask = 1 << mXmYmZ
static

Definition at line 76 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXmYmZMask

const label pXmYmZMask = 1 << pXmYmZ
static

Definition at line 77 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXpYmZMask

const label mXpYmZMask = 1 << mXpYmZ
static

Definition at line 78 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXpYmZMask

const label pXpYmZMask = 1 << pXpYmZ
static

Definition at line 79 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXmYpZMask

const label mXmYpZMask = 1 << mXmYpZ
static

Definition at line 81 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXmYpZMask

const label pXmYpZMask = 1 << pXmYpZ
static

Definition at line 82 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXpYpZMask

const label mXpYpZMask = 1 << mXpYpZ
static

Definition at line 83 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXpYpZMask

const label pXpYpZMask = 1 << pXpYpZ
static

Definition at line 84 of file meshTools.H.

Referenced by calcBoxPointNormals().