11#ifndef PARTICLE_ATTRIB_ELEM_H
12#define PARTICLE_ATTRIB_ELEM_H
55 return elem(indx[0], indx[1]);
60 return elem(indx[0], indx[1], indx[2]);
66template<
class T,
unsigned Dim>
119 void destroy(
size_t M,
size_t I,
bool optDestroy=
true);
123 void destroy(
const std::vector< std::pair<size_t,size_t> >& dlist,
124 bool optDestroy=
true);
130 template<
unsigned SDim>
152 ERRORMSG(
"Attempting to copy particle attributes with unequal sizes.");
175template <
class T,
unsigned Dim>
177 :
public PETE_Expr< ParticleAttribElemIterator<T,Dim> > {
221template<
class T,
unsigned Dim>
228template<
class T,
unsigned Dim>
234template<
class T,
unsigned Dim>
238 Attrib.destroy(M, I, optDestroy);
241template<
class T,
unsigned Dim>
245 Attrib.destroy(d, optDestroy);
void assign(const BareField< T, Dim > &a, RHS b, OP op, ExprTag< true >)
AppTypeTraits< T >::Element_t & get_PETE_Element(T &elem, const vec< unsigned, 1U > &indx)
Inform & endl(Inform &inf)
ParticleAttribElemIterator(ParticleAttribElem< T, Dim > &pae, int p)
ParticleAttribElemIterator()
ParticleAttribElemIterator< T, Dim > PETE_Expr_t
ParticleAttribElemIterator(const ParticleAttribElemIterator< T, Dim > &i)
ParticleAttribElemIterator< T, Dim > & rewind()
bool operator!=(const ParticleAttribElemIterator< T, Dim > &a) const
PETE_Expr_t MakeExpression() const
PETE_Return_t & operator*()
AppTypeTraits< T >::Element_t PETE_Return_t
ParticleAttribElemIterator< T, Dim > & operator++()
ParticleAttribElem< T, Dim > * PAE
const ParticleAttribElem< T, Dim > & getParticleAttribElem() const
bool operator==(const ParticleAttribElemIterator< T, Dim > &a) const
void destroy(size_t M, size_t I, bool optDestroy=true)
AppTypeTraits< T >::Element_t Element_t
PETE_Expr_t MakeExpression() const
ParticleAttrib< T > & Attrib
ParticleAttribElem(const ParticleAttribElem< T, Dim > &pae)
const ParticleAttribElem< T, Dim > & operator=(Element_t rhs)
const ParticleAttribElem< T, Dim > & operator=(const PETE_Expr< T1 > &rhs)
ParticleAttribElem(ParticleAttrib< T > &pa, const vec< unsigned, Dim > &i)
const ParticleAttribElem< T, Dim > & operator=(const ParticleAttribElem< T, Dim > &rhs)
ParticleAttribElemIterator< T, Dim > iterator
SubParticleAttrib< ParticleAttribElem< T, Dim >, Element_t, SDim > operator[](const SIndex< SDim > &s) const
vec< unsigned, Dim > indx
Element_t & operator[](size_t)