|
ESyS-Particle
2.3.4
|
Class to generate a 3d block of material consisting of a granular gouge between two solid blocks. More...
#include <GranularGougeBlock3D.h>


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 GeneratorPtrVector & | getGougeGeneratorVector () const |
| const GeneratorPtrVector & | getFaultGeneratorVector () 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 InteractionSet & | getInteractionSet () 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 GougeBlockPrms & | getPrms () const |
Private Member Functions | |
| void | generateSeeds (double, double, double, double, double, double) |
Private Attributes | |
| vector< Vec3 > | m_grain_seeds |
| seed points for grain generation algorithm More... | |
Additional Inherited Members | |
Public Types inherited from esys::lsm::GougeBlock3D | |
| typedef SimpleParticle | Particle |
| typedef CircularNeighbourTable< SimpleParticle > | NTable |
| typedef boost::shared_ptr< NTable > | NTablePtr |
| typedef boost::shared_ptr< BlockGenerator > | GeneratorPtr |
| typedef std::vector< GeneratorPtr > | GeneratorPtrVector |
| 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 |
Class to generate a 3d block of material consisting of a granular gouge between two solid blocks.
| esys::lsm::GranularGougeBlock3D::GranularGougeBlock3D | ( | const GougeBlockPrms & | prms | ) |
Constructor for GranularGougeBlock3D. Do nothing and call the base class constructor (GougeBlock3D)
| prms | the GougeBlock3D parameters |
|
virtual |
Destructor. No dynamically allocated data in class -> do nothing
|
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().

|
virtual |
Reimplemented from esys::lsm::GougeBlock3D.
References esys::lsm::GougeBlock3D::m_genPtrVector.
|
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.
| sdx | seed density, i.e. average distance between seeds in x-direction |
| sdy | seed density in y-direction |
| sdz | seed density in z-direction |
| rdx | random variation of seed points in x-direction |
| rdy | random variation of seed points in y-direction |
| rdz | random variation of seed points in z-direction |
| min_tag | minimum tag to be used in order not to collide with allready used tags |
| rm_threshold | grains 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().

|
private |
Create the seed points for the grain generation algorithm. Algorithm currently assumes single gouge layer.
| sdx | seed density, i.e. average distance between seeds in x-direction |
| sdy | seed density in y-direction |
| sdz | seed density in z-direction |
| rdx | random variation of seed points in x-direction |
| rdy | random variation of seed points in y-direction |
| rdz | random 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().


|
private |
seed points for grain generation algorithm
Referenced by generateGrains(), and generateSeeds().