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

References forAll.

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

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

Referenced by calcBoxPointNormals(), 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 213 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 227 of file meshTools.C.

References Foam::endl(), writeOBJ(), 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 244 of file meshTools.C.

References Foam::endl(), writeOBJ(), 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 28 of file meshToolsTemplates.C.

References Foam::endl(), f(), forAll, 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 64 of file meshToolsTemplates.C.

References forAll, 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 260 of file meshTools.C.

References edgeOnCell(), forAll, List< T >::size(), 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 285 of file meshTools.C.

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

Referenced by cellLooper::getVertEdgesNonFace(), and writeOBJ().

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

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

Referenced by edgeOnCell(), and 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 308 of file meshTools.C.

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

Referenced by edgeOnFace(), getEdgeFaces(), cellLooper::getVertFacesNonEdge(), and cellCuts::nonAnchorPoints().

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

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

Referenced by edgeVertex::cutPairToEdge(), hexRef8::faceLevel(), faceOnCell(), and cellCuts::nonAnchorPoints().

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

References Foam::constant::electromagnetic::e, primitiveMesh::edges(), edge::end(), forAll, getSharedEdge(), primitiveMesh::pointEdges(), and edge::start().

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

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

Referenced by findEdge().

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

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

Referenced by getSharedEdge(), and 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 458 of file meshTools.C.

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

Referenced by hexCellLooper::cut(), topoCellLooper::cut(), directionInfo::edgeToFaceIndex(), getSharedFace(), 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 501 of file meshTools.C.

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

Referenced by getEdgeFaces(), 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 536 of file meshTools.C.

References getEdgeFaces(), and otherCell().

Referenced by edgeToCutDir(), getParallelEdges(), otherEdge(), 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 561 of file meshTools.C.

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

Referenced by otherFace().

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

References constrainToMeshCentre(), primitiveMesh::edges(), primitiveMesh::faceEdges(), and otherEdge().

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

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

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

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

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

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

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

References forAll, and getParallelEdges().

Here is the call graph for this function:

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

References primitiveMesh::edges(), edgeToCutDir(), UList< T >::end(), otherFace(), and walkFace().

Referenced by constrainDirection(), and 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 747 of file meshTools.C.

References Foam::abort(), cutDirToEdge(), primitiveMesh::edges(), UList< T >::end(), Foam::FatalError, FatalErrorInFunction, Foam::isA(), Foam::mag(), normEdgeVec(), otherFace(), and walkFace().

Referenced by cutDirToEdge(), getParallelEdges(), and NamedEnum< compressibleField, 8 >::names().

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

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

Referenced by hexCellLooper::cut(), edgeToCutDir(), and NamedEnum< compressibleField, 8 >::names().

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().