ESyS-Particle  2.3.4
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< ParticleParticlePool
 
typedef boost::shared_ptr< ParticlePoolParticlePoolPtr
 
typedef std::vector< bool > BoolVector
 
- Public Types inherited from esys::lsm::NeighbourTable< TmplParticle >
typedef TmplParticle Particle
 
typedef std::vector< Particle * > ParticleVector
 
typedef ForwardIterator< ParticleVectorParticleIterator
 
typedef ForwardConstIterator< ParticleVectorParticleConstIterator
 

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

◆ BoolVector

template<class TmplParticle >
typedef std::vector<bool> esys::lsm::CircularNeighbourTable< TmplParticle >::BoolVector

◆ Inherited

template<class TmplParticle >
typedef NeighbourTable<TmplParticle> esys::lsm::CircularNeighbourTable< TmplParticle >::Inherited

◆ Particle

template<class TmplParticle >
typedef Inherited::Particle esys::lsm::CircularNeighbourTable< TmplParticle >::Particle

◆ ParticlePool

template<class TmplParticle >
typedef boost::object_pool<Particle> esys::lsm::CircularNeighbourTable< TmplParticle >::ParticlePool

◆ ParticlePoolPtr

template<class TmplParticle >
typedef boost::shared_ptr<ParticlePool> esys::lsm::CircularNeighbourTable< TmplParticle >::ParticlePoolPtr

◆ ParticleSet

template<class TmplParticle >
typedef std::set<typename ParticleVector::value_type> esys::lsm::CircularNeighbourTable< TmplParticle >::ParticleSet

◆ ParticleVector

template<class TmplParticle >
typedef Inherited::ParticleVector esys::lsm::CircularNeighbourTable< TmplParticle >::ParticleVector

Constructor & Destructor Documentation

◆ CircularNeighbourTable() [1/2]

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

◆ CircularNeighbourTable() [2/2]

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 
)

◆ ~CircularNeighbourTable()

template<class TmplParticle >
esys::lsm::CircularNeighbourTable< TmplParticle >::~CircularNeighbourTable
virtual

Member Function Documentation

◆ checkPeriodicDimensions()

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

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

Here is the caller graph for this function:

◆ clearClonedParticles()

template<class TmplParticle >
void esys::lsm::CircularNeighbourTable< TmplParticle >::clearClonedParticles
protected

◆ getModdedPosn()

template<class TmplParticle >
Vec3 esys::lsm::CircularNeighbourTable< TmplParticle >::getModdedPosn ( const Vec3 posn) const

◆ getNonClonedParticles()

template<class TmplParticle >
CircularNeighbourTable< TmplParticle >::ParticleVector esys::lsm::CircularNeighbourTable< TmplParticle >::getNonClonedParticles
protected

◆ getNumClonedParticles()

template<class TmplParticle >
size_t esys::lsm::CircularNeighbourTable< TmplParticle >::getNumClonedParticles

◆ getNumParticles()

template<class TmplParticle >
size_t esys::lsm::CircularNeighbourTable< TmplParticle >::getNumParticles

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

Here is the caller graph for this function:

◆ getPeriodicDimensions()

template<class TmplParticle >
const CircularNeighbourTable< TmplParticle >::BoolVector & esys::lsm::CircularNeighbourTable< TmplParticle >::getPeriodicDimensions

◆ havePeriodicDimensions()

template<class TmplParticle >
bool esys::lsm::CircularNeighbourTable< TmplParticle >::havePeriodicDimensions

◆ insert() [1/2]

template<class TmplParticle >
void esys::lsm::CircularNeighbourTable< TmplParticle >::insert ( Particle particle)

◆ insert() [2/2]

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:

◆ insertClone()

template<class TmplParticle >
void esys::lsm::CircularNeighbourTable< TmplParticle >::insertClone ( Particle pParticle,
const Vec3 newPosition 
)

◆ isClone()

template<class TmplParticle >
bool esys::lsm::CircularNeighbourTable< TmplParticle >::isClone ( Particle p) const
protected

◆ resize() [1/2]

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

◆ resize() [2/2]

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:

◆ setCircularBorderWidth() [1/2]

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

◆ setCircularBorderWidth() [2/2]

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:

Member Data Documentation

◆ m_circGridWidth

template<class TmplParticle >
int esys::lsm::CircularNeighbourTable< TmplParticle >::m_circGridWidth
private

◆ m_clonedParticleSet

template<class TmplParticle >
ParticleSet esys::lsm::CircularNeighbourTable< TmplParticle >::m_clonedParticleSet
private

◆ m_particlePoolPtr

template<class TmplParticle >
ParticlePoolPtr esys::lsm::CircularNeighbourTable< TmplParticle >::m_particlePoolPtr
private

◆ m_periodicDimensions

template<class TmplParticle >
BoolVector esys::lsm::CircularNeighbourTable< TmplParticle >::m_periodicDimensions
private

◆ m_periodicDimIndex

template<class TmplParticle >
int esys::lsm::CircularNeighbourTable< TmplParticle >::m_periodicDimIndex
private

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