|
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) |
Protected Member Functions | |
| virtual Line * | getClosestPlane (const SimpleParticle &) |
| virtual Vec3 | getAPoint () |
Protected Attributes | |
|
vector< pair< double, LineSegment > > | m_fault |
| vector< LineSegment > | m_f2 |
| double | m_pad_size |
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 |
| void FaultedBlock2D::addSegment | ( | const Vec3 & | P1, |
| const Vec3 & | P2, | ||
| double | r | ||
| ) |
Add a fault segment to the block
| P1 | 1st end point |
| P2 | 2nd end point |
| r | roughness parameter (0.0...1.0) |
| bool FaultedBlock2D::checkAFit | ( | const SimpleParticle & | Po | ) | [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().

| void FaultedBlock2D::generate | ( | int | tries, |
| unsigned int | seed | ||
| ) | [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.

| Vec3 FaultedBlock2D::getAPoint | ( | ) | [protected, virtual] |
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.

| Line * FaultedBlock2D::getClosestPlane | ( | const SimpleParticle & | Po | ) | [protected, virtual] |
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.
| void FaultedBlock2D::tagSplit | ( | int | tag1, |
| int | tag2, | ||
| double | d | ||
| ) | [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.
1.7.6.1