/
nonlocal_scalar_damage.i
131 lines (120 loc) · 2.08 KB
/
nonlocal_scalar_damage.i
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
nx = 5
ny = 5
nz = 5
elem_type = HEX8
[]
[Modules/TensorMechanics/Master]
[all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'stress_xx strain_xx'
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[axial_load]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.01
[]
[]
[Functions]
[func]
type = ParsedFunction
value = 'if(x>=0,0.5*t, t)'
[]
[]
[UserObjects]
[ele_avg]
type = RadialAverage
prop_name = local_damage
execute_on = "INITIAL timestep_end"
radius = 0.55
[]
[]
[Materials]
[local_damage_index]
type = GenericFunctionMaterial
prop_names = local_damage_index
prop_values = func
[]
[local_damage]
type = ScalarMaterialDamage
damage_index = local_damage_index
damage_index_name = local_damage
[]
[damage]
type = NonlocalDamage
average_UO = ele_avg
local_damage_model = local_damage
damage_index_name = nonlocal_damage
[]
[stress]
type = ComputeDamageStress
damage_model = damage
[]
[elasticity]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.2
youngs_modulus = 10e9
[]
[]
[Postprocessors]
[stress_xx]
type = ElementAverageValue
variable = stress_xx
[]
[strain_xx]
type = ElementAverageValue
variable = strain_xx
[]
[nonlocal_damage]
type = ElementAverageMaterialProperty
mat_prop = nonlocal_damage
[]
[local_damage]
type = ElementAverageMaterialProperty
mat_prop = local_damage
[]
[]
[Executioner]
type = Transient
l_max_its = 50
l_tol = 1e-8
nl_max_its = 20
nl_rel_tol = 1e-12
nl_abs_tol = 1e-8
dt = 0.2
dtmin = 0.1
end_time = 1
[]
[Outputs]
csv = true
[]