GenGeo  1.1
InsertGenerator3D Class Reference

#include <InsertGenerator3D.h>

Inheritance diagram for InsertGenerator3D:
Collaboration diagram for InsertGenerator3D:

Public Member Functions

 InsertGenerator3D ()
 InsertGenerator3D (double, double, int, int, double)
 InsertGenerator3D (double, double, int, int, double, bool)
virtual ~InsertGenerator3D ()
void setOldSeeding (bool)
virtual void fillIn (AVolume3D *, MNTable3D *, int, int)
virtual void fillIn (AVolume3D *, MNTable3D *, int, int, ShapeList *)
virtual void fillIn (AVolume3D *, MNTable3D *, int, int, double)
virtual void generatePacking3 (AVolume3D *, MNTable3D *, int)
virtual void generatePacking4 (AVolume3D *, MNTable3D *, int, int)
virtual void generatePackingMaxVolume (AVolume3D *, MNTable3D *, int, int, double)
virtual void generatePacking (AVolume3D *, MNTable3D *, int, int, ShapeList *)
void setNextTag (int)
- Public Member Functions inherited from AGenerator3D
virtual ~AGenerator3D ()

Protected Member Functions

virtual void seedParticles (AVolume3D *, MNTable3D *, int, int)
virtual void seedParticles (AVolume3D *, MNTable3D *, int, int, ShapeList *)

Protected Attributes

double m_rmin
double m_rmax
double m_max_tries
int m_max_iter
double m_prec
double m_next_tag
bool m_old_seeding

Friends

ostream & operator<< (ostream &, const InsertGenerator3D &)

Detailed Description

Packing generator using Place et al. insertion based algorithm in 3D.

Constructor & Destructor Documentation

InsertGenerator3D::InsertGenerator3D ( )
InsertGenerator3D::InsertGenerator3D ( double  rmin,
double  rmax,
int  tries,
int  max_iter,
double  prec 
)

Constructor

Parameters
rminminimum particle radius
rmaxmaximum particle radius
ntriesmax. nr. of tries to insert particle
max_itermaximum iterations within the iterative solvers
precmax. error in iterative solvers

References m_max_iter, m_max_tries, m_prec, m_rmax, and m_rmin.

InsertGenerator3D::InsertGenerator3D ( double  rmin,
double  rmax,
int  tries,
int  max_iter,
double  prec,
bool  seed 
)

Constructor

Parameters
rminminimum particle radius
rmaxmaximum particle radius
ntriesmax. nr. of tries to insert particle
max_itermaximum iterations within the iterative solvers
precmax. error in iterative solvers
seedif true, initialize random number generator via time

References m_max_iter, m_max_tries, m_next_tag, m_prec, m_rmax, and m_rmin.

InsertGenerator3D::~InsertGenerator3D ( )
virtual

Destructor

Member Function Documentation

void InsertGenerator3D::fillIn ( AVolume3D vol,
MNTable3D ntable,
int  gid,
int  tag 
)
virtual

Fill in particles

Parameters
vola pointer to the packing volume
ntablea pointer to the neighbour table used
gidparticle group id

Reimplemented in HexAggregateInsertGenerator3D.

References FitSphere3D(), AVolume::getAPoint(), AVolume3D::getClosestObjects(), AVolume::getNumberSubVolumes(), MNTable3D::getSpheresClosestTo(), MNTable3D::insertChecked(), AVolume::isIn(), m_max_iter, m_max_tries, m_prec, m_rmax, m_rmin, Sphere::Radius(), and Sphere::setTag().

Referenced by generatePacking(), and generatePackingMaxVolume().

Here is the call graph for this function:

void InsertGenerator3D::fillIn ( AVolume3D vol,
MNTable3D ntable,
int  gid,
int  tag,
ShapeList list 
)
virtual

Fill in particles

Parameters
vola pointer to the packing volume
ntablea pointer to the neighbour table used
gidparticle group id

References Sphere::Center(), MNTable3D::checkInsertable(), FitSphere3D(), AVolume::getAPoint(), AVolume3D::getClosestObjects(), AVolume::getNumberSubVolumes(), MNTable3D::getSpheresClosestTo(), ShapeList::insertShape(), AVolume::isIn(), m_max_iter, m_max_tries, m_prec, m_rmax, m_rmin, Sphere::Radius(), and Sphere::setTag().

Here is the call graph for this function:

void InsertGenerator3D::fillIn ( AVolume3D vol,
MNTable3D ntable,
int  gid,
int  tag,
double  maxvol 
)
virtual

Fill in particles

Parameters
vola pointer to the packing volume
ntablea pointer to the neighbour table used
gidparticle group id
tagthe tag of the new particles
maxvolmaximum particle volume

References MNTable3D::checkInsertable(), FitSphere3D(), AVolume::getAPoint(), AVolume3D::getClosestObjects(), AVolume::getNumberSubVolumes(), MNTable3D::getSpheresClosestTo(), MNTable3D::getSumVolume(), MNTable3D::insertChecked(), AVolume::isIn(), m_max_iter, m_max_tries, m_prec, m_rmax, m_rmin, Sphere::Radius(), and Sphere::setTag().

Here is the call graph for this function:

void InsertGenerator3D::generatePacking ( AVolume3D vol,
MNTable3D ntable,
int  gid,
int  tag = -1,
ShapeList list = (ShapeList*)0 
)
virtual

generate packing

Parameters
vola pointer to the volume in which the packing is generated
ntablea pointer to the neighbour table used
gidparticle group id
tagthe tagid of particles to be inserted
listthe list of shapes to be inserted

Implements AGenerator3D.

References fillIn(), m_next_tag, and seedParticles().

Referenced by exportInsertGenerator3D(), generate_granular_gouge(), generatePacking4(), and main().

Here is the call graph for this function:

void InsertGenerator3D::generatePacking3 ( AVolume3D vol,
MNTable3D ntable,
int  gid 
)
virtual

References generatePacking4().

Referenced by exportHexAggregateInsertGenerator3D(), and exportInsertGenerator3D().

Here is the call graph for this function:

void InsertGenerator3D::generatePacking4 ( AVolume3D vol,
MNTable3D ntable,
int  gid,
int  tag = -1 
)
virtual

References generatePacking().

Referenced by exportHexAggregateInsertGenerator3D(), exportInsertGenerator3D(), and generatePacking3().

Here is the call graph for this function:

void InsertGenerator3D::generatePackingMaxVolume ( AVolume3D vol,
MNTable3D ntable,
int  gid,
int  tag,
double  maxvol 
)
virtual

generate packing with at most a given total volume of the inserted particles

Parameters
vola pointer to the volume in which the packing is generated
ntablea pointer to the neighbour table used
gidparticle group id
tagthe tagid of particles to be inserted
maxvolmaximum cumulative volume of inserted particles (may not be reached)

References fillIn(), and seedParticles().

Referenced by exportHexAggregateInsertGenerator3D(), and exportInsertGenerator3D().

Here is the call graph for this function:

void InsertGenerator3D::seedParticles ( AVolume3D vol,
MNTable3D ntable,
int  gid,
int  tag 
)
protectedvirtual

seed the area with particles

Parameters
vola pointer to the packing volume
ntablea pointer to the neighbour table used
gidparticle group id
tagthe tag for the generated particles

Reimplemented in HexAggregateInsertGenerator3D.

References MNTable3D::checkInsertable(), AVolume::getBoundingBox(), MNTable3D::insertChecked(), AVolume::isIn(), m_old_seeding, m_rmax, m_rmin, and Sphere::setTag().

Referenced by generatePacking(), and generatePackingMaxVolume().

Here is the call graph for this function:

void InsertGenerator3D::seedParticles ( AVolume3D vol,
MNTable3D ntable,
int  gid,
int  tag,
ShapeList sList 
)
protectedvirtual

seed the area with particles

Parameters
vola pointer to the packing volume
ntablea pointer to the neighbour table used
gidparticle group id
tagthe tag for the generated particles

References MNTable3D::checkInsertable(), AVolume::getBoundingBox(), ShapeList::insertShape(), AVolume::isIn(), m_rmax, and m_rmin.

Here is the call graph for this function:

void InsertGenerator3D::setNextTag ( int  tag)

Set tag for the next particles to be generated. Persists until changed.

Parameters
tagthe tag

References m_next_tag.

Referenced by exportInsertGenerator3D().

void InsertGenerator3D::setOldSeeding ( bool  old)

toggle between old (pre rev.84, ansiotropic) and new (rev 84 onwards) seeding behaviour

Parameters
oldif true -> old behaviour, if false -> new behaviour

References m_old_seeding.

Referenced by exportInsertGenerator3D().

Friends And Related Function Documentation

ostream& operator<< ( ostream &  ost,
const InsertGenerator3D T 
)
friend

Member Data Documentation

int InsertGenerator3D::m_max_iter
protected
double InsertGenerator3D::m_max_tries
protected
double InsertGenerator3D::m_next_tag
protected
bool InsertGenerator3D::m_old_seeding
protected

Referenced by seedParticles(), and setOldSeeding().

double InsertGenerator3D::m_prec
protected

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