processorTopology Class Reference

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

Public Member Functions

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

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.

◆ processorTopology() [2/3]

Move construct.

◆ processorTopology() [3/3]

Default construct (empty)

Definition at line 26 of file processorTopology.C.

Member Function Documentation

◆ operator=() [1/2]

processorTopology& operator= ( const processorTopology )
default

Copy assignment.

◆ operator=() [2/2]

processorTopology& operator= ( processorTopology &&  )
default

Move assignment.

◆ New() [1/2]

static 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.

◆ comm()

label comm ( ) const
inlinenoexcept

The communicator used during creation of the topology.

Definition at line 162 of file processorTopology.H.

◆ procNeighbours()

const Foam::labelList & procNeighbours ( ) const

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

Definition at line 35 of file processorTopology.C.

Referenced by FaceCellWave< Foam::wallPointData< bool > >::handleProcPatches(), and Cloud< passivePositionParticle >::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 95 of file processorTopology.C.

References Pstream::allGatherList(), UPstream::msgType(), UPstream::myProcNo(), UPstream::nProcs(), UPstream::parRun(), and List< T >::resize().

Referenced by processorTopology::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.

References HashTable< T, Key, Hash >::lookup().

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

Here is the call graph for this function:
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.

Referenced by faGlobalMeshData::patchSchedule(), and globalMeshData::patchSchedule().

Here is the caller graph for this function:

◆ New() [2/2]


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