11 #ifndef PARTICLE_ATTRIB_H
12 #define PARTICLE_ATTRIB_H
89 template<
class T,
unsigned Dim>
class Vektor;
90 template<
class T,
unsigned Dim,
class M,
class C>
class Field;
143 typename ParticleList_t::reference
149 typename ParticleList_t::const_reference
158 template<
unsigned Dim>
201 template <
unsigned Dim,
class M,
class C,
class PT,
class IntOp>
205 const IntOp& intop)
const {
229 template <
unsigned Dim,
class M,
class C,
class PT,
230 class IntOp,
class CacheData>
261 template <
unsigned Dim,
class M,
class C,
class IntOp,
class CacheData>
288 template <
unsigned Dim,
class M,
class C,
class PT,
class IntOp>
317 template <
unsigned Dim,
class M,
class C,
class PT,
318 class IntOp,
class CacheData>
349 template <
unsigned Dim,
class M,
class C,
class IntOp,
class CacheData>
388 ERRORMSG(
"Attempting to copy particle attributes with unequal sizes.");
407 virtual void create(
size_t);
415 virtual void destroy(
size_t M,
size_t I,
bool optDestroy=
true);
419 virtual void destroy(
const std::vector< std::pair<size_t,size_t> >& dlist,
420 bool optDestroy=
true);
579 :
attrib(pa),
curr(pa->ParticleList.begin()) { }
582 :
attrib(pa),
curr(pa->ParticleList.begin()+offset) { }
659 bool operator<(const ParticleAttribIterator<T>& a)
const {
660 return (
curr < a.curr);
663 bool operator<=(const ParticleAttribIterator<T>& a)
const {
664 return (
curr <= a.curr);
676 T*
getP()
const {
return &(*curr); }
702 :
attrib(pa),
curr(pa->ParticleList.begin()) { }
705 :
attrib(pa),
curr(pa->ParticleList.begin()+offset) { }
783 bool operator<(const ParticleAttribConstIterator<T>& a)
const {
784 return (
curr < a.curr);
787 bool operator<=(const ParticleAttribConstIterator<T>& a)
const {
788 return (
curr <= a.curr);
801 T const *
getP()
const {
return &(*curr); }
805 typename ParticleList_t::const_iterator
curr;
817 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
class IntOp>
826 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
827 class IntOp,
class CacheData>
832 attrib.
scatter(f, pp, intop, cache);
837 template <
class FT,
unsigned Dim,
class M,
class C,
838 class IntOp,
class CacheData>
842 attrib.
scatter(f, intop, cache);
847 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
class IntOp>
851 attrib.
gather(f, pp, intop);
856 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
857 class IntOp,
class CacheData>
862 attrib.
gather(f, pp, intop, cache);
867 template <
class FT,
unsigned Dim,
class M,
class C,
868 class CacheData,
class IntOp>
872 attrib.
gather(f, intop, cache);
877 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
class IntOp>
879 const IntOp& intop, FT val);
882 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
883 class IntOp,
class CacheData>
889 template <
class FT,
unsigned Dim,
class M,
class C,
890 class IntOp,
class CacheData>
897 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
class IntOp>
905 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
906 class IntOp,
class CacheData>
909 scatter(f, pp, intop, cache, FT(1));
914 template <
class FT,
unsigned Dim,
class M,
class C,
915 class IntOp,
class CacheData>
918 scatter(f, intop, cache, FT(1));
923 #endif // PARTICLE_ATTRIB_H
std::random_access_iterator_tag iterator_category
Matrix< T > operator+(const Matrix< T > &, const Matrix< T > &)
Matrix addition.
ParticleAttribConstIterator< T > operator--(int)
ParticleAttribIterator< T > operator[](size_t n) const
ParticleAttribIterator(ParticleAttrib< T > *pa, size_t offset)
ParticleAttribConstIterator(const ParticleAttrib< T > *pa)
std::ptrdiff_t difference_type
bool operator>(const ParticleAttribIterator< T > &a) const
void gather(const Field< T, Dim, M, C > &f, const IntOp &, const ParticleAttrib< CacheData > &cache)
ParticleAttribIterator< T > PETE_Expr_t
virtual void ghostCreate(size_t)
ParticleAttribConstIterator< T > operator[](size_t n) const
virtual void create(size_t)
virtual size_t getMessage(Message &, size_t)
DataSourceObject * make_DataSourceObject(const char *, DataConnect *, int, Field< T, Dim, M, C > &)
ParticleAttribElem< T, 1U > operator()(unsigned)
bool operator!=(const ParticleAttribConstIterator< T > &a) const
const_iterator PETE_Expr_t
T const * operator->() const
void scatter(Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &intop) const
ParticleAttribConstIterator< T > const_iterator
ParticleAttribIterator< T > & operator-=(size_t n)
virtual void sort(SortList_t &slist)
PETE_Expr_t MakeExpression() const
ParticleAttribIterator< T > & operator+=(size_t n)
ParticleAttribConstIterator< T > operator++(int)
bool operator==(const ParticleAttribConstIterator< T > &a) const
const_iterator cbegin() const
ParticleAttribIterator< T > & operator++(void)
PETE_Expr_t MakeExpression() const
const ParticleAttrib< T > & operator=(const PETE_Expr< T1 > &rhs)
void setGuardCells(const T &) const
void gather(const Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &, ParticleAttrib< CacheData > &cache)
bool scatter(Communicate &, InputIterator, InputIterator, RandomIterator, int *, int *, const ScatterOp &)
bool operator>=(const ParticleAttribIterator< T > &a) const
void assign(const BareField< T, Dim > &a, RHS b, OP op, ExprTag< true >)
std::ptrdiff_t difference_type
ParticleAttribConstIterator(const ParticleAttribConstIterator< T > &i)
std::vector< SortListIndex_t > SortList_t
std::vector< T > ParticleList_t
bool reduce(Communicate &, InputIterator, InputIterator, OutputIterator, const ReduceOp &, bool *IncludeVal=0)
void fillGuardCells(bool reallyFill=true) const
bool operator==(const ParticleAttribIterator< T > &a) const
std::random_access_iterator_tag iterator_category
ParticleAttribIterator< T > operator++(int)
ParticleAttribIterator(ParticleAttrib< T > *pa)
void gather(const T *input, T *output, int count, int root=0)
const ParticleAttrib< T > & operator=(const ParticleAttrib< T > &rhs)
ParticleAttribBase::SortListIndex_t SortListIndex_t
ParticleAttribConstIterator< T > operator+(size_t n) const
size_t operator-(const ParticleAttribConstIterator< T > &a) const
ParticleAttrib< T >::ParticleList_t ParticleList_t
ParticleAttrib< T >::ParticleList_t ParticleList_t
ParticleAttribConstIterator< T > & operator--(void)
virtual size_t ghostDestroy(size_t, size_t)
ParticleAttribConstIterator< T > & operator++(void)
bool operator>(const ParticleAttribConstIterator< T > &a) const
ParticleAttrib< T > * attrib
virtual void printDebug(Inform &)
virtual void calcSortList(SortList_t &slist, bool ascending=true)
virtual size_t putMessage(Message &, size_t, size_t)
ParticleList_t::const_iterator curr
bool operator!=(const ParticleAttribIterator< T > &a) const
PETE_Expr_t MakeExpression() const
virtual void destroy(size_t M, size_t I, bool optDestroy=true)
ParticleAttribIterator< T > operator+(size_t n) const
#define INCIPPLSTAT(stat)
ParticleAttribIterator< T > & operator--(void)
ParticleAttribConstIterator< T > & operator+=(size_t n)
const PETE_Return_t & operator*(void) const
ParticleAttribConstIterator< T > & at_end(void)
ParticleAttribConstIterator< T > operator-(size_t n) const
ParticleAttribIterator< T > operator-(size_t n) const
void scatter(Field< T, Dim, M, C > &f, const IntOp &, const ParticleAttrib< CacheData > &cache) const
bool operator>=(const ParticleAttribConstIterator< T > &a) const
ParticleList_t ParticleList
SubParticleAttrib< ParticleAttrib< T >, T, Dim > operator[](const SIndex< Dim > &s) const
ParticleAttribIterator< T > & at_end(void)
void scatter(Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &intop, ParticleAttrib< CacheData > &cache) const
const_iterator cend() const
void gather(const Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &)
PETE_Return_t & operator*(void) const
ParticleAttribConstIterator()
virtual size_t ghostGetMessage(Message &, size_t)
size_t operator-(const ParticleAttribIterator< T > &a) const
ParticleAttribConstIterator< T > & operator-=(size_t n)
ParticleAttribConstIterator(const ParticleAttrib< T > *pa, size_t offset)
std::string::iterator iterator
Mesh_t & get_mesh() const
ParticleAttribIterator< T > iterator
ParticleList_t::reference operator[](size_t n)
ParticleAttribIterator< T > operator--(int)
ParticleList_t::iterator curr
const ParticleAttrib< T > & operator=(T rhs)
ParticleAttribBase::SortList_t SortList_t
ParticleList_t::const_reference operator[](size_t n) const
ParticleAttrib< T > const * attrib
virtual size_t ghostPutMessage(Message &, size_t, size_t)
Inform & endl(Inform &inf)
virtual DataSourceObject * createDataSourceObject(const char *nm, DataConnect *dc, int tm)
ParticleAttrib(const ParticleAttrib< T > &pa)
ParticleAttribIterator(const ParticleAttribIterator< T > &i)
ParticleAttribConstIterator< T > PETE_Expr_t