11#ifndef PARTICLE_BASE_H
12#define PARTICLE_BASE_H
109template <
class T,
unsigned Dim>
116template <
class PLayout>
124template<
class PLayout>
208 return Layout->getBConds();
238 attrib_container_t::size_type
DataSourceObject * make_DataSourceObject(const char *, DataConnect *, int, Field< T, Dim, M, C > &)
ParticleLayout< T, Dim > PLayout
std::ostream & operator<<(std::ostream &, const IpplParticleBase< PLayout > &)
size_t getMessageAndCreate(Message &)
void setTotalNum(size_t n)
size_t ghostPutMessage(Message &, const std::vector< size_t > &)
const PLayout & getLayout() const
size_t getSingleMessage(Message &)
size_t ghostGetMessage(Message &, int)
void performDestroy(bool updateLocalNum=false)
virtual void update(const ParticleAttrib< char > &canSwap)
size_t readMsgBuffer(MsgBuffer *)
size_t ghostPutMessage(Message &, size_t, size_t)
void initialize(PLayout *)
size_t getTotalNum() const
void ghostDestroy(size_t, size_t)
std::vector< ParticleAttribBase * > attrib_container_t
size_t getMessage(Message &)
void addAttribute(ParticleAttribBase &pa)
Layout_t::Position_t Position_t
Layout_t::ParticlePos_t ParticlePos_t
size_t putMessage(Message &, size_t, size_t)
attrib_container_t::iterator attrib_iterator
size_t getGhostNum() const
Layout_t::Index_t Index_t
std::vector< std::pair< size_t, size_t > > DestroyList
size_t getDestroyNum() const
size_t writeMsgBuffer(MsgBuffer *&, const std::vector< size_t > &)
ParticleBConds< Position_t, PLayout::Dimension > & getBConds()
ParticleAttribBase & getAttribute(attrib_container_t::size_type N)
bool singleInitNode() const
ParticleAttribBase::SortList_t SortList_t
void setBConds(const ParticleBConds< Position_t, PLayout::Dimension > &bc)
size_t writeMsgBufferWithOffsets(MsgBuffer *&, const std::vector< size_t > &, const std::vector< O > &)
void setUpdateFlag(UpdateFlags f, bool val)
Layout_t::pair_iterator pair_iterator
Layout_t::UpdateFlags UpdateFlags
attrib_container_t::size_type numAttributes() const
bool getUpdateFlag(UpdateFlags f) const
void printDebug(Inform &)
virtual DataSourceObject * createDataSourceObject(const char *nm, DataConnect *dc, int tm)
size_t getLocalNum() const
Layout_t::ParticleIndex_t ParticleIndex_t
void globalCreate(size_t np)
size_t putMessage(Message &, size_t)
size_t readGhostMsgBuffer(MsgBuffer *, int)
size_t putMessage(Message &, const std::vector< size_t > &)
attrib_container_t AttribList
IpplParticleBase(PLayout *layout)
size_t ghostGetSingleMessage(Message &, int)
void createWithID(unsigned id)
void destroy(size_t, size_t, bool=false)
void setLocalNum(size_t n)
std::vector< SortListIndex_t > SortList_t
void setUpdateFlag(UpdateFlags f, bool val)
bool getUpdateFlag(UpdateFlags f) const