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 |
Collection of static functions to do various simple mesh related things.
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().
Foam::vectorField calcBoxPointNormals | ( | const primitivePatch & | pp | ) |
Calculate point normals on a 'box' mesh (all edges aligned with.
coordinate axes)
Definition at line 56 of file meshTools.C.
References Foam::endl(), faceNormals(), PrimitivePatch< FaceList, PointField >::faceNormals(), forAll, Foam::mag(), PrimitivePatch< FaceList, PointField >::meshPoints(), mXmYmZ, mXmYmZMask, mXmYpZ, mXmYpZMask, mXpYmZ, mXpYmZMask, mXpYpZ, mXpYpZMask, n, Foam::nl, PrimitivePatch< FaceList, PointField >::nPoints(), pFaces, PrimitivePatch< FaceList, PointField >::pointFaces(), PrimitivePatch< FaceList, PointField >::pointNormals(), PrimitivePatch< FaceList, PointField >::points(), pXmYmZ, pXmYmZMask, pXmYpZ, pXmYpZMask, pXpYmZ, pXpYmZMask, pXpYpZ, pXpYpZMask, visNormal(), WarningInFunction, and Foam::Zero.
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().
Write obj representation of a point.
Definition at line 203 of file meshTools.C.
References Foam::endl(), 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(), 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().
Write obj representation of points.
Definition at line 213 of file meshTools.C.
References forAll, Foam::nl, Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
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, and writeOBJ().
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, Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
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, Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
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, treeBoundBox::points(), and writeOBJ().
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, points, and writeOBJ().
Write obj representation of faces.
Definition at line 67 of file meshToolsTemplates.C.
References forAll, points, UList< T >::size(), and writeOBJ().
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(), points, and writeOBJ().
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().
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().
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().
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().
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.
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.
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().
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().
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().
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(), tetWedgeMatcher::matchShape(), prismMatcher::matchShape(), pyrMatcher::matchShape(), hexMatcher::matchShape(), tetMatcher::matchShape(), wedgeMatcher::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 579 of file meshTools.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and mesh.
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().
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().
void constrainToMeshCentre | ( | const polyMesh & | mesh, |
pointField & | pt | ||
) |
Definition at line 650 of file meshTools.C.
References forAll, Foam::max(), mesh, and Foam::min().
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 ThermoSurfaceFilm< CloudType >::splashInteraction().
void constrainDirection | ( | const polyMesh & | mesh, |
const Vector< label > & | dirs, | ||
vectorField & | d | ||
) |
Definition at line 704 of file meshTools.C.
References forAll.
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().
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, Foam::isA(), mesh, Vector< Cmpt >::normalise(), 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 810 of file meshTools.C.
References Foam::abort(), edgeToCutDir(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, getParallelEdges(), Foam::isA(), Foam::mag(), and mesh.
Referenced by hexCellLooper::cut().
|
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().
|
static |
Definition at line 81 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 82 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 83 of file meshTools.H.
Referenced by calcBoxPointNormals().
|
static |
Definition at line 84 of file meshTools.H.
Referenced by calcBoxPointNormals().