ESyS-Particle  2.3.4
esys::lsm::BlockGenerator Class Referenceabstract

#include <BlockGenerator.h>

Inheritance diagram for esys::lsm::BlockGenerator:
Collaboration diagram for esys::lsm::BlockGenerator:

Public Types

typedef NTable::ParticleVector ParticleVector
 
typedef NTable::ParticleIterator ParticleIterator
 
typedef std::set< int > IdSet
 
- Public Types inherited from esys::lsm::ParticleGenerator
typedef CircularNeighbourTable< SimpleParticleNTable
 
typedef boost::object_pool< SimpleParticleParticlePool
 

Public Member Functions

 BlockGenerator (NTable &nTable, ParticlePool &particlePool, const BoundingBox &bBox, const BoolVector &periodicDimensions, double tolerance)
 
virtual ~BlockGenerator ()
 
virtual void generate ()=0
 
virtual void generateSeedParticles ()
 
virtual SimpleParticle generateParticle (const Vec3 &point)
 
virtual double getRadius () const =0
 
virtual double getGridRadius () const =0
 
size_t getNumParticles () const
 
int getNextId ()
 
virtual bool particleFits (const SimpleParticle &particle) const
 
bool is2d () const
 
bool particleFitsInBBox (const SimpleParticle &particle) const
 
bool particleFitsWithNeighbours (const SimpleParticle &particle) const
 
void insertParticle (const SimpleParticle &particle)
 
double getTolerance () const
 
const BoundingBoxgetBBox () const
 
bool contains (const SimpleParticle &particle) const
 
ParticleIterator getParticleIterator ()
 
- Public Member Functions inherited from esys::lsm::ParticleGenerator
 ParticleGenerator (NTable &nTable, ParticlePool &particlePool)
 
virtual ~ParticleGenerator ()
 

Private Attributes

BoundingBox m_bBox
 
BoolVector m_periodicDimensions
 
ParticleVector m_particleVector
 
double m_tolerance
 
IdSet m_idSet
 

Additional Inherited Members

- Protected Member Functions inherited from esys::lsm::ParticleGenerator
 ParticleGenerator ()
 
NTablegetNTable ()
 
const NTablegetNTable () const
 
ParticlePoolgetParticlePool ()
 
const ParticlePoolgetParticlePool () const
 

Member Typedef Documentation

◆ IdSet

typedef std::set<int> esys::lsm::BlockGenerator::IdSet

◆ ParticleIterator

◆ ParticleVector

Constructor & Destructor Documentation

◆ BlockGenerator()

esys::lsm::BlockGenerator::BlockGenerator ( NTable nTable,
ParticlePool particlePool,
const BoundingBox bBox,
const BoolVector periodicDimensions,
double  tolerance 
)

◆ ~BlockGenerator()

esys::lsm::BlockGenerator::~BlockGenerator ( )
virtual

Member Function Documentation

◆ contains()

bool esys::lsm::BlockGenerator::contains ( const SimpleParticle particle) const

References esys::lsm::SimpleParticleData::getID(), and m_idSet.

Here is the call graph for this function:

◆ generate()

virtual void esys::lsm::BlockGenerator::generate ( )
pure virtual

◆ generateParticle()

SimpleParticle esys::lsm::BlockGenerator::generateParticle ( const Vec3 point)
virtual

References getNextId(), and getRadius().

Referenced by esys::lsm::RandomBlockGenerator::generateFillParticles(), and generateSeedParticles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ generateSeedParticles()

void esys::lsm::BlockGenerator::generateSeedParticles ( )
virtual

◆ getBBox()

const BoundingBox & esys::lsm::BlockGenerator::getBBox ( ) const

◆ getGridRadius()

virtual double esys::lsm::BlockGenerator::getGridRadius ( ) const
pure virtual

Implemented in esys::lsm::RegularBlockGenerator, and esys::lsm::RandomBlockGenerator.

Referenced by generateSeedParticles().

Here is the caller graph for this function:

◆ getNextId()

int esys::lsm::BlockGenerator::getNextId ( )

References esys::lsm::ParticleGenerator::getNTable(), and esys::lsm::CircularNeighbourTable< TmplParticle >::getNumParticles().

Referenced by generateParticle().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getNumParticles()

size_t esys::lsm::BlockGenerator::getNumParticles ( ) const

References m_idSet.

◆ getParticleIterator()

ParticleIterator esys::lsm::BlockGenerator::getParticleIterator ( )
inline

References m_particleVector.

◆ getRadius()

virtual double esys::lsm::BlockGenerator::getRadius ( ) const
pure virtual

Implemented in esys::lsm::RegularBlockGenerator, and esys::lsm::RandomBlockGenerator.

Referenced by generateParticle().

Here is the caller graph for this function:

◆ getTolerance()

double esys::lsm::BlockGenerator::getTolerance ( ) const

References m_tolerance.

Referenced by esys::lsm::RandomBlockGenerator::getClosestNeighbors(), particleFitsInBBox(), and particleFitsWithNeighbours().

Here is the caller graph for this function:

◆ insertParticle()

void esys::lsm::BlockGenerator::insertParticle ( const SimpleParticle particle)

◆ is2d()

bool esys::lsm::BlockGenerator::is2d ( ) const

References getBBox().

Referenced by esys::lsm::RandomBlockGenerator::getFitterPtrVector(), and particleFitsInBBox().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ particleFits()

bool esys::lsm::BlockGenerator::particleFits ( const SimpleParticle particle) const
virtual

Reimplemented in esys::lsm::RandomBlockGenerator.

References particleFitsInBBox(), and particleFitsWithNeighbours().

Referenced by generateSeedParticles(), and esys::lsm::RandomBlockGenerator::particleFits().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ particleFitsInBBox()

bool esys::lsm::BlockGenerator::particleFitsInBBox ( const SimpleParticle particle) const

References esys::lsm::BoundingBox::contains(), SimpleParticle::getPos(), SimpleParticle::getRad(), getTolerance(), is2d(), m_bBox, and m_periodicDimensions.

Referenced by particleFits().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ particleFitsWithNeighbours()

bool esys::lsm::BlockGenerator::particleFitsWithNeighbours ( const SimpleParticle particle) const

Member Data Documentation

◆ m_bBox

BoundingBox esys::lsm::BlockGenerator::m_bBox
private

Referenced by getBBox(), and particleFitsInBBox().

◆ m_idSet

IdSet esys::lsm::BlockGenerator::m_idSet
private

◆ m_particleVector

ParticleVector esys::lsm::BlockGenerator::m_particleVector
private

◆ m_periodicDimensions

BoolVector esys::lsm::BlockGenerator::m_periodicDimensions
private

Referenced by particleFitsInBBox().

◆ m_tolerance

double esys::lsm::BlockGenerator::m_tolerance
private

Referenced by getTolerance().


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