24 #ifndef _GEMA_XFEM_ENRICHED_ELEMENTDATA_H_ 25 #define _GEMA_XFEM_ENRICHED_ELEMENTDATA_H_ 84 int numSubCrackState()
const {
return _subCrackState.
size(); }
87 int numSubCrackReactivation()
const {
return _crackReactivation.
size(); }
90 int numCrackFrontNodes()
const {
return _crackFront.
size(); }
93 int numNearestElem()
const {
return _nearestElem.
size(); }
116 void appendElemInterInfo(
GmVector Cr,
bool type =
true);
119 void virtual getElemInterInfo(
GmVector& A,
int n)
const;
122 void appendSubCrackInfo(
GmVector Cr,
bool type =
true);
128 void virtual getSubCrackInfo(
GmVector& A,
int n)
const;
131 void appendDofSet(
GmVector Cr,
bool type =
true);
134 void appendNodeDofSet(
QList<GmVector> list,
double n,
bool type =
true);
137 void appendSubCrackState(
bool fracType,
bool fracState,
bool type =
true);
140 void appendSubCrackReactivation(
bool fracType,
bool type =
true);
143 void virtual getDofSet(
GmVector& A,
int n)
const;
152 void getSubCrackReactivation(
bool& list,
int n)
const;
155 void virtual replaceDofSet(
GmVector A,
int n);
158 void replaceSubCrackState(
bool fracType,
bool fracState,
int index);
161 void replaceSubCrackReactivation(
bool fracType,
int index);
170 void deleteSubCrackState(){ _subCrackState.
clear(); }
173 void appendInteractingCraks(
GmVector Cr,
bool type =
true);
176 void virtual getInteractingCraks(
GmVector& A,
int n)
const;
179 void appendnumAddDOF(
int Cr,
bool type =
true);
182 void replaceNumAddDOF(
int Cr,
int index);
185 void virtual getnumAddDOF(
int& A,
int n)
const;
188 void deleteNumAddDOF(){ _numAddDOF.
clear(); }
191 void appendCrackFrontNodes(
int Cr,
int Cr2,
bool type =
true);
194 void replaceCrackFrontNodes(
int Cr,
int Cr2,
int index);
200 void deleteCrackFrontNodes(
int id) { _crackFront.
removeAt(
id); }
206 void virtual getNodalLevelSet(
int n,
QList<int>& nodalLevelSet)
const;
209 void replaceNodalLevelSet(
int n,
QList<int> nodalLevelSet);
212 void deleteNodalLevelSet(){ _nodalLevelSet.
clear(); }
215 void addNearestElement(
QList<int> nodalLevelSet);
218 void virtual getNearestElement(
int n,
QList<int>& nodalLevelSet)
const;
221 void addGaussLevelSet(
QList<int> gaussLevelSet);
224 void virtual getGaussLevelSet(
int n,
QList<int>& gaussLevelSet)
const;
227 void deleteGaussLevelSet(){ _gaussLevelSet.
clear(); }
233 void virtual getTopLevelSet(
int n,
QList<int>& TopLevelSet)
const;
236 void deleteTopLevelSet(){ _TopLevelSet.
clear(); }
239 void addBottomLevelSet(
QList<int> BottomLevelSet);
242 void virtual getBottomLevelSet(
int n,
QList<int>& BottomLevelSet)
const;
245 void deleteBottomLevelSet(){ _BottomLevelSet.
clear(); }
248 void addGaussLevelSetInter(
int n,
QList<
QList<int>> gaussLevelSetInter);
251 void virtual getGaussLevelSetInter(
int n,
QPair<
int,
QList<
QList<int>>>& gaussLevelSetInter)
const;
254 void deleteGaussLevelSetInter(){ _gaussLevelSetInter.
clear(); }
266 void deleteTopLevelSetInter(){ _TopLevelSetInter.
clear(); }
272 void addBottomLevelSetInter(
int n,
QList<
QList<int>> BottomLevelSetInter);
275 void virtual getBottomLevelSetInter(
int n,
QPair<
int,
QList<
QList<int>>>& BottomLevelSetInter)
const;
278 void deleteBottomLevelSetInter(){ _BottomLevelSetInter.
clear(); }
283 #if defined ENABLE_TESTS 284 void validateInternalStructure();
320 bool _changeCrackState;
int numNodedofSet() const
Return the number of nodes with specific DOF sets compared to other nodes of the same element.
Definition: xfemEnrichedElementData.h:72
GmElementDof * dofMap()
Return the map with element nodes + ghost nodes dofs.
Definition: xfemEnrichedElementData.h:107
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 regu...
Definition: xfemEnrichedElementData.cpp:107
int numSubCraks() const
Return the number of this element Intersection nodes with other cracks.
Definition: xfemEnrichedElementData.h:63
int numDofSet() const
Return the number of this element Intersection data.
Definition: xfemEnrichedElementData.h:57
void clearSubElements()
Removes all sub elements along with all their integration points.
Definition: xfemEnrichedElementData.cpp:70
int numBotDofSet() const
Return the number of nodes with specific DOF sets compared to other integration points of the same el...
Definition: xfemEnrichedElementData.h:81
const T & at(int i) const const
int numNodalLevelSet() const
Return the number of this element enrichment functions for nodes.
Definition: xfemEnrichedElementData.h:66
XfemSubElement * subElement(int index) const
Return a pointer to the given sub-element. Valid indices are from 0 to numRegularSubElements() + numF...
Definition: xfemEnrichedElementData.h:99
void clearDofMap()
clear dof map of enriched elements changed later due to intersection with another crack
Definition: xfemEnrichedElementData.h:113
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 integr...
Definition: xfemEnrichedElementData.cpp:206
int numRegularSubElements() const
Return the number of regular (non fracture) sub-elements of this element.
Definition: xfemEnrichedElementData.h:48
Basic class for a XFEM mesh. This is the basic mesh interface for xfem problems adding enrichment cap...
Definition: xfemMesh.h:49
int numElemInterInfo() const
Return the number of this element Intersection data.
Definition: xfemEnrichedElementData.h:54
virtual ~XfemEnrichedElementData()
Destructor.
Definition: xfemEnrichedElementData.cpp:60
A special integration rule for handling refined xfem elements.
Definition: xfemIntegrationRule.h:37
int numTopDofSet() const
Return the number of nodes with specific DOF sets compared to other integration points of the same el...
Definition: xfemEnrichedElementData.h:78
int numFractureSubElements() const
Return the number of fracture sub-elements of this element.
Definition: xfemEnrichedElementData.h:51
A class used to represent an enriched element subelement, defining an integration region inside the e...
Definition: xfemSubElement.h:38
int numInteractingCraks() const
Return the number of this element Intersection nodes with other cracks.
Definition: xfemEnrichedElementData.h:60
int numGaussLevelSet() const
Return the number of this element enrichment functions for gauss points.
Definition: xfemEnrichedElementData.h:69
XfemSubElement * fractureSubElement(int index) const
Return a fracture sub-element with an indexing starting from zero for the first fracture sub-element....
Definition: xfemEnrichedElementData.h:104
XfemEnrichedElementData(XfemIntegrationRule *ir)
Constructor.
Definition: xfemEnrichedElementData.cpp:47
void setDofMap(GmElementDof *dofMap)
Set the dof map for this enriched element. Should be called once. Takes ownership of the map.
Definition: xfemEnrichedElementData.h:110
XfemIntegrationRule * regularIntegrationRule() const
Return the integration rule tied to this enriched element for integration over regular (non fracture)...
Definition: xfemEnrichedElementData.h:45
void deleteDofSet()
delete element DOF information
Definition: xfemEnrichedElementData.h:164
A class used to store per element data needed only in enriched elements.
Definition: xfemEnrichedElementData.h:37
void deleteNodeDof()
delete specific node DOF information
Definition: xfemEnrichedElementData.h:167
void removeSubElement(int index)
Removes the given sub-element from this element, adjusting the set of element integration points.
Definition: xfemEnrichedElementData.cpp:155
int numGaussDofSet() const
Return the number of nodes with specific DOF sets compared to other integration points of the same el...
Definition: xfemEnrichedElementData.h:75