globalPoints Class Reference

Calculates points shared by more than two processor patches or cyclic patches. More...

Public Member Functions

 ClassName ("globalPoints")
 Declare name of the class and its debug switch. More...
 
 globalPoints (const polyMesh &mesh, const bool keepAllPoints, const bool mergeSeparated)
 Construct from mesh. More...
 
 globalPoints (const polyMesh &mesh, const indirectPrimitivePatch &coupledPatch, const bool keepAllPoints, const bool mergeSeparated)
 Construct from mesh and patch of coupled faces. Difference with. More...
 
const globalIndexglobalIndices () const noexcept
 Global numbering of untransformed (mesh or patch) points. More...
 
const globalIndexAndTransformglobalTransforms () const noexcept
 Global numbering of transformed (mesh or patch) points. More...
 
const labelListListpointPoints () const noexcept
 Non-transformed connected points per point (in mapDistribute indices) More...
 
labelListListpointPoints () noexcept
 Non-transformed connected points per point (in mapDistribute indices) More...
 
const labelListListtransformedPointPoints () const noexcept
 Transformed points per point (in mapDistribute indices) More...
 
labelListListtransformedPointPoints () noexcept
 Transformed points per point (in mapDistribute indices) More...
 
const mapDistributemap () const
 Corresponding map. More...
 
mapDistributemap ()
 Corresponding map. More...
 
const Map< label > & meshToProcPoint () const noexcept
 From (mesh or patch) point to index in procPoints. More...
 
const DynamicList< labelPairList > & procPoints () const noexcept
 The procPoints are per point the connected points (in globalTransformAndIndex point numbers) More...
 

Detailed Description

Calculates points shared by more than two processor patches or cyclic patches.

Is used in globalMeshData. (this info is needed for point/edge communication where processor swaps are not enough to exchange data)

Works purely topological and using local communication only. Needs:

  • domain to be one single domain (i.e. all faces can be reached through face-cell walk).
  • patch face ordering to be ok
  • f[0] ordering on patch faces to be ok.

Works by constructing equivalence lists for all the points on processor patches. These list are in globalIndexAndTransform numbering E.g.

      ((7 93)(4 731)(3 114))

means point 93 on proc7 is connected to point 731 on proc4 and 114 on proc3. It then assigns the lowest numbered processor to be the local 'master' and constructs a mapDistribute to send all data to this master.

Algorithm:

  • get meshPoints of all my points on processor patches and initialize equivalence lists to this. loop
  • send to all neighbours in relative form:
    • patchFace
    • index in face
  • receive and convert into meshPoints. Add to to my equivalence lists.
  • mark meshPoints for which information changed.
  • send data for these meshPoints again endloop until nothing changes

At this point one will have complete point-point connectivity for all points on processor patches. Now (optionally) remove point equivalences of size 2. These are just normal points shared between two neighbouring procPatches.

Note: the data held is either mesh point labels (construct from mesh only) or patch point labels (construct from mesh and patch).

Source files

Definition at line 98 of file globalPoints.H.

Constructor & Destructor Documentation

◆ globalPoints() [1/2]

globalPoints ( const polyMesh mesh,
const bool  keepAllPoints,
const bool  mergeSeparated 
)

Construct from mesh.

keepAllPoints = false : filter out points that are on two neighbouring coupled patches only (so can be swapped) mergeSeparated: true : merge coupled points across separated patches. false : do not merge across coupled separated patches.

Definition at line 1118 of file globalPoints.C.

◆ globalPoints() [2/2]

globalPoints ( const polyMesh mesh,
const indirectPrimitivePatch coupledPatch,
const bool  keepAllPoints,
const bool  mergeSeparated 
)

Construct from mesh and patch of coupled faces. Difference with.

construct from mesh only is that this stores the meshToProcPoint, procPoints as patch local point labels instead of mesh point labels.

Definition at line 1146 of file globalPoints.C.

References PrimitivePatch< FaceList, PointField >::meshPointMap(), and PrimitivePatch< FaceList, PointField >::meshPoints().

Here is the call graph for this function:

Member Function Documentation

◆ ClassName()

ClassName ( "globalPoints"  )

Declare name of the class and its debug switch.

◆ globalIndices()

const globalIndex& globalIndices ( ) const
inlinenoexcept

Global numbering of untransformed (mesh or patch) points.

Definition at line 377 of file globalPoints.H.

◆ globalTransforms()

const globalIndexAndTransform& globalTransforms ( ) const
inlinenoexcept

Global numbering of transformed (mesh or patch) points.

Definition at line 385 of file globalPoints.H.

◆ pointPoints() [1/2]

const labelListList& pointPoints ( ) const
inlinenoexcept

Non-transformed connected points per point (in mapDistribute indices)

Definition at line 394 of file globalPoints.H.

◆ pointPoints() [2/2]

labelListList& pointPoints ( )
inlinenoexcept

Non-transformed connected points per point (in mapDistribute indices)

Definition at line 403 of file globalPoints.H.

◆ transformedPointPoints() [1/2]

const labelListList& transformedPointPoints ( ) const
inlinenoexcept

Transformed points per point (in mapDistribute indices)

Definition at line 412 of file globalPoints.H.

◆ transformedPointPoints() [2/2]

labelListList& transformedPointPoints ( )
inlinenoexcept

Transformed points per point (in mapDistribute indices)

Definition at line 421 of file globalPoints.H.

◆ map() [1/2]

const mapDistribute& map ( ) const
inline

Corresponding map.

Definition at line 429 of file globalPoints.H.

◆ map() [2/2]

mapDistribute& map ( )
inline

Corresponding map.

Definition at line 437 of file globalPoints.H.

◆ meshToProcPoint()

const Map<label>& meshToProcPoint ( ) const
inlinenoexcept

From (mesh or patch) point to index in procPoints.

Definition at line 445 of file globalPoints.H.

◆ procPoints()

const DynamicList<labelPairList>& procPoints ( ) const
inlinenoexcept

The procPoints are per point the connected points (in globalTransformAndIndex point numbers)

Definition at line 454 of file globalPoints.H.


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