ESyS-Particle  2.3.4
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< SphereBlockGeneratorSBG_ptr
 
- Public Types inherited from esys::lsm::GougeBlock3D
typedef SimpleParticle Particle
 
typedef CircularNeighbourTable< SimpleParticleNTable
 
typedef boost::shared_ptr< NTableNTablePtr
 
typedef boost::shared_ptr< BlockGeneratorGeneratorPtr
 
typedef std::vector< GeneratorPtrGeneratorPtrVector
 
typedef NTable::ParticlePool ParticlePool
 
typedef NTable::ParticlePoolPtr ParticlePoolPtr
 
typedef std::set< BasicInteraction, BILessInteractionSet
 

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 (TmplVisitor &visitor)
 
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

◆ SBG_ptr

Constructor & Destructor Documentation

◆ SphAggGougeBlock()

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

◆ createGougeBlockGenerators()

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

create block generators for gouge region -> do nothing

Reimplemented from esys::lsm::GougeBlock3D.

◆ createInteractionSet()

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:

◆ fillMacroGrains()

◆ generate()

◆ generateMacroGrains()

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

◆ setupNT2()

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:

◆ visitParticles() [1/2]

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

◆ visitParticles() [2/2]

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

Member Data Documentation

◆ m_grainGen

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

Referenced by generateMacroGrains().

◆ m_grainParticleGen

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

Referenced by fillMacroGrains(), and visitParticles().

◆ m_macro_grains

vector<SimpleParticle> esys::lsm::SphAggGougeBlock::m_macro_grains
protected

◆ m_max_rad_grain

double esys::lsm::SphAggGougeBlock::m_max_rad_grain
protected

◆ m_min_grain_tag

int esys::lsm::SphAggGougeBlock::m_min_grain_tag
protected

◆ m_min_rad_grain

double esys::lsm::SphAggGougeBlock::m_min_rad_grain
protected

◆ m_nTablePtr2

NTablePtr esys::lsm::SphAggGougeBlock::m_nTablePtr2
protected

◆ m_particlePoolPtr2

ParticlePoolPtr esys::lsm::SphAggGougeBlock::m_particlePoolPtr2
protected

Referenced by generateMacroGrains().


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