|
ESyS-Particle
2.3.4
|
parrallel particle storage array with neighborsearch and variable exchange More...
#include <SubLattice.h>


Classes | |
| class | ParticleIterator |
Public Types | |
| typedef T_Handle< typename NeighborTable< T >::pairlist > | PairListHandle |
| typedef NeighborTable< T >::pairlist::iterator | PairListIterator |
| typedef T_Handle< typename NeighborTable< T >::particlelist > | ParticleListHandle |
| typedef NeighborTable< T >::particlelist::iterator | ParticleListIterator |
Public Member Functions | |
| ParallelParticleArray (TML_Comm *comm, const vector< unsigned int > &dims, const Vec3 &min, const Vec3 &max, double rmax, double alpha) | |
| ParallelParticleArray (TML_Comm *comm, const vector< unsigned int > &dims, const vector< bool > &circ, const Vec3 &min, const Vec3 &max, double rmax, double alpha) | |
| ~ParallelParticleArray () | |
| Vec3 | getMinPos () const |
| Vec3 | getMaxPos () const |
| vector< int > | getCommCoords () const |
| vector< int > | getCommDims () const |
| int | size () |
| int | getInnerSize () |
| void | insert (const T &) |
| particle insertion More... | |
| void | insert (const vector< T > &) |
| multi particle insert More... | |
| virtual bool | isInInner (const Vec3 &) |
| T * | getParticlePtrByIndex (int) |
| T * | getParticlePtrByPosition (const Vec3 &) |
| void | rebuild () |
| template<typename P > | |
| void | exchange (P(T::*rdf)(), void(T::*wrtf)(const P &)) |
| void | forParticle (int, void(T::*rdf)()) |
| template<typename P > | |
| void | forParticle (int, void(T::*rdf)(P), const P &) |
| void | forParticleTag (int, void(T::*rdf)()) |
| template<typename P > | |
| void | forParticleTag (int, void(T::*rdf)(P), const P &) |
| void | forParticleTagMask (int, int, void(T::*rdf)()) |
| template<typename P > | |
| void | forParticleTagMask (int, int, void(T::*rdf)(P), const P &) |
| void | forAllParticles (void(T::*rdf)()) |
| void | forAllParticles (void(T::*rdf)() const) |
| template<typename P > | |
| void | forAllParticles (void(T::*rdf)(P), const P &) |
| template<typename P > | |
| void | forAllInnerParticles (void(T::*rdf)(P &), P &) |
| ParticleIterator | getInnerParticleIterator () |
| template<typename P > | |
| void | forAllParticlesGet (P &, typename P::value_type(T::*rdf)() const) |
| template<typename P > | |
| void | forAllInnerParticlesGet (P &, typename P::value_type(T::*rdf)() const) |
| template<typename P > | |
| vector< pair< int, P > > | forAllParticlesGetIndexed (P(T::*rdf)() const) |
| template<typename P > | |
| vector< pair< int, P > > | forAllInnerParticlesGetIndexed (P(T::*rdf)() const) |
| template<typename P > | |
| void | forAllTaggedParticlesGet (P &, typename P::value_type(T::*rdf)() const, int, int) |
| template<typename P > | |
| void | forAllTaggedInnerParticlesGet (P &, typename P::value_type(T::*rdf)() const, int, int) |
| template<typename P > | |
| vector< pair< int, P > > | forAllTaggedParticlesGetIndexed (P(T::*rdf)() const, int, int) |
| template<typename P > | |
| vector< pair< int, P > > | forAllInnerTaggedParticlesGetIndexed (P(T::*rdf)() const, int, int) |
| template<typename P > | |
| void | forPointsGetNearest (P &, typename P::value_type(T::*rdf)() const, const Vec3 &, double, double, double, int, int, int) |
| virtual set< int > | getBoundarySlabIds (int, int) const |
| virtual set< int > | get2ndSlabIds (int, int) const |
| PairListHandle | getFullPairList () |
| Get list of all pairs. Forwards to NTable::getFullList(). More... | |
| PairListHandle | getNewPairList () |
| Get list of new pairs. Forwards to NTable::getNewList(). More... | |
| ParticleListHandle | getParticlesAtPlane (Vec3 o, Vec3 n) |
| Get list of particles along a plane. Forwards to NTable::getParticlesAtPlane. More... | |
| ParticleListHandle | getParticlesNearSphere (Vec3 c, double r) |
| Get list of particles near a sphere body. Forwards to NTable::getParticlesNearSphere. More... | |
| ParticleListHandle | getParticlesNearTriangle (const Triangle &t) |
| Get list of particles near a triangle. Forwards to NTable::getParticlesNearTriangle. More... | |
| ParticleListHandle | getParticlesNearEdge (const AEdge *e) |
| Get list of particles near an edge. Forwards to NTable::getParticlesNearEdge. More... | |
| ParticleListHandle | getParticlesNearPoint (const Vec3 &v) |
| Get list of particles near a point. Forwards to NTable::getParticlesNearEdge. More... | |
| ParticleListHandle | getAllParticles () |
| Get list of all particles. Forwards to NTable. More... | |
| void | getAllInnerParticles (vector< T > &) |
| get all particles in inner block and put them into a vector More... | |
| void | saveCheckPointData (std::ostream &) |
| void | loadCheckPointData (std::istream &) |
Private Member Functions | |
| template<typename P > | |
| void | exchange_single (P(T::*rdf)(), void(T::*wrtf)(const P &), NTSlab< T >, NTSlab< T >, int, int) |
Private Attributes | |
| NeighborTable< T > * | m_nt |
| Vec3 | m_minpos |
| Vec3 | m_maxpos |
| local minimum and maximum positions More... | |
| double | m_xshift |
| double | m_yshift |
| double | m_zshift |
| circular shift values More... | |
| bool | m_circ_edge_x_up |
| bool | m_circ_edge_x_down |
| circular edge flags More... | |
Static Private Attributes | |
| static const int | m_exchg_tag |
Friends | |
| template<typename TT > | |
| ostream & | operator<< (ostream &, const ParallelParticleArray< TT > &) |
parrallel particle storage array with neighborsearch and variable exchange
| typedef T_Handle<typename NeighborTable<T>::pairlist> ParallelParticleArray::PairListHandle |
| typedef NeighborTable<T>::pairlist::iterator ParallelParticleArray::PairListIterator |
| typedef T_Handle<typename NeighborTable<T>::particlelist> ParallelParticleArray::ParticleListHandle |
| typedef NeighborTable<T>::particlelist::iterator ParallelParticleArray::ParticleListIterator |
| ParallelParticleArray::ParallelParticleArray | ( | TML_Comm * | comm, |
| const vector< unsigned int > & | dims, | ||
| const Vec3 & | min, | ||
| const Vec3 & | max, | ||
| double | rmax, | ||
| double | alpha | ||
| ) |
| ParallelParticleArray::ParallelParticleArray | ( | TML_Comm * | comm, |
| const vector< unsigned int > & | dims, | ||
| const vector< bool > & | circ, | ||
| const Vec3 & | min, | ||
| const Vec3 & | max, | ||
| double | rmax, | ||
| double | alpha | ||
| ) |
| ParallelParticleArray::~ParallelParticleArray | ( | ) |
| void ParallelParticleArray::exchange | ( | P(T::*)() | rdf, |
| void(T::*)(const P &) | wrtf | ||
| ) |
|
private |
| void ParallelParticleArray::forAllInnerParticles | ( | void(T::*)(P &) | rdf, |
| P & | |||
| ) |
| void ParallelParticleArray::forAllInnerParticlesGet | ( | P & | , |
| typename P::value_type(T::*)() const | rdf | ||
| ) |
| vector<pair<int,P> > ParallelParticleArray::forAllInnerParticlesGetIndexed | ( | P(T::*)() const | rdf | ) |
| vector<pair<int,P> > ParallelParticleArray::forAllInnerTaggedParticlesGetIndexed | ( | P(T::*)() const | rdf, |
| int | , | ||
| int | |||
| ) |
| void ParallelParticleArray::forAllParticles | ( | void(T::*)() const | rdf | ) |
| void ParallelParticleArray::forAllParticles | ( | void(T::*)() | rdf | ) |
| void ParallelParticleArray::forAllParticles | ( | void(T::*)(P) | rdf, |
| const P & | |||
| ) |
| void ParallelParticleArray::forAllParticlesGet | ( | P & | , |
| typename P::value_type(T::*)() const | rdf | ||
| ) |
| vector<pair<int,P> > ParallelParticleArray::forAllParticlesGetIndexed | ( | P(T::*)() const | rdf | ) |
| void ParallelParticleArray::forAllTaggedInnerParticlesGet | ( | P & | , |
| typename P::value_type(T::*)() const | rdf, | ||
| int | , | ||
| int | |||
| ) |
| void ParallelParticleArray::forAllTaggedParticlesGet | ( | P & | , |
| typename P::value_type(T::*)() const | rdf, | ||
| int | , | ||
| int | |||
| ) |
| vector<pair<int,P> > ParallelParticleArray::forAllTaggedParticlesGetIndexed | ( | P(T::*)() const | rdf, |
| int | , | ||
| int | |||
| ) |
| void ParallelParticleArray::forParticle | ( | int | , |
| void(T::*)() | rdf | ||
| ) |
| void ParallelParticleArray::forParticle | ( | int | , |
| void(T::*)(P) | rdf, | ||
| const P & | |||
| ) |
| void ParallelParticleArray::forParticleTag | ( | int | , |
| void(T::*)() | rdf | ||
| ) |
| void ParallelParticleArray::forParticleTag | ( | int | , |
| void(T::*)(P) | rdf, | ||
| const P & | |||
| ) |
| void ParallelParticleArray::forParticleTagMask | ( | int | , |
| int | , | ||
| void(T::*)() | rdf | ||
| ) |
| void ParallelParticleArray::forParticleTagMask | ( | int | , |
| int | , | ||
| void(T::*)(P) | rdf, | ||
| const P & | |||
| ) |
| void ParallelParticleArray::forPointsGetNearest | ( | P & | , |
| typename P::value_type(T::*)() const | rdf, | ||
| const Vec3 & | , | ||
| double | , | ||
| double | , | ||
| double | , | ||
| int | , | ||
| int | , | ||
| int | |||
| ) |
|
virtual |
| void ParallelParticleArray::getAllInnerParticles | ( | vector< T > & | ) |
get all particles in inner block and put them into a vector
|
inline |
Get list of all particles. Forwards to NTable.
|
virtual |
|
inline |
|
inline |
|
inline |
Get list of all pairs. Forwards to NTable::getFullList().
Referenced by ParallelInteractionStorage_ED_T< P, I >::update(), ParallelInteractionStorage_NE_T< P, I >::update(), ParallelInteractionStorage_NE< P, I >::update(), ParallelInteractionStorage_ED< P, I >::update(), CRotThermElasticInteractionGroup< T >::Update(), CRotElasticInteractionGroup< T >::Update(), and CElasticInteractionGroup< T >::Update().

| ParticleIterator ParallelParticleArray::getInnerParticleIterator | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
Get list of new pairs. Forwards to NTable::getNewList().
Referenced by ParallelInteractionStorage_ED_T< P, I >::update(), ParallelInteractionStorage_NE_T< P, I >::update(), ParallelInteractionStorage_NE< P, I >::update(), ParallelInteractionStorage_ED< P, I >::update(), CRotThermElasticInteractionGroup< T >::Update(), CRotElasticInteractionGroup< T >::Update(), and CElasticInteractionGroup< T >::Update().

| T* ParallelParticleArray::getParticlePtrByIndex | ( | int | ) |
Referenced by ParallelInteractionStorage_EB< P, I >::loadCheckPointData(), TriMesh_PIS_EB< ParticleType, IType >::rebuild(), ParallelInteractionStorage_E< P, I >::rebuild(), Mesh2D_PIS_EB< ParticleType, IType >::rebuild(), TriMesh_PIS_EB< ParticleType, IType >::tryInsert(), ParallelInteractionStorage_E< P, I >::tryInsert(), and Mesh2D_PIS_EB< ParticleType, IType >::tryInsert().

| T* ParallelParticleArray::getParticlePtrByPosition | ( | const Vec3 & | ) |
|
inline |
Get list of particles along a plane. Forwards to NTable::getParticlesAtPlane.
Referenced by CTaggedEWallInteractionGroup< T >::Update(), CEWallInteractionGroup< T >::Update(), CSoftBWallInteractionGroup< T >::Update(), CViscWallIG< T >::Update(), and CBWallInteractionGroup::Update().

|
inline |
Get list of particles near an edge. Forwards to NTable::getParticlesNearEdge.
|
inline |
Get list of particles near a point. Forwards to NTable::getParticlesNearEdge.
|
inline |
Get list of particles near a sphere body. Forwards to NTable::getParticlesNearSphere.
Referenced by CESphereBodyInteractionGroup< T >::Update().

|
inline |
Get list of particles near a triangle. Forwards to NTable::getParticlesNearTriangle.
| void ParallelParticleArray::insert | ( | const T & | ) |
particle insertion
| void ParallelParticleArray::insert | ( | const vector< T > & | ) |
multi particle insert
|
virtual |
Referenced by CTaggedEWallInteractionGroup< T >::Update(), CEWallInteractionGroup< T >::Update(), CESphereBodyInteractionGroup< T >::Update(), CSoftBWallInteractionGroup< T >::Update(), CViscWallIG< T >::Update(), and CBWallInteractionGroup::Update().

| void ParallelParticleArray::loadCheckPointData | ( | std::istream & | ) |
| void ParallelParticleArray::rebuild | ( | ) |
| void ParallelParticleArray::saveCheckPointData | ( | std::ostream & | ) |
|
inline |
|
friend |
|
private |
circular edge flags
|
private |
|
staticprivate |
|
private |
local minimum and maximum positions
Referenced by ParallelParticleArray< T >::getMaxPos().
|
private |
Referenced by ParallelParticleArray< T >::getMinPos().
|
private |
Referenced by ParallelParticleArray< T >::getAllParticles(), ParallelParticleArray< T >::getFullPairList(), ParallelParticleArray< T >::getInnerSize(), ParallelParticleArray< T >::getNewPairList(), ParallelParticleArray< T >::getParticlesAtPlane(), ParallelParticleArray< T >::getParticlesNearEdge(), ParallelParticleArray< T >::getParticlesNearPoint(), ParallelParticleArray< T >::getParticlesNearSphere(), ParallelParticleArray< T >::getParticlesNearTriangle(), operator<<(), and ParallelParticleArray< T >::size().
|
private |
|
private |
|
private |
circular shift values