ESyS-Particle  4.0.1
GranularGougeBlock3D.h
1 
2 // //
3 // Copyright (c) 2003-2011 by The University of Queensland //
4 // Earth Systems Science Computational Centre (ESSCC) //
5 // http://www.uq.edu.au/esscc //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.opensource.org/licenses/osl-3.0.php //
10 // //
12 
13 #ifndef __ESYS_LSM_GRANULARGOUGEBLOCK3D_H
14 #define __ESYS_LSM_GRANULARGOUGEBLOCK3D_H
15 
16 // --- project includes --
17 #include "Geometry/GougeBlock3D.h"
18 
19 namespace esys {
20  namespace lsm {
21 
32  {
33  private:
34  vector<Vec3> m_grain_seeds;
35 
36  void generateSeeds(double,double,double,double,double,double);
37 
38  public:
40  virtual ~GranularGougeBlock3D();
41 
42  virtual void createInteractionSet();
43  virtual void generate();
44  virtual void generateGrains(double,double,double,double,double,double,int,int rm_threshold=0);
45  };
46 
56  {
57  private:
58  const GranularGougeBlock3D *m_pGougeBlock;
59  double m_tolerance;
60 
61  public:
63  bool isValid(const SimpleParticle&, const SimpleParticle&) const;
64  };
65  }
66 }
67 
68 #endif // __ESYS_LSM_GRANULARGOUGEBLOCK3D_H