ESyS-Particle
4.0.1
Main Page
Related Pages
Namespaces
Classes
Files
File List
Geometry
RandomBlock3D.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 __RANDOMBLOCK3D_H
14
#define __RANDOMBLOCK3D_H
15
16
//-- project includes --
17
#include "Geometry/SimpleParticle.h"
18
#include "Geometry/SimpleNTable.h"
19
#include "Geometry/Sphere2d.h"
20
#include "Geometry/Line.h"
21
#include "Geometry/RandomAssembly3D.h"
22
23
//-- STL includes --
24
#include <vector>
25
#include <string>
26
#include <utility>
27
28
using
std::vector;
29
using
std::string;
30
using
std::pair;
31
40
class
CRandomBlock3D
:
public
ARandomAssembly3D
41
{
42
private
:
43
bool
m_is_bonded;
44
45
protected
:
46
virtual
Vec3
getAPoint
();
47
virtual
int
getNParts()
const
{
return
m_bpart.size();};
48
double
m_maxConnDist;
49
50
public
:
51
CRandomBlock3D
(
double
,
double
,
double
,
double
,
double
,
double
,
double
,
double
,
double
,
bool
,
bool
is_bonded=
true
);
52
virtual
~
CRandomBlock3D
();
53
54
virtual
void
generate
(
int
,
unsigned
int
);
55
virtual
void
insertParticle
(
const
SimpleParticle
);
56
virtual
void
tagParticleClosestTo
(
const
Vec3
&,
int
);
57
virtual
void
tagEdgeY
(
int
,
int
,
double
);
58
virtual
void
tagEdgeZ
(
int
,
int
,
double
);
59
60
virtual
void
writeToGeoFile
(
const
string
&);
61
virtual
double
calcPorosity
();
62
virtual
vector<pair<double,double> >
getSizeDistribution
(
int
);
63
};
64
65
#endif // __RANDOMBLOCK3D_H
66
Generated on Sun Apr 13 2014 05:18:51 for ESyS-Particle by
1.8.1.2