ESyS-Particle  2.3
esys::lsm::CircularNeighbourTable< TmplParticle > Class Template Reference

#include <CircularNeighbourTable.h>

Inheritance diagram for esys::lsm::CircularNeighbourTable< TmplParticle >:
Collaboration diagram for esys::lsm::CircularNeighbourTable< TmplParticle >:

Public Types

typedef NeighbourTable
< TmplParticle > 
Inherited
 
typedef Inherited::Particle Particle
 
typedef Inherited::ParticleVector ParticleVector
 
typedef std::set< typename
ParticleVector::value_type > 
ParticleSet
 
typedef boost::object_pool
< Particle
ParticlePool
 
typedef boost::shared_ptr
< ParticlePool
ParticlePoolPtr
 
typedef std::vector< bool > BoolVector
 
- Public Types inherited from esys::lsm::NeighbourTable< TmplParticle >
typedef TmplParticle Particle
 
typedef std::vector< Particle * > ParticleVector
 
typedef ForwardIterator
< ParticleVector
ParticleIterator
 
typedef ForwardConstIterator
< ParticleVector
ParticleConstIterator
 

Public Member Functions

 CircularNeighbourTable (const BoundingBox &bBox, double gridSpacing, const BoolVector &periodicDimensions=BoolVector(3, false), double circBorderWidth=0.0)
 
 CircularNeighbourTable (const BoundingBox &bBox, double gridSpacing, ParticlePoolPtr particlePoolPtr, const BoolVector &periodicDimensions=BoolVector(3, false), double circBorderWidth=0.0)
 
void checkPeriodicDimensions ()
 
virtual ~CircularNeighbourTable ()
 
void setCircularBorderWidth (double circBorderWidth, double gridSpacing)
 
void setCircularBorderWidth (double circBorderWidth)
 
void resize (const BoundingBox &bBox, double gridSpacing, double circBorderWidth)
 
void resize (const BoundingBox &bBox, double gridSpacing)
 
void insertClone (Particle *pParticle, const Vec3 &newPosition)
 
bool havePeriodicDimensions () const
 
Vec3 getModdedPosn (const Vec3 &posn) const
 
void insert (Particle *pParticle)
 
void insert (Particle &particle)
 
size_t getNumClonedParticles () const
 
size_t getNumParticles () const
 
const BoolVectorgetPeriodicDimensions () const
 
- Public Member Functions inherited from esys::lsm::NeighbourTable< TmplParticle >
 NeighbourTable (const BoundingBox &bBox, double gridSpacing)
 
 NeighbourTable (const NeighbourTable &nTable)
 
virtual ~NeighbourTable ()
 
void clear ()
 
double getGridSpacing () const
 
void resize (const BoundingBox &bBox, double gridSpacing)
 
const Vec3LgetDimensions () const
 
const BoundingBoxgetBBox () const
 
const Vec3getMinPt () const
 
size_t size () const
 
int getScalarIndex (int xIdx, int yIdx, int zIdx) const
 
int getScalarIndex (const Vec3L &index) const
 
int getScalarIndex (const Vec3 &pt) const
 
const Vec3LgetMinVecIndex () const
 
const Vec3LgetMaxVecIndex () const
 
Vec3L getVecIndex (const Vec3 &pt) const
 
ParticleVector getNeighbourVector (const Vec3 &pt, double radius) const
 
ParticleVector getUniqueNeighbourVector (const Vec3 &pt, double radius) const
 
ParticleVector getNeighbourVector (const Vec3 &pt) const
 
void insert (Particle *pParticle)
 
void insert (Particle &particle)
 
ParticleIterator getParticleIterator ()
 
ParticleConstIterator getParticleIterator () const
 

Protected Member Functions

bool isClone (Particle *p) const
 
ParticleVector getNonClonedParticles ()
 
void clearClonedParticles ()
 
- Protected Member Functions inherited from esys::lsm::NeighbourTable< TmplParticle >
void insertInTable (Particle *pParticle, const Vec3L &minIdx, const Vec3L &maxIdx)
 
void addInserted (Particle *pParticle)
 
int getNumCells () const
 
ParticleVector getInsertedParticles () const
 
void clearAndRecomputeGrid (const BoundingBox &bBox, double gridSpacing)
 

Private Attributes

BoolVector m_periodicDimensions
 
ParticlePoolPtr m_particlePoolPtr
 
ParticleSet m_clonedParticleSet
 
int m_circGridWidth
 
int m_periodicDimIndex
 

Member Typedef Documentation

template<class TmplParticle>
typedef std::vector<bool> esys::lsm::CircularNeighbourTable< TmplParticle >::BoolVector
template<class TmplParticle>
typedef NeighbourTable<TmplParticle> esys::lsm::CircularNeighbourTable< TmplParticle >::Inherited
template<class TmplParticle>
typedef Inherited::Particle esys::lsm::CircularNeighbourTable< TmplParticle >::Particle
template<class TmplParticle>
typedef boost::object_pool<Particle> esys::lsm::CircularNeighbourTable< TmplParticle >::ParticlePool
template<class TmplParticle>
typedef boost::shared_ptr<ParticlePool> esys::lsm::CircularNeighbourTable< TmplParticle >::ParticlePoolPtr
template<class TmplParticle>
typedef std::set<typename ParticleVector::value_type> esys::lsm::CircularNeighbourTable< TmplParticle >::ParticleSet
template<class TmplParticle>
typedef Inherited::ParticleVector esys::lsm::CircularNeighbourTable< TmplParticle >::ParticleVector

Constructor & Destructor Documentation

template<class TmplParticle >
esys::lsm::CircularNeighbourTable< TmplParticle >::CircularNeighbourTable ( const BoundingBox bBox,
double  gridSpacing,
const BoolVector periodicDimensions = BoolVector(3, false),
double  circBorderWidth = 0.0 
)
template<class TmplParticle >
esys::lsm::CircularNeighbourTable< TmplParticle >::CircularNeighbourTable ( const BoundingBox bBox,
double  gridSpacing,
ParticlePoolPtr  particlePoolPtr,
const BoolVector periodicDimensions = BoolVector(3, false),
double  circBorderWidth = 0.0 
)
template<class TmplParticle >
esys::lsm::CircularNeighbourTable< TmplParticle >::~CircularNeighbourTable ( )
virtual

Member Function Documentation

template<class TmplParticle >
void esys::lsm::CircularNeighbourTable< TmplParticle >::checkPeriodicDimensions ( )

Referenced by esys::lsm::CircularNeighbourTable< TmplParticle >::CircularNeighbourTable().

Here is the caller graph for this function:

template<class TmplParticle >
void esys::lsm::CircularNeighbourTable< TmplParticle >::clearClonedParticles ( )
protected
template<class TmplParticle >
Vec3 esys::lsm::CircularNeighbourTable< TmplParticle >::getModdedPosn ( const Vec3 posn) const
template<class TmplParticle >
CircularNeighbourTable< TmplParticle >::ParticleVector esys::lsm::CircularNeighbourTable< TmplParticle >::getNonClonedParticles ( )
protected
template<class TmplParticle >
size_t esys::lsm::CircularNeighbourTable< TmplParticle >::getNumClonedParticles ( ) const
template<class TmplParticle >
size_t esys::lsm::CircularNeighbourTable< TmplParticle >::getNumParticles ( ) const

Referenced by esys::lsm::SphereBlockGenerator::getNextId(), and esys::lsm::BlockGenerator::getNextId().

Here is the caller graph for this function:

template<class TmplParticle >
const CircularNeighbourTable< TmplParticle >::BoolVector & esys::lsm::CircularNeighbourTable< TmplParticle >::getPeriodicDimensions ( ) const
template<class TmplParticle >
bool esys::lsm::CircularNeighbourTable< TmplParticle >::havePeriodicDimensions ( ) const
template<class TmplParticle >
void esys::lsm::CircularNeighbourTable< TmplParticle >::insert ( Particle pParticle)

References getBBox(), esys::lsm::BoundingBox::getSizes(), and Vec3::ZERO.

Referenced by esys::lsm::SphereBlockGenerator::insertParticle(), and esys::lsm::BlockGenerator::insertParticle().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class TmplParticle >
void esys::lsm::CircularNeighbourTable< TmplParticle >::insert ( Particle particle)
template<class TmplParticle >
void esys::lsm::CircularNeighbourTable< TmplParticle >::insertClone ( Particle pParticle,
const Vec3 newPosition 
)
template<class TmplParticle >
bool esys::lsm::CircularNeighbourTable< TmplParticle >::isClone ( Particle p) const
protected
template<class TmplParticle >
void esys::lsm::CircularNeighbourTable< TmplParticle >::resize ( const BoundingBox bBox,
double  gridSpacing,
double  circBorderWidth 
)

References esys::lsm::BoundingBox::getSizes().

Here is the call graph for this function:

template<class TmplParticle >
void esys::lsm::CircularNeighbourTable< TmplParticle >::resize ( const BoundingBox bBox,
double  gridSpacing 
)
template<class TmplParticle >
void esys::lsm::CircularNeighbourTable< TmplParticle >::setCircularBorderWidth ( double  circBorderWidth,
double  gridSpacing 
)

Referenced by esys::lsm::CircularNeighbourTable< TmplParticle >::CircularNeighbourTable().

Here is the caller graph for this function:

template<class TmplParticle >
void esys::lsm::CircularNeighbourTable< TmplParticle >::setCircularBorderWidth ( double  circBorderWidth)

Member Data Documentation

template<class TmplParticle>
int esys::lsm::CircularNeighbourTable< TmplParticle >::m_circGridWidth
private
template<class TmplParticle>
ParticleSet esys::lsm::CircularNeighbourTable< TmplParticle >::m_clonedParticleSet
private
template<class TmplParticle>
ParticlePoolPtr esys::lsm::CircularNeighbourTable< TmplParticle >::m_particlePoolPtr
private
template<class TmplParticle>
BoolVector esys::lsm::CircularNeighbourTable< TmplParticle >::m_periodicDimensions
private
template<class TmplParticle>
int esys::lsm::CircularNeighbourTable< TmplParticle >::m_periodicDimIndex
private

The documentation for this class was generated from the following files: