ESyS-Particle  2.3.2
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
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
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)

Reimplemented from esys::lsm::NeighbourTable< TmplParticle >.

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: