-
Notifications
You must be signed in to change notification settings - Fork 1k
/
tests
322 lines (315 loc) · 16.5 KB
/
tests
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
[Tests]
design = "C0TimoshenkoBeam.md"
issues = "#10313"
[./dyn_euler]
type = 'Exodiff'
input = 'dyn_euler_small.i'
exodiff = 'dyn_euler_small_out.e'
requirement = "The mechanics system shall correctly predict the natural frequencies"
" of an Euler-Bernoulli beam modeled using beam elements with"
" consistent mass/inertia."
[../]
[./dyn_timoshenko]
type = 'Exodiff'
input = 'dyn_timoshenko_small.i'
exodiff = 'dyn_timoshenko_small_out.e'
requirement = "The mechanics system shall correctly predict the natural frequencies"
" of a Timoshenko beam modeled using beam elements with consistent"
" mass/inertia."
[../]
[./dyn_euler_rayleigh_hht]
type = 'Exodiff'
input = 'dyn_euler_small_rayleigh_hht.i'
exodiff = 'dyn_euler_small_rayleigh_hht_out.e'
requirement = "The mechanics system shall correctly predict the natural frequencies"
" of an Euler-Bernoulli beam modeled using beam elements in the"
" presence of Rayleigh damping and numerical damping introduced"
" by Hilber-Hughes-Taylor (HHT) time integration."
rel_err = 7e-6
[../]
[./dyn_euler_rayleigh_hht_ti]
type = 'Exodiff'
input = 'dyn_euler_small_rayleigh_hht_ti.i'
exodiff = 'dyn_euler_small_rayleigh_hht_out.e'
rel_err = 1e-5
allow_warnings = True
requirement = "The mechanics system shall correctly predict the natural frequencies"
" of an Euler-Bernoulli beam modeled using beam elements in the"
" presence of Rayleigh damping and numerical damping introduced"
" by Hilber-Hughes-Taylor (HHT) time integration when using the"
" velocity and acceleration computed using the Newmark-Beta time integrator."
issues = "#12185"
prereq = 'dyn_euler_rayleigh_hht_action'
[../]
[./dyn_euler_added_mass]
type = 'Exodiff'
input = 'dyn_euler_small_added_mass.i'
exodiff = 'dyn_euler_small_added_mass_out.e'
superlu = true
requirement = "The mechanics system shall correctly predict the natural frequencies"
" of a massless Euler-Bernoulli beam modeled using beam elements"
" with a nodal masses placed at the ends."
petsc_version = '>=3.8'
[../]
[./dyn_euler_added_mass_file]
type = 'Exodiff'
input = 'dyn_euler_small_added_mass_file.i'
cli_args = "NodalKernels/x_inertial/nodal_mass_file=nodal_mass.csv"
exodiff = 'dyn_euler_small_added_mass_out.e'
prereq = 'dyn_euler_added_mass'
superlu = true
requirement = "The mechanics system shall correctly predict the natural frequencies"
" of a massless Euler-Bernoulli beam modeled using beam elements"
" with added nodal masses when the location and values of the"
" masses are provided using a csv file."
[../]
[./dyn_euler_added_mass_gravity]
type = 'Exodiff'
input = 'dyn_euler_small_added_mass_gravity.i'
cli_args = "NodalKernels/force_y2/mass=0.01899772"
exodiff = 'dyn_euler_small_added_mass_out.e'
prereq = 'dyn_euler_added_mass_file'
superlu = true
requirement = "The mechanics system shall correctly model the response of a beam"
" modeled using beam elements when gravitational force"
" (proportional to nodal mass) is applied to the beam."
[../]
[./dyn_euler_added_mass_gravity_2]
type = 'Exodiff'
input = 'dyn_euler_small_added_mass_gravity.i'
cli_args = "NodalKernels/force_y2/nodal_mass_file=nodal_mass.csv"
exodiff = 'dyn_euler_small_added_mass_out.e'
prereq = 'dyn_euler_added_mass_gravity'
superlu = true
requirement = "The mechanics system shall correctly model the response of a beam"
" modeled using beam elements under gravitational force when"
" the nodal mass distribution is provided using a csv file."
[../]
[./add_dynamic_variables_action]
type = 'Exodiff'
input = 'dyn_euler_small_added_mass_dyn_variable_action.i'
exodiff = 'dyn_euler_small_added_mass_out.e'
prereq = 'dyn_euler_added_mass_gravity_2'
superlu = true
requirement = "The LineElementAction shall create the translational and rotational"
" velocities and accelerations required for a dynamic simulation"
" using beam elements."
design = "C0TimoshenkoBeam.md LineElementMaster/index.md"
[../]
[./dyn_euler_added_mass_inertia_damping]
type = 'Exodiff'
input = 'dyn_euler_small_added_mass_inertia_damping.i'
exodiff = 'dyn_euler_small_added_mass_inertia_damping_out.e'
superlu = true
requirement = "The mechanics system shall correctly model the response of a beam"
" modeled using beam elements in the presence of nodal mass,"
" nodal inertia and Rayleigh damping."
petsc_version = '>=3.8'
[../]
[./dyn_euler_added_mass_inertia_damping_ti]
type = 'Exodiff'
input = 'dyn_euler_small_added_mass_inertia_damping_ti.i'
exodiff = 'dyn_euler_small_added_mass_inertia_damping_out.e'
superlu = true
requirement = "The mechanics system shall correctly model the response of a beam"
" modeled using beam elements in the presence of nodal mass,"
" nodal inertia and Rayleigh damping when using the velocity and"
" accelerations computed by the Newmark-Beta time integrator."
issues = "#12185"
prereq = "dyn_euler_added_mass_inertia_damping_action"
[../]
[./dyn_euler_rayleigh_hht_action]
type = 'Exodiff'
input = 'dyn_euler_small_rayleigh_hht_action.i'
exodiff = 'dyn_euler_small_rayleigh_hht_out.e'
prereq = 'dyn_euler_rayleigh_hht'
requirement = "The LineElementAction shall correctly create the input blocks"
" required for a dynamic beam simulation using beam elements and"
" a consistent mass/inertia matrix in the presence of Rayleigh"
" damping and numerical damping in the form of Hilber-Hughes-Taylor (HHT) time integration."
design = "C0TimoshenkoBeam.md LineElementMaster/index.md"
rel_err = 7e-6
[../]
[./dyn_euler_added_mass_inertia_damping_action]
type = 'Exodiff'
input = 'dyn_euler_small_added_mass_inertia_damping_action.i'
exodiff = 'dyn_euler_small_added_mass_inertia_damping_out.e'
prereq = 'dyn_euler_added_mass_inertia_damping'
superlu = true
requirement = "The LineElmentAction shall correctly create the input blocks"
" required for a dynamic beam simulation using beam elements and nodal mass/inertia"
" matrix in the presence of Rayleigh damping and numerical damping"
" in the form of Hilber-Hughes-Taylor (HHT) time integration."
design = "C0TimoshenkoBeam.md LineElementMaster/index.md"
[../]
[./dyn_euler_added_mass2]
type = 'CSVDiff'
input = 'dyn_euler_small_added_mass2.i'
csvdiff = 'dyn_euler_small_added_mass2_out.csv'
requirement = "The mechanics system shall correctly predict the natural frequency"
" of a cantilever beam modeled using beam elements with a mass at the free end."
[../]
[./error_1]
type = 'RunException'
input = 'dyn_euler_small.i'
cli_args = "Kernels/inertial_force_x/rotations='rot_x rot_y' Outputs/csv=false Outputs/exodus=false"
expect_err = "InertialForceBeam: The number of variables supplied in 'displacements' and 'rotations' must match."
requirement = "The InertialForceBeam class shall produce an error if the number of"
" variables provided for rotations differs from that provided for displacements."
[../]
[./error_2]
type = 'RunException'
input = 'dyn_euler_small_added_mass_inertia_damping.i'
cli_args = "NodalKernels/rot_x_inertial/rotational_velocities='rot_vel_x rot_vel_y' Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalRotationalInertia: rotational_velocities and rotational_accelerations should be same size as rotations."
superlu = true
requirement = "The NodalRotatioanlInertia class shall produce an error if"
" the number of rotational velocities and accelerations provided"
" as input differ from the number of rotations."
[../]
[./error_3]
type = 'RunException'
input = 'dyn_euler_small_added_mass_inertia_damping.i'
cli_args = "NodalKernels/rot_x_inertial/Ixx=1 NodalKernels/rot_x_inertial/Iyy=1 NodalKernels/rot_x_inertial/Izz=1 NodalKernels/rot_x_inertial/Ixy=1 Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalRotationalInertia: The moment of inertia tensor should be positive definite."
superlu = true
requirement = "The NodalRotationalInertia class shall produce an error if the"
" user provided nodal inertia is not positive definite."
[../]
[./error_4]
type = 'RunException'
input = 'dyn_euler_small_added_mass_inertia_damping.i'
cli_args = "NodalKernels/rot_x_inertial/x_orientation='2 0 0' NodalKernels/rot_x_inertial/y_orientation='0 1 0' Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalRotationalInertia: x_orientation and y_orientation must be unit vectors."
superlu = true
requirement = "The NodalRotatioanlInertia class shall produce an error if the"
" user provided x and y orientations are not unit vectors."
[../]
[./error_5]
type = 'RunException'
input = 'dyn_euler_small_added_mass_inertia_damping.i'
cli_args = "NodalKernels/rot_x_inertial/x_orientation='1 0 0' NodalKernels/rot_x_inertial/y_orientation='1 0 0' Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalRotationalInertia: x_orientation and y_orientation should be perpendicular to each other."
superlu = true
requirement = "The NodalRotatioanlInertia class shall produce an error if the"
" user provided x and y orientations are not perpendicular to each"
" other."
[../]
[./error_6]
type = 'RunException'
input = 'dyn_euler_small_added_mass_inertia_damping.i'
cli_args = "NodalKernels/rot_x_inertial/x_orientation='1 0 0' Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalRotationalInertia: Both x_orientation and y_orientation should be provided if x_orientation or y_orientation is different from global x or y direction, respectively."
superlu = trues
requirement = "The NodalRotatioanlInertia class shall produce an error if only"
" x or y orientation is provided as input by the user."
[../]
[./error_7]
type = 'RunException'
input = 'dyn_euler_small.i'
cli_args = "Kernels/inertial_force_x/accelerations='accel_x accel_y' Outputs/csv=false Outputs/exodus=false"
expect_err = "InertialForceBeam: The number of variables supplied in 'velocities', 'accelerations', 'rotational_velocities' and 'rotational_accelerations' must match the number of displacement variables."
requirement = "The InertialForceBeam class shall produce an error if the"
" number of translational and rotational velocities and accelerations"
" provided as input differ from the number of displacement variables."
[../]
[./error_8]
type = 'RunException'
input = 'dyn_euler_small_added_mass_file.i'
cli_args = "NodalKernels/x_inertial/nodal_mass_file=nodal_mass.csv NodalKernels/x_inertial/mass=2.0 Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalTranslationalInertia: Please provide either mass or nodal_mass_file as input, not both."
superlu = true
requirement = "The NodalTranslationalInertia class shall produce an error if"
" nodal mass is provided as input both as a constant value"
" and also using a csv file."
[../]
[./error_9]
type = 'RunException'
input = 'dyn_euler_small_added_mass_file.i'
cli_args = "Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalTranslationalInertia: Please provide either mass or nodal_mass_file as input."
superlu = true
requirement = "The NodalTranslationalInertia class shall produce an error if"
" nodal mass is not provided as input either as a constant value"
" or using a csv file."
[../]
[./error_10]
type = 'RunException'
input = 'dyn_euler_small_added_mass_file.i'
cli_args = "NodalKernels/x_inertial/nodal_mass_file=nodal_mass_col_test.csv Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalTranslationalInertia: The number of columns in"
superlu = true
requirement = "The NodalTranslationalInertia class shall produce an error"
" if the number of columns in the nodal mass file is not 4."
[../]
[./error_11]
type = 'RunException'
input = 'dyn_euler_small_added_mass_file.i'
cli_args = "NodalKernels/x_inertial/nodal_mass_file=nodal_mass.csv NodalKernels/x_inertial/boundary='right' Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalTranslationalInertia: Out of 2 nodal positions in"
superlu = true
requirement = "The NodalTranslationalInertia class shall produce an error"
" if all the nodal positions provided in the nodal mass file"
" cannot be found in the given boundary or mesh block."
[../]
[./error_12]
type = 'RunException'
input = 'dyn_euler_small_added_mass_gravity.i'
cli_args = "NodalKernels/force_y2/nodal_mass_file=nodal_mass.csv NodalKernels/force_y2/mass=2.0 Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalGravity: Please provide either mass or nodal_mass_file as input, not both."
superlu = true
requirement = "The NodalGravity class shall produce an error if"
" nodal mass is provided as input both as a constant value"
" and also using a csv file."
[../]
[./error_13]
type = 'RunException'
input = 'dyn_euler_small_added_mass_gravity.i'
cli_args = "Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalGravity: Please provide either mass or nodal_mass_file as input."
superlu = true
requirement = "The NodalGravity class shall produce an error if"
" nodal mass is not provided as input either as a constant value"
" or using a csv file."
[../]
[./error_14]
type = 'RunException'
input = 'dyn_euler_small_added_mass_gravity.i'
cli_args = "NodalKernels/force_y2/nodal_mass_file=nodal_mass_col_test.csv Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalGravity: The number of columns in"
superlu = true
requirement = "The NodalGravity class shall produce an error"
" if the number of columns in the nodal mass file is not 4."
[../]
[./error_15]
type = 'RunException'
input = 'dyn_euler_small_added_mass_gravity.i'
cli_args = "NodalKernels/force_y2/nodal_mass_file=nodal_mass.csv NodalKernels/force_y2/boundary='right' Outputs/csv=false Outputs/exodus=false"
expect_err = "NodalGravity: Out of 2 nodal positions in"
superlu = true
requirement = "The NodalGravity class shall produce an error"
" if all the nodal positions provided in the nodal mass file"
" cannot be found in the given boundary or mesh block."
[../]
[./error_16]
type = 'RunException'
input = 'dyn_euler_small_rayleigh_hht_action.i'
cli_args = 'Modules/TensorMechanics/LineElementMaster/all/add_dynamic_variables=false Outputs/csv=false Outputs/exodus=false'
expect_err = "LineElementAction: When using 'dynamic_consistent_inertia', 'dynamic_nodal_rotational_inertia' or '_dynamic_nodal_translational_inertia', the velocity and acceleration AuxVariables and the corresponding AuxKernels are automatically set by"
requirement = "The LineElementAction class shall produce an error if `add_dynamic_variables`"
" option is set to false while `dynamic_consistent_inertia`,"
" `dynamic_nodal_rotational_inertia` or `dynamic_nodal_translational_inertia`"
" options are set to true."
design = "C0TimoshenkoBeam.md LineElementMaster/index.md"
[../]
[./error_17]
type = 'RunException'
input = 'dyn_euler_small_added_mass_inertia_damping_action.i'
cli_args = 'Modules/TensorMechanics/LineElementMaster/all/nodal_mass_file=nodal_mass.csv Outputs/csv=false Outputs/exodus=false'
expect_err = "NodalTranslationalInertia: Please provide either mass or nodal_mass_file as input, not both"
superlu = true
requirement = "The NodalTranslationalInertia class shall produce an error if"
" nodal mass is provided as input both as constant value and"
" also using a csv file."
[../]
[]