ESyS-Particle  2.3
ARandomAssembly2D Class Referenceabstract

Abstract base class for random assemblies, to be used for initialization of random lattices. More...

#include <RandomAssembly2D.h>

Inheritance diagram for ARandomAssembly2D:
Collaboration diagram for ARandomAssembly2D:

Public Member Functions

virtual void generate (int, unsigned int)=0
 
virtual void insertParticle (const SimpleParticle)=0
 
virtual void tagParticleClosestTo (const Vec3 &, int)=0
 
virtual void tagEdgeY (int, int, double)=0
 
- Public Member Functions inherited from ARandomAssembly
virtual ~ARandomAssembly ()
 
virtual void tagEdgeZ (int, int, double)=0
 
virtual void tagSplit (int, int, double)
 
virtual void writeToGeoFile (const string &)=0
 
virtual void writeToVtkFile (const string &)
 
virtual double calcPorosity ()=0
 
virtual vector< pair< double,
double > > 
getSizeDistribution (int)=0
 

Protected Member Functions

virtual Vec3 getAPoint ()=0
 
bool isInSpace (const Vec3 &)
 
bool findAFit (SimpleParticle &, const vector< SimpleParticle > &, const Line &)
 
bool findAFit (SimpleParticle &, const vector< SimpleParticle > &)
 
virtual bool checkAFit (const SimpleParticle &)
 
virtual Line * getClosestPlane (const SimpleParticle &)
 
void fillSpace (int)
 
virtual int getNParts () const =0
 
- Protected Member Functions inherited from ARandomAssembly
double m_random (double, double)
 
vector< SimpleParticle > getNeighborList (const SimpleParticle &)
 
vector< SimpleParticle > get3ClosestNeighbors (const SimpleParticle &, const vector< SimpleParticle > &)
 
vector< SimpleParticle > getClosestNeighbors (const SimpleParticle &, int)
 
SimpleParticle getClosestParticle (const SimpleParticle &, const vector< SimpleParticle > &)
 

Protected Attributes

vector< Line > Borders
 
double m_rmin
 
double m_rmax
 min/max particle radius More...
 
double m_xmin
 
double m_xmax
 
double m_ymin
 
double m_ymax
 x,y borders of the lattice More...
 
bool m_circ_x
 
- Protected Attributes inherited from ARandomAssembly
ASimpleNTable * m_snt
 
set< BasicInteraction, BILess > m_iset
 
vector< SimpleParticle > m_bpart
 

Additional Inherited Members

- Static Protected Attributes inherited from ARandomAssembly
static double m_small_value =1e-7
 

Detailed Description

Abstract base class for random assemblies, to be used for initialization of random lattices.

Author
Steffen Abe $Revision$ $Date$

Member Function Documentation

bool ARandomAssembly2D::checkAFit ( const SimpleParticle &  Po)
protectedvirtual

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

Parameters
Pothe particle

Reimplemented in FaultedBlock2D.

References getClosestPlane(), ARandomAssembly::getNeighborList(), SimpleParticle::getPos(), SimpleParticle::getRad(), esys::lsm::bpu::iter(), m_rmax, m_rmin, ARandomAssembly::m_small_value, m_xmax, m_xmin, m_ymax, m_ymin, Line::sep(), Vec3::X(), and Vec3::Y().

Referenced by FaultedBlock2D::checkAFit(), fillSpace(), CSplitBlock2D::generate(), and CRandomBlock2D::generate().

Here is the call graph for this function:

Here is the caller graph for this function:

void ARandomAssembly2D::fillSpace ( int  tries)
protected

Fill the space in the skeleton after it has been seeded

Parameters
triesthe number of tries

References checkAFit(), console, findAFit(), getAPoint(), ARandomAssembly::getClosestNeighbors(), getClosestPlane(), getNParts(), SimpleParticle::getPos(), SimpleParticle::getRad(), BasicCon::Info(), insertParticle(), ARandomAssembly::m_random(), m_rmax, m_rmin, SimpleParticle::moveTo(), and Line::sep().

Referenced by CSplitBlock2D::generate(), FaultedBlock2D::generate(), and CRandomBlock2D::generate().

Here is the call graph for this function:

Here is the caller graph for this function:

bool ARandomAssembly2D::findAFit ( SimpleParticle &  Po,
const vector< SimpleParticle > &  NL,
const Line &  L 
)
protected

Find a fit for a sphere using the list of neigbor list and a plane

Parameters
Pothe particle to fit
NLthe list of neighbors
PLthe Plane
Todo:
check for at least 2 particles

References Sphere2D::FillInWP(), esys::lsm::SimpleParticleData::getID(), Line::GetO(), and Line::GetU().

Referenced by fillSpace().

Here is the call graph for this function:

Here is the caller graph for this function:

bool ARandomAssembly2D::findAFit ( SimpleParticle &  Po,
const vector< SimpleParticle > &  NL 
)
protected

Find a fit for a sphere using the list of neigbors

Parameters
Pothe particle to fit
NLthe list of neighbors
Todo:
check for at least 3 particles

References Sphere2D::FillIn(), and esys::lsm::SimpleParticleData::getID().

Here is the call graph for this function:

virtual void ARandomAssembly2D::generate ( int  ,
unsigned  int 
)
pure virtual
virtual Vec3 ARandomAssembly2D::getAPoint ( )
protectedpure virtual

Implemented in FaultedBlock2D, and CRandomBlock2D.

Referenced by fillSpace().

Here is the caller graph for this function:

Line * ARandomAssembly2D::getClosestPlane ( const SimpleParticle &  Po)
protectedvirtual

get closest plane to a particle

Parameters
Pothe particle

Reimplemented in FaultedBlock2D.

References Borders, SimpleParticle::getPos(), and esys::lsm::bpu::iter().

Referenced by checkAFit(), fillSpace(), and FaultedBlock2D::getClosestPlane().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual int ARandomAssembly2D::getNParts ( ) const
protectedpure virtual

Implemented in CRandomBlock2D.

Referenced by fillSpace().

Here is the caller graph for this function:

virtual void ARandomAssembly2D::insertParticle ( const SimpleParticle  )
pure virtual

Implements ARandomAssembly.

Implemented in CRandomBlock2D.

Referenced by fillSpace().

Here is the caller graph for this function:

bool ARandomAssembly2D::isInSpace ( const Vec3 &  )
protected
virtual void ARandomAssembly2D::tagEdgeY ( int  ,
int  ,
double   
)
pure virtual

Implements ARandomAssembly.

Implemented in CRandomBlock2D.

virtual void ARandomAssembly2D::tagParticleClosestTo ( const Vec3 &  ,
int   
)
pure virtual

Implements ARandomAssembly.

Implemented in CRandomBlock2D.

Member Data Documentation

vector<Line> ARandomAssembly2D::Borders
protected
bool ARandomAssembly2D::m_circ_x
protected

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