Loading...
Searching...
No Matches
PrimitivePatch< FaceList, PointField > Class Template Reference

A list of faces which address into the list of points. More...

#include <PrimitivePatch.H>

Inheritance diagram for PrimitivePatch< FaceList, PointField >:
Collaboration diagram for PrimitivePatch< FaceList, PointField >:

Public Types

enum  surfaceTopo { MANIFOLD , OPEN , ILLEGAL }
 Enumeration defining the surface type. Used in check routines. More...
typedef std::remove_reference< FaceList >::type::value_type face_type
 The face type.
typedef std::remove_reference< PointField >::type::value_type point_type
 The point type.
typedef FaceList FaceListType
 The face list type.
typedef PointField PointFieldType
 The point field type.
typedef face_type FaceType
 Deprecated(2020-03) prefer face_type typedef.

Public Member Functions

 PrimitivePatch (const FaceList &faces, const PointField &points)
 Construct from components.
 PrimitivePatch (FaceList &&faces, const PointField &points)
 Construct from components, transferring faces.
 PrimitivePatch (FaceList &faces, PointField &points, const bool reuse)
 Construct from components, reuse storage.
 PrimitivePatch (const PrimitivePatch< FaceList, PointField > &pp)
 Copy construct.
virtual ~PrimitivePatch ()
 Destructor.
void clearOut ()
void clearGeom ()
void clearTopology ()
void clearPatchMeshAddr ()
void swap (PrimitivePatch &)=delete
 Suppress direct swapping, since storage containers may be const.
const Field< point_type > & points () const noexcept
 Return reference to global points.
label nFaces () const noexcept
 Number of faces in the patch.
label nPoints () const
 Number of points supporting patch faces.
label nEdges () const
 Number of edges in patch.
const edgeListedges () const
 Return list of edges, address into LOCAL point list.
const edgeList::subList internalEdges () const
 Return sub-list of internal edges, address into LOCAL point list.
const edgeList::subList boundaryEdges () const
 Return sub-list of boundary edges, address into LOCAL point list.
label nInternalEdges () const
 Number of internal edges.
label nBoundaryEdges () const
 Number of boundary edges == (nEdges() - nInternalEdges()).
bool isInternalEdge (const label edgei) const
 Is internal edge?
const labelListboundaryPoints () const
 Return list of boundary points, address into LOCAL point list.
const labelListListfaceFaces () const
 Return face-face addressing.
const labelListListedgeFaces () const
 Return edge-face addressing.
const labelListListfaceEdges () const
 Return face-edge addressing.
const labelListListpointEdges () const
 Return point-edge addressing.
const labelListListpointFaces () const
 Return point-face addressing.
const List< face_type > & localFaces () const
 Return patch faces addressing into local point list.
labelList boundaryFaces () const
 Extract list of local faces corresponding to the boundary edges.
labelList uniqBoundaryFaces () const
 Extract sorted list of unique local faces associated with the boundary edges.
const labelListmeshPoints () const
 Return labelList of mesh points in patch.
const Map< label > & meshPointMap () const
 Mesh point map.
const Field< point_type > & localPoints () const
 Return pointField of points in patch.
const labelListlocalPointOrder () const
 Return orders the local points for most efficient search.
label whichPoint (const label gp) const
 Given a global point index, return the local point index.
edge meshEdge (const label edgei) const
 From patch edge to global edge using meshPoints.
edge meshEdge (const edge &e) const
 From patch edge to global edge using meshPoints.
label findEdge (const edge &e) const
 Search for edge (local point labels) and return its index in the edge list or -1 if not found.
labelList meshEdges (const edgeList &allEdges, const labelListList &cellEdges, const labelList &faceCells) const
 Return labels of patch edges in the global edge list using cell addressing.
labelList meshEdges (const edgeList &allEdges, const labelListList &pointEdges) const
 Return labels of patch edges into the global edge list using basic edge addressing.
label meshEdge (const label edgei, const edgeList &allEdges, const labelListList &pointEdges) const
 Return label of the local patch edge into the global edge list using basic edge addressing.
labelList meshEdges (const labelUList &edgeLabels, const edgeList &allEdges, const labelListList &pointEdges) const
 Return labels of specified patch edges into the global edge list using basic edge addressing.
const Field< point_type > & faceCentres () const
 Return face centres for patch.
const Field< point_type > & faceAreas () const
 Return face area vectors for patch.
const Field< scalar > & magFaceAreas () const
 Return face area magnitudes for patch.
const Field< point_type > & faceNormals () const
 Return face unit normals for patch.
const Field< point_type > & pointNormals () const
 Return point normals for patch.
Pair< point_typebox () const
 The enclosing (bounding) box for the patch points.
scalar sphere (const label facei) const
 The enclosing (bounding) sphere radius^2 for specified face.
bool hasFaceAreas () const
bool hasFaceCentres () const
bool hasFaceNormals () const
bool hasPointNormals () const
bool hasBoundaryPoints () const
bool hasEdges () const
bool hasFaceFaces () const
bool hasEdgeFaces () const
bool hasFaceEdges () const
bool hasPointEdges () const
bool hasPointFaces () const
bool hasMeshPoints () const
bool hasMeshPointMap () const
template<class ToPatch>
List< objectHitprojectPoints (const ToPatch &targetPatch, const Field< point_type > &projectionDirection, const intersection::algorithm=intersection::FULL_RAY, const intersection::direction=intersection::VECTOR) const
 Project vertices of patch onto another patch.
template<class ToPatch>
List< objectHitprojectFaceCentres (const ToPatch &targetPatch, const Field< point_type > &projectionDirection, const intersection::algorithm=intersection::FULL_RAY, const intersection::direction=intersection::VECTOR) const
 Project vertices of patch onto another patch.
const labelListListedgeLoops () const
 Return list of closed loops of boundary vertices.
surfaceTopo surfaceType (labelHashSet *badEdgesPtr=nullptr) const
 Calculate surface type formed by patch, optionally recording the indices of illegal edges.
bool checkTopology (const bool report=false, labelHashSet *pointSetPtr=nullptr) const
 Check surface formed by patch for manifoldness (see above).
bool checkPointManifold (const bool report=false, labelHashSet *pointSetPtr=nullptr) const
 Checks primitivePatch for faces sharing point but not edge.
virtual void movePoints (const Field< point_type > &)
 Correct patch after moving points.
void operator= (const PrimitivePatch< FaceList, PointField > &rhs)
 Copy assign faces. Leave points alone (could be a reference).
void operator= (PrimitivePatch< FaceList, PointField > &&rhs)
 Move assign faces. Leave points alone (could be a reference).
label whichEdge (const edge &e) const
 Identical to findEdge.
template<class ToPatch>
Foam::List< Foam::objectHitprojectPoints (const ToPatch &targetPatch, const Field< typename Foam::PrimitivePatch< FaceList, PointField >::point_type > &projectionDirection, const intersection::algorithm alg, const intersection::direction dir) const
template<class ToPatch>
Foam::List< Foam::objectHitprojectFaceCentres (const ToPatch &targetPatch, const Field< typename Foam::PrimitivePatch< FaceList, PointField >::point_type > &projectionDirection, const intersection::algorithm alg, const intersection::direction dir) const
Public Member Functions inherited from PrimitivePatchBase
 ClassName ("PrimitivePatch")
 Runtime type information.
 PrimitivePatchBase ()=default
 Default construct.

Detailed Description

template<class FaceList, class PointField>
class Foam::PrimitivePatch< FaceList, PointField >

A list of faces which address into the list of points.

The class is templated on the face type (e.g. triangle, polygon etc.) and on the list type of faces and points so that it can refer to existing lists using UList and const pointField& or hold the storage using List and pointField.

Source files

Definition at line 78 of file PrimitivePatch.H.

Member Typedef Documentation

◆ face_type

template<class FaceList, class PointField>
typedef std::remove_reference<FaceList>::type::value_type face_type

The face type.

Definition at line 91 of file PrimitivePatch.H.

◆ point_type

template<class FaceList, class PointField>
typedef std::remove_reference<PointField>::type::value_type point_type

The point type.

Definition at line 97 of file PrimitivePatch.H.

◆ FaceListType

template<class FaceList, class PointField>
typedef FaceList FaceListType

The face list type.

Definition at line 102 of file PrimitivePatch.H.

◆ PointFieldType

template<class FaceList, class PointField>
typedef PointField PointFieldType

The point field type.

Definition at line 107 of file PrimitivePatch.H.

◆ FaceType

template<class FaceList, class PointField>
typedef face_type FaceType

Deprecated(2020-03) prefer face_type typedef.

Deprecated
(2020-03) prefer face_type typedef

Definition at line 114 of file PrimitivePatch.H.

Member Enumeration Documentation

◆ surfaceTopo

template<class FaceList, class PointField>
enum surfaceTopo

Enumeration defining the surface type. Used in check routines.

Ordered from 'good' to 'bad'

Enumerator
MANIFOLD 
OPEN 
ILLEGAL 

Definition at line 124 of file PrimitivePatch.H.

Constructor & Destructor Documentation

◆ PrimitivePatch() [1/4]

template<class FaceList, class PointField>
PrimitivePatch ( const FaceList & faces,
const PointField & points )

Construct from components.

Definition at line 27 of file PrimitivePatch.C.

References points().

Referenced by operator=(), operator=(), and PrimitivePatch().

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

◆ PrimitivePatch() [2/4]

template<class FaceList, class PointField>
PrimitivePatch ( FaceList && faces,
const PointField & points )

Construct from components, transferring faces.

Definition at line 40 of file PrimitivePatch.C.

References points().

Here is the call graph for this function:

◆ PrimitivePatch() [3/4]

template<class FaceList, class PointField>
PrimitivePatch ( FaceList & faces,
PointField & points,
const bool reuse )

Construct from components, reuse storage.

Definition at line 53 of file PrimitivePatch.C.

References points().

Here is the call graph for this function:

◆ PrimitivePatch() [4/4]

template<class FaceList, class PointField>
PrimitivePatch ( const PrimitivePatch< FaceList, PointField > & pp)

Copy construct.

Definition at line 67 of file PrimitivePatch.C.

References pp(), and PrimitivePatch().

Here is the call graph for this function:

◆ ~PrimitivePatch()

template<class FaceList, class PointField>
virtual ~PrimitivePatch ( )
virtual

Destructor.

Member Function Documentation

◆ clearOut()

template<class FaceList, class PointField>
void clearOut ( )

Definition at line 78 of file PrimitivePatchClear.C.

References clearGeom(), clearPatchMeshAddr(), and clearTopology().

Referenced by operator=(), operator=(), MeshedSurface< Face >::swap(), and UnsortedMeshedSurface< Face >::swap().

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

◆ clearGeom()

template<class FaceList, class PointField>
void clearGeom ( )

Definition at line 28 of file PrimitivePatchClear.C.

References DebugInFunction, and Foam::nl.

Referenced by clearOut(), and movePoints().

Here is the caller graph for this function:

◆ clearTopology()

template<class FaceList, class PointField>
void clearTopology ( )

Definition at line 43 of file PrimitivePatchClear.C.

References DebugInFunction, and Foam::nl.

Referenced by clearOut().

Here is the caller graph for this function:

◆ clearPatchMeshAddr()

template<class FaceList, class PointField>
void clearPatchMeshAddr ( )

Definition at line 66 of file PrimitivePatchClear.C.

References DebugInFunction, and Foam::nl.

Referenced by clearOut().

Here is the caller graph for this function:

◆ swap()

template<class FaceList, class PointField>
void swap ( PrimitivePatch< FaceList, PointField > & )
delete

Suppress direct swapping, since storage containers may be const.

◆ points()

template<class FaceList, class PointField>
const Field< point_type > & points ( ) const
inlinenoexcept

Return reference to global points.

Definition at line 401 of file PrimitivePatch.H.

Referenced by booleanSurface::booleanSurface(), booleanSurface::booleanSurface(), cyclicAMIPolyPatch::calcTransforms(), cyclicPolyPatch::calcTransforms(), AMIInterpolation::calculate(), polySurface::copySurface(), surfMesh::copySurface(), triSurfaceTools::curvatures(), distributedTriSurfaceMesh::distribute(), Foam::drawHitProblem(), edgeIntersections::edgeIntersections(), pointMeshTools::featurePointsEdges(), Foam::edgeMeshTools::featureProximity(), isoSurfaceTopo::isoSurfaceTopo(), processorFaPatch::makeCorrectionVectors(), processorFaPatch::makeDeltaCoeffs(), momentOfInertia::massPropertiesShell(), momentOfInertia::massPropertiesSolid(), offsetSurface::operator()(), MeshedSurface< Face >::operator=(), triSurface::operator=(), cyclicPolyPatch::order(), orientedSurface::orientedSurface(), sampledCuttingPlane::points(), sampledDistanceSurface::points(), sampledInterface::points(), sampledIsoSurface::points(), powerLawLopesdaCostaZone::powerLawLopesdaCostaZone(), PrimitivePatch(), PrimitivePatch(), PrimitivePatch(), boundaryMesh::read(), FilterField::reset(), refinementSurfaces::setMinLevelFields(), AMIInterpolation::srcPointFace(), triSurfaceTools::surfaceNormal(), triSurfaceTools::surfaceSide(), AMIInterpolation::tgtPointFace(), triSurfaceMeshPointSet::triSurfaceMeshPointSet(), triSurfaceTools::validTri(), triSurfaceTools::validTri(), triSurfaceTools::vertexNormals(), triSurfaceTools::vertexTriads(), AC3DsurfaceFormat< Face >::write(), GTSsurfaceFormat< Face >::write(), GTSsurfaceFormat< Face >::write(), TRIsurfaceFormat< Face >::write(), VTKsurfaceFormat< Face >::write(), VTPsurfaceFormat< Face >::write(), STLsurfaceFormat< Face >::writeAscii(), STLsurfaceFormat< Face >::writeBinary(), and surfaceNoise::writeSurfaceData().

◆ nFaces()

template<class FaceList, class PointField>
label nFaces ( ) const
inlinenoexcept

Number of faces in the patch.

Definition at line 409 of file PrimitivePatch.H.

Referenced by surfaceNoise::initialise(), and FilterField::reset().

Here is the caller graph for this function:

◆ nPoints()

◆ nEdges()

◆ edges()

template<class FaceList, class PointField>
const Foam::edgeList & edges ( ) const

◆ internalEdges()

template<class FaceList, class PointField>
const Foam::edgeList::subList internalEdges ( ) const

Return sub-list of internal edges, address into LOCAL point list.

Definition at line 117 of file PrimitivePatch.C.

References edges(), and nInternalEdges().

Here is the call graph for this function:

◆ boundaryEdges()

template<class FaceList, class PointField>
const Foam::edgeList::subList boundaryEdges ( ) const

Return sub-list of boundary edges, address into LOCAL point list.

Definition at line 126 of file PrimitivePatch.C.

References edges(), nBoundaryEdges(), and nInternalEdges().

Here is the call graph for this function:

◆ nInternalEdges()

template<class FaceList, class PointField>
Foam::label nInternalEdges ( ) const

◆ nBoundaryEdges()

template<class FaceList, class PointField>
Foam::label nBoundaryEdges ( ) const

Number of boundary edges == (nEdges() - nInternalEdges()).

Definition at line 148 of file PrimitivePatch.C.

References edges(), and UList< T >::size().

Referenced by boundaryEdges(), boundaryFaces(), and faMesh::updateMesh().

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

◆ isInternalEdge()

template<class FaceList, class PointField>
bool isInternalEdge ( const label edgei) const
inline

Is internal edge?

Definition at line 463 of file PrimitivePatch.H.

◆ boundaryPoints()

template<class FaceList, class PointField>
const Foam::labelList & boundaryPoints ( ) const

Return list of boundary points, address into LOCAL point list.

Uses edge addressing (if it exists) or calculates directly from localFaces()

Definition at line 157 of file PrimitivePatch.C.

◆ faceFaces()

template<class FaceList, class PointField>
const Foam::labelListList & faceFaces ( ) const

Return face-face addressing.

Definition at line 170 of file PrimitivePatch.C.

Referenced by triSurfaceTools::validTri(), and triSurfaceTools::validTri().

Here is the caller graph for this function:

◆ edgeFaces()

◆ faceEdges()

template<class FaceList, class PointField>
const Foam::labelListList & faceEdges ( ) const

◆ pointEdges()

template<class FaceList, class PointField>
const Foam::labelListList & pointEdges ( ) const

◆ pointFaces()

template<class FaceList, class PointField>
const Foam::labelListList & pointFaces ( ) const

◆ localFaces()

◆ boundaryFaces()

template<class FaceList, class PointField>
Foam::labelList boundaryFaces ( ) const

Extract list of local faces corresponding to the boundary edges.

Definition at line 27 of file PrimitivePatchBdryFaces.C.

References edgeFaces(), forAll, nBoundaryEdges(), nInternalEdges(), and UList< T >::size().

Referenced by uniqBoundaryFaces().

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

◆ uniqBoundaryFaces()

template<class FaceList, class PointField>
Foam::labelList uniqBoundaryFaces ( ) const

Extract sorted list of unique local faces associated with the boundary edges.

Definition at line 51 of file PrimitivePatchBdryFaces.C.

References boundaryFaces(), List< T >::resize(), UList< T >::size(), and Foam::sort().

Here is the call graph for this function:

◆ meshPoints()

template<class FaceList, class PointField>
const Foam::labelList & meshPoints ( ) const

Return labelList of mesh points in patch.

They are constructed by walking through the faces in incremental order and not sorted anymore.

Definition at line 251 of file PrimitivePatch.C.

Referenced by snappyLayerDriver::addLayers(), box(), polyDualMesh::calcFeatures(), checkPointManifold(), checkTopology(), patchPatchDist::correct(), cellDistFuncs::correctBoundaryCells(), triSurfaceTools::curvatures(), snappyLayerDriver::dupFaceZonePoints(), pointMeshTools::featurePointsEdges(), syncTools::getMasterPoints(), combineFaces::getOutsideFace(), globalIndexAndTransform::globalIndexAndTransform(), globalPoints::globalPoints(), isoSurfaceTopo::isoSurfaceTopo(), processorFaPatch::makeNonGlobalPatchPoints(), betaMax::markProcessorEdges(), PatchTools::matchPoints(), globalMeshData::mergePoints(), meshEdge(), meshEdge(), fieldSmoother::minSmoothField(), PrimitivePatch< List< face >, const pointField >::nPoints(), orientedSurface::orientedSurface(), volPointInterpolationAdjoint::pushUntransformedData(), cyclicAMIPolyPatch::resetAMI(), perfectInterface::setRefinement(), shortestPathSet::shortestPathSet(), fieldSmoother::smoothPatchNormals(), syncTools::syncEdgeList(), syncTools::syncEdgeList(), syncTools::syncEdgeMap(), globalMeshData::syncPointData(), syncTools::syncPointList(), syncTools::syncPointMap(), pointConstraints::syncUntransformedData(), triSurfaceTools::vertexNormals(), GTSsurfaceFormat< Face >::write(), GTSsurfaceFormat< Face >::write(), and AMIWeights::writeWeightField().

Here is the caller graph for this function:

◆ meshPointMap()

template<class FaceList, class PointField>
const Foam::Map< Foam::label > & meshPointMap ( ) const

◆ localPoints()

◆ localPointOrder()

template<class FaceList, class PointField>
const Foam::labelList & localPointOrder ( ) const

Return orders the local points for most efficient search.

Definition at line 293 of file PrimitivePatch.C.

◆ whichPoint()

template<class FaceList, class PointField>
Foam::label whichPoint ( const label gp) const

Given a global point index, return the local point index.

If the point is not found, return -1

Definition at line 306 of file PrimitivePatch.C.

References meshPointMap().

Referenced by slidingInterface::modifyMotionPoints().

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

◆ meshEdge() [1/3]

template<class FaceList, class PointField>
Foam::edge meshEdge ( const label edgei) const

From patch edge to global edge using meshPoints.

Definition at line 28 of file PrimitivePatchMeshEdges.C.

References edges(), and meshPoints().

Referenced by PatchTools::matchEdges(), meshEdge(), meshEdges(), meshEdges(), and meshEdges().

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

◆ meshEdge() [2/3]

template<class FaceList, class PointField>
Foam::edge meshEdge ( const edge & e) const

From patch edge to global edge using meshPoints.

Definition at line 36 of file PrimitivePatchMeshEdges.C.

References e, and meshPoints().

Here is the call graph for this function:

◆ findEdge()

template<class FaceList, class PointField>
Foam::label findEdge ( const edge & e) const

Search for edge (local point labels) and return its index in the edge list or -1 if not found.

Ignores invalid or out-of-range edges

Definition at line 175 of file PrimitivePatchMeshEdges.C.

References e, edges(), nPoints(), and pointEdges().

Referenced by PrimitivePatch< List< face >, const pointField >::whichEdge().

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

◆ meshEdges() [1/3]

template<class FaceList, class PointField>
Foam::labelList meshEdges ( const edgeList & allEdges,
const labelListList & cellEdges,
const labelList & faceCells ) const

Return labels of patch edges in the global edge list using cell addressing.

Definition at line 44 of file PrimitivePatchMeshEdges.C.

References DebugInFunction, edgeFaces(), forAll, found, meshEdge(), nEdges(), and Foam::nl.

Referenced by polyDualMesh::calcFeatures().

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

◆ meshEdges() [2/3]

template<class FaceList, class PointField>
Foam::labelList meshEdges ( const edgeList & allEdges,
const labelListList & pointEdges ) const

Return labels of patch edges into the global edge list using basic edge addressing.

Definition at line 95 of file PrimitivePatchMeshEdges.C.

References DebugInFunction, forAll, meshEdge(), nEdges(), Foam::nl, pointEdges(), and edge::start().

Here is the call graph for this function:

◆ meshEdge() [3/3]

template<class FaceList, class PointField>
Foam::label meshEdge ( const label edgei,
const edgeList & allEdges,
const labelListList & pointEdges ) const

Return label of the local patch edge into the global edge list using basic edge addressing.

Definition at line 129 of file PrimitivePatchMeshEdges.C.

References meshEdge(), pointEdges(), and edge::start().

Here is the call graph for this function:

◆ meshEdges() [3/3]

template<class FaceList, class PointField>
Foam::labelList meshEdges ( const labelUList & edgeLabels,
const edgeList & allEdges,
const labelListList & pointEdges ) const

Return labels of specified patch edges into the global edge list using basic edge addressing.

Definition at line 154 of file PrimitivePatchMeshEdges.C.

References forAll, meshEdge(), pointEdges(), and UList< T >::size().

Here is the call graph for this function:

◆ faceCentres()

template<class FaceList, class PointField>
const Foam::Field< typename Foam::PrimitivePatch< FaceList, PointField >::point_type > & faceCentres ( ) const

Return face centres for patch.

Definition at line 321 of file PrimitivePatch.C.

Referenced by triSurfaceMesh::coordinates(), FilterField::reset(), sphere(), triSurfaceTools::writeCloseness(), and AMIInterpolation::writeFaceConnectivity().

Here is the caller graph for this function:

◆ faceAreas()

template<class FaceList, class PointField>
const Foam::Field< typename Foam::PrimitivePatch< FaceList, PointField >::point_type > & faceAreas ( ) const

Return face area vectors for patch.

Definition at line 337 of file PrimitivePatch.C.

◆ magFaceAreas()

template<class FaceList, class PointField>
const Foam::Field< Foam::scalar > & magFaceAreas ( ) const

Return face area magnitudes for patch.

Definition at line 350 of file PrimitivePatch.C.

◆ faceNormals()

template<class FaceList, class PointField>
const Foam::Field< typename Foam::PrimitivePatch< FaceList, PointField >::point_type > & faceNormals ( ) const

◆ pointNormals()

template<class FaceList, class PointField>
const Foam::Field< typename Foam::PrimitivePatch< FaceList, PointField >::point_type > & pointNormals ( ) const

Return point normals for patch.

Definition at line 382 of file PrimitivePatch.C.

Referenced by slidingInterface::modifyMotionPoints(), and triSurfaceTools::surfaceNormal().

Here is the caller graph for this function:

◆ box()

template<class FaceList, class PointField>
Foam::Pair< typename Foam::PrimitivePatch< FaceList, PointField >::point_type > box ( ) const

The enclosing (bounding) box for the patch points.

Definition at line 122 of file PrimitivePatchBdryPoints.C.

References f(), Pair< T >::first(), hasMeshPoints(), Foam::max(), meshPoints(), Foam::min(), and Pair< T >::second().

Here is the call graph for this function:

◆ sphere()

template<class FaceList, class PointField>
Foam::scalar sphere ( const label facei) const

The enclosing (bounding) sphere radius^2 for specified face.

Definition at line 158 of file PrimitivePatchBdryPoints.C.

References faceCentres(), and Foam::magSqr().

Referenced by FilterField::reset().

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

◆ hasFaceAreas()

template<class FaceList, class PointField>
bool hasFaceAreas ( ) const
inline

Definition at line 653 of file PrimitivePatch.H.

◆ hasFaceCentres()

template<class FaceList, class PointField>
bool hasFaceCentres ( ) const
inline

Definition at line 654 of file PrimitivePatch.H.

◆ hasFaceNormals()

template<class FaceList, class PointField>
bool hasFaceNormals ( ) const
inline

Definition at line 655 of file PrimitivePatch.H.

◆ hasPointNormals()

template<class FaceList, class PointField>
bool hasPointNormals ( ) const
inline

Definition at line 656 of file PrimitivePatch.H.

◆ hasBoundaryPoints()

template<class FaceList, class PointField>
bool hasBoundaryPoints ( ) const
inline

Definition at line 658 of file PrimitivePatch.H.

◆ hasEdges()

template<class FaceList, class PointField>
bool hasEdges ( ) const
inline

Definition at line 663 of file PrimitivePatch.H.

◆ hasFaceFaces()

template<class FaceList, class PointField>
bool hasFaceFaces ( ) const
inline

Definition at line 664 of file PrimitivePatch.H.

◆ hasEdgeFaces()

template<class FaceList, class PointField>
bool hasEdgeFaces ( ) const
inline

Definition at line 665 of file PrimitivePatch.H.

◆ hasFaceEdges()

template<class FaceList, class PointField>
bool hasFaceEdges ( ) const
inline

Definition at line 666 of file PrimitivePatch.H.

◆ hasPointEdges()

template<class FaceList, class PointField>
bool hasPointEdges ( ) const
inline

Definition at line 668 of file PrimitivePatch.H.

◆ hasPointFaces()

template<class FaceList, class PointField>
bool hasPointFaces ( ) const
inline

Definition at line 669 of file PrimitivePatch.H.

◆ hasMeshPoints()

template<class FaceList, class PointField>
bool hasMeshPoints ( ) const
inline

Definition at line 671 of file PrimitivePatch.H.

Referenced by box().

Here is the caller graph for this function:

◆ hasMeshPointMap()

template<class FaceList, class PointField>
bool hasMeshPointMap ( ) const
inline

Definition at line 672 of file PrimitivePatch.H.

◆ projectPoints() [1/2]

template<class FaceList, class PointField>
template<class ToPatch>
List< objectHit > projectPoints ( const ToPatch & targetPatch,
const Field< point_type > & projectionDirection,
const intersection::algorithm = intersection::FULL_RAY,
const intersection::direction = intersection::VECTOR ) const

Project vertices of patch onto another patch.

◆ projectFaceCentres() [1/2]

template<class FaceList, class PointField>
template<class ToPatch>
List< objectHit > projectFaceCentres ( const ToPatch & targetPatch,
const Field< point_type > & projectionDirection,
const intersection::algorithm = intersection::FULL_RAY,
const intersection::direction = intersection::VECTOR ) const

Project vertices of patch onto another patch.

◆ edgeLoops()

template<class FaceList, class PointField>
const Foam::labelListList & edgeLoops ( ) const

Return list of closed loops of boundary vertices.

Edge loops are given as ordered lists of vertices in local addressing

Definition at line 127 of file PrimitivePatchEdgeLoops.C.

Referenced by combineFaces::getOutsideFace(), and combineFaces::setRefinement().

Here is the caller graph for this function:

◆ surfaceType()

template<class FaceList, class PointField>
Foam::PrimitivePatch< FaceList, PointField >::surfaceTopo surfaceType ( labelHashSet * badEdgesPtr = nullptr) const

Calculate surface type formed by patch, optionally recording the indices of illegal edges.

Return types:

  • all edges have two neighbours (manifold)
  • some edges have more than two neighbours (illegal)
  • other (open)

Definition at line 96 of file PrimitivePatchCheck.C.

References badEdgesPtr, edgeFaces(), forAll, foundError, ILLEGAL, MANIFOLD, OPEN, and UList< T >::size().

Here is the call graph for this function:

◆ checkTopology()

template<class FaceList, class PointField>
bool checkTopology ( const bool report = false,
labelHashSet * pointSetPtr = nullptr ) const

Check surface formed by patch for manifoldness (see above).

Return true if any incorrect edges are found. Insert vertices of incorrect edges into set.

Definition at line 153 of file PrimitivePatchCheck.C.

References e, edgeFaces(), edges(), Foam::endl(), forAll, foundError, Foam::Info, meshPoints(), pointSetPtr, and UList< T >::size().

Here is the call graph for this function:

◆ checkPointManifold()

template<class FaceList, class PointField>
bool checkPointManifold ( const bool report = false,
labelHashSet * pointSetPtr = nullptr ) const

Checks primitivePatch for faces sharing point but not edge.

This denotes a surface that is pinched at a single point (test for pinched at single edge is already in PrimitivePatch) Returns true if this situation found and puts conflicting (mesh)point in set. Based on all the checking routines in primitiveMesh.

Definition at line 195 of file PrimitivePatchCheck.C.

References UList< T >::contains(), edgeFaces(), Foam::endl(), forAll, foundError, Foam::Info, meshPoints(), Foam::nl, pFaces, pointEdges(), pointFaces(), pointSetPtr, and DynamicList< T, SizeMin >::resize_nocopy().

Referenced by cellClassification::fillRegionPoints().

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

◆ movePoints()

template<class FaceList, class PointField>
void movePoints ( const Field< point_type > & )
virtual

Correct patch after moving points.

Reimplemented in polyPatch.

Definition at line 91 of file PrimitivePatch.C.

References clearGeom(), DebugInFunction, and Foam::endl().

Here is the call graph for this function:

◆ operator=() [1/2]

template<class FaceList, class PointField>
void operator= ( const PrimitivePatch< FaceList, PointField > & rhs)

Copy assign faces. Leave points alone (could be a reference).

Definition at line 397 of file PrimitivePatch.C.

References clearOut(), PrimitivePatch(), and Foam::rhs().

Here is the call graph for this function:

◆ operator=() [2/2]

template<class FaceList, class PointField>
void operator= ( PrimitivePatch< FaceList, PointField > && rhs)

Move assign faces. Leave points alone (could be a reference).

Definition at line 417 of file PrimitivePatch.C.

References clearOut(), PrimitivePatch(), and Foam::rhs().

Here is the call graph for this function:

◆ whichEdge()

template<class FaceList, class PointField>
label whichEdge ( const edge & e) const
inline

Identical to findEdge.

Definition at line 778 of file PrimitivePatch.H.

Referenced by slidingInterface::modifyMotionPoints().

Here is the caller graph for this function:

◆ projectPoints() [2/2]

template<class FaceList, class PointField>
template<class ToPatch>
Foam::List< Foam::objectHit > projectPoints ( const ToPatch & targetPatch,
const Field< typename Foam::PrimitivePatch< FaceList, PointField >::point_type > & projectionDirection,
const intersection::algorithm alg,
const intersection::direction dir ) const

Definition at line 37 of file PrimitivePatchProjectPoints.C.

◆ projectFaceCentres() [2/2]

template<class FaceList, class PointField>
template<class ToPatch>
Foam::List< Foam::objectHit > projectFaceCentres ( const ToPatch & targetPatch,
const Field< typename Foam::PrimitivePatch< FaceList, PointField >::point_type > & projectionDirection,
const intersection::algorithm alg,
const intersection::direction dir ) const

Definition at line 267 of file PrimitivePatchProjectPoints.C.


The documentation for this class was generated from the following files: