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.

Left: Inclined plate simulation domain showing the stress field in the y-direction.  The mesh dimensions are $W=H=40$ and the crack length is $2a=2$.  The white line in the center is the inclined crack created by the XFEM cutter mesh.  Right: Close up of crack geometry with labels.

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.

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.

Convergence plot for KI and KII for mesh size ranging from h=0.2, 0.1, 0.05.  The results shown [!ref](stress) and [!ref](qintegral) are for h=0.1.

Figure 3: Convergence plot for KI and KII for mesh size ranging from h=0.2, 0.1, 0.05. The results shown Figure 1 and Figure 2 are for h=0.1.

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

  1. 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]
  2. 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]