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 ()=default
 Default construct (empty) More...
 
 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...
 
label nProcs () const noexcept
 The number of processors used by the topology. More...
 
const labelListListprocNeighbours () const noexcept
 
const lduSchedulepatchSchedule () const noexcept
 
label procPatchLookup (const label proci) const
 Which local boundary is attached to specified processor. 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 63 of file processorTopology.H.

Constructor & Destructor Documentation

◆ processorTopology() [1/3]

processorTopology ( )
default

Default construct (empty)

◆ processorTopology() [2/3]

processorTopology ( const processorTopology )
default

Copy construct.

◆ processorTopology() [3/3]

Move construct.

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.

◆ nProcs()

label nProcs ( ) const
inlinenoexcept

The number of processors used by the topology.

Definition at line 138 of file processorTopology.H.

References UList< T >::size().

Referenced by processorTopology::New().

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

◆ procNeighbours()

const labelListList & procNeighbours ( ) const
inlinenoexcept

The processor to processor connection topology (like an adjacency list). Globally synchronized information

Definition at line 145 of file processorTopology.H.

Referenced by Cloud< ParticleType >::move().

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 152 of file processorTopology.H.

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

Here is the caller graph for this function:

◆ procPatchLookup()

label procPatchLookup ( const label  proci) const
inline

Which local boundary is attached to specified processor.

Local information (so not same over all processors)

Returns
-1 if not currently connected to specified processor.

Definition at line 160 of file processorTopology.H.

Referenced by addPatchCellLayer::calcExtrudeInfo().

Here is the caller graph for this function:

◆ New() [2/2]

Foam::processorTopology New ( const PatchListType &  patches,
const label  comm 
)

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