ESyS-Particle  2.3.4
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 LinegetClosestPlane (const SimpleParticle &)
 
void fillSpace (int)
 
virtual int getNParts () const =0
 
- Protected Member Functions inherited from ARandomAssembly
double m_random (double, double)
 
vector< SimpleParticlegetNeighborList (const SimpleParticle &)
 
vector< SimpleParticleget3ClosestNeighbors (const SimpleParticle &, const vector< SimpleParticle > &)
 
vector< SimpleParticlegetClosestNeighbors (const SimpleParticle &, int)
 
SimpleParticle getClosestParticle (const SimpleParticle &, const vector< SimpleParticle > &)
 

Protected Attributes

vector< LineBorders
 
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
ASimpleNTablem_snt
 
set< BasicInteraction, BILessm_iset
 
vector< SimpleParticlem_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

◆ checkAFit()

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(), CRandomBlock2D::generate(), and CSplitBlock2D::generate().

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

◆ fillSpace()

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(), Console::Info(), insertParticle(), ARandomAssembly::m_random(), m_rmax, m_rmin, SimpleParticle::moveTo(), and Line::sep().

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

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

◆ findAFit() [1/2]

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:

◆ findAFit() [2/2]

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:

◆ generate()

virtual void ARandomAssembly2D::generate ( int  ,
unsigned int   
)
pure virtual

◆ getAPoint()

virtual Vec3 ARandomAssembly2D::getAPoint ( )
protectedpure virtual

Implemented in CRandomBlock2D, and FaultedBlock2D.

Referenced by fillSpace().

Here is the caller graph for this function:

◆ getClosestPlane()

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:

◆ getNParts()

virtual int ARandomAssembly2D::getNParts ( ) const
protectedpure virtual

Implemented in CRandomBlock2D.

Referenced by fillSpace().

Here is the caller graph for this function:

◆ insertParticle()

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

Implements ARandomAssembly.

Implemented in CRandomBlock2D.

Referenced by fillSpace().

Here is the caller graph for this function:

◆ isInSpace()

bool ARandomAssembly2D::isInSpace ( const Vec3 )
protected

◆ tagEdgeY()

virtual void ARandomAssembly2D::tagEdgeY ( int  ,
int  ,
double   
)
pure virtual

Implements ARandomAssembly.

Implemented in CRandomBlock2D.

◆ tagParticleClosestTo()

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

Implements ARandomAssembly.

Implemented in CRandomBlock2D.

Member Data Documentation

◆ Borders

vector<Line> ARandomAssembly2D::Borders
protected

◆ m_circ_x

bool ARandomAssembly2D::m_circ_x
protected

◆ m_rmax

◆ m_rmin

◆ m_xmax

◆ m_xmin

◆ m_ymax

◆ m_ymin


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