|
ESyS-Particle
2.3.4
|
Block of gouge consisting of spherical aggregate grains
More...
#include <SphAggGougeBlock.h>


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< 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 |
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 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 |
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< SimpleParticle > | m_macro_grains |
| NTablePtr | m_nTablePtr2 |
| ParticlePoolPtr | m_particlePoolPtr2 |
| GeneratorPtr | m_grainGen |
| vector< SBG_ptr > | m_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 |
Block of gouge consisting of spherical aggregate grains
| typedef boost::shared_ptr<SphereBlockGenerator> esys::lsm::SphAggGougeBlock::SBG_ptr |
| esys::lsm::SphAggGougeBlock::SphAggGougeBlock | ( | const GougeBlockPrms & | params, |
| double | minRadGrain, | ||
| double | maxRadGrain, | ||
| int | minGrainTag | ||
| ) |
constructor
| params | the general gouge parameters |
| minRadGrain | minimum radius of the macro grains |
| maxRadGrain | maximum radius of the macro grains |
| minGrainTag | minimum tag for grains |
References m_max_rad_grain, m_min_grain_tag, and m_min_rad_grain.
|
protectedvirtual |
create block generators for gouge region -> do nothing
Reimplemented from esys::lsm::GougeBlock3D.
|
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().


|
protected |
helper function for generate - fill each generated macro sphere with smaller particles
References esys::lsm::GougeBlockPrms::getGougePackingInfoVector(), esys::lsm::GougeBlockPrms::getMaxInsertionFailures(), SimpleParticle::getPos(), SimpleParticle::getRad(), esys::lsm::GougeBlockPrms::getTolerance(), esys::lsm::ForwardIterator< TmplIteratable >::hasNext(), m_grainParticleGen, m_min_grain_tag, esys::lsm::GougeBlock3D::m_nTablePtr, m_nTablePtr2, esys::lsm::GougeBlock3D::m_particlePoolPtr, esys::lsm::GougeBlock3D::m_prms, and esys::lsm::ForwardIterator< TmplIteratable >::next().
Referenced by generate().


|
virtual |
generate particle packing
Reimplemented from esys::lsm::GougeBlock3D.
References esys::lsm::GougeBlock3D::createFaultBlockGenerators(), createInteractionSet(), esys::lsm::GougeBlock3D::createRegularBlockGenerators(), fillMacroGrains(), generateMacroGrains(), esys::lsm::GougeBlockPrms::getBBox(), esys::lsm::GougeBlock3D::m_genPtrVector, esys::lsm::GougeBlock3D::m_prms, and setupNT2().

|
protected |
helper function for generate - setup inital sphere packing for macro grains
References esys::lsm::GougeBlockPrms::getFaultPackingInfoVector(), esys::lsm::GougeBlockPrms::getMaxInsertionFailures(), esys::lsm::BoundingBox::getMaxPt(), esys::lsm::BoundingBox::getMinPt(), esys::lsm::GougeBlockPrms::getTolerance(), m_grainGen, m_max_rad_grain, m_min_rad_grain, m_nTablePtr2, m_particlePoolPtr2, esys::lsm::GougeBlock3D::m_prms, Vec3::X(), Vec3::Y(), and Vec3::Z().
Referenced by generate().


|
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().


| void esys::lsm::SphAggGougeBlock::visitParticles | ( | TmplVisitor & | visitor | ) |
References esys::lsm::ForwardIterator< TmplIteratable >::hasNext(), m_grainParticleGen, esys::lsm::ForwardIterator< TmplIteratable >::next(), and esys::lsm::GougeBlock3D::visitParticles().

| void esys::lsm::SphAggGougeBlock::visitParticles | ( | TmplVisitor & | visitor | ) | const |
References esys::lsm::ForwardIterator< TmplIteratable >::hasNext(), m_grainParticleGen, esys::lsm::ForwardIterator< TmplIteratable >::next(), and esys::lsm::GougeBlock3D::visitParticles().

|
protected |
Referenced by generateMacroGrains().
|
protected |
Referenced by fillMacroGrains(), and visitParticles().
|
protected |
|
protected |
Referenced by generateMacroGrains(), setupNT2(), and SphAggGougeBlock().
|
protected |
Referenced by createInteractionSet(), fillMacroGrains(), and SphAggGougeBlock().
|
protected |
Referenced by generateMacroGrains(), setupNT2(), and SphAggGougeBlock().
|
protected |
Referenced by fillMacroGrains(), generateMacroGrains(), and setupNT2().
|
protected |
Referenced by generateMacroGrains().