Go to the documentation of this file.
14 #ifndef ESYS_LSMGOUGEBLOCK3D_H
15 #define ESYS_LSMGOUGEBLOCK3D_H
23 #include <boost/shared_ptr.hpp>
105 int maxInsertionFailures=100,
106 double tolerance = DBL_EPSILON*128,
107 double connectionTolerance = DBL_EPSILON*128*10
198 virtual void write(std::ostream &oStream)
const;
200 void writeToFile(
const std::string &fileName)
const;
209 double distanceFromBBoxEdge
218 template <
typename TmplVisitor>
229 particleIt.
next()->visit(visitor);
234 template <
typename TmplVisitor>
245 particleIt.
next()->visit(visitor);
250 template <
typename TmplVisitor>
255 InteractionSet::const_iterator it = interactionSet.begin();
256 it != interactionSet.end();
BoundingBoxVector getRegularBBoxVector() const
Definition: GougeBlock3D.cpp:310
double getRad() const
Definition: SimpleParticle.hpp:70
Block consisting of regular padding, random layer and gouge.
Definition: GougeBlock3D.h:169
Definition: GougeBlock3D.cpp:629
virtual void write(std::ostream &oStream) const
Definition: GougeBlock3D.cpp:741
NTablePtr m_nTablePtr
Definition: GougeBlock3D.h:270
bool isGougeParticle(const SimpleParticle &particle) const
Definition: GougeBlock3D.cpp:612
@ XY
Definition: GougeBlock3D.h:35
void tagFaultParticles(int tag)
Definition: GougeBlock3D.cpp:832
Console & Info()
set verbose level of next message to "inf"
Definition: GougeBlock3D.cpp:733
Orientation m_orientation
Definition: GougeBlock3D.h:84
Id getID() const
Definition: SimpleParticleData.hpp:109
boost::shared_ptr< BlockGenerator > GeneratorPtr
Definition: GougeBlock3D.h:182
Inherited::ParticleVector ParticleVector
Definition: CircularNeighbourTable.h:38
Orientation
Definition: GougeBlock3D.h:34
const BoundingBox & getBBox() const
Definition: GougeBlock3D.cpp:87
GougeBlockPrms()
Definition: GougeBlock3D.cpp:137
double m_size
Definition: GougeBlock3D.h:49
std::set< BasicInteraction, BILess > InteractionSet
Definition: GougeBlock3D.h:212
const GeneratorPtrVector & getGougeGeneratorVector() const
Definition: GougeBlock3D.cpp:582
bool is2d() const
Definition: GougeBlock3D.cpp:414
::Plane3D Plane3D
Definition: Plane3D.h:60
Definition: GougeBlock3D.h:92
virtual void generate()
Definition: GougeBlock3D.cpp:556
void createFaultBlockGenerators()
Definition: GougeBlock3D.cpp:498
BoundingBox cutFromCentre(double d1, double d2) const
Definition: GougeBlock3D.cpp:242
ParticleBlockPrms()
Definition: GougeBlock3D.cpp:114
const GougeBlock3D * m_pGougeBlock
Definition: GougeBlock3D.cpp:652
Definition: RegularBlockGenerator.h:28
const InteractionSet & getInteractionSet() const
Definition: GougeBlock3D.cpp:727
const Vec3 & getPos() const
Definition: SimpleParticle.hpp:30
const Vec3 & getMaxPt() const
Definition: BoundingBox.hpp:45
virtual void createInteractionSet()
Definition: GougeBlock3D.cpp:701
double m_tolerance
Definition: GougeBlock3D.h:160
@ XZ
Definition: GougeBlock3D.h:36
BoundingBox getSphereBBox() const
Definition: GridIterator.h:185
GeneratorPtrVector m_regularGenPtrVector
Definition: GougeBlock3D.h:282
double getTolerance() const
Definition: GougeBlock3D.cpp:197
GougeBlockPrms m_prms
Definition: GougeBlock3D.h:271
bool hasNext() const
Definition: StlIterator.h:48
void tagDrivingPlateParticles(int minDrivingTag, int maxDrivingTag, double distanceFromBBoxEdge)
Definition: GougeBlock3D.cpp:847
void visitParticles(TmplVisitor &visitor)
Definition: GougeBlock3D.h:219
void visitBasicInteraction(const BasicInteraction &interaction)
Definition: GougeBlock3D.cpp:688
void tagGougeParticles(int tag)
Definition: GougeBlock3D.cpp:817
reference next()
Definition: StlIterator.h:60
std::ostream * m_pOStream
Definition: GougeBlock3D.cpp:676
virtual void createGougeBlockGenerators()
Definition: GougeBlock3D.cpp:525
Definition: SimpleParticle.h:25
double getMaxRadius() const
Definition: GougeBlock3D.cpp:396
std::vector< Plane3D > PlaneVector
Definition: GougeBlock3D.h:32
Id first() const
Definition: BasicInteraction.h:42
int getOrientationIndex() const
Definition: GougeBlock3D.cpp:207
GougeBlock3D(const GougeBlockPrms &prms)
Definition: GougeBlock3D.cpp:435
double getRegularBlockRadius() const
Definition: GougeBlock3D.cpp:275
Definition: GougeBlock3D.h:58
Orientation getOrientation() const
Definition: GougeBlock3D.cpp:192
int m_precision
Definition: GougeBlock3D.cpp:677
SimpleParticle Particle
Definition: GougeBlock3D.h:171
3D bounding box
Definition: BoundingBox.h:28
Definition: CheckPointable.cpp:17
double getOrientationSize() const
Definition: GougeBlock3D.cpp:300
bool operator()(const SimpleParticle *p1, const SimpleParticle *p2) const
Definition: GougeBlock3D.cpp:735
Id second() const
Definition: BasicInteraction.h:44
double getMaxRadius() const
Definition: GougeBlock3D.cpp:102
BoundingBox m_bBox
Definition: GougeBlock3D.h:82
PackingInfoVector getFaultPackingInfoVector() const
Definition: GougeBlock3D.cpp:356
const BoundingBox & getBBox() const
Definition: GougeBlock3D.cpp:177
Class to represent the common part of a pair interaction, i.e. the IDs of the particles and the inter...
Definition: BasicInteraction.h:28
~ParticleBlockPrms()
Definition: GougeBlock3D.cpp:131
PackingInfoVector getGougePackingInfoVector() const
Definition: GougeBlock3D.cpp:331
double getMinRadius() const
Definition: GougeBlock3D.cpp:405
virtual ~GougeBlock3D()
Definition: GougeBlock3D.cpp:552
VEC3_INLINE double & Z()
Definition: vec3.h:121
Inherited::Particle Particle
Definition: CircularNeighbourTable.h:37
const GeneratorPtrVector & getFaultGeneratorVector() const
Definition: GougeBlock3D.cpp:587
const Vec3 & getMinPt() const
Definition: BoundingBox.hpp:40
Definition: GougeBlock3D.h:41
~GougeBlockPrms()
Definition: GougeBlock3D.cpp:173
double m_connectionTolerance
Definition: GougeBlock3D.h:161
bool contains(const Vec3 &pt, double tolerance=0.0) const
Definition: BoundingBox.hpp:60
@ YZ
Definition: GougeBlock3D.h:37
const BoolVector & getPeriodicDimensions() const
Definition: GougeBlock3D.cpp:187
const PlaneVector & getFitPlaneVector() const
Definition: GougeBlock3D.cpp:92
double getGougeMaxRadius() const
Definition: GougeBlock3D.cpp:295
int getNumParticles() const
Definition: GougeBlock3D.cpp:421
ParticleBlockPrms m_faultPrms
Definition: GougeBlock3D.h:156
std::vector< BoundingBox > BoundingBoxVector
Definition: GougeBlock3D.h:55
double m_tolerance
Definition: GougeBlock3D.cpp:653
Definition: GeometryInfo.h:34
InteractionValidator(const GougeBlock3D &gougeBlock, double tolerance)
Definition: GougeBlock3D.cpp:631
double m_maxRadius
Definition: GougeBlock3D.h:51
NTable::ParticlePool ParticlePool
Definition: GougeBlock3D.h:184
bool areInDifferentFaultBlocks(const SimpleParticle &p1, const SimpleParticle &p2) const
Definition: GougeBlock3D.cpp:592
double getConnectionTolerance() const
Definition: GougeBlock3D.cpp:202
GeoInteractionWriter(std::ostream &oStream)
Definition: GougeBlock3D.cpp:683
std::vector< GeneratorPtr > GeneratorPtrVector
Definition: GougeBlock3D.h:183
void createRegularBlockGenerators()
Definition: GougeBlock3D.cpp:473
double m_minRadius
Definition: GougeBlock3D.h:85
bool isValid(const SimpleParticle &p1, const SimpleParticle &p2) const
Definition: GougeBlock3D.cpp:637
std::vector< bool > BoolVector
Definition: BlockGenerator.h:28
const GougeBlockPrms & getPrms() const
Definition: GougeBlock3D.h:264
double m_minRadius
Definition: GougeBlock3D.h:50
BoolVector m_periodicDimensions
Definition: GougeBlock3D.h:83
ParticleBlockPrms m_gougePrms
Definition: GougeBlock3D.h:157
void setTag(const Tag &tag)
Definition: SimpleParticleData.hpp:129
Definition: StlIterator.h:30
int m_precision
Definition: GougeBlock3D.cpp:698
boost::object_pool< Particle > ParticlePool
Definition: CircularNeighbourTable.h:40
double getFaultMaxRadius() const
Definition: GougeBlock3D.cpp:285
BoolVector m_periodicDimensions
Definition: GougeBlock3D.h:158
CircularNeighbourTable< SimpleParticle > NTable
Definition: GougeBlock3D.h:180
Orientation m_orientation
Definition: GougeBlock3D.h:155
void write(std::ostream &oStream) const
Definition: GeometryInfo.cpp:338
std::ostream * m_pOStream
Definition: GougeBlock3D.cpp:697
static const Vec3 ZERO
Definition: vec3.h:52
ParticlePoolPtr m_particlePoolPtr
Definition: GougeBlock3D.h:275
void initialiseFitPlaneVector()
Definition: GougeBlock3D.cpp:52
int m_maxInsertionFailures
Definition: GougeBlock3D.h:159
boost::shared_ptr< NTable > NTablePtr
Definition: GougeBlock3D.h:181
void writeToFile(const std::string &fileName) const
Definition: GougeBlock3D.cpp:576
const BoolVector & getPeriodicDimensions() const
Definition: GougeBlock3D.cpp:107
bool is3d() const
Definition: GougeBlock3D.cpp:47
Vec3 getSizes() const
Definition: BoundingBox.hpp:78
double getMinRadius() const
Definition: GougeBlock3D.cpp:97
double m_maxRadius
Definition: GougeBlock3D.h:86
Definition: GougeBlock3D.cpp:681
Definition: GougeBlock3D.cpp:657
Console console
Definition: console.cpp:25
double getFaultMinRadius() const
Definition: GougeBlock3D.cpp:280
GeneratorPtrVector m_gougeGenPtrVector
Definition: GougeBlock3D.h:273
PlaneVector m_fitPlaneVector
Definition: GougeBlock3D.h:87
Definition: RandomBlockGenerator.h:37
int getMaxInsertionFailures() const
Definition: GougeBlock3D.cpp:182
void visitInteractions(TmplVisitor &visitor) const
Definition: GougeBlock3D.h:251
NTable::ParticlePoolPtr ParticlePoolPtr
Definition: GougeBlock3D.h:185
void visitParticles(const TmplVisitor &visitor) const
Definition: GougeBlock3D.h:235
InteractionSet m_interactionSet
Definition: GougeBlock3D.h:272
GeneratorPtrVector m_genPtrVector
Definition: GougeBlock3D.h:274
Tag getTag() const
Definition: SimpleParticleData.hpp:124
double getGougeMinRadius() const
Definition: GougeBlock3D.cpp:290
GeneratorPtrVector m_faultGenPtrVector
Definition: GougeBlock3D.h:283
Definition: GridIterator.h:29
GeoParticleWriter(std::ostream &oStream, int precision)
Definition: GougeBlock3D.cpp:659
double m_padRadius
Definition: GougeBlock3D.h:154
Definition: CircularNeighbourTable.h:34
PackingInfo(const BoundingBox &bBox, const BoolVector &periodicDimensions, Orientation orientation, double minRadius, double maxRadius)
Definition: GougeBlock3D.cpp:32
BoundingBox m_bBox
Definition: GougeBlock3D.h:153
boost::shared_ptr< ParticlePool > ParticlePoolPtr
Definition: CircularNeighbourTable.h:41
void visitSimpleParticle(const SimpleParticle &particle) const
Definition: GougeBlock3D.cpp:665
std::vector< PackingInfo > PackingInfoVector
Definition: GougeBlock3D.h:90