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
 Global numbering of untransformed (mesh or patch) points. More...
 
const globalIndexAndTransformglobalTransforms () const
 Global numbering of transformed (mesh or patch) points. More...
 
const labelListListpointPoints () const
 Non-transformed connected points per point (in mapDistribute. More...
 
labelListListpointPoints ()
 Non-transformed connected points per point (in mapDistribute. More...
 
const labelListListtransformedPointPoints () const
 Transformed points per point (in mapDistribute indices) More...
 
labelListListtransformedPointPoints ()
 Transformed points per point (in mapDistribute indices) More...
 
const mapDistributemap () const
 Corresponding map. More...
 
mapDistributemap ()
 Corresponding map. More...
 
const Map< label > & meshToProcPoint () const
 From (mesh or patch) point to index in procPoints. More...
 
const DynamicList< labelPairList > & procPoints () const
 procPoints is per point the connected points (in 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 102 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 1092 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 1120 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
inline

Global numbering of untransformed (mesh or patch) points.

Definition at line 311 of file globalPoints.H.

◆ globalTransforms()

const globalIndexAndTransform& globalTransforms ( ) const
inline

Global numbering of transformed (mesh or patch) points.

Definition at line 317 of file globalPoints.H.

◆ pointPoints() [1/2]

const labelListList& pointPoints ( ) const
inline

Non-transformed connected points per point (in mapDistribute.

indices)

Definition at line 324 of file globalPoints.H.

◆ pointPoints() [2/2]

labelListList& pointPoints ( )
inline

Non-transformed connected points per point (in mapDistribute.

indices)

Definition at line 331 of file globalPoints.H.

◆ transformedPointPoints() [1/2]

const labelListList& transformedPointPoints ( ) const
inline

Transformed points per point (in mapDistribute indices)

Definition at line 337 of file globalPoints.H.

◆ transformedPointPoints() [2/2]

labelListList& transformedPointPoints ( )
inline

Transformed points per point (in mapDistribute indices)

Definition at line 343 of file globalPoints.H.

◆ map() [1/2]

const mapDistribute& map ( ) const
inline

Corresponding map.

Definition at line 349 of file globalPoints.H.

◆ map() [2/2]

mapDistribute& map ( )
inline

Corresponding map.

Definition at line 355 of file globalPoints.H.

◆ meshToProcPoint()

const Map<label>& meshToProcPoint ( ) const
inline

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

Definition at line 361 of file globalPoints.H.

◆ procPoints()

const DynamicList<labelPairList>& procPoints ( ) const
inline

procPoints is per point the connected points (in

globalTransformAndIndex point numbers)

Definition at line 368 of file globalPoints.H.


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