![]() |
Xfem
The Xfem Plugin
|
A class used to store per element data needed only in enriched elements. More...
#include <xfemEnrichedElementData.h>

Public Member Functions | |
| XfemEnrichedElementData (XfemIntegrationRule *ir) | |
| Constructor. More... | |
| virtual | ~XfemEnrichedElementData () |
| Destructor. | |
| XfemIntegrationRule * | regularIntegrationRule () const |
| Return the integration rule tied to this enriched element for integration over regular (non fracture) sub-elements. | |
| int | numRegularSubElements () const |
| Return the number of regular (non fracture) sub-elements of this element. | |
| int | numFractureSubElements () const |
| Return the number of fracture sub-elements of this element. | |
| int | numElemInterInfo () const |
| Return the number of this element Intersection data. | |
| int | numDofSet () const |
| Return the number of this element Intersection data. | |
| int | numInteractingCraks () const |
| Return the number of this element Intersection nodes with other cracks. | |
| int | numSubCraks () const |
| Return the number of this element Intersection nodes with other cracks. | |
| int | numNodalLevelSet () const |
| Return the number of this element enrichment functions for nodes. | |
| int | numGaussLevelSet () const |
| Return the number of this element enrichment functions for gauss points. | |
| int | numNodedofSet () const |
| Return the number of nodes with specific DOF sets compared to other nodes of the same element. | |
| int | numGaussDofSet () const |
| Return the number of nodes with specific DOF sets compared to other integration points of the same element. | |
| int | numTopDofSet () const |
| Return the number of nodes with specific DOF sets compared to other integration points of the same element. | |
| int | numBotDofSet () const |
| Return the number of nodes with specific DOF sets compared to other integration points of the same element. | |
| int | numSubCrackState () const |
| int | numSubCrackReactivation () const |
| int | numCrackFrontNodes () const |
| int | numNearestElem () const |
| XfemSubElement * | subElement (int index) const |
| Return a pointer to the given sub-element. Valid indices are from 0 to numRegularSubElements() + numFractureSubElements() - 1, remembering that fracture sub-elements are positioned as the last sub-elements. | |
| XfemSubElement * | fractureSubElement (int index) const |
| Return a fracture sub-element with an indexing starting from zero for the first fracture sub-element. Equivalent to calling subElement(index + numRegularSubElements()) | |
| GmElementDof * | dofMap () |
| Return the map with element nodes + ghost nodes dofs. | |
| void | setDofMap (GmElementDof *dofMap) |
| Set the dof map for this enriched element. Should be called once. Takes ownership of the map. | |
| void | clearDofMap () |
| clear dof map of enriched elements changed later due to intersection with another crack | |
| void | appendElemInterInfo (GmVector Cr, bool type=true) |
| virtual void | getElemInterInfo (GmVector &A, int n) const |
| void | appendSubCrackInfo (GmVector Cr, bool type=true) |
| void | insertSubCrackInfo (int path, GmVector A, GmVector B) |
| virtual void | getSubCrackInfo (GmVector &A, int n) const |
| void | appendDofSet (GmVector Cr, bool type=true) |
| void | appendNodeDofSet (QList< GmVector > list, double n, bool type=true) |
| void | appendSubCrackState (bool fracType, bool fracState, bool type=true) |
| void | appendSubCrackReactivation (bool fracType, bool type=true) |
| virtual void | getDofSet (GmVector &A, int n) const |
| void | getNodeDofSet (QList< QPair< double, QList< GmVector >>> &list, int n) const |
| void | getSubCrackState (QList< QPair< bool, bool >> &list, int n) const |
| void | getSubCrackReactivation (bool &list, int n) const |
| virtual void | replaceDofSet (GmVector A, int n) |
| void | replaceSubCrackState (bool fracType, bool fracState, int index) |
| void | replaceSubCrackReactivation (bool fracType, int index) |
| void | deleteDofSet () |
| delete element DOF information | |
| void | deleteNodeDof () |
| delete specific node DOF information | |
| void | deleteSubCrackState () |
| void | appendInteractingCraks (GmVector Cr, bool type=true) |
| virtual void | getInteractingCraks (GmVector &A, int n) const |
| void | appendnumAddDOF (int Cr, bool type=true) |
| void | replaceNumAddDOF (int Cr, int index) |
| virtual void | getnumAddDOF (int &A, int n) const |
| void | deleteNumAddDOF () |
| void | appendCrackFrontNodes (int Cr, int Cr2, bool type=true) |
| void | replaceCrackFrontNodes (int Cr, int Cr2, int index) |
| virtual void | getCrackFrontNodes (QPair< int, int > &crack, int n) const |
| void | deleteCrackFrontNodes (int id) |
| void | addNodalLevelSet (QList< QList< int >> nodalLevelSet) |
| virtual void | getNodalLevelSet (int n, QList< int > &nodalLevelSet) const |
| void | replaceNodalLevelSet (int n, QList< int > nodalLevelSet) |
| void | deleteNodalLevelSet () |
| void | addNearestElement (QList< int > nodalLevelSet) |
| virtual void | getNearestElement (int n, QList< int > &nodalLevelSet) const |
| void | addGaussLevelSet (QList< int > gaussLevelSet) |
| virtual void | getGaussLevelSet (int n, QList< int > &gaussLevelSet) const |
| void | deleteGaussLevelSet () |
| void | addTopLevelSet (QList< int > TopLevelSet) |
| virtual void | getTopLevelSet (int n, QList< int > &TopLevelSet) const |
| void | deleteTopLevelSet () |
| void | addBottomLevelSet (QList< int > BottomLevelSet) |
| virtual void | getBottomLevelSet (int n, QList< int > &BottomLevelSet) const |
| void | deleteBottomLevelSet () |
| void | addGaussLevelSetInter (int n, QList< QList< int >> gaussLevelSetInter) |
| virtual void | getGaussLevelSetInter (int n, QPair< int, QList< QList< int >>> &gaussLevelSetInter) const |
| void | deleteGaussLevelSetInter () |
| void | replaceGaussLevelSetInter (int n, QPair< int, QList< QList< int >>> gaussLevelSetInter) |
| void | addTopLevelSetInter (int n, QList< QList< int >> TopLevelSetInter) |
| virtual void | getTopLevelSetInter (int n, QPair< int, QList< QList< int >>> &TopLevelSetInter) const |
| void | deleteTopLevelSetInter () |
| void | replaceTopLevelSetInter (int n, QPair< int, QList< QList< int >>> TopLevelSetInter) |
| void | addBottomLevelSetInter (int n, QList< QList< int >> BottomLevelSetInter) |
| virtual void | getBottomLevelSetInter (int n, QPair< int, QList< QList< int >>> &BottomLevelSetInter) const |
| void | deleteBottomLevelSetInter () |
| void | replaceBottomLevelSetInter (int n, QPair< int, QList< QList< int >>> BottomLevelSetInter) |
Private Member Functions | |
| void | clearSubElements () |
| Removes all sub elements along with all their integration points. | |
| int | addSubElement (GmCellType type, XfemSubElement *se, const GmIntegrationRule *seIr) |
| Adds the given sub-element to this element, adjusting the set of element integration points (for regular sub-elements). More... | |
| void | removeSubElement (int index) |
| Removes the given sub-element from this element, adjusting the set of element integration points. More... | |
| void | updateSubElement (GmCellType type, XfemSubElement *se, const GmIntegrationRule *seIr, const GmMatrix &seNaturalCoords) |
| Updates the given sub-element node coordinates, adjusting the position of the relevant element integration points (for regular sub-elements) More... | |
Private Attributes | |
| XfemIntegrationRule * | _ir |
| QList< XfemSubElement * > | _subElements |
| int | _nRegular |
| GmElementDof * | _dofMap |
| QList< GmVector > | _elemInterInfo |
| QList< GmVector > | _subCrackInfo |
| QList< GmVector > | _interactingCraks |
| QList< int > | _numAddDOF |
| QList< GmVector > | _dofSet |
| QList< QPair< double, QList< GmVector > > > | _NodedofSet |
| QList< QList< int > > | _nodalLevelSet |
| QList< QList< int > > | _gaussLevelSet |
| QList< QList< int > > | _TopLevelSet |
| QList< QList< int > > | _BottomLevelSet |
| QList< QPair< int, QList< QList< int > > > > | _gaussLevelSetInter |
| QList< QPair< int, QList< QList< int > > > > | _TopLevelSetInter |
| QList< QPair< int, QList< QList< int > > > > | _BottomLevelSetInter |
| QList< QPair< bool, bool > > | _subCrackState |
| bool | _changeCrackState |
| QList< bool > | _crackReactivation |
| QList< QPair< int, int > > | _crackFront |
| QList< QList< int > > | _nearestElem |
Friends | |
| class | XfemMesh |
A class used to store per element data needed only in enriched elements.
| XfemEnrichedElementData::XfemEnrichedElementData | ( | XfemIntegrationRule * | ir | ) |
Constructor.
Gets as parameter the elements new integration rule. Takes ownership of the rule. After construction, subelements should be added by calls to addSubElement().
|
private |
Adds the given sub-element to this element, adjusting the set of element integration points (for regular sub-elements).
If the given sub-element is regular and the set contains fracture sub-elements, the new sub-element will be inserted at the end of the list of regular sub-elements but before any fracture sub-elements, keeping the list with all fracture sub-elements at the end.
This function does not perform any test to guarantee that the given sub-element does not have any intersection with previously added elements
IMPORTANT: This function is private since it should be called by XfemMesh code only. Users should use XfemMesh::addSubElement() instead.
| type | The current element type |
| se | The subelement to be added |
| seIr | The standard integration rule that should be applied to determine the subelement integration points. |
|
private |
Removes the given sub-element from this element, adjusting the set of element integration points.
IMPORTANT: This function is private since it should be called by XfemMesh code only. Users should use XfemMesh::removeSubElement() instead.
| index | The subelement index inside the sub-element list |
|
private |
Updates the given sub-element node coordinates, adjusting the position of the relevant element integration points (for regular sub-elements)
This function does not perform any test to guarantee that the given sub-element does not have any intersection with previously added elements
IMPORTANT: This function is private since it should be called by XfemMesh code only. Users should use XfemMesh::updateSubElementCoordinates() instead.
| type | The current element type |
| se | The subelement to be changed |
| seIr | The standard integration rule that should be applied to determine the subelement integration points. IMPORTANT: The given rule MUST be the same used when the subelement was added in a call to addSubElement() |
| seNaturalCoords | The subelement new node coordinates, given in the father element natural coordinate system. The matrix is organized as a 'd x n' matrix where d is the number of natural coordinates for the father element and n the number of nodes for the sub element type. See XfemSubElement() documentation for an example. |
1.8.15