All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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...
 
 globalPoints (const globalPoints &)=delete
 Disallow default bitwise copy construction. 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...
 
void operator= (const globalPoints &)=delete
 Disallow default bitwise assignment. 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 100 of file globalPoints.H.

Constructor & Destructor Documentation

◆ globalPoints() [1/3]

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 1093 of file globalPoints.C.

◆ globalPoints() [2/3]

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 1121 of file globalPoints.C.

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

Here is the call graph for this function:

◆ globalPoints() [3/3]

globalPoints ( const globalPoints )
delete

Disallow default bitwise copy construction.

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 306 of file globalPoints.H.

◆ globalTransforms()

const globalIndexAndTransform& globalTransforms ( ) const
inline

Global numbering of transformed (mesh or patch) points.

Definition at line 312 of file globalPoints.H.

References globalPoints::pointPoints().

Here is the call graph for this function:

◆ pointPoints() [1/2]

const labelListList& pointPoints ( ) const
inline

Non-transformed connected points per point (in mapDistribute.

indices)

Definition at line 319 of file globalPoints.H.

Referenced by globalPoints::globalTransforms(), and minEqOp< labelPair >::operator()().

Here is the caller graph for this function:

◆ pointPoints() [2/2]

labelListList& pointPoints ( )
inline

Non-transformed connected points per point (in mapDistribute.

indices)

Definition at line 326 of file globalPoints.H.

◆ transformedPointPoints() [1/2]

const labelListList& transformedPointPoints ( ) const
inline

Transformed points per point (in mapDistribute indices)

Definition at line 332 of file globalPoints.H.

Referenced by minEqOp< labelPair >::operator()().

Here is the caller graph for this function:

◆ transformedPointPoints() [2/2]

labelListList& transformedPointPoints ( )
inline

Transformed points per point (in mapDistribute indices)

Definition at line 338 of file globalPoints.H.

◆ map() [1/2]

const mapDistribute& map ( ) const
inline

Corresponding map.

Definition at line 344 of file globalPoints.H.

Referenced by minEqOp< labelPair >::operator()().

Here is the caller graph for this function:

◆ map() [2/2]

mapDistribute& map ( )
inline

Corresponding map.

Definition at line 350 of file globalPoints.H.

◆ meshToProcPoint()

const Map<label>& meshToProcPoint ( ) const
inline

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

Definition at line 356 of file globalPoints.H.

References globalPoints::operator=(), and globalPoints::procPoints().

Here is the call graph for this function:

◆ procPoints()

const DynamicList<labelPairList>& procPoints ( ) const
inline

procPoints is per point the connected points (in

globalTransformAndIndex point numbers)

Definition at line 363 of file globalPoints.H.

Referenced by globalPoints::meshToProcPoint().

Here is the caller graph for this function:

◆ operator=()

void operator= ( const globalPoints )
delete

Disallow default bitwise assignment.

Referenced by globalPoints::meshToProcPoint().

Here is the caller graph for this function:

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