ESyS-Particle  4.0.1
Public Types | Public Member Functions
esys::lsm::SphereBlockGenerator Class Reference
Inheritance diagram for esys::lsm::SphereBlockGenerator:
Inheritance graph
[legend]
Collaboration diagram for esys::lsm::SphereBlockGenerator:
Collaboration graph
[legend]

List of all members.

Public Types

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

Public Member Functions

 SphereBlockGenerator (NTable &, ParticlePool &, double, const Vec3 &, double, double, double, int, int)
virtual ~SphereBlockGenerator ()
virtual void generate ()
virtual void generateSeedParticles ()
virtual void generateFillParticles ()
virtual SimpleParticle generateParticle (const Vec3 &point)
virtual void insertParticle (const SimpleParticle &)
virtual double getRadius () const
int getNextId ()
size_t getNumParticles () const
const BoundingBox getBBox () const
virtual double getGridRadius () const
virtual bool particleFits (const SimpleParticle &particle) const
ParticleIterator getParticleIterator ()
vector< SimpleParticle * > getClosestNeighbors (const SimpleParticle &, int)
bool findAFitWithSphere (SimpleParticle &, const vector< SimpleParticle * > &)
bool findAFit (SimpleParticle &, const vector< SimpleParticle * > &)
bool checkAFit (const SimpleParticle &)
Vec3 getAPoint ()
- Public Member Functions inherited from esys::lsm::ParticleGenerator
 ParticleGenerator (NTable &nTable, ParticlePool &particlePool)

Additional Inherited Members

- Protected Member Functions inherited from esys::lsm::ParticleGenerator
NTablegetNTable ()
const NTablegetNTable () const
ParticlePool & getParticlePool ()
const ParticlePool & getParticlePool () const

Constructor & Destructor Documentation

esys::lsm::SphereBlockGenerator::SphereBlockGenerator ( NTable ntable,
ParticlePool &  pool,
double  tol,
const Vec3 pos,
double  rad,
double  rmin,
double  rmax,
int  ntries,
int  tag 
)

constructor

Parameters:
ntablethe neigbour table to be used
poolthe particle pool
tolthe fitting tolerance
poscenter position
radradius
rminminimum particle radius
rmaxmaximum particle radius
ntriesmax. nr. of tries
esys::lsm::SphereBlockGenerator::~SphereBlockGenerator ( )
virtual

destructor


Member Function Documentation

bool esys::lsm::SphereBlockGenerator::checkAFit ( const SimpleParticle Po)

check if Po is within the Space and is not crossing any boundary or overlapping with other particles.

Parameters:
Pothe particle

References particleFits().

Referenced by generateFillParticles().

Here is the call graph for this function:

Here is the caller graph for this function:

bool esys::lsm::SphereBlockGenerator::findAFit ( SimpleParticle Po,
const vector< SimpleParticle * > &  NL 
)

Find a fit for a sphere using the list of neigbors

Parameters:
Pothe particle to fit
NLthe list of neighbors

References Sphere3D::FillIn().

Referenced by generateFillParticles().

Here is the call graph for this function:

Here is the caller graph for this function:

bool esys::lsm::SphereBlockGenerator::findAFitWithSphere ( SimpleParticle Po,
const vector< SimpleParticle * > &  NL 
)

Find a fit for a sphere using the list of neigbors and the outer sphere

Parameters:
Pothe particle to fit
NLthe list of neighbors

References Sphere3D::FillIn().

Referenced by generateFillParticles().

Here is the call graph for this function:

Here is the caller graph for this function:

void esys::lsm::SphereBlockGenerator::generate ( )
virtual

generate particles

Implements esys::lsm::ParticleGenerator.

References generateFillParticles(), and generateSeedParticles().

Here is the call graph for this function:

void esys::lsm::SphereBlockGenerator::generateFillParticles ( )
virtual

fill in

References checkAFit(), findAFit(), findAFitWithSphere(), generateParticle(), getAPoint(), getClosestNeighbors(), and insertParticle().

Referenced by generate().

Here is the call graph for this function:

Here is the caller graph for this function:

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

generate a particle at a given position

Parameters:
point

References getNextId(), and getRadius().

Referenced by generateFillParticles(), and generateSeedParticles().

Here is the call graph for this function:

Here is the caller graph for this function:

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

generate seed particles

References generateParticle(), getBBox(), getGridRadius(), esys::lsm::GridIterator::hasNext(), insertParticle(), esys::lsm::GridIterator::next(), and particleFits().

Referenced by generate().

Here is the call graph for this function:

Here is the caller graph for this function:

Vec3 esys::lsm::SphereBlockGenerator::getAPoint ( )

get a random point inside the sphere

Referenced by generateFillParticles().

Here is the caller graph for this function:

const BoundingBox esys::lsm::SphereBlockGenerator::getBBox ( ) const

calculate & return bounding box for bounding sphere

Referenced by generateSeedParticles().

Here is the caller graph for this function:

vector< SimpleParticle * > esys::lsm::SphereBlockGenerator::getClosestNeighbors ( const SimpleParticle P,
int  np 
)

get closes Neigbours

Parameters:
Pthe particle
npthe number of neighbours

Referenced by generateFillParticles().

Here is the caller graph for this function:

double esys::lsm::SphereBlockGenerator::getGridRadius ( ) const
virtual

return max. radius to be used as spacing for grid iterator

Referenced by generateSeedParticles().

Here is the caller graph for this function:

int esys::lsm::SphereBlockGenerator::getNextId ( )

get next available particle ID

Referenced by generateParticle().

Here is the caller graph for this function:

double esys::lsm::SphereBlockGenerator::getRadius ( ) const
virtual

??

Referenced by generateParticle().

Here is the caller graph for this function:

void esys::lsm::SphereBlockGenerator::insertParticle ( const SimpleParticle particle)
virtual

insert particle

Parameters:
particle

Referenced by generateFillParticles(), and generateSeedParticles().

Here is the caller graph for this function:

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

check particle fit

Referenced by checkAFit(), and generateSeedParticles().

Here is the caller graph for this function:


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