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... | |
processorTopology & | operator= (const processorTopology &)=default |
Copy assignment. More... | |
processorTopology & | operator= (processorTopology &&)=default |
Move assignment. More... | |
processorTopology () noexcept | |
Default construct (empty) More... | |
label | comm () const noexcept |
The communicator used during creation of the topology. More... | |
const labelList & | procNeighbours () const |
The neighbour processor connections (ascending order) associated with the local rank. More... | |
const labelListList & | procAdjacency () 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 lduSchedule & | patchSchedule () 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... | |
Determines/represents processor-processor connection. After instantiation contains the processor-processor connection table (globally synchronized on all processors).
New
factory method, which has been wrapped into a separate header to minimize dependencies.Definition at line 61 of file processorTopology.H.
|
default |
Copy construct.
|
default |
Move construct.
|
noexcept |
Default construct (empty)
Definition at line 26 of file processorTopology.C.
|
default |
Copy assignment.
|
default |
Move assignment.
|
static |
Factory method to create topology, schedule and proc/patch maps.
Scans the list of patches for processor connections corresponding to the ProcPatch type.
|
inlinenoexcept |
The communicator used during creation of the topology.
Definition at line 162 of file processorTopology.H.
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< Foam::wallPointData< bool > >::handleProcPatches(), and Cloud< passivePositionParticle >::move().
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(), UPstream::parRun(), and List< T >::resize().
Referenced by processorTopology::New().
|
inline |
Which local boundary is attached to specified neighbour processor.
Definition at line 184 of file processorTopology.H.
References HashTable< T, Key, Hash >::lookup().
Referenced by addPatchCellLayer::calcExtrudeInfo(), and processorTopology::New().
|
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().
Foam::processorTopology New | ( | const PatchListType & | patches, |
const label | comm | ||
) |
Definition at line 48 of file processorTopologyNew.H.
References UList< T >::first(), forAll, patches, processorTopology::procAdjacency(), processorTopology::procPatchLookup(), DynamicList< T, SizeMin >::push_back(), HashTable< T, Key, Hash >::reserve(), List< T >::resize(), and UList< T >::size().