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);
660 bool operator<(const ParticleAttribIterator<T>& a)
const {
661 return (
curr < a.curr);
664 bool operator<=(const ParticleAttribIterator<T>& a)
const {
665 return (
curr <= a.curr);
677 T*
getP()
const {
return &(*curr); }
787 bool operator<(const ParticleAttribConstIterator<T>& a)
const {
788 return (
curr < a.curr);
791 bool operator<=(const ParticleAttribConstIterator<T>& a)
const {
792 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));
927 #endif // PARTICLE_ATTRIB_H
DataSourceObject * make_DataSourceObject(const char *, DataConnect *, int, Field< T, Dim, M, C > &)
void setGuardCells(const T &) const
void scatter(Field< T, Dim, M, C > &f, const IntOp &, const ParticleAttrib< CacheData > &cache) const
ParticleAttribIterator(const ParticleAttribIterator< T > &i)
size_t operator-(const ParticleAttribConstIterator< T > &a) const
ParticleList_t::reference operator[](size_t n)
bool operator!=(const ParticleAttribConstIterator< T > &a) const
PETE_Expr_t MakeExpression() const
ParticleAttribBase::SortList_t SortList_t
ParticleAttribConstIterator< T > operator--(int)
ParticleList_t::iterator curr
ParticleAttribConstIterator< T > & operator+=(size_t n)
virtual size_t ghostPutMessage(Message &, size_t, size_t)
const_iterator cend() const
ParticleList_t::const_iterator curr
std::random_access_iterator_tag iterator_category
virtual void ghostCreate(size_t)
virtual void destroy(size_t M, size_t I, bool optDestroy=true)
ParticleAttribIterator< T > PETE_Expr_t
const PETE_Return_t & operator*(void) const
ParticleAttribConstIterator(const ParticleAttribConstIterator< T > &i)
bool operator>=(const ParticleAttribConstIterator< T > &a) const
void fillGuardCells(bool reallyFill=true) const
ParticleAttribIterator< T > operator++(int)
void assign(const BareField< T, Dim > &a, RHS b, OP op, ExprTag< true >)
#define INCIPPLSTAT(stat)
PETE_Expr_t MakeExpression() const
void gather(const Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &)
ParticleAttribConstIterator< T > & operator-=(size_t n)
ParticleAttrib< T >::ParticleList_t ParticleList_t
virtual size_t ghostGetMessage(Message &, size_t)
clearpage the user may choose between constant or variable radius This model includes fringe fields begin
ParticleAttribConstIterator< T > const_iterator
void scatter(Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &, ParticleAttrib< CacheData > &cache) const
ParticleAttribIterator< T > & operator-=(size_t n)
Inform & endl(Inform &inf)
virtual size_t putMessage(Message &, size_t, size_t)
virtual void sort(SortList_t &slist)
virtual DataSourceObject * createDataSourceObject(const char *nm, DataConnect *dc, int tm)
ParticleList_t ParticleList
ParticleAttribIterator< T > operator+(size_t n) const
bool scatter(Communicate &, InputIterator, InputIterator, RandomIterator, int *, int *, const ScatterOp &)
std::string::iterator iterator
ParticleAttribConstIterator< T > & operator=(const ParticleAttribConstIterator< T > &)=default
T const * operator->() const
ParticleList_t::const_reference operator[](size_t n) const
std::vector< T > ParticleList_t
virtual size_t ghostDestroy(size_t, size_t)
const ParticleAttrib< T > & operator=(const ParticleAttrib< T > &rhs)
std::random_access_iterator_tag iterator_category
bool operator>(const ParticleAttribConstIterator< T > &a) const
ParticleAttribIterator< T > operator--(int)
ParticleAttribIterator< T > & at_end(void)
ParticleAttrib< T > const * attrib
PETE_Return_t & operator*(void) const
Matrix< T > operator+(const Matrix< T > &, const Matrix< T > &)
Matrix addition.
PETE_Expr_t MakeExpression() const
ParticleAttribConstIterator< T > & operator++(void)
void gather(const Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &, ParticleAttrib< CacheData > &cache)
size_t operator-(const ParticleAttribIterator< T > &a) const
void scatter(Field< T, Dim, M, C > &f, const ParticleAttrib< Vektor< PT, Dim > > &pp, const IntOp &) const
virtual void printDebug(Inform &)
const ParticleAttrib< T > & operator=(T rhs)
const_iterator PETE_Expr_t
ParticleAttribConstIterator< T > & at_end(void)
std::ptrdiff_t difference_type
void gather(const Field< T, Dim, M, C > &f, const IntOp &, const ParticleAttrib< CacheData > &cache)
std::vector< SortListIndex_t > SortList_t
Mesh_t & get_mesh() const
std::ptrdiff_t difference_type
ParticleAttribConstIterator(const ParticleAttrib< T > *pa, size_t offset)
ParticleAttribConstIterator(const ParticleAttrib< T > *pa)
ParticleAttribBase::SortListIndex_t SortListIndex_t
ParticleAttribIterator< T > operator-(size_t n) const
ParticleAttribConstIterator()
ParticleAttribIterator< T > & operator++(void)
ParticleAttrib< T > * attrib
ParticleAttribIterator< T > & operator--(void)
virtual void calcSortList(SortList_t &slist, bool ascending=true)
ParticleAttribElem< T, 1U > operator()(unsigned)
ParticleAttribIterator(ParticleAttrib< T > *pa)
const_iterator cbegin() const
void gather(const T *input, T *output, int count, int root=0)
ParticleAttribConstIterator< T > operator++(int)
ParticleAttribIterator< T > iterator
bool operator>(const ParticleAttribIterator< T > &a) const
ParticleAttribIterator< T > & operator+=(size_t n)
ParticleAttribConstIterator< T > PETE_Expr_t
bool operator!=(const ParticleAttribIterator< T > &a) const
virtual void create(size_t)
ParticleAttribConstIterator< T > operator[](size_t n) const
virtual size_t getMessage(Message &, size_t)
ParticleAttribIterator(ParticleAttrib< T > *pa, size_t offset)
SubParticleAttrib< ParticleAttrib< T >, T, Dim > operator[](const SIndex< Dim > &s) const
ParticleAttribConstIterator< T > operator-(size_t n) const
ParticleAttrib(const ParticleAttrib< T > &pa)
ParticleAttrib< T >::ParticleList_t ParticleList_t
ParticleAttribConstIterator< T > operator+(size_t n) const
bool operator==(const ParticleAttribConstIterator< T > &a) const
bool operator==(const ParticleAttribIterator< T > &a) const
bool operator>=(const ParticleAttribIterator< T > &a) const
ParticleAttribConstIterator< T > & operator--(void)
ParticleAttribIterator< T > operator[](size_t n) const
bool reduce(Communicate &, InputIterator, InputIterator, OutputIterator, const ReduceOp &, bool *IncludeVal=0)
const ParticleAttrib< T > & operator=(const PETE_Expr< T1 > &rhs)