ESyS-Particle  2.3.4
RandomAssembly3D.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 #ifndef __RANDOMASSEMBLY3D_H
14 #define __RANDOMASSEMBLY3D_H
15 
16 //-- project includes --
20 #include "Geometry/Plane3D.h"
21 
22 //-- STL includes --
23 #include <vector>
24 #include <set>
25 
26 using std::set;
27 using std::vector;
28 
38 {
39  protected:
40  vector<Plane3D> Borders;
41  double m_rmin,m_rmax;
43  bool m_circ_x;
44 
45  virtual Vec3 getAPoint()=0;
46 
47  bool findAFit(SimpleParticle&, const vector<SimpleParticle>&);
48  bool findAFit(SimpleParticle&, const vector<SimpleParticle>&, const Plane3D&);
49  virtual bool checkAFit(const SimpleParticle&);
50  virtual Plane3D getClosestPlane(const SimpleParticle&);
51  void fillSpace(int);
52  virtual int getNParts() const=0;
53 
54  public:
55  virtual void generate(int,unsigned int)=0;
56  virtual void insertParticle(const SimpleParticle)=0;
57  virtual void tagParticleClosestTo(const Vec3&,int)=0;
58  virtual void tagEdgeY(int,int,double)=0;
59  virtual void tagEdgeZ(int,int,double)=0;
60 };
61 
62 #endif // __RANDOMASSEMBLY3D_H
SimpleParticle::getRad
double getRad() const
Definition: SimpleParticle.hpp:70
BasicInteraction.h
ARandomAssembly::m_small_value
static double m_small_value
Definition: ARandomAssembly.h:45
Plane3D.h
ARandomAssembly3D::checkAFit
virtual bool checkAFit(const SimpleParticle &)
Definition: RandomAssembly3D.cpp:129
Console::Info
Console & Info()
set verbose level of next message to "inf"
ARandomAssembly3D::m_zmax
double m_zmax
x,y,z borders of the lattice
Definition: RandomAssembly3D.h:42
Sphere3d.h
esys::lsm::SimpleParticleData::getID
Id getID() const
Definition: SimpleParticleData.hpp:109
ARandomAssembly3D::m_circ_x
bool m_circ_x
Definition: RandomAssembly3D.h:43
ARandomAssembly3D::fillSpace
void fillSpace(int)
Definition: RandomAssembly3D.cpp:176
ARandomAssembly3D::m_rmax
double m_rmax
min/max particle radius
Definition: RandomAssembly3D.h:41
ARandomAssembly3D::Borders
vector< Plane3D > Borders
Definition: RandomAssembly3D.h:40
SimpleParticle::getPos
const Vec3 & getPos() const
Definition: SimpleParticle.hpp:30
ARandomAssembly::getNeighborList
vector< SimpleParticle > getNeighborList(const SimpleParticle &)
Definition: ARandomAssembly.cpp:46
console.h
ARandomAssembly3D::m_xmin
double m_xmin
Definition: RandomAssembly3D.h:42
ARandomAssembly
Abstract base class for random assemblies, to be used for initialization of random lattices.
Definition: ARandomAssembly.h:42
ARandomAssembly3D::getClosestPlane
virtual Plane3D getClosestPlane(const SimpleParticle &)
Definition: RandomAssembly3D.cpp:31
ARandomAssembly3D::m_ymin
double m_ymin
Definition: RandomAssembly3D.h:42
Plane3D::GetW
const Vec3 & GetW() const
Definition: Plane3D.h:50
Plane3D::GetO
const Vec3 & GetO() const
Definition: Plane3D.h:52
ARandomAssembly3D::m_xmax
double m_xmax
Definition: RandomAssembly3D.h:42
Plane3D
Class representing a Plane3D.
Definition: Plane3D.h:29
SimpleParticle
Definition: SimpleParticle.h:25
Vec3::X
VEC3_INLINE double & X()
Definition: vec3.h:119
ARandomAssembly3D::tagEdgeZ
virtual void tagEdgeZ(int, int, double)=0
Plane3D::sep
virtual double sep(const Vec3 &) const
Definition: Plane3D.cpp:87
ARandomAssembly::getClosestNeighbors
vector< SimpleParticle > getClosestNeighbors(const SimpleParticle &, int)
Definition: ARandomAssembly.cpp:61
SimpleParticle.h
ARandomAssembly3D::m_rmin
double m_rmin
Definition: RandomAssembly3D.h:41
Vec3::Z
VEC3_INLINE double & Z()
Definition: vec3.h:121
ARandomAssembly3D::tagParticleClosestTo
virtual void tagParticleClosestTo(const Vec3 &, int)=0
ARandomAssembly3D::m_zmin
double m_zmin
Definition: RandomAssembly3D.h:42
ARandomAssembly3D::generate
virtual void generate(int, unsigned int)=0
ARandomAssembly.h
ARandomAssembly::m_random
double m_random(double, double)
Definition: ARandomAssembly.cpp:36
Vec3::Y
VEC3_INLINE double & Y()
Definition: vec3.h:120
ARandomAssembly3D::tagEdgeY
virtual void tagEdgeY(int, int, double)=0
ARandomAssembly3D::findAFit
bool findAFit(SimpleParticle &, const vector< SimpleParticle > &)
Definition: RandomAssembly3D.cpp:58
RandomAssembly3D.h
ARandomAssembly3D
Abstract base class for random assemblies, to be used for initialization of random lattices.
Definition: RandomAssembly3D.h:38
Sphere3D::FillInWP
static bool FillInWP(const Vec3 &, const Vec3 &, const Vec3 &, const Vec3 &, const Vec3 &, double, double, double, Vec3 &, double &)
Definition: Sphere3d.cpp:132
Vec3
Definition: vec3.h:47
esys::lsm::bpu::iter
boost::python::object iter(const boost::python::object &pyOb)
Definition: Util.h:25
SimpleParticle::moveTo
void moveTo(const Vec3 &v)
Definition: SimpleParticle.hpp:40
Sphere3D::FillIn
static bool FillIn(const Vec3 &, const Vec3 &, const Vec3 &, const Vec3 &, double, double, double, double, Vec3 &, double &)
Definition: Sphere3d.cpp:31
ARandomAssembly3D::m_ymax
double m_ymax
Definition: RandomAssembly3D.h:42
console
Console console
Definition: console.cpp:25
ARandomAssembly3D::getAPoint
virtual Vec3 getAPoint()=0
ARandomAssembly3D::insertParticle
virtual void insertParticle(const SimpleParticle)=0
ARandomAssembly3D::getNParts
virtual int getNParts() const =0