ESyS-Particle  2.3.4
GougeConfig.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.apache.org/licenses/LICENSE-2.0 //
10 // //
12 
13 
14 #ifndef ESYS_LSMGOUGECONFIG_H
15 #define ESYS_LSMGOUGECONFIG_H
16 
17 #include "Foundation/BoundingBox.h"
19 #include "Geometry/Plane3D.h"
24 
25 #include <boost/shared_ptr.hpp>
26 
27 #include <vector>
28 #include <float.h>
29 
30 namespace esys
31 {
32  namespace lsm
33  {
34  typedef std::vector<Plane3D> PlaneVector;
36  {
37  XY,
38  XZ,
39  YZ
40  };
41 
43  {
44  public:
45  inline ParticleRndPackPrms();
46 
47  inline ParticleRndPackPrms(double size, double minRadius, double maxRadius);
48 
49  inline ~ParticleRndPackPrms();
50 
51  inline double getSize() const;
52 
53  inline double getMinParticleRadius() const;
54 
55  inline double getMaxParticleRadius() const;
56 
57  private:
58  double m_size;
61  };
62 
63  template <typename TmplParticleGrainGen>
65  {
66  public:
67  typedef TmplParticleGrainGen ParticleGrainGen;
69 
71 
73  double size,
74  ParticleGrainGen &particleGrainGen,
75  int connectionTag=0
76  );
77 
78  double getMinGrainRadius();
79 
80  double getMaxGrainRadius();
81 
83 
84  int getConnectionTag() const;
85  private:
88  };
89 
90  typedef std::vector<bool> BoolVector;
91  typedef std::vector<BoundingBox> BoundingBoxVector;
92 
93  class PackingInfo
94  {
95  public:
96  inline PackingInfo(
97  const BoundingBox &bBox,
98  const BoolVector &periodicDimensions,
99  Orientation orientation,
100  double minRadius,
101  double maxRadius
102  );
103 
104  inline bool is3d() const;
105 
107 
108  inline const BoundingBox &getBBox() const;
109 
110  inline const PlaneVector &getFitPlaneVector() const;
111 
112  inline double getMinParticleRadius() const;
113 
114  inline double getMaxParticleRadius() const;
115 
116  inline const BoolVector &getPeriodicDimensions() const;
117  private:
121  double m_minRadius;
122  double m_maxRadius;
124  };
125 
126  template <typename TmplParticleGrainGen>
128  {
129  public:
130  typedef TmplParticleGrainGen ParticleGrainGen;
132 
134  const BoundingBox &bBox,
135  const BoolVector &periodicDimensions,
136  Orientation orientation,
137  ParticleGrainGen &particleGrainGen
138  );
139 
140  double getMinGrainRadius() const;
141 
142  double getMaxGrainRadius() const;
143 
145 
146  private:
148  };
149 
150  typedef std::vector<PackingInfo> PackingInfoVector;
151 
152  template <typename TmplParticleGrainGen>
154  {
155  public:
156  typedef TmplParticleGrainGen ParticleGrainGen;
160  typedef std::vector<GougePackInfo> GougePackingInfoVector;
161 
162  GougeConfigPrms();
167  const BoundingBox &bBox,
168  double padRadius,
169  Orientation orientation,
170  const ParticleRndPackPrms &faultRegionPrms,
171  const GrainRPackPrms &gougeRegionPrms,
172  const BoolVector &peridicDimensions=BoolVector(3, false),
173  int maxInsertionFailures=100,
174  double tolerance = DBL_EPSILON*128,
175  double connectionTolerance = DBL_EPSILON*128*10,
176  int blockConnectionTag = 0
177  );
178 
180 
181  double getTolerance() const;
182 
183  double getConnectionTolerance() const;
184 
185  const BoundingBox &getBBox() const;
186 
187  int getMaxInsertionFailures() const;
188 
189  double getRegularBlockRadius() const;
190 
191  double getFaultMinRadius() const;
192 
193  double getFaultMaxRadius() const;
194 
195  double getGougeMinRadius() const;
196 
197  double getGougeMaxRadius() const;
198 
199  int getGougeConnectionTag() const;
200 
201  int getBlockConnectionTag() const;
202 
203  const BoolVector &getPeriodicDimensions() const;
204 
206 
208 
210 
211  BoundingBox cutFromCentre(double d1, double d2) const;
212 
213  Orientation getOrientation() const;
214 
215  int getOrientationIndex() const;
216 
217  double getOrientationSize() const;
218 
219  double getMaxRadius() const;
220 
221  double getMinRadius() const;
222 
223  bool is2d() const;
224 
225  private:
227  double m_padRadius;
233  double m_tolerance;
236  };
237 
241  template <
242  typename TmplGrainRandomBoxPacker,
243  typename TmplParticleRandomBoxPacker,
244  typename TmplConnection
245  >
247  {
248  public:
249  typedef TmplConnection Connection;
250  typedef TmplGrainRandomBoxPacker GrainRandomPacker;
251  typedef boost::shared_ptr<GrainRandomPacker> GrainRandomPackerPtr;
256  typedef typename GrainRandomPacker::ParticleIterator ParticleIterator;
257  typedef typename GrainRandomPacker::ParticleConstIterator ParticleConstIterator;
258  typedef typename GrainRandomPacker::ParticleCollection ParticleCollection;
259  typedef typename GrainRandomPacker::Grain Grain;
263 
264  typedef typename GrainRandomPacker::PackerBase APacker;
265  typedef typename GrainRandomPacker::BoxPackerBase ABoxPacker;
266 
270 
271  typedef TmplParticleRandomBoxPacker RndBoxPacker;
274 
277  typedef boost::shared_ptr<APacker> GeneratorPtr;
278  typedef std::vector<GeneratorPtr> GeneratorPtrVector;
279  typedef std::vector<GrainRandomPackerPtr> GrainRndPackerPtrVector;
284 
286  {
287  public:
288  bool operator()(const Connection &i1, const Connection &i2) const
289  {
290  return
291  (
292  (i1.getP1Id() < i2.getP1Id())
293  ||
294  (
295  (i1.getP1Id() == i2.getP1Id())
296  &&
297  (
298  (i1.getP2Id() < i2.getP2Id())
299  ||
300  (
301  (i1.getP2Id() == i2.getP2Id())
302  &&
303  (i1.getTag() < i2.getTag())
304  )
305  )
306  )
307  );
308  }
309 
310  bool operator()(const Connection *i1, const Connection *i2) const
311  {
312  return (*this)(*i1, *i2);
313  }
314  };
315  typedef std::set<Connection,ConnectionCmp> ConnectionSet;
317 
318  GougeConfig(const GougeConfPrms &prms);
319 
320  virtual ~GougeConfig();
321 
322  virtual void generate();
323 
324  int getNumParticles() const;
325 
326  int getNumGrains() const;
327 
328  int getNumConnections() const;
329 
331 
333 
335 
336  bool isGougeParticle(const Particle &particle) const;
337 
339  const Particle &p1,
340  const Particle &p2
341  ) const;
342 
343  virtual void write(std::ostream &oStream) const;
344 
345  void writeToFile(const std::string &fileName) const;
346 
347  void tagGougeParticles(int tag);
348 
349  void tagRndBlockParticles(int tag);
350 
352  int minDrivingTag,
353  int maxDrivingTag,
354  double distanceFromBBoxEdge
355  );
356 
357  virtual void createConnectionSet();
358 
359  const ConnectionSet &getConnectionSet() const;
360 
362 
364 
365  template <typename TmplVisitor>
366  void visitParticles(TmplVisitor &visitor)
367  {
368  for (
369  typename GeneratorPtrVector::iterator it = m_genPtrVector.begin();
370  it != m_genPtrVector.end();
371  it++
372  )
373  {
374  ParticleIterator particleIt = (*it)->getParticleIterator();
375  while (particleIt.hasNext()) {
376  particleIt.next().visit(visitor);
377  }
378  }
379  }
380 
381  template <typename TmplVisitor>
382  void visitParticles(const TmplVisitor &visitor) const
383  {
384  for (
385  typename GeneratorPtrVector::const_iterator it = m_genPtrVector.begin();
386  it != m_genPtrVector.end();
387  it++
388  )
389  {
390  ParticleIterator particleIt = (*it)->getParticleIterator();
391  while (particleIt.hasNext()) {
392  particleIt.next().visit(visitor);
393  }
394  }
395  }
396 
397  template <typename TmplVisitor>
398  void visitConnections(TmplVisitor &visitor) const
399  {
400  const ConnectionSet &connectionSet = getConnectionSet();
401  for (
402  typename ConnectionSet::const_iterator it = connectionSet.begin();
403  it != connectionSet.end();
404  it++
405  )
406  {
407  it->visit(visitor);
408  }
409  }
410 
411  const GougeConfPrms &getPrms() const
412  {
413  return m_prms;
414  }
415 
416  class IdCompare
417  {
418  public:
419  bool operator()(const Particle *p1, const Particle *p2) const
420  {
421  return (p1->getID() < p2->getID());
422  }
423  };
424 
426  {
427  public:
428  inline ConnectionValidator(const GougeConfig &gougeBlock, double tolerance)
429  : m_pGougeConfig(&gougeBlock),
430  m_tolerance(tolerance)
431  {
432  }
433 
434  inline bool isValid(const Particle &p1, const Particle &p2) const
435  {
436  return
437  (
438  (p1.getID() < p2.getID())
439  &&
440  ((p1.getPos() - p2.getPos()).norm() < (m_tolerance + (p1.getRad() + p2.getRad())))
441  &&
443  &&
445  );
446  }
447 
448  private:
450  double m_tolerance;
451  };
452 
454  {
455  public:
456  GeoParticleWriter(std::ostream &oStream, int precision)
457  : m_pOStream(&oStream),
458  m_precision(precision)
459  {
460  }
461 
462  void visitParticle(const Particle &particle) const
463  {
464  (*m_pOStream)
465  << std::setprecision(m_precision)
466  << particle.getPos() << " "
467  << particle.getRad() << " "
468  << particle.getID() << " "
469  << particle.getTag() << "\n";
470  }
471 
472  private:
473  std::ostream *m_pOStream;
475  };
476 
478  {
479  public:
480  GeoConnectionWriter(std::ostream &oStream)
481  : m_pOStream(&oStream)
482  {
483  }
484 
485  void visitBasicInteraction(const BasicInteraction &connection)
486  {
487  (*m_pOStream)
488  << connection.first() << " "
489  << connection.second() << " "
490  << 0 << "\n";
491  }
492 
493  private:
494  std::ostream *m_pOStream;
496  };
497 
498  protected:
506 
509  virtual void createGougeConfigGenerators();
510 
511  private:
514  };
515  }
516 }
517 
518 #include "Geometry/GougeConfig.hpp"
519 
520 #endif
esys::lsm::GougePackingInfo::m_pParticleGrainGen
ParticleGrainGen * m_pParticleGrainGen
Definition: GougeConfig.h:147
esys::lsm::PackingInfo::getMaxParticleRadius
double getMaxParticleRadius() const
Definition: GougeConfig.hpp:99
esys::lsm::GougeConfig::Particle
GrainRandomPacker::Particle Particle
Definition: GougeConfig.h:255
esys::lsm::GougeConfig::getNumParticles
int getNumParticles() const
Definition: GougeConfig.hpp:595
esys::lsm::GrainCollection::GrainConstIterator
Definition: GrainCollection.h:71
esys::lsm::GougeConfigPrms::GrainRPackPrms
GrainRndPackPrms< ParticleGrainGen > GrainRPackPrms
Definition: GougeConfig.h:157
esys::lsm::GougeConfigPrms::m_gougePrms
GrainRPackPrms m_gougePrms
Definition: GougeConfig.h:230
esys::lsm::GougeConfigPrms::getGougeMinRadius
double getGougeMinRadius() const
Definition: GougeConfig.hpp:431
esys::lsm::GougeConfig::GrainConstIterator
GrainRandomPacker::GrainConstIterator GrainConstIterator
Definition: GougeConfig.h:261
esys::lsm::GougeConfigPrms::getBBox
const BoundingBox & getBBox() const
Definition: GougeConfig.hpp:304
esys::lsm::GrainRandomBoxPacker::GrainPoolPtr
GrainCollection::GrainPoolPtr GrainPoolPtr
Definition: GrainRandomBoxPacker.h:41
esys::lsm::XY
@ XY
Definition: GougeBlock3D.h:35
esys::lsm::GougeConfig::GeneratorPtr
boost::shared_ptr< APacker > GeneratorPtr
Definition: GougeConfig.h:277
esys::lsm::ConstRadiusGen
Definition: PackerGenerators.h:28
Plane3D.h
esys::lsm::GougeConfig::Connection
TmplConnection Connection
Definition: GougeConfig.h:249
esys::lsm::GougeConfig::ParticlePool
GrainRandomPacker::ParticlePool ParticlePool
Definition: GougeConfig.h:280
GougeConfig.hpp
esys::lsm::GougeConfig::m_genPtrVector
GeneratorPtrVector m_genPtrVector
Definition: GougeConfig.h:503
esys::lsm::PackingInfo::m_orientation
Orientation m_orientation
Definition: GougeBlock3D.h:84
esys::lsm::GougeConfigPrms::getGougePackingInfoVector
GougePackingInfoVector getGougePackingInfoVector() const
Definition: GougeConfig.hpp:482
esys::lsm::GougeConfigPrms::getOrientationIndex
int getOrientationIndex() const
Definition: GougeConfig.hpp:352
esys::lsm::GougeConfig::isGougeParticle
bool isGougeParticle(const Particle &particle) const
Definition: GougeConfig.hpp:853
CubicBoxPacker.h
esys::lsm::GougePackingInfo::GougePackingInfo
GougePackingInfo(const BoundingBox &bBox, const BoolVector &periodicDimensions, Orientation orientation, ParticleGrainGen &particleGrainGen)
Definition: GougeConfig.hpp:112
esys::lsm::GougeConfig::GeoConnectionWriter::GeoConnectionWriter
GeoConnectionWriter(std::ostream &oStream)
Definition: GougeConfig.h:480
esys::lsm::GougeConfig::ConnectionValidator::m_pGougeConfig
const GougeConfig * m_pGougeConfig
Definition: GougeConfig.h:449
esys::lsm::GougeConfig::m_faultGenPtrVector
GeneratorPtrVector m_faultGenPtrVector
Definition: GougeConfig.h:513
esys::lsm::Orientation
Orientation
Definition: GougeBlock3D.h:34
esys::lsm::GougeConfig::write
virtual void write(std::ostream &oStream) const
Definition: GougeConfig.hpp:1003
esys::lsm::GougeConfig::GrainRandomPackerPtr
boost::shared_ptr< GrainRandomPacker > GrainRandomPackerPtr
Definition: GougeConfig.h:251
esys::lsm::GougeConfig::ParticleConstIterator
GrainRandomPacker::ParticleConstIterator ParticleConstIterator
Definition: GougeConfig.h:257
PackerGenerators.h
esys::lsm::ParticleRndPackPrms::m_maxParticleRadius
double m_maxParticleRadius
Definition: GougeConfig.h:60
esys::lsm::GougeConfigPrms::getFaultPackingInfoVector
PackingInfoVector getFaultPackingInfoVector() const
Definition: GougeConfig.hpp:507
esys::lsm::GougeConfig::createConnectionSet
virtual void createConnectionSet()
Definition: GougeConfig.hpp:870
esys::lsm::GougeConfigPrms::m_padRadius
double m_padRadius
Definition: GougeConfig.h:227
esys::lsm::GougeConfig::RndBoxPacker
TmplParticleRandomBoxPacker RndBoxPacker
Definition: GougeConfig.h:271
esys::lsm::GougeConfig::visitConnections
void visitConnections(TmplVisitor &visitor) const
Definition: GougeConfig.h:398
esys::lsm::GougeConfig::m_grainPoolPtr
GrainPoolPtr m_grainPoolPtr
Definition: GougeConfig.h:505
esys::lsm::GougeConfigPrms::getBlockConnectionTag
int getBlockConnectionTag() const
Definition: GougeConfig.hpp:316
esys::lsm::GougeConfigPrms::getRegularBlockRadius
double getRegularBlockRadius() const
Definition: GougeConfig.hpp:413
esys::lsm::GougeConfigPrms::getTolerance
double getTolerance() const
Definition: GougeConfig.hpp:340
esys::lsm::GougeConfig::GrainRandomPacker
TmplGrainRandomBoxPacker GrainRandomPacker
Definition: GougeConfig.h:250
esys::lsm::GrainRndPackPrms::getConnectionTag
int getConnectionTag() const
Definition: GougeConfig.hpp:229
esys::lsm::GougeConfig::getFaultGeneratorVector
const GeneratorPtrVector & getFaultGeneratorVector() const
Definition: GougeConfig.hpp:822
esys::lsm::GougeConfig::ConnectionFinder
DistConnections< Particle, Connection > ConnectionFinder
Definition: GougeConfig.h:316
esys::lsm::GougeConfig::ConnectionValidator::isValid
bool isValid(const Particle &p1, const Particle &p2) const
Definition: GougeConfig.h:434
esys::lsm::GougeConfig::visitParticles
void visitParticles(const TmplVisitor &visitor) const
Definition: GougeConfig.h:382
esys::lsm::GrainRndPackPrms::getMinGrainRadius
double getMinGrainRadius()
Definition: GougeConfig.hpp:244
esys::lsm::GougeConfigPrms::getOrientationSize
double getOrientationSize() const
Definition: GougeConfig.hpp:443
esys::lsm::GougeConfig::tagGougeParticles
void tagGougeParticles(int tag)
Definition: GougeConfig.hpp:1084
esys::lsm::ParticleRndPackPrms
Definition: GougeConfig.h:43
esys::lsm::XZ
@ XZ
Definition: GougeBlock3D.h:36
esys::lsm::GougeConfig::GougeConfig
GougeConfig(const GougeConfPrms &prms)
Definition: GougeConfig.hpp:632
esys::lsm::GougeConfig::GrainPoolPtr
GrainRandomPacker::GrainPoolPtr GrainPoolPtr
Definition: GougeConfig.h:283
esys::lsm::GrainRandomBoxPacker::Particle
Inherited::Particle Particle
Definition: GrainRandomBoxPacker.h:48
esys::lsm::GougeConfig::writeToFile
void writeToFile(const std::string &fileName) const
Definition: GougeConfig.hpp:800
esys::lsm::GrainRndPackPrms::m_pParticleGrainGen
ParticleGrainGen * m_pParticleGrainGen
Definition: GougeConfig.h:86
esys::lsm::GougeConfig::~GougeConfig
virtual ~GougeConfig()
Definition: GougeConfig.hpp:774
esys::lsm::GougeConfig::GeoConnectionWriter::m_pOStream
std::ostream * m_pOStream
Definition: GougeConfig.h:494
esys::lsm::GougeConfig::Grain
GrainRandomPacker::Grain Grain
Definition: GougeConfig.h:259
esys::lsm::PackingInfo::getBBox
const BoundingBox & getBBox() const
esys::lsm::GougeConfig::NTablePtr
GrainRandomPacker::NTablePtr NTablePtr
Definition: GougeConfig.h:276
esys::lsm::GougeConfig::GeneratorPtrVector
std::vector< GeneratorPtr > GeneratorPtrVector
Definition: GougeConfig.h:278
esys::lsm::GougePackingInfo::Inherited
PackingInfo Inherited
Definition: GougeConfig.h:131
esys::lsm::PackingInfo::getPeriodicDimensions
const BoolVector & getPeriodicDimensions() const
esys::lsm::GougeConfig::areInDifferentFaultBlocks
bool areInDifferentFaultBlocks(const Particle &p1, const Particle &p2) const
Definition: GougeConfig.hpp:828
esys::lsm::GrainRandomBoxPacker::ParticleGrainGen
Inherited::ParticleGenerator ParticleGrainGen
Definition: GrainRandomBoxPacker.h:46
esys::lsm::PlaneVector
std::vector< Plane3D > PlaneVector
Definition: GougeBlock3D.h:32
esys::lsm::GrainRndPackPrms::ParticleGrainGen
TmplParticleGrainGen ParticleGrainGen
Definition: GougeConfig.h:67
BasicInteraction::first
Id first() const
Definition: BasicInteraction.h:42
esys::lsm::GougeConfig::m_connectionSet
ConnectionSet m_connectionSet
Definition: GougeConfig.h:501
esys::lsm::GougeConfigPrms::m_maxInsertionFailures
int m_maxInsertionFailures
Definition: GougeConfig.h:232
esys::lsm::GougeConfig::m_nTablePtr
NTablePtr m_nTablePtr
Definition: GougeConfig.h:499
esys::lsm::GougeConfigPrms::getMaxRadius
double getMaxRadius() const
Definition: GougeConfig.hpp:567
esys::lsm::GougeConfig::ParticleIterator
GrainRandomPacker::ParticleIterator ParticleIterator
Definition: GougeConfig.h:256
esys::lsm::GougeConfig::getPrms
const GougeConfPrms & getPrms() const
Definition: GougeConfig.h:411
esys::lsm::GougeConfigPrms::getFaultMaxRadius
double getFaultMaxRadius() const
Definition: GougeConfig.hpp:425
esys::lsm::GougeConfigPrms::getGougeMaxRadius
double getGougeMaxRadius() const
Definition: GougeConfig.hpp:437
esys::lsm::GougeConfigPrms::getGougeConnectionTag
int getGougeConnectionTag() const
Definition: GougeConfig.hpp:310
esys::lsm::GougeConfig::RndRadiusGen
RndBoxPacker::ParticleGenerator RndRadiusGen
Definition: GougeConfig.h:272
esys::lsm::PackingInfo
Definition: GougeBlock3D.h:58
esys::lsm::GougeConfig::RegRadiusGen
ConstRadiusGen< Particle > RegRadiusGen
Definition: GougeConfig.h:267
esys::lsm::BoundingBox
3D bounding box
Definition: BoundingBox.h:28
esys
Definition: CheckPointable.cpp:17
BasicInteraction::second
Id second() const
Definition: BasicInteraction.h:44
esys::lsm::PackingInfo::m_bBox
BoundingBox m_bBox
Definition: GougeBlock3D.h:82
GougeConfig.h
BasicInteraction
Class to represent the common part of a pair interaction, i.e. the IDs of the particles and the inter...
Definition: BasicInteraction.h:28
esys::lsm::GougeConfig::ConnectionSet
std::set< Connection, ConnectionCmp > ConnectionSet
Definition: GougeConfig.h:315
esys::lsm::GougeConfig::visitParticles
void visitParticles(TmplVisitor &visitor)
Definition: GougeConfig.h:366
esys::lsm::GougeConfig::getConnectionSet
const ConnectionSet & getConnectionSet() const
Definition: GougeConfig.hpp:997
esys::lsm::GougeConfig::generate
virtual void generate()
Definition: GougeConfig.hpp:779
esys::lsm::GrainRandomBoxPacker::GrainCollection
TmplGrainCollection GrainCollection
Definition: GrainRandomBoxPacker.h:34
esys::lsm::GougeConfigPrms::m_tolerance
double m_tolerance
Definition: GougeConfig.h:233
CircularNeighbourTable.h
esys::lsm::GougeConfigPrms::m_orientation
Orientation m_orientation
Definition: GougeConfig.h:228
esys::lsm::ParticleRndPackPrms::m_minParticleRadius
double m_minParticleRadius
Definition: GougeConfig.h:59
esys::lsm::GougeConfig::createGougeConfigGenerators
virtual void createGougeConfigGenerators()
Definition: GougeConfig.hpp:740
esys::lsm::GougeConfigPrms::~GougeConfigPrms
~GougeConfigPrms()
Definition: GougeConfig.hpp:299
esys::lsm::GougeConfig::ConnectionValidator::m_tolerance
double m_tolerance
Definition: GougeConfig.h:450
esys::lsm::GougeConfig::GeoConnectionWriter::visitBasicInteraction
void visitBasicInteraction(const BasicInteraction &connection)
Definition: GougeConfig.h:485
esys::lsm::GougeConfig::GeoParticleWriter
Definition: GougeConfig.h:454
esys::lsm::GougeConfig::GeoConnectionWriter
Definition: GougeConfig.h:478
esys::lsm::DistConnections
Definition: DistConnections.h:36
esys::lsm::GougeConfig::tagDrivingPlateParticles
void tagDrivingPlateParticles(int minDrivingTag, int maxDrivingTag, double distanceFromBBoxEdge)
Definition: GougeConfig.hpp:1117
esys::lsm::GougeConfig::ConnectionCmp
Definition: GougeConfig.h:286
esys::lsm::YZ
@ YZ
Definition: GougeBlock3D.h:37
esys::lsm::GougePackingInfo::getMaxGrainRadius
double getMaxGrainRadius() const
Definition: GougeConfig.hpp:152
esys::lsm::GougePackingInfo
Definition: GougeConfig.h:128
esys::lsm::GrainRndPackPrms::GrainRndPackPrms
GrainRndPackPrms()
Definition: GougeConfig.hpp:198
esys::lsm::GougeConfigPrms::GougeConfigPrms
GougeConfigPrms()
Definition: GougeConfig.hpp:258
esys::lsm::GougeConfig::createRegularBlockGenerators
void createRegularBlockGenerators()
Definition: GougeConfig.hpp:672
esys::lsm::RandomBoxPacker::ParticleGeneratorPtr
Inherited::ParticleGeneratorPtr ParticleGeneratorPtr
Definition: RandomBoxPacker.h:118
esys::lsm::GougeConfigPrms::m_connectionTolerance
double m_connectionTolerance
Definition: GougeConfig.h:234
esys::lsm::ParticleRndPackPrms::getMinParticleRadius
double getMinParticleRadius() const
Definition: GougeConfig.hpp:185
esys::lsm::GougeConfig::GrainIterator
GrainRandomPacker::GrainIterator GrainIterator
Definition: GougeConfig.h:260
esys::lsm::GougeConfigPrms::ParticleGrainGen
TmplParticleGrainGen ParticleGrainGen
Definition: GougeConfig.h:156
esys::lsm::BoundingBoxVector
std::vector< BoundingBox > BoundingBoxVector
Definition: GougeBlock3D.h:55
esys::lsm::GougeConfig::GrainCollection
GrainRandomPacker::GrainCollection GrainCollection
Definition: GougeConfig.h:262
esys::lsm::GougeConfig::IdCompare::operator()
bool operator()(const Particle *p1, const Particle *p2) const
Definition: GougeConfig.h:419
esys::lsm::ParticleRndPackPrms::m_size
double m_size
Definition: GougeConfig.h:58
esys::lsm::GougeConfig::GeoParticleWriter::visitParticle
void visitParticle(const Particle &particle) const
Definition: GougeConfig.h:462
esys::lsm::GougeConfigPrms::m_periodicDimensions
BoolVector m_periodicDimensions
Definition: GougeConfig.h:231
esys::lsm::GougeConfig::NTable
GrainRandomPacker::NTable NTable
Definition: GougeConfig.h:275
esys::lsm::GougeConfig::RegBoxPacker
CubicBoxPacker< RegRadiusGen, ABoxPacker > RegBoxPacker
Definition: GougeConfig.h:268
esys::lsm::ParticleRndPackPrms::ParticleRndPackPrms
ParticleRndPackPrms()
Definition: GougeConfig.hpp:159
esys::lsm::ParticleRndPackPrms::getMaxParticleRadius
double getMaxParticleRadius() const
Definition: GougeConfig.hpp:190
esys::lsm::GougeConfig::ConnectionCmp::operator()
bool operator()(const Connection &i1, const Connection &i2) const
Definition: GougeConfig.h:288
esys::lsm::GougeConfig::getParticleCollection
ParticleCollection getParticleCollection()
Definition: GougeConfig.hpp:956
esys::lsm::GougeConfigPrms::m_faultPrms
ParticleRndPackPrms m_faultPrms
Definition: GougeConfig.h:229
esys::lsm::GougeConfig::GeoParticleWriter::m_precision
int m_precision
Definition: GougeConfig.h:474
esys::lsm::PackingInfo::m_minRadius
double m_minRadius
Definition: GougeBlock3D.h:85
esys::lsm::BoolVector
std::vector< bool > BoolVector
Definition: BlockGenerator.h:28
esys::lsm::GougeConfig::getGougeGeneratorVector
const GrainRndPackerPtrVector & getGougeGeneratorVector() const
Definition: GougeConfig.hpp:808
esys::lsm::GougeConfig::getNumConnections
int getNumConnections() const
Definition: GougeConfig.hpp:626
esys::lsm::GrainCollection::GrainIterator
Definition: GrainCollection.h:51
esys::lsm::CubicBoxPacker::ParticleGeneratorPtr
boost::shared_ptr< ParticleGenerator > ParticleGeneratorPtr
Definition: CubicBoxPacker.h:32
esys::lsm::PackingInfo::m_periodicDimensions
BoolVector m_periodicDimensions
Definition: GougeBlock3D.h:83
esys::lsm::GrainRandomBoxPacker::NTable
Inherited::NTable NTable
Definition: GrainRandomBoxPacker.h:49
esys::lsm::ParticleRndPackPrms::~ParticleRndPackPrms
~ParticleRndPackPrms()
Definition: GougeConfig.hpp:176
esys::lsm::GrainRndPackPrms::getMaxGrainRadius
double getMaxGrainRadius()
Definition: GougeConfig.hpp:250
esys::lsm::GrainRndPackPrms::m_connectionTag
int m_connectionTag
Definition: GougeConfig.h:87
esys::lsm::GougeConfig::GougeConfPrms
GougeConfigPrms< ParticleGrainGen > GougeConfPrms
Definition: GougeConfig.h:253
esys::lsm::ParticleRndPackPrms::getSize
double getSize() const
Definition: GougeConfig.hpp:180
esys::lsm::GougeConfig::ParticleGrainGen
GrainRandomPacker::ParticleGrainGen ParticleGrainGen
Definition: GougeConfig.h:252
esys::lsm::GougeConfig::tagRndBlockParticles
void tagRndBlockParticles(int tag)
Definition: GougeConfig.hpp:1101
esys::lsm::GougeConfigPrms
Definition: GougeConfig.h:154
esys::lsm::GougeConfig::m_prms
GougeConfPrms m_prms
Definition: GougeConfig.h:500
RandomBoxPacker.h
esys::lsm::GougeConfig::getNumGrains
int getNumGrains() const
Definition: GougeConfig.hpp:610
esys::lsm::CubicBoxPacker
Definition: CubicBoxPacker.h:29
esys::lsm::GougeConfig::m_particlePoolPtr
ParticlePoolPtr m_particlePoolPtr
Definition: GougeConfig.h:504
esys::lsm::GrainRandomBoxPacker::ParticlePoolPtr
Inherited::ParticlePoolPtr ParticlePoolPtr
Definition: GrainRandomBoxPacker.h:53
esys::lsm::GougeConfigPrms::GougePackInfo
GougePackingInfo< ParticleGrainGen > GougePackInfo
Definition: GougeConfig.h:159
esys::lsm::GougeConfig::GeoParticleWriter::GeoParticleWriter
GeoParticleWriter(std::ostream &oStream, int precision)
Definition: GougeConfig.h:456
esys::lsm::GougeConfig::GougePackingInfoVector
GougeConfPrms::GougePackingInfoVector GougePackingInfoVector
Definition: GougeConfig.h:254
DistConnections.h
esys::lsm::GougeConfig::ABoxPacker
GrainRandomPacker::BoxPackerBase ABoxPacker
Definition: GougeConfig.h:265
esys::lsm::PackingInfo::initialiseFitPlaneVector
void initialiseFitPlaneVector()
esys::lsm::GougeConfig::m_regularGenPtrVector
GeneratorPtrVector m_regularGenPtrVector
Definition: GougeConfig.h:512
esys::lsm::GougeConfig::APacker
GrainRandomPacker::PackerBase APacker
Definition: GougeConfig.h:264
esys::lsm::GougeConfig::RegRadiusGenPtr
RegBoxPacker::ParticleGeneratorPtr RegRadiusGenPtr
Definition: GougeConfig.h:269
esys::lsm::GougeConfig
Definition: GougeConfig.h:247
esys::lsm::RandomBoxPacker::ParticleGenerator
Inherited::ParticleGenerator ParticleGenerator
Definition: RandomBoxPacker.h:117
esys::lsm::PackingInfo::getMinParticleRadius
double getMinParticleRadius() const
Definition: GougeConfig.hpp:94
esys::lsm::GougeConfigPrms::m_blockConnectionTag
int m_blockConnectionTag
Definition: GougeConfig.h:235
esys::lsm::GougeConfig::getGrainCollection
GrainCollection getGrainCollection()
Definition: GougeConfig.hpp:976
esys::lsm::GougeConfigPrms::getMinRadius
double getMinRadius() const
Definition: GougeConfig.hpp:577
esys::lsm::GougeConfig::createFaultBlockGenerators
void createFaultBlockGenerators()
Definition: GougeConfig.hpp:703
esys::lsm::GougeConfig::GrainRndPackerPtrVector
std::vector< GrainRandomPackerPtr > GrainRndPackerPtrVector
Definition: GougeConfig.h:279
esys::lsm::PackingInfo::is3d
bool is3d() const
esys::lsm::PackingInfo::getFitPlaneVector
const PlaneVector & getFitPlaneVector() const
esys::lsm::GougePackingInfo::getParticleGrainGen
ParticleGrainGen & getParticleGrainGen() const
Definition: GougeConfig.hpp:131
esys::lsm::GougeConfig::ParticleCollection
GrainRandomPacker::ParticleCollection ParticleCollection
Definition: GougeConfig.h:258
esys::lsm::GougeConfig::ParticlePoolPtr
GrainRandomPacker::ParticlePoolPtr ParticlePoolPtr
Definition: GougeConfig.h:281
esys::lsm::GrainRndPackPrms::Inherited
ParticleRndPackPrms Inherited
Definition: GougeConfig.h:68
esys::lsm::GougeConfigPrms::is2d
bool is2d() const
Definition: GougeConfig.hpp:587
esys::lsm::GrainRndPackPrms
Definition: GougeConfig.h:65
esys::lsm::GougeConfig::ConnectionValidator::ConnectionValidator
ConnectionValidator(const GougeConfig &gougeBlock, double tolerance)
Definition: GougeConfig.h:428
esys::lsm::GougeConfig::m_gougeGenPtrVector
GrainRndPackerPtrVector m_gougeGenPtrVector
Definition: GougeConfig.h:502
esys::lsm::GougeConfig::ConnectionCmp::operator()
bool operator()(const Connection *i1, const Connection *i2) const
Definition: GougeConfig.h:310
esys::lsm::GougeConfigPrms::cutFromCentre
BoundingBox cutFromCentre(double d1, double d2) const
Definition: GougeConfig.hpp:382
esys::lsm::PackingInfo::m_maxRadius
double m_maxRadius
Definition: GougeBlock3D.h:86
esys::lsm::GougeConfig::ConnectionValidator
Definition: GougeConfig.h:426
esys::lsm::GrainRandomBoxPacker::NTablePtr
Inherited::NTablePtr NTablePtr
Definition: GrainRandomBoxPacker.h:50
esys::lsm::GougeConfigPrms::getPeriodicDimensions
const BoolVector & getPeriodicDimensions() const
Definition: GougeConfig.hpp:328
esys::lsm::GrainRandomBoxPacker::GrainPool
GrainCollection::GrainPool GrainPool
Definition: GrainRandomBoxPacker.h:40
esys::lsm::GougeConfigPrms::getMaxInsertionFailures
int getMaxInsertionFailures() const
Definition: GougeConfig.hpp:322
esys::lsm::PackingInfo::m_fitPlaneVector
PlaneVector m_fitPlaneVector
Definition: GougeBlock3D.h:87
esys::lsm::GougeConfig::GeoParticleWriter::m_pOStream
std::ostream * m_pOStream
Definition: GougeConfig.h:473
esys::lsm::GougeConfigPrms::getOrientation
Orientation getOrientation() const
Definition: GougeConfig.hpp:334
esys::lsm::GougeConfigPrms::getFaultMinRadius
double getFaultMinRadius() const
Definition: GougeConfig.hpp:419
esys::lsm::GrainRandomBoxPacker::ParticlePool
Inherited::ParticlePool ParticlePool
Definition: GrainRandomBoxPacker.h:52
esys::lsm::GougeConfig::GrainPool
GrainRandomPacker::GrainPool GrainPool
Definition: GougeConfig.h:282
esys::lsm::GougeConfigPrms::GougePackingInfoVector
std::vector< GougePackInfo > GougePackingInfoVector
Definition: GougeConfig.h:160
esys::lsm::GougePackingInfo::ParticleGrainGen
TmplParticleGrainGen ParticleGrainGen
Definition: GougeConfig.h:130
esys::lsm::GougeConfigPrms::m_bBox
BoundingBox m_bBox
Definition: GougeConfig.h:226
esys::lsm::GougeConfig::RndRadiusGenPtr
RndBoxPacker::ParticleGeneratorPtr RndRadiusGenPtr
Definition: GougeConfig.h:273
esys::lsm::GrainRndPackPrms::getParticleGrainGen
ParticleGrainGen & getParticleGrainGen() const
Definition: GougeConfig.hpp:222
esys::lsm::GougeConfigPrms::getConnectionTolerance
double getConnectionTolerance() const
Definition: GougeConfig.hpp:346
esys::lsm::GougeConfig::GeoConnectionWriter::m_precision
int m_precision
Definition: GougeConfig.h:495
esys::lsm::PackingInfo::PackingInfo
PackingInfo(const BoundingBox &bBox, const BoolVector &periodicDimensions, Orientation orientation, double minRadius, double maxRadius)
esys::lsm::GougeConfigPrms::ParticleRndPackPrms
GrainRPackPrms::Inherited ParticleRndPackPrms
Definition: GougeConfig.h:158
esys::lsm::GrainRandomBoxPackerPy::Grain
Inherited::Grain Grain
Definition: PackerPy.h:186
esys::lsm::GougePackingInfo::getMinGrainRadius
double getMinGrainRadius() const
Definition: GougeConfig.hpp:146
esys::lsm::GougeConfigPrms::getRegularBBoxVector
BoundingBoxVector getRegularBBoxVector() const
Definition: GougeConfig.hpp:454
BoundingBox.h
esys::lsm::GougeConfig::IdCompare
Definition: GougeConfig.h:417
esys::lsm::PackingInfoVector
std::vector< PackingInfo > PackingInfoVector
Definition: GougeBlock3D.h:90