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... | |
labelList | bandCompression (const polyMesh &mesh) |
Renumber (mesh) addressing to reduce the band of the mesh connectivity, using the Cuthill-McKee algorithm. More... | |
labelList | bandCompression (const CompactListList< label > &addressing) |
Renumber (mesh) addressing to reduce the band of the matrix, using the Cuthill-McKee algorithm. More... | |
labelList | bandCompression (const labelListList &addressing) |
Renumber (mesh) addressing to reduce the band of the matrix, using the Cuthill-McKee algorithm. More... | |
labelList | bandCompression (const labelUList &cellCells, const labelUList &offsets) |
Renumber with addressing in losort form (neighbour + start in neighbour), using the Cuthill-McKee algorithm. 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 30 of file meshTools.C.
References faceLabels(), 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 49 of file meshTools.C.
References Foam::endl(), forAll, Foam::mag(), mXmYmZ, mXmYmZMask, mXmYpZ, mXmYpZMask, mXpYmZ, mXpYmZMask, mXpYpZ, mXpYpZMask, n, Foam::nl, pFaces, pp(), 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 186 of file meshTools.C.
References mesh.
Referenced by edgeToCutDir(), and cellLooper::getMisAlignedEdge().
Write obj representation of a point.
Definition at line 196 of file meshTools.C.
References Foam::endl(), and os().
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(), writeOBJ(), AABBTree< Type >::writeOBJ(), coupledPolyPatch::writeOBJ(), enrichedPatch::writeOBJ(), surfaceFeatures::writeObj(), dynamicIndexedOctree< Foam::dynamicTreeDataPoint >::writeOBJ(), cellCuts::writeOBJ(), and indexedOctree< Foam::treeDataPrimitivePatch< PatchType > >::writeOBJ().
Write obj representation of a triad. Requires the origin of the.
triad to be supplied
Definition at line 221 of file meshTools.C.
References forAll, os(), 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 235 of file meshTools.C.
References Foam::BitOps::count(), Foam::endl(), Foam::nl, and os().
Write obj representation of a point p1 with a vector from p1 to p2.
Definition at line 251 of file meshTools.C.
References Foam::endl(), Foam::nl, and os().
void writeOBJ | ( | Ostream & | os, |
const treeBoundBox & | bb | ||
) |
Write obj representation of tree-bounding box as a series of lines.
Definition at line 266 of file meshTools.C.
References Foam::constant::electromagnetic::e, Foam::nl, os(), 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 24 of file meshToolsTemplates.C.
References Foam::endl(), f(), faceLabels(), forAll, os(), points, and writeOBJ().
Write obj representation of faces.
Definition at line 60 of file meshToolsTemplates.C.
References forAll, os(), 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 281 of file meshTools.C.
References cells, HashSet< Key, Hash >::insert(), os(), points, UList< T >::size(), and writeOBJ().
bool edgeOnCell | ( | const primitiveMesh & | mesh, |
const label | celli, | ||
const label | edgeI | ||
) |
Is edge used by cell.
Definition at line 301 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 312 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 323 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 352 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 375 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 401 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 434 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 472 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 514 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 548 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().
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 572 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 596 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 622 of file meshTools.C.
References Foam::max(), mesh, Foam::min(), and Foam::expressions::Detail::nComponents().
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 643 of file meshTools.C.
References forAll, Foam::max(), mesh, Foam::min(), Foam::expressions::Detail::nComponents(), and pts.
Set the constrained components of directions/velocity to zero.
Definition at line 680 of file meshTools.C.
References Foam::expressions::Detail::nComponents().
Referenced by KinematicParcel< ParcelType >::calcVelocity(), InjectionModel< CloudType >::inject(), InjectionModel< CloudType >::injectSteadyState(), DSMCParcel< ParcelType >::move(), and KinematicSurfaceFilm< CloudType >::splashInteraction().
void constrainDirection | ( | const polyMesh & | mesh, |
const Vector< label > & | dirs, | ||
vectorField & | d | ||
) |
Definition at line 697 of file meshTools.C.
References forAll, and Foam::expressions::Detail::nComponents().
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 730 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 756 of file meshTools.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, mesh, 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 803 of file meshTools.C.
References Foam::abort(), edgeToCutDir(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, getParallelEdges(), Foam::mag(), mesh, and UList< T >::size().
Referenced by hexCellLooper::cut().
Foam::labelList bandCompression | ( | const polyMesh & | mesh | ) |
Renumber (mesh) addressing to reduce the band of the mesh connectivity, using the Cuthill-McKee algorithm.
Definition at line 323 of file bandCompression.C.
References mesh.
Referenced by Foam::bandCompression(), PrimitivePatch<::Foam::List< labelledTri >, pointField >::projectFaceCentres(), and CuthillMcKeeRenumber::renumber().
Foam::labelList bandCompression | ( | const CompactListList< label > & | addressing | ) |
Renumber (mesh) addressing to reduce the band of the matrix, using the Cuthill-McKee algorithm.
Definition at line 334 of file bandCompression.C.
|
inline |
Renumber (mesh) addressing to reduce the band of the matrix, using the Cuthill-McKee algorithm.
Renumber (mesh) addressing to reduce the band of the matrix, using the Cuthill-McKee algorithm.
Definition at line 343 of file bandCompression.C.
References bandCompression().
|
inline |
Renumber with addressing in losort form (neighbour + start in neighbour), using the Cuthill-McKee algorithm.
Renumber with addressing in losort form (neighbour + start in neighbour), using the Cuthill-McKee algorithm.
Definition at line 172 of file bandCompression.C.
References bandCompression(), CircularBuffer< T >::capacity(), DynamicList< T, SizeMin >::clear(), CircularBuffer< T >::empty(), stdFoam::end(), CircularBuffer< T >::front(), Foam::labelMax, Foam::max(), Foam::nl, CircularBuffer< T >::pop_front(), Foam::Pout, DynamicList< T, SizeMin >::push_back(), CircularBuffer< T >::push_back(), DynamicList< T, SizeMin >::resize_nocopy(), UList< T >::size(), and Foam::sortedOrder().
|
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 65 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 70 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 75 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 80 of file meshTools.H.
Referenced by calcBoxPointNormals().