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

Block of gouge consisting of spherical aggregate grains. More...

#include <SphAggGougeBlock.h>

Inheritance diagram for esys::lsm::SphAggGougeBlock:
Collaboration diagram for esys::lsm::SphAggGougeBlock:

Public Types

typedef boost::shared_ptr
< SphereBlockGenerator
SBG_ptr
- 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

Public Member Functions

 SphAggGougeBlock (const GougeBlockPrms &, double, double, int)
virtual void generate ()
template<typename TmplVisitor >
void visitParticles (TmplVisitor &)
template<typename TmplVisitor >
void visitParticles (TmplVisitor &) const
- 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 (const TmplVisitor &visitor) const
template<typename TmplVisitor >
void visitInteractions (TmplVisitor &visitor) const
const GougeBlockPrmsgetPrms () const

Protected Member Functions

void generateMacroGrains ()
void fillMacroGrains ()
void setupNT2 ()
void createInteractionSet ()
virtual void createGougeBlockGenerators ()
- Protected Member Functions inherited from esys::lsm::GougeBlock3D
void createRegularBlockGenerators ()
void createFaultBlockGenerators ()

Protected Attributes

double m_min_rad_grain
double m_max_rad_grain
vector< SimpleParticlem_macro_grains
NTablePtr m_nTablePtr2
ParticlePoolPtr m_particlePoolPtr2
GeneratorPtr m_grainGen
vector< SBG_ptrm_grainParticleGen
int m_min_grain_tag
- 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

Block of gouge consisting of spherical aggregate grains.

Member Typedef Documentation

Constructor & Destructor Documentation

esys::lsm::SphAggGougeBlock::SphAggGougeBlock ( const GougeBlockPrms params,
double  minRadGrain,
double  maxRadGrain,
int  minGrainTag 
)

constructor

Parameters
paramsthe general gouge parameters
minRadGrainminimum radius of the macro grains
maxRadGrainmaximum radius of the macro grains
minGrainTagminimum tag for grains

References m_max_rad_grain, m_min_grain_tag, and m_min_rad_grain.

Member Function Documentation

void esys::lsm::SphAggGougeBlock::createGougeBlockGenerators ( )
protectedvirtual

create block generators for gouge region -> do nothing

Reimplemented from esys::lsm::GougeBlock3D.

void esys::lsm::SphAggGougeBlock::createInteractionSet ( )
protectedvirtual

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::SphAggInteractionValidator::isValid(), esys::lsm::GougeBlock3D::m_interactionSet, m_min_grain_tag, esys::lsm::GougeBlock3D::m_nTablePtr, esys::lsm::GougeBlock3D::m_prms, and esys::lsm::ForwardIterator< TmplIteratable >::next().

Referenced by generate().

Here is the call graph for this function:

Here is the caller graph for this function:

void esys::lsm::SphAggGougeBlock::generateMacroGrains ( )
protected
void esys::lsm::SphAggGougeBlock::setupNT2 ( )
protected

helper function for generate - setup the 2nd NTable (for the macro grains)

References esys::lsm::GougeBlockPrms::getBBox(), esys::lsm::BoundingBox::getMaxPt(), esys::lsm::GougeBlockPrms::getMaxRadius(), esys::lsm::BoundingBox::getMinPt(), esys::lsm::BoundingBox::getSizes(), m_max_rad_grain, m_min_rad_grain, m_nTablePtr2, esys::lsm::GougeBlock3D::m_prms, and Vec3::Z().

Referenced by generate().

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename TmplVisitor >
void esys::lsm::SphAggGougeBlock::visitParticles ( TmplVisitor &  visitor)

Reimplemented from esys::lsm::GougeBlock3D.

References esys::lsm::ForwardIterator< TmplIteratable >::hasNext(), m_grainParticleGen, and esys::lsm::ForwardIterator< TmplIteratable >::next().

Referenced by visitParticles().

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename TmplVisitor >
void esys::lsm::SphAggGougeBlock::visitParticles ( TmplVisitor &  visitor) const

Member Data Documentation

GeneratorPtr esys::lsm::SphAggGougeBlock::m_grainGen
protected

Referenced by generateMacroGrains().

vector<SBG_ptr> esys::lsm::SphAggGougeBlock::m_grainParticleGen
protected

Referenced by fillMacroGrains(), and visitParticles().

vector<SimpleParticle> esys::lsm::SphAggGougeBlock::m_macro_grains
protected
double esys::lsm::SphAggGougeBlock::m_max_rad_grain
protected
int esys::lsm::SphAggGougeBlock::m_min_grain_tag
protected
double esys::lsm::SphAggGougeBlock::m_min_rad_grain
protected
NTablePtr esys::lsm::SphAggGougeBlock::m_nTablePtr2
protected
ParticlePoolPtr esys::lsm::SphAggGougeBlock::m_particlePoolPtr2
protected

Referenced by generateMacroGrains().


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