Loading...
Searching...
No Matches
processorTopology Class Reference

Determines/represents processor-processor connection. After instantiation contains the processor-processor connection table (globally synchronized on all processors). More...

#include <processorTopology.H>

Public Member Functions

 processorTopology (const processorTopology &)=default
 Copy construct.
 processorTopology (processorTopology &&)=default
 Move construct.
processorTopologyoperator= (const processorTopology &)=default
 Copy assignment.
processorTopologyoperator= (processorTopology &&)=default
 Move assignment.
 processorTopology () noexcept
 Default construct (empty).
label comm () const noexcept
 The communicator used during creation of the topology.
const labelListprocNeighbours () const
 The neighbour processor connections (ascending order) associated with the local rank.
const labelListListprocAdjacency () const
 The complete processor to processor connection adjacency table. Globally synchronized information.
label procPatchLookup (const label proci) const
 Which local boundary is attached to specified neighbour processor.
const lduSchedulepatchSchedule () const noexcept
 Order in which the patches should be initialised/evaluated corresponding to the schedule.
template<class ProcPatch, class PatchListType>
Foam::processorTopology New (const PatchListType &patches, const label comm)

Static Public Member Functions

template<class ProcPatch, class PatchListType>
static processorTopology New (const PatchListType &patches, const label comm)
 Factory method to create topology, schedule and proc/patch maps.

Detailed Description

Determines/represents processor-processor connection. After instantiation contains the processor-processor connection table (globally synchronized on all processors).

Note
A processorTopology is usually generated by using the New factory method, which has been wrapped into a separate header to minimize dependencies.
Warning
Does not currently correctly support multiple processor patches connecting two processors.
Source files

Definition at line 61 of file processorTopology.H.

Constructor & Destructor Documentation

◆ processorTopology() [1/3]

processorTopology ( const processorTopology & )
default

Copy construct.

References processorTopology().

Referenced by New(), operator=(), operator=(), processorTopology(), and processorTopology().

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

◆ processorTopology() [2/3]

processorTopology ( processorTopology && )
default

Move construct.

References processorTopology().

Here is the call graph for this function:

◆ processorTopology() [3/3]

processorTopology ( )
noexcept

Default construct (empty).

Definition at line 26 of file processorTopology.C.

References Foam::noexcept.

Member Function Documentation

◆ operator=() [1/2]

processorTopology & operator= ( const processorTopology & )
default

Copy assignment.

References processorTopology().

Here is the call graph for this function:

◆ operator=() [2/2]

processorTopology & operator= ( processorTopology && )
default

Move assignment.

References Foam::noexcept, and processorTopology().

Here is the call graph for this function:

◆ New() [1/2]

template<class ProcPatch, class PatchListType>
processorTopology New ( const PatchListType & patches,
const label comm )
static

Factory method to create topology, schedule and proc/patch maps.

Scans the list of patches for processor connections corresponding to the ProcPatch type.

References comm(), New(), patches, and processorTopology().

Referenced by New().

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

◆ comm()

label comm ( ) const
inlinenoexcept

The communicator used during creation of the topology.

Definition at line 162 of file processorTopology.H.

References comm(), and Foam::noexcept.

Referenced by comm(), and New().

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

◆ procNeighbours()

const Foam::labelList & procNeighbours ( ) const

The neighbour processor connections (ascending order) associated with the local rank.

Definition at line 34 of file processorTopology.C.

Referenced by FaceCellWave< Type, TrackingData >::handleProcPatches(), and Cloud< ParticleType >::move().

Here is the caller graph for this function:

◆ procAdjacency()

const Foam::labelListList & procAdjacency ( ) const

The complete processor to processor connection adjacency table. Globally synchronized information.

Likely demand-driven data.

Definition at line 94 of file processorTopology.C.

References Pstream::allGatherList(), UPstream::msgType(), UPstream::myProcNo(), UPstream::nProcs(), and UPstream::parRun().

Referenced by New().

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

◆ procPatchLookup()

label procPatchLookup ( const label proci) const
inline

Which local boundary is attached to specified neighbour processor.

Returns
-1 if not currently connected to specified processor.

Definition at line 184 of file processorTopology.H.

Referenced by addPatchCellLayer::calcExtrudeInfo(), and New().

Here is the caller graph for this function:

◆ patchSchedule()

const lduSchedule & patchSchedule ( ) const
inlinenoexcept

Order in which the patches should be initialised/evaluated corresponding to the schedule.

Definition at line 193 of file processorTopology.H.

References Foam::noexcept.

◆ New() [2/2]


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