ESyS-Particle  2.3.2
esys::lsm::GranularGougeBlock3D Class Reference

Class to generate a 3d block of material consisting of a granular gouge between two solid blocks. More...

#include <GranularGougeBlock3D.h>

Inheritance diagram for esys::lsm::GranularGougeBlock3D:
Collaboration diagram for esys::lsm::GranularGougeBlock3D:

Public Member Functions

 GranularGougeBlock3D (const GougeBlockPrms &prms)
virtual ~GranularGougeBlock3D ()
virtual void createInteractionSet ()
virtual void generate ()
virtual void generateGrains (double, double, double, double, double, double, int)
- Public Member Functions inherited from esys::lsm::GougeBlock3D
 GougeBlock3D (const GougeBlockPrms &prms)
virtual ~GougeBlock3D ()
int getNumParticles () const
const GeneratorPtrVectorgetGougeGeneratorVector () const
const GeneratorPtrVectorgetFaultGeneratorVector () const
bool isGougeParticle (const SimpleParticle &particle) const
bool areInDifferentFaultBlocks (const SimpleParticle &p1, const SimpleParticle &p2) const
virtual void write (std::ostream &oStream) const
void writeToFile (const std::string &fileName) const
void tagGougeParticles (int tag)
void tagFaultParticles (int tag)
void tagDrivingPlateParticles (int minDrivingTag, int maxDrivingTag, double distanceFromBBoxEdge)
const InteractionSetgetInteractionSet () const
template<typename TmplVisitor >
void visitParticles (TmplVisitor &visitor)
template<typename TmplVisitor >
void visitParticles (const TmplVisitor &visitor) const
template<typename TmplVisitor >
void visitInteractions (TmplVisitor &visitor) const
const GougeBlockPrmsgetPrms () const

Private Member Functions

void generateSeeds (double, double, double, double, double, double)

Private Attributes

vector< Vec3m_grain_seeds
 seed points for grain generation algorithm

Additional Inherited Members

- Public Types inherited from esys::lsm::GougeBlock3D
typedef SimpleParticle Particle
typedef CircularNeighbourTable
< SimpleParticle
NTable
typedef boost::shared_ptr< NTableNTablePtr
typedef boost::shared_ptr
< BlockGenerator
GeneratorPtr
typedef std::vector< GeneratorPtrGeneratorPtrVector
typedef NTable::ParticlePool ParticlePool
typedef NTable::ParticlePoolPtr ParticlePoolPtr
typedef std::set
< BasicInteraction, BILess
InteractionSet
- Protected Member Functions inherited from esys::lsm::GougeBlock3D
void createRegularBlockGenerators ()
void createFaultBlockGenerators ()
virtual void createGougeBlockGenerators ()
- Protected Attributes inherited from esys::lsm::GougeBlock3D
NTablePtr m_nTablePtr
GougeBlockPrms m_prms
InteractionSet m_interactionSet
GeneratorPtrVector m_gougeGenPtrVector
GeneratorPtrVector m_genPtrVector
ParticlePoolPtr m_particlePoolPtr

Detailed Description

Class to generate a 3d block of material consisting of a granular gouge between two solid blocks.

Author
Steffen Abe $Revision$ $Date$

Constructor & Destructor Documentation

esys::lsm::GranularGougeBlock3D::GranularGougeBlock3D ( const GougeBlockPrms prms)

Constructor for GranularGougeBlock3D. Do nothing and call the base class constructor (GougeBlock3D)

Parameters
prmsthe GougeBlock3D parameters
esys::lsm::GranularGougeBlock3D::~GranularGougeBlock3D ( )
virtual

Destructor. No dynamically allocated data in class -> do nothing

Member Function Documentation

void esys::lsm::GranularGougeBlock3D::createInteractionSet ( )
virtual

Create interaction set. Changed from base class by using a different validator which allows links between particles with the same tag, i.e. belonging to the same composite grain. Refactor ?

Reimplemented from esys::lsm::GougeBlock3D.

References esys::lsm::GougeBlockPrms::getConnectionTolerance(), esys::lsm::ForwardIterator< TmplIteratable >::hasNext(), esys::lsm::GranularInteractionValidator::isValid(), esys::lsm::GougeBlock3D::m_interactionSet, esys::lsm::GougeBlock3D::m_nTablePtr, esys::lsm::GougeBlock3D::m_prms, and esys::lsm::ForwardIterator< TmplIteratable >::next().

Here is the call graph for this function:

void esys::lsm::GranularGougeBlock3D::generate ( )
virtual
void esys::lsm::GranularGougeBlock3D::generateGrains ( double  sdx,
double  sdy,
double  sdz,
double  rdx,
double  rdy,
double  rdz,
int  min_tag 
)
virtual

Generate composite grains from the existing gouge particles by randomly distributing seed points within the gouge region, then tagging all particles closest to the same seed point with the same tag.

Warning
currently assumes single gouge layer/generator
Parameters
sdxseed density, i.e. average distance between seeds in x-direction
sdyseed density in y-direction
sdzseed density in z-direction
rdxrandom variation of seed points in x-direction
rdyrandom variation of seed points in y-direction
rdzrandom variation of seed points in z-direction
min_tagminimum tag to be used in order not to collide with allready used tags
rm_thresholdgrains with less then rm_threshold particles get removed. Defaults to 0

References generateSeeds(), SimpleParticle::getPos(), esys::lsm::ForwardIterator< TmplIteratable >::hasNext(), esys::lsm::bpu::iter(), esys::lsm::GougeBlock3D::m_gougeGenPtrVector, m_grain_seeds, esys::lsm::ForwardIterator< TmplIteratable >::next(), and esys::lsm::SimpleParticleData::setTag().

Here is the call graph for this function:

void esys::lsm::GranularGougeBlock3D::generateSeeds ( double  sdx,
double  sdy,
double  sdz,
double  rdx,
double  rdy,
double  rdz 
)
private

Create the seed points for the grain generation algorithm. Algorithm currently assumes single gouge layer.

Parameters
sdxseed density, i.e. average distance between seeds in x-direction
sdyseed density in y-direction
sdzseed density in z-direction
rdxrandom variation of seed points in x-direction
rdyrandom variation of seed points in y-direction
rdzrandom variation of seed points in z-direction

References getBBox(), esys::lsm::GougeBlockPrms::getGougePackingInfoVector(), esys::lsm::BoundingBox::getMaxPt(), esys::lsm::BoundingBox::getMinPt(), m_grain_seeds, esys::lsm::GougeBlock3D::m_prms, Vec3::X(), Vec3::Y(), and Vec3::Z().

Referenced by generateGrains().

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

vector<Vec3> esys::lsm::GranularGougeBlock3D::m_grain_seeds
private

seed points for grain generation algorithm

Referenced by generateGrains(), and generateSeeds().


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