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.