$treeview $search $mathjax
Palabos  Version 1.1
$projectbrief
$projectbrief
$searchbox

plb::ThreadAttribution Struct Reference

#include <threadAttribution.h>

Inheritance diagram for plb::ThreadAttribution:

List of all members.

Public Member Functions

virtual ~ThreadAttribution ()
virtual bool isLocal (plint blockId) const =0
 Specifies if the block "blockId" is located on the current MPI thread.
virtual bool allBlocksAreLocal () const =0
virtual int getMpiProcess (plint blockId) const =0
 Specifies on which MPI process a given block is located.
virtual int getLocalThreadId (plint blockId) const =0
virtual ThreadAttributionmerge (ThreadAttribution const &rhs, std::map< plint, std::vector< plint > > const &remappedIds) const =0
virtual ThreadAttributionextend (std::vector< plint > const &ids, std::vector< plint > const &mpiProcesses, std::vector< plint > const &localThreads) const =0
virtual bool hasCoProcessors () const
virtual void setCoProcessors (std::map< plint, int > processorHandles)
virtual int getCoProcessorHandle (plint id) const
virtual ThreadAttributionclone () const =0

Constructor & Destructor Documentation

virtual plb::ThreadAttribution::~ThreadAttribution (  )  [inline, virtual]

Member Function Documentation

virtual bool plb::ThreadAttribution::allBlocksAreLocal (  )  const [pure virtual]

True means that all blocks are local, false means we don't know if all of them are local or not.

Implemented in plb::SerialThreadAttribution, plb::OneToOneThreadAttribution, and plb::ExplicitThreadAttribution.

virtual ThreadAttribution* plb::ThreadAttribution::extend ( std::vector< plint > const &  ids,
std::vector< plint > const &  mpiProcesses,
std::vector< plint > const &  localThreads 
) const [pure virtual]

Extend the current attribution by a selection of new identifiers, with explicitly specified mpiProcess and thread attribution.

Implemented in plb::SerialThreadAttribution, plb::OneToOneThreadAttribution, and plb::ExplicitThreadAttribution.

virtual int plb::ThreadAttribution::getCoProcessorHandle ( plint  id  )  const [inline, virtual]
virtual int plb::ThreadAttribution::getLocalThreadId ( plint  blockId  )  const [pure virtual]

Specifies to which of the local shared-memory threads the blockId belongs.

Implemented in plb::SerialThreadAttribution, plb::OneToOneThreadAttribution, and plb::ExplicitThreadAttribution.

Referenced by plb::ExplicitThreadAttribution::merge(), and plb::OneToOneThreadAttribution::merge().

virtual int plb::ThreadAttribution::getMpiProcess ( plint  blockId  )  const [pure virtual]
virtual bool plb::ThreadAttribution::hasCoProcessors (  )  const [inline, virtual]
virtual bool plb::ThreadAttribution::isLocal ( plint  blockId  )  const [pure virtual]
virtual ThreadAttribution* plb::ThreadAttribution::merge ( ThreadAttribution const &  rhs,
std::map< plint, std::vector< plint > > const &  remappedIds 
) const [pure virtual]

Merge current attribution with rhs. From rhs, select explicitly the specified blocks, and remap them to fit into the new attribution, as specified by the parameter remappedIds.

Implemented in plb::SerialThreadAttribution, plb::OneToOneThreadAttribution, and plb::ExplicitThreadAttribution.

virtual void plb::ThreadAttribution::setCoProcessors ( std::map< plint, int >  processorHandles  )  [inline, virtual]

The documentation for this struct was generated from the following file: