![]() |
Xfem
The Xfem Plugin
|
A simple class to represent a natural fracture. More...
#include <xfemPre.h>


Public Member Functions | |
| XfemPre (XfemMesh *_xmesh, XfemOptions &xfemOptions, GmSimulationData *simulation, QList< GmpFemPhysics * > &physics, const GmLogCategory &logger) | |
| Constructor for a Xfem pre-processor used in Xfem process. More... | |
| virtual | ~XfemPre () |
| Destructor. | |
| int | pointDimension () const |
| Returns the number of points in the fracture definition. More... | |
| virtual bool | linesToFracPath (XfemMesh *xmesh) const |
| Compute the intersection between the initial fractures and xfemMesh to find the additional nodes (so called Ghost nodes) | |
| virtual bool | InitEnrichedMesh (XfemMesh *xmesh, QList< GmpFemPhysics * > &physics) const |
| Initialize the enriched mesh TODO: Generalize to 3D problems. The discontinuity set it is currently being used in the particular case of 2D problems. | |
| virtual bool | InitializeEnrichedElement (XfemMesh *xmesh, GmCell *e, GmDiscontinuitySet *dset) const |
| Set initial enrichment of a 2d cell. | |
| virtual bool | Add2DGhostNodes (XfemMesh *xmesh, GmDiscontinuitySet *dset) const |
| Set initial enrichment of a 2d cell TODO: special treatment of the intersections. | |
| virtual bool | checkAndRemoveRepeatedValuesGhostNodesLists (QList< GmVector > &ghostNodesCoord, QList< int > &ghostNodesIndex) const |
| check and remove repeated values in the ghost nodes lists. When discontinuities intersect with each other, the nodes of the intersections will appear repeated in the list. | |
| virtual bool | fill2DGhostNodesCoordList (const GmDiscontinuitySet *dset, QList< GmVector > &ghostNodesCoord, QList< int > &ghostNodesIndex) const |
| virtual bool | link2DGhostNodesWithElements (XfemMesh *xmesh, const GmDiscontinuitySet *dset, QList< int > &ghostNodesIndex) const |
| link the ghost nodes to the enriched elements | |
| virtual bool | GeomEnrich (XfemMesh *xmesh, QList< GmpFemPhysics * > &physics) const |
| Set initial enrichment. More... | |
| virtual bool | CutCracksAndDefineElemMat (XfemMesh *xmesh) const |
| Define elements cut by each fracture and define element DOF sets. | |
| virtual bool | CutCracks (XfemMesh *xmesh) const |
| Define strong and weak fractures coordinates. | |
| virtual bool | defElementIntersections (XfemMesh *xmesh, QList< GmpFemPhysics * > &physics) const |
| Define elements intersections information fill Vector with information about id of intersected fractures and crack nodes contained in a element {Crack's id, first crack node, second crack node}. More... | |
| virtual bool | createGaussAttributes (XfemMesh *xmesh) const |
| create gauss Attributes to store wetting fluid saturation for multiphasic analysis | |
| virtual bool | fillEnrichmentFunctions (XfemMesh *xmesh) const |
| fill Enrichment Functions | |
| virtual bool | correctEnrichmentFunctions (XfemMesh *xmesh) const |
| Add enrichment functions to adjacent elements to an intersection. | |
| virtual bool | verifyDOF (XfemMesh *xmesh) const |
| Define elements cut by each fracture and define element DOF sets. | |
| virtual bool | topologicalMap (XfemMesh *xmesh) const |
| create topological map for every node and element | |
Public Member Functions inherited from XfemTools | |
| XfemTools (XfemMesh *xmesh, XfemOptions &xfemOptions, GmSimulationData *simulation, QList< GmpFemPhysics * > &physics, const GmLogCategory &logger) | |
| Constructor for a Xfem tools used in Xfem process. More... | |
| virtual | ~XfemTools () |
| Destructor. | |
| int | pointDimension () const |
| Returns the dimension of each fracture point. Equal to the mesh dimension. | |
| virtual bool | unitVectSegment (GmMatrix Xg, GmMatrix &uVec) const |
| virtual bool | unitVectPlane (const GmMatrix &Xg, GmMatrix &uVec, GmMatrix &uVec2, GmMatrix &uVec3, GmMatrix &ROT) const |
| virtual bool | intersect3D_2Planes (const GmMatrix &Xg, GmMatrix &uVec, const GmMatrix &uVec2, GmMatrix &uVec3, GmMatrix &ROT, int &inter, const double &characteristicLength) const |
| virtual bool | intersect3D_SegmentPlane (const GmMatrix &P0, const GmMatrix &P1, const GmMatrix &Pn2, GmMatrix &n2, GmMatrix &Line, int &inter) const |
| virtual bool | testIntersect3D_2Planes (const GmMatrix &Pn1, GmMatrix &n1, const GmMatrix &Pn2, GmMatrix &n2, GmMatrix &Line, int &inter, XfemMesh *xmesh, XfemElement *xe, XfemElement *xe2) const |
| virtual bool | intersectVolume (GmMatrix &nodes, QList< GmVector > &element, QList< GmVector > &fracData, GmMatrix &iNodes, QList< GmVector > &iData) const |
| returns the intersection between volume and fracture More... | |
| virtual bool | RectangularRegion (double Lch, GmMatrix Xg, GmMatrix uVec, GmMatrix &polygonVert) const |
| virtual bool | pointInConvexPolygon (double tol, GmMatrix polygonVert, GmVector Xip, int &nIn) const |
| virtual bool | polygonCentroid (const GmMatrix &polygonVert, GmVector &Xc) const |
| Computes the polygon centroid. | |
| virtual bool | defIPinRegion (XfemMesh *xmesh, GmMatrix polygonVert, QList< GmVector > &IPInfo, GmVector crackInfo) const |
| virtual bool | CutPolygonWithPolyline (XfemMesh *xmesh, GmVector crackInfo, GmMatrix &polygonVert, int idCrack) const |
| virtual bool | defIPinCircle (XfemMesh *xmesh, GmVector crackInfo, QList< GmVector > &IPInfo) const |
| virtual bool | cycInc (int iVert, int nVert, int &nCycInc) const |
| virtual bool | parametricDist (GmVector S1, GmVector S2, GmVector N1, GmVector N2, double tol, double &tValue, bool &bIntersects) const |
| virtual bool | CutPLineWithPLine (XfemMesh *xmesh, double tol, GmVector Seg1node1, GmVector Seg1node2, GmVector Seg2node1, GmVector Seg2node2, GmVector &NewCrackTip, bool &bCut, bool &bCutHeadVertexA, bool &bCutTailVertexA, bool &bCutHeadVertexB, bool &bCutTailVertexB) const |
| virtual bool | CoordsFromParam (GmVector Seg2node1, GmVector Seg2node2, double tValue, GmVector &NewCrackTip) const |
| virtual bool | principalStresses2D (GmVector stress, GmVector &Ps) const |
| virtual bool | principalStressDirection2D (GmVector aStress, GmVector aPStress, int nPS, GmVector &uPs) const |
| virtual bool | compPropagExtension (XfemMesh *xmesh, XfemFracture *fracture, int nside, GmMatrix Xnodes, GmVector Xg, GmVector aPropDirection, QList< GmVector > &aCrack, bool isHead, GmMatrix crackInfo) const |
| virtual bool | testCompPropagExtension3D (XfemMesh *xmesh, XfemElement *xe, QList< int > elemList, GmVector v_n, GmMatrix planeCoord, GmMatrix Xg, QList< GmVector > &aCrack, int &elemId, bool &next) const |
| virtual bool | compPropagExtension3D (XfemMesh *xmesh, XfemElement *xe, QList< int > elemList, GmVector v_n, GmMatrix &planeCoord, GmMatrix Xg, QList< GmVector > &aCrack, int &elemId, bool &next) const |
| virtual bool | caracteristiclength (GmMatrix Xnodes, double &Lch) const |
| get caracteristic length | |
| virtual bool | setZeroVeriTol (GmMatrix &Xnodes, double &Lch) const |
| set zero verifying tolerance | |
| virtual bool | parametricSegmentInMesh (XfemMesh *xmesh, XfemFracture *fracture, double tol) const |
| \ class XfemTools Purpose : Checks the intersection between segment C {(xc1, yc1), (xc2, yc2)} and a unstructured xfemMesh tVector contains all intersection coordinates ordered from minimum to maximum value | |
| virtual bool | checkAndInsertTips (QList< double > &tVec) const |
| virtual bool | insertionSortWORepeated (QList< double > &a, double tol) const |
| virtual bool | insertionSort (QList< double > &tVec) const |
| virtual bool | insertionSortWORepeatedint (QList< int > &a, double tol) const |
| virtual bool | insertionSortint (QList< int > &tVec) const |
| virtual bool | orient2D (double xa, double ya, double xb, double yb, double xc, double yc, double &det) const |
| virtual bool | defElemCuts (XfemMesh *xmesh) const |
| virtual bool | defElemSets (XfemMesh *xmesh) const |
| virtual bool | setIntPoints (XfemMesh *xmesh, GmCell *e, QList< GmMatrix > subElem) const |
| virtual bool | createSubElem (XfemMesh *xmesh, GmCell *e, QList< GmMatrix > &subElem) const |
| virtual bool | setEnrichedData (XfemMesh *xmesh, GmCell *e) const |
| virtual bool | setGhostNodes (XfemMesh *xmesh) const |
| virtual bool | setGhostNodes3D (XfemMesh *xmesh) const |
| virtual bool | loadSubElement (XfemMesh *xmesh, GmCell *e, GmMatrix subElemNode, int type, int rule, bool isFracture) const |
| void | setIntegrationRule (int rule) |
| virtual bool | checkSegmentInRegularMesh (XfemMesh *xmesh, GmMatrix segCrackCoord, GmVector &mElemCutPos, double tol) const |
| virtual bool | intPointLine (GmVector N1, GmVector N2, GmVector crack, double tol, int &nInter) const |
| virtual bool | intSegment (GmVector N1, GmVector N2, GmVector crack, double tol, int &nInter) const |
| virtual bool | inSphere (GmMatrix crack, GmVector Ip, double characteristicLength, double tol, int &nInter) const |
| virtual bool | dividePolygonWithSegment (GmCell *e, GmMatrix S, QList< GmMatrix > &subElemData, double tol) const |
| virtual bool | dividePolygonWithSeveralSegments (XfemMesh *xmesh, GmCell *e, QList< GmMatrix > &subElemData, double tol) const |
| virtual bool | addEnrichedDof (XfemMesh *xmesh, int numDof, const QString type) const |
| virtual bool | setCrackFrontData (XfemMesh *xmesh) const |
| virtual bool | defDofSets (XfemMesh *xmesh) const |
| Define elements DOF. | |
| virtual bool | mechanicDofSets (XfemMesh *xmesh, int old, int &numDof, QList< GmVector > aCrack) const |
| virtual bool | hydroMecDofSets (XfemMesh *xmesh, int old, int &numDof, QList< GmVector > aCrack) const |
| virtual bool | subElemDiv (XfemMesh *xmesh) const |
| virtual bool | subElemDiv3D (XfemMesh *xmesh) const |
| void | test () const |
| void | test2 () const |
| void | fillFractureRotationMatrix (GmCell *e, const GmShape *shp, GmMatrix J, GmMatrix &R) const |
| virtual bool | pointOnSide (GmCell *e, GmMatrix xGhost, GmVector &xIp, int side) const |
| virtual bool | fillInterCrackNodalLevelSet (GmVector Seg1node1, GmVector Seg1node2, GmVector Seg2node1, GmVector &interactingCraks) const |
| void | fillNodalLevelSetMatrix (GmMatrix X, GmMatrix Xg, GmMatrix &H) const |
| Compute levelset function (H) The minimum distance between a point(nodes or integration point) and a segment (fracture) is determined. This function returns the signed distance function used to enrich the element for XFEM. More... | |
| void | fillGaussLevelSetMatrix (GmMatrix X, GmMatrix Xg, GmMatrix &H) const |
| Compute Gauss levelset function (H) The minimum distance between a point(integration point) and a segment (fracture) is determined. This function returns the signed distance function used to enrich the element for XFEM. More... | |
| void | fillInteractingCraksNodalLevelSets (GmCell *e, XfemEnrichedElementData *exData, int nEnrich, int nCracks, QList< double >crackIndex, QList< GmMatrix > &nodalLevelSet) const |
| computation of Additional enrichment fuctions for cracks intersection considering element nodes and integration point | |
| void | fillInteractingCraksGaussLevelSets (GmCell *e, XfemEnrichedElementData *exData, int nEnrich, int nCracks, QList< double >crackIndex, QList< GmMatrix > &gaussLevelSet) const |
| computation of Additional enrichment fuctions for cracks intersection considering element nodes and integration point | |
| virtual bool | correctDOF (XfemMesh *xmesh, GmCell *e, XfemElement *xe, XfemEnrichedElementData *exData, QList< XfemFracture * > fractureData, QList< GmVector > &aCrack, int &old, bool &add) const |
| Add DOFs to adjacent elements to an intersection. | |
| virtual bool | deleteNodeDOF (XfemMesh *xmesh, double value) const |
| virtual bool | checkDOF (XfemMesh *xmesh, double value, QList< int > &enrichList) const |
| virtual bool | addChangedElem (XfemMesh *xmesh, double value, QList< int > &enrichList) const |
| virtual bool | saveEnrichmentFunctions (XfemMesh *xmesh, double value) const |
| virtual bool | alterEnrichmentFunctions (XfemMesh *xmesh, double value) const |
| virtual bool | createDofList (XfemMesh *xmesh, const QString type) const |
| virtual bool | checkData (XfemMesh *xmesh) const |
| check DOFs and Enrichment Functions of adjacent elements to an intersection More... | |
| virtual bool | getCrackPlaneStresses (GmVector Sxy, GmMatrix ROT, GmVector &Stn) const |
| virtual bool | getCrackPlaneStrains (GmVector Exy, GmMatrix ROT, GmVector &Etn) const |
| virtual bool | vectorialToTensorial (GmVector &Av, GmMatrix &Am, unsigned sc, QString type="strain", bool mode=true) const |
Additional Inherited Members | |
Protected Attributes inherited from XfemTools | |
| GmValueAccessor * | _nodeAcc |
| Node accessor. | |
| XfemGaussAccessor * | _stressAcc |
| Sets enriched gauss accessor for stress. | |
| XfemGaussAccessor * | _strainAcc |
| Sets enriched gauss accessor for strain. | |
| GmCellAccessor * | _strengthAcc |
| Sets enriched gauss accessor for strength. | |
| int | _ruleSet |
| sets integration rule | |
| XfemOptions | _xfemOptions |
| The set of xfem options. | |
| GmSimulationData * | _SimulationData |
| Simulation data. | |
| QList< GmpFemPhysics * > | _physics |
| int | _ndim |
| The dimension of each coordinate. | |
| const GmLogCategory & | _logger |
| The logger object used to emmit messages. | |
A simple class to represent a natural fracture.
| XfemPre::XfemPre | ( | XfemMesh * | _xmesh, |
| XfemOptions & | xfemOptions, | ||
| GmSimulationData * | simulation, | ||
| QList< GmpFemPhysics * > & | physics, | ||
| const GmLogCategory & | logger | ||
| ) |
Constructor for a Xfem pre-processor used in Xfem process.
Provides functions used in pre-processor stage.
IMPORTANT: The XfemPre takes ownership of the given data vector and will destroy it on its destructor.
|
virtual |
Define elements intersections information fill Vector with information about id of intersected fractures and crack nodes contained in a element {Crack's id, first crack node, second crack node}.
fill intesection node index
Set initial enrichment.
Set the cubic Law Boolean to define whether cubic law or constant fracture permeability is used
Set the multiPhasic Boolean to define whether multiPhasic analysis is carried out
Set the nonIsoThermal Boolean to define whether nonIsoThermal analysis is carried out
Set Saturation and Relative Permeability Model
|
inline |
Returns the number of points in the fracture definition.
Returns the dimension of each fracture point. Equal to the mesh dimension
1.8.15