ESyS-Particle  2.3.4
FaultedBlock2D Class Reference

class for the generation of a 2D random block with a fault consisting of line segments More...

#include <FaultedBlock2d.h>

Inheritance diagram for FaultedBlock2D:
Collaboration diagram for FaultedBlock2D:

Public Member Functions

 FaultedBlock2D (double, double, double, double, double, double, double, bool circ_x=false)
 
virtual ~FaultedBlock2D ()
 
void addSegment (const Vec3 &, const Vec3 &, double)
 
virtual bool checkAFit (const SimpleParticle &)
 
virtual void generate (int, unsigned int)
 
virtual void tagSplit (int, int, double)
 
- Public Member Functions inherited from CRandomBlock2D
 CRandomBlock2D (double, double, double, double, double, double, double, bool circ_x=false)
 
virtual ~CRandomBlock2D ()
 
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)
 
- Public Member Functions inherited from ARandomAssembly
virtual ~ARandomAssembly ()
 
virtual void writeToVtkFile (const string &)
 

Protected Member Functions

virtual LinegetClosestPlane (const SimpleParticle &)
 
virtual Vec3 getAPoint ()
 
- Protected Member Functions inherited from CRandomBlock2D
virtual int getNParts () const
 
- Protected Member Functions inherited from ARandomAssembly2D
bool isInSpace (const Vec3 &)
 
bool findAFit (SimpleParticle &, const vector< SimpleParticle > &, const Line &)
 
bool findAFit (SimpleParticle &, const vector< SimpleParticle > &)
 
void fillSpace (int)
 
- Protected Member Functions inherited from ARandomAssembly
double m_random (double, double)
 
vector< SimpleParticlegetNeighborList (const SimpleParticle &)
 
vector< SimpleParticleget3ClosestNeighbors (const SimpleParticle &, const vector< SimpleParticle > &)
 
vector< SimpleParticlegetClosestNeighbors (const SimpleParticle &, int)
 
SimpleParticle getClosestParticle (const SimpleParticle &, const vector< SimpleParticle > &)
 

Protected Attributes

vector< pair< double, LineSegment > > m_fault
 
vector< LineSegmentm_f2
 
double m_pad_size
 
- Protected Attributes inherited from CRandomBlock2D
double m_maxConnDist
 
- Protected Attributes inherited from ARandomAssembly2D
vector< LineBorders
 
double m_rmin
 
double m_rmax
 min/max particle radius More...
 
double m_xmin
 
double m_xmax
 
double m_ymin
 
double m_ymax
 x,y borders of the lattice More...
 
bool m_circ_x
 
- Protected Attributes inherited from ARandomAssembly
ASimpleNTablem_snt
 
set< BasicInteraction, BILessm_iset
 
vector< SimpleParticlem_bpart
 

Additional Inherited Members

- Static Protected Attributes inherited from ARandomAssembly
static double m_small_value =1e-7
 

Detailed Description

class for the generation of a 2D random block with a fault consisting of line segments

Author
Steffen Abe $Date$ $Revision$

Constructor & Destructor Documentation

◆ FaultedBlock2D()

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

Parameters
xminminimum in x-direction
xmaxmaximum in x-direction
yminminimum in y-direction
ymaxmaximum in y-direction
rminminimum particle radius
rmaxmaximum particle radius
padthickness of the padding region at each diving edge
circ_xcircular boudary condition in x-direction

References m_pad_size.

◆ ~FaultedBlock2D()

FaultedBlock2D::~FaultedBlock2D ( )
virtual

Member Function Documentation

◆ addSegment()

void FaultedBlock2D::addSegment ( const Vec3 P1,
const Vec3 P2,
double  r 
)

Add a fault segment to the block

Parameters
P11st end point
P22nd end point
rroughness parameter (0.0...1.0)

References m_f2, m_fault, Vec3::X(), Vec3::Y(), and Vec3::Z().

Here is the call graph for this function:

◆ checkAFit()

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.

Parameters
Pothe particle

Reimplemented from ARandomAssembly2D.

References ARandomAssembly2D::checkAFit(), SimpleParticle::getPos(), SimpleParticle::getRad(), esys::lsm::bpu::iter(), and m_fault.

Referenced by generate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ generate()

void FaultedBlock2D::generate ( int  tries,
unsigned int  seed 
)
virtual

◆ getAPoint()

Vec3 FaultedBlock2D::getAPoint ( )
protectedvirtual

Get a random point with in the "random" region, i.e. outside the padding zone

Reimplemented from CRandomBlock2D.

References m_pad_size, ARandomAssembly::m_random(), ARandomAssembly2D::m_rmin, ARandomAssembly2D::m_xmax, ARandomAssembly2D::m_xmin, ARandomAssembly2D::m_ymax, and ARandomAssembly2D::m_ymin.

Here is the call graph for this function:

◆ getClosestPlane()

Line * FaultedBlock2D::getClosestPlane ( const SimpleParticle Po)
protectedvirtual

Get closest line/line segment to a particle. Overloaded from ARandomAssembly2D to include line segments with overlap of 0.0

Parameters
Pothe particle

Reimplemented from ARandomAssembly2D.

References ARandomAssembly2D::getClosestPlane(), SimpleParticle::getPos(), esys::lsm::bpu::iter(), m_fault, and Line::sep().

Here is the call graph for this function:

◆ tagSplit()

void FaultedBlock2D::tagSplit ( int  tag1,
int  tag2,
double  d 
)
virtual

Tag particles along the split line

Parameters
tag1the tag for particles "above" the split (y>y_split)
tag2the tag for particles "below" the split (y<y_split)
dmaximum distance from the split line at which a particle gets tagged

Reimplemented from ARandomAssembly.

References ARandomAssembly::m_bpart, m_f2, and m_fault.

Member Data Documentation

◆ m_f2

vector<LineSegment> FaultedBlock2D::m_f2
protected

Referenced by addSegment(), generate(), and tagSplit().

◆ m_fault

vector<pair<double,LineSegment> > FaultedBlock2D::m_fault
protected

◆ m_pad_size

double FaultedBlock2D::m_pad_size
protected

Referenced by FaultedBlock2D(), generate(), and getAPoint().


The documentation for this class was generated from the following files: