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)
 Normalised edge vector. More...
 
void writeOBJ (Ostream &os, const point &pt)
 Write obj representation of point. More...
 
void writeOBJ (Ostream &os, const triad &t, const point &pt)
 Write obj representation of a triad. Requires the location 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...
 
template<class FaceType >
void writeOBJ (Ostream &os, const UList< FaceType > &, const pointField &, const labelList &faceLabels)
 Write obj representation of faces subset. More...
 
template<class FaceType >
void writeOBJ (Ostream &os, const UList< FaceType > &, const pointField &)
 Write obj representation of faces. More...
 
void writeOBJ (Ostream &os, const cellList &, const faceList &, const pointField &, const labelList &cellLabels)
 Write obj representation of cell subset. More...
 
bool edgeOnCell (const primitiveMesh &, const label celli, const label edgeI)
 Is edge used by cell. More...
 
bool edgeOnFace (const primitiveMesh &, const label facei, const label edgeI)
 Is edge used by face. More...
 
bool faceOnCell (const primitiveMesh &, 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 &, const label v0, const label v1)
 Return edge between two vertices. Returns -1 if no edge. More...
 
label getSharedEdge (const primitiveMesh &, const label f0, const label f1)
 Return edge shared by two faces. Throws error if no edge found. More...
 
label getSharedFace (const primitiveMesh &, const label cell0, const label cell1)
 Return face shared by two cells. Throws error if none found. More...
 
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. More...
 
label otherEdge (const primitiveMesh &, const labelList &edgeLabels, const label edgeI, const label vertI)
 Return label of other edge (out of candidates edgeLabels) More...
 
label otherFace (const primitiveMesh &, 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 &, const label celli, const label facei)
 Return cell on other side of face. Throws error. More...
 
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. 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 &, const label celli, const label e0, label &, label &, label &)
 Given edge on hex find other 'parallel', non-connected edges. More...
 
vector edgeToCutDir (const primitiveMesh &, const label celli, const label edgeI)
 Given edge on hex find all 'parallel' (i.e. non-connected) More...
 
label cutDirToEdge (const primitiveMesh &, 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 32 of file meshTools.C.

References forAll, and n.

Referenced by calcBoxPointNormals().

Here is the caller graph for this function:

◆ calcBoxPointNormals()

◆ normEdgeVec()

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

Normalised edge vector.

Definition at line 188 of file meshTools.C.

References primitiveMesh::edges(), Foam::mag(), and primitiveMesh::points().

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

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

◆ writeOBJ() [1/7]

◆ writeOBJ() [2/7]

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

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

triad to be supplied

Definition at line 212 of file meshTools.C.

References forAll, and writeOBJ().

Here is the call graph for this function:

◆ writeOBJ() [3/7]

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

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

Here is the call graph for this function:

◆ writeOBJ() [4/7]

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

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

Here is the call graph for this function:

◆ writeOBJ() [5/7]

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

Write obj representation of faces subset.

Definition at line 27 of file meshToolsTemplates.C.

References Foam::endl(), f(), forAll, HashTable< T, Key, Hash >::insert(), points, List< T >::size(), and writeOBJ().

Here is the call graph for this function:

◆ writeOBJ() [6/7]

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

Write obj representation of faces.

Definition at line 63 of file meshToolsTemplates.C.

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

Here is the call graph for this function:

◆ writeOBJ() [7/7]

void writeOBJ ( Ostream os,
const cellList cells,
const faceList faces,
const pointField points,
const labelList cellLabels 
)

Write obj representation of cell subset.

Definition at line 259 of file meshTools.C.

References cells, forAll, HashSet< Key, Hash >::insert(), points, List< T >::size(), HashTable< T, Key, Hash >::toc(), 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 284 of file meshTools.C.

References primitiveMesh::edgeCells(), and Foam::findIndex().

Referenced by cellLooper::getVertEdgesNonFace().

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

References primitiveMesh::faceEdges(), and Foam::findIndex().

Referenced by cellFeatures::isFeatureVertex().

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

References primitiveMesh::faceNeighbour(), primitiveMesh::faceOwner(), and primitiveMesh::isInternalFace().

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

Here is the call graph for this function:
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 336 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 vertices. Returns -1 if no edge.

Definition at line 359 of file meshTools.C.

References Foam::constant::electromagnetic::e, primitiveMesh::edges(), forAll, and primitiveMesh::pointEdges().

Here is the call graph for this function:

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

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

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

References Foam::abort(), primitiveMesh::cells(), primitiveMesh::faceNeighbour(), primitiveMesh::faceOwner(), Foam::FatalError, FatalErrorInFunction, forAll, and primitiveMesh::isInternalFace().

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

References Foam::abort(), primitiveMesh::edgeFaces(), primitiveMesh::edges(), faceOnCell(), Foam::FatalError, FatalErrorInFunction, and forAll.

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

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

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

References getEdgeFaces().

Referenced by edgeToCutDir(), getParallelEdges(), hexMatcher::matchShape(), prismMatcher::matchShape(), pyrMatcher::matchShape(), tetMatcher::matchShape(), tetWedgeMatcher::matchShape(), wedgeMatcher::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 560 of file meshTools.C.

References Foam::abort(), primitiveMesh::faceNeighbour(), primitiveMesh::faceOwner(), Foam::FatalError, FatalErrorInFunction, and primitiveMesh::isInternalFace().

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

References primitiveMesh::edges(), primitiveMesh::faceEdges(), 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 612 of file meshTools.C.

References polyMesh::bounds(), polyMesh::geometricD(), boundBox::max(), Foam::max(), boundBox::min(), and Foam::min().

Referenced by twoDPointCorrector::correctDisplacement(), twoDPointCorrector::correctPoints(), and particle::deviationFromMeshCentre().

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

References polyMesh::bounds(), forAll, polyMesh::geometricD(), boundBox::max(), Foam::max(), boundBox::min(), 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 670 of file meshTools.C.

Referenced by MomentumParcel< ParcelType >::calcVelocity(), InjectionModel< CloudType >::inject(), InjectionModel< CloudType >::injectSteadyState(), DSMCParcel< ParcelType >::move(), and CloudFilmTransfer< 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 687 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 720 of file meshTools.C.

References primitiveMesh::edges(), UList< T >::end(), 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 746 of file meshTools.C.

References Foam::abort(), primitiveMesh::edges(), UList< T >::end(), Foam::FatalError, FatalErrorInFunction, Foam::isA(), Foam::mag(), 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 794 of file meshTools.C.

References Foam::abort(), primitiveMesh::cellEdges(), edgeToCutDir(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, HashTable< T, Key, Hash >::found(), getParallelEdges(), HashSet< Key, Hash >::insert(), Foam::isA(), Foam::mag(), and List< T >::size().

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 63 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXmYmZ

const label pXmYmZ = 1
static

Definition at line 64 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXpYmZ

const label mXpYmZ = 2
static

Definition at line 65 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXpYmZ

const label pXpYmZ = 3
static

Definition at line 66 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXmYpZ

const label mXmYpZ = 4
static

Definition at line 68 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXmYpZ

const label pXmYpZ = 5
static

Definition at line 69 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXpYpZ

const label mXpYpZ = 6
static

Definition at line 70 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXpYpZ

const label pXpYpZ = 7
static

Definition at line 71 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXmYmZMask

const label mXmYmZMask = 1 << mXmYmZ
static

Definition at line 73 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXmYmZMask

const label pXmYmZMask = 1 << pXmYmZ
static

Definition at line 74 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXpYmZMask

const label mXpYmZMask = 1 << mXpYmZ
static

Definition at line 75 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXpYmZMask

const label pXpYmZMask = 1 << pXpYmZ
static

Definition at line 76 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXmYpZMask

const label mXmYpZMask = 1 << mXmYpZ
static

Definition at line 78 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXmYpZMask

const label pXmYpZMask = 1 << pXmYpZ
static

Definition at line 79 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ mXpYpZMask

const label mXpYpZMask = 1 << mXpYpZ
static

Definition at line 80 of file meshTools.H.

Referenced by calcBoxPointNormals().

◆ pXpYpZMask

const label pXpYpZMask = 1 << pXpYpZ
static

Definition at line 81 of file meshTools.H.

Referenced by calcBoxPointNormals().