From c3444873a371027f918200eb78821d87ef5405ff Mon Sep 17 00:00:00 2001 From: Swetha Veeraraghavan Date: Tue, 4 Jun 2019 16:36:34 -0600 Subject: [PATCH] Sqa reqs for BCs, dirackernels, images, indicators, interfaces, markers and materials (#55 #59 and #173). --- test/tests/bcs/nonreflecting_bc/tests | 12 ++++++++ test/tests/bcs/seismic_displacement/tests | 6 ++++ test/tests/bcs/seismic_force/tests | 20 +++++++++++++ .../dirackernels/function_point_force/tests | 14 +++++++++ test/tests/dirackernels/seismic_source/tests | 30 +++++++++++++++++++ test/tests/images/tests | 4 +++ .../interface_and_shear_wave_indicators/tests | 4 +++ .../indicators/interface_indicator/tests | 4 +++ .../indicators/shear_wave_indicator/tests | 4 +++ test/tests/interfaces/layered_material/tests | 6 ++++ test/tests/markers/minimum_element_size/tests | 4 +++ test/tests/materials/fp_isolator/tests | 12 ++++++++ test/tests/materials/fv_damper/tests | 12 ++++++++ test/tests/materials/isoil/tests | 24 +++++++++++++++ .../tests | 10 +++++++ test/tests/materials/linear_soil/tests | 8 +++++ test/tests/materials/linear_spring/tests | 4 +++ test/tests/materials/lr_isolator/tests | 18 +++++++++++ 18 files changed, 196 insertions(+) diff --git a/test/tests/bcs/nonreflecting_bc/tests b/test/tests/bcs/nonreflecting_bc/tests index 544a6ea910..7b8bf2653b 100755 --- a/test/tests/bcs/nonreflecting_bc/tests +++ b/test/tests/bcs/nonreflecting_bc/tests @@ -1,4 +1,6 @@ [tests] + design = "NonReflectingBC.md" + issues = "#12" [./non_reflecting_bc] type = 'Exodiff' input = 'non_reflecting_bc_test.i' @@ -6,29 +8,39 @@ compiler = 'GCC CLANG' max_parallel = 1 skip = "regold after moose PR" + + requirement = "The NonReflectingBC class shall accurately model absorption of shear and compressive waves that incident on the boundary." [../] [./displacements_error] type = RunException input = 'non_reflecting_bc_error.i' cli_args = "BCs/test/displacements=disp_x" expect_err = "The number of variables listed in the \'displacements\' parameter in \"test\" block must match the mesh dimension." + + requirement = "The NonReflectingBC class shall produce an error if the number of the displacement variables is not the same as the mesh dimension." [../] [./velocities_error] type = RunException input = 'non_reflecting_bc_error.i' cli_args = "BCs/test/velocities=disp_x" expect_err = "The number of variables listed in the \'velocities\' parameter in \"test\" block must match the mesh dimension." + + requirement = "The NonReflectingBC class shall produce an error if the number of velocity variables is not the same as the mesh dimension." [../] [./accelerations_error] type = RunException input = 'non_reflecting_bc_error.i' cli_args = "BCs/test/accelerations=disp_x" expect_err = "The number of variables listed in the \'accelerations\' parameter in \"test\" block must match the mesh dimension." + + requirement = "The NonReflectingBC class shall produce an error if the number of acceleration variables is not the same as the mesh dimension." [../] [./component_error] type = RunException input = 'non_reflecting_bc_error.i' cli_args = "BCs/test/component=1980" expect_err = "The \'component\' parameter in \"test\" block should be less than mesh dimension." + + requirement = "The NonReflectingBC class shall produce an error if the size of the component vector is not the same as the mesh dimension." [../] [] diff --git a/test/tests/bcs/seismic_displacement/tests b/test/tests/bcs/seismic_displacement/tests index e6a3a02541..73c418abb1 100644 --- a/test/tests/bcs/seismic_displacement/tests +++ b/test/tests/bcs/seismic_displacement/tests @@ -1,13 +1,19 @@ [Tests] + design = "BCs/SeismicDisplacement/index.md" + issues = "#28" [./seismic_displacment] type = Exodiff input = seismic_displacement.i exodiff = seismic_displacement_out.e + + requirement = "The SeismicDisplacement action shall prescribe the user-provided displacement at the boundary." [../] [./action_wrong_size_error] type = RunException input = seismic_displacement_error.i cli_args = "BCs/SeismicDisplacement/top_x/displacements=disp_x" expect_err = "In the \"top_x\" block the 'displacements', 'velocities', 'accelerations', 'input_functions', and 'input_components' should be of the same size." + + requirement = "The SeismicDisplacement action shall produce an error if the displacements, velocities, accelerations, input functions and input components are not of the same length." [../] [] diff --git a/test/tests/bcs/seismic_force/tests b/test/tests/bcs/seismic_force/tests index 5e97333b32..c38ccfae80 100755 --- a/test/tests/bcs/seismic_force/tests +++ b/test/tests/bcs/seismic_force/tests @@ -1,10 +1,14 @@ [tests] + design = "BCs/SeismicForce/index.md" + issues = "#11" [./seismic_force_test_x_y] type = 'Exodiff' input = 'seismic_force_test_x_y.i' exodiff = 'seismic_force_test_x_y_out.e' max_parallel = 1 method = 'opt' + + requirement = "The SeismicForce class shall accurately convert the user-provided input velocities to shear tractions at the boundary." [../] [./seismic_force_test_z] # A minimum time step size of 0.01 is required for this problem. @@ -15,46 +19,62 @@ method = 'opt' rel_err = 1e-5 abs_zero = 1e-9 + + requirement = "The SeismicForce class shall accurately convert the user-provided input velocity to normal traction at the boundary." [../] [./seismic_force_compenent_mesh_error] type = RunException input = seismic_force_error.i cli_args = 'BCs/front/component=1980 BCs/front/vel_component=1' expect_err = "Invalid value for 'component' \(1980\) given in \"front\" block, it must be a value from 0 to 1." + + requirement = "The SeismicForce class shall produce an error if the value provided for 'component' is greater than mesh dimension - 1." [../] [./seismic_force_vel_compenent_mesh_error] type = RunException input = seismic_force_error.i cli_args = 'BCs/front/component=1 BCs/front/vel_component=1980' expect_err = "Invalid value for 'vel_component' \(1980\) given in \"front\" block, it must be a value from 0 to 1." + + requirement = "The SeismicForce class shall produce an error if the value provided for 'vel_component' is greater than mesh dimension - 1." [../] [./seismic_force_no_velocity_error] type = RunException input = seismic_force_error.i cli_args = 'BCs/front/component=1 BCs/front/vel_component=1' expect_err = "A function \('velocity_function'\) or variable \('velocity'\) describing the input velocity must be supplied in the \"front\" block." + + requirement = "The SeismicForce class shall produce an error if a function or variable describing the input velocity is not supplied as input by the user." [../] [./action_no_velocity_error] type = RunException input = seismic_force_action_error.i expect_err = "A list of functions \('velocity_functions'\) or variables \('velocities'\) describing the input velocity must be supplied in the \"front\" block." + + requirement = "The SeismicForce action shall produce an error if a list of functions or variables describing the input velocity are not supplied as input by the user." [../] [./action_var_velocity_size_error] type = RunException input = seismic_force_action_error.i cli_args = "BCs/SeismicForce/front/velocities=vel_x" expect_err = "The number of components listed in 'input_components' must equal the number of variables in 'velocities' in the \"front\" block." + + requirement = "The SeismicForce action shall produce an error if the length of the 'input_components' vector is not the same as that of the 'velocities' vector." [../] [./action_func_velocity_size_error] type = RunException input = seismic_force_action_error.i cli_args = "BCs/SeismicForce/front/velocity_functions=func_x" expect_err = "The number of components listed in 'input_components' must equal the number of functions in 'velocity_functions' in the \"front\" block." + + requirement = "The SeismicForce action shall produce an error if the length of the 'input_components' vector is not the same as that of the 'velocity_functions' vector." [../] [./action_displacement_size_error] type = RunException input = seismic_force_action_error.i cli_args = "BCs/SeismicForce/front/velocities='vel_x vel_y' BCs/SeismicForce/front/displacements='disp_x'" expect_err = "The number of supplied 'displacements' must equal the mesh dimension in the \"front\" block." + + requirement = "The SeismicForce action shall produce an error if the length of the displacements vector is different from the mesh dimension." [../] [] diff --git a/test/tests/dirackernels/function_point_force/tests b/test/tests/dirackernels/function_point_force/tests index b9217e545b..c803689f63 100755 --- a/test/tests/dirackernels/function_point_force/tests +++ b/test/tests/dirackernels/function_point_force/tests @@ -1,10 +1,14 @@ [tests] + design = "FunctionPointForce.md" + issues = "#6" [./function_point_force_1] type = 'Exodiff' input = 'force_one_point.i' exodiff = 'force_one_point_out.e' abs_zero = 1e-06 compiler = 'GCC CLANG' + + requirement = "The FunctionPointForce class shall accurately apply the force at any point within an element." [../] [./function_point_force_multi] type = 'Exodiff' @@ -12,28 +16,38 @@ exodiff = 'force_multi_point_out.e' abs_zero = 1e-06 compiler = 'GCC CLANG' + + requirement = "The FunctionPointForce class shall accurately apply a force at multiple points within the computational domain." [../] [./function_point_no_point_error] type = RunException input = force_error.i expect_err = "Either the 'point' or a set of points \('x_position'\) should be given as input in the \"src\" block." + + requirement = "The FunctionPointForce class shall produce an error if neither a point nor a set of points, supplied through the x, y and z position functions, are provided as input." [../] [./function_point_no_number_error] type = RunException input = force_error.i cli_args = "DiracKernels/src/x_position='x'" expect_err = "The 'number' parameter is required in the \"src\" block when 'x_position' function is provided." + + requirement = "The FunctionPointForce class shall produce an error if the 'number' parameter is not supplied by the user when providing a set of points through the position functions." [../] [./function_point_no_y_position_error] type = RunException input = force_error.i cli_args = "DiracKernels/src/x_position='x' DiracKernels/src/number=1" expect_err = "The number of position functions should be equal to mesh dimension in the \"src\" block." + + requirement = "The FunctionPointForce class shall produce an error x and y position functions are not provided as input for a 2D mesh." [../] [./function_point_no_z_position_error] type = RunException input = force_error.i cli_args = "DiracKernels/src/x_position='x' DiracKernels/src/y_position='y' DiracKernels/src/number=1" expect_err = "The number of position functions should be equal to mesh dimension in the \"src\" block." + + requirement = "The FunctionPointForce class shall produce an error x, y and z position functions are not provided as input for a 3D mesh." [../] [] diff --git a/test/tests/dirackernels/seismic_source/tests b/test/tests/dirackernels/seismic_source/tests index bc5861da96..0eb458201a 100755 --- a/test/tests/dirackernels/seismic_source/tests +++ b/test/tests/dirackernels/seismic_source/tests @@ -1,37 +1,51 @@ [Tests] + design = "SeismicSource.md" + issues = "19" [./one_seismic_source] type = 'Exodiff' input = 'one_seismic_source.i' exodiff = 'one_seismic_source_out.e' abs_zero = 1e-06 compiler = 'GCC CLANG' + + requirement = "The SeismicSource action and the SeismicSource class shall accurately apply a point source at the user-provided point within the computational domain." [../] [./synchronous_rupture] type = 'Exodiff' input = 'synchronous_rupture.i' exodiff = 'synchronous_rupture_out.e' + + requirement = "The SeismicSource action and the SeismicSource class shall accurately apply multiple point source at the user-provided points within the computational domain, and also trigger all these point sources to rupture at the same time instant." [../] [./asynchronous_rupture] type = 'Exodiff' input = 'asynchronous_rupture.i' exodiff = 'asynchronous_rupture_out.e' + + requirement = "The SeismicSource action and the SeismicSource class shall accurately apply multiple point sources at the user-provided points within the computational domain, and also trigger the point sources to rupture with a time delay calculated based on the rupture velocity and the distance of the point source from the epicenter." [../] [./displacement_error] type = 'RunException' input = 'seismic_source_error.i' cli_args = 'DiracKernels/SeismicSource/one_source/displacements=disp_x' expect_err = "Error in one_source. The number of displacement variables must match the mesh dimension." + + requirement = "The SeismicSource class shall produce an error when the number of provided displacement variables does not match the mesh dimension." [../] [./point_error] type = 'RunException' input = 'seismic_source_error.i' expect_err = "Error in mastodon_seismic_source0. Either a point of a set of points should be given as input." + + requirement = "The SeismicSource class shall produce an error if neither the point nor the set of points at which the source is located is not supplied as input.." [../] [./number_error] type = 'RunException' input = 'seismic_source_error.i' cli_args = "DiracKernels/SeismicSource/one_source/position_function='pos'" expect_err = "Error in mastodon_seismic_source0. Please specify number of source points defined in the function." + + requirement = "The SeismicSource class shall produce an error when a position_function is used to define the set of source points, but the number of source points is not supplied as input." [../] [./position_number_error] type = 'RunException' @@ -39,6 +53,8 @@ cli_args = "DiracKernels/SeismicSource/one_source/position_function='pos' DiracKernels/SeismicSource/one_source/number=3" expect_err = "Error in mastodon_seismic_source0. The number of position functions should be equal to mesh dimension." + + requirement = "The SeismicSource class shall produce an error when the number of position functions does not match the mesh dimension." [../] [./no_rupture_speed_error] type = 'RunException' @@ -47,6 +63,8 @@ DiracKernels/SeismicSource/one_source/number=3 DiracKernels/SeismicSource/one_source/epicenter='0.2 0.2 0.2'" expect_err = "Error in mastodon_seismic_source0. Either both rupture speed and epicenter should be provided or neither should be provided." + + requirement = "The SeismicSource class shall produce an error if only the epicenter is provided as input, but not the rupture speed." [../] [./no_epicenter_error] type = 'RunException' @@ -55,6 +73,8 @@ DiracKernels/SeismicSource/one_source/number=3 DiracKernels/SeismicSource/one_source/rupture_speed=1" expect_err = "Error in mastodon_seismic_source0. Either both rupture speed and epicenter should be provided or neither should be provided." + + requirement = "The SeismicSource class shall produce an error if only the rupture speed is provided as input, but not the epicenter." [../] [./epicenter_number_error] type = 'RunException' @@ -64,6 +84,8 @@ DiracKernels/SeismicSource/one_source/rupture_speed=1 DiracKernels/SeismicSource/one_source/epicenter=0.2" expect_err = "Error in mastodon_seismic_source0. Epicenter should be same size as mesh dimension." + + requirement = "The SeismicSource class shall produce an error if the length of the epicenter vector is not the same as the mesh dimension." [../] [./point_rupture_speed] type = 'RunException' @@ -73,6 +95,8 @@ DiracKernels/SeismicSource/one_source/rupture_speed=1 DiracKernels/SeismicSource/one_source/epicenter=0.2" expect_err = "Error in mastodon_seismic_source0. Rupture speed and epicenter should only be provided when multiple point sources are specified." + + requirement = "The SeismicSource class shall produce an error if the epicenter and rupture speed are provided as input for a single seismic source." [../] [./negative_speed_error] type = 'RunException' @@ -82,15 +106,21 @@ DiracKernels/SeismicSource/one_source/rupture_speed=-1 DiracKernels/SeismicSource/one_source/epicenter='0.2 0.2 0.2'" expect_err = "Error in mastodon_seismic_source0. Rupture speed has to be positive." + + requirement = "The SeismicSource class shall produce an error if the user-provided rupture speed is not positive." [../] [./2D_non_strike_error] type = 'RunException' input = '2D_seismic_source_error.i' expect_err = "Error in mastodon_seismic_source0. A non-zero strike angle for 2D models will create an out-of-plane earthquake wave. This is currently not supported." + + requirement = "The SeismicSource class shall produce a warning if a non-zero strike angle is provided as input for 2D models, indicating that out-of-plane earthquake waves would be generated." [../] [./1D_error] type = 'RunException' input = '1D_seismic_source_error.i' expect_err = "Error in mastodon_seismic_source0. Only mesh dimensions of 2 and 3 are currently supported." + + requirement = "The SeismicSource class shall produce an error if it is used on a 1D mesh." [../] [] diff --git a/test/tests/images/tests b/test/tests/images/tests index ce918eb58b..ca0be5c9ac 100644 --- a/test/tests/images/tests +++ b/test/tests/images/tests @@ -5,5 +5,9 @@ input = three_layer.i exodiff = three_layer_out.e vtk = true + + design = "ImageFunction.md" + issues = "#2" + requirement = "The ImageFunction class shall accurately read the layer variable values from the 2D soil layer profile presented in the image." [../] [] diff --git a/test/tests/indicators/interface_and_shear_wave_indicators/tests b/test/tests/indicators/interface_and_shear_wave_indicators/tests index 190ad1126a..cbdee03022 100644 --- a/test/tests/indicators/interface_and_shear_wave_indicators/tests +++ b/test/tests/indicators/interface_and_shear_wave_indicators/tests @@ -9,5 +9,9 @@ min_parallel = 2 vtk = true method = opt + + design = "LayerInterfaceIndicator.md ShearWaveIndicator.md" + issues = "#2" + requirement = "The LayerInterfaceIndicator and ShearWaveIndicator classes shall accurately mesh the soil domain taking into account the variation in shear wave velocity across soil layers, as well as the location soil layer interfaces." [../] [] diff --git a/test/tests/indicators/interface_indicator/tests b/test/tests/indicators/interface_indicator/tests index a51addd226..369b23b9d6 100644 --- a/test/tests/indicators/interface_indicator/tests +++ b/test/tests/indicators/interface_indicator/tests @@ -5,5 +5,9 @@ input = interface_indicator.i exodiff = interface_indicator_out.e vtk = true + + design = "LayerInterfaceIndicator.md" + issues = "#2" + requirement = "The LayerInterfaceIndicator class shall accurately mesh the soil domain taking into account the location soil layer interfaces." [../] [] diff --git a/test/tests/indicators/shear_wave_indicator/tests b/test/tests/indicators/shear_wave_indicator/tests index 3f03b80de9..4855bc663c 100644 --- a/test/tests/indicators/shear_wave_indicator/tests +++ b/test/tests/indicators/shear_wave_indicator/tests @@ -5,5 +5,9 @@ input = shear_wave_indicator.i exodiff = shear_wave_indicator_out.e vtk = true + + design = "ShearWaveIndicator.md" + issues = "#2" + requirement = "The ShearWaveIndicator class shall accurately mesh the soil domain taking into account the variation in shear wave velocity across soil layers." [../] [] diff --git a/test/tests/interfaces/layered_material/tests b/test/tests/interfaces/layered_material/tests index b312653f6f..2b231445ee 100644 --- a/test/tests/interfaces/layered_material/tests +++ b/test/tests/interfaces/layered_material/tests @@ -1,14 +1,20 @@ [Tests] + design = "LayeredMaterialInterface.md" + issues = "#13" [./doc_string_error] type = RunException input = doc_string_error.i expect_err = "The documentation for the 'layer_ids' parameter must be modified using InputParameters::setDocString in the validParams function to include information on the parameters which the layer ids correspond." allow_test_objects = True + + requirement = "The LayeredMaterialInterface class shall produce an error if the parent class does not set the documentation for the 'layer_ids' parameter." [../] [./type_error] type = RunException input = type_error.i expect_err = "The LayeredMaterialInterface requires that the template class be a Material object." allow_test_objects = True + + requirement = "The LayeredMaterialInterface class shall produce an error if the template class is not a Material object." [../] [] diff --git a/test/tests/markers/minimum_element_size/tests b/test/tests/markers/minimum_element_size/tests index 7971fc25d9..86ec54a897 100644 --- a/test/tests/markers/minimum_element_size/tests +++ b/test/tests/markers/minimum_element_size/tests @@ -5,4 +5,8 @@ exodiff = minimum_element_size_out.e vtk = true [../] + + design = "MinimumElementSizeMarker.md" + issues = "#2" + requirement = "The MinimumElementSizeMarker shall accurately mark an element for mesh refinement if the minimum element size is greater than that recommended by the ShearWaveIndicator." [] diff --git a/test/tests/materials/fp_isolator/tests b/test/tests/materials/fp_isolator/tests index ef42750e60..eb79c17d12 100644 --- a/test/tests/materials/fp_isolator/tests +++ b/test/tests/materials/fp_isolator/tests @@ -1,8 +1,12 @@ [Tests] + design = "fp_isolator-theory.md fp_isolator-user.md" + issues = "#128" [./shear_PTV] type = CSVDiff input = fp_isolator_shear_PTV.i csvdiff = fp_isolator_shear_PTV_out.csv + + requirement = "The ComputeFPIsolatorElasticity class shall accurately model the pressure, temperature and velocity dependent behavior of the isolator under sinusoidal shear loading." [../] [./shear_V] type = CSVDiff @@ -10,6 +14,8 @@ csvdiff = fp_isolator_shear_V_out.csv cli_args = 'Materials/elasticity/pressure_dependent=false Materials/elasticity/temperature_dependent=false Outputs/file_base=fp_isolator_shear_V_out' prereq = shear_PTV + + requirement = "The ComputeFPIsolatorElasticity class shall accurately model the velocity dependent behavior of the isolator under sinusoidal shear loading." [../] [./shear_T] type = CSVDiff @@ -17,6 +23,8 @@ csvdiff = fp_isolator_shear_T_out.csv cli_args = 'Materials/elasticity/pressure_dependent=false Materials/elasticity/velocity_dependent=false Outputs/file_base=fp_isolator_shear_T_out' prereq = shear_PTV + + requirement = "The ComputeFPIsolatorElasticity class shall accurately model the temperature dependent behavior of the isolator under sinusoidal shear loading." [../] [./shear_P] type = CSVDiff @@ -24,10 +32,14 @@ csvdiff = fp_isolator_shear_P_out.csv cli_args = 'Materials/elasticity/velocity_dependent=false Materials/elasticity/temperature_dependent=false Outputs/file_base=fp_isolator_shear_P_out' prereq = shear_PTV + + requirement = "The ComputeFPIsolatorElasticity class shall accurately model the pressure dependent behavior of the isolator under sinusoidal shear loading." [../] [./seismic_PTV] type = CSVDiff input = fp_isolator_seismic_PTV.i csvdiff = fp_isolator_seismic_PTV_out.csv + + requirement = "The ComputeFPIsolatorElasticity class shall accurately model the pressure, temperature and velocity dependent behavior of the isolator under seismic loading." [../] [] diff --git a/test/tests/materials/fv_damper/tests b/test/tests/materials/fv_damper/tests index f565175a6b..3a0708f93e 100644 --- a/test/tests/materials/fv_damper/tests +++ b/test/tests/materials/fv_damper/tests @@ -1,8 +1,12 @@ [Tests] + design = "fv_damper_theory.md fv_damper_user.md" + issues = "#208" [./axial] type = CSVDiff input = fv_damper_axial.i csvdiff = fv_damper_axial_out.csv + + requirement = "The ComputeFVDamperElasticity class shall accurately damp the response of the system in the axial direction." [../] [./axial2] type = CSVDiff @@ -10,6 +14,8 @@ csvdiff = fv_damper_axial2_out.csv cli_args = 'Materials/elasticity/cd=4605988 Materials/elasticity/alpha=0.6 Outputs/file_base=fv_damper_axial2_out' prereq = axial + + requirement = "The ComputeFVDamperElasticity class shall accurately damp the response of the system in the axial direction for a cd of 4605988 and an alpha of 0.6." [../] [./axial3] type = CSVDiff @@ -17,6 +23,8 @@ csvdiff = fv_damper_axial3_out.csv cli_args = 'Materials/elasticity/cd=1090485 Materials/elasticity/alpha=0.01 Outputs/file_base=fv_damper_axial3_out' prereq = axial + + requirement = "The ComputeFVDamperElasticity class shall accurately damp the response of the system in the axial direction for a cd of 1090485 and an alpha of 0.01." [../] [./axial4] type = CSVDiff @@ -24,10 +32,14 @@ csvdiff = fv_damper_axial4_out.csv cli_args = 'Materials/elasticity/cd=37947331 Materials/elasticity/alpha=1.5 Outputs/file_base=fv_damper_axial4_out' prereq = axial + + requirement = "The ComputeFVDamperElasticity class shall accurately damp the response of the system in the axial direction for a cd of 37947331 and an alpha of 1.5." [../] [./seismic] type = CSVDiff input = fv_damper_seismic_frame.i csvdiff = fv_damper_seismic_frame_out.csv + + requirement = "The ComputeFVDamperElasticity class shall accurately damp the response of the portal frame under seismic loading." [../] [] diff --git a/test/tests/materials/isoil/tests b/test/tests/materials/isoil/tests index 970c7ee60a..a7ed5009ca 100644 --- a/test/tests/materials/isoil/tests +++ b/test/tests/materials/isoil/tests @@ -1,4 +1,6 @@ [Tests] + design = "Materials/I_Soil/index.md" + issues = "#26" [./data_file] # 1 element problem with ISoilAction to check stress-strain curve given using data_file type = Exodiff @@ -6,6 +8,8 @@ exodiff = HYS_data_file_out.e abs_zero = 5e-9 rel_err = 2e-5 + + requirement = "The ISoil action and ComputeISoilStress class shall accurately construct the stress-strain curve from a user provided data file." [../] [./data_file_noaction] @@ -17,6 +21,8 @@ prereq = data_file abs_zero = 5e-9 rel_err = 2e-5 + + requirement = "The ComputeISoilStress class shall accurately construct the stress-strain curve from a user provided data file." [../] [./darendeli] @@ -24,6 +30,8 @@ type = Exodiff input = HYS_darendeli.i exodiff = HYS_darendeli_out.e + + requirement = "The ISoil action and ComputeISoilStress class shall accurately construct the stress-strain curve using the Darendeli formulation." [../] [./darendeli_noaction] @@ -33,6 +41,8 @@ exodiff = HYS_darendeli_out.e cli_args = Outputs/file_base=HYS_darendeli_out prereq = darendeli + + requirement = "The ComputeISoilStress class shall accurately construct the stress-strain curve using the Darendeli formulation." [../] [./GQH] @@ -41,6 +51,8 @@ input = HYS_GQH.i exodiff = HYS_GQH_out.e abs_zero = 1e-9 + + requirement = "The ISoil action and ComputeISoilStress class shall accurately construct the stress-strain curve using the GQ/H formulation." [../] [./GQH_noaction] @@ -51,6 +63,8 @@ cli_args = Outputs/file_base=HYS_GQH_out prereq = GQH abs_zero = 1e-9 + + requirement = "The ComputeISoilStress class shall accurately construct the stress-strain curve using the GQ/H formulation." [../] [./thin_layer] @@ -58,6 +72,8 @@ type = Exodiff input = HYS_thin_layer.i exodiff = HYS_thin_layer_out.e + + requirement = "The ISoil action and ComputeISoilStress class shall accurately construct the stress-strain curve for a thin-layer contact element." [../] [./thin_layer_noaction] @@ -67,6 +83,8 @@ exodiff = HYS_thin_layer_out.e cli_args = Outputs/file_base=HYS_thin_layer_out prereq = thin_layer + + requirement = "The ComputeISoilStress class shall accurately construct the stress-strain curve for a thin-layer contact element." [../] [./pressure_dependent_stiffness] @@ -74,6 +92,8 @@ type = RunException input = HYS_pressure_dependent_stiffness.i expect_err = "Pressure dependency is set to true but b\_exp is set to 0\.0\. Stiffness pressure dependency is NOT turned on\." + + requirement = "The ComputeISoilStress class shall generate a warning if pressure dependency is set to true but b\_exp is set to 0.0." [../] [./stiffness_and_strength_pressure_dependency] @@ -82,6 +102,8 @@ input = HYS_stiffness_and_strength_pressure_dependency.i exodiff = HYS_stiffness_and_strength_pressure_dependency_out.e abs_zero = 5e-9 + + requirement = "The ISoil action and ComputeISoilStress class shall accurately adjust the stress-strain curve to account for pressure dependent changes in stiffness and strength of the soil." [../] [./stiffness_and_strength_pressure_dependency_noaction] @@ -92,5 +114,7 @@ cli_args = Outputs/file_base=HYS_stiffness_and_strength_pressure_dependency_out prereq = stiffness_and_strength_pressure_dependency abs_zero = 5e-9 + + requirement = "The ComputeISoilStress class shall accurately adjust the stress-strain curve to account for pressure dependent changes in stiffness and strength of the soil." [../] [] diff --git a/test/tests/materials/linear_isotropic_elasticity_tensor_soil/tests b/test/tests/materials/linear_isotropic_elasticity_tensor_soil/tests index cb96e2afd9..19ead30b24 100644 --- a/test/tests/materials/linear_isotropic_elasticity_tensor_soil/tests +++ b/test/tests/materials/linear_isotropic_elasticity_tensor_soil/tests @@ -1,9 +1,13 @@ [Tests] + design = "ComputeIsotropicElasticityTensorSoil.md" + issues = "#10" [./linear_isotropic_shear_input] type = Exodiff input = layered_soil_test_shear.i exodiff = layered_soil_test_out.e cli_args = Outputs/file_base=layered_soil_test_out + + requirement = "The ComputeIsotropicElasticityTensorSoil shall accurately set up elasticity tensor for different soil layers using the user provided shear modulus and Poisson's ratio for each layer." [../] [./linear_isotropic_elastic_input] type = Exodiff @@ -11,17 +15,23 @@ exodiff = layered_soil_test_out.e cli_args = Outputs/file_base=layered_soil_test_out prereq = linear_isotropic_shear_input + + requirement = "The ComputeIsotropicElasticityTensorSoil shall accurately set up elasticity tensor for different soil layers using the user provided Young's modulus and Poisson's ratio for each layer." [../] [./linear_isotropic_size_error] type = RunException input = layered_soil_test_shear.i cli_args = "Materials/Elasticity_tensor_1/layer_ids='10 20 30 1980' Outputs/exodus=false" expect_err = 'The parameter "shear_modulus" in the "Elasticity_tensor_1" block must be the same length as the "layer_ids" parameter.' + + requirement = "The ComputeIsotropicElasticityTensorSoil class shall produce an error if the 'shear_modulus' vector is not the same length as the 'layer_ids' vector." [../] [./linear_isotropic_layer_id_error] type = RunException input = layered_soil_test_shear.i cli_args = "Materials/Elasticity_tensor_1/layer_ids='10 20 1980' Outputs/exodus=false" expect_err = "The current layer id variable value \(30\) was not provided in the 'layer_ids' parameter of the \"Elasticity_tensor_1\" block." + + requirement = "The ComputeIsotropicElasticityTensorSoil class shall produce an error if the layer id variable takes a value that is not provided as part of the 'layer_ids' vector." [../] [] diff --git a/test/tests/materials/linear_soil/tests b/test/tests/materials/linear_soil/tests index 6059446eae..e566e6ff07 100644 --- a/test/tests/materials/linear_soil/tests +++ b/test/tests/materials/linear_soil/tests @@ -1,9 +1,13 @@ [Tests] + design = "LinearSoilMaterial.md" + issues = "#2" [./math] # 1D problem with 2 elements for checking math type = Exodiff input = linear_soil.i exodiff = linear_soil_out.e + + requirement = "The LinearSoilMaterial class accurately set the shear modulus and density values for different soil layers." [../] [./error_size_mismatch] @@ -12,6 +16,8 @@ input = linear_soil.i cli_args = "Materials/linear/layer_ids='1980 1981 1982'" expect_err = "The parameter \"shear_modulus\" in the \"linear\" block must be the same length as the \"layer_ids\" parameter." + + requirement = "The LinearSoilMaterial class shall produce an error if the 'shear_modulus' vector is not the same length as the 'layer_ids' vector." [../] [./error_missing_id] @@ -20,5 +26,7 @@ input = linear_soil.i cli_args = "Materials/linear/layer_ids='1980 1981'" expect_err = "The current layer id variable value \(1949\) was not provided in the 'layer_ids' parameter of the \"linear\" block." + + requirement = "The LinearSoilMaterial class shall produce an error if the layer id variable takes a value that is not provided as part of the 'layer_ids' vector." [../] [] diff --git a/test/tests/materials/linear_spring/tests b/test/tests/materials/linear_spring/tests index 4d65e1ea27..92b6caf2f1 100644 --- a/test/tests/materials/linear_spring/tests +++ b/test/tests/materials/linear_spring/tests @@ -3,5 +3,9 @@ type = CSVDiff input = 'spring_static.i' csvdiff = 'spring_static_out.csv' + + design = "LinearSpring.md" + issues = "#148" + requirement = "The LinearSpring class shall accurately model the static response of spring in the three translational and the three rotational directions." [../] [] diff --git a/test/tests/materials/lr_isolator/tests b/test/tests/materials/lr_isolator/tests index 84573b554b..7d7b8c5142 100644 --- a/test/tests/materials/lr_isolator/tests +++ b/test/tests/materials/lr_isolator/tests @@ -1,45 +1,63 @@ [Tests] + design = "lr_isolator-theory.md lr_isolator-user.md" + issues = "#127" [./lr_isolator_axial_ct] type = CSVDiff input = 'lr_isolator_axial_ct.i' csvdiff = 'lr_isolator_axial_ct_out.csv' + + requirement = "The ComputeLRIsolatorElasticity class shall accurately model the tensile and compressive response of the isolator." [../] [./lr_isolator_tension] type = CSVDiff input = 'lr_isolator_tension.i' csvdiff = 'lr_isolator_tension_out.csv' + + requirement = "The ComputeLRIsolatorElasticity class shall accurately model the tensile response of the isolator." [../] [./lr_isolator_shear] type = CSVDiff input = 'lr_isolator_shear.i' csvdiff = 'lr_isolator_shear_out.csv' + + requirement = "The ComputeLRIsolatorElasticity class shall accurately model the shear response of the isolator." [../] [./lr_isolator_Pdelta] type = CSVDiff input = 'lr_isolator_PDelta.i' csvdiff = 'lr_isolator_PDelta_out.csv' + + requirement = "The ComputeLRIsolatorElasticity class shall accurately model the buckling response of the isolator." [../] [./lr_isolator_seismic] type = Exodiff input = 'lr_isolator_seismic.i' exodiff = 'lr_isolator_seismic_out.e' + + requirement = "The ComputeLRIsolatorElasticity class shall accurately model the seismic response of the isolator." [../] [./deformation_error1] type = RunException input = lr_isolator_seismic.i cli_args = "Outputs/exodus=false Materials/deformation/rotations='rot_x rot_y'" expect_err = "Error in ComputeIsolatorDeformation block, deformation. The number of variables supplied in 'displacements' and 'rotations' input parameters must be equal." + + requirement = "The ComputeLRIsolatorElasticity class shall produce an error if the lengths of the displacement and rotation vectors do not match." [../] [./deformation_error2] type = RunException input = lr_isolator_seismic.i cli_args = "Outputs/exodus=false Materials/deformation/y_orientation='1 0 0'" expect_err = "Error in ComputeIsolatorDeformation block, deformation. 'y_orientation' should be perpendicular to the axis of the isolator." + + requirement = "The ComputeLRIsolatorElasticity class shall produce an error if the 'y_orientation' provided as input is not perpendicular to the axis of the isolator." [../] [./elasticity_error1] type = RunException input = lr_isolator_seismic.i cli_args = "Outputs/exodus=false Materials/elasticity/alpha=1.0" expect_err = "In ComputeLRIsolatorElasticity block, elasticity. Parameter, '_alpha' should be >= 0.0 and < 1.0." + + requirement = "The ComputeLRIsolatorElasticity class shall produce an error if the parameter 'alpha' is either negative or greater than 1." [../] []