Xfem
The Xfem Plugin
Public Member Functions | Private Attributes | List of all members
XfemFracture Class Reference

A simple class to represent a natural fracture. More...

#include <xfemFracture.h>

Collaboration diagram for XfemFracture:
Collaboration graph
[legend]

Public Member Functions

 XfemFracture (int npoints, int ndim, double *coordinates, const QString &fracType=QString("HydraFrac"), const QString &fracState=QString("Open"))
 Constructor for a fracture definition based on a set of points defining its geometry. More...
 
virtual ~XfemFracture ()
 Destructor.
 
 XfemFracture (const XfemFracture &other)
 
int numPoints () const
 Returns the number of points in the fracture definition.
 
int numCrackPoints () const
 Returns the number of crack points into the fracture.
 
int numCrackPaths () const
 Return the number of crack paths.
 
int numSubCrackPaths () const
 Return the number of sub-crack paths.
 
int numElemCutPos () const
 Return the number of elemCutPos vector.
 
int numSubElemCutPos () const
 Return the number of subelemCutPos vector.
 
int numElemHeadIp () const
 Return the number of elements in headIp.
 
int numElemTailIp () const
 Return the number of elements in tailIp.
 
int numChangedElem () const
 Return the number of changed elements.
 
int numfrontNodeBool () const
 Return the number of crack front node booleans.
 
int numfrontNodeProp () const
 Return the number of crack front node that will propagate.
 
int pointDimension () const
 Returns the dimension of each fracture point. Equal to the mesh dimension.
 
void fixedHead ()
 Set false the activation of head tip.
 
bool checkHeadStatus () const
 Check Head activation status.
 
void fixedTail ()
 Set false the activation of tail tip.
 
bool checkTailStatus () const
 Check tail activation status.
 
void headProp (bool setHead=true)
 Set true the propagation of head tip.
 
bool checkHeadProp () const
 Check Head Propagation status.
 
void tailProp (bool setTail=true)
 Set true the propagation of tail tip.
 
bool checkTailProp () const
 Check tail Propagation status.
 
QString checkFracType () const
 Check fracture type status.
 
QString checkFracState () const
 Check fracture state status. More...
 
void setIntactCrackDOFset ()
 Crack DOF set must be changed as this fracture intersect other one or coexist in the same element with other one.
 
void changeCrackDOFset ()
 
bool checkCrackDOFset () const
 Check crack DOF set status.
 
const double * coordinates (int index) const
 Returns a vector with the given point coordinates. The vector size is equal to the mesh dimension. Values are given in the same unit as coordinates are stored in the mesh.
 
void appendCrackCoordinates (QList< GmVector > B, bool type=true)
 
void insertCrackCoordinates (GmVector C, int index)
 
void replaceCrackCoordinates (GmVector B, int index)
 
void splitCrackCoordinates (int index2, int index, bool type=true)
 
virtual void getCrackCoodinates (GmVector &S1, int n) const
 
void appendCrackPath (GmVector Cr, bool type=true)
 
void splitCrackPath (int path, int node)
 
void insertSubCrackPath (int path, GmVector A, GmVector B)
 
virtual void getCrackPath (GmVector &A, int n) const
 
void appendSubCrackPath (GmVector Cr, bool type=true)
 
virtual void getSubCrackPath (GmVector &A, int n) const
 
void appendChangedElem (QList< int > n)
 
virtual void getChangedElem (QList< int > &data) const
 
void clearChangedElem ()
 
void appendCrackFrontNodes (QList< QList< int >> n)
 
virtual void getCrackFrontNodes (QList< QList< int >> &data) const
 
void replaceCrackFrontNodes (QList< int > n, int index)
 
void clearCrackFrontNodes ()
 
void appendCrackFrontIp (QList< QList< QPair< int, QList< QList< int >>>>> crackFrontSeglist)
 
virtual void getCrackFrontIp (QList< QList< QPair< int, QList< QList< int >>>>> &crackFrontSeglist) const
 
void clearCrackFrontIp ()
 
void appendFrontNodeBool (QPair< int, bool > n)
 
virtual void getFrontNodeBool (int n, QPair< int, bool > &data) const
 
void replaceFrontNodeBool (int n, QPair< int, bool > data)
 
void clearFrontNodeBool ()
 
void appendFrontNodeProp (QPair< int, bool > n)
 
virtual void getFrontNodeProp (int n, QPair< int, bool > &data) const
 
void replaceFrontNodeProp (int n, QPair< int, bool > data)
 
void clearFrontNodeProp ()
 
void setHeadIp (QList< GmVector > B)
 
virtual void getHeadIp (GmVector &A, int n) const
 
void clearHeadIp ()
 
void setTailIp (QList< GmVector > B)
 
virtual void getTailIp (GmVector &A, int n) const
 
void clearTailIp ()
 
void appendElemCutPos (GmVector cut, bool type=true)
 
void splitElemCutPos (int path, int edge)
 
virtual void getElemCutPos (GmVector &S1, int n) const
 
void appendSubElemCutPos (GmVector cut, bool type=true)
 
virtual void getSubElemCutPos (GmVector &S1, int n) const
 
void insertSubElemCutPos (int path, GmVector A, GmVector B)
 

Private Attributes

int _npoints
 Number of points in the fracture definition.
 
int _ndim
 The dimension of each coordinate.
 
int _npointsCrack
 Number of intersection into the mesh for each fracture.
 
QList< GmVector_headIp
 Vector with information about head ip index {elem, ipIndex1, ipIndex2,..}.
 
QList< GmVector_tailIp
 Vector with information about tail ip index {elem, ipIndex1, ipIndex2,..}.
 
QList< GmVector_crackPath
 Vector with information about crak path {elem, ghostNode1, ghostNode2}.
 
QList< GmVector_subCrackPath
 Vector with information about crak path {elem, ghostNode1, ghostNode2} for results visualization.
 
QList< GmVector_elemCutPos
 Vector with information about fracture position {elem, side1, side2}.
 
QList< GmVector_subElemCutPos
 Vector with information about fracture position {elem, side1, side2} for results visualization.
 
QList< GmVector_crackCoordinates
 subCrack coordinates vector. Size = _ndim * _npointsCrack. Values stored by point.
 
QList< int > _changedElem
 List with changed elements as fracture propagates.
 
double * _coordinates
 Coordinate vector. Size = _ndim * _npoints. Values stored by point.
 
bool _isStrongFrac
 Strong fracture (TRUE defines as strong fracture)
 
bool _head
 head of the fracture(TRUE defines that it's available to propagate)
 
bool _tail
 tail of the fracture(TRUE defines that it's available to propagate)
 
bool _headProp
 head of the fracture(TRUE defines that it's going to propagate)
 
bool _tailProp
 tail of the fracture(TRUE defines that it's going to propagate)
 
bool _changedCrack
 Crack DOF set must be changed as this fracture intersect other one or coexist in the same element with other one.
 
QString _fracType
 
QString _fracState
 
QList< QList< int > > _crackFront
 list with crack front nodes
 
QList< QList< QPair< int, QList< QList< int > > > > > _crackFrontSeglist
 list of IP and Element id for the crack front node to the fracture object
 
QList< QPair< int, bool > > _frontNodeBool
 
QList< QPair< int, bool > > _frontNodeProp
 

Detailed Description

A simple class to represent a natural fracture.

Constructor & Destructor Documentation

◆ XfemFracture() [1/2]

XfemFracture::XfemFracture ( int  npoints,
int  ndim,
double *  coordinates,
const QString fracType = QString("HydraFrac"),
const QString fracState = QString("Open") 
)

Constructor for a fracture definition based on a set of points defining its geometry.

Gets as parameters the number of points in the fracture geometry definition, the point dimension and a vector with the point coordinates. The vector size should be equal to nnodes * ndim and the coordinates should be organized inside per point (ex: x1, y1, x2, y2, ..., xn, yn).

IMPORTANT: The fracture takes ownership of the given data vector and will destroy it on its destructor.

◆ XfemFracture() [2/2]

XfemFracture::XfemFracture ( const XfemFracture other)
inline

< Number of points in the fracture definition

< The dimension of each coordinate

< Number of intersection into the mesh for each fracture

< Vector with information about head ip index {elem, ipIndex1, ipIndex2,..}

< Vector with information about tail ip index {elem, ipIndex1, ipIndex2,..}

< Vector with information about crak path {elem, ghostNode1, ghostNode2}

< Vector with information about sub-crak path {elem, ghostNode1, ghostNode2}

< Vector with information about fracture position {elem, side1, side2}

< Crack coordinates vector. Size = _ndim * _npointsCrack. Values stored by point.

< List with changed elements as fracture propagates

< Strong fracture (TRUE defines as strong fracture)

< head of the fracture(TRUE defines that it's available to propagate)

< tail of the fracture(TRUE defines that it's available to propagate)

< head of the fracture(TRUE defines that it's going to propagate)

< tail of the fracture(TRUE defines that it's going to propagate)

< Coordinate vector. Size = _ndim * _npoints. Values stored by point.

Member Function Documentation

◆ checkFracState()

QString XfemFracture::checkFracState ( ) const
inline

Check fracture state status.

set false to check again if this element changed its Dof Set


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