Go to the documentation of this file.
13 #ifndef __PARALLEL_PARTICLE_ARRAY_H
14 #define __PARALLEL_PARTICLE_ARRAY_H
109 void insert(
const vector<T>&);
123 template<
typename P>
void exchange(P (T::*rdf)(),
void (T::*wrtf)(
const P&));
127 template <
typename P>
void forParticle(
int,
void (T::*rdf)(P),
const P&);
131 template <
typename P>
void forParticleTag(
int,
void (T::*rdf)(P),
const P&);
138 template <
typename P>
void forAllParticles(
void (T::*rdf)(P),
const P&);
167 template <
typename P>
void forAllParticlesGet(P&,
typename P::value_type (T::*rdf)()
const);
179 template <
typename P>
void forPointsGetNearest(P&,
typename P::value_type (T::*rdf)()
const,
const Vec3&,
double,
double,
double,
int,
int,
int);
211 template <
typename TT>
217 #endif //__PARALLEL_PARTICLE_ARRAY_H
virtual ~AParallelParticleArray()
Definition: pp_array.h:51
Vec3 m_minpos
Definition: pp_array.h:84
~ParallelParticleArray()
Definition: pp_array.hpp:171
Vec3 getMinPos() const
Definition: pp_array.h:100
int getTimeStamp()
return time stamp of last rebuild
Definition: pp_array.h:57
NeighborTable< T >::pairlist::iterator PairListIterator
Definition: pp_array.h:78
representation of a slab of the search array of a NeigborTable
Definition: nt_block.h:33
Class representing a Triangle.
Definition: Triangle.h:48
static const int m_exchg_tag
Definition: pp_array.h:87
void forAllParticles(void(T::*rdf)() const)
Definition: pp_array.h:144
PairListHandle getFullPairList()
Get list of all pairs. Forwards to NTable::getFullList().
Definition: pp_array.h:187
bool m_circ_edge_x_up
Definition: pp_array.h:86
double m_yshift
Definition: pp_array.h:85
ParticleListHandle getParticlesNearSphere(Vec3 c, double r)
Get list of particles near a sphere body. Forwards to NTable::getParticlesNearSphere.
Definition: pp_array.h:193
TML_CartComm m_comm
Definition: pp_array.h:44
int m_numRemaining
Definition: pp_array.h:161
void forAllInnerParticles(void(T::*rdf)(P &), P &)
Definition: pp_array.hpp:617
ParticleListHandle getAllParticles()
Get list of all particles. Forwards to NTable.
Definition: pp_array.h:201
vector< int > getCommCoords() const
Definition: pp_array.h:102
double m_zshift
circular shift values
Definition: pp_array.h:85
ParticleListHandle getParticlesNearPoint(const Vec3 &v)
Get list of particles near a point. Forwards to NTable::getParticlesNearEdge.
Definition: pp_array.h:199
NtBlock m_ntBlock
Definition: pp_array.h:159
ParticleListHandle getParticlesNearTriangle(const Triangle &t)
Get list of particles near a triangle. Forwards to NTable::getParticlesNearTriangle.
Definition: pp_array.h:195
ParticleIterator(const NtBlock &ntBlock)
Definition: pp_array.hpp:652
T * getParticlePtrByIndex(int)
Definition: pp_array.hpp:220
void getAllInnerParticles(vector< T > &)
get all particles in inner block and put them into a vector
Definition: pp_array.hpp:1006
NtBlock::iterator BlockIterator
Definition: pp_array.h:148
int size()
Definition: pp_array.h:104
void forParticleTagMask(int, int, void(T::*rdf)())
Definition: pp_array.hpp:532
virtual bool isInInner(const Vec3 &)=0
void forAllTaggedInnerParticlesGet(P &, typename P::value_type(T::*rdf)() const, int, int)
Definition: pp_array.hpp:790
abstract base class for edges in mesh (2D or 3D)
Definition: AEdge.h:28
void forAllInnerParticlesGet(P &, typename P::value_type(T::*rdf)() const)
Definition: pp_array.hpp:698
void forAllParticlesGet(P &, typename P::value_type(T::*rdf)() const)
Definition: pp_array.hpp:642
ParallelParticleArray(TML_Comm *comm, const vector< unsigned int > &dims, const Vec3 &min, const Vec3 &max, double rmax, double alpha)
Definition: pp_array.hpp:62
friend ostream & operator<<(ostream &, const ParallelParticleArray< TT > &)
AParallelParticleArray(TML_Comm *comm, const std::vector< unsigned int > &dims)
Definition: app_array.cpp:21
virtual set< int > getBoundarySlabIds(int, int) const
Definition: pp_array.hpp:902
void forParticle(int, void(T::*rdf)())
Definition: pp_array.hpp:456
PairListHandle getNewPairList()
Get list of new pairs. Forwards to NTable::getNewList().
Definition: pp_array.h:189
void insert(const T &)
particle insertion
Definition: pp_array.hpp:182
NeighborTable< T >::particlelist::iterator ParticleListIterator
Definition: pp_array.h:80
int getInnerSize()
Definition: pp_array.h:105
Particle & next()
Definition: pp_array.hpp:669
parrallel particle storage array with neighborsearch and variable exchange
Definition: pp_array.h:75
NTBlock< T > NtBlock
Definition: pp_array.h:146
T * getParticlePtrByPosition(const Vec3 &)
Definition: pp_array.hpp:232
representation of a slab of the search array of a NeigborTable
Definition: nt_slab.h:35
int getNumRemaining() const
Definition: pp_array.hpp:678
iterator for a NTBlock
Definition: ntb_iter.h:39
virtual set< int > getBoundarySlabIds(int, int) const =0
void forPointsGetNearest(P &, typename P::value_type(T::*rdf)() const, const Vec3 &, double, double, double, int, int, int)
Definition: pp_array.hpp:875
T_Handle< typename NeighborTable< T >::pairlist > PairListHandle
Definition: pp_array.h:77
abstract base class for parallel particle storage array
Definition: pp_array.h:42
void exchange(P(T::*rdf)(), void(T::*wrtf)(const P &))
Definition: pp_array.hpp:373
ParticleListHandle getParticlesAtPlane(Vec3 o, Vec3 n)
Get list of particles along a plane. Forwards to NTable::getParticlesAtPlane.
Definition: pp_array.h:191
class for a cartesian communicator
Definition: cart_comm.h:34
void rebuild()
Definition: pp_array.hpp:242
Vec3 m_maxpos
local minimum and maximum positions
Definition: pp_array.h:84
bool hasNext() const
Definition: pp_array.hpp:663
T_Handle< typename NeighborTable< T >::particlelist > ParticleListHandle
Definition: pp_array.h:79
Template class for a handle/ref. counted pointer.
Definition: handle.h:27
class for neighbor search
Definition: ntable.h:68
void forAllTaggedParticlesGet(P &, typename P::value_type(T::*rdf)() const, int, int)
Definition: pp_array.hpp:768
double m_xshift
Definition: pp_array.h:85
virtual bool isInInner(const Vec3 &)
Definition: pp_array.hpp:208
vector< pair< int, P > > forAllTaggedParticlesGetIndexed(P(T::*rdf)() const, int, int)
Definition: pp_array.hpp:813
vector< pair< int, P > > forAllParticlesGetIndexed(P(T::*rdf)() const)
Definition: pp_array.hpp:716
virtual set< int > get2ndSlabIds(int, int) const =0
abstract base class for communicator
Definition: comm.h:47
void loadCheckPointData(std::istream &)
Definition: pp_array.hpp:1050
vector< pair< int, P > > forAllInnerTaggedParticlesGetIndexed(P(T::*rdf)() const, int, int)
Definition: pp_array.hpp:841
ParticleIterator getInnerParticleIterator()
Definition: pp_array.hpp:684
vector< int > getCommDims() const
Definition: pp_array.h:103
bool m_circ_edge_x_down
circular edge flags
Definition: pp_array.h:86
void forAllParticles(void(T::*rdf)())
Definition: pp_array.hpp:570
virtual set< int > get2ndSlabIds(int, int) const
Definition: pp_array.hpp:960
BlockIterator m_it
Definition: pp_array.h:160
T Particle
Definition: pp_array.h:147
ParticleListHandle getParticlesNearEdge(const AEdge *e)
Get list of particles near an edge. Forwards to NTable::getParticlesNearEdge.
Definition: pp_array.h:197
void saveCheckPointData(std::ostream &)
Definition: pp_array.hpp:1023
TML_CartComm getComm() const
Definition: pp_array.h:54
void exchange_single(P(T::*rdf)(), void(T::*wrtf)(const P &), NTSlab< T >, NTSlab< T >, int, int)
Definition: pp_array.hpp:413
void forParticleTag(int, void(T::*rdf)())
Definition: pp_array.hpp:491
int m_timestamp
Definition: pp_array.h:45
Vec3 getMaxPos() const
Definition: pp_array.h:101
NeighborTable< T > * m_nt
Definition: pp_array.h:83
vector< pair< int, P > > forAllInnerParticlesGetIndexed(P(T::*rdf)() const)
Definition: pp_array.hpp:737