OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
ParticleAttrib< T > Class Template Reference

#include <ParticleAttrib.h>

Inheritance diagram for ParticleAttrib< T >:
Collaboration diagram for ParticleAttrib< T >:

Public Types

enum  { IsExpr = 0 }
typedef T Return_t
typedef std::vector< T > ParticleList_t
typedef ParticleAttribIterator< T > iterator
typedef ParticleAttribConstIterator< T > const_iterator
typedef ParticleAttribBase::SortListIndex_t SortListIndex_t
typedef ParticleAttribBase::SortList_t SortList_t
typedef const_iterator PETE_Expr_t
enum  DsMode { INPUT , OUTPUT , BOTH , DEFAULT }
typedef std::vector< DataSourceObject * > container_t
typedef ParticleAttrib< T > Wrapped

Public Member Functions

 ParticleAttrib ()
 ParticleAttrib (const ParticleAttrib< T > &pa)
 ~ParticleAttrib ()
bool isDirty ()
void resetDirtyFlag ()
ParticleList_t::reference operator[] (size_t n)
ParticleList_t::const_reference operator[] (size_t n) const
template<unsigned Dim>
SubParticleAttrib< ParticleAttrib< T >, T, Dimoperator[] (const SIndex< Dim > &s) const
PETE_Expr_t MakeExpression () const
iterator begin ()
iterator end ()
const_iterator cbegin () const
const_iterator cend () const
size_t size (void) const
ParticleAttribElem< T, 1U > operator() (unsigned)
ParticleAttribElem< T, 2U > operator() (unsigned, unsigned)
ParticleAttribElem< T, 3U > operator() (unsigned, unsigned, unsigned)
template<unsigned Dim, class M, class C, class PT, class IntOp>
void scatter (Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &) const
template<unsigned Dim, class M, class C, class PT, class IntOp, class CacheData>
void scatter (Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &, ParticleAttrib< CacheData > &cache) const
template<unsigned Dim, class M, class C, class IntOp, class CacheData>
void scatter (Field< T, Dim, M, C > &f, const IntOp &, const ParticleAttrib< CacheData > &cache) const
template<unsigned Dim, class M, class C, class PT, class IntOp>
void gather (const Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &)
template<unsigned Dim, class M, class C, class PT, class IntOp, class CacheData>
void gather (const Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &, ParticleAttrib< CacheData > &cache)
template<unsigned Dim, class M, class C, class IntOp, class CacheData>
void gather (const Field< T, Dim, M, C > &f, const IntOp &, const ParticleAttrib< CacheData > &cache)
template<class T1>
const ParticleAttrib< T > & operator= (const PETE_Expr< T1 > &rhs)
const ParticleAttrib< T > & operator= (const ParticleAttrib< T > &rhs)
const ParticleAttrib< T > & operator= (T rhs)
virtual void create (size_t)
virtual void destroy (size_t M, size_t I, bool optDestroy=true)
virtual void destroy (const std::vector< std::pair< size_t, size_t > > &dlist, bool optDestroy=true)
virtual size_t putMessage (Message &, size_t, size_t)
virtual size_t putMessage (Message &, const std::vector< size_t > &)
virtual size_t getMessage (Message &, size_t)
virtual size_t ghostDestroy (size_t, size_t)
virtual void ghostCreate (size_t)
virtual size_t ghostPutMessage (Message &, size_t, size_t)
virtual size_t ghostPutMessage (Message &, const std::vector< size_t > &)
virtual size_t ghostGetMessage (Message &, size_t)
virtual void calcSortList (SortList_t &slist, bool ascending=true)
virtual void sort (SortList_t &slist)
virtual void printDebug (Inform &)
unsigned int elementSize () const
const std::string & typeString () const
void setTemporary (bool t)
bool isTemporary () const
bool connected (DataConnect *=0) const
DataSourceObjectfindDataSourceObject (DataConnect *) const
DataConnectconnect (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)
ParticleAttrib< T > & PETE_unwrap ()

Protected Member Functions

virtual DataSourceObjectcreateDataSourceObject (const char *nm, DataConnect *dc, int tm)

Protected Attributes

ParticleList_t ParticleList
size_t LocalSize

Private Attributes

bool attributeIsDirty_
unsigned int ElementSize
std::string TypeString
bool Temporary
container_t ConnectionList

Friends

class ParticleAttribIterator< T >
class ParticleAttribConstIterator< T >

Detailed Description

template<class T>
class ParticleAttrib< T >

Definition at line 98 of file ParticleAttrib.h.

Member Typedef Documentation

◆ const_iterator

template<class T>
typedef ParticleAttribConstIterator<T> ParticleAttrib< T >::const_iterator

Definition at line 110 of file ParticleAttrib.h.

◆ container_t

typedef std::vector<DataSourceObject *> DataSource::container_t
inherited

Definition at line 67 of file DataSource.h.

◆ iterator

template<class T>
typedef ParticleAttribIterator<T> ParticleAttrib< T >::iterator

Definition at line 109 of file ParticleAttrib.h.

◆ ParticleList_t

template<class T>
typedef std::vector<T> ParticleAttrib< T >::ParticleList_t

Definition at line 108 of file ParticleAttrib.h.

◆ PETE_Expr_t

template<class T>
typedef const_iterator ParticleAttrib< T >::PETE_Expr_t

Definition at line 170 of file ParticleAttrib.h.

◆ Return_t

template<class T>
typedef T ParticleAttrib< T >::Return_t

Definition at line 107 of file ParticleAttrib.h.

◆ SortList_t

template<class T>
typedef ParticleAttribBase::SortList_t ParticleAttrib< T >::SortList_t

Definition at line 112 of file ParticleAttrib.h.

◆ SortListIndex_t

template<class T>
typedef ParticleAttribBase::SortListIndex_t ParticleAttrib< T >::SortListIndex_t

Definition at line 111 of file ParticleAttrib.h.

◆ Wrapped

typedef ParticleAttrib< T > PETE_Expr< ParticleAttrib< T > >::Wrapped
inherited

Definition at line 79 of file PETE.h.

Member Enumeration Documentation

◆ anonymous enum

template<class T>
anonymous enum
Enumerator
IsExpr 

Definition at line 169 of file ParticleAttrib.h.

◆ DsMode

enum DataSource::DsMode
inherited
Enumerator
INPUT 
OUTPUT 
BOTH 
DEFAULT 

Definition at line 64 of file DataSource.h.

Constructor & Destructor Documentation

◆ ParticleAttrib() [1/2]

template<class T>
ParticleAttrib< T >::ParticleAttrib ( )
inline

Definition at line 116 of file ParticleAttrib.h.

Referenced by calcSortList().

◆ ParticleAttrib() [2/2]

template<class T>
ParticleAttrib< T >::ParticleAttrib ( const ParticleAttrib< T > & pa)
inline

Definition at line 121 of file ParticleAttrib.h.

◆ ~ParticleAttrib()

template<class T>
ParticleAttrib< T >::~ParticleAttrib ( )
inline

Definition at line 127 of file ParticleAttrib.h.

Member Function Documentation

◆ begin()

template<class T>
iterator ParticleAttrib< T >::begin ( )
inline

◆ calcSortList()

template<class T>
void ParticleAttrib< T >::calcSortList ( SortList_t & slist,
bool ascending = true )
virtual

Implements ParticleAttribBase.

Definition at line 422 of file ParticleAttrib.hpp.

References calcSortList(), and ParticleAttrib().

Referenced by calcSortList().

Here is the call graph for this function:

◆ cbegin()

◆ cend()

template<class T>
const_iterator ParticleAttrib< T >::cend ( ) const
inline

Definition at line 178 of file ParticleAttrib.h.

◆ connect() [1/2]

DataConnect * DataSource::connect ( const char * nm,
DataConnect * dataconn = 0,
int tm = DataSource::DEFAULT )
inherited

Definition at line 83 of file DataSource.cpp.

Referenced by DataConnect::connect(), and DataConnect::connect().

◆ connect() [2/2]

bool DataSource::connect ( DataSourceObject * dso)
inherited

Definition at line 127 of file DataSource.cpp.

References DataConnect::checkin(), DataSourceObject::connected(), ConnectionList, DataSourceObject::getConnection(), and DataSourceObject::getSource().

Here is the call graph for this function:

◆ connected()

bool DataSource::connected ( DataConnect * dataconn = 0) const
inherited

Definition at line 69 of file DataSource.cpp.

References ConnectionList, and findDataSourceObject().

Here is the call graph for this function:

◆ create()

template<class T>
void ParticleAttrib< T >::create ( size_t M)
virtual

◆ createDataSourceObject()

template<class T>
virtual DataSourceObject * ParticleAttrib< T >::createDataSourceObject ( const char * nm,
DataConnect * dc,
int tm )
inlineprotectedvirtual

Implements DataSource.

Definition at line 502 of file ParticleAttrib.h.

◆ destroy() [1/2]

template<class T>
void ParticleAttrib< T >::destroy ( const std::vector< std::pair< size_t, size_t > > & dlist,
bool optDestroy = true )
virtual

Implements ParticleAttribBase.

Definition at line 140 of file ParticleAttrib.hpp.

References LocalSize, and ParticleList.

◆ destroy() [2/2]

template<class T>
void ParticleAttrib< T >::destroy ( size_t M,
size_t I,
bool optDestroy = true )
virtual

◆ disconnect()

bool DataSource::disconnect ( DataConnect * dataconn = 0)
inherited

Definition at line 143 of file DataSource.cpp.

References a, DataConnect::checkout(), and ConnectionList.

Referenced by DataConnect::checkout(), and ~DataSource().

Here is the call graph for this function:

◆ elementSize()

unsigned int ParticleAttribBase::elementSize ( ) const
inlineinherited

◆ end()

template<class T>
iterator ParticleAttrib< T >::end ( )
inline

Definition at line 175 of file ParticleAttrib.h.

◆ findDataSourceObject()

DataSourceObject * DataSource::findDataSourceObject ( DataConnect * dc) const
inherited

Definition at line 55 of file DataSource.cpp.

References a, and ConnectionList.

Referenced by connected().

◆ gather() [1/3]

template<class T>
template<unsigned Dim, class M, class C, class IntOp, class CacheData>
void ParticleAttrib< T >::gather ( const Field< T, Dim, M, C > & f,
const IntOp & ,
const ParticleAttrib< CacheData > & cache )
inline

Definition at line 352 of file ParticleAttrib.h.

◆ gather() [2/3]

template<class T>
template<unsigned Dim, class M, class C, class PT, class IntOp>
void ParticleAttrib< T >::gather ( const Field< T, Dim, M, C > & f,
const ParticleAttrib< Vektor< PT, Dim > > & pp,
const IntOp &  )
inline

Definition at line 291 of file ParticleAttrib.h.

Referenced by gather(), gather(), and gather().

◆ gather() [3/3]

template<class T>
template<unsigned Dim, class M, class C, class PT, class IntOp, class CacheData>
void ParticleAttrib< T >::gather ( const Field< T, Dim, M, C > & f,
const ParticleAttrib< Vektor< PT, Dim > > & pp,
const IntOp & ,
ParticleAttrib< CacheData > & cache )
inline

Definition at line 321 of file ParticleAttrib.h.

◆ getMessage()

template<class T>
size_t ParticleAttrib< T >::getMessage ( Message & msg,
size_t M )
virtual

Implements ParticleAttribBase.

Definition at line 279 of file ParticleAttrib.hpp.

References create(), getMessage(), getMessage_iter(), ParticleAttribBase::isTemporary(), ParticleList, PAssert_EQ, and size().

Referenced by DiscParticle::read().

Here is the call graph for this function:

◆ ghostCreate()

template<class T>
void ParticleAttrib< T >::ghostCreate ( size_t M)
virtual

Implements ParticleAttribBase.

Definition at line 328 of file ParticleAttrib.hpp.

References ParticleList.

Referenced by ghostGetMessage().

◆ ghostDestroy()

template<class T>
size_t ParticleAttrib< T >::ghostDestroy ( size_t M,
size_t I )
virtual

◆ ghostGetMessage()

template<class T>
size_t ParticleAttrib< T >::ghostGetMessage ( Message & msg,
size_t M )
virtual

Implements ParticleAttribBase.

Reimplemented in ParticleInteractAttrib< T >, ParticleInteractAttrib< Index_t >, and ParticleInteractAttrib< SingleParticlePos_t >.

Definition at line 354 of file ParticleAttrib.hpp.

References getMessage_iter(), ghostCreate(), and ParticleList.

Here is the call graph for this function:

◆ ghostPutMessage() [1/2]

template<class T>
size_t ParticleAttrib< T >::ghostPutMessage ( Message & ,
const std::vector< size_t > &  )
virtual

◆ ghostPutMessage() [2/2]

template<class T>
size_t ParticleAttrib< T >::ghostPutMessage ( Message & ,
size_t ,
size_t  )
virtual

◆ interact() [1/2]

void DataSource::interact ( const char * str,
DataConnect * dataconn = 0 )
inherited

Definition at line 208 of file DataSource.cpp.

References a, and ConnectionList.

◆ interact() [2/2]

void DataSource::interact ( DataConnect * dataconn = 0)
inherited

Definition at line 195 of file DataSource.cpp.

References a, and ConnectionList.

◆ isDirty()

template<class T>
bool ParticleAttrib< T >::isDirty ( )
inline

notify user that attribute has changed. The user is responsible to define the meaning of the dirt and clean state

Definition at line 135 of file ParticleAttrib.h.

◆ isTemporary()

bool ParticleAttribBase::isTemporary ( ) const
inlineinherited

◆ MakeExpression()

template<class T>
PETE_Expr_t ParticleAttrib< T >::MakeExpression ( ) const
inline

Definition at line 171 of file ParticleAttrib.h.

◆ operator()() [1/3]

template<class T>
ParticleAttribElem< T, 1U > ParticleAttrib< T >::operator() ( unsigned i)

Definition at line 41 of file ParticleAttrib.hpp.

References AppTypeTraits< T >::ElemDim, and PInsist.

◆ operator()() [2/3]

template<class T>
ParticleAttribElem< T, 2U > ParticleAttrib< T >::operator() ( unsigned i,
unsigned j )

Definition at line 52 of file ParticleAttrib.hpp.

References AppTypeTraits< T >::ElemDim, and PInsist.

◆ operator()() [3/3]

template<class T>
ParticleAttribElem< T, 3U > ParticleAttrib< T >::operator() ( unsigned i,
unsigned j,
unsigned k )

Definition at line 63 of file ParticleAttrib.hpp.

References AppTypeTraits< T >::ElemDim, and PInsist.

◆ operator=() [1/3]

template<class T>
const ParticleAttrib< T > & ParticleAttrib< T >::operator= ( const ParticleAttrib< T > & rhs)
inline

Definition at line 387 of file ParticleAttrib.h.

◆ operator=() [2/3]

template<class T>
template<class T1>
const ParticleAttrib< T > & ParticleAttrib< T >::operator= ( const PETE_Expr< T1 > & rhs)
inline

Definition at line 381 of file ParticleAttrib.h.

◆ operator=() [3/3]

template<class T>
const ParticleAttrib< T > & ParticleAttrib< T >::operator= ( T rhs)
inline

Definition at line 397 of file ParticleAttrib.h.

◆ operator[]() [1/3]

template<class T>
template<unsigned Dim>
SubParticleAttrib< ParticleAttrib< T >, T, Dim > ParticleAttrib< T >::operator[] ( const SIndex< Dim > & s) const
inline

Definition at line 161 of file ParticleAttrib.h.

◆ operator[]() [2/3]

template<class T>
ParticleList_t::reference ParticleAttrib< T >::operator[] ( size_t n)
inline

Definition at line 145 of file ParticleAttrib.h.

◆ operator[]() [3/3]

template<class T>
ParticleList_t::const_reference ParticleAttrib< T >::operator[] ( size_t n) const
inline

Definition at line 151 of file ParticleAttrib.h.

◆ PETE_unwrap()

ParticleAttrib< T > & PETE_Expr< ParticleAttrib< T > >::PETE_unwrap ( )
inlineinherited

Definition at line 81 of file PETE.h.

◆ printDebug()

template<class T>
void ParticleAttrib< T >::printDebug ( Inform & o)
virtual

Implements ParticleAttribBase.

Reimplemented in ParticleInteractAttrib< T >, ParticleInteractAttrib< Index_t >, and ParticleInteractAttrib< SingleParticlePos_t >.

Definition at line 371 of file ParticleAttrib.hpp.

References ParticleAttribBase::isTemporary(), and ParticleList.

Here is the call graph for this function:

◆ putMessage() [1/2]

template<class T>
size_t ParticleAttrib< T >::putMessage ( Message & msg,
const std::vector< size_t > & putList )
virtual

Implements ParticleAttribBase.

Reimplemented in ParticleInteractAttrib< T >, ParticleInteractAttrib< Index_t >, and ParticleInteractAttrib< SingleParticlePos_t >.

Definition at line 254 of file ParticleAttrib.hpp.

References ParticleAttribBase::isTemporary(), ParticleList, and putMessage().

Here is the call graph for this function:

◆ putMessage() [2/2]

template<class T>
size_t ParticleAttrib< T >::putMessage ( Message & msg,
size_t M,
size_t I )
virtual

Implements ParticleAttribBase.

Reimplemented in ParticleInteractAttrib< T >, ParticleInteractAttrib< Index_t >, and ParticleInteractAttrib< SingleParticlePos_t >.

Definition at line 231 of file ParticleAttrib.hpp.

References ParticleAttribBase::isTemporary(), ParticleList, and putMessage().

Referenced by ParticleInteractAttrib< SingleParticlePos_t >::putMessage(), and DiscParticle::write().

Here is the call graph for this function:

◆ resetDirtyFlag()

template<class T>
void ParticleAttrib< T >::resetDirtyFlag ( )
inline

Definition at line 140 of file ParticleAttrib.h.

◆ scatter() [1/3]

template<class T>
template<unsigned Dim, class M, class C, class IntOp, class CacheData>
void ParticleAttrib< T >::scatter ( Field< T, Dim, M, C > & f,
const IntOp & ,
const ParticleAttrib< CacheData > & cache ) const
inline

Definition at line 264 of file ParticleAttrib.h.

◆ scatter() [2/3]

template<class T>
template<unsigned Dim, class M, class C, class PT, class IntOp>
void ParticleAttrib< T >::scatter ( Field< T, Dim, M, C > & f,
const ParticleAttrib< Vektor< PT, Dim > > & pp,
const IntOp &  ) const
inline

Definition at line 204 of file ParticleAttrib.h.

Referenced by scatter(), scatter(), and scatter().

◆ scatter() [3/3]

template<class T>
template<unsigned Dim, class M, class C, class PT, class IntOp, class CacheData>
void ParticleAttrib< T >::scatter ( Field< T, Dim, M, C > & f,
const ParticleAttrib< Vektor< PT, Dim > > & pp,
const IntOp & ,
ParticleAttrib< CacheData > & cache ) const
inline

Definition at line 233 of file ParticleAttrib.h.

◆ setTemporary()

void ParticleAttribBase::setTemporary ( bool t)
inlineinherited

Definition at line 80 of file ParticleAttribBase.h.

References Temporary.

◆ size()

◆ sort()

template<class T>
void ParticleAttrib< T >::sort ( SortList_t & slist)
virtual

Implements ParticleAttribBase.

Definition at line 492 of file ParticleAttrib.hpp.

References PAssert_GE, and size().

Here is the call graph for this function:

◆ typeString()

const std::string & ParticleAttribBase::typeString ( ) const
inlineinherited

Definition at line 75 of file ParticleAttribBase.h.

References TypeString.

Referenced by DiscParticle::write(), and DiscParticle::write().

◆ updateConnection()

bool DataSource::updateConnection ( DataConnect * dataconn = 0)
inherited

Definition at line 176 of file DataSource.cpp.

References a, and ConnectionList.

◆ ParticleAttribConstIterator< T >

template<class T>
friend class ParticleAttribConstIterator< T >
friend

Definition at line 920 of file ParticleAttrib.h.

◆ ParticleAttribIterator< T >

template<class T>
friend class ParticleAttribIterator< T >
friend

Definition at line 920 of file ParticleAttrib.h.

Member Data Documentation

◆ attributeIsDirty_

template<class T>
bool ParticleAttrib< T >::attributeIsDirty_
private

Definition at line 512 of file ParticleAttrib.h.

Referenced by create(), and destroy().

◆ ConnectionList

container_t DataSource::ConnectionList
privateinherited

◆ ElementSize

unsigned int ParticleAttribBase::ElementSize
privateinherited

Definition at line 169 of file ParticleAttribBase.h.

Referenced by elementSize(), ParticleAttribBase(), and ParticleAttribBase().

◆ LocalSize

template<class T>
size_t ParticleAttrib< T >::LocalSize
protected

Definition at line 509 of file ParticleAttrib.h.

Referenced by create(), destroy(), destroy(), and ghostDestroy().

◆ ParticleList

◆ Temporary

bool ParticleAttribBase::Temporary
privateinherited

◆ TypeString

std::string ParticleAttribBase::TypeString
privateinherited

Definition at line 172 of file ParticleAttribBase.h.

Referenced by ParticleAttribBase(), ParticleAttribBase(), and typeString().


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