Inclined Crack in Infinite Plate
The following example follows from Moës et al. (1999) and Richardson et al. (2011) where the stress intensity factors for a plate with an angled center crack is subjected to a far-field load in the y-direction. The analytic solution for the stress intensity factors of the configuration shown in Figure 1 is given by
where the crack angle with respect to the x-axis is , the crack length is and the far-field load . Convergence with global mesh refinement to the analytic solution is shown for a range of crack orientations in Figure 3. The values for in blue show better convergence than shown in red for mixed mode loading of the crack-tip when . Figure 2 shows the q-function for integrating the J-integral. Incorrectly specifying the radii for the q-function will lead to inaccurate calculation of the J-integral and stress intensity factors. The q-function should exclude a few elements around the crack tip where . The q-function radii are designated in the DomainIntegral
block shown in Listing 1. This example uses a cutter mesh, shown by the white line in Figure 1, to create the initial crack using the MeshCut2DFractureUserObject
object, also shown in Listing 1.

Figure 1: Left: Inclined plate simulation domain showing the stress field in the y-direction. The mesh dimensions are and the crack length is . The white line in the center is the inclined crack created by the XFEM cutter mesh. Right: Close up of crack geometry with labels.
![Domain integral integration field (q-function) around the bottom crack-tip. The integration field is integrated over the area between r_inner and r_outer specified in the `DomainIntegral` block in [input]. The initial XFEM cut created by the `MeshCut2DFractureUserObject` is also shown.](../../../../large_media/xfem/q1_field_label.png)
Figure 2: Domain integral integration field (q-function) around the bottom crack-tip. The integration field is integrated over the area between r_inner and r_outer specified in the DomainIntegral
block in Listing 1. The initial XFEM cut created by the MeshCut2DFractureUserObject
is also shown.
Listing 1: Input file for inclined crack.
[UserObjects<<<{"href": "../../../../syntax/UserObjects/index.html"}>>>]
[cut_mesh]
type = MeshCut2DFractureUserObject<<<{"description": "XFEM mesh cutter for 2D models that defines cuts with amesh and uses fracture integrals to determine growth", "href": "../../../../source/userobjects/MeshCut2DFractureUserObject.html"}>>>
mesh_generator_name<<<{"description": "Mesh generator for the XFEM geometric cutter."}>>> = 'cut_mesh'
growth_increment<<<{"description": "Length to grow crack if k>k_critical or stress>stress_threshold"}>>> = 0.05
ki_vectorpostprocessor<<<{"description": "The name of the vectorpostprocessor that contains KI"}>>> = "II_KI_1"
kii_vectorpostprocessor<<<{"description": "The name of the vectorpostprocessor that contains KII"}>>> = "II_KII_1"
k_critical<<<{"description": "Critical fracture toughness."}>>> = 1000 # big, don't want to grow
[]
[]
[DomainIntegral<<<{"href": "../../../../syntax/DomainIntegral/index.html"}>>>]
integrals<<<{"description": "Domain integrals to calculate. Choices are: JIntegral CIntegral KFromJIntegral InteractionIntegralKI InteractionIntegralKII InteractionIntegralKIII InteractionIntegralT"}>>> = 'Jintegral InteractionIntegralKI InteractionIntegralKII'
displacements<<<{"description": "The displacements appropriate for the simulation geometry and coordinate system"}>>> = 'disp_x disp_y'
crack_front_points_provider<<<{"description": "The UserObject provides the crack front points from XFEM GeometricCutObject"}>>> = cut_mesh
2d<<<{"description": "Treat body as two-dimensional"}>>> = true
number_points_from_provider<<<{"description": "The number of crack front points, only needed if crack_front_points_provider is used."}>>> = 2
crack_direction_method<<<{"description": "Method to determine direction of crack propagation. Choices are: CrackDirectionVector CrackMouth CurvedCrackFront"}>>> = CurvedCrackFront
radius_inner<<<{"description": "Inner radius for volume integral domain"}>>> = '0.2'
radius_outer<<<{"description": "Outer radius for volume integral domain"}>>> = '0.8'
poissons_ratio<<<{"description": "Poisson's ratio"}>>> = ${poissons}
youngs_modulus<<<{"description": "Young's modulus"}>>> = ${youngs}
block<<<{"description": "The block ids where integrals are defined"}>>> = 0
incremental<<<{"description": "Flag to indicate whether an incremental or total model is being used."}>>> = false
[]
(modules/xfem/test/tests/mesh_cut_2D_fracture/inclined_center_crack.i)References
- Nicolas Moës, John Dolbow, and Ted Belytschko.
A finite element method for crack growth without remeshing.
International Journal for Numerical Methods in Engineering, 46(1):131–150, 1999.
doi:10.1002/(SICI)1097-0207(19990910)46:1<131::AID-NME726>3.0.CO;2-J.[BibTeX]
- Casey L. Richardson, Jan Hegemann, Eftychios Sifakis, Jeffrey Hellrung, and Joseph M. Teran.
An XFEM method for modeling geometrically elaborate crack propagation in brittle materials.
International Journal for Numerical Methods in Engineering, 88(10):1042–1065, 2011.
doi:10.1002/nme.3211.[BibTeX]