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... | |
void | setMinWeightMultiplier (Real min_weight_multiplier) |
Controls the minimum average weight multiplier for each element. 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) |
virtual bool | getXFEMWeights (MooseArray< Real > &weights, const Elem *elem, libMesh::QBase *qrule, const MooseArray< Point > &q_points)=0 |
virtual bool | getXFEMFaceWeights (MooseArray< Real > &weights, const Elem *elem, libMesh::QBase *qrule, const MooseArray< Point > &q_points, unsigned int side)=0 |
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... | |
Real | _min_weight_multiplier |
The minimum average multiplier applied by XFEM to the standard quadrature weights to integrate partial elements. 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 58 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 160 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 170 of file XFEM.C.
void XFEM::addStateMarkedElem | ( | unsigned int | elem_id, |
RealVectorValue & | normal | ||
) |
Definition at line 114 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 125 of file XFEM.C.
void XFEM::addStateMarkedFrag | ( | unsigned int | elem_id, |
RealVectorValue & | normal | ||
) |
Definition at line 138 of file XFEM.C.
void XFEM::buildEFAMesh | ( | ) |
Definition at line 339 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 180 of file XFEM.C.
Referenced by update().
void XFEM::clearStateMarkedElems | ( | ) |
Definition at line 152 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 447 of file XFEM.C.
Referenced by markCutEdgesByState().
bool XFEM::cutMeshWithEFA | ( | const std::vector< std::shared_ptr< NonlinearSystemBase >> & | nl, |
AuxiliarySystem & | aux | ||
) |
Definition at line 1104 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 68 of file XFEM.C.
|
inline |
Definition at line 311 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 1669 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 2292 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 1749 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 1761 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 1599 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 2118 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 1773 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 1732 of file XFEM.C.
void XFEM::getFragmentFaces | ( | const Elem * | elem, |
EFAElement3D * | CEMElem, | ||
std::vector< std::vector< Point >> & | frag_faces | ||
) | const |
Definition at line 1794 of file XFEM.C.
|
private |
Get the GeometricCutUserObject associated with an element.
elem | The element |
Definition at line 2176 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 274 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 2144 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 1631 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 252 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 264 of file XFEM.h.
|
overridevirtual |
Definition at line 1881 of file XFEM.C.
|
virtual |
Definition at line 1899 of file XFEM.C.
Xfem::XFEM_QRULE & XFEM::getXFEMQRule | ( | ) |
|
virtual |
Definition at line 1918 of file XFEM.C.
|
virtual |
Definition at line 1945 of file XFEM.C.
|
overridevirtual |
Definition at line 1852 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 920 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 901 of file XFEM.C.
Referenced by correctCrackExtensionDirection(), and markCutEdgesByState().
|
overridevirtual |
Implements XFEMInterface.
Definition at line 308 of file XFEM.C.
bool XFEM::isElemAtCrackTip | ( | const Elem * | elem | ) | const |
Definition at line 1703 of file XFEM.C.
Referenced by markCutEdgesByGeometry(), and markCutEdgesByState().
bool XFEM::isElemCut | ( | const Elem * | elem, |
XFEMCutElem *& | xfce | ||
) | const |
Definition at line 1709 of file XFEM.C.
Referenced by getXFEMFaceWeights(), getXFEMWeights(), and isElemCut().
bool XFEM::isElemCut | ( | const Elem * | elem | ) | const |
Definition at line 1725 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 1651 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 2258 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 2234 of file XFEM.C.
Referenced by loadMaterialPropertiesForElement().
bool XFEM::markCutEdgesByGeometry | ( | ) |
Definition at line 395 of file XFEM.C.
Referenced by markCuts().
bool XFEM::markCutEdgesByState | ( | Real | time | ) |
Definition at line 588 of file XFEM.C.
Referenced by markCuts().
bool XFEM::markCutFacesByGeometry | ( | ) |
Definition at line 852 of file XFEM.C.
Referenced by markCuts().
bool XFEM::markCutFacesByState | ( | ) |
Definition at line 893 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 2305 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 1840 of file XFEM.C.
Controls the minimum average weight multiplier for each element.
min_weight_multiplier | The minimum average weight multiplier applied by XFEM to the standard quadrature weights |
Definition at line 1846 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 2057 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 2095 of file XFEM.C.
Referenced by setSolution().
void XFEM::setXFEMQRule | ( | std::string & | xfem_qrule | ) |
void XFEM::storeCrackTipOriginAndDirection | ( | ) |
Definition at line 187 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 2206 of file XFEM.C.
Referenced by healMesh().
|
private |
Definition at line 2188 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 2023 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 1989 of file XFEM.C.
Referenced by cutMeshWithEFA().
|
overridevirtual |
Implements XFEMInterface.
Definition at line 263 of file XFEM.C.
|
overridevirtual |
Implements XFEMInterface.
Definition at line 226 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 391 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 382 of file XFEM.h.
Referenced by cutMeshWithEFA(), and initSolution().
|
private |
Definition at line 332 of file XFEM.h.
Referenced by markCutEdgesByState(), and setCrackGrowthMethod().
|
private |
Definition at line 337 of file XFEM.h.
Referenced by cutMeshWithEFA(), healMesh(), and isElemAtCrackTip().
|
private |
Definition at line 338 of file XFEM.h.
Referenced by cutMeshWithEFA(), and healMesh().
|
private |
Definition at line 336 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 369 of file XFEM.h.
Referenced by cutMeshWithEFA(), healMesh(), and setDebugOutputLevel().
|
private |
Definition at line 362 of file XFEM.h.
Referenced by buildEFAMesh(), cutMeshWithEFA(), getEFAElem2D(), getEFAElem3D(), markCutEdgesByGeometry(), markCutEdgesByState(), markCutFacesByGeometry(), and storeCrackTipOriginAndDirection().
|
private |
Definition at line 342 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 397 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 351 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 354 of file XFEM.h.
Referenced by addGeomMarkedElem3D(), clearGeomMarkedElems(), and markCutFacesByGeometry().
Data structure for storing the elements cut by specific geometric cutters.
Definition at line 357 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 360 of file XFEM.h.
Referenced by addGeometricCut(), and getGeometricCutID().
|
private |
Definition at line 334 of file XFEM.h.
Referenced by addGeometricCut(), cutMeshWithEFA(), getGeometricCutForElem(), and healMesh().
|
private |
Definition at line 327 of file XFEM.h.
Referenced by has_secondary_cut(), markCutEdgesByGeometry(), markCutEdgesByState(), and XFEM().
|
private |
The minimum average multiplier applied by XFEM to the standard quadrature weights to integrate partial elements.
Definition at line 373 of file XFEM.h.
Referenced by getXFEMWeights(), and setMinWeightMultiplier().
|
private |
All geometrically cut elements and their CutElemInfo before the current execution of XFEM_MARK.
Definition at line 403 of file XFEM.h.
Referenced by cutMeshWithEFA().
|
private |
Definition at line 340 of file XFEM.h.
Referenced by cutMeshWithEFA(), getXFEMDisplacedCutElemPairs(), and healMesh().
|
private |
Definition at line 339 of file XFEM.h.
Referenced by cutMeshWithEFA(), getXFEMCutElemPairs(), and healMesh().
|
private |
Definition at line 348 of file XFEM.h.
Referenced by addStateMarkedElem(), clearStateMarkedElems(), and markCutEdgesByState().
|
private |
Definition at line 346 of file XFEM.h.
Referenced by addStateMarkedElem(), clearStateMarkedElems(), and markCutEdgesByState().
|
private |
Definition at line 347 of file XFEM.h.
Referenced by addStateMarkedFrag(), clearStateMarkedElems(), and markCutEdgesByState().
|
private |
Definition at line 331 of file XFEM.h.
Referenced by markCutEdgesByState(), and setCrackGrowthMethod().
|
private |
Definition at line 329 of file XFEM.h.
Referenced by getXFEMQRule(), and setXFEMQRule().