OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
|
#include <IpplParticleBase.h>
Public Member Functions | |
IpplParticleBase () | |
IpplParticleBase (PLayout *layout) | |
~IpplParticleBase () | |
void | initialize (PLayout *) |
size_t | getTotalNum () const |
size_t | getLocalNum () const |
size_t | getDestroyNum () const |
size_t | getGhostNum () const |
void | setTotalNum (size_t n) |
void | setLocalNum (size_t n) |
PLayout & | getLayout () |
const PLayout & | getLayout () const |
ParticleBConds< Position_t, PLayout::Dimension > & | getBConds () |
void | setBConds (const ParticleBConds< Position_t, PLayout::Dimension > &bc) |
bool | singleInitNode () const |
bool | getUpdateFlag (UpdateFlags f) const |
void | setUpdateFlag (UpdateFlags f, bool val) |
void | addAttribute (ParticleAttribBase &pa) |
ParticleAttribBase & | getAttribute (attrib_container_t::size_type N) |
attrib_container_t::size_type | numAttributes () const |
attrib_iterator | begin () |
attrib_iterator | end () |
void | resetID () |
virtual void | update () |
virtual void | update (const ParticleAttrib< char > &canSwap) |
void | createWithID (unsigned id) |
void | create (size_t) |
void | globalCreate (size_t np) |
void | destroy (size_t, size_t, bool=false) |
size_t | putMessage (Message &, size_t, size_t) |
size_t | putMessage (Message &, const std::vector< size_t > &) |
size_t | putMessage (Message &, size_t) |
Format * | getFormat () |
size_t | writeMsgBuffer (MsgBuffer *&, const std::vector< size_t > &) |
template<class O > | |
size_t | writeMsgBufferWithOffsets (MsgBuffer *&, const std::vector< size_t > &, const std::vector< O > &) |
size_t | readMsgBuffer (MsgBuffer *) |
size_t | readGhostMsgBuffer (MsgBuffer *, int) |
size_t | getMessage (Message &) |
size_t | getSingleMessage (Message &) |
size_t | getMessageAndCreate (Message &) |
void | performDestroy (bool updateLocalNum=false) |
void | sort (SortList_t &) |
size_t | ghostPutMessage (Message &, size_t, size_t) |
size_t | ghostPutMessage (Message &, const std::vector< size_t > &) |
size_t | ghostGetMessage (Message &, int) |
size_t | ghostGetSingleMessage (Message &, int) |
void | ghostDestroy (size_t, size_t) |
void | printDebug (Inform &) |
Public Member Functions inherited from DataSource | |
DataSource () | |
virtual | ~DataSource () |
bool | connected (DataConnect *=0) const |
DataSourceObject * | findDataSourceObject (DataConnect *) const |
DataConnect * | connect (const char *, DataConnect *=0, int=DataSource::DEFAULT) |
bool | connect (DataSourceObject *) |
bool | disconnect (DataConnect *=0) |
bool | updateConnection (DataConnect *=0) |
void | interact (DataConnect *=0) |
void | interact (const char *, DataConnect *=0) |
Public Member Functions inherited from AbstractParticle< PLayout::Position_t, PLayout::Dimension > | |
AbstractParticle () | |
virtual | ~AbstractParticle () |
virtual void | addAttribute (ParticleAttribBase &pa)=0 |
virtual size_t | getTotalNum () const=0 |
virtual size_t | getLocalNum () const=0 |
virtual size_t | getDestroyNum () const=0 |
virtual size_t | getGhostNum () const=0 |
virtual void | setTotalNum (size_t n)=0 |
virtual void | setLocalNum (size_t n)=0 |
virtual Layout_t & | getLayout ()=0 |
virtual const Layout_t & | getLayout () const=0 |
virtual bool | getUpdateFlag (UpdateFlags f) const=0 |
virtual void | setUpdateFlag (UpdateFlags f, bool val)=0 |
virtual ParticleBConds< Position_t, Dim > & | getBConds ()=0 |
virtual void | setBConds (const ParticleBConds< Position_t, Dim > &bc)=0 |
virtual bool | singleInitNode () const=0 |
virtual void | resetID ()=0 |
virtual void | update ()=0 |
virtual void | update (const ParticleAttrib< char > &canSwap)=0 |
virtual void | createWithID (unsigned id)=0 |
virtual void | create (size_t)=0 |
virtual void | globalCreate (size_t np)=0 |
virtual void | destroy (size_t, size_t, bool=false)=0 |
virtual void | performDestroy (bool updateLocalNum=false)=0 |
virtual void | ghostDestroy (size_t M, size_t I)=0 |
Public Attributes | |
ParticlePos_t | R |
ParticleIndex_t | ID |
Public Attributes inherited from AbstractParticle< PLayout::Position_t, PLayout::Dimension > | |
ParticlePos_t * | R_p |
ParticleIndex_t * | ID_p |
Protected Member Functions | |
virtual DataSourceObject * | createDataSourceObject (const char *nm, DataConnect *dc, int tm) |
virtual DataSourceObject * | createDataSourceObject (const char *, DataConnect *, int)=0 |
Protected Attributes | |
std::vector< std::pair< size_t, size_t > > | DestroyList |
Private Member Functions | |
void | setup () |
unsigned | getNextID () |
Private Attributes | |
PLayout * | Layout |
attrib_container_t | AttribList |
size_t | TotalNum |
size_t | LocalNum |
size_t | DestroyNum |
size_t | GhostNum |
unsigned | NextID |
Definition at line 125 of file IpplParticleBase.h.
typedef std::vector<ParticleAttribBase *> IpplParticleBase< PLayout >::attrib_container_t |
Definition at line 142 of file IpplParticleBase.h.
typedef attrib_container_t::iterator IpplParticleBase< PLayout >::attrib_iterator |
Definition at line 143 of file IpplParticleBase.h.
typedef PLayout::Index_t IpplParticleBase< PLayout >::Index_t |
Definition at line 134 of file IpplParticleBase.h.
typedef PLayout IpplParticleBase< PLayout >::Layout_t |
Definition at line 132 of file IpplParticleBase.h.
typedef PLayout::pair_iterator IpplParticleBase< PLayout >::pair_iterator |
Definition at line 139 of file IpplParticleBase.h.
typedef PLayout::pair_t IpplParticleBase< PLayout >::pair_t |
Definition at line 140 of file IpplParticleBase.h.
typedef PLayout::ParticleIndex_t IpplParticleBase< PLayout >::ParticleIndex_t |
Definition at line 137 of file IpplParticleBase.h.
typedef PLayout::ParticlePos_t IpplParticleBase< PLayout >::ParticlePos_t |
Definition at line 136 of file IpplParticleBase.h.
typedef PLayout::Position_t IpplParticleBase< PLayout >::Position_t |
Definition at line 133 of file IpplParticleBase.h.
typedef ParticleAttribBase::SortList_t IpplParticleBase< PLayout >::SortList_t |
Definition at line 144 of file IpplParticleBase.h.
typedef PLayout::UpdateFlags IpplParticleBase< PLayout >::UpdateFlags |
Definition at line 141 of file IpplParticleBase.h.
anonymous enum |
Enumerator | |
---|---|
Dim |
Definition at line 129 of file IpplParticleBase.h.
|
inline |
Definition at line 154 of file IpplParticleBase.h.
|
inline |
Definition at line 163 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::setup().
|
inline |
Definition at line 174 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::Layout.
|
inlinevirtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 231 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::AttribList.
Referenced by GenArrayParticle< PLayout, T, N >::GenArrayParticle(), GenParticle< PLayout, T >::GenParticle(), and AmrParticleBase< PLayout >::initializeAmr().
|
inline |
Definition at line 242 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::AttribList.
|
virtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 410 of file IpplParticleBase.hpp.
References ADDIPPLSTAT, and PAssert.
Referenced by AmrParticleBase< PLayout >::create().
|
inlineprotectedvirtual |
Implements DataSource.
Definition at line 346 of file IpplParticleBase.h.
References make_DataSourceObject().
|
virtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 437 of file IpplParticleBase.hpp.
References ADDIPPLSTAT, and PAssert.
Referenced by AmrParticleBase< PLayout >::createWithID().
|
virtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 491 of file IpplParticleBase.hpp.
References ADDIPPLSTAT, ParticleLayout< T, Dim >::OPTDESTROY, and PAssert.
Referenced by AmrParticleBase< PLayout >::destroy(), and DiscParticle::read().
|
inline |
Definition at line 243 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::AttribList.
|
inline |
Definition at line 235 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::AttribList.
Referenced by DiscParticle::read(), and DiscParticle::write().
|
inlinevirtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 207 of file IpplParticleBase.h.
References ParticleLayout< T, Dim >::getBConds(), and IpplParticleBase< PLayout >::Layout.
|
inlinevirtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 197 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::DestroyNum.
Format * IpplParticleBase< PLayout >::getFormat |
Definition at line 250 of file IpplParticleBase.hpp.
|
inlinevirtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 198 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::GhostNum.
|
inlinevirtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 203 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::Layout.
Referenced by AmrParticleBase< PLayout >::getAmrLayout(), IpplParticleBase< PLayout >::getUpdateFlag(), operator<<(), and IpplParticleBase< PLayout >::setUpdateFlag().
|
inlinevirtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 204 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::Layout.
|
inlinevirtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 196 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::LocalNum.
Referenced by operator<<(), DiscParticle::read(), and DiscParticle::write().
size_t IpplParticleBase< PLayout >::getMessage | ( | Message & | msg | ) |
Definition at line 346 of file IpplParticleBase.hpp.
References Message::get(), and PAssert.
size_t IpplParticleBase< PLayout >::getMessageAndCreate | ( | Message & | msg | ) |
Definition at line 394 of file IpplParticleBase.hpp.
References ADDIPPLSTAT, getMessage(), and PAssert.
Referenced by DiscParticle::read().
|
private |
Definition at line 86 of file IpplParticleBase.hpp.
References IpplInfo::Comm.
size_t IpplParticleBase< PLayout >::getSingleMessage | ( | Message & | msg | ) |
Definition at line 369 of file IpplParticleBase.hpp.
References PAssert.
|
inlinevirtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 195 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::TotalNum.
Referenced by operator<<(), and DiscParticle::write().
|
inlinevirtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 219 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::getLayout(), and ParticleLayout< T, Dim >::getUpdateFlag().
|
virtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 603 of file IpplParticleBase.hpp.
References PAssert.
size_t IpplParticleBase< PLayout >::ghostGetMessage | ( | Message & | msg, |
int | |||
) |
Definition at line 688 of file IpplParticleBase.hpp.
References Message::get(), and PAssert.
size_t IpplParticleBase< PLayout >::ghostGetSingleMessage | ( | Message & | msg, |
int | |||
) |
Definition at line 713 of file IpplParticleBase.hpp.
References PAssert.
size_t IpplParticleBase< PLayout >::ghostPutMessage | ( | Message & | msg, |
const std::vector< size_t > & | pl | ||
) |
Definition at line 663 of file IpplParticleBase.hpp.
References PAssert, and Message::put().
size_t IpplParticleBase< PLayout >::ghostPutMessage | ( | Message & | msg, |
size_t | M, | ||
size_t | I | ||
) |
Definition at line 628 of file IpplParticleBase.hpp.
References PAssert, Message::put(), and Attrib::Distribution::R.
|
virtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 465 of file IpplParticleBase.hpp.
References IpplInfo::getNodes(), IpplInfo::myNode(), and PAssert.
void IpplParticleBase< PLayout >::initialize | ( | PLayout * | layout | ) |
Definition at line 33 of file IpplParticleBase.hpp.
References PAssert.
|
inline |
Definition at line 239 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::AttribList.
Referenced by operator<<(), DiscParticle::read(), and DiscParticle::write().
|
virtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 557 of file IpplParticleBase.hpp.
References ParticleLayout< T, Dim >::OPTDESTROY, and PAssert.
Referenced by AmrParticleBase< PLayout >::performDestroy().
void IpplParticleBase< PLayout >::printDebug | ( | Inform & | o | ) |
Definition at line 763 of file IpplParticleBase.hpp.
References endl().
size_t IpplParticleBase< PLayout >::putMessage | ( | Message & | msg, |
const std::vector< size_t > & | putList | ||
) |
Definition at line 209 of file IpplParticleBase.hpp.
References PAssert.
size_t IpplParticleBase< PLayout >::putMessage | ( | Message & | msg, |
size_t | I | ||
) |
Definition at line 232 of file IpplParticleBase.hpp.
References PAssert.
size_t IpplParticleBase< PLayout >::putMessage | ( | Message & | msg, |
size_t | M, | ||
size_t | I | ||
) |
Definition at line 180 of file IpplParticleBase.hpp.
References PAssert, and Message::put().
Referenced by DiscParticle::write().
size_t IpplParticleBase< PLayout >::readGhostMsgBuffer | ( | MsgBuffer * | msgbuf, |
int | node | ||
) |
Definition at line 330 of file IpplParticleBase.hpp.
size_t IpplParticleBase< PLayout >::readMsgBuffer | ( | MsgBuffer * | msgbuf | ) |
Definition at line 314 of file IpplParticleBase.hpp.
References MsgBuffer::get().
|
virtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 96 of file IpplParticleBase.hpp.
References IpplInfo::Comm, COMM_ANY_NODE, Message::get(), IpplInfo::getNodes(), IpplInfo::myNode(), TagMaker::next_tag(), P_LAYOUT_CYCLE, P_RESET_ID_TAG, PAssert, Message::put(), Communicate::receive_block(), Communicate::send(), and sum().
|
inline |
Definition at line 210 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::Layout, and ParticleLayout< T, Dim >::setBConds().
|
inlinevirtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 200 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::LocalNum, and Hypervolume::n.
|
inlinevirtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 199 of file IpplParticleBase.h.
References Hypervolume::n, and IpplParticleBase< PLayout >::TotalNum.
|
private |
Definition at line 49 of file IpplParticleBase.hpp.
References IpplInfo::Comm, Communicate::getNodes(), INCIPPLSTAT, Communicate::myNode(), and Attrib::Distribution::R.
Referenced by IpplParticleBase< PLayout >::IpplParticleBase().
|
inlinevirtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 222 of file IpplParticleBase.h.
References IpplParticleBase< PLayout >::getLayout(), and ParticleLayout< T, Dim >::setUpdateFlag().
|
virtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Definition at line 78 of file IpplParticleBase.hpp.
References IpplInfo::Comm.
void IpplParticleBase< PLayout >::sort | ( | SortList_t & | sortlist | ) |
Definition at line 737 of file IpplParticleBase.hpp.
|
virtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Reimplemented in AmrParticleBase< PLayout >.
Definition at line 523 of file IpplParticleBase.hpp.
References INCIPPLSTAT, and PAssert.
Referenced by DiscParticle::read().
|
virtual |
Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.
Reimplemented in AmrParticleBase< PLayout >.
Definition at line 540 of file IpplParticleBase.hpp.
References INCIPPLSTAT, and PAssert.
size_t IpplParticleBase< PLayout >::writeMsgBuffer | ( | MsgBuffer *& | msgbuf, |
const std::vector< size_t > & | list | ||
) |
Definition at line 275 of file IpplParticleBase.hpp.
size_t IpplParticleBase< PLayout >::writeMsgBufferWithOffsets | ( | MsgBuffer *& | msgbuf, |
const std::vector< size_t > & | list, | ||
const std::vector< O > & | offset | ||
) |
Definition at line 291 of file IpplParticleBase.hpp.
|
private |
Definition at line 362 of file IpplParticleBase.h.
Referenced by IpplParticleBase< PLayout >::addAttribute(), IpplParticleBase< PLayout >::begin(), IpplParticleBase< PLayout >::end(), IpplParticleBase< PLayout >::getAttribute(), and IpplParticleBase< PLayout >::numAttributes().
|
protected |
Definition at line 355 of file IpplParticleBase.h.
|
private |
Definition at line 369 of file IpplParticleBase.h.
Referenced by IpplParticleBase< PLayout >::getDestroyNum().
|
private |
Definition at line 370 of file IpplParticleBase.h.
Referenced by IpplParticleBase< PLayout >::getGhostNum().
ParticleIndex_t IpplParticleBase< PLayout >::ID |
Definition at line 148 of file IpplParticleBase.h.
|
private |
Definition at line 359 of file IpplParticleBase.h.
Referenced by IpplParticleBase< PLayout >::getBConds(), IpplParticleBase< PLayout >::getLayout(), IpplParticleBase< PLayout >::setBConds(), and IpplParticleBase< PLayout >::~IpplParticleBase().
|
private |
Definition at line 368 of file IpplParticleBase.h.
Referenced by IpplParticleBase< PLayout >::getLocalNum(), and IpplParticleBase< PLayout >::setLocalNum().
|
private |
Definition at line 373 of file IpplParticleBase.h.
ParticlePos_t IpplParticleBase< PLayout >::R |
Definition at line 147 of file IpplParticleBase.h.
|
private |
Definition at line 367 of file IpplParticleBase.h.
Referenced by IpplParticleBase< PLayout >::getTotalNum(), and IpplParticleBase< PLayout >::setTotalNum().