14 #ifndef ESYS_LSMGOUGEBLOCK3D_H
15 #define ESYS_LSMGOUGEBLOCK3D_H
23 #include <boost/shared_ptr.hpp>
62 const BoolVector &periodicDimensions,
104 const BoolVector &peridicDimensions=
BoolVector(3,
false),
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
Orientation
Definition: GougeBlock3D.h:33
const GeneratorPtrVector & getGougeGeneratorVector() const
Definition: GougeBlock3D.cpp:582
BoundingBox cutFromCentre(double d1, double d2) const
Definition: GougeBlock3D.cpp:242
double getFaultMaxRadius() const
Definition: GougeBlock3D.cpp:285
PackingInfoVector getFaultPackingInfoVector() const
Definition: GougeBlock3D.cpp:356
Definition: GougeBlock3D.h:37
double getRegularBlockRadius() const
Definition: GougeBlock3D.cpp:275
double getMaxRadius() const
Definition: GougeBlock3D.cpp:396
const GeneratorPtrVector & getFaultGeneratorVector() const
Definition: GougeBlock3D.cpp:587
GougeBlock3D(const GougeBlockPrms &prms)
Definition: GougeBlock3D.cpp:435
BoolVector m_periodicDimensions
Definition: GougeBlock3D.h:83
std::vector< PackingInfo > PackingInfoVector
Definition: GougeBlock3D.h:90
virtual void write(std::ostream &oStream) const
Definition: GougeBlock3D.cpp:741
const PlaneVector & getFitPlaneVector() const
Definition: GougeBlock3D.cpp:92
GougeBlockPrms()
Definition: GougeBlock3D.cpp:137
double getMaxRadius() const
Definition: GougeBlock3D.cpp:102
virtual void createInteractionSet()
Definition: GougeBlock3D.cpp:701
PackingInfo(const BoundingBox &bBox, const BoolVector &periodicDimensions, Orientation orientation, double minRadius, double maxRadius)
Definition: GougeBlock3D.cpp:32
void createRegularBlockGenerators()
Definition: GougeBlock3D.cpp:473
double m_size
Definition: GougeBlock3D.h:49
double m_minRadius
Definition: GougeBlock3D.h:85
std::vector< Plane3D > PlaneVector
Definition: GougeBlock3D.h:32
const BoolVector & getPeriodicDimensions() const
Definition: GougeBlock3D.cpp:187
double getFaultMinRadius() const
Definition: GougeBlock3D.cpp:280
GeneratorPtrVector m_genPtrVector
Definition: GougeBlock3D.h:274
double m_connectionTolerance
Definition: GougeBlock3D.h:161
virtual void createGougeBlockGenerators()
Definition: GougeBlock3D.cpp:525
Definition: CheckPointable.cpp:16
double getMinRadius() const
Definition: GougeBlock3D.cpp:405
reference next()
Definition: StlIterator.h:60
PlaneVector m_fitPlaneVector
Definition: GougeBlock3D.h:87
double getTolerance() const
Definition: GougeBlock3D.cpp:197
Definition: GougeBlock3D.h:36
NTablePtr m_nTablePtr
Definition: GougeBlock3D.h:270
void visitParticles(TmplVisitor &visitor)
Definition: GougeBlock3D.h:219
double m_maxRadius
Definition: GougeBlock3D.h:51
const InteractionSet & getInteractionSet() const
Definition: GougeBlock3D.cpp:727
int getNumParticles() const
Definition: GougeBlock3D.cpp:421
NTable::ParticlePoolPtr ParticlePoolPtr
Definition: GougeBlock3D.h:185
Block consisting of regular padding, random layer and gouge.
Definition: GougeBlock3D.h:168
Orientation m_orientation
Definition: GougeBlock3D.h:84
std::vector< BoundingBox > BoundingBoxVector
Definition: GougeBlock3D.h:55
3D bounding box
Definition: BoundingBox.h:27
Definition: GougeBlock3D.h:57
Definition: GougeBlock3D.h:91
double getGougeMinRadius() const
Definition: GougeBlock3D.cpp:290
ParticlePoolPtr m_particlePoolPtr
Definition: GougeBlock3D.h:275
void writeToFile(const std::string &fileName) const
Definition: GougeBlock3D.cpp:576
~GougeBlockPrms()
Definition: GougeBlock3D.cpp:173
~ParticleBlockPrms()
Definition: GougeBlock3D.cpp:131
bool is3d() const
Definition: GougeBlock3D.cpp:47
void initialiseFitPlaneVector()
Definition: GougeBlock3D.cpp:52
Orientation m_orientation
Definition: GougeBlock3D.h:155
bool areInDifferentFaultBlocks(const SimpleParticle &p1, const SimpleParticle &p2) const
Definition: GougeBlock3D.cpp:592
boost::object_pool< Particle > ParticlePool
Definition: CircularNeighbourTable.h:40
double m_padRadius
Definition: GougeBlock3D.h:154
std::vector< GeneratorPtr > GeneratorPtrVector
Definition: GougeBlock3D.h:183
double getMinRadius() const
Definition: GougeBlock3D.cpp:97
void tagDrivingPlateParticles(int minDrivingTag, int maxDrivingTag, double distanceFromBBoxEdge)
Definition: GougeBlock3D.cpp:847
GougeBlockPrms m_prms
Definition: GougeBlock3D.h:271
const BoolVector & getPeriodicDimensions() const
Definition: GougeBlock3D.cpp:107
virtual ~GougeBlock3D()
Definition: GougeBlock3D.cpp:552
GeneratorPtrVector m_regularGenPtrVector
Definition: GougeBlock3D.h:282
PackingInfoVector getGougePackingInfoVector() const
Definition: GougeBlock3D.cpp:331
double getOrientationSize() const
Definition: GougeBlock3D.cpp:300
Definition: StlIterator.h:29
CircularNeighbourTable< SimpleParticle > NTable
Definition: GougeBlock3D.h:180
int getOrientationIndex() const
Definition: GougeBlock3D.cpp:207
InteractionSet m_interactionSet
Definition: GougeBlock3D.h:272
std::vector< bool > BoolVector
Definition: BlockGenerator.h:28
void visitInteractions(TmplVisitor &visitor) const
Definition: GougeBlock3D.h:251
void visitParticles(const TmplVisitor &visitor) const
Definition: GougeBlock3D.h:235
double getConnectionTolerance() const
Definition: GougeBlock3D.cpp:202
Definition: CircularNeighbourTable.h:33
const GougeBlockPrms & getPrms() const
Definition: GougeBlock3D.h:264
bool isGougeParticle(const SimpleParticle &particle) const
Definition: GougeBlock3D.cpp:612
BoolVector m_periodicDimensions
Definition: GougeBlock3D.h:158
BoundingBox m_bBox
Definition: GougeBlock3D.h:82
boost::shared_ptr< NTable > NTablePtr
Definition: GougeBlock3D.h:181
int getMaxInsertionFailures() const
Definition: GougeBlock3D.cpp:182
ParticleBlockPrms m_faultPrms
Definition: GougeBlock3D.h:156
boost::shared_ptr< BlockGenerator > GeneratorPtr
Definition: GougeBlock3D.h:182
int m_maxInsertionFailures
Definition: GougeBlock3D.h:159
double getGougeMaxRadius() const
Definition: GougeBlock3D.cpp:295
ParticleBlockPrms()
Definition: GougeBlock3D.cpp:114
double m_minRadius
Definition: GougeBlock3D.h:50
Definition: GougeBlock3D.h:40
void tagGougeParticles(int tag)
Definition: GougeBlock3D.cpp:817
boost::shared_ptr< ParticlePool > ParticlePoolPtr
Definition: CircularNeighbourTable.h:41
bool hasNext() const
Definition: StlIterator.h:48
std::set< BasicInteraction, BILess > InteractionSet
Definition: GougeBlock3D.h:212
const BoundingBox & getBBox() const
Definition: GougeBlock3D.cpp:87
void createFaultBlockGenerators()
Definition: GougeBlock3D.cpp:498
ParticleBlockPrms m_gougePrms
Definition: GougeBlock3D.h:157
virtual void generate()
Definition: GougeBlock3D.cpp:556
GeneratorPtrVector m_faultGenPtrVector
Definition: GougeBlock3D.h:283
double m_tolerance
Definition: GougeBlock3D.h:160
double m_maxRadius
Definition: GougeBlock3D.h:86
NTable::ParticlePool ParticlePool
Definition: GougeBlock3D.h:184
Definition: SimpleParticle.h:24
bool is2d() const
Definition: GougeBlock3D.cpp:414
void tagFaultParticles(int tag)
Definition: GougeBlock3D.cpp:832
const BoundingBox & getBBox() const
Definition: GougeBlock3D.cpp:177
Definition: GougeBlock3D.h:35
BoundingBox m_bBox
Definition: GougeBlock3D.h:153
SimpleParticle Particle
Definition: GougeBlock3D.h:171
GeneratorPtrVector m_gougeGenPtrVector
Definition: GougeBlock3D.h:273
Orientation getOrientation() const
Definition: GougeBlock3D.cpp:192