Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
ProcessorTopology< Container, ProcPatch > Class Template Reference

Determines processor-processor connection. After instantiation contains on all processors the processor-processor connection table. More...

Inheritance diagram for ProcessorTopology< Container, ProcPatch >:
Inheritance graph
[legend]
Collaboration diagram for ProcessorTopology< Container, ProcPatch >:
Collaboration graph
[legend]

Public Member Functions

 ProcessorTopology (const Container &patches, const label comm)
 Construct from boundaryMesh. More...
 
const labelListprocPatchMap () const
 From neighbour processor to index in boundaryMesh. Local information. More...
 
const lduSchedulepatchSchedule () const
 Order in which the patches should be initialised/evaluated. More...
 
- Public Member Functions inherited from List
 List ()
 Null constructor. More...
 
 List (const label)
 Construct with given size. More...
 
 List (const label, const T &)
 Construct with given size and value for all elements. More...
 
 List (const List< T > &)
 Copy constructor. More...
 
 List (const Xfer< List< T > > &)
 Construct by transferring the parameter contents. More...
 
 List (List< T > &, bool reUse)
 Construct as copy or re-use as specified. More...
 
 List (const UList< T > &, const labelUList &mapAddressing)
 Construct as subset. More...
 
template<class InputIterator >
 List (InputIterator first, InputIterator last)
 Construct given start and end iterators. More...
 
template<unsigned Size>
 List (const FixedList< T, Size > &)
 Construct as copy of FixedList<T, Size> More...
 
 List (const PtrList< T > &)
 Construct as copy of PtrList<T> More...
 
 List (const SLList< T > &)
 Construct as copy of SLList<T> More...
 
 List (const UIndirectList< T > &)
 Construct as copy of UIndirectList<T> More...
 
 List (const BiIndirectList< T > &)
 Construct as copy of BiIndirectList<T> More...
 
 List (Istream &)
 Construct from Istream. More...
 
autoPtr< List< T > > clone () const
 Clone. More...
 
 ~List ()
 Destructor. More...
 
label size () const
 Return the number of elements in the UList. More...
 
void resize (const label)
 Alias for setSize(const label) More...
 
void resize (const label, const T &)
 Alias for setSize(const label, const T&) More...
 
void setSize (const label)
 Reset size of List. More...
 
void setSize (const label, const T &)
 Reset size of List and value for new elements. More...
 
void clear ()
 Clear the list, i.e. set size to zero. More...
 
void append (const T &)
 Append an element at the end of the list. More...
 
void append (const UList< T > &)
 Append a List at the end of this list. More...
 
void append (const UIndirectList< T > &)
 Append a UIndirectList at the end of this list. More...
 
void transfer (List< T > &)
 Transfer the contents of the argument List into this list. More...
 
template<unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
void transfer (DynamicList< T, SizeInc, SizeMult, SizeDiv > &)
 Transfer the contents of the argument List into this list. More...
 
void transfer (SortableList< T > &)
 Transfer the contents of the argument List into this list. More...
 
Xfer< List< T > > xfer ()
 Transfer contents to the Xfer container. More...
 
TnewElmt (const label)
 Return subscript-checked element of UList. More...
 
void operator= (const UList< T > &)
 Assignment from UList operator. Takes linear time. More...
 
void operator= (const List< T > &)
 Assignment operator. Takes linear time. More...
 
void operator= (const SLList< T > &)
 Assignment from SLList operator. Takes linear time. More...
 
void operator= (const UIndirectList< T > &)
 Assignment from UIndirectList operator. Takes linear time. More...
 
void operator= (const BiIndirectList< T > &)
 Assignment from BiIndirectList operator. Takes linear time. More...
 
void operator= (const T &)
 Assignment of all entries to the given value. More...
 
template<class T >
 List (const label s)
 
template<class T >
 List (const label s, const T &a)
 
template<class T >
 List (const List< T > &a)
 
template<class T >
 List (const Xfer< List< T > > &lst)
 
template<class T >
 List (List< T > &a, bool reUse)
 
template<class T >
 List (const UList< T > &a, const labelUList &map)
 
template<class T >
 List (const PtrList< T > &lst)
 
template<class T >
 List (const SLList< T > &lst)
 
template<class T >
 List (const UIndirectList< T > &lst)
 
template<class T >
 List (const BiIndirectList< T > &lst)
 
template<class T >
void transfer (List< T > &a)
 
template<class T >
void transfer (SortableList< T > &a)
 
template<class T >
 List ()
 
template<class T >
 List (Istream &is)
 

Static Public Member Functions

static lduSchedule nonBlockingSchedule (const Container &patches)
 Calculate non-blocking (i.e. unscheduled) schedule. More...
 
- Static Public Member Functions inherited from List
static const List< T > & null ()
 Return a null List. More...
 

Private Member Functions

labelList procNeighbours (const label nProcs, const Container &)
 Return all neighbouring processors of this processor. Set. More...
 

Private Attributes

labelList procPatchMap_
 Local map from neighbour proc to patchI. Different per processor! More...
 
lduSchedule patchSchedule_
 Order in which the patches should be initialised/evaluated. More...
 

Additional Inherited Members

- Public Types inherited from List
typedef SubList< TsubList
 Declare type of subList. More...
 
- Protected Member Functions inherited from List
void size (const label)
 Override size to be inconsistent with allocated storage. More...
 

Detailed Description

template<class Container, class ProcPatch>
class Foam::ProcessorTopology< Container, ProcPatch >

Determines processor-processor connection. After instantiation contains on all processors the processor-processor connection table.

this[procI] gives the list of neighbouring processors.

TODO: This does not currently correctly support multiple processor patches connecting two processors.

Source files

Definition at line 56 of file ProcessorTopology.H.

Constructor & Destructor Documentation

◆ ProcessorTopology()

ProcessorTopology ( const Container &  patches,
const label  comm 
)

Construct from boundaryMesh.

Definition at line 109 of file ProcessorTopology.C.

References DynamicList::append(), forAll, patches, patchi, procNeighbours(), and DynamicList::shrink().

Here is the call graph for this function:

Member Function Documentation

◆ procNeighbours()

Foam::labelList procNeighbours ( const label  nProcs,
const Container &  patches 
)
private

Return all neighbouring processors of this processor. Set.

procPatchMap_.

Definition at line 36 of file ProcessorTopology.C.

References forAll, Foam::max(), patches, patchi, and List::setSize().

Here is the call graph for this function:

◆ procPatchMap()

const labelList& procPatchMap ( ) const
inline

From neighbour processor to index in boundaryMesh. Local information.

(so not same over all processors)

Definition at line 92 of file ProcessorTopology.H.

Referenced by addPatchCellLayer::calcExtrudeInfo().

Here is the caller graph for this function:

◆ patchSchedule()

const lduSchedule& patchSchedule ( ) const
inline

Order in which the patches should be initialised/evaluated.

corresponding to the schedule

Definition at line 99 of file ProcessorTopology.H.

Referenced by pointBoundaryMesh::calcGeometry(), polyBoundaryMesh::calcGeometry(), pointBoundaryMesh::movePoints(), polyBoundaryMesh::movePoints(), pointBoundaryMesh::updateMesh(), and polyBoundaryMesh::updateMesh().

Here is the caller graph for this function:

◆ nonBlockingSchedule()

Foam::lduSchedule nonBlockingSchedule ( const Container &  patches)
static

Calculate non-blocking (i.e. unscheduled) schedule.

Definition at line 223 of file ProcessorTopology.C.

References forAll, patches, and patchi.

Field Documentation

◆ procPatchMap_

labelList procPatchMap_
private

Local map from neighbour proc to patchI. Different per processor!

-1 or patchI for connection to procID

Definition at line 67 of file ProcessorTopology.H.

◆ patchSchedule_

lduSchedule patchSchedule_
private

Order in which the patches should be initialised/evaluated.

corresponding to the schedule

Definition at line 71 of file ProcessorTopology.H.


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