mapDistributeBase Class Reference

Class containing processor-to-processor mapping information. More...

Inheritance diagram for mapDistributeBase:
[legend]
Collaboration diagram for mapDistributeBase:
[legend]

Public Member Functions

 ClassName ("mapDistributeBase")
 
 mapDistributeBase (const label comm=UPstream::worldComm)
 Construct null. More...
 
 mapDistributeBase (const mapDistributeBase &map)
 Copy construct. More...
 
 mapDistributeBase (mapDistributeBase &&map)
 Move construct. More...
 
 mapDistributeBase (const label constructSize, labelListList &&subMap, labelListList &&constructMap, const bool subHasFlip=false, const bool constructHasFlip=false, const label comm=UPstream::worldComm)
 Construct from components. More...
 
 mapDistributeBase (const labelUList &sendProcs, const labelUList &recvProcs, const label comm=UPstream::worldComm)
 Construct from reverse addressing: per data item the send. More...
 
 mapDistributeBase (const globalIndex &, labelList &elements, List< Map< label >> &compactMap, const int tag=Pstream::msgType(), const label comm=UPstream::worldComm)
 Construct from list of (possibly) remote elements in globalIndex. More...
 
 mapDistributeBase (const globalIndex &, labelListList &cellCells, List< Map< label >> &compactMap, const int tag=Pstream::msgType(), const label comm=UPstream::worldComm)
 Special variant that works with the info sorted into bins. More...
 
 mapDistributeBase (labelListList &&subMap, const bool subHasFlip=false, const bool constructHasFlip=false, const label comm=UPstream::worldComm)
 Construct from my elements to send. Assumes layout is my elements. More...
 
 mapDistributeBase (Istream &is)
 Construct from Istream. More...
 
label constructSize () const
 Constructed data size. More...
 
label & constructSize ()
 Constructed data size. More...
 
const labelListListsubMap () const
 From subsetted data back to original data. More...
 
labelListListsubMap ()
 From subsetted data back to original data. More...
 
const labelListListconstructMap () const
 From subsetted data to new reconstructed data. More...
 
labelListListconstructMap ()
 From subsetted data to new reconstructed data. More...
 
bool subHasFlip () const
 Does subMap include a sign. More...
 
boolsubHasFlip ()
 Does subMap include a sign. More...
 
bool constructHasFlip () const
 Does constructMap include a sign. More...
 
boolconstructHasFlip ()
 Does constructMap include a sign. More...
 
label comm () const
 
const List< labelPair > & schedule () const
 Return a schedule. Demand driven. See above. More...
 
void transfer (mapDistributeBase &rhs)
 Transfer the contents of the argument and annul the argument. More...
 
void compact (const boolList &elemIsUsed, const int tag=UPstream::msgType())
 Compact maps. Gets per field a bool whether it is used (locally) More...
 
void compact (const boolList &elemIsUsed, const label localSize, labelList &oldToNewSub, labelList &oldToNewConstruct, const int tag=UPstream::msgType())
 Compact all maps and layout. Returns compaction maps for. More...
 
template<class T >
void distribute (List< T > &fld, const int tag=UPstream::msgType()) const
 Distribute data using default commsType. More...
 
template<class T , class negateOp >
void distribute (List< T > &fld, const negateOp &negOp, const int tag=UPstream::msgType()) const
 Distribute data using default commsType. More...
 
template<class T >
void distribute (DynamicList< T > &fld, const int tag=UPstream::msgType()) const
 Distribute data using default commsType. More...
 
template<class T >
void reverseDistribute (const label constructSize, List< T > &, const int tag=UPstream::msgType()) const
 Reverse distribute data using default commsType. More...
 
template<class T >
void reverseDistribute (const label constructSize, const T &nullValue, List< T > &fld, const int tag=UPstream::msgType()) const
 Reverse distribute data using default commsType. More...
 
template<class T >
void send (PstreamBuffers &, const List< T > &) const
 Do all sends using PstreamBuffers. More...
 
template<class T >
void receive (PstreamBuffers &, List< T > &) const
 Do all receives using PstreamBuffers. More...
 
void printLayout (Ostream &os) const
 Debug: print layout. Can only be used on maps with sorted. More...
 
void updateMesh (const mapPolyMesh &)
 Correct for topo change. More...
 
void operator= (const mapDistributeBase &rhs)
 Copy assignment. More...
 
void operator= (mapDistributeBase &&rhs)
 Move assignment. More...
 

Static Public Member Functions

static List< labelPairschedule (const labelListList &subMap, const labelListList &constructMap, const int tag, const label comm=UPstream::worldComm)
 Calculate a schedule. See above. More...
 
static label renumber (const globalIndex &, const List< Map< label >> &compactMap, const label globalElement)
 Helper for construct from globalIndex. Renumbers element. More...
 
template<class T , class negateOp >
static void distribute (const Pstream::commsTypes commsType, const List< labelPair > &schedule, const label constructSize, const labelListList &subMap, const bool subHasFlip, const labelListList &constructMap, const bool constructHasFlip, List< T > &, const negateOp &negOp, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Distribute data. Note:schedule only used for. More...
 
template<class T , class CombineOp , class negateOp >
static void distribute (const Pstream::commsTypes commsType, const List< labelPair > &schedule, const label constructSize, const labelListList &subMap, const bool subHasFlip, const labelListList &constructMap, const bool constructHasFlip, List< T > &, const T &nullValue, const CombineOp &cop, const negateOp &negOp, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Distribute data. If multiple processors writing to same. More...
 

Protected Member Functions

void calcCompactAddressing (const globalIndex &globalNumbering, const labelUList &elements, List< Map< label >> &compactMap) const
 Construct per processor compact addressing of the global elements. More...
 
void calcCompactAddressing (const globalIndex &globalNumbering, const labelListList &elements, List< Map< label >> &compactMap) const
 
void exchangeAddressing (const int tag, const globalIndex &globalNumbering, labelList &elements, List< Map< label >> &compactMap, labelList &compactStart)
 
void exchangeAddressing (const int tag, const globalIndex &globalNumbering, labelListList &elements, List< Map< label >> &compactMap, labelList &compactStart)
 

Static Protected Member Functions

static void checkReceivedSize (const label proci, const label expectedSize, const label receivedSize)
 
template<class T , class CombineOp , class negateOp >
static void flipAndCombine (const labelUList &map, const bool hasFlip, const UList< T > &rhs, const CombineOp &cop, const negateOp &negOp, List< T > &lhs)
 
template<class T , class negateOp >
static T accessAndFlip (const UList< T > &fld, const label index, const bool hasFlip, const negateOp &negOp)
 

Protected Attributes

label constructSize_
 Size of reconstructed data. More...
 
labelListList subMap_
 Maps from subsetted data back to original data. More...
 
labelListList constructMap_
 Maps from subsetted data to new reconstructed data. More...
 
bool subHasFlip_
 Whether subMap includes flip or not. More...
 
bool constructHasFlip_
 Whether constructMap includes flip or not. More...
 
label comm_
 Communicator to use for parallel operations. More...
 
autoPtr< List< labelPair > > schedulePtr_
 Schedule. More...
 

Friends

Istreamoperator>> (Istream &, mapDistributeBase &)
 Read dictionary from Istream. More...
 
Ostreamoperator<< (Ostream &, const mapDistributeBase &)
 Write dictionary to Ostream. More...
 

Detailed Description

Class containing processor-to-processor mapping information.

We store mapping from the bits-to-send to the complete starting list (subXXXMap) and from the received bits to their location in the new list (constructXXXMap).

Note: Schedule is a list of processor pairs (one send, one receive. One of them will be myself) which forms a scheduled (i.e. non-buffered) exchange. See distribute on how to use it. Note2: number of items sent on one processor have to equal the number of items received on the other processor.

To aid constructing these maps there are the constructors from global numbering, either with or without transforms.

Constructors using compact numbering: layout is

  • all my own elements first (whether used or not)
  • followed by used-only remote elements sorted by remote processor. So e.g 4 procs and on proc 1 the compact table will first have all globalIndex.localSize() elements from proc1 followed by used-only elements of proc0, proc2, proc3. The constructed mapDistributeBase sends the local elements from and receives the remote elements into their compact position. compactMap[proci] is the position of elements from proci in the compact map. compactMap[myProcNo()] is empty since trivial addressing.

It rewrites the input global indices into indices into the constructed data.

When constructing from components optionally a 'flip' on the maps can be specified. This will interpret the map values as index+flip, similar to e.g. faceProcAddressing. The flip will only be applied to fieldTypes (scalar, vector, .. triad)

Source files

Definition at line 103 of file mapDistributeBase.H.

Constructor & Destructor Documentation

◆ mapDistributeBase() [1/9]

mapDistributeBase ( const label  comm = UPstream::worldComm)

Construct null.

Definition at line 566 of file mapDistributeBase.C.

◆ mapDistributeBase() [2/9]

Copy construct.

Definition at line 577 of file mapDistributeBase.C.

◆ mapDistributeBase() [3/9]

Move construct.

Definition at line 589 of file mapDistributeBase.C.

References mapDistributeBase::transfer().

Here is the call graph for this function:

◆ mapDistributeBase() [4/9]

mapDistributeBase ( const label  constructSize,
labelListList &&  subMap,
labelListList &&  constructMap,
const bool  subHasFlip = false,
const bool  constructHasFlip = false,
const label  comm = UPstream::worldComm 
)

Construct from components.

Definition at line 598 of file mapDistributeBase.C.

◆ mapDistributeBase() [5/9]

mapDistributeBase ( const labelUList sendProcs,
const labelUList recvProcs,
const label  comm = UPstream::worldComm 
)

Construct from reverse addressing: per data item the send.

processor and the receive processor. (note: data is not stored sorted per processor so cannot use printLayout).

Definition at line 618 of file mapDistributeBase.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, forAll, UPstream::myProcNo(), UPstream::nProcs(), List< T >::setSize(), UList< T >::size(), and Foam::Zero.

Here is the call graph for this function:

◆ mapDistributeBase() [6/9]

mapDistributeBase ( const globalIndex globalNumbering,
labelList elements,
List< Map< label >> &  compactMap,
const int  tag = Pstream::msgType(),
const label  comm = UPstream::worldComm 
)

Construct from list of (possibly) remote elements in globalIndex.

numbering (or -1). Determines compact numbering (see above) and distribute map to get data into this ordering and renumbers the elements to be in compact numbering.

Definition at line 697 of file mapDistributeBase.C.

References Foam::expressions::patchExpr::debug, and Foam::Pout.

◆ mapDistributeBase() [7/9]

mapDistributeBase ( const globalIndex globalNumbering,
labelListList cellCells,
List< Map< label >> &  compactMap,
const int  tag = Pstream::msgType(),
const label  comm = UPstream::worldComm 
)

Special variant that works with the info sorted into bins.

according to local indices. E.g. think cellCells where cellCells[localCellI] is a list of global cells

Definition at line 758 of file mapDistributeBase.C.

References Foam::expressions::patchExpr::debug, and Foam::Pout.

◆ mapDistributeBase() [8/9]

mapDistributeBase ( labelListList &&  subMap,
const bool  subHasFlip = false,
const bool  constructHasFlip = false,
const label  comm = UPstream::worldComm 
)
explicit

Construct from my elements to send. Assumes layout is my elements.

first followed by elements from all other processors in consecutive order

Definition at line 819 of file mapDistributeBase.C.

References Pstream::exchangeSizes(), forAll, UPstream::myProcNo(), UPstream::nProcs(), List< T >::setSize(), and List< T >::transfer().

Here is the call graph for this function:

◆ mapDistributeBase() [9/9]

Construct from Istream.

Definition at line 875 of file mapDistributeBase.C.

Member Function Documentation

◆ checkReceivedSize()

void checkReceivedSize ( const label  proci,
const label  expectedSize,
const label  receivedSize 
)
staticprotected

Definition at line 204 of file mapDistributeBase.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ calcCompactAddressing() [1/2]

void calcCompactAddressing ( const globalIndex globalNumbering,
const labelUList elements,
List< Map< label >> &  compactMap 
) const
protected

Construct per processor compact addressing of the global elements.

needed. The ones from the local processor are not included since these are always all needed.

Definition at line 299 of file mapDistributeBase.C.

References forAll, globalIndex::isLocal(), UPstream::myProcNo(), UPstream::nProcs(), globalIndex::toLocal(), globalIndex::whichProcID(), and Foam::Zero.

Here is the call graph for this function:

◆ calcCompactAddressing() [2/2]

void calcCompactAddressing ( const globalIndex globalNumbering,
const labelListList elements,
List< Map< label >> &  compactMap 
) const
protected

Definition at line 347 of file mapDistributeBase.C.

References forAll, globalIndex::isLocal(), UPstream::myProcNo(), UPstream::nProcs(), globalIndex::toLocal(), globalIndex::whichProcID(), and Foam::Zero.

Here is the call graph for this function:

◆ exchangeAddressing() [1/2]

void exchangeAddressing ( const int  tag,
const globalIndex globalNumbering,
labelList elements,
List< Map< label >> &  compactMap,
labelList compactStart 
)
protected

Definition at line 401 of file mapDistributeBase.C.

References forAll, forAllIters, Foam::identity(), globalIndex::localSize(), UPstream::myProcNo(), UPstream::nProcs(), Foam::renumber(), and List< T >::setSize().

Here is the call graph for this function:

◆ exchangeAddressing() [2/2]

void exchangeAddressing ( const int  tag,
const globalIndex globalNumbering,
labelListList elements,
List< Map< label >> &  compactMap,
labelList compactStart 
)
protected

Definition at line 482 of file mapDistributeBase.C.

References forAll, forAllIters, Foam::identity(), globalIndex::localSize(), UPstream::myProcNo(), UPstream::nProcs(), Foam::renumber(), and List< T >::setSize().

Here is the call graph for this function:

◆ flipAndCombine()

void flipAndCombine ( const labelUList map,
const bool  hasFlip,
const UList< T > &  rhs,
const CombineOp &  cop,
const negateOp &  negOp,
List< T > &  lhs 
)
staticprotected

Definition at line 38 of file mapDistributeBaseTemplates.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, and UList< T >::size().

Here is the call graph for this function:

◆ accessAndFlip()

T accessAndFlip ( const UList< T > &  fld,
const label  index,
const bool  hasFlip,
const negateOp &  negOp 
)
staticprotected

Definition at line 83 of file mapDistributeBaseTemplates.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, fld, and T.

Referenced by mapDistributeBase::send().

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

◆ ClassName()

ClassName ( "mapDistributeBase"  )

◆ constructSize() [1/2]

◆ constructSize() [2/2]

label& constructSize ( )
inline

Constructed data size.

Definition at line 283 of file mapDistributeBase.H.

References mapDistributeBase::constructSize_.

◆ subMap() [1/2]

const labelListList& subMap ( ) const
inline

From subsetted data back to original data.

Definition at line 289 of file mapDistributeBase.H.

References mapDistributeBase::subMap_.

Referenced by AMIInterpolation::agglomerate(), refinementHistory::distribute(), distributedTriSurfaceMesh::findNearest(), distributedTriSurfaceMesh::getVolumeType(), and extendedCellToFaceStencil::writeStencilStats().

Here is the caller graph for this function:

◆ subMap() [2/2]

labelListList& subMap ( )
inline

From subsetted data back to original data.

Definition at line 295 of file mapDistributeBase.H.

References mapDistributeBase::subMap_.

◆ constructMap() [1/2]

const labelListList& constructMap ( ) const
inline

From subsetted data to new reconstructed data.

Definition at line 301 of file mapDistributeBase.H.

References mapDistributeBase::constructMap_.

Referenced by AMIInterpolation::agglomerate(), refinementHistory::distribute(), distributedTriSurfaceMesh::findNearest(), distributedTriSurfaceMesh::getVolumeType(), and mappedPatchFieldBase< scalar >::initRetrieveField().

Here is the caller graph for this function:

◆ constructMap() [2/2]

labelListList& constructMap ( )
inline

From subsetted data to new reconstructed data.

Definition at line 307 of file mapDistributeBase.H.

References mapDistributeBase::constructMap_.

◆ subHasFlip() [1/2]

bool subHasFlip ( ) const
inline

Does subMap include a sign.

Definition at line 313 of file mapDistributeBase.H.

References mapDistributeBase::subHasFlip_.

Referenced by distributedTriSurfaceMesh::findNearest(), and distributedTriSurfaceMesh::getVolumeType().

Here is the caller graph for this function:

◆ subHasFlip() [2/2]

bool& subHasFlip ( )
inline

Does subMap include a sign.

Definition at line 319 of file mapDistributeBase.H.

References mapDistributeBase::subHasFlip_.

◆ constructHasFlip() [1/2]

bool constructHasFlip ( ) const
inline

Does constructMap include a sign.

Definition at line 325 of file mapDistributeBase.H.

References mapDistributeBase::constructHasFlip_.

Referenced by distributedTriSurfaceMesh::findNearest(), and distributedTriSurfaceMesh::getVolumeType().

Here is the caller graph for this function:

◆ constructHasFlip() [2/2]

bool& constructHasFlip ( )
inline

Does constructMap include a sign.

Definition at line 331 of file mapDistributeBase.H.

References mapDistributeBase::constructHasFlip_.

◆ comm()

label comm ( ) const
inline

Definition at line 336 of file mapDistributeBase.H.

References mapDistributeBase::comm_.

Referenced by mappedPatchBase::distribute(), distributedTriSurfaceMesh::findNearest(), and distributedTriSurfaceMesh::getVolumeType().

Here is the caller graph for this function:

◆ schedule() [1/2]

Foam::List< Foam::labelPair > schedule ( const labelListList subMap,
const labelListList constructMap,
const int  tag,
const label  comm = UPstream::worldComm 
)
static

Calculate a schedule. See above.

Definition at line 46 of file mapDistributeBase.C.

References forAll, HashSet< Key, Hash >::insert(), List< T >::setSize(), and HashTable< T, Key, Hash >::toc().

Here is the call graph for this function:

◆ schedule() [2/2]

const Foam::List< Foam::labelPair > & schedule ( ) const

Return a schedule. Demand driven. See above.

Definition at line 187 of file mapDistributeBase.C.

References mapDistributeBase::comm_, mapDistributeBase::constructMap_, UPstream::msgType(), mapDistributeBase::schedulePtr_, and mapDistributeBase::subMap_.

Here is the call graph for this function:

◆ transfer()

void transfer ( mapDistributeBase rhs)

Transfer the contents of the argument and annul the argument.

Definition at line 883 of file mapDistributeBase.C.

References mapDistributeBase::comm_, mapDistributeBase::constructHasFlip_, mapDistributeBase::constructMap_, mapDistributeBase::constructSize_, mapDistributeBase::subHasFlip_, and mapDistributeBase::subMap_.

Referenced by mapDistributeBase::mapDistributeBase(), and mapDistribute::transfer().

Here is the caller graph for this function:

◆ renumber()

Foam::label renumber ( const globalIndex globalNumbering,
const List< Map< label >> &  compactMap,
const label  globalElement 
)
static

Helper for construct from globalIndex. Renumbers element.

(in globalIndex numbering) into compact indices.

Definition at line 906 of file mapDistributeBase.C.

References globalIndex::isLocal(), globalIndex::toLocal(), and globalIndex::whichProcID().

Here is the call graph for this function:

◆ compact() [1/2]

void compact ( const boolList elemIsUsed,
const int  tag = UPstream::msgType() 
)

Compact maps. Gets per field a bool whether it is used (locally)

and works out itself what this side and sender side can remove from maps. Only compacts non-local elements (i.e. the stuff that gets sent over), does not change the local layout

Definition at line 930 of file mapDistributeBase.C.

References UPstream::allProcs(), bool, forAll, Foam::mag(), Foam::max(), UPstream::myProcNo(), UPstream::nonBlocking, UPstream::nProcs(), UPstream::nRequests(), UPstream::parRun(), UIPstream::read(), List< T >::setSize(), UPstream::waitRequests(), and UOPstream::write().

Here is the call graph for this function:

◆ compact() [2/2]

void compact ( const boolList elemIsUsed,
const label  localSize,
labelList oldToNewSub,
labelList oldToNewConstruct,
const int  tag = UPstream::msgType() 
)

Compact all maps and layout. Returns compaction maps for.

subMap and constructMap

Definition at line 1099 of file mapDistributeBase.C.

References UPstream::allProcs(), bool, forAll, Foam::mag(), UPstream::myProcNo(), UPstream::nonBlocking, UPstream::nProcs(), UPstream::nRequests(), UPstream::parRun(), UIPstream::read(), List< T >::setSize(), Foam::sign(), UPstream::waitRequests(), and UOPstream::write().

Here is the call graph for this function:

◆ distribute() [1/5]

void distribute ( const Pstream::commsTypes  commsType,
const List< labelPair > &  schedule,
const label  constructSize,
const labelListList subMap,
const bool  subHasFlip,
const labelListList constructMap,
const bool  constructHasFlip,
List< T > &  field,
const negateOp &  negOp,
const int  tag = UPstream::msgType(),
const label  comm = UPstream::worldComm 
)
static

Distribute data. Note:schedule only used for.

Pstream::commsTypes::scheduled for now, all others just use send-to-all, receive-from-all.

Definition at line 122 of file mapDistributeBaseTemplates.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, field(), PstreamBuffers::finishedSends(), forAll, Foam::blockMeshTools::read(), List< T >::setSize(), and Foam::vtk::write().

Referenced by Field< Foam::Vector2D >::autoMap(), faceAreaWeightAMI::calculate(), mapDistribute::distribute(), mappedPatchBase::distribute(), distributedTriSurfaceMesh::findNearest(), distributedTriSurfaceMesh::getVolumeType(), Field< Foam::Vector2D >::map(), mappedPatchBase::reverseDistribute(), and streamLineBase::writeToFile().

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

◆ distribute() [2/5]

void distribute ( const Pstream::commsTypes  commsType,
const List< labelPair > &  schedule,
const label  constructSize,
const labelListList subMap,
const bool  subHasFlip,
const labelListList constructMap,
const bool  constructHasFlip,
List< T > &  field,
const T nullValue,
const CombineOp &  cop,
const negateOp &  negOp,
const int  tag = UPstream::msgType(),
const label  comm = UPstream::worldComm 
)
static

Distribute data. If multiple processors writing to same.

position adds contributions using cop.

Definition at line 654 of file mapDistributeBaseTemplates.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, field(), PstreamBuffers::finishedSends(), forAll, Foam::blockMeshTools::read(), List< T >::setSize(), T, and Foam::vtk::write().

Here is the call graph for this function:

◆ distribute() [3/5]

void distribute ( List< T > &  fld,
const int  tag = UPstream::msgType() 
) const

Distribute data using default commsType.

Definition at line 1314 of file mapDistributeBaseTemplates.C.

References fld.

◆ distribute() [4/5]

void distribute ( List< T > &  fld,
const negateOp &  negOp,
const int  tag = UPstream::msgType() 
) const

Distribute data using default commsType.

Definition at line 1251 of file mapDistributeBaseTemplates.C.

References UPstream::blocking, UPstream::defaultCommsType, fld, UPstream::nonBlocking, and UPstream::scheduled.

◆ distribute() [5/5]

void distribute ( DynamicList< T > &  fld,
const int  tag = UPstream::msgType() 
) const

Distribute data using default commsType.

Definition at line 1326 of file mapDistributeBaseTemplates.C.

References fld.

◆ reverseDistribute() [1/2]

void reverseDistribute ( const label  constructSize,
List< T > &  fld,
const int  tag = UPstream::msgType() 
) const

Reverse distribute data using default commsType.

Definition at line 1344 of file mapDistributeBaseTemplates.C.

References UPstream::blocking, UPstream::defaultCommsType, fld, UPstream::nonBlocking, and UPstream::scheduled.

Referenced by mapDistribute::reverseDistribute().

Here is the caller graph for this function:

◆ reverseDistribute() [2/2]

void reverseDistribute ( const label  constructSize,
const T nullValue,
List< T > &  fld,
const int  tag = UPstream::msgType() 
) const

Reverse distribute data using default commsType.

Since constructSize might be larger than supplied size supply a nullValue

Definition at line 1409 of file mapDistributeBaseTemplates.C.

References UPstream::blocking, UPstream::defaultCommsType, fld, UPstream::nonBlocking, and UPstream::scheduled.

◆ send()

void send ( PstreamBuffers pBufs,
const List< T > &  field 
) const

Do all sends using PstreamBuffers.

Definition at line 1176 of file mapDistributeBaseTemplates.C.

References mapDistributeBase::accessAndFlip(), UPstream::allProcs(), mapDistributeBase::comm_, field(), PstreamBuffers::finishedSends(), forAll, mapDistributeBase::subHasFlip_, and mapDistributeBase::subMap_.

Here is the call graph for this function:

◆ receive()

void receive ( PstreamBuffers pBufs,
List< T > &  field 
) const

Do all receives using PstreamBuffers.

Definition at line 1210 of file mapDistributeBaseTemplates.C.

References Foam::abort(), UPstream::allProcs(), Foam::FatalError, FatalErrorInFunction, and field().

Here is the call graph for this function:

◆ printLayout()

void printLayout ( Ostream os) const

Debug: print layout. Can only be used on maps with sorted.

storage (local data first, then non-local data)

Definition at line 221 of file mapDistributeBase.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::labelMax, Foam::labelMin, Foam::mag(), Foam::max(), Foam::min(), UPstream::myProcNo(), and UPstream::nProcs().

Referenced by mapDistribute::printLayout().

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

◆ updateMesh()

void updateMesh ( const mapPolyMesh )
inline

Correct for topo change.

Definition at line 486 of file mapDistributeBase.H.

References NotImplemented.

◆ operator=() [1/2]

void operator= ( const mapDistributeBase rhs)

Copy assignment.

Definition at line 1327 of file mapDistributeBase.C.

References mapDistributeBase::comm_, mapDistributeBase::constructHasFlip_, mapDistributeBase::constructMap_, mapDistributeBase::constructSize_, mapDistributeBase::subHasFlip_, and mapDistributeBase::subMap_.

Referenced by mapDistribute::operator=().

Here is the caller graph for this function:

◆ operator=() [2/2]

void operator= ( mapDistributeBase &&  rhs)

Move assignment.

Definition at line 1344 of file mapDistributeBase.C.

Friends And Related Function Documentation

◆ operator>>

Istream& operator>> ( Istream ,
mapDistributeBase  
)
friend

Read dictionary from Istream.

◆ operator<<

Ostream& operator<< ( Ostream ,
const mapDistributeBase  
)
friend

Write dictionary to Ostream.

Member Data Documentation

◆ constructSize_

label constructSize_
protected

◆ subMap_

◆ constructMap_

labelListList constructMap_
protected

◆ subHasFlip_

bool subHasFlip_
protected

◆ constructHasFlip_

bool constructHasFlip_
protected

◆ comm_

◆ schedulePtr_

autoPtr<List<labelPair> > schedulePtr_
mutableprotected

Schedule.

Definition at line 128 of file mapDistributeBase.H.

Referenced by mapDistributeBase::schedule().


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