ESyS-Particle
4.0.1
|
class for the generation of a 2D random block with a fault consisting of line segments More...
#include <FaultedBlock2d.h>
Public Member Functions | |
FaultedBlock2D (double, double, double, double, double, double, double, bool circ_x=false) | |
void | addSegment (const Vec3 &, const Vec3 &, double) |
virtual bool | checkAFit (const SimpleParticle &) |
virtual void | generate (int, unsigned int) |
virtual void | tagSplit (int, int, double) |
![]() | |
CRandomBlock2D (double, double, double, double, double, double, double, bool circ_x=false) | |
virtual void | insertParticle (const SimpleParticle) |
virtual void | tagParticleClosestTo (const Vec3 &, int) |
virtual void | tagEdgeY (int, int, double) |
virtual void | tagEdgeZ (int, int, double) |
virtual void | writeToGeoFile (const string &) |
virtual double | calcPorosity () |
virtual vector< pair< double, double > > | getSizeDistribution (int) |
Protected Member Functions | |
virtual Line * | getClosestPlane (const SimpleParticle &) |
virtual Vec3 | getAPoint () |
![]() | |
virtual int | getNParts () const |
![]() | |
bool | isInSpace (const Vec3 &) |
bool | findAFit (SimpleParticle &, const vector< SimpleParticle > &, const Line &) |
bool | findAFit (SimpleParticle &, const vector< SimpleParticle > &) |
void | fillSpace (int) |
![]() | |
double | m_random (double, double) |
vector< SimpleParticle > | getNeighborList (const SimpleParticle &) |
vector< SimpleParticle > | get3ClosestNeighbors (const SimpleParticle &, const vector< SimpleParticle > &) |
vector< SimpleParticle > | getClosestNeighbors (const SimpleParticle &, int) |
SimpleParticle | getClosestParticle (const SimpleParticle &, const vector< SimpleParticle > &) |
Protected Attributes | |
vector< pair< double, LineSegment > > | m_fault |
vector< LineSegment > | m_f2 |
double | m_pad_size |
![]() | |
double | m_maxConnDist |
![]() | |
vector< Line > | Borders |
double | m_rmin |
double | m_rmax |
min/max particle radius | |
double | m_xmin |
double | m_xmax |
double | m_ymin |
double | m_ymax |
x,y borders of the lattice | |
bool | m_circ_x |
![]() | |
ASimpleNTable * | m_snt |
set< BasicInteraction, BILess > | m_iset |
vector< SimpleParticle > | m_bpart |
Additional Inherited Members | |
![]() | |
static double | m_small_value = 1e-7 |
class for the generation of a 2D random block with a fault consisting of line segments
FaultedBlock2D::FaultedBlock2D | ( | double | xmin, |
double | xmax, | ||
double | ymin, | ||
double | ymax, | ||
double | rmin, | ||
double | rmax, | ||
double | pad, | ||
bool | circ_x = false |
||
) |
Constructor. Set up "empty" block, i.e. without any fault segments -> add those via addSegment
xmin | minimum in x-direction |
xmax | maximum in x-direction |
ymin | minimum in y-direction |
ymax | maximum in y-direction |
rmin | minimum particle radius |
rmax | maximum particle radius |
pad | thickness of the padding region at each diving edge |
circ_x | circular boudary condition in x-direction |
Add a fault segment to the block
P1 | 1st end point |
P2 | 2nd end point |
r | roughness parameter (0.0...1.0) |
|
virtual |
check if Po is within the Space and is not crossing any boundary or overlapping with other particles.
Po | the particle |
Reimplemented from ARandomAssembly2D.
Referenced by generate().
|
virtual |
generate the particle packing
tries | number of attempts to insert particle before giving up |
seed | random seed |
Reimplemented from CRandomBlock2D.
References checkAFit(), ARandomAssembly2D::fillSpace(), CRandomBlock2D::insertParticle(), ARandomAssembly::m_random(), ARandomAssembly2D::m_rmax, and ARandomAssembly2D::m_ymax.
|
protectedvirtual |
Get a random point with in the "random" region, i.e. outside the padding zone
Reimplemented from CRandomBlock2D.
References ARandomAssembly::m_random(), and ARandomAssembly2D::m_ymax.
|
protectedvirtual |
Get closest line/line segment to a particle. Overloaded from ARandomAssembly2D to include line segments with overlap of 0.0
Po | the particle |
Reimplemented from ARandomAssembly2D.
|
virtual |
Tag particles along the split line
tag1 | the tag for particles "above" the split (y>y_split) |
tag2 | the tag for particles "below" the split (y<y_split) |
d | maximum distance from the split line at which a particle gets tagged |
Reimplemented from ARandomAssembly.