ESyS-Particle  2.3.4
GougeBlock3D.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_LSMGOUGEBLOCK3D_H
15 #define ESYS_LSMGOUGEBLOCK3D_H
16 
17 #include "Foundation/BoundingBox.h"
20 #include "Geometry/Plane3D.h"
22 
23 #include <boost/shared_ptr.hpp>
24 
25 #include <vector>
26 #include <float.h>
27 
28 namespace esys
29 {
30  namespace lsm
31  {
32  typedef std::vector<Plane3D> PlaneVector;
34  {
35  XY,
36  XZ,
37  YZ
38  };
39 
41  {
42  public:
44 
45  ParticleBlockPrms(double size, double minRadius, double maxRadius);
46 
48 
49  double m_size;
50  double m_minRadius;
51  double m_maxRadius;
52  };
53 
54  typedef std::vector<bool> BoolVector;
55  typedef std::vector<BoundingBox> BoundingBoxVector;
56 
58  {
59  public:
61  const BoundingBox &bBox,
62  const BoolVector &periodicDimensions,
63  Orientation orientation,
64  double minRadius,
65  double maxRadius
66  );
67 
68  bool is3d() const;
69 
71 
72  const BoundingBox &getBBox() const;
73 
74  const PlaneVector &getFitPlaneVector() const;
75 
76  double getMinRadius() const;
77 
78  double getMaxRadius() const;
79 
80  const BoolVector &getPeriodicDimensions() const;
81  private:
85  double m_minRadius;
86  double m_maxRadius;
88  };
89 
90  typedef std::vector<PackingInfo> PackingInfoVector;
92  {
93  public:
99  const BoundingBox &bBox,
100  double padRadius,
101  Orientation orientation,
102  const ParticleBlockPrms &faultRegionPrms,
103  const ParticleBlockPrms &gougeRegionPrms,
104  const BoolVector &peridicDimensions=BoolVector(3, false),
105  int maxInsertionFailures=100,
106  double tolerance = DBL_EPSILON*128,
107  double connectionTolerance = DBL_EPSILON*128*10
108  );
109 
110  ~GougeBlockPrms();
111 
112  double getTolerance() const;
113 
114  double getConnectionTolerance() const;
115 
116  const BoundingBox &getBBox() const;
117 
118  int getMaxInsertionFailures() const;
119 
120  double getRegularBlockRadius() const;
121 
122  double getFaultMinRadius() const;
123 
124  double getFaultMaxRadius() const;
125 
126  double getGougeMinRadius() const;
127 
128  double getGougeMaxRadius() const;
129 
130  const BoolVector &getPeriodicDimensions() const;
131 
133 
135 
137 
138  BoundingBox cutFromCentre(double d1, double d2) const;
139 
140  Orientation getOrientation() const;
141 
142  int getOrientationIndex() const;
143 
144  double getOrientationSize() const;
145 
146  double getMaxRadius() const;
147 
148  double getMinRadius() const;
149 
150  bool is2d() const;
151 
152  private:
154  double m_padRadius;
160  double m_tolerance;
162  };
163 
169  {
170  public:
172  GougeBlock3D(const GougeBlockPrms &prms);
173 
174  virtual ~GougeBlock3D();
175 
176  virtual void generate();
177 
178  int getNumParticles() const;
179 
181  typedef boost::shared_ptr<NTable> NTablePtr;
182  typedef boost::shared_ptr<BlockGenerator> GeneratorPtr;
183  typedef std::vector<GeneratorPtr> GeneratorPtrVector;
186 
188 
190 
191  bool isGougeParticle(const SimpleParticle &particle) const;
192 
194  const SimpleParticle &p1,
195  const SimpleParticle &p2
196  ) const;
197 
198  virtual void write(std::ostream &oStream) const;
199 
200  void writeToFile(const std::string &fileName) const;
201 
202  void tagGougeParticles(int tag);
203 
204  void tagFaultParticles(int tag);
205 
207  int minDrivingTag,
208  int maxDrivingTag,
209  double distanceFromBBoxEdge
210  );
211 
212  typedef std::set<BasicInteraction,BILess> InteractionSet;
213 
214  virtual void createInteractionSet();
215 
216  const InteractionSet &getInteractionSet() const;
217 
218  template <typename TmplVisitor>
219  void visitParticles(TmplVisitor &visitor)
220  {
221  for (
222  GeneratorPtrVector::iterator it = m_genPtrVector.begin();
223  it != m_genPtrVector.end();
224  it++
225  )
226  {
227  BlockGenerator::ParticleIterator particleIt = (*it)->getParticleIterator();
228  while (particleIt.hasNext()) {
229  particleIt.next()->visit(visitor);
230  }
231  }
232  }
233 
234  template <typename TmplVisitor>
235  void visitParticles(const TmplVisitor &visitor) const
236  {
237  for (
238  GeneratorPtrVector::const_iterator it = m_genPtrVector.begin();
239  it != m_genPtrVector.end();
240  it++
241  )
242  {
243  BlockGenerator::ParticleIterator particleIt = (*it)->getParticleIterator();
244  while (particleIt.hasNext()) {
245  particleIt.next()->visit(visitor);
246  }
247  }
248  }
249 
250  template <typename TmplVisitor>
251  void visitInteractions(TmplVisitor &visitor) const
252  {
253  const InteractionSet &interactionSet = getInteractionSet();
254  for (
255  InteractionSet::const_iterator it = interactionSet.begin();
256  it != interactionSet.end();
257  it++
258  )
259  {
260  it->visit(visitor);
261  }
262  }
263 
264  const GougeBlockPrms &getPrms() const
265  {
266  return m_prms;
267  }
268 
269  protected:
276 
279  virtual void createGougeBlockGenerators();
280 
281  private:
284  };
285  }
286 }
287 
288 #endif
esys::lsm::GougeBlockPrms::getRegularBBoxVector
BoundingBoxVector getRegularBBoxVector() const
Definition: GougeBlock3D.cpp:310
SimpleParticle::getRad
double getRad() const
Definition: SimpleParticle.hpp:70
esys::lsm::GougeBlock3D
Block consisting of regular padding, random layer and gouge.
Definition: GougeBlock3D.h:169
esys::lsm::InteractionValidator
Definition: GougeBlock3D.cpp:629
esys::lsm::GougeBlock3D::write
virtual void write(std::ostream &oStream) const
Definition: GougeBlock3D.cpp:741
esys::lsm::GougeBlock3D::m_nTablePtr
NTablePtr m_nTablePtr
Definition: GougeBlock3D.h:270
esys::lsm::GougeBlock3D::isGougeParticle
bool isGougeParticle(const SimpleParticle &particle) const
Definition: GougeBlock3D.cpp:612
BasicInteraction.h
esys::lsm::XY
@ XY
Definition: GougeBlock3D.h:35
Plane3D.h
esys::lsm::GougeBlock3D::tagFaultParticles
void tagFaultParticles(int tag)
Definition: GougeBlock3D.cpp:832
Console::Info
Console & Info()
set verbose level of next message to "inf"
esys::lsm::IdCompare
Definition: GougeBlock3D.cpp:733
esys::lsm::PackingInfo::m_orientation
Orientation m_orientation
Definition: GougeBlock3D.h:84
esys::lsm::SimpleParticleData::getID
Id getID() const
Definition: SimpleParticleData.hpp:109
esys::lsm::GougeBlock3D::GeneratorPtr
boost::shared_ptr< BlockGenerator > GeneratorPtr
Definition: GougeBlock3D.h:182
esys::lsm::CircularNeighbourTable::ParticleVector
Inherited::ParticleVector ParticleVector
Definition: CircularNeighbourTable.h:38
RandomBlockGenerator.h
GridIterator.h
esys::lsm::Orientation
Orientation
Definition: GougeBlock3D.h:34
esys::lsm::PackingInfo::getBBox
const BoundingBox & getBBox() const
Definition: GougeBlock3D.cpp:87
esys::lsm::GougeBlockPrms::GougeBlockPrms
GougeBlockPrms()
Definition: GougeBlock3D.cpp:137
BlockGenerator.h
esys::lsm::ParticleBlockPrms::m_size
double m_size
Definition: GougeBlock3D.h:49
esys::lsm::GougeBlock3D::InteractionSet
std::set< BasicInteraction, BILess > InteractionSet
Definition: GougeBlock3D.h:212
esys::lsm::GougeBlock3D::getGougeGeneratorVector
const GeneratorPtrVector & getGougeGeneratorVector() const
Definition: GougeBlock3D.cpp:582
esys::lsm::GougeBlockPrms::is2d
bool is2d() const
Definition: GougeBlock3D.cpp:414
esys::lsm::Plane3D
::Plane3D Plane3D
Definition: Plane3D.h:60
esys::lsm::GougeBlockPrms
Definition: GougeBlock3D.h:92
esys::lsm::GougeBlock3D::generate
virtual void generate()
Definition: GougeBlock3D.cpp:556
esys::lsm::GougeBlock3D::createFaultBlockGenerators
void createFaultBlockGenerators()
Definition: GougeBlock3D.cpp:498
esys::lsm::GougeBlockPrms::cutFromCentre
BoundingBox cutFromCentre(double d1, double d2) const
Definition: GougeBlock3D.cpp:242
esys::lsm::ParticleBlockPrms::ParticleBlockPrms
ParticleBlockPrms()
Definition: GougeBlock3D.cpp:114
esys::lsm::InteractionValidator::m_pGougeBlock
const GougeBlock3D * m_pGougeBlock
Definition: GougeBlock3D.cpp:652
esys::lsm::RegularBlockGenerator
Definition: RegularBlockGenerator.h:28
esys::lsm::GougeBlock3D::getInteractionSet
const InteractionSet & getInteractionSet() const
Definition: GougeBlock3D.cpp:727
SimpleParticle::getPos
const Vec3 & getPos() const
Definition: SimpleParticle.hpp:30
esys::lsm::BoundingBox::getMaxPt
const Vec3 & getMaxPt() const
Definition: BoundingBox.hpp:45
esys::lsm::GougeBlock3D::createInteractionSet
virtual void createInteractionSet()
Definition: GougeBlock3D.cpp:701
esys::lsm::GougeBlockPrms::m_tolerance
double m_tolerance
Definition: GougeBlock3D.h:160
esys::lsm::XZ
@ XZ
Definition: GougeBlock3D.h:36
esys::lsm::GridIterator::getSphereBBox
BoundingBox getSphereBBox() const
Definition: GridIterator.h:185
console.h
esys::lsm::GougeBlock3D::m_regularGenPtrVector
GeneratorPtrVector m_regularGenPtrVector
Definition: GougeBlock3D.h:282
esys::lsm::GougeBlockPrms::getTolerance
double getTolerance() const
Definition: GougeBlock3D.cpp:197
esys::lsm::GougeBlock3D::m_prms
GougeBlockPrms m_prms
Definition: GougeBlock3D.h:271
esys::lsm::ForwardIterator::hasNext
bool hasNext() const
Definition: StlIterator.h:48
esys::lsm::GougeBlock3D::tagDrivingPlateParticles
void tagDrivingPlateParticles(int minDrivingTag, int maxDrivingTag, double distanceFromBBoxEdge)
Definition: GougeBlock3D.cpp:847
RegularBlockGenerator.h
esys::lsm::GougeBlock3D::visitParticles
void visitParticles(TmplVisitor &visitor)
Definition: GougeBlock3D.h:219
esys::lsm::GeoInteractionWriter::visitBasicInteraction
void visitBasicInteraction(const BasicInteraction &interaction)
Definition: GougeBlock3D.cpp:688
esys::lsm::GougeBlock3D::tagGougeParticles
void tagGougeParticles(int tag)
Definition: GougeBlock3D.cpp:817
esys::lsm::ForwardIterator::next
reference next()
Definition: StlIterator.h:60
esys::lsm::GeoParticleWriter::m_pOStream
std::ostream * m_pOStream
Definition: GougeBlock3D.cpp:676
esys::lsm::GougeBlock3D::createGougeBlockGenerators
virtual void createGougeBlockGenerators()
Definition: GougeBlock3D.cpp:525
SimpleParticle
Definition: SimpleParticle.h:25
esys::lsm::GougeBlockPrms::getMaxRadius
double getMaxRadius() const
Definition: GougeBlock3D.cpp:396
esys::lsm::PlaneVector
std::vector< Plane3D > PlaneVector
Definition: GougeBlock3D.h:32
BasicInteraction::first
Id first() const
Definition: BasicInteraction.h:42
esys::lsm::GougeBlockPrms::getOrientationIndex
int getOrientationIndex() const
Definition: GougeBlock3D.cpp:207
esys::lsm::GougeBlock3D::GougeBlock3D
GougeBlock3D(const GougeBlockPrms &prms)
Definition: GougeBlock3D.cpp:435
esys::lsm::GougeBlockPrms::getRegularBlockRadius
double getRegularBlockRadius() const
Definition: GougeBlock3D.cpp:275
esys::lsm::PackingInfo
Definition: GougeBlock3D.h:58
esys::lsm::GougeBlockPrms::getOrientation
Orientation getOrientation() const
Definition: GougeBlock3D.cpp:192
esys::lsm::GeoParticleWriter::m_precision
int m_precision
Definition: GougeBlock3D.cpp:677
esys::lsm::GougeBlock3D::Particle
SimpleParticle Particle
Definition: GougeBlock3D.h:171
esys::lsm::BoundingBox
3D bounding box
Definition: BoundingBox.h:28
esys
Definition: CheckPointable.cpp:17
esys::lsm::GougeBlockPrms::getOrientationSize
double getOrientationSize() const
Definition: GougeBlock3D.cpp:300
esys::lsm::IdCompare::operator()
bool operator()(const SimpleParticle *p1, const SimpleParticle *p2) const
Definition: GougeBlock3D.cpp:735
BasicInteraction::second
Id second() const
Definition: BasicInteraction.h:44
esys::lsm::PackingInfo::getMaxRadius
double getMaxRadius() const
Definition: GougeBlock3D.cpp:102
esys::lsm::PackingInfo::m_bBox
BoundingBox m_bBox
Definition: GougeBlock3D.h:82
esys::lsm::GougeBlockPrms::getFaultPackingInfoVector
PackingInfoVector getFaultPackingInfoVector() const
Definition: GougeBlock3D.cpp:356
esys::lsm::GougeBlockPrms::getBBox
const BoundingBox & getBBox() const
Definition: GougeBlock3D.cpp:177
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::ParticleBlockPrms::~ParticleBlockPrms
~ParticleBlockPrms()
Definition: GougeBlock3D.cpp:131
esys::lsm::GougeBlockPrms::getGougePackingInfoVector
PackingInfoVector getGougePackingInfoVector() const
Definition: GougeBlock3D.cpp:331
esys::lsm::GougeBlockPrms::getMinRadius
double getMinRadius() const
Definition: GougeBlock3D.cpp:405
CircularNeighbourTable.h
esys::lsm::GougeBlock3D::~GougeBlock3D
virtual ~GougeBlock3D()
Definition: GougeBlock3D.cpp:552
Vec3::Z
VEC3_INLINE double & Z()
Definition: vec3.h:121
esys::lsm::CircularNeighbourTable::Particle
Inherited::Particle Particle
Definition: CircularNeighbourTable.h:37
esys::lsm::GougeBlock3D::getFaultGeneratorVector
const GeneratorPtrVector & getFaultGeneratorVector() const
Definition: GougeBlock3D.cpp:587
esys::lsm::BoundingBox::getMinPt
const Vec3 & getMinPt() const
Definition: BoundingBox.hpp:40
esys::lsm::ParticleBlockPrms
Definition: GougeBlock3D.h:41
esys::lsm::GougeBlockPrms::~GougeBlockPrms
~GougeBlockPrms()
Definition: GougeBlock3D.cpp:173
esys::lsm::GougeBlockPrms::m_connectionTolerance
double m_connectionTolerance
Definition: GougeBlock3D.h:161
esys::lsm::BoundingBox::contains
bool contains(const Vec3 &pt, double tolerance=0.0) const
Definition: BoundingBox.hpp:60
esys::lsm::YZ
@ YZ
Definition: GougeBlock3D.h:37
esys::lsm::GougeBlockPrms::getPeriodicDimensions
const BoolVector & getPeriodicDimensions() const
Definition: GougeBlock3D.cpp:187
esys::lsm::PackingInfo::getFitPlaneVector
const PlaneVector & getFitPlaneVector() const
Definition: GougeBlock3D.cpp:92
esys::lsm::GougeBlockPrms::getGougeMaxRadius
double getGougeMaxRadius() const
Definition: GougeBlock3D.cpp:295
esys::lsm::GougeBlock3D::getNumParticles
int getNumParticles() const
Definition: GougeBlock3D.cpp:421
esys::lsm::GougeBlockPrms::m_faultPrms
ParticleBlockPrms m_faultPrms
Definition: GougeBlock3D.h:156
esys::lsm::BoundingBoxVector
std::vector< BoundingBox > BoundingBoxVector
Definition: GougeBlock3D.h:55
esys::lsm::InteractionValidator::m_tolerance
double m_tolerance
Definition: GougeBlock3D.cpp:653
esys::lsm::GeometryInfo
Definition: GeometryInfo.h:34
esys::lsm::InteractionValidator::InteractionValidator
InteractionValidator(const GougeBlock3D &gougeBlock, double tolerance)
Definition: GougeBlock3D.cpp:631
esys::lsm::ParticleBlockPrms::m_maxRadius
double m_maxRadius
Definition: GougeBlock3D.h:51
esys::lsm::GougeBlock3D::ParticlePool
NTable::ParticlePool ParticlePool
Definition: GougeBlock3D.h:184
esys::lsm::GougeBlock3D::areInDifferentFaultBlocks
bool areInDifferentFaultBlocks(const SimpleParticle &p1, const SimpleParticle &p2) const
Definition: GougeBlock3D.cpp:592
esys::lsm::GougeBlockPrms::getConnectionTolerance
double getConnectionTolerance() const
Definition: GougeBlock3D.cpp:202
esys::lsm::GeoInteractionWriter::GeoInteractionWriter
GeoInteractionWriter(std::ostream &oStream)
Definition: GougeBlock3D.cpp:683
esys::lsm::GougeBlock3D::GeneratorPtrVector
std::vector< GeneratorPtr > GeneratorPtrVector
Definition: GougeBlock3D.h:183
esys::lsm::GougeBlock3D::createRegularBlockGenerators
void createRegularBlockGenerators()
Definition: GougeBlock3D.cpp:473
esys::lsm::PackingInfo::m_minRadius
double m_minRadius
Definition: GougeBlock3D.h:85
esys::lsm::InteractionValidator::isValid
bool isValid(const SimpleParticle &p1, const SimpleParticle &p2) const
Definition: GougeBlock3D.cpp:637
esys::lsm::BoolVector
std::vector< bool > BoolVector
Definition: BlockGenerator.h:28
esys::lsm::GougeBlock3D::getPrms
const GougeBlockPrms & getPrms() const
Definition: GougeBlock3D.h:264
esys::lsm::ParticleBlockPrms::m_minRadius
double m_minRadius
Definition: GougeBlock3D.h:50
esys::lsm::PackingInfo::m_periodicDimensions
BoolVector m_periodicDimensions
Definition: GougeBlock3D.h:83
esys::lsm::GougeBlockPrms::m_gougePrms
ParticleBlockPrms m_gougePrms
Definition: GougeBlock3D.h:157
esys::lsm::SimpleParticleData::setTag
void setTag(const Tag &tag)
Definition: SimpleParticleData.hpp:129
Vec3
Definition: vec3.h:47
esys::lsm::ForwardIterator
Definition: StlIterator.h:30
esys::lsm::GeoInteractionWriter::m_precision
int m_precision
Definition: GougeBlock3D.cpp:698
esys::lsm::CircularNeighbourTable::ParticlePool
boost::object_pool< Particle > ParticlePool
Definition: CircularNeighbourTable.h:40
esys::lsm::GougeBlockPrms::getFaultMaxRadius
double getFaultMaxRadius() const
Definition: GougeBlock3D.cpp:285
esys::lsm::GougeBlockPrms::m_periodicDimensions
BoolVector m_periodicDimensions
Definition: GougeBlock3D.h:158
esys::lsm::GougeBlock3D::NTable
CircularNeighbourTable< SimpleParticle > NTable
Definition: GougeBlock3D.h:180
esys::lsm::GougeBlockPrms::m_orientation
Orientation m_orientation
Definition: GougeBlock3D.h:155
esys::lsm::GeometryInfo::write
void write(std::ostream &oStream) const
Definition: GeometryInfo.cpp:338
esys::lsm::GeoInteractionWriter::m_pOStream
std::ostream * m_pOStream
Definition: GougeBlock3D.cpp:697
Vec3::ZERO
static const Vec3 ZERO
Definition: vec3.h:52
esys::lsm::GougeBlock3D::m_particlePoolPtr
ParticlePoolPtr m_particlePoolPtr
Definition: GougeBlock3D.h:275
esys::lsm::PackingInfo::initialiseFitPlaneVector
void initialiseFitPlaneVector()
Definition: GougeBlock3D.cpp:52
esys::lsm::GougeBlockPrms::m_maxInsertionFailures
int m_maxInsertionFailures
Definition: GougeBlock3D.h:159
esys::lsm::GougeBlock3D::NTablePtr
boost::shared_ptr< NTable > NTablePtr
Definition: GougeBlock3D.h:181
esys::lsm::GougeBlock3D::writeToFile
void writeToFile(const std::string &fileName) const
Definition: GougeBlock3D.cpp:576
esys::lsm::PackingInfo::getPeriodicDimensions
const BoolVector & getPeriodicDimensions() const
Definition: GougeBlock3D.cpp:107
esys::lsm::PackingInfo::is3d
bool is3d() const
Definition: GougeBlock3D.cpp:47
esys::lsm::BoundingBox::getSizes
Vec3 getSizes() const
Definition: BoundingBox.hpp:78
esys::lsm::PackingInfo::getMinRadius
double getMinRadius() const
Definition: GougeBlock3D.cpp:97
esys::lsm::PackingInfo::m_maxRadius
double m_maxRadius
Definition: GougeBlock3D.h:86
esys::lsm::GeoInteractionWriter
Definition: GougeBlock3D.cpp:681
esys::lsm::GeoParticleWriter
Definition: GougeBlock3D.cpp:657
console
Console console
Definition: console.cpp:25
esys::lsm::GougeBlockPrms::getFaultMinRadius
double getFaultMinRadius() const
Definition: GougeBlock3D.cpp:280
esys::lsm::GougeBlock3D::m_gougeGenPtrVector
GeneratorPtrVector m_gougeGenPtrVector
Definition: GougeBlock3D.h:273
esys::lsm::PackingInfo::m_fitPlaneVector
PlaneVector m_fitPlaneVector
Definition: GougeBlock3D.h:87
esys::lsm::RandomBlockGenerator
Definition: RandomBlockGenerator.h:37
esys::lsm::GougeBlockPrms::getMaxInsertionFailures
int getMaxInsertionFailures() const
Definition: GougeBlock3D.cpp:182
esys::lsm::GougeBlock3D::visitInteractions
void visitInteractions(TmplVisitor &visitor) const
Definition: GougeBlock3D.h:251
esys::lsm::GougeBlock3D::ParticlePoolPtr
NTable::ParticlePoolPtr ParticlePoolPtr
Definition: GougeBlock3D.h:185
GeometryInfo.h
GougeBlock3D.h
esys::lsm::GougeBlock3D::visitParticles
void visitParticles(const TmplVisitor &visitor) const
Definition: GougeBlock3D.h:235
esys::lsm::GougeBlock3D::m_interactionSet
InteractionSet m_interactionSet
Definition: GougeBlock3D.h:272
esys::lsm::GougeBlock3D::m_genPtrVector
GeneratorPtrVector m_genPtrVector
Definition: GougeBlock3D.h:274
esys::lsm::SimpleParticleData::getTag
Tag getTag() const
Definition: SimpleParticleData.hpp:124
esys::lsm::GougeBlockPrms::getGougeMinRadius
double getGougeMinRadius() const
Definition: GougeBlock3D.cpp:290
esys::lsm::GougeBlock3D::m_faultGenPtrVector
GeneratorPtrVector m_faultGenPtrVector
Definition: GougeBlock3D.h:283
esys::lsm::GridIterator
Definition: GridIterator.h:29
esys::lsm::GeoParticleWriter::GeoParticleWriter
GeoParticleWriter(std::ostream &oStream, int precision)
Definition: GougeBlock3D.cpp:659
esys::lsm::GougeBlockPrms::m_padRadius
double m_padRadius
Definition: GougeBlock3D.h:154
esys::lsm::CircularNeighbourTable
Definition: CircularNeighbourTable.h:34
esys::lsm::PackingInfo::PackingInfo
PackingInfo(const BoundingBox &bBox, const BoolVector &periodicDimensions, Orientation orientation, double minRadius, double maxRadius)
Definition: GougeBlock3D.cpp:32
esys::lsm::GougeBlockPrms::m_bBox
BoundingBox m_bBox
Definition: GougeBlock3D.h:153
esys::lsm::CircularNeighbourTable::ParticlePoolPtr
boost::shared_ptr< ParticlePool > ParticlePoolPtr
Definition: CircularNeighbourTable.h:41
esys::lsm::GeoParticleWriter::visitSimpleParticle
void visitSimpleParticle(const SimpleParticle &particle) const
Definition: GougeBlock3D.cpp:665
BoundingBox.h
esys::lsm::PackingInfoVector
std::vector< PackingInfo > PackingInfoVector
Definition: GougeBlock3D.h:90