XFEM Module
The XFEM module implements the extended finite element method (XFEM) in the MOOSE framework. It can be used in conjunction with any number of other physics modules to enrich the solutions to partial differential equations (PDEs) with some form of discontinuity. XFEM theory and implementation are detailed in the theory manual:
Tables provided in the Objects, Actions, and Syntax section list objects contained within the XFEM module followed by short explanations of the objects' purposes. Links on the objects' names navigate to an individual detailed page for the object.
Applications
XFEM is ideally suited to problems involving local discontinuities. Typically these types of problems fall into one of two categories: strong or weak discontinuities. Strong discontinuities are characterized by a jump in the value of a solution field across an interface, whereas weak discontinuities involve a jump in the first derivative (slope) of a solution field across an interface. Examples of the types of problems XFEM can solve include:
Cracking
Stationary cracks
Cracks that propagate in a manner directly prescribed by the user
Cracks that propagate based on the solution (stress, stress intensity factor, etc.)
Interfaces
Open (glued) or closed (inclusion) interfaces on the domain
Static and dynamic movement options
Stationary (prescribed location) interfaces
Interfaces that move in a manner directly prescribed by the user (provided level set function)
Interfaces that move based on the solution (temperature, displacement, etc.)
The locations of the interface used to define solution discontinuities can be prescribed in various ways, including by user-defined cutting planes and using level set functions. The evolution of level set functions can optionally be computed using the level set module, which is recommended for interfaces that move based on calculated growth rates rather than prescribed functions.
Software Quality
The XFEM module follows strict software quality guidelines. Please refer to XFEM Software Quality Assurance for additional information.
Objects, Actions, and Syntax
- XFEMApp
- CutSubdomainIDAuxFill the elemental variable with CutSubdomainID
- MeshCutLevelSetAuxCalculates signed distance from interface defined by InterfaceMeshCutUserObject.
- XFEMCutPlaneAuxComputes the normal and origin of a cutting plane for each partial element.
- XFEMMarkerAuxIdentify the crack tip elements.
- XFEMVolFracAuxComputes the volume fraction of the physical material in each partial element.
- XFEMApp
- CrackTipEnrichmentCutOffBCImposes the essential boundary condition , where is a constant, controllable value.
- XFEMApp
- XFEMEqualValueAtInterfaceEnforce that the solution have the same value on opposing sides of an XFEM interface.
- XFEMSingleVariableConstraintEnforce constraints on the value or flux associated with a variable at an XFEM interface.
- XFEMApp
- XFEMPressureApplies a pressure on an interface cut by XFEM.
- XFEMApp
- CrackTipEnrichmentStressDivergenceTensorsEnrich stress divergence kernel for small-strain simulations
- XFEMApp
- ADLevelSetBiMaterialRankFourCompute a RankFourTensor material property for bi-materials problem (consisting of two different materials) defined by a level set function.
- ADLevelSetBiMaterialRankTwoCompute a RankTwoTensor material property for bi-materials problem (consisting of two different materials) defined by a level set function.
- ADLevelSetBiMaterialRealCompute a Real material property for bi-materials problem (consisting of two different materials) defined by a level set function.
- ADXFEMCutSwitchingMaterialRankFourTensorSwitch the material property based on the CutSubdomainID.
- ADXFEMCutSwitchingMaterialRankThreeTensorSwitch the material property based on the CutSubdomainID.
- ADXFEMCutSwitchingMaterialRankTwoTensorSwitch the material property based on the CutSubdomainID.
- ADXFEMCutSwitchingMaterialRealSwitch the material property based on the CutSubdomainID.
- ComputeCrackTipEnrichmentSmallStrainComputes the crack tip enrichment at a point within a small strain formulation.
- LevelSetBiMaterialRankFourCompute a RankFourTensor material property for bi-materials problem (consisting of two different materials) defined by a level set function.
- LevelSetBiMaterialRankTwoCompute a RankTwoTensor material property for bi-materials problem (consisting of two different materials) defined by a level set function.
- LevelSetBiMaterialRealCompute a Real material property for bi-materials problem (consisting of two different materials) defined by a level set function.
- XFEMCutSwitchingMaterialRankFourTensorSwitch the material property based on the CutSubdomainID.
- XFEMCutSwitchingMaterialRankThreeTensorSwitch the material property based on the CutSubdomainID.
- XFEMCutSwitchingMaterialRankTwoTensorSwitch the material property based on the CutSubdomainID.
- XFEMCutSwitchingMaterialRealSwitch the material property based on the CutSubdomainID.
- XFEMApp
- XFEMCutMeshOutputOutputs XFEM MeshCut2DUserObjectBase cutter mesh in Exodus format.
- XFEMApp
- ParisLawComputes the crack extension size at all active crack front points.
- XFEMApp
- CircleCutUserObjectCreates a UserObject for circular cuts on 3D meshes for XFEM
- ComboCutUserObjectCombine multiple geometric cut userobjects.
- CrackMeshCut3DUserObjectCreates a UserObject for a mesh cutter in 3D problems
- CutElementSubdomainModifierChange element subdomain based on CutSubdomainID
- EllipseCutUserObjectCreates a UserObject for elliptical cuts on 3D meshes for XFEM
- InterfaceMeshCut2DUserObjectA userobject to cut a 2D mesh using a 1D cutter mesh.
- InterfaceMeshCut3DUserObjectA userobject to cut a 3D mesh using a 2D cutter mesh.
- LevelSetCutUserObjectXFEM mesh cut by level set function
- LineSegmentCutSetUserObjectCreates a UserObject for a line segment cut on 2D meshes for XFEM
- LineSegmentCutUserObjectCreates a UserObject for a line segment cut on 2D meshes for XFEM
- MeshCut2DFractureUserObjectXFEM mesh cutter for 2D models that defines cuts with amesh and uses fracture integrals to determine growth
- MeshCut2DFunctionUserObjectCreates a UserObject for a mesh cutter in 2D problems where crack growth is specified by functions.
- MeshCut2DRankTwoTensorNucleationNucleate a crack in MeshCut2D UO based on a scalar extracted from a RankTwoTensor
- NodeValueAtXFEMInterfaceObtain field values and gradients on the interface.
- RectangleCutUserObjectCreates a UserObject for planar cuts on 3D meshes for XFEM
- XFEMPhaseTransitionMovingInterfaceVelocitycalculate the interface velocity for a simple phase transition problem.
- XFEMRankTwoTensorMarkerUserObjectMark elements to be cut by XFEM based on a scalar extracted from a RankTwoTensor
- XFEMApp
- XFEMActionAction to input general parameters and simulation options for use in XFEM.