11 #ifndef PARTICLE_ATTRIB_H
12 #define PARTICLE_ATTRIB_H
90 template<
class T,
unsigned Dim>
class Vektor;
91 template<
class T,
unsigned Dim,
class M,
class C>
class Field;
144 typename ParticleList_t::reference
150 typename ParticleList_t::const_reference
159 template<
unsigned Dim>
202 template <
unsigned Dim,
class M,
class C,
class PT,
class IntOp>
206 const IntOp& )
const {
230 template <
unsigned Dim,
class M,
class C,
class PT,
231 class IntOp,
class CacheData>
262 template <
unsigned Dim,
class M,
class C,
class IntOp,
class CacheData>
289 template <
unsigned Dim,
class M,
class C,
class PT,
class IntOp>
318 template <
unsigned Dim,
class M,
class C,
class PT,
319 class IntOp,
class CacheData>
350 template <
unsigned Dim,
class M,
class C,
class IntOp,
class CacheData>
389 ERRORMSG(
"Attempting to copy particle attributes with unequal sizes.");
408 virtual void create(
size_t);
416 virtual void destroy(
size_t M,
size_t I,
bool optDestroy=
true);
420 virtual void destroy(
const std::vector< std::pair<size_t,size_t> >& dlist,
421 bool optDestroy=
true);
640 return (
curr -
a.curr);
653 return (
curr ==
a.curr);
657 return !(
curr ==
a.curr);
661 return (
curr <
a.curr);
665 return (
curr <=
a.curr);
669 return (
curr >
a.curr);
673 return (
curr >=
a.curr);
677 T*
getP()
const {
return &(*curr); }
767 return (
curr -
a.curr);
780 return (
curr ==
a.curr);
784 return !(
curr ==
a.curr);
788 return (
curr <
a.curr);
792 return (
curr <=
a.curr);
796 return (
curr >
a.curr);
800 return (
curr >=
a.curr);
805 T const *
getP()
const {
return &(*curr); }
809 typename ParticleList_t::const_iterator
curr;
821 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
class IntOp>
830 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
831 class IntOp,
class CacheData>
836 attrib.
scatter(f, pp, intop, cache);
841 template <
class FT,
unsigned Dim,
class M,
class C,
842 class IntOp,
class CacheData>
846 attrib.
scatter(f, intop, cache);
851 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
class IntOp>
855 attrib.
gather(f, pp, intop);
860 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
861 class IntOp,
class CacheData>
866 attrib.
gather(f, pp, intop, cache);
871 template <
class FT,
unsigned Dim,
class M,
class C,
872 class CacheData,
class IntOp>
876 attrib.
gather(f, intop, cache);
881 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
class IntOp>
883 const IntOp& intop, FT val);
886 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
887 class IntOp,
class CacheData>
893 template <
class FT,
unsigned Dim,
class M,
class C,
894 class IntOp,
class CacheData>
901 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
class IntOp>
909 template <
class FT,
unsigned Dim,
class M,
class C,
class PT,
910 class IntOp,
class CacheData>
913 scatter(f, pp, intop, cache, FT(1));
918 template <
class FT,
unsigned Dim,
class M,
class C,
919 class IntOp,
class CacheData>
922 scatter(f, intop, cache, FT(1));
PartBunchBase< T, Dim >::ConstIterator begin(PartBunchBase< T, Dim > const &bunch)
DataSourceObject * make_DataSourceObject(const char *, DataConnect *, int, Field< T, Dim, M, C > &)
void assign(const BareField< T, Dim > &a, RHS b, OP op, ExprTag< true >)
bool reduce(Communicate &, InputIterator, InputIterator, OutputIterator, const ReduceOp &, bool *IncludeVal=0)
ParticleAttribIterator< T > operator+(size_t n, const ParticleAttribIterator< T > &a)
void gather(ParticleAttrib< FT > &attrib, const Field< FT, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &intop)
void scatter(const ParticleAttrib< FT > &attrib, Field< FT, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &intop)
Inform & endl(Inform &inf)
#define INCIPPLSTAT(stat)
std::string::iterator iterator
void fillGuardCells(bool reallyFill=true) const
Mesh_t & get_mesh() const
ParticleAttribIterator< T > iterator
ParticleAttribElem< T, 1U > operator()(unsigned)
virtual void printDebug(Inform &)
virtual DataSourceObject * createDataSourceObject(const char *nm, DataConnect *dc, int tm)
ParticleList_t ParticleList
ParticleAttribBase::SortList_t SortList_t
SubParticleAttrib< ParticleAttrib< T >, T, Dim > operator[](const SIndex< Dim > &s) const
virtual void ghostCreate(size_t)
const ParticleAttrib< T > & operator=(const PETE_Expr< T1 > &rhs)
virtual void sort(SortList_t &slist)
const_iterator cend() const
ParticleList_t::const_reference operator[](size_t n) const
void scatter(Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &) const
virtual size_t ghostGetMessage(Message &, size_t)
std::vector< T > ParticleList_t
ParticleAttrib(const ParticleAttrib< T > &pa)
const ParticleAttrib< T > & operator=(const ParticleAttrib< T > &rhs)
void gather(const Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &)
virtual size_t putMessage(Message &, size_t, size_t)
ParticleAttribConstIterator< T > const_iterator
virtual void destroy(size_t M, size_t I, bool optDestroy=true)
virtual size_t getMessage(Message &, size_t)
ParticleList_t::reference operator[](size_t n)
void scatter(Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &, ParticleAttrib< CacheData > &cache) const
const ParticleAttrib< T > & operator=(T rhs)
const_iterator PETE_Expr_t
void gather(const Field< T, Dim, M, C > &f, const IntOp &, const ParticleAttrib< CacheData > &cache)
ParticleAttribBase::SortListIndex_t SortListIndex_t
const_iterator cbegin() const
virtual size_t ghostDestroy(size_t, size_t)
void gather(const Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &, ParticleAttrib< CacheData > &cache)
virtual size_t ghostPutMessage(Message &, size_t, size_t)
virtual void create(size_t)
void scatter(Field< T, Dim, M, C > &f, const IntOp &, const ParticleAttrib< CacheData > &cache) const
PETE_Expr_t MakeExpression() const
virtual void calcSortList(SortList_t &slist, bool ascending=true)
void setGuardCells(const T &) const
bool operator>(const ParticleAttribIterator< T > &a) const
PETE_Return_t & operator*(void) const
ParticleAttribIterator< T > & at_end(void)
PETE_Expr_t MakeExpression() const
ParticleAttribIterator(ParticleAttrib< T > *pa)
ParticleAttrib< T > * attrib
ParticleAttrib< T >::ParticleList_t ParticleList_t
ParticleAttribIterator< T > & operator--(void)
bool operator!=(const ParticleAttribIterator< T > &a) const
ParticleAttribIterator< T > & operator++(void)
bool operator<=(const ParticleAttribIterator< T > &a) const
ParticleAttribIterator< T > & operator-=(size_t n)
std::ptrdiff_t difference_type
ParticleAttribIterator(ParticleAttrib< T > *pa, size_t offset)
ParticleAttribIterator< T > & operator+=(size_t n)
ParticleAttribIterator< T > operator+(size_t n) const
bool operator<(const ParticleAttribIterator< T > &a) const
ParticleAttribIterator< T > operator-(size_t n) const
ParticleAttribIterator< T > operator[](size_t n) const
std::random_access_iterator_tag iterator_category
ParticleList_t::iterator curr
size_t operator-(const ParticleAttribIterator< T > &a) const
ParticleAttribIterator< T > operator++(int)
ParticleAttribIterator(const ParticleAttribIterator< T > &i)
ParticleAttribIterator< T > operator--(int)
bool operator>=(const ParticleAttribIterator< T > &a) const
bool operator==(const ParticleAttribIterator< T > &a) const
ParticleAttribIterator< T > PETE_Expr_t
size_t operator-(const ParticleAttribConstIterator< T > &a) const
ParticleAttribConstIterator< T > & operator=(const ParticleAttribConstIterator< T > &)=default
bool operator!=(const ParticleAttribConstIterator< T > &a) const
std::ptrdiff_t difference_type
ParticleAttribConstIterator< T > & operator+=(size_t n)
ParticleAttribConstIterator< T > operator-(size_t n) const
bool operator<=(const ParticleAttribConstIterator< T > &a) const
std::random_access_iterator_tag iterator_category
const PETE_Return_t & operator*(void) const
ParticleAttribConstIterator< T > operator[](size_t n) const
bool operator<(const ParticleAttribConstIterator< T > &a) const
bool operator>=(const ParticleAttribConstIterator< T > &a) const
ParticleAttrib< T > const * attrib
ParticleAttribConstIterator(const ParticleAttrib< T > *pa, size_t offset)
ParticleList_t::const_iterator curr
ParticleAttribConstIterator< T > PETE_Expr_t
ParticleAttrib< T >::ParticleList_t ParticleList_t
ParticleAttribConstIterator< T > & operator++(void)
bool operator==(const ParticleAttribConstIterator< T > &a) const
ParticleAttribConstIterator< T > operator--(int)
bool operator>(const ParticleAttribConstIterator< T > &a) const
PETE_Expr_t MakeExpression() const
ParticleAttribConstIterator(const ParticleAttrib< T > *pa)
ParticleAttribConstIterator< T > operator+(size_t n) const
ParticleAttribConstIterator< T > & operator-=(size_t n)
ParticleAttribConstIterator< T > & operator--(void)
ParticleAttribConstIterator< T > & at_end(void)
ParticleAttribConstIterator()
T const * operator->() const
ParticleAttribConstIterator< T > operator++(int)
ParticleAttribConstIterator(const ParticleAttribConstIterator< T > &i)
std::vector< SortListIndex_t > SortList_t