This is the XFEM
class.
More...
#include <XFEM.h>
Public Member Functions | |
XFEM (const InputParameters ¶ms) | |
~XFEM () | |
void | addGeometricCut (GeometricCutUserObject *geometric_cut) |
void | addStateMarkedElem (unsigned int elem_id, RealVectorValue &normal) |
void | addStateMarkedElem (unsigned int elem_id, RealVectorValue &normal, unsigned int marked_side) |
void | addStateMarkedFrag (unsigned int elem_id, RealVectorValue &normal) |
void | clearStateMarkedElems () |
void | addGeomMarkedElem2D (const unsigned int elem_id, const Xfem::GeomMarkedElemInfo2D geom_info, const unsigned int interface_id) |
Add information about a new cut to be performed on a specific 2d element. More... | |
void | addGeomMarkedElem3D (const unsigned int elem_id, const Xfem::GeomMarkedElemInfo3D geom_info, const unsigned int interface_id) |
Add information about a new cut to be performed on a specific 3d element. More... | |
void | clearGeomMarkedElems () |
Clear out the list of elements to be marked for cutting. More... | |
virtual bool | update (Real time, const std::vector< std::shared_ptr< NonlinearSystemBase >> &nl, AuxiliarySystem &aux) override |
virtual void | initSolution (const std::vector< std::shared_ptr< NonlinearSystemBase >> &nl, AuxiliarySystem &aux) override |
void | buildEFAMesh () |
bool | markCuts (Real time) |
bool | markCutEdgesByGeometry () |
bool | markCutEdgesByState (Real time) |
bool | markCutFacesByGeometry () |
bool | markCutFacesByState () |
bool | initCutIntersectionEdge (Point cut_origin, RealVectorValue cut_normal, Point &edge_p1, Point &edge_p2, Real &dist) |
bool | cutMeshWithEFA (const std::vector< std::shared_ptr< NonlinearSystemBase >> &nl, AuxiliarySystem &aux) |
bool | healMesh () |
Potentially heal the mesh by merging some of the pairs of partial elements cut by XFEM back into single elements if indicated by the cutting objects. More... | |
virtual bool | updateHeal () override |
Point | getEFANodeCoords (EFANode *CEMnode, EFAElement *CEMElem, const Elem *elem, MeshBase *displaced_mesh=nullptr) const |
Real | getPhysicalVolumeFraction (const Elem *elem) const |
Get the volume fraction of an element that is physical. More... | |
bool | isPointInsidePhysicalDomain (const Elem *elem, const Point &point) const |
Return true if the point is inside the element physical domain Note: if this element is not cut, return true too. More... | |
Real | getCutPlane (const Elem *elem, const Xfem::XFEM_CUTPLANE_QUANTITY quantity, unsigned int plane_id) const |
Get specified component of normal or origin for cut plane for a given element. More... | |
bool | isElemAtCrackTip (const Elem *elem) const |
bool | isElemCut (const Elem *elem, XFEMCutElem *&xfce) const |
bool | isElemCut (const Elem *elem) const |
void | getFragmentFaces (const Elem *elem, std::vector< std::vector< Point >> &frag_faces, bool displaced_mesh=false) const |
void | storeCrackTipOriginAndDirection () |
void | correctCrackExtensionDirection (const Elem *elem, EFAElement2D *CEMElem, EFAEdge *orig_edge, Point normal, Point crack_tip_origin, Point crack_tip_direction, Real &distance_keep, unsigned int &edge_id_keep, Point &normal_keep) |
void | getCrackTipOrigin (std::map< unsigned int, const Elem *> &elem_id_crack_tip, std::vector< Point > &crack_front_points) |
Xfem::XFEM_QRULE & | getXFEMQRule () |
void | setXFEMQRule (std::string &xfem_qrule) |
void | setCrackGrowthMethod (bool use_crack_growth_increment, Real crack_growth_increment) |
void | setDebugOutputLevel (unsigned int debug_output_level) |
Controls amount of debugging information output. More... | |
virtual bool | getXFEMWeights (MooseArray< Real > &weights, const Elem *elem, QBase *qrule, const MooseArray< Point > &q_points) override |
virtual bool | getXFEMFaceWeights (MooseArray< Real > &weights, const Elem *elem, QBase *qrule, const MooseArray< Point > &q_points, unsigned int side) override |
virtual const ElementPairLocator::ElementPairList * | getXFEMCutElemPairs (unsigned int interface_id) |
Get the list of cut element pairs corresponding to a given interface ID. More... | |
virtual const ElementPairLocator::ElementPairList * | getXFEMDisplacedCutElemPairs (unsigned int interface_id) |
Get the list of cut element pairs on the displaced mesh corresponding to a given interface ID. More... | |
virtual unsigned int | getGeometricCutID (const GeometricCutUserObject *gcu) |
Get the interface ID corresponding to a given GeometricCutUserObject. More... | |
virtual void | getXFEMIntersectionInfo (const Elem *elem, unsigned int plane_id, Point &normal, std::vector< Point > &intersectionPoints, bool displaced_mesh=false) const |
virtual void | getXFEMqRuleOnLine (std::vector< Point > &intersection_points, std::vector< Point > &quad_pts, std::vector< Real > &quad_wts) const |
virtual void | getXFEMqRuleOnSurface (std::vector< Point > &intersection_points, std::vector< Point > &quad_pts, std::vector< Real > &quad_wts) const |
bool | has_secondary_cut () |
EFAElement2D * | getEFAElem2D (const Elem *elem) |
Get the EFAElement2D object for a specified libMesh element. More... | |
EFAElement3D * | getEFAElem3D (const Elem *elem) |
Get the EFAElement3D object for a specified libMesh element. More... | |
void | getFragmentEdges (const Elem *elem, EFAElement2D *CEMElem, std::vector< std::vector< Point >> &frag_edges) const |
void | getFragmentFaces (const Elem *elem, EFAElement3D *CEMElem, std::vector< std::vector< Point >> &frag_faces) const |
const std::map< const Elem *, std::vector< Point > > & | getCrackTipOriginMap () const |
CutSubdomainID | getCutSubdomainID (const GeometricCutUserObject *gcuo, const Elem *cut_elem, const Elem *parent_elem=nullptr) const |
Determine which cut subdomain the element belongs to relative to the cut. More... | |
void | setMesh (MooseMesh *mesh) |
void | setDisplacedMesh (MooseMesh *displaced_mesh) |
void | setMaterialData (const std::vector< MaterialData * > &data) |
void | setBoundaryMaterialData (const std::vector< MaterialData * > &data) |
Public Attributes | |
const ConsoleStream | _console |
Protected Attributes | |
FEProblemBase * | _fe_problem |
std::vector< MaterialData *> | _material_data |
std::vector< MaterialData *> | _bnd_material_data |
MooseMesh * | _moose_mesh |
MooseMesh * | _moose_displaced_mesh |
MeshBase * | _mesh |
MeshBase * | _displaced_mesh |
Private Member Functions | |
void | storeSolutionForNode (const Node *node_to_store_to, const Node *node_to_store_from, SystemBase &sys, std::map< unique_id_type, std::vector< Real >> &stored_solution, const NumericVector< Number > ¤t_solution, const NumericVector< Number > &old_solution, const NumericVector< Number > &older_solution) |
Store the solution in stored_solution for a given node. More... | |
void | storeSolutionForElement (const Elem *elem_to_store_to, const Elem *elem_to_store_from, SystemBase &sys, std::map< unique_id_type, std::vector< Real >> &stored_solution, const NumericVector< Number > ¤t_solution, const NumericVector< Number > &old_solution, const NumericVector< Number > &older_solution) |
Store the solution in stored_solution for a given element. More... | |
void | setSolution (SystemBase &sys, const std::map< unique_id_type, std::vector< Real >> &stored_solution, NumericVector< Number > ¤t_solution, NumericVector< Number > &old_solution, NumericVector< Number > &older_solution) |
Set the solution for all locally-owned nodes/elements that have stored values. More... | |
void | setSolutionForDOFs (const std::vector< Real > &stored_solution, const std::vector< dof_id_type > &stored_solution_dofs, NumericVector< Number > ¤t_solution, NumericVector< Number > &old_solution, NumericVector< Number > &older_solution) |
Set the solution for a set of DOFs. More... | |
std::vector< dof_id_type > | getElementSolutionDofs (const Elem *elem, SystemBase &sys) const |
Get a vector of the dof indices for all components of all variables associated with an element. More... | |
std::vector< dof_id_type > | getNodeSolutionDofs (const Node *node, SystemBase &sys) const |
Get a vector of the dof indices for all components of all variables associated with a node. More... | |
const GeometricCutUserObject * | getGeometricCutForElem (const Elem *elem) const |
Get the GeometricCutUserObject associated with an element. More... | |
void | storeMaterialPropertiesForElementHelper (const Elem *elem, MaterialPropertyStorage &storage) |
void | storeMaterialPropertiesForElement (const Elem *parent_elem, const Elem *child_elem) |
Helper function to store the material properties of a healed element. More... | |
void | loadMaterialPropertiesForElementHelper (const Elem *elem, const Xfem::CachedMaterialProperties &cached_props, MaterialPropertyStorage &storage) const |
Load the material properties. More... | |
void | loadMaterialPropertiesForElement (const Elem *elem, const Elem *elem_from, std::unordered_map< const Elem *, Xfem::CutElemInfo > &cached_cei) const |
Helper function to store the material properties of a healed element. More... | |
const Node * | pickFirstPhysicalNode (const Elem *e, const Elem *e0) const |
Return the first node in the provided element that is found to be in the physical domain. More... | |
Private Attributes | |
bool | _has_secondary_cut |
Xfem::XFEM_QRULE | _XFEM_qrule |
bool | _use_crack_growth_increment |
Real | _crack_growth_increment |
std::vector< const GeometricCutUserObject * > | _geometric_cuts |
std::map< unique_id_type, XFEMCutElem * > | _cut_elem_map |
std::set< const Elem * > | _crack_tip_elems |
std::set< const Elem * > | _crack_tip_elems_to_be_healed |
std::map< unsigned int, ElementPairLocator::ElementPairList > | _sibling_elems |
std::map< unsigned int, ElementPairLocator::ElementPairList > | _sibling_displaced_elems |
std::map< const Elem *, std::vector< Point > > | _elem_crack_origin_direction_map |
std::map< const Elem *, RealVectorValue > | _state_marked_elems |
std::set< const Elem * > | _state_marked_frags |
std::map< const Elem *, unsigned int > | _state_marked_elem_sides |
std::map< const Elem *, std::vector< Xfem::GeomMarkedElemInfo2D > > | _geom_marked_elems_2d |
Data structure for storing information about all 2D elements to be cut by geometry. More... | |
std::map< const Elem *, std::vector< Xfem::GeomMarkedElemInfo3D > > | _geom_marked_elems_3d |
Data structure for storing information about all 3D elements to be cut by geometry. More... | |
std::map< unsigned int, std::set< unsigned int > > | _geom_marker_id_elems |
Data structure for storing the elements cut by specific geometric cutters. More... | |
std::map< const GeometricCutUserObject *, unsigned int > | _geom_marker_id_map |
Data structure for storing the GeommetricCutUserObjects and their corresponding id. More... | |
ElementFragmentAlgorithm | _efa_mesh |
unsigned int | _debug_output_level |
Controls amount of debugging output information 0: None 1: Summary 2: Details on modifications to mesh 3: Full dump of element fragment algorithm mesh. More... | |
std::map< unique_id_type, std::vector< Real > > | _cached_solution |
Data structure to store the nonlinear solution for nodes/elements affected by XFEM For each node/element, this is stored as a vector that contains all components of all applicable variables in an order defined by getElementSolutionDofs() or getNodeSolutionDofs(). More... | |
std::map< unique_id_type, std::vector< Real > > | _cached_aux_solution |
Data structure to store the auxiliary solution for nodes/elements affected by XFEM For each node/element, this is stored as a vector that contains all components of all applicable variables in an order defined by getElementSolutionDofs() or getNodeSolutionDofs(). More... | |
std::unordered_map< const Elem *, Xfem::CutElemInfo > | _geom_cut_elems |
All geometrically cut elements and their CutElemInfo during the current execution of XFEM_MARK. More... | |
std::unordered_map< const Elem *, Xfem::CutElemInfo > | _old_geom_cut_elems |
All geometrically cut elements and their CutElemInfo before the current execution of XFEM_MARK. More... | |
This is the XFEM
class.
This class implements algorithms for dynamic mesh modification in support of a phantom node approach for XFEM
|
explicit |
Definition at line 36 of file XFEM.C.
void XFEM::addGeometricCut | ( | GeometricCutUserObject * | geometric_cut | ) |
Definition at line 55 of file XFEM.C.
void XFEM::addGeomMarkedElem2D | ( | const unsigned int | elem_id, |
const Xfem::GeomMarkedElemInfo2D | geom_info, | ||
const unsigned int | interface_id | ||
) |
Add information about a new cut to be performed on a specific 2d element.
elem_id | The id of the element to be cut |
geom_info | The object containing information about the cut to be performed |
interface_id | The ID of the interface |
Definition at line 157 of file XFEM.C.
void XFEM::addGeomMarkedElem3D | ( | const unsigned int | elem_id, |
const Xfem::GeomMarkedElemInfo3D | geom_info, | ||
const unsigned int | interface_id | ||
) |
Add information about a new cut to be performed on a specific 3d element.
elem_id | The id of the element to be cut |
geom_info | The object containing information about the cut to be performed |
interface_id | The ID of the interface |
Definition at line 167 of file XFEM.C.
void XFEM::addStateMarkedElem | ( | unsigned int | elem_id, |
RealVectorValue & | normal | ||
) |
Definition at line 111 of file XFEM.C.
Referenced by addStateMarkedElem(), and addStateMarkedFrag().
void XFEM::addStateMarkedElem | ( | unsigned int | elem_id, |
RealVectorValue & | normal, | ||
unsigned int | marked_side | ||
) |
Definition at line 122 of file XFEM.C.
void XFEM::addStateMarkedFrag | ( | unsigned int | elem_id, |
RealVectorValue & | normal | ||
) |
Definition at line 135 of file XFEM.C.
void XFEM::buildEFAMesh | ( | ) |
Definition at line 336 of file XFEM.C.
Referenced by update(), and updateHeal().
void XFEM::clearGeomMarkedElems | ( | ) |
Clear out the list of elements to be marked for cutting.
Called after cutting is done.
Definition at line 177 of file XFEM.C.
Referenced by update().
void XFEM::clearStateMarkedElems | ( | ) |
Definition at line 149 of file XFEM.C.
Referenced by update().
void XFEM::correctCrackExtensionDirection | ( | const Elem * | elem, |
EFAElement2D * | CEMElem, | ||
EFAEdge * | orig_edge, | ||
Point | normal, | ||
Point | crack_tip_origin, | ||
Point | crack_tip_direction, | ||
Real & | distance_keep, | ||
unsigned int & | edge_id_keep, | ||
Point & | normal_keep | ||
) |
Definition at line 444 of file XFEM.C.
Referenced by markCutEdgesByState().
bool XFEM::cutMeshWithEFA | ( | const std::vector< std::shared_ptr< NonlinearSystemBase >> & | nl, |
AuxiliarySystem & | aux | ||
) |
Definition at line 1101 of file XFEM.C.
Referenced by update().
void XFEM::getCrackTipOrigin | ( | std::map< unsigned int, const Elem *> & | elem_id_crack_tip, |
std::vector< Point > & | crack_front_points | ||
) |
Definition at line 65 of file XFEM.C.
|
inline |
Definition at line 304 of file XFEM.h.
Real XFEM::getCutPlane | ( | const Elem * | elem, |
const Xfem::XFEM_CUTPLANE_QUANTITY | quantity, | ||
unsigned int | plane_id | ||
) | const |
Get specified component of normal or origin for cut plane for a given element.
Definition at line 1666 of file XFEM.C.
CutSubdomainID XFEM::getCutSubdomainID | ( | const GeometricCutUserObject * | gcuo, |
const Elem * | cut_elem, | ||
const Elem * | parent_elem = nullptr |
||
) | const |
Determine which cut subdomain the element belongs to relative to the cut.
gcuo | The GeometricCutUserObject for the cut |
cut_elem | The element being cut |
parent_elem | The parent element |
Definition at line 2271 of file XFEM.C.
Referenced by cutMeshWithEFA().
EFAElement2D * XFEM::getEFAElem2D | ( | const Elem * | elem | ) |
Get the EFAElement2D object for a specified libMesh element.
elem | Pointer to the libMesh element for which the object is requested |
Definition at line 1746 of file XFEM.C.
Referenced by markCutEdgesByGeometry(), and markCutEdgesByState().
EFAElement3D * XFEM::getEFAElem3D | ( | const Elem * | elem | ) |
Get the EFAElement3D object for a specified libMesh element.
elem | Pointer to the libMesh element for which the object is requested |
Definition at line 1758 of file XFEM.C.
Referenced by markCutFacesByGeometry().
Point XFEM::getEFANodeCoords | ( | EFANode * | CEMnode, |
EFAElement * | CEMElem, | ||
const Elem * | elem, | ||
MeshBase * | displaced_mesh = nullptr |
||
) | const |
Definition at line 1596 of file XFEM.C.
Referenced by correctCrackExtensionDirection(), getFragmentEdges(), getFragmentFaces(), and markCutEdgesByState().
|
private |
Get a vector of the dof indices for all components of all variables associated with an element.
elem | Element for which dof indices are found |
sys | System for which the dof indices are found |
Definition at line 2097 of file XFEM.C.
Referenced by setSolution(), and storeSolutionForElement().
void XFEM::getFragmentEdges | ( | const Elem * | elem, |
EFAElement2D * | CEMElem, | ||
std::vector< std::vector< Point >> & | frag_edges | ||
) | const |
Definition at line 1770 of file XFEM.C.
void XFEM::getFragmentFaces | ( | const Elem * | elem, |
std::vector< std::vector< Point >> & | frag_faces, | ||
bool | displaced_mesh = false |
||
) | const |
Definition at line 1729 of file XFEM.C.
void XFEM::getFragmentFaces | ( | const Elem * | elem, |
EFAElement3D * | CEMElem, | ||
std::vector< std::vector< Point >> & | frag_faces | ||
) | const |
Definition at line 1791 of file XFEM.C.
|
private |
Get the GeometricCutUserObject associated with an element.
elem | The element |
Definition at line 2155 of file XFEM.C.
Referenced by cutMeshWithEFA().
|
inlinevirtual |
Get the interface ID corresponding to a given GeometricCutUserObject.
gcu | pointer to the GeometricCutUserObject |
Definition at line 267 of file XFEM.h.
|
private |
Get a vector of the dof indices for all components of all variables associated with a node.
node | Node for which dof indices are found |
sys | System for which the dof indices are found |
Definition at line 2123 of file XFEM.C.
Referenced by setSolution(), and storeSolutionForNode().
Real XFEM::getPhysicalVolumeFraction | ( | const Elem * | elem | ) | const |
Get the volume fraction of an element that is physical.
Definition at line 1628 of file XFEM.C.
Referenced by markCutEdgesByState().
|
inlinevirtual |
Get the list of cut element pairs corresponding to a given interface ID.
interface_id | The ID of the interface |
Definition at line 245 of file XFEM.h.
|
inlinevirtual |
Get the list of cut element pairs on the displaced mesh corresponding to a given interface ID.
interface_id | The ID of the interface |
Definition at line 257 of file XFEM.h.
|
overridevirtual |
Implements XFEMInterface.
Definition at line 1860 of file XFEM.C.
|
virtual |
Definition at line 1878 of file XFEM.C.
Xfem::XFEM_QRULE & XFEM::getXFEMQRule | ( | ) |
|
virtual |
Definition at line 1897 of file XFEM.C.
|
virtual |
Definition at line 1924 of file XFEM.C.
|
overridevirtual |
Implements XFEMInterface.
Definition at line 1843 of file XFEM.C.
bool XFEM::healMesh | ( | ) |
Potentially heal the mesh by merging some of the pairs of partial elements cut by XFEM back into single elements if indicated by the cutting objects.
Definition at line 917 of file XFEM.C.
Referenced by updateHeal().
bool XFEM::initCutIntersectionEdge | ( | Point | cut_origin, |
RealVectorValue | cut_normal, | ||
Point & | edge_p1, | ||
Point & | edge_p2, | ||
Real & | dist | ||
) |
Definition at line 898 of file XFEM.C.
Referenced by correctCrackExtensionDirection(), and markCutEdgesByState().
|
overridevirtual |
Implements XFEMInterface.
Definition at line 305 of file XFEM.C.
bool XFEM::isElemAtCrackTip | ( | const Elem * | elem | ) | const |
Definition at line 1700 of file XFEM.C.
Referenced by markCutEdgesByGeometry(), and markCutEdgesByState().
bool XFEM::isElemCut | ( | const Elem * | elem, |
XFEMCutElem *& | xfce | ||
) | const |
Definition at line 1706 of file XFEM.C.
Referenced by getXFEMFaceWeights(), getXFEMWeights(), and isElemCut().
bool XFEM::isElemCut | ( | const Elem * | elem | ) | const |
Definition at line 1722 of file XFEM.C.
bool XFEM::isPointInsidePhysicalDomain | ( | const Elem * | elem, |
const Point & | point | ||
) | const |
Return true if the point is inside the element physical domain Note: if this element is not cut, return true too.
Definition at line 1648 of file XFEM.C.
Referenced by pickFirstPhysicalNode().
|
private |
Helper function to store the material properties of a healed element.
elem | The cut element to restore material properties to. |
elem_from | The element to copy material properties from. |
cached_cei | The material properties cache to use. |
Definition at line 2237 of file XFEM.C.
Referenced by cutMeshWithEFA(), and healMesh().
|
private |
Load the material properties.
props_deserialized | The material properties |
props_serialized | The serialized material properties |
This does very dirty things and writes back to MOOSE's stateful properties. It should not do this in the future.
Definition at line 2213 of file XFEM.C.
Referenced by loadMaterialPropertiesForElement().
bool XFEM::markCutEdgesByGeometry | ( | ) |
Definition at line 392 of file XFEM.C.
Referenced by markCuts().
bool XFEM::markCutEdgesByState | ( | Real | time | ) |
Definition at line 585 of file XFEM.C.
Referenced by markCuts().
bool XFEM::markCutFacesByGeometry | ( | ) |
Definition at line 849 of file XFEM.C.
Referenced by markCuts().
bool XFEM::markCutFacesByState | ( | ) |
Definition at line 890 of file XFEM.C.
Referenced by markCuts().
bool XFEM::markCuts | ( | Real | time | ) |
|
private |
Return the first node in the provided element that is found to be in the physical domain.
e | Constant pointer to the child element |
e0 | Constant pointer to the parent element whose nodes will be querried |
Definition at line 2284 of file XFEM.C.
Referenced by getCutSubdomainID().
Controls amount of debugging information output.
debug_output_level | How much information to output (see description of _debug_output_level) |
Definition at line 1837 of file XFEM.C.
|
private |
Set the solution for all locally-owned nodes/elements that have stored values.
sys | System for which the solution is set |
stored_solution | Data structure that the stored solution is obtained from |
current_solution | Current solution vector that will be set |
old_solution | Old solution vector that will be set |
older_solution | Older solution vector that will be set |
Definition at line 2036 of file XFEM.C.
Referenced by initSolution().
|
private |
Set the solution for a set of DOFs.
stored_solution | Stored solution values to set the solution to |
stored_solution_dofs | Dof indices for the entries in stored_solution |
current_solution | Current solution vector that will be set |
old_solution | Old solution vector that will be set |
older_solution | Older solution vector that will be set |
Definition at line 2074 of file XFEM.C.
Referenced by setSolution().
void XFEM::setXFEMQRule | ( | std::string & | xfem_qrule | ) |
void XFEM::storeCrackTipOriginAndDirection | ( | ) |
Definition at line 184 of file XFEM.C.
Referenced by update().
|
private |
Helper function to store the material properties of a healed element.
parent_elem | The parent element |
elem1 | The first child element |
elem2 | The second child element |
Definition at line 2185 of file XFEM.C.
Referenced by healMesh().
|
private |
Definition at line 2167 of file XFEM.C.
Referenced by storeMaterialPropertiesForElement().
|
private |
Store the solution in stored_solution for a given element.
elem_to_store_to | Element for which the solution will be stored |
elem_to_store_from | Element from which the solution to be stored is obtained |
sys | System from which the solution is stored |
stored_solution | Data structure that the stored solution is saved to |
current_solution | Current solution vector that the solution is obtained from |
old_solution | Old solution vector that the solution is obtained from |
older_solution | Older solution vector that the solution is obtained from |
Definition at line 2002 of file XFEM.C.
Referenced by cutMeshWithEFA().
|
private |
Store the solution in stored_solution for a given node.
node_to_store_to | Node for which the solution will be stored |
node_to_store_from | Node from which the solution to be stored is obtained |
sys | System from which the solution is stored |
stored_solution | Data structure that the stored solution is saved to |
current_solution | Current solution vector that the solution is obtained from |
old_solution | Old solution vector that the solution is obtained from |
older_solution | Older solution vector that the solution is obtained from |
Definition at line 1968 of file XFEM.C.
Referenced by cutMeshWithEFA().
|
overridevirtual |
Implements XFEMInterface.
Definition at line 260 of file XFEM.C.
|
overridevirtual |
Implements XFEMInterface.
Definition at line 223 of file XFEM.C.
|
private |
Data structure to store the auxiliary solution for nodes/elements affected by XFEM For each node/element, this is stored as a vector that contains all components of all applicable variables in an order defined by getElementSolutionDofs() or getNodeSolutionDofs().
This vector first contains the current solution in that order, followed by the old and older solutions, also in that same order.
Definition at line 380 of file XFEM.h.
Referenced by cutMeshWithEFA(), and initSolution().
|
private |
Data structure to store the nonlinear solution for nodes/elements affected by XFEM For each node/element, this is stored as a vector that contains all components of all applicable variables in an order defined by getElementSolutionDofs() or getNodeSolutionDofs().
This vector first contains the current solution in that order, followed by the old and older solutions, also in that same order.
Definition at line 371 of file XFEM.h.
Referenced by cutMeshWithEFA(), and initSolution().
|
private |
Definition at line 325 of file XFEM.h.
Referenced by markCutEdgesByState(), and setCrackGrowthMethod().
|
private |
Definition at line 330 of file XFEM.h.
Referenced by cutMeshWithEFA(), healMesh(), and isElemAtCrackTip().
|
private |
Definition at line 331 of file XFEM.h.
Referenced by cutMeshWithEFA(), and healMesh().
|
private |
Definition at line 329 of file XFEM.h.
Referenced by buildEFAMesh(), cutMeshWithEFA(), getCutPlane(), getFragmentFaces(), getPhysicalVolumeFraction(), getXFEMIntersectionInfo(), healMesh(), isElemCut(), isPointInsidePhysicalDomain(), storeCrackTipOriginAndDirection(), and ~XFEM().
|
private |
Controls amount of debugging output information 0: None 1: Summary 2: Details on modifications to mesh 3: Full dump of element fragment algorithm mesh.
Definition at line 362 of file XFEM.h.
Referenced by cutMeshWithEFA(), healMesh(), and setDebugOutputLevel().
|
private |
Definition at line 355 of file XFEM.h.
Referenced by buildEFAMesh(), cutMeshWithEFA(), getEFAElem2D(), getEFAElem3D(), markCutEdgesByGeometry(), markCutEdgesByState(), markCutFacesByGeometry(), and storeCrackTipOriginAndDirection().
|
private |
Definition at line 335 of file XFEM.h.
Referenced by cutMeshWithEFA(), getCrackTipOrigin(), getCrackTipOriginMap(), healMesh(), markCutEdgesByState(), and storeCrackTipOriginAndDirection().
|
private |
All geometrically cut elements and their CutElemInfo during the current execution of XFEM_MARK.
This data structure is updated everytime a new cut element is created.
Definition at line 386 of file XFEM.h.
Referenced by cutMeshWithEFA(), healMesh(), storeMaterialPropertiesForElement(), and storeMaterialPropertiesForElementHelper().
|
private |
Data structure for storing information about all 2D elements to be cut by geometry.
Definition at line 344 of file XFEM.h.
Referenced by addGeomMarkedElem2D(), clearGeomMarkedElems(), and markCutEdgesByGeometry().
|
private |
Data structure for storing information about all 3D elements to be cut by geometry.
Definition at line 347 of file XFEM.h.
Referenced by addGeomMarkedElem3D(), clearGeomMarkedElems(), and markCutFacesByGeometry().
Data structure for storing the elements cut by specific geometric cutters.
Definition at line 350 of file XFEM.h.
Referenced by addGeomMarkedElem2D(), addGeomMarkedElem3D(), cutMeshWithEFA(), getGeometricCutForElem(), and updateHeal().
|
private |
Data structure for storing the GeommetricCutUserObjects and their corresponding id.
Definition at line 353 of file XFEM.h.
Referenced by addGeometricCut(), and getGeometricCutID().
|
private |
Definition at line 327 of file XFEM.h.
Referenced by addGeometricCut(), cutMeshWithEFA(), getGeometricCutForElem(), and healMesh().
|
private |
Definition at line 320 of file XFEM.h.
Referenced by has_secondary_cut(), markCutEdgesByGeometry(), markCutEdgesByState(), and XFEM().
|
private |
All geometrically cut elements and their CutElemInfo before the current execution of XFEM_MARK.
Definition at line 392 of file XFEM.h.
Referenced by cutMeshWithEFA().
|
private |
Definition at line 333 of file XFEM.h.
Referenced by cutMeshWithEFA(), getXFEMDisplacedCutElemPairs(), and healMesh().
|
private |
Definition at line 332 of file XFEM.h.
Referenced by cutMeshWithEFA(), getXFEMCutElemPairs(), and healMesh().
|
private |
Definition at line 341 of file XFEM.h.
Referenced by addStateMarkedElem(), clearStateMarkedElems(), and markCutEdgesByState().
|
private |
Definition at line 339 of file XFEM.h.
Referenced by addStateMarkedElem(), clearStateMarkedElems(), and markCutEdgesByState().
|
private |
Definition at line 340 of file XFEM.h.
Referenced by addStateMarkedFrag(), clearStateMarkedElems(), and markCutEdgesByState().
|
private |
Definition at line 324 of file XFEM.h.
Referenced by markCutEdgesByState(), and setCrackGrowthMethod().
|
private |
Definition at line 322 of file XFEM.h.
Referenced by getXFEMQRule(), and setXFEMQRule().