List of tutorials
All tutorials are written assuming that you are reasonably familiar with MOOSE. If you find most of the tutorials difficult to follow, please refer to the official MOOSE website for learning resources.
Tutorial 3: Mode-II crack propagation
In this tutorial, we will set up the model for Mode-II crack propagation. This problem is almost identical to Tutorial 2 except for its mesh and boundary conditions.
Mesh generators
Since we can no longer utilize half symmetry in the Mode-II problem, we will have to mesh the full computational domain. There are many ways of generating the mesh. Here, we demonstrate the use of first-class MeshGenerator
s to generate the mesh:
[Mesh]
[top_half]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 15
ymin = 0
ymax = 0.5
boundary_id_offset = 0
boundary_name_prefix = top_half
[]
[top_stitch]
type = BoundingBoxNodeSetGenerator
input = top_half
new_boundary = top_stitch
bottom_left = '0.5 0 0'
top_right = '1 0 0'
[]
[bottom_half]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 15
ymin = -0.5
ymax = 0
boundary_id_offset = 5
boundary_name_prefix = bottom_half
[]
[bottom_stitch]
type = BoundingBoxNodeSetGenerator
input = bottom_half
new_boundary = bottom_stitch
bottom_left = '0.5 0 0'
top_right = '1 0 0'
[]
[stitch]
type = StitchedMeshGenerator
inputs = 'top_stitch bottom_stitch'
stitch_boundaries_pairs = 'top_stitch bottom_stitch'
[]
construct_side_list_from_node_list = true
[]
(tutorials/mode2_brittle_fracture/elasticity.i)First, the top half of the domain is meshed using the GeneratedMeshGenerator
, and a node set named "top_stitch" is identified using the BoundingBoxNodeSetGenerator
. Next, similarly, the bottom half of the domain is meshed and a node set named "bottom_stitch" is identified. Finally, the top half and the bottom half meshes are "stitched" together by merging the "top_stitch" and the "bottom_stitch" node sets using the StitchedMeshGenerator
. The parameter construct_side_list_from_node_list
is set to true to construct side sets from all of the node sets.
elasticity.i
: The displacement subproblem
The displacement subproblem is almost identical to that in the previous tutorial, except for the boundary conditions Figure 1:
[BCs]
[xdisp]
type = FunctionDirichletBC
variable = 'disp_x'
boundary = 'top_half_top'
function = 't'
preset = false
[]
[yfix]
type = DirichletBC
variable = 'disp_y'
boundary = 'top_half_top bottom_half_bottom'
value = 0
[]
[xfix]
type = DirichletBC
variable = 'disp_x'
boundary = 'bottom_half_bottom'
value = 0
[]
[]
(tutorials/mode2_brittle_fracture/elasticity.i)The bottom boundary of the bottom half of the mesh is fixed in both x- and y- directions, while the top boundary of the top half of the mesh is subject to x-displacement with roller support.