14 #ifndef ESYS_LSMGOUGECONFIG_H
15 #define ESYS_LSMGOUGECONFIG_H
25 #include <boost/shared_ptr.hpp>
63 template <
typename TmplParticleGrainGen>
104 inline bool is3d()
const;
126 template <
typename TmplParticleGrainGen>
152 template <
typename TmplParticleGrainGen>
173 int maxInsertionFailures=100,
174 double tolerance = DBL_EPSILON*128,
175 double connectionTolerance = DBL_EPSILON*128*10,
176 int blockConnectionTag = 0
242 typename TmplGrainRandomBoxPacker,
243 typename TmplParticleRandomBoxPacker,
244 typename TmplConnection
264 typedef typename GrainRandomPacker::PackerBase
APacker;
265 typedef typename GrainRandomPacker::BoxPackerBase
ABoxPacker;
292 (i1.getP1Id() < i2.getP1Id())
295 (i1.getP1Id() == i2.getP1Id())
298 (i1.getP2Id() < i2.getP2Id())
301 (i1.getP2Id() == i2.getP2Id())
303 (i1.getTag() < i2.getTag())
312 return (*
this)(*i1, *i2);
343 virtual void write(std::ostream &oStream)
const;
345 void writeToFile(
const std::string &fileName)
const;
354 double distanceFromBBoxEdge
365 template <
typename TmplVisitor>
369 typename GeneratorPtrVector::iterator it =
m_genPtrVector.begin();
375 while (particleIt.hasNext()) {
376 particleIt.next().visit(visitor);
381 template <
typename TmplVisitor>
385 typename GeneratorPtrVector::const_iterator it =
m_genPtrVector.begin();
391 while (particleIt.hasNext()) {
392 particleIt.next().visit(visitor);
397 template <
typename TmplVisitor>
402 typename ConnectionSet::const_iterator it = connectionSet.begin();
403 it != connectionSet.end();
421 return (p1->getID() < p2->getID());
438 (p1.getID() < p2.getID())
440 ((p1.getPos() - p2.getPos()).norm() < (
m_tolerance + (p1.getRad() + p2.getRad())))
466 << particle.getPos() <<
" "
467 << particle.getRad() <<
" "
468 << particle.getID() <<
" "
469 << particle.getTag() <<
"\n";
488 << connection.
first() <<
" "
489 << connection.
second() <<
" "