ESyS-Particle  2.3.4
ClosePackBlock.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_LSMCLOSEPACKBLOCK_H
15 #define ESYS_LSMCLOSEPACKBLOCK_H
16 
19 
20 namespace esys
21 {
22  namespace lsm
23  {
27  template <typename TmplClosePackIterator,typename TmplParticle>
29  {
30  public:
31  typedef TmplClosePackIterator CentrePointIterator;
32 
34  unsigned int numX,
35  unsigned int numY,
36  unsigned int numZ,
37  double radius = 0.5,
39  );
40 
41  virtual ~ClosePackBlockGenerator();
42 
43  double getRadius() const;
44 
45  template <typename TmplParticleCollection>
46  void createParticles(TmplParticleCollection &particleCollection);
47 
48  protected:
49 
50  private:
51  double m_radius;
54  };
55 
59  template <typename TmplClosePackIterator, typename TmplParticle>
60  class ClosePackBlock : public ParticleCollection<TmplParticle>
61  {
62  public:
64  typedef TmplClosePackIterator ClosePackIterator;
67  unsigned int numX,
68  unsigned int numY,
69  unsigned int numZ,
70  double radius = 0.5,
72  );
73 
74  virtual ~ClosePackBlock();
75 
76  double getRadius() const;
77 
78  protected:
79  void createParticles();
80 
81  private:
83  };
84  }
85 }
86 
88 
89 #endif
ClosePackIterator.h
esys::lsm::ClosePackBlock::ClosePackBlock
ClosePackBlock(unsigned int numX, unsigned int numY, unsigned int numZ, double radius=0.5, ClosePackOrientation orientation=DEFAULT_ORIENT)
Definition: ClosePackBlock.hpp:87
esys::lsm::ClosePackBlock::createParticles
void createParticles()
Definition: ClosePackBlock.hpp:106
esys::lsm::ClosePackBlockGenerator::m_radius
double m_radius
Definition: ClosePackBlock.h:51
esys::lsm::ClosePackBlock::ClosePackIterator
TmplClosePackIterator ClosePackIterator
Definition: ClosePackBlock.h:64
esys::lsm::ClosePackBlock::Particle
ParticleCollection< TmplParticle >::Particle Particle
Definition: ClosePackBlock.h:63
esys::lsm::ClosePackBlock::~ClosePackBlock
virtual ~ClosePackBlock()
Definition: ClosePackBlock.hpp:101
esys::lsm::ClosePackBlockGenerator::m_orientation
ClosePackOrientation m_orientation
Definition: ClosePackBlock.h:53
esys::lsm::ClosePackBlock
Definition: ClosePackBlock.h:61
esys::lsm::ClosePackBlock::getRadius
double getRadius() const
Definition: ClosePackBlock.hpp:112
esys
Definition: CheckPointable.cpp:17
ParticleCollection.h
esys::lsm::ClosePackBlockGenerator::ClosePackBlockGenerator
ClosePackBlockGenerator(unsigned int numX, unsigned int numY, unsigned int numZ, double radius=0.5, ClosePackOrientation orientation=DEFAULT_ORIENT)
Definition: ClosePackBlock.hpp:25
esys::lsm::ClosePackBlockGenerator::getRadius
double getRadius() const
Definition: ClosePackBlock.hpp:75
esys::lsm::ClosePackBlockGenerator::CentrePointIterator
TmplClosePackIterator CentrePointIterator
Definition: ClosePackBlock.h:31
esys::lsm::ClosePackBlockGenerator::~ClosePackBlockGenerator
virtual ~ClosePackBlockGenerator()
Definition: ClosePackBlock.hpp:70
ClosePackBlock.h
esys::lsm::ParticleCollection::Particle
TmplParticle Particle
Definition: ParticleCollection.h:37
esys::lsm::Vec3L
Definition: Vec3L.h:29
ClosePackBlock.hpp
esys::lsm::ClosePackOrientation
ClosePackOrientation
Definition: ClosePackOrientation.h:26
esys::lsm::DEFAULT_ORIENT
@ DEFAULT_ORIENT
Definition: ClosePackOrientation.h:27
esys::lsm::ClosePackBlockGenerator::m_dimCounts
Vec3L m_dimCounts
Definition: ClosePackBlock.h:52
esys::lsm::ClosePackBlock::m_generator
BlockGenerator m_generator
Definition: ClosePackBlock.h:82
esys::lsm::ParticleCollection
Definition: ParticleCollection.h:35
esys::lsm::ClosePackBlockGenerator
Definition: ClosePackBlock.h:29
esys::lsm::ClosePackBlockGenerator::createParticles
void createParticles(TmplParticleCollection &particleCollection)
Definition: ClosePackBlock.hpp:41
esys::lsm::ClosePackBlock::BlockGenerator
ClosePackBlockGenerator< TmplClosePackIterator, Particle > BlockGenerator
Definition: ClosePackBlock.h:65