ESyS-Particle  2.3
SphAggGougeBlock.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2014 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.opensource.org/licenses/osl-3.0.php //
10 // //
12 
13 #ifndef __ESYS_LSM_SPHAGGGOUGEBLOCK3D_H
14 #define __ESYS_LSM_SPHAGGGOUGEBLOCK3D_H
15 
16 // --- project includes --
17 #include "Foundation/vec3.h"
18 #include "Geometry/GougeBlock3D.h"
21 
22 // --- STL includes ---
23 #include <vector>
24 using std::vector;
25 
26 namespace esys {
27  namespace lsm {
28 
34  {
35  public:
36  typedef boost::shared_ptr<SphereBlockGenerator> SBG_ptr;
37 
38  protected:
41  vector<SimpleParticle> m_macro_grains;
45  vector<SBG_ptr> m_grainParticleGen;
47 
48  void generateMacroGrains();
49  void fillMacroGrains();
50  void setupNT2();
51  void createInteractionSet();
52  virtual void createGougeBlockGenerators();
53 
54  public:
55  SphAggGougeBlock(const GougeBlockPrms&,double,double,int);
56  virtual void generate();
57 
58  template <typename TmplVisitor> void visitParticles(TmplVisitor&);
59  template <typename TmplVisitor> void visitParticles(TmplVisitor&) const;
60  };
61 
71  {
72  private:
74  double m_tolerance;
76 
77  public:
78  SphAggInteractionValidator(const SphAggGougeBlock&, double,int);
79  bool isValid(const SimpleParticle&, const SimpleParticle&) const;
80  };
81  }
82 }
83 
84 #include "SphAggGougeBlock.hpp"
85 
86 #endif // __ESYS_LSM_SPHAGGGOUGEBLOCK3D_H
virtual void generate()
Definition: SphAggGougeBlock.cpp:215
int m_grain_tag
Definition: SphAggGougeBlock.h:75
void generateMacroGrains()
Definition: SphAggGougeBlock.cpp:45
void fillMacroGrains()
Definition: SphAggGougeBlock.cpp:112
void setupNT2()
Definition: SphAggGougeBlock.cpp:160
NTablePtr m_nTablePtr2
Definition: SphAggGougeBlock.h:42
Block of gouge consisting of spherical aggregate grains.
Definition: SphAggGougeBlock.h:33
virtual void createGougeBlockGenerators()
Definition: SphAggGougeBlock.cpp:184
Definition: CheckPointable.cpp:16
double m_min_rad_grain
Definition: SphAggGougeBlock.h:39
const SphAggGougeBlock * m_pGougeBlock
Definition: SphAggGougeBlock.h:73
boost::shared_ptr< SphereBlockGenerator > SBG_ptr
Definition: SphAggGougeBlock.h:36
NTable::ParticlePoolPtr ParticlePoolPtr
Definition: GougeBlock3D.h:185
Block consisting of regular padding, random layer and gouge.
Definition: GougeBlock3D.h:168
double m_max_rad_grain
Definition: SphAggGougeBlock.h:40
Definition: GougeBlock3D.h:91
ParticlePoolPtr m_particlePoolPtr2
Definition: SphAggGougeBlock.h:43
bool isValid(const SimpleParticle &, const SimpleParticle &) const
Definition: SphAggGougeBlock.cpp:255
GeneratorPtr m_grainGen
Definition: SphAggGougeBlock.h:44
SphAggGougeBlock(const GougeBlockPrms &, double, double, int)
Definition: SphAggGougeBlock.cpp:33
void createInteractionSet()
Definition: SphAggGougeBlock.cpp:192
boost::shared_ptr< NTable > NTablePtr
Definition: GougeBlock3D.h:181
SphAggInteractionValidator(const SphAggGougeBlock &, double, int)
Definition: SphAggGougeBlock.cpp:247
double m_tolerance
Definition: SphAggGougeBlock.h:74
boost::shared_ptr< BlockGenerator > GeneratorPtr
Definition: GougeBlock3D.h:182
int m_min_grain_tag
Definition: SphAggGougeBlock.h:46
Used to check the validity of an interaction in a SphAggGougeBlock.
Definition: SphAggGougeBlock.h:70
void visitParticles(TmplVisitor &)
Definition: SphAggGougeBlock.hpp:19
Definition: SimpleParticle.h:24
vector< SimpleParticle > m_macro_grains
Definition: SphAggGougeBlock.h:41
vector< SBG_ptr > m_grainParticleGen
Definition: SphAggGougeBlock.h:45