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

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: