ESyS-Particle  2.3.4
ARandomAssembly3D Class Referenceabstract

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

#include <RandomAssembly3D.h>

Inheritance diagram for ARandomAssembly3D:
Collaboration diagram for ARandomAssembly3D:

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
 
virtual void tagEdgeZ (int, int, double)=0
 
- Public Member Functions inherited from ARandomAssembly
virtual ~ARandomAssembly ()
 
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 findAFit (SimpleParticle &, const vector< SimpleParticle > &)
 
bool findAFit (SimpleParticle &, const vector< SimpleParticle > &, const Plane3D &)
 
virtual bool checkAFit (const SimpleParticle &)
 
virtual Plane3D getClosestPlane (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< Plane3DBorders
 
double m_rmin
 
double m_rmax
 min/max particle radius More...
 
double m_xmin
 
double m_xmax
 
double m_ymin
 
double m_ymax
 
double m_zmin
 
double m_zmax
 x,y,z 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 ARandomAssembly3D::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 CRoughPaddedBlock3D.

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, m_zmax, m_zmin, Plane3D::sep(), Vec3::X(), Vec3::Y(), and Vec3::Z().

Referenced by CRoughPaddedBlock3D::checkAFit(), fillSpace(), CPaddedBlock3D::generate(), CRandomBlock3D::generate(), CSplitBlock3D::generate(), and CPaddedBlock3D::generate_regular_padding().

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

◆ fillSpace()

void ARandomAssembly3D::fillSpace ( int  tries)
protected

◆ findAFit() [1/2]

bool ARandomAssembly3D::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

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

Referenced by fillSpace().

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

◆ findAFit() [2/2]

bool ARandomAssembly3D::findAFit ( SimpleParticle Po,
const vector< SimpleParticle > &  NL,
const Plane3D 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
Lthe Plane3D

References Sphere3D::FillInWP(), esys::lsm::SimpleParticleData::getID(), Plane3D::GetO(), and Plane3D::GetW().

Here is the call graph for this function:

◆ generate()

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

Implements ARandomAssembly.

Implemented in CSplitBlock3D, CRandomBlock3D, and CPaddedBlock3D.

◆ getAPoint()

virtual Vec3 ARandomAssembly3D::getAPoint ( )
protectedpure virtual

Implemented in CRandomBlock3D, and CPaddedBlock3D.

Referenced by fillSpace().

Here is the caller graph for this function:

◆ getClosestPlane()

Plane3D ARandomAssembly3D::getClosestPlane ( const SimpleParticle Po)
protectedvirtual

get closest plane to a particle

Parameters
Pothe particle

Reimplemented in CRoughPaddedBlock3D.

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

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

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

◆ getNParts()

virtual int ARandomAssembly3D::getNParts ( ) const
protectedpure virtual

Implemented in CRandomBlock3D.

Referenced by fillSpace().

Here is the caller graph for this function:

◆ insertParticle()

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

Implements ARandomAssembly.

Implemented in CRandomBlock3D.

Referenced by fillSpace().

Here is the caller graph for this function:

◆ tagEdgeY()

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

Implements ARandomAssembly.

Implemented in CRandomBlock3D.

◆ tagEdgeZ()

virtual void ARandomAssembly3D::tagEdgeZ ( int  ,
int  ,
double   
)
pure virtual

Implements ARandomAssembly.

Implemented in CRandomBlock3D.

◆ tagParticleClosestTo()

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

Implements ARandomAssembly.

Member Data Documentation

◆ Borders

◆ m_circ_x

bool ARandomAssembly3D::m_circ_x
protected

◆ m_rmax

◆ m_rmin

◆ m_xmax

◆ m_xmin

◆ m_ymax

◆ m_ymin

◆ m_zmax

◆ m_zmin


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