ESyS-Particle  2.3.4
ARandomAssembly Class Referenceabstract

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

#include <ARandomAssembly.h>

Inheritance diagram for ARandomAssembly:
Collaboration diagram for ARandomAssembly:

Public Member Functions

virtual ~ARandomAssembly ()
 
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
 
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

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

ASimpleNTablem_snt
 
set< BasicInteraction, BILessm_iset
 
vector< SimpleParticlem_bpart
 

Static Protected Attributes

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$

Constructor & Destructor Documentation

◆ ~ARandomAssembly()

virtual ARandomAssembly::~ARandomAssembly ( )
inlinevirtual

Member Function Documentation

◆ calcPorosity()

virtual double ARandomAssembly::calcPorosity ( )
pure virtual

Implemented in CRandomBlock3D, and CRandomBlock2D.

◆ generate()

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

◆ get3ClosestNeighbors()

vector< SimpleParticle > ARandomAssembly::get3ClosestNeighbors ( const SimpleParticle Po,
const vector< SimpleParticle > &  NL 
)
protected

Get the 3 clostest neighbors of a particle (sorted)

Parameters
Pothe particle
NLthe list of neighbors
Todo:
Current implementation is lazy (NlogN), implement cN

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

Here is the call graph for this function:

◆ getClosestNeighbors()

vector< SimpleParticle > ARandomAssembly::getClosestNeighbors ( const SimpleParticle Po,
int  n 
)
protected

Get the n closest neighbors of a particle (sorted)

Parameters
Pothe particle
nmax nr. or neighbours returned

References ASimpleNTable::getNeighbors(), SimpleParticle::getPos(), esys::lsm::bpu::iter(), and m_snt.

Referenced by ARandomAssembly2D::fillSpace(), and ARandomAssembly3D::fillSpace().

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

◆ getClosestParticle()

SimpleParticle ARandomAssembly::getClosestParticle ( const SimpleParticle Po,
const vector< SimpleParticle > &  NL 
)
protected

get particle closest to a particle (on surface separation)

Parameters
Pothe particle
NLthe list of neighbors

References SimpleParticle::getPos(), and SimpleParticle::getRad().

Here is the call graph for this function:

◆ getNeighborList()

vector< SimpleParticle > ARandomAssembly::getNeighborList ( const SimpleParticle Po)
protected

get the list of neighbors of a particle

Parameters
Pothe Particle

References ASimpleNTable::getNeighbors(), SimpleParticle::getPos(), and m_snt.

Referenced by ARandomAssembly2D::checkAFit(), and ARandomAssembly3D::checkAFit().

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

◆ getSizeDistribution()

virtual vector<pair<double,double> > ARandomAssembly::getSizeDistribution ( int  )
pure virtual

Implemented in CRandomBlock3D, and CRandomBlock2D.

◆ insertParticle()

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

◆ m_random()

◆ tagEdgeY()

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

◆ tagEdgeZ()

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

◆ tagParticleClosestTo()

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

◆ tagSplit()

virtual void ARandomAssembly::tagSplit ( int  ,
int  ,
double   
)
inlinevirtual

Reimplemented in CSplitBlock3D, CSplitBlock2D, and FaultedBlock2D.

◆ writeToGeoFile()

virtual void ARandomAssembly::writeToGeoFile ( const string &  )
pure virtual

Implemented in CRandomBlock3D, and CRandomBlock2D.

◆ writeToVtkFile()

void ARandomAssembly::writeToVtkFile ( const string &  filename)
virtual

References esys::lsm::bpu::iter(), m_bpart, and m_iset.

Here is the call graph for this function:

Member Data Documentation

◆ m_bpart

◆ m_iset

◆ m_small_value

double ARandomAssembly::m_small_value =1e-7
staticprotected

◆ m_snt


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